3.
141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609433057270365759591953092186117381932611793105118548074462379962749567351885752724891227938183011949129833673362440656643086021394946395224737190702179860943702770539217176293176752384674818467669405132000568127145263560827785771342757789609173637178721468440901224953430146549585371050792279689258923542019956112129021960864034418159813629774771309960518707211349999998372978049951059731732816096318595024459455346908302642522308253344685035261931188171010003137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226806613001927876611195909216420198938095257201065485863278865936153381827968230301952035301852968995773622599413891249721775283479131515574857242454150695950829533116861727855889075098381754637464939319255060400927701671139009848824012858361603563707660104710181942955596198946767837449448255379774726847104047534646208046684259069491293313677028989152104752162056966024058038150193511253382430035587640247496473263914199272604269922796782354781636009341721641219924586315030286182974555706749838505494588586926995690927210797509302955321165344987202755960236480665499119881834797753566369807426542527862551818417574672890977772793800081647060016145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786085784383827967976681454100953883786360950680064225125205117392984896084128488626945604241965285022210661186306744278622039194945047123713786960956364371917287467764657573962413890865832645995813390478027590099465764078951269468398352595709825822620522489407726719478268482601476990902640136394437455305068203496252451749399651431429809190659250937221696461515709858387410597885959772975498930161753928468138268683868942774155991855925245953959431049972524680845987273644695848653836736222626099124608051243884390451244136549762780797715691435997700129616089441694868555848406353422072225828488648158456028506016842739452267467678895252138522549954666727823986456596116354886230577456498035593634568174324112515076069479451096596094025228879710893145669136867228748940560101503308617928680920874760917824938589009714909675985261365549781893129784821682998948722658804857564014270477555132379641451523746234364542858444795265867821051141354735739523113427166102135969536231442952484937187110145765403590279934403742007310578539062198387447808478489683321445713868751943506430218453191048481005370614680674919278191197939952061419663428754440643745123718192179998391015919561814675142691239748940907186494231961567945208095146550225231603881930142093762137855956638937787083039069792077346722182562599661501421503068038447734549202605414665925201497442850732518666002132434088190710486331734649651453905796268561005508106658796998163574736384052571459102897064140110971206280439039759515677157700420337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575270695722091756711672291098169091528017350671274858322287183520935396572512108357915136988209144421006751033467110314126711136990865851639831501970165151168517143765761835155650884909989859982387345528331635507647918535893226185489632132933089857064204675259070915481416549859461637180270981994309924488957571282890592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344403070746921120191302033038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341077322697802807318915441101044682325271620105265227211166039666557309254711055785376346682065310989652691862056476931257058635662018558100729360659876486117910453348850346113657686753249441668039626579787718556084552965412665408530614344431858676975145661406800700237877659134401712749470420562230538994561314071127000407854733269939081454664645880797270826683063432858785698305235808933065757406795457163775254202114955761581400250126228594130216471550979259230990796547376125517656751357517829666454779174501129961489030463994713296210734043751895735961458901938971311179042978285647503203198691514028708085990480109412147221317947647772622414254854540332157185306142288137585043063321751829798662237172159160771669254748738986654949450114654062843366393790039769265672146385306736096571209180763832716641627488880078692560290228472104031721186082041900042296617119637792133757511495950156604963186294726547364252308177036751590673502350728354056704038674351362222477158915049530984448933309634087807693259939780541934144737744184263129860809988868741326047215695162396586457302163159819319516735381297416772947867242292465436680098067692823828068996400482435403701416314965897940924323789690706977942236250822168895738379862300159377647165122893578601588161755782973523344604281512627203734314653197777416031990665541876397929334419521541341899485444734567383162499341913181480927777103863877343177207545654532207770921201905166096280490926360197598828161332316663652861932668633606273567630354477628035045077723554710585954870279081435624014517180624643626794561275318134078330336254232783944975382437205835311477119926063813346776879695970309833913077109870408591337464144282277263465947047458784778720192771528073176790770715721344473060570073349243693113835049316312840425121925651798069411352801314701304781643788518529092854520116583934196562134914341595625865865570552690496520985803385072242648293972858478316305777756068887644624824685792603953527734803048029005876075825104747091643961362676044925627420420832085661190625454337213153595845068772460290161876679524061634252257719542916299193064553779914037340432875262888963995879475729174642635745525407909145135711136941091193932519107602082520261879853188770584297259167781314969900901921169717372784768472686084900337702424291651300500516832336435038951702989392233451722013812806965011784408745196012122859937162313017114448464090389064495444006198690754851602632750529834918740786680881833851022833450850486082503930213321971551843063545500766828294930413776552793975175461395398468339363830474611996653858153842056853386218672523340283087112328278921250771262946322956398989893582116745627010218356462201349671518819097303811980049734072396103685406643193950979019069963955245300545058068550195673022921913933918568034490398205955100226353536192041994745538593810234395544959778377902374216172711172364343543947822181852862408514006660443325888569867054315470696574745855033232334210730154594051655379068662733379958511562578432298827372319898757141595781119635833005940873068121602876496286744604774649159950549737425626901049037781986835938146574126804925648798556145372347867330390468838343634655379498641927056387293174872332083760112302991136793862708943879936201629515413371424892830722012690147546684765357616477379467520049075715552781965362132392640616013635815590742202020318727760527721900556148425551879253034351398442532234157623361064250639049750086562710953591946589751413103482276930624743536325691607815478181152843667957061108615331504452127473924544945423682886061340841486377670096120715124914043027253860764823634143346235189757664521641376796903149501910857598442391986291642193994907236234646844117394032659184044378051333894525742399508296591228508555821572503107125701266830240292952522011872676756220415420516184163484756516999811614101002996078386909291603028840026910414079288621507842451670908700069928212066041837180653556725253256753286129104248776182582976515795984703562226293486003415872298053498965022629174878820273420922224533985626476691490556284250391275771028402799806636582548892648802545661017296702664076559042909945681506526530537182941270336931378517860904070866711496558343434769338578171138645587367812301458768712660348913909562009939361031029161615288138437909904231747336394804575931493140529763475748119356709110137751721008031559024853090669203767192203322909433467685142214477379393751703443661991040337511173547191855046449026365512816228824462575916333039107225383742182140883508657391771509682887478265699599574490661758344137522397096834080053559849175417381883999446974867626551658276584835884531427756879002909517028352971634456212964043523117600665101241200659755851276178583829204197484423608007193045761893234922927965019875187212726750798125547095890455635792122103334669749923563025494780249011419521238281530911407907386025152274299581807247162591668545133312394804947079119153267343028244186041426363954800044800267049624820179289647669758318327131425170296923488962766844032326092752496035799646925650493681836090032380929345958897069536534940603402166544375589004563288225054525564056448246515187547119621844396582533754388569094113031509526179378002974120766514793942590298969594699556576121865619673378623625612521632086286922210327488921865436480229678070576561514463204692790682120738837781423356282360896320806822246801224826117718589638140918390367367222088832151375560037279839400415297002878307667094447456013455641725437090697939612257142989467154357846878861444581231459357198492252847160504922124247014121478057345510500801908699603302763478708108175450119307141223390866393833952942578690507643100638351983438934159613185434754649556978103829309716465143840700707360411237359984345225161050702705623526601276484830840761183013052793205427462865403603674532865105706587488225698157936789766974220575059683440869735020141020672358502007245225632651341055924019027421624843914035998953539459094407046912091409387001264560016237428802109276457931065792295524988727584610126483699989225695968815920560010165525637567856672279661988578279484885583439751874454551296563443480396642055798293680435220277098429423253302257634180703947699415979159453006975214829336655566156787364005366656416547321704390352132954352916941459904160875320186837937023488868947915107163785290234529244077365949563051007421087142613497459561513849871375704710178795731042296906667021449863746459528082436944578977233004876476524133907592043401963403911473202338071509522201068256342747164602433544005152126693249341967397704159568375355516673027390074972973635496453328886984406119649616277344951827369558822075735517665158985519098666539354948106887320685990754079234240230092590070173196036225475647894064754834664776041146323390565134330684495397907090302346046147096169688688501408347040546074295869913829668246818571031887906528703665083243197440477185567893482308943106828702722809736248093996270607472645539925399442808113736943388729406307926159599546262462970706259484556903471197299640908941805953439325123623550813494900436427852713831591256898929519642728757394691427253436694153236100453730488198551706594121735246258954873016760029886592578662856124966552353382942878542534048308330701653722856355915253478445981831341129001999205981352205117336585640782648494276441137639386692480311836445369858917544264739988228462184490087776977631279572267265556259628254276531830013407092233436577916012809317940171859859993384923549564005709955856113498025249906698423301735035804408116855265311709957089942732870925848789443646005041089226691783525870785951298344172953519537885534573742608590290817651557803905946408735061232261120093731080485485263572282576820341605048466277504500312620080079980492548534694146977516493270950493463938243222718851597405470214828971117779237612257887347718819682546298126868581705074027255026332904497627789442362167411918626943965067151577958675648239939176042601763387045499017614364120469218237076488783419689686118155815873606293860381017121585527266830082383404656475880405138080163363887421637140643549556186896411228214075330265510042410489678352858829024367090488711819090949453314421828766181031007354770549815968077200947469613436092861484941785017180779306810854690009445899527942439813921350558642219648349151263901280383200109773868066287792397180146134324457264009737425700735921003154150893679300816998053652027600727749674584002836240534603726341655425902760183484030681138185510597970566400750942608788573579603732451414678670368809880609716425849759513806930944940151542222194329130217391253835591503100333032511174915696917450271494331515588540392216409722910112903552181576282328318234254832611191280092825256190205263016391147724733148573910777587442538761174657867116941477642144111126358355387136101102326798775641024682403226483464176636980663785768134920453022408197278564719839630878154322116691224641591177673225326433568614618654522268126887268445968442416107854016768142080885028005414361314623082102594173756238994207571362751674573189189456283525704413354375857534269869947254703165661399199968262824727064133622217892390317608542894373393561889165125042440400895271983787386480584726895462438823437517885201439560057104811949884239060613695734231559079670346149143447886360410318235073650277859089757827273130504889398900992391350337325085598265586708924261242947367019390772713070686917092646254842324074855036608013604668951184009366860954632500214585293095000090715105823626729326453738210493872499669933942468551648326113414611068026744663733437534076429402668297386522093570162638464852851490362932019919968828517183953669134522244470804592396602817156551565666111359823112250628905854914509715755390024393153519090210711945730024388017661503527086260253788179751947806101371500448991721002220133501310601639154158957803711779277522597874289191791552241718958536168059474123419339842021874564925644346239253195313510331147639491199507285843065836193536932969928983791494193940608572486396883690326556436421664425760791471086998431573374964883529276932822076294728238153740996154559879825989109371712621828302584811238901196822142945766758071865380650648702613389282299497257453033283896381843944770779402284359883410035838542389735424395647555684095224844554139239410001620769363684677641301781965937997155746854194633489374843912974239143365936041003523437770658886778113949861647874714079326385873862473288964564359877466763847946650407411182565837887845485814896296127399841344272608606187245545236064315371011274680977870446409475828034876975894832824123929296058294861919667091895808983320121031843034012849511620353428014412761728583024355983003204202451207287253558119584014918096925339507577840006746552603144616705082768277222353419110263416315714740612385042584598841990761128725805911393568960143166828317632356732541707342081733223046298799280490851409479036887868789493054695570307261900950207643349335910602454508645362893545686295853131533718386826561786227363716975774183023986006591481616404944965011732131389574706208847480236537103115089842799275442685327797431139514357417221975979935968525228574526379628961269157235798662057340837576687388426640599099350500081337543245463596750484423528487470144354541957625847356421619813407346854111766883118654489377697956651727966232671481033864391375186594673002443450054499539974237232871249483470604406347160632583064982979551010954183623503030945309733583446283947630477564501500850757894954893139394489921612552559770143685894358587752637962559708167764380012543650237141278346792610199558522471722017772370041780841942394872540680155603599839054898572354674564239058585021671903139526294455439131663134530893906204678438778505423939052473136201294769187497519101147231528932677253391814660730008902776896311481090220972452075916729700785058071718638105496797310016787085069420709223290807038326345345203802786099055690013413718236837099194951648960075504934126787643674638490206396401976668559233565463913836318574569814719621084108096188460545603903845534372914144651347494078488442377217515433426030669883176833100113310869042193903108014378433415137092435301367763108491351615642269847507430329716746964066653152703532546711266752246055119958183196376370761799191920357958200759560530234626775794393630746305690108011494271410093913691381072581378135789400559950018354251184172136055727522103526803735726527922417373605751127887218190844900617801388971077082293100279766593583875890939568814856026322439372656247277603789081445883785501970284377936240782505270487581647032458129087839523245323789602984166922548964971560698119218658492677040395648127810217991321741630581055459880130048456299765112124153637451500563507012781592671424134210330156616535602473380784302865525722275304999883701534879300806260180962381516136690334111138653851091936739383522934588832255088706450753947395204396807906708680644509698654880168287434378612645381583428075306184548590379821799459968115441974253634439960290251001588827216474500682070419376158454712318346007262933955054823955713725684023226821301247679452264482091023564775272308208106351889915269288910845557112660396503439789627825001611015323516051965590421184494990778999200732947690586857787872098290135295661397888486050978608595701773129815531495168146717695976099421003618355913877781769845875810446628399880600616229848616935337386578773598336161338413385368421197893890018529569196780455448285848370117096721253533875862158231013310387766827211572694951817958975469399264219791552338576623167627547570354699414892904130186386119439196283887054367774322427680913236544948536676800000106526248547305586159899914017076983854831887501429389089950685453076511680333732226517566220752695179144225280816517166776672793035485154204023817460892328391703275425750867655117859395002793389592057668278967764453184040418554010435134838953120132637836928358082719378312654961745997056745071833206503455664403449045362756001125018433560736122276594927839370647842645676338818807565612168960504161139039063960162022153684941092605387688714837989559999112099164646441191856827700457424343402167227644558933012778158686952506949936461017568506016714535431581480105458860564550133203758645485840324029871709348091055621167154684847780394475697980426318099175642280987399876697323769573701580806822904599212366168902596273043067931653114940176473769387351409336183321614280214976339918983548487562529875242387307755955595546519639440182184099841248982623673771467226061633643296406335728107078875816404381485018841143188598827694490119321296827158884133869434682859006664080631407775772570563072940049294030242049841656547973670548558044586572022763784046682337985282710578431975354179501134727362577408021347682604502285157979579764746702284099956160156910890384582450267926594205550395879229818526480070683765041836562094555434613513415257006597488191634135955671964965403218727160264859304903978748958906612725079482827693895352175362185079629778514618843271922322381015874445052866523802253284389137527384589238442253547265309817157844783421582232702069028723233005386216347988509469547200479523112015043293226628272763217790884008786148022147537657810581970222630971749507212724847947816957296142365859578209083073323356034846531873029302665964501371837542889755797144992465403868179921389346924474198509733462679332107268687076806263991936196504409954216762784091466985692571507431574079380532392523947755744159184582156251819215523370960748332923492103451462643744980559610330799414534778457469999212859999939961228161521931488876938802228108300198601654941654261696858678837260958774567618250727599295089318052187292461086763995891614585505839727420980909781729323930106766386824040111304024700735085782872462713494636853181546969046696869392547251941399291465242385776255004748529547681479546700705034799958886769501612497228204030399546327883069597624936151010243655535223069061294938859901573466102371223547891129254769617600504797492806072126803922691102777226102544149221576504508120677173571202718024296810620377657883716690910941807448781404907551782038565390991047759414132154328440625030180275716965082096427348414695726397884256008453121406593580904127113592004197598513625479616063228873618136737324450607924411763997597461938358457491598809766744709300654634242346063423747466608043170126005205592849369594143408146852981505394717890045183575515412522359059068726487863575254191128887737176637486027660634960353679470269232297186832771739323619200777452212624751869833495151019864269887847171939664976907082521742336566272592844062043021411371992278526998469884770232382384005565551788908766136013047709843861168705231055314916251728373272867600724817298763756981633541507460883866364069347043720668865127568826614973078865701568501691864748854167915459650723428773069985371390430026653078398776385032381821553559732353068604301067576083890862704984188859513809103042359578249514398859011318583584066747237029714978508414585308578133915627076035639076394731145549583226694570249413983163433237897595568085683629725386791327505554252449194358912840504522695381217913191451350099384631177401797151228378546011603595540286440590249646693070776905548102885020808580087811577381719174177601733073855475800605601433774329901272867725304318251975791679296996504146070664571258883469797964293162296552016879730003564630457930884032748077181155533090988702550520768046303460865816539487695196004408482065967379473168086415645650530049881616490578831154345485052660069823093157776500378070466126470602145750579327096204782561524714591896522360839664562410519551052235723973951288181640597859142791481654263289200428160913693777372229998332708208296995573772737566761552711392258805520189887620114168005468736558063347160373429170390798639652296131280178267971728982293607028806908776866059325274637840539769184808204102194471971386925608416245112398062011318454124478205011079876071715568315407886543904121087303240201068534194723047666672174986986854707678120512473679247919315085644477537985379973223445612278584329684664751333657369238720146472367942787004250325558992688434959287612400755875694641370562514001179713316620715371543600687647731867558714878398908107429530941060596944315847753970094398839491443235366853920994687964506653398573888786614762944341401049888993160051207678103588611660202961193639682134960750111649832785635316145168457695687109002999769841263266502347716728657378579085746646077228341540311441529418804782543876177079043000156698677679576090996693607559496515273634981189641304331166277471233881740603731743970540670310967676574869535878967003192586625941051053358438465602339179674926784476370847497833365557900738419147319886271352595462518160434225372996286326749682405806029642114638643686422472488728343417044157348248183330164056695966886676956349141632842641497453334999948000266998758881593507357815195889900539512085351035726137364034367534714104836017546488300407846416745216737190483109676711344349481926268111073994825060739495073503169019731852119552635632584339099822498624067031076831844660729124874754031617969941139738776589986855417031884778867592902607004321266617919223520938227878880988633599116081923535557046463491132085918979613279131975649097600013996234445535014346426860464495862476909434704829329414041114654092398834443515913320107739441118407410768498106634724104823935827401944935665161088463125678529776973468430306146241803585293315973458303845541033701091676776374276210213701354854450926307190114731848574923318167207213727935567952844392548156091372812840633303937356242001604566455741458816605216660873874804724339121295587776390696903707882852775389405246075849623157436917113176134783882719416860662572103685132156647800147675231039357860689611125996028183930954870905907386135191459181951029732787557104972901148717189718004696169777001791391961379141716270701895846921434369676292745910994006008498356842520191559370370101104974733949387788598941743303178534870760322198297057975119144051099423588303454635349234982688362404332726741554030161950568065418093940998202060999414021689090070821330723089662119775530665918814119157783627292746156185710372172471009521423696483086410259288745799932237495519122195190342445230753513380685680735446499512720317448719540397610730806026990625807602029273145525207807991418429063884437349968145827337207266391767020118300464819000241308350884658415214899127610651374153943565721139032857491876909441370209051703148777346165287984823533829726013611098451484182380812054099612527458088109948697221612852489742555551607637167505489617301680961380381191436114399210638005083214098760459930932485102516829446726066613815174571255975495358023998314698220361338082849935670557552471290274539776214049318201465800802156653606776550878380430413431059180460680083459113664083488740800574127258670479225831912741573908091438313845642415094084913391809684025116399193685322555733896695374902662092326131885589158083245557194845387562878612885900410600607374650140262782402734696252821717494158233174923968353013617865367376064216677813773995100658952887742766263684183068019080460984980946976366733566228291513235278880615776827815958866918023894033307644191240341202231636857786035727694154177882643523813190502808701857504704631293335375728538660588890458311145077394293520199432197117164223500564404297989208159430716701985746927384865383343614579463417592257389858800169801475742054299580124295810545651083104629728293758416116253256251657249807849209989799062003593650993472158296517413579849104711166079158743698654122234834188772292944633517865385673196255985202607294767407261676714557364981210567771689348491766077170527718760119990814411305864557791052568430481144026193840232247093924980293355073184589035539713308844617410795916251171486487446861124760542867343670904667846867027409188101424971114965781772427934707021668829561087779440504843752844337510882826477197854000650970403302186255614733211777117441335028160884035178145254196432030957601869464908868154528562134698835544456024955666843660292219512483091060537720198021831010327041783866544718126039719068846237085751808003532704718565949947612424811099928867915896904956394762460842406593094862150769031498702067353384834955083636601784877106080980426924713241000946401437360326564518456679245666955100150229833079849607994988249706172367449361226222961790814311414660941234159359309585407913908720832273354957208075716517187659944985693795623875551617575438091780528029464200447215396280746360211329425591600257073562812638733106005891065245708024474937543184149401482119996276453106800663118382376163966318093144467129861552759820145141027560068929750246304017351489194576360789352855505317331416457050499644389093630843874484783961684051845273288403234520247056851646571647713932377551729479512613239822960239454857975458651745878771331813875295980941217422730035229650808917770506825924882232215493804837145478164721397682096332050830564792048208592047549985732038887639160199524091893894557676874973085695595801065952650303626615975066222508406742889826590751063756356996821151094966974458054728869363102036782325018232370845979011154847208761821247781326633041207621658731297081123075815982124863980721240786887811450165582513617890307086087019897588980745664395515741536319319198107057533663373803827215279884935039748001589051942087971130805123393322190346624991716915094854140187106035460379464337900589095772118080446574396280618671786101715674096766208029576657705129120990794430463289294730615951043090222143937184956063405618934251305726829146578329334052463502892917547087256484260034962961165413823007731332729830500160256724014185152041890701154288579920812198449315699905918201181973350012618772803681248199587707020753240636125931343859554254778196114293516356122349666152261473539967405158499860355295332924575238881013620234762466905581643896786309762736550472434864307121849437348530060638764456627218666170123812771562137974614986132874411771455244470899714452288566294244023018479120547849857452163469644897389206240194351831008828348024924908540307786387516591130287395878709810077271827187452901397283661484214287170553179654307650453432460053636147261818096997693348626407743519992868632383508875668359509726557481543194019557685043724800102041374983187225967738715495839971844490727914196584593008394263702087563539821696205532480321226749891140267852859967340524203109179789990571882194939132075343170798002373659098537552023891164346718558290685371189795262623449248339249634244971465684659124891855662958932990903523923333364743520370770101084388003290759834217018554228386161721041760301164591878053936744747205998502358289183369292233732399948043710841965947316265482574809948250999183300697656936715968936449334886474421350084070066088359723503953234017958255703601693699098867113210979889707051728075585519126993067309925070407024556850778679069476612629808225163313639952117098452809263037592242674257559989289278370474445218936320348941552104459726188380030067761793138139916205806270165102445886924764924689192461212531027573139084047000714356136231699237169484813255420091453041037135453296620639210547982439212517254013231490274058589206321758949434548906846399313757091034633271415316223280552297297953801880162859073572955416278867649827418616421878988574107164906919185116281528548679417363890665388576422915834250067361245384916067413734017357277995634104332688356950781493137800736235418007061918026732855119194267609122103598746924117283749312616339500123959924050845437569850795704622266461900010350049018303415354584283376437811198855631877779253720116671853954183598443830520376281944076159410682071697030228515225057312609304689842343315273213136121658280807521263154773060442377475350595228717440266638914881717308643611138906942027908814311944879941715404210341219084709408025402393294294549387864023051292711909751353600092197110541209668311151632870542302847007312065803262641711616595761327235156666253667271899853419989523688483099930275741991646384142707798870887422927705389122717248632202889842512528721782603050099451082478357290569198855546788607946280537122704246654319214528176074148240382783582971930101788834567416781139895475044833931468963076339665722672704339321674542182455706252479721997866854279897799233957905758189062252547358220523642485078340711014498047872669199018643882293230538231855973286978092225352959101734140733488476100556401824239219269506208318381454698392366461363989101210217709597670490830508185470419466437131229969235889538493013635657618610606222870559942337163102127845744646398973818856674626087948201864748767272722206267646533809980196688368099415907577685263986514625333631245053640261056960551318381317426118442018908885319635698696279503673842431301133175330532980201668881748134298868158557781034323175306478498321062971842518438553442762012823457071698853051832617964117857960888815032960229070561447622091509473903594664691623539680920139457817589108893199211226007392814916948161527384273626429809823406320024402449589445612916704950823581248739179964864113348032475777521970893277226234948601504665268143987705161531702669692970492831628550421289814670619533197026950721437823047687528028735412616639170824592517001071418085480063692325946201900227808740985977192180515853214739265325155903541020928466592529991435379182531454529059841581763705892790690989691116438118780943537152133226144362531449012745477269573939348154691631162492887357471882407150399500944673195431619385548520766573882513963916357672315100555603726339486720820780865373494244011579966750736071115935133195919712094896471755302453136477094209463569698222667377520994516845064362382421185353488798939567318780660610788544000550827657030558744854180577889171920788142335113866292966717964346876007704799953788338787034871802184243734211227394025571769081960309201824018842705704609262256417837526526335832424066125331152942345796556950250681001831090041124537901533296615697052237921032570693705109083078947999900499939532215362274847660361367769797856738658467093667958858378879562594646489137665219958828693380183601193236857855855819555604215625088365020332202451376215820461810670519533065306060650105488716724537794283133887163139559690583208341689847606560711834713621812324622725884199028614208728495687963932546428534307530110528571382964370999035694888528519040295604734613113826387889755178856042499874831638280404684861893818959054203988987265069762020199554841265000539442820393012748163815853039643992547020167275932857436666164411096256633730540921951967514832873480895747777527834422109107311135182804603634719818565557295714474768255285786334934285842311874944000322969069775831590385803935352135886007960034209754739229673331064939560181223781285458431760556173386112673478074585067606304822940965304111830667108189303110887172816751957967534718853722930961614320400638132246584111115775835858113501856904781536893813771847281475199835050478129771859908470762197460588742325699582889253504193795826061621184236876851141831606831586799460165205774052942305360178031335726326705479033840125730591233960188013782542192709476733719198728738524805742124892118347087662966720727232565056512933312605950577772754247124164831283298207236175057467387012820957554430596839555568686118839713552208445285264008125202766555767749596962661260456524568408613923826576858338469849977872670655519185446869846947849573462260629421962455708537127277652309895545019303773216664918257815467729200521266714346320963789185232321501897612603437368406719419303774688099929687758244104787812326625318184596045385354383911449677531286426092521153767325886672260404252349108702695809964759580579466397341906401003636190404203311357933654242630356145700901124480089002080147805660371015412232889146572239314507607167064355682743774396578906797268743847307634645167756210309860409271709095128086309029738504452718289274968921210667008164858339553773591913695015316201890888748421079870689911480466927065094076204650277252865072890532854856143316081269300569378541786109696920253886503457718317668688592368148847527649846882194973972970773718718840041432312763650481453112285099002074240925585925292610302106736815434701525234878635164397623586041919412969769040526483234700991115424260127343802208933109668636789869497799400126016422760926082349304118064382913834735467972539926233879158299848645927173405922562074910530853153718291168163721939518870095778818158685046450769934394098743351443162633031724774748689791820923948083314397084067308407958935810896656477585990556376952523265361442478023082681183103773588708924061303133647737101162821461466167940409051861526036009252194721889091810733587196414214447865489952858234394705007983038853886083103571930600277119455802191194289992272235345870756624692617766317885514435021828702668561066500353105021631820601760921798468493686316129372795187307897263735371715025637873357977180818487845886650433582437700414771041493492743845758710715973155943942641257027096512510811554824793940359768118811728247215825010949609662539339538092219559191818855267806214992317276316321833989693807561685591175299845013206712939240414459386239880938124045219148483164621014738918251010909677386906640415897361047643650006807710565671848628149637111883219244566394581449148616550049567698269030891118568798692947051352481609174324301538368470729289898284602223730145265567989862776796809146979837826876431159883210904371561129976652153963546442086919756737000573876497843768628768179249746943842746525631632300555130417422734164645512781278457777245752038654375428282567141288583454443513256205446424101103795546419058116862305964476958705407214198521210673433241075676757581845699069304604752277016700568454396923404171108988899341635058515788735343081552081177207188037910404698306957868547393765643363197978680367187307969392423632144845035477631567025539006542311792015346497792906624150832885839529054263768766896880503331722780018588506973623240389470047189761934734430843744375992503417880797223585913424581314404984770173236169471976571535319775499716278566311904691260918259124989036765417697990362375528652637573376352696934435440047306719886890196814742876779086697968852250163694985673021752313252926537589641517147955953878427849986645630287883196209983049451987439636907068276265748581043911223261879405994155406327013198989570376110532360629867480377915376751158304320849872092028092975264981256916342500052290887264692528466610466539217148208013050229805263783642695973370705392278915351056888393811324975707133102950443034671598944878684711643832805069250776627450012200352620370946602341464899839025258883014867816219677519458316771876275720050543979441245990077115205154619930509838698254284640725554092740313257163264079293418334214709041254253352324802193227707535554679587163835875018159338717423606155117101312352563348582036514614187004920570437201826173319471570086757853933607862273955818579758725874410254207710547536129404746010009409544495966288148691590389907186598056361713769222729076419775517772010427649694961105622059250242021770426962215495872645398922769766031052498085575947163107587013320886146326641259114863388122028444069416948826152957762532501987035987067438046982194205638125583343642194923227593722128905642094308235254408411086454536940496927149400331978286131818618881111840825786592875742638445005994422956858646048103301538891149948693543603022181094346676400002236255057363129462629609619876056425996394613869233083719626595473923462413459779574852464783798079569319865081597767535055391899115133525229873611277918274854200868953965835942196333150286956119201229888988700607999279541118826902307891310760361763477948943203210277335941690865007193280401716384064498787175375678118532132840821657110754952829497493621460821558320568723218557406516109627487437509809223021160998263303391546949464449100451528092508974507489676032409076898365294065792019831526541065813682379198409064571246894847020935776119313998024681340520039478194986620262400890215016616381353838151503773502296607462795291038406868556907015751662419298724448271942933100485482445458071889763300323252582158128032746796200281476243182862217105435289834820827345168018613171959332471107466222850871066611770346535283957762599774467218571581612641114327179434788599089280848669491413909771673690027775850268664654056595039486784111079011610400857274456293842549416759460548711723594642910585090995021495879311219613590831588262068233215615308683373083817327932819698387508708348388046388478441884003184712697454370937329836240287519792080232187874488287284372737801782700805878241074935751488997891173974612932035108143270325140903048746226294234432757126008664250833318768865075642927160552528954492153765175149219636718104943531785838345386525565664065725136357506435323650893679043170259787817719031486796384082881020946149007971513771709906195496964007086766710233004867263147551053723175711432231741141168062286420638890621019235522354671166213749969326932173704310598722503945657492461697826097025335947502091383667377289443869640002811034402608471289900074680776484408871134135250336787731679770937277868216611786534423173226463784769787514433209534000165069213054647689098505020301504488083426184520873053097318949291642532293361243151430657826407028389840984160295030924189712097160164926561341343342229882790992178604267981245728534580133826099587717811310216734025656274400729683406619848067661580502169183372368039902793160642043681207990031626444914619021945822969099212278855394878353830564686488165556229431567312827439082645061162894280350166133669782405177015521962652272545585073864058529983037918035043287670380925216790757120406123759632768567484507915114731344000183257034492090971243580944790046249431345502890068064870429353403743603262582053579011839564908935434510134296961754524957396062149028872893279252069653538639644322538832752249960598697475988232991626354597332444516375533437749292899058117578635555562693742691094711700216541171821975051983178713710605106379555858890556885288798908475091576463907469361988150781468526213325247383765119299015610918977792200870579339646382749068069876916819749236562422608715417610043060890437797667851966189140414492527048088197149880154205778700652159400928977760133075684796699295543365613984773806039436889588764605498387147896848280538470173087111776115966350503997934386933911978988710915654170913308260764740630571141109883938809548143782847452883836807941888434266622207043872288741394780101772139228191199236540551639589347426395382482960903690028835932774585506080131798840716244656399794827578365019551422155133928197822698427863839167971509126241054872570092407004548848569295044811073808799654748156891393538094347455697212891982717702076661360248958146811913361412125878389557735719498631721084439890142394849665925173138817160266326193106536653504147307080441493916936326237376777709585031325599009576273195730864804246770121232702053374266705314244820816813030639737873664248367253983748769098060218278578621651273856351329014890350988327061725893257536399397905572917516009761545904477169226580631511102803843601737474215247608515209901615858231257159073342173657626714239047827958728150509563309280266845893764964977023297364131906098274063353108979246424213458374090116939196425045912881340349881063540088759682005440836438651661788055760895689672753153808194207733259791727843762566118431989102500749182908647514979400316070384554946538594602745244746681231468794344161099333890899263841184742525704457251745932573898956518571657596148126602031079762825416559050604247911401695790033835657486925280074302562341949828646791447632277400552946090394017753633565547193100017543004750471914489984104001586794617924161001645471655133707407395026044276953855383439755054887109978520540117516974758134492607943368954378322117245068734423198987884412854206474280973562580706698310697993526069339213568588139121480735472846322778490808700246777630360555123238665629517885371967303463470122293958160679250915321748903084088651606111901149844341235012464692802880599613428351188471544977127847336176628506216977871774382436256571177945006447771837022199910669502165675764404499794076503799995484500271066598781360380231412683690578319046079276529727769404361302305178708054651154246939526512710105292707030667302444712597393995051462840476743136373997825918454117641332790646063658415292701903027601733947486696034869497654175242930604072700505903950314852292139257559484507886797792525393176515641619716844352436979444735596426063339105512682606159572621703669850647328126672452198906054988028078288142979633669674412480598219214633956574572210229867759974673812606936706913408155941201611596019023775352555630060624798326124988128819293734347686268921923977783391073310658825681377717232831532908252509273304785072497713944833389255208117560845296659055394096556854170600117985729381399825831929367910039184409928657560599359891000296986446097471471847010153128376263114677420914557404181590880006494323785583930853082830547607679952435739163122188605754967383224319565065546085288120190236364471270374863442172725787950342848631294491631847534753143504139209610879605773098720135248407505763719925365047090858251393686346386336804289176710760211115982887553994012007601394703366179371539630613986365549221374159790511908358829009765664730073387931467891318146510931676157582135142486044229244530411316065270097433008849903467540551864067734260358340960860553374736276093565885310976099423834738222208729246449768456057956251676557408841032173134562773585605235823638953203853402484227337163912397321599544082842166663602329654569470357718487344203422770665383738750616921276801576618109542009770836360436111059240911788954033802142652394892968643980892611463541457153519434285072135345301831587562827573389826889852355779929572764522939156747756667605108788764845349363606827805056462281359888587925994094644604170520447004631513797543173718775603981596264750141090665886616218003826698996196558058720863972117699521946678985701179833244060181157565807428418291061519391763005919431443460515404771057005433900018245311773371895585760360718286050635647997900413976180895536366960316219311325022385179167205518065926351803625121457592623836934822266589557699466049193811248660909979812857182349400661555219611220720309227764620099931524427358948871057662389469388944649509396033045434084210246240104872332875008174917987554387938738143989423801176270083719605309438394006375611645856094312951759771393539607432279248922126704580818331376416581826956210587289244774003594700926866265965142205063007859200248829186083974373235384908396432614700053242354064704208949921025040472678105908364400746638002087012666420945718170294675227854007450855237772089058168391844659282941701828823301497155423523591177481862859296760504820386434310877956289292540563894662194826871104282816389397571175778691543016505860296521745958198887868040811032843273986719862130620555985526603640504628215230615459447448990883908199973874745296981077620148713400012253552224669540931521311533791579802697955571050850747387475075806876537644578252443263804614304288923593485296105826938210349800040524840708440356116781717051281337880570564345061611933042444079826037795119854869455915205196009304127100727784930155503889536033826192934379708187432094991415959339636811062755729527800425486306005452383915106899891357882001941178653568214911852820785213012551851849371150342215954224451190020739353962740020811046553020793286725474054365271759589350071633607632161472581540764205302004534018357233829266191530835409512022632916505442612361919705161383935732669376015691442994494374485680977569630312958871916112929468188493633864739274760122696415884890096571708616059814720446742866420876533479985822209061980217321161423041947775499073873856794118982466091309169177227420723336763503267834058630193019324299639720444517928812285447821195353089891012534297552472763573022628138209180743974867145359077863353016082155991131414420509144729353502223081719366350934686585865631485557586244781862010871188976065296989926932817870557643514338206014107732926106343152533718224338526352021773544071528189813769875515757454693972715048846979361950047772097056179391382898984532742622728864710888327017372325881824465843624958059256033810521560620615571329915608489206434030339526226345145428367869828807425142256745180618414956468611163540497189768215422772247947403357152743681940989205011365340012384671429655186734415374161504256325671343024765512521921803578016924032669954174608759240920700466934039651017813485783569444076047023254075555776472845075182689041829396611331016013111907739863246277821902365066037404160672496249013743321724645409741299557052914243820807609836482346597388669134991978401310801558134397919485283043673901248208244481412809544377389832005986490915950532285791457688496257866588599917986752055455809900455646117875524937012455321717019428288461740273664997847550829422802023290122163010230977215156944642790980219082668986883426307160920791408519769523555348865774342527753119724743087304361951139611908003025587838764420608504473063129927788894272918972716989057592524467966018970748296094919064876469370275077386643239191904225429023531892337729316673608699622803255718530891928440380507103006477684786324319100022392978525537237556621364474009676053943983823576460699246526008909062410590421545392790441152958034533450025624410100635953003959886446616959562635187806068851372346270799732723313469397145628554261546765063246567662027924520858134771760852169134094652030767339184114750414016892412131982688156866456148538028753933116023229255561894104299533564009578649534093511526645402441877594931693056044868642086275720117231952640502309977456764783848897346431721598062678767183800524769688408498918508614900343240347674268624595239589035858213500645099817824463608731775437885967767291952611121385919472545140030118050343787527766440276261894101757687268042817662386068047788524288743025914524707395054652513533945959878961977891104189029294381856720507096460626354173294464957661265195349570186001541262396228641389779673332907056737696215649818450684226369036784955597002607986799626101903933126376855696876702929537116252800554310078640872893922571451248113577862766490242516199027747109033593330930494838059785662884478744146984149906712376478958226329490467981208998485716357108783119184863025450162092980582920833481363840542172005612198935366937133673339246441612522319694347120641737549121635700857369439730597970971972666664226743111776217640306868131035189911227133972403688700099686292254646500638528862039380050477827691283560337254825579391298525150682996910775425764748832534141213280062671709400909822352965795799780301828242849022147074811112401860761341515038756983091865278065889668236252393784527263453042041880250844236319038331838455052236799235775292910692504326144695010986108889991465855188187358252816430252093928525807796973762084563748211443398816271003170315133440230952635192958868069082135585368016100021374085115448491268584126869589917414913382057849280069825519574020181810564129725083607035685105533178784082900004155251186577945396331753853209214972052660783126028196116485809868458752512999740409279768317663991465538610893758795221497173172813151793290443112181587102351874075722210012376872194474720934931232410706508061856237252673254073332487575448296757345001932190219911996079798937338367324257610393898534927877747398050808001554476406105352220232540944356771879456543040673589649101761077594836454082348613025471847648518957583667439979150851285802060782055446299172320202822291488695939972997429747115537185892423849385585859540743810488262464878805330427146301194158989632879267832732245610385219701113046658710050008328517731177648973523092666123458887310288351562644602367199664455472760831011878838915114934093934475007302585581475619088139875235781233134227986650352272536717123075686104500454897036007956982762639234410714658489578024140815840522953693749971066559489445924628661996355635065262340533943914211127181069105229002465742360413009369188925586578466846121567955425660541600507127664176605687427420032957716064344860620123982169827172319782681662824993871499544913730205184366907672357740005393266262276032365975171892590180110429038427418550789488743883270306328327996300720069801224436511639408692222074532024462412115580435454206421512158505689615735641431306888344318528085397592773443365538418834030351782294625370201578215737326552318576355409895403323638231921989217117744946940367829618592080340386757583411151882417743914507736638407188048935825686854201164503135763335550944031923672034865101056104987272647213198654343545040913185951314518127643731043897250700498198705217627249406521461995923214231443977654670835171474936798618655279171582408065106379950018429593879915835017158075988378496225739851212981032637937621832245659423668537679911314010804313973233544909082491049914332584329882103398469814171575601082970658306521134707680368069532297199059990445120908727577622535104090239288877942463048328031913271049547859918019696783532146444118926063152661816744319355081708187547705080265402529410921826485821385752668815558411319856002213515888721036569608751506318753300294211868222189377554602722729129050429225978771066787384000061677215463844129237119352182849982435092089180168557279815642185819119749098573057033266764646072875743056537260276898237325974508447964954564803077159815395582777913937360171742299602735310276871944944491793978514463159731443535185049141394155732938204854212350817391254974981930871439661513294204591938010623142177419918406018034794988769105155790555480695387854006645337598186284641990522045280330626369562649091082762711590385699505124652999606285544383833032763859980079292284665950355121124528408751622906026201185777531374794936205549640107300134885315073548735390560290893352640071327473262196031177343394367338575912450814933573691166454128178817145402305475066713651825828489809951213919399563324133655677709800308191027204099714868741813466700609405102146269028044915964654533010775469541308871416531254481306119240782118869005602778182423502269618934435254763357353648561936325441775661398170393063287216690572225974520919291726219984440964615826945638023950283712168644656178523556516412771282691868861557271620147493405227694659571219831494338162211400693630743044417328478610177774383797703723179525543410722344551255558999864618387676490397246116795901810003509892864120419516355110876320426761297982652942588295114127584126273279079880755975185157684126474220947972184330935297266521001566251455299474512763155091763673025946213293019040283795424632325855030109670692272022707486341900543830265068121414213505715417505750863990767394633514620908288893493837643939925690060406731142209331219593620298297235116325938677224147791162957278075239505625158160313335938231150051862689053065836812998810866326327198061127154885879809348791291370749823057592909186293919501472119758606727009254771802575033773079939713453953264619526999659638565491759045833358579910201271320458390320085387888163363768518208372788513117522776960978796214237216254521459128183179821604411131167140691482717098101545778193920231156387195080502467972579249760577262591332855972637121120190572077140914864507409492671803581515757151405039761096384675556929897038354731410022380258346876735012977541327953206097115450648421218593649099791776687477448188287063231551586503289816422828823274686610659273219790716238464215348985247621678905026099804526648392954235728734397768049577409144953839157556548545905897649519851380100795801078375994577529919670054760225255203445398871253878017196071816407812484784725791240782454436168234523957068951427226975043187363326301110305342333582160933319121880660826834142891041517324721605335584999322454873077882290525232423486153152097693846104258284971496347534183756200301491570327968530186863157248840152663983568956363465743532178349319982554211730846774529708583950761645822963032442432823773745051702856069806788952176819815671078163340526675953942492628075696832610749532339053622309080708145591983735537774874202903901814293731152933464446815121294509759653430628421531944572711861490001765055817709530246887526325011970520947615941676872778447200019278913725184162285778379228443908430118112149636642465903363419454065718354477191244662125939265662030688852005559912123536371822692253178145879259375044144893398160865790087616502463519704582889548179375668104647461410514249887025213993687050937230544773411264135489280684105910771667782123833281026218558775131272117934444820144042574508306394473836379390628300897330624138061458941422769474793166571762318247216835067807648757342049155762821758397297513447899069658953254894033561561316740327647246921250575911625152965456854463349811431767025729566184477548746937846423373723898192066204851189437886822480727935202250179654534375727416391079197295295081294292220534771730418447791567399173841831171036252439571615271466900581470000263301045264354786590329073320546833887207873544476264792529769017091200787418373673508771337697768349634425241994995138831507487753743384945825976556099655595431804092017849718468549737069621208852437701385375768141663272241263442398215294164537800049250726276515078908507126599703670872669276430837722968598516912230503746274431085293430527307886528397733524601746352770320593817912539691562106363762588293757137384075440646896478310070458061344673127159119460843593582598778283526653115106504162329532904777217408355934972375855213804830509000964667608830154061282430874064559443185341375522016630581211103345312074508682433943215904359443031243122747138584203039010607094031523555617276799416002039397509989762933532585557562480899669182986422267750236019325797472674257821111973470940235745722227121252685238429587427350156366009318804549333898974157149054418255973808087156528143010267046028431681923039253529779576586241439270154974087927313105163611913757700892956482332364829826302460797587576774537716010249080462430185652416175665560016085912153455626760219268998285537787258314514408265458348440947846317877737479465358016996077940556870119232860804113090462935087182712593466871276669487389982459852778649956916546402945893506496433580982476596516514209098675520380830920323048734270346828875160407154665383461961122301375945157925269674364253192739003603860823645076269882749761872357547676288995075211480485252795084503395857083813047693788132112367428131948795022806632017002246033198967197064916374117585485187848401205484467258885140156272501982171906696081262778548596481836962141072171421498636191877475450965030895709947093433785698167446582826791194061195603784539785583924076127634410576675102430755981455278616781594965706255975507430652108530159790807334373607943286675789053348366955548680391343372015649883422089339997164147974693869690548008919306713805717150585730714881564992071408675825960287605645978242377024246980532805663278704192676846711626687946348695046450742021937394525926266861355294062478136120620263649819999949840514386828525895634226432870766329930489172340072547176418868535137233266787792173834754148002280339299735793615241275582956927683723123479898944627433045456679006203242051639628258844308543830720149567210646053323853720314324211260742448584509458049408182092763914000854042202355626021856434899414543995041098059181794888262805206644108631900168856815516922948620301073889718100770929059048074909242714101893354281842999598816966099383696164438152887721408526808875748829325873580990567075581701794916190611400190855374488272620093668560447559655747648567400817738170330738030547697360978654385938218722058390234444350886749986650604064587434600533182743629617786251808189314436325120510709469081358644051922951293245007883339878842933934243512634336520438581291283434529730865290978330067126179813031679438553572629699874035957045845223085639009891317947594875212639707837594486113945196028675121056163897600888009274611586080020780334159145179707303683519697776607637378533301202412011204698860920933908536577322239241244905153278095095586645947763448226998607481329730263097502881210351772312446509534965369309001863776409409434983731325132186208021480992268550294845466181471555744470966953017769043427203189277060471778452793916047228153437980353967986142437095668322149146543801459382927739339603275404800955223181666738035718393275707714204672383862461780397629237713120958078936384144792980258806552212926209362393063731349664018661951081158347117331202580586672763999276357907806381881306915636627412543125958993611964762610140556350339952314032311381965623632719896183725484533370206256346422395276694356837676136871196292181875457608161705303159072882870071231366630872275491866139577373054606599743781098764980241401124214277366808275139095931340415582626678951084677611866595766016599817808941498575497628438785610026379654317831363402513581416115190209649913354873313111502270068193013592959597164019719605362503355847998096348871803911161281359596856547886832585643789617315976200241962155289629790481982219946226948713746244472909345647002853769495885959160678928249105441251599630078136836749020937491573289627002865682934443134234735123929825916673950342599586897069726733258273590312128874666045146148785034614282776599160809039865257571726308183349444182019353338507129234577437557934406217871133006310600332405399169368260374617663856575887758020122936635327026710068126182517291460820254189288593524449107013820621155382779356529691457650204864328286555793470720963480737269214118689546732276775133569019015372366903686538916129168888787640752549349424973342718117889275993159671935475898809792452526236365903632007085444078454479734829180208204492667063442043755532505052752283377888704080403353192340768563010934777212563908864041310107381785333831603813528082811904083256440184205374679299262203769871801806112262449090924264198582086175117711378905160914038157500336642415609521632819712233502316742260056794128140621721964184270578432895980288233505982820819666624903585778994033315227481777695284368163008853176969478369058067106482808359804669884109813515865490693331952239436328792399053481098783027450017206543369906611778455436468772363184446476806914282800455107468664539280539940910875493916609573161971503316696830992946634914279878084225722069714887558063748030886299511847318712477729191007022758889348693945628951580296537215040960310776128983126358996489341024703603664505868728758905140684123812424738638542790828273382797332688550493587430316027474906312957234974261122151741715313361862241091386950068883589896234927631731647834007746088665559873338211382992877691149549218419208777160606847287467368188616750722101726110383067178785669481294878504894306308616994879870316051588410828235127415353851336589533294862949449506186851477910580469603906937266267038651290520113781085861618888694795760741358553458515176805197333443349523012039577073962377131603024288720053732099825300897761897312981788194467173116064723147624845755192873278282512718244680782421521646956781929409823892628494376024885227900362021938669648221562809360537317804086372726842669642192994681921490870170753336109479138180406328738759384826953558307739576144799727000347288018278528138950321798634521611106660883931405322694490545552786789441757920244002145078019209980446138254780585804844241640477503153605490659143007815837243012313751156228401583864427089071828481675752712384678245953433444962201009607105137060846180118754312072549133499424761711563332140893460915656155060031738421870157022610310191660388706466143889773631878094071152752817468957640158104701696524755774089164456867771715850058326994340167720215676772406812836656526412298243946513319735919970940327593850266955747023181320324371642058614103360652453693916005064495306016126782264894243739716671766123104897503188573216555498834212180284691252908610148552781527762562375045637576949773433684601560772703550962904939248708840628106794362241870474700836884267102255830240359984164595112248527263363264511401739524808619463584078375355688562231711552094722306543709260679735100056554938122457548372854571179739361575616764169289580525729752233855861138832217110736226581621884244317885748879810902665379342666421699091405653643224930133486798815488662866505234699723557473842483059042367714327879231642240387776433019260019228477831383763253612102533693581262408686669973827597736568222790721583247888864236934639616436330873013981421143030600873066616480367898409133592629340230432497492688783164360268101130957071614191283068657732353263965367739031766136131596555358499939860056515592193675997771793301974468814837110320650369319289452140265091546518430993655349333718342529843367991593941746622390038952767381333061774762957494386871697845376721949350659087571191772087547710718993796089477451265475750187119487073873678589020061737332107569330221632062843206567119209695058576117396163232621770894542621460985841023781321581772760222273813349541048100307327510779994899197796388353073444345753297591426376840544226478421606312276964696715647399904371590332390656072664411643860540483884716191210900870101913072607104411414324197679682854788552477947648180295973604943970047959604029274629920357209976195014034831538094771460105633344699882082212058728151072918297121191787642488035467231691654185225672923442918712816323259696541354858957713320833991128877591722611527337901034136208561457799239877832508355073019981845902595835598926055329967377049172245493532968330000223018151722657578752405883224908582128008974790932610076257877042865600699617621217684547899644070506624171021332748679623743022915535820078014116534806564748823061500339206898379476625503654982280532966286211793062843017049240230198571997894883689718304380518217441914766042975243725168343541121703863137941142209529588579806015293875275379903093887168357209576071522190027937929278630363726876582268124199338480816602160372215471014300737753779269906958712128928801905203160128586182549441335382078488346531163265040764242839087012101519423196165226842200371123046430067344206474771802135307012409886035339915266792387110170622186588357378121093517977560442563469499978725112544085452227481091487430725986960204027594117894258128188215995235965897918114407765335432175759525553615812800116384672031934650729680799079396371496177431211940202129757312516525376801735910155733815377200195244454362007184847566341540744232862106099761324348754884743453966598133871746609302053507027195298394327142537115576660002578442303107342955153394506048622276496668762407932435319299263925373107689213535257232108088981933916866827894828117047262450194840970097576092098372409007471797334078814182519584259809624174761013825264395513525931188504563626418830033853965243599741693132289471987830842760040136807470390409723847394583489618653979059411859931035616843686921948538205578039577388136067954990008512325944252972448666676683464140218991594456530942344065066785194841776677947047204195882204329538032631053749488312218039127967844610013972675389219511911783658766252808369005324900459741094706877291232821430463533728351995364827432583311914445901780960778288358373011185754365995898272453192531058811502630754257149394302445393187017992360816661130542625399583389794297160207033876781503301028012009599725222228080142357109476035192554443492998676781789104555906301595380976187592035893734197896235893112598390259831026719330418921510968915622506965911982832345550305908173073519550372166587028805399213857603703537710517802128012956684198414036287272562321442875430221090947272107347413497551419073704331827662617727599688882602722524713368335345281669277959132886138176634985772893690096574956228710302436259077241221909430087175569262575806570991201665962243608024287002454736203639484125595488172727247365346778364720191830399871762703751572464992228946793232269361917764161461879561395669956778306829031658969943076733350823499079062410020250613405734430069574547468217569044165154063658468046369262127421107539904218871612761778701425886482577522388918459952337629237791558574454947736129552595222657863646211837759847370034797140820699414558071908021359073226923310083175951065901912129479540860364075735875020589020870457967000705526250581142066390745921527330940682364944159089100922029668052332526619891131184201629163107689408472356436680818216865721968826835840278550078280404345371018365109695178233574303050485265373807353107418591770561039739506264035544227515610110726177937063472380499066692216197119425912044508464174638358993823994651739550900085947999013602667426149429006646711506717542217703877450767356374215478290591101261915755587023895700140511782264698994491790830179547587676016809410013583761357859135692445564776446417866711539195135769610486492249008344671548638305447791433009768048687834818467273375843689272431044740680768527862558516509208826381323362314873333671476452045087662761495038994950480956046098960432912335834885999029452640028499428087862403981181488476730121675416110662999555366819312328742570206373835202008686369131173346973174121915363324674532563087134730279217495622701468732586789173455837996435135880095935087755635624881049385299900767513551352779241242927748856588856651324730251471021057535251651181485090275047684551825209633189906852761443513821366215236889057878669943228881602837748203550601602989400911971385017987168363374413927597364401700701476370665570350433812111357641501845182141361982349515960106475271257593518530433287553778305750956742544268471221961870917856078393614451138333564910325640573389866717812397223751931643061701385953947436784339267098671245221118969084023632741149660124348309892994173803058841716661307304006758838043211155537944060549772170594282151488616567277124090338772774562909711013488518437411869565544974573684521806698291104505800429988795389902780438359628240942186055628778842880212755388480372864001944161425749990427200959520465417059810498996750451193647117277222043610261407975080968697517660023718774834801612031023468056711264476612374762785219024120256994353471622666089367521983311181351114650385489502512065577263614547360442685949807439693233129712737715734709971395229118265348515558713733662912024271430250376326950135091161295299378586468130722648600827088133353819370368259886789332123832705329762585738279009782646054559855513183668884462826513379849166783940976135376625179825824966345877195012438404035914084920973375464247448817618407002356958017741017769692507781489338667255789856458985105689196092439884156928069698335224022563457049731224526935419383700484318335719651662672157552419340193309901831930919658292096965624766768365964701959575473934551433741370876151732367720422738567427917069820454995309591887243493952409444167899884631984550485239366297207977745281439941825678945779571255242682608994086331737153889626288962940211210888442737656862452761213037101730078513571540453304150795944777614359743780374243664697324713841049212431413890357909241603640631403814983148190525172093710396402680899483257229795456404270175772290417323479607361878788991331830584306939482596131871381642346721873084513387721908697510494284376932502498165667381626061594176825250999374167288395174406693254965340310145222531618900923537648637848288134420987004809622717122640748957193900291857330746010436072919094576799461492929042798168772942648772995285843464777538690695014898413392454039414468026362540211861431703125111757764282991464453340892097696169909837265236176874560589470496817013697490952307208268288789073019001825342580534342170592871393173799314241085264739094828459641809361413847583113613057610846236683723769591349261582451622155213487924414504175684806412063652017038633012953277769902311864802006755690568229501635493199230591424639621702532974757311409422018019936803502649563695586642590676268568737211033915679383989576556519317788300024161353956243777784080174881937309502069990089089932808839743036773659552489130015663329407790713961546453408879151030065132193448667324827590794680787981942501958262232039513125201410996053126069655540424867054998678692302174698900954785072567297879476988883109348746442640071818316033165551153427615562240547447337804924621495213325852769884733626918264917433898782478927846891882805466998230368993978341374758702580571634941356843392939606819206177333179173820856243643363535986349449689078106401967407443658366707158692452118299789380407713750129085864657890577142683358276897855471768718442772612050926648610205153564284063236848180728794071712796682006072755955590404023317874944734645476062818954151213916291844429765106694796935401686601005519607768733539651161493093757096855455938151378956903925101495326562814701199832699220006639287537471313523642158926512620407288771657835840521964605410543544364216656224456504299901025658692727914275293117208279393775132610605288123537345106837293989358087124386938593438917571337630072031976081660446468393772580690923729752348670291691042636926209019960520412102407764819031601408586355842760953708655816427399534934654631450404019952853725200495780525465625115410925243799132626271360909940290226206283675213230506518393405745011209934146491843332364656937172591448932415900624202061288573292613359680872650004562828455757459659212053034131011182750130696150983551563200431078460190656549380654252522916199181995960275232770224985573882489988270746593635576858256051806896428537685077201222034792099393617926820659014216561592530673794456894907085326356819683186177226824991147261573203580764629811624401331673789278868922903259334986179702199498192573961767307583441709855922217017182571277753449150820527843090461946083521740200583867284970941102326695392144546106621500641067474020700918991195137646690448126725369153716229079138540393756007783515337416774794210038400230895185099454877903934612222086506016050035177626483161115332558770507354127924990985937347378708119425305512143697974991495186053592040383023571635272763087469321962219006426088618367610334600225547747781364101269190656968649501268837629690723396127628722304114181361006026404403003599698891994582739762411461374480405969706257676472376606554161857469052722923822827518679915698339074767114610302277660602006124687647772881909679161335401988140275799217416767879923160396356949285151363364721954061117176738737255572852294005436178517650230754469386930787349911035218253292972604455321079788771144989887091151123725060423875373484125708606406905205845212275453384800820530245045651766951857691320004281675805492481178051983264603244579282973012910531838563682120621553128866856495651261389226136706409395333457052698695969235035309422454386527867767302754040270224638448355323991475136344104405009233036127149608135549053153902100229959575658370538126196568314428605795669662215472169562087001372776853696084070483332513279311223250714863020695124539500373572334680709465648308920980153487870563349109236605755405086411152144148143463043727327104502776866195310785832333485784029716092521532609255893265560067212435946425506599677177038844539618163287961446081778927217183690888012677820743010642252463480745430047649288555340906218515365435547412547615276977266776977277705831580141218568801170502836527554321480348800444297999806215790456416195721278450892848980642649742709057912906921780729876947797511244730599140605062994689428093103421641662993561482813099887074529271604843363081840412646963792584309418544221635908457614607855856247381493142707826621518554160387020687698046174740080832434366538235455510944949843109349475994467267366535251766270677219418319197719637801570216993367508376005716345464367177672338758864340564487156696432104128259564534984138841289042068204700761559691684303899934836679354254921032811336318472259230555438305820694167562999201337317548912203723034907268106853445403599356182357631283776764063101312533521214199461186935083317658785204711236433122676512996417132521751355326186768194233879036546890800182713528358488844411176123410117991870923650718485785622102110400977699445312179502247957806950653296594038398736990724079767904082679400761872954783596349279390457697366164340535979221928587057495748169669406233427261973351813662606373598257555249650980726012366828360592834185584802695841377255897088378994291054980033111388460340193916612218669605849157148573356828614950001909759112521880039641976216355937574371801148055944229873041819680808564726571354761283162920044988031540210553059707666636274932830891688093235929008178741198573831719261672883491840242972129043496552694272640255964146352591434840067586769035038232057293413298159353304444649682944136732344215838076169483121933311981906109614295220153617029857510559432646146850545268497576480780800922133581137819774927176854507553832876887447459159373116247060109124460982942484128752022446259447763874949199784044682925736096853454984326653686284448936570411181779380644161653122360021491876876946739840751717630751684985635920148689294310594020245796962292456664488196757629434953532638217161339575779076637076456957025973880043841580589433613710655185998760075492418721171488929522173772114608115434498266547987258005667472405112200738345927157572771521858994694811794064446639943237004429114074721818022482583773601734668530074498556471542003612359339731291445859152288740871950870863221883728826282288463184371726190330577714765156414382230679184738603914768310814135827575585364359772165002827780371342286968878734979509603110889919614338666406845069742078770028050936720338723262963785603865321643234881555755701846908907464787912243637555666867806761054495501726079114293083128576125448194444947324481909379536900820638463167822506480953181040657025432760438570350592281891987806586541218429921727372095510324225107971807783304260908679427342895573555925272380551144043800123904168771644518022649168164192740110645162243110170005669112173318942340054795968466980429801736257040673328212996215368488140410219446342464622074557564396045298531307140908460849965376780379320189914086581466217531933766597011433060862500982956691763884605676297293146491149370462446935198403953444913514119366793330193661766365255514917498230798707228086085962611266050428929696653565251668888557211227680277274370891738963977225756489053340103885593112567999151658902501648696142720700591605616615970245198905183296927893555030393468121976158218398048396056252309146263844738629603984892438618729850777592879272206855480721049781765328621018747676689724884113956034948037672703631692100735083407386526168450748249644859742813493648037242611670426687083192504099761531907685577032742178501000644198412420739640013960360158381056592841368457411910273642027416372348821452410134771652960312840865841978795111651152982781462037913985500639996032659124852530849369031313010079997719136223086601109992914287124938854161203802041134018888721969347790449752745428807280350930582875442075513481666092787935356652125562013998824962847872621443236285367650259145046837763528258765213915648097214192967554938437558260025316853635673137926247587804944594418342917275698837622626184636545274349766241113845130548144983631178978448973207671950878415861887969295581973325069995140260151167552975057543781024223895792578656212843273120220071673057406928686936393018676595825132649914595026091706934751940897535746401683081179884645247361895605647942635807056256328118926966302647953595109712765913623318086692153578860781275991053717140220450618607537486630635059148391646765672320571451688617079098469593223672494673758309960704258922048155079913275208858378111768521426933478692189524062265792104362034885292626798401395321645879115157905046057971083898337186403802441751134722647254701079479399695355466961972676325522991465493349966323418595145036098034409221220671256769872342794070885707047429317332918852389672197135392449242617864118863779096281448691786946817759171715066911148002075943201206196963779510322708902956608556222545260261046073613136886900928172106819861855378098201847115416363032626569928342415502360097804641710852553761272890533504550613568414377585442967797701466029438768722511536380119175815402812081825560648541078793359892106442724489861896162941341800129513068363860929410008313667337215300835269623573717533073865333820484219030818644918409372394403340524490955455801640646076158101030176748847501766190869294609876920169120218168829104087070956095147041692114702741339005225334083481287035303102391969997859741390859360543359969707560446013424245368249609877258131102473279856207212657249900346829388687230489556225320446360263985422525841646432427161141981780248259556354490721922658386366266375083594431487763515614571074552801615967704844271419443518327569840755267792641126176525061596523545718795667317091331935876162825592078308018520689015150471334038610031005591481785211038475454293338918844412051794396997019411269511952656491959418997541839323464742429070271887522353439367363366320030723274703740712398256202466265197409019976245205619855762576000870817308328834438183107005451449354588542267857855191537229237955549433341017442016960009069641561273229777022121795186837635908225512881647002199234886404395915301846400471432118636062252701154112228380277853891109849020134274101412155976996543887719748537643115822983853312307175113296190455900793806427669581901484262799122179294798734890186847167650382732855205908298452980625925035212845192592798659350613296194679625237397256558415785374456755899803240549218696288849033256085145534439166022625777551291620077279685262938793753045418108072928589198971538179734349618723292761474785019261145041327487324297058340847111233374627461727462658241532427105932250625530231473875925172478732288149145591560503633457542423377916037495250249302235148196138116256391141561032684495807250827343176594405409826976526934457986347970974312449827193311386387315963636121862349726140955607992062831699942007205481152535339394607685001990988655386143349578165008996164907967814290114838764568217491407562376761845377514403147541120676016072646055685925779932207033733339891636950434669069482843662998003741452762771654762382554617088318981086880684785370553648046935095881802536052974079353867651119507937328208314626896007107517552061443378411454995013643244632819334638905093654571450690086448344018042836339051357815727397333453728426337217406577577107983051755572103679597690188995849413019599957301790124019390868135658553966194137179448763207986880037160730322054742357226689680188212342439188598416897227765219403249322731479366923400484897605903795809469604175427961378255378122394764614783292697654516229028170110043784603875654415173943396004891531881757665050095169740241564477129365661425394936888423051740012992055685428985389794266995677702708914651373689220610441548166215680421983847673087178759027920917590069527345668202651337311151800018143412096260165862982107666352336177400783778342370915264406305407180784335806107296110555002041513169637304684921335683726540030750982908936461204789111475303704989395283345782408281738644132271000296831194020332345642082647327623383029463937899837583655455991934086623509096796113400486702712317652666371077872511186035403755448741869351973365662177235922939677646325156202348757011379571209623772343137021203100496515211197601317641940820343734851285260291333491512508311980285017785571072537314913921570910513096505988599993156086365547740355189816673353588004821466509974143376118277772335191074121757284159258087259131507460602563490377726337391446137703802131834744730111303267029691733504770163210661622783002726928336558401179141944780874825336071440329625228577500980859960904093631263562132816207145340610422411208301000858726425211226248014264751942618432585338675387405474349107271004975428115946601713612259044015899160022982780179603519408004651353475269877760952783998436808690898919783969353217998013913544255271791022539701081063214304851137829149851138196914304349750018998068164441212327332830719282436240673319655469267785119315277511344646890550424811336143498460484905125834568326644152848971397237604032821266025351669391408204994732048602162775979177123475109750240307893575993771509502175169355582707253391189233407022383207758580213717477837877839101523413209848942345961369234049799827930414446316270721479611745697571968123929191374098292580556195520743424329598289898052923336641541925636738068949420147124134052507220406179435525255522500874879008656831454283516775054229480327478304405643858159195266675828292970522612762871104013480178722480178968405240792436058274246744307672164527031345135416764966890127478680101029513386269864974821211862904033769156857624069929637249309720162870720018983542369036414927023696193854737248032985504511208919287982987446786412915941753167560253343531062674525450711418148323988060729714023472552071349079839898235526872395090936566787899238371257897624875599044322889538837731734894112275707141095979004791930104674075041143538178246463079598955563899188477378134134707024674736211204898622699188851745625173251934135203811586335012391305444191007362844756751416105041097350585276204448919097890198431548528053398577784431393388399431044446566924455088594631408175122033139068159659251054685801313383815217641821043342978882611963044311138879625874609022613090084997543039577124323061690626291940392143974027089477766370248815549932245882597902063125743691094639325280624164247686849545532493801763937161563684785982371590238542126584061536722860713170267474013114526106376538339031592194346981760535838031061288785205154693363924108846763200956708971836749057816308515813816196688222204757043759061433804072585386208356517699842677452319582418268369827016023741493836349662935157685406139734274647089968561817016055110488097155485911861718966802597354170542398513556001872033507906094642127114399319604652742405088222535977348151913543857125325854049394601086579379805862014336607882521971780902581737087091646045272797715350991034073642502038638671822052287969445838765294795104866071739022932745542678566977686593992341683412227466301506215532050265534146099524935605085492175654913483095890653617569381763747364418337897422970070354520666317092960759198962773242309025239744386101426309868773391388251868431650102796491149773758288891345034114886594867021549210108432808078342808941729800898329753694064496990312539986391958160146899522088066228540841486427478628197554662927881462160717138188018084057208471586890683691939338186427845453795671927239797236465166759201105799566396259853551276355876814021340982901629687342985079247184605687482833138125916196247615690287590107273310329914062386460833337863825792630239159000355760903247728133888733917809696660146961503175422675112599331552967421333630022296490648093458200818106180210022766458040027821333675857301901137175467276305904435313131903609248909724642792845554991349000518029570708291905255678188991389962513866231938005361134622429461024895407240485712325662888893172211643294781619055486805494344103409068071608802822795968695013364381426825217047287086301013730115523686141690837567574763723976318575703810944339056456446852418302814810799837691851212720193504404180460472162693944578837709010597469321972055811407877598977207200968938224930323683051586265728111463799698313751793762321511125234973430524062210524423435373290565516340666950616589287821870775679417608071297378133518711793165003315552382248773065344417945341539520242444970341012087407218810938826816751204229940494817944947273289477011157413944122845552182842492224065875268917227278060711675404697300803703961878779669488255561467438439257011582954666135867867189766129731126720007297155361302750355616781776544228744211472988161480270524380681765357327557860250584708401320883793281600876908130049249147368251703538221961903901499952349538710599735114347829233949918793660869230137559636853237380670359114424326856151210940425958263930167801712866923928323105765885171402021119695706479981403150563304514156441462316376380990440281625691757648914256971416359843931743327023781233693804301289262637538266779503416933432360750024817574180875038847509493945489620974048544263563716499594992098088429479036366629752600324385635294584472894454716620929749549661687741412088213047702281611645604400723635158114972973921896673738264720472264222124201656015028497130633279581430251601369482556701478093579088965713492615816134690180696508955631012121849180584792272069187169631633004485802010286065785859126997463766174146393415956953955420331462802651895116793807457331575984608617370268786760294367778050024467339133243166988035407323238828184750105164133118953703648842269027047805274249060349208295475505400345716018407257453693814553117535421072655783561549987444748042732345788006187314934156604635297977945507535930479568720931672453654720838168585560604380197703076424608348987610134570939487700294617579206195254925575710903852517148852526567104534981341980339064152987634369542025608027761442191431892139390883454313176968510184010384447234894886952098194353190650655535461733581404554483788475252625394966586999205841765278012534103389646981864243003414679138061902805960785488801078970551694621522877309010446746249797999262712095168477956848258334140226647721084336243759374161053673404195473896419789542533503630186140095153476696147625565187382329246854735693580289601153679178730355315937836308224861517777054157757656175935851201669294311113886358215966761883032610416465171484697938542262168716140012237821377977413126897726671299202592201740877007695628347393220108815935628628192856357189338495885060385315817976067947984087836097596014973342057270460352179060564760328556927627349518220323614411258418242624771201203577638889597431823282787131460805353357449429762179678903456816988955351850447832561638070947695169908624710001974880920500952194363237871976487033922381154036347548862684595615975519376541011501406700122692747439388858994385973024541480106123590803627458528849356325158538438324249325266608758890831870070910023737710657698505643392885433765834259675065371500533351448990829388773735205145933304962653141514138612443793588507094468804548697535817021290849078734780681436632332281941582734567135644317153796781805819585246484008403290998194378171817730231700398973305049538735611626102399943325978012689343260558471027876490107092344388463401173555686590358524491937018104162620850429925869743581709813389404593447193749387762423240985283276226660494238512970945324558625210360082928664972417491914198896612955807677097959479530601311915901177394310420904907942444886851308684449370590902600612064942574471035354765785924270813041061854621988183009063458818703875585627491158737542106466795134648758677154383801852134828191581246259933516019893559516796893285220582479942103451271587716334522299541883968044883552975336128683722593539007920166694133909116875880398882886921600237325736158820716351627133281051818760210485218067552664867390890090719513805862673512431221569163790227732870541084203784152568328871804698795251307326634027851905941733892035854039567703561132935448258562828761061069822972142096199350933131217118789107876687204454887608941017479864713788246215395593333327556200943958043453791978228059039595992743691379377866494096404877784174833643268402628293240626008190808180439091455635193685606304508914228964521998779884934747772913279726602765840166789013649050874114212686196986204412696528298108704547986155954533802120115564697997678573892018624359932677768945406050821883822790983362716712449002676117849826437703300208184459000971723520433199470824209877151444975101705564302954282181967000920251561584417420593365814813490269311151709387226002645863056132560579256092733226557934628080568344392137368840565043430739657406101777937014142461549307074136080544210029560009566358897789926763051771878194370676149821756418659011616086540863539151303920131680576903417259645369235080641744656235152392905040947995318407486215121056183385456617665260639371365880252166622357613220194170137266496607325201077194793126528276330241380516490717456596485374835466919452358031530196916048099460681490403781982973236093008713576079862142542209641900436790547904993007837242158195453541837112936865843055384271762803527912882112930835157565659994474178843838156514843422985870424559243469329523282180350833372628379183021659183618155421715744846577842013432998259456688455826617197901218084948033244878725818377480552226815101137174536841787028027445244290547451823467491956418855124442133778352142386597992598820328708510933838682990657199461490629025742768603885051103263854454041918495886653854504057132362968106914681484786965916686184275679846004186876229805556296304595322792305161672159196867584952363529893578850774608153732145464298479231051167635774949462295256949766035947396243099534331040499420967788382700271447849406903707324910644415169605325656058677875741747211082743577431519406075798356362914332639781221894628744779811980722564671466405485013100965678631488009030374933887536418316513498254669467331611812336485439764932502617954935720430540218297487125110740401161140589991109306249231281311634054926257135672181862893278613883371802853505650359195274140086951092616754147679266803210923746708721360627833292238641361959412133927803611827632410600474097111104814000362334271451448333464167546635469973149475664342365949349684588455152415075637660508663282742479413606287604129064491382851945640264315322585862404314183866959063324506300039221319264762596269151090445769530144405461803785750303668621246227863975274666787012100339298487337501447560032210062235802934377495503203701273846816306102657030087227546296679688089058712767636106622572235222973920644309352432722810085997309513252863060110549791564479184500461804676240892892568091293059296064235702106152464620502324896659398732493396737695202399176089847457184353193664652912584806448019652016283879518949933675924148562613699594530728725453246329152911012876377060557060953137752775186792329213495524513308986796916512907384130216757323863757582008036357572800275449032795307990079944254110872569318801466793559583467643286887696661009739574996783659339784634695994895061049038364740950469522606385804675807306991229047408987916687211714752764471160440195271816950828973353714853092893704638442089329977112585684084660833993404568902678751600877546126798801546585652206121095349079670736553970257619943137663996060606110640695933082817187642604357342536175694378484849525010826648839515970049059838081210522111109194332395113605144645983421079905808209371646452312770402316007213854372346126726099787038565709199850759563461324846018840985019428768790226873455650051912154654406382925385127631766392205093834520430077301702994036261543400132276391091298832786392041230044555168405488980908077917463609243933491264116424009388074635660726233669584276458369826873481588196105857183576746200965052606592926354829149904576830721089324585707370166071739819448502884260396366074603118478622583105658087087030556759586134170074540296568763477417643105175103673286924555858208237203860178173940517513043799486882232004437804310317092103426167499800007301609481458637448877852227307633049538394434538277060876076354209844500830624763025357278103278346176697054428715531534001649707665719598504174819908720149087568603778359199471934335277294728553792578768483230110185936580071729118696761765505377503029303383070644891281141202550615089641100762382457448865518258105814034532012475472326908754750707857765973254284445935304499207001453874894822655644222369636554419422544133821222547749753549462482768053333698328415613869236344335855386847111143049824839899180316545863828935379913053522283343013795337295401625762322808113849949187614414132293376710656349252881452823950620902235787668465011666009738275366040544694165342223905210831458584703552935221992827276057482126606529138553034554974455147034493948686342945965843102419078592368022456076393678416627051855517870290407355730462063969245330779578224594971042018804300018388142900817303945050734278701312446686009277858181104091151172937487362788787490746528556543474888683106411005102302087510776891878152562273525155037953244485778727761700196485370355516765520911933934376286628461984402629525218367852236747510880978150709897841308624588152266096355140187449583692691779904712072649490573726428600521140358123107600669951853612486274675637589622529911649606687650826173417848478933729505673900787861792535144062104536625064046372881569823231750059626108092195521115085930295565496753886261297233991462835847604862762702730973920200143224870758233735491524608560821032888297418390647886992327369136004883743661522351705843770554521081551336126214291181561530175888257359489250710887926212864139244330938379733386780613179523731526677382085802470143352700924380326695174211950767088432634644274912755890774686358216216604274131517021245858605623363149316464691394656249747174195835421860774871105733845843368993964591374060338215935224359475162623918868530782282176398323730618020424656047752794310479618972429953302979249748168405289379104494700459086499187272734541350810198388186467360939257193051196864560185578245021823106588943798652243205067737996619695547244058592241795300682045179537004347245176289356677050849021310773662575169733552746230294303120359626095342357439724965921101065781782610874531887480318743082357369919515634095716270099244492974910548985151965866474014822510633536794973714251022934188258511737199449911509758374613010550506419772153192935487537119163026203032858865852848019350922587577559742527658401172134232364808402714335636754204637518255252494432965704386138786590196573880286840189408767281671413703366173265012057865391578070308871426151907500149257611292767519309672845397116021360630309054224396632067432358279788933232440577919927848463333977773765590187057480682867834796562414610289950848739969297075043275302997287229732793444298864641272534816060377970729829917302929630869580199631241330493935049332541235507105446118259114111645453471032988104784406778013807713146540009938630648126661433085820681139583831916954555825942689576984142889374346708410794631893253910696395578070602124597489829356461356078898347241997947856436204209461341238761319886535235831299686226894860840845665560687695450127448663140505473535174687300980632278046891224682146080672762770840240226615548502400895289165711761743902033758487784291128962324705919187469104200584832614067733375102719565399469716251724831223063391932870798380074848572651612343493327335666447335855643023528088392434827876088616494328939916639921048830784777704804572849145630335326507002958890626591549850940797276756712979501009822947622896189159144152003228387877348513097908101912926722710377889805396415636236416915498576840839846886168437540706512103906250612810766379904790887967477806973847317047525344215639038720123880632368803701794930895490077633152306354837425681665336160664198003018828712376748189833024683637148830925928337590227894258806008728603885916884973069394802051122176635913825152427867009440694235512020156837777885182467002565170850924962374772681369428435006293881442998790530105621737545918267997321773502936892806521002539626880749809264345801165571588670044350397650532347828732736884086354000274067678382196352222653929093980736739136408289872201777674716811819585613372158311905468293608323697611345028175783020293484598292500089568263027126329586629214765314223335179309338795135709534637718368409244442209631933129562030557551734006797374061416210792363342380564685009203716715264255637185388957141641977238742261059666739699717316816941543509528319355641770566862221521799115135563970714331289365755384464832620120642433801695586269856102246064606933079384785881436740700059976970364901927332882613532936311240365069865216063898725026723808740339674439783025829689425689674186433613497947524552629142652284241924308338810358005378702399954217211368655027534136221169314069466951318692810257479598560514500502171591331775160995786555198188619321128211070944228724044248115340605589595835581523201218460582056359269930347885113206862662758877144603599665610843072569650056306448918759946659677284717153957361210818084154727314266174893313417463266235422207260014601270120693463952056444554329166298666078308906811879009081529506362678207561438881578135113469536630387841209234694286873083932043233387277549680521030282154432472338884521534372725012858974769146080831440412586818154004918777228786980185345453700652665564917091542952275670922221747411206272065662298980603289167206874365494824610869736722554740481288924247185432360575341167285075755205713115669795458488739874222813588798584078313506054829055148278529489112190538319562422871948475940785939804790109419407067176443903273071213588738504999363883820550168340277749607027684488028191222063688863681104356952930065219552826152699127163727738841899328713056346468822739828876319864570983630891778648708667618548568004767255267541474285102814580740315299219781455775684368111018531749816701642664788409026268282444825802753209454991510451851771654631180490456798571325752811791365627815811128881656228587603087597496384943527567661216895926148503078536204527450775295063101248034180458405943292607985443562009370809182152392037179067812199228049606973823874331262673030679594396095495718957721791559730058869364684557667609245090608820221223571925453671519183487258742391941089044411595993276004450655620646116465566548759424736925233695599303035509581762617623184956190649483967300203776387436934399982943020914707361894793269276244518656023955905370512897816345542332011497599489627842432748378803270141867695262118097500640514975588965029300486760520801049153788541390942453169171998762894127722112946456829486028149318156024967788794981377721622935943781100444806079767242927624951078415344642915084276452000204276947069804177583220909702029165734725158290463091035903784297757265172087724474095226716630600546971638794317119687348468873818665675127929857501636341131462753049901913564682380432997069577015078933772865803571279091376742080565549362464641260024379684543777339026472512819416320076848736251764065967540693621758879307855916478777274739272002910342949562447661308200729250734529170764226621047673037863169954237455117456522022783324096803524667663190861011206745856287317413511162292078865132941244815471628182079877168346341322362234117788231027659825109358892359162055108763298087993165172528938001237817434896832151590562493347370206832232100118637395770567473867102173212375224325241626358034376253606808669163571594551527817803921774322823436633772811186390511893075901666650742952758384008544635419317190531363659724905158409106582201814734799022359067138146905116051922301269482316113417439944714833040862484269139502336713412425123864026657258130943967621939655407386524229897879782198637918299709557924747320303239116410445906907977862315518349593035305923789817515891457650408025109479123421758482841881950138546165680301755035580054944894884871351605375593402345748979516602442338321406030095937105588457052515704266284600354402823678768550982678161765520375795655481677896038927498355608791541177749423573400764161093294003899982199267257086957326068774974224802023307525187650255968420760693229988587579898896460744381788170081548895226516722834045277219106991415764639485231126794730865803195076455197675628957428881796812090026387145257858315277615109088631740243695680567873015235427804793414266495223833707117511265375503942372098784668049139473446530714079622597287130503077258714875570502582573466866613802351426056116197405543436548698005444879295970287590352258409782683598666446586045694241390729095266249932902973440568160683805726626057277088407073471496060064561454070734432782514087474275506722304845357006092214390002992981608211717047917614505191008132670375214930740567853311106058352912781007391749949197845112915913681107394055175208019630539350740248509553772500367054665162330430425087442324262404632115078997336929985407041656261041976700202415094892411856092409637604429612002364590706449770627207919019235964807048923636979860198283087284228564752353162882791324295524814447505521909672046080689545181712204930321853740627247421519740305769043602686360780792004776232429551829473522027244376339027721392087767065716241639751785859254426923428535274328856336850789651962072519416556061870370550218462845434257850383000095374518292958440464918838685793483961151297160581665745096703677495836666693121881763679644943617130416037243050658485131749264055855194018005180908475211868224616976149243238319486434415908558011073070311201502243416073157929528752936835820397003389112114170685219366589789459503154389589015303827143001929589074149943592894083097077078362875914484037045038618966975811201852319231868659968038583812370329156207578835948780941688205531605128190152647592807574958154564221341459378167056992868299895611982353837157880480478704584175394665497690173220310890070303362911767308448450372145669644401469545173857434157810158618783839278552609399130570255575559060947051498093487773320072797573038245989466809680822221348485873822999281794090825665209581655472475244566743697594474686376332428904269776106791933910983300422310293728298798903209391092682836306173610173878123679898645149311702437128285882630486298884492207415640607147059137405524665756971870217355287245439427714809179364437650637861861324348635797411258520863459927803688792498354363298457687650165065115345008695721239507544785683173631557153527046524235259737513408825461609661440746675514226836031959801072152463551069171871335731685485631280857834435623670959650949946968820661185118086034202821331801249410991502601435450017432730793625113070298250499417994284451146479329154599555909587807621636668591791065435966065253525320273650725989121255686842802077246487722010996631829559552903393312284364864475973560859840760947298389542433932623153239918981852264180831296333546356874828863465618504810632288805596737844562000941465603499280879405115310057587129552571964111506850340773710604380371259575596985949362058477512026354947347534748189262254190352671614429284899857536740692165271630086060654373736823556588626486343689153218095572204456777137368310458075584529612832832606319629728527966674362974800821318627921869044284342630735760703999669430789508147269730253817375694922751795354326156912040594832860949992366412287881226419148504856328072066418557059520375030322916894489427578306090910852410601400683274205583969773823150734996108758763704255564964086855071942256344966732430656259250474581762733281816017019698166542426378763601453035946538450325476674999737340835665138186025156520283637389171016545414882674448009105704186162626837971120886141357279611099088292970229692128180978798951391504270936786444983196420134566833908775943006442485623012124614511697921939634409508083229281294270436599146482749984375942113020418297308417178813090379558545603247170819195302771465794555475544754284434408139388908609776017857389307518661906505018077165001840744325854024184360501118242990702323417243674525365349594799063334540754371812699399833719218485418735979845348934592268515068182662490078029335012658824974226241885352526636702827662499349829488748331061764208429016923052899608978604130065109028179805040587107671179041130217482796682353001960220253185576789843317586806378359968791601538922220236575765581586611409199394861599209159917553341783033347643131635012705390697079326567812415906434284721360235218236741214733124499944334155915274315931687477882533155092770336202901222597794809855392200064527162280855398278906584233447552821276517650572663267691141075034845871896996434875775138479148183635100621466818585096348887081456976722020167991199462417776688907917136865945960726468538810778783002161368276697026223459418737476733537998884403427046803042551694127158739320398444374604547816113056625176412759821181939661101850562880555942566060032312116180994622129301002470913347150682268430458680300904242861682025562140946087900065191099495570815816505828983340739466084457565780636690272843462018587328252924796505286681408503538519837523637451925622795490290557907030283950104854835929834542814487304358047053315081510503001521428117175393649133166172621235405527863308002083177055630294963594201654333094094177196326234119387105161570101798053551679370860291366756986097124120368583812957695307798141365700174761356966986146068491439699573837631695824602513342108072621713601943018087209888551415024163818325975259593165531865833117126857941527206612218422661411825154657484878312610347834546749258308729985447421206445095233245050877431496166555251797168020991720026409374921907569936896330281391647208963581771735555848592706524504862516419540550801343510323389813378302497701822754906381499964723334079613041469739476372650869273347108415685608430921316240434629863920841660055904598506491243505264766067600344441618186403670083774114101094320588955598658670077863671896944089622321374034113597199133135946553685446692367652589012108413777432482191812747847892287264892970032371873456157981599834839100412601050746964599430331978810634913923812490503061433407918328004063907098672596197098311265960147473725330526853717742146554005873924623727617364905198713368067723952570781360686683261395014329509474851594724667527201684316586608807512768584755541184381169011622005552113484488960668259227431319007963011587084670117654935393046563356225311244727796669005831190616101972663073970542531439818457379449486780134618217875939076999602029083965677287846905736401564015047696448993947541474608339918696889271156942345492651246645507792554028105037622035967530558601856492056062879090769453339208808849477828894851122154743230191383245562993881020614490266876010207753210915684977830740859649857967152617010039475494539917698791323546550106407355816999409756248149967443278429202762644189793918158394562708173301582160225519659898769376164019861207466755048861110855726764507052622446130222335852072273620485057289238815884938754535229186399714380884061757286220950122506515863104258884134355431973729856217753072022629475552483044445340434888878581170341345342522354319407877972846760181583227097745180929342193189815812482832658950040704855206099893783900341914163044639163880549658786501375046341695655156618298878630705842306967660254053024811471007899784211830489010464056896539702885595530925558636052158957375114089564905844156774937105859648014315874614491250549253191164653821585197370093280194530320572628452658046046337816631429933076646646530760590548962888724189716060225882617577539922055131509377200624863085562820493575752724995567089221634233983602565328731029194007041176919220850015116735670101958971001797019578120892910969417754369904368202563024054822625401905696507710581574240721496339560365270283334407305750073674562260584649886115101689612181119058471714461068719761017456587373796740697137423238753839030317200200207205928488785123911746471673743737923283881966201687622191346233893762599527025672138622112458980212130501407288904300322535504095866818724139369938193069148744717186646183111942603161664070377316487001864799600243044003242241809402278533309011509880870678268835317200767522553138008818780431690190072804831799287414125476123089606833095828377667688287578688683092976001011974533898331952588619630132917094385816615374171794496319177154312506959853481285684619377669894277459170918802520012749905559407289696594793331672243621567896776966708035229039018485730806275670867658627104769409203565593025352743418965927002227049233186829991560936413757004988537304596396152734629396974951748062696451793018719986788537581415975799314806608557232568374305282764175670050288040489429899580948103534833934144927885925262192415547231997143385086637320926632728243514933640704589683852345624744361175256766987767597223439206357507471552918102762614012992480422883990297879925418517499129630283990729635588579890593317795908769073905646025623533567221552259468838298452882922966275137162422172954678670715840924184084147557582539385240963302051349704740695399567897981727860920462286839735779815111868152659884606949758965481314651150392626377749513761557248195116119877250344564710738513435927355538712462375598193813214238441581929070046389771683887207916361741432497079109658162746429717072871725142745898356897095534626820169085356108944898407100581920302176945120771774588795519510473384184739980796306767885845167575729904306971542642383498009870869933670912108394453506245922432312348278549660374657188014892937945147870540607924575900601219622123928720017215588666345734971409533721151655985757941724419889026167016101611557834315025460328781198424027484608510722406676778760855247617773833089502610064388350550205456324346167859451941795669874968515244883847513618180667108316165564209369270520611898517292617141714434655508706306063551012949400309759167799158426049197120954322702678432654296572403272088714321999645313202587109677165128549669962552698607311763718207498827399770601991362093083230736838206455732563765982912578131492224220427971241441629951265945639792759380383804782623160424325399132851123032247037561942321733047854078576244013291717992979240783390715757981426816864655382946847399205888631655934919867896962840447344968024077092831376408103352255242717404107673565424441004483347440101726441052954787296345898640501203608024451190350994974493973617181575277093780209236668135841636268319263406714182797421342546220705415600050959674045616840451771747952790353254932589120483385746590096781730416000521088934610768754004241977803082885181200173369559127137714195011361304409753279190504891583246399143483531648681548579178632935123925552510211182788573696060276931301469661433449642302114382483705633532793858895267672076688971274435815632088106650149568143558796576909857765902768707453659276364975553449617308078160987103248013795136170367763457594975686208013996374551762425147780628722265971455482906769295713643572152674468987889418820751292225756509143552828874614195097862427527881571566400763721037803194043095844272549269987169234331890022141503113998765260688761566740210197201719602390861082974927639569541153032275460173870795625993579785302443476716399591462317931239989986928437975702492369551587297683854005227651495614447105971962889888157109415171701518114743513643854005116246202131174800791983749700100471363432523281578911355450453371905275068229156185003328469567926226208190442473340362503892792071585960039363153368842724375366799698647934741133198328619441460653922784099903143840354565047056789552024827176011874335643690243503085631309559055250390492731613311734922584644609024535079190184411299321699770451832853586480428556822208737213616490586303256368913084103760215679927020005322355439804653119339775459044045078568021398465009693429547310269249947586466058091669984160684646087293943808274308285817479694172872990311013192675573897984091364253479694943480377703364634958476862982590103470727861218623001986607987782684245933835638919570206853521603211635230064988744600200170413056985365154668752023859375183280372851143274811699683692849220447380570633496618711240947835915869626858643589141359854253577688774932743634514754488640868818030369652431755688300205860773256959716086485415834468432489963077011371344675156930244885482077124133557732306949458067267845235943631507872728157901573070033178796854436279525719023623274614262868732738009497741122856237663214904653294072026197539071740422259539242888164559796570030957141389106936845036268231053986743753240052701534745893325679514941854537808827063457295962169085383535370381418115573816378209032561519869745357646412125498076005156141707298046994813593483150568116642793219335279822714715767340186088721518799669350252700757556099719882863064285448128275139280694702750148163289727314347348528529504604883271673978981563678804780443602109007320727369749344630499731442571560433133690387618100948873120713482710815889857483265854207510077953118326861708037070935927614936782530858340482351003632166378957426202550350116861543407379504516482896755698358935522020173679548075781909502697981271148703431190363112246128295303820512870430929471974594690821025634788995431771524379696211281224503426066399268852133079196370277780448857920573046990800923440186638113252097123096476059989947925759851008173039606822219975327301606582628527582576695078547260349382981335825281786706085126560022688717811253597829337347791412736284188656175920832879447410969703879854736984025458063294835022359393543587480223989760916296250110473931169449100666907230634693130169711820632535269244043840093724284428209709364856909468920087371753252557030543539828727812301139808093867015474885803445631871319602678548793893316205007675264112044390237583342724298699654786368534102848857370254725502365663418680919038388670787907208403619402164670121534837978151832826472578628815207101081499558980338118961569441756761340717046538512170902123777884333649651872119905407581877394397528364143953044245913903178813004188791887114553148267469987055587931040240388884083850687341625071657274185134952084963670955542450439483948045979156228282483787934152720362263369561805556371076814888893619275742659935823559431530887933052767558747512365065843969475604297192002319868024351719937868100361102312568364256079597410574153628297180046497748573718378639037039015397374911654685499716453941611216417610717145401765190565052520662277883129045719693205990241375395983861982603205495839501675552509644137118222561496014003023035407899209698677507867200038074267970530307167932296015648622808518403352350170608589512912223246117830253163628943946073652771336511631646446199099021224922412315168992767855863736315526002503488487813233001910189399616702731416999626511945742636761965002434737172729028462209798394871065982270009954918877696188505432653211802219444282228425152556141187434018041946141394514712872527592391255964437356833972896331267678234910356332961294719101515714311579549093390326141191865475237624721531102079369115848742205822747343201735585077122437969857965491580627950274097716886114807616315161855306856692457171769220443668433127398933794111629722451699985468562215702417594711769952916550211685500108985761934639455908826270775311465775223884634351937653973498480245497607602440308084489010683878697261237097835782451668011714859836794055290461982621656691720274262854823933960018254599409254308169691032978411234022885600190549342750223185294712829609693976813734197704278121300147328677605719405969979275512461718434956985641712872481183465420642318714551824152867630567513116267717735061751124546338799426529127010578995671805721436557918350691777930704075732904397494995822410623810514917650238504182730096620171750940590805408957283755406355152219965820757351315707592361539863945921115586400098809755261053838256899272158478504174606516151133788336097601211484870055601658124924706825684427204547289630942030665044529864622359422600855499158914995360649842803457949275700949795945060237877501947062463239495495782308228306684081880252107663907423097372091628533717680621644693543231791785530583317142084798863034084657264269395570026857605753934788858709460058272323051910811751423491268733658596079989173292891589600181509181633740080603547520005151175102901229924870961545928026206076169827218102916731554892942374085196743307916607849905578210193571366243599088361385980851615641747694605478554008195353067080308969763045294686823321053287823743894411568517627171163630940147990964945635459295013073900362682100732637008235615069126964318335171625439030469898931426154426359511363466057378654951244574752621678954703628904830484996804037722513431937373441236618586944588064018584073147633792940386340435919419872355263015654608051868676068043160845128459160424413269879125385602991599672787661951950531764883134693257366894644382558139108486209663742674579831301222343872583124422033094571457541470479293875858238997738515213523723895596643122356432626286011474890868171592810668727084008203377186921535235269263472268090825989889840026208152178282611229313118208660070996860365409818326807558247767069504109975861436243552161945353029200254667367996485043373133495208210751199258926638995647569858707901856123791578864374469037871509500112550210038845311923652965599461900474846620642347942329670060529003709175578188708193522146871427235277632559898086948721113845980014123842163827824412736542446748833381679716201128861914154019367129094789902646664431560983729615019686242282506723061667209435465714251493086424887785986827595887490650772602509518295367651811823686169447243607837642947624692263194989219646440683169287661615060508138463194151162025779078630718012311594586038965625265542233462344545073947886902681594975131168851436945210216883190446168629763325229863851818850049286935727647668238555646365544964006317648285575785866610228551564859908820958689444362546986795238226861159699100563660829267915337538160661122478695313261585318717638859893779291889029987938798100036973078489592706254104848593158543233956831042390299070263443797875691855434089764407601308444819786265079476440830134942435834281885915259293471436317533749589701072873501270788980481635045676667693207553051840432446100740321676471836083708475065126930707660849825299000317850305853682139512735038638246056425103377755809864643398017186208142663074172592226000511091342681074670129014301654101064933212283790827515001003530015654597508323772965439697382047741626571065740821649960626227496187953347907065988974871779564334064841745645747906925170149499810095353413548908754836327579522407206986291024671703579251441766703886609906985726260581240825336225218992000418975745765315123000064445715931701771688635483333051921582055946117357716321132233931965320386199005116178171334001070576652689919708169202219464704323795356411866063920558609034457064151797782145054722278852987210197858846070047420028468873795844228949974333656271877991721137916164492541329715652879529532639759538535920950138633380507561369530899547584883024261962758985941513780515805025767540401785795852448831172105089277089227273431973823884687307168230248788688585510108073522781405371406520758107270848167263977098731455162646911423286103036932984330300323676162714264067587806731883971515002798163374779078775038307986759404591073921034587404219617034925808189907205961291586420202885734009114955238865107911371495334639763988183948804530075074740372280936820535430494951948332833470075161979008687285439962981575605891637624723069162871111137676086480323752459664930411753946136464337804671165055504670671836221285795048067165630427626711429999113487698447050370637900181096888629721757951732433802780617470496302042492916619171886243355599282093243919445711886321556320161654247055375938696624656334121541014032286990930159132885808831241242882876373872742838038590710292748633351503090445328052597795658920554562434297982794134891756382400771612173324736428540160610044337641457220785921715591401037832020132133833096380778904095723810558829392796374381660686835195059277019515361601722158904287856784820682919441698718192862730827044416303962547130532843883379133747687358261221162583602728961624559041896770247453827583966522993712351630489833012421417455788591594256059792427721819908556279848605617453684478923796907975594555154646853163024462325674034895845462256744858202042457391994253094264224504202689038150152683602412559807597523648162809304891274615119623154611400822056396780658535407668688227542650381225999162076017089556747446524234452017661650325945665912966786324621379919222961458671422482492880647680321086477994100410060033906792752373625460277429600734788038356687522003482457694908456862696057715701919174892260635208129738797443835483286136939562450392976805783223402171676555917766840375723484409461762931288492689936871389838822271060279037990019045583360079739277410926655739233147025909233890654388422351324115388018559234956139930223919645050450369352927011566305153351918641864823442499919272027295345959906304872360804159576002966812111683172366038110542803591445720248256456105714055462420821343520948108417158289572445072063546816002305120140848054358742526171017681853883557558717415424775449772221419261315525269109175563331932322243218525422182729149159810583689702503522813002141192486014248068079753699647771939490680468355280834732761030604940973309169031678309793463661183278453186871646268073883365670456601042376850580139507443647963922284112697945134773004924987864965636794909929132712528977651918175427962806084932375520815361113240339713165504391887960198382138585000773242461778849187581459642642337889793330819488160040113126525635693244659398400636890315254722923991414474377069633893576192603918924793631780083102611419548543605157787160049557886565797066588551042882466363057207778902266777042512681571979533225107638903681976284402861025880539233932947467202408854127649238644760216116262082421299166036229918492378223630098347811952291382184732634228575912097980547828525059183798336801787411242644746002256241498069140074097972102327853957561512834580616541111792671042799057939449713494632895045651286884784187175802050458328387485313736911351025506201027753458094391050010218339732456504728894768792989259450198750767122363791875864720121496606115128048709648863056228440839369443872169212084920085155838125107074195518720809374694245973117281172105192890389637039423577686212766821093182763664984042124938144097959863114225436483965499983479084307021764385554351257436828228153032222380834767951113557014806318200453220723794891863572149106242526993994671015366846234105153338142684770627585203524099207972086991453730109551641503317628200196916411546026820723669255275141842996992053985343307306805737238050416719722112737405078927266340638850686734458560773266648384578027718911475801323105519878413365218519071460681389868867103147598264611293795439526672867275994833590259744587868768496462683484434414135917714587766088077845357183932937193739323640835633757668846821111799350554102085561884901020160050563954168745108220603555410817666460524124966224422804545243216032036019464135609792001959024049792923673298924553990101980112140290868699920575891777188074146122205024728585715367530747814389730571787268366360157613610077228631963885264623512553807731945956356796538236249992655180433079635962110674552852142902629498265675533527310046878865731047246649332656792733134512295505918623293739332608607745135077530901574443829487339779605322849358301361837958626480321297368474817516476913662110360369509106666505171711508278200932788358722598394046306837631811808904423626219988123682680785795262197216687201745517472627818032683058548803970977047934831035439855907843552776676033139884605271503138856332467688927104595851932895139167823857735772658100479825639355193520055204080028705967824973937478860528356493591497838037796496000521244583477900175604246586665199807702883943851638095504304921960324436090340085174660429627430976838715194598264473594023424821104475729111777958773134155360952759570898612586771456252399450075938020609355024892008476733229308574222255020645569023912654366357852427242905605320575403082101451238209021746697579765347517250146583747884808053773515042222404295760361375432486199655891939220504699982106293160967565179075132296077785755331026585842576086686764535520927748275567545177169950878941180593630524994496701237598006553499873966639539441701705969810151271933311840767923271853953980976404852784674387231643291002906549530861283330266400758012961849920702200255597215695758837616878436434679275586357397225356488413306011928957464280935785808113233143311528748217976603971257952890036407198923328131611640416937736628013259738222237426818917648959642270338039059295964969648213311447316676504197678110849096646942571706945700787126401448652242846948897617256746535220506162107300101926248314682120355169950152200731638400413203033324231216708268546893175843663043078435078592810447849266395265239871864417338008568169232134742975458326940216125333283790096064862778549412667951367404587741694559614076265662502990069226726787603658713793279604184883939339346926354341548095183623323317522937035210291464133127520371171667548720634738923293785107290295144629274154676194794274716691603049782928896147458702649979707920638724082502300642554499590401197410853516784440901880646293748354439614400353523310304041178457228902958180581032123743825898702747370401068377771592512645357065083009214792583498924751274536220061058545759973693135297078143742841340551954446721489415057452839171603715453082525558343202512542416624457524562964457910769717152147095185055003550543906316882581057850746356562047914667680556984384552027709969719889807233714869563567031776877637897432734928293439051455670607446079704769316462781214171381827437856146219708808702106421105737785147135883737738824076528045191427137488110559744718310093937519765980210024101251123081368260338474491087716132285766026393884928495989823656572720426357202637482564949491262914191713064628059566982549360326132019252804346170439028926027993140436137026582012131285148815857311178210413103357288871817295262711200081475064026830464189887697478791731737038139991888242416994212152776045185956711909418073734793310997092831554681656395271010461137625406644958618385463898220899677832955011143149959368039822230371363295742321735744647342109741491743641994731958840052638726959231836423254918455955045343778467094704509594201202114220864191279049359945213739248711074323149511380429379365543637217263481907571135312709307952729522112479531498969908089466574769556512436056114200866399056099000380302506124236077503293413472890501316772809713162683495963409292243031195084878867103533520023712730202916592975252657039210421496349523857085605723434621576956985134068304548331545907536471146996824209102321431171769227738534770417794076441001301048596092707211320523185382227444870243327103987811479127546080836115687792151311310450083663631007517511025900280864277150209627136623974010752884454683316182115027892643072976355761055112462033248005310599511150543148482955343295983057427245173788652719300073232173623758732731489091094553740270481185557199051683938745352067970859211896407854895041094056996598871598863362077955045219321563361246853031747054439402941829263552401554523160986825531389701880153970459625016917966481250155593231148267300563383579726032860177847414960045697257834956205873287301245145557634523029864814954410090788352980120701265410952518460666201767420452573679946907719084537874820608029048251670176619820730618331239219353569004070521549893903446593880904750772416954365185807506649045944318886297872357160302248135220460109063521450828063974927551284769435499620339916448879197437902095718886320024750207910237907307296374632633667459427556378453569136734552401489712590948036856628232100500394007310663207525728314711519263328928520696723934717509829526021254947643301953574383509258283111339115390633766173730772363027988986998579945016592376906754883798892940060516282614004815046948281403308391643424865093963545890913280595111633455036563482451915058317949808318272813479505077271733594966337188214919283787116463903566925779942457394355473044935559396848032790208614196815082606481092468854338332986639074547805263629161562798803187828270745163032786390756653362197506322424864576945975359667320060389826293000076125149479800895671245256955982758548576901246368659494224227727177151849641751071598416357207241224371968067203927064789427894217128426413342711831847944133460647243141150155098551171241466824331235206284065722692606904747919644729752832274956981963277872816259540120205380732958250049744593080978240952991296542331849879880077168163198608651208831586725650659441406184468374963189291374599342160348482288315828973094216147368925585169927155311558888760072170341024458744020844342827300467309795555666811501300338889583802314643138290026007632285034758307808788951803139810207627889851743534782251208467594974300244378958428956807526632036276962994601808349419949127065591308400058626563996391104068510412820071532462564263714563557576945284927112635577196325065896545536482125459263355257292595281499341587877651569223119151023373440716991656476398200089698462984399775938539811213321810328198969945792617649358297483733877523528594640351382382306269453634581003193672502069828073843334117528315731434263989641634712705303477569915580031181591809113788026883854757697292339888286032302997704306662886955301210272705763395989768941024996847949816842011992561348075644040655946238370872368881254894914879487348086141681055211400184551700844448429484755073273664282722206336582401745498808291301883914015680905000084954657373000327477972099175074617859515799532022372852359204007425152256386166756203188398117618611960221628474319079702503674592828046781785366473935600354038278281845766947823374571138221219326167295010427069409520265028052289859093500239449087456262053452217311940957783019536051850385496140621825306182036518273370621119893902448897538635818099449181578487833652886543654224830202789241704968965110417275947501781226785814391748649424357300909171264877160595920974458114629554223100220085120522589764778114827039426776664278274625939511743807198618722265586504030028469146927864680031836034638172640570270742262034297187555809938687124046562233389146465830554301315509528510972630050805188265272685335372937338569182693717167730316118647494810424215127915910146065697953331337740959367493264414637024275245393350301309928336485407069840343991212452492755802997988240920664464042585966200888741916498773027540372920421581093781471313622628866669454742124495528490914921933719362340294337125575569988652966236450353519202677763794248208286056893623152152317885014521313214914698685483594470686585010981314205892676416115162109405356780736810089734245872932705210853572676380564228840929665884477795279546710735193295474713015079220840328232204428944678218396547110902117340725139724757357008555312743219996751259582568063235880883884366203262266191414934740436498000247398332092411838667429609269460701418388178110714282439657796388439864782313715424989472583041145149526872423618996763058816820846327437441210390552765218710735564525713360114558045585684558650432859917676519619327114349866540777451450047307271171479571222757201812886446440777517460328242317338533765298981044232240467724632047951798097157602580088576897513405948054826877288477629384645496040270370508539419092769937066804551719416040376351180185513657545109524703460226002074174282384948178225490636599208474903758320574467795910675566064077500934712981700581876940802799269046059498721176341519148822518670439557310017937100046657292180372848797971569227888839704198254565706428908985827958625659901375968750078569853420944399597152366767355991155709006141301885395600693305082611578831597901882912877765396964067539208084858229047556190518637549059417647208090848523929966365377746870985680142361370763704674236180292186795924769777652926292904179839275053432943384476533398501228283627985150263745427966717714841975733906572871543054321575235449320534653754238204844850884634590853386677292538520444984413136863751894117684862613603681937363513393254080685226921474307329134467625293226408453308449386471515618139413634350364817794755097633925598827869036963238633034257944529229237752032874489020040532668139354752855017464531717214599508145561364692526650227115337381817597855795041988075485811336289154900903908060775415757361373755988018757307536248737001291223826113438103923437231353689889153374949378632498494176428141704528408296939917243232867725641504837657731144933521553852300178110827616363037090205259503779092534110470570046565251977925679331410886632640592623178893126031528575871642421190333798725775874290129037593626972723431489357257241883794186276864566775868692027601439805016387143520477673880900578928363381779738845734410014996643323582225792535171105948560789182401521998285226946509587631492471279520164467647402704689545435103069826179991402234072854891546806842095743207506621154487626644675798636443880232586360886918759442271521429650664161384963815027972173071265920578266002784718140034209265693070309044570245964675764901852781393148131509203641049845969060225314474822945707025270436304061114455142227669366501254252372074394018277525089414329152151705997454593125946821214351062276330331850433948895127672063729151249368193570319104693572905276288768782500485054800597323075326522779255241991315961791152206941968547918734156699781096702562993993208164507174173490564339865219986639055709352119852439067986150214486239284387398201876022854712303949459661572587509650320071247665759381372124801134153550616754720369579105597461067112541711745369543014719141993731972279716902116135726252431164722893666441426212438549813623694963571282116036854416071082317751078012983042538141908922492085953646108213956481132053160737077720760559934981503424064077512331512158999246297497845474385785595227089267102479199199645043040166005621762962340149282181611520504643814051201017632797902693271222701259270816304579408695938850308858577776769880577120277461858372818585997017721116037109827393241471979376638648431600084157927253061164085015150016520300200142743376390418788622635274702258984849469077694747613276391052599405660382382371636943555470658174827307182474182726362724046239944028444473642458644475104690299765267497344356985708539057819159958599609675061283091019474886565075126139713632927641583491304208300950851100414074557443784927898576072610576974181963369679075518838322017344376439805368296268732851893953081597213840998753657746635493253113936255978954300091191426740753859254969015797341918371040169991790094567835962857322447147907320456964719786315490862841233325174812784828809848761022100974278347516462790553938519668895696510876062872957459088920170238672074010602453894151954739328142466223126892362650272056402643021776903189555520611271146314671703891577339006545286923272080811157875737499103532444669361653517522124688660805939738054689486755602588706871030811898922024217495293458219535300991561355360731590956734699069924874268001953821752462105349862701061321590757260240804300827868356293198384271052198354727511764233027995892687273053118355805687527612409197424447633568095687484441045467028352365141527656270080436309747745376780982087349803849825992488106702977549495352282995165465598506874283176285208571961393797828505779014996232139220462341524168238038894466242673730018965433764765036341251828509512088864856294714398779566559280749164896256218592671541469217676839605450082164216260561064231444357982306919657804705747148460072968182372287977560496089158178686729363237902415792047283646970210313975180097841598550007055364938753212574961674875872583259925957615074339186228437988301346044540880817809685491194541193470268965059919860410997653211196581062966550051161836517062029288087760914984616731644268641970892306484630567545738872024760165257760852937721093358445387107402729259191524626762353817978693064215340131633701135735635111098141821129662210736726269615672674830775248874448416766573702400485083937025583859101226694835806839154547916601645691486305239359779324467255886717416048550387114903176075537321944728305822191558078807524536969327446017473605242058646968697577061218677619720587491045165142715495423853920232526975123495465463090613294600566507283098728033873735155375223563183570253700649409263808031737463485403611466000484687624231089472379165007451797052486284672766337551730368736838564403704980661790920083171078821049818331552614850537354075035108223939247445630109692042278844737169688950911185736926890336659718522537770329622016708106551812675800940852515068477579219138932138092869611953122090503801810765874883683178827814252786261879667606821977039093260067296151275571252786437069898354444096139173790354548518040397333137480523587910955583040481534804539187854038243236907304310274062641777762657301034703384021129669084818046162496487394734584412155302581522214994582224994194195472564103175021144228086523028022134240931939327276781959906081125986239673394589896190716797777802595116314775762640285882625148158216439944135061960811758904619511585390826133549603880323713522245169681180597512189590028591797390866524495280407827130270045377437267855532504850397463757394646098408565893018482234161498658315034660821862236058019481145549035154742662660612950268784097547798140726823956931472487609828034508118938340409615343148630112486764653154787584549465222275318773560890835043837081120882441759938586466309397048117253004020305813409044745051156377054103501416686191248525269493348297851018111472329874045396127540222219095844050872306623268888497042234567000119497518597964940991489713853622794588740760990432854228127730581830402494510870633698694686740089481097539710090849476830410711529550638887652490545659994260773886347394552511448972036104793757254472396602354774812749416069835101314764023641949146105980556375704465155667123652568282701574452847602207817539723371640969862649205576687615644577446446649254773467297255570538828590789231759706768639824966294555601938731527103627201242931201764252246448031819544683337639946131383614457041608883422253715587835807016115602717754142472333152781356694009898004445823899842006407489589238923892752289147329455312404247755208380523795101239384358587754549990012720682866599985790984293038460073296238426290797218233372747669464015269204881430422739438838386988072365034008809524512726001361525704157749789546427459286696216415427519072078965765676204708762910259298887712834058061317182068879509627355230802280366588530930270461940061446449186278566424494208162102038327611169622442138639731157130118991853169915158165025834281284874149275360507355014927516496556894986881445782807241540090116176936589862811374592790322578489093397688160867085700299534572157942098099722053214575142715411220939886987456280116533207925455196985191038428157268351201092367995242906867995456830838859301366721852113536417244228370492060364815444971779988618739061970126506684370640425124459951909006226082179845415139874086156189246593084402747014710167254716016686017397691997662011119989301553540628177813282386798739883185480936514175269040502739923269532293931036045698425205947108776022321016774679279356253076833772206929809952133275493410764068293696256538097982992215020076190656713323330719175311095376967431445827047452191856565617305618532166042594645538561688375993453276738278878122231537281113417355451707355320827604407745254423078545374811259665463557459604327036854215738696224447960925936750083098914000685383635881778748642710688257878740799283418251977140842230489497915517987678274684754084928993864763498391753924459329312913808073876500505220066666272734384454049896801183432553499976250119217678755809806723324167826178257089116301798088195583791075401180509621601093080422570180549297646784115387691430708824753121723137940372365928771043455446962665999926233933298641137100126804081160276969402287136507298106445252016551733860468650406212924578927147227426763861426823676408516411947662651437101393855680642700778296596804860775179492212156291738671635464988985383575153249743158354139913221365051551384109030902755433236441202253007704282111471419181475709618331378229434207254341031555828186693283866836607269163836967793201021420290468133704915343805924654711497083540122724100650394974216418866922744736899506252894502777189894691329634675858792642352116335464746864260548561315778403611431490269544275056480384788879432956556048443391840602027045146827824231514065070221048519592072312004933717673835237093088565264344841946773453824132968854306302477825543502819595717543326873583172827933774101026347172525800055108998087920427447783853642749720654309224796057214003306615979398156970613660983964055202876699917225472402063960609642994542705915460007353673154988077390830015813351603573011111410928015412280666670587855509270333850098311567628516164924255092928303908770988934946072349028658560205422067037156804635003826052763710823986597931848309367641656360790706605233434111377931216120205880951461437739476835388395047212945283498654808648378850194676769456232670199871331845545348373608451276718005678754235887195105895652797804537834484650468146951677538136951845103083239037496571621433079638601544816144955239351112121894430238269540578601164673736647956520658725081592753057131343835699200489996180432549502052195550206179277993056424583665872167535192817503344992391833256236162650208149035578612440518344040381599135827173843373404529744999640599186566641535612424308001626179337509214296580882832219570578431716979462845513309683824600036989961805929879506603760712432725597536508820386360958809040038001760475078669744332587723215438325998399864395011449541507700972822653695839438085091284110416290966370127424988176163441016674234005068361676482327103889422394820253086967222925243407506026512988576358781375008510056886874328274718732324289847733542581504162589550238544890684967676489282970728115843511676077617260489135585109814789508429849836055936593710532020599790443697353401662876453206371886938218978015732190762998103612568387648387269853601294481607317618658066805968373389411982650087326242669600240908832076226117839991574402105842789845063036014199339283624554027683509989720421859620902016210156519223584211948820209123783927557185605541656205455347196978661235058348962821286082084034973119988107725904545863376610850509582385030751284259642859749471596754259240349558609796434019664667217572372370707851846466383706717029954169832988691247281876802738125496293898760722340846570950989432016548760479339467946851343732630392230933179068730316994180074048000687251365978579585994780199496523427286889887178135161715505778391587138640405789565918232137081400587138088365230471671271822006018608811257260339862403542067521276908921081552260329300444101890637236591957119530302882485868478256488300525181260810354213518122471584004627510592444870583709540835318975215236103420408450764137674234730058822034323160474633043506281423210829487240902594764411891032233740497947408578277622048261821951428217981124372676625846895195106998673740227323002602615059706421527460232699949700615823592828222978328684019972903653781681600288411730673324496628384032435365041397536205509105219749095799860595726941384024267555967486377429308583140664803184453153290815321549434582880442937355680052766701800094788733588609136494945838526892791365594342881741864555941029617929958126080970645474650902342618403450108124033539000610734694120978386716277216137083614515110500772011704214057510295511491370255453350206814116524476917845869435403411879135071947286833389662476101183017004972618956118398981605390920089117277245282732995868083801073781314001876067250126926454645097673374700236767820135235673242624788804823436290099963301097657305710745086213218779682807434398964835524271448757305830321802494521092319912041786298321106456189823450495054397161803039568512653801492251694878479554724186382786275823278212993978207428675547109249821824468614795808140835500466875596261579061717590219271869723784547241129855757317937479535182955842991336928140588480421571538074685311302335494627214184400563239744587537727518071466016570650353750000780005476100367863699111323985862132218224624643435010363223985967017289928425234113154343262930390735953429144139338742821872148418613127907162685826684720595466403565113327927292836704215333378156489787872434723165771081189058811592205341344776752129774635506551109801811454708921701244106349239492424226738349439407865465836386859700260199154168385586155789670127220023220031686195419702892475742166676680152480824022111156190982909528829342278406490395339672008649956965447075211846134340977857777364263165869169876274954188683133247514531590023354409517149140813592731911461920067757921585633107612547070933961164415088007272939456368492532718589155168814720960114154056640038921028118648545950411900558007928394716199676003018770007299166134878103899189799277933082603333383340579193386012599266354350647100912606346252385743463526847492979065780017287665968256219468541077987421844550471048251138993654279944593202443898985134425672669327861329504851702042670416810423988787766282835019312545495101087037669638120603127617996218893187778305204501948120474270520457321254873390393028668085392898551453951830701677372533915679276903907336248590343351476117870517797664710107502450768161655725395482009480911058631732989175311841603640219503463573219594755860083208292675123788495516672506492207206097412031293135743537452185545498302580415651798622780164689374817239713381123695363735811057393910536917973929343197751880325243525860808275537409997210154008004697992794342234544768970758031314906549976457271996996280332692090891558381760321398926448802376910082742090668080043739925045412236849719409774670467316737887852049416564473707132543728313954096231813376473848894121827756876058275472115348406411192866091980614228229552490758852587114072134140163523811998912747789131397574682809342472823110218984300702443999642906444508447880276686539463578359786330143574307385522480118057855163003059480351702305291761937668044897455190062298141740225468793859809142285837449414294668405678447862996873037366863397510139100798455883197189398404205851783126255609907516425666609144857660683679374480652972403709933396292834348332661041368713447259629441715366168325692987460751934900436754871245012517388228959426432206171837705951665664903889623415903428365924676238921543162109473965009869257089507504114157819718945799485168292399767685260590940847692555560320947301798892618229473834688688478774214747821124629005048761624209757229517860733959886964186053995691274261105379964864827288214729865447937270511431036415399504302492489038987190473804812173705725663713465147154131222056319569952971074484542325785409319607037480624328873057403741431323821583556267142756875575513618201917633010862837972585511567417230504719060873616277083262964429580482797563630823764361615455540616980045819644670667810243347845988069248477274895298262045169437003711201912953531129197138017595577974532179706899810786979967116140647258355731385280378144794618645821634745203985589751231713640797468385145592041450052177212291446699278647652010036539788997094195677954229000414384548714348852855651763080299251676444247682186490621512191723425686851600605859780896623668832012839653122703074654818211999482253881430040168114450362116720244462048282967776160165637897576349795548725510809105781339420347277448474876989841921828085630416492602991762303626322504418296296521543856287607037421868140047386309450159109132542103032561351107575582873478656260809325645074346337233422408558581633853715306945878269202052395067272475369001398011496431659458297164868632204841795219642449832794880631346462010891393287053134556150378876921145927268505146771355995890632238650764778282690168036013061708569828863363533982166411661335548040370382100344583808150558303401797120822493909503856609585571395374634762832404217519342656686392559177433783255482070386105633012623762876981734728224250946153189070215082050421810397748940765721499083247852854595100246795973930841106272522541569649389236827358143460772759803346264312598278889441818491738026870449603886707186477083156478758911780354308201318656582034354073422928347455769651498683915039761412613360789480997559164824906255168553679482474050984649608568188917203699873757964398001165295270277237226019357555720232631014768692847626362851893048492690926409854724936481814128316893832831257956621359883554452066740895840923148625755911051962200050308020425737002899660124136355648802803399956946560958857632199260300046853975598028765558317107063997506660476148677763563226116127152242671096736184025291082552446153885776660277960808983028370687781398492381254517178987577906769165132460310875518147960012167620168554361388753511114464644596594898628685003842938167759796191272999045913439604283622782145743849108066267372039815968331145831327755737193964762139470369487134483796533672088650760949443106748938628101668608093548762040629531426836790162232434421625009619198865282501847807500930929896168789351440485278448521019497293149122933664283836109583591179266973210503286586371961913064985733208661524319891775175613307253369060628944014036246735791686124190767973072153896099260914778003921829096605678051574245394812705158278656086176628088767548528264353457929751091037432431480490509972013400938712099679922667327456972199757397498352955663444532434557032626027829313689388962967691490051117916415739641516223459624143879984997239721062591045242665562829601459679012861764153524786433047855814962571113956032515036318374506194258790732974799065403378129323435496477095994159702169181036814733833330641513877132215173398409381746568333237521245212042635149480179573706485748255881296241114146469266177478173860156155696776808063542808133926222268057358604395739162738771435084847701866265316974888647386824309419601892875891202138727709615384880950656532073442058984978568214481099344327143794129234072975479326476182962040361443641127465240436917542835856614059594332610091323144864164204976494795520171710865170698122416084821707217101649482479807749180166663180760457163952518386095827183272086570529825589266492312740506731234877203497799829560941063603051658168190384801114703042390182045758372731652085922539947510938900121122194266654459086779269137115495078966657667654609628827777519957055450729792366620852350781689434003204754374040076217990918813510949939669431342798599215806292704213826756214353405924672023502064258541096859551282959888016794748534882762322608988214260279669494883399735380911531026157275260615166467574723112673113045630210164427562827821914879246698975320978326529216825843304790854783365426975843307795571952000101207872401988134949844384367638270411742100369511690111801683269994661201008605320941579019288976139784035165111599346420444148276820545506341848306161979946027048964895243897025843417177319031533093214798054202089619512507592936490162781474077322477257322019135045680559997856927754305465787984285946840858678413411453824124072065675598264826257619030338341742518485385403847037100690876508085350864021762101015672829143567367711035116439783634404283023478073545669143817704745089458721178783915416653092472697951952686392823300371685067876207877548178391081973218290478799329139607887417683308186531819994065979267822132271345963247140952946307619739674998463493636097580672536615518078598145349535821601480260233176252015063663993913514287751153532124112251505706572311520853765028432210158406189825700470439171864907241208917145612024917300437993499942065866379857873460604806192281194643315629256867108796971234962364061937388112180207379159818010975908011327225784300250111378803495792043918992883005162429217600337641079337196813319206758299182607848524757117752420168349348194140053916463935218273710489150036580479259761583436513553494384319150921462930819950183591670942530265403298032496761584396347114353247143703922148617843828261138668855215984613445058033026369143941743559917537871666881400452968934351987652723008458465501565659895211301104852881693941568670635178319221855955305000298648325444774777199550165082658896713964088988056795806691606580609404851392801022276976156138260831907603324548465286614649429483966773300807073200675104262514142962447145368750970687850660059394026518778610327654702806325729906196897591887386672305110123794932925976495748262551959273944717640092556185211857724430888945893130457097527258670714556514236034181989031519545721886211491710345305965784508261868074364977358317577008647587996432274454895007809667119616215136769508530892336123866628348110293980460743553427272442810490328075676700337727112094912843448745081356882215603305043883517541081483037534434208412208168360581326234576775427931619860454305044485105558004116794337671320558147058727208825360473106496793184796373527884478852058731828660065633493256023590888983537772507970200505414402105594610720764924409136337227897399466397512341178836631250900614162322765702854104850679744981271814676430841410300237525653730495276727548454599978716332533105061902402151814681001465126285103975983941288236986211318315247764967957774419133239479855287165302319986980239839847319817881713331034433989083795800005131965345233833901090970444714347942650262857403151815203546507282311838519865802936213522437975431938019834329143125027577667543168698886028656770135003725896964458686834176473878390665444218192358577310787002319174454287141600302682837240494643603478769035733261881143101081321885527985897303450534403303722769151404531823618783217199889890550829089662419765855980578341428737306480985290782145941126494992196511361256777307699460580206407239180866900201756956417595527211359337589791160475982315587253564456825714374658566889820373705497045290715846973763555870609280120176978053293579678380795022792200105201676898873254108389319250907174288810810708623207551018480041769696826290392399839381162366384787130819320185559267865898070985022953739494217542469625354704395473241339247648521037611777311231385001618713047106477839324875850063619911967787753268071392468984403882659360510854652369222619272403499121038316226297241144083556868049980746048371359252075390170144693739164092864863919053757393294556536775435632948953085479197356181168943469443443643030871444254910609829482881581159563562993377947392209785110406721664480320531067091303759488434578734398473707653747404793080903438244339705830532695856299847938304808177975089019323978819644747281348548648563997367907690393025212859195095945330313797518529818662620117612609532139263391827182563275830591189372106915776438388722784228529009122612514080523150812027262477370667161537297962365171711830918171522805265375933737558128234864296932266784713386959887691580950811504993633735690590084289200705482525461768954164710778011758607143286624044830552364259377579855244869608072673059076502488514081476189179998962929079540606916509862750703309100886611993183653478110689500553232123231040994315669757128432110589272907562665298306834612688174350276344573487313081278785396682594804502445089945385062622281565720665625908071060090719474158064342896173131515706055811399896076568427723954812062465492792246644108673930170526784065224750410536043235086881525438218840578152295198789560649956069827453289227327038537584520927092429466734689593377789658067695128590449057399130794876253979899894685344867084276328476440980465348855120943606428893738371053515595879507510368199958600924794052205154880777749983061313790264128273715757106128173624978364745020722775619521267432735816854961196988825831126166950522240218811466930625749538470869958657459988789278684738719864383790480463746222816126871276345113094783166175997075950853325746028493740010436450345565804494429503453183381290785088833385837869771084982066510206279570766983344517793452718037691141020755747743154293290326295321149788262035159874125464228843952777954992895647543471058985851590055084900569690369399463805412744078272079588120610950182666750528291004286440115969091560260245872117456045510940768469797368274814597904045521904841801154566347833534380881534140372398178819077576306472338368480766171878875254440731865830501186475632030171398339007898754244110262777492594557872631516087487025048062038162606284156754299711008457236079436838831775697116071774760197736299860847092256124190334430386806075160778365027891666283609317675969553014936812797935466652393898654922082126132776378982029467995816243987059362391705117507050493924429371228752072100479003695203530541747026881003131427531174456246407354520013033515441611612845306363822062031827141203471057333057060956104199977441294378972333619529368071162946497417467460616194428419577150642124491154067073122138420641412696715456643891594717779694935195834684336783221413037431073429174373437635441590737738077683355454522041607558324500141271289974101494705488647243415899129609228298624074551605891496310210005958713471920979723983683128011017526431868611183517017358675406492657915137405821629724201883751029772027692280780173235365852486610373552463605197417587182349087381977451996041351604688086082725590610482822257576746358191662903439070547597034809044004304333317413461423454127456779872589232409091510873059202427900149673701513477215142571480238781897278909931923211885180400304976289387311988687633977056903190741451762975055829507905515712897726034354672225187519472277750347806298881580276408830585887321140899356256544526325626293042854399332825503295028936990777054902947079622008390293221444112657382089568543447852253558437312693375479376599430699100569908215603145081988649438948867959773652023776380526949555871454270658517474445964682352694105685193373700491448623760659795743742949313762849542374769629842362040406990322328625482822335420165228291288443421575127060202153831784521856484115066939436436446339032946286921500120033173722315945993702440466546440107095463778627366769045642599775860341423376275925853631264370897307579552699685031320690918306791326542030640031482455986239265759757317759128625308946541251662284071633701497902673843253016190101372978864695403425694557263052203876294232648064996238163085500312651680544788556819973108967957554426839220485130919026882403377120177863986046398002560372060692953460153673513009351664904759969041534844228406494643578396273959796970119995996897055007139802671431539123914611613581834068087605346672553050422397928096566221091111847789650335190031281930814047064787403671555521140340703039890722323391594235126529717112144915912874696964544557092280434733841013858874280507251493201836765498654426190687675030397956939024213437475259202844493707032198240950852874392941278159586475430366953365464650438122955385696018708146303600068102231935356775884221706627177875228953937497394498460688195899260579042663242818188329768257087830890164354054641753677975214014916981613499304491042042741729907318379698513124559586063991996596689961080050494007296397098959517574634950113152395405436384247715767305796899780935112310127000606831560134705616884208186210590658438546853522653099408095506864518196431045500569852864036972272644964072209107280506565175900536331942571882619016852091109444623049387276226013009665098018150216116189314991755448664845101939640892424535185862966853588072370252086290396375135442408416767961062540774535439718720220389829258815048817462632144019324591263846776453878214900321873605288401615814676934097243424966959679745512952152475413003838241759677554225154868903498467584610663159419881211797133452509275307014085614263503015271473708797902296635683001787990288084193893922491884489117670080380387588878016977011134533491153480210658508757002551736325688200975955274871225357182551697875315095569086898546483794843035187061492313573402963136527912761526230610431409239565352297493261018023574144940020107575292488958929324580351889348336232266211070472227951789643113533222151331112813026996570565423666607124273606758337678351910125109944370304629076346614964495599673032125852284006812886320601384391535239320911579060473413936297323492759180894233656526093948313364810290643586311830825965878597847150234490787476787995667424852051040103999757103940220630691734742020896991756005288898736759396629367401720982195418337128233932862477317196438625665314551269922236776677708198643496799841526045194640459016395789604927913929104349027568381726840470522981408906713149152625044175452710112357868012989368284933913963833660781422917945543449168097066491318845378120257962155232128839888294830960254154515830155645623132845031741857697997991078955656799608252916553758612233838070069219579639419837426117676769100507357501471041273917783596347944115924160740964918923864162314431509843379999957412386084556879065017966046590401190093106491459764550874416917093615978054671746589930170413753904682544419849306977396303361433004032263704413884245648531960009102403591486043419567188919858561565546577508901443177712861645686219001284594607421607429571045831400462012463901102101932368874623187463906390518460908247466122225868317169890636064025404893508750600193538323584777977777184156692711224004455167705419310730388369438797889046242175900466660910401636227006450671672563298135619169577585613333903982775996522509904038709327898622159549437997063064807096494177080058122705593309162118440046358937856324358641910615400682047879016214044578771739810295260717300099121797113754243334882266618671805934535003597940626101694558948798528738239461925927383005865786236901271929638265926393781959687776344919278138391527346851031712835011677541289696340176336880334761324250065479448355160024231256646080107867025860376099390800451756260090655554130984042735743005006687743313528206170729903389370532225467004205889640465239361428307918540416966678324070955958770942320094156109555343344349138543884086108248624289859619741256571704240067876712368593537227109156704060621943472602040994139547201317552449158345944274919192913502355834404187206974345886053833701858976572062254668638991474061713844091114054244489241812528058737844437599033702714432320785204641931475594758314291941697190629769790449882130801925875904858757010280498900927646674318174193127387987919086670564601741410451836547363921120183127264213529907507531674186041139085079174044172658009288966400350856182993724721368434131495692957040198130016060875412795746641903179733259392402107416767024235351742211828571516183297681422260730902963694871330880778555666323972833422527065650730725189030903950229751455450814134444281654143644104921750622706436286101757171120483665814970582463578007550456264537446280525932841567885798506901058045279756262857220830478354366813133031723323813526470752577952330152891663952865431899957317457801678267281460222640381899566937994842421098248974200882331114001341044095160930831309054655031595551547397748022146240676110527161375799862835439696657835524567007936049751876795850043478594444834874734552599963239258820104452878957672333911085208137994842347153189526128187510890512135465496924606655767345185717740511398090050749322800709405692065544287992897680913853288239231274264963790719799785249090304609585020328130118819189798753861277050983112679686721178100609428860334160740802044853244141445794547210546989291664998194159975081170839975855253125347930707237719482373833676065541850211333735753571160498408863069626498901511556298277922304333498449367839151985626850432520084479855462969126299788313029363064633704503315526375204047392241570728577799880296353289006984007678189697563540217661942944247537256498457226550678735909340572389793781914608031982711392480497941100492298143175949919931032808979574725337681460617454331326448924803701346264266926317342443574270517747565067556341333600591783137637375920389020426517169186542244841360946598636267754333221729097280677212181229450177664232716733109192752337724245059080858927565564344115484438889532132702856054060064352403401177439426383149269420366767731249233446046152792228711747373206820737950407753807024875139736974872208079418362724579267158605875684373825696601528845015936360579976487955466689796317276414458267140983930260584443731183219527357824299238053046097925321759529437646696717859956554797526010481116090019255987703160369289053546421969361790098547207855125725975325768780341842823941930116764712780200132449054170687194060874864250992490041243777990256723623875213448754686801805700267716590457174167509358537466327846614717022291277538164893581403754204131631796620462601683005835840278084250847061028563214676349216441559656539951244111527225209885576318078808628374443953733638662891394399045918693562979931691320743108491238782696708173798380276007328352371305703835388120192178074557053921312504821976693406394280234533509698054521919641649696642051922322293325224980990680943829860823933868677395445267363219444015986590406652867020651004940978671302450896050636311474978975431863273763793202279530010877176844026182180038590906077029345978640932969511233853261494565585967711754424619462086741789881434778027023789183865475073672507012316459542104230368253015499272923049706500688744552908893664655148193848056374554470319717186422720965870630049834366571830309458525285629892546132607901723746233601382089476404721767102107836353063283918528942630970835241842688066639724543519498745949527236882351106475938370531361494523326299006061354420207900800784435918514238109540624635928800749174723260142829150664735646949149075313040411948746127584251725422993376561913228344136159688451230509792290809347780610001202430793367546069567188678475890291671628151047910984819968795053757476103438392892981834755913533728342888492285393965950164594229684902163576984603656667706884979061493789586623897851395030195525207115947916243038057133910441235127977174258949971813208993972409457630504381765420237749372929236666408582635630470188942847136621796280779475814106472039686900573358837832383938515643676929109532126309530237234188776377595132558571988684156351143465444921346183625820017739111963565973620917480289510711911931216161504935661400198915406771914740604502008489007852104489840715587249131814241237453147390958592854919261955127528154045555489486053043951830551638652963511435855426789578843322470303223984629694037003638667059755189622821668494721551679940102372605276192061750456049663717076263845953005334443878994432854366301464142075150267652998714841483859242046843515052858926483541295999641906383622255006162029851790807999551716142892743322162806963512162902965050345455980024292038066113122499875748777814543334957813655800830045879054556552375964308994728294156584689806294311272597554693021887912731035300216864227633661031890511086335963986070974737419552934178507801365337868776791151473833252513002371910235875886798039385529704998321830389985333735331510345804434025730422758682609723983422315017640803327317622631967565989772971839422971652277619673408573444137475914779317933398924359940581396032281346592478558756550575159428611613176739552834815080851852071547951439266728751057441386769718902087776119592459359290863839696200576865099629303818145491280734180972040320363366766499443919936264145227145073503705907609385752440000947482297136237721592630836022139158855909461407406976301297086569690667624421861836355204727903533175309360779778798470802390218595874487896074523749056283747418931026806280481743381300198221277706092184700815252327145986723437854310497839043649305860764535756025983828162540984963998318112971881438639542654408280086193057291799568887988182572440923086077708626351313609463097677409970284727668296668542908454052022919003034322471898204993824806075163872794566894084973666516228133694882858339531350502170536111817502101016960937372882174683892618068718872117122032067336498312812545726927631056482587901068575208080633928751364817583758109695596993384841991062692241136561171129547967778123862393493414008547053784583782851512327987308840937357211004586036545449453018681073293761108679782828034366133339780538614863594371635008771193119559848021828992677797694091393084926892397161087516259813646427951911630339179612919001760953221655734911037471209457900418602899221551175915683036249471608650518632279742956136519830351897142876022375071605999046852270284824202570096299382791478180154066416917925969650230616749677247841947414200924297729713888325116655222730338964447305270490241477275647154092376806641652822611221660551903510495321695382999570174114651029984898251643905699093945986820498552583128764456838984342109365894310511407555838492789369974095013891988212479916209888392435587365554523753623890641072663136573386887150143766765743928298320734613140394952617095308448965800565584630952329631871245183661663042774985273620234906785915576936220534724261112532638914302528937667373926286064609916642583999874647434141639526777322469333134089892282135236716095628251349234859268040735518153607196567395027069135357634343767443117249084553776703266698841449114808884801324930258438177011878566635729353987811406465883694172838736570843375751044799123597365972434455742718384733620516409860393102195921211225720343651001396389064945296714205608908617698288316388283825229707658189611895457298258107339454017277497834540687764110778004407429296639807958026689312946890891500618618418921853041643322169492782133921182771902167520208059672627494630028053887779459621856830743842989256463024089063366760647389704968736267734714319346437826952783760286146583892789336232361603686965888599440717090143857650085623703570747288123004277647474703779463200055437274736584724026183902508185020399413109503970812481221077612832459563995640730378422829494179041799135365337060929535804128449019567717436326558733430284401481499075465103281813878210907214339837454150957218087233216393141184885404882476133156499354030311313197143885666833802176668360829503236040595136775927155165679680295859733803613440693078137573011613002657970242655917863431943626466230186872587963057556366078289969536349814522388660073014771879198641606614390805777255192448707082910976735549911200612317536184781317654395572950385452923653669413348562178789261547404561504523088531184389783350748069944802081583047802929139502742186788691980176555468181445443074191102292721931864440749790317259939771362180997111761468900013772407009234849963308320304297321967582789400084665235071155111834810320144835294744885188632413303960676395857662392727435386476553325926113916010589720694912160419438436276922502040836018348118271585534392555374582362825523726253314359699646366678255933821009175987444402718522512906425157453594796130527189599488847824353172256275413109599850442774753526388871189264977071705502201056823253071154389564758303122551162876396883514326272862981524075588799596209804394659688932951904490105741914199814985879000053348961206916311175468253485829007683953766264145205273936078651380572241506897185582776538952151358565897640730148811113373869245888909822760229733951244135075100387258948206647854453929055116049254655683017922363526377554626840904947800372684716102649508826206935748463164396897896270083376303743017561945738907884810424309285523631029835517451745446606529767081994743205995165291596008715652115461296735413957327751678443484864598339137584856250554601750792209883587719338601394896751483376380213903415290428362645376374580878281537904708544575967614210377236123296196402292022895146968811447058289309803570015041036948417054728692275197044694697292034951969766217664143620321098749717299081440003715739281891528408319742294373367747782587092187172252984069305556935225836786253877699037108329877979505169169629957607026624877256111532102452287179703093738005633540592931089018740049575133056457554686458819253443722717048411076045834505257242917684423561001394566824566042880004740729261916575440953365000544583331333348665819727492760012423238225171846893069408572324615542392813887422027661693797935663441045037115598236757714312491279623141150164528880440942390051734645637803629395327787801636044104275918642025167711823591081249478448954880725855125745496079956918012971317205403842490960873636213513109752862098622426241874243578376772912641791880137675200320563326189241018616513034810244006856808606110481129427409009375274857858586840922973157793668860861996442907361574905330345107467921392139357341469378267840533131992354433034607195155205700661001169301061146455648916805009145005561378494045436931348591061841933018954548638521986008082004028633222685779286594749900693607510578023474201503531773730083649498916728935090935421209752074727250436661880061334959093061140711046459924475971754240199654073065408416973523925041563550039026440029227515519108629413672360002694120712781130876365316152244335162266919012310171362950133169807700976703122592334099542352764898442089109243902756481617004072173927256602429583715571067168541418713003571310230544725937706454206437302838147841910218688218466567138326128263780697530988608290663303966984683962467476885114506491315186155246294792481115987311090797711529805880920928581622770652756777195393112035731943345934347337295189941572147227619036780043087959047999266424281962016300988837148845043980122446245560266040861613319972328497876159317126814004045056189668690984708239413708551813261996376889702124152313781873313001560112199565703541410653535638452439655642672721743450531708970862034765475867412814640719792280574469540684927959945904582090187317658661625178733129693572624876301827480530656002946241810151431318690240874938411242158215083730741283373100322266839576907350698817682754848177304995391310318465327838386562671747600180627887580492540088784039279856464964515527892734502001541003131905096271080962889523768982872651391408194511671959166631818853373127982279478096384186330812324934368273270884716848408230651068049840198996614184868219292371243226293284424830236101798391004269904077447991908376102111123960672507192997931365177067316450479862322551979702992566531510159660459669015088706888298252728640598951425047655646438613971390930202571945855825271392719811327758886955446292060520268767522136796682746877587452876077863449138269956348008254414413182534720494801421265432982967846686054377906133891020607653897467837990904198226428291713569800434724666969930157511495371520437403191810795486894324062290945862326245220966757449528566016465787368842465402656045769732900129583787420171151005742659749253328682586625702458378115218220127757607872278753625441767851681849197994949764910003693490955081945020556381122496479676624965078580232712368944622866979631971539024990109911767205329659201024327415836646285103519400541457190714863882469446903822456883885007824410392501635971537484905694524560531254037917603310165347750019986495805835536614207169974117331055254042055211077318581045894610462735580709471466835287835222442439519510959648019339972822544123729119753352333978820050032094830778066283364606324667100180087066628897715761318039445308517785997967916175623642457991318747995295187367560206724336078627831644655047133342557745622032970583706520846148146180327955657231128913791506107878236724170631574279086027582680483282048253059594486535530533557360894366837877887790883577331658156656404633363117896557755386745135965474379288244327761776652997753788443212262675878961266383306843849005800577613730946043245733141597876165553722630161642335345100237463536829894247824255806480766433618052377415631403789337126999008115460840814240586928446408742389124577519366466994637359158441193177950085848065280520451386178972329910964611770976297169880547414864040358883927950040568096688268252678332587535835160050579458531484837770296761832636064913660564711850804916359111816805735686256767574836279625954231444084268694441780846545900109830083247012732767325186296528101198756674251237185471917419644610996381436922527648768652429643328488026710488044888015591064476982918336443256383798347892249924247347347492558557293151861103453413733567227462578276718755128522961571935018632517217599994227794412512769491665964117645331130767839435875570151126833978807782308932767292196739065650167909884959899971836201837724669791646815888400401508326413390170244028639070088310664906834976762880088097131577264334164705251536471773066139272240563257100139729989909559374773055963634856006159849612535183107450428280599101135615276461371873230740548644387095103762391293174413926799644747323618213633118585804069936583777606558414953328326602877854696894300229268531019343019873705871735821809800669389125076625708474659506289918468346949911962050562881006235243400502407512125659762183568345522576684049165251570758414614413289520970093068729022716370563859061059216969457351312296992925835675318834452109537570173563261816644245918307191732592805373518481830987229456262172540444189864039750384513606111006210718088689290538855653803212319776645007978808922913907197183215533766071468815888614665937080218118486409491244157801586964737239095958580311735493963934232398121883858322269062273043691547964773290362031023158462282118660828589608169094090006189644213461734468252143386306086410764913030963038606156122694775672705661641983226612829559405418526700993894418145266998151219653967190513843135365503213138068242451734889475925031241924841752557403818235113902616355370936864688471015259866820062966604332671588470284672528273675136369158934985721514957696957393793129333387868587015586438472121908813119471337087338232750005623992374477172103479216899958700150469805895623651885426829398566671272305833174739467989387917984475726396699725651509335049449623932989411838095115220273859361991620893155937352131938012702984818829682456924664015891024522408334073529472376766018719083566257343946835470483622445461993712921994552160770522653798347510666769463255511566494911680705230528173086908826823801294125418146730584593435812734334074634710981016973378451137000361466614777973756676762211878253942360370654923722566475192700250824888860406223409811545113334223901773684113599153372373184676634050715689668193810358548079907399613453888826857567243504591899740069104470411162878652679201061613247199984482371523349978363752301431351328269553952901086494205818604396159053058259754001573475299749827230953870577210005396418869704874528973591568792707994416581049442687939022278200261738842463895922113926387495411419594330027084671423706812813778229848743892258019606732295576646222560726500832043734636892069742573101488777832814597005506211252970943955134820697067809204578900900556359931930300746710425701791847467995201645098538151015396961735455277804306267757948771097991362593662234937064837059816841914409008692838417581369607702626526373984217927518655855340018024947388424795076359369625165815980054901107970726953244886137434993884408366146859209020138746292972909384539568930915524703254564948483425584353927500268398089195124385714727889228818004727979105941649371664175676509443374654097289014406328130189143863392806334434942400260228810471699972553393957076410706789505905241632902212917615707202813379630649859882322426710298264264548227932715480458764992124132126818276723090347559579303115848248948301417317193431046635619982934226608452419772743000894757519064436425070401157381317794809599533926915579884005478289536523956367416572964880463463057367371172158099902098944537332554066492445556570479772079145812304506188806693477316115492135285980811109640356420103206503138783298144430856387206579389407056232795868744608528406980628390128319940403175369817291011930274216487446018619632159446845380755709872212964758426105804371014414489107488133766721383545414247871366665387182071284847617070028023077139862001523285284674980517160094177008483060781630740674129158570458579809143541609290613494597096889257105679100556752900747504379946338211192119990091221539655631726332987359358386665001897021037681056553912581127425650365892142910191935677400796661271382307140818828418649325456700504789023579983462966520539034526722973679711222964757638427953370703079415632893117466348996286910518604722726888778758797953654811330971852577488362549950780896238311682394650511685470862613640217820445276226218509468771458466676588999479371028457027858288649455781921024708840980548840494289202758632513512032768369165509333757568774231103616106683832158080256433346454271722024956218060593586057783683982546182236449833541991908181754923962168710528049514224637589120113615979984380345538987436863794164300305130378895831279248454986839906586006407899335281278519409840167197297270699322133907184209551782475206802684636165397716512345743403044324661478177119961085537282430917112635195011915381033226170096078197922946035526018787669236212486362488512903544283973792325138955506401423913076654675381145244024706837652806414248720891345137963859994493516086771074601432747723851028474946663633461941723016077362976288977251283002580846877265301516820292508730013462199231565387199041060550741930363390184442397874423384998260696760570205353684564642727270348943923664845900245979494739486041667113357170281209226805278156883353132643317590299465385748521847109720477182480567215619231319966276378282067062797786438225580872740355388755763722582999050673591541471494743726498397870576633115053342116121745340896541521554977462478886291183035260403687328220250708935308435234580815071956958892412605287571839649630550766286009111672617530072817388845881237359853726929926264266600217297690409322916645780080286157310501383405996052151802023374674932941095769139999676638521753746488507214642276836486091831973323639215924903900069678881210112974635837340525868785445702221462087368587279664145301762633541558879405907321222539467073782654675608107464960418043395795387211330646467992861229485713933856329761617850891155827661197902337999866357704749637968223993509579545082055051118930347793570244303528304428347024105904612246808113753997074287434351207241798271000829331913714192887714098986370546271136142170603160388771587341075626603462603469320575746363265306120596147410967864366328128489246217276990604400356483137270171843261107628690706296287678248337252181678495208701873888835266818806885615538210291793846881259759223871757568737766365217279182935988891248129048499965476445965554595153192301986734214396269052453374634498603717927205427968168892955587945755341314658812833102455747928050200866695716939577801534143906770746884443719972294731420962430984645053185396521906026711006056621714505652396167629158214100393073338929186256703337144724170924079448220819579349698115524925573254088088316481951994849251885979718179165071886497535369431957636602624261722924254800560595721748153559340925382832433344777942345089465946829548015616400884023550373234965498786621710766801062510274472340547773872282337063244223465713099833535636179045129664535920772793879392700954660146105091802732697555135713654909405170986914333834373538622395662531670508132212346736878144276185478830585005810785155567880769397324212208730661826200908305041506079878672078008638748314710467962218043947575563099086244244382809070751636039213609739671934940819820051893084634184185137758694213859700251923572103523597814756562837006498935806194277478376736716568604401242535394254608374734622249608298272472402187537341510443884271408930329039663170598527274357572249198043964068936908330704606903363403761135669272008017206016525870166209246565318321783590348318466849633623177354463039337934892379583823380148352466207076888417756468257271713619148355289440361157962468253470999577854148164846673573561133803192065822135496782962945837948992590906571508585899240368777247095602252060304105945472235734307619920200387034244022234909496718095119479811812317662161328126574188879267178040238578005598529232561568824676516359048340588004483845823024199841762420397502821442033237813646956129181609088070522692744785023579437156142854961033099970139477214606174500788247541700679178188133730735538786796010124219243417398732897632280986762293745343728998117259300822232462437598540018372660873832647120725544913064336449951001947825445255425611985444689633861923341088611902366362520061671773407268444876708707863399288518785748868906955952057560806553597236255486657680659973002696144997913863949137643343951178186561697245750119555271398766633102419936496159367342333676593518995108210508545586590240452439501495865709751688017729800819922259725289161528326432871330191207202622505599302105520059364272067206743658081959198389468624150753802751656622826042558448723696342315273704964736012472937470582351894637772876085862713952359990692232587035991070927536077178731275481509403512701381707948704002794636433688427716924012826404447538300216806055597399111532756743042507916896649365346106649030339264547982624507527529703551170293895493926050261167328050806361911350415038722553548052495030725922083212991676993938578960521919040226593296893201528053855848832676736575685837994286855431488484598780431993710784840893374197790800338636966596327000480075341073313028695828601359287661350885694130726895270622119444657090135000285078170081732969360699447808011650899774698383275335446223117890041424456125659236190671377822188309901262050387138637461107547138243333426066111911249960431197487300355784675385580931940536564143872408715930702800223362024034209266924841036541392460325281513910602580690086792469478464151377425304908113337485925659032521084378705836901803059338532970010969600087425044814184589259856965345569808272371276255400483792707641017020870006758524443257752645790361826803605262387899668756268684575871134948261702787264207740532779178396605930246805376125287836224216318147642047643334565869242915619461741479293032672745331987962759051058255643906412796059960516294105583577003536563242856713972433093599861784854409718181725544777914093209591840501649984386128073788718816754788756505663196319767304705864894624045949269766453285109198744337351215664488814513250978299799856828301830292718126587579974915259421426066384493476182366943613010007783474504544383940594638253164174696216796375403949152116008355340458730070341674476885386353724175911919125730296287576998669830602845055125425577813049196573537081097538898051449828195851720963288792497596687858557626872836385771428233523466567958926948548919544874241952228540275810132725725884846046549518516222527214858969727263289515266100741919597178328836594559768570577262847855954488372407579162883631484906477914553487265755850111942264869962439109009594842195050118285457021898741034571838981790486364649082967773150836776997335515074170081220258053885245195363983453187617781231829233845161492018946787202174802452815919012422558651698747259021550762497491226737659456330761660211943484032397991440702488173434330292725710928657389894240649561810909797654985118424771133900728809299016301869411421261170343722496674766825988818337774891530013580023146024260472055275799319899409643161144298528316114869897317486423082626493416316845278016222869452176524878906995560991510960158794169103884595635966852936125991245729283769357494996000637454051029331252353719421156501331547537362809071428157731851185927633100144847811577305157277411636321762995559710643742787164040829830710463054191559937148153916125547811264374389039745212073575767777507421150508298100857375238351838357539933202975989157824880504120705904644073227688483087435345122645470626940975444513697572570891505730232425735672721085168470673901113721018280580460322479166007383269145415931982924325433746486049633965342248172938325475111403759384377805581002679023593384798958654860787419414168840730434173496904240691742895829113388157394322771015619624776355190240217127468627824721979967626629009191769556438105385692640185914761669543194077693489655590603130341579094455197560296624875454879091117532699370937126380672256751463060740233445983148205780778552538169343648053568079452045386888722145805202281371652698201162506165729737974807500297233921909750122049474941700659392967296028738767195222550630864385036022864184376624009174719032833908399536747468613101093275450853701032488164563575489558603679918936112978761908356737312274823781827018531064263096134724871436054931890377026133291202074118570203965492336859086327290034787222376598941863189523397575264482623228467814741678394175878779284134112230198805548371919662085993112969783033886516758544622791340538447608394235553449033163300012475799652761685263194532930959627313146726192661819832194566480048912724042165730413638330422266489785155626456553219711447297326058213214861528010097276801510402989652020638606860045981614285237499912085209347292307977350301533905977647834289074748778151734815736268828728847309608641886645303294760075330935853802770492600732884329411952086482971131759375253443889588142555483851732952836011377915329011335759811747590808295590475065765845686049895198699305066250601709707832987606304681600952109729778751360186320545895578180059587571719117232350915787137515399125515052606959476059331576350909179773320833613680719455156407495330357188422563693171183439732516057365037747321453500563595638262474936382247058368475214260727919955251074551304244338336405493970033337134880029978594657544942765183034121119702102998733619911776479300476493264915219099177723625580527127257799284186221272202594729578364241569518389042618629319498502398088279018227708670870719353980183576382804721762702614902491846340252361295645126001797544961312208728483738833193857402018908281767850298505262156335275083393941014555472125637636854640790946476538165508050017967373743140990894748416914300650811821039900941917142905544287434869177808284127163283349333738760189805192382363730219765007029919984095395364081929393544844337867252570777295959613871007157921472183707580415005441349860049290749969893790348810208279250693005742360174677126398250444798794775513836887538882077572120635319586500300839106544714907549279711557218460901553945733251863898128582468776959800827417655549925565263787184749887063291494390803074172603675896802548718373999961968293266122412170677133971378809252017026230147178208006391621359820529738550555820959403332647089156195552235663806264125747913463825374925991288014312614436201171810061047225858418500286341562115688441856620282727660065536243416531861727054704601829523329536489605733307453064730077394581740556221801029658695455429623213626808519358450025873573058666519561744637181113447756361029316422929997712848473992479149975246975746167652401333988711899350291995072594035417767887842758631733862021231433122324549995210226464191705902063721563648704410426983363333138216958848319812093693683591904114931623478727636627592154568410702417405297925694298191498174063952714478690511842343371955926123191937579062117858090932058847948363057956121560105651820752164895293647504997836425968788047609259997018653611113136048448104343137267327149325176406779591282704180928409930214809574578663493779227121375537125494983646132191054790119508054816377823175531880540483447456823482955282130638303595464797553133860371316576407833408859359457376719674086252518097818178803698601166138834712999153771123834154528740489956469028260300688542763451896235735546181582222140719678668431026826557381151949371316182349253043654779188727730395772916676035989068298497927532644579302056250041982158178336797583245820167033440163751943613079360668770605961550745818730074058855418570777129376539546111235520177374526753650277123601026263711408502493754519972388118497200485295407605375755048633498517603934340365895296086073448055312295533568821456711805760475884194205834963384542165377020226288732032814262719241911346980715350623640604880106101761396430655066646671459774792751275013133465967646396069944057031186056087812280632896781657653727506296728357626397482838464729501891798560482491985007991609232399766719647678330126384650808804283111098502554661296861855650350012361068529743566446561984920921101266375831195462401126619489300838284386599999928333379487659821355883933309759653943516874770254203805203373382317893878282543047736859273772357478886566858736092568691056377446851131559478673651648492178603892046920573921373965976293426617993875988610557138473901586953800144003377394259635248692636896090870539526251096127290887376798222410747678488299026259214172065135443271991645998333033382050970236703791891297771139000217964645568170138089418258462959876893635924393798037012604370001954537532094758565668626186913776932365553855337366401811426040117126345320537251244688083925045538064254766280934506039108615119488314246477393594536113462632539790305310615515404757043183580698889116850882783575406260470081334894277564198811046150339108196697436038560732670871560877665885891060896072087471582697016905626687199268158483351741024109506049761333221030468320093162948196664178664108925963354038629241301524764041519532761824707235278977276957745431491457204054179953185788374981085050571576711105815852167055220110024031214717157984645854332489073410987610992956496761565447188062442849337194222747404498379859647558413348941074260833361521207750192980151294656720842115507638816459889661764643697603289243245105302982505122426807037312128083935122022554084151320294799980575137686493365567616784994713349269562577390784837182482831556792981972877868629036310560685800990722240215387661471364480196561481124538862716542334288756197979204855730192999750041758818622035508435269374224183477542357560534672554956154189883817856029267690850613136595288039173555602456879717723106032174576049759502322562941963790630937955810449095876213591677865829539303065765309230704398675706257606714270638526055475959525321304780063261071076808321621001457946409776926800691390719372725319228526274289573895041376854774592960335922726252666683521707031894962827245652845824142546063037280407774797988541294635397999246474691335524337231830453538489080808931525181357684852728589173285917464503656120068829470503204716904153768678001929305063669577855088550542369890122298087791267061052356297358060222018294315807355521909375865774736264736992888812797829333934998697735232413759931554636311929820706537274786072589973120693062721040157239438426087560393263870639290221903085890987772201985593853726881479322882922369825904643093397881652299859711143887919168112556374983131611093190611563255289261205865159851493976127055624087676714060590627593678972863204655894075319271591295117018443755758535236978206034603081114085616222042904289052870934871938753668199421196787160344751165632170440416053513413901731366894638873855531386368243369975985970616457062670413045912643728498914835689045560909348101158092318073018459984087990904615749310986143133159197840606356831884195057075962103268508407539511046071367743150631865568117504568429109859360948634686959367227758077306072883798814246810034268587441953320342225922259113156871855129884383997718184817757527652868727478679975609559814433269798023224692517480084804373540267386844464825094568371986966198330889858783525793232810047849800001659240729031466028150564724110345203157652765771714505108046030512975963903369048782270839013310400538514937353749729516134897226397902119889634448662018819029576929504346472305784526520058067990645390049554274873960333111513343423239392815392857552418925427533689936707673603270769534071539778317693299858002902473809122227024700301497321483099349332418808211182569586232946518575636897541635746895986602665172871063731782115440732830840958229371768628036856451591525703290275690368571298831278118747345960741731009788473156283864948619310435016618122663037695937267645885383809430494530230302680142109755025038907214842460093398754399153838421377545972464098687379266027941662047086632843876627366087827215003598927765170744547706538396196028343102852384091338723785639795368257883705830489472663481348213171908883396336724123153639729520379956140542026523557331822605360301516107672701613667753472021089952406019019073107167115721315313139910873460499485588793055573290748667569249917791477776275257215331530591915437576402085562431149445372545956809702564757642444230904740701449387200931485566126738641899425494931363104759618933034909499307284324090098660429647764160636212894769517265674169221041267919762026291755853059616058835981509438139888155464739539002210859787185924059647802767889239242804773232416801150880994290751300672861497273785041600155380972786910116538163760299560019987567710528743417964863494875902284345081024845232428506194564649282883380246745314360076653939325316906934715341110259091559509809996077710819240434008174019090499522416945936708415512633504468374235408291264653803549416953846871915947864482169071971882790453741758978656539635436417496421138332391272660853829567746264220437486137508696560381441154467817463182415780125489762580240567221816519025525646655104178403139931552734970128274640783796773431039575001167643501232392187217369395615725612096294658612581792259971229360156048325293246605900074675382891135887696605023043275464415772720413553534310692302099040958828028424925456609225504736786633535977670114754779378951221639503917488370060692083214313105651140321659149716054503315260875624430397512016270444756654974450829108449142753286512578843201433719161950742434585426712768110260079969773273109108740407138883985930205685477056812837003241060994880891203723375156916771294476770105736285175269226738673324904110576188363433437399317405736193536907770580699187001103875506825865123396341929847330966787573203290483700569033536216837286915868224849316458641309955612807613543158394797965036457984422529399803252134609728622695362672470762899717796327633461411207041541483053044019675458162359860634665727330574033424675682539988557003842039565097719954100268376282975119707156928778058823190261710147580089737378346499210043057076158595322507336108729570271507431229792031372110315120578694581824201741832056515117533812845799817329613000972285911308282090905331476011967818503836753034704700057874836099759090912963034418276550511984294261174212501745310883761527721032091623308833571020857721625950992529864364182068943965690856477512431829030183533951091146751371853424630585177074434321613169130454456207295577914988904854785029494251869923015642048236729967820854327708171399372971364728551623691028094394904980957111479873532633610861544909213621071957862718265898464545958700906924924882052343511286873862691252933569556562440153334475671624094781182657115595475669936842356249997922772333285678478624526949813038295767158836825390348461671496801413859919405559791791785828197578481237247802296273427132738070171213159345402254416861464162064185495562201758027171741932960403072428557591403748752412558364868478265305790211293015046009300979113289391102092842221262887439723987929998722171268024426957043640826917512394728858097663173521903477402078301082500823068674816599291621420437855969070083963431749157040070491113309702304687661585748313508014447599285202072786040624690986245818371056631825492066663392868941642231681397853741745589835502398141347627568661622118636756113454018506123014505064146476620025479372737016911509105700588058385528775155356834613555088814313744985636377736943347307792236920232819512601988334853193084139129692103451156646155817184516091865304897119538011024852574989315864723399926745372521914878779978880756267375063872378056469764352686130677476116156403088981072299006136202913855386468368424583544342072490652694313192636306455791910328174622465230508681145392237903469993576181922838411783111273426609317171605472302748587000104786605983536876204234909356314679354437007086760444160809343038896416912293846293502166110021076164054661453282613302509899295539192759629946278263263211656587431955173359427872479954828722781079314977711035342554381663505021820047559845719470764296782715877268483623611180659244515952829152301818089716722717634965228375068073131741445335093301055862157197336759105167204885674541572816321725939792701826776592787907269759586524444798627848766953949146101776057760360711075086603455755571296234540663775844877314065805021814441457012161388944294254301272614399603975154880968417538877870997710531568960577955363596700780699856501195536169958191091853337403661999066186774586536593782895158619216835838537205517181966990029062252442971964776076579212083499798148310842533800664605646546284410595975870105383783766951341441171157658015291972393283182374190724182705562114292481259500862193482545185655397012584064777459094161077898448667987879836035943067050826469850650965071424287984166501330336475959713294583569058759697058365984023752645595142841527430934760028480597374451154823040085774538194414235491878380929229783184414022384436112322168850562433541858843251154472064328496208456328119410827058831893542884543650548453563300884266856935636428902027669230848663361182991429872638798806829980861239497632951046359133826912525187946694508941539649332734549729944898362994739917547441647197173177987268394360240105216610149815265541625403854517795215840024958798797410495248004753558164544116079649674374767184221183581573767370489681657618646684473995745738638952849566518957447866597778195075225888298702478900964065318520474237695238933550121847859966007408965038385951470180407234577687838560758095616453392168848975425983059917537610132320635432534424048860000309082261900373063418486886143876373649417887401204826095051275986339050977024247252980175882639229387079367325221116705792644140908543740148530459025037169637477458607191405425694381561170144378884418883091592292719203584129871622866850532460389435650023073416708375186459536802527582405209237446765733512706016011703490806822232723412140846959667332516156575806659024310130320641153751168740775678740603592587886171973634936771114265430484708113330323186633985509494314397480484078764776783277053488015967141016984435669780845487805182319957564073978831770271135643924204452033300760976436796999004095854955620131358480587537494725693403309091728323941836921932491518687235477393921275611794664018511800138075010277721713064204253265553611432390788203509453770750843488923010206936485172849761293833257931632804024023662247707358488505586196021481895075688961464986471085846445373294965523337264188383262127117827240693226571570786417557289614533829164489186520495527295263300281049823109857339430816022566981711150564218030749436110781361389682204877365185667020919787109427227650347063385085500842117094040508256992457562828262781375133270805294552322160845405765437854007179908127688366953749752286406714615345649011269387426711403621513820477587549428565722785336658487290869174951010237587497660723016951857365090579491818691542049514818950633136723233600179192443975940164167719835945106934272172934837133152708252285878147644954066168266066328173859064681708480980195630954019100230303837721074832278139011682082582389277936139561206216213391578640790409627777430623945887116813593241244337109448308742299489657270496966891909767872956785683749182662280759470730876390942917918464672898935038166571603238341300482214907355731011475604391076423070499714171792722498893625118537718445653611243536680334158347109999781275045931072949201640040438736891084890000220658968949509883554543303448063469068362642692622526048050382229656658564454638172578720242239306031674501605397755165542460307432569145384140667700093348172625337857836954968801819714207583047902504544932943440806547069667092081966871809574518223790333116866601065885464616222513680755807281783990499382032540352222147912787357337924050581704793436111604657520350964992030094306338515155701039654361560042502091754083680251075696272405400706130739148399782154975269620067771746125375177474080770421469498072465669210313803655901391446319337852495607651289588470395683600524056037732266484889767598647222236870457260025131465330278949073668317542852793043641684491309014822977944414539776700050476454539441997442534009022064970795065778667625625790416787951719322821604842790422281457455555258501105051118532051282481704493408500651110585967966113480543157990100271163704146255884514695315016137653098634679351398306442172125391421048484018069955555893386469844709722072920441600174464574485789885219133254971330254820980219920946867055130885041123215989403060607764070886215302252839630610614984492974704512812064392509526839331630165354068929280565187157265787411940217478091727995418741181137373534823204924028544437285424144786673531720397284099921075338521376852189920275476375155088032382034514104490336878610551139745556445344133528058933149507241545365042536863587651146455776385286184222500373544338608419457202578083624670516135441219360521249265478557979011265815919933225542147336102522035640035827908575507305278835431594674179374264974074094794894477957316609623021732397288402601621550899074510246296718368591603789059816357439266727829502991817957028068636510124544515441318142965418452451978873052020028802043389552095212624250682073625164648296888315050959701000226437213534878582602533578984284992642598493826986555915745522772230447836700451292620325907284470070718264639429939710579650492402721513090902016322578929364662069079114189091709554858581709996939845824188862304346386468537094692019086644250014237049070605479440163636224484204946141454073340772056136753779947174346418696144163556429471591970959124572988939233815001041229439585288124290316381893911829364047567480132005483777642241308322733790168055134561187865263787390846029832484496777676526714460909842724092219442087290507772474227128491998627528840954536122442608122367302636241666463676956582340509347865011435452230172110431829674611812712477267475584183473918296468924243908358983041077861222164667413927458084410934467091407688908115480426990464476617903706913186431644872934811624753142709479512183711895430801606136867423308652068568392614804784456647494574832329837112783484945756818482357381296729860250944563100213870768049043011088410435606595632913551363659537905774508634658418379378550213855073066062032361892026534379655424091388667805176486602355686801024443819982174081868308063265793445013660695883116352765901963710912216830217994317817811597562569334811817590163704539548800254386919502939484296333878802324540268683115920771472660964081472974256413523770713265586567292609352131356326973863345139232379491272741604407165332837276663606992078289885158189007406817883560033839550249105442191369494384025928975768041647987388754419071010073882502600250529371571205988217997519052515481351289265070350312953887973951968071463129797393988552240677107478132966112514244409425462058656056386484117697376509322232005813738988859893022336308095219342652281506753067731168349920030749784495333173923562877249889011049829135380994323467387064792939183829847365091741599344224180136090702185376839482371972551488138816352825082378087561773037185933102376901551814895668026451066955667635627033163755042821846935526079312867717163008152297052501399440411109952375878216898707228324155404378594936488165971060194170111775308197796006102061075809541843822637717441589308934402454807763589859838646004481913063291821212522007280634089056273136156282514259729116909696211674082471631451891747360069596699142308087833837868659015986702232142869157014142480704589721910542004790420726183894565916757662433748165233431013197777875062648144789623796854491833393254452263282389839955214350864723998824618234678333412034969696346523102970980070312729811300298748758845155628443101315609908946158784058400383614543062750283843451683679399431155194067233688033261838130190651593168620191839636438811828697041164945876942211365769814951731860439447681922394006701455127928254056530324642352419083789115209165207534501147751337617613160303463500158304324119830345045973111548023529147267556528539615498251732218702811891475582192510975188147499627018320123866466554470962703221196735206682568834873759645072512079691451687396399872950892928615057450939183524898641711515633710772070437194298978525854106512202087219851152011968200668515495090775699216193168057612255084107995644735723621151384426059118785236111157667462461676058949088473218825118818916537294130184756365083622904096877270759063075951737344653812358167205699861544933744135511580828599979725070005425695844829042157032963296954183720611253277818507824353239187267379753901060421898213335680014917629276358973974915103361029448548755412659458830826273087297415813599878505897081564293241595652057224388601584207810475042628112904425526350548296613431983475578851932222671869303645667271026495994005116630866373172740445456949737487485211033177549364625380611334474310806832630846622039370773105244279995137450193526614235225514186805510400502143876778592990110859251867499131314500087258371166936982497699408416160624284063083328979971618705057651962404924316599951518966497547503900114739890318968783264557847453725180452235972687766876242850753816616792488000823409032034807146522890222308061496574270447722125026619237142356260929122601825058373181197103907517533857713780776213177245287947915831714843227314735068371778815798520230352800599998697766693700822670880420433042717610360443602119574053183239775082537624353359925874480669523131409508267297420082719591871616960153406545781475710124329470340498901172403145627070070858913555130659474830501092675331050476766851006872795324432368964938724349140188685802176697065515885025617415207031509272651458735885771669074118956676294168134057842406773388665298433582820992092796000256053731611957486517297171140435836830233310269244755634963018267857351110563974947335708175806329870766803421309668272612847950604361526544217036355406583290195474112632161794143686238782446810885100608798206571969473153168872765582925484100600262887084707264146369814546760230690648480001950891529208834752002948330118357071474860460032318036646630113783461481020801040824162464398628580275352540541481178772578449824401215358088326311157679388344399416742552671812706870485790500170018827661154025989664563822695284086125700000312015134146214627435881881137521596235509096186934825303819680850849675713080265221001754452150438824469635391354522294838227521939781610063081571394734757164331002885720115617471919226677195436928312826604396069925463721960291425377797398316744381208097218818831236226603387075326789425385591691829772833273126155084174849512359891579860193104630204088365812328283393282877527485978705364732951561411429853246103430255531301949643011670379286563766956985479637443740469514404752486274767380255896740849630272538858173832095777727044265967645023462419588725735933861552680812047751364027860596714899368123712011862123490548171292454815430238041036501487535674543111800604500426130787682215885144267302962084048226136949742620817609999350033446197688418790304159595153926411196546477482084960353618894576122048571862646143232749719188085841721650249255612284867044407945280918253914446987618136633194396064637822450816138177872928278397648591104634556227172221781769229741153867862146057242015889821754945547494863631767227436470898021546200732501302370572121626662522005303961351678831013008568016798771386008087441449608596103041041197485369831113671070824797474197170808243016916661770771312763331363815453158913375254168398408478643177506675039488466367772146792112185361223631672188803806610698593702379096318692240259119146345846149741712192550199254747960048460063345981864608011593744703731663195351890879205648107281187772402039744024602129739110134992696648989782233646553651294973293415434068946943373818266377860503474934332702908375618011054934690179339428739905663796976347810695528961987646189850722086345874757753558684468723357249179047654807751039237363961854667533349597089174705010313969438090236340457990307072485296328514308887866880742498163585636339314194762523066152520565896307037142091574467866737683351558224442263717555290549395328823666896153326331493583928128224584932540555941071950713799703563742340097316130986462139379530870947165361256508033157850445730000941413946001474525441403816920993360411596583800506303682545663080628250094880200341800214558417554634801876535677644115164771043843669008537061169050325303146835437133581809292400768050958188888031319229966049866511923553334427159951307690820852662967740310259473022591776820132591077731585784477312075886450933987756187266253938362357576251588056203092312138665780721626116181270037560534462263494983862525666524229234436513969720823782599576261080998493754227356751224109232447930724282802917623537533863708763873518155274821112448002459124640511151114996644626198433900579254635394962288892436232521864025248104905959554083650286893574890542000912533867434313407342265195998144887626448318552732774941228785613062258218781200116285735213380860436525201235079083015059632454682818922475989132871694359851422675732581509249821248990518465907278237639649232119042056438491725564318734416229620060447190161161278608069159705072338317990240010621164747758439023757467891316957011822646217702894571191364126858718686358249327174656270672807513674315975075657747583764063380449448206683521783321333278967763836574467462017288395723672110981540162132700681687402313661948332501044648564646036412531741333323796075672937330521229745793335256616855892004375962513420306383429430609715847409538019741154953001028216505595925945919485334822732715544487352136534472942394955964530478805317945586293418901077793490276022180849918514125716531651374508750314014667742519764762046166931133260453878964516572908438615194431140161514230702247163939901004379068641034162367907418506463768256603895503347734896731133431362942854314887603124731335419670980008452642740142097631369587622585910093111299737936001355335292074829853672042761269847640066766986610534552072872187381806791058162907487010767369652166873448787438277199732718649255424806684238330274106960918550071153548924174440794337042318254560683867024205233933058031730647788593322929965546621687057128180663158107596988037954190286710515896821839986172264565237272159212726998561668843085968396028717153852669414793173289354584495315021859300866891179713664949241053953017401360785889154713408500397680364538111157208612956394709645574270823873126874988730970590053373183461689693417093000008616802780058956741522844366300229652650701385626568435888629758589271228973122504501939753988019599295859466744488527923464103724733413533839025948077395517640674147646580145330375512587839152060027305459805828008341586750878202182980291241797731523538577064067711668452133686650109064439918466472914384152284355957780524178692213439026209703590303502527032839798676548711129716415065768915393509094042163002921262342347128521083954216649117518876848901601635079499087251459442840907695196996180377128279292330631394632150965793664885286718536589854282324046387338281784815302092030883156972673439255833643216320660898884580711362776399966495706481333243008044307069228179629683286131639498341581788714262196654990514044999490513227583290203973389028542575136640742837719838951375846035685933196763654229787959796756828399831018152542366659857278588886806485189459707162034673703516804567897410832102068776915310505668766877329334920023893505744369544516023429794578060306718931576795190895808112827048686785651794949425317989898545584635110166292415067016117622197572925577322229957957026951427313412587036021325937476429476772338553939496080349432963081459079933815943114610237436482609052748926091149978175992425233969728695252416687315009238204121285426136163532491366251378662874417287369277732668533899905091442880593169617682577285592777855488912248808866962902222009071053198672733203501256083276186546860690046121765511410345328312712044352295100167947903133505342535567838691922343124905213327943612569046803304540642593143348598935298788225495318574248810376413754148449982952274890279695089814986469076164438957523435665064979825941525032426325529441165969405598958665076121533992974864105280830988791971237287616972907302953015863380954319401820266910469313930352663628358321962934195022055821562811510082783702191422318615775289443074012512069822362570413511621279344747937375070858534490402518946776914742064913902473152404739223757035683312553974447363697759131016724855642522704985587132991847584382118515249153210866087093894774655589097681500909155245318437110167970439422720060659347278649237655946958471716429025786327183436043870606152679931992517807196060181997889618914413296815327355365655317827878987704548492565683154048433686635893482791153784996014629433017853591892226871356021156380668887360245242861517707711106712851439717394625668407770725858919518657200283026878274880646248625804514333344541330861637868233257296257953800673509106053396523255759682415048279519619749459051008217962365670147705645902747898018100630951888962137903769365337298726812820884788701063082554158504213341014958285427718069494633813881682451903444805049224355100033141429208942257683134801951041953956483428383168994699706893612395299336477360596737956301617803184226182619920816348676196602758664471180876032530070874535085357549089483316670801325348249711806765228158023607082333904142811702294135253600330633026112455168649227533897653332750883730873546591411189798341977081211090804713744235632419974361958142327674056004446749156949455787149355479222541764298223075736651596039395678729520830762129957290564633327979056087360196683806841521600534098228717682054303049482964071437795896778917852651344209014796569969586033217610283983223252420909187497569528250236244494235687350103470187419905300293809698609087614945672871126806871959924240064653277115700461234695506725963015667229090544556889669490363819793746846586653406795597194462977563164582434386240379348980473005757098395158216139214440418894226816655348954143282061553926819933381323414313987908720655644117610051979103079211594464124822986954039586697896296360224807663263111856093817090755322596581714925458095004864281930723758653310934741026846088351017655232979279258864296905772257139082911909071964170853845945443359918962961825813795766195253377709395930937558695979150585469590600816003435570792205728418485855996164771561906337685043293655454747429793082284034010421477940049481806545729224483426104801520489332597893682357594775848939079653986132009777388783890023066496506731865265056828395821962580338070209708988714146215856544262375254313938425321275734074533191162955171187913699270353917235081499866237794428418843345714929271033322663099327159181177798427378975014789433268497205154307237560639987729616687253234709907174640540240739876530764999282725555733397102244685228197440635674154423398952240404254833976955371473159903911519958160949598512103745365994424396455866218951207314020177355678185319574500159138619106408997869328313648390096137571062723478005228242118426427552831612858697601566046431833533610397233746019991538893157302858826916092049488454130092262588377714048796551601554359374511078984718088470096060778907622069368407378496336096342509584708257256336812670064291029822279991576193941230501066561932438529131227088307156747196820218627201948474469147750995873774866029631262112393626268432315339171935691378989196606671277097343228082519847506195406203449333070378426798379941771882384778573049239862558566116335286152795713435314524810391638351705507787722297623979208407088711586623991923319336495574109949375410066796880142650207310666332190372968824698040807054186317885193804782714122565417999942520847288328203476858489725525747181941141110041741566799999641975328403240933119063192104713467023378515181682298661343846179559222892272724792951269711902324963913804404399574050092712081861325429437494680803495274028786638624393417108857657456509859476694892184500640546563007857601863379039611427130965704638609176346038756811696167424770017570120962241599529760603853488570014814031370011280296945431637235112508802119138585426221056899489951830180914171906159263693473649530715417590666788072282014882919882051557077635832956721911220357704249516850618829530889889133774280092605574823119088319103131939299334559231342822908244952580052392312035468409591811803767004110412429520600416749760555822753840278557228994429097079220373479880867350017022354028870748724156877915062146524891733255247701844863336042379174274985534336281951376593862764032817426362481472009657057617273393219713701624994376072232561327874249377778589269330335964016213344136498402711391338427470757769543778601175664910861942707182917441242654445981363785943440204322865897546386434827291483675790906124620843234390391923443343496772773556111421320014394443227320381369085729795736326744778943865774890385918099259886296977925891374705285779546130320543303677522033550855052641852468351949293468352432860294168994575328382103070059714264453901409018029918233366474407788470720216230623856055975822134483772962995988321194341336945834461478359693702832682714104848145288290526166403281494081840243768279808314945204633401314793187522373778064144956575621060530337373631466749971428199074239705585981535036662090465058448358290370627882179517010954976396032910465540606926458630212687402703333762870900863607757172312759161950765391337763291958221560239574342934468871298084612180268971042434170908330991098588888835254085942276917768288120756179439690119075663452417006163200810141847533290811300309310975867707303631842545293345309766615291752366323656474216904228061697515605333059925079176825022364645999570337747610841475018859988302655204068322532391058724489413214920420150763661972890004060592720424962760719992999765156898504788208519098035733115741544655500524131490124398995076737791147971421276661555365700029980643522358559463340291519655744773725774525517368467724114822876372680019635844862426037986498657582130805125486775367180449618700159104473879342430418785461787045785436649442843850304116481926667184975252670736583993025400618865946300442593498642188736746677914010289921935190341984732576022585319484839338206114648070364899786708653140531734815143246518534005640853019289907636016009140767076874864987866144724164384262549228598167910812920521882291519447434704103619261982249688650183287881228655261494487243355986406705534886676421607699601535508232824182707156181963143431092962804052569380172100643874560935856366533754096152099368441090064234555949678992586527173749829803717638644155408339933247328130954900909116944267647099606051366703401744118303662250489910202822410449800530639392246517643281963200444786431071064518182924901554707466301366585027750507967666944709231116950742845792691986465479689769857442471202502619936276904918689385379697748241302056076304338922473675747538314713417546782974962447706654093819818294053395278667728983884828299114239277363245716014373375263048026324942165455657671976751934720546499442516009891508526537508002510756054326553772723422307196967945272246615973866021741689039122722547133825915532284525152266946972817303175525367108519113588765425443579041298241035431744232764343271370654209963215706364060968713845246245663352691301220789207803854120376020634119553945346946694930916207958199116593075741982692987786665036590825853102107170150184413675291384847390819223564708665621950319865198555690374767109471408761353154871815930278188382078139400086999967045174005890292947204951246680739095172243055169301048038278147544641937702694249327243368125202460157153486104406075905633203741788371475352143957277788274638618416087213432549823690048373821826384009251021559976282492414832391100246927892536253848077699875241682775157981445345592180912352016230923561872620356180637137437050124625681248863511622694756689681361908739138611682781042246641848813774916377582353071751093363651592078320285074878177329456795722880270292533039303562960965509081112345990450064098314626001133976600372981338813161449862460738400410387389523346770156047656476774375309135303602773064948548181815798555845871362783153768046482215248418050024360485920424819532883678403638789956319332163183177839752991937552421965960896506553739404460898228965083088605090890249651264721191096922940386605909137826663597944840783267636254438297382631612385127135883189511072580994198572394263896590594982782417809235047599580728228798338367066100204159537645690875936082090530464645605498351090377847790876519746000574937826856962268923656473689664002376142139140408853022853014229240229342391847460728918244015840316196570370051165037483283612130517927679202949584496107578731219312362792490708774704940277207668639512899595810379182555275737019903563985512824029479351343047014985331634148827241470870511372210732637816770795704244352542402658784910323099442185047657104762926221526379911773502945540414719797361893916413646795825081052536221009567308707059953511023282255406880818424246132905503411246368206259564429291757401920097057467517837870949738346200035152023509658220513234951881288097417013828007277492706073842957867654565122328069601873592793842250298239452654566153768909500376120416256518301073537003907029150204753714277894368805917320302711857789917666634257164269537166959331831417686469920393292873147806545499610556358587858035598893825325627842779752774869590582901784353170386419677914076504812980943838768811633599534749783496325840425665564883523023097152638961085263284139935517370055701579243314557133926350649126910328745743368016847088321019831805725899635641749947999141176464087830985873887601262243929152513512743163114240916595798544231194074263914199573700819368632439542888918921590733557117772516588695449446490515695732422360494291061139881878797814569230082568163508933768853608784915097614076727220176526327006304042988298532360410002404018299071505820953486678658549147523103917653043924444519665134251485886593572530618789331732908416340355221647410415435261375821818187912790652821080566445817008188462120953276418823619373937158454165450046137634755726916725247610255780211198221219161676924799468148510221108354686977604706507970232697917944664058254587841235137839159878685765801747173575840055450021699156624893432775705316234398574651211255669761595794165500430927839580643678562017610936953432274420323727782921264107279273315388054265718719523146147608512412071162145370705234609873528525352639855517375988621522832527062331717710576468344207112184896971626329212490614166624188760417868396533520813403993199974584851636867649088685910452680787306216050214958591937822714926533322860968536505039861403799578393235926809107789054855586108859242822422592774477365117818270019813885316073056803365796762717845777429169997919369629629072997268103049709697061750361784872804915714553234024897008651825057184139097089981443210863274307629534648301060291760317398316298855807697144339567729015294792494892573053103628809298857109774203433903894241774960849678531158757524460721062635221799957944832824964981796880877703560490697406097558151120951620501327709107803913461147510049698677195780467282368221758850855512187378823843550239713535647675312848875111455843944130756166908021940470540250925616388730579959357100709542152424023897386614498430269643615697593835035800086525206634482325093428912815946824688131107670648072715392133808549088932174463059788581127442534488131962175507453904692292260778682863658751566809447504786267227357076953714897264860136280801508442263265972211471187217154458187742615869707938869559231035534774484427102772791812654193912554760484431809343679664633404282833273374185062986549946001209056686091094950352084418389916340306963343519971372234045101839365628394905715741199173881420686449188564896816333551950660009288433325248067355841713374961715055093426371894023253035425993843941877187420881455435435616430348910314815205765886944478270644910995335212843251910491246905432173805106794185988054401289425123258990996231232405387739821014464058496559741586595232058144988525103769306549748931350603293607448181499898201118274927781520113240464303834000930223108054725959755121674670665922944438571075829356865159801179019948045358247172345030176398914902214494890216019868415175873791916826610983857384537652804189009337550323487675887576583508168084898048899461346384675835827589450046648026022470795960731123470870190122939638421992508876853711199854331293724294847578836115174083358437533109066594270132580329543981526920681054804215521024796511454543319711530574099549378383693200170656410239939685203415131733092513860829839610344837564348547094563741106045616668328026369760559410786005301485403212528253223272517323249355788226593959508373340095059845300844861549376083077293236978053902069489843652286792858078158108085806495326331730564681609178514712540008807225793713598591960203211769851661813820572666448797145605056476417427368418914506734245675641604829030981897917595674479970441848154395604702337843568126761771579873748731652445882100164106192876715295197730961257950401327995125123044607173765330443488975837750220067414677801697322800545673449942537241384582367759639957228554593078385191403950474413617589100741462268192976969498861286529855178802499331966356382483829419247431923558426763507319858030301534307486182437832522793357993835685378113275565386473002476743067237584455570664332239670583789750194011098458453031203974160814952863365122483951151426513952136199492804776145672284844312856596154497313827859533076736960149415863707036217565867010430358696114579171483445820548229597116654702113627728249354079462907060140372016903577892399326303272607254506004036460502838092961007600067621093582161548809682798180459087699075582797111496748587103659798177900559920461992108621883339386436767545357823633698908816193564218210955951100939837537477554658607786559433062248491278978754508135580009553618632247789455782167285821565583485741692055782234361503253551913069451960052894986940468655864528839323919612404399594779057554351905822581270246825732160269935312376217316256389732475711628596069997082939495981464546812429119289449321675789363587752365870831262612976895221403712133337137363657009749611146795473894021625486684146352498148656843712993256610369032098432452443637457892832745325401013787354608708578491533913301848796502158881092990371435011496211919724372703633189011799293100919897206605891949918385269867800580939230917378195429850851684668129923342594667076177767558862080126141261464088615606370386756461288814378861816884069210573731007147127556028255238461049428731994983801419274943751006947906095976275704074256052792040373513225643720532009690271261787884195824392343316525246682094254662729793482420950273277702953598156498247338180616393871547749197535049321791743206684340920620175808477830518875496124423952011896490704766018606357333213987937346739149080881235134551377407155868222354558845754468634333775403138713026260714622401171706024010652254911986468430964157219449244602828173252536670353723004242498660648053112750195435652322568738263515606179781774903631475049573203258272282087901580037039472207847114408535302162674050665051256166950057399083273250689952126975261606027252472836652446769954693569475947257566855811894258537772576809839768588064964418575387172908716236658429546000645728360531387581386362944104313462995374182776271853061591934261217713201031002114525657669028709745553310907385811128955140392716687522479984987499178502589268902148245957825905186445482530867096054152463916486748199695691963759719630398096105803354613278943598184350869745259200054859003037296168307195762268543536417311817450957993316477690774640274025905255388091862936860458673952113310468554748440381710725066369101455731473828250535705756613939175526069518689649250344686647491465261560855050379139420298199422219947354382317832230368471373302474855942982638040651298489197127731269793994244683681397971930894515313010228207176024113229639122806181570953761845202287863361784261035310734175920397829165437023953430922591085010805655918772527775548002700192946141441537672275682553321417372014074713478844343631675916143872255943304949771961233842226616048964396242053267797041430802411640119680891010920634290380279255156967953244161928348664108382860544153699643659319691377778700593603048202291302651459229613455802971827243841968767243708449263675507056334050268371994493547326526563206627438083699582633516760708235495298561583433119524392297003987910675268314944224875870597119750135716880807708801638578432778181513027786831168589194611430108958921839289713359413928885648854509163725939835974207671570746071497524605986398966957462315777686048797201480357679564845898219702887616123194701320955924214488355505762723234434842642601175322306182230356585080470110118991932525717205499629266412977350428504370262289723585281626756378963020389847435594806121738739066853543845303929312988193883304118342377836147805975750584066225413362933578093194781966392974235039084805932006978991767883396869131974825886474708627997131325613717273081653340613946256855059072754586450686465652776825553429721408833837278820102890293240313242102002610635664244369661208304176869322010489934515597321174663009086712008355724205292251062850302940669270580504400681819227351425634658435481109593207340127496949000254472079736037916466970319503383284835516767605831036545270857655498002823947822313718870396521642078414038632005016875592892442489164321079620031371107462606935918955818239988365915310970042358174294600735961247432905721092909762924104106566209235037924431392689030306220340787058475213684434981400664399682817772883283068082967474851072684228563950311923967939970227828083290403918794270125640317319867054809038172901093826770327618187333823329928735425179121467416968444384160995792173492547541151695503632929460672187983817798488683627829099798430217204175362522299672743257163080332626794270088346679931237227789280490726906343593863344827373494687180880694508882406899726165871343751874071244353589993574950576391055026023488483193010977628751845555614279728428487603938721304909025418488426977514011626937613955045856899047300398762225695695285227027007070022363127827564720918907236614533831506450866015716672503044253134573076142482529934735508200948111074026427032879613545589972387692438810975970444457279722559558214831857922116838192022376660147053550332990566389961139502003559003953143148531999733956110064596295558214961621580455163249615249846254913386661556613057471073066064947612592513473986724042947052713945870057114461774359248919999779853985891554580117570754584198570746444171573528708831815566490671161372052484212406756883333463263093946744059153928124346865274150763671083329467993079601213226236297192288906112943956865890674688582258888398916501883553307523319815790355358685515578206546821833215907429103474695675663392485415223645371500388621789026343137853026622744881799998738533234152500505075994452916010384924296473792314485199676400312042619311018390010745597693245743996519682211157017225000078018520076909279952748195722352249009245510210083294350604709038217623401235278483873772731431981235331216735074162478419546325344615208289122378046922908509386280752677373364891675275108867186907485731511798719112758973717212220069790268627015397703337623539168573023532778080515008525981753295550807877886672815650966691615839112721698699388759112688648485453452898384500172007531788096127347744030045241675032393038367061707101305504380587173067566833533745378303685599937759086951306218465528579235933917419171205417969987256132453266577397569709321705621938004614828574998937523164351347470736588209810605778865416514732489817870094630138507925592226072971522620388194374843914310594095992584334465657681739689326110459870100372754352511637744161227299994101861956605142159694120635513144859719545286080974868254874524459036260473138064839379734468186624970072155471060193500238648389343756227635012792584941732643662372023278553594194930450011152493701147634634157542640955747394306944563542362081212241176373576970867776359301935638364440288936305078333228036674743943248657079895085250872741832683527199515779265271987637499790762084389463472126203607830817381428047878554978289786227472441770030163255013397053724176828153235161769069219970255699962054642437265357754725102403129943553864594831470194940156026684943031837836936554661866566254708258607489483972825155891603855349506451384744221188275629862063313569213435053541753254622942738570185142216047979181239135818570233638135445357112771171943216604661431015474198215549290475621090189572080606234908802904067854566746372417724868119007420655784822192950106596683535208679087585534490092713251073537813112328600410529188355048282568212439318097857966641441641974384650359754316704183852145907794335773149648457421486085488674529131457458931518483420505854272116027520701053028812182044257185040797177351938264441514303400003896508354760695211261435151449409699151517833258517247989474052420610045984073638435113829829335370285516415328184689878043592175819760111037188260115715212198992803575460838874094737522040639123362898280661873195323552920401422000951548088070610074538656397258970803032798551240570967529948775250348381191484476396069023998008588751011612900600807691194381030260949480659847619690480593217852139982865901636139729473334245297578429975902328892122887617453643431583753143784957460887473734258795875821990193538981422942391794151561315397930251464137986089598876754136943230404870285554197809229580446989901929045589068465978383379944925127160494133779070648657858949675759940506175576329347568082892202911154918648820159214617765449921182725498867656896225170636148321951406030844868842947490817141227669895297665284671870107291933779292824435324313828520635706158076925928260322211940276877904292408365323232151023540753423210947605321017167804788960416851071973969399186187946346189679713546786722440290516444396478293266946358491866150401165503213795823884640354533706750014682450893963508407963388339316440021557629487655451496229849457357045563984582865390103120311995586329789859964274241654564022155269311761821934040528049770013958185699504506269083218442209858065603603966505204050926529449163112247412243985455233459397360215848895956457603560112394722600290911023235818327077603181928957893191200422829722719276801057856446673340203186065797599897673630045155344121222746492117841921042993023304754593408148695733885585311878925724359962470195810494083427130065971636437516574637102498705362916929006099797979820814714713112899508518492003986404614653025099491414340358369556884216151820006672539858532035670787534474101821344997039591787397534962114723677715107506443419320670978481013906119468142996565946949980301501505043949916581936434061754712006023253305100568566199539885210969917968103065156627611400123939441274050406560022170985477796442468587486319694618955103513339164119590397189387610544264230246441278596632014847955273227434092863462009840598245338576386151933644320983391819574962950525271704159411032941605520070797004452742655032910680168291821505488657297908306573320056671104039316642894607397427613272069913773588877646840767260164503796909067376249123181569461325842146511243018088628385018727320829304932053488349080225799962089315382043458746206252362968122407755716676147083325307435180280156466152412335772666545968950153512096407409879933525112423683932555080407795389065135984869314857268748994901408530010625403698440243398573821267762945491927728192707271007595054194545037909180516361580836288870015386724394500702749898432185567647403247143923664843411160620931019601825031780683539857258391335713344930361449170866597972333881453092174031811747752032581674338945826496752752520361126273672109764543134023806587201125134514611723801638359472687522817638356655896188613216729989394014941251035646583363688776090658837696741829191920311945646978094249838609041603309637645292794234193002301740054343225854625094743545517096835436975603565019923851473718492670597233277579791173815247435316334241172984589412910750455504288587776273734066330416039180826874172606596159893360778633070199222318466648889304527152405511746120223016036619219393661579378673696158162597300582128112825576467959494028146674576045577470673902200197698318259700293819541492759081133733236058858777871610067258359623260496001605899148893422047361613271007545230048439431098999163722188623262572247230711979182304944435140335744766397083610698607144570069276396639734920292183462976443818601893766880534512777038481569085406140328036150280386094903353489323035792511739353041584113326547129056739888443593082228303303222116592985419196559797184885423887158089140369301617172570015570614836906812742295502793463522645006869343077482074666368747614762002275018155179697826673741459504387058872387338963291213957303994663054340289132774681687546695021614124655037009126591798302903887348417613972343394556935660083801609435561378553746892071454423377646719631384646526315701017132358397487466544236302779285419045015666457881859979478971251481140502377690261728979301308065657163121212079142907054215088898379545365916435512334174598794809276941751149031174605522455785458135586702153090077031955655899599746805741613338361641691140099233415564386836225866442807940336267010522666936192467472371364090542898520518835100369268187997465647052545068268393626406994422311791299733364106678173591597162898327417728872302052609804248757771006988196240372912716284558358478403404924364878183372432037161878814931836632132424242420147187986601290829544902098739959542872139066776982756308916794217401688235876539750420302448986418896369096316270120557681969929154992775142543788129467665083250351267168466448444547240410124528064217832732227760436916102880783588718437100518084017958014108352816351636038053463076389194761501869867367060501475565451912556348547440616202739383503562785615295889468170169994014332311095287212448270472060546025850066704075791114136827906978686587117792043561148929968719888032590349546258685078645156073721715399533910705457420844700489981128289942160212220926244947274540561035820926425126780398190545265944373751942813217137033612591057551698992847294695342429807232562902588836268426784470298363132949660544162538614748828347981673228810978487694132343671883348297513277555209811183566129984856870217344971594558142051676013631681044749870916364943156667001634124731526314664694470222860280711813992815888751637214266832121415092317205731891117328825980525201560900415547775952404089135009403651970848700749678332743233588694631268790098502313172066141132108607604861957063566245230487204929701679457814582009036192806782139458937433777693126987686811712481640849105253884239333690894635409235802310817255763499799694364597544489485664773280449886762357891730215026987964549842771233602523960136788902639127631673348690099465888102863102237495535995017161877940595427203256807509917230406040592447593475587819231150708603864364001669769358844410773687028457703794092834941402822129586407527063935399304447238508439688527577798355208317581070948268654551492346771164511885672238076006299878184487827005272031293884799820971943202275713635203988800756097935496850722217381909642757568466440784384976235954164378986071667348604995364292157690926961517095282542108602668881287621322828870123941112135608499848560226167435034883052115199522213094722311882454739260808544121534421043454311042835336107232244610950475490308238497623378772397985764670714850727011550335079176889428553256555785689141110539376812300764172733233555555695819795161678765161127158802381737058125843376445496393209033630888423831346474132541575834085328701621478467527366035329814219899900103996516639857816270835896248137581128520502746831434621865421002873579845306419721733111903252007346192981287229517898245111770328323475986403956270619085455073580791658971007776402290351977055165146315695428841424375579757096894223288731250154465913235682234856323088186214869175254442042503115517112520932667209352445385328575930785720519631126771596563353595646066381215699176134271050357968934692560977592291135575500449546809395941988076919375288865024897112468591619511911805736623365074921836732839574906693966899486388125465885588838303308642792235459716140863913280169686706096747793497025136967094921185182680683710393297681827934909048809926852979497855733371545681229119082889999649617367275829677225427182642232866400132724327309242950923056622134697756027497131137749640216045186933589599433451701314743167166992535535262519182296068551102552106617693913058993047044013055539478586631684376918286472343532485938877973370002374344405223057833850423369748670050160028663716354807214257274236347165982592000599527350286342941390667926697237987304373539379577587467043870950735671245544966030978961181945541702455921930096405938055229427692173509881950338542439019622355656650959811895084955834758326794413719433477706441743068760728732386031909376467452918921839273405652449125058695651761156206981250039315388458184406490819305513822068081023933630856535953832850815185286024907380888193971974192664563416144842651154131695628352519591124428382628810103084755454897369025403588236483142440595060433363721723113697973766253778983291481467685475411897102364658779329452455366084629871709766714521539359362956508416867938874745177684647019705601206291119659392716942878200104738422691208420374736338838627479266343817074600861816517701247380026891028324861454672894643770339434204648424196702561879164897251838674622230416516000185643129965411759820850056332395241632046675535001335372968491746764631941349922374424722463302202185954740646378821188234593940899689958667766370114295285312707935566323783256196678213665709220602831025653913540119066214292393816411208069617216043809938799300327913519396160545906725965724244388667309883949480405001995869954087761066913890684279935646950245990878656104815262619488029162203772854404310761915233096761345657898664927602310346708078390992627547645000231115988151525016675637395740190577034126134204163590448083907653748582777525966628543162988331420747782612095040776043338836635802430892448403488354102870614733963283464657835796697459258740113463457623216081042397622251689597347681742851273772134888431264298689167069631623873420014694898521423020835510710710502557188462778564403760534154873713405703530471604771067752932007990830085796335058913648697747150937612256284483514279338752636745707222002567691274834223794366061319862676094406210515237198485974737929740617724333077735380254302218943957667695095667279812485008486264258848457967719356146646462601496495146347149006188672601302167481074660541119266891840637883531105630441708083578019992232956434743032959791358894379380097270442582150692797998883144672532976896720924331096787787043725470404969378268535332779967817629151867127754136572668369349108729256606562281591526335044669497567922949764583960403124782609680807632457291796313570638055301817950615589346192005525020421276892047265235195908441637059762275805273353990572737729245898431134662089469356846280770879593423614342618357397284121665260195438481774502442968737870447818458084566985918167574593630071250992994559021579797126797928681418361794529381147438345911304949490625457775739657448250418936610501567223911406337904426932767178357282347840242922904037674700397134683438554640642707102611753009130847612735756388934449578014367197801389826534243776067204873056592069332816973770772050673214000573675534498089554053868887867159112407602402876493610914648563243513922828961692053847422089604660805903823099659189334258907900622370408006699792029798194409277173502701273368468208673831027079479355302208227752154460927356207151719553874896681908468028606626805266261730739559289324327665608205589264922811457207893258778236808279305050030741774353514258764320918185432669406906760079190821342039636895309452563340221307302098645862976896554724865262428461104736657509041771732052323741407565848993239270868216794264326875694735191217476911115775407999719992668288850793903934061031042132964682504077064770521769095572432685966471769863829141153779769760002581927239446920104966004285085470014809180810817266504567967186688064620584788093007116714190784971339391499399525524545209494650784349719810361428778184033220570694639515476946972767747706424864607939235195654366350830702520798246537427425699694577564626119873862943453280541508276209906622774358444862703767092488431396731265635680597853428581984460900825022815051063672691418876039788319773186265729314218073290550935385624444888087051585120556194413737032854054757221463407137369326552108693222709423907542994089944254445906867574114322524261672343521912782585438845595167978299328323642737457452544546052939896806263513733587214850808820205518659958034081488329701253781235056793050818818568505731233257555542419605427358319447976432499228822660435558523349606680905502905216337784746351934749713022329493965510415987839740167516618593605179338950392466205245511268837311120785257244245799623294450168341713595140252095179264681156829820313618827396426623321676441524695487558164084358212585044247670699693803758573003905790110515414779557179169312729095998221364115981595201458613678920666663532183944579112942949372746424648239215477975615733670895761840575322098504748583570891766352727809495354274482525113739382912378335184147182784881809377625946725543342069023837559765846744498857297100153365702593838609837888370559661656612261881245463878074036437755829259340136451738584462455407649029616220229244791778901424327249245624610572832994427679678314481934670551757083502942567326335264906514141210237861093296718863103717170461762893116167259029067712239858836596414924553081207285708410066076168543516663530341382801133819677912289974126655244951348338934636181282256499053411503179141167093830767768774232569803429140799802919107611396530776180407622194451519402604063470356799353883274378588152011080406490885175270082056238020512864218424823002632432055997998346926232665644701956357300679539057244150398164239082136235132717714586191210328112357269933087662553440894151205179902731473868182626644475280406727464085723801550389418912595893739926501687752743769741533748172422037707128664490771162603154417119414108348606899529507444772203362744266818471196563615713772424615456070479650878312900133434911136292975583609060175949453796861506817908507607566212738100117918293076118629911635574502602021275654360951138569094815424476722607340061037334261273608044855312147578890237559057711317455009411859748652962705885639173897159515988987014175869648654185324863779433780506989345553880505233124949841887573046444733144459850552473986539970734623381939800857730435695476169828265893810030602411218665685980207253371656135335099218859560107881521955992984830737114161764839950330037898824790345410532502054955693588016154598918936886572124748963613671862818854644786179243581710112551851317871774504307353645029761507292301108330802551534951869294849716900991730394769733378956502295614877878048366582834827540230192303690385819788534303828558273006721561304247679650997367389863963084595330994467366005278953510077510623540518095062072959121477879266263385428792589775958630580646504484526239133538342627050430867009467036220406339767252991365187842306583966702262580562122210733541161850293635641616655779237766395860494693244550805903617986442755741294983021046969861644931370103702775084860153961665864512853545304815598296382985981545562592486591863288176301101499737206920153869877418621655782087885028970856782970192695827695239408257958934666666883918358815549069436830703532763207934945109365399450972042836730670351441963155288753214822189325967173707812714051334747386080963694563512019018439160557338408051663829148862479351379403713197966875856259482942074632416148196268288849800968875641317790265769105550802543228031258589984582872083257358894763134926062496271832200731813542439536437705648192953995700144554383910878449144193680471065163474031170374482458505185788180686628844170793566042698003163236349120302919753700996010666193896217318762267071826314852284417279433406818103101838417534997349697901352604608389864938417085293469279158345594247787414758186260672246624811772249856862298974404384392184024560360919123698959782488064463195555559308328167346023120406670072487747599806326845273202557015621687662840583268894930505193900504950495870154003485427760246248588466667342385974454567161141984303835706397426666703855560964523903570201073652328352769206772213666358574608076159948257589026155644286649673725692080468511746267024678766860322879651197857616442650025536622079972039998656146915511996591892609987569195721982755095064759786156264742355786450113897041993509976406676557120850295842115591494729075235534992741008512949193855962594032638202524988224921444475588270029003679518705235762764423558418333071204601246299399154841958135512551467709344714433092476373215011861279838185602557163141744264421039231841248615613047098148024733881256960519677269438321490104652409981501183394145060084222913194160995009964496196330766171680279966145964908485717408237805713129439661036877272697904349031896749323216657233190372154146103647188424635680197125709771242045599277189401630807555791531803886385226329349122868944587124407187398513109807299600005402969139086326671417923649756297192502128839909708484680439071763198298386258976031273818102754934261012824458351039724617260027124726441028393060367775439840384623746557117766042747940447110253227526070881915259623881035944912100259215675509990359849028736639465333622278560198785244807812000092267255630431187021878325473868804409188331048255150339506237035345911575694871584408122253546614612133683291417713871207911325632996961058630638814550382930706507642500409597837720091354284328731106694070419993253056831695331854406218096083461319779933817165917065487955211443993463691039132585349777380538014249409345036276165813689500309512610570841234456296013280703948714675890101664115170393932146989030266726605846735059647527480561780786795393551032684912986766565426312732988529192700824708774002213743115658696907606589908547798087756486559413089027045689772974195596550109221935693238497816225875176465524209255740925717695468860519010003160801289728987052861085422973909396815077500965971737146008611522092622608527082988364373624387798127745117082236808061077077413663347955743533547250663440979289899184082181502006262900581367815452848577595273359535974840872450053882741039998701952126233169862828034388497269141695862950362027229748868984900397414716167457511413346027344974235505878072186655258735064125308324573880356085157662659100847907204770453688975071997435665063066316758761134751644189050994953044117199851499167397662294269445166214080877491355367345306518299977582014657530815794081675035725631308268975276869491317516603141962741227162095782997451259507368949976478651309830445539167618793163664040969778731171580041226555288637091406258178846923903643987679438994419596332277331510624171111117589582042138226824715855862315936615312894321916548928211959762276658143596743190469318970709546254984802349550186923112936640292909966700863878400428904420862483661779064302063305933920322434365160794325702465868466897715343280772170987980118148551579281644492135430015252996137723601077292108595131459952461659422716415747632365702571880611706348762926273236008312525699654343218937450779674452915427894712722894704464813147441242211665900810057217233044387008737360533164683029287005557200190699431998706454465506242821727117124592068124294810550504047059241052883574006564845472456074875624763472596201955416308086991308656786967875539700812791176866919496838135150988085209582767929487854818158433903895764802898509257246086253006148886286503065719865793656157955982572991894328947716189620569354672805441856350184626344267485715560888443376776775181119587963168418536391233749766123771258705575367714255354528010236191288246608468567360849341333119579933540423335773588963780531839093444280492270352162230871494436067300423117979682863905171951575052097655902730996709989020051300226332647381845202399769112952460615572933669965418267875614644743693887290887894259922714756326206666732908094698629295343111076243281643273608630864133864864668368334034117417243361379086047880568004597543289332721406080344475032843441146117190967017625398428226686468388170610025364990074317384700086148176164319642146091993738188776548270699793984153938974909461030806089521056237233733955299064854565477711132351150583518723974869707635229334354972561003011215891267832849264645292657116115146530034496144130407078693714179233116662476964087635487399017477537102018211428142144824621320489013665523144244134042877529811835667348556593691796255853153675107980671452796637458994210311881547454807524651853170218249967058200928170347143305649061103029660077886218643958620309126219537459319155011169133155954733941172086135358840520458592736046321982702240715420614033109614862990759081033133065914757495394365387018430653038342790401430598298810968662879396068421340105866813687700862550410669655362243076097486920666744068427555947082594037595454393281264615197860109409221003946623938100024885780821530539641236263035680445023302479433432134418808431469281618392368201869189398393330782579391518765988615852658830313054820647419923861166216919045975656253336318446768950752992586777308978113220554526893234119637741580704297917296184933765166937562151464881384172662171532362271080278418137745960978655724521653492678760880091880707514451795591893207464840761990517355858488913303280635078797052313167676931577373187959490721237263799259715349422416504918609591639298051537541530560108354141244266350884117088954264409770274228232128737818584813773935509749335551140624466436894204535523793022955699025688892472476482856987927771770439584369247240062220941325554943292326806265100656067112487799788039988221458634529591716662481653228741155327526411248966562365362717905170820153100267353958824702235281639972401534641220320257977808273135512050193684281552081855499751491511016991412711608445400907620830051416461882552963462036087371679019058251894683895404682662971748668008393029512607766929924069435225777438631812759679506943700156062505627855914341512413394030327712953253107118617480257722349489292521980974308952122314619576662075923556359726690767986661233291059527961018343106907702032228716252083611956494811752997132749730597835528521285785478442861816852571073997916448507379463019479486010937938364054003035089249948913801089313227030643660409213615225175033647591255299336234508746206252211615213453346405907315273240795593956003274879097386942606636143145093479579364252820760576736682245561277978857985090507465575999523325768019785164732223573444661249477999064293351032029241706181476957105077280191727166542272028024548065568292656244457107484434380924735583240595727928137009317949584280200678166703023483010740547421926860540197880276706177331169854901005325265807003919332218325517622195004956023295431880724870989224933073759045534887851895773428251250967651971856799652910171995101746478143027813335716956422319340757137678346086967122438121730798969383121704204911241451586221205738198926028132533616506332709612681127354457645034386271837391993894379695856116712668383393759855826461542797813317912057829123789989227627725615951258427540001446320445791065468667324140533658619184280422625821688273710321538212290016053895557458048149707951428828742756657075814826054824202210612037688341073437044616953135658473158464995233288974086138926037436545571031357309787030515797674186488333083334683061776199649533323434059168678388645247041275531439579402788421613759684918282328600669289116050761181598098057229676116423560905478275530999022836011825568757238788125858293421121206435351362342333545480003763735392284413374664475464899727153248706234324739394940743678490417272542657426758951827960203343622606184340654829291096947327758106315005802505689492133983705710619553810369925100616045006231958956852776338414533870921568787580321274603112849248871469759238966121654100784516651875999266072990204583456279634204397156524456500393326975841615274186890528103396227728680145702700318962787707751372895137492853891601345118147909121245542835114507476620614502078740552719831064913195084319393794051393560862448712063282330972563106568067159358712039921409666332251191044508321653543621993777585843281227230971764972700282533520236033469451608228728472752281846877737507229883391318768369026382449348885643460614702141015933553708337592611935438143753258368050686926516021319638590042494502607779328982929749310257474851915475821236842755637397781015150277718846739673439741825642715865300921367338800791231126616041891722846890638267871722469773414700303377094862942467836229172179125739785889572304938003585912363996896312161385831046483707963766267992976156682119846593415593391674446886200355689651840618965020995787949475034213451064682941891357624099495577188337647484493614890337338736408448766512857990600569180355802175743282237209829640541398491768614254113578019232843223566220125337569971038210371450536113521580875443258875177314981234159790077484154852468747186982843716427756796612188225898363586461233727087316163958782993815527341580288062228960322744791973151341958948838419529290567529135828470288997290468242178115881254450027577348975661069369938306002844248830408556897564911615693828782862045901715920661835559705573502183092691196050687113637921989163882647003032398559982585297372067596850212232594796092137013315436900473475800526697316366280876754686843154412005445181096396331779963270733270078424261594328719836710018530522110004993585898093472727826132452225547446633652346902607995201882984865792935643341058619206357658021349497123815423332633081824963302038636180607430078936284804945727476555968976904796307725843589609723556268852771769509575485467415631893654443452682522268733165858336717410453518601689739003705114038721607492565728669414463434281934220107879944479315289080704416783720859140380787192020468714895404296577827423277263006754826839257204742895691916760052052321538211408873240679725588369972297703978174778655445133936952804673097919875464405405015355984214901764939708993368236817978618263713774776189924213964754681521802356570084650624621258009338239375893985352553247370307268761318693261257733337290274919695015084048179987728373665255064027193614777325988089081494639422730754621137974252544785730656206162327584566336871604105456555821963228444258001613092292561169521705856174292971169937298798552686573679816223076859491733218637615077351715337805336399472531737904670385755272237382781358856453237660838981202294975179584990141689663452187860835838411893138472832576864873474621953538997800875424150586749780156015931136540552070950803525500481212312377181521072980032310175918378625405659625399485447107620238523408341501421890183896302766908646062889973158305000605416610521126183324563088749423761321117383235991026715443333980903010767519215606860915099297579489847091340484776037253316486633273997745741707870588584989036478250500607565276677666730181427983462997863115472471904638130827026950271552434583777132888840113322856123276424758054914145334004307351368200167103048967407913220417329365588638081990240250424758979906199739449424061393859002043745081712616036278391241147268209085690526837422506891099193767722077768737126770152907129682261584375714966534629615403528980698498199023815881324900728284203166454586451867787181771772779283212526968322976641245496739715278796804347658957612653385245739151343813784500518738591532963414053689484439722550801196079269028116229367043437115837195386577860034194671309665344253552356135039263743335590248778009316758556650202614245175520231051803797924160186816532721349074474187926304637935701957254656870769649025628311394908306598139258771657534329051829883074422093153945626718913650932778527585614188691505843112818062116453383461456499861027990887831599923320834970349900964482897361997260841303050161383437573503350269679199100394576485031398899804053476207979951035562800942711980771413862537468942006711292903794021105099312881767863557121288220584525902329882784488972855767643376551320983720845365197273566294540752078683774825993769508547458537785440151866870321270325108378857553525327422467456165530175294697049286034935237663193775815312691121571250545649366284046131575493234361611438689415519179552116040327941387040597365968287723555493695367249260335274498928882204488684436527515895468955885890718317292891292345774428441927250527684755038702706328297997585388259938790678996367663472636799709113700050045191515070502085744705320311342837530396450683734947465152543161640695883965696047762481007698125762324027656324714558678116653563357384133203756328577111457947736117758910978449597487134549945405008974943123702669160022779621516016443144632155674657986969134302091737537932953736310293482594184851531345770064943739097642085895731774231457672882967906750299223152573286983302634123352631634902064904297082100632648815676763242544468703921333767894896001251362652354725651702225595569986284251088668968471078726001673324221562512429272130805593262213072140936864354996898787430352676884922123183449241907637471574744625215974576466357242752795222891504064277678656611519193319181783056716465304813810106667342459156864174457688390624192018654102252669706153890999072549984285484195668192454519747093061422753151298445309182757715136118167303580932146032258472352811825504706062154262243245514468964572693823166555250959895041093425374308599979713700425885834030449726710962996976323360777674373479878835673010286471384545928791637490145406647519394899352212362474366131747830486884631516036592243576762762344666539589796468790552923902702010757218919138214831626852490495848675432931241826413466272282093653277283976675572672897319381293419430572396207232920071863867466703063646013311111642546802512289430533112509853860120123607044969978521095859875329303277162267982305510767692680002207418849030165005038534475971018301673782681943612416569639252294741035743185176583656034123276433900956511863260791733899126277207213516175222255241829612433962825182328696862544411862381233064034533155601640695747232038365145663557498734411685994161655182496042597983926781613148318090253450716466644267026276118597649132476829527278057032238343515063672177066376374024903046590962859602719797255378001418201998101813981259504234866248344043921136487236662920206393962884531448374890102608403614840731200674156229159669636694083603264334149637120985454752501773669601971461784645155559941672637397085864959877953242158328218410939164052835679070686421078034660757197989148155400542005107300962796234727249970112217781656798449194332226334150338567530824467734104550327428561157455387421400071928430177447314230098365760751551277796281014722053066817420350596794105098046656313637782517247091409925552471036812670513824675211720052849429521974886284898527787835621060048781271144063499088164592445189801044293570832904722016072696604619842607722478310717143909349289737950750564710538029161874918869946353013572935018732066873115017315310912967948625497958151216822075712318919091383383534471023659794480804712338827444035053467999529133546094139272844651391190836076226579839815642463829159990441628452768189353279135674740322735150689098775472181557499848834669462227119434351395727560933187767215742857830330183042225170496329716122968367527489832947231506974978874140021926700672065677292131084935729407635928956182812900110978472432830384651974375857368591230981783603031405282300813026631330413992533992179415764798534708178636113772001408570838639437703529183497403741835116223700401731882693932630875054875664529093265665030243944536227279170800381578513252902365105680962589179424001638714961212169469925442398674726206005713115387838833883078016537883877521159311944935956949179394057884886062395944418497289287230849557926072113297712137238869698636023682916222546471088062109447913239901540667816028934694282155062721260541798291781738248919973382953016826679061778013533650471886339784273533585623279185357977922662703802445696829686254911874868530549785796598918486218623748556393532156304899283486556154154064951221046610376548180602506765491340332738629416911776263813834785118364105699966094920204489502629446168466855106066242088314537401268779478139859577769903987707399417032565319355613000528143599456061261608322358990324895659567527576985324574403560761288607968185761977178876556198523752744722359927202060238916718790814708867068302793989768378023337579683748471679204205611884614435084238369737859482588497825952141431676898495921319389412875069596149193271147035874533660814943754697142919529031019389435637183593749148307423044934029596281116652389958110600093862221622655252976610650745271358949733447407281673926348622262971347155532936244457994650823197908769074458525370345709007744081534167863870148099674124003837808523427397788174691080535330509119443313873040838043067506030686269532124522901667503856318585859317437769494157410810572749444384001399152295292401680667458424696605569107697596987310950784518251857689800093942863712191016698078851710571144669507031273706962004730035675368235205815249186823908397408809264852704581680063915340134937352547150923527044161926572110042345848085322398093081970121586417329130532589871715885516842060650340556996859371591562193954595558557009347711681179835995842798195564356365309389050941964641889243417661217711754573714429402729377177659183107443058151531596094826350633655723861413920813075414610740512741348138890687520896517547286443489020150187201836613841728079882729582018977486126338360371109414086804414638189975514419051152014024187628978688233866528874956474011072459905537992175155647819809184955876752778280803822629818043941563979561725694090929518577447883651594478720682678596369454763706238206696202396620665921081278183219127468081453031421779867353368489380826681896912999835199422321272638771597576428521321515883717146485428812423122468402839056157796819989785562510271070628379399431907357979753622873719947845210383168668521420822019266723155810117372442375609151489386343666526579426037168289281580693159057152379480256619126870887647506950850111370257880233381801903021002975975592681821635953507064188571900594974446797417420252130947246191950277213237247025702961631681464762184643644651799535877759048091724695567396794553734971032219369455962778937791938340697253788415502062958387483096195420461546990222684347461767711319737486600087935443607302433663280865368473350668707408900184703067698214753133731542862215155131814095414979724670676343697696458309286795212019941406654043266683440819686918622917654410364920807857292423388755061809836591222653797288411120130691018576030498329532694214188425942866214695276880632082571964867134224698526419419022236241186339130284171844724822755723379969707482002437580371792180734202080536935740618765664169607739120909813494702120725197213699642344209305478465069237446490420888732630226156357919606309236991602782364930003449747123779455951240858239709946570275366759813304777505050536634574715516558372773100785781787153031613276848925357607846211478860351804029765696058486717567636659308748016099927950787178913104203849478943286084797051504283326524571886423198399932856342268607883443745309272893146092544299060787111736766959849633062177514884899337787867859785265280570548661217379213552124702395325608190678852803832422968075544717437748950143023150146961225494895338362756944869304674198022922555065087429772758076095106879827109193837142290968268728596321942836727242477443909060036804852784543854819955828743344189095523099265929588482897771967505439205771668938552397736092582090693430578986742357295312051485090384652493140068996173731735816222294455416149357871477506270376192498036384400160913611713729557661808926386467940279365670385305779912988573944783757639092679443336505496770742285963808721870399582714758000440222404214003303590360960548004718847304678286807740989832225262453168032034084435109374319499380299081241792110895423927096542582195848586679924115788447815219557498322258335674226798960098032009354865108549467676713405310343499864349758000215286835835721365978208435732604661260570464409200520643748808684041999585408697477316017505390253064903620449458476440882040053860571525182217793518019414711660086532948281060021915944692783460379829268818677784883782713148160668128480874790430234200377130896464781785599461837510620688441358628450630346441913942893762354742777586769014678228907006092683252250324639953337566728997660254246597951963260902742615157481865278192977983681101331339651625793318419407026964988951386923961261275369592060229690087420834720840833188415826838019383358973224335136412244321174979404766824167809635203566415433254150964501977910541460943749815990445792838028880133562481814072611423275972894824141887025957454934254722746989976877162316099322885042028070838100814091887352633318358420740748446573397838429805347106002374219987211762683334909209073865337959074928089283030107207550472450851183334676304759820661789998004462744803370196555021320441396423674506953708781697379969379061637848201169796270721270358480479488580658308963231288673402963848241128765952185362411256969749199057478280326299861231724793050323637705845698785774531610386670675558440682408910511818429025803298514096157331538756311438547792152983663838215871358824082012778384097362326475844352630281664756079993221483927156321249990837098930946329559859928728433521252427433494379023824949445785164936127032642339094544808620028353526261752981835525297880465028135399112847161281153414460389703165467739525876538384445746110351561641809273346254142217903310714720310599294953895958436885773489495225982103831596420623273071483716691798967444541841890372511272835300592982739374737571099277652356370360647348724784839684203742309758998874387876542841593565973588345060936129924492587467691542804598132815825872999110300780631592481722052213206010771492336601003182710066727266488949550942336897935481055796423771544954137177407995177501466695465574100801557934179598301318715461713838220333287263136997808093756281698575352925390236568114358655398284283241700051641990051764383512005756933430421802931523685411424059868057389737717209032816486238395498050084360235358582554618855942442612928921434147898267094176760452225134929872997435333820627622406331004883774527381188722581819982219428293676666000040379914870018568674554412319573518712379305995148215954867701054047820258539083335640618262225208028648666809763156107137641890902360603954124553570380667535676524726680367517673845564696693596022634258001555720896238403647713214296692193472420798729629861675796746082959712748570679034670391578658581112738257432519039782995445767430575299283028634186242545022496241979163982734904359411395898404348957578332464822165249725331811930555856140503105076548589915525542652886287528895545773678742029770378468475636642494767084854307354132840361634913471074468329858980951110201242544884643071227174886586964367223751257407663807577968593851823215803790138851324567042252785387661013519568286523394604020035673386025205513475307900746894526143616381246602094339688182998572534654355285404636104131214993769216302614831518234694209627911549417194660720665528440044356575326641438934277220905575184236912080347379886707969228398693750888161460738382464200081539367400188625730736953499730836725281014943043645634975213545319519500350764823703618453849756361633974429430988638719898808188086747495831760222984672501959183717870015464719437744024587964419343305273778617450245249707149907000518726929283458717863091748438785506397547781397976147102974805258930692216662225235373449011353986266028141926476293709768013187204140666876255459542229249384946271177550175862021378876760029805157411237809551927818159082066363654035686833244556620095160463375225688255854582920019306381533873656517945743702588756264732107732276466231522699379582538162507411935992575434703207518963927929216230912990259044551217209318966179934694954150218683377015220759113008886890238579915282639867824654608874627852622681424733188588572416651261959000329224404728408961960264923773072793032869835071995091733622206904266211379357378789633982192711117924375186838175762134729227304841109052893127397566546440159910892056359539550622684903481778340163888074775859106047358664560729940094200063120435623081164981455149655513005854611735524052167155666041333475875987920445592175677563283767227690115416492112246422360395403368455011342654247448989545996792036442429665248273506879964950157404621482511116740163812882370549267667972800574632906194561799730944487237467063062834619376926372843710250629430239838747180411277944515182108640001558475791284640128739950977629770826226345882505207818345760505308157127681646160126745615131039107176973845578732241330030005534719511669012581135208015630373046908093097927353658564913574711350904412759076490299193882008262173939592861233365729706646410270587838551318934657962685933047956026011545035967710140057993336889004022075384825139930863716343366007923712406457617650036410612205435688688177406253057006023018982911091534071177517124423703643637158902201162317102635650130243991215404270127303916604348528921717678005443537960268144769874794055715993778356399662100669274192714681089620407361116347202589862464744081961204033687520897010880633542844369252180174251211967856991105833494499916830944946984707806367546667767825383723040528489291173054802989310613282285243013974421278401082297992256374991861619095395092292352403872656334962447446903480575135659465046250309625011185996363024036541878244570740245894880605074168390715058032424183755862679604489403118420715618426638993005968351960880991550054081911609426156177996494555738936233509560216938453029407415354220170088505934108021537744168969765523900070011310946928000344435606360766131030272873892742266524989909815901237651570432773192185028448811193320110357105719444387121835232255486772644086673404544135367403990104641792881141327732957052332339987800916026700289290467003455063211355182259645456365580270462153147060321476780387345442039887757315364197294374658678276336231119864674608317162495938051631791016021743160036372135135506555681162767164832287962390037143316348095868924384711690483078965100591104965015992831438312018932525166768955897310518020709156128212794785768231503099654870137801420342350862188944511309174155201212503779765726305117588445579181661243191479349987937188974667677782724332922702482645480284999856755494526946870327503783940036651442685682081309020949057899622100814077366965566279789587599381603739294081898326023119790605145978038449412185507347234440464136333171482978197669866965514005181845419763310556350448849713422360339130058979717346782373472329230517388505004636025681998062728258112455591586015018439090409864180971710075461884773934911273571127107533095079036197946170873344664805241788806067731106455884142874312055368645075413123789205016418245598529170285529823491756815198174953565040453735880040973693100210161974099408857233681398906852305802152257830798584444988490026722154928888612925028852813527173780318207628086658198702133918612113360246187362649128598385704246054788599442082401809197362711751540474656341180486288643987511052601860076320866403208005880981246682872769158288851453555992972145134318817716645564502666336275157142261212702829023587031467862427302335998951338331069080367912289759223209005353398361052808487974347050510512429799469695877329008120707972879653583923242657673392144380470361706529595672993234416869309201866257158203504592227460113349178476867831063630236724355370932562694982307261863131091050164320612674246086791670377930940669607135447772041240171387152541478713374566022914274536828100929205588900795084837232678718659556212837654930431227464459773811156396674092749919903096783157044379273964166675109789264093117468241878846539287943914280719137228194506211199604942014167567514155226569328596939900541011164776752925649440428795835710036845090703458019087499993092734233237906647410746289811710104027788338214509831606137185058427903895394961345986945534332173388380442292218684824710117148515834710609975786976196816012437330230684469271055789326166001295993498597491718450334461056240840010952490311291513102073536606699142509744167108918044279263850255766220625664347056888812091343129654781619845396751548210810244160624449318587351214286010858155871519419397655261062478092540814247596466270191943785507186983496876926575171350176402003599383530178302781767102202449288655654620105595674157711590472858301654225614200548268513719162768982527266000770336835926768927117466145886443256295441705121686083735716597610278238848606701446329636821363730331746487176320142788006742493485684457268867825525550925006154697582885492108122224766822902775116822369502543987324561861209996738050145752145346770108025915298160421223116328760264578489208814442541782351787729463684916863787103355988029352879751316600965034502135008786148165275693425491575825447858789779004210159280113548097158154932538649021151389857756639270582004783308103193586172095928503098371977956384664987334554901336566062958993312667035425517958589534255685222167057206373166820932241554656528706208202685332600866580058396609069504970302254534936941843479918148540317521615318893601698982971238272732961881513540418704927348526265666408136486378871680299743419921840452670036155802038750040963721886553766105646252585967623112091455580614923744622486559052594146783412301336488120864513178145054641794164567238577509045217705499758332360916182468663731199597425637392431936836066334687888366489399770870992397517694293270431571634050583519899477212598612465956758031364020077933287978651130119476790122849334559372745446777306994245626020238875493090223357398303966428565992346239434307543557661485851861284466173143979975977684470929792773827647093562794945093757497580940229719554370143859221216058081004239743853304543467119143871226627091401261538446277366108865182715566402048997387185384279740871780398587857487216892636293407937055160183714050877149628160787383362335559788371360809666315218932287510522740371018412548297128568954164194927943850639454838617154528632987007434474646146503414460256193649389255719342320962385728409362207205517646982530400643228756038069773146999660101861018409083474528089280983391290914925830365117302996765473925151845027724484495376804763886401906348729677479902124856127316639984427361862308855173182399678817158183206309699648514729573723694647944254825014483727864303542669964431539815277168679844685777773176724214993063597651813595392768068710323045802519156036464184552722886148251459740929971994529105998334724104185420272085136054307357487622738407920016763466151090614719108133008769243989050542838285871745960020088457644825190313755480860179403410944189883726523194071831370537998352344375954898132153424084287482442809898880471971054529233998476551717751441096350331443841574283608079013413016396157944559087366278909144275984522976305439340866678264314016375717056188134506536372888736845773001897543538641536393817376290182296333049441891940659730575385121339862756462498470327918415111491211352501046851190089611707902188891880624882538422836411906558748088381207312323141344233353144433609656271921082476403927206088886262852588519928301333058905765272829571426194979164995894363177324749580959841491639960872405594058974095185184537010842391107823544795389772207975226175997379931801766025841678345852154531357858420969913069952099187860988612444010607411986374471530993510334286163756809485035927570474426589679566193382876884746673876270357798755596549401466289989209986971648540723033988839367611013303784045113078379970433116053326219954425770307103968439752796919730812802511262236007775400051308597498304645404951309704803426138354091344540564134101462193716056552804448400880453039649492973826865022745282299484577467343378675502800997560510091528866646587902625776895712418793158394872973887714835384248129311916831606013543029978483686352773120290302971077830277473895813465194275616066742843607020400238768610459207769656762678781970656061203397304722965481373446191321988589232186743912322415257741929078225709141401815695728457383362291885079486832949330533593193572091676364595581367992386963556749298651132482713946073162855012413231173726487739829651492342674132247288632846021041366966644267728104149594302767238763428606644807904842677191598564512608618704025727442774514307901736151561773151575005988399640141880497306997550669101292407530374958155784627683114837351610082642105686878635684085892011926825243703903525176669009238408264675261709260269710407047148153102057397997681579182981289235304146491987593615632212451682746172277968157330253255735223022968339827799416034826498569382639736059056232139294855074276485329426710589699458926421441196000845353331145040686537313195714843485415041517234706871596658893468794776160506525205325518877942762000677929174286295148036393715562492149219289945067840972054346001956298474409674862465363711302087381417548333816616561518511191134684732365538248531987858181814501053869413158042894105310850262582815712311114555123885490445347986700257077621741380291892762345238939140280529309686455602087074750296305685666872397749985911356208348594264702238540331396655512294052067722982107716988749068312321865667889253484373928939824303927063104601678559287530601787022213306811299142564872664971680328549439089540115982149377017032767620929876361529476102296386400390994665174286052716065117214013250959270559294839736129981798102567138533177106675033131782787325121501327837748650207033135506227558130481080029460517179886418646938301427222915794350397991778016490528277130295624570910278494445900502500126475623251401612039820325502752696951967074235168421191098209014734553452473851605450203448865261194845794673910324946017546065949133473564878481268188018707352591838083903679072721987136512691128737953771599527413426674052986058267277760841997469706419659029959562956055600022176378828180964658424294431160434101540324161837112411833413369086040738182186785929660060152609792043026905143222568143657469655420071610492607105516213629879300555912132665254334472375154831796125640786777424307070087662202918140655021360191663843859998861232751529035298703495321075289690611404016598021882803768053487149020830871917804775313608584141065967519604324017985891535324434233629910033903677261899140466810276148578721543032757524359320503117165170343024273760823271009896214950638496910029025774167136585044898207551353446944194185199121456681506843573075876541271316654235668122273722233387587767393622874603410636815651866493228134230424204001730539139580450340596804482575134055549046416335784381605886860227991791515677699184838574581978981362012970538786726606889518850722007442610297073712835694266977933820878091270526740228190344887810682804959591079430888100469561835872093432323304409697612377196896298211991687870983396113452620176959400345867383397823414732191382499749914065896773447434028358031537479848996761924969985182240176819305210022455108578603846905687663641289089751554366506561650619221818558606395256352043478945916167981232360574968374823438905559643350429275477260719321983082538071553885217730924299413144190263558021105357988665362641510146460711985598292895490755148136944093607176494262910340381718216143960417698528173282088210369061259770468314059876589814268531700310662742574082809102331168159759586548561781614606434476519302871734300921800100587395483454403762764601382427634053294655808884773746683625616908343097270069974817824245741942626077709798914229003500843321192397735909559457468156646947811010103696356946867890309337571102762086607087821065555377926088164133752939155961539106238153813148131766276032319888049792167796110491023883227506396471007696524744146098226259447672975844810138808410145215932988735385180730698100946012616786893086024378498607208280266924451098153916959736018213287944079223067584129848490365630343690870142583141989910541398522693075466950199902772011993438099809657194828591987672414559171595955750006024391473464999909496228073208901853177416621570733389283886391644137593974177979961906452774096579769282536534878288646972253655754525228031688471039269429944017744150565410839248185380972246265514689030002078212754945052791543698175496661875134783191865741255835539740773733416015611445281501716175117999639940611911008630470479571340953158279114969755061425259661879019404745287573343889299080029769877893086987339902732472293618765193297280946392158801058120917330356069608825523217970057600041590448817939229844535803797460712947076082006515168336564512412811294002079114608274243109520336002850578510317812969011196732086099490036742606578833236759989031746784188273762112822615043735782612823923583260235062150253881205038087610757792341102006638835964616931815750428606621212402530812757970025787253844905787402407677517611828280220570076803317314373322249720895322231769914830922918525246749051877165871928339145127222439107688038146764776825605199162428994666415868570033589710058172746117001313172720152645395750670172388733144385271949699753724585045185112124532376009243047239954398933276325847419966021261252980566184976823050412057268302788959012984790370101236347773267203908107116393032892689698589802760428530981257919573240805314535999506802816476376786162049908722050571792632644701380210327447578509598153769279437353995599069201108684572761587374741497813219922100979463616836883769800680193267246356331393619802284466029082574970887611612619391798898914147203605599369088389305805359369339114503166658376790682533810154946336850527021605286589896942257096353454924087953244983450152302310368334930834082351682915189641667157504762901953467655050454331891572657051498776384149079126728380317905379403906551343242579313304132494807608810469731249545345457856264329245753975443631106604365289403443842934131029921856386196903953622936190101639935285350105729932771839446878649027719241196947766796743216916617401837190656046390007652119611483507207555929101785378770569542074600725347546329875918008302027150297749789152839894533255407195166657532309264951394211425540451153778645696623468005001055766568622256559753200069485364386223037984856936822387490319549004916657833974366986091833919987237194725884528872540128464505663054723627109926427857024582922373042200103989251437607418119767998004961158488903136574404814727769349793351969079124128680495050177445358305674042673285789757264025168112914401728938893906007862203398066619650785808534824907943715105931869232064049673865635312813040791072222135766548218780519858530019883207194602635121427993700694070856559587246813655434167121600702677482923620401452985056021224418548337825955416419100110698441606111936134157284385573768224370273680210549049859651658297294455519182415160406551183970720272020846402043930729863001390554348608057272087118125877938449849043705292103749701001663998151949476294999864284937367525363175218833130871088807978839241770462788936077376914701380205788950494781158875639904502685755056174160558994625034600921021093521309476759343508224228736527388837423211347106010920493956173174885378022731466288416038867881534237539156003774078668328693984834808067071923600158571920292311134173510221745594119959835444561375619179631107040180474480380943839754826744551977505936659329500786951398347929873388781017794560817544738135591808299812498231500373506626543377645218316617295923566550503629887119356012041679383725200771593141903519272458016944939389396886129000119117055885151579807832197586364396223411559124784518708290402202070552688856767767572084330196215790085294712798233970767046678343101904313793909567418493179487559919905514096196893922557331938718224016540438942429761659128259606455657678962695006754576610574970349472098549641722192264151810279891105903306539154665967022021495454292522568011997322331862993012889772600548883051801907365617848724489615573216482574547538161434670840182571136375339420168400511442960030308232427627244024934395610559393307378279093954401080585108538114412665516154280952868117050960782891078997195299893421677946200201699898496514405533694909314415663747898278927807417117097798317152252276910176290637536782986869272805898815004823069790734921618995536707907033479375433604945307207964877016335038661247716798894046172089012433709581716007094122493621549649575492391338905213792848132560065407087219295204117451146578362108110624285418078166194941845801094848226063578640095318038055317525908824674419440837169751263837722218999035166081850378401036964191489110716279202497884078503577014056163478742264000063558174689957745981617176542473582133634390557463367004182631314361141816033296676296760016799420553340364035181666054990897216378910193314935297881620939541968206581906428364266241323705903925680464546366588202705763264918291587136360468736384505449748883936255634469025847997339724378268667920048942544022238694891720046655825732880233249943539810894646629386210678261585278995737113648254919496669990046514833047867362138961073979915734993372656791738205067948903357851703480156848711905733150307323648157543719277078267888498830184864653982118322884774599068233974621561258538266237228319698602520433786277355751555072010160597871217465069736999774885058236861823974059628238990617184581682396699394042340380271521493416458066506094255166330604931071671973308360331180912226728261653649177815454713336139513693578970790381291008172086749705669639627505283727439791628764864557681076979043877788536898437300360143129486649262310772749037059562142587514293266878284788078762847818624595678168662583026820364459788509829508925259441721135355859411423995153512414886100581148133714476205748937224169221906391313782811620178787608643888605065870832408698639465194511688837952774635359778005996422511881275601601791590224752139769106798632092833840600861021846713981186612051037717967858647158891191978082065110498720927329367444664555227833315561279846519883483619760801583131790674551241002086775238220655461455939748978692163232155531192906025885276633670028108500403677602024625577852652669770340069592157761564764259634743356471602185512767526489221675998015472591183530177901102148470226732507958525275484231626158929674912801498005754149289437240746443811161096891279255334866504394777647016689704662497021733473368079477321086193443422642160858013035024637111089416681026503673752140328243429336919373726378916898338751375557910265452952313728785719567272503523272501149088524011122123152239535668141756360827968894201993232452749115000568066190671007305621131256401829504993342817836112004413870830454117779908282985239103165217553221739083863377240702608516018650975472284511975391203976275960199053838294949822684160694237074685285118596668768797229864602757184502991246920648994694897748305050135197459222778942804945888936266175575585016684911380345406553384045092547795648368531413220672805295322177576799732975000077209030258510443246399340674510943312435873235986285879361322862400827815076560815539481580746263592719106228645291219548991273889934768984063069350153058083956513944024323250666224298765923968269410311308341511967555361378398542211792194114495619165388491859795707643267369745935938106687751104593905615875963496617956775816312907314395200211716241602363878096329901332470378593865529140518948540202174774349411807469378036532613139946208945557490603976970949550080264968790833922207730630331527199447948997819818289566397872623599650538450840226160712887069191795534834127291556345078392909554962176378094144760392676202991209797852610126161587127075355867886070133229374148009805349019787651172350139260320282831938137530461743861854870731522878960438016260215193217278125010153660955395939482662978500964721476963041420928560836755369714576744658251377926893003498187673095366561540940181812138145157189348521141376323974759124935970455118111351262638521822684142229057616723362217416385969594285558415266032581735696873478715282538546866170831715678979869207966857938520386732793631311097017509091536397157747854669238984188000859849849311591372836081341437393598408772681388157631645299040033170061435515871321048490860408630995545829324985126941508965889662019644103033569857578797191371874747941989023985576445427531759127821820679194009597944889802165519947491076702194965961007134306836058843980625029333392918050437874958457839559752191849939915665684207644401577026373497360798043894373233710357794629495956975286424169076671625974311702801304335272139209895910162931503144061676033044871310888930329252095324604243871580713741133334967521894678420435201200510171558881014072790337090139060829623257365434902251585715973438396432549682824253927771242235747636514746268630421600367373905728097415180263325364778806297783650316962478876630494658904139814536834964837676379724030131546539880841739693614258671793819140481431262211849010477107002065136340198655824595491518936088602077543374425879392350378338502501167727052720609919380261179501593818710043945478642611784251461725602723804763286997966113116147174598788554203789603048511936947192108774950855386289958503777799044798797681917449414290009803597502443144572163879873259333474843304573940812551247937720838298860465524871445206812031443287202182491713332412389413032203595572780514404956058136514098616007905100746445574326539394539164730244554090449359189950093007018061723337167982022317326195486552606537659624069393912796408926084161148803306464994054074645973148240396568634321593129943937077821600270955871259263938062653090637227159030214454082789035367016709815238983270423840016348101274986996593833187719507936973083569436728856506110250945352047041905954246820198982796106997322621366281673631229890562473777629237557610116540065593852372739150669064576794639205897165228649774345022841403508880830934461816836667371572514163826056268400920108841378388920760123000864027233105874037792368077723633760999633454914229514026340740695000357192016355410390524035290727326982389146458549806071219716833951774684572732705783001650434385226732890660418884113825083413613799619810169705273677247197959326117762234453981953204724407339455212937548499646212828779894759263556471124809844788635485768440400796454086534311784469866699631550715355346753318278942174905295408470023651559371913007076532061016462428460575445913627408024944264302474203872311368140350116491673880339796281288237086263147773710950925211669667728400056696523553312357273447122505849334210006543804671533515249182317846165102580881801644604999405884890852354086151838940436071934067129236726069448064599978077724922090290386244074458697014205902219888068460965151709482306000964657014364407668066372796875694071351567827990649079063277209044524503248575792807082252032623968335485158606931459783852836169456336186314956895751252054275834084337654387735755811332332244587416913044623332885304034168185327650796295332567196803046626222693929242338176147406217694381301816446836250602887868826388486228440768649870505438229258065848704040355625732567495201114319375477540770919620795371814882506166306925483188887162368525155484810807574535347566506910899890257900674711653610446354848625845329601116605524812366581334844340230338387669473085311468229529009285203397072972478459503263973047096928772755667410787921270676969147191629646778484264375541857569851081658718271514749550361565003713207380545212738607371349328329950679483810466721696131667455649838641066553851957114779798978040531315313046953559560125012230730135122823590308974131531872460657676506927312075405356228053969566709404554331001699200934016030151096700708703308962865869548111711644722242956459262470228438373631682761826381454527381901157150895220166955589525546220679207427677769230811522647511068244339134165002524040693302585989456339270364194407539781200821821358504554735215748043870509653774461478113468716565558883519727921318504550683553943076050369009362962387836408667012944398938544441878508815883750876290001144469012888129558556775237521659868493432422064333126591574887295399533862251753806821534505112447440946911045116323995851505755123125829401236747715157902678546634378329976843751816713246639546430207887683845141331311200438362720947289667797439488890340393339347714916556098784406261235812235129549256259585831916362448449112395365765871050788073967088109766912105133672021088490924983481410808514719793119832560149134071181692653771766948863256773850811309929392427973112696774583490608959014679711219754532868794910038496940607005645672377105349189064450652802955744757018578593533302534373141442053035818947250256597419922390085503338479296623707672334636290375995008754307502579639741502039884959037585768291001734410030163901748485633064220117520177885798427457959125026072781470357311880310825407223370561840398146430866701326413991073500244188772556351318020125185808148975409736973081487305408871737347442840919291643424402102449642639287357398240381058420037345869531070327979850229309466268069017927241787098062523829754926742717401093133908440060317715039883971756517156642506614086351975457345974732854603525770816379080538731580692280533069866107176170472318941722385413267567686410850693619772850880899912059322947870172365995791125474049023042173561164395489353844038661966783227383630991110052858370782496250614551882569385163576399303075590707409177917689600909421662686399459309871665187527628061216776559917910290609779887602911312938589553501801828282284251271767414232794377249083446842157094679010491342939738156593513336070619125183966348987890494708726441344580810241396525389714439089177752252411780220168874982430162373290165423895888029875750062831044553948727701249308315249497974712676481104179236903256497908621475914072338569985684899320722812683150370989919313076022276809177596019419663136065337542651454170789726564216949912776720193565187129742389742007742270600818331468689266029409808583955345298132643374294839713715782663489388817585285996432152468492022170504236438629715317037861202578285472396855010947264868652733936132705317091849608428679730630043616542134626766101017003598757979069986223205488026418532486292510961687965980769538976545361454574455400165223914248148929729381427906255885970122387283489024057385524642344391199345027206577171521049912790899211699242640970409416207231803949694168898542656153032807224682554245811114270095732327190155988537895755711619245963123390013892387272152786124203816814896467821416667587669182854585244394137306771464037343309404136447692935783257567547224604923772545306631226140550175638115999431970278836561469974535618662519921774758789668022046667762597743833899566039040362829861482702138619053606636684579151451491296624149189690080815398786558385378115703426603443048225501319786604767627111519141329606396129679567514855605359664271764873387754842166807326793446827374535661080150860574339919862152957878761118559244723527131690090072760229277857204073949284081028003889856654021555633375622291458982640581718488090352195923229845591916946392957967530091549871090141039887383479249362893105797115046206176901054689301366912564960764551910533627317915600645964827476548057231889471398410986013028648665616266629576250098178394457435203937949163186162324508410436164555398170233396828075408160676789235051027647052040995697148193078321599322556225791336901779370937542504178257657070596223970542412067164187424641557566178175183211009184626487177650911903345723077873178804849377654425394524714942409147933707351348787631457698510024967498296725718389578378464947863985440231214546407023160932103605559461954760831841078154975855244947322143893205233734975829477293697854244733192165853383175552249465848759397461203136817692491287900551784037075161061508632843344567384956658915034942405200789741383221214924671798085284634286820447027578369882865730447370179875498833918216443632043836027526113090044610037477990279490761245993811240516191996059651390077909634293583119034305624356715734095056163628748278205876154899881362284006319511195201780809674906704976589428203193245913242559617114164316694416180155240661886331173995068796437781553809722292974598686743643437724460225008217013149369918140245420915767683955013168181074034283041126865254986803264579323184502950977452013898055358194141019131984833867985554819940171661584883611814850491864675639177286330583746651251909951762786218221778373921604284381236585503598776831679887691766786403769600339672806404573452597520193285403903843278475185561475310226363733593846397999451197734568566544674283895819110350875024475420750117547265579343040641644816400018548961723573698765002091463124400680506656182113202933685956754722666466024686854200803926074056629829966228278866733064506550328841629388295625887554096946807070658121980508578924056678207301913200670603642168364916525631353776254830895948420536098722955582752459315009433419009078154671122572710798521222737556158326103023920531679278861411832982264597557653404542346104902957223958753311957961950228946050308356974031984824793750389739827953899206897189129627097026816017999488236851544102490634503793304638505980500689368850921596092493454617018696647022532619388193016821226484368777952396181368777350178398760142879720848366410773287642886925358714697839726188810338450333711815171148471575357282911137713631319778212024568460969777492196379684737496910945644214623527467527261285301800789573543032753550589002760724171082427797722732735900626663866696013522302560850972996315375782433792507162172074406333137963875171443926623811455393900438867851842471758753790306636660932688831931210323207235140907033605416575082209060337201668113885031468464451916950436558866152125950693828434458152870871228293140727555933699681210990351591016421256071107576563443063511705673167435289581947549521611425193110025890413452890075077583181812267074861693705113747405144794546197953017476006106793453483773940552135929988183465458679825875860431734040554601182336493553306359083224391666806121029285929309962757245031274894390964296332087307746715007773300833934315885963701244337695776945482607716097670861548166679423891035060904614604413039687136894886799835087804068064381621772406347917811916200629577770139937093439443217249722182319521253794132602753367456855860884410590851123027060655379689486119033343118293391087619618565414570968938743695706123428019773355738962407681631584433584877073360720706401263672416841255098300951381957688615124648660191044190004053873335671201528782626114531444001949050115641718014623553003346080217675891561479950371467332745815027281127211826466922555444131883985950933419623985945561184947674786532207149201414043587348389120710525816364490692039881387927289928539884606794699973386287843222510037432806665926419930608469361675677484717995553822497857465567250556748949309600038811165025990005993740173866604706262123885284817010946710138768352200253700490944667104755790008627486998607580100559897397752748532074183466193993789997610753993025114426156892048551972307840758227848383123586478168286347239705070337701551080372168639415071758912025235200309364453816100089088130502039169341159108232754929969978413544833229671875424182246552003796227904310697702416765482939497616404950028309838939426022430461690484355804747722403871786693491539288578630229892431436841730470301570109023060675037024472003326413487285601003219723656520159094929341482621229998231733207306487960120379727647315563630376092938373423468209183320342088037583199689240992749363529073564984723927517964835646038113180744527184622345859794497228431805274062500057844200483005238238751084855426648661840587880464120681035919898396098727131150641081845490455579927609435421840067176453548615105282475682962685981806029377282987924425294387085412073102529404983278917912774900315217552148825260347141601819538454176711806252183687581941540703676815615766181720477998692331464033613803346520401842615803902641825361857224684486061288736869992720274162680637666211206929034619695458113643447415987140189211660466226582661590542069763943593123662045528756034216500347360119434225614914032015794171185171542756396517256864538467095452483713059489858255974527756437837209390373760644875780538089666661399183963055434635153154818588677926291272536342628898525685446469814497461892414958636636719814006506858886086022426733798812768796940649702991545245272132575428195324917311506620858665207749095296510075340404922735654828295702569062935888169041465106971777242095544613025854381786304850806058990637380905430695026138424222705375354598590993266967332165151948172534532747333602744725852724539478578704905484758633115718366332359132347588259340641521039072871936326796375928473313161233978154985650774595742630192501361344218177865732684594980392574196969999876459824956709409559549064514319299753296990292901811334684918939731673374047376102153497902801317223379127998639147101057364580882496403779366914426022522432918220359694796522963241504625930376366432840865616023121610990271779794048244237437724217545327436903074926261725888065223326141060338165320932320266991087084758681985639904985750117619963690596992541043687532918190720041575982623454667270157369711333570414032093793451266060707990655868796161579984934109540903212436544310873161586375727374817450178665573793984866922911759920434224760064859760054978280629418739147496645660197689263616598289656557445804099142689094724970673522047011619153600945273632530666440201002320187322781976148686634898913273470144482032429311784100915283333037691119705125251189029708294297488398137149977805278164934370560432600535269810691898658868981610889926992043454781553574046529382255475792396512578169849867342182185312407343115296082141120919999406160101582191273730165017695811861903668977927569046785710181059393731438811929147494435652218962602863258663651901745365921218638768107774209158364690909165182739807531030664998062448492774756188452973294727139148997268407785897786865604872330575242285717247344366674181812327084159179147861681978003287524219464801193159379351523941740904190984125780990903889407794204672704915345000248604274553073068364722207589308219944523472145218428256209291437681438780213969363997860221263221098220773571441294126406537652642854348297069365511680672830614815535006779927342874671740836666020537292204848408702523012585717914569665795239635968627064590372072680587943981340066767014117658125223348104838686771740587973689615599621784654973073934095466043145860154049561577645616734472126427468746140830206387935980428496622472232550466095231768172458636261128483387407650758288956774589588736109519742072321262333556151933824717602181868389530067975021207690438838128356258145012500711902715651443462706481495059019699613904056079067372607241129244719947702838483531863329817619994731283314491596877750429032797703476193806295512384013842291003576769296985959054439828926666087801034405967055905207668370210159521951394544773118741072352794560844354946676079288268193567646665891613621404247856427926815625448506316685268327524656002747765241279427053419348280546267028159924539124873937558094012591977834653365573562593766808769975257460270216696492529983775381969384625470851886151047522647513648918833573818916971219583268100419576537702119211827256650889668246750486669965988504204119161533208988567238092601814281176234479558294288085813698860737275497491213068743742194301486676625969169519536885691174938231969755955794021793887372251515997140544728970839551036548666281965036848684661039274556841436359017774403875651208077145636487772844383315635724968367563148103943896809211928233741450761863056577773779414533302578207887933713552328193066778103474487881453302276711598246301467739131806469901714532318195729640171382993445866528104239029204404205030108503722889707226673204164075838352116255472935420977067186526207629467204363364327350566320411252128722589414997628046891485550759736146505117641257930283697453203604650615692381197213251056180613452134381768173276284141810216441341702491755843656811454797775195828066284424975037917477236204204245057363060911154840242699564336003530143666597511828032803953421054049191030567314210754130235793487723423907395938930043689132814854688219705348268064061334476035746590906564609800971717699575204375563545216850442243908278083480721568003121380513744755738663358066128982569525355723266307395195406369794691392739195092970992913488014867607271497851682702690507107678965765304404633626268887226274293120287517384975542143150499890745646121569554253570152014746265873588291544869367168210972638770366929876270333269267640511235659178773632477046116118752837864088038280136349041450851318295587380336571592375540437403660094312662493744735018369408835012318057025510894184693666883038062360436168998681815046281454399370843946723795281953032886060996315478054110539798317391048191798793376309918240071636953592567835866999085256828346179992044849215828682554266066694806590558837547674778900630307639773201191626441931231373328223641811934383050586585544982998689911466813117119421891601793736025759632185321048687499204734702994267871276133342376683428225657565015748972028034318032062448495723097390057150931453891843449438283973734515799805156259164322627014186206236944759302141050850281203604910993905368478056021662704636855257274132906042289956351025228475190703082532738499555533044957803309025927531635221809889882629115980337112570172176766904545680649223051574746891557171017567240354189350611288873024043144319869586521866760733038549036027746096354501952529653407030159703240985115025293058865671901125083284714968064894381300783718623924468179021621735691228872394802164846473775176818942122207103565559650797948449900827193552814791434040371387172081760903198856458746108109910593691774379471287936895032477418648580648196799561464367082487089936839513150720305653030078868598203607206699167376164147566542877193535910445211691676928163963645629783407370647882740618340543570774121613832028737879037858589327455361495644612550505547826687454455090886889469271859889494234495074838218501843413032362004668070019175045926284083850536431267686980340268115807098103458986041308417355099569441517991754323348063307326133913997978800038210913276601454961115704285802816067516233813538630524295638330950320192878164132492230047611795358249560591453000424644788062130246897865596926292576357402879940135692116755390400269966455602568297236950495909960271709738166616867800483272929905942810296816157469630606061010622671702125396674795138938137485389535175783294513642600693613777744000566993017402011366773178770446945060129226074969110615762076378933450413733651195600329078352359646532657474974352867211162980756758510838501606998969358671522596463057009139087628741649254170816909684730954886023329828880010165296280897698772319690742102700934888093445551218818833651978431853559606747635072216117872873563946565543427614068559412425912141707811630308010192587621993809895894305093968251827713033033492664885329561879526644631906349389649279747796305818237760658035402279669108180932267251426142876850855023403639597056214125151376204672244428979978554541319013720560029456706340382429917807512572448446357715258934722336845268000504905794076592611834046276469983532198933127117327105112938774627200813172632086712472478310369532505711668466933919993838341653013309247729429358470743882634240070132171320972827494796116356678261507156628250212520627638975156658513406045529010926112638166224236689927106490418862700144211287359239399825005658006432506075094589358500721807293223082461082581858746713340673344326805154756527611229009421546556183103412687017228654162269075744666374025785058198390337266853912834251138897761037015547059697842843812110416674964236193689840635613876227959545215146892881328239439636612945013878167659092925089753247166912368348275154607827280445182434537596550492568064853230999281451475345509275552779627941424557440525521882532395562508572117996353019567581177443676255097319751155651484513728542407490483808199558809151611793921910426190928485781613905148231474455310151615917841459994712239051659694410397272957411583397459390620500775807095967658989249614373434878156377442083749991461834513411785721356576510028821653437883890697229988629462268685195628832320570537894217895936784489997283808225129585737429565314870430403219543301647220458139790574528802074728588103114085879874721186328648984473405311460440048001118964742165719993115889037205900314664181261792091194088785006677801099918546190934892669185091189985328175801561496344252727420213230832626253782975374780849648620574737729805950490214555010896934806451097433300599798555320331318269175191591950065584884365516563352350794974414869955459346826667617498419319232391985849314290703397249074104335315507161857712844527045561514872082178790107580994599078190340768484559080348525612112446388323887760077256405950585761450617292910176342106201632276313357086984161133384335191595521993423910456556597310082316994799784563195983411430563705888413585723243945999371608451544322473332574743269029321113405536052609072416883753354361412870234237825270895382357658516596417328110042367022479426589489542002462779779309893450760213624171370310651327597596134899242700470471725333264227742623475663202251798424952498212765595113945681412700766231548515825735963353826717922669936333918066855094802896639701633580306357779206151292995868181602332782682875613869534898338580784048677565029162328102232126286237036471167259091116220744994447033715467171935579603406495721839913243157175868905635782011935622777763421623672475667687617220610152133894288442755463803914298293409706376846651169968454977492484216234549879019005901223071102488058804992082026734152133452619482271804045246592288442955419081544921458089045704939272983216883413429953682586746410836728468331328743219812300745130314440076835740244627809770130021421871235118844390781428645714867130316274381405338857603885294690507769112439640284427539211601124684855885908711120433136983355129831770447543952735118094562627365072134238675487816235096639875898907810584333722039754420498618992145343945700107669930233340450706235582283219793912107163390447845740649596837368359996102705598109343275457182265819162737640832649194463392541412570472789300121814099502881776632184985453085666790070376265770583827317495612091752324760127284885442229898679988266283950867894577143881580967550580114816329510134178454949532484743502461668260490860543498626070769522068457693088810199363886020569081016645051872181500574347274692400456628013524424290432379684768326499597859954187679609888240649742665229584406972977619146264897831510287400669792362033206040445354794419819989475253195717052085531617779164107727646139215711774029913555501516709796619652406222291416099722702986540871469079193291110174604012065208119033479335074093396733543810667764425162109106409782774039347240922697139986419324018336762578795166166921148570844034731109857718604143806570305811408965227990337070679277771732401960636690599023966006174759660274364772334171321125640695730430073871896976082625377840761689045650369641210172605511050631805878307177104571678917209315551005131262488507497125708827760818462973515666064138131857756923219422161698198183386159109111212964068347645414987489259676939155208899974348348251097717173347748490424157044765736574577528870313708739190721825057729931772042125966177890946278107374893967275333669497759775761401339096400599495991247742405822602276743479140436597750071174906872762693456375287627915386103348098692957428984900870413755216037594678764398436269591372899723772007314533667335269968366292608565705839038823593831189614763613317043665297644360749401649697173956600232484753127826135116274516934985914972842578011566354011257488383449578205475651348675253533930949298777856682473832247136341278156638245905023073398325360830038730248396399541840286629808766899600543606746374781759738593200109703840094329084825214860785580072030283926248148421073567689436508478291723943135377307833828620452560793714347989024775448000157389116577894911436600367935436393206776263021105215210135921546945449970588876283657933406061323911023381234789116513396064823273430276115853432570782259674566926399445065492819990540278815070629903621350504523173250136706243941061807667613786614145637857660442074924229269770349845012651492167176963310516767267848837295490056786572397844276311347324977198906007618759140896073066582151384491345615555711510845132159738291100111428738959946162393850583603232344208288145043391507378081863193720783803113641758373487519765079335205354261064839646800228318032347662678243897034382828567674099388012245584182825061658871841917739713484249557535536154283510624483282114107566096796995104825227942158706931518686822890659905445428976768340784284686635169507359290059446525171865184120454432711637452459124940510317749743271643304786104252035794032712103848084464363330137152901498842752377949834574799875281511965159434402988721491706555591849396373620235346368882181314372081349365898041885261814616685646389742839150595583703947123832173452734821361569612832630851650382152956508420824710834855636841528927797777756366598286215650221250746116759032116542096541470122942838545756721417389929799800524641816847334818021732521988211950351846705828084292711592599970153750974790079509303318805655801013980812298456546816187153857992812861037660068440830849839727976370041660306524614826604283117793289355874205593451881326476050299179833827163739598602358878513460926732319515887297292466770976350989467701402822922459093649319251931742859694152366564659951119254685886480010377793163073879444378711516343580868385509803616734117746795525054156963255517565930011098710343833359200752031771871321169429737366650481616228139743691943602197933189113714775792846048510574542832874817932872278710961589682604151910321603588677947479259298850999499049216484971385441255339167379832698374244874127454709620633713904740483607941575293633639044817954141117349362026048512012305360554368887938629144807879100525559893282527733543592470673999726922739927756533972566967152409677307351761299221420255506531429549087426170533585033317774602589152893788654307666139718694743502046969668750567663782500133665443412014978039533409484305880408087138695315898917544323055761484459929712872562076470023808833082557863754480673545385987638085847636506952673628098611990040267981130204610101944598035927435305744929624227377339552016915800533206697551301973113370391256119133054329794169919294829390557267957952817726968793291142577732050021476019969815220206152451794238984581852682797897974405416564805621008330286054730103160503201457405188876198453502969999264657956500190448278241738609540179103702546381436244525088702922663923366404351967800356654544364250362507952964892139065648414018273697145021452643164662100373809950418558874896308246574073342630025309949781559142128751970527100115710171637749883378795656865393442661195440774144399248742320604226615977147800654896433496235839622113531257289820135598481565702045748210917373786628025393070446554368897474906584779494095981224478743221866015300973454802469617267129477879519441513440173011883236744872044780623663700352425861765683808485736885690237092290882122272083417008979129256543541940782689930557315191699011807050189588596474048139046260970734195449422706775403353710296483606203275561731021591434684415539095659097465499279153763329473599602008980264079468292536127789832058536058561861189451406113222427128611166867250257033634886315857173971160328821238663749187456626042953189852087917692798532059687082732060772049087562497623985063918737880636107372115907573362989705665746883773515985230620783485667267399450197245706160417028656143126685079755716895080673861961335761307793385665294261178995576128220396278616303669765729274631760052262488130026201593446959933230130444390851414406961294909514351132404372818037803052701614745966697318233961655755091009447720112313016992708211043728483536465802279843531764876043952080736225958640787345819153105945582524031075377215743214571344778184309844749991891988572348815392190452015661719255542998753345400238110974852027005371147123897974701015854753862680281323170286201290386585144236448649286552358171372029388017529410102252028569118718607964501087652984253297163117441865075201876929274642106131317620308506790665882560616162451232983338560212251996132072858164070209062312718344848223007894040924391632745240874566781367355700397551427807392003435331321282287328689542061881883291418904239295829349293059481391941921015430324356744769924306848954952023954564550306504709712589530864100115696873272805753462888209289499803769427671523724690745276874941173761124890701919879296423247494837186391329220403340476272852904805702005887722635976788174715798214217641766434900548515322233513050200474266084260275811143081158773578536814136568366713391740316070565037908528432267821646435930151920709912343384447619748970136375189516849863063347124393571993453325119243402486722685096712244422809548620967064207146038923593401068440047536963864975135973583310937832600190925157443192037612293770890557454362847738453351375649811641233689229522888668519991591629961786720819183717347307006822812701860650275302983390146699957479446107026716111602787170650023445485265531804615279803013588943109664382224754397716230467646353180281996449375662371151160519787587083429214674980001529714109167257057969361548756157178235831117710135901253539556871274579972017592606546190059379608978461902722181450723587954842714991331503962030512411091650441966975582513218186178356942755406145597270535238267357110231808197208539486018220548268986636028695668183486685245446144084069521826332804876044469190082669676296454907545722369233274416649131955648643994588993387758700988054331863998554049323067761591828592874389605780464098420897405506832961139723922222697903646977678755173039666447415747265846547806596395648953581955700357971668912269469927151284486477227398117418148866331928994659470600892113189894296771965704861852768613423688150000417238002829767005277922765540848554333486168898497387186788618987323238004240096386406798435171625112697259246586787211070538015319495771649485062981579894694171428204216416558665990728619849384917548026958461964229477931498122383641538557038089789007613901032349717969632547196564912274558263541323414243643574594749297927856960776359148472801212182057123722912544332455660534074849518144676905895980695200349230012498661937621085005123644254782643573382132966096697316535354256247308090288177611337397206298364305054086194062218385024498547566872126006763397437315325783835487482440978097393361487310202390453380947415977664560313768110629892140901661232700390050502294761351885912410647065603129801460888994927862354781233707563735243212718006105308551717034053603307376301871136693532176984282601761121860063584896534143606709141997792464097211427449546989146355548286434011040147223008474005897193942555677557844039936570126377009233040177201570971402261897254902499639625668908485897750415713042927159289338014627628178042451243346115672917087218116986695871312610665581097155155569633481984422493772789984900169133406501392255837452536445871131537749642845154005364042185976909329790072008362962024673223965883741317529058662626944673521044260379193152110356061561327177958332423894101137830862454629514095817189416538188260985813625507028147207441010322838569770121266793214647280115968243771101640588292038122298228255056488502000903159908409669801425015995974256102202631836172557111491392144361101853384556828607031576644860576825091946215850695082849408530180664499120714286759898668841279064653948357153197916296821916428762691256721694722877436722690746310853419544061133608487163008322078153715481543546458370259485036167470707302758499672313280960162936123357408505167586704703228598724739808647326794039491393791308497363241413902943928457663835198421867634664301808689606921433831960422100947209843976665228225443683042220547014325651194268703971992934248063911831147159679288276590160658481161372294419943326376901682224343559260799088203400234350990585913929771576049472707702830957584270709136977043713575902026722712135534497330430506741037054407734595843092276937484039563820488592647043863621119935422550000256114497085052705009162892960498473983059770893141204198377018700063858078442617736127875809955159503846662074848157250182123540825433798202752568074574177955302589468194577646065374993269932888205395151847408514744363568210924250171052586349534579159028715221299536595915807697373406864938135614834686259397425293493723922991126095352789014741520946191693752339607918005888183785066885788221740893022376707892649055901783573302904986104756624088404630174420916460792765924033500521369750536665803340501312807124279897000627372915259070166674643724566787432560019555424209445336334393919567680459087133098344796212966325811637654664808900711247402815156434346310814453273397154323345449268619307448373532903424290227063234450908155379512377571610492712179818535358509941553871821944942708611496926208222831105450526017646944214984796916249383350864389979794372572585034947332112364201564544595832321025867338212082720110236171813291628134769361336231630005551854169945123703087471769347530638094914882823181146014847359176501968305714704713971680541712076085415277906148408154352770547111386619355191825554967376875375655901891589207674352614885293763210787312387572064840823737530328846402348829287586745751741196425955473254712998878441337697174478289514806062975015981041096517924873725424158606070926343451122180515157680503952320798390703844559080248976751242811186831122353594495362332805156428450911638253284682769037798940560973049659821677479429060522906427115409075963049075004578669480644240791416042498973639622383553426568824892490309401353227598292267618021399446801899603206758034293979479500581123563398697279023670197762898407331986142970899455340903726057682234474886920102976488719461875862934213170932727776916518710024989966658550838113356789617481139240080692044146256653829452233915516045948248702775240265603080241608406335831049915931308539474269073234720884119182024847075732911507212454468985268553115998511179393810802097734738174933999888973856536994038759525336217482394715478348005894603936659188928996217521047163046603844441237345091038293248389456001298364934173204224321656427582862696462987054943708647463427711852938248043935821601986070062171196591832591807574493655660319057421033069753707322301404429391360729974231482186205712797240843229742225306478470222877289889172044541364168301862059266947810650015772730346839982955110599642751983442090994298239413615583265388406852983750196100267432796083226766089824373992304583819359944552036471095908251899166291593196398638609984425245591944423740980765055611750578961464359199255642675963119627783751287465379652386652568169570032696428785072018471660573792272520952321099076112702419491396280748169651494320431930648996967523523778013360171535579415272267440438354774783461541713610807197104730886023745031213890081325624317204976886802282925502433493959917827467695941155443098503616431316394425732596746141758066342449250604023220280294698737518293127065541377829886195848109350266364520750931961525082015023951281069618830208378779175314247378006661366107125561380956875490976302248182547336957774425013633346505272962419515030700162982343399091000615550249467371288432197235339945293806722341962170161634329247937574459146657715626682851107920980138236027790852490861406132382047029603361421239678916949923423217152888329799391129466525384726864053187319793226777027601787151571127131902216836416945329045195204615033553473446978714152244708770708456141208314980110666716520746555367187872873746904987162762468053085758352280419199560732766591756957730028792070628730635622829071093172254124410289965621943930339359793127298249018850599820753028058182687345362620769884288389289635517726997755270892807119838327126416498135850566092974668194143322037636016031702386454010380419337568874559351238398276056529937969463111573623676580351575643680207979098069735892895033363102750947847813570006470316765317984374893859319928446797050501465842227782696067591977743142284898346229638095752245329234359223513044120345909610127448589140505827476775911036197187481126259602724586676557147275493941205551336228916904263820835739952061572394645174449899129702110657095944985564756710539101364046559061659117790624364595739346071857771170611184517001545450809988500405931558750951206165545631462007387394433274391565408222265516671149813613507373995489339174808637419664809327817100263955025914047775193472052693611721552919289489112851231256310527709723493867708930988562479735893275980846342321851624985305036273164555086002448011287948708902187528734539294131614662088148268086141620159155491220419860259848860991001008935521986004274340573101214273402947594356726977628542777276759795406783215499987080260583813286902818386210006100337642379198001944237044206333199893214651697433457699128223182611409070898614415408199147374743368164498243252660816669669733619695332127776912977263579843015097108158562779524101403121972539950098548370069915726381749334231984170867848596330912936697738356288707840800239223578231036122923133431387087137560726479553068785676787614086797853884183975085046835092841447196834356692453914539697267038657031729624183897923545368707062910535840958625288172928169247104639591376543397751033038618690541627854067967188564523146253468346430020306636243007728041839150504839977463906523527004766822033701569158523770139905412638347648466384117910763416394509626576134524834091389875379348887108440822515024794471987688839920035737926073657685493015534302684384838893140272196682038727684904065078641498395483862399144327100354841428571466367581410868575684974964249205885698437459468657448018493422802795823563775643882682326241877622162260709045198459326773477350182854360693935241658960117450737611406406895988292994464538186860664747288899190982296017892978047357912479632186915368703655952944433499542516058090830492735940881012512804591065050476649626758222413393315802709420923435482413754573059087156567567670109209505467111783773210475976697943635702499917247764099099618422342259389668469915441887720946530070344371831157287057320673987595782140794073633423608496383233359179022771268263032769487753200468018475770539434300795119666775243961591663082780839590538322951127233820755074415307889777628677166251881091187535197330098637717478618815476411602223903031955967898153733333258298360045188973413138579600929777458806142401045915014782067973943636291993558227602367510347827556486627121882555285317825358601035108225814502611204747092401718602564690068461731767990573490110072728768926194527588335875822194738432083457863305280755745493828952390059845682729141346432348817148584606783059482601453596876215967081249553230576378156493445652578255229382496265751170749498866876544103827053374089892104036867736560454285845169503140223236337570264179657785208175448924655709924081323665578698526453538880111889193286251925922213556676815576092763061557593066264739260898327834768021460555713159391575134197362381437944978888581196334372829232196632033578012611307701085721598982028012452701419440551082110912628261670708062742710620807375623747391179018806303915191898251718666137575727597103898114628132094118243212011578288178755591908312841658981012959939724582828850347090530282922251789724313294878973743215073413895319923645094033008944417799497855061146956152948565531122294623526306051560149924641646941653581717906597534647747475189449033886376945491013384753795701243435328321449298275732064946005703587974137284730855685002414057806994944420965645454206704067126917703420558935459214751399465865637953244989394807296345359598977325035224253669755202625966190223911374464701515637749468173440379453288595394926777638755908647972478088680068172355853131435632975431766043925383854057568997429850951712778248854066092032655982812701957135642813925406613098387251913882874323038507006601992157068887156531369864586671792836573552565862718814401443171436793748105969137093212168062424716237296617153934399533680541456986793897178488910159860309541293529874616910919252380974294455148855831849949859479590242636642554865556331493468935615034148837488463129465300565980746769773601945598152863062761262676635577359767581138421612373314597087298604713841740124888891879713327363626251131133467653762929984089037789520000853939976358474428197985767807210489634599077801542669717456754261723840220327733647639755175491665338447273368535249669156297692483436265047461988233594559385423887390136417704694539579811875271215977684425117995807169454668617498200389141367574252951992353630286409958477380806675941697155808335426239966791371918119745650950142157414450246559428230866854834547550417532809049243969757733834069200365962698238063210584211683115360806396000302983486986250141895196159770985309893415906918264474621242983607543464462434641837589126993823538014384957364332358908803400365035629450989571731821193875360604033750257331182525704669344702757566572460202434358051761798043050015766122068591071191644783678775528755576514955386462900314778433524201822322818628898360499556710094713073625117504656828874933451108004370570085720732275083196736841092108726460308626987012176044090402806979491118396436605218431492307351631588904445480567978322555962857732503063907386237033313393794864907355954685179650429666182553105264598245173537563250283739435510180592720530901051429092433527312786900151513055874053955359526490302813127589266878502683802775398087841969542444707598265277147636801344512270464696586160140500059813554266004555304125645385648993160312805596469709727717647751362379318695356428514304456301276104282649403679748029330190134439986092840586881002688832877860690700575222916378845954295112712364162904172492592870335181217772457206347444140710457987011683486538940860879346428858140532372205220333882782491606550751428498895026730473386894146657715191706700715462849334130545953261782576247455778605289070556812093921363602079484001904534822717501991998503517218198291555373940524474881608401142868298542198154173994615194467566539911086257026617289157211616708612807864422596878065405524084076980926229798908974388648718812412152858621071441713146827394151245402315271846416021045875096948375943180736202192937400119027475027176567343594247367066180398677673056064018589905357512300230660837087116869147579133638408623253843492671860661390466843378796516790070950960770044545355631362405135816161738439970087207800572797374766973300019518157166514482156340621818656955569523059973209613527960436084916464544009853402960861674533438096899823943693824949550947169541670641283942451714126019162473827086697693118069609710155725814785319462574614535039762605546512543502145241434329824924138121771320340323718671520627359281633744103154710463963111770834535015448259457608665977571739145766095877536672498405172457008259582124548521961643789313109882481700384223320632885004325420849215944237347069301246933339188876395624142540683244296139656862403164128403058782564652342818336566518958550369909432595309425060808246841425531437037390665109896765398087358749937703345895301949519517021752264520732036027546394131137116116222899004570802847540361406381477089041361896398146793609058294820541858067653745684521520114145135847400424917141834979108526755786923646084051029640568547162911479605166051298601164218923584706774478369791634369220302198889638490152417264835108736731345839534421502246261553366336148347864323356138053007496676208428757530744847676122129520464026842561574021989849634090361092184760431288829692663808182477416243214918051745760516527671485956723605854481485440213290753231193378970542137669259894146244375806251615321799734696371796455473353549249001405607436631064741766799857256986302528399444346379930518242598412579835864959062789069536518549591816028252311296488624546624741498780234896199049347281966658307147577253201586835547077836728257562399243554639377454477973382960292239539101363924842457990895204656398045121789111868368461117367495659523732158831922247696642959496940073685050284037768906265808500246717295897639915288552871279469207921220672013205280939645226322708682212314758006603178586184106934504552579097773956618012334187417941362215786050078339034591252524540485754363277089363734813762506583880204845701532917287753658510284304303738094645827944631703476961344868288054938747420783607209181966956077978078659557407096044302978609309079720730749607010815586850159480975343530527293411617148317473396610051752170023014799010869034522977048775984057286298941810215296900745556597243348361850377715055086033011150531761641696187723661381272278710986517345203857378730216612722258062394563423895118271063899938281939468089089171426867874887032369742369825435588883246084582028402348362623588364349326648017559046034282151721956396349530430084841662178271514494595409011794488525950494726556911945792036793654037611386749376191352883897654886121318115303047160619686704364428843498822552331296875029163545865426866088946046929370596495128448974048567800358527040399356260489828221525557199699352579454526174074327085989113001429067140022594327469021898299517955344274871811164211742934346618581259577501754135341180155914001252399483939017661752161192300632039269350307440800556485321736481168158330203170589764678232920238182476764490923997157484669006626848707926979745436105026659791718725654581872259956718471895396896356398273911694540082867722083973564852019605960672645551934292523068186375946771657471639851037580102664513149058946532011702593902980926721553261881121687059584164729322719691537323315514987881303473988948962542717046310852002030893497607474809695231438144859523362875963931570347642900052519090875253165740792449294631761411281605006043323678149217024471810409000252357290745094008754190944850132342773779028203768777598838891022428946586307188578363258401140040295820151572777505522049767174180652296812814453596307746839919743615077556084901483048815266226168875496803462833040684967248845831448961089841116418534724679049542984233687929502850535622738086930362906434961063890273423981644437129896752462213499807179098325385375182451431822981701498047147440520820677173482930757424460717784725245946185748904930509650979539054225306921236070170383791085714698302257724852517384591456079105588537047066293052686115149625701677756605098715221893119931908608040958932727146520031599118043637406495544985222116311079240253084120858743275083025736046735590502428762009605821782540707253588194242748229061261156506709906900009646228666919350261335698044849903060697708791796420344947066473435831304985932397059589076521205938976976179995460990255750129252950517564633281937784817982728921626883979150390284154892848405010183293430169393085976918820760983272888921135516982344564447333253072962398579235645767684446557407881847532800320620409124850379079033696967998575698548117548118386688492826248933731346365620962364360176047562884825574687983523166892032758120831192672738707762830879194416406020746280318221576402945658339747608798691752555031704962919619171215072124527733136375472863049900375024593485960032115144992840662158257436742274475501063912224218890391206885714990281250332229301019625987938312748207951457466369086901110213105305738750610287625824804729782975970378866527021744112460837370072764091503713333614971740090516021354287018659906055371259092989698875726878000679158690910845740780273990101872583402502706752349279084556458472338387936948393212193705663102735811096309442346293573358743954610171509748417603259483536217516712490048287878693443178634077789561343147653044727101587308359186544227533506094500454270943829595234500617950815499122260677053695403470872316703773580038588820185360607740785920309100130736686153320514309483297128610836602524555926973266001032976141119174374276782789747510302954650308104060484212662927492258713195804378325583814279728206104671644545396678275066337611956154718081141066372890445086071121650660339892385555376753205387993468505034921858653621561162560773785078336813948450925056970346054311689014345656230772431780451284414990211879930904828898966619644774295261486897574573204681701313930905117056129681336246565767032752997884256367261046845139557876174554261407949927885159419323455730645855363767666277904565194687523590507070290264235937689217411258335714398554727179693347166990452457385765734636323402095801122354476444172330199688759484111588591938802652082412625415775923953557139009940619257885762438343967082535985086771745203064771259716871629271981108722640716731620311995057495353350785579058055228056768709400358862145084193945110212966418030102507190041435180262583918416963342871083924470112172842730327747013437984117330124469137759748817280837808632835848060410924220865767728752209963240080429944929304986884989845824998371385891669131411594805379770420015970689347111831573389010474647987808156521926441124175366266821681770769432381466336419486790863825847134143907867852662542025507987500598344208643353203403385407169700485895423819416463202364499218696935197625148758953644751634449406416198941671134104435014824843798746391600097858007148865413513572346046623479297272831424155920800251034678954542752194241325704026306976946540161354854687985714429486803039101844108638904144811237544371285330823993732836681962313029569185695856627411377033885853664622747193167250336110407331565700765207124240797569995015171682190064511788702874635229298088187710072903397299225664211305601375775977190139941236326728084538940031909615421499319261336411225553601183662732783852674019875478187635393573394928471029582528710380997565439732567129487558224783626807452739034903745390658115194195726455858788269618859947491839526549635447571365041228605931178327747043171702175554273381131644612205777914607365779146307623015698777942799470800066693339080866312852037258042871394552756934418643828321630754249357674340668984292481754076245634843585997894799507358408972112726010980185913187269858204360215449353734228209983215127996754771510867255688821989769067943231991850034564659754689420908586518688541565005301770434777447943867270393095250807174811438806676944040880337002762289229403949546456869467365627651215744427275561854727297092316077100833032761204644001950108825543666118384017506433079878960184957256409227026453638384878282644377846764678894521861373535543656377606476678170898450543551146912314274141648367976459749610075175159580739164799319511126936601648584829390733187973916908788195618674358831373515539061314098627551521295444877104580897721910582763398947484910278339169952254377681439407418668237567124423323514823465867649964519452476330870536440687141456832606639769454801930943710086795751239891190608598079561897702861704671402026390040755211696790396797200717133559771467791845713611149407966712462922999331477634216541227783574825862753499006792111978060307885749546973284196464487248154923884504168748844032656277470952960677481195278592514810702849070915018652287534294183631406112370858732629402433909819838680897918601274620818939502098874883195920209202041991431102432886184043867214698447218058827477611885531433454775949915708112154724304881109826753085018792712236067265424722554951167783499513760704930313675989221645767417615608894882995093114276568187950445739072603866015581213816955577135842043549347895364202338974649549276685353620131752865705505880944097716682618778503565693248837006191686881325769898892153770164294154770352800561194842247298518748777495354659986473128376681023168478386420803571506610437608027590099241762684102073191041168647523492506036456386777296180495366105618145387474536473562955760076828385002653903382204235925539829328419394494205000899887248918062112870490391300294855651474954344575244822871583406545423074678494274930963470015143263124161298211097657797808646208963643472088059155364232264831264515021605196502658472066706130120493386969922060721205507484698313250445679036197937511451056109940597227061024553164341842315931353905307277364315636726458013226763772668618633479296099412432700177449539823043204002544985446412582181492056014921887888485004281841829538377471703679191289376308701042720721052793407615909556056902878841543593704129448706773764271263821528379114630861459968813851549589693494777530091090895645062887987494998791897733005539554996967223113032996223735743856778002884728964213358326697472583460615280371262743221724325293392575924924474115450585976031425395401902732717953482453447118183267533772568831319357002083161783185793469555062509874148085073837262014483584640035336912705562119589062989355562779178399088576495624037971430883909711102642258974629317668967223404012789249994400301464679220203830421619880771734664735164681098205658445677184987499742916295695277744170956312845961026901454223339536443247908988275294511632099275307499379381898314756794441245959637262578848779824592170128005575802716147579216877302876772414278390459073912739294267884385771923968052299403405334707357333451836725155426582639619999309836730795037244868646114937304957612941570707066203289181107238915527538336663817080430330556707275261677419463060608701555657445230874655839612405030148057910614581630901314898861882107938274751304764124868278016019084967844218901110183925596780158884405085393976838736014191230960600868884840958759093979887545712509890277211540144019262217279654656498959921437569114290202041111579248731265080755959728472786996827891626827869491152476745851922811086526770098192794353379135535005146898579382371388273535727171789383014221648571714102900699728235323288484621928112894081707974024421905443693038017492997032084340110873321114536842359999320908951566908596491522776672296396942242423418831803521099116402806434847354437983200003628081909768558492561175239297741658204184481090895126836470846247411739612714881019329455867381943250861265358837368559920259078153960821287907306065333544905988347470101680869637317737325829139402014992329209692706783167596814766966752080774826807111167849293584619841862617211092532216068525388159185598806277687216438183516049553852793642109031310360781624389147125433165370049295435731311918042841965032161578090425201331248560532036085914481767170549766907392764895140552152060925413291657024918171664437203666136857876733251108285903819215447665286225246359219175013034284393319549122972792697639531748622320787892026844508352041249612609478597647640505134461645779957974192093941387311276724057940541046207559701574182718191565611832096658777408146769169774837664183860817525478596851524694807752817906293992706525231293089486645014790454710761515539979963895457354995616420964604747459853772405194520424469515511057601494221445985078562898005200150144217236030394428342444870888738111756954845868810158847305082029360514301370104506990268158198945951504537485723487980716132368998892862049934134778445964826238868934495641306886939680162402256960972590583690359144783046409691845826547581534945007765160758195664124007433611728666605780640979068506843839086550136603417156612177413653524666292403852731631584292475107182073761997425700526636287342485276970912414632604391164682571938447497652741279128833276475340045879787567219728508025158776549056558922047149620525210401201669876445381749387615396217620998186695643493775204078670455027574954208283438265272799066404046308555601579354158018388708877140523005777747910133607583463708160374140335816621710523779547780310828789311389894479586116939228137724820976622315374165551870724300378446838734446101858764966248302353552906856208893670501291450337471297708298592055240518783105621652132246122880034754732559325711750916176594166482394972913352370543886272408483705528170029629809058650804794954624582240135714158490067330844573881811967445142911521434279392699655622571986439196067753038374686672221703556890842503483294766784150367836819897475626360760561739594959045378728870880119654187892476530782025541234215275554653752784851164219300210400696015444285500717437035400703359356505398651785707006582099804195744951235876447812486104147556590450055377874542573276631373882502017264896961612910104812793263745673134738711663877099845420670270029601117226376272726745210181186559105258614533881970128991196384735029017400070680631462301308053975457760287247409909750691788261928319716472128495873791803549559085450061798813211982114298258375305635097899123594054486017902486260767194835184423490587190753372944339592409185352802957201038394209623342775620874772317011752756872410122453028153879584509634857983910451921318634956903039125641139059641254019436292949491921353071715344840968420710642282289811864026763507160796935047021002318781098561356791065930660078977625531978982500663151562983354439164449258057007801061628032102201957047579865658116809332423000560664896736948762426172410119907596206943468594040616410905711553454537680923271287235399907443591953983973721101334949165692714299302802031477456050544661845753230590170786156443038197017914956765394045943560606605070173938931321346258503810731950386744835560194918228051677305768502688432549589089560814199507525651893554022636610084816146203865446477107121879516306983362021407461243273856073300741729085341371467646620823326530075778457801275507872627830161825087008428187745332078797789429648585975819284204996482962042735407338531005469939541254619473472170399527022703577938585129683664406788983746565636135444780666838466976517661499961854398962350237176711027408909193995831451468723612871384972420690809504422367855102876286804251881635840261629851807211528332237580970905745356917840193816002439654325782504544519694034884092434085789998277191512303094738055403082315560818607161583433955617281063733110606015264964148156840431946235604363017431750920771304908868560472738551730953808475014486517604975677360783315447229253433596384563021521710498738592531020397895814333663841559299255089446027807017962274521055506711913163262652799366963598923830060969816001670881344300203911771916307016377800383003711264182414601498704171480566260338497751756038495491915791417929536849597062863297174522149452643640004011685127587387943486668837572288996134299386640236405894482452912428201658004781669418478063660478483817618565155840174603728978215856590831489306511779198572317164764724189304315319990881549971377420721011833196861968494405184713480510376244887581817277233442721570874000852493919493398103083199952288542626308518145514104967489642576817203145774197605540116651437193376372188186506524854450399937660922677770747939980142258086621498719124701387469895676580981634240795135703733486839946074001483818809109122785049874225639471028589036178924869455199904917116231709297408195172163625062371420825261190713179187638003738209989415516736290310549402905372537989577370008817865887049043920910261127811112935519422778192147007436373735190083294733687322396549476329928275318351812624007118920345658855468095030263042519219879777374432637260928911109005219868755372281053055764147614824639858637189772797761937308767042649704411511412890062126113885306037367229595816117021395030074141766112848332886016736716732035880470158024784864639807999576764707923310644566260337307361589922617875267426013536007295278511447312992791452450623340290963971759232197958011191466992839606609054620079823745212245036016910411563221953297269544555151828409453955078674040937185323660387796280514312676627403643982398318817605978528134663946956055581184589398070501135751682068069489438552913508828544734828151760971542385952213273086132204129233077656558692790957004784303955681994015964223359594550228105654377995470862448559080037069501560801930721464897267316393892553815995861702205913973027090063858841495346162764260442837389125191847819850025498263035851006341034437633407334699031270355830801124354815866116467990470409954792381287897186780109815204978806050476668203662967250936939607313669337472036724300318966620499750652520175471357865734643836467637926850195846151069676536390244748995432199723190611693296228778946122656683064351895616389957450772210945127991885324449376487789040544224233470979587265217693777637079604073278970245582953869616412632465754921044812238089336380764949967196348615540609091415949767808774619122770828684460532572718019232463199946676789260303597957811827900047139409217193998740760009997069581634479233605106166460077875593954578581356191179734847242756439544469001853703038899472199830805883405836720473010593371645853777333738261881997860740674509062922554889908344358447071868346283907929470801169686394851185081164381346028123477126650093708643498081061192511699839069112411278849225010740467001002498755498035240563673715644048348352246102196750403342268090196091918367697539184488898103076931360368464907518519208998079674849520642528150398821992945016312244419290790582175500212464156438780114736353486032318176976992568862342243651161413783584860345729184564597310145801442339103436619091211751414322400433814714649570280368174781573399255278767581363359753605595393840176867674304746201122791642138790162717829363320257354064982943159500554714114406637280225906499077297215318483539621059207509481870223099482546729701848378246112123226391943500731777620066954059960374037654410628719241786662420882146482782794381136197446758843595640054338403532921278595748814000737497083250483278575562787738665283977888843093724219594555535436816532937198863634368179075180196127350934580410944655172588496802612101534669727381161498560713593318421251782086976441366280313195926629980080049993801799153449183914186001491765200955505742943903063235405129132722852895331838612800900242018592068301245576885159986036670882144036179949757693010158168404896369505707194161819229869985461811066431624215434388574483433888071994766742309255414252204646132633302192541233265542251790039623700118772248801218997398674540232783101115581388876253275234665649792845609117583939724769569229581647917057753460630170075274314017131409347082620758055636513836577977785668667231433899715854051283817539517288672679243351932427944640427484557220427137038338428243358563142551037569101814745835641467895345086856290184867609167706199880065923053443639571728250888425996639289712477574013093554392473324079182045553817663723533222093512540132481590298902642974259278789454750065499469212124666206626082143493200208055224057223984383044936328281922845488932895874022579320820777499212636085911890296466098389588810029238820492462297133229297037751993136100980352670524486853226374478046384325646301000814486291219945715644790099446084293682847965274461276533324488110332420251747386222344906972367553788033995966640307214375360233103696573323152377229874426905668961779628232189871890962510009667381607994856169911256164664511017559716379949948745173586586770840471684474770849909769979447071072216462801394627545923362533618584457602386869037340402342997958662188971415880457537565078504261021206974369709692144094113468994263087437856931812699404387145948959983500248233904352960214104347987103068353429770829833207751807152848088283370145995157366923408952207467531109020004087766773452083041072554159390052576034609120814028417742037713070084243715867293605934806649256089060062140073524622034669434043776297371417295657738443594005475357783364787173858831995725380639809960264540532720562873151122978157160862957374684566542360082900430576533154127168989746228513385107670664275111061263511316160924243466569700709329952178094757112910514811469846816362099491211915737590934654666176085925249964296490499530084958760781963600471026739400740732084362442003461449470324239517678532424534809937752802805259240486576284671412186729974077030839307426174014500322104972620715170167184912813438981955969766521920190813700036727820825480844407705488949773529007409396411521592813098524327606824759522533080282483140911455034964805588336314363788086926850984022754356109530387770701212000289803251790104923250778850259083263414354851687722009982947719960230524388558044873833160358617226920300671018787426069417860407069990250750049323362692993214094658099646531428589402950507599383742467138926990433088969689317122152250932961528322314040152247200696225193121876948328674200291736644356806635821053328041767261515623021242888554325019347747162804383419392847933486122205735240128775008941153319230976508281811189635502495846710684529264484555742771213474285886128655316929049767845662596418247266927783440026607279474144408370664575851237670920004831219403483729208560022902779773086485414746185881115702402873149042337471022051225421059966070353839506482334592609712442501847780809771726739247319401655039607867012304739576533280658508348412526008894658467311915729174574224177949335497989190078206213086108038655162237581246483554065072432929291154509266713185929676930903243805005047057980295747163465461868596663348164737563758253029528629237343678949466010883529136131466638328071198371749145500064298208172745061751153316431785068605599580414470505145134434661354349132377733690004775758504046993549528650821231068855209618997124393434111680987953962481708529338557609002702279497412417974047571783589151301019483114208868324943314817802337650953324299552859443683435519727318517804946558350991943093702256819318024684488318677087309347278038059155250231204064223609470988530160758370543677837414644116053421760045932648901251010943688839493750108078235517849509082358995407264746204374288810508396455884266548692765048403283121820919225254911472664063622030793455066039883857248600510852807898750922954152053685929261987791689221592205220551985320147926147108591884318686574115963789931121609989761109796335654449027343590983289478678839749661090310579656789884814633779378097206339058401025151480018804012308861312975542072153696492705801455275021614678086913660749812251621634354851006334434910353420533934694524974769550862656936276212610915726891851277303763839795715936693067949298648386633844544863127608551005181894581104146470845401536291458227457290153410579881693540552831867360382508835230473920214607034933191067272651277179914138372267050300428895154913480292363239288242207957730865773544300787149940796063032576958992623920596601385554180341966989324367028510494283621790242444777381925654599726442141645880183324265738561878678959852363478423536809059927119995597854014483596606215632951638907300427568254001923588832030019113497523286130065109787692945531139668955583476437080703315692464770566831708735818394804538875307517147833711950768797640772884648664979182318450231538105517587340718962538798537621437172436820710468814205249239365508704489135541655626666713154192176366666445461341970658844048039586284011613603368548134550509359031416572525760552586987870305119319075536363454402515452339582336587160381608528218500714103549936084662784075061236838764462145891921779142593006497312418546365599567512958502030822784103261371511351983906124159646333982390087897387993371672887203567894869612784691802988400077024046141684357096461162379484580024369153446231929702763704581054668618648920064818578844704613762942820614210703480363084411167800614815023913690139665758030939659044159125120969529735812730979032583292747939969282438314920625902933092860103323917403838342745711351398457747832024488386021968076716331653498673034745401399921598221116711151254425853760916734327699904005844974347590556420630769469347283565064991077767958926507983234810840182244891170749665104061875918474857697210367432681514842019569722074734482208792869960836293587631653890478390048742747935151528419727078614321965828417069390496815772568280501220207510923634655176931515723238105018022585517518247822341364317881652068506613942262653446972893597805755792607832166738898066125192388000169534325226200528899561086132879950759573554749552474243083287019180305647708273670143445393759376315501750935185158798505069463905231958292523097514074052545956314007436631365318598857577378878419026141186895445650421603370647862526272470854341759779500692649026951120275026309543674058016472131592679453794369497526101844660858000783127191316021235091382970425870233641604644846128470918634315198653654660902676182247471801225355996813235223866795597369258068959753037126480244820458137018203432869086371659833775710858330103687434657741106218143176556339621006385831674674809188717077376535589866220294998738274442554792411634654679406036502474602456189525909349966735951227127320524011111391852302706761427723092229472881013319296333997818550318293443263220646980101295170455704300632501562504315083657628326741230020495063971736784188910051425253052496886256738738477796628662164973624028836930961735437337313667758358357017944714574708124906980229776815688257225708949890899120660554025206080132245048251208137567437661986796426412986059431128300054088818812331334729747312126744443118675943209106681841781026557335326213877374737553457827904151159313218518285887774417722966204691386602093496942560536450662133317325961987682588594298794267093801141054153993918960836361924874187916930646357844807215658399312037940118324480201556714142859863727859846970740475543618234815879601141366235245480672034561475693978012289565852162256169671298369008539004383451036299591188765554858501038242000728257383191539907527071272412720139581995535663735512890906976251070304892027945259155650048553046678249437412341710845111272716022109419314554015799975257597062357119650920779653514558284969464124712726275202638568898807683516345882147443822121862964661262708267422635057195047392386350754121166483026200971276710048982671613245191035278362070128544446701113052325226930150870306338451974189270634069245458809137680372957533468067793504686478745877073762192530528748136198511385757845429291076654292834071343502250882818892915244527783987472190081314380720430207245467931758778466626656846528861507688403122321218733296072442684943391394823440048794731810015672345261770257670886790779488435759761351817722330324699911665759663561548880404973201297560095265988234960223329496042355117872785529240802858776678063370228800022181033547073381937382622675719292593356370954061572778057244148311164042802001173781045377356971226702822063493126905454981671849950281156890107968802900112565891790555923454722921378528723282181212503451820595480967722776607131017786034388295733182064235872369934100981061723496382468683009133256534492346840680693901747353201504440611383475519042887754060775819161781154130039925740378644359130190784611315598122874333833098537839728020727286892320298943973394819817757139247491694646666789612342910937033879325123377397138802549835070664655016435659685314582650756107057247029983740904860172437641981422704314803738452936874360053639126726507615680781314200412241195949403929770163428124078720808521666306459230567032070981617225290269602306308129260227978177435716138102919298062250972902342140272119169380327132983200837285066796162815923582866865760999044159915872039418368224730903669496907177457012177714467268351119457992357643789469356535420860629730104673071982276607743930230946886154828109515202159705255023615647835579419688175556091385778521922259647769941023057003836674762355069788231896556982414650286786318921131224060618093860488326451730840169501420821573260642922288691115250254993602180051041932609690738474883239140241558533260115285070430660932244424825241441746074448844534185528241403762246430116084929486645829985520542671517405454420206280703433294106933727264297066891081535848401490945693824621684799297070687378774062892832545134226040883718721990383555267472209412312676596338155725024484611269592746975238144932164044468989516224006928370958627380688833629163724004187595864552046374627569583050798453815347152306641100725692362934927639367109131351270403054576969966845535847145591819283771246258352141244581202749660784771810569945704336050816850958945374630795183950034717251948443599494854468526812973590190690653598903356956031006447968263120457319101154449655511226841732515227738630308135975821722905976613762764176616347690912507016199955375964321155753439662168827108403675119299960008862463219998754180943600530874133962692998207629668015488090523558718680761698556060434175392524049679996465176000269269165516987526525067739508513040805388445060926010964368810894202685615907389985099082501549463918220970064845536636689968589228638215971107671797678975011542808723039128878869961867893071982867549919743262709341000268510325929632688185241489579124432764872180145298218574977142929436668937836438222965859111417940518494207357064528325988459122593949274445571466776515114569290313952537580463375857964158116362187227661518982412205351322422488256167742459676541254033178449883841113760735007720085697277626487365278338916361424964210630883493089033208487794286440497222682861859946689343794851334855905828206964612394649757412236283139773381908745580331675172722386647360336322942216531277635847730631534297372774923149739427339168139875171650178103261317455063776577097886959767574221493716352884568741975606953600393373320206516493697081492295834331163103727409098662574705051470227230962962287676893693773871239020465167295592539637570422968270137215978496180362348043379063970358558242210882352987239496885357705045182895099193763474732035193828111442092546739336782292584965322008001526318029140864688824845131277306267980815595476482850417271139264031553850405835488218720632498225683083781144749672788833320028717670034369690112633377140681492485609922237095518547384457179054176873927917178516593198682887564181867768768410191491807939961128907075158854552469947650821767567721164663642768199852241009652130504650834072757448496619761614608405906074102214449762236679944848377775461200772349048346804799553637492002228711271851356066168229123239218005582781418581599044062405262546367710924438317339847632851470653500079783184915824011759565900535027064038408707123341254904300589255268336910947101885680630974863894076607300957659146215650501976073448899217067459599010087108436183443327787653682587723082233443454329275264503508275103688527876967792475290543516348471778306004342306802510416927098404294232615492831376121879256159805549617993488223404322283765653188612575026407804515295419719419547797740615546242676714336470510868155403216644525162310712260123089371047550682508603240463908671443690773244134398492841467882847147933299621527265676834010400353802720252754184352253722834489706581156085710599336667745198566047220084160190860000788059526818266913138417341819905590105823592902013540514610372925984089244405799629261209829819631751214535332103905565185435755015506330230393983217424163887658141828375495738248135795353764156486001991020976353392075484934838869281611240904286051688972415625937579583189895007292459604679885544190931123329852718446233567773599333480407470372053280347069763700271572820230730576961414871966420425572750491950366323004651395418140725108930709443978312110733276687592803776507172513608755719376485636744855888825788766133918449302119188229270901950014684234363699275319954611567138685704507441432163390407802999234905814465652044962335154357201055418206044026298913181811835652148013865548465039391744227689983209599473453261485153380908818440673726935784293194085081800541112501203457445303331397380446948852770989980569600051914114142279477629690392241524461598136812557513984940301589089128390396906823715967622826543755905616030020457274561527945965191825007133487156545101752772344850870016671622088134714559577331251876805648529105407392802221120032862781056402439800380701905697739652978779098800316200668984037215519624334297992810095608616020149108819115097937929003694499120621765377482371955324580636150130098086504424252934783569851494288463384019650862826192681818133145352271022161786885639796180425572709401969041952782218972371157604600163990908887257182510468842834618913181202969641334893176005480461049509279897517631114740226421967576451984887245324003253302518248307749123252566884756169542393488977846191575794422770855820578541006163487982613985550919249337634419693864702415434328232827684568414269943837235402540939373073804634343828207196553140326715847016941483313914996741090812530998431631207310850501690632931910182110539558556703982419629169520765719992723071763730813642389401482326265470550903841961663957458368747626735252558119907191836237358436871834305909221799544996922233003428708226933056544676836776755877960837571832810682555956854316804574768968447920124443974874700573757245740874921782756424733258593382718360118550637271168238142462458904590760296921428081805778560188655269099927922154712708959240179476507844514414645517172724548476941607662478326065735413894461988583756749847678053698392957632660226472399204136521623736361466640323155185415154811185810844339855150436734807098016306252475101971504669545974914141011308661681636860421033880745651994932458611604871116486279983802481253941899013637727311133834266778532592324533344853759664716208338537412263555308937443901951541575679942453238033408307216841994789968124268884616597060833397337177144364986798767187972512615063197288554063191512610386496203137400515441345721044904467051945156922739366732497685739160310543114816892225159257668780953462048818191351201284162581472102780965979991944160344384182326231448081673218912379946597469447371994734475461447290698588542010162523064196805972372284233732451140654028375526303970784269804597321019493457002525055959469814542210702836906765111338008271970430451924780925117856272910352627916974258068402627307584190214628440917898442561629867390910053700297885506985823190928855440993457717507878492547917137854322631465566615358702116916043172098426523231396606548893085383019683401924136867142069727633671975814778723614330172612555205583002475666557171155769559720731113661647649212410007432536721117181902698647349658130101367113732229307682146982330958626017552721672584247759443215834483251667717953813744964440656738138326645751744905748004650568402111858982706460025498422293207274982206974769806226082660110961848556935211806622929940380157261010384282960889874606563046798502292990209291932461771606160384801422508869123734248586441731267184746634512149080855321275811894748251785940175844722914259381996647903390875103666661541646865470072022022545975348098423501364848574947885547459213375096376782165427914135474670062812767442222991188279981357269073785469091101556810429717305778842476385374026797415237094624639434605121639245148210507976032685986609400873234156423535667666375312276348010107704548905103240579565966741308311579279748096695434726072474106920153392090933458277744733961650093575247112417075063503208867717412193495146667638712637372846116040877063015837600111533649212190203318068500324666379221737979268046636376195583620471957455881725511200080419911461363395552011300394239159753566741136702232551901934176455731469482202225229548333297745560513730774251770977444659807607594546606593103127348715553264389083383702773822074314568944586437175412106604933774542490470014903959465745943771237897280058429396210552675039566321492376729814066350061202360793595072500261188229881702440932306066540097229824335376524377994159185149339041722501469974253353780504362141093577235490088186907390269514016697214836261672332385111763897273755722811689919980399572937460322172819284534093325844116963040623830035426887429021182429856451245795207347984627346195104552425613736299433014983937291110870529969519183533650534844242848046310476522083420859365173096584496130285833654819543598186756220294161384321163257685982562967201828906781124186868784597313387140418729700711919867701293106293096949899354813921875928804839845138740758643027656157147335183544073506255312343664960053109148813032384462652043513629026265933306812051158885104358569945649938869570706111923572757110294196928994187655436884256928063861435130310638444334313396196979733561523242666417066390240362365593574944251038356824938543066369565628381349757831909024277049909445141111241230206043422328892597491438231575907984423517784541128724259493533330985710978755386839817548252121751810308218176505155563452429948453904577562674465785517591489162251178070532881170459740597598645830080056103223325384300750981134310120450833190422865468587799440122965616563890815959223940343922260010197221765736217116359902575752900033866022749259421935596129475518513699393249692786635065238826768941167638908982314619095968338612311858671495757270575686399745427113036591818384717808180841752010065566213047632675249466820599746393688064999076413425808930820409023632383517830632217617206433632011040344099409158405146878326260477568040712615484260346833880268094044793089193734239036386440254924481157390763168026646799679017556718706413633240288705087457165871395916429253614402597840290871343774441758956655811307376296889347527173711313779000310082729387122487986914124280084502725122546352721992018762423508027844796784337023680736143992859048111112541931101350959312727661124888954689194535563621879329974884586783481448626980470399009162895288368911374616731561702410045157757001603778370339572539261354053250114657419224801218243169853035363945988575041132622240054109705194916292574379281916876204926756847774860345138396946799094353055861500427944483112063090593443247000937536710056044926556034727477807907836395045187624483926979873135352843484638881332304397927748022015296192355486000473427309507867806253076736433322824196132427056557794522660656950161892625626948238005695033649150471162428579689682908969058363758278283892895520363223930960420462287810637658111782742762532340505564585343287393682881055582302015544340256660561199160833124527637674938321952334956317862584221341665748262887744717933870329083625039959451591113255050506004055193310678540221401392893077471031783341055948291837130769245697952206414022795846705868857757846872528947007508518500453068757078397466638450736019535737073785356700362585582066737243338623835066357323527255029874737157104957827619393563501675928367423085383857351276128826173200948780873129781099401372087532187962176750723431042040983005430754543089347560999967053006260089395875398030047816817127195093934191068331792429451595438511210909172267321832118162279570595447822536126829509548622172312363166507257218634531741072397650382647261206586272339002819509088574096005768787459135373146151589768102894467346086010997367803156129155718923796941378351231627407516945694908680544178759792003655469263444618177373227167003444266776046094924812058797064658497352880792415315639324344125789177935725901786375825693806342504430545882795813741075602287584447810965427651767062223706972419791802152291454833956256228460783866292668106052637667735843824873378258642885012123329247207096075960682756058028935698068009042477941448052246140801929827445359142613006731539974220398080445375011953972619448484495199114028190660032628026970954487165779231879915526503112323553639686684530243015961973492262352274323053604223375606417777316238560718050405591823508941421612604389373200349753263396931768396397408340876148966053467650020180180950179015247573815905144668404233204625195859647960289531559077547204187516804221048827397952482737496742588221229084184267327354050629747395625186097845807013227661151733251592801250066103078456552279339066119554676984670693114454341653858729999117725534075836267307205981923186415819683344077561735876011585410628859025148597066302566272781881934320443544059426417472874446384970887538924365482695425677051955005030485739671925936918313224995238290395190787500747741928834128339315143605456554992740034000514752860117649136881975405835181301064281918542772397988891155654420613295214834039746559537469317679712605932622735788936943952814037155498125622918360289709884483519995909272476142927384761134273942707646596586099675123050324376092528374535447598558719279745135456040928446312383889192976387224509486946643316458586117087884072595663446488772838981448069759334634892092084747933664114769169483043759599830298448510466971167611803157567043074868319135015108662681481108066267644488187637341191046301486433951333169438648671912530511977122226051292720662888283651460221944708196954631978248180623064295919343803191070756728911303416669390683766514373340098291769177833502351137723780700801344937512480505007321973812385162506320810496669536517392868858139774907719078245297941956168869722316752104506671379192086538936749986314866410170044457629958945321955986639580917941851056008686137283520554464203327542845960428433290425439861323590988961610491104037053812955077468163875576813162991902508157027190764907757843602169772279041728321524831115467377986753486330097098407188529177293638378968670454493802201715742430599092277663302429744170450074589944751500765742782902593896377634935315947832002254243267251842300506882020825497212921405633725581581127104741570185389317829398787712798274886567150463224664385555348488786876641355612761048582420589186519723435336395723609948081681739740311903093045100043961806912344770855514924729667850895219861090165524898357700496192037386165583736313265234598245319951059160583790003979969517770697952469522983676074314990085485641433272200349890338404285312421123402100498162429185892422243495753608082603067624015469578806472961926684527511160095905378548316367124548486778820172520546398558650035823500202150851642366350078776071519856145256264951591055507477278537981540632716819511175410228892983782225453367566519025121682301691819839425989997594117695875215092794637661963360871925094446859022136218571040722049966386358712990530555270284104677262021274466745452154577237082364445335706452251497567870517194800500802567824607818185487583892258881641762049036112904312816748320766934852285776067934846458657669095206610087879064301681675339162115205681084467894159123374146368211388337577326140274624666451509892104406381808305608040137010089074171937662958444216912279089328319826772333212792007680916610268387238432454420686797560394826736582067345155042676308818158558039319161732754429557643651620151664466855759372594097115187836921732999384157882766022670925291474618234186636721931122698423608685452041883128019978033487875658827105870237096130274799132348225813769612170462274224961016733754788010634085514866228699569152716263350178980339827364487742823153814829001343256788832287607165110115958718714501057834762975288743392745818276860004527757177247880209896564385294238817387999187471297587411654133239155651089087752576862866168071921090343265030146354274920447493124652014732319757703612045011747939862821525354972026717908950519508590979562153891218056487899678573068849963903277813229401520730505202096076546883252517526410135506514502980213435336587555916168367494289441214804865998225611198797208669302128499501664795238170649564273515525846846289200141881385743510670806803934006493980278204084501559743111297779680235822043997189182740819520245230161759947970828058600328892886741062471328690946946684390420120577410669946215723851109156923759278558684493977360688001922934914717580163165254747272854041117825003154049416495321147450754966548023101855184474204933682149867867387892495751470690246623904739663020066157810935792046362771350394697843435917414264377803119021954752269208954796887825485645707135566698502327546123988230278689013175732191716784930163650138955291315901174224896073749460202948512798559245077379356908133386974703741573965582588573741349035827814340746255423551643968904607795838664996649445074756579699351493513597320013303372081166289167650986948072944032991761290723011140465891138242727263296851760942841879398026052395654066459330078965741576697086719209294525393155274373528280048234575091448533542404918205830211736693760497384227215913483552040425761699280642854714019368556141102765828085704034232587586569465009202308498308267843272774869277955040661110043597647686786538495502722558854224986136573631739614809989360847409717649547154334062370732658697527645921337429714124207051122564494990791441924448328393791380420636238002970028206239318075619226485397394933083251970873138458119857017100249136525227198684083184047846936429025111292751766993988620343878917517267572217442145385761100283487432190524333293992809488390615294064110187937539411343031719168526355316735298536398677616350661196822472348640340968103858504606729601476131074024007426534024368037921068446153419708080881220768071106438905886342157852825822877436754701408310031138429853493528249358504036234592392668831144807754671059106940654723734658778941924873236437024020240175175970468295402550796773098444317986354134645953902276574320351884311155975463523304523550552928506363115240811767846454714132798134065927467320835452822766343059530547343093817503778723176464890964910442558796940411705277662970232569524636717758458788220284605305305466181722096550981839675444011935670278272108335560644665752280980586287033307578738210821129210210389616523122848792032803766538720195820518561825014424096283660984633225284110157417361488234146028737749849149845904629889032849256083957399140591024120684557624803459047235953688392746190063530060252868443454660057857456872500288797407812699501435969649476414931850496255521694445285574529480723243302773655574561042966088356974253073611130310823800031585387362868849210917491803390548285054627864100013169471998948894209530864465026796100715048439262063311711860861208187157327345513700141867686921967048859010362423315167760172717422330504953061585247919628896759444213462356519312219428440714309789550559858862442017362826073505116384635711187846834715883490623342588343614274793829548341263417416882602888735547816653238321540768359096812054884548171892692062036709653605640898759284508157427478621941367169943229458693304953537229679978004871910203478247394917971719767262538849528173051360089227052430855648745041216033551514931039641863808926595190343501979503662299371070610980328347286934541513596718150629766374430994932369570495349591419352727151418737658694512236367107938011524216624494119800446557212597535804639991023932797708387184753479985436030661774685481674302535091141422536356338388354354468600110863848021479276315847935107106227221232890003040085551034607680665195521686567189181334850680693770039068701376254055246684976710144599349618422468980417018602351019649901337786508323436869443782163920218850859965813111265889482917734897361101747392459963978823770846435932564640554466354564506278165078910000603578958471411788114001470455657924684793389859044356095193955983048411907085968390826969646301033129195405483566334707548255971622409572456078995227513743172920432944214571757021119664927329504589243511542249892841829309680162790999014391000651606646547657233038464624395113830677701241619910309399289403981160616742076033829175930656604400871622422948641209276800548402635460460212864312968617604867685458733245904904458154468976001291767593717828778157463447497443174722457141782495933265895990123263165431809785578257753550495717798199024612577728494463535252170334339313436451383042589815147736236791994181688328599187157217228765199470314248248787596411631008191276660288566473109611646667671189367634721290963008692396234207088629338631255612873406534679097419938288166385060278732800485054491820199337871130829493390254440845445283110790671755781580093867536003860355768063981064235751099733184028068507709966620139938302157057490439491154383090561583001130141099139583290325869583767619707448919113263121640981843472560087662111596951333890462589050402103971688752976341156530163761401724174127541567757338515633409689244301406179749753717442566473493454579246967993011026194337636448667537561087691613043613748330479441225952612415148981699807681018481895780038325763387804353118569719951740840404292157320717893877089593155702274272826581614974080133206343384008689023889391833314200451596140089861121562924364169472543135617018117920055959285439183334369451919451431715413500742006390506071676581905824216202897696844090552454470012818868581435495454205566898387862448320752121741094873647410915786040991025855586394013091551756002797658653840756823639735834723364825533520524772296088193054082105328131130488092625504406239557590391944317141526527540808952986572630716340732243950379987148815126244606312813852410741435979408576657852516943899274655621805886920662325044937029212885127459270213767483429277774127189221554062683300828600901792187538294862915016245407247778866998890070980505692506985818373901350763943654187232930311836581686333644779329007078574510611399148091109971279294384939136701584241896910938623802725764521667814022361322904680977248778268641881228779934329767071638705695119901896323092458999902179757131345174259360325136902088395860854675047773229290628464817203195072814911800959505125813447571570554678484436237769148191799840529066771547929117426693348858567088139473448486214381111595475449852804057422506951464720084246244722993215792264672178814520648208302769361192173852367856740962791085234229560906326667104802881922637139090737684448093184449896992931060368700953087272410262136788706972698569734002280363504755236880049558697359039020691931283070710617913556767421587725759822191294318645745477205132894587827375775210307119425545175288583633445935800552400893120991882570655486639231448086237441459530559003065809529244042617675254206771033553684955246546435770101789796416313038674952396108289032577244899186229965198423278274995958934083103129326766102724108073795462818807634269861761703310093468008306518347713287054254996232603250116192827302129934934139799634261512648506347348327591363178682472894449321466061847965057304067187482841519147416841690897229561606700728197766108311410618692743573355356462725414379409813463832286243364133478978890912641531873040605317247738103537082669410654440622661293766233632590613838197631940130398985582094820953918602481990989664862713566498757014979534006764478586820491076270969775705491508796197691944139015941256832679426395790182782545568969968032231781589778225657613871677013214802115527276731117341653118922038451473699023164776475938806016075537483382328545825950629102393600165447353942982876682073712192752999073697440811342372020131423404505259316972775590585657003132022465479086657583451266545682630554619314754718739127923972118469217783762006326246681456322496877656028010455006968281528657542598234834009264710128328430643025697652644694135027062145831911049179319414349301770348702633346016871029183608374125327587763154022303956288776844723280302142987294946474939503146491804133514202393881524875937371592838326600354064289535416985061992235303829218610486918255269025574988931977847206199198050179722622476371814459796413713846207982090839588211870480155631852081343051685237415842174781458011563058311767877089770942569153607878091136284354824022828394565804195220130311977227965959838840936358355901185742704482665056343842162536049834085438904028543049268993066135302956244002028267343672871926207940297350617969254101291753762660825396822180621641812462173118967334743094220887670606305467169963141821559029243513784364350632262093120680143169163849781012271071502167924720562634687067390887567539442448270838250878826535655819744166357784924176318814836216441222232363549938942990784092165099611235325120110314233835506549388909275961105369398083023861037130475667626055583092784943578519785639053474326745056049094077085918865106554530081982644525281740877465478991615116348753930674193023342758365049641568635388344929702698830212838507501173072253194741218860306066086656547714244902618109150955830742760829485811035201107033030587092579512353389221572474247856716767883589737676177211751305869343355367649036743738817044405436987385939266494471535038152596325055300204906764624458522605213931219629970578255032704577980448589560702099021534466953706842845217821445238667104694081075061673174785697189794278788716052834504290221224398343390694767646413145818070481842165818603669376409894336493814267999197179815233510841570647616502760453863299952244303389384486986948796492541509969476646546897692164861423923568275318509654088133533236031501845430918115897953009608823801822954836466507308346158753739094675311255426108040965927527145627225527350121765782432201282217368454018834091125636960586741735441883030291042295409312139163251665271628121402003934852462926770253355678013212110007468751049272921506773328246340543305146411016945801523928106487165119374849628471452059228602216430922707329113148505514626087654910369689708578112513994774893832884265980561212183161153030419155186977220696407051706558307454295568020558606479198561137208320213973371589718010093419529924086318041862299694415900148445348986206796450530773611839913611440073059304205749678639537317291277835848215629148003084298917636403425821977585909988615422915064881854893919464924424427073460653662824110438068746346424452489217270080026988968400977049906879061899434905998791232993931686542977873405363741086041168212232803214430184507966819142023711524639482201770931427298845543362729864739836067619735520646544148606206582731163150571772420887655624872226829266602037148511214624414964999515202973569634689579349118486138732356737272362867229569307022272826189362420914468343426468002660771995022165093651912429912989094967348869160997557084153856326697999287231066968120038735043570013902925124556125259003322197307426285577090519268291420781601592068468518949602680324164502321797845493500368685311200743998786753531880447347851395431773960600553611144063536421618126021263865730946905932559063972194920380562876788287430919096154068691521231893627892498701245388290743083816074862738967877453782363709467889116034175404550891697540592273940492666239120406468558191112089876130221444569725686254529501304112171998091066911541574687485849599866199083983781712633106815336413320408361685895059251501682768475240163473441553578291894992138591091122483181871721948688386571304048294777424440601099690156383523782761290959674815107225829181329982874270549873596774842208562067520671599421809118851021464388153607962345415092134034300612997868682579602938497659187127068051527071418619605739031888512824338726837664102076717571266109274582233522905129948528281613592546990669160185027594016816244982303860880138242498830699639176230939613485459945178006710782255193242050873901267954978440156989887507912316527747212894791531731284579690612883700197518951091669085067985676051658730747998414456849249212797902881242410088408847783731591936132045482630356747492775654138559987303215905407629514363788522298669818514967083486052744652644981763753211029230625903686358567994891492488089604126511073389096634435933844124958326982682427601020989659454604773652398711801751865136733933944944267677542321191082309423728968680220347439593248623769437410866602820174765563194951087225889202215249803245839271724279586677378380658016613729297771184466502501152581240730709630180406940749655684993087263042183001570412013792245678731940258213109454610936997492226185837465197323220368127821679785482540385357995868520967119563235803556744705872326862792820603648717936660559441175390180898377902808434422479687088565952716127883634043276080005804509481613762417573420339477986303223673828425719406058354743783890446415406579099993185608124308463533967991722881263788799160033833788588455471982316793889336283777320641146617025954208508851805129008431630715043310753954554199079646509023164428834474068719718935466735649456812354304961298884537609297708931994214630482207660235398243215761625487612842541210616113313364882245413244897545356626534914240822491340206617500721126943061249663413321878554680294591249172174641038186713621514571649507321984896957276872688364311053604427157154289136681571274428332133397633430005081273956718748263504621039314324319975491958090961365625700243201665807095188730589919787067936829524404853420238652758845077629278714634221930150056380457251317594012285611355436854201081823715869013394106131783292979204109913274541054713071745330047233839565461871634457034018556047181381578089815947036849425786821926363634477428221860596424745794721701500258173333022732047386573215346948938772327005556946006475062041487331611568622852690741688093499017469127606927198938505564840024337032655975293686023874269601591645095650888549020898484988762500950696676359381231697790345117805540667349228798064769733991389207356808640524705632218673824785071644611430980954948809247373180071966058926964767438019702682241032886561113658492748669631268073768413367434448435491569475817285335944010063322752305783993875303255072167800795954106798161051287012353251890481593561721703239862529923914117857155601316674495414313623225134309093811713897244019512308210327892658362850240295904940492941532776864235979783872458059395139056795560489022429600734317792826184751933955564593715046875619975797431690153572144066875808686554524850048273571308531731244135792320993581940084780355302666178999034001645004709491013833401772294629926564233454788104605647714030170786181447811161624796255323924406800969011790922851352731479550364501613013003828067884533563391135173141024267843977071244855993926430774456327190903208839351852366033052369976131317334834526825772849605743916715539515852956333008194184226563499761732066839099307221655802854054586971189012219660240669460829422781432154324365761017502059129601843671261833291453458847496239270976581693940402863874677684859859221382070348649830522504843916857753454819551137494718952124618141523990215336585113352535414111656440333991014817160305596064373428680323910031407094111326232632399839699537619227136973500148398583884971448168151714974590795901774492774451113062728420131635843764179209332924316744005546123114291616263976070663560386006560837140438303004134347463989548459451126970333775832905533641222535927524973455348333723258625709633843342035966408972856443178958761351810094275452037400888010727884818895951672312621189125001920873733861336501373434886404252252001770462072668820070446561847389682355647147107826826300452149043241055363554525591842135419686511373978866630975008142564319847403775914587895906098457426078857863202314402576460524637248392024315470427111900318904204033381700098642286434180747777779834425559893089229069745701872020468182941675249134855996061980098948447489166287604198006025970012736569393629754093208594546675623408046150135458215508632072266038934013767305762534065551698152777855992998824194642665167687761191736222702092278336052507704807075907180343633570756382836596813995390760727068181365657591986683751054611521808378119196475540967095824956017828245672736856312185020980470362464176198682717748478222463490327810885463141517371814329792883256249937115629715737390115836310870448602510300496946914258386937065120377046630824216489443358000596868730214852492879538242286100073642036496791486942425477306447281042550872919341960667052564506409608790024404064247311413566099006514678880932791384938464806546101789056276456355644526787973176600856459859045759450452936327322914034062409343851631402526002102085325002803141809837523389639583076237367334254811893427718926930339828412036495177176010034675192081583382936321282066313108914560201482252304552882944291740051438913118279809819848432290298386962825148739445820391094065328018875407720949074786117915770017190387912806376236617440144045207022924523204540576280696579308502039812183784020672025012026675295531308349435347193634177273406360262579603136511978554856693728464042046848927715778043458677610085289607369314413346487377352501592452119765975459087695020605617578193591077403625835765360080893765328137084369439022722986532221828843740013882581116297155345756740321498609755428688657987436900949705097986093770278357223388331453980493989210171433582618967400312252799730336457106160728496826402668234770455830154585574827171372435847099486137265871302549402449573855889966053537090338925114540555812456929413788827165199000437610796725728059987482047989567855938858499483469651949308978149972776347330585707179027093568227576306393049702296633955287633799130785859314207811335111432012102601987304216706260143575841179770790458083808849808816662618535883559242006305302464346289923082030708064941073041567597710077523985586867594573174476709455684268903853112849498801814477456650509614898991517629924164287800047413850804520329530539184097689946319969559127867694931959273366205430918120556692462152740786651432352659207070867879558641686045277535750207487671433377060119129403158574310767777795213590261308082898324883948320949988456830767241759299430340209439932270827548357388507419917136940049879858619423446279608414447356652037928295317016335118153029312723025435629105545863957777802211658866611269335740729443614557490563720071282544811355783402901604851760524329698135502747147052635429352648136623886958489819516790476124747446800847725887139455273671088784750842568825983963683066764766451330823429953840637149396551260259641269166395532942221627797607874955291748568842182486374632474778324492983235440257156760792867425952849433898967643436575482307575478403350369653768736549802239878011920354404912882683594195397184364725540905314210556663207320463884838276837926105500380573953794021513641366249674935373241044043486238233624920495354428579053065452772650722034659290443202201716324235831378351252109576415274124465776261675436094709743356400769041436221806829935515109138556573734119489032184562204438771527004821101276120814078245264988636103832650848085252951495226355426460671844543042653382666861006655771695171442956555905423681933938717532038641155224288474087963872655996503545316017872842995906248975694314657253297995656442753810259566672558761130308635459508684842081702309037760107313710623429337807454750823785605494798769021390566558589286009199045602603206378272907615539703831101800844901121481192777967483910272882057559782053508834615002190348376576463110568401425042106378331650979093472594994266170452072326910171868068931598950080623997586948389705241612230171728940390466998494272133929568126161004650902845621267573941439279503195865023504811047168563578354042648572127540263881287194620920381325464811617031358676710643658766055165513311331702271823215687736219584821685646528460697066190543954014065106309733365138119633316594903039216427085354228049798026714911895636425174891344121426361554780892145283670822169402598711263211438852993916963048048178929629882011238074901305294249294801611435330239008067065721378167971985686130290301299399445124984690100198919360598279169730514759434649602883328969660815056345056609378129236133490585780550945642103530907360195844637121650731982015642422013268456687741832331024731921868515643412032717030573066078517538509706917170791725285511743627871301600952208920242405030575640215372736959266799747810707279372391235577709346828475601076301279131199539176281861594303820778398243261731966313336206379349676875089524023642469231904541673862358360482837439278866547759485902892040201939593770656732119490991043352855179871403502030760557820191483882880946496482084241766992456758312262478070390557653141263260242922436203719532918554718091596443185685205788235010309107612806044570442514799758960888028125997862387743549659904929673220844972443458243503689780365184909951214229401566917453416838309035284779643067608611599763678720495505795636516693834521021205712467189023635837908339119080206899596896990188122321855252869348573651888630160452941028179736080689549524036066488944683485357371170607994305471921648759431314126975952516610252290957537550950933718544900072907676126346765291664645580371533060205534741620555668380872331011456706082197136019911669601177265351241440510936203601001758405334468987565349002447580184990285112905603628154372796762883123816577437517662456404578370496485690904281846741434107660754984114657421533437962825237739351775877039942552131816901739901861642141354392779733470876597369481710103318186376892728376366023019205919792959179148224416394031804147790028285712517764484105931564467536330924157970212626481304280838933770672398228654341731736481424562966180793136953250911287546949801550317994516691228413844646308741027987820955877346176667793320063616141299836112387852698449676224949460162224198481882844175972508965043238838826776211538694490722314080038640966747955659603365865500834501574668100371549812154559177082855269058782746268018954840985480647767322593083364643266678951981323034384780554257118933244880337102766080664261976800040145768192614123421421090837882603488039871589674691868127595035419040689672781395132198842118325610948747352764866436713359368373719071671361534428920725273057077805616065916154423589107846465547369563439707372217818591230109443692313952203010113674073457059526133029367437932120406159970890681203507862354127805416826582353742593856966435762710973540865230333395749249771995346662569428121211926674888665256315169706607240021939626684282515447561496357933365845237724099687357953227591900979741551721334845333578681422873993851902093678274021559991420456446438381600099906505371881484938160865503572270641774386629751678966655499987889572179026230908454480646518569309255696453172241089451645426796761819728832958413935133844596041672854573991415080495944661353439845014276180542209659848671099440825081513239252136069510626733736792233221425995230222936409047664596154505594842048813114413172046469267049759749059935116920439027605157446677396870803247804063437778416725021988849435409828211600072772915050759869365684722016941046189444582618551160041549451062815887248514034519005556346661524473749607661135778748374003886293884886101950281280781792745034958405752928452983890915764913247310105633314781346402650462629156753779092137247828970031963259689125133021524656120543583762268609282030777416870045904352635817494636724551789784931750675390464041603363847240546498075003930024576610714660605719495109140248232735266912214960160708972207220546288100387307622968906215262971114289273463392143785758381679957096512975121288247076229375657213489062361860141899595000293934330117463300332972907834026382527837960530000473559275468487189299720656136533751537477921962495517969220085573147944574288225924228767773212885980653704654024619938729649935943563230213110848242495018006757189398611897262182430778317833445857036118160941397634465162725658288616878213013425589073818405734222752790944015079633506963068315858425959758344133931666799730480514710420516213562175409048777330227396980656495900945695698536584320835620615934529254241892916173052220979352465712270664005413539212620953741607025988131267956667461709323717405236296319608936529844425074302280497664164038282925713716360306176259672499571761536958524866449317201096085345723423625450385444144127163847672628333308189585593647600616352498590632887445032551137768181305334664669950154774932420985686593504901062114129914177309980459978865399855599720886527297388216508774800198668603163056123011444933193578407633418331385977273234527021265265772962648846204405032377509270264409159921265248626771659965913245715413925400153811699661401449792205985286546311988145874191873375518550958118710196924176642924238937549451631594772453110198414508008761556264407882172093511259342618446830352107379400041838289360585440706517264491688578728545265072810491172241294152234684844898973496533155693932685540211665594490751531039708324623445957019685643267568038544519358687335149681959769600820125379900840010546335233641891279605446876357037106514135683715512448361849192509499414144624632178459676671911648776744489599464431583958487181884662742027844189992880327512449666964867934589413298602330348292887626063713644580737134010172699240031409996289875932823997324878713822652547419034882217749819545570796378004278014587919441189077071435801103026624542936251505434616515198607934238562390664551545908689970098727578338564769103346863889942896361916953313831063514443194692997895215042734302745054891282240465675168373840917374148437318197118822641196702951400104844973686883604892628854074537124601578468879477813170839202770185008395994013507875106453561461548450353467874901534027514090183464567541976045483308692169390248980675092299229407155069237778782666991230158990938081337285055529905993471678423507867390580365538952018111477155275161383726656687055032514568315829590653570060806572699022721433791492375242219582555155273904766415152423084130932793556194050053244414539506109491632703871530370152810088754080933294790986591783965408974119198714373411365127164382405244158428876975714977114147142795082958870299279246833213370515267564394231135026287768903446466363218444592171575879241131996329875413120183252226786967899641329341131763665388968320511916362239963736400650624218691982230644198135153219731985910156362569862181748547088883782202161710149124324921653238655769085274725478596829812494806860664444935191830374836655081755422573352685140389878650300704028993343819723019614734086482834761260730198222686144117989843675583891590084699913140541383193918165643088434978829915171742974864909638389673430651712173602754537578343113521721501826959291493227874737425724572136025662638413895262627930213000996619630032325220131382188448222153852531276767630485518700683146840399268185487653840563848319210024722319166100913439507678555138370482142849151016989753390789756323399217789038804763368137484651689226357162307184064156632492410866923967601216010814456092321337429145784488061247863773882641020861802495130573388369415850878231970981515867117095173880286795801510678804493390248068909905291953284466968288254552920787080905016614853675330813369070048013388285854616540641332025069383559631742436588406472615757600993478411408406299823664823574855435335905053612627428200187848052953044769863226366278296327416370115311182340817867398766107281273257785139211380768154189444041763294630490061864780759891264283257299873528716127741833680517563794195244023212888549117741506531116818362269895319004959229250837626080500331743338563784867495822310586318894073980761449692017917513933532988588534336449979130016571286809999515576368835796903449984723426041943185991220465827495644137636777021611431270014347716120164648321329271182571328791058413578619311893745953236310239127088901391290916652719237745868641703648012032953287516120129170609592709077735616740193911744124471246014178496797282493661458990725500824349970890968096364168915696208984519256267193430471714563044323998155688693543372623026149800352837166513591216931783823097964852220628541884734869393594384325299875376511924923350991966689310683934309929177429112608797283043316638758402370220112172394561144733654127633402705845417785774852486316499991704854769484320531209292739986610752631319764337653802952214163742360237221850677911388725805767775543742535744238997963358197140322779356139744707119461141651761515123882362790564886358947268605733447972830925709439137795165630585389041681689876925808365068825009361192610789112427098812226934685319851706637174204680963766557289364171324938644334052887352790255086899509376151204649845093084820946460641779407759272735187506149345281817675171084502365204423677681513267431932510951920058767491849302776955965409812253963577116946711260602360694394572136480764649901663784374841097357300987497338721557269597603311371288315838030624903238330486195211498262358667333635943608153309620435231806990586725316679671989775739671985056332039162769296127845043250930278493655757046636650050423538070002104337905436545267691563211623070815386679328752803991810222879667549274141381460065654850877794899447855050889491480528826587688444566272939081961440068398308052403725695064114389933181166377016307519304450021566160912397787650073874339861213776763163799499160358002942539415093611828779256489019970636115118334377322878051378170068546189397707800275450470574657440961151865016887216781580801618548641080898632223340991247492258081118532699879573620303636012024863397052946712401923986888626998354310920045622791699844169883212018095594550534885326175425495363851506311896253092176652916582431590045834969397068765865424328194564764785373552515306898910979666887810025698390687113192142541988664192866687545377244317614463541566576287140553536428785180176621964712668996243194827310093974171042590552437496873330365968721460188999669280258230500025049474319578873617743981181941294800460295054273686692310079383355277975003835915620816472862995161814151182430486495587047642038715770645275872367708081805904084235237757757540088468775611166581392511935673190940209614289011096489957150397207159050424785782964191398186464569806900388364679836798101237694632288836091585443010494261487603503799034417768599956759933050225323476525468899552580628931781172182316379508778459343728786415144638730344373009824804924955400332234343780588846442656516711172540890242516568074345760295714812822409478460558543210753456382184804837562589157517060137146819642168971776054953019924695302390199614826260170628481879635799123969700159444146867753185645831272547174394450082162982830493756959752133974391203106521261696229281178721499149753725472129306870385087565061502752264203373041216162349639788099435270804166933227218359322427911165736309254664967124992961439907500009763571020509135217210267487838180045968331069999559077825546489128367433945158247815280574610341511343563810566377035487980940326526654845824868458290675564358632459180753460775801695839975806488137704343413010596884392991793174174742867125143313255177595667391206113546736483115197935420861547222832758560401773389173211141862365202764491763082599430939167130160355550663966400637699177448238398404527277641720112291229061185595127506650649835460296102965747543759069555507510185935075883789469234080884424210404435178451018449469776602243257275763372138266732831848510419137225727990030230195198814570212171657227651891902737558032398085602854179108696330380502830582541552079221546755099881660712637966690626696222880410521943755535993478632239333088074294403163633929743184574294796453048481266724296055477893724165925475425727294818303585240798970601383390192188164731155785052643281067107830425382786255073575144178094379451520876964418039294505337106958002880600959261554240429538493922366928251865457871541550543768172161949416243980236697017645851682241848234949856122612205259406946868433558288000423604267164920519830030400639082160494841822317937800187897147326541391659694146628544607201166338527550831900032819349165007915757425415726422107319213142403345326076600054088324224303953642851701019071959689962221685724205827008044884586616008524685471176644033745417169725731664357129934938871819929175946631813286486618479719449399756737688968894218741250518128652265436890284789523945318907597818378429373869271123324522402704855011368071301499127539063765677619504082472945779516147251783340582936314389374727744967896513648114070023132746198982924674668855898433555455760427757376276091205804848027199984955395267234262697175122246216969012780081098444425535915175083609503915428095603229402450125344480013590713294374264407657156719414139579192271365410090161702991031998657052584092579984341415907909404761270738304781789551094730906625750499363514227862650746766596040918727372254779472975212156735685726097885664645754101381930184782123365156997722636151699971162308147353868744559534540138665599995625362468346296316834097975504564050102772610837878518203493705332792138943408370417286053516274318097196418515813346386178640580852899326162674792028229007798061487378774117335830276131207960256078488189046862289627843902049983703685368810277112776491648078939944439040925075904833289087283241424493352364630816798184071019847693663055389540287367449033739847490758595035606072003587845043016881102144264988472971774495941058452003823012531660787088599066303712804121528907855153422131215471139478438631378025693727576221585767928915212630006697169938472634430828463068278319532124797579764030143681437346152646919895021034218176259365978453266760250667448846712460966866173009706625245017692278852056906735900843160412459284748056689469781827677947558847010378813457163188174944289989298716727868572546655367737283112444617673040875235065054391728319619830505638090014071189077122132920908376622049304967945786678841810035863738342709135352809394255181980793497854644802496427368668433552167080896583682049543336741086899344362297041444343961098861270196212361682942389358044719702097389199208230232314642350567106499113603577319563884719181976988071005806703870572501530190615358555901464126696691923629059503854868733761219137217442714461555526745228257400058034707483503081485510715399389168383731109275020581701951231311776778518448777687268042139392860342132389958185132776669365598180645571558540380121592971267768643842853718880917909957308068010225411651642985479859780120053032532257524997410354310883801984322002357567408273306083966425559365951758305161534971344382636799028771794289082660425974949114770714229702525112586060390052960240254582624832575575756121613127958128121568538408559162780570929372466124367205888681576790769303505178957563934003111259297972535777544200569966402202138347356603769169544131890619160614468251813160176609861677232066349745604650972882659512753972733368694175508487217889388640618398460037168689685091852298344657755164156298149054346762684211445248399413123038525805184868019570889226188325223553643687364583479146903567872259825575975596021681452229949197379268978806572774996020618312361912598422999744591793191907004469955405843606932673167089261261701339842671888934212498755699024305950595367665402753307550309490689335933765557321753833566489041072878037317426730961814074515620721259831472457483012110660947978796294904381332427061165526973317981222046734271212266413819291473278943660918278788827641461469764222050291144484184413818492376352771491469069743360808145042927657615875421705249394092838637329473577842342407795488209531262353402755035057102890394313368148199515356610924477427046999116723789895516390463749839660324274199311394429039057605907415555332506554821517929225476425450871896221311351669933045431200007471829800650638738989262564890543973968667943212705493923274442799571733635910633348441851469534298128089686874083237540802626059432986205629181754412222900184021005925843557050011626334138911164722410329354306799246863155390027951392329972227662129951309940979505302073905595811915124333040407885249710925372417474301388303179701844108570451357681512915362442949250375261611011837321004651896146782697244426178043464984407081819464885701556647291249400183231574748921227215054856761733105517328675555551372752572280701584444306909116842079448527192751675238846945201405843654124419006882995745900543574308056155946524228819312720329234092490339765471465181113145925190572580493515112436689165402260062755458017611743528143148949991614671893523814433684640427672953871675260813395098759620778572778924985598283482328917720811777733834663342418849227919805296830926375673184709704872233707624758369814717742114804321363094148725478149263087466784789524555610053498907888898459211841022359782737316521280197485413419869770543953887497390145741221190480539008552547517769182706070979677126597248844196823381058259943529823826723631734242671557829646010506831004613792748906560307636325981027936611235706225460930384592230956994474648995943528035957281220735900214846748760962849701879898071617087186011317039698435437109684351766492479554420274224706377160003575229427613743288102773742437633846548182324254585865229937019088847477674002680010096731972668495586454467670798787717513539808839832073277017804624993278618880767133092543389284289547339980467826791459819674690198306839892263439290357185733095966285388450311226586325701495178443681391853583920429643375838949238481221756550210355406710582772688757513784359797904449145269179059270350881467187781681401490099155462169014256978035035958724739149761619033480456499169804389482848716057330970807205046654803487557123331222248624733016399867137951278867986438102554256042535792751624131624549552973102364591993011349614295221853169829571040685148038221398883769639075814255195711993591711187550877596254773775135923387032299401391763658037067844008595624687639951401471457224685434012807858564304393947069971219759406459214429010712931914057426533471341641286645107585645881239511401177955080732163678101603734337601573155634925565939373671656193550045881073223355930244825696996555838830534131866761689980856668282771323568706812262548462982103131760771801239058725534724204741520016176660218058824619496648746064563878996315071244291538840423245075603214047762425803652609205191482910102715774592414262871044559729269995650112860668854627487571876650669697796028230413811084693087871684835790925462780349442642545861204599719960800316630347958992894563255312542534431739985369459805836028674518508105331304764752853762874570977776754130771424300232534740409303069421829116816439039165574700321658811000624207185247579746980527651709727451530250946186599372850401168149577814259636124014780968378688851125147127622317915331487044871205793776550304016642970150767388550477383288817873121246007452761235417666576881701011494289925734910123564667639625806511271339649842282450273056693708923735816460953561164343750565029963151679745340938235328999702562718021656243625511798697216249832309565871968296025466806500004671622240239665382418550573065814460635905595549641982011396965284439301573931052062830891492180634287155353700590035047086460963541097884106096566034365354449061700707899583180561453390650477052743156641760972151791948928336481286604608353071881948053442177304236040841191576164461309136759315286399233963870540720547988479579886169962180644201535353179004476525582272767064593635057287804275734855898768296689233572428808680624632489791895841694457900295928632288829382800916032460635320238223124737736787406179409010413815330576102830088488649415922557543809460630258626769891731846156393679957705382514934153048349312243480633331688402699767024473274906189736334543327828082077440266709778178207831208572634456094708554852142658489101849573503186642174822985673406328525642088746642534053395045023102754493429019160008441503984952021532560016392766936647780958412656042906452568061709558520418712814813474344515393746475496344220538926109954944289146367538957876055842484190258311817288502158858378806898930594521539281374654088777536100423510149310846076543290946086796910018840384162250090888837411244830646123775233176545420148684333531525807526673468582177646255479877158003780737152412484086925690704928900666781140279791636537433395145161411107226456176282259912478849099284872988870529808306524599355173740824113367757972723356826803378116357549983476669908238378145543916215512856385576818804480343213210293942162408135480262308822241912311925661205255016134989977537211303331839809636216624718633004541360033833053057938607902112932032887174995145272045062395800542689317348183540808487347093887388619010213621756502595911351442127021011648093093037494167291593624568786003466022400339535225142449151606042997647942423498377961134986659102717829299312465284256303982440607897986973420603951700753187578630616126471450010032081159416960435788247184765644413513385091862089785746218053947270574914758885846342665182414683879858080482488208055020192887763490205355158562400189346433242686366341174030312234237172519433745140146909287147290589015061523895622846152031461702617566758586209515477682835625450643162643745807607141785780027587608048332596758878853180959596581481600806521298179195843985925295184458469272466477076091516851746385647187622149193215623010127131052844507481070026502446417858724356779922130399652183827914184826528162510461472116304790782242023484217623506439141529823005543625701476369958878450144051305748180118673087237596524652046435093431303966655856293925156810381694666620313639439917344896713982981562741198826272351095251221821704750686253399267537797846680999542042149911343540701022056926819994042516658933928498565667347332579493437311852048961480398907491103503139468334077786693687354754911077611269470298782112564765681491566691909552936732055957727929512982090715157730091788477963374300214580360314477890620077155490476480542427051316776689353266943735909722400831594023758388314763542140440860421299577016536729659902048363057779854577067028190587186483061382527527860075879070243587438121184097439290836223989125389316731842659559659548495881455735273119107469179828345743767858841443980936994532326065725996975882421929358791454369349104390422637817675573224987314756957013416041498872979606838574148390973894482340813010956583016594628071917844798263328455536359745121872603325357817924068700106861650620278236810634292874145081373060954890892474450662277330838526810902090813243131511849533596968989039103170864371432842682490648126662406926704213367160470574265531382424342208560979350065014126838867933302418654622307472025320717893805031719917873491122677621899708478236081116007980195606821356266409245951405941919888659605278045961898798897812460445075204391195108742576253503374285344359966802548772112938561910122074296511208884295468554439251909040934596997623225136684493959391431058220054977616511932363355784477387007275167088770183360897310533306167400940748760848572870502540396522062498438780791421232920380618831048172321093001720191485125537211230915157190161271374065368354640345909017516919077376312212625722658664549644959123749618371939551519665045731490348698140453817457369758982275113774563078672356216976682523924529815904675621852858455891453014822265840535952639098539371766197101587838732782383755847244288253637262108186657407440201307721398294034324598455034889846916089350460604602972075243052225050884840981344559999075868131547522204656145766233140452632696535279292379792937392919037486967196463071806072478474739655051709747509660626023429037646844450582247222021323863885571451323474982034996604066211777772978606443414673662111064805331614307054651648294660337643562092912703240902104351027595403970654729979272108961839673150847030362204984020805668699225246595358373749601331417900353700524645605869477674688973094413691010744202027223857514205225470819089634991421944317404112374851728895430801845740910319994611280556433442262289579340517365029531336028314329702493656220118807383796596866938563040365542449375719742102493740570193694513848256986001953215162568971401835116525496006360110312028199534967046160974620829177365729978564571306965165001622777885273834072598355967397082404631525917673804229743178528315649444954503695640110936985581798511502721191591763800482965813078985947039731206537802032276034416297329698012059066824690143029493995250158989047710508025383515715842805178152642640065745840279170365562834115519991778849951688578980881405096867648256081575871689213785261434824019867008595949183437996872749380392439900124089292676454523422192207578413785334248788335354749324685978019743073891678142961050444496628579719868493170449749155067552127911161583805706968196572594815298667213335258086767899959649515960610988893062288696613263121755757586483262796857114153350264721407950235985958527648203136398655628137447612938148477402022504450859121825095624779073889654945265020370785100531156965622029849937475086136190439762995990313119008043197524580940000914558217454526625805274039981316932570018276842172231805140682005023092966177270185446003704330143234525164686645610521720692906036720273335396157708284888237288135889404534490226994538768784657248578192875582017026334879541782535545557549068250069979739505950461342053430926981905725531230338713302912850319228135696396012838534552115943569140977460158198777412381988958667271114272958310827089863920462180345379455624339718562497127140957925961923078188404535552979777422106889367338855485881072236768784859382251540354409948225290592834847801360135009151581145329214423539629875548306801558853165966563394478186222393658069731261285120024220474114337596177699106333914637580520358154703062295277217035148212385304932657058446113196562254523852860644493309181674712723697272029500262669493867606739072357441326860714781306327962522521358345146175319707352809011354314677739453471024006089517815558307572118215079950055883774454731926129253830499817430402307022389098160761531109928886528725602179498866339642061820921316043176801177815429663673507872419183405805978019413641380162857929818320868424446974760959467546593513927192027086066670096446912642578969760050375281909661537566185545806264352294921657908349843792574319715877064686820018182320486899825645633405013849665576402970834480618786696893121635133966878313623511774979419930548228986619040064715435959579227544277779439667263372974662779775357319608434724918119021011929439259038026026484174844478200516856843034661441250061225441185536036696829948065721395351334078869245327059129149828017411210718841342687878882980021071193184154769063232133035664704280199834162572610516704131168493867700277509498844108513693169564448607593170835467673690177738942973154551145922770111036084305577182412122340329282298744398644640191956092300014394993453060442579969384917723978161494511312042048686379167525306349006652395804402898435392555784845807220033202925034659744813261401733733484152208726498583672364880564331283046930530487353905968489776941066248996816465510182556276908923306543747477325157482346420761826937202001112884908374084156663787904917715791626174472533569211027963136363961933383031690960585634786515836410409521854218925393845365190009456821882351219678534912907472733457619087952770071453429642885777891979700517737331894256474677870595141670950151254363254585850590927777223574413690610705925417965794073644894013368462125974037769436292671078648069165694144947649627554797526997506112392906590555602998061827757923211986904515905942490767601449443302144753811078861683941736268247379536204857866736619434018375399507887357076956973633489060966234152033032736644168409155972675060681869195428972955496780074208880873199984229331801642263918301140795970491267195672661938762353423067783745037399215560497316196545379184136237601366609873437405615646163459852384782852331973079137019825090585326929428640128896615562366533668086796762690219338587009470620408502701789450516817868277031934278430701645193131391148579096169684416066209283732083338786764148839135298925848184530866997588412889658670242875568773123590034961649957608292377522689365557076354134082655772488902435754853975257909113420179830261153474517489394228238827710449742344359228203662147297399136740367101215970943082487534476980106697699031419407850208010006384516220354274895328569552580166987140127909455465844685317297663885922327228023922957255162170439537798680918870851195550148345006535420589588172819071594632777061363476090473165184177320017762749668619298300484784222251662526812410603171436519456728348892810958904469510765410361898853483266943402184793134763806133555152023602176365618271131545325315248318501600255035300235099811874568401397841324504129248995106356188398860593998518606626698374306821560893536408037221056922170621065402903346895715239006679969843981971994494884736379926562713791440855451262773768033692487909647451106309430481047440825975290276493019099618286720668008381247708280425348545154944826733517709915865139720744453559629062029789651482279964382284624100494925380966317158494746496877324294171486011775792546480922293925634847344849734476876789725518676844578041930104358838478744984719157546612527742106519834036887682177098564798974966417963758532760889483399378980386935905003885915004182247692621391632221151170732974075729995059216141953417954539564825806957558191410105474085836697638897485443567038088777622534237252366858625286860701112073766444177034759239022054029211833635920768287468191635734436212258468551849117378281498933173294328687866734127709419506140678430955963466118300937723559315500840818820429901112536254951586587987779332016060230253996395820888578524640683893060314881551188185106339280138068829477553386857687006287381871755096202301678908295772993703948123553225117730651413774797053438937964519477623368044456610377282423774640653174719122855087525701248555303495842547755111923104174126089604176453047384486184959876882445549497422370796274252261378595615081527071735522514060924714662877076575923280000636236617818518201466129968973204506701938791223390280196792848576421517536050324280495374126017027574030305342271641863949578600006459952392766917288951034783250731781367442373727643857425217753618604996157784516405621251200757112686925439127054804174130629085265480196487981111437341575547549991708223661965071527972205089698520513649053554727844829720710781457451456846086111572956596317579388647484246331637656494481161619216046287370290404097536728861306625138090935098491430915201368594034990362979313644033125901186964880120878666141208928978105070175592631593289475933353555853961535737486473277884692900514837562696456927138301087192984228256114413262879693085543514821959294806708059222682459066959870498056520226321886000458133848213383801071401193705031999865589124946066131408979946504502916697723288306019518497855653243552234794761767925765445820526605167994476072270550260402538069305498861065092174655658888730178883841289599959659159322793045738084143789823577978122166391540010741213360957168963667005748458952054792616196173666179668924730031816330776842912398177400293806904648200505930567210970470723585762765597152866857405809911535605869057244722420834985942707651457804339879341679576813796362083390395083293449558059536376048546223113625167923643813542477484194804358933214598819421360579294167412261599983610855016724402649352902692947624134258256387230319743507861606461769510121854106322030817166112414886764403388729757658443952202219610073743454148508916871337442678359527056131521252620738693321830593565893062103049292095355381454951160121464198439793903718964398693487841589092209093907042757821905935709430767237024389005345312096700350896192224298816087686432982939714882496041244651328082112489224188331444749268803634239182966671662822415678183967524379665967458116991492813690145022797801359769313865394554720684577771745913853617847926695371036950896377227906128123654791570888690766768908193749340610368410673860054110026278700874705947106586451439196980559706950556505015123393666589057173313364476421307065675731991903938811893825307521088285951614750680946883924574001113547027478698216862127432149766518830031960333456223553442141736811700595766349367622329069184880323734519243491246566532971823841739691986587133313412071051707368341724123447237186724941510842704961554950379550152873822486053846067672039287586862626169843822805601587578668309251223040159989753848922836009598075215949025807471715773537480669005001534985359036976722971043715921098469391204905426246339608550824918232865843934026293826856371525962389474471783369996618020115478824991332365221595665340485701123258277081886215013071577934600274395168927524355182396240839150123473924668651002227673515415339817443806293681884318702195394674578806838733045026699348204740930850952940088706951818632548354824966260706650249956468194106470407122731100421544185549123163407340196180907498723670338997499343924399165880651283667905641695736521605028224488521757361133174294735635774830847833098492957430573060450412840297114897365523337025293332859341544883137400581072624246477515535611897734274294259684019406813333814161074909164044307805277729770093827687366826928083628346772591003284128128935787611886533037994391571099173130876841482981473167438924150708123330466386665268851715228773495808650709021102713080114880705251086164181615255674817104786219400105612800134647100048960081618136339861314375953783573446347009738022397066733317884712174216623797833950508494584056480430059112018417300502241962981137643255508625993667297921212396833626254330792019745755537985778603339936113973147973585880467482663190555031714751074082657545538452600524391171639479854543854640477445274442320820115805894011041094538330920475598313012780340587673381134517847042396208849358293399476294892749263076151959475808635230500390635269755089737196321432027975808869585297731621983594425668946663498655664182852784053071039460383705531953070578143320616548372087637305421510498196398231622394615554016244819227488988991548181616101412911142233274248071051202784972384904402642968076980344031601013659880856422960754069569557133508005356595188841456265319836545998149354703533396578804947612732090048553113590869747145353689015718969841577548117779410760419019145652728884040518827950849008264536013242915228888937975199955998596828893608911271091030997306757062186597296734639843061928429550429210546691609154182803517832368415521818655679634071112430643855154156248975176397718812620984087360982992383637303027505941877062626357378481368868368293339698892774446869696629499689660276916003698605968904718417160001971841236265199793012787419139272279869802272459522940152432208404817539812400825763713606703033447765411404274369962054125145048270021051517411890882549260977472146205536677900755200879989232346535925261273772769545671215444999501484526854325974087574445023559503175888094678670624279504968122317381953193469955615100420921536083260321530691857272259929860039539254734318064647706444154409630859833209894281173897950682749552487066282732805364792474107235461194594426537978749869795964322144950143520616632736083387789574626900889609416213734426382002676575339103418924761056359888170083539644955852192240769813052521731950132374196453428976165813540733130263030285478022485192552078323237454832679632890712562747524612292929641409424850290594741557599275124250850699663473537642940738391820741909162541609728445916256144727217059082938576767130454384335990826160862846719632875160286080403534720853621937494941366551991508536892373512748507429481445196541693822917931530918037820472872238945587726485845658358368883541761056472125564386401518568769577988275174222434711115526234369721170763345046653272476633423782119587911761578339722874708451279886599245183279164144598280214437270189462668035792333375174806410499318521884550682118360856897563251181387504609424195574432639719843107892775247235667228839552735523606622598788598539632877284454683694923676064844122735368292191324554704074421666820674612656707964301200553515990474170854616373362027038659522738064231262187406268909039981671086150219582650064497781735731850521577151608476313142971006824824913916249289255612638476738621823334522830285701381554374765057846569058839482531341998139629573625019198571058084667923649110592908805506833821771837094406269993826919706824470532005794540835186100366116156094508242398650419987316238383574666454521887359026121934531604858339212666377250620851905462362373373281142581664384249889798596679541759200369130045370371962753606871830137648121274105614824487959863510850054873490298447752975753493966553071505515441039093865374166652159183354997382566893264526862082359621402396340971224268268700253395582693224380599832426908453047814199149893110710157169474955576352194587457686296301838990582420127878675579693472318503074461060348391459879497794871139135462902548628222497438944743868266164360683181248859872326879107661623053800860292158338144328453224074623554187998881747238128535968382895006202252464635731610826636036431485635531605049915414413088721541443317452537321065139611973306948781391309687331861366696193940257200499308099995348219427655878113235218778124571834239764680697306979340608138301890778537922762154846640882312642981642123941745697135666153982555543529498172239014522235919257419431464218266477688866772502171232941522897844616291056628542007145388341678148913456674450692912906319135618469153315855813507648754132185945574577015648665261674662085801070023556816875810595967699890198547270641753128848749413907086642080806276944501319670197033551810041719242513644274485219781537035777096179780365547150100641818050275407358363121007584869042036045306374303438876152382898355737285260279010965811358399008202510641500684886037785145170399362693832261888230189959127100087907541662874832239445228502391848679138156920568635432170416335863703532435303860313824517889442520080485301480423264006520996296009664177693761308208068702013088347209999166455805747029726506424859031007184698953106901743228378475715367509849704348348205993122322475198548535455451980842281450746416932517417116603293266776227819083489722751003080897525205030246649351264612784890874118303858779985696639063450520022123934526686579920442386148475724289010511432888381458370014867822833301640727611403694136211573716998560584173544560803368889069252435338105397159315045259209401288682676195785113132383976361566212857648264097235668922065045948831798586410105643818698894289927631481613114119783948514389640201616144702822217564827342006461530161701567304518618437705212706257342258715062895985488617620522961688656521583778424714947986648770706732481799084249744141303077278122172757039389853107662656948276197633287446596045593501802123231361682946910516536799613149656188142307979002819702075307204137744966745306251107845657924638003827385686022458954061439361499404848428696980648326210846438074333655839868808998847151429570101451205496684289667486610186687651297313962832144102683416586035991143893180762564434460927475028253732472243963582314418661898353373236916808695029220481436237204812347239217482268429106661178494353167259238504105377931104908157295800821890410996537405229404620198482059471956546843007682203732839906146792078803130621080742887826745652227951039753018549245010806671435652203409852097171275158839048613112946667339640992434926471623122346056816004405457214628656625616892869974683821633904331762863708095828508190969741762120740550851100181533020817181367176854348727208917260674318103868754990964287428041065285744478313994874978924434353732018837509779534604400528119785269275442489632574162987942882550607639516510838711766467376638752697508837939890328835740211229563543208743741416249491051576822711741771193223294539197409213659086000047620243281888116116364492871555990829981454358403717095653052756790061038582200502577422429256977373229660938546733692944968154326056858234085073909150459231508132267678106363250595862745514892282856540694522210563558028622416764055769526032218335623963739880801424611875505460955509412272002001667329078978000709638482831244629559654502212074332643657186971345144689688892295108020016256807995121841316098330970217827686024487144336131445923206014734974814869132077424597364339492007308857482067224118479268240533045986927545897072131545841540477232222083920803632412721763116289188164339403686931713558268000635173209745052437830526334298205158572929372906514408225209314003833442860094371776965082929411189712087370784093552754759466760770073958299632583886106737450792618043306725140535211613376789603653857985032218450837234572589397448244920328733860279920420127995062845861769293493474864504649196863533839144956932935349913992245366418810063103071095056877344542309645895436141863087624149444741986669834771340530095779787207929146238962639088463929969063931016383363832131953937930428049848759627949597793364835848003784161018633174149813364342738798030257797021830886503641810622157102928202158718144562664355191289239074644949104273596927665231146956658445818114476377375235012859312659257607505565019843356775432091750690113587867161954936552029139094377173320155808072273331910017793165196815422808837057650759883759702175411773808713798533896289683026298162805530110755775897853482385481298281050149628858871823221804888260182746164487902917284184000293674697066526008628284388308813356335802435105776352859335154443801010244994217478189655318847087378155223644071454282954832131189537540818216074865979777622791023082336484361723366029171933992616788286898005789119115696128611373040422299624444564522881179747153663579146150494381217969991171955339291546798588856908281911031471838112996786565145305967981319080042218270900569304480748300834564251502360936375255638319351742703436292684023477641389903904336235185135026393009596644489877604174378603817234206079071437119444753952284355167788857090934059098426280075550024872583065055751125935389631517182606584600128932682974216179130811687821272103921757969833700705560047926599743236495254475598623484474040961714756628827532509173759154603250809601144327041198731596968007968936040759775018037409417146998188504662898263050340628173028231979912553091836280779925113306555777258958054972193754768545034660721841155705309674742472328699207294954176864890518966875077362184297915115758515906698154334699735695187655323006157281995740879843326878654838770370483886796963447104488103666255295862834343848046267812214764251660197642270203629450879879092306899776262202336341177118201539905017307149399611554840371522826857799838510938400452826367576126056398439135294087394557427764849924141468582429138579177562329540201682478667600210215138266641101300421780062344321791952368617769613880500659250907025290015574994875260137231942696283769173901232800260299278068310630273490101100314067077900457927698279313684945163089509182904830296500190892833649883721439618079320874232876806864909920444950735986052895721169951904040833898408356330664385412889007147543866567070850184695379003257164362715713573472251059295865110984068456897156582545572563335559457657774761802015683785236403149785380983156625318580942578510581390461546524807271983290957729580553008835764393546571457913592767466432544838454558273091398616717779959434994550317477143659796683456454234578234953022033793923089622734428667174667986556825373251453774300922372120275316938566597761078235980188630750756040836771274187145896698345702753848703603042584280212778831071351132772777499204648303734048642790225836760077390083656159122196628426903636660298543235363179945147033963949613868716717763056546091885655184434451689033462458468291241431753586574989124759556089604029215539397744642887727951622306124647793088265423574801071780915277401654871046826553570309898131083104309486675394151163167665828140370086686554764383397704275712504474922142296908062278760854440485881399571274756130190263751507387831188514410053710314183163474336751174923205317682583915034235450586022630586870277924322969161754595344045744739971171211920778991581218062470944155069472735140123455020462906778337817621419189014690880707981810067348593967972669348769652383220191082087313696579981377606214334560839130799199491618842615176620115163301336524026865060392172540343455286751808258010462905820836468110735183372975196145612252537135677118878425199402354396224247751737334535338915072628823213219610084406315154799859952158888471159978375100106259724395444290564783724282711276886130872971766745038778447060504981792632630112179328577963021341729058450693842312785744709828199036893333232252456587848649909717503202216728521499882775465830655901595843516185552054897826736135796279574933052201119161084208023699613890043993283506634518164076838998792241323064158867250047986219148727609138365553456717578454745567604129133224460955148312535361128714521074304363554789821369772009279301372617048908280393909998355740828980056130326328048784070258801908538773031881871273074613664205091087496124190176913449970774575283633978323156110356482124709035953681610393841375688337715782793829413546239162705760560227177983532110818251344199026772861049687035060733720893553086400814265991650872235972694624860483666589113039585075104744947269939264526460552266518924976453080721310935209623157608488311382603647916682468008414223588777410461155693227078879326874361283795757685381840746778209846776273672446911189165465543048479710421523977928920676389663589638356641805894421474539622623175326557972526814663117697801299371109824534052292709330039962951371443831951350573178805666396104212257787252801325283848330829972881825074988518314717684205642585248475129554534338676312935464407773405000721996838014052269594709199118955188405370077231658195210530473114914491375858791465623887194647984526528480268964713172715150104012602307121222879224688811363287433466723782055811179420272164792256537042244877632969701292769131500425202259810800999798855902356890432902314785387387240209474483853941778367943233256130938177205017343097962453249510339055541937311556781096005736046904087935062129874882405284974393964694658467774362370280141430030440166179011657976026979051136930909194130040439925056649562424683802034050894802900026376220057864055215622740155388028003468955917543127621861314760525568998950949893238347287908253998423463975791200470117076564797800856626474611921493201815268567633485843782147331176775382064248945809658200413472695716237038372077935659762005227802251822529632003253692765319844596583810375507928342527858259174564350062608434416311297019553754748518566666109082130176889791760811867452945298815710766128602140319019653862395629151313915405878496630720194218580207054805464477547695567872089601597179073617241406114197727650252901385992813531379709256036120684983888215192251813217998093335978213175107048380602194223577108994591747051824708603819575788002816155616116658533162847263728589024423372208724629332702835317492841004434726304179900869416928737222783808028826637801392053292867729280423656591256451489454928932008400609684183178390593490237620500022433912426191828329180108477069574155867364119280128349645820683311575462623391664181390619885224573436830677398361010464231646413313553235227375266445338203004095510321928897610402878825716543401817838874101554129489492109750777460955977152478691288112448292842571974688204885654909561576851286105935267802656143938335859217886735660059653009853654620642543463791062988857389831835436967921926477578037976099151997763156973019113881696777038313617431644537854570073193605219700151735410076686960130543727588160704998778936501742224661743819326919286242930106198425416346048533061312244441005381190421705295021020394928499328022918752088000318240833795363864223783182669354546763785703606403992213306997783815919525955558887819155273311550013170879490166772728426303449497471356587672814394265492052630061908000591094495621854521757908484182984669384194955881207470010603768356344103320545001615165724072012529860495889470797218342597016438475984865828098086905490367726146202153986362941637717930476272183136596809685002918031141079704311381186418491415869758498660224546492765131028727586293867040021300059517816358644077874811780652256850653071350734245894460268346208345803133921453542233875444863038607087278502777777508677629920222402710743245913400402892872090265865447356210842527192228663131418011220286876581195927271283513242150881645019120899669021973736772018155467098939927354219911627316526245069499200284852366347161921013531794460181932739607212488739815750393461817020822302795639335431676555278850293516327345947265795104011499734482377420658757303463602505161561392726898206604832108554232208407202400309137515825417460421057455961533919845890027397157437538022426415567778759307934804245360144550080463441240544089726593996633007997972592129223109419470783842041830759662553943244560963589541422566136737969285423713764749526337556977162602199226734913942723609178467619658720575970336763996591575636399342505878894376683014289164175738503388810078600218625038800881754282047678427259567196048406057121007965616492691699693920855774499424977562114141333324323795150936409664134080844752861415797124250850592580508106462051245722168848201979344115322991552482048598975130100755988479695867649524880279423231241980738873590666649649151139629244887105704564341997817437109316921664762069094056656347912220876673531620143957944457621663868466016550053394793158087747107647644547839610999272348900285145797974434466044051117604558617700843387605314800885367357021156503610454879928403753217591482018829939970865269064553815917395418408308262969421422960361926568803854599914531553195305193918345501858845493495578823746509856082129842400795180417637267312953711599532987137948096818664554688514436258350366624408525585930624414700201882122046421925917234593398961925790163177529238655519765624923716284656853893447270690882441102813258419107757550548159667543119569943978415163324068894070439266081121561861902530322071390646769773268368150661123769280024896835575713723112884258276892878231095678118996696977409489348724146614973972794941266107636940295823628303482422371763319971843239990398128493939858682724464605407169925940845181835718891094351264176846914779092252837837532395601947453490905510164233807811599663448262071415872381354203240493175757533707935096946134828527465137714683420562623632197172961999170866638304381504998872606717267657248389966739493478186405997311990052966003532994139326485263280930082210836770501971287076699002478130085130527296684406061016437823071913630704942204938341960095350999398713515879252197394280615135656431340816156888490174782485783660680040392675996290863093790311150672767194187688246283075188795068973905489798893999883626631762238054216550097343843607589214242046806810224873073877809478772352739016455743067898417558609780598011596558666081808783531930027125973791335895789733400876344311886148697683788112151087712667757231018332511139198516665079680964485325566384175831166949388592161416674567555538237860442445571263339667721462244674158690129562054565276810473636826097898649630056827907376919863156012916142569306478100698919702022653867416260304963399712736676795742895556631401488118461544582007593167883566826708991945569858024090677654274445079856845354905475878108274277202197966003820209978659519699449293354316949164917055441294482092967609251479903225889004953954995722993018062179262112407110162209578552704888605381928423608529570140657674221348313326026342177054373095357010890780730221354982636285288782655869156856346625947313258519565913846892446244583440227704967066534993872354752090977064881709000110639125571874068247047136722570921712228672111917253220469145969221561229752437455506882056173695494066627332526041370446290865446151044256007632917948614510692258879443748157789125088591113417223303156749738192086397220651352015828008698246876537375323344666978377328101114526195995886665010821688159759495666029035275833214937286435874599676476525820860555244733912117129797672981403798909728650697649203220992792404020662929795608333348370973437110383136407411648476005069852015674472277835899960842557884272473530611705160202186456818014842377128587661659119901186881409516094024580682619905112961121275457411927534638229399475349910748595614107959401047161296588915916567992554444225077969298705769705847914304011825454535611172427337139999943267212771932319339130006890262678523004204477598136728474379012867170965176478255946009076012677038666595545097404684858912713323990972933798358653508097267094853161645453079087157352995507516924250275201254820633988339034478284894862532638437039404450543436312024049568194850386290285693371915547792962898845325057659768207643446294689814524433420558044994658582375053659570536224403818429935935441506813507092057744497999051667690538020962176636560683578158732037923102676052862595077654529057952721042041385246156860576562821874755389025205785080074069337294298773746305792569937750402685661586616804076154221619388979463853633831125958244187970971954952240747959539519422976858251390076954836547899338635688061829056793407651975802467421791025033221696437760044128207799049032330812317611237997257214692833121847175212958011916642273935144376698375199845306457873664077738069965291870312319459500416451412022582697246981461488184628904987272836192381272041977916155713134479968757570339354019325461289360256544031228921782203409543443883693546040895445802479018084762970341979623021602945161124769165018600598116417274382667307289529784092440165695776572555572957613024253354790950676198191970142415166593574460395967361853255106100792443466532944181807012147646030124862963997533347247459834339008685160467240225216136263343752004066323425499308421418588260982094361574324084564710825443101883090772625857025112104655164462007203915374647393215292063379797098517074773038060536283898151196954606442017113929566885311883280626433431701717020517026485281318412516343924730717133554950605158671361101058050469783588061150722926127576939521408030298283970431417265709132950829112534317694308075468655132922242764990417404748134107636819495739774643796865183044465668398318484194824417605986382138378235313730452285949831010176224943940539018649427132324272489432022720850526670401611065492980272688629950320140783550068178326612442947337934708704036933947444883640146301430766548886919995190654063116647678194049730100375198570541672527647023085919922739984234149334998390978640343907692242729337668926604934944169471569715547059904217421925882575342592999565986426768451410612384687880654457917717504027762823606330079437584074366948131901830157091267666207989331700172020539549068640945149774097741094373452109428596847172702340645067100714287458635586867823699633907994488074376088353368203121137324451571040418642925879449637775145772351175866088174938782675387764130377951906050406476302680647426906879414474482693519539380970178496731946452891438922238632801012183431411809807504797024389919357272570527060547047281474647446208222454074714169406520696951676001055917701364897132278420170033566432055511462217933132322217119327373477715778865837696990791171131728353740193571986318244470476154481845770252344124845509681281166649709060432274718336680981167836515700468018768170956889324184407362310602566274757479697637472090635484029491734727487308120195052709637583607462545479352954234171272681981339902641902576337361165697385508744130241104699836432221001267728682180949890762368689263384417518856262832129659941213751796989052092475199878946684512057837358450431489084456881613840158803969872920098540862969471322598632313171273219428914135494323359122937242309660154616499698557962763275554577984454403223040904934659346663308857369596023285750180268502120007127142076555657726407983020729194806512936021776113609391135939353081217736284318944173962135545360500246138787960676040805316930025093441825713421613614440119152289530653007779053972003396628941794659641777983559253422287774656400034393526477351783515933055719947159812125038017559547577745951520713908433610011537904901507890705670881844574114508830512299700209969611309712189372853308359428809904927007467960128096971829283941281989605213233610705214431760149950199589535897183369078283138634236857956796563419293049769815209974528878312145973684607567476636060039687917435421385034895326295820544748769241330366118328689112778317546029127912955676007418733225542908244759673043008045896634533781987536994863350537722445159010541656658870698989013753888024327585151411858454353652987491572718865356408268327225110147009098986271677224152877689862267703698396995978281655794088825371837645374022181884118744813382879471964454937570020723469625336015922182028081797260491282924207267129800242376002246485008798898857231588422146946147491027891554652123059424861027260471269813241493814990176735748960941182680504771730131645894682345409075051861661015410701795541759759828042293862715551077779967459122466163847477146011178964858677219186104417530731906039973098127182191067244244194814711527834303920653681221424655022693020656758812764754343855734742632815492770562660066546711848765207267335654731669662177069833645835826830207766337778647489587312552194785990526293246984363824685738723284277789839925737597904038285297787397684663809624175477591483096429915528145165803728244231957520927726582693230597524612450564355755914053401429767508244334746624398583437614879389964144402514113002468869371952157830448693443840734559086690946448138235353204219253479168899801439178623237601755214594654274459179747606361665240186206188847558648738058308937960029471475549016794959042815618428725158529398298363206691979956738947880019958798034828312599253297599105020735073626602542431051328629403495541763991094763294485429044481026891525958952145732012266399103321680006863504862007357034858961061790277660718167706817936631804538237919125956198438857609518028943215796521205657611093989915496884031377549393540856953449908009012703840172626180182046673795994682954369719423257922064747097589525107002037741719426389346496757154272504046938718835727756344487694459508498638877616835505884970028685726928054212917958581319142283803871372827552868306454333148688092151697237876013755279811045966988291777962410970709137037883930450645012459886785895788637091048216529811520583322780817799156082638433465541976031504888419198608484062649003995878169329427061962297453127136532694441514636256973427524160873440269797879002146362696262012037753388367754969157208241546392424135057574943231795379554632385241993089406051134109851878055884092735591167161670187118155350582366098569193922700064682288358994486575226714800463165675219420196618307034521639282318251127783428328954142472172600810147875803021229475153440371272332167086572434181080477957841442651899778860114020271232948237623382689209641111630110322175485080943353504340776283415930030005339134180446423526240038073951095137011158509534732482237438035089352893521658778097600325712128354195312255082041269876035418900771365110860471819410808843111074253639171389881359753193233465157986477504684575869893919631188241144154303570400082640126777953841106665096407904987522171722641564904349596267065632899045783760113685132624683460213484557564626077735218836021662216832732675246600907786809348433879198156466120824848678050644296958460210293045372463348760259962242700993707358710745996846332376105029378740807906736268831432224002634254183494649749433787642510786294049435597088950968013376240248190955811349132979136137997670206146980435014907067331506378762402066239070271832790480285148295606115474069599725619492966830210211930502506226826388089654062984556197933891284197588113582007257435616857677236659365775185363740768701008248672732582705594735875949915271835476599156303913785716729854404027517173882658738499177463098812776933411133364070227666786105071688504509241776817981250769109509091441158337030312240850672305458124543727125939201379371298950497688964104658348507481945401185770235917246901296651148215007434229928281222799787375669920071296284554728348592496576820307884679506470219473098014949774430994977910414662850090667009042196029866331103011001113278230180588984555896639346087537285190743600228423038962151716195641806562700099995601348969285573932626572516364002040799847141233603888674683408729576146976265971507573970514521674038808385420153198494093562083494180844821651843907186454857935411988652622403271917749385275782250382269359705400549454563248668816693702136705498488652755267963759254295311527394338996216801552906883513703290248458258150712763600548356859654294106517041963038966990987130227585345904165117509748613302711360435317037171841680987314181958503156487077214947885462800392627751845665043091260341422184230421013314028569150289035417750909654228140833298247325956328247018868131890697734122400982457204778102124425786794196217970824549471516573880791213055942557982936591018592952145889198973641057489089488774613063868425977564232526863463439677983839121192848155904632572684429806903801848937387866267760146675569302143175290992680576999578973176289166009235193383288594182243444483733745857062267504976827361392921256590388559093917896293628679219569856722077114516768711517036384009901803018928779566852973917705416096145306993759159622783391711279810129843002774890935874894539811735338157684613950841856380458329867284936286928780127547239866389241352820450578035388536484709732754492568009427559651602910345775124513594193215268950901454459524169611369806470811023153333882766622987028410072488660528760375404302185784296422316353133503406804027844414752008268900378635478415653636895673116883950433545631780101661551036438448861498271395607957291390579008646612982441522813477864422645334901586371744886261087774283733758627720819683069638318058811078938957283767783011869997008943365606245718983815017674655124808934944770008373453061948200224387252360495475711739466291361825244605762600948866902565813293113506744377932320250380205435018529949807781052599853044887550724931255065100388571908248547838993266028603373935687364455746756966011919160143880775298766439451357947607144709888932776605307411631153013911049232821931105880973670474323440589088285640026797594353464274210784149061540929624083387910815657899094988157126902366200432802152895896157752220606214579882840491823383657351254312693680379872686847552369200777721381179649240036159023457700349411534068335573824873913135391914758158527625413375899842036188795513807317346224477123585367279053008355143691747085161009147544822406092245575761039860966356788289455003336043337208465567251648946232727869309895094558630983011437878258832122990671329181939765220257245584008140241309321334209506896941907787020261535758021821051232908135283195091572599255500671987968751463023457131529536331288669612988751046150859356338391507026224045056795116886946051109466276723760723750528845553323504747748998015828804575300504609169021596452383038262921063032258517321567528089135848835485487124126532742471657522015793560433819846488377660552702655267847083560102435686088326611788097703136061377909360911308723407720961810239015785329203547127196910567479470441464331213143956096751662611289444050366388193402864204850380728609879198298048731334990048455219406573465415553780146623057839211851143279665124261860447837066569424651096974621110662557267176417196320000606794615444473830095878493631232523528518998571980916000681419191861683890151812480464347190128400070704117380054024841599367102849240755930396348724030137535199115751180444162615222008808978968333324522000440429731261225161765569424603020753595893240208528924924352707396565138857291831649476344881044603214390876483265516729876219997368370945854939343383325884620594015729844642978627786282332906904492327659329244991240461338339690152475856010196827612372034305510897923175286777387820132668450988071802682039220280484921574342425680467306971771218734560857152035670621700838936982753619171973710794073999060368395206127922854971386002256544673985627696756447769925630094957092701311919298249557757637508594236914490683476345460439443713186795630258838268179289757907386757743819735208131268068528419443653155109713356812574828346979017890143182775261808833136399736028295990100005197243770152558648191061236176764114583236934795506473752503406099278972307195082778497001196031316247555100872885217381291856087677478561960638935124092507858062866821553712362464896932592034892191306713471710997703373628959597835095325235982712896491987110448156130108291858127392922110179269486428196832862469292108464389599692881655076958228987337238615783294284880756219323095740630838089146283641381169292290832336756904067876535761639617542666459380243601974719954034836508568871288552924293518679946556844513208663020748995316987888798390898954565467592320605819226177883766122253354733863709677295930239911805566228092649500449877527733462521733263893894949146540382124321807361584536114046021555259753667202239198810502846810737704377232931215975362275051572387645294363483879135289887879058215501111042335845183102276113343358047897141497715251577898482989361644918289793177903264672287494186754532691836408798282666191059531425286630926707017324059507062273866705792873388271849518797606853228061480881864659328799427797461245295409526712496904410461310739091921123969406835184469699304716866174240505192229767529852966848673483681162576635255457522440318439224623325561652251410423592327320188833636089013605047263374962058237061848468952998652674663630219587161369367867248353561099403738139969890044051538895903910328279457281511397587762747445318429305366136379516981727460520885464692320417591143500135039507534848961569249509002075560557543841702901460781818699249239391194382411002570518213882300980354585878116400455303112771792666147437748373662374602020735384034823096876778936230561678938067317856631371635387047158740172890527249125208271689304373982296588377632265870582768134735329947863858277438165477936098561315677934180002014758042455937737830360395631349135763401350303484073992757865953439127551602075308652365385274503788859712486671650039877419265374145011160495071001864930153582757306955302684228758483403210477930534852209549079257356397702757373204550799101581843679809773130351644989780684770092412465890171794998639015234524231446407331462397045474526050430187421299438212570644915073546929709320638029037759118818739015791038279468492628606493557705792753569998447487845448455800506346031019432771827220312508097750299519197688024658963981141533713506843610011310996298251092340076886268173814285820414110607895701149506894308627965260288795353976116845807304352996562712209219685525228849169734490752782340903793436643175688240831929497835431473144939914844944463428965717965533285040094675939963594990733864266562187481072632478724304062904946792025384859153980266086302820683710681925863675616167488300314934301281052995998880618862997236896416520456806077951010091774657308145469192581327312967302559205871656588042033913153974415917287194875701426222147192789110660275076128944273224291366994665927065725104193631023859817549079869943892438890089393463412138281362194718079811145030002043390157920439312553995192226090889997125630923302714291250144039818705004202596087808708135868664901772444736952194467034906502238409693051825939968039421038583216016400769477891924212148954359374400999379643728561303628943116743708946744737971676182086415931683561842400484542707621856066439597880214216431665190096072817460641376846555288918618196034882585207484555661908969318905511599162690872569882176388463745955064737773914158066740766500977834149348421618440383883109376015393889363106315487134597252904837036883415016860751585799025411531953560707703814971227446960968940953052600980817492700921933267421388744897485958260981627811239347933827705619740666378971366211011150620641783273090943864210443410015684879462446967599935247049308499270573111248239759233598986452827704154827762908516503796081505783509823027587421577959779004592060888004354874347352982814703676657845392604783416704594176917489468082537728362160668568691135194523833890891891110912798514587414076502852590672091111527992591421284355439757589985220717590994624144692846326862634021582660249829211586948010765766605491619087786452758667194236834434314341938123350021289777131425000529224971673107771001716851188822998892084729467521062242455347160799120832204726268215968866450816735096164393399244775114623696703082302094264625367491347034074245876652408826191033625198046411371161227393497964475670145458128842701067719626329369178482286279120561849828090900732388615464457885782858409709604774411265916188951776629166252716872171876251651363170897961764648430969865502038327499036901395661677245334777359428410507910768933523879355498187846781230812595819765132635425639402346170289036070816642417750144015178987133940719540680368401437775382302327416865127331446717927706754152593737093421319759704093148149199488987228678226746965193156630529145957136183974955247480194339279493656351149799084354265713102019714434595201177875945803750787462518049950522139898147845950331786257848999775100918367587992192282605503802850781001785441580731247007138124481319901891828791517297480631535418402724973198667605030469892140012207784918654167062889461437398736216971466574033954035465704207132586866333627928321215614881054507326446439898380024170684921991297480094285081669435649295783434412365261698482303194094863341021660698828462310983387014189280782073748320543074954164289632481395094558993370449182618664265415081900582707235884189828099801915103517706388164396642793470437736480269578536810367986653193903768776582660850368718103572836664336505771722786667287930908099722192218881367130934805010525726415738134064117816210480678714302389166811566310728760536945753778478065058502995269117032333037167196011235234440747526812892835586828684026325716056974500194444951701806618108190644105455246621997460551083766582885812981445152674903802269567811500703052376160976160751647435839334104077980557722934775991343313672159786610550734227837116776183199485930275857261397058658470986866795339609462918867805571711368786100785500743881857106412692050966991492894227497425451085029268848939544748228630674993942734032486837449145564735830378788605984756918370045423301286627585792709510678969053335973429361420032882467148804583531441386307976265974048930871107688512323078607934245122017154558018416921640760895771328756451994313802327207500512875563762033975330060539152081158801054294431785558933982463564583104692415828661178849010046341407609499821446541460392837510247350589440734919649540370272245345722012446368700313848339842309183240249015795186593378599282947015985795919685983868598194490544129809748419955368963699635471720618181358552592623299539916937591709242861366421855846766772062305444148858262537053208245437448229030278027065751038001710881783281865145986558325871955464585253419757769782177292361207133364124028163497001437315008855271291758919608289738898020217608210487754500133361319171319762085641491481379640663040654035429084875144609304542879788815724796980056566079959438836482028316033894667904451136553073142332760578710820792676043953535466422536781850268292288474386393039583740097385870142651086344620470517584760549904572725750315085058585681974684292904170671661413318850438469807973560177710481176836641077939679436202684819117731482408997692555128826314527801264381391375696394891108464799849976779062995454495157317870080407124802833371117026427230154423913602066185340630711308281520749753719314684009710622503719592163865824282289408364927262824559605155252350591207841467076056758736733618941117427616791555301719943675684792853267322657804559329786442566694443389254568991712253772984042896325472825553367989035077223103164222255936866224029328970790077496213095713496292896492938787597564476663310010012085380491365778048694771004653842197087555332495654302279840491862319679062531769931473584528027778205886769223247796532393559859917992633825686079312971530659553948783277738880713698149746405066251751431410646697548078882506210803693030149523602476687170177830459449398213546668120189155589510932377910663974321717152861012900733351801133111413566846800791039962245315059620716207040285515702614335810300780277816502377517200967856240169078815127492674101606302319578673330966741953326317915486900877212517307235789809252253022563226541902339914103803099343538458027068033444271651927725823425369059249275644499599318933730202415613392172868821116886256585270998729060165657108807389487583616952170620956326824609039961837889787201822687023785356834418100121493461723067675286359901128088910089647377924597956882500739850238077509591298155530669248953573727641323856684678177814057638772348760403251294676471359436659413455310631406958562634633689731065163807435534312610069096745376501440519811834923531887194079939990955389289577987504772778032708466093615488559657996970259562328028461747441648263204872412829894947810298822837746185618582323346671858688349581842191943883222041292566218213616277944900410223801402421658236604363913231229544346569498272220679082328807024151373524162312274775730325612470426854433853224701279777859978351819954302148759477816076188527083820208483499747127552820257969469966553819395937982896137784430079530185400369661661157628681207957971615356066202735762672471209934826291145872585661003020261654600684814387146083727979259614599323921101703973376987349543904745166541954737744116188091670072852497347235348009245947369144102322834363438410372077100134620579466406707530982408555035768869970078481436755104015453365221491888383202132791737495225085910409412646261587266461619176963173314166337444938488514859513586790187007958173647585040709656344453006310865134015456864546098577937682284642303310173279927121446955531396650548172764019726579062195388132535096325094744598989108785901696922581986048732516163148722533208681152503877839030921096397314087014632627748736199925160369035164018132286384101577891383454820869539491141654192122441037258823537352832966225404053959955125418804695534701692796581808422169114677949577090318147199522420048905885593746441615349093468210952738190692493401258540162129838882360671129904727853825109322126760086356788729911106064744385406313070269157932911471683574893086073417620348424225579743251001003864368816055246682773280148166978734963320996341723779237883035166054871671792874001119144726245671247002497622458224027397707027023503237712416913149130844802726400994497259572092359302306992730005224907365141977781182720305259060505366479310184870828397624359765410245471902129646244072187868542913071991156022134359810926127809924492988353214211516880443052422313351720366875910920612181715721501323049150385243127601602678071027790598783630284909951332333256554242832331269708260482841091164629355307970134715999285642688988970076744233464896500451148248944884381190520316202395612515508011429345593840225890445235491606770575264177519736090440204483367881891568970277893660449983167550333460997434539066796812379833136398445862204918269859801850628083650581758563282867239702164703792611575436878345664046590607888585936157260733764794736283941894928357605048336449401134986549120821004813255068375628197025686969954918762197639720450279004466756395119376131560064544864855250749799420850028954444995335745046836622766872082483164135994803070601611822309156175259528490028995293428737617351026742418815937159948909697922257721440139091272246178883874360805196751530314791141433573207365859049304277337984471291954446454304400959751830974182337618633781152912801517866360090164769745449589573231467955499389337513949564362601454959264673734721602188531326544686008853720772213452751031059526253071110235537885691649959116922083888770780517354383985678670150963780886864757576698253235404424542840088268747777032853826199762542581992934205912179778082778705118584523089729856387686511275072763410035994146601222794895749559203609946037804848385525959910817123628274420401784980211031762787788750303630226361609766675801060395554799787456998157973342339974244475884531393345366459175525813475504634426716109489081799689592267046440216917680510059071844735263123541644248647774387877651738534789750140252040693299113532556148136043532968312928991295356152904027591317677341277704636530852213257548630793354788299638340699937151542249438088240647332631233504613882159479516917592545098480979110892331137789539664074608345730097651170607524143628834660918003849063569268532964005516535997857913060664047455719084866250414627633572044250876603320764120027683714720258395775725483081763522817065775941532708326625539109689730585045622593689849897562270215826526528062002518441648981919690955821207898972671764613380083956648772201932046367188172395470493020927986610411846957048684700496386412595306737666603894217618938754237522401874581597228442522907977372292551018088673990839885492144913863562538863789161591888424051299819365171369259169577919988494941497711519431575582630705994857586353474963975685597038626780540072008974502527051939796981252968831191645904520975630528337309486023832962721322569007376753391116829471981277057426243752213758250320087363753204645000573891793465923557708362204145285013907946406724667360182753798544781407692125608569448105416619567526475074523902545170531094066263668247457573460704065275753577743201023913341138135775033225611439009760994695213981770284146108841360856591839329939313580819527070692709276077217177790987638546344602405169049949774757748287300933978940641473694571985048299051348428670709915093304457966391953558914780109443450982701736772409790494805928838465752690821406840936752248884246612560526950978010126057728228735993798499770457317611758694198467474290486401231996744622268636332600764110702934889723601262149845968416031874245315843520548918590453569419644606333798849315311695475836111574976677407031544805789781705045731922588154943114390257934504998955003727042361826456804158997001369770936461843182966606907313547636451203468088044854463947988105468098496701317954942866813882765844465058517977123681426745854755713822907266346031643813750146542919453599343608206282790725318865751797342457466122502744301909224296277693665315871680944424278624984074946655635268045027684357821136273406943561642515379232246664582371079321459044461110922107039760456510101286976059355657979972303939386839617991898691799159386947086324241601016103098873785439567731482972348965947671427213412840043762106602005505662023339519575586451283024177142823715776932876797845227571042372817246844546162244727036661864054672492501446712045654783572692144705387980542744365066549190036978523007037200614183725711309111681021722867212589594857460043532950331146957965649006244622695391251125286803782637520834620109193920529940673531650175837826327641004899446489071950821478410208366699644155548997311854445953123278819884351936466907561917443638748986263627650302720686092518809723608847938016252950392255210283185911952095216030879709223063182430490513612517852667830989648407626187112119385645233258801563584566325681536597414006351665385278330279933276181873164292843436635161566325528087740547669670001881483129926494975606174499455604840565169206606294419074711647405755619551834538740640464663446523332035103778447675885666660901728752098224471156450455672431109195734666267791950351111912484914064555435257725496566392678522191762385475381971083198322848394692229495373749317257755425809647949858910268635945357613551466037513914968451229674554784247177930607499992487150391737113310598418240045774257591786671219505174289611967389888904579312607783631612978256941136845078884344497866404495895781779775376331750386865692143284565907638770350854549228817745921346447903640967193788480015659908526276175097739401643740642321537883413005026201713197591248645879230068500253381354891513199847109339798843654460482728915497107603731744512609717170621549152309355807845628392179950936649904409609156994214938711242914663120546913223860633526874046418697649751346003184289825747512025844598310398201406094846870769161838308623878910614682419728320052615038511068199058351769563236569694142362610152155381725036939198820292713685444010629436726451203334424480829528507786502235886684798729233633452675826546136476448809927763316550213007449452989543396175266117490169121300581095542449122673852851223438369598397804839752464510120588267428306399960890765573443634480149048829835718981640964510119289853987608822969226435420824456841236875233258977838524384542275920567609260795846727938663976401333752981741038008397136698750179251888900509616272530290638512244815629473486671807921675743950233541879714637034135950706887960310150164644742239232867292371725653842901470659068867294069484254271590520534093390143210813138545825970434858093148550633941870543754820191702268823175109013294136171877005809113345796164220301259802204310738296686490703750445386844284408790945807138389620954492075996155366557130684404695271299487830971345078827572484489989734970396224651104987770041793712631986655042482645042713229161230932461641353303916768945148358569270216603190656899930352729669425409329858504714285408386710889273443108736345700269111924324963772982294009440207520246620664473839172044257548340145394080354627340999096406907207562290737468413119858657879885591425214708035178496735893693353500754467232461312525826870463756343964639059479070392896125976486670569071815846029936042856641652378271137607745621090317980865717319993431281796912942962045569520124331544608359576565078324467211258500776099689071429906214637225018370319985169220050813910205378983915622992500646873567979540662782950224745926656176868862932116256560500845429455903291737200982085881735374687831820644702268612764976090634339415664902642621944959997262787988742068653774840012402712025274733443616681302272047545870270464098643467573641494455604018046902564908532516727167095127900523934217027430328861413233096169647556020183862159978723609621227570421099687370007122579942951869630041295418877962872409327846179804864790769989057773388605583824911422831637486928785381481431462242839849623378557735086051101050926129323099492474189267513161881862075325740386848069649046982799912216113866566382032601913596840251564924790644398333003180789523696165184056141033843479937617818210047435190907065480640320569117166432209921547124046169424710431522220510488536638270472083522207228179230772437862146298606683003944318403189711959387588071981150483977508624928452053766099357035113846959784295954406485751505062084971228123360639541480452318303759039230419312935804702532239639115127937593601514087053514606298995194074575535488686198226932469553821021947202124884904426365539530539435330040506133599683201666987947720795258669143318990921186522605849608814962683654672349840481438109431985740368377466370936580637339294587946644516826114833345980894813230142344973630008177003029015416740179574436162018422076053577654231628456427644093755689715537872869598722457407255862889162754227400139392489093720555456160784241539561883999055824797402970741478814357270791492210435577454609349005737681596828196801977159064579660575494254181445329924798199665711964551885655656812151334909804658037684761826601373717568372741306170464438082924391653713296382616530723106068233388999951025530732744120942699413792011010466320874971541058744582611599590687724094286978759462694298805477860776458005229407570308406385160436059312555658553312311655463865541030072699344773118169078662801195532248099561712788155639351901256077112884694732263635778302596564232697384744696747938171918349844120102842351921959479411888645207796023134306321717435406924886237588135079501301954212568538960669312542793294445046041439975110593068307589866631208970917867381443106267328572913524733573733413996498162256056419741787984415602133012302960042148911478485752643862518142961913689838222749415586395787408237809038341408792976445118888023372009886401223617417643050637038107692783411890172940132946238563930853153224422276881857172889388516865007590484415709736636539394113814143300708417983117234397432128982693088281790845460835227616883923670670181937790638751868898267898592612248770725537077468090917381219556815424678175824986359084577528221087337094710053447043162645326509875418704826040850494328944967115115564045037599221831531506218941768079740040267805916373594923058021891056162459013019130734230922011877489054176347523478720509575083012458009760894490201422832151708178638297151787541023277937785407268363951803722727399072461328116672620238536295804476874489455893556129416678771151444595215072801124528978389889243980579261133951171633727247632203561341376655493609107607754288639415375091128355095389101756992734810580205244749886065694140688059815714553496102116404129920711915738223964968790061577179595751167559084819296904355934449028936964861900866118483640844547092298808201869643501024165892806728934618921288399805886754723382266287467489827600721396917908199418072364514382989430173553032251147891184679935694376925654535114088246264417878175405852046275209119455171507153223229003178378639299726457950413622430738874742958842038653796300887828497491015367140448727060522398327465443452935652807696047722150302406032996082014428740664630902436955822017514819021276959194854806500251596627667211562658270387072145811474469794369850676576882350350632790855260275245784521393118971219595602227780105217056312396344461127002125867235737090090246740694925766696530479737142762657053595744879087619929979754915470956745686626669331781602694992456378613345040128648268256454678144257343138486006682679767270827808689640327625941678840571459411480462916488128520010261056198452785431676734301941800287392809461519481854686631099079515044881336501254612214135427912283913036947262589780027331680030312219807922272339302333969902493238136301781213601131368310388677339001225252410376288392001146874739783019681516234484584417084711540563067122150252400600956684502099654423577855478800658445306335458651974851727110468692370821037423834451621446359164268326469767485119161178393419514216263434572806939369671644034523111798133136747255810302330033564709193131184154932715418721453955008962151995577648095322472817056846283525646275430576200001721499028964513843833117116585841776451061858250821047245469890855260571543347364077660598021844622302303576492869835354772286691167255092926423495359112977808670676400914176047251101842295428946972427193139578251117713736466128861099385961544636685556640632424096551152712448740813863395840329068301663750515937889447003244679444205006232380567807586140516179491567587848547537980361332045886720131374684222777393383010159278738266403520793857372733187872211600697886849105688767373546820717934420516918691207339060230403595314402484827552498849668639056151812913549133306891980509583195474524347688558773831041434453993397826437905600793257790326877238933597040892906379862359132688276912048235322685331113094927661454578911147071816782987954873977966493933404999580445111442637878055006181201942856580115116049659751470936084824478407151016568819151547630853708991777495003154677919940554302384555684329587122807033930365508052035902690222574326941773378330207785088164599774998435514703041899310927886362855595498666452151460832243270293986535471171461120978644646443256180023520004864169280901251955587967777071201415854032429272796513998214262542785238361824897440083764657199183395660336509497078523288974588149334773099486397383182019324468791919227598192870591900590754067357185234811868346434778505415782822449079858408700586120528447163358777233043808270913739688950568455535232618221110237312713688142058398385474704900053609386576177773048783078559721753881861727200525683687300867217691544126287754950323922211648722178615226209112425923774670550161255823546154420874458421496477602559572740291847164531588852588278842868558894965084270394298993544274755784884092534243675964612654381092025562998205154148019374700480357966774587410088413181187258238578544848881668277133032050914804990270633866946909935124879227100509277461414952914626105176485990692992381759902441618794970235657180951442585499576517929621056744600221413367375480798603596959468569833797726728528759250604441846435778240362377667029872832370604527442555068151809555888683589147533045701169217308190413682196197924446042649934384845273237461911371108244643350169480155025328418462873349226613456894413900247066335547078814160548567966865643266981303178362164646588208300503644548129228849644616410125023757682821894551184580595732090939462064867750938024379128960180082794047481742206332791471284209513701056194327176292868579090949321805556897906628628915473754867319869373846641958561889977082799001692464942519034737770398863014920111835283723279199650777155816340617619698407222318678270123540349943842916855650515174383773539203225611599297568796557485637139984984188981872386344774773551501353507919108180826989536012524782547043214097784693232943801472551258437608609981460219969863154847357629208099670223123077999976689261493709481313117612672502902025112501769538583175793324823747587160195989309689954294571523802778922356850487641824139102326914916557444484512460830514578741750738717674417355110130764553789788752222185205861330107591272012841581609901291829118566671573929980929179914916100046603332922577608675656663596534181854225605988431844272181094231810906310605967733278403950596066977210277736141182720643429853844246587728471851788363375281932542583005499614614837350414191861619862910670638791195176205055641054814853078236437201653999652095042389041167497643602902434195676224468514208945656803232777781828040235317172716161384745264342561703004038807168888842147579572813241630693977190486932101774849343952208897797746064132160659123542873066349856495138429915119375415682688046403440740031916487524228128990849604910887524818976629544394637536219830608530266297677622972823708841064030679839570455079864255624132956970690312606937272270497385849063548119466535336602643153554561276200224543650140928707010384502494229968246989481931106380584896383496684231546895857394178100478027431024343617063937322667141404764505532068525452777271337995989719129335109533521837623781448282123898331839226954036294419444779393386294782085653916027686547422160219745416250347948657330874869636214605079665721155856826471256401983236872218016273702740854612331531487465319393626134387278498409826789986196912202669754590120334748717152720342378485320199773941089399183239935343608383194483504071701605001971940795569291694412482684602905546024805566374925676902358565496305630549909473833868200225327275101476538201571896891764386176038466914712705020901016679314353889817992613894958205684315254271733398458496778421955422849693775382141987539836280415138532709515070677831761849268674924518788782565238807875593398741899239410646608428415951768002918996744604562347684174628436149052409961460913299078250776717299487379930049706095219029159187881565502948692499482638863968238495608685005799920812591698095762500632522742977572235324464631299191602952782838780863743794848781600798669184494495203389091181996840014360193709330547221904717861619952110929112791700197667202021639669184222413495352640541503434784937300948107500099230370915388201550820033012007604036740047502823812172353310546983710100965755488116614281741971422411114653964940881068713531679967489742793722635135810389988254516055367251021364169290032107312234300723995569142252464301262735666817822859016903399525588647085175428439793423274925339989258403923207983599325215743584252303743666138993863200080064574750880709379984627470966570809436929936107002734538156848014398180022649796165498392424721495385516649061338869947944876407062566016055171789113105157898124840674415404386343218080496035776369336965075024967546596535171500859975076400045595426370119626833504239694093247325407321746536577121897863354556824170391037818242656724415781843849453825620349781174947104658950823214082047820539992217083096379247191435705268927378829630172045984163967659793992468451202167315575940610850110840150149395848132431432648317063835229338983573286296250064539653232340901663455349761453977754354551018002272987816661057242312430623503991266927255939838704468224405690217527208905973140317194993937576065170443081784358468902322640906702558256315652710399198787449960056696531169420178903331930791287640450024529260777573554483085149912160462604079663570042929414152107851793951248929311310872340368754933321199716941558224225323452699165148427080749649824320910870913027192207360528239889033377648244024821643674489283893271787246301295213777584065676650342254844795273438929626352170692482957223372372605212148675590124375106886361686206848107532525519080870082393756679930005256400410568687321345774201100430212747964046267720796028868075453328446116396367029616763610612095640915903922675977256127708233691017979324027600947790504939059499035509762328552456920149233803895551145369453798964243907753154386610796172549357971644803446126662353804145557367642625144590571925802222930640330494317739911077459948051848434169030124710528400114530117015926417603100466879843400676366135754159381073949023384595997856649006331001925807617965927489021730881865451249156100845649219173398418493640078924253400528851274097826072818449936233443967778341643032861707465557447095887106612285979843832898882778608994982593444570625520846669336207364561329951753464990966070993431256359749029656718468035188787644371927343228496757534874380605868393873208710712341196033089306023521935023796475301514159372862118229525906701857585590486981033613106195370441077208602330006694355982298997200389420507124130963301247398988986501613446041636976412991855139856413348024401090382042098050981881637076560253542288520642504748958680899179466861171932503324823024105980558476638045521378932305723502009715574760259377207677608746814821345225316302087888239853556684084620188776333889382394005969382347555811966044053660170851554314092863357092159448116017532965834133347177302711059709051781158901708660299016051247945070243012323067026217970114151068200226813999750725832130356166794912610054201286453229800672689000948209707585410219884885295459601974730636132842969855385226523816130889665914509124886813125953536296057660319750429504118843939724705360578947986283171400396848076421190941427568120273245423319593111952395056290622611009964398948381646448745866830754857785328740819937572748521974137180942967777411722239364135603321190933440755678783811304519984514862898000608483869420621852719280187780424866808029951289703473294463170946003859512545338683557968905846517230067044888968406108630406121351552038742139284496202225754658582086698640604986554258859081455309948434938427338421786450513985427397429095857008561462561834952700228141732536765397946912752974701317006383541596544634244968352635059485344744721078056107810829649426478810025979318775639239043291785327634203752297565752743408295084547947015245260899313885783123911751269225566757288513340439769625403931174933713994495293568010603796944595685975249877267348079073267618245233552121621496802344929254288655145733756557659455570923953342814246290317278154039983415564198377180189821124760855955518999506207300714034520815503329814975070244267726436033873753973148431374070926654492295204231990073459463931199653505680733298148658411091994439462723284536771128484736224606331360285910596352371938716345986963644390685405322319315241354693248757673046338170302944798352260205181494445850496120326909233752716235513352623432072194300935881503393598974493352695787457278314039670396910017073414932531022063263016925237018012024422688492909819555117195612083815501448583657166510269086648717323819014860992469913154608200199270504730568876141893298108310235264828108102485450220875722128344134379484999727920258354341720442598469327409141782143949280179974565987369828742826826748442121371546823275112853416523703165307043258283372112371376096959399375495362232222197465961933252907404248760251381952426973910175637197534300447961782504311533150675825627353434762525391425152757047878437678852418719663462419927008025761083927497622636549001865320645499515580290839851327262732196728478302538522190479278689389538780368699318846603104363352437327154699898811186443670114028426202615047388235899747281493343257065474637022451887289061255030273791902640396577417606898976983456646470520471635921448307099584306471727507633718020714597445652514188505037163773818902969685284409258193174410055576089850292327101600898257223817394543698529654769490187384046465643730713195901140761317428220388331360297085261451234907307147624534050245423763666685575740120604059886955630114415443141696986074032207886003132790553917869674163555240250767653085632242737847149746037784064609346812991871902892759763070159840887781745192690147691030030234979458511000180886606216286801110915116104098327308808995433755118718317378655877648735885449036687907416918253831330636233820582015488544982788382174243758054923815972964061963105821516709190326318730933813850113091332770930342511221097215505610491387050426219805260247611607505971037943664771529353491718612506611636738330499564878779365697911293195878277774060107533372432790009732407256070388800871137309659634457096041175089444791191621745516970964844762046174128154536128422601551301589525862806957063924443547802390516861338549861926656762276035823498556919224890690116459866096156795541549215758128354092025393170807378146507883203526651345707065536856992811242656708448017786461497404549211843122762184522441088471507570190883495022437569885049454241057266246094583209596257287203099477654010739855806996619801953450050651450105492401886108913417306075923843946124656986160560909454177290736400939132195676836433329961999796542434802656940683698670617587413167650506027135882574433707216458819522613397054520523441280923173065051989954502858538352287378728698291727580782420982610606090150925211090898996438929786294301411140067628774992078172379474620916899838961894863077306027491026703883943352474243421236712177024610116024061118571687050824404916238943435047025081364915515510432725074794102473747819226520593355136255301812196424992488212992601774080103719884212547447216029695002774268507752175866917993801362584224173985607669916543275706123045286728070763189470589544061884213157138003398487408680941446184585423034495144852105399124893245548665930533558457827714423774338533920824127763216596753832665064306388069556915620262225946941429007998769834420914699989795683266709041413980686333251565256968787899225743279613964370265431446393337990008198575307978817613374360948392830223380327973203865364624249805511402246922647893159294491804038298364903488863869756441485560856053717722873714822823686427811365720394749690693723991561003682807514117847378256221277599591677581403853298688851365523231393843174225853562807019154400776301634764778126132438024842186566985527400764105119010954528983825634840704558080905221476972204287382202064451116558020215813722046634766333517561799050089778088560093208145417644390323524193973154721892092020247427040585791354379260097680763629875661478264433892612121345659445680104222761652418376401867345339148807900136360352843217478040168314672618806793649304686587364631148328269804920227876255454017850917749772829467569293545166609864194814583644478909603830458285369895608066566619036031004530472002422639388157206867469006192987308224849001681634892125543375444758038873615865885924859755874278385999295417099172251153402542222969223436617778192965331349674775722097843019381844505985075080564948318967922058343414789051025761749099758200123472441028507941231843760147142137829511021873589939170816868055988133546991379453783137711413549197124346581093112783326621759222758936993477049843525192107351757370200545734513058731322143846208760277518405348937132376629071120552694905300388822804204808210851928761076772814548927944032272362841247943192644192430796813703829482005869742015013235319872051992035387731421588221148597431823879098919932539341503787689959695804327251777689866125889395442013917130641886295106652689606241452084480340347411331488004313864731715844681575483653167051260174664076072809596721327294224536104266792809469773583638349822811476691695969557327702827912099792608638170176542101511158110926832874859506462623629925924969437818222916923432548536160415251420636925214774598094198892681477644390537611191746302607417041449224194980017062386681694660798924751697185000942874444662410058638035586306506360957270979734930709648890760630190792334617019745665624871288498673826785462689451209462290548275423302517321328278531651758693405411184571510483463283200810115252541311936795456126121610319742783210387954825391743140987706525700603767196838304786929100326748344206684066735150885860916629765722779969260038682733496418758332118080916861851713459115685089314940448199610725023378967798991887258268670537757435124650813798628134835066431324662709245236546983517407042651369882414330883552631945475425324845884093993784631867338133661031005811464551518773050141308156660180611322683529639711462401049831484646043952006163735425846982605212545385915053646201416593061524137743303724644103975985001568921027909378678603185176724046959915723405290038167607242477016978152148615194746270546142211256912722538159050203958305146858500360242005490945502682618509587542621097399132209502954895828917423298134315406925757058801573654535178927415271289413143182694769025888547865991968988359990438854227484694731187519748877121501915919088858132637699812159080896918233505907971487461333680397063500369555394225907345369332638969616238425410479462948379374638132461240825306902691465021517196552425678847127229752667920280384129661575021846811088693939925268794395032672870087581886104930085975019692809520482375713894543884424162175662637351803364327740173412594274558202675440278812140928688041203000227063180825931867664814904472579944670459423828111487861177124712994023435319347638977894844625604174547802052955308150254298015709039238214721457480550269684443809603801644372619530044039908184265874879532636017477343963474133302927558182000846488609818329170786212437034594042815016041477058185644132223188779392163988961273699240022516053512829372365573731931938983417538439708309035853330857183693113650370081905654504329842209938149004544540044861822140550605287168313414262789644169533398029687951753666784755096725673907734718169339975900118989111396246520616071885649119266426940160695906161044378014986669982843324652576088257101089919591111808350303650797428123070939519840254801694462620592363635107199014815677440001231307254102560560159316840532816997339070715372088090132654154084084869464851337622748284991612747470532225505791833719782998021737591424344714866343808459910139255494465966742373011912156910484733069805081712972731380662922967849316570700310830556788979123298130375103174678340112081353091466073367511876218722324789683703827950123954449539675885373844664134720247001588520176131215481437213347926567224469179562586330030699458362891038126489523388807638438188092118073979276831412308688094691717655267197134112902715814675294427625213295015430115336903892213841013378832753935920209051942093938979412893807659530870273550773042219114300432566846240722890340217115127316890533946785187382278485158224704841277392682805651726037644584400682846673735448259249691621423903388931811701138913150192228541073818145229259218514857525247618384807758382986666755676288831008601526358935863571274217772895154458312934709800847178289672734129037076071597089783899342792625573818895631940507275208732599945654560858685535826313370849340641393491374917907721822853116009498270366792789235878843160849183895336236157657683342228959270239391538681195815299606645208188618438969720018935678548949422165123610171847376046060382961644273311730402586998521537216477536320660720612329293239624078004742806780812454299279509350514397602119291130378021703950829509906994439391195500340721574148017759229971932827163039713393800349267913341650891139464247966132094725089819572375049113312916698427371148958662864933613397030362471630128321007084152026276899630681896952666694405167511329378690500341200428417394295414458444754124677185087103019497637306464566186349406566159555902220388135713617682347784631098854748031416075183130544034281127035071959901420305881492321488412935694452964317031319035779377391901656912577178069851218011520363784718232894953444655146267846820263039666301990692261062324086257493667440265813971924801331606041280430940301178183953384569734777875549650522671989203980646508809876595990402683545829084048874359012102485707190569558518229964816324570157037483350716256177878402602480795436431427740975204629600770595232159378392656058476318316453946086912913902970752932457528311220631653077945599709358801910179547846822202981379496733900870993483523659252153174780914929635957680364164531574198408294970424039023534026592213525985308033243178585774060569003951749662478311461547074710152410927099019069460555923968305614807726537399849961888020452613695722308907368225836972534673293043490796231583862612634442408631410349974036550869216050046280979394259573707752242127755962792858417731369309036459436384493982339291854895536764735608789899719778070386620927463185198508519268526245382587024957380501099381632387082022856447402189035037020515868245711255202315308780901619437053871768164482939449118658976812285822828630588986102960528325443860452415988790437047737737136850213539382265394902342171088978371005174981759702068682570272597123999047773133208906742112120082183986777870565629424693820042378134913066630287587520925647732731674636966474625706120034671564090347896314818682134598061272968256545576749859197286737975381067421738580194869393292329785455610079000547253305167081854955082957331645303896672805738782805825883386743956721320161223642719023999031850697809484729803770517200091305626967205284316649649046311031340090378152174924340671446624526247884447970326708092047966021525362297779841303529182491667754733386109757717520892570062709539841927672468102127146446516361829038678557363550700118367241542895404774834328434837475643045274450680844294328800326353481326604760172142269400349628563970257256283718828008954760238666306549747045349843766403859894645814480531950919925945149823361365390441231674071296632618704241988407865603468894409807356511171908841621313370383284752715801402333740874605509019733708360472009020165095766376037863721883200386390086318700252115943278393284792647056206906139403648830945520239437276001155644876784475408356160399848851377292303432353009793967833698300912777997949717046285314100435349333822674849658177523531271960159061728284621371401030533439202703451301949107034461745657717921913241437364969396904896573282575669132764531083445687159449900509202240475799421485141392454572532607827164713056995813723489622724101513581463393598573917624057344627157841431895806876744880080349010473159581907241464172911598289697025937777675006732038336759992089814111989857577054569008806673510534703721329348905545549720535301055732469661053806609950070275475226267638316527252791548331453619391671955103025151941717812391244827611145322188667771767341740645237899301503710421102322388477693731425534798388888374132460169484945229905107108955879321620563220851565300740795055924944597435103491904411337915663666177246177234250577135160442663034312685087965410397347392745290514055124103029836258933623583426786553204778075390909094601404380676438291147830296465182153861892014007114945518626929913247375729922061152524782916654575695663832511478672525609757827406443804607071542461773873376807193067971913031072597471709514887374746950349152024257187438661942079828728831057102815793640271463453279847349413902420822973866014373548560908029571346922653311826406796525443498999697808629347038553615700103796998646180680289328572972529014282901970405011170939604017994007727907300595740645359239166638811445976418742692009378297052256405569829948514511625396658674223630839350814877821146971451562642183972324519725639392618648161829774385324106434925254168626435227043137238046625985568603693929750779400699210927268702532645880616669225572963522442048586718120450934271666318905192624501490846006880522350944434658274022582905129503049799614016607725564487461462709786889732567210192923009824547654380086437400109757236660924137231868007744762686294526391724897026767456792734869542632962933077993830606951742589565375330331982513746697462587161719676711578595912938946419005195942311625542655890360404261172499890930640509531999646107199705169382815884249161492363960011138453259171654027649547661729565903127916495173602942136281872645926776782768960296649722476337423458853255432357319176321653972435014685762391656504338768002101569443582360863484573501025317463807091205815681879683858394510423679587670566860802659482952325594202921026887529115436922289471789836330628408977303931369921911471481628943832342429101443255465123776429921208276392973771594064139740520923053096407841631655435542402370608217818229921582821565401767669766120899144806005952990654376236361202630598895100772357556516592197145167836743551290845111362955595308758670837780019199618165568310045570228278919161302403618351641223162709045429397967412823508433094522021606266842689197180814965483076922146809272437721832739709295506752479298131156698823159331096989939122543447935774560661126904642965640740541928822647854797979744559229982135300293155312717617221863197089822353116106940684881575528948162082091816672481312890810462376990701322935328445008140894151893110987965407214618275748055858024353816151391877200444585065798479202545694411477966399229790532027713023499786440344218249616320189181180432647831115159468111481647264547761763497871308668875695297626030316668412146343026244079468697828598741839503171394290013559087722557705373858205488953169601806863232587915107058893271685942207156076389078597607765508430373190771766931455239135186223631142711608544580408475000247998758230058708826549146220787267268063637453759806741647944848149738923875472845934387527928676644327256479556156983137246251045428885007334895130250436750092419290343543601085669208294261850388397292138035920978526334813384995927253013258210860871562799411912242653301351854683014758836172716488218149835028778855753965978890610683222861861952982764025772256605724744655934032528658160143865185373616114163075572970379994466511411405407942714753778111142551339728349611528753303886443281608116519009719605585040319934565279822223428072991817130543227748759230282529480265505717408619925237062968149812420426377685988195395996847506801203170391350760070019492084836887963851424058353860689680377544207064271651941908844817749095380525810448247391349962282964378356130937457114761509358959457926535184445824407348448910093955756022910560624484561256004382122790034279070393187107523808563892113640393583540105820737115659807256303077282358517313619370779490857099847401336685002084129819112235959696822259645458832143393571194834778926834588974007603069394540213572747663428486665759667909377976467681630158488167706460389706583275923630814092995503945837813851437720113532362892642037783484121359508214072712089533733168788100003420840576180389037755660267923579426458250463428582640582466470413641994747054661183354387910763314524200053780899955034741739824797089632306577880661508788209327159575654484261688320589402879672117198053728362406561189079991380288320943433112469126814143218206702353906652549656361761513240156795689103548807955825825328000037407243165059153059069416552440264422265534657082709714384284185626503226274931962958902475416534576128240935354062701440070911482095483336493865766285662502730215442597984538294819130149993816839032640802982348877414716824958784818180055520669101561370253273682398464025891880120337650092064772911586849770591281425393646332561493813809881934729589219122373029584341575051021773876002742570067130721327155850271832631656732297416556993878969323828886666047534639873633285056162548773854356883005726249740754685155054477920664951596322925802293266172296221390772547495226462179754608682099390454206571222320193765629382978088618030619528493132084967387233260394748697307938567850075940939478674254988202420415470667198240680737708036607512546417371045935695061956103385552732209810939122754665443071528565396608248218609920130748257076988534894691543197165697224766161617667065198873444896624586286251522253842901560874089954342176951754103353363403734750381964569616208605048641414584922244531855693921046091709499351230970681243367449929819627438739313209704016695375731733639240662067336606643546095104780339053198170587577123827378025247349903133500461177887772747607203425731481597071163454090918423175198274427763779402582949213724616142441229924935894614340088093891446700320346521898372728974239743797153198307296124285026965615884663944840556777668605819505314833709768685171863066764959789067888706831505251088021562700170042329256525775535714748807170330384064659421313222560288183751881800277819930167409986441062719982527455695968061642301490583712942032835260868134658206866112088199942560871923959865755990688479447989572847189711576011266352332118719974665840035802181340436535578951022409632306446703623964969102740141538402618604002521040701078265991504497189394637653897423395944478094125964467938810595401770617103493179060102858481794286927768025160634698186487615862337015251602363718178799903437959551150865145402587972642320057250444419433171201374682541907085310721520851269398466280177111026424456380791588249566743492875534221533673980070184145968906406936381641534693733580413486216823628124855196282073725171164471004843392677129047095449821771245997353794989592501819266700991923198151396872039240781317332882274061834899368915962588277943418125978223746823356556966161707037739424555386021304334936400753195339849108699633356133084982004622052379421261127386469773435298406141202933574769854283798507314230296086006458390203266832971066474859280280706222894119846852371184628817825233780181757362738656338576525114589769142517386579768133455331259610892167967599216200477777366017396981570051893055632093476805752082392470930750564865354014709692586332447535240023579514208088609935236904979271649529733073121762702277582805843309927781993804392172681117659365167746348586811523913603817239938043619137087041783245836870732687927591512421327930692493680672567164093795811543741008447431807984798184562295337831592094370585987930674314958421280917714693715998839338365967633328550845214487173498729828022872245972111003370678851957086364693267471590612320181128619220703781668982540615318307653843983956690719804851395299403331186528088123217077735132700970934377286450690552483201886405445912131117904412799490178046065119346213835182007919417118694779020864787750881187224477634397287600533491197235765406868201936808677188641543680800990685123604632696099408509903969483621715707186981568085994319275507836176310635228624435829757772397161712443900078527257874425455388265166580154504944151640169244989042683457345626173402057140117938253155396691786508532861602277977618284482128672946293714911091163510449320107800723707449634925691218904931357361767273707579489881987081480329456080270142457402799289156950749771877632590121855832116833245638324635426413663047442069533906874618048742695730825289285497755704465530725372653544909165505854490500908073608133007772880591762113407812702207157721799184691999647647655001009776601727964696655224452669933769931290031683521179052832728749544751298134025062913810954966857283877952905044288966151554228237601744913735138627397538983742878364570857778791777228294183786250926281394514140283818107124993708570349600679768563369686476720810794013433268992292032107971528543223093687838982497846997755897775841621288966611830971893956180558988873478822385862983606148281970638853766387023699719056887914200150058932781576679554126561532407775118370166626802333634507878413669795089586402858492504048493379617118032804557079693217083088711762591995943564413971495282622098711793930564122549381874381430808472755308389172693462948996786375493611546243336309926769946870192230881483903481460666095445247038837612083165142010076318337589349399962008248009986046283062432490492757335719180582605324935512741107358603022530576982049946002145986397578505832139101615820893810253664043283856221560504818745659654507487713704550258145886878709415841423636958253905004410260672794345106150247722806223509663315736125142667943414074665206353454658392226114632355783939937097026201916221347388562453983020165547146208476297265257464268723386362315313553556816636051903571895244664237586619804114480252199013025958934999070183464431270680599004325613871121045068905575067907676256305038426262251372906522565494265482732134998484160539500471824985656018473144907426919645745265811357026510716238773346883372589977864367259174115570165529248420631521873791595246448319525159806339460374218673502419803903429172882058569352678665815820119587606982523964929234891467944308478657497450836696232960790189307962445874843725174922985957167812557484233167303580613732387207900933633692574245789195386758667611341258247160307089431687496491257167276344430305543587943967279839160550213514833324054482959124012187831340304592944162129275049984501670946484953440915247183778255760029397942501489342146338675883458963870261127297794818453034442314713124407849821484673586273265362862550103973603017946321255354342329834650428782992697952507621176604162749698363594996032434957912103000462192014621172228858441330174290915199745617412214254815101274882630094697483512300721702238025163626542457316682915474442181002777612760729789236825861162066670221065842569816638217984120387841026448773556619962919187799243489762359181312079342126285808524547143180977676372136458404335992767255515876687292681898646645773718156713727127327069174460768370230278792424382140383043987812547006213796556007441290647108353130420289291215214634522567535668396813627818999544967628545917295133246231268627120730703168674086601595709916631586465223887456234496451599074979209945903431392149406798483027225457243051435304549078550468575655985031418630848348650105751244928756718289912764572460725925529643384645472945207641184438179028342584640929845681217561693893596597574042929557152915076829707802023978916969252199569167435795107281101358448780347612045865179866632782748015063649022752319205745215355728802481958656569366630546997062951144220612555045686914803274486028172682810274248864026160189341813654088170275190363279822038270382089835124557790353616534469844285133454838643525481083128499832894181729161208390713906848687892138101036796504435251204222146561436472201498942002143834420124097014662363438582726929610862525525118921290714836045667955951686533053105451019783216574176268285593469187149247242547912327152909308767435328387505631625953639199685925802257094130454164678572397376266871116228209347413738395309745385622839540124847808174876622182715157013569546601451452768614882194513411059801959086376897851029047454766574382151811345102502465128213078825731151825135732082734220695504162056314244492977578541810479961944429363946697398135936691118451577779926435064354447789078668856676365556751013302039206410994467486972380018901857712373933385189115176152917903357035783597959554448978594989542466471543277067082726518943783794806403342214337724047867869406306620720565027737002585237439345579494371757594822239484821309090539231169866409648373506830772494450468792906337053879637101170440903752038526402962570300441750898478007785474006909831594109288735871895339473582884735120247775144152864143330152376020257165466393135151695802886647315383404234437057963764866980429174989729433098371512156861929654197679087543590065885191194910142607559694653688445618809901450714928355936533286587807344656348810329886796716467813573843886039356754812673163834632608152226774336103425627990445807102437290860556394198440975135534819368989443858562953654998625886048571349208874795326091097703034650129404022860283613342235054786831175310480437887068288281500040827046669007244607660813283486164716381696784460515517616537118876351523592785897555315812735391683028019688722025518660905434784145591634664587131734675240423205137846651454848521082743372800134867245068256794125326197616598876523966888739252407998493528141270966542050697694791090919691843101757313225070643390879078608673290030639835351651598000740530826896024170370232670697644702976026046981576139529220964311841219908124432974534969714035525042861389842059873557626554353472123109964180755739430498475835897786753408277752559453469072029492901386136911719381317360164647662549743551192372319033756640399554244778394429835182877424641232791662248726116615311955651531837930374483071056491908637692464303925333281823210265162984382479889408161531526098178358205420475757423919079066108906172633363527535883672852532356699956862701830812167405280180002553689929336938678811674407772991654278804467841356200936297554569151807671331296375531481657990907293104137962847599417790724890998839946581298870509883672688417262456006546811448063717429508458798293125338228957064263555895195747921004748780099067471349081771165970278740048485584618443621880455975536139781877110016001209738065852060227467398432198019506909533162304589829176162586011360218289353059467362871285557042048740358073801752241601053644920727003135873627446547077793526648446408067183202372794201434472347416804982143532190661854299254690278390239469367565855047152011417500088637443752809863355356663053144742780108559946161239902956286531638308517479794311770261662110750667259113679565731261079068742527132102089342043068644265621908898010268788167758633391987936068177968001520738645811186433222300276066097923728491881652219262768209018854780389443560320424330725687346061737023245268043661758961997444611691103048605905531997056360086339357467682549327302610292972652219997013784745668336927819603268412053872503967733874100943023310659498597575628944088749450232447104514115759283854319043656099794417786945650590867372794050181035891330078022518367047129478583932589452033737115409652517261432458213651094928649637279067566775702907881082452198737279403819995024928527363407436172234914601313374188261577753944998175824449373817062049505167229424285374716677617880644347567422409659208038034162784725694268290229252125238485853373479136715924694997360835010090841599916137804841580776617930919159471885690996102325600636796509775882954357381862985180328592847704137243664895146145050192069446910055451753162806533052264007677708933108986747592363114249211964737983859542557785447923057506806386126902090132506307939519222133860918595065125949662111567524770317261323632703634237172046692361752729643717179484510462385604258222738205746694163997921781159413559646469298483067092014257797423800935295307642131187963032500338498464286036340724983128555939809627486824431957818590388875500902591367550437589147202605836213776664200909010705930533871909593483383302999128166144933023488324286278094503744594199622771925912129739618715920208473155346980822917945574110692956227707464682922506407698844047590191734774146649892635236134717021650665605904732803649682439836851481673729696986157231072880503086554205465345998321799681376938521879386471374152993484829918808957757606697549607425734899720499944592474776550655881309885779153221253482542661842900833581533004255332405321421248360436128192217295783844480015460029895050118238964630978560709107880102649379376565094718793225833884460889554615294626640019608389113091285689074952441099295591850870862987749246293509843054163189206518901022108368738507686044955836700884497199414711807644132023195029043987298197405881795755592494324694154799405009578634649107893595827727866007415601127758927156974669185672088046158595689739292346460865182597348098762780327357831228242397149180793499521896489149874891195446601846485979393343279816952173481047300746483125306807551970638079106679558987664530004506852433458445014194380760573215972428933294095357769028928132730950373344137444842404965267264912307457602800339029746726007190696517893056846085704862419219218955295012064993829790452218907115449969937914434089777511702614082584014441535739125752687821120477956764332887539697262447318790329525014752686425937456143548799640235550255624128656418887114956390547794276858725041127991197852527863555532605490775416372818787942166756748578561416230433638240765037880156019880957723804879880877686818853155071552135675458248621074536528904229917221564124329654859604047603401089607930001970188160340187066876734930116806762537583410194493959959751799294529013819672487642943530349403840454890206908114517035801938191590053992538549904281164432095981042972560098939829781428018158679033616012883408918242656076965727547631996722453307756635651498892403328017852909671591215592207966059200516647151130840157471985733155950814931327443860967772896845628669479813650313566094452938685876216472384194726675264827978036461664616546009384320096386651058793835840874963614197063437324407440617596395040543023084204531168926186905477455123081429286713145478724936722627140194805807208956072954026603573000165918462286944297073535927977913514154572363668056135103373594160579869350944593076459253643501294918340746568221068024329544721198860420889704487725978522293551441435958666171084057619129648024968957296336190810647342929158012492334159507279086087473472977792831022117036007855457695093136478690591301928975081368206937476624409797390608581957036947956217339092242356878719544888707655404175386489494700125053265954906591158579312704816593456876477106138345165728635656730814481072241362520297715123011521636643617555415377731353126073673845116106084151358374964999144671831238478172661278322910119023056934267889747688453059278879053490310507761425542996293875484175196399791206714877105669967322253891393223401564458501503835897166317796965033760872633416256651521685707737530402247944039875456930997611847595036302112888839234495926700379042225710280651298054546955321149537582766497186706631970791692260507908921887407617766347269293430000285444517296016471890156412069943099861693668518983340105486629594899465690353605541570293708695036832258132391740011335789122838643818662142763911201676285091701580132394079716586787519933592260677409731015117422689023963220013016501117008964085660915964199602020603998595167599336164608725161053738306083013854701146917863353802341074177249771296949823893347460978146663308890623941931970797684886220394489665218553085537196766750963598805177974726179303269128318267486205780926525652903428019088270590140546637470013833025889361601715015488868935910569440449721720211392456484749888583660011930309334050424819094808467898760038276692181719086769660182978203559920718977804292361836630667945726051889605382347287593282301195158655518017828313356583098613731652593503080582396255908286572921386547219577931224335914732375240378690825360216462948132048845739870513672463824650599873114603762253497782210301014542987511382244821367352673721070466677797424225083858464887294909600521861477477151996602465522606962127062085416878723951599782686120792232886495599471294392000996760846261445296688181911180944889919558814713799314815293295825160760107116624951556593720289303451396577612021582500179271658211474939898252164131398331629215911678786311490350370804672911346756645736776031670447118722869777749372049841155253422836893646994865992816389029333329596705023331063186454715946198921174696044074793011211416649749227696638793413605543628013565218859169191601265017034734921985779121559965545078845902800241979283614688616696872940673265794485514121029331647678050432030238929162094969940946268112688477619419298887283020453254835559564561049750752610524425580938627342063589277682844228129581464734736707362255972829437263774877683992863763234539366344505846403222027497341502487576599102151954483914148945282238326814839805199707655926889831544715769511831555106187300676856804057123078324335686278130316986843408552081541485255677208828951940358785837202454478168634608411970360599469204205022389505099905474622524732812866755075605926657023819679854436973843036347551353010142231318596659835501729091226635606839627244308404652362865284232381423499086766091580811529985673188270001310938215761913296593145799781199823426305914119833894125626021521474556185978394081691455551300017513102083825563173616215459035129106180015379921299481140928264215227003187999595833637241432647124378051975244525862986609139765363120503485519687014261642737394425538704104093401178690284831732444669643839274132175880980004949886150245568393213699722603951315999095278370145480127595279256570668760339430121291197850593657439413065417846820219003381050360714952969682719340824995408242161639655390093100714463887620313491340775627556205877748079843945811949518820071320525940334421340012436887461101510266689010672516105842324526485513982392400435721956683073657863463628471394771876051423987077753537119885446765729346358469884781033914667847854708731515042908742459239461326108929195037101182549231842072104379420062672244936264350959550337583817195105443116873279605675329829161312575435682524564650081228052263681461159753211991706603643597448082885621932267393686560625429382249006199560775333065246484430727348720887976729269681479748532637460821151712272174344612137262433632401184329188986371123475830738974105916818188166895595371823995831091589558651551079391105153715928239197272385189345950241777905515151572649757087242876794409731453020409590769173875009613264837074559534153513313449000387528031013378564419114742350224523620088655342053548595620977763485917378780621225544022592527384830776517999637382300909619759380174752578307961563233626646373083895738467111670927506441574763282421096818667021420776326837552607761110898894496467327753439014910896163618414435140276458122289605060381554653157323103591573592275891134925690093560714797768870073195410228342717487574907091871630476238872340969630253407824746509725002722414526033508279170509524408937573333123198203021541635078677826550932171378171231371611421231812440806330981536074376395026542557472387777479516037076025486348948281530335202194134646696375143271528080291002816293441826410827591952495181736937113651514537697574630355039688155770393898348715498840132387691533308860839615203879265983426272431774927686269635413106846562448434931165089668748446934710340534822954844042494454802901500871209116791765860652787248125797753474788031668900351087458568174549707049735995711339834554368894821610053715261453005639912424453996258031328022857815556753370517961433593548312607199002585111086675429079991703537006064368388657603432842134674936328479813459950952445941366688588636535801656439672455889752138057636159021484215833508687176912138457600443756081874548473053787916068543093840810194972061059938135377308743093608025437461836043691487411272220989011476728779478953951733778941126562046748007712938053458407655616163671403281364506738962178520907892224643916798604380401984876059535757297848080536465417964743416320801881522629972791753618419010572539102352610066612857938612848287211511443312174816440400561836018672863279325396928232426014000725989950970512646811985138070288116929747036513882781618018114314687279332331454315102504802737697359069296971888893454531535369515189875968892467578877943475069709594838918709199985678213907843263703165798784080761347005954231533063135629197234763111237012637437169883645699391802040236017065484741044827168499151197376191570800687543188967229491535191956193124787701048836490034307122021693271644873789074869716889055669789349557482685994538815934237990106692455380866035693093474851627199700083726662594609163691191866834087603981605345718730448837878445994564106619464928279029871448513829662277069771018679726274836234505524986843346217582535199489358389264000821604257858150101486886919441391356686968831445986211992334972258493374105532462372231784115404225791978377626057249768611808885686579798004500743655996168491050849723073534559981156167551316684195733447513292296442913651579966325538347945076610328968486987628172465341810383001694345217588085496074784900756730397047497994124351261842137150277561668273690261688150889213493507321826932280660518231576305416072303671389874837793340501584198071058315310913451714395671880125030598869506311654406196180647080736123767536839502282439875286051051135181419197379569469363868127453165281063503834682835738440551422934800799366821080449360686216460067663448303192249589315595404581694972413680574963656793307919636715256980718618747311974596214344478745387556767923021361485972863033894182374504989176974007142884239766806283172901190857403250338545222354033759894400897932960374120546035438418200763258809362869789359558085094975650679953503345837068005723967268132946214075401312828636882307453773754966448767066237058674528560526287684371031208597830707742988942333196659933706724709689525249854458209814394921207939343655680256945592260893704379680883059217354990280818723942350083166725862989891886521707048580918439451741645600902259738411457762210305768869092600196199756364983572315537116480078041903407349958308441455122942817760215210493581318239662767871573714998284140803688197142273883020874501573985852397251066895699623496283549272734508268912027147525704270506111845946471828532054542723345159408698624119906327074618266795601170127525835086473884920460278571285023478467533903131878629664955207064550768958438391867679066785694775621300377608024518082734525214320551606331504036994154860613067595336597168002359216089478140468185331471060954683369162184806558707134105519361745103710159921613619950970865013778053389759398836693787395482278968333613816287002510939802307692164016669599177393122483908264479128099857806405324340913718621885323049102890113716108308680874867238115859742181565370929674465518492928750040651580719202828052992244416273543223825649525174246715774826896121618525639989365694450558351032818566413199762669743911116778094871793696573690376143192238347665546373088851777088449683238058186610490890214787876907311571261412345364963900842699447080255146246808750232039897736546071330432841705373441390389323484250318168830269138738845884794203557989165117728792068933863168270043214700842467578529416604696403753841191237643274386841834063376908656334246919941284466004865121778043276898551840227751809879011069676458190953231321128789090149768694698126335988541954556717571267667883715576312670276152597776992561643721030108499313035437189899247009395752824298729692241071111800967264157307261862392713715782806114143002017111426482584889272072257212203277130099829499920651648922455188366142159595891282375248360621720444959024857568099691558623443816516714631633100487392293226221943195365465767781209844862542039608301127767452831340676229436884135422093949607182598326001355753099690969163734966559745037380554178792938203007569843076695439031187270674422084002598679309241436629052273054873320374993181703899256416167449649356926652153481507710571777303188284522175363855090902876005207644455852172346692659704934706045532756296067906066323102672442059559496173835522058814667667226152539099092237347001406561397500633569448750968771520848323518979421232259292010069507200894275409808572680945059064154821843092352059880849315619983713486308631608177530993431356826119391131319755311787891831559922775024846159670664664052848809211928532569954957327013366289102018529597151020987318184639442800526951909043300223556760197787053090664264844723116541768542221191674862350821405552416336285619372915602656303748519633798312493712512584668544944179398939503613056358538146534974294520242828047303931963919665686795097812119450371518494839553461857076075329697620604212644505057272373623975657440000518850643825547281839696475595398026300097329759096766811250192035086291396430856380268780542422691206708466695667793808428879759066333385191831658073331288641077969980277388121632164618197229799382327922503439232071557065563693152921882935546190236507169076916658534114162027868814520633343518244458692779598046627970127434881999983671416159300403854909347712321623085392496688136772265723665048007428664506672319728135654420431444220544279556928924816510679063605431422762298205106039468390735987427441902527429805800573784246772140507586893275782389649330295393167543655826368293342278667996908620188089559616889819483366568308504888361764603121668763086594919836752609718937985086429615427801315738842262690972075493012383476933259946850644885035844843865983493006017943549795468471188058153183483885467009000362390165675090985197438260891762970517516264463210468224004535486063995436349987617932954392450932753221167185125536171072025658333543526968008511489632677184139489710157968223712323777998170453134977953440975537822404146878310311873204302877139841266742843083009963756515199425640823532499590528093660801770815480297746804698730184428172248913336690764257349831495301549179718603868488641641366820315278415073016038287609047855070467970510297237624004973267965404437574346149263092329939531021385733403946546431380393284754601668289457039852028989705619905005856633168102542479612249799416192380808171869561768335559308203432917111861194066142459302341685892832540228112237514487838380437533386005245983771521980857484740911596560510126102135739087758744852230707278675102693405952584004438769166088899837692971157675464446866868225821631593841533402184543020044556787861653538779006847964816115461477425676643466678616571432139560580510685249293020348631118769790675737306130865804980539962498308851629744832342091870932486556631685998882180763426336180380330937080685655211630835704265987849396277425742722126865260875537703432427972131624718656218150212721001533814352764044674384081792139852471765606453271666305344360658788502002162008322243397547438846569080848229761095989093615129181432469419017754297201682602926069362867759394413039980700485624722707461638170802726093244910407161694311272169324596134669925072649358332736922363720775270567953185986989393297451923406580320289778734716023174722746080557162944886163769004988028768178344620062203271019135123357703649008084555442557682671091481559673655385825943822195135801563771197167936702062224568634854690598778034658974565844785240881926883092277705460494635561584140974535542394776734275305008393605426533858342924088679140936814423285879009223052915279991590500906519247441417091004770849988903033856339419441048643921902022566287739846266971296286873757221618817127821235633490471549947075886804059463249806132450533895452386272552456440081303686346872684137921937957850774989027824315838273235033109670899330157066419524016404802598619582946661146570878969931266619486819119516889978571382608897201650221151500004591675918314137952842924016263075906928102591504769068722721155458369984724422211012783008421494898542759892875796268140828424620273448115637761588585666606287075979845389858885397359150678466677440735588962117649026388773046312288150082414864035251260700750590426855154587308199448361425175009691988121471776942905584636475578159388806623954201893749084032275102063489232830934102823789408898953172570727814669839254676150509011338562734748228265353590100895281786892385130548337080121637570618687637859548021488100672071140270517244681807607601299422257578378515262372980443754897446037591002939914877675347724241123099838146911879572544474496042009487586321049675622617109806570375457977845287555067068133301194037028368463183005066807530624706475224361857438269778398335421299357934225135203492355031032263242244961884867197753558031652147106199584104062211908359669078979633808121363989284373107431582309352969442335189333013437082432643853278990826149765002466223360134797174646420807983695465133294537755766227252446205078516996720198999934010133350720758077104038265583648170001882520487386269472797768681984124497130143674446177383603784505886773104155213802955114829413819681116530162355989101477594807594117715701165086921854114710049853076615445032636243434205052785612868371178869862422845371122780475373192140489569910861835758095498384445660130847465276512015225164046008638825408921010246158353618988556156795455594341539377450291006612155870640166529816814549150487091045363602336962679007420452451078747671110858160388335049073019845459657543115162722501328826413273272004586475040035975388411508587123667673305367165176672359234741082205566207389714589673612442860131844809900996619418551265914031244826821505050968211722386212311526523007131658654273609247852137350152630873645042097086869752775065195387346837523167170317938647078333812547030567421606759571812448172415490067795539503394974344065110140266883233981384072995257794268605098038571003884722484823787587024923392172716067232378375966828065587790533662110909733434199797844334852653243507225336039871946098706430167889540908433831832738009554905680850927913218961619966362620096226963711045923058598579332139457181218497046923974684711940903162865482672781602334664124586755315372206986570758884561592003927637676159553914381141064107128036641827384857021316647667552407500949113768318919687594594576779755050543591395884768627920441607389943866059704875573603207618939929078473257012189386351243450402561115311061598160410629347212590338103396221076910135920641844272757256362449921884192969284504886557168081476678966093634642719375556300958026571667406069670450700559764523975309356692672134756563223105217097972678820117567338442025858585630995827722376701242619501402141241517017062574823919937573153980565184474781497885071568714142353624433273021226810854708277975682257009325701405883696366404360280186573558394491847903362635015543240087944455288584149451156409427092240658840581570274699062826291235403802457997574932701823914476262867197280067415106461578426087089210088433757773968560088108136928575650801843593099633922487482273469794807840647767757743508106481311385412026681801462169606348638693518228333021346613369327916859503079924691147833251308207669101517857971695866018579272996719400552366904988057652288340540382957232949566661061816310978922639940730115700245762837477357630818379816163811907973603158721219831381962034497698162064239850752283277337325833243728821605978861098735519137785588140372986508381751163266745475940834529696709262816998084488901044363992941713355049172185304441361275537274043801966167062333829738024049062982586095139350274958987505280720673183786473024891305790548156273669342031533659348035452212375932319892888437480373241078620860562246217556691406649656032562701524693947009851471160099408912835194756827483296722721766829934944453406790736552541717488658390103931928741333687055929138002772731477548697755411984013889604528855416461552959673062532883041185550118882984158691157708185373637750607133505432687135382591328509795856142302743603957649606785980108937955654308759455387321323500760300773010791789640837991887086196320867905115889137412620483854115784882203959235943327045245914114735078054550403358190338470648101424868919725638116863193321649762981484953964608387484954396945851525795180911626654523673351745016360833352973965589221092115691197831672918442579257575500403074904666422709066432242851324544080760503099725830217902579218216908237794388348086565451658032249266413962473396051152475958393563660744382993667731189712438143450714426349066833674626796514487576042164900465780456681089762373524663044865139464823196604072671263927405371480600202881411947914174210964506313055942410056398778030768315454955071573005820147925159590460246611517839367856016125324062752420437119250613796485089198190958777058099249084208560010388602394315570640926229658546194059909869647650740890903710204107377322833000194344131318989829114607687934794756379260766087148325864793093194260650376503122078960597372119426458074333932294645621715299286987757237442174524351059370152244869761304829777561255990175145475954309572978672740072177410442876241952705751308188966699039025134180461879139639175199961068803957945781408699435579293988614007114172498946051202315286273269232409802703440393572135190345840288779882338142266098933184966747889266988742745147726958495465807735894966320431968422729390540234206993659346551759464401935696808875736513565527378275584560031781257854725797390168904462967021262486121787662647754837065335028591870593939017780464717594243236240820479795837934985204559679902540515940494547744176083957797368673769058556479182794887136785629764703619719277273687581742206193421215839221471693970525072478316583686909212066060297781442291451540611950586526514128818711064918796979431604799651288474036540839996708323631467927213244936269857074070471305843482632931884544051058661940375587325025731566527539290215236220741530144657593072275088832670637058214884319615653104189017912554845787463405381875056140442314611978451309705654536912682557944487804258829500769682321898626238111107236874499214246915040404003133218668230591543595496718901355903146969137362240776144310312264860376479193926771749354075341625710255887112283009804553940333704873282358839765090952167265647472580205480906398927909594975654229061846067947625812914780970375574292480898165417448550967270889203351426936069221576656346844171425141884130073463421177091338849728156826975564830840913326336717247725008190383325739818737436603642934168154160852874645872556535076211507308850688034569682329153540606927242413612638349624302522273482207667432824462519534381686632983333512318926415375390268980209230690246918808661653425971370319964656365517841852252077400377550133609358614163704490921998912980817235962029538477316594515932545751276218265882696502308327487795212641617601548390384586984583193711720936819908328893259160168315237898417509554214565735424477030798689073885423655119403552999768615121850369118581180619655257629645824743954946388495230522939043192083470040859590624775869267390038385675195963571883814773408191367110130507853555897601972413186887351769388896092097081199608639323761143676107035675675195450985667726092830783033338494789630261029049827785167734965663017924045814188890168611037149218707553685442128423002943618462997844709902389209087028258677599793290024068740412895878180015512623850669835207610152581029222069185058987978076103175274405860231492711148538125250221206590865901782025878010422474264403050814934008893553699421554124279402428833016355600845480611425197360007946836767439289136803754522585250356433749230406118813478986495017912039521392725893518850322747972830455537783064856392215254818172332080667252766596431620541805944807093733762738519177931869947302459081165317084647784897935244335720380614698700923270065387351237811893555880738276143138710477321330658524292176952009865221558322707624047867472018538357834377022350425081424571284375657147968931036341808937329972201918567752838733601339441772638156220284901596044742284106914681577796601935784853607566769164334614029548215017627807940265327540169883435434195316982597257270323767232710438850214575511607810784903672734137568505475128333182816818068792348394235790283046532570909969893392931956859422151042753161377858913302623839957249246256520923809821631002200993851783878629128475464749973808460988491571783874044619813744839068734059128423831399226835506173095377600773344155197113447780113636712930495399900198370576056147210774583344123575225879819732015437084932129176882040450744949109305178697056711770114196561695487469569955457946649024598805818205226782805544006305517162010917064549665772809123128273037117934488881927575250994256805720457156003088351254835453182167003120209888175665602481564333985612103352180312220387245461764927719760756163989992555884482471253975444199575287553381607523828907495794340847840981905049954722349176780899897355542816911986602910505481900466341371555736993081687879278573666964628266282678449837678112704991616800588086998350764297274029251889063949221831873692325603991587304511774483342679125168538532935334055740695466163939922312566237332891308244660515960756818641377290495515788532889906154123437813616994804639083110947354161918944252795610239155036306202464858209675195205668630960889827424160266486843101853579201093414899591329401297008097920933872852450683677063522719375612107055299577005685216547395630934014599507090684943999526109950370114911485835658403569443924401813758729506682050712955420991850876507111812723830525509427097018083673324604796439163711962481671287816880866722863275435721997602795855021249960429342072378556610335213428835403247208840753622747707672265703221614598530848070143271133232795589627033533113301913893098742633572074810144260604122194998739520982043140940011739601500116374649373933374250093596798354959808168174942641161758900297445379024645100115732568115366055049218229071820849066730683734741354087686468803628105346366063639637050840060322594442368068407010904147914080743724325375420452945492320548854094472777330867728957284483519930624062333601489465701029537276931923980079137424612898806209404251071821687003541827178246935885289693683871233950818071126520323160694213943504416422118045865972847019874705877049174523614062166471826842276504309872213025329208062441013565190192429768319418422479532304887222761999981305934343540963408734149400983611379929010404902165198001696534510509320118652889500134985548157976486919975355400199623921830371557049566111407490698906146880316274565043092929685649204939142663256004909546724624506038670277906597782558864298724579515518278895492937913618643354949560747960629939433289895607101850074129740279027598329853445366547373825443050649218755849054725366313745370776589299887545318170758033901446976126120801219236484960131914537587384208870327736310454441031752042168170202492424685433938481832397201173367271437591403573249742190766283951872620948773642289035555070995680644813853912139494407699817657122176758776977413747693008038530924147025926730972434251473897943330822070919844429634936827345559992756543084921450058959498583889721949080480021103101077469457503027986720456029668290243300490195865656152338506601086085247051259251072368903914426044804191068856917115605546765577541313378467343572819135579215212524416342672879351457987262360684768794244924543295937593225680382412430804044151703233035468059302554598084018141938839130991313780395165866885640534425045976863068464703852930422812537128881240638371919682513155064045865821220270334452515002455569718520449427126617557097790765220163140992434562496582346327419996696591909630315077216229597379413304490691235466289997678706396442754397053072010156786676514625620966498520697707102833199253552221017907154255491066890989015714352252320882493548326405825443322899338818143324607762021192763535560554018124664011806449074865679249304575303054063589985810364305066917883604463376007252105930721019229224189532238291589093412822875051098014631623957367143457654118054222740156504411131105058633768086937833038419596945386133732892471602532229369731322493799729280059926755672479757909534963414170020386634196145344182859054952805340999776308793433997597891056860413390126065078612560823204380454544863133251066372391013324302318546652650929391180543257416902759540719084176288677352999864254605851448070324558508800237492198538899825763569046940203693882744668184013998417739780380225429149259195749277317837957450107291618969993288313754198076726491800130643899054963744840691458284642612420496167874919002870799697918853412624810879505542074352644179471940403447965109102724481791903205559775877384272738131058143603281196234824968770668087190298872341728952793641870640694846398010895643153523342290031479810166843136947919614720609730858013615070551665133391443324485869469012049247732557182305818857471699146360318779330138475975986112096170716267577315729761334685704814097969154860012512420602987885535337647846511231292899852004061054006583425034516346856303094050978983625277393412354469101293626170198997139567103939774531009630549010544836570216719918722034635756363824411161709378889385493935561250090479363717154224080610343811886033057556124867332684560694175279344094970259977435014670199502710791447832109784571556218883274107109765306341681297933459346742756707244134694314516216704733767358268531719605428171285887083015931604884149219032436305805033072196601828090094043271791799057699323544388105032406749186069157840628987344737670923422578224494543482808126567717321258040238692893611255653082045065306634056149010369686585620638108841621125072437468721892420926302653347648510064882401875311077523879905191475130170115551259365095027766386560475993267772695534780632704930394893489795980911778925653744326543937422785062716532617100491301276476585887813004808407118441426902906254200678976496169966203724074999018383924962308016797133423606997570874906266593733463493311747238915673444128676776285007328674289347429843541691406948981446418541344524728510222660007961380960752701040772759689266151674443660665791711951892709120693115700607846131048600959027972951465467723383197530039299820230677508614793783103409232516679305885809444971780201240607532058426904533209973279358065620778914455124440482552693035330351335901481444516470171740967805413422095299180906029126071568339276616892674456115532092800093355234193476248116875078333750521448641230046935912724551684094934356435920208400866397288745264476416812224319790057403767520411314593569082948636502886651386671870984019126520871938214610496291771605611241326229847291819735019232646934760673591792047346019502146850204222725499060500390527173983088239346961329546058235596168859614438551773255682572004086406671572614287421586562936534666765030539943726433777117552486333465468661747102947425707471145240840693574593305810664791058725770870394121595834972080143473202166732002959217783114654794156763235809015934498393436031139470196023680643647101552654833033229032494848874017487162555417843234598358313173685674119482164882832198303929378208900666864165635632999002589124253674659874275784244531350568116333665037981361610334287691399779093956537587469917820529512660654358748024953105462079082869238253173487093488509220298997492167707593046651158113338304783246584537799959642245110552052822598551357995433140780468738288309181716886504746473420060161594458175927648783175100615405715334080277700173393486915972544835849957031169089050234790041826961127743891011136824983651124352217329412770603813026341816523575148350077986826106893578108357868111581663802542863945488244743152171446531882122656033716864388552794908372296727150585998390200737043520451962130066826186389711245753979831674835802866090243753365970379553017428601709822852543466282260502978228192296797495070684694701411147182712377179454395424754558231763707200209395248030550248615291942583807464456124756630329362111940643853512617336383757851990930337789563507099848726475632881577185877829735370548456218406166516380521163355359561571365548830402308390484990534640227536350532213126285798474887120879742391971298065157156225145357376229649699578516189472586019304801887884140770642778982111550389340417299078428877913960319090947564277462823464504961855895718672708930505099175082590601623035608541002615065995829409418822317117668561034310940901519556035941976295271519144654657011462735647603416640733553010784066121706880487767658296034459262386475855747734122855909945512619726150335698046742946544652410747998946799784648927454814462927046102427724945172854272025170751372587973508902883565123730751402162131170264048251331975042822098951384552813626884177326700882525431724357988989275269871603988463330764027410207254286075391463205633419005178016954816417949317348878122444725186119410088351313755549049418167286424417218802638816562753985733360041105959943360044510938252578802766481442579095548425763256667686186591270514838980441597550202022308442316481714578201023087613689400621715918636966475668011505893950691794861793881106913573911192911947645716384243985067676092701560138762547387755513082161491786331107567699693263983636019984305639886793035036311014621259261823243292023050487397355510388061839630338392022445021877806341801390292508001654765599060390880691771852440750963515195819308548534943637526931428347260128632155695589347590375217333956986053558181334040468345871203940744923635469708013539670296892056415327057617850743694104216200281385974099445803948437171223780859161062547291289418501433733201139419237769927284987921679570485720848262117895374509959016057319145103301592195047799861639973513634301812707663619625642182961355714741419682519778451292399518094802761577905150529962456467685941080031965524777784431018487536837769304812085949347514957536351908366451038348117838304020087249543294359801839909611614425208081024615483437721590074746546970789568255917810215356444060139689315984451593321201982737877807460527984806318853393592553264056804758713927361712743904944420640017604659600972674199501118019442199470307638680820189152106960803373114792754504691807086633068304717712769938884349752036150838640309236770796659624074665303205885579543535898594777542084658544662131174173213638193761117452671984537710736595659498165968875953527256553052258677787436196995545270088885043127590941433023642951983092817046363671057700408235562634578787478523448239984694378073980038821035519714677936743948439795042261555530639372957759761213908282947761609069866159952443474072082548727474163790541203204376326497675788394491159485261755081482364352014490068449037552549504528711277590244026828966023991381226668728716943914242335690716721974852985490650286693853139002780062228105465949194965767734087173852622258531958476574101365001688354835623699235440122359693600605122970484808670655982833625461624988840580805683874768059241672148992546676970704279759470744399240192171358768929455771482444048370028276093844436672655795920533328636382118343620277464608717645601823692049975214261411194950914136593993959888496873253905456168986309629627745569315962711129138906875337142858168326558229153167341288902773433554934478868355341061282300218466236526025203082990557359962941212840361584876982844767216650605084309332357791634125986725241074116285556088741764834982071420906963904058285391826216228998268695975949380590488575368152351745149646614269658795620199766438100506150418006870765847045347714700596330723357790794376706421196119205824254444186413088962966896033391500132432796099227783533958918466257599319452669024214636598684615865059340714840086040303385526382246381589158118363359664373818562104058201328165698540316735563816301968056458734803967516057164490401683827820160310032606803266839604685589812913403117536801291255768900097036049925914526513977577298346853058553693635182475723337804400750475514350907561272195228462960672210621607461237715153711868850400371478628178842646139058053647502894690723928909472263625662125720569197736932903139341358756978228791242833507250272859563234780250407896120197892164132387436929916913977434727149780099649672978953914872704895812275014589904462389058696429492723035412933532387618921156458876442971363897816413221384394558034626557913144029141250116885199892287079988203332745885087873962019584284916999880962566639784614021609505972997287096124330457625312926815643291803738394819151464952919885361976689649877753470040989333379727159490519391803031244093812163606427205974993743009579616220470674611740857341097442874902407222407192008491185818151812427633852311408809193386990524737551796979153348369860778847341792375900020696454778980465442096165582454565757260109829279462120160358645909800121461108129748652676649377548555016380093639144038747044068074173071114912039559556476378636872521258664199651815527268261024910471618972792199637288140577295437189483001292061255825008809586482343503115842725044714417992408858316044363542631311998838150344747327397732657258291837424868253221336201914847369762675550760047847475071302633152791442464845831054261792732559597899502163649805680167217023986364221513849136789469665189599636981895289292091091581455804158302963877917869354121830040998688888707650560675784523488371448929958031397226925002634423933729377836121998946004608051929181573650714060521324366571174865186510958665531766993318173830344832523723928096067690523685146455827238435892090666957383546278011242910414205647458071394447904816658809815878347299839103102752287469474046967738211615109724712756091818216032132711544828799022091580995446717910239857757760075937066236993152851061780016222800130689503482824380598897428078097863373237536738751563996250020268891715608720568198038132159271334649860797832469882632505217246773232158505276772769080739518020633239202228935130743426597860593702510692638789504893955632192116661135515559813269057575409440166368942600926755204065333655395145959443033647298697252246130287398349730483019618694555657529791067787277547211347230810666512202661837023659008353118127529782410474176812005473285408824483885466837414233650591259942286879229483507726271457547046200616509400348912926039955431957832683200403542687182806825496525383158353257730798874142984638739305884324111675854532875489997195502300338352132642356527110701750793748806830785603325414601943320967706374935741539533003747883990990070253146296598041526455897799394876475410724850931927603294897917174136213784198103506849616403938713561098187853350649482250675345626451525297740329892753756169181748537555073371637048051131082092768493599453069558121008228531454181705533962376276768523646265893677373342803558785781280821115743061979155371243564354768881163180868339377582789315224641995493001697844790900079766476198783361464566192197575452830238998411280198621038498830157743708738410828080144737287666819032370967428941970934024336445816131807477228213377537599246894948856887259048714181460237646959950801386604347059435174986009052318312201394591848890753040173686996125439466721399672314030349362286270110183021106675111156974413093694485088430863920946963800556700634047876561037082409804867884265850559964776275293345172179481954550738493811330423859464446390168372344019907188086077474584650233245520572489711651503735461248395335503707166335469558335922089003314811093105035625241575155460739324444620243895162945071839767616987097469732773185008363285906286338132577347176797086008286365784771014243655708737137294057536068519961990142326153519121878183240382660104099322768038702518282689905013928749433754762826805592644380644635852915698379751024085994057155596201690611806063853047946278101163688371115018556420832409881625698054524196110805010759134257423116274388612649920868926439355212150847906167359649534179203357299319229870094573119991169784226885366510539372307341483362776594610820275072013548479905377197752110208021488139107284434838958337452396079131264461657388531821170465993665343126495903472419700891057207310514031003142001607836834277549263847812555726811479079790178690706587063474951441625253213465913541611593773542711274878442640103209138695354514175104568359401016226775468370908677917638329951341468046889569352868045362009755798588010754417592852429641027544394174983197584543691671545375831879858306467153427646260166170736520150241250941328917174724357727936423052842049153843136718688623786700688669902695498242234826535568866776437975758217353681724178526139621292352814651019033040202959808631994332812220298985891741331294125482553096868723311629218467821310026202656856968633389860311490682515184065358262028492036911080130045106582899768893986223020029873020266682395983433721483435941141868009441024239480597129516215285958031825836245884073891924717130756271362697428833359520054337402297168977565143850023979631220832296886854415180768757504850991986416003851929064901878184328260738036579415375088922473330912890232978391570165470989902590963377562583277115219769901272065427673634314435963386698378990691427314298771210280981354038990518196590257528717110177255359810918897180596906653462252559961087106029038506826103736595190365980945903875680234895812098378184566328475101226255811761539113972787869656636476038783309584586952129741360212303926230727583162017153270980917602947021388975447440476453541813844023239519271050083654112614498747762957664613152927304082624646701708792176731621559023521033971585954705802422838270279714940186022288724774495150192048406390897784706393683763842470276918437140113263995349055391609284364993786270814923084851585691045365720342141118382724192599609844030715132883908461395367071412105272205061025340510194029407497595745271749295390793858606386322716975883091315775480834273084500345820943756785117623829181332285007239565267328818090238219283414941449565542842602213790588610200418833919731786325472260696786349814689795481129245649195627574858991085116766023520108670357206241041911139896508056310177625446789940282116489206299309939504162691936328525056590712236826429134597500011438126624463961940292261249313966460082178386024222634029098826070714131013402251822925181145074532496117982780980909040598668887394654345337415292835273206845203742286706180187577441930845756845900830486689521818505462058364007276520648231602447922945765035027161024023604827609189292591418654431079730615857216897581301459977941667168583567014562797481377628779120199707733760091548850548543734919107244488782685079767274247498877503716950996456850662105235981331559735770965590640499957013762197929214384231902193401513373371463885699756025752609691992041679698230878351338934097212741361796713331802161065533514784012271805000560589962544108742917710596386148887121653420274202194001089823491632143341096645523645641574425476162806149948622628197947120995332656928835757076874231482565476213966576158701886088308735206342138180550809538710626433109792183401239101558732344978992864043400856643324403552063429457083508674597822201907204349182098165274154755619205328716377066988391265389325883009078593309732527980300713903254611166790612622091484958642463137460474292851212258409058847153194384311331074768044632952910144117885336084147241830788228795538892654286664484346740126017527830053237795047173946198949841265861788389973276677309259772363725112409369357153099344533436315957211000477806131956256649419026610029205275667024981564837479664097209386142874282180671772944466864229698980601045005527182047419353303659476484286197418817359912109181105178317173557233620487679773497979516425829722861089343501579983963113356714420777512245221594458881235393183178984277679077619574751252027257634592410599926915418595094605377094715366442336816034537749447820380314799452485419024158225473078010510922138304388873009741595897624392851682724173540249533525649788361744765198146214873797373350201389963174984048031417473311253576810877282054402753015794992122482281883158599032176421808576117958983050763104579394151675401359916459608896611203563607240992607138768703535308360231371618275879494370788026235451349994710057516165840831401814160964148485556955730484032393220524854208409177214991579667050539409497091309426035844241073566596751505941297650572681495317756547067231503130463608454835845721446246720883776265194604923072910857551718087040119262985996743739966703984299785629244915783679456050193823228919978420229143846192877103398117953279196400870648499992736416101929828283644198702283182353696013372952696400314320550427157165630034780171924642065185460756811038794804264588691923654859303362606440276948220974068354234243978019485317192026063360302189849987739570514319242794157428371466917177565362215383803955612588336253255619898881383941315190594078361441569787973390220266643667605661260341772385273381717007465432876226735779917344206401459575985605811985204360990748786201063309505039894971353174758183494361183335852575639212464655851461773314300998747082934936630501465316745749214912742258220888494609209423211433462825171607831824274822368063119758762681072277963874119144812076079613539844998783245877808558470791403580403227933215701389593658177353967847577538591986059077025714985199792918862071755406650441436740619597569024610752451363496607249358249381528623686592641392363275844595423516530266033702306645558408623065624456971108791978300610297648846110574242652954741764866252078704004909017904671035984964700603486476171102949367265149700987270328479905999347892818513060236900749309573793718138695168213954681295914649862341491832620755026387682489509567486763202646934551755102928182498391196467909182393524187155525228632683189420876997759678736117498348588993008982463118544784224101131019114582133065280581124123005358964903636926524369193640694048651607563283689485719246133771989589253365265257048202672064769802209837141510874808272712145526565400494632261371175565225578557854386204843972745128112469893039538513275572087385861363328451549809991216221760819422983295375288430849748152659895095960317076754986645374137630467832607288385165158982819059836624424098412397675433819956413887733902556191040434070925405873312271951500439073325700740229108927106398570264233945072301662562178032650525080887920390398302390563040930830181301726145707308395001842861952901257381244218064366115969970222769336793770489676516002294892551841716903012990721201296501333506270071422766354974111199921981966469870956664006653242100394714517812910000178032454064536894501473949749005669062242571460680569254946226479467048866362893504625320978470128681090305962783791319601090907816037257598889091566804943193195890596973623783181042943725339610072872574632977674802262448251157855302750058601415419087537221131528876724434954889393712681182357650797573755918622609547587939006855053792263520713017519988485814137391208239095529104948088632077345265344956069737731565388547835754306823098580903306345184634352421193590099177251932732912298929823998480331430713420889867686491831766482764551648509783183127571966685940965467399168666738031142877256054767215666764458975682178499580369793880035091827535854837351023803509660322552556599141555444173691944962156924331126508124794987752339716009896404320451632415661243250145503431660567536064435401981471072977478011550232305077658642923557297979550551397602321950701458779264414739212118715575931178810856734946743677579086970048686007610485539674009396682669252994853769134670998340658310623221364207499710367664880906366581828908867836544765605239961168746643503885454965793933667829994221239057546757896113200214638887514277042848516141037908536267285432992826190091240042693001842308974194723371882770765364599634437675073059724489094684373350253686017508317203951523600178790732272888524363703330044440927812905934536866314147010465934188347468928262998823630130601376692698821779885172124541457337848823038246719166595110517463243127903156087414886070815548311021325401335686854055883431018870889387613937325023408807965938201480483031644811231762015402434502589721776700525987685752911079948876170334681232019932311321928743418466125998701817465611791461186892683702520165299119898887494882924206169649654308944234634175306462620663204127052479046522225947485262988218016651037739152095692571767605139151290790833063089131384670767807136082989918994490539984327494024388971060176275164865432435041746821740477205357907297881903006476217956560515937853174699754367850429962280685938360583506521637181437581203594638980135385789008753863779994425275139716428576455853881509599865425996111121263525218353737540893838299407147671947955656533381033560920916513587960431756452149002108737452194070166079074211714638920928718476016090249231911042267151029060178956746423834095198359114240864264571107074853007624980220673638377984459884147751507162293219203102605005515090769789431943783482112231317197696873083287468383293986801931916537026638200348246498888280099530802191763804197594627304342370504981686266314633138199244995135040933685213264862216626143045638015541670299756701810799145983714301340032034976529521643857783420248049746048135655627876700141167645327657091594698785747109517077561758971954701469140528987623863446660752169184051529203706434167143445810148812459041088366769369630161221404303079623341879278070741455430961219509880330732327122514307467437929490847000111815787217604725628436874440299990349072352336477956148260727543047507338357941695208541185814142116336633188436139304608640443812030500873747407430351981258795565121015437961854018176835163955314297889210979335064421892206382792601708085966151340923101445509598050049709333418260346282226613652457862436893382874818080831166321408860189627933379691796702389260039510884923222262487914699524694482213222071622818763375411744071764408256359777491004984411315866456552169347946993853458952764802986158402264099994210004334206449394164465158608227497279056804659105802319981404181666468971070381589917825990524437941647676653136370381649556880784171970666908881871118929635540970894493508380867208740873858916782805784646387301335632900560817556570518689835182885385581894187618464318855418835322055865514919608401350510913042964386737267017692094625684048216955942243816283631760549072993983829018770713786482195962795827372843849302107651701114120971271895136778113363452251194325640609290920398920303114286931102996162897157416513531226509765663872541502188189457696063382654025201746274843313786593668353589272889441372227122323730318997627121875635903055240593344068040671658854991089223395103185228040031630777931393887881242637399457661735057804548647097133656122691054526803233517094657822351326347119775415664800121647618915383944543827074135711098802738252435819294527063872430289838878623739726994810190995647633987267797438188240786469637206134575020404386514048145408486372294808918749533368453833291856926116001360905269807485077880809719922079054938464491299811604451051248201576813423036975845979313525076499172671897835920462441355835396802043901129880820848792705993984520815145552771604555450916639108614659810109436485529958341589405011322175918918227407885854505737075417198079357657134764225664007855202712359649841814780918524754051782985983587194509009264562032214567936003200980365891403659248029705970423893401417849408983405889420828137541084532719476594015784918087988412786712883469730444534633001134078424469746761005216325231469607461797235227518889113661084728250447333876988089978824961745714326538959319891938094537356200697795660073292073759878773953340122426282463811760466552954932776015165444339879779657596421303648495380297336297340540953656602715666209562420401897254100269030887306885967583236348486080031367493378804698810817924348705558586126044335111341550683472102803886307988424864795993442691070980705308289506513928987245609474089911504991593266076126398135041864212683987924382810639019024427167350764624024576817524129773437704721153408616804178294996765068580625127475299506559532498818661118722169921472095560654755219761455049109990697568423675215339297355971225275715087665659664502719171782052938851093694472103279129972997894959537217965414822046848471079713315292422565810659649076885751212831515757008915688390775159233949705557155439612034287580617518867039830867833408101348168394370339219341974243163346877167554010287905951855469702441074836909988531592235768360501858756785573637458577148410634013348975908777490583345539770579535213590168266477382725085565578135488763598832002785770631642240468395161657169656331177116454122497180862165255308450802635618913260435962920096403238435463721295159475370293413557820560910346503148279361410656603454420828537160023113668131909196410287304920850041743703833744628104646209427769637855809342757875987841833340399660193542026714882612819488625539504381515336088819835281749473542529613052058898947452978981927653623021464927164086320292356592994191752454776144084306022379318567606483039434162187536270414749761396384298639152870831145938517668485369224524791339701856796618981007020472212331804541923079943922150899183397221294664854266918247805798787826538813387791747999298627164543339304246091128474141007611054200897125853667283631486089863434645693410241748675676488649993201676076913951174561630327374498044609078090640304676349444315588698973721502306022408768962808996777200829540097286219693697999085628637818920687343124342519125716658608488533132234261843260558367351735755946247449424091891352020742489171844022318266702073646768610186247364849275801473588812961571164530777730991879061029888628714930204679227525167103708071639439123743167928668219344462247657260407054599859682878959481812296099664498418954355051269746222228405582160178156384893241562942941023547244744065298275956508523080398810417675310953945082956686670098059680397238783071088873099167083990986667030216146571722478408522623333842572081681007339653460321498432069726639309186514925480137010383870547849580569239080907147014680319441188291677410010867607146367034609701658774793861986557251491603212619971997380349016484226754491259673931239799007483105538506866183048290644335568139253044901755675497722458655370131148854521455752765003400128947427422375583403216774265860294150285405959573417873490709801590858265302204657806921368634418238335855058044069078904876946952301682422689530301950384904574094772378584130809424481263867625452617907185667849491594475752589043298597155625391687066405003386911470252752877463230763947736622050212431711197669755407073331126759558114307664350837766138393741882119872814024301959257723399249774565359917373704823455256901746838618160590685025236871722925582045471781431991858074949168211910106141017546675307620289154632134291872260156914532339244678353609292392595631799247736426558854142993028945714297643673232226292360240155503056432028370518644027032070094133089307407897145934113546630626365872857188977005569179639209408954049496757766916683128261519805386857951638874569339612697366987222044985742652078573393450055218249597364838727810394612054451563797961203029165947657469934154327101407474577289265442299660080219143075163201211471223362886891100314198269762081161023720046209913211643260706919886802864097226678090238074035935421449915746197968355714813677142010284368270041034431879942143613811977053870570251577675008745353928774720196545049062159447237705651061967599990856948777593914911594201505099136774196405319122353927497551027522621259329031592920206322743156316398835598947694912780282598450835836799862035335202068546055921678655283576498156695323158588572387298888221915594480378709089164856729907213738605360437121439616910385695176160284757070741220885574454803861554929996011109008952930561509283466502880398315529188908659028176649338550360211301004261404612185620272908635851705705207750060330829518090619335033657336926887231145986400466223734847362980287798810214710192458549374877745311596289792540550178074749196477840674655279039319556581389669254392861168127028607801649247175794769004071383841871022921733518989407640808971431883089221639365968753798701420400378491301275010036189355286464804238014072668778949947024252513956832936672012672774688760322848694287301349973554634498410829039902461431124852884825552468148762739942714989089896406588465382777488201549894005594865085108465819786193302486083380072550353705752672616262712089574838570781071679039632140611479857589273165206651387414183990141524080694271641531248414657507367162101437285661506728048482094590121411539705704846221539045505320545140864908348169336750662852070850447616870476424706292519842182340567119317597738507121384356616120054129148709109996813318550345675525027394805609455333324261650049742736992368959557120323458164445061839809446368120108418926213314665672159947081981768665914883268231854601655417288345341670449309166374846568976763423120189832643839103418758413624196745799464920222197983459305656369275684935977767109310304141130731253956424863850145550075794360426654494747022596898510266337438301815326070463610412035069829100774024752336575842434925980678196106766125498936694745793203834801189180462399344020486054740053972919887064890835327384625425978152377016539340906639616141813699362622724220637338198430677526480387417719061345607086951288294213418894326141155983741984309650618079924824859955747397586597917835001625124791176820566112456878979546722894411612072462218215036111871960386759404634081534052093195489945280136392392045582070502328159177110790863859943266252683370835162218627906963513461000189272878972239673342112248855253794962334805017456457141696886360100538717492882149746928962534740324906591107947746995501662902714298465088391795743901191544231663338727905054893157337140084303338771179398455028810515225387855858852767867246546822526013941421263800251511052536202028508833681167117913145351827458269079362143382873636714785502540618315074263817135131076739357650065187225796621355848452519981400465049664429369446264325353422704810873584386515316574783693494381756184393891019209933920793591730235133613433361740937889433243636766210205752064049860033947626117730659790071733843508611904667283091919140548761824903540960361117175873842829531071297887413006781572900718720285253473736830526838820885190065288899206711414175614821804859030161269936302200424573036545063083444521271814048110646265502183349180872813431700059389454647778071780075541159447956636875231302809685638497664674164239794038097802400682239304397514877618551014680749244431304936842402797966380697010721859444694667569526315883828526261340027805651395416472679784720187392873431743195634271468612868703186802680513077833113336497051424345861943399376038313489195361652219857173400602626816423331526275325615269986604467428210001630787133567564176057061036539724403434996407552391445970004248827807009018247852047697306068182728689501112304020259654646391688265344062451389438008685826309926370738304783630389808601099489941257512561401534463844237087490956244130195998756389104652096675458776600865903952152693072494759346376552499957398136870468238357822213502275156277174392239955413454901430780658888714513281337076148502576852323638293314742805966880964620998422476207439426900279429172375897478932798562424729659085321594720533236949043402796626630740273131643223047124289657816081090460225680448819724706799349489374391507550517355788273674663011336512806280676387389443510734047785428449458103240215302688926709289273432162228866530807917255253664825319222486046719040118814979669189723839048992144990637834224725829744875713871639376603835319582212583899500531756700955293648507888404290003623246079851080944704118776696569852700224236542148408230742496591289909650888536308725432732151415989181628756781130705162568510558151267135934483217802678350896047258005426171033289518836389103244737167483205917873365096282974559694346240925565281665664281336902593075874044002346731373767779248672610262584036880816938609418304354216051232899431137753391065117317425791903877442755577466603040662009904063042605149202987043184601327389509099815270306433694469041004457120223545117101132875640395937024233171029839349008207273903649597967324607011744165743432549961178069176467596474687979151557278151624730605833452636485128981677846980881899113210039395551118696836023267657819460839277758877356094075598291775428086114543301395004552465512429100491137288596606867189535571189037333006490897568335165004948243750201336851572849963696746425914953603739411549609823443143510932022180970935978032954975959889508110435013606216420030405425352518200915587623321754421758808594192994016616000363439101534009403986138161418529659189582746862217600400754022405234914487411541445060350425636232969603659720823649255942147652077137457479512200232533075772735440666725460638556600200246857044600372754039232960874325328139244892759626369997460819803076121586944368125434647600582345170986588687578964346022705480070837900413305141721926594157615687911501913402974858505171486081731560973989818711788963997543859385148127122856592027869352860760961001450046862821433081002880034237990803160388504060829762941823082783808603522724981023677059060464634773095240249025118717986424339190253045895732039085850787195225501777037652162664218528198174050734002666372515280934052081167101126969867793722598569334951943269320125902423076518277713527188447253277802055114483586444782301154711844183522932511493257269886174912260328402072777884330020182435128895262643485040180117669218940030138462303925595731289815372438169530773158947855646025489012335984452603058421107836641770498438042272775618146361497082205297894046841964210519595297634427944938008762375274587365404368603239256812039681539780620318441175173406354964644946886431290056599239710398026055271913444121764931576701250232821586829133991709434721860199061499472704193722324481136577736478433420225999696279855298823483581345198218142567592434988631331576435549852201618747009448486245729014154559189488870773043749586720792483838574340109825006289616607997109441836998747844395676792923888624160244369027154652760022493934903690547167448296577083073924210015283272337960935692399033882446560129800791917643031420219423739939643744425088139872031104733044683994406298819697937197577353254193649997033298030950573019449051768134116524453593299051529119861470957035374526557874245185688896013513044654670270758809946090330183569536601327917187944495410156034369228648022224704476758696090322096842256361340563483682971743439491345035015456271211307069128196826386733221318404444149770373845094446175483054536899360682058038898772474119523892924216374678456249854279850314493299533158554300276671540262962651669580914607881017471430699174419986584732904016553566585762630805024149558847753348985236467223893416365653247943645100590252258632136464125849984679616184355234035232472111052122663609157360271302132944820897661410378070919365580262218178495712207585119042287800087459286773627633230096904378031370895252076667175727182998614393655511837166922372541946679808216666811103956604393375037280755451484806816604367467894326404537115665863750531512081271327549205306822200052569298501430885879183833858882722616677568345546004203873216650375630854083599997383442031879253515109883833853900329096587405487398852972968379972293660129231230716020550973393093605034590395514435053077998616792471614432707476245085130197897386992709933257895246455475067636682646452715255225433388053548362739162623925296676645875489467344757727335601383827372900539389665659223059857104848277439804972058382111553820098920966136946893177199111474717037337482698105962706129131399606088218772148525578898249605715119740995507139928669201545658383431014260308085868849327192298415895092643571831409247104705184512875869988410928735902874312039343762798516411032441226292631100110969149554450309453357692140980331567654806421257727767562525366210180850636818295792871608398234021472035362598206364552008523128058003267168668344815110463737048499734839907210272119035800884324222116433444508002259779528179717226997323743864517946984457648063948949183343852518042878693263275290244789047593794042859845274992227797210002389112154893838239138287298993173119476173906115044782792876911023764755025225717321948181473706301308841788981959816299954108339024441069270673759595699711953593093849611028657407650636769449089301855864987037289727234334572249278915326092232477022877262964249176980803027823621723937988540050362571554887536100890114568649828243767815051248282055049206761472527146521896630049688579599767752259397406030511028985803962621881971282170519263223089517468158647724940066347625239985417319602616103692419571597760197169490239932872743974658804365659364968801685286397751552247599976494185950268040500640969843511307379711044119791800574646549307802152125298100873140604694735659064689241814839126360000736247105564819825893808874576453627742993768135876541917973572296127000892968471369649368367896352518230389131039926337585965257961649644990890955243550865890255302785990775532590127306002355311241372288339546404865777833161576829861517865092413747423720887013088054395225927885302394309216595649098407706095942612962824796778811133533262952874797540987883556678790042919545157674414867840448236392233509566007275479391401697107231858244127989233882002377940639757536572516250133516367264435915977475061192571301623009093734510047452761801638070967737009437680596671422941358960082475538324597480393206079604490501769207058512367261984589568309379680625434025095746216595188797550577965491955049492867123325133755673871605735638002894299024885121880124056867923618924755604824874955328263873146464164205988538514774334331725912973171197400042649872224381061421103274992413637133754743240629667251815657913864370256202430396479048900504429852624465756623621882085409494236850573272737762283655293864213194617852606260499906254796884745853044130593739472779307753507819355762734410692155894072757362859694496638890921585132706101710614979762053857085281209575276329498576677719475935215242167687786817343705567423740243650963517997153302057143111464013586402829024515173261076716920225250063376243107416178747624311018029013318097223112382400446652702557913433386482338478240836415091426303214665547366175962561696659433120665985127670461450435565056763231927238034514025354212809618536406586065956865009005429840500460935485306206267704765845643230355579621397040128414507155132958915455166928658278389403391529922388233290253888572605849243307420504807749658189661060918105854541979324802037965568280399926145969205463805877136490314877440480911274281654824191745721110244974231615616924754790847307516632660981952379567646387678825343150882208179566747714706801635105964756831889832497120460920855699713375741446504693478302243271003842147687932214248571356564628340103242412826327654208160894480701691549541907889908583899738707067015416665338419583507169714519341920374457438205104077772973273608393241637456285892241337653863674955049543056637708434508365177004646646381532867444822629049601846860503688344077608448239700256776213235721377269139239309592523794220566769837043926078903482673734754528332857659917761012569555350192620551799398021571031241431145302306985898701030358942128852315150644414206528495349362202442156032850944544546287414074018450857333734350776305942612250192525532512991863421476582140383079795273873761052730263924182242641542150906460098831844152564307260014686146011619491302403669382475017141894225920208067077454915759538454237813886087021786642478602868245538257060700785282733222651056334456649087436158229522645069096083169561726052652534915020704138021903400570178831183123741998178687238825101059747512023490654168401573350143178373352481938619828717997108611704819560792586428195619770249670042110009538004738803920047245467873090629279686005426820228388866840290831335207688650527791865629012892131240315114784046500075712617797115876960036259178899584553203528776418478397863166507073750966908836131673914766831068048300176113605941255839026184975476669621728534035859219034523767151164313372600671055941435933213580593431965154632317833809081857823319571680232256364543546573965389158512696172683566529545299336653616507398029873401838864612441636517466666989389248273782645426314272038650117553097076155873345431026760891681516242126487058077506359278820073571778056908881607984334565970610092424036098417826254172021527883071915797667428851450587738133761448400083912643956891713569322761335281604797325611648002436478133941949391998144463450338977304830790172218978761141526758491378276713640481452224170097638024592754166726985901420341115880451518379364707694489921651958233263828168333632551302342635169444008445773426489193207412771550956432261038689103857009585219216284841848988273268655470423667527507529843122908730541983950440894202141667808219680982797670774928984971242388093354144951082942562973278266923004101161806478685421633930127455892232424786749160761576954116883021345421715965846090848019719649487228542292491332269577189910652192682352097342852936279886092116791707629485847496149978359834308720070047710218568974412617231091035586226249946839024978024823106107738908043031729059847704522430321003304957569659557590980897187735513274829633988645718778469106403556448961252735144868231053002778188431067681436348836868815197935919480586451837858659731027120780587817682834764220458041748546527255792593212754220935506709152174607418634501047954448472804322875904278532798925864532242985233863325720785494344100713049181600750957198178380956000287475827557145959121423798241034420119904298000834846679847791736676339167559812330736044998178330002714620794715396260742401905177826968287930733427372635545596820513214757796885165521578563821506100375744210687869817590879723105471878597945093416353173097134275573684804654936846085893279519387805483535183845795512788897107538526481259181979522714467314889783066814412948090438764754172032883679315394873192784282061408378211112385518592573720264234464661698520633845340600855266871699988254685318368450116433542242467663197456134600849630856057453735903033205858460474211719831580072893001356115756207174231489330479644746806496381293164292352358113902966994946800145068838572950498800317429475562367674376499424361295901887816363422319493407258497317389718473874274935509850647269696844126520678050219420428761073628889385885038732456855643881657884628098866182032035782303338009930591300723334132345096025973746052004357099860029814550957846283200151357359254602735159675644163653011226471278640324482400773799691764665060238733966563567934039835656807221965404885119322488205427980912971100770045002277546120661716691559139809765659822716963173713238023308189464381281348664524959954457359960273403749531981034137354585996149549836091761262853953078738457075946329303714882251930381717511543835002670899582654526381103725254887743926013540602522145491981699579873716453513255099052087967799440782253080775816995602711127758544868440276052939451428880029095380284854110122615778414915814077499984149629224019889130831785966691538822900994694745024784490257136735697263979283040328606345468198590148086774140892108904010576575031104192216149418743145878476136714773918305353143832266954538329922394045613360601782141188650929220792949664091216003590511538805649216270544641912365189082065327758919973892229390120026823222236977367233003938217236746530526507439140683094747321260320884009899014802678019948268585535148065705391400576934547136732038757724513069759606056795390037265846113845113230645833725058053167934472599430552175008531778636339819472177438498394166462144855051887706616890278874741977750727859461678481964887923839242970123021952643848769171169294191367645398975302213189442746898644511952336113580869952565738499513227234485893231138679783119517843877135064823078704829980344715507014188205310414266822948160081609502468235978893323946769501559475750223592602042472263849410031136704409745365861030801205930892752761072852639425752928436218637764253542781899306480066569636727516169718199072260193757116892594797447612487628882179865013674750750063832347988396497740048841235756668657161421583110847360913934500027320051307981281570222561690655268330308366563814134700708194221664848221041593434919082040564085952240388003780734926165030023171799931482592911800377474465950156593998138623869286906265238206123362367459640720983507701108299079028069034109175096357314561823190444770495486618716069228030350137359522412331696418348799080748080408689982217275513161958780967752165398983096203489409368385653942119612308102110347105174241643465517192077927713852950602675186424396926553672334478410068145595114903678283881757053538003894600276907056312702323014141306631680174679733509725414626095995788159410727806596654228530160830980948279808777995415133063418519778723030126639225399955941394962110041954607825206744250803288180503393892187565244451699554137647784167163730755847972338659392635224018226080316927670846826907128840619197491176562869996908497073082337564779768748466753052691929850792803668182143767960730508738080830144642975982541700786439730496108341861969661959632201840359163563411843581859820514136319153091251744066240493909245135885190762706889366270990559464689376680069204682836304625016402102743791785448024851286182161251211457000357346740692536790368909502592398915481716225418252452080600390600406155405892907732068730958006174997192036471209788419244666709204449749874824088659052669358894877525751640135436742379201453072202353576834544681206865951393272635592769965995737774411037909107156835865846562208586210713954935453912256732806295275190075494090489639438880642545570726221159363124394916459725649101842575408220047228888466345128030448319017840074011676477395615436471395235581999769359010841775219733620308326257616596841193661458533114207532119529276697170420670518598424997628346041231639081227908900560239147276254723044656137389193482911984549306094462945096159115367552528626105912712122041446841774978186305011129740039411193508189083573332905511440743044446758533039081986774585870646675310587332044486643819547370848098401901457110801511114446629507460652330517345945257725758930786370071957679284954220239137265682599318384963573717455405038735780540832235428668250983407424619172124106592840528111662009232829603017213638492851047735852983920870989263169843588574220637445799561054144370524882233580267567460992544022776840093593181777507857673345320731185308379736957382024604745009604524055600641568355404686418106415591598692574489030347146086368684207141529519539968886399441629850126219826547899506312921479605647184999313392444952972883378335522530665608113911155759997907138289241837357409051932411808327532105758344340786287664294881133595300781151425957827964092837812763167468852532329802856792473204532093854210158071474018094794611604862776786734377575114375923330492549945720627684233643946932701733610844401875653569316078803127015677432921109546037466986463058964329961957990839163885107358365539735868580394756294040228635209634721703945047038525710853133624475454200105259671217835787463335941659232356257039331280188197993487698085088538737901567888592495993380410450709566819780689097913047531270144691199081713805793823536727157978743995647891549064076938192367836672321819058213639903497314398119674217404866069196506586883151348340187681346790426439557385900654837580715281812895107414409604501704396548535905382780434813583077244516003786097373743147217940264953077294295524732164285858641931339046225557314287679022533447878688563797709322070475438244713707210817280726216192203451676638569854214600293710661317844674349494603427459097077940257119887375313991238132600095632063682362858307898741532274462127591793546312149215856310068890958077806059372828374066045173381475694066896879074464372890324045717468931622799152607670087495794636552981080060563205359323461491322115081869171155006556665547745497875592906074227619249013128677758013421084016288308729212261577650952210150804466374403297822650479584839492908809137834911052701891586665978153952243363020381943077972210074929529190141757752516992977147935001371899644889115206473629667612182183930848992602460041899154669973852196756729309643421698898063419295331116601520268906755263925108101725929474115970572467020836237914457657307631055046947966134150629498747616641845707823855574370474740572018709533927231232500033657654418215016266023517184726721533121075096401585101898137749142654529986669208708890369491023049304630341750898351467990256972876511504451026758356083496277333454143953879619686112286271837770262649999543789756618638452242447394924921505485101221670755524051021038733002845936131845844278673382314261769735636427084212028318843673819283471319508717312219101203167211411093958999228846748017416567609937878196877076344759701878701153635070426806203432221962481896791090562799268720631573443595078978529230696719511043330556678384953840961252779583891054879684848620867971749300845214435942534620011241084266566758689780827762768401346982941929580203305740047491397897105912264221040732557891314047746709521633731095467107147882434746973225362089718434140168951520932937289579617990097453132280763181828994331896956895304723703995389058396574835501508194701003364946075415680939094827544998118100311514311243716206028508211677160529015030383998177874986196350048908052208969068279491550381572239746651144204071213280056065362446019685738573258138094507943474066036054359116810385474554139010052108568269641743645926975730111231427615691640643829304144191258097001501476260450843029947397770443406025584831551837098621043718244490932449990941239696807273557499097475439290255798479709348219032808505910233185056595885693410369752178796616771042304942352351086300728128713214793278040206646142623007856140840325983489255712085118985382238513620972879195187746506418610105011000152392140198811550103331906715391496612736381353490620189880118606264888141694352927513020120744485069394971565696370052810443645796540085580441624842571854483720866433386657525228581094828921725783915819147691364603268447620225583378843070662682013656256706042916609673993739633372559817540236901883535300799015939672492877457231001781338885062942677684523610642620854720708060536737626847668768462104365662552545771558209684895512560427094838699004537060236388671367910424911491996301475646726002794069393629208526804159391655694283101370172150024613412555388032120174802466199405716025981142053849733099095858647713112190057785168213546567692543695868395539592269791198151056786242787386355969635159652578010088777516139485947653028933659176240229706578369853607110049534756757228407933874696396982052754885413863809128046556795786738024779624558074935723887491817201030089198899323795339275624929514306391754175652362056553753374784035475143499180169624212773057517531727140899284179971054379976646930483998576569703889161802688948286649839647382240305236838578791765498736162847160152275110555356422709303412906341214050374706538761104405763127767768795582839693606879749299247305575701450712864877603721671366639964795168121815089563593221450808534862645244138042319376365335527483533321558341288886647780139622494602435843022305917574155275447784716651515806015968314346993860224116703396103314344414215237812127052900415296832835814274572054807634173997685403211427870270994658214566961420493586005178320307495998499945367759639015443329837295987702158798404530424172368853956543113249128001668861432133590181459881534511564969308722687998154401637903625847449402767622314058383024632327835558970491228763755160993522863875948264709234548966040439552829693496327329619453926341254044358306491272796994144257715378660212159628384800807764860068442119512842811118606563381627587966850467909393030243819414713450444610996238141708045889385979634382447612009431475013914511029035345846423398665337750340328875117844562170190700826875371234894254845267952905967289911416216871720725278954130366253131216168718400290849140108824741929033100395853328090305689816195958414640350088183835447766161764083433565762829160365278550533429201734442399991298215606563923309683123260611349847459047534817572479352289989350094349507539637348289115471101729844079071163848822988417921854283174985756016443562226461225946402830864776638735945988424504709908678771675009139300382117519811184256499449961925019393804725337399459333773125252463064043429925100636277264404252212933536398388871255865028214839351953782912192325132955047942707747981757306909813981758364267491567563803402416350300899745884664455951052637730388753348734402177258548165703260033562049041773557909734759843947599584542976546367412107535150701385121261710170943881638681800325344560780113893154572325876316875914141839336568222962466009146205514597833791156464792666354362782330254858219782070997473109160351106470097487400073152228766473962912778621844683555002020430719142007284627901831863978702570277226878239103697244548641105888916691110592202944493294362703541330988052688008793461709563048460288276601190708940730028200664359866943099128838669523792986662817889842726970488860447376760942026153771779179096775127871974710440809155990679190772341720808085990428600454545675142277138473782341100531182443063238871528440862687566050697234784773621962023765844110337215904381189469829313069286115985645313989313994899983340440092422837912517555217462189128760513946898847267718746650478527066436257483191690849153712588054145403632674786953964910372400574613022029319950310198775060288023797500255215749964464245334988591590936954395808452804500493663983056378225410562624168321730113237466365081832155139049801939199625148203485233603520297989224377311115009165857010326003536444475177424698915893573470565875149762563268039695816969490397599461063976343230542272130876246685734670460622349378419919838013099392802365227419198605426424971179228205037053758742713666727148553094608077962908093583854654683498403635552168457034303500634102350285348776635304712506884408723266759056557933478459113321260789019286980993596367757831289572697042883799355130392695124058919984490604631927762990564603947687565277618898780750820211548536425379197075472907112634428136059928119173570992152555519802760560371809051890207185773505552327139139625015942725393023718644501766178359500536742452835334629660040084680727285331808352724863433160206496873873921616095592777074720918638361912857557193948445722793390984130659405999651263847999733328982724471352363001173194587972985469557496641486067831936412121572645340765807066896025318540147824874797280631201916673807223776392087232475421013217402193170524688311956613036567070305219123786177939256907627223847705052392706222283749423814306103440377982382108877414396313901510708203127545660795464337135345992806287196946972555924876234056085997602542338053560291986990956076137368277070442866704641224740569967492098598383612829365067744980245221678095700993792811010739323086789354647755651487750747946650087569269504913255612642806005988394995155162576408277981605727557443961201814749780045132178212978637437510997476733763131344406693221698979064814152245960579603637492938539058045809826035568195289395221669574156422043036643722991469676043864419421301367590016932422693491304924670270778248184552311346110345348927331506000123028538334230363824715502555136874563216693665604441464245556981823192741194508279688704694176702966019507450249851652980618680546381347525143843327899199609271085812200893576622256979935986992214992546471768210127651995959782470050142217475458619429603923945909288284181468774841913614189873828126483553432410169649346552629534556346170833510950168069402286750567763445714741321777516730620778218770649224444752082800098342557045778491919168841767717868863033212689549197645739407537009883714004870254292603296387792875437706956043733999010029485263815003262899728551130103698581932674488505222842191805455408227747527607465389890506437479816983471777490761037600628289061945763967812992880200275967294498615477065204732195418902967085837806056950268859915202286168317793181381113370084664828231642940194035016674892993924087057564794251319995861278330973526538433593841675247530968424697781918624343771115599252828273132951369787821407425451631268645232757808217439154214688943590977318156580220579640441942122537014799189278853790337774328734095511741378352019197915279650013938688485569374748216129271672957278563847386324693858405292467490402241343895188323801079314601834291621633196573700159794273900450006384165131451765590859700264700322130221985224974139157795298792909634972898511760181137446922094253103131383449613559931817883544164714503878554716659769824672479744031166060619891225041569090447646624571283638206166742756470277596897462784181051476701358042590385753062036572937840164916694827135928569273543067691788670004922027323162640407025502795620934962162273386194868110608449358956017870858831338441728876389093153740724000728025325627642840264865650196869797443042592258495804741792279253400552524744950234083926561723909309423006093663032348020210867886808965918168479273683301432714695684457049365421273852364197627489417603760297520161535938944876220235739135468342725946282950905765143194209595516072612741353598331918412357841964213428872566873897084383114104658560037688220324630865651541079929646904657770652379505345960246149402061560544843064378729945258226263609197006342345695812108101880429485136828673985213253451985198680652792016175389656184118252242529689346349832387862657383224882146718221239216145216332527567001704289399052465482587785124125185612578868945553166549754643047535031903559023214381285817927533984012460823890717054605835960586771990218346528305718682775107625066537094529888302119627302931858892708475701485689985296650573384710386205996389432094133595779644769922141537865511246485379439254073621927524684823828499731257186457655515086958241513497981570174378273366379934306509060649809298386303335394250218225663812732097435466224458876434994073553886358770672063368111132294229836540526882156127024596288572354826421831454614331912545833118125597914736484012914686221986737581897719518823278520809332782805285034388138019528455465051393246902691156026768435854439350762856672612665083945358983093208037001078932436582915508013223812988714648091356440292471252441002452525445080232461578220635868716711055693285438016246834619674923755227751310510012677605764387991571994859706517602138914640631735022338464345839483543502798190272879730320285084688401987594987037814617966864628754667039989630424833422549049244670132939247258323623153119971239894462176588427193382546662161038214006990230277426443857141757458794397897959481580497290597777262187482791915421390156710404249879603838398730807155042530393201138172623366914341884766267550325863449267294163554406164160581260068978504890246540953673844850804419948123152264377783589280107705287235798131917642254407902629775223299431624405682282404897958586204209590301675307700984125504143951737057720575555081755126017901812007351334177237247622081200086044079512395142659896434037642450608295996661560889038571068464029141271737657151348879446426891076941089531011909992999563093090503522277723326291470140178644514635311873837849554388250085692730878394745287492017688644731178310411019916006314988189299906101527781687084216213818395570791840511980675977695998753137757726887891088645916544689831334742354792980519109215146830716323855351038727187544676708295297490534595376525931925165945147933685063816797347866368832707895439596677298327096680062790539599982945777316823832607388018065410251461721628867883587066190936772979664222559336908245867103212145301576140656384883204620465511573100331062717763663272535510511401137294797424234179965953734894214214002365844081133883197617525505890092454531377560588422476286523876062724699030212670470780945124147162949557027040189986666320179842300550700844075332796256999177187654265257033125495139708649447191452729448830509460184152955625147404095257980099014633837977690212939408531024885615673506063386349236844895075282334010075202582830620711371905942678155214109218605705420961030713293725553682257947355874625677765164533109298228760283792259302513185165813377060520921086575617430123342890846992234973515116314217452542671397892480500251722320908212457411077611635359168604652376411852083104556005139095894987309707087231114254702312167332038108548092017873914879344888372685456892148778303900165477417622812605807283554153313690079313963000637697020076253505072612334415101114280709368194022369899913082474246540127019401132229999320483328746713553834945796358368992886232904397225844938171077259058039497162595066369160424288128254838697159665305547425435455973433201650174716942614086413803804665953223880609959689304939813989144177810804401776804126311873070380328407813651523786595055100874035838497378172321001662305272199478799074360574231409928334586615303026591088028489438826271928605926885462526118115065543143918604738638320149520141992401651017397674092260432548429456592585817768997716520267498641989074933642588243030082299140884230370334920003210947642357493708251538835961285540285715119996841213095132976010606223844678533043036052833245947715175211091321846929689013599203990675174666377175408931626352691592231667585283815133095733518294423401948575999288757158961137352500733529944686451772778107293555066200111662786406845834742122015354618427456277813956310035038009018522203997262759054682726991437536006586551263453165342239940332569876199032700182932290453802164698053155309882953376189673095344571303771285992545818022726137465569058225957869209898046116740093917323357544514241815594279041648405012175275111622248413764879395289487689110620834678757632368819950650817234936818500492013953969311504508406318331697956500115163300837827110749772860464151933114977718620058172118357176588916463557018448873306567412167110459918528506122196801107322548295187740766699796023038472007253327600594678695267905143195257354771411115730628379487172387990101107371970337951113879024422857661195134709382405516867298698709458855280989655509050058394797768163621359958964546693677411679523655933019625431714598281637637734830415853528871062820092867345131786705790558624228776977038033586718966440076045210507780109026374014363278004628628932431216984895696926812699655700961162978104880833322640115844498657886919891551164987759500820116547107949547616272535974431406989501434791552148701805244068880531824450548615105575082458334830601530515271410340134615871762049327376822811793638223772636769508996060057645760743490838086724953303401193647364221640318773501742628383091816033713053081947005481456663342292943943791296136117974299795978982220183820433937515139008187956757808498819671169957798148004686111102029985597696284193886876123274515246277330804465733695463654938404008197776097066391323765425391868682035668542766193268439028859199678814724835023195058877475641591064189912406912530941631256195410954353088146423434083316097049504493098116735398312937355393411873200886708671067629280266231313666098383643075615682433710032476128660874213918935675213059506263362049826465500820665018774633318404810965372693993549925084609322236389181879005872492386107832157797902600355622266439172544446062893294594542958310015673005507543724742621184651637120770245996827747589021270774608232810877746564376220508922117628625949233373223067991761502464359913563816206074085843974251331593898633831027241143850753208053897338011591250879562340729139453038627070681780146819477240289396172216441758486302045164887958376109298506760537167764010412278781795500182331972605746176118837794684547320398918381170197786622080801810164834714314032925450314249522008211143307446640136242253192598750915751217391324329653494012095392865347084631588215049551680144287064948483156384372726304816947957920355668445778638297228895353441185206100695450417704454744925970866988636099344700619938864727344992791272223165852836232925364825934210735524995285484423127322046747107806424366995842385286374322732442018283439734000322418590192380305900587222928961055149938830614135006493691047390212915439774945360510806487208013119049022311070723077062428339195289372209114877839087904495963152229896827082205304896560163959455860755352222215957383495960928649204136611204987681652094163269125894048452822290360702772755091042347607151026084703720499533073566165201608031588356387962243120890070941921734504778787740940714687067922594259052275181809492822953318214890404208439333772858902536650842632772581439486019593764875492447115208596616658830859553361607170585204247977505790595212049489913462737333935179735374909554018050208624252947155610087991541470696535457299922407093258038425538974677635148089518769883646358942549428422073120364510050271607803983361317000227633573220580504720999012877768935337598574166458520076392168780485736753929495033840982293979706583142555539282959192296980687772279663972939077790821785173247610873556418967084941823230292691324944913403757697788000085212068994885195011870424308197047767765647705166600738206498848571710483227234571192591806527116704896922909858075153627517095505284290392243650048248807448131857436465669844521805366646754837987356791642201329619035170864147973371577541061516174240444957995803155611157910308731347209903530189499946582192992196477105688228298614101420194639054232858443817124083633226562432512383859477635673012067644108501475398144634285931049496869363826400464162596469514903196111048544775919170658439270676024003114521271764708333200941756887387594777063240998092068463053477433241945220021763000466228202380827780419779493389391889852244085506866690987261509993432755942195136148946032754854002824746381855743038672248481457120412894022001415268847709624612221149992288764391919108994000764500426736360335956446442708189785274177077451339584095760446211432765598925712124640704976060688947521778888467536577313088848317041308470830281177925946670120877184128659419901877875096320028110237551436356123048655461532988282999046174517748581477601231334341731387710905577093670657365502031757900430672293031445024199197742809676221242519928632740258370400752972817435480410639345063732675068434688183887483323541121663418804241233034034909675779416537790841258687982886103235278857332155338151988305880458531534690431308980963694066418137041548593149666711598130899440825457153552300652508228496172872396746508251900453245582357486877200667479497121636028208523543027838653611711245321486487942413213317008523154337277460768066376699618895122880491089111765955157364984738860695247166847523751446415213365489246727612258539361484165143858186917384167543482781317663142911693785564618171660966340291272053653025444763830653355045114641522470865121213129009990019681516959215243039102294969643906355219906513943216303653453974715157350144591560970031479537382507222864326791180222854544505100668683826497290748132584808710208874950514269642937392581367718416906545215610876157378020535279580044684913613691746825371728035367843503618901245777758338646770048718755154181150371412945491142726968772088619529031100065214806047938943042612112504746362225675393476819222219200635168766825821506827988016073570611080555786168670494748640420270006144009779441876147854976458239562498054449551257091064027083239081446009251177787652063803937135711764476329221621412656483739471074513229050737205542332620863523012111923009932821647536436923790632503356825313554330347896291533044923115380919957555329449870528019033511674075276366559814722061218043857300307297879217356850001256233180674259887240109968969813852397306191955928336948611903239492535944158365958161383912185411951519926550704372224511063367126689625672758667738823879079133645093865117220139628594478654429621832667845170020278188419240093649036627235744372874485633108728789584584823525082015627422079239220339204508281946226152918446070619758228521338779696323678640133130410995564537477406457775768490351379167325321826500440150064624163640463117827796605357566760371613744202669161721891429916392304849738254289422199854547868948256705457712083060696640151754701139843828993193363522888572981154828691359603242851163621922207667981900638840484271526086590715537049718593352260571181041504579347353963276399887232560636896084103154413642148782611928541838499574304427686838514591491891874240066190283144798592264459633479953102863027801831150089300076576280887077688855667113610618616899624996387993702911361950062155095910026639429805842317789649650662756529783441514973388255236336446520362201321628032135004936195975070269172783237013837157643230288810132963328739382457387462450968950822383308441761924084760510272468601914474303915108037774819238710529112795905517498822939075512744080364169328292125537800884919287028546754254666973573970536536245400722239895620130676048113391563497277605671449640906404511480948248685117962164044280689719576297535622361816888500272856943365288001318441212141123898385195278511948146790166528406883821869586830661295903977459905614870361228980984113820061585914247128622986004171890645301008203279408858038576089051226987600864246064826948504861862965172218487518355652881466312752376870674667526917244167297354569567331667718492843943138599577385048506109731380578292094499444632394306068759581190038602619049210983987196993364746331140662945111471520556948040279873582430918597382639771340411416016623775269357722361477563479055527521664824146099814862813287663118752410741743298743627538504577774254205757662739315698404385677291438378359018235173687708804803437428632366590745228853952283577868134721953766050084686198962633005033093604099782229148151475257718379528138489156804919218123836041227135829611649724710802612545920595248651142278339115649754666274486718521875618162947119647138066877715360854178694183861466074853653955258090169662377800006558368188471976982444587322984453088699029933788779526571972808991597939419343675227186634378290793682444032062463960186699049723190315024362504081305535338306531610923789527333914369792593690728697404262340424758703379170022149258343524101571864539834784545175892241236136735291362601712155441084930332164423007596971105885469586957117263203798513719294014487119501537158791633212538307938969441274689227398610118372085142869319715028646909873284817207387381520159116379451230101019666620364454129562919035548105191253438713160015241247855045224548041708580097441643608403759638018838607489535266269503532816480968167944880176159399293563064314571114835166747565462775942167253782296133795200482904228816599956705076073487042908590849968490952949104632685176365224631701348799893768877984209294851296278523015988301533612683429917766146392549477051930205003105560549367763391632839538955788699776971431354461013249618901917057012018206670211657766541460513685343451173302843741097526751835575924718515188909168989486576041645332124170280811484675907730132725479460941550972867896718796180122044335029687962196440483278863799604098388253629382303958396983739496101712358218421774397427036469112581075159452663554646751436788687978229022955994771576430671265259718556151103574766104209641784124768301584033979360112118781120082317450371407570040927108374354010891993459498375670612740971769921395411095210125083981365495620451502436684311339897385873611306512474524232154257150917098311414008602648905393707127744124406690768316708542405730036117869052432320544268235686500327030306501507748047387002402672924144800205153067732701911145489873963492924892062897129047830449268538002831487535810599705614838069273730096866109888637890295573247377321839296823726596409999947667955760530718216186939459927781644525369696581224500935645899443219172791686763985578925399696609882487227058690249200178490271214863539553280594682884699335785668968529914380341052833693838980810654163125074949460944740888646908365216571068529029379011400101710418758204392619824337261561113568584173076286520631003127497144699781910388199260901664617975406910297256584746904507192524494658335276417463995178861690567326593163341245854517825808244900718850178514288717667208311599555929267262117825611904459506934896175722832507114752044127677657505086893670980336668678679866809585451635645045670009828213046712442375802553358494967834550276310756161856761102420062290862217868011243459156477566136273107961732523468140907001105009794586345724419026620057736717904612327442085379760972626868770094642272586850071636459572360638163384749434997520654319048826875825350515691074271345868417945695582717709802752816862020313195443597491646865492287630804666214313185341739865035226451902580545172423793197133547989443130184302401189808568284287635611511359254505175900660902931753419723703731662676310455267705728410826619539539676802350046763923223819889539040992691678591566892197646205371386957697999908884131768915113743462702375576135602359532129295133933068804106622580955975301522759071143072612099804061120495954470252902245829810326046036661079078461456247718072122094537822437960892084783698815339985784383584762331111455294499316358956545170743494100864563756823652452255289027971719998672996381621378347132538829807661287146255347835297146301393797884322985295845439519676803864770811999621581708094439895803825070711358270798334780985661030080924836334010664378517170500867285605725665824900630381665925027603594014207243253350329071534064372099104955441721929617285189318787667540913587710997530683942283296170848065834349711181400922782530261593481394755173603558408942664474933095846199862068129248429990069049530956019916735927003422770580777725794298919248350750002625357538268748323634227672480871144139303257644516263630141577372991358552647618310615475055054350039788791534532770215960445663570306770661001920179321401714796971673846973333970705605859892283092531295264942795361836760792879940177086017608475303934791124788612396945329823362750327417646243217820505863121003280810253530905228112133576906734827893771929083668640350282799470624862476886704402085953853472413704692825937227528959641559749916775787268700961437933909121938699113630197318971094560373016111097666244244001817806505557246233985925686553861168261270433407009518008868971398949213194807654561609544651226431496693496974361698396168741124092692508791649510122518675248363561605712348638468927964566676498484647671650465612669908654854037052810502823254158231964824582861497900418034575969586571657893599120269240475446862562656707144162771143207057262320457058642548648538642871832592358827210050178192591032186210252542906106419649321973848229246721450880276773631002510614658987528184567259205007900609926331793502930263391497547899805591598387407228201211160318474460731309264223605720140683187407414368473566930281385968449636781635546690457525318548265991161791886475069922132683880788802178150798752627095916528280767673143687407626055402771583328466679056225244150316045686489418112599997950353070728399541880040621837690405286046378220683553744365548569477836150626359899363478702790903099746277218424110017648215901270567118208766878227576467699428541130542428469796771293655637190811243475249918894104423899887655814909816313382834439867883056142206994865643705634568169510209714342381265370529023114891741626975984689067549381513688231255317855349374611505045803566781944318476851348291726795304651549598075641168998237936862654522544768231938216555988168975654498984722336080402362152126378985700273204797098350733847558808852656004601113636641069535797344908686214328577769297713883866875491736835535914853057824571910998302983139513757052525620958095401789769541394615172026176496607952106330548645811890332327753556080420928807954813104430831425411756469379644937008805178843906465059869952993456228849781367900568424690668982348037672283914141463938344197050525552745661524307031168939958640952184680068901136191300908934268278288375705639519533012518018235004929310697272580570319664319775643414186491957095194411520225796015794217433299871249539848164321588401682318015676822058890334434057690623837262060541947083026988680883194001517792506775717517459372238471772205082093070415931173622020003881306078884009111773966418883673332044652964644593441976859642812624451256257788632315383190956542867923083451240276168883596525102882925470174588508778546743233541314358139890052342270388006077143178342526680299665251595805267396825662975785411273245999963482719371057021772767908830058490736336401316479936837878094275476160827790635398026354770894899217773445189729100846164905691264458400492070830852606455660554188794101768916027728337257152926339124809056000282337920177526406893511804497791997323780203805484515346421441121574092611717531775253425231265652789565479949524999661341866856113717265753576161246756393636346585290219883593583139219249139341864245413593442816603840579430340585830595161258412086641797040450055709015103142797901457995856719745613645353724475732597176241622166560981547765107924332845973035022141801910437784872406174681283719961462839166425348030966724024117848379051186988338391790267930764956491327966578197716956457475933313313426260774897136719700587905164110575608680390392686582634870634540551576313986167638107741445122594128550754494215952948573989863056847155351487711933227943103860066287606970726922388392110104220541823141878387002847488883890566750633122209205148078706136108428374406008904461466797371582627202911168422932474824789178968587778059776094181864431634002885026453644551355067121340118869078555749941020501202058436935943833843142118798496695796671231829694191171815804943525795240601837585099793437113088026402154288164434430672028630306124498537156718090967836741275202011134541349983917111725353851702142430673210003144137288710554407895824702376490475232030970596062076120274233173017656903200367749269422733032275776275170079415069130235233822952293804237429919553110013757008735740489604930149100131051482856386998429294173647557855294153337949392024402317194271602902312715943693646130477801570469751026061543356023532272713255237816494055253651889464983903451788574439635435801343497602714738438551198478108928668229457725753597842954543499095269077618698050126097324257566739651664186094335038414961838737035093807038010169536630461609240729436221133735537225631799245208681827167064196100450690001783517268153921786584748124069882994394469284753921204769670400891751698004473501340113780055210563049882543493206799641734183811320822606619087198336021714825656239371072770800442603025786437546914140646737998813330627498043404884443393728585142092907140693132785150534696812734523204636356663009170263359763238861424438018824049100851015825229325655672793009966171516757110370227909005772432264519348539581533676201804307906634693859522827634852807373926695415340681286594346995691180472437660893831562192438656410313134058911508072193286739168832381494477607199208103547538842345389673265484968440806351067157523712030750328876853691661238860177353540400910880395892751210025497166937079787186642922014014558824562342414467031323035012810324420163216305765377138709905272596849408782981186152588849252721860328952218240262829832327008176345561299714577465837854724296746182466438490297865300776315937919644254783948828268065501763316234010146327094725972018823335388133530254565390463483105173008497042615373676406203301379064787387371214645255533658355828253129869085396002636689072550568271410004173522898482171759994026807464914188870306381471153296467895593180865122302663699720471131747863490527766941427342272327958087000259828052580137853878320031180872150984623227074316277615294128040427317387669976955481915380842773570932813737605617669370728806121195580689008159939826487645120033217856486984320906376025629999288897307612477412283832696161107516489152282506445462683064172271803383431737658197124639514478783200093513333186552223389556602516470810190022446747793987501087746162698894095028131074856975128637090065771914143770296754856231438325159503852517313664426550285981057641837070482406073207871177055295453096981835197292941154182519583530833634749559978987631994251041743808773856423077173325405197636112390635219894917439052550024775592393944610777614131867655092406892223028644317156237562055325359475888341884110318326056616085707801241213297274916600004899274741402158343701248157419129887709471169331110411304646457319878710695701135487660168472395555808872908971746912203692511897246805917112574573943911456518061060805637865308957847735391188780952243969780018458236443954482446565562789229023722984608325547054940682218788034731789918341605402685996748721800813207788553382430527889525289709770802608507881752684419747475030089442427002773032472938196957991276667626902535976229524623326878831389484003936817044687218510139571324767540822323043782281750498121221849238110607200441017372402920022571947628031499451547833447030334645316373131527491626927728719658075797656249029624121342739474949499605804582887192221824373601628086164468294217844866433081941654909805035061939353734418444988481855950496502632226450862252087098394179516137292615631666411637908625996619584832695382064061026825170404948988385791924216865098291704758395293260119443105729997009488200064628250641429808857846119843850931743499331587540568461844308724816903828496944549149121128389917442698035544256672059237594015085287584120562381867054311890166818097178919022122935188742790921955155180888689031344770845777714549283578452961724874657333204316660641302224078094099240861486196616461791573178124113520858151699182455410544125676216433441070173512032368369224702394752231986468094665767008441477627112781820370673947730272527129920311438451352019946347089810581466817328707877561024420480747530842041044301634872633267883450445024484231091775516736707605284105175214522934932480284264838848469002099445286264641842034722165709568643477981110366220426052840320341215341862403961367926539763057239176780823941973879373969931185790454468787315002799164768258851740784400056127034280313124159400625600806031689679607752678055851584447737573204098686615089568326179598719347191082425622188268900233410539718917603630564713421885935991661004043119568998668547095296307607868634751808876682139900467692737094847486632625785263229965264902904755726556426281710673612277932681885116213824241463851419800618482560202162079647746012249996696722868524506028513800617648263418596708376361601771787875847872113524257127483452764923176264625743670922662113077335552056833860543070541587402449290035756111655557169985793131000681933285380018287774723250914115819850576954509512870720057652266342717714995753519942375852010832755725591013419830661178092084032701596302419735914966068109019295387886496291209154791318409276234623131144410252780158536443513026311959243846145507833436871321090511487271230958757797122207183607136023614162793363027620066151301431755842436447252712844828608334767494112067999001847319319046961301417860432255267100830950296615161233914007232481274069433748481319458570184419485195460907139625406959265565362319238294985722128612645094639194954110726922190617568177212932823950981632942369731247240843462067641516583724295223693017432684138741020941322315904311230900855917808980986398114724234312597727307258749654507988460850364940355636064213602463672502975825882142397090696389475158521960100567087576174342220068818401867828964079713421198798942420054262322639109160808328221720623832181566009563766131150703525394313704384764067125707365986370470574729955770563329249287066767157842639748416481898746442062732629180918634569514082111262111830778423188055048390230182385596198689725866375383685485188089002756723914879675747587144770449639059666476388405551398320851105180869467334421469643889365198742929450079635793367763065835479134409437498487491781105259529349460886960396179237563635270568286632335693875478284960491495594355811233762962794911089627284563066959031292373894987390646454823452653011245970936916636819842940197570396110501809396370767769574613416736594918684071597994097749212951447536435570510404907182268047753468921921922396655988926401383385425649428775082404565581803397987528075009321325165955626489684326472095084572694267619620324652425361138081285541080986138899323175276100059368274818919305726879270527066816509473844112413522522462164058966977377662669472230604792593765890405451089087271966929602615646056922347083077659724942225173449004958810325871173498512933407482889628228684514065870595822088546356622237969268457727080062428624708391000127132274669329107759578411605552325394275509600607608370533448080696135747986610034569429050487428865415852057182474934302926645020129015228508576137455210972739110882540490195467902253732559437010933022233435336792479155486508905610315092010532977003311490993319144158254039376710385615125897084131515152832179811625094407838446359926982485147799826238367154228185069666716266201761609705670948611250935942092576725027370408358338931609750567830354428400003970020286423333532380030836727576947167063207271563288145135402665452805370561633756575655615604568397358211272334930266571373761578088814841695460695189245089776145827730564471156036723401373751239113342221350995201035617764307709080447304826899917797646876003448036444148641346346899950784555102030298886333848328181072699200088982857193684138915398111676352370135996047767943273521946249418339830341772752871973216535239747836661598830001870135480072549967794815641222507319820777374949369340515926151214725240913312432853522660950991788624206214707618144436516820590669370269728484430350602521914049775512614504465725697123159579764295821796831320720497667628657047131171465971689941414194155855279213291655341080358645394236043976346169533528984633901443709771031718852633529786009866930866984352639341843697031885743906286547106851908002382479226597066957969129228277977600811198961917051876577047154804076234201469014747012300723672006374794146524884880021869725445463705686004723267422019698082214227784721393055099639306665883512057342095362327068335190537432350964241692802434924637529131968240070383892099468207970820508553026506084172906467894329248904226662371493914871852045333605092819272200266783545090067219293448357187400486452584361950094552025533853015019360827545508148367762943173466687018398966327368706671738897838170585143556166265753058934928379956883715661905117469340198535875250672746157717542792976654112430661688579214663048265376236291786363447873206048116856445133196337759745210891420642621077337168716290579109047378376399934031761013295865660178686150841320259943918468802660091941207015673670527521044602542464766222553796856221129982222136619496927805123461358938800937870064458889553009309678080220567122291173244962194666336085015095949168091194431883188755727288072604920484225726950234777273625668174264307924072732430554923883140548639459295216734612059347331081226707443585443063905135486124584692352772955595950816339124034488084615574831651102805659691260473822009624298786189595228730193832928596279934984472850958341618215438661086913654406425908911589698129897442714708606373440889508112079256324343912160486709803726929822324855824995708943110863765484037375213836977540372535093086840240831865921894754342546568199331920286973641687638078055942726490940543186086883587062399303809324893776063958808816927882172328401008007787446855284930095356168133698782188131987960915707800606587512041368105515013899140721605454073209842445711240786902752955637176499692273209734533903274938422469717756042912196379400439291393993696383431238105727123160165462381860803416937792323608064841668516700884580070799053990191389869288678868501254679168252957297950907781400775837291959525923077898529009537496931446488560420183072483668164534888900616418487213140176197920673842538852829602398428554013089339238141175701208083015541888719101171220354396041258813688804892939409662947667940562265648193922536371686301060079822869890537184707195524863614424529839860549722667381399271232326979135267819475081542475158259570718215174779333083805385422525935868790011201769715069484687232397756960219053027729134417989533284571722569595139398450080818550502846173120934633238976743966867841162982536644122223505420632363899786130116046064276425247211995387977652547098991387573337095875444606881810333079159233516940026805099690092016813695028758939377149493311215724159021236225154972698785804236244127487899865593145938269756931430554981795065314418668327328819513027519956721753823705715225229178899738983906301739917299478596473288245148057315766239727468127206928354685997204915820065493214263737853653777657763105425649156377280018981099444126794727692115095607280236282848806019820301770557360355034313476907412760284240702785624501867604936809217966663050628579192569032160921550382981573843650495683338819914203756320762894376846024766103943520229448101014041168409635222224465266984042964025300170064070372331719352207617831350035742568452310201544861847411294624049632889836405515453802300065762431476684153339805267798198723759552846345594350875975308122540783115285645913826698540619890759859202685372792300841475303461621845748488155548751802807500870114860205663005110795262621816509997046246093820030562461035531104034228743366878696989658957146052636013394740295502774288600482358997616032607498570471221845586671322714100697884695817126271499385898285859214625368691960786535613356845007576646743331086324711580071025086357042200427551027969222298288679505160390327842273887381118303297732968241604268323692533434394805615130277475655642243538631283413939265597296620263849694533758729394690259628738874014880709463380659799698316511192908802511925602858173049910841216417996843252364020412026660339061356441401313893221202873062944532613198313335654125205821195292932149405364882300337137813069933752626752573427205471825985193439712284754974232282540407662617308559179774871262988700226674104747061146869802870273514819887933069078040518521698287223191317558377555383293064193433276705871185727668714564964750046792370667719907069138700087116303944297482298951815094107419158382849830008905156337499709234458126841189055720390138093744926726325991473345522166651405838474159317937747013883109292072972574807268927486362545010226180365457994969418363051852033485830613886089153747576814506890483050474323104175672544456786775405653532462442638450112540158811337628792279144576999324549020710057193890243323158180677444472667231766456076823483862792139092387243041511088833740482602075644767577685231345785784346498458293362407464801415979464521435092855444146566236726007057107442947148089930546252461505395466729457454775223098859383492273211814012181993728972747836391302422295422832265812729939788697581742933644005462333979847923661918522402262545620101262962274256238175300517763286375539542768604195767584878682935658016484751646810850672530738693501865443186067821174807067102386061328973257124478239794432392685146855870717593267869335876854716034489616776117163412996673364505897921107546018301236333606911449641883879341218421949353787499665237975153917630591596461034715212146564274723918539650213163259112308165283502948681956571358874767723962901916931991677686458730587552887475970901591888584134023149445351637158204611939295386500630901968781148725200246325005859550973265669759408809248852766267444246672639849454940963335885449443855070827786604326376695588990942339213345324374586923695535840844157854104867882308876591499258587761349378939338172395661267326458605886099833130238817706692933483404804894481441182843465637528081665602947298876984895191128972799505976303277305177693767829975992595734475281486283944418936299209900241358060024233268552032534364649358977527069034359880903887764835281141728985220615766577189745996931269049942745958577489007150177102800505102185087463337480281826723866376110593672121511789100664460382809245724443141738580831441736587686372497575017241805055648156458882694424136256973792922559459020506132103923172279468628689561996741923400739013168793818041821283172850993591980470599890853152550606111290296074552765416055543234626101670881285152031851635233054684501630978768688625160955392182019384304322085788084740784823651151685245792053763628583004724889499062322027715010389354247920672721803903231808545493523002157032240483035751683461419504518377046131294502206404923254337208233095668957898208001861335005068753785517389822960864579261346012293364278941293472373772411834710567199474988132556630241748551125446135307313825080177595900205755256882935354103329405824763345954891191480026305941122856290209919829708922675202451182220011255715792407336505746127588382381239480241104044907188979390179213491779857502875171121244970710366288905267450506250939260199653995467076685614565930046721731049675699045562486633893772473508896872455308678381939797414983908087007124844406148488248961310269733073859124987903741870626001051421583904088761237036537135202929487876505488851828534282484100383985536623133764576709237044770544344802824908862322096586644985919433631192058316205453101445784822337399509556817273414508503565028059306482927185297472128532388175324000776256548899011148468346232180460707175823781636211573793933365635143612655788243001838705978682745348622410331270982486944422546320518242977330631937828805247362772790102365751583877704457363802324310105913302522397460325442284253047639249936874122594125253442745719143579042619855980323554107555171796022257310079403792963224177855361778050880494963158738321286755542970688659515555216828508491818467151197608790723569786036462041091972064930041231501888377704583113976291870092380526818209787516650895211993782704945513992044479894337884842312224876272598929978954825746643485755792646037586224230854016062202312395837939679061860820207384862333850063860371679539464128279817191131196147821670008308089507854458132669548181663862569509252316482191782213462414175913354379790283414237783538889205956684619798105231928257665293832880911966876104818588964544244022054274896911206933353455235173072013952795452161236905634557270256085826606485383918088179160707606613864195339075346310423163143461455149546839215254571765230176279071346702989641193481046862487310912905882869305615485501098657169943179483204002046150289224283253987204035091938364542056806579819349237779739923616433923284412229124161310236812384123094008595559439212389026101480024118436732572185669286852117117438957735567136944036553418826630321967371220477846139672424239343820655757101465210839041105802549905743092709365971812132537294532761292557160338115993272951200795600781120533146361127222089311501471925179535242820970463835362813237330503957992142571430996020339068800578351873981889314118130306073718915536987311697604985511407637751095130499113983932418267750678612930933434194460047109297871418984838011031102741884378329204828390622011459245419765221268914531787212145133126779878455604456159595249754529857535222154681714898414511138425081410550130854896234243628497910419440009535419847829409880436504183375719505308169336254654866850676594860210844032088836979178574562358881459948339271283258175664781489307630183188450317518770254338151217217473808647418369178051185427139283059255152036961544265579274334095174087902928468948476751281828993693696380052096625809630952244784114162334706388675154201504131753538500081328771628081047001883468965555544325765680376567350202672652996826688446781066574956350999859617889432443075158310549771763453238063905820477318116208907400124014920080192386954492021367930242580246465176983105671485019785695873997555678750296617328670794908275661321638302579365272711723576493719772988183876501600469601980762607172973387195864987099099687247174947611141014782590188011824536102152204220498197618163530033988599978726056037579759868030733147522475640075715187922016448589055409022006921571006776359249857239955276320144412168491543577800552659548499985124797809019990908814255453142011174116939154833148205738280414543627180464686626291373582349664828752208969958362900365962129406854850887900797060971536150493030709714479356640149031120553080824095024438419875824164708605864899073940687544131101744503519464872331767462602490066115788861097162688503239042564216657930197142330777144535538786284325143360212501899094526144540052685213771778766749432239192593559065144012279953236573878596336671886798210051122484817540292475013669500504759670844180126373458801066225304001850669818109719049088130229187287636601125981634073025813256626207879429393773088340581698229404803439324680675520008530432140538370368119674497364266432990337815352550225246825427764482726049064908269772138869837559244207237728578067019484075482502459031366717778767945828097120074709141033453979230407021247047895972416306316793904262463653315382468027846299984929558297067770367361780912744865109613194783755421473472609778522142206977441733393023758891545174462184146588817406332192510663998626369368800156129053977489178692275227186600000648688606943843341695689761910479315504073790699480541423931403427721205641761019184651983162275524847093788750088883031786357307282918767303563271353874927186278478368802704578485708707347281843655076523511706256755940456147510817462888651388948901961691873586644017891139650331248286282127732341495662570381436670394964964220174269652541250313866715492577924258247183930406221193155293952472956596108834910773118465066108537822372276507233007298643368167640663482712659661133551940546215024279598826033934377785136896658920777477038091230619879767544853888493488615179022989513355151317816944793898448055101604475387293460208105642399995653132943818118179491682066434229861417488886246889109104015783835789046470338506242254509152617858172096015495904190198081724986333236532399620352998335812881844400312316684412820921571036500317793276716554859267887642911944388521823389650944951082992926077565435181399883335003165944187490157382515153491173025292109119075949224257483071597071033946394772901771111795483875324543082191957109711631365585111336167799267450022545674617270261926582280969301676526353679785621815044068552425020632774312078924592807308316095449322819905787604227141254698992203722558094193132907397952984690749668849730282861276834244509402541973342783863713321629827188680287704885903981654266513122174665068839034388054066287613241514736498011322568352453964459177880877465457020953889057559869620433725788582887664304014860288134785667775223167700852815670313517086993687228395979776142704304433875367404610340962659814007959537338037660820668071019298809834646112535217262647461480906245084356091832662332861476571788736707043264496423755831118108613532063045273135501338932584698039650758945995278709868677366166565272940966270953618992380834352325064535406536366700812380843142129160848939260647575042436077337007697801048622686697327206131308771242883807951368232596049354626987547850697608709062139444670987050435399717068285577732455618338596725841529584388095410036379769074832639223226967631086303998106796892341608259466054119657825083379100517643071960066914226778080310863589495491266601968216898487279809973651882678777310532850591912303608390383406391113657529384738732739647586951190390961292144657800965627823085485257649831923721384198581880491491408122029836664762563895359153095424421023811400942201054358733602176560751537841989836183058408095095792328872313144825688115900293087041948841952225155771425360196960007116347447439350056845634437690033574176028255491088852153239250608784485978816727896690263172001067206472074045942489005080762823397203513834604101168558951501894545922832586999099358318483888333349590571254321971399928556698368262705426927598788149893889555327752195716198846758409266923712272429452524398252383641763866889502393648767029318151507672585976784849233745844943089231935310651250470844594598229323390449455206919519475305035974627883356984613202221299389749069342840233552962635602769933229272508943020206397278510558905844300789720504880441292348947467288678389150262288852912874295275043556502096294224736793464035255126954479331493143201237484386524665786633810460290770251674067522547035447178168614852922458798618961723244658952819715140614101219273275694847104783728576946092451816916879953558040498412411049197574392925110095931428097659219158870146386551402977596012953584700768611682922644374888309035896186112660684982818072956009457321865073950634395701253548259150353689577146691650957644504336265125119916820408853488218399214903746883206389219583967718072126073278856195131355765752434134536657084865934159844354645376945359090314079655081066049468224721451838346650131789067411039280361890014419260045177269902946519122625302754503806032488518836047936463224990548258049577601974085448238309028870415973120470316393483654892654723025152908040772707730361851825196120166242493551339087586691042329502521962227426242566715929828930404311900679570412010084094782659788365032760310302848431325642110534772075835031460386175329382737617103295213812756699397374441853371632506355839050047644050431846555050730408990389269936288620469402695844315063108897864338252987917006595528198783375541777917628876197775025249067296380621847945014014371102715759436540408833825817964419430833308599847759889176852252902745784216896900368437138924036903256321745803965288188275818677750903504077856772821528037441782855392463930301793557599469619528141809981603585622724554127597453696375361955709805352345132665746446826235548397593427568458345430580915983825089473892876921029768874299871189541517320435806519158561327173516811149098354192211828347036572886744881559980262163347287343430001461760387865900136880255812776602634600144920817095907337266610360736242308598843852524693473596609937969756917834925603693389615646024653120908008670272784774156103600087897533676639449245622950923406638335836132514639323912202114104758373638153882739120159065947488481804948983636563622348542146894400775250800230777863764248086281910281820347118317437303493344261779754369537719481282156429854650561096435593803114776643035513388882948516981378638751307499107404631767287595323655332912659476404873562844117507971390474005513323938961955512856978598020477697600525206068054835205471581242947362801219088311512081693681709227961780504089455783599130934763228080151499698891356968813611105140234198784170595077656404824631188859014808337761115523768193830635714319409642574226714354981847395407794813508778895488544130013317461251000430733254010753142425362432677798010605783400730462256735948868856191266923560123298435577265000064743197514702226705282803889500570021520539080570268516881790966535977581263688859147694197974829700113258576587857266967996800320896771899522050292034907180214016910200562865477296008692638027291114694014711955067728439687724873271581274804285978103024505132899744107575415357075206103691029094313706923000275848953212511978468846423010680449037328919226058377388613091210711770587752870318746530455255581540388785652417324957369774887607670119504928941832459182180707700622495028789984059966097284353140332007498193707480320834245563618631659974150015818925437235841475658435711934943348597563546491917525117456083081918043863357646830719241410750040948868501060599618501420458616536896955114758739606606076195171626252502367814350592999274323654217871595338031759236278898782949132690189601796158873699583536315303050304832586192093522214594208207413039779873837909064062124779703439511416304880082178681941363928392496378920442456710399995289756704861790288062734238454739784472819355128116073381263279174219928320972189396961112814976972284264370275407503476407901345333133132456496302881157135538112815499523882630906800982570403252224821418954573119471050493392745559351320420656215368929493664686409056310958536598612765502965285049085025477459821566929512737113321745590753157180290994325883405386994816409967232531224608321089931752489923443811948206643167694320572801425335205262187828721489083506561087419272164437457408832701675994309456501459953883255648240406611283333229346944738229814758202131797535505554577624296325512225636139644685499789403443974936816101659194123565017327701212257496652664631173071157348366699751314182591158461432810857875813421737613298382076751955597554195717239664222676454746520021198627822878202403645259902635461770596464704118323000965795490248713711791563189956210816754283526888091179891832700151008943093350226550988041726814890881229128708295210976641544476183309811369127897747712298020213321274658985263467192662455538831927714499914083410105952487256903065476732185557814100283844205889041468210966905433755520653291342320411149444100772459855641528901216225842635255114707859555321360988093289506964483761877632525942710870131467907675027632598732576679119043428262705147524536494231169042157035922697585321023117194458974786817232156114440928449874481225597231616794441503445868448206178121426891723482568747787662783616836774324940877324494898869106311260038047886581813424621072084554473642151847287687459371382984280350920827521176899384594910962462437545367749182746541846734745927049744842547339625754198994080811398880961788701145201432449909586952926214021933973003160651735918939332358754137954654082138809127473065435451735664490932758490061726388976458421845913459045197700840345225999096188791933984028895432356279060824936894154632361167752940382683462355519428633099565126369680011564888048929462661936465231843409883458602730585413338744627054535383502039757154252212852521282183013029933266179041222692387061468284264574806844585557582486688721350254173093712604179691242764813199746114026534138005020247181395569397702665136484009479262014589759138181669048177231659380550527069076839774618455309912602312300839997984107604782938514159887872479842239091437645430731876545189095326502310947742636863639679565102799543304550196299510289841429099115580018885576177703373467445467848761475525096699445065903373930150031316083832059972984457035801649539935756873406560221992121815670455920865803054460810365368880519721305776033697791282130976053685806300795151760564762996410624739834969589994916851870974989444093459835935232634681288025988542531965131635958944314542006815724356053980185968094371494286556694414900349111556979734615304236866068945047000453891921643594562912220420454155483397818361155128983312621025076967436929855168320378541867742237633716951455530847260914293919256400680948773987875363904313284521095778702457216803676542536975566933769168937215968264275753744949741800541699442708567746862794334574127819345975089292370144992534455143533966206168461628694631883411638168732635660966844266181685087835830220172682727951594919629889465471415030066994178790856944502732408037778427150341385373556050507742961538376582005594222095940727751019318804644245589129485936453837844050159592091691809920932208512267292474920514401517221610979212210269157230236569349855124309230660305936577985029687173529133449972416296473482567376407878330294277507365219596517539511732842538480999346666970118541311640518949526554950081439314826648814446464020940783235393423612349538986248150164626287251406844154032324103038129212028434275834077158714583810420168862545619529592250289375037943829260402097400297659130668606595275532751069879445414339965551619498692094065915238201172767866616283443831248166625203883657625412669984546456630562695630052414535081644907959147990964778200244813028767072494468710070397159911375934701497108624407665152147198933063018602130504808607034518380062795641871228536242328066541232425929709109770029297212199474442622854330868412733791162698475208548230041569057210122026554698035671548157735251904691404309378893340797835766389240794583105380933986171461332131500267957972581896229057661511991624099919326321505998246815961203508619616218514095538350773709738165512965135202631895293924356239514539031754422363313065739019184123145894299056068429253759897791824573698694733042393692337352111541335847620381814269245862206816051705773722333299611929888870521300396966800044633671809692370885305036087584320402755756772967005007093445629219875590098517416117101049895879708446952195784811694719989150710844962635254670316057917742116938220772209323526005718234236239343941116792458409152606168641300255914305681111177970827773615183230788938566750909280970836933132742700410401902946144372591081348354917074104732302975622169328016927704919328931914111490886972438904204922187582597997067564392655969402138114267128981672957428040764685833698703542339906412061908925873490116640570308240076491226128501018729351002460461822256831532382619806998211838401071948228998960737201090757034014732667850030562583899804980719849773423190191747246598372272074210855769543250590340703340504822422614308762808883420167299418449561628869589213472341857679721081980546181583973331783147978139288506482582508818965761697179187141501706091545003996639897044841309212546912320047584424537510041844647710493477384411257984961966549943416890264371295126805623028208527087804399988117787752643841823140576165246619311886069040513242323953173313951449370956869460930746931416427616166093185970588956635259602377530748304313165254572812065791236728498218575347455538754768260270022662474815467105317825391142737172074582716509627640099158475043363431826546354402640405973284371165072254032651366553949818905099347937981985806978218655021813270393153600498153697632986505536587743634152179587756124518580348309948337088602548909152582823779836683487395570987066276329805725192187914536028557177376713782996157796051868521774624727977445894561254974374283190481535080953603345176201862224601260462488022681448903020869954053406814154385184939659903845911174586904095735814668336030323456446280634305244412220994971113470241456023969311815207755289287487893639618928372948700793311171332579697602283983177455775458612993110518107239694876579428203755884462077707173234133890415195554046475576327027653380107926590450199139991114863195571322212459932729859118497350132241737752767249833216157371180056909299700801812447186896657877268005455511536819797198826848078945227542433487036723188421035203504853087241154459384754965862009222207569799320338036937197011862068678541949525556332466091158655042170617676506664877202306733521287122957286462859329268677061307692555141372493400192765224853943270059561964109070391620844032832798986619398759246467689391149503182808347939986046658372506950213256921756490238876561524018521701221162127468589481789850286474477872880522352356822852035937224412799366379674282448396437806808494923017209468877774251866079593245371729080261399410969767654663409431271434368806589206992388966339923778147478935028094373660275900364624161300918734985959634280478473695673504965124278435885422229450338001132620039715846114551960415420912023544705338201478038741000722524862318388819378019216582103744167097585735374113408393955228578747068218429437450448918247514388781233455586345077626270217716576308624209174705004017086640127559230703925990257096154954742574332757651801896883382854955713228848591640290722819747439084329162549923360313093772591162447164874142268157619944324616057295606007775572712147755502821957088598761030861652699743456773684934533075310785509520368342153820268676367990480875512997682554833269000521950313002848256936888101150090070833401009054160543970501044880124123142517279266978094246624616089531136154168053097688007906225531274958649556987999188853625530061132458335482857506369488225573730403719252797800932401965754539426019497499777946963916736741873698798782505943711750613684512558358007146559799183227867154283537193419549062224893595622487235001596551595820360278287417452051357454840974327538257555219568073477789127242952528547537741631054371227392203054066316539460792954280119497228598688626209597057713657674576946422985856740408549931614689233548567863314418192212213688629970654031711152797921389343628299637884132778293950989205495568478674730118373845505613147815705416301181460518125831815266099326685656447494864272361110063990201531934128825983210736949495291608627029779390422363625159140824703432470368192463982751895269102279503149337308998377992792454394116047159119733154123209971781337228886015363032800532128349392282194279859554554166792585108532064032098488506278156616214881284667672704162016898436880694859910074525753019823764538420560472267979845632601505549341618925533263566771752943034111901878705682235547120159829502893609563368361185608376927023150693340265942304195620459672440770113647316949691061304972832176408469533539206481500583501825585103085490348803833748183194421881309584774220376952264714441724599395934119070544163630797214176855938286411209471656201941013076569395469755996400829760053541886617882311102017271557302255059529033501374025869285427719746698446360302981411834518321932934662119104972061197368362956703341942779167623834154639216655897206710021103908596866839052817371965278139213450154756878629131833284334547580722012475467487682898189234688032497121578622185846523818179160338762205445026105352773016917736647808824173908844525891385240418917053930136056205025322890909131465997522304654649626487270505042798563552499956894354846562905335283890524074768282346944251242205243214604969115159950274511921156829136198777574429975081994571497877404754366466712183671863998593864775848049737957431031355610692264889332379418862103430300996712957562506033035903221766749415535633723911688903236692739237960555947822231835025757695690484995783553419927080045371029096730804871931921873490509578327909293340979011230509535517787879742573025912661514733097195021283664439457963959427214348479182656385965253201950438972415926946839252424218603807287126616642373835217683934465689422500055758131518403085059725619469623569650725848509348137829283722170682289794264165425784454200928474864542851382837277838133513581940827953579228398897399113773593148731564341268557738938282797440373940385808905475853764692026568181661000376224592307825369028319760597426613455826289520007471751986613934845228586067098922913986007376721642745021841899068751282105164071420660638958780283243197758108844372613835546296124606128103381311012814748306492500156551239064926376056315572415059444644757897193493099102668095708148423810488418579255005136768429135114112517579390222625874008845364163387127757530258196237227159074255547573401193630835292546627694571481133866548463902123036916905804954067841731055946591859830350306583139906831697648387610119951936625361388897622661650846673375947846630420393844658903846488347282284523795317069941161364108194469699672444074692839236413056793392301529191083607535780895440722657842315084058834195478235687997366218421868049687643075313951636703662637544391351854293973863930350473224166952865438439549227104700120921738010383576095311569449746487595685772393959461254950830179421864512497606909585532848141303982833219574415699412308393266379517589770912549177973118459399261534522139961410983491061840577367414824444133572465291503100508044625750253745275459855153929486042330214582807131173753191394089351712155180430170462205544797376696674789317309627148178043205241537398501695409051168830681253148680904395232324376023162252504388366898685706616530661819045685274746655871617726585165073415506594517561366784259071595185264923266119894199276978330288377794111175014474104229080890236608339194065211139323726761359788538923428288900897730547336312680332517109129839261484970005426861602994296096384886444060049102945503966529170234236346606504222296021098785880069442156985770536698448410868673105069630296090619342316066387489900188289495125615591102404462820531593770968426564803460337817314814053845044990759203550906445909909091445259725671495302827264521527396612218260413461475010286492244572657657545290324054714370601234431217752065777645527190011539533425054180753912191505983798526157337051622954411970307888743173998914579482534998715896943787734373767516156639546476243520818653159751036668970777583283865057523580501714023236204182085387774679830295084423383311037458065364190794474970628477065476794829621886692590682176006731391606658160785832842513862468330626033667954679124922303238892956877289476121515363960309406276531197669010911380487405493778751586082757323635456685806749062716597215990299218670861389689513737068317315680091955482779204650557777506688852118669297652110390778631844336959067235202839999643239638768673203613791646686795031121791267912049422686319695226494152603183846016537045092592578800424405944349467622855508545255660206942268773218946333902767153582022254703312234798566827028252459880123468395377635517468912253678812381891995463784412703324187373763325613042233271184445074974242237826619704610401112265327588955723849850576364804940924804011116277087155527988407903612572788359124144608103336856769783495825697333839956169239890008502935353429996574069637795021408519030064495477747354841168405510287761108641985672662267872287859393358397028788359545126358807626541463405148082978002699115811418605476295128819943083866532048426740555551025332274613422199310361947772049524338821178503225046229221424569555500331377584285710265052016884487127931856374126072774114178698939715422672763228658486169677581873952946709294345253733506500569601346073180257767909915513450348415839846752650573742397471474812540093578195354597345847076500744709732549393103595244087802427666984630842644463867363801628651193925985133419563039265595711671123044979923211736068489759175582631622390226224898462286579357279624910376403823104080481974942859270246321273900690507498877317321885468936424389420964928566442461752642327072727933081557155886648416319531614117369090813201902738952842515499672243034890237632805437291613982272529908369088924973885229959237754501267808873261195461636209004901045657272381218607340291854477995352899592119455188052138295626177408041273303794209036780753112567600804260495074061905648780805023437355891615538992746563307620080099691290761006320537323126937279620073905433437462210258995721397889190970317550197355937869240463611160272063383384090322398941891672249406584603868835991272521420089279274309866163507957283790514385513872952711298366789616191813948640736857942261667117859905140382347291400900979224913024997870400380541456406429066379039225230449217160958905202817816159901170435828913409135889439304950965996051133242944825098365107498514890151282305847215258025185011999672909230195341591046634975148097657585419544419386603010239328940819094792784807830452404529657217508603472258594175772471071244270779869072099558068222519789986479329847328307793432374088524818024125993607628074995522310463219910682998081182041577020240378672352363041586909642813303646625339494940242686862576591833522241354102004887850569974716852406728657519434257062573473667547365031255720837472170777317324261128030775906546923950229067582820612767349847106351976446644271672093846156072556820379137520949039538816862720308421927493301196890650218554242991742579222620450885193664289287722877551300947736463000642410992990004593246677353137444054866848758777157886475428825132571024995835523050990406816463413145731448493938698331347774273521501166697679503234920870266706333426771215264880879536592993735189924206722511948073132659233435772079645297777548674384247689261606817339169281246359135494609645011156588572925382446911719755728510786552984542787165830234121111553000746635255504824523454104857318779100347623305884072578334984425498805845876271348453269204022568383164232223709764547140509123641344063619592205000038714900195783359807810085988860559728484791165320708745934356308021871621114895896268008973308214206067063769193099058122371610501633813599391835931871303044926180189710892820426100316149965985859667959009433747212333443895178821392131689613734560088472118340553704173908865502215538977424805978954172343536586149015842836947490060430889525606111387554385849627269150910862397554805901362380403582626005307357451248710774142634775125097739773093907252823363210026480288229727064109520105288380786769462037156395760476611450058080477176427287800131312774132443027234088512989685603831524657474367982370460127907578060892422712832226440307990061532314102079712380053382053051219117387093019838536790817347001559734751328332160254612250272486712583495315739005620693532954023597171539469246442743880275961486494129247527733741349507148780335377866363118562306153486757767063254901868295800382587884851764556308708777219208318388986225367791551404036491281933272346464104104208811093126098396184018558463702354359467248574915309080485941831260967299406674844194400842598321754803345986174002004313785082861832997568177657103119631581865995049067237979178736721907515640653437764476306217057669856708749227075028087672462042253538944741424134363110166436639699880878573350453467245406692181042688115669543845133919605697691307452133941219295087691112175255550250227078914717380068542365030323737486778702558389059893630502100871664697857118051661731567029479585884426271984103550946215100054672653266686174429351162104756739024197730966147242208704524111707433388517866626228389759505203128872018952354482173947821942443997589998350060780412387921930656793257248728701976858924652325066961147397300880047710443386543722688439568250088571648130946844612709565431395575475805079351426756313819362170242297318784812277683189574070484623353836216595868433085796285376160313676474784725658660926676629257608745273124622235504415865970636998927681704349941168127979282129692269276650708667244800880233097892820355930828885978535341197850211821400468425054674025497714173333668952304916831444376297734827205059961842796013824382640900540500505438995622032576940311410729669385541238618453416513571633768620415488226311960375395351579651156157916875200816745362241270843860822715495044441606876735071527867361649906840791020504384460123082621949618692440030831429304478409256311863207775126430594199594917717064130890686777463854391779381975761644681110663893235836184091595321163597880906332951732610281710148666948643961131017175536540332278904447010019763121234107646363624583097732689325932774191957149924498559646976173046729152699247405557698159349663077375470407104034797497551771084931213539242932997367572202934597575880257640391775690512155280231452102931304996533393730232009205054096856615040586803416379342521973861293658971856933125374145784827827008605989216540395608173187429758719191069327571217995208732082698186359846006727643387648206815611367912284097379440355613871405973903686799304742369235031065342146664191636140197023934232575269429902746933964408159301579187951544290533462614104915531568845012558555000913322061112701018443500695217461730659598641688109381630424976087706154578395449379187191797782140502257904967221220778160238014923812940085463237140405297277693352142122684618597821174435852420591097028941984624689995232422398165559046677132287636196018384874319465372981229633527406286439610417591624718206354197435685713007167543681062853835858736114148832792331046006134451413086470002471956472167985528236769001963621404356498533319768880648886200204617790255802270949683423461083492572475354452133926887369393128985048595882232814751038118880946045143978036923529233651090034139345846785041229174135049437061960586661948266564318216656629645606373347509328955343251749727379136224270823935645582443273066007731554713017808401693196075223441839922700118976889848446350552660726916423783790080479416176843343832284585376841381182511677563838892583940201206135674469196707575278047069344581827691577956860232495884116028959837840511525597978388184102901478476234508967028966728888964765797782306997988192708835134933044589817086468179711128381820020441974991177215410342051654270270319998466349146952076159865068488522031632873225903815064835501000845177843754507436145059221942402418726282490356341265264311926550304063202575366053150918626942304009333102482986091924700441157769350573870042859048669736423070558612735640205404826776438809032580278850876909948092573290173311716530546783923878398599208449494428235455111107556714179415670619711986419956408981974696503835985600015377631978659426847065320729130183465878244925078198783011235042612991308041293778671171441743649417041309599842774961523852311952163541571620418554261725773289754274896425245583690080520697198978340532795249628326415693415613998572867309874226214028851812860019084603231750133307807483123616417826138051177933714470414812118995919098022374678777281289045303579959340056720430564404493547802696346463971915660009263686421734741176193906414540231793906317382851890365239862900709983098625224892343712260609858103040957638851092438950976336494774858416747664414121044269967768519849816506753795395453287080549905298268091627341027240261084195694627375916305703069360493049551760291677145256732350336713095707817696108902556901313383745115817342608720809197689623761582472327996967626594917696890350001810871147385743498364099092793369454718156290345287008933177864626001848458350275093946565743519796624693962789671332753001033621670580280602032717455317735493275712812897223016943175659529582131377364076503258241209583942276617489875728184847630287518607461981595309145177675376142287815383246915820396855647131870682486414694355434186424089865340226529793504253105307455647445859877651882708589209421996518670330660554024323585305741249889718839646582694981414032729680400985674094472202944414410268192913411094218741513282873310798232925145066107827921012180103111970427769076943035449752830570950893363533333185109690238906980629357163430388150748514989827901710659364412707476112985186817773137047234454037456002862191679132213657827070240795099679141803348219625586266951974361124884659465827287656449897715944442118234927551749896827448384642155445225433577710157111531264690883868010392137927188857961098424544017603589273600925798619743410246093628989695597260191902173807009755802375380835506211199233147409088468143519903350329776225541026224766502446985717135357265288218568611239302212235302190516277356974128634983540839032773548105080711638965572944766845792174112094484019965561435530689830861208494869864517106673707691815725446046682028205264852335869924999080595519278288145869413682298976929469666575230382603431048858076055117083009197101198492536480728361569767818774221507110373995369276615245244965350910034528895977702974277885415339785881066071568949262130827794926549436210734569678785506873855611333520651100095167223844443533158667179835359535764511966809574527400042434015440049062666137962957470652740757837146094002332655677207837079450102526980479349759953631214724888120659995044732454052956949161135437651275923571260142803889143997132062841954681968858841752929226688644262143406338432354490358718369905053470947584495815394054529883914651863181509397362332140545096908945353116235023162645424287888032188619172536257980921796925106976631553486672128902553534276632117995418894408023111712410789106391179138011169084156147104326412032435201946687819777327163070488510951900436345084713867267715378928165562125093199330846173552270091856241962610481528464045526818176983236033294487179905087448562440525846670570782029673843869936935465436456444723004453622737526653145299219622309881176456806767139785437916584732095046944304384883707718650184325692701151713494961736980782426940804064500922506823933795683717612153905708238585482910045715628540523094477092336799211584887188615244229459047803961052354775294518432918217764704012674190255625784771039687550336529962214488179352640586781333262159209134904418941231255215399597795265706825746240764954866113924814670065722771960249573450805840870221307879945435072556036021889510992483703313007661853085253912740769203896980996769175607014847575779142527138022094159387748849404964683120257215335558064888819994902449124874438702696481904561785671518215321421458688965726342557795756265270062929784596450617489642530002109224798180888946251675732735002967714705032799875798996291279287466075781964794847523920352226455940631262832484175397548174570106570926022593172320874093274914009797818697026014374214786317938531308155711671801618419885007706082881144649675351462171955213852392511041984108164140482204424941782795380173574309636944364950635187482039605091070892098443141678406446191093677136150577214300475164292784627606125879326495558644718659029848182201602100499771983618037782118959565168922539341826350103713632115778121460237093669106321911883916952705363199942535844908602398083142987243632625841069153661791501171003458273988450230019002557747743121433421560910214256300472929521680512822156479879131483612303346110277520338297969847648751075308620962846476786353120230686050987180875128226550528198916999445054582528742745970634022960335685388694979938282801471099860087059568484121519647334347663376274351356005241363537190114791202992225315331886602515377068331015488909995369901717369429844706667704827932244823418206567425879146781115189747749072558489155466470043329222039895064945277075532932299426267433298828142825568965733266786575619337195939080664291914750311132844675148739635772879342989756413360426581430509213481367985288829257251595246368667052647189839619635984921134156953198638045581484790717809078695292727918404522943010294283671108395063484250638208555865392327654528622726648834185074874139385493074176302795550310290813677069430289701202531770184941820914979238296316560222983619803482040579523193813266546097213588393044852166287214352575113723684505929298249561147422682921830579426533469225932522637203170191999844767571541048969160820055609293880438561539393886108000388931415514251988072813467570939331543005256903783714451599730234429145056998641467595030318127152727894250238346672633173337455880994354439500367756703109190940716114115405573408848342833535993192144371060068593660264699346572009360316234442638215142442839171596146581317424731705156325348237931474944920069795480164682189884332759152807095398821268398936423181065489044804892768489218547106769788613503335244981138616373957310268025164231339411549810626704975020136128532716794506413100084685100521121363995839031402261910807289909816307020635413111542266607869548717738202141054740140240326319645639300962185517129143265244274594414418275602144551534404540028743249577705844940809840330272581809631796524917350701494846684157254659289949476236370059804890396576313824027694236662622690151478947116904980254949025258782220685372604573303597309077583539317030888708542349531223031802292879599064050177373344213062743143128615220905180899239090902879120512231186846024133278609750024675079171260577404575292564364823259159993166445098901914614802860025482343871969033739870536003763110023850308855156273942623157390714593247386985029721347782260711680996006044074990934185340057217199340913082088234123050761235269621245455084222401498616621573160299790401496699491727462378267301789409424959606884377389474315405894732714701696198582509128215714053085784661918613228061036503420039013081403792861284302253788112844894688305371033031235700434623165907687630898083954159168520545880947623711927889907467857536699281423524704411716652528910036053775597355884354254237465176941851447073145254768769289970059546134968039738232936238998019862056505624606681310225203680548324843349695689653100385237546675878567994009464253726661505467570912987623619267008359876267855503028630668799392265099377398846083906682082066230124612997303780115748296449826052470590020138856244146334105814533631328256053205200592926480830313212035078776629584645441891695373424281390351629291422504839036261444255735810748683489251853965653149819630557124199950351323821951186967238151458339349082859755991966972170453430432731619357189676268639789788684438861190418094418582586957960263456303755247758311154311476203593869850737767074276510824819289768101338596997861434244300067684394207595549574076093250167823992960045740357758333106586041155550814690850848399595861676625129053153032243940117244488740345224071805352218797147385313216889626028531253487585855672513707818686352116963311057203172237060467811950861142666656026580629084848817231556597264624249137466762446143719528456935221561844002089813015954860029902518858507357307152932312318131849917893637341453991341102203556541051010772435986055631748277847240137983474630972453826070078510252638166027436710934976867796097426453923241963379897682484422098019133054859645286814246290873537053411643476969647296675258300786930930798498427116879044083381863267759733803252682422433296807395064180671565602714268211230312342948551653653215269457610646824700707679329111011960165468779920874150621869243525586056608143500705463657282512899089865298827626568230074377036105806222664547996570037627144257157725812686825466294687239956406509728324077614389187704249767623422145130917936877460629168518390246803136439897416961358829185973655389064577513081193455198291814912845765152299640726298338964187393802463224707363927685951291328962522675690312898982088924713495701429446868226555957527745822828429972809777383212732530514169924655225066614655913575986554748942601571238087794284727911437223671115303827477533414242407179488602028340577593858604743995094332651136487754324221472663136485905777194353727858104371833790095179817963113508959960557056842175321440798955923184808524878083675500683459483934247832856563524764189493364922492977088581624231502049139804359044981004314932330105944902474718476398931631684443474047505681172374643921613431838126854709402109279571879936931386000038468514368458211668002182820129991748092639890989566539405829588860028274480269991698010642404924265810759212724690630992456074216611694183897204028455317073315231511142056785094965756120390076831567476272107045735661718784029626248721159176926327063591387678465536199985983182304514554009697426850377501200832133206958860197305121870854184388061088381433471343256668979262770244341992180768631001648573384040824075853991365579081178390854206293306812294729335597163936794620335391527090637206946734233815138342694714102439822438830866768989624415715064474790566932331808524642956292310160051118640956880068052259396549137978135636662786584825404606873151675168565871305305211587055927383753478689080814844722468403352770000119125467123303888615629669601587218133024728247879162197849116433286067222446352883105320858360458051478498520944223549847131411318817352440769169838170078031706833636151053133551533095846623655392600802125833620966795554446296223486922443190847463919351749601595928620445379912792443954761912799230415844328912730521691240813192340886616809185433824240294544610170882751608810427472192492094539469702686028526307940310706909913092204311596450429819108579944260900152451424283341581548822767582003641525105027903580048053428092302369982089414594633169359389907001555983506446908224449861971704430762869320144595156484877701259485011514053979796339301004384053190679074364712995847183321388711090998235667221263805486838741894010107540013788101839315914880874786587879500151553964407616257750818635821793101172614404666888481821945604405137924883197154571243841934389672475514442366589364718518226071883638750704592945198112364117809723074340955219414052446422009022216668654835608101851443171555087452030706681358203884352154987944960394947296065470806398245627394706397440640513789295335728586689990085990869067039434348708008176071405043256903200881536947167076099967808378752608107329924794981733321395318387783282359167370125831242890647354742150887825514984141423501301672675082179111002557972517427600739373192142103926032970810769819058988038916181382579914443432210529156905787884745821110382660549894669376430572820094574075292533611636575093600636734985028438872658171072599410784930308130117586486115832906605732742706030699969482400586086403325051074570771362035206886494623441190563168069892406954125655639819424718889220352243226097231754888531728266773910375723710106739337663808981515842676046852036203672407891490187927355618076617558781815383071457220388177297187593895662961497505678534508134597659282837182367192431400974105437297844510162575439587624579038208902934931501481048364513538889280304386036901642658923162207218966651935591627497955048009255515951904618606791880818722697029796220208880024877871779125810211789425072761319795431096246640197720972322610026863745530018619088598256565626527936608540782281152515511826170482175695615416278513963778247995239435931246975243690592186779426383330733739209231890347396557573966490982052618777270846169558736145592952198126893316443382397314238472615945308852540887188657764022385105108797310172252284529976947617375824995263247141181730160201833111918112228135088569821004818161146167604851873699956114717104896951452849696758125834536129780347732313296535965223906335742142020499047977949714036872153280706435798771212837235867186123284810142893866885703762072348447967592914421953864220121082077988765511025031152937169329199651538878042516256025746324085042288449977623894692696315286572937413430169360076035329369706417827787737793065010569739456116219240336676403090783541455138316434889449979237557815875014455206486934713086498330073898088056894346065207348759524887381452856331188696637177260653929012996245121362161821249758551092460860670329278198602652523263228264835722732391838349258202127593894057153041127362818836102715025364815499370099624982612448826291798672824976494874375237721882327023286078786741446467607560018209489067346574075767645525563642243021209167963726132117855243254451672661784549610873790374606632941769264634585023927554463003063866779511564310976617009500805367466292149031922893154613447952205175673050782240665412164309774725130449522884992542381654379640699109303726768644369877159674558387881782369993907291362951135658592126247060512379920709844530680675102192359762580382091795994036229322416000214494830694988847984025711575886642601488261724776092275527824931800612454680443270369494280519969324740567656213986896794541045778067938189867874389603154930808754485087084139693776973877043177428658169640187113187555513983743414948043673850691099689283408455486588315078298044442921781351968165206545962885924899472173332920607370072548385216598658988907709883546595044585146811251957872729831356143487873935778901650631075864406944483973846508885441240799357171892723876043392675414211824046241390905429387061282390467449182904617638581776736597386933106850735700688392261440049675224410943938679474310473017573522143068707911389927519833743170803283017996889374427312521582135631706351219458024320861852112521563609484108627492827688256250168628994059815893041995881642867887107620110956075974128723052213171260507160053682802813777234299991773005009432736417487408931931722894048033459985522641089298221544911814713634885180832952437115609605107576510978703876312812439595878309461734903983475833694660579154522058959144056918656096427650852458957058774828812041326123928589487352356033810431400035728912378562743250250463650074389009557274063694944618836528666054372615245417220582983085096593648284195869616911572593241982735832458538314401670681614873475086126487519897807761879174968270011712481891846613898797807611495726137823984153462245734739133766906177880605463474924802150100016241121217139454356212000027292737880906863891198335160811628709104432373070159783768052842819095215390089954681456048093477272389992107712708831199940831181902204147888292396454286509798811164285982169556628812903107065000093202373656256754844374179931102181762310080201404616668489913449894241224497019175557649285423992397248206504152537039228810588634119197203443941487016575998455338478687656777347709176671468038236731340163982840788020534954683295900144178046155394012922359304469985445894149744390975240122334235496542515475897214184893791435027789414016885281649814395529829554011283072905955477612250008820025122725613693737437692659490087374604434475687479171702479007356271678183376663649010405890049089190374645620178677383153699102840008228759819748535247250201437242104792848796759970557786331111404474698078827521309539908080311709187392213784736322633200766495163505108258978872205344514715051636392345586235874774466224273621281109257958287611916625415368465731854067726266281807464561236527057026139992916165305519804652650305545484991794037554110839891390539496691499562413086576574402038396516635578730617890614207972461756714788535806936170019844579843509116551020022736519845348479824964461874462583047674648261736123338632176788831250491277920092668848423818185480897273944618069227465490467321094749474591173096314265599310511814464984916465734889299095623605691807453782343016627431623595003450763718679986930718629506983311087556768767520957403143485900228811237823624226101946741693084249295818822909711597530124904150583934405280223506510308621844597274035293927698964695385469623728428517188700622734337169764549988286823553023276435037635204423303121918594735894560426683544961268990924013089983378701351245239487953845969039342470609246933983359445142833816687683906014541970792247310862821685927654723364212180787384299729325758725227419692110088899483495642276964023114275391244744324195895104686825138415711722663081780340834694446916054767932938894204339662086472722713405850346947698378481116592561577153522840427648249729162557314786408820040147197345096547770301284755681410163286181373244098590685626637160588907071996765696936955777186970008347826798465723983128062485664119583559466864633682410147066349690545555892651629622100768416618973454423248558753157654115752350824419774405089409900945155868296661067096709024218856726351302207694616474196101248350048832439909968585541868766773096136362855749905316728342790555208749417006678209583055699624947773343363507138316650091609944586030701991206362094726162816281543050557973001978755133788352283359301917015024377492382939563793589629549538010617350700506211537941161369245401779331106731368079062915857711534352906341740273374652512188369391593552057152548039141014116076073493255128653224200668287083493294702711238230448191080636701705555168166051617085257753897094270729668693022600648965741466207261504708613737237246453254378255759009256753842261930842019301417055445797375197530047041686118589733242245538937939958889725739655857866212042113770585010041536324733806348493087817055660615334112886073767434320714040687517684530102491894478822892467092476454535781147272683411981251579374793859013653631922285377259074594948916500890635310373293460482081275476655448033468975099417337722730080088351386612163960876950803327744632752021123833663890757017365868834071432495737637613189023179572011933183468407571300355600358910191442671794848640975070348915715578801216721948131742438746984840193683550642575388859536354064578459525802634894053684852456612071352028218360912107282448603570984859862149911072056038245919485982982354366474772443187443625938524431934988597695084769983030114427791664023536244069488936433666519120633002270696431428914178156515762413660679408644277393150876453278200005143114416938450213602453859527358241280822840514800724995059504215819802203211911703806022726228531527782250798281601848480446388454238187782171045347616593762607297088842176998044060036095071630593792353372760325679084296637714903184469807592422930615928875788093754556644160988810322733243261160955215205586557288084122820000875492308382839802493037018529206223877098770427810125622682864582582074893745065734680589573571270244699330407523545448638482611794977490652298806639691549161945675734171741466566677615589130228517249374989142315440420360083760231932689109975546265851442441306916999881628089074859690483068772415009109248226072211953662783562688880666917145514720406546986724461341839275466663949242227578726053861942662037939092649269513080814316765928250487647210486358393805609309137306920848388137756273064149155109110844125268842822447799765828045167088789610015596232545784169460313922987805452872155596749804085046227082625986099215606656776059196478661965350118610338730120681862698898317555385634933349620362545889058353970499641814143440022080602998861413468584239139340153564232472142530142859120565763856935627762470877172637820785953181433146684288614405778794843941854414553901189633756637537059024278787829869814914979048998218102052906879742490994284322732392927379229358949375634604471174134618118763775567553171353328694467886633685252997791338884062520535576727452268759094250269880262302902959198007187271543905075709204894742788081121617537057081777860657232739443689675971961324093497733807177485067680661100024970948317758504896131681710471576013281159979796697117964893749365801828293146885326670686356473845919381630061412473853884559004582927311830453194923750739495359713935327341573558516210856392947218980959393414820835849569334691831189479801443321814633528391077662888449608686963782651073755036361644921669180879049103339948482442207474508737919354745696156441020723233200904265039496704594794672172322314104619778179232279689115160333870859699947512842805010007507936666864488336267250377590252110262588133484892873136664049593470280206296700557077340622029755773349891842778084850329492415000656210226872992169408430237869071121487459408905047676091555973770140654311513641993910153221693197750605362646324562937860104085102597225325173092650965923479694992248331176811659480608800082618923704059498077040017396745821892429548950716877133100103978515335345314710685957094450605373359195365861719631497006018216015116781644587779937232745484370216719698324035215895168535513924782055912827961534916630151458051788841148097186706984272264732539627856885621860135755148025841191257861698154027609127050741951140396563792898288285227408601450395352112653895388386779399517295862927094784127391152433112925946400072613464924997268181094515144033606300528712881176345574744004968524233433988590299130642366501730923117254932235693646270826473653961470193614656488082366385687127431181462802429670841610218758998609649692350312982446820228624101581183380869587321577601822378961801576779989263352748408957310408461068537718696398441318584611504148287305023118066959863417933895317469817706686635251177878445758531114952252892091504281574922455591384711330427158913553411142349566732404385307357246228684692228408379373448470602916936013993040950654596190030818380252728256308220937269752752989520766338895811003934670501955027215254070784222031586900159951308263848419748777684991692392219653723166544757440764101009965061712627959017809881925888477927081016545937332535284128020075751048259116525137578340100895184768524910186221173555348636969841574019955602865124223618740583409084476878971542125953035591327072076061508973819799481185638356745062572946951343691678918263066507952431155826364371997603774446201879101613542447700627364765654919626761644468077219092292908086622811295988492478114867153425715536760311952454756156523696770385370476886604698021385248030561176382068757506758136412862878013776514061907267002330978458776691822833391651290787076086693751711689174162769080955175727969805201682102716262136069706041609156178870530540720979768493026637638968662736050113988988367335913513960315474288974713854169693929318308680021232896329599381271653722118529514501671084320746942049020976670074228274667222156833863413023286091104602401561230498455914095239210460975654364834446150855037499705955336660221346260483996012273273641910694943992246524570005239136227333383284972755739335649594315523090123323056343415235105696282286778821093084612156866114443870760958284067151875349808971433102743967023207286830105305585474061120710903593522245318973774892872122393887443165480209039008108108852669227724619314382529097258631124615779550275982207061668708048769500542419875562046699274663988639348486840142233528728214440395478422891745476582719454397372171674600060853686206659734305152428332728939125107799228171714059172236020738527892642080373792927864355780211583575735835906020737813547108144950490459183211755301545019836835859869923267993632243604356246020284705006583453866926334314789829914678538149164332937337706472856119777547178021057206562416780620492496050681014505544400083691585386399196405583027286332121027159254780491989067089066871512194349441699015818121629691645296566728882261734646998743806066636501254919352995156342670614836862978791948285828518127841377026940221675580682835676215271251002722532175501175391676185708244100056978635520154571775096098390350012825128730291388517597460971546374785158162912190028421493728409410165155706168620646222073668955493931454351822662501773714797996892061206532527541841391447611392215213461406928641935582165447967025369448854441712394333499860298027098502714181595416780254324505451516922268832227680705841685710882489400810805982436388069304940140036054058825147274558825823285297655543660060976141881745439506835189943064407677097341582749754334607411032688819736325102959868912713918327323940654677652057012685602158373854658756251286737197305200835452057115115637967152422854375612319367176856700900637354250309455101918511962299514032597437920935437420911843155116834985132549158654381928399557383125945367248250671147389629672990878885848882599701074227252504035481804962852257052082363485122693831562806728367147435055983927973260668429507263513827510419746889767672591369017306512365731719532431012869561072580528336315890095826698417353963848720165200490649064035498544923722942741837841103308077738694039345046633322001742224053633940752750598293574910869881854105227312991022233397661253324690730080270049025891197866095461412213341213891962638826661786556146344210813263307717607866380636342431909183254194322747324115237704877561380927960483576499695368748511308807062476127325750376659107831658785768550661988397945830269086027019641122022573660586407392914387722598907407359876447331552706846619167081990942108608514033280601787851430149967994736342366222291820690324453015250155785760152288473671518234944926548288571797699263163527538455765576440677544890668248996613455952180097814220867268863056429154013829653468573489967197242017176041456299913025141444752488487885952192226843723645329643388078851106993397696127782691625463097323535451462264137652139297506809924776597347261269093978722139280745585647099981589429668515562704033660587623053403109834593229001269832269205022015814343028080002236580154632882552904706825073630063078118956871980940767158512610334401938296271880860086116970723967039431812613097424711171790198574301239907540354716506288051264920095605513453336202926306649809154087581763402129960016194911103493751576558875248272142376797264256426977368198890882172269926555304987247904798100065046843426551930595486463515965834193256019953942725424637317151517635243951403807424423857724765659615245674669931628602826485504068591224634076966397694270136693882918560767582008669438337563145932941714551996669772822181470620906203497631712086466030605675614933109167359686926299803365159852130088802404618168331860877929665002779221347601161748135200060259895150218963264153851311775210714641070725779349718225272679005993370186596157932780066176911183167614715796464874106952245376114568879231150886303623840717691959989003565807547270107199166447759227730658896111939427586024665729164647782959517792521728407860744329511315658116636186290447363155515655823373410205410970553981055118587774847255317701694561977327400076274662916015578149893849915480067001588028727139647788555334050152578884671964802052467242449395518643725584409996006306300289818578112735319400344482753400429606559508922535186015542228917642946353097283905715525192200671822520448345695728302485815877783543719512685965426708169607982346616792592607356189398955902895422982006901135011999278337057617540712583480582780681238942856193111114132504933164260528023303981416900679889803737603209951643848905869936960683071012317961526692453046492374632284627990824233479833037403445017864480398812755922590204653660846910213794842368881452629696866213566476702014267253205644350313117144413771351467367169726545226546510614403820274351610225460111162195775537690901298148136883286248160366899277390833940514714338487476920116426194819239644946320044638474688479111517044843919386765303110082423870498152452040557396205818316248694503295350919858056458989087442568312292543450747373415195274236476418028199548731737721290125242144675404294585540242390647170225700446424875936387663670677479620244276809437785482576651284377690093142098666071018702933859331043773285303437168895184802547799127333139633667250697624004443999842871548273540021362280036387835780861930328130999490596589188937507538344269255703320890375832462846794994772016161849244806707260664239432321923207176003725231360026007938117888524025045773149253502497399425440513990997242778918511892389555672490883322532107988627081564000322527803151097668662283346777383494174612258945420980000290932969074377260138690910279140625985152505977668184401078167066934000751493482854055561430475539110533143757464229486209744679084475876468363178927730859885111355095794744954218629866774966961594744440927311320066978611380859054531762649459016781969714986139949226972233845270514380938951350464437551225486111708913966808936677797309943848808619331909104357860720849673073825937923963599328475100407272793862627167044754075719202503934191972545189483117279024614049668955179079986910253764890964845981670901713935120678283957996122631197331491337781834338419318523675386629019004633433285328343418249210719160927673080132353694726484892764429798706811256546280611726046073321917630474121506403020178932057956876051027752505304361222709604675845312738661652142419408683408375891400951141339295457700947317481168853640941835286109971034167235581786028234982020314998679401740417191402839362105194806048190182451800817013710421974592127984040242689630053355368549416400863921774567695344586508832862982165846016450780000359898521290123959007042026607449887850627176077622255060639074531947718892509905810093672989195409957663353865837809804479353779918771214297746197640947272121402353265517772361634196607437639153866019450177691400624068412731629586080635067629377512529343675960734271996751352015800873739548389734399012382565682907859114425882852136616920140299004131462136806323526508654112180847499875844111836290979089198341187537664960480936264893291043905977256329558138877674469546181579787041915975583350003772867246073518535088549546420293097158563694978576404837415055580991884020934333351281955145551857333488816491676944277824055543369773119201437225415419274505976013798414437359942028760525557189378041148926125798303618380107711005004239239264415692277900570279474013649422918479336925354324840487802317774451841779583558257547618425495753958785494583430848044173708798492674195289323031489589916006854228795789294815900068735373333333863813908420994872551172617108729440888684478508116345585269214154029967209886937158862322203314855817426826359506893623448134224737869394609232566007547212567414103421849013118963967654732916742471899342433028029092698507522949079709443009238672877439362551113136287615919738324134916722682612282631277938117508074089589439719002542641266494798017644201645415881317601897265962461441391319206785035246383065776401652297320470892011469171337228786303703845313419426441424966498447440486177385135293731080998594728151117365071913988126930748269061403928642276627849432955882859383721484750707783551198962249119558823704506458200561017020532484449021502294561765561859214574399009554822941375154413613291504304691417994122460933816513626279028278842138122077589424038840622943317279892594183668293679259604224184594177065301954864394817033552410287470447311715070347750834323733311632587672763683468584448656253918723946082732471350044895708680315032503867640173531507940034557285503700184560276996150615682914161170610461617408248462670335189152551882482127260072595765678899125678702014978667908471066310748764673098909147197987925985906257336497349823503126098309873468616273935805790735490824683049728409773238116708249151637346808705105219191762054169882625476054458177111799377677869654216992578557720426344244304207449548970339043450720611900769736351740195265632213928258312052824003746695459092804525968798460814087071953425476138836335351191121441431485055201235813806264923135383387675809188923797585515732036588317624241169167523814588592075164035236684372679175906370539219798112659770811394735167196299997052090170907589856916389066427042357007445027751201049039481483294574438097462603510578981954076398706078758177407249118450697884299413834206081242839014881487259985418148029294922787832435610554915641091748877067067820119859109589098386883951171838013491482549927491426985525951776536126242157266244889609614829797030842021051602796714785615940646136382477589020110251992342153210060175230257421223754210749591872867518955215532994532268942518840942282675774422227552820761560727710394718256680247106606773831206303146628474433862047432595685056892871626532908327878439965071672422061382945329166004638087256305952415328812093700992298960069813962796862795676351987418240185629319849226233364318993090170488199525882733880795326588514493938124115432732058916457864229452684117518808184050956904691381344307784890211487971211628397734430548461498079356243549671412947333266642248305004364454547027491723207839956508680187617327033190656579547539520692925201530706435047130688128903205385455639879921010956672982873047946610054316358462344874415554071338143234413117884241960190370286869624227624650240042081371350464015993472053275567950353390671272161779060302162399780418576334810054483887031730716255256479959999869353196813010156297097871167306964940274916657267494343208132314613886925533494929411831638778899032594010934111572742980133181457828168791351424395578734205915614587736898808079170711455115476266168208177757472484278797129815482385203689591652405437305246672873130301925829524987639320985731209161056135722017639271699598686108867606133843649616951865484860461684848240743838118074173422244839478939982780147342223057865410217729264820914094850350132241515599990163071478148527051614432258254780143440109533660239362642493138522940547536416836467041574300558372984704018145571002969623469850599778855736998021822303549238318797629894156977212363844088917892752775284714477621892057425453151037479977706862362421899063030962822117732197082303477454550602385859114038989691666220778768326012396174199976236550636326601699066116890886877413337809195161497705492141711819110149543478693820620980827878957313278990600208633911278471536843043814981509703047708868816359741925341341221913962874578109934248327141091782763176542096312507136692636588213575119987540115790280285078066983338418338266739455368319656571703194629336410927266727424499274732291380098357445091340799308568360484677866535421058668005211542648674972395379364215665358720818554125981945474275161184169366255632419359158569508890535314121833662399878022115042456600150236469108159974192025443787361022671294122829888805336794395032940480496167711072878810316146773037150218352890241464817543095490594488754104250168040699998196719379820827733464855815859107761788284975054685679139904011384562436040357440246191237694402200760421433573387260392537246640896649147146547300721952927374176796135652330678042682000242307412186674866946280587887873829952327805010706610138540288011913855730911380572755893681940309380718863793758215444351626559912030878482052393749351895597158155182804814807831310535096823567161235509631615286658578590195287177546425064129849451057303533243348909799720945729170095878408322140440501474114381709565771252671577981709767638478642064876136793945784423858603564966446314013104866705613462769017492832290043271120819229564158948152826558422192618902530513815911803423108851491226653917944817433904322700506874288819967061960688500673328353614680498596081402879119631127482546640437038478288400798157913445232101668673741121294496813451012237984294021947946916648150312431873969119602156712114227943068201040876756809373898205468421478560142776882018807171741412749367467817513227710904673001530946777306922329095349569449160116904681818272347781619751257278515355698616292202918847453026983015663874917702194760509417486684119727660444085483297504989078258061539020030103521802717920995081783912123397007002783290619371336821833696154082652039271615180227915286407683150329974060928048310506255157226287131327681824780116915493786248322401723837072716088641929421181718564674811856940087052996113141059458293870330528629791882649324742017955124423294762903488349527229283080401222637227611027520380012093752088562406453112503726401539964371233707903743951203202853502547482779809303020219663250932909448819057451029852172830699622421954710165193932976937065457633343243325643313639122108352913555770081265053979316468149451341207512188350547396859555387809194737465662790318681617136416152155407745354380414798454584063447474508568028086232412696939931122964056032731092793849169187933359614853517001814969826164800344027822813985879014862852128674617538485034806838652016807476744021147665569643873967579664429588640957755915419261507196653734108170649748222041913503522393203692779239073695588057799755260190308143550849247598185779798029812641251926980831075657465946935112856279759057800341932347600136961144729013113729326518877314672141074127522101051515586571349391276885573006456556663593525354509457378968835800277072108075468519790215677663559608589952449272204977529981545862535929556885865521908620348857429443548834017661683055326602458359944543309529736205642829474539664101759387807875790401431956726445025653896405200714870685370656271174667615719181064228046438268678064178170171014557998785949298102867487747167901743550399316968352859211648148786128628911637599276847108874366161776239309829498234064137828071121741237834222414406998486328823924065637743898084631704339814190170417704585646785993494113767101851048288345847591129859911326180631166520977109326025457776640478113979812027396279052178079656593348303196386372636054817261754402626843572645147411143619747488532813525432313210406553747535609140513357644845126503159949939847591233867625899886282674242141065631702826842027427753547852784980625547796730956213501075135701081437671209736106569338981128770064395086822635241957989987524453151326843577125269551165684260624979530056413423679403268694320221277155284522945590601316630023329786184272936970542564089572247314796084227996064312115572289888413406901570607916985539706270694986922613155059545816240665427626536098988246922842402217051092088452264193800405064723514106544629397362950062687069185743503468907870252668899031059030733202099770701955626708007842141750040248776436938270496675406914489563400092985235499129699604654028321299512881718293173380258934336088863956188145305493633210224670237123490797406812568724883352801820879686837674893286595156350015843734542714861534249712522615178086471835019904993217819915535387378562345508714313905038432869651387690329053401523842824396391325686729272248708477969680927365604215169040230075017366194993585447144041522141064749724216152303724661255301796533454354088980086901630718915880845552219843115742231294519670375862605877626333668485075275284790344250165376491633179283207357204363149629332621719841204149693900215789875840550688363131897828032706818206201147097078246477602762963513245135225192242786044766017845546358689564183440825955325433408871016151070367468245292204678084853185295603026039336998791252960230732785846937162703749144838891633750052621697332332152400708758098485646289779180984825342721202481272565551505030570041811989518609216787809270937241480471120320927521638219693005366775084683589386544528152235347557559076380237852151946018272456823639549056812593274728954569893447114180981315364959748515410685460978633032486429877701863553136745081107676386047334640295768821152889813566449309493104358903645141317552414780992535059148130953147122623413540646090598039300729540969213694564498578781314849834710618588580258335380086634822074587547577692067410067571778702148024906809935403404978086974752318213687886719206942034418621529900468668535749778710147528458215215350982709863527703575629384931393160423887168990739823956189887221884206119027709429903227573668718607977070772155923264181360169717277740702884134571773206253029881617264064980178019269641550387293286248745115669440090146910371466589528076907506309916580190402824912396345679839269565571594761366943873933300683738308181230942044159295951718719249267979297129502949158118526944654488816064489091085747384972252662561359833739178319495991506543998379398350900517433878817182955161844732570694229375365255153471178576184977477973316771607149942145263817047522727295570500173374401356029781216871886130729572008682704728150994493655761353006838203007248723891860455582340567631876262362589043407960239552914408186887350391637299347162815765862853465444767189779664009434202490164341084863053640849409128877119965069804578807137977951591204253802570919860455967388601901634414829009972971392282778638712630801766921370493497690438081956561880129790914650754406845318051694049624845495251863363242222261458699500929790456268865970393098396956023564388968632992332376590811424860358035451697820676948892486638330687917659426382009263778903165827050291137857297509740049386753580516323216984736338584197352048763394553946427392885249745167489904651459473884977874365758947077177943562707432572285536101492929675650265851006003218146153612928591069343214878686374342977020598254510958054174455625081164881956344323355550915407022873450617663489800492811148486033667358805224298027624506580641661646093309658322774120168700461864708735460759460023553734363668584630008298911593217465432173511755315755510186309658856027447328817436176453655926246176438777403799768860801841457644764303571298399555691565594231174530659483625020603643822173544096553539509045743693865104312934271665810521464773628560410427152372939781248710605985932017807577384367065631135068593058886083620234778064987975853178401672905978765702813875802603233337988320303896853999145202912912522642348966197633971826810602370959759662980918534819012504031589962520471707676639986835315319660868752912542311537503475500515367406868469956767733057751079235049034577877826339647387642905640164433316822456509039570066856800982518273305819042432261128948518491882214253968613100337137224301868395596441734670841783204007571512416808375541314824792400452430812536772968970444067964317974268159359203135821514639678923853314691684801923785613665706360942213296256718222140853765807068346168583496375655648152132788002082516961807984840474867542864812471892324572784880995178492002381321495055976860978043922721365667914325583872939628855575318985133904712378084559407184483283611533615780257058364385933712923478051058091607157923717358832712616456065679450348099079972050842273054741907781106494021601666662950945932469680827885873826896084877445611837984486573045432053689268403491423450881535101678575706668749563760666307293636497984091052840084546233261781814979761412181872861268653460711665095513547783230627411811482071716466526542709914847880777689282345795486110671504947364739973648066529953736779993402353274964801034460008563976973633732229471469730277640940775396288390125824662939693898770158620893799185516933084638159965395913392629245005644067609742316903078027155970074441832783863920059150419266647287527897954927703415082639154789692688330816604795642091123793125124523826289132391142592592488723531353414037167337993061711996480374076644403610827781509371989266789958837505255476092942001843074443896493496814253542442287548263467259939978795979725472244117287600771260884093950481192159674887395558626710654903021324022477079265249776944955205108056410482206802172927635615223773851063602097203137894838908760877304444339107037138713316374909282154921296609435599576542505065970239239800133971925439883533581932604235533464070907285804865214153390352229706047122013049412345535778954712486300047055628894550446086222664852384731073317223038564186531180217935120788367893163243192580644850051145282276974702881297556723041938969669115168403425219126668605613003845205389336911210081205025241087952203462366013906294095868063810486156703491895288995944342180753633129570224126076566283785776310584133249700802109639513491608642051940551379803738265147259899902124751359728276487048030240957692462436925511139223531786948292842185557243747361826577956003518901587687598144266576265825837773537988011685811161188545871990328237725765974792555501517035225204329594566895045977985931335460305804628712105099200265391999022032802985513499055895296203508118519116239331768415451061065516247882198069414695314021638542948465099305759018425477258768576414740917080050765864163376935814660781872244505837942437576287085454033501105370926710216016889742519017266477109118773401965876131923824401677866944731603643323591053046392692548647340576221166484269938330305048174397311935005367616450508447630473256376421666139818172167153111289102455851620731970070031125405052082382908931287575642187541678615691797009700938050142984666852120015915113272059232133736245100927185727349413528948123231159923461589690978967445413062762687256330468233531371596513000406153320056264213843223148270354735863509198844653383568400484168465383514752987266852104759009105167315924626485357070819430352359875504929773330753172203557347023651707931593278744454981644593247393837794365278003109277535437349297011203088850811385110362985620594883469615636232082831084250287376136412846726450367957498216344694599244023203866360957965273125048912012359996284808751700271355908821282445921236597263623626193171749930602780067270385204438694420239626594307173387544843964935739401654469425438918315939596750099329847553183201970958681114740341146430774907873234732383184316977580069510475962534780392905312278972028317103077044152040962027536066168775095387491356486548993528510813754662302301044164406078743379938865943431973972762809887255359642183688625252868429209407669353101746760614361504022410610065751838578184594309738166652742282235952326563156004363460606617992954342681278246980231107831922175488282484434894215590509624968095516816141784081058068173009002631527217960747234579744753439008266238408070488767662012566975422632476841443602996127063203642476725566239584136334669634201833963782542254474306328053514644920802840116935071719251343449175916344648154738160058964567608405798016590255748976711877225395270001783834618076833574250619637793972907186641657756554922398951160504436181020594168505418765847159029625940307677186938605462437938952917738297414846392692211185354790599095097299760747387296264727605210459511282743563127096059502375573180619545259876531988819158370780609460730104615314079672252575778609273091902469192988451739871631507685766351864937976297380660316503198618172065118786733591976523956744318887953365229088652008014049981149565766450135714869973922194603166589011920226137063954921500008096808049365156179044413993654732119422707627168066232679931722181257457609152455167050976549279875792849661673761936853435468604260079278210505029351060269911077292583322331389423980871654050463146586178672199499749697290597915791846480370351873886438202706098049340045567860930765382619265263181120218638592516569258659483274483164346145940369617235805971795888290583815236978853316823013314522929991540592302274058550374062853590459765785964573806521600263159177428881248018307666463770771998546947143246041543087106778821876907079694131367846057701838283928309479160915776228351293308159945269760684026594233928858711054408683063663858102047363209449653498877627578626990535391553279118811926335106919312733976667409148613974561452545275688380518228526608713496328388418368484801362645828954007306507915607410288908345465962538086962552626371159235948263845456087258368603761981706726337448128763726829988777229445404077067899401643812500275542016983023069545116299831343107188990986254101600293552441548625913761597478709185153402568888130198921884456611164910632688832423448309628880496579742710340822373667382825577250767715305186061648306335598019340710989716309884087467259104459888759596053032924889936385211939490968283710864571352345601580438642971035384668305968987968083587349785762678556588838364951627235452070877953346765867204916172087981314914169891375664645456974216663388028870931159655290890968583246620942368725955209587658676396452581062760953955291491765181737672918987667798425119216807552581600469267289283769650286492087987822244210714046467307485197437139760530743223451552532121235870851616285214538008368612462951548039453329683773642486296457024358189231686226499499218634983246812149467375119948195045074496597043271760401338355222360815340004795981936852230925881457545979566969475623894957247325248486607065428825628767359288397614196190591329083994691638410053218891869432565720667765232382473164380797696044457296944650283430616652216987080261757570512416411109207357726203970411688859403761058433130293144482906595568429648729637716132195073219971641441702565468946101270308245972384182836040311660348915371607623286396661656185600094671554915197467308423255867674109733402984616967564210763223153678979988580683198922830859763375092946490387910743707740084634936236240083008495007355816496691675977786580811182304770742469643604732793518203847198896117035900830045568512528050955106676996023738782353766372782267740520510615320189983806114919859528750026629455422735260581489488099794079523817886224433013323645543257410388370423239809214161496327553956636176867524381765566251013374304648082075528515649116718283454130472387959848889991562759190821521959453589439873919878854478785588393019531703471240250072072868196663188915409237562982477373635896293037302748649251369197889067635824615369075723811889000386834089303979375199306538172287366775385114171618214640630053993407936721095094123328350571426528319496746948502122505862740454811093958740537288809665227994913135041148573758189949152273413520402201771742697561032405390025938558957849154940687591085109004456698779029635899957858043995947222843355440391384551575459051012236770949004290725163272506438911414940314392933816049214114829869615126075681193004885160428925653343730686239962181200837591143173089441989980293377230506522502709849720595963536060693015540542358093562221999017615513369475682897390100935189886891023056203345606747815955637373724315051310463884368461660222105807660550163384439513392753905047198111267789378425274293071714287376055437904153578146194855984706040401016336531189306836965939759500845851332728473088004848774039317183964923212125759155986396831005033440560527898876611472430892073906771713344899959049955652866870431389745563864195065256263382007256053250254497912589372866069366527475695458554937936549466905956264822166011090722271664336271478599464599992674904954961512642308529764040436950307838875676652232278535937556772170054417615227578900688492224647258100685483167616870537047140293293794295759712945613452455275456568249439714331385804950973720607539412574156291011023260518521610876296113466237967436112342517799340059601494432947964164600310883776688705920048862018019633769761450582921768913766854755419381160747064364618355095042783676384472746207161381971191770444487975137788922899588473820082965070462231272806210512699103944589360789044290661289121648867329327712450595576499953164568888853937404965765716880913039242348569376445019991202878400273546363108028048839039864462866315940784010291779687774189828622227028532919145503554952435667446119533668970392803076336134227848130080590245232298645365347593792470097712372514855978962233505503714082373885598999635725768152824985732302910209663365529809751869164292807619274983229652194481696043715488475908552723586440480201758142575400529343879461964319673490293470269618697328305602126628583594142914176432704388399714037984862965074407226526416346342898291915406945822384005322871978130120342846511500021415969387560598958467433788321510445817334910293140849261962544301069475586326736133960131549360027028822653755016913194817216772727748879790713086459125176896227023434826717374447625403604436123834266368529097934730262217743440936100473438325947055617962424701479577599383961282821867040465947367134674003802886890673435056065419629154398232331916634157727577726255667127287567764740358782518632401429351230992652418610536526239068980576795900937826721251220551113158347823925141718932666848696741049338628805893314125836487308559685236487095735227355156417316000570435683375128586486798777626878911970174198926297503739016966811455310563963891334919478491126002887272022436295541133021032888312521790386091534116785776233880138563643471230253133127583492149626816843461805655064376864844321691600993297935886971326345948047658016730287623626375404641773711712333755529076168457609841203148149067126544788130874966926524950728376339582483127955424169984449141560908212342014466356115143987869283676440381999960736130356587640683341102908782368523045177162181480494326246784203403756912181002048571334683860316409189049331870282565113342259651395183628517923265340031625303117768583043905855303143470009499540428993106200690938429859849462576424364274755020092959821997053713856754024239958224936146881835783905292562766257814762825490521531188451672679258510629964112189047429032689829030019539195564907348181246684338993876522912442311981457466200937808079651108208092025003722176564662265462851678069756165122984690402876381965360231356361364976638902219792361723388549181980957352297014232045491394760020309831182651347083195790827421779732291100149811042092919972707939131054168843056476680682881432639312292484752803515563282795273265608341088161697961023963066523100437026823091533999011018517840853479666457696399564386232590725663075603947055135897585127025937635325234545460711578765677751713231407198493087072741725990383479908377522266238501618900013696653310225295738651936909936258963337910411775860518781920708777656099941098051551760524338381498578844158021483003773807294222057611422187341912017380974191603908969457081286919618687718234413339778059759399170408525740245952795358955168367104612241414848823507042098949464053346102981481814983849628748546950040743248430100423702377026935949778090939009555164281254168379512226340810340240060173185622836711787912863505765122105234648754708922865475797991986634913433674573178080001015922803245804156062040588149733690546883830568311188564269274466682562826056931827114971107908022216742737252056085239809705192876172818294917079681084956342092215680052226576590502708101059646896004191594139713443207974875200619703621436531076819492314665746833301942561772580296562871057463566793619642933509041759154760564372284823152054488326426763087111474606360347328343230094190420867481232196335598089298139013743217231902944033802138350378466582478492823716028457090185093998630876897463612139222874464372822230689814427108087673984745198685973565683247585023790229043874338656501635430920494975139465171204239963804851524043827140049987366092215951679436655209716246719028784972343068794146220933065403515146533353438176212140974995290813343668874219608546300562941871857198979654903892260994006458134576989890293752526031594793520517287383716670072154796195637574070128559260756333580436117856957032715108609733266002110088271231991637593409971230320261381098899642220973175527414255363413061597294843720485673053633453566183219602569723677437664041985539084586654773133442430617212600862976052967207859322562292355846262846333189292831983610002592187113703997150557749320487597831976713628632018442823365393471636379457127715884098417687777055114469465240422088538202824989296395084670465701934759746010821090022379813893938891736619958702353222196294149913960484299279341165867048778571113372653492856653689288750896260840586049730811807796500601006810979623045595480118976856619676242389312756524165598319456614716758220572051507331874386499592077292171541152707025157374293274060303889970181763924928444961449892119960087414559201197110619178135600831179394370021856788080126118115799464147173035479067670391626448036915230016380975095498647857715301933207587076728073824162729979856572198166844451931151214721539462606241547478844925314745222342898144439356689652081728352018491044685012363534665944391017712860590789232036981778144140657657953141693427566274427564792495722561771122441508205905726084814714045923953079597060427172459275216550600513715396777242631825934316495999408488134896294439801928050446990307433295869642023477994406085552980260168762745948165247001320475095699315825105659565545112468121674104418920149712917059113204648692995218936078725719895433268702764211207971112580634371790702853656868188130649315290358649123136625719028116080449925331730933188619738913721183963488792038092148177397515121555060714212378478249514649493285850008995173231334179449195719549373810225162043355850964044299950654948218174918298209802850161357646979930679132224784985129587419897623402048264287062020511304845432074564363054682985899790358840556461006745899723002864895895241453303792218607675721960300019984053461042369673948465981989033226447136417782885831861564108998106333256695880149087548911855294447548777707033254281654048701145290259162535198012387414010436036309205281399608185782175059199204440716799015338445864015420542276603949509852531714647656658866814588422462768154717748977060201619396947738552977951792063934259381963552380388424839581039275670564005177458415453647792017073426820789537842419318718112513400191354907522301885366424561518864030265041520622587526974644830596060008664808467397587469403100443050711008032857561852600337068332178341006973073703640321298250395459156645162518016358548892501886490417671308623474164512000978052671659140945866695297194326626136275546662763974798831324207660024708256555168634654157322730379846334974354176053391180554958485171003065047146570917400082202203334208427162102550699829516696232279205206790124999105979017238642175853690642136187723710913388149956001852273629653609206373168397847371498411623140479545716310285083096492946561428907773603095689141375737242200843195367673720751672340211743272646707775707205664465381708610430491301993304747985963516488796461944929528905825730979040950627720666835694427988054961983751273274650760182121520533492208085191762661708361357233342510069683104178207971860650279732577611571650724027365119908613767038988665032755774389422758156617307697218364368019421958476811417575765780225941229369376285483761501137120944477726788390726376506189327449474109264058693198959058559969600972046356710955864259422250713422810831610787854562083865526862249687755895674284009651707897439983645219402878969929676885522509924548113167981196095844999451283017439565864554253492467331927699292211498644288427428218962343777071491438577608058084856427303717135376424530679378694579057523350764388152181065660792707515725288399185157105260056188339108536221275688426153686799818073601708756736421701333242635306193463545436017260388552556774580621314638205488997794379948659252807324771277015335667243051287455111305227076922621510652614798139613012054825955398498290382216585400027871828179452759345759816062682566935359109197025317587895850786425123816902286844088555046233861768093743871255003062767791144604271750236904826053496822003468062797939752823723519731070856662324732554815669120184661565393448604754035740573532649735659449189907361608117631335249185747240294914221910553466942302866373906308379579526522916582302609976507409187334001330523431010303777850787520635165834627784483536836655902705583494796129835056123943390247573969305052295130811046709132498820483153789422613223556634309811418309866847681028257155028682748383397571925873474011536646716826293701552682244212771105239091796931923912773797717688015422468834962014009973227575932939177240864634892836464443538761811383414398882353435306237178360377270922206790149131574946123524864980368060944848857198938411919684715248368996081472224187543173353337423694900817626436893163678853454542857139636032750992289571258032414630563428729318699711759456583631036168351573519241152917458568654839747092069981588999971336036705125178322165870469415652062712941883036728616973277595474898327009337617091038055159386077975183164791131510918328012752515936515048860793988485860993081193493801277896709108478408470943154894557705504550361821811546026502333598662621190754572843333406546559236526779679009724022559037666277015717874530106783684597462424119414609270255181653574496408037076359218204807031707800495030515279198046841480292623759144109388211758454223002587105098974340538019608096706001729446131594353931902155249863917703060325109395966038206235644413794178842765240643899787215289854873908254194811268497400341380587702933160023497523314378325068346832390294862961289177107044987706230858455583007253858193699956274947316552089561794462764776882775111576147049901948228432386802734707467386281475267533372012101071646686196160063377135213782113885721215547739721693304401947166534830268285098055310036760417985335910839912135600946042118254828382608059451163333745999330985400909567553128225040676460073412663544062482616605635769125279981301615925942686486995004724775332770649993846444113929558969146522042990812243906286000465035738126952170225639216821773367320209158675045004788981687036460961518460048557414398817260973844721274644195450198335593231768829557830645802089829527631549073550054654111113719476304362617329785902846513191614666551676635064119334575866713781810984156465929623657690836271607223381478850855063886317749078723491919876798967463625454712604409541681977992207104276402515484331964773905581049610001647059895157852943991917985197806089395678647197363890098524223400054422376311640315186427938021795265684299781428838321389598243939588770155799078394489206709170655203496769986054155902105765147715787378675137125473044660334994239637877962711768362368962445967764401996978693027895704351674431509802289865012877454039340739724267160500255878549888894099384209100168173874898358456289352751707911705490005436219621706429404327806279873786676730222852018370415921352422427596283750372997349591431251129239685319012975356116296723084861743231763892988175402470391522806254684791030979628293430421339402288412931047594043460835668343232495613647542579862544554498896351671364445937935735007027731767348845174887099668250810438991556770998488740178829907494844233167883018060597371518899642950324199139880647782140200104111777478968839555108074211164804227507987793103151151108433831772887252558536680132319275233969078693015925808524191590883768045362608975083421104441911728556321464612372029116740614660357396431901332673511383180868544275306115682200642050776276243163090763395746802731529177990810125354943612591471988752386663993748525397978887930776928132087457027296121993908125462554625410900834305204038710838385722642176756302904930176929511528857908547895413427296790845515266249771074342215376569954921693119003567558879719695936089444056027985322829745923005729290225019186904996051519634665873845766286165583709262295490525587150988780191535985441716721357307006356974623664506999438595865304581695576681415188637516729582855194702568148675216121345853932624252174469525507007692700832805350536951638370248262056345211908643609455087863745556884165147477744660686802732090527456817539515713203754621706982626148475907106925055688718403630005305138681095753887480633463299948769553743481082454131098108373690707510452638146157137362035056374120611543698395643113673185097174963434058322907235834016182906087165871016013042159191713902364589705902734815681072289867195302579683764563989718769225175933155867973340773733043216755653910755754238916160702122717375920700563071368437478212135288989798668217762832572533345183230392747618654039192087965652589286081930704035739642080989321089432200851994167611717527353978882026618744562282022053152831427848303386860279965175179755819883331025625438230416018942339170386337835792103203778668218061890863264867419662008345377267213803004835349669601066224138642725292530005372917737061162348654387360333573151227139300475257703092179902691056833698681470070046680713190090063876906894203541867651074973393824758598638628919011849851605676272063568183641257922449828028996536186177766867781410290398847347627179023486383536719884181537764284357906836358790567005858121342784860173429927311498525829426381306584979321719602718883988881367210302529373730687284284252676818495032793295747070453752303208640889188204692025781143747067742104393146452786589638070408530744824078053943147968235436205409865242544613096095689729925320004693722765192645252347104386806162844150263272906125719272577676314022420185623514890590306131224408194389634712598106722230807362487403882344642804839175997118906930494868693118815733589463337313783064630758220603607272216512039408317360771272291089455309972771304131061415677302487550303033119745936782356969206929008684065517843550699097961301208591342082523653831972164002578438653155268518045595065276218297807292700162623807539845317874932145717674428422404980630487336345595571419216555990693160116854568047578569445825814652541056909421304151860787424364050507570011697845159928514363633141919856220392836363769807369642480231750529550137335897960359874442590363690717246275208403121238030892613188023207103014046119559039673478322147276210394285191545150346992392868606087894827204013155178548892421185875032601207662275879486610780619943166946023124667003664069456988033789419169279093056380077125569611138551110682307186263508781301659159665719956166392695240132819371226867383997102313023718606144240281675000278523701329742800573141233771076730526300291885432184952037726251725196654898586302752019858055528655670174124247813984411479456140361337235929100240288001695428252763700172605581740844534308051145690107092006853751074980056229956793937036094216558524012682608620139896639979818266838146426887629454986869869560183587213324687051751956171604085036070219265934907270251099475725221910842445595207830851434274897958314090611381368732186562478051997330989401100475707181898522937844381414345412750827098497919645792920802355036436353509601251717716805655499827883668720305795332335489227358143909560512229294254511059615665989980158806400542294318769492707622211102847618082615964466027043097290549291809577577590269624782434271968425210667370895391287926957103913170155241989566593796288840942869051952349190754939683374338510867886831129748407742561428880242025456470750857403395398767464470647241224405084157459877316927428065793845108082933471369745731717078012150465560773087987578705024420182513066251328457937966934267465917675447321287297992553229395654158286835862563929622701616958143610479646337016816903837002557364944013958190229025904302917933014131985196006053939593015118034855063021486381739005927865937796283974600501660024561924250559351652393899385785832922591711647601833158673958922691798677199264267707228044516574554501282171307485007367793445470248714883718847668824378185985568323003918292507222124723395438145081249592057273858216386717412145544407200077462566779999303388581438395224684186060994650551174949312624747545411490089929888024475117143941471715620484316616148349019046001190929625568516287760436851209221765372520306632610279260457121123463843089769100576076038205062694894518313368129757008494650362783044503424298855803363561984544505418523948398908251480866797159530872371873295246175261964989059205469690840452251974665477634065536705083961295269437798297198225507400872467579607375592988511922700401408992230997692507290824372529302536554584962933437019516944831600998169538217539750893931830881834902561945268977264011060413490804531314501071393769710546347665429387332788496507788911570443389987596862067766941170235325721969700633559801276796321735405701737387345600278846155575539188888190157937805544173152124711048525279597666087261897929914561575520979704048086756054469428312274540256332191157104455429631522523043608263630844221033568337100347482864619734312032202472443932293380297883927316609665734196648139711732905763186077594191418982874783291136684330253529252496479211019646490652178242802165844480119414837560870626468221705278855586660939730849211724889880705529500413886690763683994300818877934803775541180454695193374369307401500438691562902746936145881457045663729762794944061609311993111741804520449283545614699712876823501751445373892838376800720416806963953649250578693080932586432379583979185083667852687093943396098783481513142366452625415249275587799065325616332081271863536440504910181314864879728064836084966650248920735697536217190475720554079269663844354262130994352432518830971353082340787314154948096657487919620704298132176243781081796600003627805961686458583311024834331251029352663857765397147351005221181616567263513538413677555892138833561375461669015061175377649637297641275729796185460065305881543374664637502467661873682860135938997966104887037321299898807718930345582842479863258650832971647881368783693404315869944158405607310517008074090624232298342148364593754066689887990245296775038063088642462354000679205016940257668422673337762347007385086104194711069943580453445570489168572684254649000937125624761059366963889973127846586244379914413995156946681083926325223181911728640074558763410456288575125505680815252293927925978148617475452694776380447699595505060703040572307480234705742344672410312296534950506517011654313242852197592232503963491802465431634661291802225697714089021233932878860417394101352631152036911145392003875410900121740080037076406806582462780508755720410542581570457315479309584722082919046179453753955470558955349046238100816637319455023584810199222719291201617752024446686059009664014265572476843653318670352206558014589136521421488427956558662705933887491878639391231094985612126299412921957055098215904145913861125266562187945691785864140841846629181231277170185607642984140347592485979536413929570029539960004476524174118063609089107032993576012356745028948966724368311323482735638137007848180922045444878697136394407140683810853750237906792549199074354539111875441697879774458807061279467910261059726785068754968619102664289872660415540003559370620961468777480211955901297443475619036901503229876507442116594074948464211635836077421426796439831027568155546121057167915310722177793025457322874537292989194954644443021474349443399152619976461756050044687614144519713784817621178977241435546735467024250734783642218978843024064895284631438816343507529653333478207439874478442439483437862158000529594120169584499759566219531459463851706574494064454137708838532274753954622674721781641078597150626394829117437331691230877947558401624524346731607652792303833610840339322785923043706961423361851512020163003710647339236015940934876141393157801473755209993057143969093614178086869200812729995012689406338154594261804252487070552936951201209338500618267008961125574026292842893977981995365853346768901352513316544784862113897579395337638477043789600054374631526792261265540350013294479593320389950440369123410089565126418333271896351165130651176712022579372906101484235246743785474046961258221106399832604515812547546779293221601003968918351668673368303931362985329988728773133651400992007718115949585299647818660678895687304129796819333868640365429982502489760838987278799683224799486129062153811952781175065350076812703463806998532134523960704085038220311383731246735440854003549805598897628482182550298417519242138199529518355344031257843107666981982362890498595699397614720195040741534182884971636795557299811576928990294536517544152653286097253112470609774310064281021572319914392872471828409399674138326975913701920603934524244628182094162053668835891745861519946102892975861163326253936348579165089549747556108870430826578335339548720604361931381687421184175298180045024624013213889215413540631633023821615654645339912191886658802828303673099471289780816548788972062587681901474865764326474554358647966050544193140078330581576657539339176601496901725110135193032764125437908172466899998107870743298828606321054287292306846189654216257857556016125523403005801973294312555344214886520699809700430142983450790538092344582436794387491628148340152942878299190846211322390876235024637891877012267547630879194532414911410912534877347045290222856769737570216702723515203683228144986530301933624735824640022653017817862306131826734757455627191831385937038694232240607834158561737501481032037951001913262226859162075839999284142583607550237036751437347250061084565212317820690269323271707170180717500766710702438300882134956211420966662792576294753536561223119630348729799239612956100144117684309914435980655668473318377111148982516686052882431582966815773674293017505309619663515876755386412883686464016803290102098364145390136182012310600000775796607677144532374490366645381903303565964053774848637705689195214360679643287026511419820587140996218849541275905528966271743716378701546311823499580805167263878986901169705743325252330668811410230906371609653933829175424740572281318248528656220140842948358903054331768669388627252990137430129882853320414925964724870842887086812156215565905552011876699209953492885869512934925620588529975945981473505525503315145734981302496356660057156212941288201622999848145291580272745294336713461339895499251972614295467134110655087486873567899050526184186494670036261545565178590074743468302203353062126331982820548103883294377278480154352985423406909915122071140819165328421628682826366356108343235666218458349658424351140825271341844670438854605640891533111831123911860539878116762767613703658428481807313920056249047162328232991080660606647062640354285919007969734730188705856542992129141065083105024921181152561006374229243293904732428585904369109978087368701612715657608625272563041379461868532715908948468280276438781968830346901398630993534890439939614131385964628843854485451786146989483635930250233388861386605788253493820429754205348196605394372643477979135529870904409751671425654917341865740283310563786899303765618156623518204755499419434971521548912142520647079290437621284540363565400426443885879915446526504588441502208348189980825237626378349391929908774186331195023335535079509550198504429464600379207703264723165383716779763225510461508344705727864984310406919552119029089819095506643754003665989157129669037382605868862209431585676214169462770034461465588370961454183836781653264671798870475162420027698410568104993479741747427555662383448218723949255987248081790288697917808211307826673882271756995368158100683494417701411035314110709827967960457421557346773729313183574290098817251070700102705681610590925619773872526295496706438269748763152709963323153897802141958462837023585522802977580214061912503939000954972068969229351548709957962168186517294143002365100714102755589431262349994526217425183407314951822665413670711205435950477052984055164144082316040094148593227671833561041031952334848460795236466106998696317658850281933170909277543809750296912928290287182718686765605656010388362597476899331918150868463510202044431914159077236468302553916808891377426723321399471288497759795397734792296789362193099251120066301156617390657573683767636593718921142236849912021475571972230557410057254525724538555650568646053711226822679501929631039458441745580652122388934673777811748771108535856365104804007023513841408394344914958733631703374524744207690310465894028070652040490102610180630714409508901183652829100104263112612172301607303914278299826054825937487197078945590863342170565376911559913371696415252912586550719274834593711307562682233144193075059940067353636503729355007679804215121435197253256056226439454141131674729877836871409967589656307019969560824628014504911991240712185748053706939640389212346469787122550669606965161506813006062941074008047075701309161735077334755648772547369122521509813503319299338334382107885543833236187356907160805455809843670057435085075319940976596533687210434933222806188349920048278738112527503049208888174846428319016539600630466502915620890532294731999667891042999177453412876891030909976718814803093271626981236572060433159649649342053593097499554635341599843823862049425069393201426663783689481202199761417986083058983829390067395145517573549997170753892480315294109011851492614087594473721159393289263705069583299181008620840410286489923463260345642370424824257063909129380801704659653630724144928183755330479486233506336636375886561058906603353162911176597900236530121728575366201890101649815977724729054022670786268338777301117009431851403577621945481676206437531968784148518425893448140529583996384970253959762126359785945669110637060133227953341910530379540425978304137667516749768787465299649178342336427000745475481949471359866806915666645853291490308232059890281205878126815767430930721017613582263189992887973230932010149232126373267151796495548968924776611843154567161757493938401616522907844089423150876687054665275793238805549126661693777598953925561080406938118224800051350809372046686020039055009141165394481995941732187190340971882559072629584283719770085817941850701023924759988289613573778756435885496342561146780783340518710951312575999931805190921902266561569503928261947901601702312243305754431260654464625008686622748043866744194420153942603811557827540000404020712181901315746401093427335748336101469403685451256443203470752844838931754561764631572209287810279912029021892238282470350546338309419447797469130882924572050292206249855523551056541643045762988641768062017411348089234227288347454320119807266068956925882293270245447753472176552839080617430025428281598287674713598313924867754531846844608380481508156635419462565813296359550594829076330106815644966517880328377723442649573476209397575955793063867100477743934006498340550723621811989484482127172777851389956849044762700861312697815775722954647603359273556343018515256595829201382091502262008800317497285389982150390653559331282828353022910424849910104096008081292273713451581458295962514381717546634167630658001246761930273939749682827160964943723113557562907810196124240298111767982618671404839546685238558072759405609329731240555537304479929325649327981148318332021373111562324040925444193621712935732155195558269307036208693910309562625792884944657181752916336105084401385563679207115718885798851349629804275613855008281669530390869896208029030355380062556321403668177908180211648438779482785129378171151953129206025349939787617546408001885491126509477377940338081385165821773654742122319328208269808040149053483955039643892782029247237348271696437467813541562307929349307240336751699252188922405669614699681473878851860314289763537976243242698191015966561818629392204880958915352336772256873643846681697674177357449240277324427185217245824903794440288306738445640018536560746541756053710825468179256936469644180207220767950152974675083841352311356162549952917635141688384581887938427692077003633081667441340571715043076445505570862019621875090213884932155884931463611851668192193333106871041572192225845136232219900267083802223487321575797119113968268038488404028145926959232839596418866267961493051598203711862831094501976913355793881589511415327250422495358886450529525188569766476775406419896461256327822597017023337558520886222182600285359281446308610907067417161261230022530622943269439780326835730088162486844963806183381290631720666982539273397400494758569587351393454769511348187322641752631190577688592198023732093522988172495982321802051416465423317460267710479573856951746726028070968152504373358982055047400803013301755815227169530967519720161200920566230877542871069645863471374280667516783193735132565221483833173672308119816534223980262474376558947675692163436877669156494799894490895333548260863798232539491667268994167499834770469902146408996837582495058290814533142200622637026588908567589263050621772504590274990999327919762378666652919186395587687935663877764742766951607896083931623525292783250364155846780246181598805142926914406989652471948193396323136854634186509092841382717252169538362006323009210996206249425060811181486751298160865486378491683891420244074612537349911807444468004565780723476210113068446077979422132044175184816160101908431185778373692302853393992756111160625500938380159311511135907852162560485386914323812245904299772946964322273715189525802973366045356007075343804126696705867914369328092183041139251793786077259043301053693860564531228257539431737223358522116815430443635849742772083634227879617830153625028018585784844259719867132834248512769481082148289899874543172209779240360832619873253615859560141938413651762588232316649713661871498820913042815510162243911604524963384256540786205403968475984137295093158148777371240187179778380478989949436542977673257015705381263785222746972467874241300793642328497818478384187095000920272327654649817697185631159468301209971547273531735570252640974294862538148140078594209375626383946867371632446500669475670531599472687811256170460064074445580742901999701262105369442807140922166151821307934869897283700119529308107366672854879857871482235316879674787357526619385423624000713911305675550338852901423771854164892294155671638458861411106333383120411085276458284026102555584547225937596187234636430993963801234448925565298982720299003678439151041868749582442954626212615552519867450944465290221964963295540000703852105632196765824842265073312536205462602686845226609688804383804743726232331616660159127936881995940502571999932917673393102710012595360946943796638596808326643193164965849633977291944145183731667573688536451820230238148263770653011391128913691346249132791260325353459199163234527758142476660279547954070433050957305857105121982912094431653359432408468138074887538729708537544168280660988493506669963728979443165679268763670660592266495503521043083435714033518387756174209630866622504815251137848588257002504051583861836164507635919756645647121506198985206274610720778853409008974133378884529056064324678372378442381162453960789731143333706096052597301996509374395456246686628124327527788178576450978686549138923396145393872016099547277316887599733216771184419958948486142610389151875753635313900844721671593136105659055230688227016390060464654237193404309850825077350154851993174718357373044915069497572480079084269359829143830931389855487549423227449491627921911744168176225851532923090627028862627327172713736747288536386212322152156598140143461744208641223824870184217621137984800128918461150291340723510400996828163551558849625934702284245296564463145812208779641481397405213189828785428426965782243489218621245340214229187382487983128365520838811022350458713289651197529723939560011425296402196067696795758147935979993141849812041111542822165132392559070987481632337101916113979198131133436287560851913682356263775811195201592830109802456170110222573672111807537839399705619783478589980103958642732946843133101094687964634297877722682194448056999245536854601675335399408618117622592942776471534124000027690102741176192399224871721293219882821321458155833081032767665682157622328610235788886649557570655197671423095042057620106160092703642002340450972083564857718166824151192694485068151862935190561171280365926782136985075087749822073193348619790072589775826641428063197595598631453709706547766476800725878500630994010878945547097206380389483693036970026974582925418893568276976759232867767101698035097327693602728831210398704047295073357317572232713912886823089697758812579145493793429853594473006165593150559024506929018029493965319372764130759794350301861951828494006827945565927733810621490164498834284750153040835721432245892652000275214846886135202683202012356504519019118723235591670372329790345978755069469277215711471823799668074639072294512299085346532617467973382168394091646111762121075682647338261461487802212088546109416072495014616471801755745231575725649165520169646279706183473704619611947071931661127537770751989446486891611246406779934062221965068659137053103623391875928196574161078398298795138647707406451422449302925240762368664335949866113933096820043150156117174402845705892934250488997230280359024388557971513154588328461904663148881300544616501061916339253963249956689188558120768329613750231954026330963046940512479868495658727645287697099156573617747339190531248684494625872269120955020707217071621879679187760705580481015192295074326337820027918311553682643767887579911981167968873963177814529954425665773092756714329124847023022786475224533540251407909491825462535291014393522896664824298455993425575591777585758242352338973747484463340047259313572926244839848777017654813188066970615022889309610656882030057928247768456505759164018129455869688032645811705112881260506082220110294813788676234788832482528250394668865604791472434959362408575339314941285595065802576280008906356881492320951921640031880972999198025467032863218567448770476679740080524449412301925770616860793333772616679523723102256030456073494572063560313170703759627214649019425087954259668365673496784779640178627750094170839259651792113718885026960580859287154656418538911511244828095751369332743829787840259129242527015238018394282776423077865998007149900112718626725697797493558585882762078441921011501227555741779763862705852706545988937833296495187701152644142164487520863294241085419318611140968276285129014378480234391248047246668281527727431154896462556708029122941047036654412796194587245160059110000895993476482685734682460496951136801911314321302307246634163734250901921361990587934861030116849136703125159321122314328916323155148639038920490730467537906033384814622379047633637202231768335411432973333114189394247379319875513336595192369206055641815362927457172495382044574747097433811199825206939055925739070777436069154483495464543945550651751304659388351630848247463410990519949623679710358992713562010978505616249952318905021558146844677246361554697831683248275696313571755831470789709172877833718048519895459843828596699776869250594382809953116380964438179977603501130870739448519285162549058903110872332963148825592074274014344023881471254559590700119366547096738912587270273568527307775193968862038706430537341996367859408521578977244356095538320973712223499363623409298990125319603399472142957874751476855432173216712746227680332330005638232707227545294942172575194125105391672186433585944534926876922082387331430039261354663005729636733155649097959804899247266938645643746202249683380000505578982685667696711428018767262177865576649157700352461100932794682563677161539624379277129483813797234472909685220531233182015789584479574840496654262502039567468235473353258966746482118862207730244164139640057439589934451240708100231076667283429860057554936374749864908555630488045734980897457849263197751447359585777356307725467852982333254687020095719748961900232497446877253504533172730924230889057883062072728554985674679048486118049266536573811130031825472998778742263224505235417218301325634179543964983867938294564119675227721807970795055644450838043578920044101599100871056208654575358619881337544255212730289424165307580303308079636039796066642428157932448605287249560748740903618136406243020176522623955868368289209627492460911889429190221269876819746106434478899463354904936758430485143499806460954496732887730015221544029568123453448946932592349798557860792193479042487386442067922841925132730049639053883815793747911629959337347104425865737219183591342311892468121510056417553783567312752772033942084577330932293933774147462912041433642375845322780010418199175484164690798896663803490314042085797512767023436973090178204120231201633237068160980961937623835316642814678085660722089493781405850826582561206415669080391330145037873747008619163420786896584131327336331436338237259869247856701081988720614943101160093264302053451943668673098889365873618527462830468486508658931662844174281581343991205834318479331438251361257686530937757477371966080824138797890956863192427878213653414535171512012415632145577261257171154237575230435611185589196631444230869366705119913815340322621062159439742712076546523176519896642447526204715190969891744551184374331256041120600048106283417744951899906102213412644534006534857615800633640466882739220226192144757111594145475705652435388670821749955628890890167708239731020519483887183549834328808886071103617690332310781379630557273898112912770386827993216590405314689632598639194291520764412183740533566895819942652091520607223478701115078494599263794258273810045609373403738470052604324004765151033974426291589785942161902765461243710073141533133956067012099235705589355558643733246623936827338137666098856138608175608552575188182298236562059303984802684689256483157272038196342750244905381387122728365381381741189038186293706687965527401835160110677721544274876318669385166526891909669324124145765251754771386167907074687690502863083641493189655956235427862455158759933740486888805936350947640464042266902373943469381319809455398305963795278500402818801715189687315831068254147354750483209376687988786820162497720796546229659986970928634442711878404326348465824167244160379004862906335227396263264368969521863745855477379277081083209980065603785497861792816823801844373777396596758291322060125539286970613118307574973649821014731399951378011958363046578458621881944149784937009840275600685498026335735027690350133491599941063406154707873329060370723116124034187055078837900089817694702597408126366340233205234759494628647720279625211368644837784212775470890607510255301454648072545962761137431679308322714444951825155320253068899305853194831806190976281801667723036121660678136951717648759790641767207827490044745667114390302618481170988221888916649639386851319346911259894986247734192221039293185653734628244718989578758679611281511099659370100378346036699083660549953931420999423492601951720056003498594040963539910547277394697990413578702263206920254549841657267742794639612974391368521794850340618077285098742812276901141368164028467528875427664834717285451238985915716062110621038611504145324978791301213806889378088785741135694023601086117274749076863458679625973610019911702986963967536056330358598505902404485705231443082279855858042106676069784668585613992053252487035554585370101077350088649519635411914539954755706552627758435765745846125841563107474953677019045088460451789610356300964498325679803052637110090348336832738009258557839639769788757455040977616660990279542918858930891795098681231156305389211681423379581310829419130185387664983843266604890968801860786989969463951952355412235444495109149042793265931689165384524647612102977323804949102697206319731445768722301888645472310352033608803273451892514604283782723573738137990445139646145877241578009918294527691148925644955445782081125854974629912272326464903975079642306002619452609812386038941728525697644742742928937816441022597827808080938118848982866564507504699035503682364045702878619264007846083106256689672105151078759980626053310210012235808990878645255277392745448389494246097730976810328818104837755849053575436985478248720979623960285646337036722444725602653139281324322602774944601780118006435380465617724182884415379327973303165642625496445752478522515140333292180299436366892004502808793014583626559274530369320858199236858240582449286797047004892934103674324968078716780528715571526979538731761613935613259300309851874585260746042807145302953344424836352786309151458111677033843498109034713808687989512890927047103603336771077814083484462468606147254988365476714350789716501445276993860022792288731246161188868651454875712458758319486681960713512978097342890093482996091613721718408056889128483203073780439902980119776744595260872450178788482758220314160796646845338401373003633935223913261746422839714692012729341080322401486297890741356362043551958301512406087823579905459937055983399639642725428884443219350837396044412680349885498678014241201398479946947426725134575043284161152831893433625782555576248604469892081082951581213080747248488317379714406575523709296204687229229750573904325529358481198026632909340398949735809290273565026520968628278766926541661877936514649996335189185919828112371770580851290889147989502296980227753697818326436580306594608092400801768907232584144129719282424720380048659076248329843266612530268510334990265765785799633057285781580448150653414729103401186510752757591462138595755579846533174652421247970356296576484971699687784598414328136415062658803237353726720510020391872086548894049163339238448057175638872509301231379069730344640283694891453218747968903689080091910769648752267931968839730831363285516442848545438955119235162670552416610116191939562321215404474588449317760332645864833269999532761311560819867303179877709688547320697361110696873523008666132573282355451328892707358403815808959340954004776686337388220989994775888725251392894710257611581130581373079256950891110603633747143004818074544707123585696701876163044024859281029412448165330430019767812518488732429146546537476530840785629909045373784763916341069713494831641494317725925735989877414104258525650646992257533386670229379992990248338449796361658260177037602404285435251468929382667737884010050407781498010651565529747650230253048184829022351663490708944987681119612151065080708845289402983031913436947886071972309108790654545592904426962102412650896208002377548637921900582213754179945136773755029344213947834384540882496830055969807227427147523461863844963300372011058488444262822847183566951057836418070908711811976341346792304827999192942334443433745265711851958275817242955697536554765355857153715878867315582373179120358194336859024611689549358454843810218209805645667115227811115286631487979122410467150345412263591740231050726757815651690794975354569546610234350635178926282007387671578418448532331264748169641045009329526393910725514026380972345074214526634679124879921950424950639835057563167002422209788884501423549332644770854207329564200647999045672828827308973634240163559815127165585708760263193476035747971136732284425449546141241031441121365329590731844662678111062740199008005740851336021711329191019148172385811035976323362159445906860688581745827210663607832472110553988228531116230830772249320718760314283554972399990954386747911904120640958163503069215365395255939829108364440577894768655906426959078555889278014811531296052829739637830522396568797932913415829562315501056197500574788258435068389480272013168005449241765541341553672296781867226297521935729676215974572929982784576999581857012470410652755234709316760210887462018949830999056268035473239191743880352852394519685590226299123405562366816842026140659460166142689816364896322670567145452761552084031997755218112222830694640282754583090788009525538267001174808944008582442234484090144393099507604587499296092919448678728424465529426035504015366304857278457506789033420637548565180260586465453504923154636606721495597923199612838925660686245382196621379095614180948196268023483737048644539098579604117131070124331472277069438162426160779174735893060403221611731902362901081241463468239091014747845348126473693937803450866902011785409226918907211390842736264008402256095279536622268780363107499295189633493724780784246207738545646297469856781877946413327755959495919858741916684478301866887582598506335809530473059262795878826628135669574185663518366296779633536616256900065883452847893261230794253332120934313098617001394022451593986301533002758857448261555201163216558305401109024799131744318609478889442471917656585739383361529389164631578777520692609899223778427210762267547136296772652833826045803154881842918345790562055852313846748688098747574182995143608952757114896969846591330551571824901726406346947383162248457029568821347832186005021975794932795753714019469198710339192150346011748954935005764831184800383210704551000319729946062669081703284652326380242248581740354229851081369311162482037815682402670540265060927629574130039459067445279197996647299332750032387853445521820309695277254118331319492983745429967434508349456920794558330895721941669742554468253386465610665141619474027323306891805548871442397014824881413024333221160282289288031591327546040639314475650451024707847827003100830623983379035059208538782367438487469071591071661383527097558515843491321035012225586592857429605107691468925290223593827912711007177987873789790206010405379271265542602785723538506654446667038666314508709916557153712069207844262872580323455856531437854325903901816838600532754965792572606903799575988813473068888074744754711193224014850571325800645281485106494506217879717366536758124185561781818650925659150896785883853734600693514976694020085414241195861577381990261801995755581062254836164041062076309017585607457388473264507133385756546041732533711302801378940793857936433995336278092312108397002330283646942338620299103313769745072519281930448106053614889812723727553453645151798438699737572972344796175412263854325015231780839725572687850225687121681353425390283478101919154203432425934609133113642510731939943370384323886137588056827156164854936538023785090393483362248227318207409968453296642006626803726878202648670578298511928450302215815053035641756893775421063138794300816908619258742869875467550923494473961567075925019168369112930377480495519909703982336382636489135058430399648195723621157407725768233699070237446393542927020534604480383102314448114591379538474923915729431278074120440608030975872966973107181984410669334082604969841515771659295519486558164867577942339368988277590035789421276160470473421167218792048876942331963840544994751115932547961762393849853824019647708185209486485592422877324966873003010246261044667690852545609760525276754260972217580423153215767353290753481536411137564033449376447731570107441776235823186517003547205375940431782459913359833918178190963298981513912575431913898337254405281508154570310228968029957722750833121165977042219982689658324694122451128329498987297002528869278200885612715994977513562152414462120118572601525246972290915140464075319219928173428032761859964570258021156017462090635890751861757530000424919672009214856764015969761597040573694259035682705762172698082612584580596167061886633284026338564828642610385930749007326146476834590415787979304998205059043213002388639330297873873619627553321859580126622163258466407754647657936338085449649570965549194681612051155694391080796813539384605975006717950631025612247952719960465708625384312721919452003105093191236947954585612237929584674483220803838519266315323828450706222355416355752016048458595787727964356640792897731517789254324601637419516533248548662125998117972463576280561784916758392325772236684392313904636250636402302831723001378553839784405960356833268427992665461606721109596063883424295043002336365108733945914246608246878679142241097259955121353439193233952088570015903804469826631106954585363846429954740680406796096334008965964761233501181547182215652025938005625906215027290122242604041472615840342781626054598733857245637147779216047482744334411129673123767611986297866986308024179500473099054868078683929009975257836056842325273451249388464642611743784590176544695409651594708729976507112762666117578696019032897428626383480646025835183651959147287102541609034171076266775815046516946254495799382899617866660985727357260685506695869037572305499557209062621713947039685039523631294487087415247642250606521669707955283041281086860497392295365924315417259939327074860795667414593870684123275004166908602576148758879876235936734754629304596834705781824339237473999249931821377630383752990385151049213862685594862282898029098604098401166507322289995322405622348477842690882777333300252095707163878913757283611131615082824058677480612837809976588122450097507098479143992524014162240532859851784060267753381922826784952788667245689333759451607319568621685606351203502463099283741850780760420477384305325483876359241255753163645229316351178652228232896444831910269247416363399928053530936659261798644249549488461748132899568137313948309594995811247355548837387112521903370051546804023677832615442406566906224043635791995891916187319853048280061974222320988366936470840181232141747627673223947330600405172628593548541188246139912254599360462896971413416520309350257355936126114513964764664902106275445737497714471550805888268603135966157597888808251340841751240842314218875957026396166667684217885015116650295955978618415960547920178554811646541858311314120912782845969044480818199806314389038052207497099964459268042684734454155781033449320595015632019630539762141807399086270848064303217800247609014397715642312007226354349327379915731551859110065247277485199710198477976655689449196716486168670790375717066483562808032596486767340458420568650181937024269525364816955814590909365907807686812438639934256553533046505678506554865557128211838173965998363357678030887104057297206384819470482333079352209060843986280183867089529794945590339803975056823449353678374441469885388804528100813606255832951931121193475177628452066519222252738669692630025665605713798746774722632191103954463938461218455857756926921127446965654071571414181979492296144640390215239365217131970168237910162539056307962867690370366999872010105519727588390490266619397164834811497423911738704227142950498039184409203535350564648264709088316271727043914121423842292160092712912360067010295249048268895285813608494320353804135696451593092433827730106982907400363781910721422010919069241872160277555804593264901521505941423353135286277882691268505700877094417670821111780339161323107788454769589235628606267690636811548086194488650598563498242078522482102735571711682860437427930019053242147326980760359336634855924681912023947148092123328418605006258537910855539500693514325721418217342416965828916871047738311059705099813494096939955335172453464547253019452500219704236725633941992595913903004372603897653397233310189273199803667869665461398075380015007499405896396569604444634104888910187725401758136482992701898931874351475719511901643262456514200623107476545219553062209409076226563967703182232859593609028162523062797685291067138807712746419025705602446123783078902648548600649008785877722458281102434493870661477445356793732071453340808324961036860031648711604557638529640009288990565903880787201538168686057845360262395376158436587641315689542018451668042531125090612805758605185126126126372701960423621901669912907552891484255000203166394336803204057114116042375798035856595631247499469569849513586761717161486134211876492199857402360452581553140087609299196474462881338290732168822691315735551490184217278167785213038366037635612900768544531563881090587180694081778190789574514335959383903513995923221581547874786726203342273037795254810134334887011269882527069457297044292547385863958940316252418176801033883738925978285637951334907225664398213604080607695122990547942207745586977993303444390441999735760797502802035252928636562271663753010434815414543327065339165099594673587113493338216698948567055738078220021731209391530078265261286845142429072659990570958254860430354523299996515557814617689528577805366548948592631729117062620382979801608412159318818869629028287157978717936884904025766919694789119701664230794471163004796916602963366541165671412926658386416765584258346626506690416995107981990415638970961657836067803458038588754904398366811079462592280948439890034735745765722127802050766361242474530272832779197536870946026921102641285052046477151131959097597847520095406773721741184399590135072729305996362535527518365125842604722808130501701636458298879529638747352394422898404127423076692657538919129379270227358715890678007404859216483963090839234039884009512873222983061853071494441245528974454318958561187400018095275209628513711725684572621954387878592562737224001189285921097359177445309099137601857105133655268996097982796691301664713645669707323708148465349387888981009948329822204546100201720436127512031538116582991015118694304911447593744151199214827769884667239091980921508515824456105200887185460698730137255363463299564455463872644523269557824381689553110896531340698420412186385006905379902901129655602973049646054821960184977149958716016018632187928577655514826098688914664178674355486398857672164079809930784644700415892529812120080775469404448690228534770939508682132340733873815211764044476048345552930529995893020716502131845576085163782416290715979408661795263226509087062500009785294598803412110825577607201418877274907101283893632437344755327661099462982029247845727959599586690604600010182553848674565658275750715858729686771675111487265212206589305147029816991145935759706240523820427201676090897193644031047142701890112291972783281602113559756325548699992243388504519858282629103818226122655992591597082919786233193166881062975254106841171086259870307144086083889081617340183945217867616910217840007057215115331818346398109048550598419080653798403931967652618254901449628263813136868301905372776290221408228253205031575814491105214969340080059171842886747423281889208221098707510096094222717960611868752310865130548794073032475585515857271295685166711502658575372152497020735665542874804818838168943809294719392497078342691198162104713083095702791440448875294465222880916426932212089143735326343470189414186549875808544389783754276111604821944985733991946416345105882759641507497086868706533308767468551708636722004133550690898227033638087248324773623842767127299827900047237503365691359648505894871179717735895375235172704532988089768706037171689381311492611799076386817572277825030379948105309971413321067911176939082497857595017347343274863356684315499742555434287981387288858840828665550630311692303426240065192461820851294051384109438338309943373235611840834156109525474454266787441539452743808547815748171805542923017257708254215514552311689815984157630331041024867859344513956337205688588906905711908399969799521334483952287592283977865693169705450275524986037593813800658952570565487153992594249997173171679762518307807180065173051529563382632793212718062695948063416496910211160236464323589047724347766517250437018826211584376442266662047512782523518870217898027267280277118227731521030358726420824528988433168315791666499256821611449903424669515324639135704780768526898998489320525337210124674485594511686982516508631506559023350608946133259647585740474307164510219889646668576509308330045681872757241680767059216043554681009292559395648953329502797156721892027325708150627709071738710313238424960099196766657262124887134992056972358693324073811177055732346090215798472234521382771579580347220540258966441539053412137447005089033871538349390783651145807920272101479062979899235730340324996976240607889732184310882449308266190802622049990112859749295562772174646114689939294010594942097338175943828780250444099687534019038860177170124591227676884675715236965521220057724245036539737696902851785827201084335983398454456817840625749043191708774382410403186714142041720368114298950367725654607105012860183188433059026704135914468999688471783347040829146812415474309300998153842585056327604739087689049279322492409534991903416211544608213898364543627345255421371578915213206037656434612877334642326527949078838192386444755770595009119444142257604748727334642460795924629817046415346065133084095714764871552128608657847073529551768127582320953381637314429047417984026893595113836233619036522193686948953929298610560654350579702715511242608643085927282057320382452863375360040537159776632209913491222622982155246441341529456551577015191898692407298625805270698483128954807962543531974171285842576611402820095349691802167787509064096388938910484504664086575037294052210411280009547319660046500439442168485942209014452429272225584905936638244027733283626450303053353993096987770343090712332576249414960161079242873166852638845275126706030057076410952614298966488181203960638734084985550094173219877966753274996201186977256904144690206247765655350656642375914691733307274891543405830080707221480983167748193021736845370021228649151994480864391860713650673852662802901568680073865848269567625421052986411659338692482538337878752134922296988954977033420478617409807162101844151617722148191100437333711693674308773266973085990103719739779496102842916186841275756991398649211424787814353108830701287103774766452424063043283708377315256119447305575523791098461773531290644241044708945166904880695091460731826894492787888493093950009950702290353435392133255894765250328071052854241242946878306631082799514039926485381943346180295601431124328564846965317170173912538789746660971453942277274101144239387958959878910545664104268147891162685728035996783039870978666344440474495023780537494089169791738537209747073452739794605724927590824927825833506825690837808354569363668173955915005489117122945893425019397020896398720423360813109299527818850402771287385744354705819714490571304159192507557151185687124513861708461376219948138815550829388483756914525902356397006311126012211800437038477707067215788291447250470385711950858809347550637483829353177753808855894117419263293749543000850722248392228754394422626269598191189695630525279099346294615360936163549447879175037771374159070623175967245583685325998421558810316256244427655499025327501763136294312779601191643050971695953211299204527177449654633602651536565828841936387933775355221000752330624993891708860305513498245420332860149882251892444978971365438878760732583968694123983880820433462661172204379981330742351367849908458648166662862011101678772854932272589731796290083893809378368862243092816036269180732135646537153505048869164778779185842773790818861314754357370438396416108668454477860518569883643545539414674488362256907582297656680517777748487429731521740717222408996252027134463802893843314525169836380731179921467836533342174788805977284261602035843082892445143907954874192059946703109376776927346001157263547865330378705088255862616916954752736042627652426280382477111290356531092061375501041535163500294773602803042651560687044503456586532737488831388713636012808339131268504056973058262367506066185397615704174217427594094047776629585609930464445369693571312353313901844731016702853668941803502361632619326787257731214972498245087303034204762585225658713844171927986481349699003368236635925882060107514213059935405118239822139359584242128868015569496013163426588392290351702963854931431202685751720924341677167595367385459589156304151543408885004160670533466540828130700832897761488249696289240160421141615103617977793210297134762657997940215469978038778479401598816085214213535304149794348531891952830115750065558526423618771644236083078973458250523293243640264375924591800563290872305076297036484355086967621331082877017716349377640015740770619290997731183271570537209205365402970776786726653277933085996580010922173623890413584279519335088822145436519113434014342809428932147888483073872577049742533246466094835351665781767074465378364802847096926101318645029312296165994373555820292882023445072827713813735310873868156668468058416553952406315115736792154911263247750126529807086865320787180461286792428807755570652927825941943007588427801209591016637750414014314456516093920421399550727498787244571094135555045015722897094705928715478578423754955553068827716278606818246476471999729800367332877207475226535910397549640886425476524143137886190662271392033748303555382843444764459824363406532781363195780834389918402072956331227424040632911369762268565400010623898604781668629777784031279489991707396723067522162950965287896315037828467679161096745584887359347549108669196172246037943326536717532667964275759439960499766806612040016533028504949972860704275425093720773858637004154410260595244937075850036378413818607795676066806461723429500752397765145943294896719001839450853507115250826284545345273757796912248333719234276158203080146280176756282502407146025097160563093176724593076048688248790053847158052075074482030526496689819994025157949423211590278410432542583533717778889923951746366574326137285181100529275734664184818518156994434040881803768753519740663630478337284405581819299431249282069957456142382665305098134466430096988357988999333648249647226676786609483821820069176447799515410064831495092340231329855502076012976597654825143221427726580666575578245211435118357337237730492437142595702958551587115638880779956709924041678394507854184745979089815804130829675468152034660396987843938308183923747716278977138284443405134095116842773409217690725247631089224446647891168794325132220073651534562311855013874215233544503089388539861014611069074891095663596629481504685467562292894151089237294319319561491823182561129060258364287817219492917534538823527993628588963636795180669943553947379606788386394329921827855684125586779954979546133028786214646515713991659140284587348702705261069817062568063586601281644979724666816416196987988677368474709635196349675767724117193889891161841016757249065281230163968169315003082520148974579738890015268240237779830972400463108506499741059120950157077584141489180528324673061835140951749137078851259753482476926500423685462358436015970729618280443091680263700578592151137220121658572233654137444476594139549643955313251616096580180992087790835257903757726750622322518588306075693231895633747331807153668699884986386914370393791379690217509625869284257169129054200208155469777726908846915524811744999365707260485043950809189432853044749398963006031851877274582105246557741081225485874613984102455231546972860561599004919730133874530431602324644992651250170425989598182556523887587795429109096721908835535777249868613661528049587621544173261930411792496997142364803945636309930720835169224953962020083881511918372444522752636688920992957667709566738351889661959616053753500860232336482872126727945718259271787177324843095828273573981941079466564284153735209789228890021037317202758664290118383502401038262269418554517462360055390533684447990378023149350091043351555983611865012604956960259134576936587622265577063207518025910297097449295178885420211929716912663104142091401078642523861320813476345472977531744085673221032254607393016774189560202729920316247975376862780784597105213268572645373624225531925095186171876013451124337629905355546195917525480430389044173761791316962743448785311550195253699780779344712638424889934358191719567296122165205346223085534104546175351602853035317060140881213637333458637474490071286834136213074664314991962645876623832479456855495264936646501737302526991190873488938380822049031399905056275443988904463472232565858598791188668874080697010320268203991645965393982763139767575867563066119124852892485699495545274758259583805926698056690931527911877302059789706313787089338832207095089767335300855561529457849364066391245229601266959600962624923623543500671735657509324621100978763878594000378111225548186286591913026546612160749803532560234435636763124118158964697385615082951931800657154126306228994298631809447088299969778236008373193275931245373029308031970839167921123822037759386912820570401257724448615797828970323720982431419952191356933990701376486572379409018973102677314647704915431246335314923116498284611912232044329798798865455048855028172241271964129621425524408143383318483554853164891565559472845494159518329931788517978572333349821971674522093982279470389483093870068880950095001760186510756826190182122598791106735765741023718866272469935107575855314875850606889265301101838718983521117215435351275938264329690222339493804597637855809073171634956875032708986570450916388205248079423522275356870825602603182812925772700379918530126352379901061942595703521979786946037934090907681690393742403294222448564906242924069041355557978176280993978467808750873788927217350541572168610625243531297175287017002171389265268626196686871238222001808199810556711287217886692866514086857307314203026029417580061475433969961445419578017347130745325184665024873918663122659126015660236378626652016174160913156721283704302383185801183603595637611440219634198851777358715380279808392396230695928944502881270771132659792205383647524900638650538467352654712796013927057425335723992843925668211900759207612282727238608562138276534993392172288313289294444554185591185233251318300351279137925207603882293290768317757284347671056843279974476200796878545960902303706015474437242611467397637614102508918193427878230418831155679580454124311921034413514902690955017999960420723226099427493619621259445847015799426738408269168070342003733428173588242204803457761918055384418670610927864754468711090427656490961336789669320618650990481167965986055034049205961741584031837366244498788910350470616500092549942339456621656246048636275236757195846212709710103586783737628594551903569480784184420461164274326860787480844054251871227322220026214347989542952826749324038150098184804657007841619183863492574776926460569176755318367548227892033180272665310931271164367933819622800959541330478706842758615783981596678635312212649107416283403637584898673238782661376903593013623242961560311663457950334806960414680959998514167331564166366106381359333702910558095186100259659693358538133702667209303857425742167864290636425462777371245161425008963865385952758013222891865379060793284411531239571944333059711167462664902389432667179611307945823104411919007978388171522300067009440024006387592269436228510839890825228755833967504535432742412656453948010664801879337026477967864356301541959285025624393698024440700414898101285038476125576653219679989499751165166552568035436426047314998069415767114957179087061914479972522714795293279630735358761120758290680564592707528771761173126629456760366335713353483622574923160908849973395000823908022708340184421860239715622689469759011211164176352819617880020135508986069980355503955076960175235571734913676580503663480989176623747277794438892098679516938936159532508157610426498077187885831916660258754558558020712496020356901436024116067650944175116399552511760463554583545586837333273783538558665765175565323846658898639838629579349798658078391202883732216541805510150451839104689209505644292618713072718897597198522462131429519367378454725128419139172808431950208148721448681809122621419507962485836787251200849590524925366352557539713012825226663193126747271170874016874019818205300956901210799493693240463863410052260628335978477750993619741102160991533412417456322272914289845315460446793246316585082059900844430445292356835613059585727698497651003576373809488904378981497133894411215534047828538341025158627345220929813789580151252679590501688381107977937378523140754536423832677537259113972316858792687904119567525558325589432624746316959593237932807739721523413165102332695551004256713478165687894432590102030761299318706117131114724468473809876166132982158952373367323567167154561417555162388079712000152345311199454178338724608675919653156964945975434352624147173770273516235218690845881694332649543609630690327863678272173433787234212201277914530736152844291764593757545276655117361662493776258341232669470386618010995264161414469436866655412146535572510882313260444302059478295706469642084050663972063931736507351317300388044526225960365484863659694269514837219194053748866482246955138001416617534413109439766963048925949723208317530996261430784529933180165084520803236358264421016274310136612985587054229184691858535800025965709361068886707408368708490761257994716413099638885977280605725438367777594594948790395926558763192110322765058387304399870435415407721708153371228169725347084804606784815303398274253546067361331062553648078235171937319763829231976068793186399739397093292358465259252548784756066958736726025074964686593205347603330267022587893997155938467073463822210871654311598711083236359015069170462543351422056150023399316362122693161416451634672248700890857559784286720908705035059539110285561256499135175964493878468536271880164502150234656608575440062129328084245635478066713704565685192593359224746434449681389396409572880300774156674090238261424501639714899267150588062140473638877177652091612577430113475195452203749089616312210490435346518019000909935215196404714588647735602146512247941780590042351820766796507858002638510826166678848558950749158645126619309838305834826296907131706731071719728080776848480579658754441379929449107047471829728017872590170340333000923039253806104167548466988957313506803868617426399244369000507783234698240692427033122344253381686955456854241317436885767212185233924551451954366292887749040043945594665507408427025138815422580127799362494827612553010957594107015575245701740197885097699952595617208689434091597258963492835929491764187707351188755733523909753386139046117441975491085823789453594881734097886394506170092273558356900405856227237806491162179925752635876771733782545081928110810215902388311849529597030289045463552392776037669718046455009366389395271293756618364987721355743227583521179617697402893745677711710209601970860998889197482278183406451496324019134198595466675186304382178229805364768085964134878488276513359060703161660080738564502367408632651047956555552390569324136590617673191577439406138380081622869421478366058122796601378688103642239344928990155827756047672145288752696518498409757253114126969799968358313111636230166796763740682084735220764819875198822986305280182288737400846335839839835119179770057824481995867123744072885425542588206733038659351234884997970262313428093258461206187314490573933429526185556831586472346508233563111689903929807462373018589617512746201102413502530165047359873912996687731657887933146811462093006882223088720615833096858364793811717587232211880440756360456266510160834436772313414846187126693943558094472992220580954003417477116924948572249761131666871509490601304242787861170021809547239131794441841677024576301402297501831938044884481604777014040813741893954547596552735396146035191133930122313329913329256507989652308090598585740695106919203279334733972661495541705616616081542952178792420850189261589084277089990815410205163517964598157545596880694260180013035578554702715987600680733145181619407836722122385173317731783658569999622159384875883922489929110687127774169313747256956513343006306522737924551056266921880807811832586731369601120907714665794436628833001440815863098631726419063330440445080582281128154889161983229327318187999588512737838729385096990500690958150559968623777129423176197294040813941813602724051482082073795136314843354227939334277653686103525407725839996548618746068110854415993782634421838393844858485290353045697151099125044231382524925295400896002776538738663574156388274314110235995339222746614280895030235763018473899695696878579647614813385274626000172840076610353359970011074295886179093448568823861402212026281009878419477855669576706020829729728493217283594788507478562688354139604520503273390011597689975923488237896003704743509440126218101094815715133050052696734750515957930241419246771883779907897096741985620620603365776260662003934751458951212313889676805215858321485875621004939827433779291000856345960847872744334605561848216303387229105564330934672192647866563146898144200381872110934389738986303817212957909299112743076719777291578376748546289285218082039671437850793363736950077276642667558541999588569725888941718854732457041265453872792938355542304128413701321311631686167649503182078123352807867036057531692611111413192742877904464559074531083030459561199477889297649507064639716814514629453124294363555488686361248826561240064409327046272099193802499353896059744335128490659363042830104058174606123204394459678619943758818210788705529097240315088518044697672070493219326427327474947465735270631400846002270606955967696876993581612208087614289082438282250827162654510150765071122548776783127104898581258903148080115323482235485756250163613432445755489708401852562487855841161559062915706400186193826787191671454229784270131855635300759233917437150422523687143080286973897230659408747261558320028856056430543675473012697599239121409307820516347305683944357660805054953912914586456418951984212667557032614040165264647181916825561780500043662639868126326051567703737576322825572372240337326563439926101072777491347627176169780024202417454219633542368342108998205098399693090096683351729155605180032912375027974138336346557054527834853747615770729786028264231698956616215364150611916911869585076300887739841331443323522161086480753762756279535732619276807505917919753822080505536085921437064255882040794994568053209984521619529034874717291587880433789802719917575528412495164553897366903667977458510604923731647493348513891310767047816893150928005652508074003360262558797465873389588650455491059441871151078989476427723914132008590273134823051471147108625684424430556126457313179759466908304134034969841895264128081303923795354233955145164368583297176727033879966070502753808844666613249520847059562360351328876356928310404235142307368983022576189398221045147116497508649579313310230516400702740418722925525312555050751962630901419042881583786080187226885330334260324188741994743094870980900779689622152127820403638718498691155689285267885143692081119896699199175939442227659858529607316110272771930392287503735276746031364987286014859087801089027696481017841925051376836394432779858978349967075106459160807997814986746212959429929495103455612395285189966483893151341663425625387229042078570031005057667238782499422930433187629331075992163341034881853078945786213043844699022597151095378424839640451956139526499409105419348027833381410505497503863252134416652532578346241054313724205134365610070975026474975060187932989700495263510803848800122170811344231159233018250655232900080532960950529674761782776499033804649275642460784400622477510229840904464576088284008438396537572516330908693659501131668059031760653994130467831860450062980954641179322276064394545097464031190004046101363637566525147633922056408539488115656651564144995469997989615517085192389641735048616440196028228370231053195494455715777919567588597530366609882202496886496240237376974149089622782626717164709054545896434251358107215509931278700181094793378001942881169713845597813034375911744983050397272005088385100204864527669175972913171516690414586990948299639788578847124158215181915131193646592655022469952252065861237108617077752972480096285573811172643504397723991591353337279437121493974863979262479245746309268806016126833281080137307606789638853035247624795772962330363206079753131170032156315773961141417267096845791988967823317498025009040927698398894869465840619708837118717162678950598037992818687908359676744386739411089537196986182976738458954392441121744326072814344156833377839658009332416265311975886386314575969916282260607790333739537806861549954334396662534041372393360583761357136631484960228465675347318833395976940602425850333822826967160251488264837670313936615030465569440359099795880865306477527207618121415394106818553151735880056317978950810699820712326357146714531162758252500806200983530299859876534561587726559057767770523506800734721160449806488391234431496994566296883810992317937596151519832650120598781441617932890058633209563904496732740967756156579216951256957573430650111772794467699754846396367647409519787469857405002566630430496930378286467308890740676217208162910009270841088021980366469032006604898295265441973616508087089991399726806525622796418049464541564487670128005839444300387771355707804656432991321870606322081514275062240463573963323033417129205307955186159422189134174393464269860039630400508002042870415729593735309957716677615251624524092900687648409445244870829637234794663408346767889242904515984050860716953416892727685702610071896175287752516051145757923487582896882725005829643483257250194887049167329327414414693861611008212073014894509422091561135319660150600951530042151879680050092567027746169752691736633588478953104875162792541522915736474184880129370760082642006574185024170407054317172875849453496755969256058106800091735532339246553976580561150626685714588862313687782502707507793892985221289837675733944406123896019462548014968669537166756920279450041465728456706853099431195910398723702492709010435325525980501157121226328470745074590340596438552820872919118498395516680440487215475323391256199459302810597525033416854656765184945399888524327757835037208347774127463818740545863929254471150555432279981820868187969864701046561341186800539651313467232381249441404741459647131100723335520281233852214050723861536931660894605930756758626679075053701611040703409092628267488775028597523751023854526779620553060275277743678194057795338407659371912339041612299389658775405042093316578069596534125892927690021058353472340561065145554293200917074504394701995669836627702247022883042665069045512194383705684670838235730118163228543400184304949798582621768415619917919935124153094915801007937477404039276368882693841499375805717517134475581593103274577418757637118775713224689227224249337777113957558484346931432056193522817599764563384463523667932694166365293829299473155416026227810434045971282582242670197609692542335680025383489465631124951701468994004640091188074087077329964303094404358183408414175801847899502624738956907547819266522199349674054172881911050332527900215854594317573458873276958639774133830265422515748812728581889273284977696911085259385652172391840425825823144703106476046481450202221028653330865637440225958804713218694501443668175385307315892005190657548015823449154844317770817671252046119649394501886256763741453768645600601421512612924246459673064284648851049761119188467204986645475999926801775664337900340056847037544756287824934898408714007702362965041707501045403006968311235317293403026317221317086176202960434454820954348676369524939415384766753809577355121463749908050382956467090205230467398556435582380712001340517953581775926611792974601486921320263060039317995648494444473161193725369420623475637450478267593973212703372805781343126621117387222492806333639834519303680389259309688995209252035278571980992380576236122849606523276970970764790391394231402133368690394808687684743308012268869946203470823716309724704725028106033141647014474120542138240308128347191009308620269749091536072252751286597749519507014468359570342661460253028153384827277644979007768898074458301080580762580282652539846712184990443942589188021880629759956314281638485112094713499524227290966256213105720027860252130271652435730201321995053171120419333856243218115968535314364280988660109585436852601085293446378411885371826272165074541415429092412576342816834642480358183339986607357730940949860657066158440701673506468455108344830410340714330688613506481612313350084423362414174425220384716206858157780034407442240899773795250772272242522163252707982864834239360319936007701578145485499732791495715242047771832598625574711721760004759186861346576680074791388238882526059503696145637555094836455249433184937579583447082565112029771305489059858893604904198436615568028063910169315079412398442614146314527207490634216746665622082073387405441027555277326425726662603254341416451806464620135910746369048140913948817349150190905887865886575608054633191153957951992269151017526113553536548044915380523524309209568391339236641860218486574056531386585891803888290100495441053950428190852170956897098522266049149770344256341520113354359560162080483345705678582847518288694326457284709415507066390042021847428414815072932114255525384876823984059640369467558558706507780528881184370543707668539402043667908794727576997674271743908241142251517023195532601492920532485233164430336141058134808121187844540168004984186371953775079122509816883959439843743490500927690743049721973216682690786818942988655432603934799602791528666316742452049935768321975982961409060960027750075411611823413659519543647682659743538725034335575607603094264593717684435256584561894133043626585493339644881366781418994035378125186361809861431093804686084238941765717091983753027352946053182177484980676410072780689353948778562080766076462886434975781384916754969480133361645855359234218744439048728220232748279000438097437222409055665798279254079201827191764073156868788990869823443332429846171348077941579260789437869378793218192762383208856219825626205370615705336509986660437335278004302978538582577725820814349306895099746902842123214805436252144109926584513208698356950379341219278770154837668462588485148035328210057622595312384395499845597718366177469694877133736029490243201400893695435246428467039062829612925333175609054580152415336269704633415609477147038783311408045532720266985169165505458088526234722700918568381152913251607557514732983104817451169011854473890500270796628135737332891521947351317150714211819622395064036066250793766101141090975719875195062790767199208415618383126232787053677949587209348085310337003707967698144333986531947300553955036137371690354044122744184825089725543411329141409921010502794060781343452745457489103978703959255767719730326629205850021841243056110147117266588588758581109801362242719178360150563008450612609580351146221868970392656006767752271278115086918240931263983238895143307309208061818367053327222199671221382439249413384503085537429139510060612140640152772992047216247469060199687536161293095944353196702138702622427471342529519834641150215258521719073343528760508969489859661873724647148445754004263211169130661080007590199276852772312294338453753734455619270731842077003525188819851000091058869702463614133946373640362916764850243139592226108914312458431080249185337663654737954281019800639467549165673882209372067955022453974952793604321876041673712529418689041678756050715819184628397499517761898470120141728492253165997642491396155346304559673700366982713924474617224053775638845250605738311722063309952246138275154384262484183054546161423976795807575792892955358231583791059988100013635583580253819304960874848406232442130196731285727975696380891589114151062682936713253390443220443935122562713425835719375807555547099528058650927489148560615014905867221863018145395527154337744115748430146045421047237106590937458945560185074706555125049620797634952629628585741910611986843374359599027675135124284216278738270407361790182264211619056545235598213465009844346847498934255194190612568539471215509383577839973398535979920804409140140130196920588481624165779207438506165929884295428759267653257646127865813653869302306432495148722915683419489339773257723831101860728599213827439955316707179778694631024120965629925156369070709797657462230224811183699337954003728904003552813838791669645146305017446678302677339156584851313373322134555912016942819944635586911990104670257248863039143131892690272342788076559567143550810085233287367618883314330625840285446138179091649151138986886102042441096949303994618815643469225923822715423732556186576373191113839350829844737578763090888190669748750346261607736201056147649195858889526175730298660002844920883309869356389666935736583154321980511463029180303532823912512265145796045112913620481416074263483689048725347741460497928968665471804311096370206936618003815649264601763228235467525772510063481083324604963974581894856250715927985140068823456587664328616964994470287617278607401627879376003134030536537200163361067311973540216574274552661377246414679701634232210948392735205399216184668443165780514857874873899561173561574229271079978937830411746342331723123687062988799395637969323438140930773031667385587583365894879219229299170292532195313106313751699564895556279207732633443995606991340123455661866002723864409129577681745674556204269696639791492485463176155558347884911203132980810938202001667082142619538393913519494332455874157725836948116349214048473354670485252762669909591444857090831604238663433552347995241933217431270826427571501537381144704648961477923432391883659760417327606918396476067866322674929193323161131877673919132713156449130569370585515339505822922629793669280098890127374401107299130758483919483725163875251526812093561550689661281565278504377438567370659686571290407450402139678640980501628716324266422673376138215295623652204021188430916924496201670398377240229007751911990173388725654945167024884231446673301697956493138953858612398111668308257202233372469857377872517673016746885270115642775820059393570981225869012588927727534775124596954525038982611668021287757380563685631564442199458187402810656801753185564565295582288616955286274200281964030614391059003215379795396930218519423268807946852791407258771948469041176416915227472110682439096583493681740724391256726014139205537504438778509718690612830895421445090454534852381522612136091363279625618713641431649422139355442206005338273451530798672306688013562930131650176555377047163009150624792123739193705754138726037784409421730259112504923861549381900703973226982708445933093837163148061128341179486313084619959430789684964111687084337933440570079526478025532429988270212239589071572621544918831198911796492255687257951873764372652104196188623597080763708251916019748223448209944333236500401510330803345098734208212792141200420480180501079798561723216473504401369811485541058811972608739539425490862873783903746809883208172214796830743130269381543636845378457615575201994791177412336708593571769209592840288800006291720871627379774153512958050297099442419138076287230850635785570220029013432709277729873751576166247484047392851550863164215302820835265015575631195908368230734030439271518105002752650033708689498428813235684965007249398847401056947343380563733840238243607253887330911137388407645000377344784709100186480455411711002561405408783699288695274139261937908513852292978958106283980590449924138727376398571948291284483476597401404143259818850245391067059176832462269483973611571814898528770650237921321789269536116379304464677102539916568443144432020298116859366166592552065597956848269167629977734031737378030874820811784876725458683733424633452419941410780153692124159877833997466997395429518681820090649697610367821528098952987606995710356909602837100859978989894633487209570802179233665748707146777367360972463992215753219402369880425601500007584041175731957498416740333035260394809737885653902886659099013584031964803732938986045942039868966162227548943655076000234581410708961509394692645277394235114694011127719149136925437858539483527264857552160208720481249169101852717995183756073284426677184767954071116218015353987918247749816185835646452280308632399771384992835920927055530786651556452768959162186920347015645557340287669263841325770360160596459690403225512310202955997098916418090712914574898624430297707113894146283648484871576785677948781431251243293550247687268468946933878930968619372172452421687392718595032641171831981357089270756010792991851456275028662192436979841781141404540319609164247843921439027833868372641711554943963041940588806752381877429108551788002078811767914778773113638802772856696940118272755475020009359274049483769196417417474376430993588281149024158567172118654518195403274463085084900186721365271788742362751336854382584357260976576339859353648790620203688881027015850058083028005290525005920409954009559933828156055157808056927750376405932422853821694589247308372693348034515544089081803000097135903138760369506462952558119323319104201739769685110785451020588411747429566742640862762260667721607633383260924431171632661044281459586062506998686074775429041244464632860784627920804163161718877365407205146931212143251692342945354332472824172960433247902906354057442643551016576188688757552892490583073226688579406361072634713145128039096794093684979336814875713298697813211924730599496014027781864831950609839994902924848226451969076694936680918529246540254800772199089177291960931566054867802714844783766043906003147146452296723373821018725039173155245869955423886136497929893405730911868982296875692219878352678884816562012179932355718119339478997294113162503823771607476012250789091391360073698161644961550771156247518486718642741875222098369926251107945876744271026054910183771414939538460173089933449360476973301928779138027031350707321098188209904217747958244675990200835711681784488304787391475344935193814011752088137059843984654955705501018947463317851354478060500245322289869595610981274453720034050684331619519836303181703747898626632707244065379439277750611738437739100370156045085424417182946223230987415992613792310306397975196290621495493675149348295534255732673405736625456387820877247801701251910806138076329419104837686206155039901710577549379437198149860227457432768735866547211937247364836888473863695504723045861687577899262417991924288808684663276562154894537758464269366017054904106967913965856504723142697926688920856929628784233165154008797079484044606266020591420715726414911842725772544518517922522992289989255241793132955616293338761041608491996663174423087794058873508394787307283099169773983497943684774634480157906910420838749535492617591718541229359751899008922262172191445930678861976035622188127806388132245635556068069415255297897496905210255587116668803946253165815590264701717990003990248334019184741861117791425087957832200374313389994388787901749321783285709136225934523987992119413582964860423871824067417098622812190185733368156857032359430919908413100327424163085607040183967645421975659821525834228867964906175332880383375925188021355788935119163336359125653076196344688595555679031931342675338330663164340607697250337461204565785754274944560577318094734904463642115299853304353698384660984613766934308461700054908361012391654874021552018074383204637467839049999351856781079228972587469036774957913385350351336075507321325600291910315513107283177116250772551531257304962327220860225214648402202842798593292836688799077140819239883785035622052945336156802820375313954033176431589405632531123586823947289210428147770904529570491287593524120513586876032845142582734694488545643193344560610392771958212921941310874666676659245749138539157944635523988690676799695355659403400839266309489156370515518332939400050322641708848899460174496659076686847228668101834234733580748167860825699263614579414341577379697276195362514816047504644571393528525921757839527856441202769631859515199253706473854375073484198045852310995245664026394525671148305359686783111380040816192340692340326098970410456803793483601054492920692731323910928948941612252877254172588071576980029023276929926539672222312595423789781879617297369231269862904132940693047792690340796085936969553082870633498853589806317037906551023455503598110472263078432437887502680866528666197012358431075487193446996135110246538230763263859894685743530656058275300173591298306951563954194337812121118044070153615314384579873166672036184046659229140007286157047092318388883712590113775110154672815683126173135845444955569340401606251591221445202630400731678624212347398415663606157002295757951259606789094918071487219920115133860334201249033432690190315247111117705376749037925070477108000780724379721999748678051270543865809773836608455714159223131125076994385057495720844706161764642897016734248531307265311314113296922449973258986937933620538231043046881167270296781793531514792526227715087317841347201175082919918140024385165187293321922367139330218393718018284319234620686122487712481614464372623846672273871692704343226676282133595720865759252993357046930167137706293723161840281281466540339392997647994508355635293134044814997460821573143678277060209036200023656147948179616695338982033036431519760589388240313104586462453903945756376887059279419144635131656563853034138055116073830115234965016026289833117526654089514276454873943642900031046497563418646706338393702640432719993444501765362119418398091405435431204661107102294914795728223004888150989288005202982221956031371555319180723675808735157394941586386346592426492982712468742873788710721177960934285282218507517612031632878650509567859784696943970668574363944173341905638350440729438621752610060673994465714452565082185110811234734977092353306073156034383366681280289728355294978346861207930653666229848868445897302368695057318071709271048802093698860052594234685582421466323714836033470887905083467514163185997873182137711360933796792267130480840063571274044761901699021280503624955146493756285725553472201552916273600484207174507880795076184591360695778824861874794960279482146832553636964805579475195804226596181757545537257578006385007882894288015404514728664507693636429261656146409237609919442302530717760664764609748901300712832067009583444148679596428844265653348062698500890014358597934320495470073979019762402183186450225187355768195384669571307006288829263756160327876421596559312529249242216132957450406538220167262398618661648581434298883151920315905796007336630592644780176824280579377519254991161387408165551961800806191448772948511662569977245150821371463281903651808773347375322139017956945546985589460995099448197662316058273897392430853104944407870847269906403178359352904613848224060814013067392119403592658922911969016830434362279715304844598073159037135399085230555413585030330599426307530084474973121329228139004149372925731581039036715734392981372366096770703723997564711313836503606104054887160986190396184993610539032305603590895271652168824412076000293777205420054934505995932847657914451389480417920358508525299387445006490770503204262460392913479186052964181514073543083458770362016261363564753671667605974780085903142936133379293319175008485509604389718110409887752004921222370695585812496257133144760665069336788276888731032445424398289077351072677332667843932332201926219365644663220548552196362859886982124590594841453898355243171934249129900618146395923563828594061690297564763112622914667465366265823575832972216617099689212152632249540972530092760909689092981539854778104754603970480564097019438611243783216133017217352016953866778938051847299996113301753095363920200797294384334427132419629801071959511894080207607854224753470765972679570860437380133715614849302325710198132874943896149485487837329709427816336254436333082693990557968810494892037587507854537640505365757571955571940241392108268760908876905226368654030187082270188354758472399922894034079079513679637963507263442245541912809577059031587725558922077896911118686536928072383024038923627104980728883128755350717511334248096928769720158667518914217143425576390489594698580750060927981004390924945240817662509527417274156016145431594518522171855749552684752772716738913902901472023505989549615741731698904285539944028302783837762365010859093691920154027694868144088268392159342531859686296886770735568178360341970518419116791939661833729700019382298015027248308350801097177309111058708948946723054289271511824641544091066453295323935450519305278990931728114996492725306034702159871961345650020631071336136517861654416497035736820976258374943863039224877343571755966711011669312791920462088982875388710715363136881554667959015531454623653372771094192927484041691314541970017754019166194192795232601888253730337752336012196171161255538897835617670837738785260756313420586568197019298042050503450950135837302702058324470696463969223690638593311081122013967710006747724553614517398246578733436414551852124685804072880187810597648717763079789332546458009321561354841948421779175593309357859671946991950561912931679934411945972942434600010285797589940496943656661909757932956680542467013837449990948865697217529786249994440386325648873316760040767769071769110217133246166713693357767751796687482379811974164138932966510983219131889123061288321306175347306459432631236902194248765044265680064037237356520012431948237319111641586119940162345610705558803666260316221668784713489649977257144363570318750075329860063330828997051279145819777920607806942050549492682044404634256297157534094927435579725160157207979726607019969187009861222418896922478331223069883519302680013335158234809746911378369744867632078154664881263924082841865160249149549798644272098660518203571764568949935602043071048929581586506395191730563855938221751430131434807598669332650487479903805646835095656163984160231551047965988593168474522978453271156302256796382458057087383359848615942699923530317472056202203726152708976066846026088744711951867528525005617829728887196752466048954131079105130025731039262690888474237156518309916354673745723994383500092516539191810184237064182784463199649055288856993932528265626282428690760469591229338888263678905258896297992600436583512928591660168162711585038595099200450238288052578716079991485779511741071458789278928594455422975748926639149060612255901846742420489830696032609924160537319803993095803184587418756119655169410302588427461326771528604167562599716689009197446205707887606193824714430682007869995158218691523480946205994733672841618743801837624468431146227199718354041990857212670067522055708177908020764223877008302314596324376972484302281374748014994596782976524511116475628449488239112658022320723393967248735348379683470903721727807182199304579617087484668322607548311946463631629550461428918187034402551606610996043968227976008510510903936291091994211938826655136431104593773982337547022348970989382383349606222414458818157174486985800768017680983135448890807309801045982988406710128613818555977913112658579462797634402093254046425652321448785499837045212678648629596772359938670287589062826992794921488808890259752971774789067202993671236787634519865957080118747717986484510898251955339140452640402757528622015609839097436788392343368690293794902388062976992556920231250427705108943509783202370260907877221028883869173065202970742687059235430376889847491331150845727240892727685293202568303822902698549830926642798169621548264378964612836838042073209244634810624823762867848195810854733788917216503370931716230082783544609535500015708732585371829606975508170435834992204347823973727085823269636237017609767484500304109060401168774813123641572249254136735065969999743514683113000479043763389468381150750447983622497756891870633121598257365693430609810105810751283202846444444669225835877645410765424544616023777827884230143241483760775272286664586317686875728436203463872646470337810455803840869900184700132949067201629106732086656015272003570377008772363933708461915283204882311403505825354128671849769189874018370111971124740816615401897014577602302374503811231109971026466141404185726108956369605831244662510334421769869553123069183533005618851848711467565374712842537837536027002540478152676963868002814906708268471436627044938342088682979560559153091431959230537938970909123501683175231569389220817236677947717971362719241455588880860190380407494601510951815732199263163081536727786395339826503769350931962174930710360546827463851923840108589380482153796057037554136341945317910214402772440022859505105250788530056362548796203963051416750538902815483989382605618460596925430923050118448202444057353339948646232469861642715255204141839454588339064507002112028162690376437236786327092384808357049285566542256570041716643467942705669316946590355900250098110204615997069222696043039313415011238520208433078349276852128023229115251973791375174328405671719578654820096834839493549870633410451091155802399789655537286716719980635621882290898597135945659956583900719908411352900703212798486817378763769197501596503476210492679280029798828161442624704549931873587379611446122075041773768038423308899512489273821719117059951771345342994572972521521403834304607340293212929718359902336716755190204836798893485785428130740917112127491351889665038805950364886600193051774797377200603859479443146650104107719235172244725816987613573155394736063610226081719549477487334657530769762382929970665938113035566698283830832766954761096688653181122041132550888898206279798064803011217227923341819607984129997207200884183938722113903472473108515327748366983782486796544853960546733245178282183737129068488432260975031906355301794126482389535114738786399505486022460003357691360318382569522393043941627677865022636715905426082179416260627865341378178728420381565930074463640673989667549268764939571849031321211365620239026152298406287309564812816930350186968503713109547232937674722247857296417081985894052169659810525337889233503198725849488937286407683296645338400341397336846566429981296207453255651661075482537381673969227716956365366825813785392959280486393462406800456128973677765649926444527556162223994317489110997868141300340878616096406890919344660106857817399649669192940715197977061967355632780830374867624281895329937993501743770330412678463941074239000407519860591815646594775860969999412559689622869881578902426577897779204528945726859788015120391878644971604999362226461249586877214347718177827215403315790874383331809450293538191572814541832682112481972325972143223494026289546957476210108078742584765714780160883340496255465063241474442371159678992370589827766568589771945792599269290408338932723324793025420327412082794436936354791397957972039636639578210495841631440396542409386047528332592434350078130659491794990770388167056714485647590147081936288460634387083087301399925372529836689104103313594394347713254525111255211109279872778595138270891636659095207417092752512990262045541030803481032270004620819931349774103396993570520081349069420803787220379046438289024990240122138046339798024218210683934685088493016791828966213042549333879965487438610932085149105332758773226902672412929662567364590687559148963120501742439452638939790244232370326490359685257821378096515045449893186606855909756632394422618222951965642157254180903209980449661381395312098534796711469934269493824514966747515985290047518052766122600719775722496708151505803914346182401252180929356344269769077593665452090820250602780467149336326778720581681597025048184007645428436549500337194233565531706110028442303004205305295293308676376028645654611038275374154748491009312872595644205697610999302088104035318669489262396099535657223357475743158786184590483196642956322272610527164819839854633794370836572964093948882039748696069433331514579163972074807234334427069762865685088947309498159719068311061200102867523095201110639978597041881942784387319179548374603671903556930383994015483738186262489261815817546723094662836205565121691747032788728457031534544485852236960697986889224934532820969343567616792601084723826258975990526379232591641503276362559460774627417043325449345744488947721687627182772707294796799294070372568210612950899937024621719988989446787668627345794135226403349817753083399390670296652133803469837272890532476006619392545820659289701415261295072742629227932465791704383716269320753650111960155752594694061918181848737771342683444424052930660057334458886905888039317748451177410239735877528228438595867202823987437435295921155624322438928963002729105687288726816161177303569527231697743695929142484462118989457501169031295742514828451744198713371748657674635397474576159541608781521949380382190631719785463648068772488618103918944897507305385580490920796321483089352318480379090666813452717823353224661252194992676529142759089092262117510817467050005956809313519528400804390075726178665775125745288433053553174841429175337424877509489933543735835955457882706037397391292269370301243965689712377394516731859670419317393074231020539449279372556695143497880554570330590834011304552420883774530182347148368540570383980300834901466615756278297245438449473653894739985342875432822747853813731163246992938367029583215296762931690157701637645970731154556827663490194825042032716235543761606289610103177892081300713313496833865486540725269994243818874654827286727227810546989992436385383891710091592717082304906672765961623781686404410858757454793666754385969867095547499965912023647186302513423428660312308328872542614846504913339140845571348974212133262795637514158859383437023288367636142721091091632643811993071180581370532052181871689034040842283314956139714100091017150993735501625049869802128077552418620045870896844438306344598949555144009876519220044348268870127019830394069224285391443443769252569060378563316363591695975636285511685563162452502775453761962942890436619458968023918515806791438606554576306665385508979167196722773975207635829190576647967180388564538818866035064543168335512453205238283278277210925962979474365082733419069484117477135866941623551515418976650273652437782927375010905109308258678984624186849472218794509286730565647293726572105569324973753017203003429846293990357604055326948019752126003066980384350399536224586496757173536448662296086766502211476197190668367000787861952572772496077495301582704019156303489627631553591293521702092981509995711897771246908544676144850835054133339784826134395314953719150241321492525701145762701032683591978855164103614737647596250976223028811188954047134804246179115385416323284005437108464269095036218683372877564455558445132126070936508889689962610406609727149015825926516847763506236573352767195383297892000906729856532354522274816541019480074074983918823027932639144942369573528899527704109953394755282701081943357336971843195081657518177313617892037222004623202250257101959975795240224447773214620837600834855387730627390209188683525101963976707841850327839303456164014187654569380004166672187859830183324978043066841370878997780609708751312245373317921047765321963226929206244411860240382393958269384876943864799215827507678016075065363560192478163288489506739317047508196646271951189687925950485598142253735349188202252232254527064031100450586493401962683243996750270941977257999962112631549818066293540715583610274971906518427406565937254512574742135652740612551420873683195358915340183005643761475560005901887559432489987342354418536298897724641429112985184953106090530703685290951747470466217592782127028442720276324221886500362829327344812778190824737197178733122826245293390331056612313694376721597019056278625102314965083850517849547462579286335484676475056193895604871272476315354271306025732461970730588914499576286610805194016087738399359475968793420630616497610162893847437876270839809365286890936241353974223097404401233773452835062258300768194953505737271247291463024293420118205594285875409672998247743329952532893889102882623850029186860662230600769541453440141543780274354652779811248059501088156886539095810551792517892616859476198901851288548533001971913658050934308651373391567144253106933455853593690680573111213522090148984322616396432630776114024959572757551801795894194013197745734228922330997391962454237815316373992053247664553480610143673068325795760516674364736620234621205488325796206777946589615346666284962251255998837366356154573809942398223413977857318118526694509219333400278395660522190434390795218769528629536258345114288337418801389766833483451992354372759509972488475499853482128754160212142000716742527322818658471302437403801247212757715517354380686932178170984693047721386934362393518517720943809190247679191235016341974983001943492514392273283998952752845430980061397557007914170816782579339825803450530350435599716301845528168292642279637951739982625697213931034888695236503388767235345917921388311578797662440444585686266118761866077854423457825562175139151512175069970282671214823537616753390299724794386940098439803372392608257591497122524969990916251682241883027706483153811223687127561226085840232521772823899197546169668710046806668395139405468301470663243728097173085261750040540584635799643871306025046653245098513711350478406669674081206228084952470827367784896750668680665695204615935906403278260228102365520837977749099988133930572493066866543878693836289431253517516138530476569608483426892163795317644541891627305175221678972080411022372283886209656630432693750538126058074357155644252030153606598273724463194200272636840007290391352321609780682089800250397115413563807418433383843775594568899343275732876358995393433301321522590012083860051252010931866882673567260499879953512265864607687845448841833834136625422196971463251892117282500974121983889437996477424611182875649274008010958068107163190905554406637684199248303038244538612047639180787774784095532936773126665062304634915420945503013186992838587040497769498762308681601198225060378407782933137148693195576904124809600289428590147156300359952118751134960928464643882776366816444290872354236562624184913110970711588110759956848824186276594293115532643553365781078624936606809735256728328243880471495336516304463220419935623776365923546949824861222404369330506445470866983819456132717316706287211292233088278228768566112936704043109736681582156652530953192735760657553663381308114126150418274259197915846860975661711155359265047245289013979730748365684566763766075030008038868274480925601952501822877867751168351851390092399073510597032706696191540732872891168466075052090920060714564638393565915655426687110625860799966340457758882769823034744991771278741658923779796117044330665499088194970371992812185309204245501010187280970744329043394827028863200729296823007160613009672672956269791838625419239274660390007121099734961053233558472567594158335365038969578883612227716102099081807849942356230921096520200749681909702336820464796210938523210558762150886567676848354321163469821573876550837832037338143199007420263497842810116848957540102189754507098326654276214693339080399046753111520241502483200566561580635979236181932300762882729466887837907885397404896953393147003113132449309322770532613002885054342907789006340319100228559937419959054534198294838865764191083821664299146114191054104072171837577155061513515392771400877552001228409781872581662708931273964546477259808894904638744412033834039847054748264843421660150604097870387197604533296815945603974179277038661169175403060560427594749273731758060875311296607988071723021883091816310355469967899967681411322384058487215045110977754130927334808561399431389195645917913746129612274326490289450582869601839766326676818486367297844296108245753273532378558101279916957607536616328445715479677570022259203947901245647188595273323538013204986707161550915878288956727461343961549590248105267578991639561562922800247341472909294565424144238427975134894573060583395554662066270210014102767079458435211648908816862436979656823419770822333130158028218768411671028519113734962555044156500322013218780720836321567275832894119429300942017627734310749322216301696903711021196817814596112985080356782471755722595233764640402399244994117133227064814092208903934067741659079335822479617612719575790623216075333480442592524721663765328124917378791355454531828388653870756476397340816244449879336143123185696534013864422093057439128727633815813871255067371224288300998581863210156353494022783105631170331076712499040051320012934897027213099521549239150785904214026893130046098656152361405253039272543131409786703723671598135087041444155684740934242858068266918870587013314646320508191505624847600443520708075408782114949462115092792335641676736833501642284278652933928327928453321515289204094301200081708618584107504415762168102606083356828369738431971365108293621246800257976799115539990764840380499281718037565345951838459509934009339260311050879753764133549052939570876599134289972977018161429476080132837284371590590628796866400470614917846595143380897979017472288822130531415145267504796951734362334726153303000930497426565394579474740788563667819470875812034604862122119732683985031983988067512355607212314224839768206933579702545411426785688286857621814616682467550295237752661408949262179410234215163541177570269072944307695709089606441496588167174212166831811496370914477913934086779172036360471833759073820099690945012308440297824319898307429912474750965950540243211346298334415639386846663845113041716880468008283501799096954455742858132774403014003363683787123611627532239185200931510869547854040603851429675337051449228581682317546757859933248970433194748116313656876224420921196163984780749399063255065861047264994627857091184829307640052302395716940453022977484337534496934791042788046497550916892848110273355938094404693489578483196619161915687678664744209176769614601596143007118763711598184357094876341973991380856286178181951683356605131978094532258542655251653405256418983604191809877564754700933354564638637458818370719308992777474777651940071210016021292429042884377518855696937984137461959487866404952885179702994403417092257126983643477923420004450897240195642776843574000469180688578829638255568576955243348105923536963237766541213613659416589648936012690830391218907966934638782699462568989432384269479001954491764907992596728333201502040550563958228832298654215201273903857125511583389460147882679613070593684462714073176635850748773515360878547105994508157375037687217575866897476371420450858593475520371592894144903845551888247782248886056768179484488505424827117656020412756251081698730294789916929041778073208202945391238728850578047115027943406781972067987066773468991759685701709642214988438621317233301403648409062296336613973120512678548019751401068761497867822382951553014477543880094209195811190845593172841912844754245930240434415604684960365223220703918197954739023747928894306287558798955043463327292294265819818993849643390390174859190074549851943243774688971516350617840447658172638369808979750933160686709027362906796736528277031546320116423755537799298474640332327398535516109777781075212622968949860513517165602410287103772412940827807555891992535075849715477021490914683365543223108654748777138622887576081007927178589790259875918863519630604566663336319217407944530334592773012404904323289169886310725490859039501306666592730117026037662981068329188801540077400682229302138595764542356841724364975303391034247595466797769708002737594358006471524868350668199462078500178103542812825835286534039521232796603536324082231808982544771052047503704252264797228699159145224300070833200074295977322725795037652993767687202659189314667887983961876650840897212071621470805053296553068382337586478099701736217752518266225944889755547910790029432807377769541203788819385753362453555755538621513721579048564519552478272383904392255558608545983783242042248996058662215842368888782818875032877205784097787089910123979622359281304154281462067094690729430442763735707951946382406385353975389325145532040398658131876665067180128552920929028138846494499131489621511096573538273671105194612560704832112062881259687496905332546516609855153284705020721844897915130385996182707552535083094178815330737133334832472877747905181060994006506218469579141609025863337653702695033632515901240061077265518504085743720504028696419034506015434148258748213594896680516971622041292189090136519426616334910151777093541878234115944342573018458460479674977341123967367460769375849063542999397454530071743091496740145218588375807908410093952825123993941887800098000852983250117971552469662980523935942605334256683484171065964689960240675931818730076077165696460027491847845392837597739561010543622972283307967124275958191338179078340962140827730260945983024116813392425402102479082958427192272091231049877774360082282040479398238357631732443171948315697133001082852534017809175846522941747359197349372218733486503775663769454517348058412741929648062378847469600323632964560718750085619940062901963618143276961079101024847744994817747303697518992281355769357501446845470381796435604192748202966411484264755388461609284317366732609511714145514664208775937211606640057131871831940378249303566026421145554655096381561717598832630660635415029101213817574070546034758943777657343347443313614570695499585520681596871920795526467023503228932588692655211583740457176792697869830936584416052175398397969141646921305288712473482152684048633544160366671645452057287892065390396896570098833039278228312463988322593681848897300762029501913922174696391900812982244757810301784071241371181333474206915380637319634203722700135312823156128209273078733360657318822433035267753616851440128481421604692792800626149042372647529552898067238689801124635261708922360941951429831850549387764220559839784235496068384308044463091873898281103232617494249024592968705429095989327718867278818149022051859424964978643722019150845872524151377330865901634373899036909618394184660480476412857748573396024328884856159481653913099507843261527612427437304198132191310971382332353652196256565684132100997793465867125309809163123694545655240867099025795737378690735707957623330415204577601513883455847419623747926673163943170811046161492806358838918930129277650436642892222952486596196474250156393651304555422184136981155056022645692242688442709219082491387974604688426215352222321596952972046003562844801805143092351464906483155814707337390990940330635162847636452430703990228906910322690633577603648605519409027826803159378088265928386788589283339814431210743242105744407797255304875807543827180897381605829460510483029383863211204406323798531018120096800478401312104193172311588019894128999509449051823520285501747845472762059863697070096215053673678007104018661808141385962780769153033085973597922274297796806443236893084382221616134450290924444241342868204598923914410058649485559820602849227162477870269955897422814270143672583620201910469241114324811365678238853166167823059101302957723739494218220628532292532966281056278942937466150517532071023254039560695420249982143153977132554329758685525272480132525920496236391864282402295056529171734982073877274864534744992666383346808047284310211378092719503669398370888980792873532815339847426064500740808443294502104866023527925853133129653132245368773308954167066148363110682779419010528654438552547588213894308783875546974389267645496621380722884257239345052083454215664457739359032723197581717659160914992230053647772838127334166622533841472242629942411924622400978544729798291278440392639981696982498319988102820240201894960606712636566100746939708920646894033570492380927010705105350938561179427302169798825354162801527272038979683516042369023818835988721040292019071056087510016790371111051793917137546623683832541447178593865302970564626260948159605973111282072557182811133246076104217747759645483911179713618873474878682539845866897492106177035032173667065708216985559866053152727023642929621060332762951293492175214297488361749897305387297952317713765169565607600941025720965264136722804718901948453657730523247184576856434531334180912602575401390394116388610927763073561477104298203714855880998828077011820768860435818055569742895134939208502703609985291365667242000409340681562664800047750369267010067187565498302678403949779028498408041128649042737318787323574923351577792665464058755270197331741525534369343335878177439476676986534109034241828856004682442717355891956299625079790827374560677653849024226242434139444105147668328626098116986962995732918948031309383657877203054406356888087392173364316856301974958824077856564691100584485063221748560278698708254492343500946242878114247925570928758816037133370498944479355413578617677742593003501994878818935464570699898023884285943402352939573590363877995548580184443559823169084248835355006567840024862288539779059190210100832664391404237858347141539211252119664412719679850014037773781611395469455626393439637229169839703443161802263801853507727479038358387760381375783864701213631520655028504382092685471604804944672487705111529563991984619660704801990922543875919360489941776424323787824512750976245752855490091949663430056325042158247850394386565734703026506980027224965381622755412581238300224668505592701928095276632080553239136074885985495257698995079276140766434576464290971818152704084341168648751952915242506986869720912197272764166399894803529381557206103652854299804227933990984630926287867918884474582281838491541379025757617305573721909891733580870609521181391392283701733047688180850991710905044401302490736272237452998124794221658811858963808812967892860271735024790613642266669709655633060101790505226554257504425919798843096292810306578173471637056821333169546753852570412755704075586258683249666663999607717507142454243476380734993509255726525019287640864927618497173045897625148716488591598951255375228222955357809275515771773494254494064636532864388734334217530702797210788843935784080519477756982541739321292803528190432830422660811527761503372809322221614627280225517275940258914049567804027668536835600648375121195655603792908901749705688289249537680005511704451470904027647709526612617891164352708494766333633037504762668181349383168469838603671786180757090384099944166818885088571567337508594523816058288505949719141157735194691638266329100093631969376262656339971438859083062405002210685624839375451664538977952645501454384899174219683121931401372995118410097509794199237468840954250132123647670753289568716490593510289684443170331513881484844754291156551495493239860473470143099453095929657329964069617905657189155713959225222377996616334929240926900212172351354308093758013216123137754512348729033561460914816427581049952002360871359854964801275969333726114878220482714165428610972873853149810697327536968559132688931246588639737786052796473145774438703755129143836310148088010255497501850563438374232649428840380798143255578001639249929690852845898363913292517937062540150226681735964657598594163322441515757367266219230425695566601862213826190880192581203723881546007760038590449038861766421200157127662440876305292839786002937708353109004391865881200087431950741028998065659379888701230973100697017955799260447386963611607865159837648650167943285933431962812865551608452919059142677920493990411896788778786674303929975761676465546813424735632581831341226626900374833698503187200117460321357251155487510227692201433444170414759365038920954549976990021428049303569545892006008908812289808480549761464239812417065357454304376304063168249955435897677978729067940476948112679095135574378201752416467534613297580009812957790997270711903936380944971395629625872682383589471854165638473292427586950984276737772192332175276539686606177282371596570821130355810363815182791325694461193091588133531942734066542884074159970819492402918388497625748315339375254667365082843965540113896630167639046301783547536947865239365547983209434681476337898406578472456142075994498977412875174494581453465738378997960255958626928073950269927756990776084920221558974346739263779175303666438705307148525194702209570892828636950493585584893209095586866702334575543192545144251812880078499151418500330138018283582919167951015135063258915735687948767419183823306159137685922349833225083199955278486255059084867455046951602420521525235667638266643206244011346246184835538231919030789790489156492881675694951297606022618515957509091442772246331356835722350994112552809162282424069411322325689953200039030202196968217386130987969800721311638620390327297191995557705918946517770931086733435970190867546375077749418164213662458712283625713096904252214240927414444286294676411115733390260689928399591420734459182101298789382713047503738331667957872739006283488172123432793167900780179277820576279424741963951177750945739527443895863353347367966070550527012142544299479080491346447357381092368930786035662366461150744159419230799122635805375263596249358838854994535786088823490647901666245572094788231038700999172108651627001741277647893143063607031726839611668179673599740524372180120623481940467735151101150135753039355361350398387654046363031729240400443934542228866504375595216796385599047414810736635762226932664330642246622513619647559947939447516742830393884953878608666313656608760867401686825424385950930983900950824741461151827971514792538782363231160391015979083705326761335653050108925597369478256693522289815420801446620485501976532321021816166219530346571841288016502644831777530378575721075721672703735192224031414870533281255602523790965285517106044744791180673197071002068603349095233692899435173460169991071845070490952869577741317941205305663931582598080094541594568474016733761993444644185952484585780679184671826721457933027162864842332549702086814740691585705248301426251349130131793189738382452549317175403435106305944151858517993322891846398568766128678082982141129066850039256207747696005665324348516251485428270485614233397106339613269314052482118402280208764932824600707929518671187707464164573645634222261847181242843835488266056541755904987953693629595664972541183719335697984699399826697082328312099109341255994808198732203868645749761500731501308035940504067340560123257097874696291882994649670095532299328883162376227702344608416178629584181003305951772290600660895813030583131395588588048276225962517551839426498063120045127181001922219497057669748844596592692997691620797266423414339698096085014545299116867845278772258015085742859764318050407162254946512152689507976140983569243094174676545181719566747204449842860326968037184108259382733558497438685580513595228455287596361386027589819453100170760894427332474687242958911647821885362098458294683030407511008305466766121316949446563866233697314905363048789078832874042072673383396925834828135333246261196639727672957698744403654713600165916747714238618199164530627228981557735662292266108971779771500834627946440936058431573206378347619517000016581060210092878404435682065201945270285682643221760713581601752221973467223327780274398943597115597803812762780652604670385750855602556081051666778183826369162112027595476357509273561033756517976994657794959611449116213116791600460723425681348221091747041610254084248399240423509621969126368120916434903792669349222546351017403410154654375283162070610539082122669353971414467016387133919572456201351392040509186147323218293619518912364549208823904972248828791425729913397782224781865210133914143716010778081000716129662093680467263377030194059184785859655730889364507857936000878628686633807976368902807806198570100232244772514039330322119572056967186423880232186334776112599435486499244747516611783603166952637541604360063566323871059279357921756871199982281111089142464610154655356596212704209994403197587351534398333195609894173093865474546514099938939769355392245864303588762315761562586158746287281878133711235134587883785580421697764398525992789049962429065388962158212221897887811625838296590736324849697798761200713068188337251900370377403487225042973496099347660728486400016319929606695437071427118319214099244239469582566542054191451204553614236488414816026053774866149864110283759516290999622091232981921678339239642561390727753657077363937251198229736967869246891513716526486975965134435767122826858375314401262804184046228693588973582463737878484474816412107338167587759228223079154982210804795904348319338763433073399499251942433721363211915365810872552754939034970117953105652743688889440854746664727270780909808046997309405202816129582446065629165507696802356145139785999535614491856857949608990228154099318962273521074758244856724526195100482672561527017230093439430290688053019264553530429770999782891887127297756731225080121569089892104620610303265419535588308434633118423243266793502469894057473910493235573872862497868075144049873814343511838525582585965084861976534830516557746535484925184706235846361128961231063475613487829196208080290215418895671695470578412636065128050970044865339456921267610746489021826015136002176404207593430425154960471216560638269072668810603281420474122008886673494151799724644431487852302819566773009243452527803547237133249811211144752719605172852639093240007410085041013534953404377507086826929095896450567776975505181699765477424907498713768970805422231030736998621442134449704808333886290361924620994170065952755234994560840888352771199512564117887487755426906953789016658371705059760688177908491161857021874607039200411210127386634258458451236459384881049049889171246857392696221806481134103477999102853345043363529355994699910797483860730938322241856554365049764945838570957547589241810795493776431689626073436458913015274465652114578614155770992104933437132765485502078197577561301902631627312439722426741466016940435362112664762066895571814714997912220390593604531712953095554012285510811212102657296975654697231782827535893252633833111069657658155611735948679547594241902955820124457509075373370460353622615497103954431129334077832390857018090461357962884855271634026996506312919099426969596622558949797562872128775719854241967347530158746347073305073784579614535454252064423087824084140807846279673687388788958520447092790810107121198779872783592423393355755619371324997959387609841477989821381826503432240130638574544885493589707048625142787242965210065664978707015683883864539959036508017111436410426627869672414199832654733411128487933093439580866789075434070202679378477434553526566512929013433723462897801078201155221887239373120160937097040686325536770926191900398941884114592615370116668658956367315052216330410779848867721149416004662110658605248504107954794838142514049963682497073968941442466671748736746316851704563577542423105150580986476464173910628745990473792488810727430814262952489093198549576289832417190896199838410018154664437808237533284022544160414895993190873008472472855748818376975818953479390880198458062894211236113335463254004046653571731667323865207845030801661957708090271324118916546201980708955460918723854372611387496629976665825231471481880032379500380667011859894219599482184048922604588548768880233759401421579154295287123568227193941659500062439118359342678164048354162384967924208087709963757338733972713857005101721639010281400619964029555551092051482372788893958622506358200576235586046067003335451488830880320699079612318449237973339003311505882948380206876710240916485958888394432465634466757463358495322414165188032825488208991824102940683182206511712210563581095080526760824300375506483382815036583507743940163080243748097984829566487277021341700558911396621800935230435395488825590266709000657118853359523301307008761904282865576790762169073394085607061588936193013487802595249967031591436244219977851983004379844414548655165908282041411393767318104087719596578936089006009298571878482454316218024538611683785858623451078284918216914586433097247677113149590308273461852478922159576361761941580341303131918416077594410121574394177453130001079505644225251093067375232236885432427912135305575926210031122118620382975027538178425417311733755171196816524092843676630140284331236103292345231891837022303444549741418863973986508372860686169436251316559806429404159609558281527947448940796006704015606635423305660888224109246225581873588042827934696642062741124597521522027613182620967360927370341863068042962094801519011215646323354619949604974083444354531421150067268251668779506672541821696486833308233724458549241292167319098180229151717027639539076596084501594587459760737822363718204911724903037217284752147681893828285852418664014070914099177883713956921617076979010060192305266297842195100992184012322062914006048217819490156194790264663131287502908324448371554662484940386152485353273663548381024000726950375367248133315649581319529832958248945699470154098386358837510527445038754237416350534548439059129801016033702406509141965440640893099287456350361224915848602375132873373130617776438334911416797427956353582643265650934389743876971254048909954397610309447012230170495967791613454602409207214946497104487480382550964755792337840850157046965409260993752929750657563244547864017818208689976035501204605289875237228409656415401043048746627607199592900351813908226465627800691749938188975755041245526281187695373575052501272801592229277826773719461371921651640018071110326066546576457256839904111265510326989847762004945257320763366118794668546807565557788161683365059804799752893885934462182727482769757353481167038511000881206002684512193161349872922797354351452516206626446755043513009958875998659114434873302760578327386061081960325678335362521398537214632713714373366852594289784092798477878664746644957883589668082045147767271907031262880771077178087594465928794910582812751317845119390219204362173999271041748174735530055149680713746137668261024582297889026864070620871691840805906684021071179755073163609712321042997983319216599464118767390473835823972710206691386867582223407683714025128786024336013754569561210121118668569527576098387624201318060097300151094877041864750146034719095600164459132581601108870034240951086006596682466186137003404540305650156032108961119564327940113323206244129685271897339002930438752682641325237281181873418377266831707982236681984925517311140484292263600497298366464717470320358925111903145526378203697482737644474657963470343627745210955607492099970685966310831881197052675407608418520990745264126830901434767342985506555550495836710687190384924438850171624189592415970643895517919761248010511832662108395180919193168647150076228549154633210029492313843480405709777013982744519348392219713060823701654633725680139350348101212266051149768782946285862320643474121126266335278215774732452483124135428660441401919056371445619336167340996637827149600978057687541695344544059947939618148914947728839344493862378544571071502666829049614037984996997990417731453498520525154680296797462648196687022861642312147762924124296583127636615013215995687556303213834957850419502366939282044083814911150686568428096030448529697382538002417267698709458055882387667508804699912381136464981780323271388627539998143064746124047754171778696333861396561788596483175635190236538942860987981324310596410750202204906039359870915954779421380986417913250939151430229182359194529115029434493134123621519818215831203202948600394027669012663220706625706516546005274752240101992387346902997506116316619281850976779226093100513544564936116459656602849112845526224785726874706115946260327304926038731909842727022302279363717567119268583647185781515513352034020094255732570241356749792983260661689237477237909231564483699398221906223959835129277487404921884865148618006764683647476634904354685227044181503294734668805980259970451471908672697542090927146372479398724290800146596030612664416602228604050721331815082946098885070980566227981549989279243140532399034861738080214933410263315505110372233887514816204398816296144993711841473065439725635803732060537419376715721551625202628791243475176956627450405183387160885984370464672049769257186263068174611117896507127338941343126400421900228426884632219249602699285376809615893194890230425833901286085290213585525352287293692772573112483980587096220893068466462636341647431789867000474061566857637857107584274947429648579667625487697959410694492681165765692579106373912809174332934276600823474451226468172447913454112832897445755146507869565899052824665349909387151111696795153643282615119827898668897109310169591041784502488287352319238448624226362973497576843928226311202000471321872017017837109757566855371393824758533811898056805524561758925329012410446061386262529720144955188459248610761575320195237921069318224655177285864226604778693839844215191391884947712040124803222614617113859479756568591174574724441827556436675503186173710531284061591548821249719371730212674392008204111754985468363984135677460883816733867417100470330451223726996329675335035568374255932788505284843970995341517659032938402850692199642609108990684290371284529345494907934984037039501594365634463139951298245813335313896483039546853777423867582387995950731279166633912135762293008238137499508804241436770634118679457902022252519770235995448842923046328754923496722087300742261853262394415846865082615318656057785769972925335180744046382897304361213124874166495577320583031985264922840033821229619829400035721889609222760768921737321375612817140127894768086018461734761335830477995555701108465899184652647160290624326823097213791999950260020076779284281280102189046550368644940685163746947400979670522871746653346534766832852993058391752919256842294613330335029926614749035530997059294430175663343834322304415434370347646640492739502658109126488241517806384955847321292598486391433780405356376028060686127816888921524835645436191658459051120653701944847924254620558790155833335432558659101839153275563432530479137407024665888585517326415578510827116214091911502018761617581702513117007944140863486314831905529615541131867774760309553999986080793843749762273037037169749162292002183000135339181299918296040235929481622403757349964789815652622682469224661822660033465631554440691909194461335922947647617530984014456964949854178741721231360779557004623157574070164761282734096389797697740198761601941576015291091092531227618383478679518524193706079791655907057515180512954283101853591731863652920291308420578073926757411563134564106004814859065977727755892339730476017611861094666839383170513676765980608645465327538441719332482103500346143870064257499982174252182121892042469834596946017145410809671735478479028964900570936956585073602799626696168464311182371981949954017555507937248780196933765045134741237023278581717052728754067680867786573319191806541465070234693041076026043807649839841877624335388381358183139633229783045192735420001244347701439141020280583513761524868346540092241485555890737202921946094967830938047252254271539715644613932071756205105747947382556303404499840905518931225258151706446913599454941078976605283937995021912602612047720514588368772774203939349274661742316966127244888142028639142022781241935332974216945094679545206739569773828062800915341955720929620870217816235957315398580494059913096459784367461688033276247131332187163639467180936674734403357555262197725484420249996339317486166811685800241610193571815876391393715915310763425043384067749110062398885979546113555397558396530539242511338515197295715072567194931591445438867480941270092974257722117019767807775541153146444158888135464046100343675463395438136573794175520229837046337812404527631159587874291541420416206624891261623850077703928634847262333435064417462265548889643289608471692123310844633335053371471733303319017211530774818159753187403206520654666303834024724044364192958515662077201957319351948859162981533005510527995254001092334656798597064540514291065710504302628479375935938805412008468120716572595896827794362993111922904628749893381516161241807541838876597271700031938896653365652735965704729837055565100268027923851679503365206653091784354680053222118117845683243680044326659025462859459910385475796520912343895032510595830284514501945309892327719848928078784554674964362756461696626183648666203671557849813839868252876195638573608520419332025764108658530820783460937354267441745879179816509776067480342358794378816611199895956667944648382154771584452235751309630861325983230445664681920972502934490357865898888405205528878640659389827094109866215273716175244926912647222856267443179067066051325033145720678344046379514260173334959206264618127328737794001301535715736623761268528321103911201661948115587795504039408651223604194975793571897974081155637346720742742415773774044410912384855584519673648350488868309931389823442124854956202339198190060354898518044067135803314087241326581558085633552923565055624340622173863587100591091666902011060085192106206152172988987083613379458825841989297281359378463864081462097321574887645854545290564856934762540928991066919225602464254529100149820094514753886905850782157499016423832582661233303084236017133133019740264365928105169746006112974134995436114150778901552316163627582116073452193855111272300896003399371087363400847445858281169291728401471592927127197382253553963987645924738369326112803742994013875808176175069360473808825916076549966028549415839794291304417893741349812851299433175675824407673417695102424433117320805419812250315547648257870165086576670230978527121343260960828280847222735516127980217943248638989060292519154480885294492491323857532148964128445650583365153439839435370632236908681847489163408293026856719785796604160121522883409864495030061363798475278879019534177434844467274800436348276180823399161008740511223516596774451783081921670275125143549469966872668737082784919199168202590371147765982606846429716828871519648270565793794566304849953425828271002028745751425313487886988808012391825275474862935920257975002818219751009946291783785110346671609157650768942405764348823245410625517145576852355740815455232660177674320947901564520546687532565105251479763201112266026752483321395508993126832634930136851924284030942602387905323204787679384881578179912075883998951182420162549243993752925029268338089129651247232814990269823023788861443531898799215072001787269476593216105185240507686364891235175167193707377421624358856294062359477043120052660625697625096842178121148882988002661604405922232933162417612290874337902228780456170135772375061952160342686280629053786496887139338571256241696407932447583136988591827299927578294929575130482504366602853237140205496447338073824577555825709270075915358213622487873951980644753650922833873219737894509894881222431666501069873961667298992096442059681756961923183986619179340847425786815461594145893864060229613295003812003838976745020863385578266798810656903699908156782778516378293459936194336698065297922152215366628883994026803862183878413895499792007228937116950775706172400234487289868380888946932582186337823435691207402895687188566870960612738621934987326322409606596069917602005453603816589660214387177128755309837099020713308471230391797557448381005068328095118932927219123165494090664021456835987446321626557573979283730870286061293977236838581491993925841574254914633515482041412850525611641438473862157948502590959169401670192222715205159244638478673684403410197602254850585962037452021034019586721608171270192646070460795992871312107480351188250682335304496981265520956708088454194102253519913136835291159722281977965191751091412574906675271987992843990372741064588671698118350910120568349817677310095484699100664217037510129640279526680792620134649082657083731273088770349853816883018041591073508780278978144452516540770812748847379655033182989360261051517090092011022207100166947994860649884160992557782103329254222023824316169379455244507711661278195720289949059237178763071379162077328051900435950630278372052428607168631975683199449535965461758237933195492218355714063821726217011899062436301646834987994306732489748402990062675636866393449866870295746329559276358227417390476736646832709872540082565827407937301342125015787224693593360232027880213344754711692547244278823478857202047848109668249573259465069381839328994408562932954845234695473247072095768155000313628681830587359766552445629233370980039202446539708198088097516775900082945233933825387379751663668484819906191718923053029327528205228873899777985775746443306673842846683423819777822394151522436389874249517010656678530267666437085462406145075109823826508232921923116946593605521624370127430023949246000846441913713453739088171054329719962592178595836890022753546934419927056354499446464846356921147395454234209303509561912596294276033231402838156419581239921684357059261155218643672939081140498842995401350304582616685615119192470424806777874883871318987189673826192473974908922169656489981576717042890174496662059680086819909195664839871279960006066009833665085013172670506678073810536253324043615610980110847675549487749423658516371946527932849799057701845104909170153356861363244389487965903436759034956002166426558152444392827872271735945948307893872024847342032229005213360684605312929409749759889320134905015546639978806999170087371588917595677689472706181150301964728913257678481619091938845977305288817391379634191013912282881868957666915817506640190664257591185763887548293436299211719127105497738537301557783810188444186065783059241045272431966922764394688190230293660368939291435279006783454920522889611788605187540831049180891775926096257118288327086436346727818162747255714850253575093560194453370570429727931651832436970736387485609272821695707559352179828293176304039885438950572501794655341196643840611832817122580580931386536690163234155042355394880397710071250704105678774162025859908400717682098941448674622992276289202550858081621731508389755388405349427919056734487660483097079108665922529310175974785382557147194645296290878451956517409594789439633768568878413363340735390727437663722052802244591605345737540661837169580524217180032186022858375322597888350188042317887568940231975197437444613352597457897400554662442432497593440495376268236401505734726953980110100256582513119575389158493821251296799677253621276460763910672269184411105916667182317481206619477228053502579386189871073293114319621955835900757325454926544053448587623799704869639821290623046526023715456974639821850402406160647212247386285369145422758281589303257867192003815231307030123145001620383558559708463628872856866182958803815141259792427122280065807217537599560975302816813243190882675811213978645897799156707712334130061405072073787477542271334777231879138778060411602833892807322946298610943899480426877630904138282008249327643784456946668559691350972809296560296837842483190637664897589402297476523373707075902957322967641074447790285422057108331864160628348328403937671338148094153081003836346209867409231416257725926016424131076838385360967743938964538812198718470878357602846575850066264301318356377598343942325631956738892178647425115391464830610561761852266148498621173529930039419626797835115432471979210099902359950101850452263362136629541758790411552911630059509298870937205111995320951919761191111785656856314582374252733634874426217894373425559443882721099552583440480781533630123181725047611209858621391195038127685768422270602288085792280227899270135450268982898128670846948085869077368731048824135209253377992815178280722473043295605706622345618996569294079904301031800558838515495600371015362883393296308388611837572513442929623743625690286239908180896674784072154164821536466985251118356093769538838247792682054035562293103398234617217749928761143107112618698176716510102132817484322686049289996213744264891787470800521778991459793683257690825447049955736546073833295445503760545561693846299352695559825481436952274513515963501284438165762387821902834477841943484916754332208988657251072163801257455920500626138323533310017463563269678829979522312213359229559877714784256215281966009582480397960741880686481462221846735023846499620948290023721674715130176161834866485690095804452712924136107744855016454016588210094695318516709496532028368556343942755258676230939902626468802521002348398810810313959156722167521036403116827698020447084682751021600765291285961812328923919989837615465401528847640238956400800911170777168663258471518886521341810096309789246814277767444249098481946207209911860617837882725606027748920250775654960922415372184898191399949304356168693621596429177109525695097069900632310061085648555448231768169491892033538259383979779552017806002615045384660223480584280668080054097272424887098899181403017210837408519716844655506868668259576213176185347414437764098116897462020371211318615031805348163709928051005793939581839605381572799053173564620472564675646573375232496044286662754228334119477101158614822513290574723369645459350778630281397035026933558672025420653201911364568427852227113049930847401550832055345022071115182925037824584151595423857290920559093155527093715730436507139197066270720836605065359257807538799662427829626027190863678584203426179427292783872074227039258647899698885201728543732963891417985649549871231317421078111745847834714810113022006691881171390633223774639144278713501339101361465475823547313216387797859422925909287326603980617051451051893526138463564900758234863291520258655103110341381404910157351617886075764396461883410175654441487477439695871259318206839292181168088355971272265371195267463913547288909010252777742990668168005319870623247556963164794199431877289989589073717447913822106916830314430210883271873693722363715982485112777376585439522066498763027698123461345369762104739754844398066496855150018242872413962930020784239040770171753087400621103886981275161331107671042265609534206562796480309195917122225686050866069749195871952851172018630145722311125595805803005959045178016209156003392715813561939615245058294094238306752231048760275683319313953706159405690082546716340768851873806202839376494141695224789764482741592439389073858703368311064748295916563631940759787977389368568253656567981194055582946890756209748639705158628061604955380199298790107269885264068694896100332327284203406188454212897943218868970727382736277850137270114963870884664078607942655552555485664825367262388553019570089909441814119681927822521474367302375772647906302136270092943519353752024482465044502817747353031305587840428905295653616695575746030446840020130258347285787860347964296622856338390938504059599633820520131345977594954959152824913675826557737086309853431031656991864774935235587698561676402569436794965082659516493618563906776134086344949610923085281595759473244692997843787506957796523406627034893439922003933142022159640475307987724854719289903190331136067538740992626587614582952454629627447825306071370861009325656109106290159370323457846510942541565848633675971714103682469068213645950225938235868980342052145842415621097712594198860517418460981052180233091349159305532364021180135399382739076096018812708570022161499420235228530119785151482540926695185656765341040444548548817766062915333423935588304097708038262943189443850770239040847501710409323686830979044978493238921559850021435870077134287158470069302471676631228530283911202961584833228762187312702544027509886977752418671972580398456783452867233726268194259137689223732798696369957194750828057492990801609296385648875774366813059933003010651656716864331160038178433180947698249242660826392564722108563028212285843591291142036032720601825232379462931092541025124541700516649174969785017658680012863254457378725293267127745162433436012734039785930222159961775173614866679396765633221951493429837679037493082517016185284933834424250418323030264100557818831854428936408740320396600889234387100234092685238849673228445668736570423431566989381131170854980556334241109039029402069878836686500964163691705281565858356477475504883191164843064598996632703398001097062714315487174370481121700620918608416245963219627581891687594715082363689276171748516314584518070543563797072327895745053875844710075645587473724567162607587558263162416383017589481237273465832842643349842119906790332769950618788667306344903282783764859091686806539844039317138256966595923657348223568760950460020695736736953943537344892878945414299449242296541992068707171799082027511232288302063740933243082840768023659962230745072395482913251001462315228385669963646481619930610803501193409855128773081595450154979098326100700084351632209140971316683905093077706782579384891592132099286598075166477627404210228706958031691019769066584929411630144904175524152840798558419204594222472240857954524899661499631295674599317874497834135019747600248558309355697881536973136321445251140829284181280450249199295984561729788649836529671737406535027575784653418707842130980573575850987089232183386027668096878674458767393704250610529455934480000337948441186910343848981992721780045698408825618002774024697155696345353705817713249665431707954879525776642112068569434074073694165211045301707775144950296642015085673418561330879369079908598888195417742618803144141748693529301286286876979634971644124217738001969097486279960894609364253067910417459357128319040298311315505930386112061927540034742996012976984567285680075747868256852655888055044650282472340621226723098765095246795551167576075518973671081866487339135554730387177148259924982090655636246368887442816354759738020092703372797235756205852019488731175736415208568879983962553950672045765637086678684961673992899051663954734806468841632161269623214043004303497879376589552559126127334944313749318755851522035048877154206128323215542501036958420117770605811310857406721768844739241215189067429767995284346046208510422989295590153886171777859625965902453747996448057375425903395571736901793975160019987583699094035346020060061145708129727286492441555885975024274901019975278569583453344943250025780204344440868289075077439617367055383761578786385387000953573335902594668119751237389838726653687955430018415044807205276494457025799468680349949294168674710474523631365047115269827810552059962650022454407342871399194980253833385058853936499417336369643189980369532114631746171702038807086634906478634042245846913559042424514028142597209433680394042646957622035197605253746691968646840574852273222141126346820073268099128359680433712489865124847133386599958155703624128431192371380520698554630522396286001693260924761875232125700995941645450175979130483158522690092440553118658153197845931405135496797501971591305636407967874274388697431812159633202424536950908108540107486745322336694887417447584560189776395844902174934597104770315419794721755903104895515071303375092264289474366150114617112854048983628782321775540335581513089008600231119089283171979461527339639814755795610481654721822820928241262244086617316118295314627011962136619959410879358356432093296418935628950752183416094956286605476082023394390369382944107069073784215937110084355080993495125848055614260279488811735778231410921563097755633435689280906240147043040680967454142850010531291101440719318106005561952937599440981612645437443677397892845582361680657305686818893290555248377738869788338482126900338552557729632948503625724161794560688062505674398343584068858652798471320568203326801584011861225371072994592972198314039824954643013641412093794464784632967308041240315791671468107172154657975950843790654639268944164367020267173333214286872793000675256808959472460540077392143662377470366937064798928068343630666235735491883630674089690534541962549218595948296352991442506812421957849397624936269976684320117178309478976453428215921105441925395673890680258742952347024625362720586244529916142578749920154783492516043423853492438434103038072737707765701474373435807984511214989021387726113074931251848497128991745909500393219062568077239325454554691767350021142782515915371392247521510261957518125558991922377560556251862577787152040242356430080154406473786864717745485337568513303957730505542984102745208488245638018117432441150886669417202922513871405259332921890393023484952178373235334465326269377747325041092055082762701360107626880573492834106150143211791258410932812267491152949691944140579833540382007949205272620731238583327858875647790567211041654416614707612883610006243841305310501400810107987555773152250424635872420813465170781968132664730526526687009753901023548400543191030305850507328485666218923073610160979873010960457878627259697182149777459319121724208552038322309774373362726009107917085415906540069540475769464526935273895890894656609355321694271294261140189336817558212336609288093686836108412959313689766825463416180797337993114349199450619767414038367395910433250837896097654632163442968447504718087753879660115946910584698569346315467151967310540189434725327351012330555664924462530897985525988963444453829414488382570967123605338919829313649034991332122842196608736575713694328636338387496569415447710706138034367393954329945548894604432862117042281029757649010846130362580988520444565288925386561835543746690507579482110698111609436227278171946884422390136435558225224330140937115484011366213884108247980900542972492869087707863943383569758089134485548375376777196589593658751543275029493401163628628419330604817109392399879190088420348729434372149461239701703430337079169831624576605061362459054918358805245203073129842425880187096078491816358337632141776552648466086267449477751311633746098532615677168216013147819044560577089203080185215408812688822461085420684333127975848092195444438896671131444617893147412936651281987902593291945652736873448363988933899843612116806898657975674885165488863376900353752919877576930810573551739514437952727038004470490072857309252626316730990740006849045997587871320935334814799807297803068592527492154032508062062967936802909636571196554547498326575576094672472292408920613710562170097933992793206656709458921208390498460475864801144552327813602814534457954387336599185402955060100187896258232064467145096398089199675661465982370141287366468803859403266522240875088605288410671979991408544870072930220172202603047863807108861726314153139237489947781917810407754525553693605459036378161928639420022669648039758682263453758128535507962060646362022763410015625391199463257867883608702524372526283033010210448943262262753220736676529109162819988871916167866976986172106895009023640592917572185945847630689212470436502753632835065004334618318970305082839153585060525172234422933189629437257761631522268739500581359156379950090704572007260968988373875369824262186314951213988357167356388063005629032547514519966181726778207896272799165637748029910225094724409419801468690188625285100423366590664307650167100236787351898041750864760380556088271198478863911696605712575811161433220316239861953996081064489115129903832189244967115181985798502770446978518416280732953187522170737542780783674506060843688776930498302304143646891398370082693964060694562881641695291665443739084757281969614641195715806636881312484878296005192365381669691441316437821280803774582231914250665372731866015855576310005458819146086341512013406605686183053991092842220972227727666420070998758231590762943912951563496720838098972472304203873278350860147411604828520420074395960779396766574545741573438143762929561095311584820920001996834922274622233203492297879772093259373458931853036322002185233292266043263277738699295254400374606548044762949827240422914656005290459866149053053303411842327747134752876324177468600510351968025950489335416177387650238931910840665213804667466529643577196052289272879058233362671718010478707415097865327441555228155097901531432569914109132995250276991641218479890353417341802888078594370474700374687166980729136987810519134823174319971817569732471693411240421932383237581583407505032512102423272159997622559536081716396595545921520062634938327793871745098766955342878789774664436385517065026504485771475878951663905261261876717387540459387759244936972468702219846805151918260343414635153375173543983465840366500780082513376195811125396059589417188047217874636046685077559560876646149799759072572546693095018122660597563383204512084638644649947755674711048825818624518114821602417311351155337639418016198608293258482850297215641249354354937014722183714909313527465161404229884034725873584804710030497103678619969039664003189027014102187471439739304796671271469674524858219615904435885750474711610835582761860115988679925232776700779134880627067843058230376844322408372855777585082162732677755215753854931391889443311370971879765493099063043708381210797273160414688741044273294030727774363782884423977594872346291732896432364895042303033952547723285292251820978632941279227761069976483964461549803039103687476367007442072013486804209783446567078085008512489260912708157237896817953897147166531635417927413249374555104906770883053829104660986180133549273647157882317517022952925574767294380718432352827893878730585071721698784087093608489127582967318450352330091008245008946000168372896985534781567708986066370243799181871271374835942442963643209472757271104180443346013051070221778247291988409544429155924729679314766416864679909456377046036998870079612857346705087176357992672641907758648297958015096149717986439323118705902309745168343571252335874425716502513078384396781248954102878996867215558351818219767292372675088271913259289045705392169962315734135981016260634384197411159559871219485570791540409912608431534494729361825971466635209403043017943612630797077809538770794982864536667632635334220689453430306269748572960188084656490209749955256673401338028230788629806818705205412520401199904304289199124015463064896075523480019294548752880557065055452354879178955987440250913007416419180939972946822103570189811867672154904495028446259968376782516887270792953349935513985117238049116955666124418804935182119542314545793295497329011549763279700425725292885167605567069578881891666892649627826606842817888551356822010598648644268973104042064203886202141593133433565060797764837286117478541013181953882096326373978186750156702010351613827622355499078167081762580063265190907230973113261264539480612746157639746972903819915758063074587538517334833468607608896462270121404016579559790815513643179269714327811600039509295305301566405385440144681956741689143950050601298995325206242564025699973540563356851170626312937882096557630557832675616162922170394518589959392779546333735205016889846436488820731461399285601576461906088270052183882944905283501856406504336417535013934985705100635004423277553280516632501555360016855860632161801678822889859277739807082344301218764982988219507648793745273249775716467943768259786538077709093158268698932185675410221811370662891505071916924055717515372979854679547716944046087285834020071682558785035025806898027943094618467258018625571769991436669256776624788825636710239050892975798248952227094184674434146644119119762486308867522691737956084643416367635588308512954865371125074490373228827199257271519966000216669389560503827951906623371071029645261125354820180816234059316123833832787215450909054427198032006442253236001249893448436367593719142322778515962657684525307584855373583084165152477784998355609967914529055371289933804173580332233138043482601916191028053475986623854151203895606113270055649668928131675551297996763366535540470907939888668953068578101733026605688536895602118077216225892191992431173048925224971255312282117588225282650923582291225204138370082863879599408753314229202553788319259017888175978943077271131604891567850867837388122362887558552661186573367446022611736332880225562068614958467226605377935752555836093409891638296365998007307845001369945882120519742716629518893636617887245193879883914985074636701161462355909180891464878247698323775978709634559315457068005528207062946431076384817183641242844883222416345306417776492806003167897001913734414599529081813008273571202445417814606123726714401875382252745351515524245007907975368799187115671028453031873265631128191873581420504230774629722540369635233574830656204856108640934273833183346343273512715926423939004912797302888378346374423604644196581584384053191082903232393915006370525377701065942921907663931808108787655759690707840731732397323550634413585567460029281228194482626386918581367216041395463318790725616930815409969437600214768482366689595833864458433913973419577395445894737996499396501973180187582154388185804924401538657071887678789060589434397057243968067662330777502154247770823779044126904120760661717514583290656812401908880652059214459722368760226173024555463740562074808139937746700941252221532734488417063681524435825611869662613638340292866449700660379967501793763167639180694376784338621490896235618201056406140123778850988356670847311437168889139426847948538764665098411719543370289215848350725860197651524604154356067627464117810379580551105852750942447296557129458895445020468225672010620986206771821667486885596778133367304894138883039656612191893305871404778455132876728030143220992705290210617713921277375905261246803578323361223167245131430183282789876952990465506988485033434839833599227416481068335963179705040480171635758116961108988752650503945545081890457820333988805527336174058906607625678876023448996558182195071306798279843747014713056703678040027908882626096875179843306216168364975773394896181344188241688650228996780816279756256922749808740208876881035943692992039572656130506812883876144119591862400223644524800394799942440582531726824651352094895966587269366348840150992837598464647534240305615590651054491691242186078781176800389930760906904835067279512140300340459488292084535672716329501200711214683765449414070692596214332856787457468380185393045462431369855987326420707337362095268253300224659565421102188316355553221022325835419869926664913531929631878234901491587001477499219108946501280172618658424119957747844638088817923589672365496158227535354996984130293949320567962137577698966542096156183935754851061018736631402673250619956581438409588435459271042752474485532015362900288790273637151170976115751044744485750023258581485607889851283509556122124413532387816233318165611929257620999185168792428624230801705860076558534645099212221386291932006291667104053444132530994050314842016003289992319103284017248036032641173958773736439315805475634461166744219590534169466563680049974608917632616393699726800567119190081116460002960099906297666495080108508005158670385819718130552317324630173528769303497898533046076126706915198052104187921693861999113136828410258438748308631022755665240828141236888951950624472937522403669031592181864323402691929323768871517708076749523898992149245741762991858043348629606089363110625810014138063060123149436279306873326876877147445496118241966037173011732267211548894144715807643463644764575907033408588793793885511751946742353404539412252406457071214465904665673480924261538841750263649967640397964039506453603305846710659160869493642767063841875250763968961560317311929268633832386744633518113308307439130354337227907141030795282271658841103444348578821809080282082955442812200380195266021863595246105666063149576127025158230333522494707890466105078851861326007087053125210092418814033311098034325447218753564339432204046595402692850448855646142510526547958472166305729945635788271560772802148217504478700112477936570705673098921138721930592905808649783986319434663257922428340202752079620107667460469407170560953513333993760749271301176506022224078447808214938396398812005477893800566578035990431148710163727703521449472844806598021024629628637432933375005342109840248586097715946034626507089275768480320183619054988522892809537682131515043558251720372860169596095876425139501382209840496122262422817340434028089399726225773933036610298681992213377579163735603453780755018132559615693550103283299423849974751524338100115195012131780501387964656284915433248919433718326947019268167675960615918788976365260320865126585226424524119959018981878845082876944376766318492238487992413740076722940680731052803953540236603520998420550430592120388275565593048083911659730624501772525278790798854685084258555173838383385199434428891591225364411866964417124240013588796072191061349423083302978966344308827110746700052362997432610231802714226622261875057254396907738147426352215524483240080437569669907102947264051780301516189102680092635876981841801303452664710551995073160643267550404874531772816479749849316816351888113254614996403183140120849999754505654405665114835838717438107104444681995736346286893002713717643069604147832273275678903050809576914347830867035401616202818491144123200843999282131818484332288134255124888668654485270842304284009883138554901003794026484476236363753646511055008102940660991524814792631730877440642070953919991675563931676247589083224270729482954432815122952903164750609810715170949321661681302220084899907335192848409001433236988693791759977923872805644858636356047169644366020445259704868221514419781591232274757877216398657527609840899889373777508937404065845611540453448898263567944962864224707161326587499595583440080244940052564753112758294582455523833993886160216709540903950962298436975360579443816778281566351717190156086785010229710669378772149098891936845438672597300797493811034294535811892130291048572049967356221167333663500764326274058829544861575696143204789633059172525002965595468048765362628154975767658027787559023678734816250424531570274183539064997237143086239536428333798525880936563580878758721141673582000237858579171465416121120260342725573842215518015874630577677939529367891253297770050822625008193741645114168473736572522677789087457996823734527732736062994642924169967155086229280608031678771501902041616630204935075883776906618674616296470167705634418308967626618874403297051778814524340125122267941041217761721828885081597216420838479333398295669940349593790728203397800879604970137807029401457061832275296034853028371922261005939564499124150927787546136682314612894699816725882471189854476146641359747240400116726464033832999040150263527121857991381875183821542253047992153889028461653792947236379633347931270846642722737043541076853791213190343311924506345207673334380916812903926710929875717714802822273307085859022591392905258974002437571021699553265761333518518766386027619970039805239305274289337090169102367520745177016964047237538638287654319043029035798193044682863204543018914216075051699668512336445188313943158140465206850355976752840620968648400146329880263832549562721325827573448535583000222551331859622886497724944819666415281904070287971095056777558383647075089292801299214655089846527007269657168897401324328795719821723119028109909224942106911519427044773587520266021778729973938043291783216346721288728433697903169348592455772175986332169229101312996493456569456831267284809584292509355156153586820337367220136128517195799179067888794897787415579507858280400519879514379310240973513754244522910665873007865462514188208080730719268983913504925377543744202657016514854903903784915335783523919509184229410079581794626130462168818441217468062207228710462514938764917833389258535941543991358005859024298540855725044894291031130668410610525215294364058942822561951509029885349670118520896464332041879321533366847500909379474586244050094419795259305808470573044171422807785657037127947580934562908770479883469716932355169605915512903946546491946976956580104477212211529717885424206301449359990364704881686963945459873956649568446800827974064859397628886154206344959520477876479602222481404518711220576212828951209642426243976910777918759891509169674884969014041781462488218992047215397897010041004451916374635484937776724048963056176085749019066419920856498824416659259136411497972110570920048346356219112592053159495207728572853502277178691134317095074741774046112597710544066392888757183933236000244502603875999517421359497976494040004144093986809319328642332313807310726052347022269955029753364133333637683830769912223911477705585997784287425696452597304589798916184400911875473810469804380559517006296303294337501124376916592072295301512543213940544337789162781914062155168208847363453419799988795161172610284106323369853456622714089825020691286704441169025820479657650680608338935449086211438738256599464349788032327217582926945169986312673587510954845587846314075971720196243370852199677928830820417083628218867104294024260058440043773587533107041888142219209246071491335029636905846644883203194741017346112878673517942209414546604185340301551815562321431657473326661079898031090681700826887321019364595617858517345054728589800787287211541725674024419790288432253154101921401350912386711103232137314594051156147067212895932638196758037690723130321615824730407013885893346366335976771547070197732495488145171495615889159727040316443495121859747041467171509731132947384808502107073004895212374842154038998185951322490144185729193570943752415921554569296311501449384703394893076243553834235439507857917705875887328687263613772313179576318811917493997364582955995596168471447844151898543077414559430091627277706400678452622218860633810672484726902440264267413390721935300584244062259464253948368565478450534349052967430589748649564389293525069687282557307388653479795697379637394163125122113572366124201402646831987523491375325919651580619387266619391605104935926527132169220962246396992453394941681487697594502275693160173729782522593211392279726446990787079721129270100728931641413289755405112986071300454244972199825592301733559399196662588628489028016102977414728147217996074304686368394358376209663705921780035815169912947673154832624347225298003800959587555545136352485292336603666133452157849202685061519492034529021461785142032423310422848635208968797421845400387349417283201176273782264796397846777136587351119302070722256003750749407810394633895199845441663143229731608084404982813543030383363163531454052991483164256012510682085656900160302972916584678918322105869948910040780107692477825728067218658664493575923770660199972606595255433273364250389479833660143199307308480934516150880480764636667529086671693620624928739814887990436533387163969116727369702731265374284086097348697293255278854199301904168428232139585796602487375406543926084953186341346946867892358336068033944557618564870113259642775582026319256809971589448934540735451669323844921499118554933828244577076688230525469796128224404159966892371592950939237321195478945074080677444890038062443457522461155572389422683859305152775497654543180834902387291984674869316260887179215124829247615893514149141589042351050735349679694874918633443047936252036510556721569888239520349805230153122385212513261664494737046124818609901439565463727101755621611221104722479265060881879218785645647702019187081740982742638851785178231952934190481931571564040017826008047464154536425857968822131471202195068707370393121533322394296471014338817639918115074215554226048219902450082052031551588031076765688121985750384512044736027969238848943985040776693919191780385131179046372645787280056649950159576253027673424749035577873032069466976206793710953140878746609071909005478715022757386156228403119997936014817401814072685593464247081865137267612797342776412408940702412250575912833204487675083824823354900622431962572928264805660096775092853257303888341824250441019443837490829289077044151815134327901263186270934410280583331971839380845112478775779052879961424809685375809766676370156948434874317475748991463889163350433836273988511029559099726899559047151129179455591269835942930673857430486989898559443261989642534349217117176194986881381153736011925283763481221877710943925932205737095626981646452645930525413081768047684917996709459097562709945746416687312998517771315588620765543315102630236084922353201840024644269498222009388561981417423529421101204488878651762047723100723557737117569645402677378698782932384884658685482430725132245997181951763782065167701734963907291197323152110450838896369003436345649771388418056802984140532309783687878873323574584371677859623193118212996544264227460331165621899580738570914074817090777072060125825537255988182554000170967909097413385517915050346241362796294337527980392121612449422857348055409299617422186755267066387154019716495925804198284572723394358727384912980625052299082304144179642018632393359756408562647211409871027568423284710544204769273722795869343255162372870613062489483176830059503162735392722215559603719126092705632090016884464223997459907628360386145156011467908671952274422534153735630436368076582092944816815756244075835420944504148183694007247871993716080747143704805272412272057620014826556738425852761520422575616775663448908355159040347559705527811498513025087412165561605854272923028993316547354990791561217866471781343392824994159050140923632016984086805996772364631180032309172314490659601839443357324679947213636671430933226872592276995978663421984860476403833121515982463348157538913621374705062677609493915654344496650307157560190525614934341239865008633497687725820142616035876421886575309174051824174917841215303222383004188066393854558891787620068788140487669276059762638850841876717239068821513753446907420527968759386296574986544177629425187030091149613528443892051450071551108730946649594990708997930523401295734938668817859272442308152159066064996075502723760812723870585121372745528886177354454495938515895687751951802687798564825202662409444861882867270542074750435367998458468021181612451191791640838822097788641827568105850767756572864848283603702493287158198060435558799803757574763317200005449598498725166885657063033528760680930815901814105937213785607881031512925317504110509609751654253710308551748548992807927921650826702477524637499837850472341148722403887877968562165891841573565939687030319350750298138289529968303573043060712075466299805847951077322904191430681628702950900718814134214582841561163276458979779431852446703335722015183008067730098434281459855594365738971990326286100716746911509026594642792375562493742351217445080312134998741021050402625411576311412306403373840230248447393613277714317783264872278720000313243799115845410732008325471765533577884197388111987830811612825334350013791097326458045675356269284834551025317569761378314436825247785430693706314325509640762249427096972762106167981630745864773136210291691319019350539173633877209593077288021138495225308523356420091475821132150814163455937327663816462099641504181427926147848561122509697441807399401218649576170877429853908394199011888587733637311313017101357779033475620443952626076779765685385041517800286220260173983153578949045444271657055964920522231883544742831119346960371194121860939647436968352163008411309212213761236193155509118775346445604293737921516689620242547168037781827463859079682073564093429943342717920802887522112543317901141491160047963896033187722047145519259305894869335049922335765207063933665786108085920057759573577060563469345760388491080506695516093810694366212875882733161322864831431471767211570461923561465003774053872176274111366017823585584517310029820778999364681776875980577196904429326564149288895061617432739545348233166639979174849840274783540535912002226094399053120707660196672743214667313250599196153749191206109264878195377790614253518922346613960953196062526178425715869924378266091617174649716347204773896131486719429482490291989419167583088892339731174155541726809475331027377979970981756504505473602276786210697540450592614388377815161792537901060640229167380269625734343046453004211042527662303055207247573930679272639371318872288012695855490424866322830702277401555280342205573172609159292751328720443377723638154660224262722795524264047906912853466474395670390153666448251186234027804025378088666113535664410691376972388236540537057203264851330711800188621777680597953218065436753210222504280004399406185181288953614073372395066311517070005713863153021329368553801848986969630285108930120217950647072487750320999483675687172470029055814569840514467469450718871737636802873473556196853175307566120156930570344309876149723068952866444156407483458808986525661664379720289586844220392181943171512756411177614756371405936864000103588026389125969238170622763716762874806283816022759410511462692288809129433027766495947249738447309337632746003710843590785997667180055868702873018322966729256651195926100594158100365089290626039997891076469310195227174464519944361699915556415641215108714382080886807522978508148022862341353184392056663971152460890481318445192314929106328154027922489378228251545768271624596117639566886461742395371586574462664399615547890516373252182578333253564458989290595192605865979867134482744782626667898419196273605935202214966815704365569041670825752744588175728116095614818572243695464750508302844307531707792355713293487611783908130291059918355226223746867115757059377490937975793819524733163226623598269569980473433440261687965475130429346162426613460747325269570311488146969164293369071948154548179082929107206942973187597197310154261993356461532836182287015155903310706146530421700668825337970132344950607141683526860988131227220540903094664606618585799991415397814484774156408225890354064490646351061543371940040138616035071455973601427862345148657347962179784675702189899513333644381929190530085773995045234934957189684612711376889575979332349533208953814539846770285124109139999624094286153561549520156418899621259300512644209686597252899418435036681880480752910597233600836548235701919868550926035004876573788295162923741832713236768658494640005967095067783453610036744259491885819559592690251239311072595121211563382415896067374800718324687784130780969382414829151895604275501754206517442088134014543607071355602676349959757596004103616096121377362182022356398010145592493601568971489793336585499186349730410349500790550971037329489219764058869953201896649335082043100488523059429848680178555656453897152963868713982393892788628313053889870441633874853236655056254302382861317683147439934461560931076538494758464893162151583588989339195673294433479039090964500201525452974223609334873774857090601864807051699125755933251820304412057338911692494979374444181721018004869527481582486075771221724138298525297670352688504213303463703205901112769270842312247374039903446761895700102591785896614704561188690554318000135741145453848091623845601939821457698015403674473093324214164727555219087739691741737350641459518460785124018137745458837629851790660942517996950365872351329115406941185580040575610780435791910515438952930178607056885781172174213915509532072119708984152215425316479193046160498117600999404341319099118921551365122611550181311073519406748964186094028486928305502211992434386630966122998376165898127473066900407133131532581930320281496745570289271198050230834294907246105491095799550789366026346984656628188055490104387898957440931415296414337769026050643640983268217633628709882627239743023005506385167528922648375095088613721983335346069848906855685902444678886336439604378182364931607506979525366177704480786285210468209326826682897220715910980081977801926495253830472463607958939173700369328966358022050659802853387029968092228675427129133869994026633577360863754047202114992733399559638671394141599506355503816227131799287614329892459586632102280507272017663282902813951362463925987940841197742421478497488792853481329226175804296953605684964163335883612464776047176630339853772671737323232435192979733423764606700725905697847782259010224718618495510870041401552763492243058506497917469994122470166700310104432762653099301528420684246859523591053096968105843118551037608085368103331709534908134883131172235937743874146218392650171560903279402818993561269449639671433207829047319166667808518255197717288006277354539915927890340107862889636611570807579263712515753212564345879767582279860562178539046344387826022476983164473091167731376986543944139748134480038182981037549505885398354291463227532912260623917829319962139869188177111184244196277187899230573504472457753831194338517932212857660352121687790114047765897677843569635136532915149309638039104754501169967587802799979553895585500590455332979356370264077033348112055967910966088046544581991175696733538179402029774208446714055476253800166579619571991262008078166820288591586248572361559940162554777079141116006764078260807710789473437289911567613068507322496315912316341975884627647288192023676271637519476695332542049089161024916483733496591727080014711527101290890296121104047246206562282096328362667088897284648491945054852414755813392377362692127662809010703960329946262725094714117691214291335397513015143177467168584029059686222170801110366607146302062064220739673674027544451115318680357371197061263214355234685554438245653255194962230924422262761618107635327121848671103874863324167078904688522332921111501979009872376674015547916753447485891162812686867360422299435607682697833173517639411375681873118531093914733161347146429574802588661209843333626447892327799217189381104902575089833295752311385116384118101924499132930087784725362736588016792732391195667737734602923116714725275438773239540964407417449308810335690168994473265062935681240746859168925465092110914231643396643496535539990522603047114871175019510860362143788792840744982527033242516917795343239338053753415428633449200572757968191874218427218858846662660281339159122650870329556297431210060847646238240612020974088585109713450244534562696748452174937951998366013595995980442105533930579946354121565926037395454813070900268161647358075309070057946985951218576692820433593133365802104393580161079082794266448782035280157498477771875366638868714692849223359797020185921637526370647072392328071177497552365362417062631546327005902663040247398045335302040939313049739713079171815148863238516035140918715172725963206039775181898773794298335489621492988306516879726173233429518602919791235420914661761858081206578509755405181262454785358714234987228245076280218555416439373557287341317707953318264106958023181267827292621724790478673313230260287901476485433580999324437234918849958599486258306760001220473363446686800302177442830895673212065731090929852126853082935352033162609612387192704749103169411516483884747974567712343355744298126844614327533710603770238115873068862889693941323630060605042899652004510603748676961364917251172141710453972369837657482509286253199176103796050507004745275198706924383079720813365107458086253398704529503657739479437519432553660014210556464148224360616467707917165851176561085923563460948549764477962116551131870096990291407315148390390899181591857833265027795395784182519705615246751810745633045708295944288915066671592976041280335474515510043994933991135740036810821452010037166333769521213375323959064451506523337907475042857815969527569618178470423817842031599241711215728175313825528990831722270803193340184997462466150686413717867935948059327285196433573688027414315869007652087234546637363983186912020965620754134887411550435179457052021920866286215704650129595131279374407246762041922665567445333444729681714873544938733848016654282642378338483175654383336174408732187921997143097193907561528997991933481684566486989431576014380286263353313618572379316723660636754943800525296713997403509940712193373758571204555949602844456404613060336222636216293412245761511654193879168481328096246952444569546212508791189353983221963789994987057551748771886105104525870912001550271811121400833033945999772865870452341916673040685570047172861172633588496827107174500353890336310666580911221611227953520597356315423878627922117400279299276602723091008788964486719775106448528542367606806783287027160214912208907383598679167790798465468476544328863327545926899764713611821919363719709430918976095893307419509153578998159456268174031091186213611238703266328745925123801722185923759642039717801197330135454863031156287645397333010353519936890891716582118447202539404709317833060123964167270931216369379193323918425977305276147922930212301316365295613762333052845463774496678385572416305553286105327552078438940442472330870014940075648539493897085636662472351155496842637074224198534072188433171180862478510999981762322580581202049072702367515599603855846672839734732595961271044969489969280704087235561355018834860982733449421192795115963891421701337136254059591584006576371033621859435409072149507971926424741687886613509620131303193981656443184231910367414205125568633280985520770932399557422045837289243830948110842330087641536630847241689763751941939984808639276953179016437278029776888061624908419337641036450961260406512736947334321364751668674541875423533249045251400126199102550494220608990865348912185197785208035382979351647361636394852849756284971488562703642543761525303485679142181383415467656303629359432715688885113964534175501135552342266095177381781803893864430908305399273865319883923708251443497669579512540664055821324953476082446423795952046740371691040228650601644011882128168872783923427369292606206409640919596145904314517234161617915107061776717415112970097436263571691798097913107607554440072748231658536391707691259190055511285073280816770513474907414501195024810842767773577308103608450037555650268658270894906640961146299690429226983808434968138914924798862248716712812408926279700650937412914280120188192206542159389736338193225912707130384894216293191100490714922536282186203561764468544699594307641907271338781826338479026905141348852408834159704093166717645848516539046001096347293231702452686080786491800770245426053385920091663315079277873248325901604421715668749405791518967711591318927501780445182499374387432993291435543746809468340260834642526817073513602678441171175476803025782843274127129555092671085740230474696002644571189301805811218925757250024179106647302011294693754953338392710767838158558088756706132999649915893949904087497782355039210513630164671634086226936539403456769518652775268560312868088156891699160460136793560002887848650173870361186136616823370063762490171870354839165300888065752373767990681554788889386462338043367881447386263697514446353315136450336525098779541309399414676011222285012782734557551595619844872672888621691139127864441826501071593433318160552880980931375760219544842366891814048761296983574036801175518913300572269947591922872439694710724497704047329675133848537289891985144879126933995627276286301571782705735523845019366528869425030157128864909899305589774514806497400710813760206766061002833539832072435945672059494512168440253056141611504723767968712526931563193098160823297950425898166748008781526486773641449356958428795387951111209004138824350699988820915655540328925022880514169678792992662686222467052549066749536250132697003182451011407351929815270911682876316152545336231324226804522288961497091739711353525544012360861881545414708532046722994693907148818860332682826172282696478516984097556132809109049299420589020997586802701182971438113061665016560694050941744708413659317294603683231488678378340158466652627793811034718565273429011264696899513522043813883592540845087574293404830480525702636746819999711139249943082380948147319257601152853824735720831491052716081699222814186753299117955244774879202469824783577017905817684337666777689021776490621936995896546765996942872180109781369213674462209747830040927181905137635612325486127214522261680518029325681831093141396659245310344236884339706735287266383000454195146442303262301907189759856124702358650054207598252489819907503165380324950260169372305831481731475243043594249891487918906280263409122726735334485377798532768897047616726158528835140603525270885199292171330705785763874939374555940096761537521778280116269037726528989620344126159881063216825320644381640612917117212009556747383916722296235557461243901559905448832262644162568712687048500344921141575761431548788382262449382571907205282243565403066864339495278663919782619662128890293170809150693354760936306950387796483806500970877125842074421149971698556158998974787651375057853627245365217806628977750732715703498547747167890295666395835111199772543088210830083871970300163603754823203181103451963419971957080162637542560696966183436297269070662230614313186361811611331684184951612964799463540815516628864531220105617962381014438462014132524685102641379341166216666044355543396726083900293342498560592304772543016048596898781615324252348894799274995680405750878596158465639968827705058248080375262444099228426558107196531396214742222341535077003136186652290242424273397522322011973008959689104985405447427697563805962622690878847643676551937568195199630442280902471965977981411229976113099668948406547030430616154284052898460555610527743167094547976542569994432561515127041177684024726299051846873938440317490922778671374650487756540035261823361358220969159516531003029947026121379832699551547943004528250404116178992299479111764121739926937741658202028350242611557953577101928695026460543592411800668078233417498334223525119403957869035786809979573555664634818410923535663805321625058733961273016517920915269630774160353934361487650865695894416687593102819722708421300606989032768124813643408829145069353500784269002833896928900367663065196212569113708251495264130730020572342600614347947841846620763374247401965234906393029662233773082064022870408809540394489260237559302757838186727111955590362643818036944102698956099702240268518929057056341157634566345353091783644912706551465214527451609570926960198193514825042308309332402085693823257373246556197838050798236783914896441321211903253837193051261214351205434672138024917208445724067560783891183614420617219609324188787153906531193456242314305059597581389680014593272680369903153148589817842184140862703541323405714063724233441623052011460053724335454408580478491527383560537008329841944194087857728942894298905564111848901279881742427130941732502246499897761849958444824319633387713606417005057588112062601890354612585934515456181756840973147338420149518937581589960120875257562760332950030118318809564291086792993649140874263226672138684915224129903291462932026823734909566257903206428045338516755725663359643282983690679715448949144144284457366131214716525772928322838722519122781850333184575375231181388910468730112025332934330332281767444790920665632501883887499178312452779568780325185708787710821321817542299137029990346340824319822001818143016950158675647723184551735160193539741180681625549863346929742793638368312286209015008476329602715420554092347219774875557737277125358437929973367550413539009626075460177047832009209000043703047720623969311236199692306945192122807512806261090339608085511993936257664560584547489298456610516437763230204762933488331366455334573480473571567444997734717821981573926294356614853325635257380075373424585696273226443292539121854835008471872615376119359921175544946875172209534021714967332300854303127734300844217039223565805237469978119523847444933383738577485114274622522039346757212327850661052691327977306346288737262224195846716672022151680829100052670223641512652274077600461979496685044241492903303752615324755653009315314557741560785488843720415714060087651280761331140002151760928982489862945062647986397278120873344792984785453151232933405140684725574692848626315035477092571914420142218588780257279128331177982212336807793116875865477713999462395439860017821714044511587793376458252175919910881923830051663310282837236134127214072246237953912933883641879315532993289487987486153861391523074689174100662618607772267913487136322147516568508441991780694861954601934089370819232141926382775337591945703264502363043475687173452958399553670973947311374513943328197791122226939725459124938379823126607096382225967019008381453286290461060658685632097801508542233484811059061738522986205281789604950073257042722202039361363824795831035432598550726214034098596277860172168955987503032882817680409468520938864033636523649442857653338109795334202587523066099473777917483409964056208373304316767108759298266668435467009599704858953748415115221450224994544152838657802928530176585629101388144172669383790207050034191012138679134635465228748140715338202901919235146721268382751000173948051792235759103106294117826715838186378195464884312297363020759072949613132264235510849102649984741887018127403987203067935831231548287878038686720763454984951991134450991244247310505227252766832066034853805673485126369319466529925162902626465894163413960915097218723640275500269701088386832494142125712048869645658296361609865368598837883902802070607029639962089291692420117564629212717841443866094448415307132753827418051247560470084561419607860495448592558130716152717681871096104170286462445106386992799031329802393832292307860024611121256253749299206962360554973977933709055091506159958074626476930706146547336572953880108465930773709264393270961733589798755133298517353358057619820375607173964951210260568242153539432206578780654333681668379183925431029629978625583138150842902346041464285063318207802667408575042965493539544948651852756470881435132319597349789917141516937325688338933162833896451848870322639893055689451839191243082932515654023675385004309455227522986219363499930799560689684466187459894748823413664085188532193673114375894635657021422230371741481201272628291057331857839227334795260680041312240444469069570034326579109561734228465513830287770817092800437032752644557620090294898701726471822893276178823467995953896680114028668705263367060063042612994608494995638275599060264777652197025375830641181461287543876098578289963422105950225341504398260961876098352165231654331697721441251770038039021598137974891320292927755438711703391163224807524657249729623124765093517943567483811431528641333029089123777146612469044864551164926799346341556211882281756423024051694895444281683141404904380578860590107370067182984993650407494702785573862720327108426027326956900641201555809469137101298425529054495764506457560037403149458790821054735591136399067278064814591917064338706971477366524778443386302556983881025898793095019713128407089187196967493940026571940572215929586883457866981031818359493810271931161525153017409040319451723832245963305267862642100074573633679726461435297149888460552919078229572134569264638347921759405780513036734887954494733446456067966769127826799049420036288069900260352216652526648809722467212129461678228224742717834105358584909381808438207696712262215564925244641011600663839118183087308563542267215017218891349111443407423167201858015440968394172184552924703066633174396992032099913723079392087063326814950270241836323739355756594835586434275852715303647534674601181623121808611137993248354514822898630625369332793747372640469312673756534019973009076142621228650115856894482080371428361204858316174750390771287604650336123613522431214204911409620458582922554357490090271711431005620277966427328203684088351421899736766128515417417015505596692954335533849886870232490206106445807169228633433918553944346597418310331545329102591303606462266687977945573490454674882327531737599593723227310371044521133115338289304247739724195727440116541848431556489404892135805570855762755849553488919138564379163834240893960220978801958750476141645787338434431980873515751667496820037915379610297349443210947607327004636334366125907117926038296577650489833996820052846423420685449469930387124964664248581160442000466693398574168555172983698292635849104471793384468325043384471758725269936686233757079858637995117647437877422102959326217388171799211256496076654905036475301128460597199864223972784339196777403895823191755732599419379008549282598066076789498548433335533052044297814686422621546390705667804793891317765192204993576166388219632235722413875804881872875547783430553371416242915918144072491018337360725861313058583937963691373160504638653787616199765683527896039165412211971231637064638435087505880465755319672008048106320831182153795613800983535595260936370006453170806442028883772669082680094247506157736530695369994647344426417990880723658569162389963651757807623731861366280300067759525456983035935020931034010665488238760590630966715258031902701805651077417965996417788950664060278847170680779275557035102223714730679500650960753805342639820261540712721378560322743288616802417338945979050503213797484661490309530174023009549575261795889698360970314291408480458384201770593330872789882921065398608549784177022680019943172312560727966935093784616738081453471081329376345219647441631933117869064998248237276162056150244439447232337910696083968856032674365944761324366862391058343526372587026552727235468109736136753799885434022478297321958647384707984985141728538675277923065840917432060501099102238929818938645721604168949234020855940480597988871990753899448362457591817958726478548243687178428051181657010359994896167564581441177435999415574156405419809407770607818178732780883923516652729811729470451824894886940253978497040401257850170852522948003264485539829339541025049341054446143561304537123696168220242708754680322577722467645386906917358463290996597892708572413606852947228418998881119769492577756734731492045418824993538607544853832734931602494458301840052011005971211224881899260140903390584301410505598071884441547633560933892955827033563839189207244115662413634679375541673890893091868608031263789230912916607550098980840430877173868768493062385333509150410600038306016394885368792106123894105743940346062401637185484252177167545163976002550502264396115259942943086934986907462978375997016129503084380366066005892265852930563788669584667848757260025329183930718547261012014353181230082628245390756526384816628430671241409153532301737357772231705454533185733039863611629092807965140007625802958683252113035625213499854006783290579810026266376780517206247540163537025216821873552872040199635961887360693473067284096081288649892281654521852408328279128184938636352722030085982754459989899958351115743687878881270485571738148574030780362942048594206443341579016938395968153358527750878157439719243227798831706054634005330969611599543732039412995517719740924937281938691042471916807457558054131728168336553796527595104025829376600693794847630502436866930874986129115155790299089147511471436165509778108916891593890432286116309808961601543654239707131733987625561383933492789060574714538169156926488201510262147218325034091656245429353117328396837417555069788772460439855626108533737402877099728804761149157785765104752908911381780654692220721713254159467978055595740544953255877928432324750482025729610721193054272034454311190184326515998329511924254995688662924512061554435485187784337602284573185525530203857806799642333473943283255079768143174935290365355235708336227295402976036224596787022467961087290065369158110329772411271968718463171201531087202282912167851368328682889984100630830596997329512401834379280807586687788984960437727540275895229293668539226751399282371615964473732982701750908375680274466691591111497799446671135691088924379199309424721308073081984262593144347965790856700825628858836114463307069019106360685995185387041710623856804324112299406997697652171894899349718804503864321759828643313402327317350344875527937834864131041994965955257706690456718435502156201896727939734268216256860859224881131666473414298910138757127570483051459436636099246610627201124409872399971042075654391506863102013575984601467302651199034298650639676000696687958282892433978259058748567826269263303468372332124066157760295156537226106822903836613368341504999895934280932018654247036073590765608162195997593438201724618076958178347221271503991239373308059816434946231367174959999463042117638181478301910213344735692656258805710164468798455661720375874281490998433930465239312200035644248650280200221038723815085543608061085953817427853246549792311015101812667413846629462674003407290924306775649178579342775165295098460009862821986519350148631413113382340818641810195988872295935856034372242367239601514627896565485335331740074198424260136066735529840754402573177714954021927548762566366320979513483892323984730934282729939095492262868525828037625710408140414070921533779824712193346482520718387853744500723852593605676595762204021945192479291241307585464859181278455595125339485377327439546532520168622505372850013045372400046474447907459782510294447904759726899493753746928089331155435505142051612363683441007349842994707086534872826168261194995444598888503596079143671119639139320911200954133512885508992493392853794766561641592545275885347906803485930421014317785771172451137418462432155337224056541214942322346734100328640923722757147317038093058466611410528665349292157043843719387582548918498944658974892112398043559253649190865890669173908088675009132330542665482077157364025208162483016589873036086598083796157673641177362734669761566653921348293456423991292807859979878815204292215190914169078549736187251693099991322700067499723351557657951436647470237487661496440492613486082997609783626049278231738894979224685209775995080498826972392495765987223064695118767799160549567269969085152582265295227385885439302173427475574391874411376633994128594831234384848812794576013671006676165974395896325545306708168429451211409122120091086669899891500102055692484852372255421310716613919828276574298188291751833720841752386967682805910231519925312801445377221647436825950860888636443467208040799574561042901019656088083930982871606160491216360458690862228973756455741357430715910893672423316644773328296824188314921716494972514011949369056709529615270432919617564101018514059608395422101125300432032447729045095686728686928379789944533473254078320054283548804513088741363193695581682874607904656694590040744288418738123256769967164692679986955886052080637298383211238624681202881704348155814062949883062634593344998884038652605737422307385786640002377415312885909455125753539336940869444293940752218284710010776658095127567020147754082982594365539007779061803003710403019109218529328478241165518909228702901240416004521493170935775360816342085655233201443845388958342206841713882399532270635638724261133021723608875319692482011790652227508481546536063468432083525195108332160684317334365846805913015740878701822959876582283002042528355669320450198198817145826117159840001172323248462236802337849839057195842083394188330250004100260037883422114836730547496096779242970449998379947904405434971089626589676691300284990960386063046240093337979092035755162551666400571121877172390300150396095405184581699938643044980401039916128659347449558276066834824890933733862926698964697053174156089229666242891438192737235672603030501103415970150390759411599156179251165622892441767557720263927108978526059947131533570045904830124535860224570771605821233218529587582203051937289020017734320619428734214752378860830070299796531556810301128799258939183387796470067520270368877240584066436919090287438763388209714580101749510134645840281278011316813989780650900740767464220963899804533262076514960825977452275842390413450268461861681457953371759462268303063666145365992028030084325285149817881771272573867535502851338367923056743243686962027275690495694721422424679884360411922631691556788276484222391196274036714598974144543180061688629337635623975254816109201806289442065086508865174388445174402936157089106653051819134408352417385390895294733126909002288147617359240547275574100872211860248070655273478546467081003325288049487281884647664513871948464700273983663967869110872249068944525449930136135982302100966496626582497907417933026044796164678961217630473547094105905476778743627698111464819594676539533132602160451880568520123818538359935250905586730481695893931266888871072451637580786918529804644375984939014986408867291215615146935054468003927753771628002844461708872834613320160278469351417103718981359285654440473889353364342252995356306714864357582266150708472242121395749058812364726080795665391821078069759191962729961376825052719016801350182593650390431489237422218299729435910504766510198435496771583639035605090274409454737620008662551895379897398695524944209452836893729162255864458818572322005097340211242024270133813809750638707368786224134616266076141865890367575672804946851392949246947497670448286278503799394283278791220332971397543843644722779419524830053313308326594126816548143183672418519071645371183945618853767186114634510098763556103968824034693227431638685638936692078262878666463162305865623208034467033224148965844290862011917977518360789811784708762629615319400347815464050634565985845395933678392047177816196115197815991533483239756111621222104528968308713835459988065857801354859374904263956020172957868115494079887899895278594495312912475824817137108859096914070619330361800303323891913216840242371178559414793817512261537355292820484620119087835578241076795898728264838018836306051625874581323807170212707031160159931956653211055908684463723011219393528829932843569560659719893014841894192469651419504713100362091384684087143678688323812487187380582217796916687267705286949172329692975741293715765031048614982649963942542515355227892655817659328122813519904998628338917695098649870938852865224641624149800913360480941616720693342425001725333590241224520696627428380607915709746101932343274422842790300921971678197965979059549127210553864472407600831000588081819072447870343657454279475046660211686153282079367042283157677410978706565288995809215120790091062488938646517486033663048808838585836547541959063529016960795986671979195154726753999884776218884785107366055679223745515800961273463703729547099641448954403570700509795971249707914989405750420165030739210083757394132816578085719802851130424796134514504277763666054870573901649799638800674927633569990174214247086042763368701538895425544860519661560114570743110126783606189763376540859558441673969989899171468666484090241900149311117346206295823077870579486764638556758721099513646830997771609454655720168122853937767374099428303951557494531692065820371452045827753578337982711615753554754759598809028882500151326903062183753558815228008049946219926313951475900767150444120102864042232346757214652225543337464540769554429637336518329440811481655311231788856853449362565109233822325088751970064021785626240504392039311551274241981278661180457520379031352263821500210772130502406624183002862477655911114130894749764170442763287774736669514152962797298473622901963622315436319141841799696896280359277506155139875578536726635378140081715318318793314798031663073541838249854774614347582122035033039491346267250843739731331346134971878652215484795211328065589745100203248729792239256892753749027042598668561490405375284504662614426425991229576994984595616886612934274152168604536950858277105538068424706396860778132899310628551128799543943367009919152088861445556457442279253309475103278639998286086647782469776693646959682093306304832523027286162884091854021075857505952335491745175635055894316749129117086207384696004878978263910905625739599487492495979011090191614659080207484962639358279265058364767670838301196885550505186157980972185298078202754679077735284594885548642095718480957735502641837966220105606201767241016475961823177144419881009610279477760819625624682085457499375939175577255504390164427090909940333682021018189188094314468725119448839760726106428947637705083816809284728704530854716107278666310122036688758290646249653294421504042608960795596028483768115833106563981887154102229185636375546808614676806062617591254751326265896334165706265117268170549301094065863026692204229894830237644323671421946364900320018910295105537319742039399303809428707866552914769288138564587814966477980823314826640216655484671340624018597141217542440978712771828778534134383738258099537774555668639030970006149284077302470091720199524620624539198585923713450742399985171822495428895132343503182334483788319295955334879010992117189922536529429365336258259539094655296358137449729369974651187533853748709421770808174570174225160409043884612157412445285020237983903699911389696734778804970420888639312843891579868614995357206376948214920930628125131228080499666262553224283839917352025667452522990840994632586468341113042084589880324142878241486082621057749475330037706021516825542168588825520528913719387724986908202539336294047304750500997044070946935891969900533478304463581196491048316381606807432397475188737745048539320801189209217620032541285900192128507800878010809612186997215672787878360378342850502233591047386100379003368195821534795312420332192379118697973810932850103678278806081274528288310391831570441480372715269111958913827350206266167881367389300589434987192627542175867837758616929115641969549780500502717441482142253177166456489762559437582676430949126055292857753556527311492956087911082159619401757024920446262077946805377695544163790238444286270760013358829372290589561353109924487923773970012638010390621036297100540090233266205286855129238893654007663966398392572450824496898926245992439438450876557890902818985683433451099619638409116437670596054841952535056878723052067916205797398008695875004656119615450401629767770096547018528433497764467949602803722422923120925815523806451507317582639784897165956107629449587379456851984590609369134973227024282382935848347620097279573203973908244049026524593739625729544911772960859885910979831916191923715574314777305613275865030186712879223339994092210626790946258508116928279669238172379855127629935238608831771468972857155910479691135290085367737548995512471868903957446600048479540144780288223208242567018451147545838594639977604121232182945120720779081768233151618455421959874974455890151199270623605189634073539348756409531560340706935958257608166769558749209824048066652756245519232200325145294175539646827190235219576379637897594175052158675420192853655966620145045633855278357125671205128227519609295390924578418855401271282860622031840304162523045733499198620336839418549191744312814170274683480533123636546408009522798679980816786143876702299176420421935770303028892406338233711883166689234725665314715426197369248818567744423683067628580803557766708524939432726759182713058028204744986831092388451839656929128269141358022850879202638155759445885778391763041538247774502736300479676856895905742907753282403183887419532847250575823699898418557360973793479262107564800127606600568485628952962703650334072849924570768216606004308519214499399461592740186790670249250918808425497538250005736411527656278820683168374561361164661059452960987647876178106573256994413006960404412757484805908154315252191475930781041409918043677066395667263443535624561935640751356546727167909411879488480868092309383287382250042851308615564673823134489119765303305903494885070904364085511708968159681885355596836776708287592695900122268130634079052180831417534288387501316529218766333357431437101016347796658883618869883499832898116400702596550204761199068845930641188013743352809379510983052205865755190255331324739355184215726088231016831817640972417966428217055392357331823599721055914675809909601571254536259146573583451080849769670807172669437183081249664139285293242058148352262744693758585695716870345022377577778359815858095456674554627297947307975693205085626405035283025567228667754448284086209981389793037092532642596403853499617054638608372303148948100137199901319701262801084969868327908059952507493775423599997878374465778371237535757852677710638143561367890794737247924261815992801915542363584092241092695194986758370140080691259459445559254670473203928004701116001559541702028795035929201770396860113456304449233397743545571654572714951735345290462215877669321039725654053386823913058096600212123248311387049072616349881777525063398803735283044137885040535291419573448626221480332949544888908545079248054268374194066918855516757216622110920899731852667678293526613290427617120717343300234525891953735574750926874315293634284496407717856739958438148942104628518103849643427735519244385401105600364091860906598300233736845914995840144499012936937258939528898348115564558106103079454580475664650489357678527521118340799459874420567550698461628297481692743403195744811212692198913243550319837054664442496096363374848655871436934240008426830694664726867821605430760555551571130105499636942141201452860567154928145035636088579354204498831255719599558707858336533055121083928499841126847905712972202465501387082052447492723419195036030393946034767708515347254338076913543021032331182709941052543731637179189960813384440367350920911106317337658740160001869730425298420244888527033172514692497475393198235035252261761609438480970535124570875131868926737005074427741207097904073463122620529000639189290990331964353335337782773033800956435520237281189341422221316384124662187626562926213165374744095230545401691905912102983325487384431499690081791766624445625710550014060366800133249580906410283487716419356471430409550576380385738522098716167959104852220807083954438166529535008774606811360273082488566261392866772837170303237832334671640641865105991624817670706345653146764074492658990400249294338203476654827303415226579042351013109297567830484813632976397632274673272990989392744963857214412908487064480704661630671832626973018955052261750367044376560638608975474809199526394403536046543998237735619024650269312958914022210598873408816322256258686174453244115894930355509977482474151507373411947573337355652762741851916424514620104987826294536895088446232117635800351184183592675986429712813985384144690969171907995167404678189358750274435035511807996777624987062847592913272616884488849391411287453205724835916236067416163446388013123511612633214157350735873789089864603319101047904951088053276243634380195320531364134355459364704198439973273192818302576008576753025832169671464683435884003914203707242670826017616253390298986715267562219813060352959484464640403968856006481766109033056079065038768968446731694854343891836893537933416898764610405060241093598555326643129997593902636796969251376936926159102285117216541488921572622359773667701463984585521047074763889722549022179557834738536300819334378988748156802769759994951212544157027137649027751507877994910956148957426227398794033221282575324578456195527149717737489231107175800448526108753397144093342364167000739474760533876638025429586355293691303476986899061333624590847353805299916952374065057657039349015473906556528925808194469628401221392455111987603807405660994105231164360192568472205328510725875883708878783540746177976015317304950058293812475052503021700236109573670907840223511622259723813014440798479181330321054432443110271979100591373809348377586361399771943672006559245699381470276191846661211804296171866528310695776609243771615983151245936172801039016365520466193709252512536313965592011778214276801942804765865348581587470311992677097913350491107205165243246231253831574487512954156035527502636796145461093444168535781027313899699954686734351810344325525951693002330050592572799781590482022358905260479203482507504217173455466425312528525947844068421333789797245599838145290249134127724342450971795118644615062815283928650237212926436840813268942316931518881895385268180047631030778038992441215187198582722254498999677875145879160239707666604413330594001772519682882761813890254014214115403222188075221493138730394389483863488048858725731296054402267540119444344271239556902379071500713861064198583888795688054863351728084446447248132772385956105213013091015106264293276316247222859852571026371594629994013226550518804465739898003775442184629979193304006051761618798602655576076891495679624033020920353382300641985751212805490876812649998662968202160083935774256923900145096765518968300114985803950066246338616802255066870759127483197530001455406015411980784113494829465680601707418219448269420291459193117972944253523513933101121868831678002326637691951938989304956559636443049982636233222213173795863375272901598026762438208490894364283124967962162500163529966893044625845804167249071090414279544743227764055860644979937748159790612922202930619833526180042611796654967580548290181068947372216120265716263043635302282129337245083943534370967854324380583128895052786635657171288036985284548714950798562466555779317050790289986859714364593077973507014015227544766934198239263898929453534319021801693875850287786879702046168231973519928076697586512760646823839169601486711150096038459388200510615266462562727086373994715025771810723089620436264155255715212790458354295905910120518508605199833582952027644524251235773515361451329122133578341196718707585660635000297664587218996568468098354225556797699786152958316206574320737210996844061946085275213997207746028379618294067782659809969835866089743865103656242556250842354354563015121971111673283365507058324791727356514276941098498635706661880252843453611977423490001604109135980658253251047772348737585884666978580299992241973665041155119628160047321576507005166289845399637919414471961275368496384841840783539219495160760752984767084138274604403017707579996667675686125361051400391716817256780501389783718658379689761501720984806022721512087636711163552935619613040209273964185286936047265139668755630400875358568683131412868609228255512422695956799303502490113667709364034990374845874198910890189457051985781247844035757867139319708554989380999706541057916902095988974987384472726137243518065616499316389735111970331039397804092809479973433772650212249714340982378236519658928862792232779903941820506856983767116623772151441202276633794917374373422831797279401193745390490579714461718360256732214055219462186285914543896562340248945379811955964968707073021860780513193094678528484442021284324993071541356442307938627252658520849226948439939485305352727068233586394860817057740751697385212021062895941771607925413069913460814382463286693523126590734303668095385956084501673932290965428288540978637787221825907274341956466116595934087134481202995796040005764146848563841920840258326855212379549624891158626009400987654135858706192511365371948148608571077083760209723746595531144030733949423484486152523722666253172090816226940002112275918342552982816899719687610143851919012898807424280528355553325232571548587561447752011946801115509440542965731019362159591875821948220747561530783348030085499433087398213402707000311285887927967396273660920712697115138195377155464106337455584919631691755255599189224089797833124273545384179602784595898647060095284180866467711094641598431500095974947022075958749369609348923513155308795226753192288751932690569926959011242800843780897580223727211128142771580921578619031438232822215843119736386797272276849581363281470182765236169987038316548057146175201779780107490052009862225386713437898798488104450302717738606821067182348566610328159840918571490847707412577372152962362895142819394934492310024755294687688142282688263381992107050031482296907812706850236096795245615631762537844390868388545471766250548688614538858940190650918410158852088336961298773167275269197562386427609513694583842618521833895705186413263202522931391348380821287964338813629845539042373128573855900623287197915909121817103349208828736572596006751034516917303484066477312472853649869703225505802851210314581397165500540219991258467124752296233047947620417483573396512933884625986054669020687274310798920093600862996258526495569263422443490758898712075405572391778889837474006283110359893639753683143163791553508445994998151790357191664595797264053563579622852232320999562529072956596862566647611821743688936552658420973588048382356327038462917410427463403276404424721791963389233300452352920028757301356303821117289713316943637220617508581520290849724636905566762892184262651781976519538524643036425620321295916089585335981540706502452521657088226438896955320033071238601771994269799874271196603530485283581844146085491345064443171308666656732474479432280547339137606275818904283656586598954664885617098590233571893647110221915544801416081086328652657202503734779658698028969756875969566551715729978174149125519450833779497446698060268643181523422924316776326510155053746777092041564764624751249672301142884839539706060560724653142273218895838355013985022479806163823494536612899404093559178092658682360641984947863949273925514675962185564843402871639984241656407922432049921519352709427492550972098376405547995076369623700896158531420828549780644065756946107401242830116770917540880488062665750487449700100644817281703371857168769905205043126912675894235464242632192681612607135255937799846876848766637463737084830913023031875975519252439917826264027996616367094369112530086284350297886671483877355700954085095109254267237087162850872049910014666606934352543968132422775052041208431177836208642591374140370189390584913088530767180337775977981545040600450842816926539549424241734396825797942963322331213218107801293219793602750388852631045872578879049933017249371699290336354529074965146405609127548752881574874850466564788157133643242701577120650882647257091154529355415106455103509471072017880017924641359721384299487104597755279842745069774265641488340683008092305464626038948326722396040624646594574202522108428812826688967527898024346826557896265626637974536891092934689209248410970235713162753302389020769867314325842760948183881245857587340140970686718956181311222947002197844824158154450981988915294242890693466056260795656643943393427998358823571167575116329255621499470951835223312458109131586557735917584703694148488150386326409866052441608994421423724467318576854052616459608035904616045947747232056287891088699234201957552645554915186288103709855628981849208453628176074175578224666387907260467755483451744348189049688056376503250353592627137451498862405482956247369333449623309027391137081058407123726554039444066616546669812794016117438031442545836113138700180051064222504742126749539970759097152710314165536334773200549635491466719499256643771113519647122484421338334482991474019169297097827330482096570236574416621640413859757199401107550548138356750975367702086214802247690575931284579612052010606527221595997455895639292741610135447771486602722228078789190310493304860642348889412653650919804680472667929079707702290502025767138443684581563482900222665872245389242075867812648074259843103723144835073934916328568708798935308983035538438395007970780150899316677212153557850476824480668120600816092524900550656068820053943975294042977799777390954812182338828159978628439344893791861555638458479425929894905438450373697647333225685242402160195904472401639944492589154522209473819728573560814162944201208296923421367519056921053373592377816006656687636414636657904357378244366516685104935195776579079193354900542453748362582641051684378644502959183589839644056859368882636863710502768783853127777056659956030015723582371471547219056714260143368796646843649143949995727221505804289921810098950799344944214199021446892553928676917510398246758246373438052397350830280687187344606418762993203121704070483046129164263198208628507869517290189970014342896826244178078191626441719504450757666856324245674581755185913604359995857459882503553846674132820452537010805090235114840481953058880641604082355235129412814048454488103708569426260002716392301008603721424248429126495719569873219052427563394901622464546259347456703005672837508467249825279836734956177089836516547827889426186105183276920850360362178003391524933714844455014157911625050689091071382758022446505098609868832767797118325793918716216767883562241988675386839315756589776865201639452827388674406517875660068949821735574807444325577590692736378481805133570962701897152058909708119862005227679349913304058284567203585664724105889455308752236461838439640259601125485287660886628483076360128700666722802670003614942302612541655045829616993163843705829675070532292691091611967493612737291631205863688479052509527351543806222193273002895992407939074438573669093529492586894401073422178024370771528161242531908822717327154338237401474543621843332568029599407713014983323704510969965453202745335070217703707061138191051635880307474770819808265319510552403434618908040877285588710261912991092295950882251819205851887441986348625188245665450780329536348102634843303083724181136556278301939101618351740322384509791468752162387714423922323245576364107974700125539832471226019053048866664933322848632905380868351709643540440256866791168844434216940251772691672005423658795245864872919319419639837059108346595565457374554274722525638720491964846804561216346755578001839114580507202910409177461978829650486123555287269755200042382038183207642553640963208933924544967598152309215189473050197853510015299573530542811283648423659474359596095956980162027530239594199533446282082649792360794218868041106024158741508575194580615688808343018541253781954596974142367787418706672158427522319352770701887762803032337402862660420730505237852035421042577244255914042700874907643524826938681071637669307303727237417175424585224773575827029599664985410231151013874323704799159178790299448550168255865451538812548574254146042912012322855614889532717717240122627994410826869139972987438255681581112623873262610426424919146730313932407899673786143290414208441146741535167426897337032190690287477060200884221903212516552891171738567477731136615373439175196270795492161709378005434045787378968957940658402609222670666397470647461914851144652443807415205521286862020067172326368471796723154915335949245342892887485931766426993620967340749774505307056843141013326328777592130576231470087437384507626030587577497873242071406651361799495694560108192843193736732841798935189595423519702289347297697710497535864995673185046950987396628013953152473360674595746536734225096595010987669623734140606839350348198382718211868440601761576560254701139537357267834526945596079177094497172723469473343678038722377574791686895552041362153801428254867377695283703841427934004400130568978355622798607136070596604468533433322470819960517276152201080667106523795019070974937418216335299386518917007788988347636092361880526906006408280797134349789427595928872026107851555411239737304609759231788346880725383510590800218660449028979118967259367552139647290685797350736757182169740366706989613457874506109712035014795653751641661531216473254416789277507245943628192382562336298103756532891328239232227250679417094691318566996226763008474933294923772482025168055066631619903457800502962160950971278313497549748497080750146928617797205392087735573542634465404691750787836297830371222126344995376045870682546656732927753972286036781924732607587537503639605557551524704479046892790074174408099162153535237955159316825039170841157338947214833770587893695415348273160717030232024929094546655312055250126322531741427372940893582323130414035967091049257183835201953577511103030189373873667295688347590028046690150280415692206279410789768280962696610121374881195563119677798046812493064783740531627476062834586847164594382436775342760826955765323442760533997129870805208989856144206593472215753513573135315096432568632699760118167688723309047847387826108830027187650260826292523319447690994041670026400655559713699181466979113567780657451057296471196382643806989602338811353072149858536870862858717892687962978016089416393630120941635523027773429963015263435775125041351983411873620583345473118538074572684337206905220856255010506100937942856140474184559211793392727085972511528800569402805361411449240209246208794874183622485445370167347935902015006990894711195009547716996064515693409809576087230611679859305447424945855927637542655079098507826227452414280564196195794701618141018859396702928840881750713269491264514792458713883472209570125453762871154613584471013113232014954909446401476000302376328571713953654714900135558696330692581126404792005317280921179128700967881389373295949068769162309178222864353334059339679160242893274844466315594574856113204517830646491662241813246295767509185902988333230655145023629404347405492556117642216093884711734189574071998503527366986933866985170257393806602302791062808535254935316619458529388540134761981829790192702699755397627097213320775214288831363827940377954810436396846216952494822984432296896920853355530853174095397100274487325283527573624794580127804455036106064558578035736262525563606477349056863832460058826457299672867064706881971880489959182095387698672412610581231337188328153873053240635171604883731863483194487855245340213105960543269787362789902736235815268667728648413763217540668998973488261186018002936002236261588495903893818383478150216473108913836953738086831643699087980859301283735287622060053622758728767946579168057635814324092530550238865482949257251276097710430841424132714922301455502491538011651570107259919660889103344587780201842019868725579834858927941157916548984180796559816529244002860008928330899598461251541347364124755370565807249607337289686395655103449758583001718801392934081593465774074916873140199038284277122623332446058875673983859350076951311855631684573838655512292940803068422036256724591811386063504801552261670635649642867323459656693799243587293291166884983936420697970390191593194559703612592627063708371713607972229244838973659949263221859430952934455170540094592748703284351993881402670859152894963595076363807323470534623093244150957569185048089195717391916531000241571429356686909706755384850261080407434064574263428325221102071034503745383407217192728609307970908786402740375603419620326095180233319446604704393480054063586910294183143819807662636922920151962674547889054873008533422088159740328925356782478045723448555663884299365178593815428714734705407762504079807108683257127209659524702809312984905979030619675080599444217988506983161096380431857573493208970279214433939134282900983890292760099810349716753400553502665754851358206981718943173652187372727038665243420592696839958587716580753629304917458210275330126702362227330521370927475754927540322486653632392842887880718119434477544394315746337377421905144626384014838452230601326365027884514717047905831805834894085694942499441515548386334237720406996019335803137534497602844499515410901138156066413232943105354035663349825009005341362149597475298028239846197283670062105846139778158274676579826017847296576463958941877424963316958842283911915905656402281934968017581638401394292081420882045469029946376520599881978317544801271199655622131732442716080219316644607184506702451604612011797638272392113483394387989629058401796863609432553006506288897323925136163270239075239598265348939946806580594876864627514109406499311534198732172991431259100977718868694557124444935828613812597646375511342798457376202343562568983122530420590214907099967416032154670753881650296586399155315134290551333165324830885034701954905567448410103218765899567583945582382868831081418628354731947552527471157540254348046617748038786859837871569491342785308294728873541204319023209059529543286106613269760762669266113521146625276984127734085241913826858280955075837578751829441953816699647593380581097441970408876883252573743856182591108975019643147937257207080940589605539709828580044556307859986110829784519803998823094162509868026351628228075608165070483489644168361836594632976919733266450443327026529644073326083594871297205636803629992269220555502193613130943929256168982589380953115434813289518491654287254628635197810302373003490379917930768861220453265131810138168987919567846678661443310580143812599127914158876671702906759990712229281727452785443191763775186488544690552141829475460755373456060855634642039617667095752874549490120466035196463687357729297428234750549678654459273606276089892469782418907136691030092667819130305591951169569317831975407962403384211046644652404581868639326096463530334711292131543695714422067237270190321612831636606835353591402798852609531474419767057640109075306047213865706766549972656139956259081850853030455592840761412465221809965435307163185074886478933137159804019105801024255417135661896120601106976120338712176953627748147024046287959447965689291666561516291177369461849461776831663594528511716414008796109655867194211638165457893559437474165960191040265069965376089108849054090880766242236244525313285217856872117107507287258024370274958356646245635139772059647787347672137096977874372222228544415051625814759001600103498734216428737941520917280874385287068745299675850634623615656838065684685866591288392993987491928045097599357621915303453396402416281637564573379859690128292741879627625038064030579982239393509589219952785102916463804783293620919278040771504187300689178573817825379312653226956429848057505704338593699343393456044962325937243304357667147711664262056671619377737577018204936159782065517759604455742714015958506242086143202210279470032864409749853119493397220525601724380678398080630198033038714010823737020217802399919659484742081004162463139998938726781296983713965334369780639466764286002415282487378563941292793538360770760830075008546883668496834473813800019480999463927939725480926175571232307228799147294996278293181211799953119139336829142170800391710839203996253246571242671148076218732388866302732632605102274855876858248299627378563037502052629488316960894901291631372634885804981924875455352488732623943936750450165476893402068214585655661710507751194373805894134256960413139475819197066823026324234090244505409588341087688988058360019058008561994910332388450133139604194546882835906148062791702742550569836303868190408076986074650884423677617054622608454397222194035542026520331044552690070468827745821456966366744699942884173471148070234795179430778361527574001167542381049782265169967932701790991325359692564131021203176759602636795510869259891936051529316116399937906052216218262573447363342026307505726425225525500696250372133805324484465377149717057771217385550214036410911783897214179763547317648609973237020876571662328627364066666525224448442370474312602701940529325392038812456116783922607147800119571847504556116152503844822082691866745295001945479554742670311953388463367504753411924305172890558306396064273009317899033971343931584059161008586393822138202271708192475778210015039163848666017090813909135953340619014626904240956805262401070564777661840736519965983120159148619124791045328208490037696235790452049281474814484658172687429160111256780098117726912220907023785148661124371445919846685763094737512094243352004465053297391251670830182554297130226067466098005260391962755798389509069243190047375640183607454934859101794475577162863150554887610286729181867586476644478659627827294039993209905335496913847574304220358026682005018352485651517034209943110726037475082164349588541432104573557419801182940065163845907783130947300992993954182718180599773199552253765623522616879880482847203149589062569689442427840761719747852121117086752944603670533555703336195269940643523308190957437080465607841235006193415649510049733173836204004227344378915789653495861159191813589724449560707032232278280157914855808866326700924042342031392716468963013705622185503990346229467917697832970152412757358458013089759525863985502154636770509007033290797558326525697330992519942335234267432452628783434878039320990147869741317281125496445904277797369126687707533793810529597921956009451964724521456644781129408884259739950228931567320489003595653148818181335248844869869480061253647427755000504204046210344255558808662144252379324645861308670915261439688781633677349695124090077391672641409412421645618536462085838052194808988737746342851400043979235067024246706670697307923553229765566845704762902563225978319618333972491546952552514351434797307250589853935034414301037276933082870107555261221323794891532424850154784570097745683673957064624532316783427160599513253350384476461804529889100892576142364568920937121623357779190101698527465074331339403860558383560512529911464752510497400839238188040952466569782190675007745127340413746948598903243038421773757608092588363984942852491661239742134030663996839945731531459218956185429736941639291274586602149193256062908354788945387058909910287768426344909242758195382277154455075508282078488360093885750407133806431446435106635772542001072151282148738012783255219477266669643519639951388097664532433272355768426415313809782298046321315377462523540429060358017056192744688484775984917808674554983296585195346162001081254224267667244659198500373724670009453141832851380224433867264250159567592114147496245184912047206467560940593359887917979059001367488538645068696206561499083496822578568113455648395727288903768564734858702787470924437841701540033745698274823246922177670738059985075586166871378718683096809676558370216611140772207852210640268269888730728960516843783520367402250033012942208799728073355203320849825187947636617429055283759128564164974137281936511433254132159665447975088966378440583413844824557338593122367508775691745807770666376143138370336043345867465015719999493570926314983135394760109974600000537658144945733267458610633049321502973839393544273709938641506048173133810760582530943941987857532365723323047959249575058023465548576017407830040764894676825864095103880437439926955341506926095520996684963621960975419902566892730018303988411552635487584101918625856519589499175436701377526296212355626089075981447245106345316843742039269634125122549425532446603922385414921802547488287657536406695665685449904948149152805038253528556467200442522894314635745970560541321113477618345914350068040975165789396711785485165229206778357107525513953145282312224607743264857802147106967125824905495325200298011874329803856098208474987810516242573853621749468345607944013868042725973721779959761348492683692590494544728545348555476728550926269663335154395319199262090222901179165035405320535415573239628658778850100121050944836436935545656529870251042733731127036864327018539304622986390184984977908527046638100741060641993467683487921490182379262315357767600452539830948834995312973156738110357671380950602689881032606604431764355029953307435121783536374226307308941189098334119638605515220249684439394253053142728238451977244601660403995835472791372579948769056309963892047062937605056521820542134579977355489353836803365282076081251489436246900174250148369489103249786394191146005402306216185569908610246731548646098802027810734737377704918834398152960696061717154770915580453914721379448863070275106259100795373999513948617449030229789218152339558821015764964020945919409001606116587411111980734335103381902040120299293240314432987716472194187589256763459232199092290155723933728886071369406177616450934567152280499827475092783026359931981639916855626044956799351948320384470396500989985380112658613333794775521303288916197879337327684474132831621538213505022329824795198558425306440627327567040485421579537173343830136579227169765815254227253190269172158356347906550143393222118454577433731865452718559410210622948825204347308783812222983168723577837337344515599482329233926957892944799824200949392664270739432327471320097160347570744107285030796303907572702838050209591617550700050166277924293181245052386723996858519317795903884046755651332557582149431535179594987901759399540186995861620669715389333257560018092077957850127158525013243702679838153216831510588027374558939822516507965568067405529335804164586928523165289250624410345072547517466969576647599120655684798317788386244416469541919134116638313595094269840789705549465807294598318386546217752106311455104336335366177573050374063429208912775022362094183093820379420494301832564881514621747314953122724966519403326669465481748253417252291247497051146161600542818805403541989472345725590790141985182981481459902714051432660710262296349194812593421453378987245830976048618886695851303907291733920772256896098365209127931148217974750644655976134038757592240223960347357084918337811214989258295323354443785318333610174372171270755616191438053272660244948668475034380752518392245923957178302347141902235035038079411272774872895040023080474072245560012476207315992125045788619133864990339126851472433091060855943660562484867647533010336365985774896315464134652817637412615811007817367012495447965411601224900939460349933099940239274943813504008029448991687939366761086755035469238657089414703946164778455893070118950360169684300781588665329135620556891697251578127543955416215195210530013133622187193814571974435467846367988318741333305512922100157473047822274735436233806082009833664536855868925633157469202431516831234067297731417050798536830021146553627357812063386973246879064859587581672286764887437654650449048380565180229732111795405654379446150420215634066456080621749083449296578888295379303504726086216823201549849336065885036959606666076136341254667714265766966938253333538296866778018554763758741375614974085168362938644445437282528212759657334188069780403863756243213593533382769143640318722051944488269989986780437905031726519533324288476168006516298029907502324788344342406567828812886076963740649602563071565676750520370530839136166283921641845098284467430512284442398334641301530273921750420119266145727508281390376733635763925446052971601765375773898946913977067171842123029668128720497136453255289930864012330523226054081611387889253194878617232763152748020476997010841422239979291101028956919632942803327708353525389035143185882863193742926542221292762852600422545397998100595536678399989239291809150387773614009281530819407860664748423822595763528517849241474448436843425206682156596691976972880573667036215635512499443612266893305803948045462775097887356727161237582571383913941087243195519516053376515555892535518269797147560668931735310531915212298359173023026758392741649314224393897443100874491196222448073715852494755275828413716873388568451397193571743513766510489523902901706309271226468406692783483998862859594239679364564173558718401990187572546346067620706262789623220348053718363517946910877638519911078379366902264789614265281989949894409583646926514431656582124717920789203351405936678284940177989652979815054754358031775856225586906101230234010936129553535763584329974630792884081670233667889701281459588474281994287498661437711859701046078611831222856749469131900448256430282620072487875253943979012522035179906701088644441733329427038504777629594843814990998912625348880022470112685386605943766222703650826722123222351572550376503854095253101757586873383531199693602416600396509280727438071375470484844568868489196872123109819909873074795320541401039597361969675230524421640561900526742759939791372686862785354305517912575047157660184923718223934849391969295394499883801965726625036517574940331196959794117212576237138316511479626055791784402781881225538340896398270497890725743044303341179108109059950541712207737379747750303681258203099584411948679998579401117139332423952627036199270637724170339781113332382715682773420147905472616543401932267144218019610533705026333742731904551879487134852498626682222111113189144557622104228983473903499812597781108090131864256708891036742980304913636514213249820339892382623311457754007631638251268666848503158411111411558864267907213460409221705074598247207024552431403520119565313924583310091425363495878979074393713659709552725556666007024202839100745946246631307454467511305993777512041192805564972915123491505532781022986430608405376440989174443107699871727600381516344286065218306921009179927941709319362942477458068173353359701759893286031485320156876979156521241896700403095917277570816030186945971407998244363332875431922140735996952626830385659584520895655497781013274539434086438652695414066042052501513083780866457299749256903761709300281616225031870030327371448605125164072390070088238239068114739958043555903512412218232982743667778903853858623918147815883532581378931913051647239015905150073292582746204289143926675349521549429240927856129414258693729514689314270544422700093241610933444781762618884916441692560813590775794473862060159240401206337499895425291163409524485314231824745868679213510269662875170521064607847049746661545188141510351673498157830888050629025247278491328835858571968770316330097553904904884566448974688882484225042274107690691547824158619851842195790945913926945539349707417082601299136137293319908996124476112702770438892717017234886176319636850246720826698760848197526515117846839743308317260487854030332942786443609114897628797413020336753926893185945801618329179440100958324980587506458366412769529285982657703330062345826549555323166532305637373512195284921489639294238105955982270927599730329947375056874498728129347026066244776158346661704916269757179758724292911418797507487821715334199745268055732256003141704634220318975782077302373862469785041650979758445271645852204355139759287529508954652280662696943449901488020041811864203977422040427026695544603299092549594352025279648873458005434584684945297535391583792911305703761773663375795239771087393379547332118548790619268542240083953610368778991522104521065020038005180834770931615105441297268508996642282464489776423231947675602438097694631001688776057256798936928008650248744676082454595750132838100012297473056539991376611276067858345129580303840502530416631173982221137922074743939663003407049607643288219873398773338028597936098215354655910072431709715706097105968688690664790679515081011519705136357516361120759637386375738584999837864530579030443943012950410974378372747321582107022267675703966141860877443969096247776142982681257255182073821062914291792898257797002330749298885823539931935639425268061948642067083324510468170670405542134187651641921977618868029589218724367391297929670217002604707954075998806965382947068262947500799209178054501087213183671030214034123993988674101404729131764442090801109198035244321133365358285271828432623672503700241162594822559744880831760673701548562891186654465504563052137790450573281851201979665409430270049744632546121224141128329366437940321984479276656109271707635594012205535902446730707378406810891604840226316131653788226130623476493228155229195223409251839601714955706253393019190674597189900776543585394537305708587673393775225561887590862665572607148136026843048094633781089487053325334693152865228184850150399380033663878973389341128843457735233219997625754387619478290608410492317086979272668565017717845357601444068717168690095280680343189335630427097277870650886333372970310015932022324797004101814946764613369688447909453611490174462989749323003758025319176955052416250065528426114373076226542082682213459467537033662184218165664434775720963001368851514596794720360121393994632611454144468275264866158675668160232392170474512570134865906164308600588556879208478336062463041958464174708303366065330053420620428368631888832426681603517521400746402690075876108947946351508449596170005018277089668242632747552939134464826875600962762224250729627218837874695585396808698731268923748126981350128702594852987093853722712995055630159371662858218865916052074038057260330451319721679291477186756305293557276882390292266219730580487311401175308133892170118618011733725143663530875657342089417048072193359887479736426861987941028542129529410436548061666466560953506812679860837723426852206158774774504544085972412357281362939502487721322918144746035282409050040101773662698641702181670351818974670512042796054366627945217494148564864034233759590549060136096930916841062916367946892321891209127401951706180387212284307087960773113725441306054172989950548378827727046663864191137798869740632776799960810327556562870906770161485811851671525572067310925943266024855593887184124304225616774615108389728834242258914850508472905176061899777583007065652520847408208842173373910767398114880773332201658891141005158542238840636728656725089712885038452940316291883714453787866130540009170501111547185436355831033207211981334858631153423601920293718304352616908440195500481450658937687152384712418582070564413530487420515614512086668096886553647307014517115558399645835678003490949039327445144117799163796310338254450612672966298207689283473834827563761713839607939250893828751938890837424828395334225664013005888776657917835977404067075017710871939114578468254250012110401156781381295662572551091764603659677805799613086282001150125167924849476048498842037333939543468668590235457523095407381530411675919196403395008232212122031948582192443475529337530173935181814669205300676835498326089762673603011784585548752703073220035324122391029670664816719559254532213478249740250027027480599816837621411818338760834879258098138151661604146420807520205374549580130513552975387831795560660953452750289995284305259958631497799031259959268523867599757644136022576047065119871932352626491081301935915996762477542005468332913608093323184530910326642695702736368861586841986355898696621612636942346269870652951646036590889776309436953289214971802597126310791986342343368337985427815924375361059523136767058842514726866925962255623338825444915338951480780353160096236272362629321093838121344292596168977607129610965328581263856352840691870726909508719908487588059768061543438498330786223732995053859544652872580091738482163952476186691942844092020325285863597342736521084177924065337699487091904006536284002657991027808588169428112419867803212676611908212068769439025689831855029507358136283325881329349787561199657064770323354601359330157371869985275952788401552313044666467007044570167374730294477842583797133957981023419274301141663356310472002062303466720043473633620918607406379387410837798372659102262266281668368174614508881058679402091696237070267227078556702466966215235923248906556541142321653001230668315813709501175164974741770771047867114423127030825964970280652309726522595350260937603204641810401282570297152909966301797287496716078187386434604365603126009130801990559134496982430598104481214223239198832330517487617761060380242248693360782698348799053187120193656571881137988285470003661803376461641808005621106566571354457380355721627020669870665961163026692813351285972342273474043550450301843661570597586025918972971762937820758515214366300584413754353015287363863937559202494019912296147831205339020402152495716237517713920740481216320695616878374406751427661181935704092622544281257244674793566990224000161627935699977379362229328899510966718814725472447442332450832816113588506261778134752263774166893067961890698173854262071168345202086617225540215131520301426153635292417624887240193843284703145335685532116346032411910969004980661636537048300440101181291865610897469806955769191358515559383379158906798187857369687334916653170293483274482623496789367134407267722684084039078504473370916901619483417492844768576605582389499762665707260959172810261123708822042404896741798176105971216524341898769732540518357639068967524643049459814039960198336818628217058607337201469935697285000231851541357699941300289798454638720609259916567500425745577213855821606623818818432608559086488423057729024583754833271946592218906082255771930310244284508802380411824587454595405991187938986652434677760671624111861001010409073491303067136969073215943484812974545321465061611701587079237826776752243663566391919604273126428902144018734759285470742567034499691767523359847813886556570589998331860123461503647593817115860385697047892499359044412797604188982091303483302149530678261969030240608250991840949624111714750193668254719668444733985153038785005110697902006497353545593857570788333676889246110793462714441980272903059667094654269466800036557248250538537265700346455298437548560576643654846895919870325550908590937420980486241309926743237286356117618097163687365885258754292899868407066740913105233311691390175906117790840555041040973012675087716768600432640471731730874894457953682806516682884188097638768775167722540150700393369379883713582313675501585287524033755398687094783975615794630852599146212072385609522922010241942264365500964372816212365929564921203419310855804805792520705609707331100361087257336551244363974172687751532206542256393391424987919220299243040151353261830425163982175998799403271770630652960196594660331660919322521397851742027560453282255800911070557016085197780657101431630121188091255806498603094804914667610772074550263450695615815328307044196446264440197895304167380833292384654515372513331684033152563896589471100879881182953236468004613394537670149121770428219428285050662218846305088040978357011532665491625524952638509627579674947577160349234735962801761556267439062330347004453811940952869755093858067970266114568484484630899149431515248817802441697409989060390843944185025304735724693730561618537934068829460142540221142337313972408574494586237761932255185568911036463768407051600360614064357081184779777040599564120010460141300089078808937759529574504765503905318359914685455407570254194453588172823021718408734015606594770669821729663865913212771651925166629124216002608240455641818282420715559304141284792123814859514483996567150576460271361040734548881707227180083296814012039662237524091762593050119645743753899286461890218741075016941551730748796555794341221340186194571111414514347679110508738584379543228146239251032152517806102200298506117151152292468440623367092708922645324107817862349300203648615299307013684697050663695876213038719184967362628612877313530772131662208880690117845223199493653227244317747904408052101242682827577605768520721103235336355173322284658538557907259299765849786886901193452927464227525558504878241741596277439272695086300373919723243280964233209858067469745511572367038795593244575845312260023956451863424137001098615026519509650127633382819673659764355940000898370507219226837562534245796421520814153814035283423274574528218865399845402774412225452294226541450102462883885257064639199041273858637472377197018166150155930655258040244909298244953501327780953256426342626343279899516866922969197876946230763821342879185340166382658613898105566506740106342082853947818002045364226967901634799177968142697019624314183701793323920820696391145686534357517893702466426959525960065432609160427090327733412487937622089785456943184741943451062039746655514720561706101946122268668159690483839429043099283167735414442937221925763921777923422377339714848818191016998201827862113181284536326398438621565509677653198854178318558674158239004305345117073737286728018823354578530695996778806741796430097938413254054481238083190305865408515322785423135428374235375872168823632205507065270649525135696367521210463206418432239356377952099896545472001696835107430770193988419787070947694987486420085547074572670602171274095669266543143833776902401314278999775677872417957135722306063230523856351476313255726446759773377698628417509403393812169214267356386462354340206694306350751394027442889765823700307564930106573451869821269475788504119196136104609343164407415337439577243588525650231378094754319577305451878520720986386116227304334532958754748551273383279722191850350478718978842492871068961821089941715867761208380151618886514540012858597164630136449651605514938227928344490837674328198921142910431061110868692165527920798201649329374581342150765511878489276738254879351178323516112085517841083762117528150078518547781860767942864148432332331910972668500329341289140458582044315576107787857625774238384899315723739598381106078124677863585568996527368845240942528704596435920760579346684324145325596356248748821179120818397034784641754929142248619881698358368191292319024071712957000768746334505854605361897413652911487487882667012766317504121007203157810889243766403677309117553090409281711961362105392341387334225937678768526257135122434134824492437863318852768275374310490354455242143571369313856402904000656993625368177991878558718447307705825297435057486641270846544260384727445331835298489368389889780828901862307448404708449085284940303943429554638527408547590152688160003747725228117811611574237139819507406741753431841463505443424383574519248611580880039606683439401908987378192440400219832284520765154792113692550747874165836602422185462194643077515218613558151988754046355176140959054373857005250135809390485967216202160698441615690787716840681274143766140911181396310855991516614810795445153249599213668254996327123735625684147454143123120604881956549350282357979943767775718356659006902041799336909172824104906231327124424941601428516096280779063603833584141992709154227684258177499221993057258032595123771201299442484070122796867944473418067925826579349589147678883789154409326316567006088947310932561056198803086054865208774564545247485353154050111681242847495790437215941553943670290712577865368975422894964011618502443713140843463035435806477212711435043136254843866092436155003196510855005090715833704150255688910245840041819335202521244984571676792556822180232663962315709645890796869949413734326211814954738978562488217201055827898453333313654848945088878567519040445959265319521581192448981135290221345503835659827193694931765657818676004700773169181645503419476677438018159033309930256659566680601025092653011515016062246861638971930902143214170400219145772685840786520972216809806340340974308690729882230975195198310029861267048908177882768775796117833022329018460019071608747684231522405077436077933069971420826618840794046925806327424727504156574254671472330996260395728653859055288800591122257746897621928238904065552137197494522321276833845155145768466112776688207883475885860064886573576316527556999411910834661445618670681274946339286427366151155891224086859707892700750339421987583653597343004106955922676103553305993105917631279351162971407960650125329361940136650630794157005021118804358149453379132085873254843046365963575445347023689576407547704415571493176867930227775311988218483730191178628930694011158935995127482991205306812955192982493827214779554101294437734517564251171652621616699918583564687464935792409772455133280236293667570990769785251422664119119358543450137409607937600508655283422806572647802204206130795169963953324761662289154668469409691451525256341542697672709654289236696840319253509490673845090202972431809123127018255195138346002937882176207767661470179105698709532770660030841618105920658748656005148395218482499254325485613250858519743641707255380319640692807156322132217334545187661557552639031833939656842002946070111912900374032234397670106259189549411081661777562192162312113709031397199510930006010300715333345290159788935879859588478418005253796008798347110926578754895419075386106622018995978954059343787394706384236767750218336928872866052783454452202405805711362960075974665197771111263096946950342384651053143366709511076068629058782907882208713346420036439036633298098850085133781496316618857710806631255804432420769864751221658236162083468148414083152527539605062706669652630190259384874403412660635747377192472521516522939406695524534224812999183265659442375912055988200472864204206707422287275907409713982157237963214549916729673080286486448406832219033684902698992971020092041186578702517859183575055270334768877563858546273960750997614740057219289818296672620120311458260815855382692225101382561102542944306796243640089978100544006780213427670764254992593671010228467486622594117529405166755581862694175059399711537675399665098330161573697092270055730969595564927238518257578755341788875263978855596462447492326407482162854233803633594937489952680601675414219788350902373105768750328191825905212533184931830610070220267858052785156302432419555393856571133062252246234147971144793257899373626522022284579923034601177104157440941246819729500291141398676155035259981948073523915452858111822298181564944792756355332235062904962376021888577294081893514505639433389353397765545634086655528265813600081646333452544948450595556670516310770887250520662602256057362921445167472113886016916293005420512420641555527240194558735950975262553372909389990752880852423425526878962326127453557578081715309102459635355394814762771969164198426111827588625890580436615487562068163743408004760016441984380293734146828677717616041428541260642564158093743961591292427136313673177612445899338591777306113329884665524574828349252311945870699891238106008382022702659856257633391903367294000126429069966838423817943612746986659318961904532222329360316632960149436871828093274304915238932256255191114730075314812880720642684222698113618552015447980876010728760945026924945406148795259778098636006966910137781412349002068691983892641537672255176874951520401488303120411302022780645964589480587137799676887349391870379821439167206459086965189722569169850999031020309665736330187721579107878142644572561741158418587769963563529157661151716117556191214637721380113652263627127850352145333065842404271934657080561805642862699883193272737246850808063725345867743143564713432991361084587114567017680602415639874524038583363793983563393494459503071442769421392165933515161002806826001862171080275899091634546246022698586717454231097729730601950455750212178667292686336651258071050500174721336920726980719277906330129190334291822013011713020686124637361536176394805561122679035959983458207368030321560508366401669154640260872605066519849075749621296331192046086424701059966275204067990852111188739395262221717183945674358436625025940756778745520688317702101822639289293331994618955621433939875377741823349077638559935400871935321557810634349264692166801973069587793471722254480791181111963926392764800123517725719274788305783971136690606455254331919032228919360954971843249100904540662729238502740563383854859018826814943584364584398026261111617176584281609795765250678761179511632399263517003261953415092975005534048866409658351916597949193508634882192615981448436924375455651122041948055268230753324769740884727787435452359272108804052625835368689199319844609897160844674263673591680055284786340626912717217317175606167717146347556161980788439031135847771642605104747457663614383208549936721974573997978665227750353980618914088883859093213743752720336230257877956104729285638608513091577846496000873633392031048977816919904548372115769326147221016937339567708656913761110869153278354055689486050710822954248091805580809585284066735287814803865380214664675714389654758086043451295539355130958693211086299311106058399394249657601065749524026449463655244424073059903652849089666480404679455176056890276317171918768727725748903365671778563823216530569212911505032641281573270750113835519789309408910748803426109088274141371194091230943716786961363607247765710462348615040606854704645771878916603821401434750973053691031108440796955045623775381198275521595213650187756339707354395801204719660195128825105450331730516216341090518192260525546312264355322592957475728820016262708082360424445903581361990459604491675403755372720618198899951477716149327607979993540532317930374352758499542681718721374730002593356153619211112926163891621846956695620335649705965093323716885518784203330418075030665055606251741605052623316640919252238258870955218902881295750521711655979171308253404608433079774654768816669196814476897328483917921776776427103215174524479507358807632890541673160318119261024170038177565961182565415251809679876026163430172783703279617329250813470476548576560590107276735213854598276892987332975832994468536565991927202723128419689666325935947726672235001137195026467308449262860959852620522409521822359200314706982697792667225042365592919249205435035444239094088057620105046530926977313494108572799763801130492797398655841989887658332015933439610468750796352017847298731730440842726696584060961805465465631930250501495988840192508559631880923328014730387912919579582510129204377653347410891807580724712724027616662968626222223166070448752292147150714615960773351238272166915455272913078876136704003344771052077005942899727117736591924299132120809706489631255884391194426424834555020727461522672099256445652834679899490660341741368476155773134407346980037980421412267132037246532107321735737604919320627556467665490391302868997801527791202724751053292459552739864206624529571800868091573355539701965129310048323147041350494293596511826572404982044313975670314705370985061314615599154596790803820633271127053976438946130683352466915676444805847905318562649578393545468362970975088640725578236692990650812706432076742539043688571381094074585565967418113481026729780128765977058162672845756159328126606457532869835675416943733517186915449429803953280956253296717647427841921710549638534142832198621486189526791483040045423024372446249427695881885130478794805150924022184727268743260289620485985683180743752148629099213391399218069538074436347110623021020239908016642831219790393108898902868127744913987781601236963493538379048337388616497398864240856403886001217356037125663028241932844139371526035502553650068469137995125330157088169317619805957660961132814536248638143747081376099733927934071387102183560443794655957632108597263805611317386277996186628281065800063606056696516050027546320006428383399004706861062158978013591870802388375768955791117132702187191386124460922850946621788009123566467142528458131688323343861702634545310635732686171417326825210992719583249078323219289804851229823033793785926972269319589503335412606776368451920279901129435132900852589604906134817684612448185863452673249441239503370242895528566745576377654831303915449072417446990333489630103269608512640536887822212146215219423825090781889402643536751568910448856832921283602581574800998458320548765308408242561350893597229603185883885803835818566441215386708767601248310104630844744321880144790933674746884478564148174459091245398103230088592063710156358756516430959611273964015861769781314087950737142883177604366898196264134750069719405651950455051677423979401968998625278900852374458073288670697417739635725450609854234567898520425073228607094202639484182866925660616654440720457756839393231226540781247831666880180301842250452005355186868485055845308525384975426120579430535330807477508264960885294455727850034413955893793350511840302252987061629150596422599960058564895723365317986913669699442786657891252568462604147981108656855717390721330789331085259033331137185877287034926279027156732916866271667490819931825831668328285001575707801611931692219315147549377551598046540928399910949374201037170856086058817854490057041041360404351376424689981526806092554011234653295043491805374773561666671046929830956789203164820639317392212484055120347806321113168133732240632164554155882378460919427380885028383123622665497443005580998982995742584323537642986314656350552835604770907574732826367704396309792346562979493445664139608514643713039321367742124709044527215406879215426306425972602920189946552981151426126049007638671417302357272768390415597234506666938664605882920124711441788317822348215338918760583632761818194332276955531125819048475174629056200134689964407161982320543471846110205113155509302268251074919901496081785626051088590365847451503763849151340003295163991062192405572830081035217619796168322139816924083576395562116571261121929050871632552585586496166382541935914821818761959232920569955063764581826855752211527870118029943354674153627620774978540541333031363354236824101084647637490638852798414900764646976485400947963589549754614481376369705916356998368119875250547930693532075707667801484477014247162419081668224900742071118648815477289171865359677653957993350334272821460541696496009847069795855926430428703636647130713147823306115764199132224206460998988307626858360555274099047846761076042417842150628517557352999647862552954283674298706645794337580101407402116186144843297657442634285287047785563083096314352787830419450197029465757777328167468580874539316039372533158992805794346314087358608617788263349277461511849116551306818467136773488233410851364039479392088768863363394613823583447940815696109142938773471389342377361910964605642444747790820760496602713561689541064448321365980829389097296189121183429149061638963861069375208953468839833444671898212434780723874074576975545074368467471350248588183996655681963445288119418331726368250506118649003941255205745712036035578025141904352671837219213848299058032246958424323158984432510396544353505354322921674704077861468485976255744615351188003143056995492784716745449726976128393325183819722232836070752278129281301065694126294873063426883733818174217060864754827639424239140275321804295190341163517046980742335155605785756245099925320178749963664047347703898558730650760387099773184312810989789882085435595509432539023718952168202334424557257530787926339855090164559423733966252233516487505895569421729724489599882508923211203479589415465460303787861759157166139886932687374968473054965329378214756481057938082853005324470805065692942234001095934829461453907889066162640215013073533003319207456372637707709993999228862122432488020626348508885303601072343689013606427581425283987859491799796112196379757651924521867096088092137111977500087815930430729344883930957574159241375285977797291893453850508038319867745900251865791723708085741642971538078840607130686803619824197157747638950725346840456919275953193722370222901558006560760473854735990447799674874996976942713766869553319512533776409858709668386326392616494560868414037456842071940595070174303546918215090046649399855174138938519757312156826162286223188109672974760601302833119371611408747270676255856777511995666748615196491297019331808499410961813929649278936090212535443327375064260624299412032736255824417498345094730945343661590728416319368307571979806823153573715557181612215678793642501388711702327555577930226678580319993081083057630765233205074001393909580790163771762925928376487479017727412567819055556218050487674699114083997791937654232062337471732470336976335792589151526031561403332127284919441843715069655208754245059895678796130331164628399634646042209010610577945815130927562832084531584652001027797235612923012605863536011649209902587455521403969791153402241589813245057229232332131045392469983661127509161341877972271870257744736124388514083465932031248728192989830756892399493819598321885103228754680176531265348959379946441039256716271373765670976190037824177952641403477592636637423901248853818378590472910469319889215610792471433275600029017186285425139634004575898174665552114607079932283996193649114731212691945301467755623261882254742174925939881766761512788887829790775534351121708399018834522332196903474657945509447689207579306911954669008259571716759263187037589166388932888941845380700295318809848102997242480925591550439382798086201698320576363102564886837333675568675751472233937863999270437059938350588590556051836547971443132215953828793278294890967017460767160108037280410348481522656564863648428245411048994130152708936078824806301180992691498515905410255747870215367884778425517346863577233343834064175890144702018804220184060001250792873534368375279693390587583068899000986676275660627135899542946930880709000058236957793021108867524302635878255120563115819373842312741680228519325223995892981844804455795800753843563554453054923787125405638142343649250391762278734712421891968913826306731028522009679086457117716531202213996237431344790855045029007333499184252611096876138081628885801127188341154174941363451388680889567822705813438505214804376938599252578850067847093399732629602951076683755523081557048444813758213270991881704028121932722609107605374893567056325226489607815143554977384885571753483164646216519304208951078062789549490832143789737583340053558953425457371180856230185443410941852895513095759677695824021819543455445476524714266831898042366841672405864288065331048692161272550541092444862842360466663966876147105844227261274811965288811515010480668263347806452906218068056551796298381892871506926703423108833602202568832303517003217643956163405051042571225816099315475191043626338758855092048451506724838755449447928555786325977466367276246557645720319428334042103036158833933844201467867233277984922209152052247727510877973604183486583336431402763969391070723796763877080890754603191915200788416149577637354864681844110384241658239699368228164036303887816483214327153419525007551571752929863369367387669458325165191195465783936460223407898671238770886661104613626409576399196556202962257718226596229118176771739432738524884463626361256484220692998405099676566648012269769258631488877954900601384942462986568705249080143013828833620818097308846341463202287814457468375675939892992920904464825996561395926284077104199213925418262167430242564805735355031812607552950681624626571955565519346874759336717787958808496385713012993667026002902050282544011011431866847185798966085185495002791174005549660444491775609721231613832797595286816514606061650704910013295507759074803446445817922573888494673311069873740862773007551043643143223828402864289328146284941294516466682725709916396716860304098896168069906151005010157355140939459901853359350306116480868589949545536606822008646665467731919478415409872106957103210711443502372237590898186666870002784068161374415068300474704099988121015108507287685914153301632210585397382620030377981993254477255381930506775275294360694554874566703892928357599870603110753542296686789766352654948475149787023745325355515173837887571126709044885899490953019297247245015141602225347270911954692283452897738670849450731650048552463079998593758709276604725212645303134109242273645706176663764018635010131098558835785722345662789021745479660642561550687104323243317465089827413759393279514596662462631060695623382417335314957896678394140232357276877148742499852158783565171772625661272236516285216287859651365442974751712256087432584779557584810016953652394345942507621428498531844629621706395990477654710754714511824504465055839588367152006868604747683409009363862744133893515465048157994441498003952636712805496773779901381076747632564945824463028590739407007186227896154902883272081773653153812106351373863454338856975538711323607892409952743598767851293074233631417475457610754371017370518718029117596564006858306889791904400320542338097796934370412775504842123495715391056192839838075047507552554858915512975463425428051095809803904104562357300278373896590245082101715834045199062439300561020243183301065722461358859726421462332629935897949997998495497456330726186027040255198976954328697568114102694346410103040569145649549302325195907391424103852774180281241157484916825961480110088633340600972125340137378807147108482643552978717524130359717451374126395244665242250182381153256186443503028193687010515709590163506258885608650419110926648805283600197148485235034894368224801635175602794139878180975894463004014506535380369455779263708249993054025452210069419526613918364306194048777119275938581850798470680776630099907568296889455463304582170040817840947808940834029721137139622882961616518961851649416136812717359499449290179615187331515292647675294606074097945941738119841721595103442863695869237796757507184025299910766398837664823207338998624373533147175425516695999357842946222267548956769987388220242216321467884439617525111080710777248806218867936510606900027175998874184650753130175036043120382780790880828116951856129138528441792145628605961431353725785397142326297509841625285671159802649215352667458803873918522600841027544562170980641615814433117525769185303106714094377655211810055973596666208753308872247916949865246485523551219596632236549209533208057033511662731410248240307470712760066379169780275237448478923007439482047204360195822769007904309654658811948643937207699778546846542645047253566591660361688710908417973658791335665229114280432442681375020653571221973637796122865657686886710735514325729122697598417745955219980002460011047067788729849107363465360707033770156698594353310579828190379562164226428784659171455865359157196016347543981343776443753318165489698397800119782763230773284443241450932082125217156412560540057366149951624320346826076787219396436171374198224725794421479759128386518786054802194677264926078141701617648704799472184964104895684069512896288654567042232789397033309317982483926570753537607649085267763734377127179813927869671132570696222468195339362590127422453053814413659304024468942940082227463307395618481273362849103278568503529113857682364025710722088804476696300283570300099249317638529503040891974222916479855621675706765271566277929393073197164350161379526078950593975829357323522152170001083511847520516552612252398681713741624750663669906448392181270675003916197799863182111995102271529717880534254402403218681445841237518569837216991371313447737389099288241195380017062698568341250488659304320900394089434524322030583580470529996559043916429736426987214042931290490155232759585079026924576650964150077746848788861704548692155283160495584075280709206351516163215005936551763960499003647964612208651030928404157585499795513711879933862378464486513829252783422659330777777409901951620925693199486239082620378177076270395519382517805871177373807442427394332659212813639453830045530241794156313993461019136366510171401971559957080242384213032622150843776061149268857000457471976624789196003033337255286599430941995045068628529491066948331721842211575503911838996558840478611988559209112272014410152048492217905716718051413712068841204639329611254851079119766890098819283794481546699603552349238862598453622964567159401034525960659822860818423458561047179308549724754067842845888437046397390657732628674036839411395958626334584670452887386396995747536153069294478508831484490122250033867761215228669276036667648605685294178850907963593635505155859145033715607740384501724299099092154097167385540493793038354751997544384834825057178808193400935603524433271696972718392493528236756415718768617525956448315004015529638599980258865198301267524468688563375029696607064225895322834517272933868628163262676806383774736275175945942721663947030039766401894372109747299818511869073562403623746104619580853778966448425396131213846404254640404416565511248793453873036647247463303329726226590097489850168092654525366625714882203428213949135500286910918194285977284724352637273678166297843380428320952792145735723800117071875934898789361081781082105501271225088779286866007489915022862970270618390063038326733133856955457044835905535006073970508371569906758475542021749950886834266477115690008778536015924828721502800970107035830540448559738822768090651693050500780275232162529352912474752407741910301893630337123412118508395086588464645022854127341171453462900907441530050258548275864455299612783377820262398171179081529830770958125345331789775507333982392025633707423610130906791210259990301090292558485974424059497659496303278991596353095688328944778855521806091650109117826832206745246332162598470111109814165930627549779817339407057306426374732149242150864233364072067230489746425045554412735626905903460673935454809255664445463499394773610936258326309101234672694973922162878639365351127970726437728394526594432783474785793394022415137354830317649723053268105568879122938858791786460947031726915556038022807738689010299192733597570237819253912636590167062708605978846650859979733593489264703828656508617669537410436868066083254932046531767873309803196105124027993095308647018668860334715583241589604167053544755260907027876866091375958715446316303454377260619509032650010283020457613004682936480599776195003461676389707506268823560672529489122021972920151602586839393067798383190120463208858447772167892726691340172422803485589473613412235435785298350778500581227341470057291249348474541893757692640197410481880106686381540631825223057821533843977228642331814586417022770180270656758967571195543994596082426547035760996582665469639557450244464034970404943399246680686030156441368014468922052006551537323935498526613377532417793277910899993124246662631797973886882496904246847319303479303613333057903892161675242105383096782123705745996510809114238941942835122074455289227775861366334964628724906110523919228399476700843091331288543189531744973406314656907912895779859753148636835924751814786469670860712552141101647167743224216370170738164145678731601302082130024035242168838866431337306896776441963480090421996827895553824745576848506936825381244907519972537983081528825164674561198808675221898432543513800691967163871429874620095727206770266541314332855902759660517280741213240680505662991244534392205991120376566614179819580142872032388291436823122242179930580066781978716466051064896231168829573829757174745883437316140661310661562989854302814804592529775979267025607324988158770817834894144661704795514098345447440219945655914181995137859862215627791347462188309949064037585705987059851635405322730900762454175627511180991504690368571677330192270436393864836392794587336632247968642510546741422361870958732997013231989208097034536332864790074516010864163909061983845715537196178811262001317865681152124660042745415077684840612227934399275950383384014606927593065019144274897846996990027805466881637628234475639270096296349610666796377423297289126734219893814436609558891554592133295518557513383114221330719992675676569204177086297646875509260100263459421217046383837104220406656165492776667448336812883122917922995076806476025186263854246578491902321309398033352504291129781105388216065344595258270184649702060322815186762980475922946452387025705736079467289559859250989994587049862048258770166735788949028933017111394529706449161259606830064521139028466966397548174082155063774185535531035946598144059441287574633857873546721529785119841140288464952314211169225528032493792158274744375689277910798590824171380051421707955504031689778008682141831828203151550105581128891847599555566509841834835835226553309602229831546634878571085969832499288584879533947940232465870232451152746308576613237310945875440271205371986634496285314422745863797345861726295824819713451316896663758546762469995628520022544899353113183700404626296472969277275589313524934187029517411456786388044176408194619877961093164602818149119755379328084307384636377212199678120608756829950037768353239031163667899416356520569987581084303452434886310603301245329249692525326357058844863137793522396668514161566180888227170765336276758760512319597384699373032226553550204399123180689404582700299830573784058823374958420950176926334499691632741402541907638501064325254668832517899071873471958604821874378368342879006557719639457727047104722500493577163190407727868876276980188712551264270443156890707366069219609019969747552629803960983165898378922248536387758194159731806857325329250404402203436958195255984435397199285102655562383535078466639371097712807442535049804570252137869210024421906798291142267720949351282707837587202989007747192470418589828002476266576592610723484405629126966477256224463823124263432945940518832379016652361877805835103722403593880237798635017450784389661937843712377512134437630891826046180853826316524945579600377890938315275606351373826946579851855582227082419557765618601066521618000936612921040838391380894779490365988921185163511825834168990767062183698522655321927594200760157952962982932969866826916333700645629010683010339776220481223983806658978787307073748912376466979148883892406243348374797083693480196316149424609199035418080809844076492451563318134879482224021950473159936631599648829726164554070240362275462816330123302289859221830504049652006508779753525534509935645463076830044196004868499061833883641465734644676805947286339198696294769952224527296021653312118403543664758270058498711984141934909616341449430710732743149287178508554296015855355077949175363671629912432716370466491458338515539003303527433063289058639902531570976795307459977366485243453062933103932703915456057281693337251044713033853527074313225296036408756169744405456625200784215318802447158257671794444367223753577401623489472674009435098253067856321275609574196136543383872014652461468129843773498065867578796512330904080136301555308230248027931289591430430922777834473548152770971305835154473677120161192471696127809488511158602722648831297588738794177877924955687036461840173227611252601841145318185966215523443251806829302752253779144710090663034934540008137405368565409185768693607060773238811316741482014741034739077501785716359913012120738945366626193077228429294733441503594299015508122521888713945211947135995824936285013846534029190449588498685858028611045426887489260831909084390097603187395356053436027816831907656532798265894054352763021472794153930625893891607737489303184176926965632105185056688883037210197442561862339380455355904366473767712688932348057510204088622462151919692642348300547945701769453382424835020200226613589543881374506553933591322527185242640599351354813554689023800967994305748637026118049119837088883914827043623845823060657379535353910377338476972734006285156617536525371210399768433116290910059871971103025737319922307166815615723121147447923486050071999756704710496711437236158370175559821799530202388599860982509522294248367605256432760058787859353816309239737103541557078653345118066145870344649559161097303152504497895399984274830795906818826468047392875647788447061216445185180801691762247294330407259394253118979076922324427222949501281612758575988902723981820144796798385380437090931902891324494165572341988130576703758641613899443424224264877186367014317916369893573091349057673956733004520583936873057111366349826274397571395861466797138842049294995397897376193681744559272493976827535354797512182452925732421748277136518854807902338328808232916881708836732386671438828566289438857481295461702302880729999182094607745714896762466932494004492282151151518682905057420082102743609547819595108571470386562400591566709322350305889255209318786528083271709442372499917681379798289688126565037777362206224758568689109175947628654344603579137233545291658529270398311638983639230492055376322299664349274922629687399983442769336339582436344429736195035295669721798652087376173073092627289413855769581948055220598159027387493217120507387548879424079507150538587422763794716008794386922506136955056996829395855657831574582102200957984252870859817709918178651670972656719630409069311599512906462085542013765257872177953142808888328632624301972998545180561805845169788781595470329752739627292335223419242778056537016277281612121799781199577889454892644239046762394058108773947403031409654311227761095303849883042525521281829794765437951876900780586935016500583211507587639270393059453751138495194208116300820913369348061702025525756622974208136310409439567027642093133197101662736131616985546989553603828904952500825686988929060551027889485860876495069443683122089935294956757519765888173857109910788934352309818132724170904905781065417998428398772658024424873108121837959363271161996186527914945081055173621499774083701085666951345165077157885953809728566352157330358140637258504402699398579048079816014033374714627431167128705986400159324370721623817656046802601351509323325236021322277033660992284441277243533665992684896584936317302066274513169449964052766606666943454842231448121466228599436571584217476215335595882168791599126155228836357216673879779361707418545862548096035838844454635153788219846869552151111521708681359241122887416506060853382881131530858453812043306790789117519700466707651200284231314358559895875119918171279882051211596721401410771575775308036882422893400965517697439246008514917471688836705998719789164725451275108713122420100053506168725387718958627727765584316990896936349615590067745440758260161723788594586989339237695216214128523116086891744231497774816405552723319823457120639346736618729238488351079513814927695809122790328318737633691528256830868790178191479488906017791880596388088162091224742316596139081848455427267965907699014762341443128259070578598506122334054909018915004067266090813761435318607263184915173052065150803692715285315138907694600923724529188772724564401249923490922693966521872025235939583746178792684963972492872572564267278327486989882374297714253425413542346022102160319700742340293826008618935566573590972263958362079249034452659533423355923559999539512820322804564557617566121781948898829681434712928319133792865711552163826025516809048850014020215505047701798712862721848083976634119573580142343979595637004282589044254336178377526527418820221060132291386365058199526099629760013173133217556313223921480920726614137384964442594402902213691132054431740592192507481699975948527988798017757138377744044895492788306747687528821517117486168099208220322848904529371279041929109400489148675171610342681441000975601293512358085532565185642520745776658114101167645364940167938799340112840486517547402478796431629087834813793705739942327554087122968721122928991364354127997921261440862831654873840860335736704648629100656936525045380946205149035826753556821245889631607404636203262746135181523331191785708475816497769058746369180682858050841140068366679130627765229011978331217321386522565500410662350658073685810392833017400658796268320733457039769812645454919314526207494620980018428053091983664262073217177854144409829229369102811575198444608690050417525548336307667015929739560209334978479673112433540791640492766403315359020874460768426690703079181220486526160791971612994550824837877392796477282686265809288844482278937515134736620403392721960895814863162814180176953292049292587133057162678029814668101814699794466109569438359959799761003428890218850979846953149743955023988556675887522317208575985848466534079268357516523763130387622402497177891167497302544236998154074973462447493933606008475004761886043353183416927678421310097938129933312771875697814578829702158416621300048810196099837187650559414836449137519305393657026428052685360549753653029833627231897063639805603542171775345299402573092997057418579977702272830636415457502108386936267639091494150896453423370514649686778038016564478359407789116607589268563719989851078229016656121638329043277306644652907484779409251877096761792582464727062583115199247718068930934267082190061636572975989030274357119061299368220860502190924762615170222525421594431015343242284316500505359242094855756251036476895296248344779230505813010848214700899275682606965513633422285541088150587837206137634841383988534033071789719484150769577481661916670270387233731690564715440497169655174136676226619576715866497902038824410618283958710882426537304133441415740775473148068773847898970843631231795987898286228867657317755309642192129469728383372811129269767647646182309180791707825702068005001998640485822847862274274706528887935080677833719219381777012913048577781632572554148661994628447898723528201299467529255574390105600560803802265806126552995362274865847396998527225205154317473817386547241859529813529535655059399945168239419565359937043128652962913068506126146643616770435520842714291360702898299431418579724307879226417851651874988508572843848460604859096187728842608519457759000360610313835459508733409722603660756205178348473953965186686028700035831794189680814313811043178181284358940736247735171333473743170325427874289581730210662480147221249960473997951800351210068680496664055771278372022285574557893194452054904615967220160217931822618141630334272658445800140924337659314093787531568026246732542212100875713816808717985098313078796550982731552259279809527277328682306404592000859661992499475524986554323478430959785859896046554032990118992470385879168118400998738819438651648715425371098580475583922941422448476166246894896155209136202897523632750743783530373862752708627411252684407330537088451495912747464177678639776366950634354526073969113984741589264808160474888829218063358015525802267628350989930692132692962909360283259390913764659520340749948353089062528897101824283272399954209818606405203498494388071970225178795773161718658512537230476229372131928019574292794809411159191665296218604836972734781990485667484262454979044399685702795241417891301176350986658970246543844749738481145709307687075860164340112169026740155105640187968401803775402535873379573291248534899748648737130156157936970374912688629903815650626875543371097258737923885733657119881464882196052805100642796439332022479389420943424710047938504295048376579386809332819034813221299899232436857082571371159929381214527404030479645753659895375376534709146781124711955475292451229999348494316109855915335226523562508154166050579172366021630730864826421654863698565872609880902075223622428521300197539667002251378930483103766823120423746365044372047519695663524493827242915547082614653042084308585548263589025193248328995390635508314785330500805697783754856526167597414353527775718493684759257771454443243658094773173344152871900599389503293224939289868807188992453596334923183394883168463372162561248692988547323304872861941987376653608802651278307677318110393484576653896070125089889500801809343497091445670901372337495567033123496808479456805012954592977864819035697465641541972145985367811213837859705314916403102437742139984340051720082628686956774450553290322959296059965984555245347554631476516619714934983068785513618260371663646821842101149222719697066439432427610432714701324970381010818520283068775070823702882953863677442379769805958848320526129446965988947602706022957624666726264324334638638042636912552457227236944903261041435529562691217892358013700407847973781925922006930385070279013974107801421342720442777935720631761652808900321066789515443384789371269546280308647521997251450403464344298970892119990277432222612715474234944473714284553098187416541189421704252304671196178208328862466908855558347938671498425667866268406759304211617347127445136897120965950787955484251364882850847324518224499481791889014890643141250658800338551720042459873754033628848301027515076377214335953391046892248047412085170920939248281612140114883932084998465946524873357615781977518952967920856906697711228540958310945645688094464522191429549361355222768565116530291166234191314842386535610643598551531483300846357400433311914930788457793594522189117038023271457020971327116620015214843716195892767180601879956128827367769183049593978608290557335904023875122048545493959274602553247429589670890650503824643496111324858246306646651800600924325034306283692203352872825191027830011149146718415886253468345921869385928224035653178925733755006881107136177272104275048092888606650080357390422945008233846942227801977399485664453582000916408849073749294816352387912310199927693003160022139087146827003540257081459199111792791800129353513780343011581797776782660522582577316552917601981099238441967664682368145726177362784627572192315970521777160703619237590129803224074187431121387673993967380280780212799124656767789100567221586411628548809316169021626310072458007276358171048402571057283321611950601043568094250370703106216398699487649683104051473562242292612395872859322546169281216581833373789115355781701281398703819476488951914039285785666762823459021961134753631777640218345944471621382391383955134755441614802021793953896658050706716060762642015777033387792765121735296098765083096757731553589894309021893038175958448802302209932721614205810180446843969722796999515224155836178448231912510196505039146446769319709692839030392217162365422772493105391941596442627288787402568835178024090780027058544445108345178156067688299995350356556714713276370643871671474011089051150526248802818527508128858134772351421590324290723012285459639107444301386857093846552793566265150399318136715460939891279888211361528458353326632194661350013740790772226406725454338131491405602429628530773178300776625519000189067475461530885467773378605415014857990091651161627591608329908392450909497961962106890930444662414683710121313496290646628272498104358840317337458597299553992955127203209319666711788060306920526039056713689004764395557985662036321773629557698583925172274396554520685508003817698313259928231102848226299337681939504248194031225407583158758423102735622714023680870291241887312951304159995067568782756555490185431286875744796578651788433463550160989443307083156532092140342956336996778557356110027872222317184690572255757165182250539067268636062062638519753594623800568067069261526893838836002650849697795802220258546020996144118328328933766678750964116241998561914387109518032044716730076206054699577892480989537959616637598039882287292965818157555057915428077295208631081749262143358653556001713982649583243783067073747839201990101090984896290758735414478504100533569166897120082727897282805339366492643026103079414859677692044816738092327294630679755006096918509268661595182846497511177420967827913216151976844148705793487227979968400858443294040800326396888953121309128825468140775437358185981848944505073073147778773396073361523709409140711035990965329922245926320952469919563277271843476782459236652004403480155763490296037585837866088478277517737269286424926955215437205817578651621784692506949279525697098403614126647718910688059451333227734085252575526045570370858577107363512648664541328861459168472191386193904526556354427306787387010527362989915934609767156934646548582020616630460967683470103849366599699650318037305911022203130715659307529828443730602193239536980623381114817614229651841991838101913351337097091933985786580130075468907817930546167798250313859070366951906610527068852636679641828445780765730189437161628098433696277516962513573017523208556260391169571440897434903865014383554082638803931855029028944902875554441419167599477103844997500977588067277803148715272200384298639347782060738162428633812461518053599448337315037479234388425403650531920650406619440716557802103201078188353997812515052308646019615861050441563843822156361391479216004172128574236051064315474968766427829912042587413293666591167296493338225989314584696302427648159461776350204313298936091111511885949169892251062648502404453773523358434554238770633868960206989432507310421942144798561855426817054114067651400864884521633857363452404344113557361378697539738182235776357329901757836907199911394849118532698023673860718992017011336214212652618728515288247663623957904827233494583937877150378927128229074470990963264042248597084794923820146875211002911506719784237809877131367574032694361820955897756792973545855700029281734940036871114791074856791075113845903341889713141934353700204923707084052737923910001748467636032923976425409953092252498412107670028710333937809852548442119891241712600399259806142120153755862708052477476955411752069073042914795239322774189986074342913356454191557025947872927044496353602380128408542686427545843416686220130409341009590221300922449128734524497345407877740406003900731232396098341036482454507506396956324005182103029469178200935397819443324785480942857797900247193533436609938317666258988722796017532153780643669635939729511254813247605983941405084452602396778769025668305800747468116271682317943570487266134927997268688773851880936436254655119577335569364702941660868101884969768206783264588643953649340263407028031230790914466057787584364161537950756567802406041274700392010648431482162071371793563362213749746929504668811554641465305096607910734145870610242313252554637010565477773011031850500866145983906862901347759391925791226790755001003954284926602572714309720941485165915552803701788751367449277691667457368013102043913632244918375917683414323612772067505595197201565667951228997365768949034373830783818150707034487777316751746188597767611349016083794109764436436218280305376953192274785565562060887133149812147643239667694809215387314794408040097743049555435542913952120799307140972287669249736096785168672128447188283451368352362264521898623275081839110462572342038754477168487608287821580082491818190404237718940639543007118198538654478263696317425635210966590404522352759613907705733059109868018470061507798409221544074928314094669401515192030302653455830712026683705072652614298223103580480008512649502473077119855815974693975203460682418184662574064482560305141678869345110618634926532256718986050633544312002956531554697614213183641424944926829575737169077844447552747420055974326034666976317574959221467233054834275333420902169192002808671338181517651346727246785601808728069857930625163918159007340191781263377206294372175843484347385673764543549367644520210551964132041909034751090895590107339268507689928187673365901832859960770042196116153198923086688415649287322393919336877586319575388282868802432229285749062834698800318009782112783464473699430685892744593514603315540521613239180496028511094200920068108609671137169901631124957773356288814757767513379750010214828424349713144822155569448244251296517310052829330007596880320269714714305579972727024023845566932003093361534001346388226512858496049433741365136201759095500768872572379083996778771043278323618218079288644512985704722945918876390177410162154925294434044663345537960358152590844827165047142106494943390564029671203957889365208587356863848564038234012473264701575682856267631489490964863708780377365370562286324227491995329680995376011765735607066889623340654736346287530174001382893356965641419762442738806532005593571952599294161918250088559429804935625623475763876753250261768105102943789482800381819094016333853621848244778575211141902001157221548910141265746234094097604780590246929152237692070215043086599849769077258465120054623089267304423083990985283617980874882165175013947688392195961973835219025378292184274002679949868355047798670887434934877884263491135774173793789638032664121660878640151026693538539291175867539820704545400991554809940555947716302278268228819966911992077727685690042564453424661594551912469849409179713127670812163558797375505469539602019928916868690131678225326998283118811765205171314240303103619077034486006857690712568299122922890416514184354122151892709261911827890720386472989028312449637167226226079470589077301515792370665053773557367854297496141283239810725678054477845503338025822999006143290065674581131383706209334513827288509510058942843640093475258261534815493433343923202784019063406103988220724008595714547856363144277093578186468700313831150603202390138193673836582311063194235113752201259302216465067723953674010834607247360600187323359572596742577925778753474648474385583366726330579751806279481741545535766324556219906771543654287627692118653976305541667727371184712556819537429878906123197797682381322310360998711074411637782453415559306946528706451437145182554817093867458862259971932002201256794770803457553406855939564711660394975509368907409141140819867403429730897759319547758494032028359252836868265601285379341592958176034283466192813273600986109862053251020303654389147669581456125870528514765790448331263261261275475967370613929464344655023985634990690441716812977931560454244781181516843239973310249040861202320352625994551380919943942422644207306699422302078757372113453978409189295271883651511577284335650728339632667272773655271277835109606488349161116597296477072833978817620710642369653585760001786133457424747164675479560557604315992115996171053100007893120312916592118145597736321281310088459968596515479915967334820692572586944651048409016072543037947937439924948170354084929482716739353879309189149105940273882575634426740292043612971969003553202780746012997015167764566166086620650983149065183990813403657892330777427579288817853974784253456215948516899256315416653804608619375766101159282719162654984599284413809179093450289446222698746062369124910222676356984624729875553051228077306038272314767273339236971473182746508235706493645857416506527528033657588500186798302233361530748567770189621522377728078662970997138460124564113933535231144394136311364125063031705754638671649219177818188727804998651429623692032897521320441645948231116515680709360182325747196151283981182450028573594113668993630028651970864349680158377378960707340501711029221909942356787598529910642197942528880715982685438973651019956985537134356344844499948066238711559832680009139129230521345318710933406054852880528023480091981952064083701465298058753408827757824197190966845092572735422915973394209667721622675032838016836701268327087718197447113416474042333643324178455751429177479553973263018478223787511033467842821574771997718724907884569287855914978807215276216777487839372594667697466283646364324636870088891169603064008013321225544033259905510759601301217827216735090870830367828069535618798243249758543158370245511038222955269283087687897247615175634507109322670487519583543893267268520625106523486429896817851280346257186736577340840303172544172060562613289306744282270727818969513042713693386732530835043523622680664723620365359551522004610868541956015009851807742491375204290318837390768814511063319459431968016034238314294701177907339951880518632249363303737428987666395573004912311542547445635751228217960314931921755362155975173541771496270578666609166040129420641332056019879886479191028082572373344097806550004676084659077213277620485344288730641075216358008586042833817269955428440736006869980254634660144658650587017966628011375048195127464755134410941297544400517363615053233195614027633605043714849935500979339657556934728358078932701517616687071678505215157824221181977230596102718022113760557756508224510733940623404403522459232467132972924729590596607658491677679758175455500629289709458071169846248333631850495054136032446037122523002840366443270502682929121298013258704855451849166937175611706931575295002611807299804573870328033446422407624565753091061177342684363974742384207824933961324358878511433221439680160135550669500491595007129524097148418320524054713082666000289406977374674792357783279567686618221831164536152981043236739652109901286166797655130483366709558198145730160957319527868897617949738664731125813687331982562667229155559341762250892788702151915522317201257618794622116819631251126015128786659330839972870209589444425483857813403467475295709847983486791009529393177067779595282935586933838928401788831265834018207413113059012317875493132600386474392184202431142502717934449849109538269804121337806395730645594985291207547945343378821860367816869162464018601760989508005757040007613617583726869278889401279370879168731321041767492748146988683866933742989452900095322620623439557090365005347022096836720699559919206962310396834888855246790686617100250522735631931622916480153383634406669330611916306523322209677175050766526506928945267104663596291397570417951995407638592691435297273926525858349226001281210594341546090490896668448353479476740184091693440821121437575991844978935887981199988378104395450582209265478153024192434287549661529872752062512421645652414433769982120575773976979255452979275548311022227497804116723290650593640701326838116937117861709365336114661791958895816380085858227273146398812507431885930628540477252197325520103315021122179520602902261508148427987160887715683048894626628110875165719315803483791380475609981192779258193816013463820567615791947688858111977946573731371412896940425858642608461356780363809590304941436012976511086995327556982120044158668042851351485946280094502680282789078366103133193981570053235773709828419626117546312776400179255663368868410146625787264487540176093362492442105565222772843270865638145258939894095286299449126389851502639968925280789714373052711703482878632549311351468566743745502638079331233890987581997446383546982888408867958361478572004108178195267273630793701973161108035513307543426319758326623125873440471849275378555505659744347641467171749341623139966841084072883691239929036817624897833842304924086916049333585720849523415746389995902555929846484168530920932239450099842609353650712961038293914178384059673601317690142192294468824770343309980382663330910761357953567031620320156529942633836389917031552967101157171386605381110987649809142253221211885497858375452673543597066911907582773427165708311055881578202657719055716555229917225925199417118207127471635220224166932627204294585007602675155722364500253579838951440306567087689640251984362047673669476247213222076489353185298134830566157261004674616090217820368092789803584434628331615296800144294383434813251494447836469971094300627871751901583054975268249706681967084240041532931426707243910919269016602701227549972625900669589063641020196803150521418400014612813151431704629289361260451399255636599087035111822170092048786834138155836860001022139317162938175161481422045439766128328489548792451489203915346873564127793802822945618826470036726138100729222789243834143289121957615846825889532244491262372104309959217485693600393072875597764359278257219585173289203289373649695654810015209406770758433196108019191526970359449728205424099217747948855101892579673832190733955438482190213913546103957287564147009796204801679031823271129616918837055865294232028211967775211030427824285323075765857525501803872772311951540730843007100420922318378952510609510146744802307784143329653969117485526374925018136516701659813169341969516820963864880921930027649289087855906578223221964400442443845503444471502714727566153260498437996491046373298777309466552416081745527731188401660816921694723561545945639842474351310735621151612254696731133754720321066639057395945458357889811186178324261238258387629483664197843693455941473887456954555106879533894113498798990599543328825651993184489233911989102422072732503304780443482482631679538318812345364320343976941067634205074027762099250441628598738008542063309404490840874629501180438768199563680977412512147825641458109605463945483538312120741133967096575761170921701569194046703005278833850119606881285436914259105126429379763596380442614466936903741447024098707900609286591456627747370705418470014126066636777256970661853998281839518386935147370302170829143866834918955739571146882248943834768015147317842088430908014658858769187712165641204838346950799106078824258535962968911647995139741902725378504631972160757532992476702013619487991073630985615243470277483287408707462139789750922989475628757311491231819192777775556843021379643624950093850855751306244946161283158063084985942058804578704078785515289719360456282644804687204566172880931465167028752283204657047496845802111981776297074091159420791493023781858413123207558236599809265253524234756986784289710312193378059604896982190750251304431226998315156450957979143815249557321035853507966260643344733981207748446986453521343942991395784011881459016726094688838855923487055032101404672953629067700802205950873829180852655117756318673595463745915845363391393801788926019126055103459350757967533983990829864822423213165178011470479533400954086803420795695416413113135505666117924350822638514865192802958371094626166967342952888209695927144313382761321007621497855663453697598846376520810640392838659143588297104990724241461189967117103467866306169690503731543153385041441444438577519281212082102519526090256985712782919381403014206202610683350398499458356221159155783560795763515299610604051548273336617677383406496856449252423327982642009814218943291734435747866810316302538442076556722190100592807309090078580449191845003829560291915383448907964461571120018222173427521505846427751374514677885234986818302513692382696295177021772692528700944035940577934112915061449475258823639041486185734141833290220129687836159176523990639890991571159559355676459033076816414419845129941860910715526173219470295359256820831108954817488732891594760874594817098888310190065088204222186688229106327370360854471074710804892547330897052307538333384151108973076302032735905789880482107806930863805361885579645761057623018844633724469611597969699932476635084046605920344321714425712773923034115042505708630495725119876770193866370920645610897938154224397738336028622288236479758761741488277700962489510182397714125693022200631359251922488938193736190554035615770084653297526555503049938525731285403824614959879327056558531969324783521876282827748273693948065961564891925347719840553874804427669092596855956020727898300261155209277910428226631010454188865270353166747292907085642544172223309105163560882086109904820627869701036948655891645399219118345402280331042182748410590567150586091536669232563402988633518464432952007768643087419675280937643264326672223112216556883679826461784773799624030049157803060204202615615506942744707751415699612697991889112020018520257531724731667342763016248578103288925588957286530967032275530583655334625146189699577629252114532121101739056503886949727673609383610760161600140322746096019444999594979560584505532465867268155161409925883559627385207077637152976810910648347980716144087277808789726535124904062481660472197728303827874893466324517286119254819946483638414932048962869598306068733566963690589365710036075371832280900465003332549451895453049904322120188516364217673353380493698898351079242738823401116782204369273267897176289052900722793913491300733621360460004716889166283482916451595575378539270614526965115028268661827758959898122661607881751724267012794003829724580908863980581200684691912473047962433350282049942906298689379734617033549819695545939434973471194757379757075609834103180496921651060009701890479059375973618113106497769154523557929449927850465326579260730807671345765865029635193009323862107225338768892375712210477835546187503180074726798105326172855576086282078706151858108607723302186836796716173007939855760038996928378655583021998119832697537073423903902551709537909981777451373543552410778301137715106908354935724496520163885696393828331150882836185011203512192635905462087400913420032908867884573358610322762654808555613827089977500553907338886543813407467982328583622007743023980791242463509493662347447637899454502049465865105148224418487140692473393504624165585734481743992819138230905721084882235926205995688996691483769193218487552882331045688426971807906897206412011258948396415953155910514040006134863689803300410077913718736229031809775080956859244043436542169929572517284190594443274133733954296303223783073191515300708542264445331886577340752773309300815301756510387598561132664967427779404125526454470266616909283631440646666445902424986897093042461375318074737655449457221896255431147366833366548611261949045173029357556767198284129574480585791471023826373544252707415472746759206753801335471842434058662892762390587031503691069578792215619529661735942596696087819400570044851976149808011313579686529299257307266080513163138433750866201826705026616170517489695807454139305366056428978373583107420825718157625642257394885586541942455333270836021679960477083195772348994613032988672401373815618146417419933582888125851851003573452380690084108851670384822597573358453759824332273371242637479071738265872435383217590548414039161349076412225854213741249284502344357782756293092404829217883259182158683915637578199336078132879823246441195326615476687337967421828214959111641482203206918073268749665647622017097835879227910058900894528715294738250934507139575906656369185873619981668003303308835942704547691295638675516641353685466468387281941524493238032135422770561273637768633001546553312177703061099449178162875941496620821749616891458140940100518841373683179775869161117376998183347548193343643897230466831619894091319344376712833005846268148660546073888294840353873975531902316135889033380330667378964181470192799027197674610146874678869227203102321637603678745198691400258791080025354503894916511851771879389960831446516405330895280875936215283363953482102878891934889816847121236441834836446929587826327112171675866817153075038601574967774510518809579132627923144462344961654210483434273916666511035444005134621391553046515006260739649020444665202414534646435187022672381915311989880688501310767966553500410383254183728688876509101986164700418730683014524064726127579026058693559451741036556030457056138221153316701990330358072390729231061218346168799095108155640903626023777930601251270365781828636981457266704987548870075077545896346760198384475584940469478412057822410457990133039112200637541437280099548379449079438695655528395435630072145167325684883669565640421615071142293602449007836280825724600793049452868598881978278076451731617513416052208717279647128293473188181485575352150425326558054469241310282081249746390190130106208424047402697337939310848383378581825080267219049125423944940865558698557089928353255747252044089318335726941045794638663495824240152999669616295760947058092692691833853641895791798437251934688851501035193131233006973567883201641609609375599781905134278846895044381392358949001307570675107382178849969474636104245658180542313581365134325040581167835026770301018417413988676146347671414178542565749132051248201226906896357960270163212891659104007383230877986462249902610391651924041798479296129014418848985782125235002195382505140434477396055467593383174140940994102654097605237006698261434020749502113687327164411246734564863786437193093229333928546973857484350573781499362266905313731758394375432403764197910050284485247747586528521594286946386079297224622805428644210294825978155123651488392854201050433849070133767904495820654612373141701726919984050286910053277743495746375278631317740030946526196169365526691378634132857811686346986445968824637437536206203243297676495139497815447749011706860734137987524744966582977900728098950003532950081035461558161613653054067782629403695568104819395225624204232904313035343812731884229211218497338488080293489185929606219918089852558758895045564074917504054481701335071389702036643511703034177845566286171572618308757598640529788258389693746161834363756511220684927438610688544093117677876604395786884846480346071543195389209187630145428628519212293199392095296030135583554952919585652426092253008596756367177901700844571391144313843100591576816750945810971046966000926250269900150969918699594665902472841035483788233222167208179380742011904339404774259207419318773749680461933090555489289297708222957632005400372717388364947431208985433923502109279158029573701222607082746086411747813641207884302948260065528145650326770273572224742108321901408449937697167398966420857148455973993020255201375227919616847688187287458154432379061124298220048334159679612584812052493812019234890009912129201683308959841087188558486771164536532182453655469963180200326776799924683682771542964390450933301733302016217819286366157171159940567089513898345339961863939706385945282106949066340750610427091309861673000159096157673025016682884261527323750266320844863921490521780705427626415987513939402330880934131950442690653526130339849628439841428332796169141335502767220160899263902674258756209539193601205046492861721777760655962753742168222146790958800567414347251586012178567866128396878666544409837388466154594613138961394355448455434038873399298528783634274810253752492061152645830623541728855023202862278248207258484440550875513270616752701509826185636600132325348177165802903681818009995109008071915302638510584809258324694548989723996546412321640092142681919007093962221186460332412149119166836259444076962355884143927805753643920530705846574316291035178552825881779642021477748156838234255650019990707530429547653902111560969392280410162474907353317099459163742920415458888251533395394580610474393326620155783207376805627912451239039872550793706766315108318053071957479392370250025465363971094169792129443088852320426421051707588022327005911736986490814799936134747277603590522697704012168576618749998022067609317483057344841308601388447314869705006468091940256971076836315553242551683545280065448929387357356764948601682859754109565227203848735121244503115316277121710583696565009618729318033699170200103526468534925074328475974536720474205703594513375110438395920981904270213077713064487687895444301430706672015821907028003495863515099282457670410349559746569594337109460411680740298361030358924023753533279060843264313868059430291605488748157620322862700927676884957363875443384608736909628371011476528369696788361064971755249923205409809829954674257917733373833220867748679553702694504219511559724435074234080913377388065913375258354580037835633561429589962220863886895030063237994659182869451775275505241411493026449779251463171195132901694667886857387143076151150602315586419168995764298117279059642720729449815024751872583786121090151874340198810069918189948238336383776797392393717580273020353143438103277004474158532202747765909392836254198835531207176054842343533926360074774221110614475622658163890580306151229457902057812554820173207166266360568660822238516258135048370947211753163437023975765980890608303129697375996347105457778690916754269596346251155276745388431146688588730504007344460432648005002950514940864498283129277439915995400687823606950298240128128370750736792238928359533944834579758059774284422128596547610785733229557244099430835367494392338288486622031542655344494560424009573700531938111555830277175332842579744532426053472232405170976539884733578557062420200754294099663874703860543903858148458714878046060838650894533222890305056772975829537361751079657918812441832907927327851648596678416724764654826337618933882305002968560631721506435206713106793181166632163062717813478069720504062961732869950063558339136829102057847035735318240847536820564494865299717341050353557346193503592503733059467040929468846882937002726873898885009395028665534661061177258150720426958319827024129511765297983874266253555728527755480232186391198490384410451544041866277274377878264838529439145709103322523294658802677119283397716793881967231212781151737920783684901152002823737595936561735058953249679113881621427595821021903091093491655510145277498967175841641679321215975084986915885489220856161178322865957559064625464738164997665219395039295062768766413519690371461988991168765310468034382466046307939019705681879984938153064842513583138859358923208965942008365924230846275860152729796894547596007010193605191387369670586590173801080905543716750636595435174653552300835695358480623583137862509900733983295462395847353305303445541899353841802943973303492046651424351948598641348934361020809102972088818887769727728928404317433831821761566841549933663312644049024041015297187265301253525147804975446472659113944230912532892079097213583098177798281781494412256886982041667646139534129765264026296721225391800301662812422951980500647501614628512495439657051177899486279613944840933617545715818997556037030802785379430325050136395047331973736629411215648170075085604448063151370635525842917661867122293019906463030530604614870045053589268623825031704972989879577293342354619880496333913777270181455009149670336230841243854099838437058124810202575655064799835513041239879654896918885092161603176649276021408037550570763898946059239330234075655057130529136705772531668751249089206273884384575781350275478911356707143515272896217240232369110756599544180271884369807386498513015479548147269348827267501891510823586373981701327990929181795064546989251525643677204864417693538207044072161853368710929570192136982065517692056799030216271620519365280393875939251741015433650983032552460301277808718825568316113321180096712950950406093249625527610069241754897401277327025221713905391595015566103649787776968101057764559521700428283695602959350067044565051583193307301765656968529995261016603910686549989271297329940236564775733036006308147991374574073992411323591712313625731473211574161098199324679811756500515982740435462996086677391717707348221041435134620234549567225931909178679115387006904030756850629350570878229471670915620090830970455568886240475047996516810904222308238889320914674912863834605940828033378659131908394010682979486147590988016553652029872509824040719673766566234906676812466894779463711296757551923210664343740870001036994854598528103521547204603684422910519967014787867830926713914252234816196229038326683928660582251217374803113786973560447404407025952819839523203798329004466598041393841254742880521114270387139156391989841177160830933829527297587622241447688852098866461237350010842119852686288634305000614163334600712982720474326125347195211911812612593026218709925441222727081812946060687888787732861961753370662788037087022258166533099328016114767048013006569852771958729457270684774805530381810347054250330021015755132978864811191129616907252415500287732148904812945086865530478656758783990938090833160588000405847229856266302058853903119377734348131304924636646815975583608696350253786073078028308002782218058118889701978152687291729997324563566964723387989642643189062366467398778349328248713761253106111330630099794270442219666112410377729946358810406976595426015206337374199510555803939999401356327638893669116205795131452572711266243633422990100254689093765047839042295505094259871500757969095390508672551726184863664277155360481255744431419815457700758535241515326488880461400690381868707207587684824285940202492564149546868065463029815711285285334295236312337279148583675819981074608558780374987922462487551687448706772959662670988740424556482972939687135845612312791647132078806287708566941946513019120533056032078877789644151577442395379793283783939873701586104359816211423182073703190901617186109849767131833784373920628896342308709302298126462262719632795907822563976147309615741997631773509210512696145704989958377921807099865872882483398480964740455613796745741176360055310437363491560101350353710990685916765719113963493888277751466045375479403691770206414271535614373705500837731487210798980810767460010489608707693572219010973989790363481512113745640877762799639338243824341729237189919732164926465522279293574481247460590826621566691837670053266721713211669955826578590027553343316214098789524492406720380830403406828331548958264190712142713578726502354033952141149439711816034018866732483155516786735328237599838219957252064370391890178535765835047645029612349277391651789475440109749633046492293808309889727325518467230846021752929288377880776937390669448882953273823048019182423611740854253311914793154896959236116217361348960977554625760217144505228388471996009160306371032111236802838366872629113322911670070783031956048871543720057429449277558680493212331937094998298897967023215299343769827963777310681527991973818973983562070559732648872236103301140201288772875533441597404185493239638862809433105492815579051948959762149843580817277596006895739106353111256954744058326527829477709233979987193382946270553844854186033446238309364171997968554455820067469377535066160790818621740598475045537183358054434508956716723248000628147154299445900441165727130404278064792478772781947607588496543145867522472081515179144973393508238099549433463492646007221919896295845079651072010060263553395549612945389411337618870150523818062491494470727319484493808608886128129291413951837603697870801652609945177507899632438196753316882138895035649930891943139982264799380536287135140262656034716687814132735591482076491922673439201445883964520432952901601920121452951335556607827437237971148167418205941149705828071622991509778704249068113867585250876838587541179338707699635673986605812311562286106560204579956818767472078783844483669997786346113806849495841377776446615156752697508865490808781478146820937648056386988152069345339413610203699879825554605364406795432814863098764826267694201170655399641915237334512532182177217137834163487847308426830639041446037703079011027961974513549197031668165314632703936318645170197458653621390018103047789786464537680221952989743619035144676324011891343827640678528636817235160160484519284576305353418504181736940841885594285409436406948747289349949838700846339983883965482871495944060391978846870452443872908511373294892843233642223283138299750352425427147819429839120789501091164690923915996260293673761088631952547790206839419192582059361204284605602119512016893158452935776704796209523358198271706562371908533537283484753452579839854730346083744753079629602477773234022697606853882176841708016830379463051683223445156755222917051534514342681911002632835319373757588685557992478246232574811249440199991274027442925761475189681462264265988099509879193445099492237249293378661465514460617395027143227993297848758448331929364469587216728253723788684457153966056641531071195164209217134169315941572378623056294751276376723081971525605760234826784384015616424998783640321271664533020578669919142300859187932376402887286465609714611289457963485586031379451401811457405325648535055952501432737967904178816969481391164347890901567416078746244476772496416340746414401633245848036321138786737137471537935896200126880796394249321062817958812119647124724078644617803634039459335493798242792899211439704026421305024684803201924459882005081877516490264509270033346483832381749284439073814534862181040585843707742263867178660080559479739111328870917748663453677485609577160350923237540303068467881798210421474314372511312927444174097683377437359308171078766153199399065236108424897895407331675187722962743084300059981493269447195666565614969536461584348612429408721646277040452236270589135747119365288500480817210936528915503298279867451230179520174720591497470516380196608992905342127926073548265179662157441444494072389171759628019672343522840149668084655870264452541233165274578458854590145281970372118502801008971257552891686705923394324713681302052580037300445189215455439697986772602606366581717934223301432979483975106974243260817477929329239455466140030707808797042411612311092813010001474609529107204114705889357090265528373157285669995111976940298606264052736062217256010598583566711503325057594906777562682784074292552313555533064352578146630069757121552768755175569499907292154673803690809635614655486922008748465972738437557911364554099439253483189612290525987790216667302638075101008893085207841432903515928160694433853608222730660830890113169859030280654023162886232073291753284194532187594205909719247461807460846351580553921777778685817713180900685271758181757142619546740194582209533319358093647411126599534127271946852678165294610212478562386274484447379338519377448966253009976233752231592025486556060593710347438541781239582287104600220695332429244482499544563498700286302459796880221433603346745304384539351417240895181150894694201619725075170990768106139513669241211329748599592346266288571878689751873150382777861952146269318284324312122230587016804426951011273229863810958138692242811752727395246272776775502180882021602751999659238136593493758839485024655406579617654249724570013399229197112273820085920845945195048513885571515191494549351769632530192856944472219388750872583693912914675809575807948536273617337134439084669214886493982674775995260088258821664194262619301691062823437368473906700909181276543919702706386863506340771091777216945708715199149573680921962652024317406744739831782148894735493124509300136919145032681042026521092767945254661413097940916453815417366479861336663334118090776675208938849478955849721878934221443937471629579921624809730561602603136085661044003359123038478580230741280199657487528041842940804214671428049246486471615534734480073984988177181094347383701227222552909126126591232187710210935886136960371047141018117389970845883826472016047475769243033882288004013455840428317756452761524099746936969152354534678950389853525036319120098069603354267511273039559276311565221081223762500178741045406832021137668267472038841852986803553109878783897562720067642395417637648097092288312907719475718671413646598652824130461261483406182276000835070501715578265660752331222890514252224069589857094078730972653643793193594607607644834461736641910401115956854757901755784765940276183863145589646608901681420812247265113423925585736543927826097356536922420129440266182188695417224700695935045490970942051866900676168946533708136822316677836807377873275676668075315835911196418537531734418070060550680199649197319099828618224839488590349172345080528799981704137031400123844033496910522611555342743208101358743829168093106061059588161797729074795656471736366154357046992313131956326419097134300593404733115190424818895784177094814433312924282325872555783973268512526626365950188507431682437732163097915953712374211251951463783130399122116398464789766993004536603554381415286507593066485804864123277408394140241530282842631498219655395586802776878246625296789588752024658439309958178182893651022233992055827013593368020611139172256812090940839439018291718864252208537288902534587984370643374398714998623940855239841755430722958212250983060263444905477443214846747126751348939588454455063646289295654563467254595774993462964166224601084767557580496486063866689473455746069336831560328584611198027225581890951099253035562042574740676224381272044012941347230349847000761470100072992271364361007821814937460740116269325419029717801598448714483195193041664719244015280904631025375310675896593891220782018065538359031070418738563998267374399328933597905761630324356147740399926034896137978956329753516249656427646373944540621923760807859136632883820029293822100822179561607772367087211562877966016751562931714759559285391553976857916094413898512417683395515720224925168127519884740939870441386167954886122424460328735453262455044546797757621800616930522188764810137964000175908312452973044557066388946490906765307135848030806347248223959872687459229142740496037228172454030647994290032199388850948376362208230751120289942376059851574583118428317651234768761198275769324160803852917336395930221924517215687445544974491036192639516963747164017346118551266121695791513923120153163803092774895576531749664404767892752160481733963310085239025163966337662607934291192041122506537261778755964790013745977986232335396887794576871779979602180955291581233188538399831361406465334609535689488244814833769870785377182447866619805009085093790502186353282074876580876663407038002677001395876355661758588746095615150787864437489425955564534874904997528831858905803155265961539875598519945074213669718231982227990703837165644907526537767841613020446976753181025729049635981024296343340758693053532503882829700806448263077860150670426402101179283980237279169153858599333994609020569094291330978981580399673169137471191708544415020621161284579285972471535127354908388018086019371763187374720982788683559611262321758751407360371158761338943742390747060631020607395545992532308224043850645093736642168740471190722349628125891457626931417858308534578680935825759677515811020142556710191650134286606889146178986591338191689625487610052717553792469779495983001515882095606435944795687265247147830002105080076591905069136871066027573936819623874636960365356180448792336711963610964435903677803869756987000661286009089727637841706810110238783275095560498634378250407293987110124190626811847588717782195756687163910962856131148513102629880184454839835633463698589616016388324516438337739925175615382141925383092847275741793531579740607724898543424384382453558773880643684364349620462208568177084296982344020471191361813682215677312033531619454105452989155496844754005958920530570270812362643770963471195042811363387804742941401066271871766461434009954206703556133362732534488319425223526646097517871676225283332817134241991129225961654139185467587469789606291045609607608698578516400507883618933128926303596731357988113228154701349703213729105691188635274337987464000987190849198108177584248963771314900610871025507363644799082308632208516929107811058224580700980093793034594248034906955497399937641471432924851815748529385711422921498090317786280905847193805156438967231509137891530348471925999580280050799979897682631641806709990832996209575799355791674069664451150549259994834149897951354376443615073878495970237311993240526764724517398259336487915521616198665538804116505671637373740872470375437939036617695192957295460613177618460647502931801875655555033904882550146711297524929604250044693657854970788048904377347860999426121212246912003465728337060868407699173246106978949106646543195068889585206971914268441467130256796909917908161843343953821576359323173590060476018374028271387912311930665217356382552974441855461583761873215681575535943102566846559238320247588359255951566301448338733468028772541151723651806439184542603290062282780037938508686861884600590837105869164944434545650668683317144654694489423491958520481878178581864186652628245115786007000346777967811528108873473070340738091621206231037907068582652638805098960059457151190977987815461985683940224542743719769048248289768868040262432578504078460446484041845351005170187869236198444496122152062906692049137516087297732254199910428180972262403198572191473967501393802967133905374141891311826148783437969387834707191356691280563360167565306831716340211946181202188998478234958154166682407577319765731900329568741580149128223293609928807855328924205287605062011826251197066362795080659757421326269879340926926428884695565957505962325130984536031532306445792555666055739549734918975207884764401952215093377418261105878027766306575323339240415793901200053330746689770490718955358184510673399867614686421760473134074559626643769676892192679088676378709757458562077951038556837810737304860143483249014829257669750989327827179755087313598536537306866016968165132389832157282266174767709782269046759050494659137413863367386395493417601910809384333524884677096548681040709864057500834779190326711629914415764558863978276000403848287428424438614935465158867157312719217620481738577578321941015646812333082742889505193499577296569017803125827128598708198180200186426405294086375940413881854720874887907438357580102215705375121078705356029312117031516024309631319026540753547826878251230520973920926587461039092753300386855055820939189946694708727128946595370113772878351554308450766041871254355100678627041374829158339574500601953400360215643624388818318923400263909244859268150550334726194238998749766926960001209655375782390621057005919784207705057310478568380069315479085201755944173155973470918365810434270916340942240606825712555855011729631042009856670150738541387628608348441090397994900631076865259626287746969497707163288826878287650057276006039939527486837006811516841954237948114406304811626746914327413021918202763722488888668107509182776598933938856876638249141831178001954440842196270702506708338523563651420162928555559700486728259023209876665133554382247699378109797376722404539201626500625597190560021991174937026626367175777192266507145965072522863464184343231710755108558046662172009308028251594362753183029353462788441331527523515948765598879950461703388560950548843052867372861737699961975296634764437923340661402740837229969515103126211310889489954605889054597640607449202764244493424176663134597059558483552492214452671779097213676107943780163081806791999511214238423048865784593722745067786924205554609583938551288172762367611597782177221967898750013013587573508739287901398940274989813430720684379807545845116924599699523722331916193710450582438331040590249500109041803401970778845921387334693937040882422673534240840300240670329462269939954730268339740474361541809274952840091143636789094535270421186875169039736353679517354805524154348042084408537214783558442547830136586110624022181461429241785740767995081970706117957561276067887544131610270263438217200097407301583442169789981382939494169673169341228114321636030496792746132475579155579694021374014121014941669639824526596040634928206453504647636752650014126074889187717428147440309912327048053987892043958763581439558165031706258549070785585852476596980944377729430859086793424810835008669903592920983951145721635325977770360111295714112364880167865862596993460543949803340337085715063709721466063603537922418283198257700460923594800076036476209820480170159679881611749306859917101713685832571420639446628811469461234880220282746655244079793620852325581796660182270165549299191417764516474311294484426024877814784096721509108082398571495452558797572746625102777292551904872907517964705249288180336154540526443809432452388250910224093705695156079544652302386742972727211115233776276444407765625444383312501724145785367188586573996312241813276515146767014068507873329258839979072162336953819428321660420301041799946194040259638819256850653598158525182098325029375468855650555339775626524451478472986955707968676055847263878358824468944726006357427797115023184059490597476310077984304595065717526652102412465782688800099437473114128758546504202362794634858293380495477584702333377875030430490929594516445813997128603233413485815261617895030310176485129031827815510720446160089346731009662536582376733680008163365158131687808191169852996413071522980899268514118818784018357754317103704974876077615875614193200776874514068560093480238983908948456609469155729635313084418737547160664006964332103271708352761448030539134972222035194768854347094040970503766337657635495016150922424298577016178951188277243707539790203100313994363178250130091787384236722207235930360785780969007683399598038166933500074819860014129088506928896966351496709122105552840139298845183377472444428045501306850783358421322409090231831129373098932632245099680849036009242879291730843696884086669078188408125090514019741240258436058125375194927987105325169813406417713806613801171934944786112330799372058399951998692382644779528438465981904242719186609814084264991577460582052634846586474461815942453066079114049085966008721605074428258654273115405978677059649905951593129490837609202476781508088791473023641872289221966440433903953959993814896426690223940885982870359710427761530652001864578890458500678491727923885421530289247456968934574042028303292655217760376095226527543486863387172616154212754801841630722279688659702990636357929947788739781976343958374253950205885453044987562887325238154337154332833725790018947208285198206973461454885411186221901120698984995859290712190593874991500662280270813947905380923280399576835856803482898537026288825489985435884695146880531881754409850775628092438211817913627205506094274194043565317087856195471110064890929050504425768613177030675539253323220543388595333620803008062111340845665073695096736477105263081490375688360235557078255101242470586184876719373043024640345099949633737055076217632539481809257045994633793233796373670363930302646190362194861655429502154514273690063029083601646899185842643119364587436381639479062712253075006093187706947299485265027784884678703323007391094821094194482195637064668183397548401371774884845845090246519594583077521084424583277104393853452900273266695568173992041476986801460281653072109922852490355782375033607576981203011736320242897652283292591115556754977411537987521393250477530870077474243872472102164278506283871638032619432376135609869369692374500510805359133077598331477230187517529340755822158265974708890698395848159652117567892458165035666883354503797884062369772680407201121554158196784175005919074693464854596578209480437045758290069096262426304130282074048392244642285052545831563484870407320159499382410502440041096775706839892289125674956900330247610998805847536660567459041717374159725065692011958233214891558409082330616548237934359020327289346596128786845529691741134063226614073812165860233723459173905915701580730071742002311432489745020104318611728654669557683489034331318478627329298031603224073095561132904767460096717781987313166004799195610118432893486935514843449665095873708517947001944570396567160733717524805926067264481610018727551807113125752732704785480353771980712392263203229692000912354735315447339338378052994844776008582475886406543548842527449103741086770249024323776155948000975692165809016863653835092609288682352591275053427456244942157292507295391494678908879641723769718361755615564541453819318783879959296775411046020348017240331405876412258087222204360631404906157988327619114728980025663352650333917461223684312993018290374547961613523204081461763624108624690549949923890336160314577127804758707249981409466634061981230863966024505540568331105279194911722772126061364416969195564379212364118307886798665875625074452658685568184146990184516138488949677403302955077407052620795725202052212425070316615295607435635314327500294186785467827200935167432204894016513687830382205351689595374975869330807072718923564435675833170046110783818195225581437021210675246336878320767451119633747955191289391386259776451649186247337169777209410851521399533625675605603678868825865495861220932682913931506170241954108587744639060796669488597004203457405461194209707854074227828435579539056659294200808078210818153497478844179496583861850499500952296799504041918881098676445225041294017461033355498590769241759257015066870627704090147518341518545827824421683838318252508697343988548835031994059550705434759964122728435446401258494679434586955694594709868219217651163487824578137224224009201934427034798212504814928585269223467143732007966707615229738445206621605783257264786614292417445616670573314507005034065017383042471053580279329844018203549946334240854457327026499247086354802167024352334905305271930360619959959577846629291641727607135950382439145278512184571311600734072991612874386730261447954909791016138922450919074804996927685912002283443125336485401006343497304722572083627537595438111123705719686133851153338398682553506997578200427149492935948179956622254062690042329471388694712435161821021233241312175324769955172281103517897914013775353872927136861756383904970704540031221188046089652664788254916547992239216280590815315434711303750019830615506118039221856111264089351563472858890709228829401965202816446938956039641301910180863710033748824148646803294287687199142774070687477771578048176483529100515731810567892413144189438923226870676065147762069304311477230585595833906011398960534134638293025735832426558550244487652621226022939806525617779015915319880522269284602641457917879166247341657781602893004480838478661998425364434996381239301510586814186476557294835273736739024582043993407411953749481776570798567247857780306764917364134232251095500942703279053088817682691756430588162793746392179174044405413620861870268084594549848708337214862378121458549307257974154998462056417806792044907873099138117705588011913968782988659360702702369540819707150391514498554129139876995668178565653356269775207581581915957594630377347682658907313370161613190786710975725736105318096342886946338802837717248173530548252334139735963409674628602247488439177192984491380750359881395212572264970194847696023273524686439310186333881511393424738342634852603580672702296266435067170602680439132157139295382045310997757200088105934361560411595244992647865696702821632287125563534227319915050469885110105646644135058737390967245651031846285840394481901190154803444128591023778749921744969801462586895202813244634959338549767227392999829783075972482124443051880383191320263440926230520998975595068097138712490657730862921976625526732118282575933988010177866059011780597703052691886243323476234643963842478995779284764297580504566491690499419133605759235967803795624402158630522493298365271663880977286603738615950822241989763323176370731466519631335067079963027725798772253912421386245786787491654752658168161509129210223185717753164760720227976301815449738418361600735519759653870859597539590324629060290937754117655106334683075736506519078052511695382735583096803570748391089547813437905924143976521768111551100397795879671961319947277641521300356248243923892783765968718454846023218647150446999501753576752314906605306682110776357840535191789673317798563145213083633024620616225569604185070793256045965318415217468542640773974771820409952007614523003226089817648345367734021886739800837187063779300267505872399812156438378599494809482230564845221567052450763368956507224041384633230185776861420411556192394692248506925669903645011509767867339478893260665981565549422588593647563374780209553811731798916880473537822637346881236592720415758104413653798731384414075493605731045076505545228165165982564417121112247780084067304828816684387561665085826330172049791776229417835827552020592092937516710946235627131246220389989622932783108773372057205150306860187125571549727918786119067043356905074515462361659999562764826311876699131931112937822089575664055375371491843353565604779696007537561501011430354654476211431354725399153085049185088354217992109892346710107755459069156821692199579116398965135514853248833397502949714249832981642297974253309867278233985057070758277982677551738563143426783240267161105188948183850479437307268848802619378130740620844978452864135585840822679853485364731467927780384483162714594966648772462781803260738128086485392528572458915596811799992021401404806534279637744518720564336933263318818037365471145628325645065165631004619032934683177059245167642418636918184002812889932253404589106906625601045273698654464728254540193510233325684437033179785560193790614518470881373028138778121537980258934511739125492565343190433077425510129672823507193474837243080326866635855402888379535412359263333476896265974817935655420599962184903106756740308416726633462472740594281121206777219769316301378752459376607344204172908334121908798727256630634286858056935904792790376402796627442671248282056581024160868135549421640662351163846046622098173009213501362255251587918230562104541860996727484765445606502552317744258013786108298813279690500054858930190265429265485530813503536842527647951957856974949470510097160909266088264378507055073138222227186202488136108001182207374190121475591202426558065800022649306896139575034856622456345535408525481248447025626234817909735144052817544928668356365776918512647344172368247637070389739122484199771269733429266119537109588449991637898331251775986874272908150093361669624155350761829392917338072044522241864942284616781777404614208068859723926347221833376822462834604028634437112321798021770416358201167961521780436740911891062798154038452740975948872605787896115074630255240414813665013783330027942409972524008009302531018027863190105582816615741112171835699318671448447953622512704805234125459039991730123399929226739649895524772163846220617387644131984159953289044040516401998378978632395769945639259570842479740336030688858518156618607940756214332002372243954586021020178886162541342837073610809493330524284225998038151921469998403034757589022148112433377773461758492754308368104834972583640976744421773102853247683909562945053205194186136989035212501636503389264285242693116202992910360286494131506085658384759581779783237523287406455554374786868363961650079322158066792734274024741515600558381541358232215469184449737940564500947914881100557502030550412272448071151222955950652506078275887230268021205141800667074318165559735842043613422585492800940300440941657580398194328888161750761664263588292490067567004346674018005185183588127437866968943698654366884340235884494313891188048259623134591586754860004620433234247487444744940147826903902126838762649638679047471277539553546992377398867171948424635863575200940534238133999061197160622045129033547966300315945425136980881108910940111346738243809894095215366069635786103631632133762017381708480037324650323700508465850556005966930999989485233917617456472810062374682911002147070625324454703378241619126339419601160043019251072609226446747909443800901991671735348479286068490645672600475377508901255124698458573073301845723300128958259870731979210216087469105448430417136011151113563182814146668906831280445530915469000672904210020707015831025511965229325730141008203589279147285553245541393465882941768130796573587952317369148028627683665756559049049463000059344824015415234927119647369381683565972558141889527327889539234321168642997959216959651307428176473473623547721511885471866997853577071143190518860792684809998777639508857400899068570649641462285875235872799744938756645456716002690539470863161551392428857578129367993983517483552610339059454312539035128957421538677744496384640067040841529088634544750981207150645725811710354230516535384505045183860148772247628499682862252940282770912459500906128938367773252337567393259452790113502871085104777534101102622578236726148521106175979056145566825872871021414973236220883709109761908832942956750012227659111951478475721319487291624250784235063328516760451795880187866489161852693450684594320954111747233260378418193582039241850370516498781324103930748840392422270224833843718536343605333377302294567504120936770679778989345442734982132144998838365667370951218813229130476438898067050173843081135776086253905255576035062070413158890778200113668449992234800704830703339565569717046694424878863246840912760181702061379521512584566411795933435440631033518591344957232593675645476840300714001385620816607916300400762561566873278181776517843293744336453170007604109549184567870059438455534881681768443311722305380909163757069628941979675143272287642633189155086042382175430288078836558708506545096869251910573579145636850385464602653415750777910189855526129162002531819519558494153251318497839498599899353900826758060663563313813240107345169652648325344364938100372080416617691687161644427574611473721492185546034313181845172411684832118663196242332865521588854433738923662477952951954479722935581921953312276511394576486396052227643040357277872885967173633992006226466927357692142395337291738437392416135049722535810659417919219178933355408370488499559098712269405718269576586023617298835042104827768954758687773536153469049197589860760647025654750486053521005491391048898256618090737798373372495115186270737361366899832328574874082090015219455333341110844273888324745245681805411809927958124161900537888092260411849247635599536385240200709108449054042466228704893533266826994629121496487801087914834072966530132236533030119006235946230823036327819497664234058983174022543096573117018054711157021356282528933011205903078185483351353579031824090318750519605356009473188500660691743786067046561470340347951827380052827589655042002764021673419205195765671231173664197531700027767110124953667321671431897461554841932301683839611598577347562613365095567836553573911207785574568304200979668620025894286822500459154182423589315414368502170939418031329070889956853180687745302127235756439293535360457844580239810105352813115483718946019153689748865497852871615218536371009648939022320644379628557456554962087298418321713442038307528406420050943777461291252508960643092598128602464898842249233486074759964372574100658323492315768431807852460225433349505474827734726335586739702587675093497672156162663144043759540733564870377134649628334193071294742692945383854659700216362950748001651389397980272694558685391149561478620788125937698599807573371735000298548152802560203318793353541305873897441228911521177264244200194223831660594538322276030362496160466625995761964734091988920580895902745846199852192093261106784301053054532011914647542762084401764438553654798137252511658644618977634519684082237389889044306119665670394357476807646859753058952225408303315532471029490876864615504825031101522836100743581691440146424964728068820495240149456181420848563176255121038753142009491246930442734303948807307229109397091194007509349601896288504761424574550509813806565246530143991023081531366548469473347263876516006113865444671570750750198776244375454013268994111119003355713387869487132265436589127989730346008317954096599495952377652886869725474604847954048326832680762908991302250828067732582719795769910062578543682447891660063452395365797476712156016183318713501338700399471821648939272893675695883750754969420390225037991573757906975723271072899914403164051798426068537942992925680607768996410142791296479975002381720466248710175833688892946227917342792841874429382506708662901371774955754908044591047985340695518122105515118159930970277298259864542762212555158756211815553698925477407891703215158956513062366238793368519249140682326223002075691012783680085740121009921897833572455780786197097471756122087858094238478242725487668865243513358597428552656914861919603823728873711780043113006058635398858340759679837769853218271937789424944230079226565591316817169367780309789778493097353890443622255666651111935039289738748557939046953742910407659773955426854263241117116055707650405831492727093401780786732697487224684906306225753489081976321310171043271069964418901295833823904500671319990294531057920468624600042190533954240268284069132041432062865764069803300595547590260053309826427006802327887525577436346315124692247223834159601015300834002214453661973435888019584219644415954603201398344188020539941416842731601187180635249134474341225965203045319889171623247512540219956482614363497312683934452049856751419230205114353978499166475430921600481590520793866795357885785196655555178257836263449775361078785449062457161017997104955107952596185229181461896142235901219726259634759833851236384806443157522133798549150262109129173844052081154768403405301692538592835863686521190375113657977956362218266751213141735591822388807301039211673698888172161113641049006158052725149655483209766152564555689271681834214289096383672917758115208305270974720904432126072200085398053204797699256460833859262306084576997329838724821430458488831216490717985973407413135087279229125316695796653375852745273633559533996948019502878141003354291160479572398587939033988333706687843304278413787009503429482674239849030163945923193484729079144079082048410260508099691700690564903115315183723194645662831639309453967062269777469938942692752397682124337256452625520389119603966544030234444338458037679045379992816689991309030298240573176125602827563253916751885981807458344832424642698473975533296481798102304596893591368915319483486976515979707832258443998340513239167932517809960839553849838505993462075559091663823141609185300089090702948333985274499144974602763811941625690346947023007630130844396156500416749233349709248249196531304853987222302866352464873973324250305237065323807672575999186952198092849300971307485944205540088544826657411662853385515227267592560270195609851614500671832000358196191062349628364312715025406101556538466374721473716742268292408836572322468367039654470059367020817857273953044153275847448909522398851496584108016703785714358329522946081732528382490796238449113976651965075502205640540794506986874867931405446300909243683382931536938907521478108110475289641607915133170864295972009565443194347299667131517225323974395430361983351258751309121410384557616873627301433138957532371791714302670426020044546653375617192957239906163480422020218527238704395629184156758239930497503947240136911517480642941648901881196914864691096251014226302075988325897331399824353674861993592180407127754962499894220661263082961286064685733823917972493248134179160876827194095563999514790828318948522937154255609001784369109954501465406336868623951997056516845192324188606128532668934752154032605462551326220395969232216585478387930824515219681881506473159330078423358309602734142468594741088869137209085518098248340042051248801826111845526248559565927432213457171067725770635559702324041091342065176422575691462706129691930351456943972643878161938881184711606466982799656086980162947583865107027931544760147804245158912325307887291504641587327521023091986248153528599014916180637588873437369584127780738104950991935137568005864184619951835406298458306129652984965952795355481727699725931949699396069829506627369687764188065994590530316580292904135804112903676935766362467899970613379713245757859335963404137909390888178336680969502455889501038139571465855359340653450278980552824362055227647540308578901977654914701637993956757679563875294519163701876016423776556900786466964202749764623821901754713553243982004570497689596062151557728504156957257837971178845064309325215157061984811353382152205115331723276191198643895652023063404734883222840220868619523676037436065834351215011838544398711563758953671014411460871398785572384739365710026932283972675322348308955195987766895690410259687336571891442779738553725380838902727615738585031502869606700378593723306142212947914948908928409634272352299535110905787213892350983938098408609928505876716315329457022663284750863299097919473124720502013216278396715409976134964101394283177438084559681604451156891513916236232836937740926630204367047162301804355757466457103106277100725700483872159000215555696565132540558211223380777394928469566859532517425946831791752636908892966355847630585074861993882678207389773959267642292387562942687732270566672591527113317390478875058147307720184417889623179257272982848506818006012163424706334560551500428273133486858190131169234070546061605372807490114722238902623836879909167668792931703323625773272354921456093930552056659290786290185897925212669555969073458642517432460304121538376308039861457777135753880511802118433979380338303897482312733260584287424018389386200482042581772128532709393766364822600963677807180492901956724479205191200157767288377976298328837590377765612158793698108964426496642742956449444424437318668073086169166572408368569628124230295045135476971925988733250635604268934284105592686219286517913415853547975140113910454930691794912261136697196288158070475430033976161355522205894517346948953523173291494108905960033629475442845881359479134241719274098372701815585115651057219309434917756681010988334073499054635222005162554761785258448559938916620556276758248415593032663811226945287873997844826705842772307087083409740119950138067872376814275836124221057825554079037634313712003690367812134045731627738650734848428060349247146728329384528536263482982448091335418609590343809282418962632968925556729359140882845846795865921104573133763566044294990268099043409538493305691851123345065920192196818565468360243016393171623701091610501127548381053040082205793177066064022445106067925876751078209822826462977467825171732380495539910754943941597631214204382284864528819188457174453602486842895688833777450011323927190850053065432740917128086981380030173023266553322037207069507936505258926350318572702581723310456191025656280491868097710006894171127688939974058984092570211687135814945626263789824985209661327978391196531832048441535301608337064995931183344072671903512344298475109264921074490746830497148566750472575037859782182680788712731425385622908571276306465644530733294303935873363769654054225169297208129718344184880198945872212835296504296027466871564631372364742512649236779631431994145827983999443378350696501507755354709452081493436717703224113226461402018429889395331149912334193662379020322647862640756062216817289912997398297073887574255719997083932308575787031464934733603375123385816101978346216298086529623712676987489490898173234200336137929486647251847885704638864463065707428393804192645479177960974929186331038786226817663790791244250898907025441492737246986362784840881046223220895267317559916472568378944302547461614947586921367763516401739713761544886713823265700752642791611859117891515598137020584447571060466297886108664532370840320852970544040931170706478053907040033430996561148623906950986443300830309398092366662510361263377617770553644586125191136968087935594643136189132097460664557354624495154461199627357636141663083751498965046860596210791474151377762433736938467610682882561718494062377420884453511039345186440563381145980544389098882730236057582587526810954554022740271786734073951532110726545325286695715309376570548884489540012507075355169202268037891338227559186049625015968745046922388164226758238199150716707933202557453329709100112646345215980918427443086236276795013569188238584321328494659250409049603203537897122666395443390287899823255960484693289642286268554458617382057900171152816292464779439611307755831585512272594298411425721639307185741934899302535050665564131532299438205704523599770080982965961756639912826446818922136116786472674730121151973848034667218551400222673351454244731282647140364127942985462550751264370710834440366887490129169586983678673323750602157191233275728315977372599450919499091353989119981846130220152245460399013472809031593029067079242545393470259511030893934888914861257342968929352764911879096133490149584345017369077474279785514022720592739446483283043301289538750580939726250457292166965908273659679263650123715093211034305038484321111741340330685128753966028799671875167589747968607114323715949176382027505353487947809809595465229786720134820926145430927940895065928922423913570777042334600940446989945605532795246990123331165548479184850718957882142430904414147707636175063517982786476484844063990912102279749936424149016727820134811561792922568053808342448248593401110076917417543760239544056278077310502362111747216912387547161813099783513701463792306504930402528116701287227089338041645594001194593859414542874671139351738948843845559443245702960862532463269841287945310817035724725353504973464966202505450587126408920791156351533691632890924524446999459290423921742341639832349855717325035468589989735368354673586241351668452909236047710316502924594117949090902988646972561980937337672792648508868481744513213171378627122806219348059967684541656987148919379873867866607808181672247149109856048054371312777433368154384338297712009001312647725584012876633558067748345768810872935035921968212006976331979536243508901188769794202492173271961405338038004084858271910447875357270403745207075094276509956071237096472375062966313402930027715511481175493445048820698778644102776953982080477744995224483435321769795263064973385778333674034127318816947050285716949737410767777509439777859056401253187360058192544913614439779844246627064295749295833720989203077565678526860537478987882380254838456905920560864889244545999409813289109880923585602156622417377941048951509233700155446149212217949295706795439880862314399844962864841680058820244754255330859616638695754246924665668446935341032513144983221961510403037972122768577698065466106585403781197847278102566762071611536749463762704507040511706994320351889415532687438039318271282752335367912427712466332035535962372425487649340777885201909645741528261030067834946063654206413645248147103915839616993692455121455273641761508290268123731628998756290537195992437919347690214183219546776036245757210228358495298448024244638440071675316002352057333125169803940472322398823072457259578619254652751772592073272181755914688555936560083314877331607144430434875813118955173412422416995216760934089448153155605323136554407176663299690251669175010921827434883670812469993230779028605323678828735037789410483543854387902050632111874923062069520738868084294719939430272246307668346852483461754474533920484880481820888606883968935512395664159354392414725603140669195728642524704143808215698484074606262122178174048975514934849388024267870598008091546326046700134696841032823182449160930385709446031532167343856655091997393275256557331661296708349475169378174963531855055018161477897748667974112538496897483598051590890866138925005084672614873889919573890626317047370476209862604899920363902208634414011833773231398008051024110620197823842221653413294744495358046385130953270748921950708134131193905556362766406031527821171991249228651191925609435668272859163936096960701968963468696170527997135088516218460995793734778749603647904131378954973747119951810743984612899500120650348067330579895239527371663111173640048370192522791943152999196686552569019728568666112715072418180834818778556393349068888895745416674245032309759590847754843918119080949390200362681004205303891234436953950405792348400663128295228663860905869734844590917924116627730159410489821147056701065023574673426780148268883811919809638600386998335889596024926707620885142371840374777386559506331748847145257772073476445864737897195816827264095255133159659246845445801097930126414395676032762936312601698376045706027828139752660797623375303640346239906017919585632671958032424261005169473354029425051981489100593502184603081212278874202951827561828778036638962642004195982127404280416279722823286531612716764473708806377159518150846956152258703584196945501195023499667402770810027124057472948681220280126083429477503765580557807837555701611149473616759206134223757433697199575798810429283853378741905713286108357702643756829305748162633889969023351137871929261637950117232660444383317822546233371202391232055488993881247533701332862114672294207729329323830576445577530636970098234629231997005108864755707017175590992697449358277744923985062822509163695662012081445574216165447784077647507215861139522786174074846685500048491183095332236183514585538744644305576461285228690020625520855516885215413226281833643901136834907350346256321834315142150109054674031977356430634321824519726894097949625787151236524228970744345717533945075786104726389673051967766265906354928929365943847821888168136863016246692340172166661618732069016150381196599364717894138225625445736050485786950453256964908737819761671038928011411655268273608402758747391874975906003455368967169107023174682350173089635298686946319826953365612936821558043520411263534705397533676188442752197027727673154475008726192242315923955863834032381082304435149206642941982961446624108993858742443077443208223958380492852026508215598752872371657051097921098867914571821338333584679052932446919964404538011861418407664423881133929611923953274196328608267238487830290791763654357503723401965213298894873037364239757338754668260353231035813673361323888751753170650998611072661968845780926334312196574235115952811082902792453590309016244184966400748253413288334577202457787580678519210094075172814044242122341941901514115922979920083221764545596080969682952768345766386735760741270405782607954705869742063707587039720723103497441683903113467514469969161006605953456117906193203147464740897886878302934292506021465982568854963537607357105173632037176664576414338591026534494437601613720574177980885696455404038877222799434218036520188893744073314476573450932453901834400144480389525925392618618481464157774195005957848566932596113880476541667436901608551837429068981208761122941275893593211633899444629367194883430155364025837851474514294594806672151280575235576269918621184696727000127721132105499578090655576310056121401566005447093528734042723289361435054574282696609407234476825928834638000750511202245933885230046626753646960890129571584927793113124875817345176883183909359251004672612517059600958339761928777921284405568995784341829850791510478138967565494202133885912857544741863841094508394635970231935642536427462361903374076115298682589977995057614951071626470754115073605021068787510110924315229761177581785957660225026405537841640261357158000103823740319082490662550530521205734784460041910908133158382165114465961166716196325814706118276218787945439257031051445129791298293102118471967751262819372132662528241299680001230684244152793171435859889174143969724728506330396857464786636725991813912574601682235484131079072063181438820607730854321587372468670415372304352342184871333426264623285838842914910945372810929802550747724131360902381226486410551513709162143890939844923172893238197365434439772676899218514550973829332267882956480698504362470319196483755833914453686385342553017640653862820676772168538556265083615590273725751417710255991182198784480167990745683079096851038057985082251994010616164175417538998913469209184679190928059817646234812445550680489944940134515186944672194912398364575302157959007806876689034366817627941874857280021834498569873133544254293377642090600065336600517219960033894757919930484531635814104864189226934325903666972646410427230103882999765634667379805455747223839321398889623223319815589112452537941099975192317535098418570969788026415335211670582505887171241196516081601907337925608276674626887061323182554937510544162622476963506747274300177942122398421210770350278396203036430372113278943591141024880091996592500760965533699735345712420481148581670254163927080443230211012368616034967285002892386147998214860681020946698016737229587083956186070302831500689949767683040668704575065293856564826562129412231861037201683773607119471394636513870690517591983876860934840227114213347700378782925320093588126380212087713696606565524523346639220593299377100399565453676530649072456539323712823590065116166827762268826164790215707809419981899191041272323364610474234572071149545921414722175121818936704126048811514272236327430643629342606828928920251720306733123017632108723037776532644050635350237366609809597645925787485849504223607890894057442331548961784429593388138848633698600724277552855265942576240993309261629265329484620859542325814931361405131637903179959675168496453008203589541335684402322377273187614600330387973951534125819443334720105962975046393959413463228367693679603514084056972720708411221298452339029297857708388235996518814959773704431529262421605813960114170605468457752110165033898461047023274954009638277518259081064340240174641580171833063991221309281520378058906870119750291242053501923819828375722519986638273554885528541092957843426734845356387395190931003694331900560759337542632599334737631609941264115586694111196759873099060972024755971819308243348219870667317545022216346615225386739446789688590309022082714211489745235774715545290523493190282178868219240761759499761131246659708022371836204354321557914964127786630978800803837138894209130719168444394252939207115285358054305076081924445257769893815477337186533691891140055950526461164127523568320326028238299213832903275787807811154210826344336342941254695488831436994261830531497741160168081944212222015699619208342286471177300468644051402717552724640446568267671729349422325290693444737258830373554456546957629606758397595409824786761994480933417057844124912064220893830747408885990667421330435168078099640027714908899192683002790565219265311083116106695163712013628794650320151480277968507337353162737468774169343008438910652109949081900554669544000199098918955667979760290404469716686812566929203148000329732865798653588976243396052719517567861982302843444815115085977981001428138242229832962255206952448941751814472024665147061801970516553173443124564324206999865464291823590140804636949067663452689945320618663487557511517014970976564571283736813195299622506181990259498776315013794184612401351330093362387053965653535479893198123321411982161549791261969187883391566951064638150365647937915888638264648502310118446073879199642971683002324635700562235499030151784748570824578233432149993333578173522088753855765388806034944646022413198353420272425810978037270601693126644612228382980158542316860383409414721191944066400620261529963698102373569865421979819453962713429151668366631478176916440979157736189936732084127701424844518721288226802065071786137297767049917704161670334228925768536130099874493513675949011369756162992944305780746531739679021919603472620193690851460733289950446797755916772545224683309418971583790681803972695974872104844155971359024602179515083934062401359457672560917471712010467739530075913659973536994141061917213126947773809109216880328882701049374868530280210363563159197990461385540422162753248452397878644057807116294496712708691054505914068932329854691691290471796011687543635825721147970056428988781773400342073849531462571788788080085836323568737603972941336591357180330637540168015375439411151945039474025062365476641661657903689786479286355291796052203106065811045046992410573907893430672989738531551305400054280850683585998598680808515397270518279766043375804691638495689554212839432531338072261818584614685316615413439220358101885858332283668865954038370046067294963198085372041109694174004482059771538001434970092475005920047941764990257279605782169644690809298703768186647442914593632961425420122241558528176841790627781703375876389494452121064828851510403656618445753695388719183993600110698702738613112536834417650437417935370003917046708865000858156845394789767894525528462269887210321667943144877599678574364631999991905007904466971280532223748470195839035098822049479463819140999969432703020600958072478670619668070693104064030645176462099596943946305242073777986342437751691091401565088431980980698110700851320455086246395957581740102095241884495797736997032158719436844272051127903981551433370973822918960710094493529209826188419750225818256889164409216185927077578397093704713636746065233409007740397034740698910081519755465832654916619541885676749504303887503132725640168187272198880128463845835282224992783784683653494254789010724707319297710453922235071915141924121130716868836434188577717889216143425502386624889856943094494232355267644517133158340993249379030859777726044372464096509180804172067951608181178885043731365712809986349194047277284822054200817211038393377273444625325418180780732625006908787657389874281666909415291329162325219353681589675446283717695080756852172903630146572635391854989917040946958091096525285271303514467277171062438212145321661690773660281055756602436061565209253171682471353684078120004340875642005916183222474434704825900895013252946068470593899392774378731913219704493064999365759787248112573940185833765328329336869869465460707820949036934842104661019852508435301256691975650847957040527541829421337437460657759563023862964984864061537038334354873277221205290601932187825936392179582557332671340825858009317701096504492396840529204230276654886186977950732622895522686559513751296467836456268163919690871748525058156475707832371814862741167378399975649094277827797725661883051620270686153151392692503823083561542222028961713790920620869245537890752788071699779617578037373226514514148386362413356977276015369288753705718223999756436465467838127514772668381655971661888008046876549117520064839117226208562722157581781384906628093517358218584097498803200479063958513269144187898895775429780226839673974782220150071793447510455198229757570639287176031428527746066876919759147497890436986357572924726203422512356685042712317811765866004017829986736365652448932293221489324560827412323686884532981649822601018984115535207782088141849003914532683018786919475850477818466259852238219443187160232185968022896375637728786584403972428978433864414464738758473465425833325831923504952543822911540647047515244365643882104218794268222660452928792728047549789482823000174761944457535051150800705957135970535123304405733709577642458818077679174692382058930824815641534928873144557550970755121978150175832649590237344092847872373652700064850704015969115731046394470104057822799031679838276533440777606765349506626939526630743111721791799309957184593793304528989679436012767541843570592613179896374433065500669820214155480508203934392226093596079565717745976166622466824201521168660398697914784891632193306919898685760777301876184891696509383662229661771768832462063906452888506165989375554517906162045705940354231462082872716823474162961885609422893764832967920351419460777728275686696890166161552198675650164809301350509768799567849120584286934104268146266118169196312192260773695533455735656557662685018600784322333752629259095712716213408793808571472874157647214392656366580077222496070781560667780207352717045016279775271206310258602126773159018728581448207617090730772315983272364698411364925329048588241787922365109878104218686212449633860836584188014185114588648402763330011586915227636661487900053435927708039262321544499292687753145412195749162785234578137987284767858479429735287117292468763647401492302087373045324850906622816706109087950300101727998084786147968741221686183674823363250273284275717884488522542316644818713318019790758979167570412586263988325077227430246950865413295592893380033862162488691416451157370884821832246426144844581143464740017060078983900992206426869991660893737055334766898788727930333114690475998571572953357646603540201559660686866961427060772670189470946912387133421166405866129345109397267472193914365865099243892140541305484670475839283914341638005939753099627833333836713518827409186051143375029081515267530653717184904062206377660339971453317343175744075793222287930233658583596388198251944327957124933734275285333563511696418197538273358721278998447590791139692965922516412945444920335087669192617793934709464579231569363142171478374305697707204662943194622050193137448308467113270666772921174603516320631906475190653497256714174357346023937938447983998915092402803048663812005298340991184904192230628254206902866414036770450322377131890375411752523539994246625563318656324843212023978407362647132422481438485654919106636040278397671136534397767327465993022433651856186364922133214259621123917768061412617543336223657525038240248790001170522298791079198403064287800994939994455294184751587312419070525806007063669394988606628272410138615534525861211600049697448251612995631068697764668492275140836134162973695387932044617636583073096796666606964117497695239771648695835449124116435295054730515377777115106457138908751053628780515067054030910931434748983314004631423994849764221389801457991095399470339468653282367951147012087259207105232093056609069596433321256111080982238419634174939043974027376789048147886509549026748342562707643102692794116681660467902717486163835392703699516947106745446544623211294570472881157715453721838617323675231473945100468202060801459272225584948795651466667633153997279944158624558456310634023834325999831023178268011840099564133220666377797906553796960488110691971887613794154382431521380589931300510216407225370358824723748792099648959705582242626444117612510549148219684869324749621292136358699159105676898806487204287544415049758459884214454736725156862910812869712723439973260272868183623458363129283903744815355973640681255815034364659834802769347103175671475988076683349678976222541258770138737144400422518409600699741585504983699213959432926613343799976759243868935836026374721155789769933007548047711869275420627592195301590709275903981638679448476493852272976018742577512513871889059481032099882135820816750401096609670903398212090804989646481643264930345144220100171089551812647257644334814451922937132030786520941883492609252027962657365702379971271658498395386284890982014651634039851475488513817382111389591247455265470576965786483374231769282232214215797988359857779783156701429212992283073506656062161265342427416596771378277747631499009849255409904492072472722970448938160125726434444976372173393323704617252659454345417082381782182896745522732049224481287316390393203682826168797936193990551963834547860197722252057057694203107494418561877563194278658881993843706755630919008511267200008962423522057482701152939845732039149088495457230208941621473578743651738728622601455837224102863802832374567614222451647089221624237660953225833709587834917497248869467311401231441853753268504982032461218380928675266286983542976594189989787303823900225363868259298632998828599251424820432263843778151861153229403374717064627923355283767600299973897971034579324486291767623812530960122224662468179833878622311303026811895269360316385427801142153588374677160279727785347895605944364287234334639695537367504570693088028993732538583841043816963388573081370521647539331420243884369471642043512842808411417933452057877908382719443606288049383176061329488405557985263626341299664982243528326045280518784357435305920661233361024958330561897693184255581465469049315301881763016432290541436786179288759817112318007431793897366190098281387986373913357573159283022479030577713986420891294838498442234528067347013652613288604128518860636888402072158805189811298988172130696556773535337869549493436482037561326555156009168006278381710683746868130654981148380126205637127592091721790823010465197362985514337773652433794840714095210046546746819908732448254133045369773560003549772198395677419520526215544930055931666645670059679375591318461409879044997262434396560548289620240292253557743681224836673125931932362757785519062829209187532527365677029792871452000296751965787979234241126185981056307889692145533712817831744438482938308872735983651679360727956791959871192455806017356875989712335502079588981431855113678418189515346304374084160197870535568424968657971113562682271307504446983504737448695295323369357237208058928078700239850822569457536683644002331179791847934923634920163643445551778011213945768541310763082571876023954955989252438894812708255368651332894203934267133121703227954958393841045794637854843170397025037233979777067599972812388647944617971470703148263075342019020083400692204557057967314516252343665399876647254460842892664226018551786150099018932473405504710635668457118579611199403260201885840876046262154779745465664569858225017624832708675211254128350702479517121000793395438800188758143572656684499958346940532114881283762316979276825438488581349337751356200695531070260426632313002938500155864172249719925639998573799493937498968811753353657889085913807068515075519810397674693434326864328859768130756175340966325553276726887111712532493202428123975748854095596250720507346595876517620575951464902183107333628321243400439903824530732065696524660090293962236811136599717552051456317698448408693659956732630336866236616613397232176656783712498567968698267821249667847745375060635657039033621289106330486526421206603919618961142038221972944372626618334945229522757679061714747032712903856906532551447488348146461076515968643109828903344372479712693725568813584041597085245387748299540700501649427928366069004431024436544407854548314368979082464065339328031537234757219213649494330128912631314700594948789614664893647198615050083740958181883426788002161033447116057525590572262286737216239445020487636980417780416347933767955082875655071681838131148015146978475205769894233644091196029173738978846784263708481642421932883504963299974417503760576043826893821068907278766738151204535810300383380530178592159621194721727436379000326289232289694737659457741079263444834265696709833686253393927917746815461934782216883558105101822598433059309370808080159250595808915728534365981980295885339640128273778964333186291398369200395989469992012912402384615376357276421161103889001708477269694585426373479413835099806709698720617120984844801295541349522810771222886472736864512858542196415443969269484866065116274088872728730931979126735085099812806700308648945100550602678985578244902104621057826184995279660435186030319598462508074622984781667417542119642994688983291072623747679411159366816736288432029462487961283349052866981356295248861155351909838673562181745936295322120872378206125042856183473214315410002994613900282193854940005767542202875030822132934854149476976650786047450004223170224741941219267483533238672288724740982931147696391227782288671572911947994235995199298833361933464902471124014668054181468727050365840808586413358866592685710480863100894295759044995728232920005530952080546352969594240858994789323811512171334252261118875921047013754081787926726274192928790974770284786993316327987609728570169479250892306074898016317807250836797938391537727942351454295608841057131697598158149777910189524731404827332545354517162780204238104235431228600118446139946980656755511604466958865716277111481939440230611290700997677563424596014544226208594974572937909444310019785938111360362575267143782153912246888624716728784619741325322973754295262780038830929240200573953917340977418587971789021334593819280093318515575972126525523686571661910931835791209948094257836523562116442469649064567619565850058761818485218348989373070525457709038878335836979496453435071016342250058237282318515516068809521451163728844345582194591380985339450220902211741201005175695110745171076910113608777935733128835523705759761744142075409315594799906633634896922659243539123114373290877581168261537621217089086789384027768584981043764636915274476679119586186728031444517610702615154002970448177190450261499520472235183873777685689033038969803349582149759065659588036245337496645675873245990200157923923760087553428901845745681339691239527713053010083274063307446070742224685930661761229947104162206239258439882148108195895849159067122131994077968464911477675015558529902305831414657541809637138328646448978049343987456828181194848842232906209745250490054898580627412060076974126504194412945205245851930051883955441860398702655158251737205452513693157134207615270642573282564981554241006017920578959952881347135991584345879730116099507607074496768735820717881434914528406321400684399407145349049926352572351363400079978643874009751045233222746294206610031373035614072215741300719808133839133902707656434365416747267256131564337329684199569180939735108473008783284038293001699781892687778114642923913093850880879205275851001984863410022651857416516145328372928467864338126081845447690245791453859437358504737882785329741785142051219080017495055596709184193924106576337226230328142830478659199083675341740842357045133302909890805801440678984409461220771611879132857823223445965173626414724977519276617041315447300118073854619801542201046877949235174664724894240491492293995514276002668443025491914970377506057565863117629221715652657381210615827369744019617747949818111317420098934972582823478910698252640446718620583370522900118466559965010126687481607246624483290221393775423512461216298812525431031696556012951495964396678939767791231900316180328724466132091093092820531971247470103026779102437194816887548430100334327392686693719402155497830228375413712688114123086097041106915904408206743652743193141879617836074047192782744479774981681339352782881648668548961180017720604014051485926600892453891203563580838222662654126769564918686960996767623418856458245042225584301668839846448756252569528339404373154296623073976349616798741675124148069883819322631039790184108859561612013407291658212367390137376369408354819335911427575625656130706256635577473792043674677232098431995593996469333954455925349468050425587331508321137934885471900150069508117850486772872937746927547845298969762155262744325933574137910900173377515149487145509448149618156357466408614582214002917714481336552338226597470500672382802199745214360666317046301674393048577392016223725147497304850761944058231375931877793339846416042504016257726661152998152215900085296248573793933458792919022916842323713469251102370935595402517424997033606891155045177202512023928482016912487694342561869369281908273455349229722334258687322852775774525195165465237355351434958881372691484239811412188164603192824295361254054397375180993200851046451515946342267018988806404827019276757781234599180965939052284046536756823149085679398622537081405351511570488090754834732613216699321367410369834272517748361423899042239929785235620398098899360413696242548928042103480814800411716967412313724288085755709160928926003064527907307989403877032180200147539187900862402549623194828865923280390791315379261302720575499615150234740753602471466085321468757991324383485732027795730831011831266075447195774979838460312388899796069784623039139802618480579920197313639207245947808093448656764259486546322730780785920620304478081540212943506618341672381646501539015395641930880994478097749439974365787567157765918599060458426826866856435818621007818318594223586984189296711074365660926136526914586981261588831348909435032428417528618127060065014243420047352991338219437740670726391771057158482883334796396052874130049098728544065047345110772820113424711385843493874278109771809152090284204395157703112835554993555486261258762373841251644121269849557132043871040370587754890308992835591120633069360365022032195783243574262710105816188997431117922529660806683293749780721923113745661648339242760496611381290434066257068298720562180810295859833902010400924351622346762576541520266189134776680050533740232665204803104185685685378247794722888320291363778990295576192209371767917639438522160940136981231966145570508807955047014015903770556677356800652026238485598637675937597188832904783479676989977268246478945717982494983396669074365275954185908525069521933811226091175555255522387617067412526978288368887754774807586593770625373113031203283002133636164030162976118153063015153177666045655903689869210583409195285523286133413532888223717466371883632296230981964361661707496788666208431257368173127328801646730976372123724356552978536219368311496742530530734680817620249424171551299285581955414820627494228565207601119015577872907311074929758983710617067070473893610704774183715627452057536217394153087738159446436976707369411434718837938709959701672890639076162714354069635515656908176054089913934154727490575059255684683459003667734036486116297300061109377762490610649801171254138049573491550464808411456248822581137908861303711551126544698104587986799019717403343176500797093834400984963904931154294795425305533503446426218036632885002250513416689509991277612453780822362828932273475408599036880048383611587284561336661615825371246814543387858723047390157907514963164098204859655911728526719707626246213764464332404728838855753452634565449797011825727359202844975293563251208510126061700444012020215385053850584516562890494772220182417069122413080851429147987928248480927812595732692807878179183997436299946140486731605488466790068865330146567998661708220056800010544921103890377831253674663164612924619173510967493158742807049606015200447119372359068261115043387564259030177467913920997464922973321408271030068758715919168374692922961675617399879936483511221166309310006731609422989089484949081811907939367907613334931787627877125124997313762457588568634937095603126830333767885267014148444525662539976069941904378641572978275271875041331436555997608337482045642199423046997630234779601577101998747369482671686111232707205272055880526295876149629086939255629267415046973221504488624436000271640267553623452614829411728682320101752361772469091155170325040190888226760984837279876080307102683447679799512845295897694290944130778187649647159415644763771529512665905295245386917677045553716122689703529007260280535346512362936337733834858680578127099883807825752128196009294267381324799738560175665834814540448639224578250000300838183500602929502949057904038087271070317061683495969852132590990867424038017131693562481251013175479236963471895741990125065383842151629777300300044776109535988508722977268409326212475244093801323774818757995515122255219049149375411810954325930411075546047774708196110365680878966695174787110138403672219938908626123306519255078024962725120424862367086335577968713393906212649863307349666650541662218553151352451533730761780916053915188048628421544993197804278452160336012076779670571519979345069461164538978596122134763535117416081505717970610464026406795512793439559195969205878566187404508477997109779881700518712224401856899170118992157746986316872709344905186832264140145933409574561145280674398776019687405271306090685859906298779818221800781448224056322463782462456355658852132274772568310714623728852201302127097069491956769787285403739172053263023608007318179372835724406630199803098753229857770090342711930487308562643693091724750110030884101909932018516238142756840959695529562603926010781188530199070254920799925574350605499319346394775588986743810314610342145758767905920325427320513323762096547975452949940666432277430875039725979100930909125406153845396548154180727559040728947060567322221359528995348916225213479600300345341191409446799712335027828430810684059269027673576449185401569811480356621006696775062107321557314848844944172521122797076970310539511483611671064489751305094618259845719164525531662609381590438362515602998770375181898980978631641373676625427507433454648688588714993351072311896487510963094890195619271883367231558327823936650581801088442396032965267674918384087500762026459655866726275770965220690470045225480594228206841651711214797544752211258119930200367767982135842826676785449979332118832261714287867656127667266884209088474363260627594762359528239391093634592855902550606082499931128499555557970868619470915492071937804414874699811820862229210588658192837564751363450500967108302776519081965107522992651085894558343145676920118255624951668233142184625078815531763135921760161744184331582920718062065909528698210692646891917069067700637888525504304846914387513999035659090292201182226852785891671842742185203963941924919871354701332561317931778346577906545181755006745681339064182694462294403153502662074652047177271235461185231094096854427238341610903247486918882068369438904918616851806323473687768766702625413229285577016987985847665513220136436103449985282913914068753067964838336956493239906370624424199273256629293457796930776042528662287454933624218795615859941117825310978502776537343978781793825409180820372453356522051584482477138797436812782548698286356817725987070942010352826301815315403687328042532951240932744537654156198382106971170849207925971209063701767084068143961659786177389010474832488164831304862112527325046778583501517393194722001999693127101864156095058795975437844794458096292070981858405755607785043400930889540261933855435630639436727527666702930379900508627094644116680940278600609394396058143043487479290258363080949972832191261341475268747427217219010477993518905388086381809506951421004613706674799919213942241349173773417856315042825830396395148652943430047962898841585842887196977035235945105835063761151418901239589776941555720206834902881326302422549833914316415645751747509245513636428454265278441313104552960256249851954604527031351451353972542148171314790899295237417091651628863243017198900373680267707980494451875555548748312979514915202362107830343216509140732551915507456372014954587143074400116360841149663906234580038885520891208767506517405773311913372117070225456388831173909653395767685950753489659557235940492520504105757074662656892592512400926256174959899745515148625249947541378170518160474697965334139129417122856024784686769394902161425683121250982541046819606418792621938034243129985534976927139416821021963857567947136122949869347113633420010459306984268814809227248912872386169761736297477419813586778052518018628098205747388657458451175595087705197526548596250803270125865478928725555655446692959614274177617017619740296453928508496038126661812505779843066329906604346048758285282164051694679155898481928493306303487856886440025448466422217251499218260351727180097048051239352372135693012599273861963394376957595850269057282975883929482099026207867547312302362743542594106921938856264822437875827019532211602437993665894346774746026442885547464770815554853106702455628198215048428953349307529913617250295542871647714185741141751347731533398128387556812799386780596502037163120782201608027721266190978683826330132137721476632928435912028020394590843572067459139344682480995499474299180695303656894728401419261618228328657716074537527413433008051795658119769613479079637419120050649606696462557905868405800012732043517865286253981494901033115124328318661799156898804760850919479155409084335619585333176392548561450955797715236698545493460286376119254389480109795410818964807550513250401345885433770071590151749415932495304558904244672628745004055325742710029463234336378435965384673088834319825365080315213368368782897977755682656476885502586410302168387558835733148789492392545233927782833070177981389615196302531086160276812079093943074039991544616109692549511136063285761108895940200992586769051262016001392186086519663071505852979663077794421599380819462119847909959301185167774901946436787749892019656235956721284698667584615592412314969975655745285206374429753700033134867525106172809635044661233917421689460790862035791767665431484463586182367447851803685693021201109693898452594558332461326639044216477454399872990537332439828870431988597911967349148559773977490511921696688536539572406399560657170539305293156744164078106179189000926613314085891084206605523242584322751723625299232220412767884434272668290763959982948886999402214490072426500919113267876868941086237736179726612655321107119223534686870222314886743719705567909895793330649727054861789444019072947434983344895581690728397073947893086527151109067978216142874581241826285896383992512805437054182553704776655991536708537995355010910737402719150704798086303723577839759475955055407528641314642819284902671760342727181552815846188815806265693697294791818761506940260292918542005844340416104898248993676978357564432316754823339687142741601379182234530126730596080643562458014525034279518081949622264616630024851771380743617141445055899904229034274344606886031686747182958999005116617103996718680915622355361144391773939186906950255231304390724359851762567636432215412885185589490983210588934995137010562767500384766852473503203351672316438309610953701566752815577389249277992012681740775379008716225790774821019051126267126767881233486684293608882558282736161613033894574962936454591330502271903174055156359406794094633333386260721006684146971348257978520434157777859406881567445707018053119118473608097381557755775001569568523183939423447586430283117293467132091761673757514655474753197085894493826778830808070073881754117820084608326590991949325188495413389818361032713500332681873104638640933892293376138055364610649589779979943893009574307223611004413588731498659972707865897075742529479141827511859562834519333127843799709606067026048977881066076951974091386028860077988995846923062298959231218558040737052538173148554655654020096572523593162637058144612741522433140249787736425565052311711573477622564504053830683813117067818449360967641972075915168585809601803200123798860395784159316561818282836292722987252927839284293001120168467427302824116466869361052044639882320760408507796310117641598953599551481605288675479506968279917234448221915360211464856923814874753555882189646017719217943759571229723641536950928136394747497031421872783749454095315851896510808361774845335167725557623274729065848207881571667300981525195801703597033940051089592024944649179974038964726752892940931087156771497782656385580232962522431318292134064984266472295796421596622908272000444371606753134461715287652396265353457938029773373563250757720189889718633419961430796432663125660266890734428821800286073725897755096472690905378127507765048140473129006137599959267316263293355621203849981416438322122193118474693654324269408476013463649534072334080110365183182428908815711478389816805488417751499334044572496961003289604734182132815841652775972045183981914602239864505356709356613465129491545823319756179475862639824755598467290292071883909523593133527913462735879157133003327019793024894505670911965470286547700487227406886970096378842690695725709404634427273165391020537778702065465434425211161693985932078997912480102356799209531931196027425759331158295524372651725230777828707952304851198006529345313339630995580311237670129394306938085198957931181373791603725915607015187660188421459845439869088443169611311940111635310854018325704903547168016756854382914935332342508967022085383042189349547089808944824564965225673030383063525716589320780435767072165125563208518294112276602609171693880706756255600844134581073139531690185109110374495795259807390956192591993685141558730445876918208436636368281770588257191740979695822606022391801425238183995874348622311665769987549490828130266911270068501427907662527547723761040686725997363906224273587647247785398458846694975735287639633815194704113817045604450817563727069717123161676245512618501940097133057140212886685408365730536113794139753853974116640261636270830388595306931250047984884257911828193768631488648466683481249630030865384136308545606332831232049910048355930174284206951516034734239278590103452498223334582741942228263730133802885034411222042305932785631479402899356755661411848027599503754159927647824244166216034799692971667750848783749658110284142314466497195312332028411175208018321246037984713346810914700281627355957201926271110318405647415152012607788065828807364833700173930874767677705127386842871566397326837663846274140294201221379796393672192134997069858793188200831176082620818556104350233484416789137238260700531086361843549173190164236010687792782320084297855615614419962845925343604806635838245370590769256880020115801685466802991960915951443193919524138262855533621674333259322770432312012386186849395294140424727608976556337862681005260896353982936212658220369250668415427522308648509294399281819318480320633104533113985609207697511706167825493617577002592545343932136665142574129014918175262603796667501495426595437425497900048387795582840766505835534207689006360236055234854579435421610650470608429433001076307674010542035286733307925839138958024802412777710424151094465573989442704194993864885852139414430587001939258141198945992211445971714826362891815470500901525858057086765552274588272380578467572762429550540037361881551826030365268138424350721533474606611856427259699879701819551029393851130754619408954987736835566347047172314797934113119446724140559198745962092813180454424090890637195079261324229021163069090882596017289827583424817476279448352544469289720791180807595293810921275022430159359147753268687437921505866551532647113730594258480203976322994350937469450590346724994366877168150523649019070662033538693718407287975600603939001970899695400390159199487233318179060086553483772260125868526718945247186354272017648464056303913392875733329887378100761080790764299591671514908073136747987370196087379514138682745129354167570128872183095135840057252251412949279554729227540788994411536810179364501775815394730933046303807294688704428368311871924168920018833467530213694422030584216911870075820774087111885749461581299403673955301897758801825927272291718788769954908855742551097723145521760146517054269555831146358256814262863951488130074792069822268092269691089469701865684490277048312993918954564987819444928533764466049909884480772319842772794084097493048073657757883435652983675712844768744354409400642785267356111054980473601816271319929822508142785704234579807756914765012844632023955300988294699463054881292057791939922088724826598914102904562402456911251248137484178566555204328005073695621031892012739415706782329198437736474606802980749150750226938532442291933896864310146644303758985478213636144284846886692213752356690855092520049860919999669625192055357456114255592650628254964996403158023067895254539157471824493964460256279429406388802386986293531926861753077880058292709045096717562410120063261918322176918512510615424238683844712541667956637417437355923142162538725376248635842521976504289309938191312458364849600880777733144859391314699288099502597887837660226106237120651109436758445761972880376479100104447673261015740617128547624825396095087796201265680395660108687830516790508695899592578569814036998878651306866685594971190993299775193264261379992487086442584415568065666122863769258378714304846349504179527995128491771923861807028047450525955842120451376843584385926461005889172409780114054978843142865569175289319844710762301342299695112060106076769917506216106240400178671700009507478727448659605557945584619545175811499130650488461106755521206987897137860139053873879137657848154552436773263776395009079610197149561555143800736563527576783285549268154304229849516385502001789484592278412061354586630790723104129729522457082177199639970924726896334133344630539724509247869781670854138268345919934395639131776393985750004131568157233569464254560041461724540165129823174269292769564245680396859032841190516658307268492295673572348025202619471154511308807506215915992233874864740346014031685402936639156007748671845394392991486782124859183177919745149419761921062291995786609990816078062360887989123249255434685851888267729546459248861649562804461899922203392833333182475951061723568870831817952315483535677717801435006310852407716821783609751944870620901032213977603207632071730401069473019318746771120486872165636631603812847284227897676633667332617517662007331472777806150896827098435352283123932749740169167905799018239444414308238304725097164318575308424550354827278558111634249228714335105193181541130015463900371730034874428849432704390358585271371624440744027977856947416236616395816146542644745210617356141885070188083963599116906588032666469748706961625879083165739355452537405265411924997654796982770257783420890711317175762054160081036837209396353662382856117576657532701966244427354981833975178743729071686868174725937737092154530369971501271618804303525564919334504387665184692040713326690800725039646339937959661320336822380379379482457257356491607985354796832876789135611271422107189268570045358107625205467959691068565288327163411729159139657389839123734278826449239634473308602800898394709658859865262353571326806566541058726638391429982485564272705787896935213230993809528875709860599889011666809477959409588687052645462107879758391482081568050191763637449261869331652599754673004695930453624269408402150539467714838640220148864666944988988809800546382831196342391575988941145134228518958929640282276795903137692732430293535673256429355519548824436663971637768018301089936214795678881701769838324316661433906634050363297893792487612664973365650926680631304069410839036913591252935730957697054710791682439541088732402843451622127284594376490606848538874789926650105674892215520530151674173175504492040693413741840279064574456089806577266074273790200740912567504108737444718802693449632518602215254257312040266582524190988898258477272152403341186468089012149936708843495508104386929110444589631121121423368622269270663904658741912492158473550046950968755248301480047601110416314269008386586230781033960924067980860464234674577602011678777848822934742927526989972032204740618276136823572828431960345808265277963110975840055860434820921587650726722816525594110407793627098482724102066531299798859492012217893594631394865242802675360711649091451217285937247761114187595742012806116203846143348020448325672417034341797026582801594779182720556799838334497670513839776059612093709003432201278059587131194058033456896420278738869873150553794514459426184962873741860046641099227906293258157867071533508591753001953398711153265800429363511433730018576814971738652959734418099524203940456606419657613371384255511496398353998148677657700824373986319832877914063809335023097943915161146030130118955858971794606281753520352748393448303931182585381999680030587339281095738620888772023178435347463616852596303064884320251922143587289524254580096819384243338724518025193452535488772803005997046212419619618470096175770454392620334735890006997337648533848362902251926119959411654700818304633126584968087049051180404168717202731733200267131401459839586682023008031030664397401623118193843035317398326063185036244876937866933010904319469887583901209803153952344415405104493307994082308480361127028034033012381376233348051423043376976088039494506465531724115277831046260697666868000441345089581340444030105830498814169143931549820246384864259541250697853874227503193068002381007047216787601666416175167614304377196881898326182399888628961037288260247593452266860720154095929598105777829143145458973944675507148277395288837739052675872927206854838676731077380837974043452321270633557801093265237759983743920817789474094508634587377907762690621253033018471659943671397109753634193560839316955831885241641530605664298971720432485909296891168512647523547451236503602196115343079756035144780424289045276310064825051136075161157632217655947015313077312663097352643396799044907060866686939546743018105433523529718905529331084611934690542045288993327873942758030131139599481853994150150773346544318204883625098145197609443432669016883136555112478585293153007123931670939890117869001584738587367381700930709003262083702613153527349743277353426001788956527897126831249855141213885250692694331181773632874171816851768598741140939526771237852596994680029344302644382960545599985315950032612203077421077492802422308323313336891787642011181198129749298856029233009679882137319159007159710642163476480783494106907508818629578465390714862236506849034511482382236217897640643126920600866514110928290677952130080586392880854339856994422989721298373703372664044098759187298470029488498038468350292838500323293605304599877488193371687813474892900087399839707662356652596456239263173858761046505827550280682785044914410868346037356888055502193330879293458150935598987408982162204300967724505319329456203917408601276495076452116545057317176619459050941680224544719673922659429517810243184528203169499820648309394672403513801630708799554180772129171551756952409719197068866046201236591088245299265320315104922449497459492042081604903182645908081477268305570265310954583147443951258580855214903895379463647026686074086055288664181427681974135788206887932437303884651834547566564803527538729838811414483084748403077792660320027802883964568990801406255839258963562267340738625981089880778642793927635260239321600268397585443329625129255586296608526858341367202564944528122892110679232029874590318092523312097192397463223122980926456553827466881462403889415471397944477286416279747492219806384872509817339275312305630057322078185090875724557590061076161901562185638824633602279325784168451086359777253212226868593555951089943375986626240071490966972519360294371013999249522919188689134011339848619592983162291736960611697848752615483783936829712645405746060948822948194910309088259839699221643722894174374873806607355871696820724997624039632939479060514786917117654518503106457479026611882906793919558274058746292220749519754037558343727509839431581177527746305912946512776754249896817710555475914133963059903868042154494581015995987833478179234256695623608448350834175397718892825002531673434776779112474734608890651347964803867290391185060466723732756889368580005251222039644104611727674424616205683045687518730166724888454708628038437656757791756290655190850194742439034604855554232135082489844873629181038108251738526624868099171603554480339333051846137371672735620869865316250612425415393158975345848334143190447101559556215069889741650837331745082768873428398424283894544982067578463986150298479902465228329302277259650211222505060539936499973564107101243525624631304811837958737397157241135447963530112357484188198466226739825801010730215469703656343413743043852056314654659345878340981488244262607251037527348072359317130300418526482429062699509277243285455533263942425983636016440722685853031011244122078326042905530762318431810393617705567827238094898215438615078679113006318889835470461051995356648972271103988721071793319150262032046427589810248006548234773559719420802263645809727793391195688305398110189906361127715266804646058668632094433770453378787813124615866267421966688119091592384999088022308119698858127794343308655198628735264506727176769148440564169526593984122277834360798982748861452849724200437192225727082468640254081951316560385060298927431906757506626785541140937891760038452716707257244337111219568421395159242932076536252408460825763054467950874703606424415828658911613346456737296237933216777183593639828223738443985021414122918183545700717439139730863657563772194872471314618617366524357944806340021790349509267574468223964871864629560768266039043762284982153955034499999280394785380727555372424914389553929625521023773861855751652030596027122081231423982896636076808907894496723182665138036555839799553402264630688410709224938780964001699325701901250413535814769667522620865151948741182336268442767904260768206132843346753042138354098440213259173966137810356405536604168157616908891286126868852302314496002932287385088771151527579197618428667578793676579186876287924157509352702098049354611160560986748477120638582192504689235430611420082981908439945906168958926750179019899868204027274458154233272190507822397659252472818407746368600534739322926746509632306465972384760020189948062814492077777679664166963527921273377913642312589914141508492561040597192860584176768650306738085486758882222515763539943691184100716542489209287677712393310928858880828385622199509613320749940802378041252251231408793285814804799769744478850275460418634897920412249090160089674002478902924704896726101063709135284966476050941613225121659329233555265186604070297938032176250075632083815476841324227138749982775031861791816799242528698336732570459573348242808848795093670967389039046011708506813918769216198053987909155060345407305679968972260170688327657921701172831108436157253268610588550035141677339373058315807481400914125225792991072304464992569177498866422322528975603724873070871510469102004438736801742924932532686234259369714867531290974333117592947436977709975777059768883308291104977204267674847039413257763620670795237007321439507021847587842009696161889983829693891494442615519089287654108986866411674498670194704908545460661942101313438780131381449582701117899813220506859166971743501751707567524568774823374689468209756652075960166510081603570638323684062995974474481788960328193599648635185575833214818834427914080993901086354098925266283057525847640140653274526526645694519799847480874838350388499654958903732373053057422607243576367115566674706195092579361089369773589691941765546168061502695575929807030343287717408390037546381135762719167347648335411447300439031309665042601894734220351875445977517231923032109294752969520532972591727524114752628751809793470065556246665738486003093449814130398278909304041214188703844801328885015679955053409653161379626157009241265651276705858681702781171238882485532476197606629430809155873619487804263775254167779215956782858153807706839695308438795565516019941202376615653179274517720585639310360406170029950780649844819291343129616484356272817432090850906819939248142739532589895939167640613202969852061308696052949254644744309811089491163105341939410401339303395972600927804794783578801586109126821488146927325200625005102405930949463354051079353830051194116474249747229702374577803149984372093088272259943080975588101888121249030229569214319823524700407861956181090799480630446880466430507851519577181146931780673168578259090039883934393155706373229612059635770253044490531043902853314635742440336984327158906460878404638696083141422753990754749296462145975319845068416213983725227016598300130685163398798885018105329120523524639924750194330354671402045251510265569514597024369087789914974154691865749181557421157475563325073677630838013746417635998012004983915053677724905421730122939059478918878311294639523357174421212081455960320058527531646155895969966686772794556073356422744281829303441441405750514191659791544522323569033533633811754398934152344503953175775833825221876999691396261970610350660572982958447632250622319165371933809037226279961001840318658495972979317875962142003970307689850279930425951986408380226278577309308208673729945078929710403831749134935708733890339926699524323103626213033478853372540635730049441548908615485595065348163044455409206998294276989006064262475122191010571350877527485952620091300014945519181699260842523942575625740291427781566065967276618812280183207131646156660591008059711317836247652215697596884116229484685007040863990216249089211142357975449368064682411887250556303888211065457264777980414995982234038288243421506889335739742662443041532689147232035421857226914897690678852331940356727933243750159304090345716793631341944886155304164483512683341475948385438354396094014511344122714131648499932919999134457412755351700525217216042917496287843501560110696470186944818521117926959888905159733870393225153126323022522546319269723122343559341686950055977415042952633957658542861501233433029854137546942393058120138385956824888237538447761998394490010846527954564760773948405470656199191527050304012300138718585305597316326036998038479635160033838241229638832617566988182569202240124346114122752387523500526166929771166720733755837038824715981796369347575617165671270751354179314344696751248667769992123884997100617521798485216539922746213731730590515458348926805851034453647888652420971606668908893608204359351266284931548191442429098543758159747469922019943557722226468531412260436121498517097987140504134209445223659869466566971066141689850410527974306495737992259228383137989681760782709591402881269879380730487180918022628895412341763765703050140678157609781116680445730767137300722998878782838144091998942864309121562672117158750942958031239010961347874417905664637532648167693134197302639382363040199329600994104275312096052421024291456542604783224271681110209454167714706432864812480059582491693219217537861599331867302091212206399617812504776055749060530784116884629728319222866220469737615723762717167922983603802926953625142426545557144759899666544220527915429378185324547866916316169912362706726494512167531068830131304251232145912540943984157955119117398617937630231214382709245340442817321697109521393274050445970736284420810585978591077117528266049205190177257471746159288929240707301065912909674828927078787276876293475593657883734064725680740719960532393540749736742425971657746694111988752912070418856279250494915212715711868845144733113602876996192246718763491271750210824606887654972706544123009627512581313871470461121794493808919555132248020032915299161390040256516278445986803232170196332082816751484244179225812353732670611855594293533692353612262470380444985273792546414611333659665961825908213530616654746104531095781626324491189484052027646258745133348356776557707285451575882273790912270447300335470090059744271958784654448928585291711898800251571032228072299565450345630382376388366062659938594990202352265643954503439676024265114050871870743691502123950672832414335643262855446148317364133208508038400469468676190195137852554420637720268272827545874963777832052937939171336885960724115192690096385331512298722441275916081415575409261057110808485148428294591554087782017151541587329421027792281584847276211281700721519688963678721928298391393799970678786728522126965700463755578820211544403176122658626773424354088386879732037865776531494229446991985036602468904554427371843249638582774712612609688082098796221387231596135417986878376826034699826957895693418364711695051837764245076272376598189060592277500165294095582129278402249791191000267594378078807999147255552010593187991423203018343968542247214862490604132971982263600477783857589042756799436814436804895612141828718694917603674795822012614665682282187222445815146197977333347701234632325885305139318857688542620529028095198118377467920447082048936247460039159829855523588875565366638200597139580534849112254508674801026640230100781828919080737314346650096723324928484015210998863190607640659770390092331119861307737815931306618686076534506835017181128392216662653641925760974205149442342804634933785190690094483256662295745517213838042570308340923493994274376401929604889910980520402443328730947449786434034989767689518365061650199101339451737903065880038552343001673465156535085302715349667842254603176061864038355370391553137585514863807706891584910628293318952915015790755942576688270941277251550486236500781302739711823405293294160941814642432796191429256354433073812389126237535649358868773557473162244091438191064036410097205673533958631613263527267915222481970288151828601474807955314488606105507843254514908567829871334045176477671034888634886808426207376413027081097844540698761014282144600382984008179385602176031825997319734171441495351892681310297227746523755301388516964290682730204302611678178143887114382131044506614477067839313659983186548933967537446288004870514521471549116268006883102330573612331041991367092907982653068644649794065055802196653176971943811263038136588009563527052879015497567993323664545080391524767598345531023526059738200526782086774206894585013515900742448724890150569833804324544862058288345525196288462037686263307753316090589657710994948671540172959649603419008917253340530394453853259097354074998554063207030469796750072146749667938373660769421462586459415096274756057736737670009711769887012145178902797897957691472192575517012380996780346062607599619391712410489068620239709414360387531739799883185239835639754347539004094203409180618709690004048528124332184277077710022620196801163685925035993617713398335576695268762863886877738012669790542188764448502526083018121018257791573465553383616907085859134814753810617737901744601369367976880667826205099376258750787125410243341157896709049548503283148726551059792163497903715777325136992490013983461267177855653125770772528712089030119671227700961873741072453614395683073205840776189690457652794113313197946579259779532693669509010600301594769035116396269885338668721028316958706327584873016596465807036913729839296393910977273740192999964863472112227259963880097686747530993132628051648558579702029056778255253648262719008763183443263936396105814048748073248987080652979210778844299043317210896244710358338779515211816982432903633226653281060208785330959375494286331540031618842492764849607951607737073578787248934038854774338788988567652296271875498753605368600874546443461315264267687809831548968544915988705241148845548169889641537408620273969151335484336162930917353911076623626829091798926406661855424619966744700526171972246929972807178672185009569363502759541747219330511265643373958604765709420264469483643602311600403862033207708715552520658394853563869458666453997852379646762484866497528561840523744148199927505104568239795257761428947633152198012953807319817237695720431830651983757004701227675342054169347005515409234239116259353918003129019247070400696244767634366427797597916450217311792873902483381727677665550033018780307553994855286636947921548081263391761484558148047658946030105615216447093891834098739909838534861923892482813797911947155755577293208335455227577402156046925269938050165435244638489355574544913929682656171324529446378718863786625006109553936647731670867773128060431839290195211590038400172006436095725901073824946135324197031420860823112447152103850445990585962383992586913373745239362534355678557273453909775062580802763223732803767843760848513794393925013661638658930858261985460920670927316527089044552124488499408277197786799758218121744325559277617890055048595386054986540380192645556004865931111352186176073768408573374298952644731245194595600488134119929837065001883055442014151236905496333701761309802903944630900308126766143790722239918227817571175675529730689592526585223135997472715513991387956094764102647321183532831214570196109880110540122287539494776364859888753245054690378068840515230158401444336226657175854465907360011570093632191025887952655950978552656107863937681656585680702250977016791018026793828710867335979323089705935129421284020545948465660463478900426107042837705649157661777868688867600367501801718581381401116996579206228847234858142950296931441935107245710932081716904087431524151288779772207943969437146335100113398681279079047942318184538750060041856436311090976195278925224119249463713407801364009948811250119525459453546071966533403059279775590289772497254123645116096901085907047453924116905886146771422950233519609521243114349970965298495638285527541437437728341261026193264629860548392708270821076523666026524528412987817869011123185412186563030394147359042309082900849192198185153562860154721738926058322726660796822952927119077056302142495826137982427735157923503799075290182866718571614166476611534818047442884938520908917730510623949975011524777499541693467044974366449849759903113587425843548717000394600121442060607316712691522607881065541638388125566944233676618129932246387977835445982599340636291610827725897053503536790868543776847303406467084217796227742690568284744031452394283978616447651889991312252319111924211771997476105532402873358362831218106540339212119987047954117230156031158259392100137572272056916529440852979370522692955832280174029763687909750297928700920091416567086525777004702469113156558178700123516730181700222009578509786605509290472644786035725873804474501168601861503973253294164749926584788084177735094863574303922288003281410651547494336087942905480274056597175578679810497834976607352878123892902199114795223632215892927470589303646136173470150654573788948451458034205166163566880861163206735061431613681290223807541933487254540319404823507769268498049565723107193215721077145431441672878137672267729267132159804704749838080680627611309392809004597767972855123638946401332684964843866732336429894140058208773893805503807500776903207766157834490486032687264194557607716165612751100114224906973708373246941411116097484215850569907434206197159165447191800040559612481402906429966228492887510565179322582148739346374356561845285783215343021559425197957903512029291753391887561519864134025465604417152400288393720142573940724121038544231937675503609843995563487676912277381520450626340205680630482159902696402601303812247311147387523780779403547284775205780141185818760765669301387713120484512650475252889091856818549199281643071697194903139324735803067996781013086062523825375450733191200351725515014062272802131057907737683612755155939166209968531845410887963653583212319594302490119771417624486633737511499705097276000792512387981777304001821703276045629944010390174792679966724014069908304765349265527118215585127760727589801743301266190690182105669264670470917333452215015593603615051611500478834363526828884066443509979510802083442208602578284370817616931018481715660357868792958138607469680393398731545856959398051052801258419275668024496018406496656112635150911126908772658737593605675618689554326792880583568097170484745410849775800789092835072408625112804001243866302609294617062066963658231200919119237051223292894503473956645680669602106732589281084084547484458316993687942628530947751615114867589760386639906033398247203228114700539024257857350384023616282658513378773451242367912744622954679810474653538474501164653889686494059635099443839991209328256029256987296665448570948582904515268339375266763629121590695561672860234386509777391167153832201552178567467609724719992265876868118614593603837037948942400792753805299698147238023488167797998318549746963563432364962854550301324401043476404172676609416907376231543241483921678694209109044644946586658844858766781618865594871389561861467925456547873069944534059702439520819491881410264897320190217478810709950736372540439181843675265471722620734245567731568753090595600023826777308952318876022137592749866453475442965577447941514303197754263284993843092538485756059714656909919584320218510279571059284084411213157080579737717087706002092983590632915049044566413613639540794042833519033001616776922708604188574403730073780469113225542266132316414805625234830408471829763842345092496753160350130787905872186421699704073657516776259539764882409204471178065488625359506762621694186655188928800818280644622650617042705643707877823425393848754809149737849419654945230536468488429257523506141085586087643257737275957095545675555362234620907935244217222413368672137310542319555552318223180983585845574246527187140010018840162083876983599592786035629199316877654930436165715907121175039148158865117322988618146033127926813224079700313408388942281100334000769653744654902291669962248941496036669250450400832525203107459540912932613495700025841893978296701643899857954439908285716375710758036360126985915142038038874139039830551115028684600443181669397160798631730306195504443186870719247257563159174322699210235062684465523760074515448287847916639684402548213133856696669078618655011822434856001817718931639603010116734891289250712822283689580330171386610533080457933775080185083471214296848978125335446262151961417790148238066506738656776121378985303768881000986421196999762048641209886034238946609165204146912653135830007779551171341805557662784338844444258398982203623542412720754155122664878293083462312293311920382886824465352665570423162721953282842923436608370006125131740081557691962672637131367291723826980321449995647323498937408106918389385620446798564117487670797197676697588823289457169647485441803506317273025415104647752236735436941702550187233777213753802762747563974840348502533584552222528472723854577729481584263152797869673775430071088198049933322804587862954119990857757396619966736646794808392458440401920787532628030473352867985577798912614262577098489820875538869848228167908910984170415982049422785686754029672855890217047058152934370520703090053756153212430164158867004239566923541776014626494527380566808999563185670903704920684511879945007031962727424326167718028892343115791520610048024396774827350561758878707314645656213976856861618749542497993065309431817327016449780743099532120761665138759350923283133482884129299894677178577676594237545354025455725003100813978183909052507597551800841349843669439075834134882451755984841500583382120238222609903562379955088756170099007812541270168372086152674185930951390673859521067034589115569568377249581909035692019413197432352086203890614949596252719810710785786102779937229138566043440153939732530248844059291404963612096313928918101540235965861830669631003899257556812501103488120462412175248966952512725939037115377716298956161413137245081931224943587620863738868460639843070024444438653104043855555760817351078421503944783562471597252984672985159426380643476503157064360912018672048221947206997899190771392415809154772833930309032693149744426261377489762333064314122538769513725349787318867433599177657300694404637043584174104040642230131589935427124309260089860255259779371631499890012903678300059799698846942558470859697242814259218155828620443997216418374984988789616362083665910592386710415857541227997101559897051295309479012002071676399107702651498651406658086025699872514438450841629402648070306080513952893275264205607399956022835801465104274865963042633022668305469876980623401762956266433022547114905074311440357271166938881431175490226398595458747840828001796620472762105255486504180722816709214482432968951437118205208080665519203315104913074717028383096070637802455895895361928473754237462305898684233463513792551736289970956305908968395586656275506969149368094342831135564733338685428875999920777167390652389479118676967971656643449052404710042429087048033518361108371320279325049384755106925186454004525498226387889774168398957434262842411224959818091543908143725762886143449408328283236335333239040122401034314514466422592623350600636053408590206242765703251125785599129513057257787118460632589887351698024474329541658474464692440891596256562131174668180051168965922196097929528082007541593242242449726236804578725469283672381465201132826457793371654814100668448601486760284664633640606976779199898660597384704301351245208896428802649788841592964342621159263180653908309730445854240834911379389295375845422098244066699409416521259119744286948386399216601966628097600514430547879303844410292216862597959692925305141488925560994266916499579147865182716254393864909306330785845253670080056602278985683224381376904787028897488805381479710649667287408174452185561108234232121660116766817702244889565881027419279514920407136808382895639205808871148770647693126569490884162347708525867072163081152179973933133912019643450413848929650219805846195034464066927594573718749163152754051874550559899690083598259113221536518871098125279127036521084742098013464612969773847378052092334289272273510067930381719217605875959268320740488240614590823891381254897164790377548438060282704456355412202521473719168984672307419246104685333631069912781850795212693905259508252793574647368742992034388462486667915242187693870496780662348342080419682659843183957027823886614298198314636100913090316176734229988391047956795774106489746319620421866242113348619571858687229843663942805059467961977633871089544582949398350764829883307801078791518390947593838570357259063302562061871946408236125119594750504420610865283139912980327613199255780867770758418832525460768616440310836116460654332086865256872079008947180943561124714803326479683334770924513434018502250888604843691793525397039533683382657421862449131314634096327719274788407295763315195845035543468112904617696494535968857837171300906028970724982845351220091840852850030260141254141857569731740636185012567063871261339073662776917863683840585331390992268171594831737761310452966454917290909105075971740601645160329892640592336769569263161243956923903670624909427594987100410846744536057716071304226617752609443802370486024475034712047482392370559144072373040672882951378156918866031687790756938433017225236054633529125018462021204395330701300108215926127084324099614954018646167218872397996888954365580955063598689961121537322766025132571538457106611685966007828015542788019906876938680209800193976164437422357377267054677282737530079223182619331428457496304014764001557426650225044878909797968400034205756561675603290064811804247237887515243228706786089086227404204834484182464103594673674971499469500655077261245721827690739320525403447990422750121557570703802545554418726180389975843035048850492621022945582610518356316736986595370052922074944756148685795187624126174555233796027560076261917007326122526192295637722642284966771794441620889954047558570961604165466677227869727806059121630202202340872685642746455191928720867952593768995373630368253209090105476627783790107262275879940674959665172317307820885623158498832158759515422882175831240011568353698635127159726283672294195419719454174178365509763811573413963704123947716097446424891239733823233214853261835471268673381744176776719814602368958666483219596528986457882020151564690970135909182750695159847033628874589190586613237849790881631004009486377429375429913553753937252392860927508654709758364415153110224251622331461195067688449674846040434288294530556863055705141272073441421187144519180865228685751335524551090708557631672754274618333390460484800922130315902061314868233155198202074707365939871754583130116264551632940590730621181412871970737053520933877226537208377084406759915958091846012855912356408741737762440287791733507769331930400204207684059752995896063256639627938522485833238855650429155750290658415829056529348306949988238697984362158345617504298241722153855827576253614585402766476707751956289814682965822886191221529079785990976852144046003338267715102881547743773932564184854538944665000083249748365554500594436338988819081701468147687077434943742534862532464038144174174180921572045473596377405015623674302558606391443390932990188264671194199309152991314144928874135691744133163938300204892793321128505853909402266234021212484675646720882442216285659768020865048537417231963784881852025308914285216059821279854128800979769727367426154939783822363041467312485999041454020572391857866363564325340067995875490204892700857198759531451436700528516385849604979807735493075811926093890688717157945130717877332987203893606871318688532083156922591300412854986390882233983749136302431993963432462363387070602877006024971448964529680737069246623519131599230968875987815663918578780685801821021571282558729309703125236986582518664004570444336169614093212094538079624253604266480681349406592631375936368824292522281007028730146630307189583135037291582097444591548201096280964707293272580225697052852453768630979155797494257541498512752247321691464640228877762792822976189201335788729866894715943126788407072094582224991457408305337875457051628794149428399267626806682940820227979240748136490013374629103025098486898729786075000772089389142940003538520036184345772598537550709216066699616893433643634113421601148484583041452671180594720289845402587336747138407810684237589124965337532514214797354122187754656935238397981560857536278877248632780792881840399504653501189479531804283703956367733821365604955166358745436536938682228989853232517557626681881914173097861106616714855026847337092939659822132828508966934060823968773731731875621903720497049817440583341791008608297011262096852345617619248300088446985611056159846217579920308926346648015068994920656176862659615478480520257018442847127675868848074201484593426750814767949655206321689870139269369733154674779780066437500608723983869105368789337152900215365331095700825485310918339576401461442498876501771624750839058925362541094210018438415308488695831224936083503862427985896246493606019837501131916021780893517988807135472047988446516649517922481315005298828817894755545458929942539629982574486226061466962557551481305188279973350672672020197736530919449013602469852583617891749095797199203270459218033152716920922118541102403648273239562960249269973864795772026062764266598345759609990168096536195264175099889844109066961179284207047666393760302401244317281599616099015526572089998098654355872601879769264616137767363717631104336065869371540759723414941756494378702845749353241375739875991849261081512705190900339712597430514305702975239517760995837082087161988510994474453061426563956379618285342148886781919316487150973207785905090988249197279459885206221265438274048970294660547375503662367625082432778102757754688285307860888431132760394996423452244175060293063264099968199116557028041423077841322381269531988508839498768347347182981345538169015660802571915304322928917112911899349864954295077427557375274438309659837326049585685621722780135782612356376155309522746201938208219386199745389314076570038728412684194111034567365234495799101745912102551570706275158412690181454186591933320801375192214943913113903221643078103983454909840977899126710273057495833588841104607624740286628136717063085918955119453864349899430657296067274468875245520197593106600425717954112247350302357869294719113616414087694746528466904133519737144682863718762041360707878091496778540382223790313259337074167133766703000741742978898109420779176037052394322107462505365612108939120637480037778529828103999619823667448886548589621758551033796026890382904436201179306626141039685738577573294661879204167173987103262478755432267470797660986613288299076811593565639646332732047417397842653691991906467127781946911429769601185114712399162464385817469616201653203806904185166228343516485328000875272891254656856297012014904239184312884883896632260332664905046254245142153475841160819809444383734888361869658817061695764094272544281389269423477705157476222853860002129478588720979641628487848234029786236451576589539189449502412919513796279320330372322421763261558414849545169041504815948845326453265536532815848523614991170174914525650206738814655674183677660136228841813985445758381751492167987536236302249866504298809391026997188488025970217044859030202552813761433672730002393148762994332942087539346375104795216637593694859285452966923882061196092401089219405937035039008894895675543620436512238135046122323723828668560770121470819934006325005040159444761373302931130726487374288653430191356626356098555176481574205853240609158894553688338012597063829271785958791348728751465702781750624114462327616535564288076138555466953496487670492598263900479023985157001129735104227349803979305948932177313778358946427421490828189607575316635304741329167667260958198813667519385608007083445979694485411874596378795705186883884100245753006979020674702218952467330629653303426474252506437703665357961799272351401680882572309331949322358776974720808316323550323053728765675197449912433107347871022832515434686531448915700185727147135713952818705744039990354952928219841943121751076012396068516715598009592481132330960972775272904089193230451381921405954869095986361563949787005209994004537373431567354908127037045102005813944075001957983981534123792549544126830335101009832940686931676314865221842126297503546963188038372296932731963697435520649355414328396057577614968768432550718202598966900121473966341211901611451592088727225082305079329494940799830351174391399835614995283176987410530091916463711576080335115178235447528909516696686772056010749497280038598968896901759596516320835992496579187153166517655496123305313223004903798028925815658853469055920473202204485821573914942454425600768748759631963833719548921803484257821514674327983246267139011509554735038451227067441681587953146836799009688503526722891303705034803725516475105139501120694303261888448360129314145132674227744902058435661357202297602569243708324414736426416862463644112821486682308327881884947625752314759759146019118302647032653643510486287233085030137298713130546568167197168909055879919792392367836076610691397291501702853670705691743297916734970062823912095821419327332733613270463849789711694368636317428759894417959700051502659484028115533678448928909871112742700145569771860376836625789101295632494217393242321683565994137149706344639312103084265173478194607634807686670878022560608339981968527039139188862490396768846201364756184245301094117954282789506609627867159841603338355605171066368563999545159202948979090020163703619391336687201158872273536017006569606514644711203400943095519387793689285716579799457026617598067506585843120070978588043952208993156107255821903738904382521208558934052962687060394630838629643570482247315119888232649651233926001874505872215584200628956419557236346323317361335396359888281541632458208682820517718126742300099671455569399632110097920892793912061989252278725177062635673906769150750362790495906170190263988538482422797935956600844666462081178596529200239700172573212953812229585724754802996228045248031514736444760700584014701116157583301587986025670532869602503766858946889550232573960631133507900623268146589600610591834449817626946843606208746372600234287310487775097199737297612220484488361532968141040841915273153029098481060659105241279472067216778576385034133353529537686163476493939822061133511670180859337489200985626021637536457637808730798794416303132933168954360854818827182791080276498243091700518992563777206719012825956443968145497211987753624624285873483667277413885470742789881139310367100740260458095093740089319145503715964300220798709902030657779480633150782789403884960276878675011503526599959653911903850995754136186460776382761000013046744203755848419410754743136283217474996914017256274580190983073081459895642637107074492931859335994967784546397529866823300662605197052958396554934787934076892729823865099728336887309425144775293325530109293889095059621663500645851682645654478451804215271026641454725572435764674125915003509734420041401377964253027655958003277921091723389069380230835700074572020775070513207685367672726692982572788065580773918193865262987951271748487023113390788148797075662977397668867455950268211387248506732653087696260326379778838170391692259670702892861072346955013708922273724157473521463118606168332964280894271093256452178577572704174104633709214904775509892915836562366963587170022547406720670931929112985049840901187497082556550513631276761951182373931017889405195526807383157327019984731408230101259867986402493126529986983706751746197612905864197151016919038113053899625915440589779831881118486367335180610964252293342023799507987471411797241331949703521203902276907616939986615392473230877439331993847393465549602467485145956108938321434638044376429674478060445428611772356228812354554938549367470318309386300599480810077755226640985806909788713789989537772680559310626158376832702273569525481628683977540598313218810720959573489257273336071001773737322215725062455540763681258182099456433315664416882111240820296324249271540402575584385620799724813725431479791645093458917528230377941633662345954082703595667410342058300651259660676105712370019688828833357826525654085800608124761783461213434704265990764718852917881655987603366605957229720604676414593840560509850038662572024999916283453476012140957575613113772014222253799922581926309476473808249210536672702337569527475124675745856564754371873702932038081647161848817574928456398070360592998581417207052391455581633123983860416483722081550813408384898901083665842259270273186495887301491547504577986560157949609869258574072809161237457612028080378289697303684705540680696231495085765857801794576930954674892891072417269970878287107906702212140537533489916127094892472675723442101929957163172516772026816451195411663791387290202669894522022670168784743420653592953716554768714697522073086541753076955028774799656944228462074380055259354262344681187296618354475217325954724035991154990338109892925383323011081260111945829132478918261456590057091914804988981064109265319864154915439063711532261680139136920779031134411790449333305328602224881140111831216907985555527652770129689707994152934407577444812152158339148073265885490277392918946944302230603364361243527017659886978040729972951305026433629229976859788278807273842386643410555618673233405243304421265422580922026128079377868316809369096503930718518869575540535519244740101889434185130363771023719165424738556977234345441642929428184121355056160303404151973051705672004152548414304800326713649329155100475272886357431562722121248280803948049233994148331688168488561142463985627721248998010469252465098429768002819887389179671615997562994908103180945776549930033533727660289860413051372088167496557989385646493125493052617941543579324399672646382231279930438250274570461566122280211602252971111914726047906791143346105329162911399418142705859569412093487053298595773324501523567449733143059780347075981181049962648346584989429083137028824246407670486581945540112226166400672097493477354322366078909827936291801786597529669160491331805864544186490197005312721109486728921611045049992850339238238734277274981710686396625516505450077772976335228391909363416626867302838597762854881190637657141567485229002764130072284646247766040719996946130087123096981696117764024588024040122774187119038281453640878770214050634920456880386635063758276521482872528409166759588368951256147440112438105841481692969689423082697724588266279687970065412237491137136835182738167865499499087896670694422370878594470372287431615091095966314464662011640709456097479849023363689980064399177284580701668068550509013628723686923113752175319591326036854910792708522832260794133428448438696455382340435073675175527928457599938970840653424134033300596542258451977435493156525253949040769054975535759742832707392614050290255313570590327766024728733093759232781801218057548701548456323215488188217482201759332595484512386428545698524379400556433592407757392438540423436702536630969342978657425267029908573234521675617101232614490595100892202344011910176219338255348554145176949234041678504948130811080374215250832981663150344058782068405081079763511477872031404917793340569962455700051006930361755386798621059221137496017416478595814599384727211793391023362889874671002884360210521700308921463828346420172493377514594618451718646938424487510770480331058573627422255689810783595056813440781257672764677591126616171714054786826922213350711592775711180936216356400703198861527915497158153186202558161036022088331406223343754021279442398911151482617614567598284941291843503814374404066721320273696559094656887718675576468959379984034284392436428313849993610645589957308217524095751980407563224817278371939120319335200957967988540866288584171586540247531946198478449156362379422780084825190003421829725003680779732829653827382682709645778830629073257696965925850224788347990008927737533233797391994849800794562016268343529307082611391508154015738635874791087686819330622340339836184097128959818775626023205090090830232761260784238560476239941161143199182328557230350256329962309879869813721987383953495088005110565025519830766310016192697934113779965087169984295060734385992874266928213258062265610427092985553235331904842970575979180286859112426781332789200013066373308501637457899639268418432448791750405966056813434730021152127364903814601466017528049512323565233230088229315623189074724905181203171677340213142478203861067475491845681301759363368232595629415108506637332413458652626330442778920329963011664784310557886749655601936345406661079804344331017604053696587878207011778353664595797706500911051346718061964562680458928553139279886544887182923617478955381354822432278861324388745375730639255350561080220355606180165801131104666555168336250153969732794833392031991223422733181619136173947909717352097254441873976161679954491574066642263883621082586548246670000466030450317690803460968038937494212897244625073723788011856450495437177479305901054133091546327622820601761777268357199499472100085888677752948514618328300221605316074502862271394062257522715361531179483253952955527424432220185384121307060883994372900303241696223646500626792069980117450741513885691722498812286945218867003655461487840180919059684641517409973838644035723069764165258889246501333280105957708743781305626269174338976633746852875990251822716980066713666467083616352726762816491254005447324342360032669309108993937683131442421973822993229788995092621454276031423962542712300927051312568496344648699864913368849436390897231264269856627625111959533090158560243389824306062209421268989550333474686793068196755961498527973316889311238639281597048721463117848989411167729941121535565955646022549236360297674973582068682453205195825077303793632075825348542447969436843239583002296648031945160688614692469830684283731363764352576359573501486860219543654140642015581688844968265881123465786302515920844396872909373011230188320082410855069462747558507218819881766416253532852199367845091841824286558030815143191247170651521537685607542529637607767667903553404206819509714369610937178250010403468338900472368357971887181718669016014165499731815939027534042970294782468857158030807082715952731988395708272443207294195414773761604963690540790662485698192149417427233367086119226243962865004547421003774815474836807016621297096925069030039434013953143884372851361467948942022024409904564684901280849422300596321001799673114692045032579221535625483719536455713051997700329849639310224310211805119791764121101706761203731788701899833656348870192888875302157278756468365042021144865653200418273581010524831790313233309994803493059499809103590873306834262083753305080515347315710483655411018580289387147646397286797086481755119674442027062310288533446028400980642736313901151882573545087044012788032030880458999401392857831370320146311690082754084163161370113782281758948307572743187126630136955406497051240145147938561616072695875516188977592200937254943422630266669802190564249413297136490584514460709354577053364619270263510917344418741659960580507217623223706705276940645988282696517385967443185049350887097788445389555097464299149414157410633088020914602707199218169818218483276781405657980319178606106154690147507391813277374022575846501933629271786844135976209467944134056097983525253247495474885376196455212872021449339518571677971832401361516808339481203386477683281153540367618804871195257675141844988171432995289518963021219244046783780574139721646761503521835817541959880155878183898779764752675857488183312641675017498108151439567778004303916562414212621830124978139899612697493113663124534543165412313702465446789221386332616722109570959567758747813602743932825258678809431901878317868851628155066665934899011194842040086549543060038039178327962106972022619173101394711841352382624398082038044725604293968888608047661814854427924355022617604338303799875324936338443379639305106457290147033504844251508294100298857176022094360304026895452539022641565547229674440698160995704897061857594830661245396861533548551445973314158488230645087290627474616916126938112272403245599778850235676564210425635282243293782278413374539063268417248112947477730303743302845461431272614632310540053534268742950745160711682113258945047377998525906280889706008419943257243535659915956718441953266723635695426037513401604302917390596881641390046488744619877047138953501720887829300569345883294351862364410505204728507958090822774526283793096212452475950455166123614389213213036327245839947785520103581781175469105111085624843978132712264257381830658248814921133451601187586782182236898768715108552343084383567291462242105743861733256661741960999369518703480299056647746589471083782738489439311337575309274218922336238702412781374746994393067173792589616662082326818485942993720067220424966657283017661172517704742438388735609530630771992302807016573157109237226340202533645661421172102504983400822458632583416950677974907621573373220845747715167283702165152572726906324207310811266755111169475431139342496252258865632055943336433200425193801686622369612079720805807408423669323592226845180555327820709234989761967121716779791624257801814465205156233999357071380001865432511399524061571396278600427487610222747036056300866489818556368512883809784031645130156569345453938673434284770685138722357292881400581667792774383039499142457190528757357218154481546820977692300397019315888533448318345887097841660833222948177642962698624400189562630801058556951873430032304591293135903898244892788175807765259826617204314842674062284220693580529569020966338370166053163585148248029248083532133338663365526558462065426472081380042288661164155538597994344077718568151087555231264485459645256821081013635433817960457186863962819124972811141554662949543549349146804957448302719698789083693224957924798264490284687299072837075201278284177012960380080437313604235014475434908232554601707572472905331760260071685785349044769308844556024080018247553816329309990470595795770193501515774660330797257003737623255902906413393825012755626491005106166026735822600167579268042277125630420889630823949587033258818159011483577588531312006759748973214848738013554733368222895843771697332435968670614741742148241984917153144445686441030737778278896336591757347859858308960489237888649957448584332371907905638718101778970489414130439795396193047551369668909173816337402028418059189263626349323589579612334833976128357533021693110539509637294959579632379062570244037917542955152334626081147354516172831915170000144748991952187764769177966195256872119500722879969530304853696757636373990794430681248544119434687697648840583466166322142543924677832952529126299078762642276063301771694989190158335451909319697105551425438046345447883372958507952481690982086688729490013762749360276100459035680660458689090584312586923638973815078784839132447306209821876006989319766481933313800529812135884704613563894279277509754442713615574142412671213436144314576935943185075397401556345043007214773380360159156442315152666808163256500726544917370907422360997885017528604830879069776433780244014383691757658234996002332839980242614323030516471150524613386922955961983590185269892372061627667222391829686622299690128368372107045799738232595533919942730152015863290310866236089028743115114518893644416727505857823639204785073069149080150774213832613456097683504703206480869006992666168587556865572971308548868485030559274222664564895521752342533944115055347251126468743011225069205029365883934693777427357488189305476305456854544185087783344027164952967643576545542376086831385501284617934105641325153600110116231324866989037832276705254406296896643901644662426976873712779025948486723050418835127387714999583229272010569081764772036574538306263212128782344682857126774021613199423767459690263443802758189654733342160761958999107135933046080063601143407859022230138144316756189416100838666846130672978799816026991984501609036445035430068857491807891174988691858559120889273428562407505986374642067182688584104389915699600486001678029227155404334781281683206974252590081899938524312948654909701470903489016580485705910238098402302920954845802703135799755060827800614928703420610189705928555625036906666035191351050612737683153603915982965440961198482603792153692821523175373304500745945602650416490638745217128821649779663089653203577927705597573878904708976072822728615561333655417465417333253195046144715961256134472838760794979203472778902606455940368389398305128043106897883209225526740309907276663255630982914337733624876390098037467995836331670749095601577678062528418158560882812510373045665167838123292026443334289247998953763700284708820573178148028615669470671760883017976295743657038637665430467430018221775217079790113781320209171012259445939476032633522100344096072888911805823029880001392105769902061041194222590144126763937547565855233263646136919096305590052387849058085854721893143295125655098911185457909047430986724519821564840929112356704704471581654122420948489526023954425149689699864689278653372050381525835533952595949779245037350723360292925681664403175447209335023469935734280416280575853123102104034707410553947946623422472197654186066330756093839284302455618763215229369530949672614539115504277974291394623481163890994557198798058910809405220856634773640251853315792894222261295196710148786895339904116562623610993078627744312609857915198651082193763442397509244443188883272167231447313989275653938746908483785999839030192847559908448031397572262577995802383718211826107782546328050166275692933481710199921368849125797417834412463621480799326303178963007731622874110014147446829587109640943601651146437040440424102802237154864341631268697102967457237993037870911926602268854349339288469778331833772755360023604526975533312074052194438418713170650040623031425789639624625508053462319515772721606824679713239823507112146679033342531661050092682826978320517079706064770947533221911300316343274666492125853348698262849933364907497576271776242384245752937603637369306656985808132424571842319165984435248363839147236770911254287974928409167148410560617349525553038080254890897989983399744196881644358115996354194454682443001877393448515678629937141246420255427628034645281943196998515677594280158901172429911474923244963629665361122564620817780841937367174174869303198653923145104203420878749446383420074236946741673791377185417293021106725290049850589395001576446525784267850500412815051411016761090241799811636736511733436305204217188346973344096075506189228320800206823218825520931668268224055250678533267273935446279535445034693467088689978296597666801558685554392805496916001538246441547296342643462474423380956166974864326785105374048715307832852486092147929389040061919407758541257721829740311111668457519433771546660593149632260576395795066723792480455662674495901609904457170074768530182583591118470271817383992206591146973869040710668891914404781839401525549843098417404296297100375889026679800375423520077891886893206588256735921633748993219074333077632368063067660313305809936503927849966330583441058395584235470613925830296256059372949699177865370073582595672916556375753338237946506670281331633677877857765403844507622370281560026646876008330083477694106522423132196281717170517457473158031468377944229920625843914516306421928076234721173733905412416898122211627447460479742515349515614487846451905980558527492770651104696899879122692095436329187565984975816004981782653422680617557997788709829039794776921498971388294412989921906111009727334464422545870811256275160768956041869526381765629725352532046547322321411273494490007070709995343823704310299549318990729038940393600846457924780974770689377792360934824065290804468238738675355043214380336072212290228590015216874744186876802189742358281150586845563682198271868382822712022953559526409811922062625661817453862043789764774736740130114106191782005477288908821348907136348279155939588984311141468449293179595876873104619946621724299405533634560437264288314927165898433580145809725762776274800868304148766120407151948274950978760628543052606091740304158561947710424021563176127625037890826423309483212927690310813309633553644609981134686582629193850306336466883852804520439120650966599343761209721035661834491420632975093591105533838199628637611122145983100288638777522538898710716930772948289682838818008789055758962870282203495555921919642820702660166974704507588241236492467930828360440477992025567808100970827073963925898237239903150169736878073855053728066007033935902989405855071015558203951929452755763416105602426845117319470938660056472209964497000579711628683878848068645754521298876212011332307835994455796242751619061661208659222884439993713691613377477647967546404475222365198791890666869461536340304978504270563269736889717678169635891214794508856032492035910500052702912506617445710902488231852308738473375760962962300323163193177051241885518874008914452275838720303933463413703988374750037000413030323746168105282278963024065719542847439561363059606636727661637076243861517931768563782181670726366526372749429668826496421566909876575563953898151737153919037387366178108511437354917182691516646587954314366916574559914509134698300554346973946815184912852674368216332335002400415347563366555436747853435663843492308266410118637946368242741476321330855586089115991598069299333358737999211709877610100086351226966108582377960077298252991642245245377579078637677001762042169801201206477788168122853229701582651537591047279820858102544716438909214598859930587389980618144437124679609278960169959305673114778765164546041828068081373056411394770033955105929671179213573561422133497701035557890393120367950779726785520691309610133057995736556598984214080110895777496352490305867214403321226633945777603366707398986637565550566837590195411170400240417317419194394595874100949127918935832205096075154456583107646322020741556730073492983922375886024363302193587602702353834850809030972404723067483383427565419390175663305343590572925362906666292442988491888974930180463368274060418797264455287909103745901527962998641911206412766341665467260103101439464825427319408260519252525514707780650538193970341483331883886244544685875028351367931069259265542345543140287727009644625932593620484150997618613559311505374332059576171817539372376834948965880556197103384605676517806077143781175119854958150265954047897160571142748167043354307983627680857375203598045470718987444627551568650652899034427052422663290067377061407384533145546369620398514634845405036245205155448090190444992779197019463405204021649225879685477096465918960525508020437435632499552788756401854856880904661726647219303539802576895540756070945089216392751733624848727460634457746061430015047148066380230750784671866268665480628749533438126508529861793606273054116087751320650670760095159696922847060025105918981686056367472284834036623131284002783496502642074294648098719581798919823422678010991367265869779572715637083820603846750851250378536868905000292924591381449676103680156504940064501720281008440749824884336338377389451464234998074348754194957065340487599306296865740177229892207041712379380368689301950471408053163679244276114987282434977973451896553103515163001928410739851952468072113643847868746468783890546685870146820040424766266911978505277023299502552375920218239761314030131820781109424341894035028781848335699875419549142490764928185012769692584507982309924563974007490022041400408149827161772232785971823207444360963872983969617695232630442266714035644801369501115127361959523389542466979960902971117729497985260181209594985534793603995870226035386844460060036455878372081734484817289849623343316168523289628174768656694777447841176667785550405402032877231291296120071756182185749660721286011550094324832066067170837338439244717497650650653958694806527498510964350441313666311716149092748008947971551280380890602661233877021024608712602369236278204272063214885695583869244556192954397982824586312915597016112139337667041604781465453739848204793206230545889183023663591107086132361362025300605816801169567677917218658389861106410284466693539512890787367358837880907293933556892422980921899937585652519996830353957204303815423832321558948134879730334986225669486094404523710963112042947370999832775237590287943510148079602410853182822727206520917140527163995570068548889930713270444263811713616137842164926708454473601533715351403225226693993156469392548886092771946950951027205658982085161141693758918584977673395810739552055411361167474588940005579265012516802256429132904645122461016116377589586003551963308462636809484298685578212459237860644910862614952838673857484606243294769755650601734470232245169325819594204801744386182779009979102699794363773861023435990197290266572176934905312421082014790107623442211764049817109404564671479648318500364607065243737991495754907464379355660866873504706880288802273716915066796162272636779142044531138129657889219079893067928079519634385544299305266711818831693181515330008198341370336333781165136447844956432026304478905688325391327568550064988743645297240190393219423619468581860924819914471822312563503610709908143816820094888145747918340074208805492824346482202018090066089312184871142202389059614812957078986870673096328350772800358466472526333260925467988315628147216653104290355106381867239459262249189718574662275644819232079120334629404623716455086820747807921200224810448240894376772964570375052148843238334778442365762659625774764216633838696810515560040511665892942265564305067431960663214938326852324112410309829261839656672653757096227270816376522222612795703789130273622424542802357769496697979160378060206119982965376686414860573724378570868569536717430528588672794150486971707923068099196355970906670860867044395694929890349846096408355212432082158722098569426394420680861525393226385146418582255088724356407610075557986030430061902939977503652924496276806301619395868967484282296966828716007054121885360112526214726199193457011249413604007313710356012354491414456113262081479722024456292008554596767107745262944640369871156673705233042276920606892199721228765159234917270882505266047849195844456959149545052034397221960570224287059634771994874534230358497345554348357522590050013267928952996834528300292496787153256950895599473560087716147867358907024223034525677092641861306526224026655930237961089086540285236354325701095038570359225167241337030774595282986819959453161810997086177904319521494540869980019284417834044175757475498417234322439525421877214719142877946227042455110384041022996321821486724478514170043239076582050744174333913902549372260051917805528866835927835968613048448054765207011038705456790506671332686146917932097415430437005900575140245303811350859762320498835003752190107317242391320612084534163642542090199083978951697491908019825707546953871760435550310293545603188254241234153802602357998486127102726194594617302501506272017827183475079537546142823224020480035347713087358554386583808986557902901720899215236260285441345666442100755713174115361881364359683391783668530395519789793183344026657639581776384415020474638391694349403754718896359566538837878175800852943310515647806316755976396846284548685176130784923521928758438571742115372742662475494600749829464689113132026049824266660617823621675211624467655718520142770726517054576989526891586548638365326577466124782875861639551056907937579047468002414808461730023500651159437599504722627953558309565685290552412433260659123965566162975159924678569767286095783870829726888186247764282460889091310277168092334173218186389413029912801785768100411845331705487807299353922416470846592767695960086133846725891792224684019652360040451922668805022913825254274427296686686844346999364644953850302964431418168330679566065919224226864233725897029749867798223798697035091567288250118972850543669699911822927643201346614262096674034698918812334912849878609458508308541160267918749563839972658793854049375889376265175214313400915629767663484039340597113895896111779237271973120087119028387238504209951365020895996502386923874311230076493895458704537403913276742754658569143249223442487954978543194217729551032904366695097122905794105422297138498333184568167800471652743034462150937374568908834277265499795897400277158697281756716217747160623935625132132183377063081236199066762068912611033583997668527940228006933262304276436320080460279454398218569268957608829810520347041628906151426955663260241235845684774022161533175079490450618994277541648766812830608767680342801370615151759365420040664344334264969630135976957110953844130547513738065151146567042728087879211161883867025832614835203359524897998800598432685214221661012138642344447403554153618125451232725417903752432846526134001564034078029508317387068633858218904309437268251977835434140441463122505028998509562964721998989599570276017161080026390045428066701936887008687376096355170539610915864885224752259827608509868639319086571570514647943064980794740035993567831575316978640164121027673592744840821479316168720146307368326807553235550723378451966583395961990088575605320464904398718780003877653449848279127297597926785893238835197843597745199337906050047835747413011343857767012774677655849643653499207291127505244780679900247638081336083769159343073447099908724612469511584999056938945819299683152569343465601650490736543456168992441785418309627877468642564733090801771234738274986537042768589418353870662496945358975129763649216620225195597820488201122024520631801743185314053571493988583535207253360592816564736622280375125433181190686358045011060008848948725199038611570686001291733949132919990989699652040286479747867114112641497352355060282805638673189135206201822654474237530759147972778345485196580957117670372489113221874184884205375456643048605484171435420981220790343901468246430804763093999998809436403623790495669083066589344116671233071908768869022289082455094393576537008813954468575958221592423771337592890494566991341957756948720993455234879742554959734725668245703275248563420580300519066333222614729844663566441394741536163903196368909701892934218412965470642120441579830928211275512323094119704687036675585862914686658160114690758181453238862599468813061100858655243133038885236178754162451931854885430520476587697178187186060324509226705023562330752865400634453747477398103301753010639285876706600683662423915934474792389358684474668813439768412895220852628080152478115809087282720910682707148879262220018872071335834731160493875032024713505110973415142718851074543943863599825168938672783207606565843299641926687729117880553063987707589284665465017568713885097853054377475608159818905381285975975872902764191458768046930395798940250280628449443997726788334603498714471591118640875088480118250466062694928132550585446066807219280767226318541970608997272793288356308679665821656376621268700062086139857953368721832976694352586585218102197112799988523286014542438864921063962550811291452452556165662517453982107916583229482739198907226638085938777066692017984543733382575833561654414822741349366889946275662300582348641637489129257434542653687209861633471954725605376490261109861602206371517203173107223352777902356230116122158872190683184769671215454477771891976364767563598836504853738681471118971719168094424532016562646584241532046095219750813874943627273911539703898102205020721137964289816784565719998320957828675482461992552416895064756244587568047657982710420649182800496114178996326534938369709961865633562525191279527466116452893243942502605394991297678948685545138364629861387059300848639514482754280925425826592818116234558573696435121661127570786587873891004750949502074143285562475323406880694603658663822415920594770116272455350770188320341275061651643409892427663619490660405147590189818284704145406798633774958971593303210863967948024522360219047075408495243809362207420421644466590941861151612542143978530353147142204276050991099958425827065342806551699533764135405683985905403911441118107931792354792978041774003118902834014205913178601761814010139067839451607973409333145292883356826676108730896556866634147469799092012916395177656476041001359230846407781118577017147547093052279610780512922592213796676795242302547778686909869863959328301752671349257394247665703796719965490579103464517210563161116284757616050280274147344205937987385709393659976458406436347102341051386856098154364194620709348749556571515258764739863874662911205252188619786447193534012187708564430494976466327211173129663074014742885338807139554839666151164358327963270714970366472045548239075241704873711090203568887842627143284596829485901099120563280067781728195594808359588637380060203312581204047411619510055707663751391852063501937756689087912226255291511541716115943112322974848079460008427361783694526536568638908922379219148889415134127643812867253543943836658764989351173459546582210462070156946249629829686586946032971642961058302736294664078669548047160687674012930983882701126941745767284965389499677700135497071758739769885357016099688719243980125753778863004529960603894245253298127688379753282943478474717273694838978443031544557233271925819567795752017684059491039451024870405297775461324139574737024958069521906119355246561300760608170366063986369091968779673269874206984102154041358774349944248453987366289979370493199201243310871771588908331459369497513444150308969888483367048895335173438366613750498866788501897876248896041891956562134925599579469582151271873602229443457603123411616222118783062630160025615130600896179588091337785993827573891166174922000480194665397167253199996787824646520704202552895806129348792215707032350510788733810356132469058912542801673145222610510975268844581739585286749700873281737026503911418808636257860068677095357094541862720371829592329394290073204568908538467692807676706078362731454661357464511861419269968400363552457866825286055236087839263372094955686573058885355242731718303555576619560181320696970523147285916036574152819379480390780570177662496776770830545339964410411490744480918935442371587513163712069092849718818652651795696250608768086379929927514381917551314128569838049905838324664071843533573031977719234021733551252475402895946451934978941878211165244207196479633540280842768258745505143075409128869703382757982917252701250517485725186567605296857571710439851775863465492736334978374578557751759823118887963560642928826106915221138773046907291178439687957179969190876747446268939010438389308935906815055062518042834249848285474537390911965500578748523619442673653389203529338179687943458851309654480825952165334885331425859066052701002099813049869066106986772341451502161803321817251780261638035508006115148516501870348138649662322983550474748140322134137111339042015650468629586325733803273188936337821297631232408165946581252935606983259454820972718723855864012085426527936578437086121319008494446316692276804749918097816344705150811603055468454777271216035378405507104475174017789158501440333997119754393337190219371611995932172165043485986068599075814866338515935225398283863657870494267924624822064659076371160799116669227004834577383495050767456171329677415741936054230465108639047074309668302135313137383915401860054831581999478536840792438863038942448666729162465474925205755454998328995505246549396464110672470246181615198685295740835066271448492976276103276615079546740980485564804519926700067541051461682403713366468707391805762245964512112517214928446078387295065526556240782332021634284227449734066706057854813128416170006827941652408616053049764141535310762475851611431896326641215417647883980573951816708275462640191334272469434064546092333107500561374885845601058707642805510491568322992177718771114228821399142351389997804809074196675042934268844058769309739698849212657406507384241325904995133280748918486312513660051689098675766189306418601450768899664364598478242476379218946820529332861816072858625490193606396597217345974246685348919077150969594715984149588357499407943076371650758713084303506596563276142496891702704725118289315301163513640123233194847773556432256180885507268633615667027747665131684473045892330468450358273413921552056559555054402700770957118912353700328939384719071301230061494850009773304190162974081294121310074365216967694737119446504302675287456526427117576772985100227318153147912186678231763814300133213572333164083676304828635024622929510394464197290117772306739817085494282131685487863584423157565151264246197138635698642648625570072883284977465256569893588812206561543274352350542264304763070175962039989445693754077604277206428566156427496406231822580913760461333554092581093486568339592595977232926299283940707102662050696026191475071454672953791936057733951421585773670258125547777805618183848629235782904863041169675947595731092163648745128732060989775157444360628320107517560505898637739464267237256633132915147636294596529573750455603308507170218653864979703998269119572356546639664878836705324991760547624637368838647432393680307112408140098413134187190232461398167284743485685843324906763226807882989699853205500159545642584642953957832967136840868605551376134831638199710691041124877229308565596116289251943272895673579308548825346218805978303619673143472244736074019048825436693838594986438967158443464978194846087046684244058850581329094867528103508941891768736013456703984025409539983912926163964011975850402830598747519890383637633604795218009056399940711149016348811608797558286887112371978411312774047497747160299039098629320119434195326130687558687004791150584278118927360189884553794280093835596003055564249057493383113158126893580917182167939384608913110009137821696025696194391563857097721085294853408402225263153807576481435211101786060796620215364574519804287924921559609178514675534716283451480976984781066794695258043862789330728544307551867467403178992059623253069684985062225645379801933240714701053883124572159752937376641446000243334746342161564710908006844857331009969795675086132295621539489661290707608705945773211096139595720683769817333217722722945230201171495827462461423008792456391539977587988893436051928092805342757289772298270410825265060322474743465539712444582110094180852882766428721553037320730305369998331909546446013490580027726873360909675283536989869152991883777944708673208051172958828522346346613521178777082202451523309869472048802369839037472245069452923338166809156021611945380712720856939944271125470567703391660685041883392112071020579718959740295371913788508239541844729720512583014502236399845888188480795321109613607068185762270372222467367863298882619535077488482192580101028167734878013651737085975159686350692761148681867915433063310728405287263296042746501674512098057246159835312497965083360962898465179248508654985017657926748368303140237251160519048200492375688697048132356701387122140348525975716982314939210350445381249343854754042877162926078715965971000324253508180067985047846704341071380230002355842292762441880983121027849845688281905621486116883829213807695590238595988882718427141298315357465948383508863675568725072370057882080806516430851305753907148081251981972754406042860721307233112513435473512282372636902059233468408952903944181747222180808802420374542922819505156020903257066566675135522211083893234433013109226745609089648928471600900168434256860302406518387125364447910844822863457234286300447771535676792005126801583206845145484620537724083170230751185826958827819683280629318141579629230291459009238921910502400330171598536021068981657309597054708754304915350757283471021367365907829889889859188258506383870582323610401342736802145772797812650351447130076685198898899488125113240712311225423655374109305713776764663088980819746673440194853967427464648583663038582926833163247475856073411295604423504815136650364369824130652116487321361727815379001118438764792147306024859969662645976895999616672114157678742716314574342191966125438248680637950656707837930566454874971508171264992274587707051401784032520258374306723979387519407383478213542492644804594169360123778415575683802193224515671981468313193517176876767542936808742932303253319005776115303778488076717915873718241896292349633577308871330142065824064720184368666477110195082256544185041410485950923315164175668353359035680597774882628603921630511428440147711227677359780055699685645156981544404973095656182081410723455507709488931646638715879782699096720104770048662041577436418510088977512294013386215725597966730300333356089650457129948604508801030069957081183274122014028846731876121147215076082864500804933506058341244005349924100791897897156942929060194596166639535739005740828189795865610630214250940578026003878066747025727850423102679255268664164783757239192657408335310109199460586891262969289722799695616183796586253951457765651389915605969119257014267769719536221269214924793301322253417967338045456906900224486314543699280508959028798536399116496104569341635237381672700798248649593725432944147501742253488007460536685274107358142140481381926095774857539832396432202767689829529932229910059111394809030625786719468522075436723314415632747458413678296951820909075753738081522550681581634512968584305547003405730937195651153334118822579118429127897624427424866882894608417337727628589144343810796632418581374338465591336125065621440863118565507482036595406311994514473552366495307424361262208221587779918117318239987916772686246981001330899344134103255651244750981673830578388002793178236626680057338662830452691501217498811101066266316999074089546788872498376069642675607327655020295306432024565848803574340919018457969670918958359215806431892115502078222540589621238504836333668640526509539885396018687480254395990775708635647118107817320835882410789339848496095045157862369069379091029833658612505780061282042832989870130361742550814179298851020439277603910088639919708838942244343747624450649943253350075532150135691645447402450634142172092637049441628544935517496673951868233770388227017428395306486621402208480235694617451935044520055084298960638549788480292304687650931824304560690662412014323288603587029046926956993772836995725611799981416803288920099720767647275016278368676505409280614368255993407537108512495335052183812219579418437687503437478613569746659621989929833979417746291399911050338566080297250556471584663407144188104066816046594308008476074233269689870583340799591401173561401519392927093827126873574129118647878817379335307972392211331923087224051198776757392537261658645494269708352486288423730510869231211870617197851882091508255323763828745420058366872399087894313476817121025215776821785403498261233445733212541743174510218535496555794341519240414293857507345018732263112696526148087256926960357068121518907376585098910753621028837150272211457153420899618755816531597537322869658706613441043924561443118789525746217250888142210732883214864383691577885022055530437938704387517855349000333364632825063606684345881652288584391434107449088740095011349925750083793557515655530087911804733639802807273511498996544983963827932308692981654726199994170358824640368229603474754109759259242750221302723318111936925255836794834445355812231850163728754602455914289361798984100341014967367348692796553529916764681396203188564826286366520511948155198319369243601872033962586434774202443854834329270704086360237177118957877448782109083103386033757165356383769148111551775783186058652713314834704707101474914407295267173437318892380411957913758311717249547015105322902122778856375914412683590991477357721896785668394789665546193776843719924854092034774794359735964590751000134136846327053994236633182757326027905931328900717524232979988202872981545698068575260272085345081518955899801537985910833026265950340924822081696983094509905172222977479309296013722311620706318059098098652204984126751609689936908715312615410639114099719516652752102655137462106723975453675152772266427332500755330381155779249017108197999874003433206894954302021233491655975534138475433458908459721056512617527790387371558021681020134897623004393933012361956067405655072576447626418641038275225027502488152042120144894873427315767243977751651960487715913993375733052156316005828183275242512498428929504569726627231794999822413892045811392228819709672866813419965854508925414788186612143164646115500308942954164150080443512671000771719106608163491160104940952885915071027319245300921033761574785281901117852531960939737707588345355016210512061861846016959484792422655828320538917434141914253387349283626252747562106500268920930549803819135050751583315362729526902335454906730690707946290270980430696775777232406825890828825087192289923845356124960533609093119877149768534918771058781525115763217826880038364325320845549496605992316134490296229826383665569562390291636399240531845738319733605689630290156720278747647422923743120838753647797980211706640414003623960342990547821460015964384903914086217248900119363936205294911649019017893767741770081841573646424822803477659833995594199947423513808772027356499653746518050592837624590615012486354904059035044355177396875212569939225314054666167532600959644015081447134085005994133586824015679689391652329956902561795703187363460025492750797585724069987753769610695549112455929371681615609269974014748594909719575283932785029551163731283631609414002641277143134385809364107291831885578184391193113021591853505785782678137409515139882872093298720891708796558403379958180364109130176058364283768346750269744791732736392549826609286541266862508695840576838267736355761018840756880462931100001763138204199133842294642175476228763268895103256501257806609110154182617597117863011849312041707888481703544459114209246267425738549267599297215826630124896079160280796283008237698498425662446273054786522712475385565870151842593678666072623746429361493122303169711499382137162377734101893468412498583333897120574609876533495437095445810473411945604716676371488771940018585038016653918844353076806785521002842208061018153259866723259360862911942795285067162032159562926234421085030375100458021678205859431213178498651650183889714292810204672766483396583361220050412269954094524631090541486701656213111418814642514000685943421416229501372411950289404024171529620214821316942687345506174832577489901727067868022135805201631717965970625499148910104082259013880692712259987661906499755397253792420978780527903122745353722125723678198168627754360065993160516085471941176933600655304932700154996409412462940276077861462842633799787082124130967482772952565904033339871301663605205152943872270926530023128571127739343919972429465616031492288646383048211826400634632244523276912492796370919004482438615272117389775305377841510827018790264189759855383778596264182906820696661453745000181300442328911888657694866027583877335959042462731512065310700129563866719458370838733374116746601091992771387395185045908801258933212300076873773015549656487600196170335613768537917224988696987551958651151518899233964377404026446439924470398896605742004804032721015036241892940336411139263377145508918119581383383687253947293240389677349417727572432633495376177691729001835002883246883886987950819533655684936889420316172257096089983877696604114346887380713635732886694565731398195876502610707205753435936987091432710787911626182254976907553732968384623719803777236231809736891476363156320680379009736280281088287585053991412971815296291417653414365299145634557530013044221657691659172587425095745793957653893753036421680578375343302855098662064054075452435691746262813876434684593501717415278680223023776571521803977490184575810753124548274669322014100272939300572929117621035214880684096544784225532687071607050590899006280944494041544125979903224124825012035527108482428327287589558282346012480790359453607551452455778970686125615560661857519956055930629398815717579935142218644071941736490719241613388621126971319696470919362692259276948298545364491495700074237612921292323603059666213592836282030699078808805121999668602774249656057464090508451435391049329139042533888425127709057601151184202035456414506444449010782789988848064713687008437520793992285780285701935342047444621277648009115981826616958788590973656478940478393707173135728739982258573969020772103809942881150464298883094494924044454786736122123022757039653886908685660888787876553698707415515085755293984122031653671140160654242065181334701429717868628670228011430701444166916167408653114353654457479799883948581817609375813386343333766617590533780736693573536015267528790695641189650202033357210733808899466309610824372068623219302146718458363890870185241132918134328309751658628358280202853556305480095571599558325799607323989738578565005477674779670391511090498756921023825514333579995503673019820745821900048749242699574152979899086871730421524738275240605907082474257011227827457923509399633736718748180532743112051847120267847752090083386487213036785571691640260973226149453488810879080462204228447443664633582506205040162132348507672215523386627142706739184529675331976786346613712332199826656324363253366584763432108359049298720949239937137608280943995034189114830381557471417815582502354265757912628486784371343155896204842120816185495628236737048853740157449627008784538419610019322843303524871055429251799693607056020190735343294620200760125597130168609441851620616476085551846144876972496857133764564642265819585524867635352967726260535000581788607462909068917526820412288909095288680657992594083431707378728903935760603340051018821569837572695459982616629797985048729238902148392184686728837823176595598630167461057061452447871707592731394688115384327328803663579557186911467421331077290560641179468704062823097815597991610013305617535996145778201905108781691083955185858115063483858963419324922410193373533868258017796347254924333494395334730820885110761001964768083535296972651752073636555109093550722826878055582945243735371092001721142032119241345654770286804415288981070394585867219999501557324809985828194705024327685371858222513954169772255381863207594062400601675013526763846181889905087656080770760648280117905622650257124989422317711154451793301415613391928780461260065836748114701492495860181866301348152830500412365295448474450072925152423376273106209782725047566006236392151527866635763789648977520106418632857680755744966281155830213771430835212585038748739304921858587305438535772577496164601249484410256647519947148391522286781639346730050524089814533604148559961349394499994770839944506945155445022492199442021619793842267373753937949623226722285386802475335992517555079881065308514115936620972306881304320027523510115839808536726783823064467514773273496439737139179620642893007605272972440367388052216300601254688013262847559657881408164795058289966536403626387157525524279608560275538334078225985537964819592395081870746511589622793041374272458137109722467964276377544135618759237937290070250924878261605946271580880382698518389682685235056342451863346113220824571685956629036159071770888237758178297442853120871778920873080686496575250826823948868355830601480948120322550726054447216280485949320085336900741567702025639774804003670719931277967574979857043224013030351234337938411197029821661280096114167486792059034433006092038120712326962151602480745000482531612025714165395295967942096933352257598429892410112481128165009278907356034810567795424425760213014727289280406159580145217603954999382053439349706018116900562565772658749355825510453805442073938723186726924108085068952040829136324210989199215280714404684523438266010285541069807184064568925394578331055032312455345826601252528421034592986401363407261523462532886236137271284150829779267026196621568475477119241247250177529789667783797125311377925725327149623459551606709309460248921895919703902748401517771378917485996929435032616528499739142563969974472209628175982733865805411431972011695205571358490259003358825035396693880684900126935043592850977290715042157460821239398530558487914547802322044624087886664370552290220175139973223288678688038347042997299571673161783609680959438033046472501079062140132769707243973779291518019335822269299611160683719509832155263506426881587033357810251024412791004360908528232436526111062921624705504001152899061130002871383312993450073891829456956505464863326564296251020119435375386901276687756161310361050108737970839911128062631653520533326067434790820360718112784142958983784217821426834929419438602025449855900611137561912900764830788609371274075536297148248568635049773042127667648264649560178876056031757502121612496803302035444245441511533298508888192240343398638539813298479095892099340934085215655450208601070983897606342985245190555125570882866159831629215231031981629653153317872470778701507131165744503140874924406026251013909933974649070791255336216402755828694414459466036476442893242431384106299071599920110555737871414553955684307954164748918409887970947592268171447927698488463099706599751824296972680418944417287114578579024252843158405926878607314748342291176568696779061878189963891431780290095995944376135533285079635969139689524594947120983849474935097727485840661592858281893412623595037678890957507500480316979192927775562355179533285337824270619789568214036878822256701559783990423076903428696451205760620783029133928731582049336046882471967250005131875296952360507990072268215013972431745278383931053698839404064304466033582206341013697808660383921758509491453718196397670500624601091814374473901128622026150385171539507502465700305427489989986632106446923470524485266358419869215485060736373635970103700820045499135530234227683615660923718376237661323071794294035051620589837880575761639563189651328333799108098628743715032183337937481271006919655660981024550343720431975792380163893383788497280096200674952639522924552530003915132865200430494808400441676166357256110336090890357870266660457411866011239153570922307993506275634358669412124140690200098429728859971055262046007359616597124624587280019214922823745704770055555223507901007425779641745666421813760767728021416763431176633476092805124487517986175014697651109231401998502475210555143218320324683862236386980214973252917268081826916022640145198571598986306364769384673462437353362122945267400297366321892755776313361433052212983732893624168380976631121784390646592131852765757542452149706408572612694855555151694419169634563494851895549099861854707492170919397215014181583554915177803493082841627853032003711388766971247016453052962514625354808846593732198132460404700507874553157774453012722167870969923965194481002766772452209826138895761193998258213505953906108253438307384613766434248142635030356353280882554565828695145688348344389864084706996158155355657093597852981815412281024931162677166475542324543736455209716055534344760049579913059586066547480919699758523696391054306053299698617774555702748403160511015000927509830541778820701652887805648588835393009663784141645146430654160945346492749719443088430190083243450010711224850958462363311559565403500102538107765487088903824482105960217567469170761266444651549744820261769359921590010846789424863080931109744521680530599687470719493341482127894602404789986782270860395217898191152575910924409490610821941572188245138787525105378779992750563508926517782275699283904072625943009940683658411506015542740854969171093225533351399055771430122456225359209089289954878901688738794414981766740919472190858532075881342435241468440946942873442303467981486932066690547644081879075643327809690737431561065400350336256344104554056116584256661946413156995920281660954660404043307842960942336428006764252024688437903702664327383752673444566774360447591172345544312137512998716053494178990624074624805917515454214501015259350185794979677091494277629876776187535917697665693353620075264400558272233782574612419177510398969828500878046291161247029359770415712278682084150599899003507649056813531544960105058378252154072295847814120922607738836858332569915595827625743699100895388635258579158154629740992889295565810872246879891444339328678006124344797049409511498725372216207121828147224720560791632035468453582705399969956173342655643802139344413441781432747347458571334336964504566883634524530004149418719459219484336580518388472852895732812318742723572081746464906156807088101174985927243048800304705360659826362448722181336220584427696347899255367395689161759560083127512536373114862891828853199647740513065287390111602795147240376520467967527572094612954884943477068473583886574086298796841386854129038445673491791947243547373577962973109501363685634098652485123074424925486001220483463776965774869823809907533872473810161633104522018148205171024549027040321103931752914123585900613219958071152352465327308245187455190176321232392660919553605337933941481022223920430585099111278122083417299854285324888997493781377149242350646220604970162272257555927202823045246168144832779459577268405740735243872632512177386078725223739508292068258624582958286602422370091641145322515623508672835702592065793793580717231657825310264002591649486575851561663240059633743322405836357689136380996606783331520553819429817545186286239527622246426426761932200572609407080074537976602069321506604806547092367002545547809374312963446995119364570227770428949198747314651599917434466366431152703209631814474396846660701703865683892904137261451792052830377980015967332211262139211109269437324265147451532902567797789786279168007426457001776585877276441102488175387095502866366285702631304326182167559973407551630874118481015994778546171992758064208007645039393096765010791279645756176777172313252870877118564365479815572132267131671034283337502648092327092794693618754237171323743211882013104013257754206155347774738095493302956052863142992396761724259517652596037853677004865430205037905560798497617984976754852229656890866878862727228816635729965074212178167101318446489839792745841046091740195535945218077264960164856589633127651777256587055663862467702202973067161904964760175553191743069427296380243999015786258795403804292501039962284236096579961742566414610828782467130865386722519747486475160037191223164329373613721418190451445398538129030657845525777681906421502086639354601117976077314460169807722149462018215475418346815698669749522143748395574360990937730628569538919333632277884147783147016358795275705807090366941321434646721421620873597452407196344419139871572266495623520912489482903291737923475390647902064059689445858181883163725056971508249547210011430612911212796492461448149452673204611809483177953710626138560659281107487802047445339466878405823283084368252349828787878723104380127584326528875932890559713908709489343291878936358752309503197241494331147802681514328645709073399000646460304594591932175490547053317780363061108023837904132610217065423977768286739489552343409114590980321800742174826630803310943203510224497654058743052687218717511941262182496407053305819760578030758724139895291925934464883286421322089511972857058085172912608097008970995887380884261281947562746814442658908170193970695114201158900969329212635055878691414422507111789576412606821203649731588155850616088636087609145410649358397382046054976991260664869741727460455620073077997025851000427207211190438322659934125585254218741031547322259605089037109905124346378284634845172903396094077545966357132459100961756763029023480504605636796417009621159392723484723154635934305942047878391654455907223041721402185485729296347299206902594182993433563283374619158931099366651490270631455346378192132910495364916167968633686620280920590928177169636016432038717636110189152647442437196853402434141040966015175233063101005427660172999592407986052657981817035438372244189708677491155714139590504587071241318866159966720310611786784238817542900081730679000770076910331594768471274805145745012416960942122068563871719203334477014312778358428303612558669722799227600553023795754766876108169953269680779921056242198713776427483934593400770564856824734564374292896286732430071327569721178286342863180307846080543896703122565204815726550590173590318065618665763697901334100388048100426918537388288393764140930372369738882559938015301602765093895222562548658203110829663871847889791925727351648652994821211128582237785207552579470411165167098301067388636802065032351221422566629020838518497397969219459740399672259293570084223216544494338101694044001464217270436903725308849772967616083826795289327244373323332460130592584153258528018542292697550504851231651320117445020063422897574979074186647609056661313606066440044968969697212349015160103161691153912636141154812019175440384297310648061380667240679453841987763090520418186455398856001605808208530346674199922554838143891426886039051307311340207810322056539906675658811834697124731849574210492598204123300698106660267266711696986925236996725712083960758106599060488550652559453746533370816312519731527315099997994543164744803653052545522585838843703653135848914496887615578098654561687941532633343292732632005480732988292692523956547035274150938764856434363473639056006758434295779253318528562866308026045643506051869466396882768368303391132105827131669010536965894843353034394424917499437032897561269118496786675396745756918673960184265955632586698247362632808326013041622007837763962863535663722658247741018746398460913781797021993624669433787561051423091603496737482753218542447344046986722814462197334456906559322604513631677572276976175152951313685227957989500063086648583338358879170854878326140081434318685536432540900592565775696365794515185243227890604661143245633459438333635555708743837768195479358597783206072790896851046376629561175361129876481100581050628573833021491418969175732364079223940038761018773068820804520987063069665011545608978239558975650821895298053734294241239025161320915068352562360643229146350152926876256308839547958673606574040467597603190075156026286994491769911033254919036462191565489658363878526176254475910304043111983313367489637354305033470837868025988572971423570280320308651757777636626671414358456262372031729291827115658477385191493002681144009361798336375981553692131194616541151993329792365836354700798531153404437551172697653606369634960745709208910153884541024742189227367753929015254514876178265326992234093458834443606532356957483067475863959823738062392209697911303750092472776748120961480014836982845866882539992254174831248779909843213888058066575280496316938509281661241484204855904365375260557067208866019837147246948855906002346295668074869276448530988945777025255927655136843481797837680312522006201165499621938376824638114283942757573358775707616656887162930170018370150183710395854417950429051793028426298424052204885287687017992868810223410809450030874343238609852022593583939779916995141480658359577079153360421522477570541381583059805172426820302391389961878553314937010018173759943534051799482846602724271389232420663582213735640255563916124604359314445647716177866866219075699419354521024055957858709626247578237422408723073946637423015115630807962125507698184341575221302013166985311539109517086258592117075346833924898471142457857970929970095577749053693445893021962862232942707370913938488090580763601623358850707116507059220903422702768367440471779518562158464237853809484391702154030916967118014483350415350152398578786248240022863505124509787530133362927489565881013559983576664132584186768819941826558770925409282025365756890916920648701645652031351912023088447792142018232383481258192523062906405913889072670048017050238028310754987743595158610958478458204717232047821419359564352300682408293316769495863783243373629213297448576488445727694223181462916904038740784342539986547618600703163787244496872408393259030407246300688392527437834320999780031007394854325596199591305431833800668084217007647172117108083147313042201017879602727695518486931563000038647395859647512708180620202911281013372150482991415981465296592513913475870637105740984625317445175515929826926313019563163278023172545116337528049349478213609651767830549119371709810834938941184111728452961564504339530580776362310393940021474620213824867065613243912892408055084364894505142562230869827011391775839520659478505746967206455657639948900823506165158225565200555796691516136075405962475926530219315383957703770918635363344128644336041922563641143092881385230927858644517927850386204597542368888150965913430139335350472349651327867496158750834395837196203126669839787897116632211286759597529257421038357996509963160278725067226121470749202825494016182727916804905828715215622649998606310950999171987955150379163544412158335771216658935147063557670774177455965046723469454445248778458271464984039905889737207190336078242914235439200614369604317659974379932847178302267780133277821692301466942679873820594282661912935915550241534659859716266438807886448062050279682904455324822018847278226014288024076614485697222371000494062350674316122741711142021592211570174269652208795884730735033377786843630900466032245551832580310406736353432215313256371953335646315412864393601892189735346291253323333891122035793313455212024376390413029200165188889232334403531933367434152687761776111174702266205540216938347703591864563743276148501609736069422327089308607225875039556213370209528527353177977315724476882687105018858384863039847390144310214636164483879364810692156136003580721472419463903076299621691210963202978789883584021172152815430062371612253285159802246433991570443722024644840539304518739429753938795881825815778171893391203385805833591447523824338459959936562998642178735541514331313377733241353439458095459787784886429886558690531155543771295866335954955920668668577694628692434141974371848682290803852501750620796430006123119146765019569729553334365643626938747146871714052440922880724819709970010298537210906476202665190151089449192159380568240426536818619821561269994572756486799464215799287829129083245770290909394312383347883415365341888408352149658397378248332578501210947675253707258092841993390656771104604298884468811126935015712428077052996412608756182246277559805968030382519629276633870099886530770620542965884164696345591633462835642275673914571781582360311976130648510010157504833030154770302491248535410412867236140306031098349430425067285756089151409672762435903364564307491542474254059150845773248437634216808202852072595557958941675923129498538571039827315751469592829773366492648873982104721127762546030868318566297528787714424385018991417928230916621968644740854954015857375029628552674287372648052720244116343425544291700571631803924242276210931840189579542060483531936162253735381429531430785253308147812045578155571523993259521478795622178433397101762017345750034375046620133042414462151114869950426685552171910185262342140921878596694363227555129650993284624716694708031896836340029746673701764473427552726213171859683344751368681813276114950659644366300319556094875629789553225745714956690143728768706478163327939054276144749325362371974192670057766902686266425626088989982012057934926592812602550854364029026921121509072591968524973435083718315581034376731936819376536706717274969210859183308824058934625476797100626860295158177455830115793702824731391147386204076255741738014903506856061259796793063294355409429380041815640007076130075926793311261104284337747706669506693717831315567755353616145177698071436066282269672035887426142945405175390023029469569998326300451242047045045527328386198331781520003824904847794211792678398582650955002373020763311245160099150755007601964345824837757030436165153733364345907750639479875369456718733037166639725355008343159151892198479029219700501294339949570671150484079399450120256568179765596114481120929933105911225034785992142835622524850388002898353419049400711771931121130717962409362878013075878453668699614135486271003600750793954306732703736174672646717212329456789507275669597745628085120230477070505117208513422935342795649753485784433574206002892952641607319014347585114120356910175199319424272210273389129535795331724390419592833741522546851074427748314878926369160857807930305359014060162192682530265309807459500678630325596620504874093175348477543016697409925823301806975932328567426213596776085475257805605396880003244309000425155019060379449983293845229926936289598267835862428095229881133017270023200724208815113725732110353685582212702478465355993074747067827654259179918439115411502208293307749258950294842996022677709323981603331918211680594978658091077234268648570726238517624869166305687440613510670928647331627464422512380368768470351891205132023999158743610439622712383225781529440390203536020933739191149988188052506873337210927007623310735888527641448900288612476854229864742077875874539558424177101421271522039801426990158806628570988057170669390661906903839737440153107932039771274766966005235054333738192298976714214491917439716489263052927490811588855806958731606178494591691335020180992855067928872598465889679953606692207619854107456862896676884377735027571541775693759308175237274795315394112679619035049651624575897223932625391686215610458922611228999449544553186315026497329888967944207682156105940728402460139245550763109634853444541619512655555400156267289301341725474261091261081520946866256290361685737304611262080764959322815470544830377503511347698848019025948303315818620060887078018481708426164768340482473633512851170910962210573190950226868606609098318347407350429928393742861568633323604382087094260763964893300283409105366920213102221196968365867274560153129776517151183649532304670225441932352928673901643587304707448124431252703415797224272067089797211746325634858996907176554986493461326903812010512798654252214573097813228208365707607380050367561315036555164267868437241690655562517279834906175869631762303229669645966076985711179553344107082615503943408270743961988793513627237439087907454814083186216651674174971766864210875274837423023477127202867189691470943067636953255285550797981563279957363872370541335219111881881915997814561230853704836058489914723122040539677271963041708808021723976125906337394764734226207643086750556046072053889046910366775709707908970521372322113646476134023183061260694039120279897948400098116406928795025114744201715500978925343001603389974140059260682072620973881060936296099225855166066184587101173050040982911351844536392604813813715340011572727658830498040391504087812182836779274443908740579091424309049869725489556999997685507352784286592955514937906074037563049095191410462279513883576477403636200554970290375821104406427100628690218584250834731140095073133517443229570708229140961225824352884680794167664374900949458402528654264995475064667640705423991351515763519164491832958715725742961113935304572970690064957736803201865756169123508829609324078992648763326933398452313827809515419818884812817812769800119885474225627951799264719498940838620269735522855900812216819507947001795903182303581131249192467513045138450693245275941257007577552171451485933803958451293973232424551802100530793930763083998392820178674982785068950203266195676769500779384775965703924828360713261571106503833306005323026595298124413242506694663413487940194706217040719279473403434273841495003519732752537421076728289327851838324052520194678361955375725340872783918003665228848815705159181907633594202112305890828972073649519071962567085941148216750097042339022053206793440915575334308141290468561623591722913257660037333932938359319174500047887388160711155511768400904292133740181138339902483727227642211555644048315196414145164945394267001792130786890395462459624347210633413834898355230683742111302110613713319104428516809395680363250711801912877643304921639820889856125213676243198409043794080140231662231519663325253678500339080592121728688442712452260036211086903065933084044669202741471547990398338408669480638943853330399196845282552015387985185362001805785817912788288849159605926426985895403398924055242096594304622207690681586048525395674325452567215745891739703895861513595631415528593359011295369399389790211247060577990053030786153643063858287045195581991491302540836331315922277874452870479872706854600402690758258359419858425114751102469755114751007026709772806380223167498867056327398845374941200988482645607721637433072298252394181880971884703831130820692253425116060945431924127151876036263826822198412445823118397506500062983127036488112388809896167873025398330684133314990086539924601304280591880801090027701242360017617236538541063336817683048710763762827850153935247139447715908542757419881155228134030846946711104382711454886911980629107370639527903874124421992618869091781113272707226803963690552781945592606425103189497960982406969118071394794941134340452728781721862161136431228178171146410379803360720672872600758349868920915798822892822003980061851300391813097438523128871705155509070155355758024252982672121232946464635444723031758464252660977434331482134868381914113894841408442214050709517290652128725280114870243171831378136855890491225531180544881187948874007008108290933298879686131982009074716356982926060903225091652610508630008723158807754338242205943930741000872074024429251645446706498160814958170418064718601396504088229227114133210486811274287680719140167212758527410090431072291990255822137306705212869155010148432476979496405746184737937712517731212218787401773979631020754895691209977470121282453609842930997794022826552086370592157153448765452782624148778796051114177064220781428558458464655696331401231798503468112303175590392432175482302565023045367559275320455591565463158747938385487460642216409946847170264563279556260628602122189029090273325340317485876850803098841808548093180592355545668304233540732125473786639481686758072475941575687679923528559710962477537357849783538134085224397004260758556857724843365191950314601437403654106320675575516470758666509394697333026083845242426205822475100345561748435724874299880636778110417982526631726505240766047199076217610421454592783013137194502490810591813772080860161705126985472490919624104497092565255178667366010168459456644520590945511792418327798728465063955748706527330271932035053890630475436178643888399292288951799398287265904543114162598102420146945351095376834473261798227280095009319674553513233733489327627974148244982863341190707413963390423005671308333749697557071143666865719625874012326066745579480936353638117922719429093691563002189727650918131649701437726486167812283243402811500533011117363138558587853726858470403109541065655671627229831612976207390061174488794828848508819250540308970034252896989794496359325537499258012545406794794432767026729021210995484376979282988943419335638287757654843980687240452126629610145834819242306633978347375167749124970271284412223697215420765350329993723651688208768570495830020040078027780470198451021545434072723166632890148036109007430460441969049845946286063042054043027029587430056338587861144009560885490208404589944479465660088682474537889275803493244320399687527891582416297999508771988596874938451642474621101018502226055851297300696757048186584806213429843446126862587437452066307416033736176973387110524983369643752338311191996872235864004532457017605793763709586062420787447011285647229621344820367242568295214684474933692842779558312821140140965976740408329011594383148856003817287700420426477318906855451188464218688587507272749291046317895582647698355921572246204081731226529063943821168523984165394843477806188343489490417368227436175430863113384961650559734754967273269286191363080868765480609984344816044081544560175875844131447750120510294171739123990386883846848368046472718065040482824286801223707619928114883843183960998563845795169379991454244659869266145827726413717119013757137058920199292878434501623199281425659325716979090636697597966558779656168398364092169644777333556554137878119377366462283419683900145533720784832111647307259681355469545598857718771167550303660015435442954833082595527710780001836579809635519244721262231910923485152343000149979966300844990495875817791533065001975429902188302531513650169336412250990504789857241767283826564101664654363717456900802911656933655343353536331319737602927157109340387061212459862239334721953502132192282843750092139327170230770287180974605013722113428610455852489292307571980254760587883351326010926967816948856214521130341907195612371181145196333402987185666068413011754675441978975731936428470296485148959512121234523159927518926822806122989438149838225514964023054335991619388992446515917946364746664312528767868845671707554146809900229810237557877939289928199851466577549275100631633085151658061114591148678183708661023126516386893235224586058523491542716705285184494502827231329415312107550240546386389931834531469011019968160416345586517693599930960358661239364186519333717639774007543890389081993818201869813642207687772150623194864969994318202187657352593676355374241229631364293835173516012481942663464157324346990724120020432912216913851700848127458469582930470762568673447419506305493791688725407597341981784194032555545929880413363697013859406887231592157133354650219601099200395865010724195341114426917019249020111880380563580792104114169595271322498474760345777726200372737243359469865707949800571361228210780043765899393850404040245744164261822054512747829650325470674521904528599536721351878860269766281909010309558268149404865612559838699375141066137462816116828302347100199658425552133180925686413747073417656199966198252066469987417198857746622701572750666444025336152661497806839619314276878822711500023652709499483747381260663771844964512812409717924907275942976523499185990005697482389749236739307519650476312597191816754089009490138854598257212681957295991553662980556374075974886570254677192841111153968354660431869980161169624930202423122614236877682679812800598649925975586077077757787212611940887545490833558439287358635855840513777500973662955201294634459170384264151388108615939254984758336314814384534030389691443090482410622676221854997158793062096946841549572500349828369742882210514575245690693700336208949015886288151412249686980747233699752150244125238037623600956420776895939598986004596988827788806233627927282532287911676885684015829317510522935988488284549546475039960510369195762021477918905573328191389366416654019029165695298302668171261084922378048033298760659465425991588971004563195708049578286275776786287182188719307165751437749616768798675846583088074625748062150964197040504560851950017530035762348399923044488870590272859086211919219768531618912090261125706608615405838493919107264898386631145539935530542040855664276598787994567838584271827648309361354544284434318149236120067938705110653561396756557129259065059845953117424982249337536520119619695001452561524904612810588230497676398195185338526763018404928537314358537025730124284141296816701921601824490013685331055697781478457037572310015273523892628913501718518926894130064183771199109749792736108875298908800718688787499678668907337610038728507007517746750510422725798958818380218230249596770548394604899681027579473991162000906097718369735716406946336123267002096896612448551592985329599858268086980240090420719155194208897415653507738799860222439342862000772465869100833221179773589082420191938957614229062961517711077466225621369657237802634024112456439116101461289472027307354609509730930798166698688958078911602394685029529050439200705806695648995130503239061543911994937391626841247148370804305281468805345636343588300854657262196407286754663473966361293659129509555684095186253322438510110252973183577266975218565867491715272473263741045027915494050380923575490234436224772115058172688835028122032952156135537787368037255688016571423675645021768779562740780879741907040196509416028151293377013107100779371798932851603634860040286798928665310639023514798587626340676464117315914869295030296937307019395460368821692149395195904442977188856833585673317430558117306728680766284346319902971685058555462389360058776158343335462151667277801884557952694389152798785967645281468613864009048258127691936371579013413389412715760108659920630847896404256988187919972795018343070811245252744558751124858295733339547650818468855040403044391140246874723240949027845436026211121191911027924813357288652879754142497882883277154440517434113131906673709300334861724858393753892418109912472340634803627485638545286644643145329358835682497483339006421468511015043509659476921100452765337037798648189275232732844958254910124287045448716925552944675045540961767873614807878333558734325463562611724617084951692095284416985237984647314798185797223090164673949457573077878966096895256430166825505166645453597190367973278635417700691016854077477638014553111728093466402558725864702450574993201893905630142625216405286174380723991216522768198019663457770728382762257960069697161884041079117074241498142541797441710392624558308868766210822988272880764557045242462917731028385190815384457460439195824175472755918343520785661859142848026976228709471273184351700982008506196040935842756127102446890441322420220104110388916050994211282543295414466455231960769350655985158485165421195386222517153243069326191484769770505779272239681773234777086842338365493480393037331852808840781452396550410241161751001861038271179517803431432182242593341136683073872938660035236821005405114302437094613066448779073568995790349755251335498580100358872696592987544634560654452242172278199167571526796286692235574420653683447512031225488830631042812147430256650615249592409706476862373642426565221638838223448518736512428490126088774688557077853928737079199553248646983389754313371127782976109325905980500280511271539863014495634891555947105275334756981385620774546814079228098215927100137005763930236851199545976226636411534086693273188639251770818426577121688203006466180313548791300628204731158885917009749775092878363402256747742064330354315011233028393100013646748718143839885619493215197645193159285685954920676629997435229784902020334280721560295945404340895987634268579544319882262807446663073458592155897869217853596816826282821540128732423894844962752230032811919421125983131686987314574325819679067710124822494419852954148072592902778410426731902501764509555029257219244091407566221700565129934098284905454918001755311804671956347649276653965974562202823046413049915765478738008724722988838549182111687103119764402643761854666166303568378869066218958822690674437323897929554667155526133430113993557477167481960778620771344821762904999815015957175378035085067898047290691898515372123285101182797341979949433972998564193405051501387537422957808263223229744109214532184839136624017240590235774716009730367536036646848730511454149251034039904463212660315886011735320464248192120905974299918820466157752460503670523815733921142452927835755572404099030834159134891433532883412300227939546729231365851812985502626557995456656626219184308888645965197360020333762939844107365193292526520801755749358629490615533061340749627066541950164633049879169161872377321159416021839409523260632122393052725259434933104166757156031967593387740552175174442131097756581590140655782801584935146909261798344458367919616206345219232222154572158919557220935234951505255828198826617124705738909823855349681446425733795343230100273800826064088941990451674790128335339995571439413583794170477041337913391748802728065258128332359861123410553836563550649075855379798695718830402632459490078962185212428611239599987277790455019640508379872594334601746493915963159993175611368454858351156215414570956701263543288664603290079947261320531092404881343737123362415009132661033848091698777786244306190419500358367271629047280387856035488473817197477286537436263273528756013676712737670900978674552232702147687998704320610375007559474797301113390180827749217263941736572127855753800581077217408109698092369333589055052687295095277501103938145810352531914783653642939769501581008835222600726037665519708473349716284015393316181595497134027297950719495819855779334216726590153786552420297007706226192426900255829472222060242314705526811606536044549319462323112831458574023788642042156931629449930681526323363924966111734497122231831496662323100857362202238442279734598220174079271933724748501637414672285677345963259429380936606573750979973120808163815429958097022293279771846224521361492303184442701641744200864035977487180509533603184486240853997182228359539413901698203502922636155576050721935092035065147044443621377768606842401306937776833463578265848010908109910291038777876352619443827840788839910272100586714367852711227490072844628374306578530664725934864087349077320171291926040637617574385603953673488735306423163910854642514799030492288532221867088024157825523609098119207433578745383793464319911213194722358798025249434528506745013232345785330753764484123297797700607285537443860425452948141747190706994635863793452686481207973850067932342266537536614482736710685118275487175012912818241126224457362281186187011175029425924963683356112180076643330873668960908787899957569218756765986035780917239401991029149771362137262718356607037724661470344699643635475515448016714050796279460488284679125950016531699480018435726420440118908372263253917918436900347032240079016216672160202176152990299021920877461404296397109826785278808860379902907708071524823357065595659181272432068026349420796622073616497866114084098209266313015003723926382492183194367623235863210586104307545067104057835174621103486839424496011118629418901548026401600685702091598062451491591904108997277297160787324350695379141620334674460289474317964920244308684274252555292234329580680879514867230425401247824173468461379380990730678505832990838987787410677755309866568670181566182018914936224456283836797219074760617598785028242964040385522108678802529122092685784638410548890059662086430296193406565116126340260708532418873694301068579642530810436196191410418998507034780160953248210184253596793286950546838566321962472334664930803160463600985699170822463492590698012907284627279625019309624940480431185568025988629273993577502830996221846121532955108364269913042226670481441392980492687734601468391561455472278200092738891346872757271469427490406552625666179912980909635079992121349902232122538806554229593869633981895754640067219719864358523438613052517442881590821614223160031116432351040584660106587056792840674940453155408248381208454577417387596088320607177807261035060535876475837763482056898724765615344658921290807786992399748968757679053628031442934867931372529969650010806737518381341808733747454658282256015935000835142187562937714448594081409807134283138089476625194066278343141546092904262234315126840529361764753539791756326459095262407724927129429505738036587961436071472416729459837967288011176148775522101121844780947623979926620158071404672081628508236650178768702055365348403455885442450567447825556289511870935826451090047556471535317320304655071465682647447139118143303046998920019294199018485669171225580446392675415816869749483942447287367681004441148892922211775366495230851702225354787516834986151614611754854678004852088423198613248127909362633816038093812130941361673498694162848952803744199833250893280329663078268378479440113361736641119853207258935671636287484583024066553748866300058146939060614334696556286648448001522652616640595848944839228166298674381199969860208460707310705625427382864368105930044945169328556228831582293542934506549595155626272702773249979031718456456227719896069329225534902455737305271544499832670674501187966107514143925727789904978542268924559432418127809791158933353332673182346128518458630423923855310580419093301687251510502925465790193621132388272934371949077939343731598602864922520616663694529793822696788262330093279186389196353797274717534406444791813418205200519813838897631138888349293288645090156499607726753137813583936824606897418699355378680743300352837112476540814224466339529512462243852315724026900748802270539732900627573956553662651539941706148609705972400369647435813492531564391649576548190806118142556749060960039152487404308301805689878450467185846104190056272120344194439844478446019217072217880458821266455320000706273825873588848691471125394102864141527055900714606934690086450966535722677156126969971737745163127543938764531055269931825668861237011624834126223646905643763764649611308585941347301627184196049200239155832873368258767744093359597116969388688449900483677327561010859739647481064767071311220477531398118700074795894569897106661066304628317276531697690661332008363480602762005060524829302699418947488458957655040469817236104959436383886602965387888163256499873356150161019825882845456790972141338288970689888621706801136575920434669098557117219394059825059447689950178399926378990532664856458016388251191774792469933802349094548869601441909205645041902685182793927516423323769404774793233959433873153813698616609721653160778558773479909850797744763998432600789991990385709743161922757540636020543821165260717190969240615039792631519627450427161494891219990200111197278296078443636023044560653274420263355612790785645014925453344107400376438269613286703695146683640639960603135000583391898181014373431465585878069820179928441846700243176214432402784733327467750552104661324818804413386520353167371484401853020228387119355564219620974539108533928287703287827406891339027128686299921896339074390967219539823245796245943777344896754084508992493048683359506628601537829700445343301745818271817144944993108420340464336513364097930778095696078463471262368404844203340748700797318240855042351517201255085995896876330451778387229267302536494072167626031415994877776787732496989229417419019305037384049268019991177138249464756364417868166408288810420652030825527261455851713231349872460896849273108101831945274277311072359242910223862886900367092082239440458814304388484373118991691975170151175622264558438225138710301564252881546116451332488874296598108615156901970104495039760369460908061367087346641113372005004995213651470062057499434720715508750614038928712755369436405939421382234006092003047988333997814471220359459448143732840559471648387521739892509654450229736080717408193417879613511117821579824297145121641437975530494060698200535830364078484879509125039686920849221305598168938286521700261071133778698460878352456355835784061581979387158942418282743186585655891722599439412235309989679878259171461422929767654926165818557384230805978396431912053732627963132611858815083042846748370731554010547368113668604456569775179195591943715026889722461875283109885010535469314741479177083787814969382973715533383425194408009370717727933613369249311387737778782825558129259674560504935382885885347665378202163882867585560478641943175796520778438415139245717113068814684572041637454197031419011240068750913561465164491006465464776308006061478096313220402040793094680297458021651889906138043884854965522648202588245537897237691175385511184512079830503991735636787414664620095975058944174673648331845946653220330086952550078397572667024547409294689995253498997106327948492995970688168096012640338885908601888153501444577416358848233718232927723665702358395723078191282659687546480266250716169392808811553972469889217387161154792630683834529596315243775470547036047869332387735115426292306618733480514306208576085652529071529300678588501650726291145449377489687133593277692960282531251710614145019365146512581460535543244715927807831903673930659448202860112546792577810207415545107404341942875349357133454301619843368858620248517917808956522337148348152285843407842920462785113548400281552060892069921208910450276041441943402460787964956638904742557046678013729620736177446068774881337692777635770943178225216508225609015662254160919278497199885180548636900818061706108260452140370233507188522759327567935906007958558123820614998970932176885553556211114806599162428877248465714918058421204677883078687708993955208379956153609329706728316471576594375735242889250252791776966416921152247669808916847387795477064790783100172400326457722607144874725415932850667527005249742497721257594840066181707182178678758665379846717233932323634579422517317872693239126737469745757376405273639805843606839114587774732997489992325401348656409690079043740106341951060866901353813305049176352472014677475888228351643123485278986862896328896405323846659190699659645778638508257960550663006283866308348026904498821546272844121089001659394631256098868113161664244047072112594561158387599815433548399685558951666208189454348093970667204950629536148447693371809429599909120628931089623257560564407455070617934782845215024876823927028696033555916531504300860754967284331131777731426368225176325627879404286008760467750978291010525684621873851419726923792900743971335499017703285671945285180379033529197777414186966601269267386824255050297640965672574425470865258868629139455661437246379859258722092118614938644165718301024586701795185321801389937120037862422413935140198209821188228879536531289420139838180749079054817674916578522783030839969709665736008621218477069460985271999072332011014721596259398874451748193788593686802210311505564634639648829929115275205112003956026291170927782609064706864779219414575830642612260943987080190913497400880097271131478409200285092823579056039902771210718442261779800026204708526993187340678406051113187237468370980543434995801743652371293874857279989047844131453528690900335953532326539343646189252978767400672150923226239805480889768814975547239333705957003410057743184019079575432643981401930692502685201834001039292540333791048012696456434958997132753546654302422123843107170778975629489113300884957857840176917489677430490757726418398562084312410677188673096109322886711621147794660721047464917085292437197833573597369985778340382114102833311259006482020337561533020806675454396461710608332443442421300780168338113344873329838791588117100930259338288197097236237805141607724147411697042491219569478873058196793399415623587588866019744825594562512603988866200125734341215806131944962325550849965597569196261705030902173327350094820219017628949236816936568835594205681312775393631774479002000398586270614906260718267451651879271670558437740007911930538587498298537717643896030777211433347476411929621129397678289080230443271245899374215897135730651322650912754818092628405668055269484945660813778849831177341704676378681282475237937482314290171087085032361103275190517016479028602026220203813399171270394808804515509693931452414785687225637607636797656650356574753911725319444657594338497653853554857742277612337661348533270999506201776497609164790710299200444444044788388580810499658011497941420335106906463982277642117919876372956624966402635941595320497360171495718576968415820905206482304892318436454433212717751533499238135246317498227286074715484226309236540503925171578443622662623467967246539635148073950275690496365308561694048855455084900042575211830697684105661871566079201865839848052110179489304161528971681775867499805570405111998417369401780967744918427964971557129237593639105778309231577821814727029829794851946583163123839701039857865600457129967576856381404539441447039018042096807454739239182804066634075451249894497343177602401694500220896223132742719227858752077177626370116817683875321991012306861957996425130382208801290905897905103465236025274668813758664883539503600084342609382482067316140749190905802540577113742470147261082429598461711317476967156948091591678961008327110050457023462097213259712295213630545100958403141880150451138936471831079189123679420365190868561410756182253703887880962834560351676580632840317762080831348810308796165533229915120367196675948319516425522073675911779997618491433336201232251184820518016214162554625959212049280380924642847363061942919621590922979555791221389169270553804556640926853892699568644682854681906632459830973466597620807835083131173895599997290455863914238795219617362871170410977842712503667156583711997681438755077059927986388255657234909913437963860916281897689042193865149156436715237614467955720212894541716665767937037696186885956344503357141517298285966662735416120223502944430216757107555979321461274945055867238975568687999065986799348580659053647915342174130132966161117184794654042552657151135836574681857198427044364586356832376724639673244782271147519089217369144785415791200307293437243565123431350607119443393887489991170757102291725100167217213737031101930425505189636313398265494150732014644892655618576412320531424852427795340908050032781316421299499453588934178509899721017346534058836992895588657144143654836564275321610752981109855469388057353257093927229475174525650389496927917422089676884324180838226255531634446493661637329520380888891294406522425906290789928061523077174926903611325788296723919302602003642292805285207201390080277647219325767129610149483996503621950261487992635479628876065330067999352041575446040723345628212943382666040183684331274646774545885389524289778973169541617678804225730256748358907859703820456003736142665913431216054941264054640827516815080868735352543328005058489612593609778839536262721038218169112426996984563649433295336338348616573521997940181787820550247850249382105243298688543927554366956987412125494704605354915997857561241122775687243370618889057030214701587138345505039114404114379228971312098997797638795986525813277767074501859873887678424174700567970250439253579088496534034858332077702618132851562804018456063534227076879265178650498310158965251482133902843710869050843937655311200427932204918510470747217979010188655824392951211163339045418150649615165633131434934820413035197004106535628303340583739221919787176446947285198634334005154739552192975507771272380393233828024458823090317262487150051545742664436981615408414595549073075285604590037029454586086253851293598021957152369515303710092432060719343782344298668337178137302630595649998238644704045971516052270441757361143251443663267704331776392642389619019558207390681043841403089455275101204915628467467091132655131704840638235333675961676590995384580866567443336045441074292859872432696931505738359487241944285466943165809427694988591713234265973744324425161276207268053657299130970842466751201121077055123539219483158798244822254227385993706832712418496474411658384760020031283158840801340380832973760058871436947963952794624032346437087213253110581413711279280396297310650417676795395001193885483475618475814294433837220071832808366537483482965487063850470331217074419923974526805661593649168499944865138529738606972660537455279474329841708780828417735968586933380840428178454769197446359441939512815886273196443098490891906009028265815564603895792322389746991416973931186314183810347849750418842887383018212129492789544190824765916504462025068826643223314033488577285566034939170634311521844585634058634014774074762021138425310852817844510588011967503511599329513924554428319823079491317449132668435960490458622358954987282655418954079799702904217260237148642139079166628181055946272402941799554667256634468063744927328579226928377633469892257786452364383660283349800039138972224296666629606871804540407033571927197106938463415819523302270925752603523218905749718074034586335788680462994341952001771181280368106012237728731605187845657107090742610787487901417670940658182337680614045609836668800226257641107991712682717032457241362306204365733902632980711166126206676163597717888114917826027288982321231004349985135435085253938840459134292633185235311222491065155231153580880701792350798740677677777607495494180331435495073461563037109183150159548656547848984715522311942333367469704480266675043623458979112264636312467621911590169794282817552376315015516476227242183709182662777279651447813024029529870473597330699109928008748077079913830255314311437997717616716164687770942708140146542378048755570022774608634599169780961707906477907716040263708338325013833795429031673379385607668476251992389223141984923386394353096369692814879841674623454315610414397333347176373032920063272132940072651397329466801014953179871634182345361437022132475042279442386829083030871105194044514119008304463728392351434411442381567174608715352660212558640807279805611933890665348428254027677989412646081036242885659333380525174034519800859297153039553799781036778995491298825240716937355762987055030916135966221170328221494085983518157573958420644178334528646802975564113838489331293660128555926095621695213634176609938160022719526537163958475344128173443090518476322532673877892610796445423952396360179211103115354644586033484857438259274718746574815901001849690442154592592628647927781883067732140210426528621719135928724432168712518707013984428686357337383395950853016742169100693187857721659499799650001080175391416970841959243022704375945806888504993322313046072735297414342216686679212228191985085164012507841142689889225704917294011595706908619005473505001730656533284048385114278071943675150318626623066935275794402084474656870757615051109230151549417151326961809746489557071879739323355744573924363337211608839537156786811386956522568737479480517262056222408780218631305907292390491797576370549426369785973376080037593900289693258213920406419896770592273451696366772429687033143154874366714153264083376998167386678704484414984176157266531029373604332473619387096132785634281668386982285618843964764504410522457950788761332486772431131511343409248192935391838244205382936688074062799782610547599713556793305941297156693981492525086206524003943715016854657885027236841603499158635222643677186516886071535025951084182672985160545927219151371868414771455360151763566805684029843597853104555184761852904063678562968071603777742485696556999478323241150714270884837299526556315684333674425133867985297736433420287326092941785838280994051591320793497084484094992427134171638220897100165608851748173159542382291648100642421057238055932271239742612013508156477014318772912330689251660580158868271901975541539346631136148953000877306253128002529388080939088493277091927857088982218125285969007437867669924039576719878262576286495958107859762110053778114967276371207129372367528162705868869275397964041650983959398304572811915803408423444536061677194886478990333072227031549771388636293789521793254402384658021747293043222499797811556825647504256511574399105272580960216688621221326088470203689769403870369361992514771351687847220881296543309141852768788932886018573698475521423896046302590216758401568800562087337922855242082127450646450447726482523693383697651616866390212062687614019549490375594429070586402424235730638124346865800095372979379480999456435993404070836788862037238281976794327603092986241911323925277889224028720694323427404057561774335866062839039280071414887115399422912140127664903288884477941315165218228164769922154874302685024349637905161439795765653359890086525947883180033407651754042816432775005019090598090003657510382545576040846641328014490304538705141991309219082878796761051770973224588677239641166453446506894102314116456147163323139536403763188700968641228126272486400797496205613541790605530146809179279309219819293542822238779940842551167922333575269366389613723527639893858827096178892506711014623299278058153660121035463507658001793987421783693868232534861642006490329229456535931835698050898278757540800927474254404382754064136549720869828707995163579465154562376303871032477420373081131478770265430739359662645042260190491902527893847125038552641971617315674337969187947282302863983093854075676194232545746632803745506047888807367797434638866029188121860609693274233814493798212811925216287626870591890704514846603553427891028116559381284512099124525075271774761142457030123110422178662850261512291074872456906790854174425925553698141351011144936801929168926708598962002841734295125986803229304770414222926751281710311269147927573683743768618040395046400794922400032653133040676688090305489881890079642039502799741818886745561944004976873971188934099125481607006538312788806150452519267365806344637999892444090786292860345649172321843080925655584674371544926354401408614145029205834403372452089129452559969357751777208154115267316475469399495250498217387846123638275461222292554701023711066600595636583524463037204171311939692965406468265920586272019133169626786040832691604079208415075946039385511413376335181247494107707955109344966581035061178912195887867850142417300392935502742160985283450370818705639464802605660290950736152322443299407112042406189935148805518135607374376781144006229753317241253533288479577304201015440217012918667874564905955197029928375561020774811760309254988999438174384741642666189116890626162656959132052540774439307956261451318221162241579616579144527245904717508820247659305142834676881146863475847964339274526858263062286153993330588176535762719396495750520322014276341206692316181192270963664006756525006646043955016631480982121311596746124227098971456108867806040032255608864471805689954732581806798778434693082345955083479494832229243839722759192699749145312963922095863206312870409127262671497439716301399974470560269080845957741068923535931504113716893121388439925023752795478336623747894748412845231888917962394241402642646276506024834261168787708240866798556809056010890698481951207411255502015294897764432490930679084300597338403235575909428044311667852708135302362346700017556299104549684072884528548320322287991200321396795413314842796273038873776364368806066802541568869650946900632290323818467433952815642558548236294719622771638441867253272439633242749068640038424429795121623141824555747464019268791637731497436034126495303722346095947208755711174564646166507355795031988875562695369495849285019206071959465525129548381821643330611749003827205577893212652287822407769692285848248852910753201655788166770391971861607279339827762958308413062898232070247311583412435439213545589752306022581241025052820877514764824050673657220549361214143828551789401918380883649269067033187277455134503734787470174926788188689287333575015913534779563112222307425638688028199827123991602828173785091331295544729617381900517950119556888239207587485904401790348110983789003543167433526464930607604724791737954244157965967854731578964197137539559305952029929661133317873572948825073978242679073965666328961167401065962488751286518293205199754742689481539221685787907538139717262008323340986469852894199800705588680739933278897310226665836945696683342260508756318147214044682426981251575096736249458448434462883981134485867845055142331844494360577129356999958682103478960075883114807340498113300944918080172945033844006099304605678048692136691821312556970442319735734060867458338232700433898296864089752554952236270579190428497377240362897831051044240988932601861041217920418751493978999314546135895416404940731507458386845961084152488299692167395571581450668231419750667488592811012928530654875408106856273158588921161706431719451378765065902015564807227268569433276498559222516708641474944961854852161014039552997648310934219995185354703014296688371317077664179163133631469731789702877183443775025191747804708611725105926877206927940633467372539350544568626920470598108140809171528931095129928057399756086700325574522963484732351749501946146569239242836151908637968007895066903794829038042583229315982290580350362662819758439231784405267944511797272745175577792092463939348379639505835470040950141219219623326892188347565238693148047087782412212253351192162539152486234706177840186304161339055220576752841728607151657681580875951333448472597675667642805478891151912318225631125790781928175489491508596043327284642437234875175783608635149095542373816897771944174860832962174031364326072340879832446492543974157646107605081064704360442878712892960359248798807189653843014085243754177726077979966888587762554762203297733910288280687385557781652497615677283686490096302291430753741833447310429241826844884609839674120752652244977674155271380577692937441971109163455868354770772450697068212965433343656939612375625699736047591873870581340010003819426556881794102015028287647110039554070730638031868918985950911009920447544917895574533763686286980724707530870041476800247384302176856302059915814957907617893931945448883608487579263926961547374513219764993170271505961619828901155883687152989416629259550847545112910520042644956870602693234754565437463330359214068645158404944756587324798251255052114932202021531860530510733235692051449201839659546839987290386605826317761985208253534738455483049370860650677200745928418279158285853660824174761227804953369454675938349876945619727732727223650315037381286468997802767205555241776834457918323757703898936410378555144548534953288610478055131635249049543358789835863755743721822220810380455418950726477913597186447752838195042838346449198020275176761042580037053169202239594495616362479794587243080542152433556256674345156831319687267861065419751387107184375980639123137049127376579025812944754285723656284936601073427480232712504306803845577491911074701033096554017762128654954392360456769809455636525150643123629839338151215237554117053941443229281253319160223851209450755353214186482967443654411151540596356378510697739923266691871804642394309440278034050027108101204225319013850022187844028650201793079660492805782562002662311428500179054822220497475491648442197879999765626271532996283683295855621271085112330597696025897251293141369754876480979768305210819516461203635906024054253325927403845671618486861086021787645878242208268786917150037650210372132293428729069331957350809939708772692644830010890327822820630428617683351489938321449237269446719365384227817755935502879739271275860224516133892752679863279939606047475384739892952808447086153929134487373440819867838728853220757691381945878526809738431036330880558471056401507951433741828982979714072554236134173540052269891836642892189927063129909721741573432933608764772488177864022395315474075405691872673869890515480899092630262178984657115871195395741923892613891766650385205279211278953075938735248770427011907070265278740500725112106861200959596158699782535958453342782922079791529619166279270074247010078942272565945994958454905187882966321299934145115011027709763868033490157568576787075523323972080854672129657156220510965846432214904453804900474372651712484296088906524834189988226046129361238583890219534857306791137837246559711324072551280818047899109220164661233253348024800841330779122475036318260349769357766076503639668044017023343296848839782774048194773082647664734600248332095730863740315170274016532091118457655492927891934410755676897776621474014108112020534438293623542185736443269883948879531898194586506764414768804895656208576803875682212562931592383899274488424833740996697153962103071635860263235964540326763447906840960698352003609058728758054046369419714746201281218664057490329671310732266451809419284458149381827436320071570165669283935299600852175367767505167960118283704141071842796523898018550856584327709477756702380866968257739397364825110745089197114789049016108973935570907010886876841549926315730404977869844575121429836643228774668208554360553155650150033982833309504002794625406685515855598066356576421738732097957940457141867819935656940161521859554984847030580775808297652143755749305435033739340719027107829302734352855474995006034420800212103624215447827002317360600823907426267116132150609965746654240149847165624639786228914608532834620625555336046607389504163407054214592336538140127586088262378688059255281764064136859127947071666889194541053002431184721815385338064294194804844397267483951849907050562565251770285042845785226693836807052885775654974876486598619334807072528275354601012755973204432879919966341475860519643714784658343658951539578085058332280226481049770237262356474031776772856792247858811859382845876956525706226566309888856066744405977478906144149198889142141690621034977735029789306932342805913342206002057970537903801196965682942063560527214285101187878820090467786499718905893069180251540761198689521013082621569001543593789083610287755363349465810036608465418826322135246274434168492688282635182953653126466090336344203553077825638900407816472386791758924996170850116486433222971265352172476646729369507712637824107560720758125672544972994793328547973674095152690275131746580663264473672659351364981793877221708401527470617390873608939171734070796674077131799505165212336884372628572036758766219333211036731508932548628262008855255603668891596580530249051659167650785967076537323918352554915259633118734403614491562728889272979137519886725771433348893132039570056488317751877788912294897217969898651090106453783573711686159235668407609728925845954852866567708972836086328416111282386584877371067153277541408530664466279588972094871979771630637649240879210350240407003575866682187906881230256485865634239082040740266857462047155900377059856579227308475218365819558552467064016929838468068376991778717948763210089957846452106604555910197693861684522800068596471902836367823270125091054061773725695956903532467328521322425729895175930855787739574935194036758316029185207129836170854874107003424039816201094508707244229995271917224891743572475209794214041998846860596200063378955605880771044521392293173193287990106145025194774491462360654862827826300627397100184442699950880079385733723162357383639386271551091176133917166186310069380095860802918972294061920520760287676962215324657244719974551838702771638640180981819847987279633970288060903095128499286089297582727942696114399555378887522862149136658647117911221376352802322595208300708506483978762658629514736395301254290361003309172471839002691484720580677516355256525718312222852886639793743971982103231491242806246773566556098189804359786238119111374407924049188209947327736780837470813403001205580835285048530906366394289486132464307065899759832672799091616057168221336444340532748781411581602670565710497438124714921585365904129000648957786810863767263985876493164809939352561382937748111402675679179482666535095751581957433376517882124105294582603356874641934985536742457408586709970026442439376823166557453936417617360885361104183721699708816063960008313096819413716764049817486596080938897109057977559705314816533585193084551352965081190483241893141418344935534463863404603224500513220121266574335020926662113209714602173548383330131124458490822699764041098042384043952177625615125754094788419626944423960447488038848815100685155775398694901474753477430976706525199992116622584354454668424795214152674231709577027033670464672603935118073387464591042559733013266155372629861673666422172772575830846426500688188784428017730160736103147097045520257828801716187219810858444648066021545672668485422726328044352549682300516865405925545350365905549101897760788929900085900706261295970516538292005806183776797292357540959803753123148727412753384907639695967185406115742672061462485137129788986887475901932505432823491472580276476670694234467033904398580847987834657081380808254882762081987592556477983768546947030232628244311590870501372964166445580451527982962865286742826249360872372636021646451227358988989244478925093814259417034575932953124445835817308141745287823737473683686833968979906505337658683652320316088747819171425542042849029156588695128739909774760050926572032958889632260803119340032401417565932318806756834493734235603931635303423550909965864307177222998715254698929471011194605597995509541270368804217572633582249621085712815474958425506336161591375333015235409213178765433665403013060850426334090926907011102744403006018830369125260399365285512982627038032577274147166519440084659867122064966414850337001929400954155377823338651983901365807912434908452458795598336127608861302257488538574980068550750242978949336950815862126229258134163643212473678792586329715210427768057195329210657200965787094561194278394118865204775140918764000270662577402676251800853876038085229589063889296606434511518200491029858139178932201913930891647807019258538940670574127422932163433995193161903392442890067389045564816906542255962712272486304951956599190376718654891755122249924569370982365522918266003945918162315985930518238078450012219949427982620664197302217589470255948318300291190788558320345486139235106638476293872653318981033248875170842355801439465317022040218662233486707423489880763602726090133770698322506871501679419308069328769060110871283006735385783682963108848527449789480544917781730515386148336425569698505693547831919835054468324383925618517827581524704820561163402620949229716670445015330797065566675718076802802919610629777124286034412708981319147200862389998899276783086977186667487601213139784708746553701239405543447812408322685311968581780133865172515988578464222603451540409311584590899768956723661569019876209287665011122104358389005795130918216805045753018785752017845820731113899866119936217309467484686735262729752182863976019166225799490647689932318606340051240401880668550698893828471534886148639408199837393597136076649714507065128983955238423788980728003425281220311449866170614255157046595234975670875470183492339458729153882181290964437664952492704070162522629981258230261552153859158556376965536993925026256832708799990897716292382588596071038353461879989697045287227044380462706633865290846562775461478447906478045742913065745729731944345399543618355810391215549958734867883967308103303687005351174429705448480025581348705947480093486242150388489404457625979742258470268858541825023124937629084798261975996209006215026395519650522732977018887277369777891096700002405018392934959284315043798194710149058111014421304342230737675568351947792895041871249981413202498484208238257857888717347904385348733136179264431490523244375389469597307771900752012210971784809370842608190687094276977199466977383080566980220969982683849558631509095463975668788448367168276827609578215960608131249996552244534587001032732118955643909058458390877097383882832004245058325285001997228264773187021828904498087104861663866017492466316668234890780713808311662103932476597250368129061824257751284298323180247630804923437667965185137048079326315308884825627830174213300385840904035848760809163099788016427216165046843713567588692647245005888263278559180841992586630515149057450407400340395352230955856981232215403045333769214268516114273538693324877920490244685411822500795319690530543251594793887673311159854948703058831457945856656566334164423537906872845008234376174900373597494004939092738390330583603299148057321913450187626964952183531345908653082013920053125144957182587423071503707499150571034488047928119697184390092964702740588925546976613765843860876273651049702938877873144260568486206518248813308352993665922051762273317243782751139474169859627543672662953734271707020256737093521019303447291257646330175952106577282682145850114347354400707450024615172294949841342930904724640207729176111271516911405440806230087424707002052330485332849115486909081325955696576068724403472459067542351553838103971468885996779887846560233401215245706630275074342810593762834596937500858930103253502697981173285411047042665094327676600716037777892972767502362886526923425014315711378901889652580238305381451665837042141263068109301915530491796740776674631529609230564464811798486504516996150312000649315061156375768784637267374414301822016039458303284651254316748244656914412517224965465078082203244771051402698181374749609895745475059493560000302969709783833852607333500084516397400402993155262498652096064014041850890983742171389647786159556640038291131987005521938715258969487233760030526887055333052216955380486688301879757636762744180482898439230846488851910970140091429999259961739309689825963090410275407657323844504747500314558521996622462552374318312264080405731278494947653917159260287799884328368627738736358262625870513409620252000863000083384293997320694917783137638107195172711324375489390391829261994858606802281125309093583534915444172387414290765319965825887641288152565568257944637651404212725679516601910277885997198341722805573843062947945938020166749145358766270671083640457325590495781811210845134413927327392052303638641474591622857286480564562462015273533792638345851241397168677874686710013699075589123142638422472875958663065322203767004882839100775396001595018682935644261497505407297796579626247015020919418167453876159827631527928058492314270742376889476681390944978055333208425492535784430942535280193818542286308120758555507840039639161878936340596969830247022093863675759213743336164581157151783432908624070347425085374663439000399430304378631330502492749385599157679058350415291652518414051980153648731305198018778668330408981183733458971600796199419200672236672446227088456947191266729883218097345290466568775321890979438661589601762819619116442991368957886658352396596651277470991167150741195804511321397782066188766577408596851652895113122531991762399895622887559543643883756931055680141855995021628477498370158749352136421750811050303033262700266001354191957304861164283108023787482134910125300028230241939568139093112889295901000967692546885390109331442889820680770917366239969585440049738583119181470722754721682056332630471692816483492228772779162091722150672747374158336125613851183563730343672368969816816788338705695694790020390336702965651493966613346166102177693484182562183954862413209143243567329543789784444402899212172526505488757208619694659734120271830282108217150144323595507442627504624823012073241238346894456769524941861898211062182620989316449391745909999513313037945425850951480845634370739020302736599306111076097231726082988456783679633599864121028790478348896593295453379419946023102511852246745982239174946257310656751009988513093817352309164030139849172299596368244840771232548530521784190001721331652959247479056093472090142167883822667681034021863192698365168780054950928877576975568356972712304598379419625941762793943986763904895534635462625581346944289986007629800536683459065232262878673945729311893121218390042107850469543840893761304043319396787570819736232553475026664916954835683559598287736433710784330369395164567705505105816790450043733910624001989917718953806961019070542757314041472935804403558958815854152799237168925245853780632737764188122567407700455106647252547622629412271098257210109173733493416401760679890644718681753183215399546215136010548394594413162994262841204072651673250005381268790532554780375450366433096743572151777450637347869911099335456770723120260748400180153504775159699400331096877348227957047098036915687514748073866389004556935741184718511263087029100299883356900324152245539515111492642039051442230894882332156274223939686326719228001855339194931193763114862027099155653271102451872308580178214890917618312785067055679526651234933174750058592379707266499359969739270335550475652075599755818816450883030164414312901470583683065583214408655959391889449544314850383704130673600882795215230338602485798781428426426385990271278699245555771795216498663421050214214582044677988493148338416460193177083462920725689592236529241672162253457467966772664995480743958393766614565130409677432761707168113070972414060851389330530806929895925547953195790210663925519874545059032352020851499318965806307754464296930203821473111606175789361189858700138198237590049038675290604029680504605540969596247427802888013896519836184301219053477088668608473304069747649154265877829334802293008839542482580567055935841873317093167205935845389882078019749377414558162087636249381007324142446515870222464018827216923274977008172158558260987509983496504622157252825209181931838004031016280733752210041952311591013879048638309613310310660806227098183175555209346737367782776053565354079174746271193922061539866328737204488670178680167367670667089976490322504845219613085215790005886981226210156538307525986660520333557947981569940951727877002229117514325593376637383036386066847137205255410766970202869956221368108960466547814636334762050925769560583546868025848749579604146434343877976843817973061799285798650186752695020887428975310455911414909585342958744360517274512826387553362771141332840242441312250274972830079527131307267555189497709932476410173992061765906996188060060365437915447913185891119092686063946503278020651897732938072779634489584521001736075195922307394386933478303225153125795532472210802569957110866901873298964703104385370318681167060294131885524835815382913916563417941656472927062452774013395967976845292311129479049603578523190609921955881715627872752600488423861839738469238687206553146480435301794148721289729504526434722587834777687387559516770017244243814981549410768628303190109915533557755091592503844006060790530238457754536934838573819575331750260235321313769564814447134680692145549944363126074162588230139242277640951581468280847172906563148959261889229911041648788195789851290317738929695515557569908988468506357270966422592843678922021083726284730665943871193072936031590447846552956201893104133498064140120373025845266853253479009612771764399700935739107117213650051736387834853110349187551328683711505158276088992938077491787349692514701971086015632296899213162016772967785057270057517926450639756343789825938029900703764426494456693720461987933482094779831379744896820679111614212210926203404421071061376189706417689666210970741033530287159839774769228839187754251675406421684230294065505898148129252382840397436766255991622408016779301704915727755605486874360614380153358395103098773572649981264249080799019463622685681344417325732311801749894132291244800986005655311405049818352973195704994754818112629798643153957652745964937580774475610441431541888284933173286820623394105925181089580844263073084164605055216562429372322421462147864739314242764294539406796980401878067926724446182975254851636866461710188652815070833335167285035326590070393523001853061859641700108464643667159072543277227184942607695539064233862162506028383246893776410665118636180286316275075304469887336486432169660066459873593093261111126824381654614936674324303049258951238073482109979456800372472508772281090360714832735969281785436909753769595857830686301458607808079459224610890356991867607870080162324092796572338580867657217600369171326692971760286251688648520464344314302196944098149072664591421954958850358783655526158480220174285167540676478009408510395325876741063467648708629814731891383586624087753623784755926343438422725083879256909208981692050355439817192015942528759366656891215626086190419684645146588853725015315248719040151086173231843570946411950232524617928658825558031544035987247147289014905644028687915415666242875572913276181993236435901178278658999316819212512845999343383218055082648329851394761054393548743878431151750387474635844032466904357140622714956133356464169048436303544507695662342881060781925079917378679280655199050401430922612688674823134949985132228315826777477480800263765831166660382951018639935741810776153876387634067228500788443905041764784522009549779201705879491174175187657788858078145493377341594894061253055130364832802908480652723863049166386279092820203308678050461143435598422669539386318372272100955659046921407450421648033790923928056152683758002867892715868508618416627965395052533188540442027826967531679038573835641939923961980439087436577734896139290010648862696820273783451635192544295012949264954851991022744443414020569598036342023604621042011232181972026736073998212442187510930194561833261260188474778671827603721417803930772115436519750679177670395232933682611618720376198611085417917776843352207654692114158754331786506426007820305710654705479827395494217107283320892323011174915177998539136209454840672281998395072580880072164854672947402079200672413152900125835299896277085975602457261104770743416791467840151941452434428829046270438026099600463502597553623692071117603428889420017209692698466910977379667220824142944360005689665581315268707122302224488201575958060981626176984299882725428373186895913054709197884103637344797527394215632212498000415180863114293975885911931174159759037519150686678886097905531023271789560097277945231294446061851200527884923122303955502095210626645713184582498496981623417089753251857168813181502520158749816176220817981847494650760808359093389450679077410950684513128117192481918421960265489663087603245918872454975125642981582286252894172048604722893499258958414842829114277570248879757391478365590125453837541215121669261459303318714702987477830141469075368059613545794425897675459551238761470656774294817234346874862989197869903054546886506205571084677213711731563241583890764889958625554566860309094613421435187815125778976960777832436103063256093430071062881933010523168555236679194739705193471012602393776008193500668748983905538766295516056848003479090335424216373172257390162667752577863642151079834795634069637093009350174940996012097705328046394818310929163306329294756558539311206050498714492396025303460966674656676370945123983630899971997618569469144869792462261915848016995988985250713133563187780382168545150804193604689945465359827353040286058733328196648216999406265034788912599032871410742033343367828909848825614005588003388694707055480064090012882619396399119994539578874874860720772968587695579800469430971035106792662532037825222628409016984583262504911593424076679413544658224361019864840916868031629253631541839680817403166987242898678270516782031893230837094975719330572794322277977169525996847261062654818453987600598691059302671365884248423240434573140739516773972185326255882566339301430909640777640447653923174738670102608820642514826419210132744227190416855787021182699431096095216615468531060958955429765757225355385427507097678721382098617235079720999092714031000498075439008528233678795406338716712488436719273884571467477173672028597020463245063237233651844640013092133626952446236244989193473112482834846099695925944325460382353694695286480854995335950700556725014785482101450092347712889016871450821458582767151558421261235071335031856990883629073071494625130140679406844739184056270827244738047635562111541531274844948392103692055465501008667883222647616108991784860140808464463185498681157144287424325147264636530792011439414937255819075523273923758269926689227525903181143690330258958028587072890269438867215496697058948731613594868522997160182845931930256556660318916742348108580141592483997869316738502241970789364684119999148630409253332805757043113449258729343286044212547875551111461986096249878611879771736355172435181952960029052519387812951515648006046276470601252619062208409586434692043078379303524915234713883196823136308592545804599144565264599144583308855208068279174435599085374545047546809389839236576633006315724548484331060459030172553605093618957252929155776859847231924289268677325327162841671620525512154699736896486693028779156885699037031539427980012492908301720967070358282686315353752450539834971477554289400453880748667585231542527075737554648576462680015940284650179557866712282337815488080635809972994681512481869289189149356111784027956298034595763954304777526982036749445104186945464780677695758429451692651434704324201354790263030127096204561203757241681322147531212838717226950683613803770716972021690142725507511779509728519028979293517680675175170727742066158745032548071228757630826002849400846010606401857243425738678371050603587951509700831742587247737453596243698577170583957599419386219734809301881158022364283576512478408135697000837342012545567590378159665823679283838120150473462764774540512095199118606494336525819761507798840786250494977839843608364869488920374440113598582208376889217692949592857357820355711950404789187977464938180131277454241874425462577415563865547184893109536350000290756427663737110273955821930417257450501050400238853860622118940267032536723079797736855434051211085213945045936707192514538613844172914006394188096431155929600927559741198414581102631854578400828744455647598352313800900985010306859700472185371201643181818527982818705389831053593144265678734499046645625854571554906239226419431540368527648232620779299898780620190494340764957501029240444842884066573362475176904174687572268057124011729002797085991342086914822586567726516807440443313373480431759225664381524645600387956455555443558118081042231443609465617776273394680245996202835625443590447241715804872188937839698211626014531804328460658418816833724005368885952793487511212334386870273021705241716650044891722302092499163523459119627892629265674839793608134095791301376642343338311438931075370351284696566021234234104615081448710731504299989347351022309841385321190094069139413559670849018756599425158538797102638021948103082380137506752626103988923015286433360194883426917214961569915421436265806676638064229745083599567925696523123890823652440300497738042378949009622134996775605408355122570747616087152365032443582943842843780650616169530094653870567657179335213706114945770284345838380274122889677067062093318796567935081097728239030351009732928581719427684192865985998505302820097232844000895047096712396079210946965738828505878054302639831164450914214002179002901811941058704856842266522480156683190887942405028290117511561975920878025722103685608699647084836275678007262992287900965339394630282730994499001812459756570678343500812944199384550481546660556876843316446218321199582215141406992175403126032638047484358399541706332267026842802864338736552678232961478941711827776522578006668269868299420224899817335605909156203049163868075320885440643776085965567870188843300921686803391721303349414154393334646626689601068507267029794370205908156036332868014855816123021368414511560678513944216081618457883300332644089751685948956779639092122178514674948968672353357101778868753807795421153614761225588851677236098050713659882528931352715995323857736121617828773496853082174735810260977644289207457623421681356243471770691398624792000311167284982490554082924091184246130770758601101570092967859605391072614193266931001373956494937260691286402151362850383563335465044349328217151229153045420744184677475520968103045655329122222362884535278212253047589908059416662942481531242481905527629531133132445690938544188467088514834020824497626537303341426775469877380112566270176192574225840599307094609559227110867404628106933320346232040948748259027073253663783576586296309856991338013432121348554018165704089753977199165487036720235264651734751816622880955408317895976515213619091144794455747106141725737017066401926063834432275445466186569492407689196265137830970567870715874658698159950529958493540039976408117913397645896030456742471700425645993375755946112529798516907893356963415795340094972287980760877096202686162643344929093762273144937207286490406000505783203315955824671733299857651485707639126693531077936639901294928566312306271094581890916730827382393093549297585964982628576431569466652161359025550962495799377269975011465627523471472575208651081920264463350394076125601337260814560955849693746734212237272157940614834247805166759759176796337335180071153779922036247229620274947805823599690150638957122100883228677163350473571087955872984696886268690238397559542398334562008941741188091048880466555794661318021251077741735489926900689019239142802574240868467022907085991124848830089895413113695329733713708490275428612232145322589641284729816386483565940775698703139071717117943280450475689251460002550128025565662415855573328731309277252676822947096778719954618535568837029872732077077640458490666608930582978987403776228049698054102399001969125442983132958235618503754446644285058264643540587051491380923041825784411594526766293539781095024368075125260626048859978085292322849335646506691902243199423890562961214346687665705276013596980755295722857329913985460860892469064738792496680345932917081885695007242138278953210159354862529491796408112931388855455692219081827159027280749385357884008411659513952137919960481520701230255365044488032241428494817843338763289706660822546934336995955695354110402352433300455814222759472224656117032053810462162881577940274993310206623774121799432036482465977944827047788798974107322648481041031890001866482886920555250453989480740305149918939916264543296643384460883082666961186814900629203820603497153545323354347638347047611662261620698743297523401185868660478100741686586865661069289569708464591912842688040792069441376987110416970084548229082350444534682985869761403922113668887313514279946781473078353200134971958551030552942924900338417402485817972033308161544054549440755975531245440676360538684028887070603396705361618635711901941100663300227327433066008692380145580864189642215957867607753622228686346000893911510796088461328437055722774020018634343355060519134159760002472024798581766693325066797405041443024616428377389381012607063966760519957216590809493337711083873474999423634546818119579853747287240579065760092069849264733936799380476613000932341749709614032562714096637214269870591942937696845692043400237062785799207300743649078343785206981465972591474431791927694301964374173744591527952007447657221251631922059174459742533628718714848784030760880877930219049014027382970518183802042523798075935075340697323167395897007054295801039700523563995882630993037077637079152411041951083725370437339335242428718344771859816946241516908673946073702798105449397813101361324614061564164415032938455910012852062799961379327235342450698523528646572668440334337480024360996778880577053040051356925058323473616434774312635300415058410446800517545525550099217033772158929489078373860589691781701218513315384142516118073349809999584675248666109076792946019397124313343825678162673223083269501975922442435489973399047459676959013650497635983041659741976759729357756980224604650546516789271320661618476771559047182452858577446926255301937686452280998598339890914531857652499795344200593871526052149221777033118789640242489144544202439504366429647330106700873397084673113507101754080141402716899333489656523897789808709566045564901842493077057385549416073204851765228167334696949484082605917916363536239957056910535973072705647258397454868647444474241886990681224869988092590384082671343355720659683644886752361468281252128941486985188834714878889321657686156412523858239637258579605972358167061827302258606977206349736006263378026752949761294359933441700779989778877173325322075798066921184728189760990877431441383913061599554110243972856723513099010260450920637408858329534162361225107101028911151516671066147936177702938851855603462169423844785252106326055006861439190851109730078915289546035329459999701575058036003631841842284936664432198589744832412622210182751557908195385299980172461487718846900170199939673429532145427767113864183293762588850970497787564584442329149413631685685389725056109055066426813107919100690297322594747647540091625107252281776422471243108127569736882933954824573794382348685100893771016424698479086606118168065460827226554077366994536093000427005757590830645574809095857632118018482604940036211601407222672784281767136481841984923938739246590593617631310323832604782107386118917055566878505426446159079663039111496488296068995876306475126843188382123358863325358484144610805211318569300474273804767787532835759228873218299122254915856326796360928100244311491170084367864349169949213359866909468079257763056362534829362250929078272317676449777216568375040915531809543336191264970235625504162808508695895880466803113354881820177393962107010508006647183443809466251290884193825250615127018200269825423598846359603210158038385537905241113754240306612559250607518796172934947132571880696104293960932842145259761462534082057887729135624266122292100774397760438362665671937566802219885045643915576983216347433509658080649146186521775971827237733244717967683634051257471097911468839408977871193106947105517580365906757104282952090850541302933965159059819761036695190923434478925507730027388593795260827116853736512647255007912908288891427121404546724385611471160112519015012880548996215950699165145037823237806949250870142889532110659588879639962557455066992508326190954486246464140340662131259082740207259352115942606158745447750394248440906798827391256702105023555403733268450727105176554582455080702855937334501151562275018312478924471731656116348164537964765889522058233672775597973306111928958774924997120561538117654880045964153051631010586797057959549343564920090040417764016720623555630675042973483595802214801087701364579489925682947453676590865683566793435252613652011672339414643922649114516250495392561479297423316082035374653112900688843734913212186287544211559269588468200257147748228236681496395411068484048515155196727587776644972318601844565898248483407821970600219514807927036955943167746296201739387788331822769536064888693083184652317825918807564352640405558810023400780832734277383853228787393236133115536560133512531169066013104845861508776610723529626721714647602191416016278176026886236982983417055634828936648394797563630254071818609207083119185479508924121638826702073059730814795687867805609724822591466895392091553384151784466371865687166090610955291641612883126515744999301296347030836129743185306064638382566948549973234383184686439769788600213845332702974210848047242234308873493951468617374266275203568797176210697507232275230669817133223445277608950167691717625918915164100707158884063007894729522969539667848199205329846998670721847567461933848017108832681172245500988094437717500408037031086081143282692018730065040808950307450470559913953851181148448151230203507314540565363608801596128064921746478953855327509865888970609724752555790274009185712834699855614139540064783438396705893492601701258687955811952310941017379719582628889484649823074531840444432542083687228239544285695150784286506869073665946379270183623628708900541322217965179631365574130223893382016065615545553417028004520462293631060853120085291991800605410084414637797998071749690388469129531336479961378858231173015287508238181509057677150474239371834455646472107238327301209909854010026061864896927326232014827012026463223965328054948022024809819798738065667268650616915878556746353823148888109415365404383762496967000847337192575659849820780808338539046612044308132913608759479364543403888288369602280758311740035697829172759068129944028926706948844743365137794403956223903857272397153135461603497592393656081226800600833152648420485932266862665106040256716189261842398428710199211006003398305495777538120255979313864476477119553272085923498531993070712496799247686121537942758105443253226710492111512703707033288270945073379453371919833524667640251795167151042388991474289369200579166416406956982167094107380809491177257647161140797058289481495206823417682545769887084604957759997049017196403867641938523516732054474554210986975902634520797945784493697109466925663268107367201090632871155911970821253370248865957959171921840352044766565419569302775196777215580517627330302254327661379286917311133812617644844997052060573326071172388837818772654150187152482766538466452556243567774738964246292072645120782695659005006080182527470259402778620879086557715964286598781701676851103846201081404235840208853682907141611924826767662036198912367921754521664119192275975764667747700556846774098888971992678426391277644785896001739426452730715847498347244416037046032389845683013033223978539556404524896918265638949595068744645963801512676241099247825175051829061722994539979864838878187266187442058655023128593309769734369559987586094094424926157681601625000420757773747367950093529619634733140101387729922953608014728984998601817667214476262594205111115428265126211383258188237644694619494093908828903456617045141239690537655313797922522650489902641821424097597426399396443321882444381583499893723984258159847648499780547809825879491226403501544792308777327828355661814157910241300056524978580050756715264734832676219902250323294587254712195211433953680288649578008513211981911412215975018271242215444186940257441826482425738981131966267712518075332535412610382794626449157176872996599599143257558518081475242964459072317980953972162295208723512067520539349225144189040457275962831683664085697278210732734339028570993676600695554410335528403173501473628376658916914716596258720335152502413823837859528649923086259632426395320881572188423096414469215539717733666031629067366470709545442543745692089194157547800673294816601958424611607782325360933393780303937017463091766640990371285774369525401464043692521164599398399153275163366283822652161936765817062893464806678958787810316844315147295588652072915196326957533420045673271518858835358948814111408895890253473111244529216070336994685791729449528096703062695707096600586169721421770487404258736207492304427758936971846233843441041151578150441668812476462824713968983626432750675685689619631549546768102529094129981176135730734614577561464606470019996992310712278164828011602127235838498453714159391708082047326309357757161486249034077315962294842516107126378780058342791211775702612426390207144332180420459827428055479551869659189579906478644140649862301809452184956901999344825401613262201045529961487146073217825242700336295504215085435072550130316694786205842593196796304580552787907903225041198047743907478220082157200404056269876024469706576490923792028793968474142219780327067487112683163973040493717330151173311397194034263424120239254007836673449834587577561683650958505706073875457789059763460275851923494623269560286332453230861585376313100141175157324050019870796913010258486741737616383908951305528478481293734473943961590370552566924126693555744574413559147108259157588386379343711174819828871942179027576457968997581906065244762240490561301324216046432184031251867155488787279472161470357575113220484623376674638588635093968500665664666410582631759276513273835663032414798098714737436330602974037491153565774657427845680923498651329042986729034089517568027626162846856528879636228629928070347878914589021936292039980123927476036811050808324282152978870296771557551574912781066072335836230382670917940139740365107217165873273360664137506269133147927562757773877882183906713768878585752399363145820824588710098199284986742197620935628860275602702052627241441017943626280106999924526815748776866399199085105570296987881525660602915149125422261857889494119321537590167987559462726347571845124019523769520470869347952927535191916315344038227416291692511774232002925928138855912932294350315393576417607605638253125085480300448351023570487075721301993490218411803292624715851182454793203266032627354476361441631080094956548414051604666494525367203110744888958210892989261477538010814690905360392998619327466761591359767617834085105314208561509879005084916861372294406571259995885726868289252638488625622786233774697101009092631430951744067789683326479115364774254329642039128484702107972352053210484977198754125633492553843700054351559881174814410324050537075147780302471618738054767237398258729996139332572264529402048133201596116372762327562704424486097286352297628655343999257852819004043022140758694792310231845243192192419812503645878707022367716306298076607211862719869740062297415555741274923347019181378836052038389641433409236834471833564657947795153620028887834526149054198181182967710732631283095987997180445253818737171092355711109290075253768580059262164253251242389182003290949948273434323616625230760392082694247552568673193820998143369395885976127101755638821842968669877771094469438907836743674315705070590193454137101360613132642705739806825350889886527907544870408761645079017665906099483246292786657890071541546873067932520450263799199824972401801294508591441278255950023608869036764870245394239783819037326879511585158958598918403036947131188016871361695090628234805078860902275270786125754717833599020894754033574249958401566776551053567964828916955633289414724732784372345899222096917691283836344425963170114089219029333458066704828897284512856970530366782601914316388876576375195193155688335816517369405642078404296468509606676623777356832665536985501677188816310020170122746713416695611959832646676401591530093674509369615399379055348739727414124143500811460242126571151139577406534984746990633568990656660294951077376295951831625077719899422238952483112984975553401822128865200358669329781562531413239885278095181079932147523899089511508155843553074569335370261791611940691779491607248063869017163412783714399076579121661722539489258305012381242053291059777909616157223470578653583855947899448582802213383102004500499242941126521625548726593268978968316639044535029279243726682880050706860513088245310694871554523642659364189388260936971889719704426548480594660344477004645315087815814315543783295297333709313985634218672984466462337699084915383574396571158598343625148505991610994813484374469817764610023892655062809175552654434250557394107665491277360025092721569430150308198932709038280298946124448403599538970136617892860750595387108256221253845738489188465320892195866104215835786331794114438187694260352707884683685608306843450941876417671183693288109668028733861672488623121644695293365487303126790111685924233133956946079497765485030306593339375033914581294284212355763875323949553318404991320700477997592140690482660250379381894373857124016499627499023073138591362017167778783940216993746388912217358806393797699477161936253543537790379447298833546919904012350880687099748669643005272434866153169376293089570103419090956002750446715084101646432328377311037224943233427662318703571049728001531907202077731510754159710441856616679658425901993046859182500855640829680201880960572418679957713447326221581854841049533628408731847181604240967268493174608477747066275292044345184693277487141949840392591869048839613220749970865577444061218832941182152244344634731044804774309932826220218806268239035074678251487127433276643194513852794274960859740902643367480265299710643099922724043536863826847455717767589911005064946796342621492943357567736401888979973553768666953986492063309418981576236146769311312028957778230391369842275628660406234080574692702658511987864983708490842884142219042498126231533938153942907300639565870699208746150916347468901632715512110117273150309748719271383394174722013818324845913169069493236711600039486954192053525679077937105456849136035937181399490461290040275808697563678309618904071626997450473373462249567156151635939677972270206418692114983837727724809533594567279000653431709311829104631088232187741159486947585582893420612898007573465894185315420176369971019799208349538013299655292157020546910821567985276459967356370057911067744921383319655154818130755532319915300713703856989462812989634008222710303847075633931168478513569668750997831407270689401003136415681245134947711308106726930957463246271723968989156670462388628504100149392562947277911347005995135571505661799099523213913302821958570419569315216828726654017305007217613256457197670985446741192456532531341376487742798624605448261235026698179490138814549906533659828752638212114882851712042991391568046177743048532613763644803399454422616188722767120385717855970984313631348335683791498507003108021219922355979739598848657287458626808855753332970795515471777945492035743087214802751266093311347414706261439696159459280848286200515512969704028934930808804886182228166063688891478125600076782447609223263290069739039975143825843313965108190632187693917770035503059949273796409380437367685143818557988161860494697999241142594237669028794954413049984920262036031415741457243663094381075871777217892499817951841804246100825849878618065285907254953057918864028330981137706452693164099876629712801790401115284335459728102783670272318221748904587577168262472921329386652039417169533578107491374985503083483412799958672663967830936923778059501595018419934020487559417039640691670369372209529035944745034981810169789482945555968577963926739802999664100321832576553677441255888664204886990529350906826841210754144095110814735223422896774097028950222992106541404001534390746406720265030973856805946749731894994832682853315310774649063806239297874533585563112528802966346881550138073603863782167131468093581124368944979109060035130743599690512377992622638597059117131317050120501672456385756440124002828320840804803830587043565591694055298299613710285021433636136340713409489877297113487128085866281022813218266229806861252287392366411064349897178396241195444495536350970806932696260200787518803347760128449545082039401794855701948050308532936358928223326355567990364181596367964281719007376978772438794723956286986830634864525992039911376256093845261183271521762734018075695279622123056660397767922333336605404210172614199674403280090907900861957156798963578069200146170971560798602754835681312374170868753206964301461942695542245901529660866325450864681011799827650507638979573723861078438014977994316321321575293760193519985896104273087479651523802205696112547283652168045274001021654226955583061076234115786084312262075244542637092601274934911410853566087750121073151937717513695080728545541442657440866477746371881112887576635923416353700486825202566216587835399252276508834705978844349692508939251619761528138422262598695471277389491096443440643792519119312372611855186476045552679663600901520740845987329157696405738751009037895290125951815136135134186317672973890513763630039339619781280228399580095191997757755738376868596288762253058396784001647317060371055458005931206360059632580058449210970971458495254446533311954128735180831861486532903780643558088202104682639004565739363102842474186062636331900272570894908474282873517502262865600010984021104645263466497013722737935471329501259258123267593553547634735397429056413587118922497319155455011349434732130776956848747168555875754612771616441741634162352236691374266841671519367496718189596776347423976561732839402707108776412516799133866651293673173262684265471617194552857807537624713395747081527451253562627084363939403788858287548584442641679038836159657998183149838628214098040548981635562901759525737257167985443099596088909434592481387501265063874155990462646328930700665538326447198881904390500586475510748557919004403824965046338790125911245364905670286541440365815243050801082134696596475105041802097536887366502239230886360386047709099691698576949702310675300030664741137275965199970370234646872073249076930192676012488667131225488212635572581524307655573392648460547329101126731432567051363839105816908094914357336585087410497398651567128777915452895457228134494482153405878507967596365574396320726326645558741806162815278149473634497370899908862417230458032131553370518650179976201015573727625443771554138234299059114227890584254464977350633446598015949793045073142801340955336758557680349612183385304785449341916381697803035957400143408360180459275128445139866481454541006731883657330998103752245432032539885994795781384263449966173860502878486166658511978262195323081649774128701060259156466640202655586281769520248259762418356140236518070614547365068893414287018599086542140221609627342507824299489079416519225482358641197996142961294874026402454623683755259567242366945612690335399454599869546177349392172027476651236161452423476754118700282715567686593692424583877115019374111347316667806072517898184352656519522636945391981077161872117026176436986104617709786731797255071520669189282429345133453363039838466827320996504659230680296733212455710759981257023641161270232241009530928767593316184232665244756033990946868199215440411394735275446185311290469156214793807381229310989037544471977157276928591238981792845578459297306343940683707032872356924770452354455141718748336278940698332014404226977733631910813465134279155714878588892562028500807649750210605879705249043554159079712534446539977271089746175281534582910434429015361579496712153566067384883419535411453414776715277870890641996833843958647035280413494302428728298260399107392690304835044190741136553870743917363162824245332735667746657488620191516003575724529925041115136481130665116836579507576959972228563382611184712113377119285926895197933127400932650099304559491777473100550105925416425112023602056674205146165726440152445427506469100740188103502074167595154183691590724805147546944219698601203944620405734867180721503035632560519481152575688307096970354756410287757826466588708006222028511951953446798702036908432851220159085057693256538504309986420836735123398276489398543611745230685391360742645837475233228770771893163840712285067129336444095486274228491500552675463455498532822141175390524427890947174473029626034238300096552629391955086887126571958775677915137134075524955431203357610714107388090129166158761631736272344298511693621862796966457631663582139796585291112979531029702853089311517763932169587402567695103127024634038592300166974992178484100624011338017451819031568950983362365326134426089610207462787902028817716047655961770827399277894075030997318273614259085711036014379589240251671651604149295077796458463986060124096851340524788351779446333178202751706015067682787019446963390095171239901844954251196580075345891732029797066117686813103982154136495521461383147964066755833438698562830477197668439495980468525966650289202644192246362976941120750928935648030880245799648612406849747316805424508196747125121874846277594187107178729209721536130105628249481542945311734639315225711197162810271737756778101008639787530748469762384195077667820820054121540304776914849715212536473515480642846611668853235591583953507883986358837086727767857873383618042999734639886790370889867679222573695517035786738375250838807587160132501259641335119976979694710536654845070585054612057146201805998123909018473616749274687552634369496251729025618092506737255534415938845633151354874822601319319095189222894971377954623483119617566128005806618241280075836544202362613229888685469791757130977906530325231264019660164432294854713288427681629404568568177802941909129836846876679691588065813827748965899842659456161909721801413661672940517817918523062690950656152180934244737419796529641415411850087920440769740352924637200140753137212819327978521507947240565615442788753991109551499239930529473022473946138210213781475578992588441679416774647668329838170068842219548619723529323053315592529422871125038453741374890455066041658195073294314616766411203404592991981799292148728899302124931068839737948847431408983229401214912249033086844738709210410398631634176895784903228349278494759232429833587308780341261778061798759073329651505436913891957945571142807453300591735329036221500126976865113647998032127320381964682244722623144596596748467034231166175477302959318123403318022131039351467738203960982757011685421536568651046583016661565634928149980151302673359506309477813385178370892339361405526637241324386575278138755437016040453473288774947478111905494664384865267238211043805422573850419068122263251064430326755593840007425031651965584543847916802428906823616545509055660792442918614235076619792396925428883345817705583455552267336064272450748892260277449757758643930637898286831422477567160559164869407881879371342356579015392190444253915737952400564473936498693576024956171570764204385463970506340885283391479450151893404318932837473414326154901684423855929344288286679126194014148779274448574188164901773423711503143679406366605344161706452297314366641823597816676609893928509000738560619264020318025697832989171268658319796852401450462313711387395931624298110245854320629183434494313716542623562802427388125335752836016087723483547205081631524728090726295510301924577948445525858670809818352595927422025383086334772507921401508172517717533445574972622139619158498113501016884647348309604451045998077421992558472519665710989587798078959828538859797783568822251004475099808228510329200780671994001120361410367522656431867840666451140680709724540888755201907346993379051252018484090789892085272245002924690179126427054753771856193368297829170273790321907133752486416022235516768947185856102302915668582939657183344120466153841348745690815454459474717024954839199601845346639013411241393593677812077073595184106798822976603906991813528564101302224629275828064859045760618425270733215195854115811005445260759309829792581585912325786050408157640892515714546585062431748005283886927221078408409463856345691494439978818450601277381141223670775930126764234730580581588931802485785147411380604847513555623095852907389533956559939029781537660521719330159361829162792696066784035345838090638107704837421800665148898908283660673885909359908609327220676507059118970774777590738327822768835775752405138417256765231150396549574456742035463955197969867615252342353622216889631741244857893147601643566741320726549117819526321519742517640333898491844801895307935147186714142018692582769985668005688018467297711488649429406263459683520632066715789654917259515267821652392566462900028254665047193102996935219448286531198487034881212610100820919201118465555742405335572548761771968682050250501098117059900632648939298688287369391160421390153174941880129386649163774637342837063754981981074728691696360509894776185947437190221650136083177589964797352187330682740131117543034211083152969480145587670028936019785650826014004826481328902722443956520379332470056090550518286512673536972731541950391590428136000423197844756838385903953809098717390688746651152588074879750312260176999268853073294229049353739635601989804779021008901025275615408196220313111667971344466698850678454084810890374775746040339202155101364231090654476459891272436597976383211743847219160808245545997286088182906629168669363323310115324834533890340878433388489029778973406638379938300992407402116623781790733181727419334698692049255160205943754903947028617293957525869356419677533061341751030843423638263783140137021359560587210804359882338076691170283017082447923029542101856256967569343032701300176253567277426869645413236681252507412960627454609916262006132973431778150987372188085514836608523043864545466938249704116896503881545954560824311822073563395754277268964643817930304505378039873463592558495863816101915450713862867693469906563574142842969905442423506715535543769566910246051871801039882656599625944890193491916143461756049212603630134615057274784265117913222785618346186170251458492376517937411249948562175433281110168006201802811563598200851083245031546981312639014810211568730166813366564936938426446557520695719521083461750036988208192868615811764290734378656126081886504654578577190246325378965630192982041829402914541825081242909692523490549419298856975284669743466163284631650283367769444920251511656111999949990025025678075045335949795899968441083027292296025357002726650601351008202646847392998684698451788977094783944270285040991546694382860794592063568242512986424495624457880267090405462498360334906735290586998704110867481143734844328995616976625878537956059334668639757846617424703064415165539635713342900412454347856646434452505412294740799170186474845372079637371812420557560489826935922716198664819760860121892697004551562882617155314573784049161626060964775243847243947677117210837112452062176399590178976851109586616407830013318171062961992968847299714539228964228484902071159187595601784408130726494899139019183021159951968595669644019070800451678024790742785808072656497098302112433864035928646492308460474993349363133247111989611612713645717118945203820171313216532948425998977880702377751787658595293864042774068566204570328310562680353382597781910814666107777588063728182215469645442069166277003169826705314915358865682569712910117329971773811820069859365513542795753477278683813321285318764666602084583030033139251173617796339708293262818248697480192949651869048758604996351853864741156612988294355454902745765898938741215421365775412462092196820860011662232552069291965908966502530909465917485923041186032934381429977794171523858946718046975911004337721513201913758569237394825231701390754823512184920401319787825434869683415890566713926278239729151838372615251344213392910420070294394235471509117344083562009255310561878850350888631032460610224271824221166961877533930938003315115848624021930889927356300489258834970764753212307249885305924819984192190950202762812059821605394391659176296010298779057887462947572060411477689059233297223004546797859189806433567466824293932575323471597951541292971259441388005876521329204853326791132649810135713084863614996507257499014530505430200185998717184855476643425701608789514823021670263208232641119467798325676089131537707991080817721805345197011314595410890388732931744222817545313123060682089824981073464854425447088196411402680397615916842549442133140428919589578116942042270861570837008805567961404482869811899282497087723562471037911359993004307016329734656422256053067986329837450520927115372645757484317700292817985932889149791561939715690485099018313326311863692830838194175829347580071759063578438468832293668142563546045703796078436855543684565493394441598653924137389107870025195535382845826083523164406502468111781096864972783085944578444304666998496498805302839663714612393771588959911032428826646576364338823390607290479594875976086407100277463448761545795693215627269320809258895087300373875003186358537245117630365153857132578124830823731096918515501166530531431566359962835087879849855041477492866248913805559734209008611817108080148928794442607210255254840059021538628559881843582364420997333861082330912681834273402766265441448445712135209940685145814666657955229854173846588046320361770401147917156010825858401148100942778983479176731260873254338002891091982276792853854931583415378849468204368886145544139438061430642202427094271211614064247535358775710940184141666042998316104368409641717015100891722695436718562020287468191964156305455133880137436170426175164578573095272635093663957930560924338824711011568069368987840707244229301367633253026599053657411375017289036167625185084003019580802409761216311579738855632231123085298521972977847553987289899750937650812986731797848025472672421786681398672954336376173278047932139237516721027056060769188021338015880847559775287964176587675992200004884274179678870769478132720389653057160743303341382212537601107556516275159084039564728074305266332636230906814849480327907047476796781670157549603874114590364012001708947937570165267454403147234639301615081650630992295505764461105094643123029879712638133667256637047712812266580127567109260252457381231118935620467302116363511408338807754841676537834726551278945289922668999315022527369594760644545401732536971588471034548060964434163049040506799089558672584768540636169749279580545240262882069591065631778342805957744322642793433056519387823405678703784926711235501485238443283923364474406039064177390255991379809837340690667129119931816508747213554137537029813976596476864543785320483691475334184506098800311668901246817786435051915055995667768950821726285715328535468784238739749954382447555015361826131760958479477590680165681039949299870609050299117706308613696554279634208576006309671647790062636291180018155973428924307480512217453616136503050557762468288358516232855189961471062144717103857463664396045579679014662067935536904237241769814629297674119557497170987863986165843123080060513990414384208115605477106365854619318253677473128489911950107391494774346024310621530310561885189919613323385718879492588087321953580640266278228268727997097911958754632667038087055377019791784042524276485817229448398562054019664212210526602717271074685199316835321118696542479582613305242876127303288008935956088169943581319220384506943619996370225172715694222553741438935317394132984575322433426515127133449847407867239056955291021337990030547576335688510810657352189040807321936852121486518592578326121872847864752569272338877853943228889656369329275166771878894991806443440539253175689293858145310309372088749840197889025137108575104009111737540560540895532539746760469104632460955129789819776107092466014161776062504986061925953724814215748761830766624375985652486993658475017773508677707345473136258813203914100351372047355737669894497389885447863641305473703533530351457018304649218209259048698370823299446954971568218277464551479447673953194622316680585187865162931741009114379815923326818666978026998520928845405466900202526902606549306813826553792695011690848389788031655649261774091138250007723049641312855229916383560547566101186842553930313815548154959941669971781042408830620759115417516468216267733107598681603340104791913590548131616564426832460185531933189865115687142152100535263773732354228933590416175342922999608613856913849890737292753608679280100525381399905483178227199431627946970451038062287300584610669541762835862899776627419977630915280156514769960032749714615429766938480557036619416710145818376941663057059853074529978176383615918101056492036273744530822397448657234836011095278474342829833788244457335440420437741842468061611621875705390694676813741285569041334354675710950976259709522106249344848380136585240541478457171004233839632740280763714323557110854367768812845919462450898336627160839763697270808186075692853389376750574824072458308143854462946432588605002751608856710057411326323402921630102350724872027266394319351714574149974059605789238524715553888084078671702039314503526386319545141422480039194549604932320310152620078768304136060629487419446541346300642071251197194863830323937669362099271166786933560514036169715894540376695652360191691675599998220203669799336192829001539726419033601995554341256208994104317701308448669727748491071240629608493405767158054154557500231297738616624887541573611713619504325512078664432513885383976475167105868824055719844372157230898464521712999123404299361343961216735770682349753486592231898763458254076326100198979901914551649782394767591864873759687285113861398474211556099573606125979644637685513979841533086469734659017407309896893924141783634514777404366714627546301335508210216325768284898823315359611453012532910490676483006190567291982463318320924978256336419136249116915476861373276482592907551777412715213502669922536622434443677666475623350662268488171777003138807387919748586637232340756569356017838276346240685582550845359535764186501072169409475169670419684595646625710252136173216121843703286490702332298998921602222037891810292602605523291365695324288797261188321642477963936633866631004912122195569357716049361400781713913133306265693005120899022481816145019838738381008092702693113821697498570672889015406220306611178105147663744446809034169580027280575842634229833347955314306604560987895211651288848216330066607237529174393843731735354011226353465422692749541886219331982985818845381086343442506735711202911581719733849904549985598851676051345736731133030252790367858636154497098676593523593436259504763388031003245339501724643409626309899944367082578361422493312808197790110613362187666639770033961064654758290505204821641947250011011569915758697514065740117773181157997655797988634043668174068271218178102227943161289565847982581049597159487032002786553636547176406503779766575972196704042028724498438503022294074945447333733390672120456555470845409965729018175803766287588863630383670848182409582312742210679172863135655721144758713930918487593310195007237910387004562996943432084681432165326227405778546676380907122241170927619553185628815677519392666142210948387394025937002634175383707796448301836675675165518007792851944553213620225082690616637829446490299695998001055503363327079976483820284744654324770064619725807670559556360750241773978955915488604472928734733954063256520940565741513876955616914353979257040538315551057552486297926510446936437454637182710973727441333486781325082539685652114067423927961748682312822837490085441884782025909575125270255101366389392632762693438479480964788165239153974200811096338249418430003434601509486109550681144042028945618821406589151612185661013081959364536795466956778474264264020788047550259966528662926963500144853594225488113638453157187677517610278948947251213392144603608472508373752872111269325087416266238639215736014211616047202301595829437752311810098252810653766309616163327996417331557339285365357324452465233080387763816985426150496624679435341226395449845607952709615485438494579285110606056600772998251438620684441205761398144290518557927129879523262717946840490699738727345977362631560003120907173776758157936546227630327182679066604454042053279928708447765169304610609323235021124279560087703116878286556632914644274094748818205863026901541697492402672390044961083079246942886922637979142096186770488763128956323079373469727223555596746970171626316290547089449009481011216524792295543744774951089945655311365194171523909476977365250507606867406633885771231346262624719339265361267280921490612419662525640507071487764550009983591995978546708278014791621350866546450174389035477110876816005600726353578574641771754793192202480845070245114633706102055894905710506859328166694350380529838635796297465875711136012223272772295857911110605373283603229931044416166559227666045919552939273776621065537227769635503974247304421576988498787210134635839539521139451701239709548892392261897924468991014250953853817131694929112194900796479496241054472633026957150227705156765697829737412455022589975306312287211158275282955325994886251348159037978696715204047691522149509320019451653754970167189332527442173597961410577611506240100079419660886051058394026700147266040216794954269142346120509616104277578416184046167625396383542078732473303683740485948595578124499197603332181990281589679022095316376540075366490110489819978019199816758544828280622370246347743697921292541050909071848099502606936781941023041993503607527757860483012146231160057870487240954108346305432856119497991975760784276739215699483465125691033215353118388495101877968577095387596741277418531649078006948341391961028481494057229016192849745330936707880225198679393142632043628756675557562029459902226950267369625522226462162575883718091870186517828722799445691772351523543572807348802878094797767312574852687027255263442689231398874464231934406845481754172385218196703585865704730593359624393358768507292230385744748109341033630399775636106155068808170955518824513835349200074229977846895787945930273084344186226702410099436903473567278675212311246688136502557496574655014921543384711413126961085719715289822001321191905504987691097989318554686377421273210215105491280933189340247288584943964470183499057932716600981712106995900350295469865834057701836667110643786592788916137941800375589593526077826344117663824408108992026611366359563701001417647793494252728191154554380920323719368893144471547350394600635992841429208967939337926104164800262367606006954090469717725524240874543638222561079941908816566531348184880030073897909985330317018859019764437061019668950358780791980505743858817395590968542061642293610089989540157212072004497114966869748398304519890777787694699937887218655059726464688875442924674268646617470753280446183860977727745184042771542856115402497863032911530718579393436106392777455236079207123221281041593451069160494163574437069194858933520446267971342483284016269788831996469576507800758513858946160715206950886347494012141137168559793743987189852796219949231124239304104970154552363928124138120156533719983681669353942119646651059732915228064717593620139327052860434804018216404593343291503328549340379145232485597625746558844288453743498459484265036391002217145954292039978624575660783002795943407920265430752957734454647617241761195936096712517337412893937504209434891056903781632508100654744477120674360321747343728394493776912443629410405523660935745799506342930353646247181241576998073362943951747868829338002095338111995756440961317030432864041686657395606442242543592770137166594369032411590362316820174839598579549114572663524354886019706693847601188443116332316433655708315398091699086019704615069080583027963633605663428638075347702802806917385464520384406973307414651813524019130288097306282465811073751146832444649236943642971870710525802287267262343519729114796903409994223306877853754066336098148334740468650079249387850056643329109407340842860688771149820339704801449362945586241949105428462446120388489270539224778142874572052501816437263318622202526314092337102271661854654064503079630459409327870021465784432524995905173266076968719015178044340283156021879055144026680002086592048013529693376793264923709001096819691263631161024743869573977256490963210157237497035786901344224648141654736619309044681817852039723256020384546080871494619938173821663967695101510568856315658415719073407463015615943432454327521777282554617169998571802095931646357338548024115215768059942256393070442340980000736546161291205785120932241860748143467158448845471157653007260243555637644959063175768589825902715298865237563935809269146239760321426106355402062470609277054284360234888507555426138498626329285589651387841772795353486066145354392487124567717665706591365870626557948909779720340816494489797680239781476938944743614870227907909596109875472779126383821855821656317630018630532876824507052685108066613498689835877048510410596979272878908330516727599966770259854120857275105307250593903543432079427265284424624988105763585768066632159100221046508230315072837910935201793491199303034954273737779976449364857184705189766111964756911954721476898967283119221492976900129632037725543677593416241731405747773132125802931067069048495425182045090860090001693701570596608016227824503790433564537126956911591770813134234087443802593879140580524947066855967113153330371582548122443574123169048143204205406665836807315932962488032084751653271641711604683880703112777411351240956177265285212224631196837703623175431335780921956877899477254157199929999627669332679718443602891298853106486240440785429867217437778353365741865352709862317637265696978146652957473571265321354543400604578663289540595046109057009926802375998325116904036401461243632387925048144006492647117366590599706873673029530122107258273165354661574585131041508108307456237001999915384688312567860635421793641123516272788497592545956078727304561243256273530036479812228434541373743649333290640620409925914416893878712724982844550242233952643189369729008361719987345918315518604025397550184748255121157096748287577091008027447970487299563141446836926691356747155457149396882621402386584906131244234036114522052502709662854949280994585663598421377967702470963994756297476777864972365041918062219431449465012390719724826122222955524590806012726420441626763577382901083056263395528466670039862101252202952571914468051034173210131784409484903938259766273322810408200116368052307261430433378773999621874480417628637442954896017964929630283313467762864675332415445087623440251916899871888288520355132152522369466233481724679647423808290697472510088320478858212926949889039740584799751490285577181562767815095651859332288685492449855396427764223504913186381107569819839676064949277242341661474126957004508948829018572451030222481439955350804981205208561953081920623046345648841447538266375340825980451024845570666920982013873051655052884146399029905355066938661282588312596367921286084420191847022172524295417799650650985654795211867209756713082894826676752230650347593861687652075486208915085601737623510105711557320805694807518367745800249779448065234636501796692954423838153671715163651666685774034276762111341526797562115705652828182701688824449227035157805548688001169043400422280441720670181374415584692562677287452824909125391522114316892410065622850105691087029955603796140393199834727341125510199187572245943713470002755101341991242535834909941290760272524539975765601859129298335098762188748982964351274791707594565844387856151571533758798905194342932115612991307284038167457528459891954444696300243399774391183044829730519061087154035449100346776160269693769180158965465817339817121947451005381710821920445648494933222137532802542515797668131592283770308124617825236411432030489734965392073618561164093870435278265867397898420193718312266403006605738776489749279874540037877516373428221134657104427948634441636166823052151177538902501481756673856665429006169628456220664626184627397360251041282295064310536681635128921097293517719055027396713388042919048638538161193241010581644940662368625605653448765166759224600807995260890616899520849611851415236603729342127247774509640547550183308406741204637109505526291210560278647587036769740188589205957244407328080082225059367036000784996150848928033576037655581586233445303727926940678073048308848266804812564411153304318877683036326099564154162780940815723438529077247915489016751784985148338146200500844850973318212885656027229472421842049200143381524889374964354233078039064390805317649070030142305796702821346151080004331704838763224882991185981075182772008986689047934185959569775348593482908269232631660084450960352930352767623775583290128767407799765040877493175891747680670172271869656755531502493650807019001240626734863438738876655116997282357664540972959116059445155993813715379112795277674058970451495964503998940968314663950309790304037963740217821327095619324633236781914287420143040619710812430328619252751917221478566287582538348299163806006154067203418532901881120495145828037104012861213805549632706630268442748986486109804589458938912881203383895938527703575131962663994379189365063793353106118188290709438193305196878322730857891246453155916595091098510265473783936453086236207387735051443003201106530764469847398891830237102939440749990655339824805515167028782406637671084663179464657926549453457729990877443807283255991258981780746767328967315379496200229212320334252677057587538607450911410845758096318689566480528691409240658624108513442175444997088725237301205042962948680168192323399025527536289508655543489529844719762317245296775258216859730902496275277239260946789649937770444288632795183931615169176116700119378403507102961055233216951230111531091409258917955876894970487067485657495589470293348908715735360709164425176795429332412087671218925575279852318673150943095642489139083213123549486277000918963061549723587830727838254503014179047042672268539323847048064351597480062828262342750002502943087209354673045454160536205830769587278494802307586346473461630825338332605863415563240244757799187673255448310514971627608357764319956184210416618335347621901829746460192612268626506830183239691097338775762555971753408811685892229763095644934687546757062640644826247051812764401357337266837470155961567798071074743661424195960153909114856679416823831701587175952322468081407889376973452471044613502201506906749435761347925935187169027026562413564192708252490771671303229296557695630321873131619657701086942150204880412991087396373478489445560951007848737203430947639716046221494230097817943391742261422932435772224339873478022398867778754634006083245051390773436915952377426165072330496315091171966378331381496127378805439940932243682843065812305465340864811307301931656003252364868989747924057184968617537385893988762974113507337018797206157241316926818588609290472968809056872909512668206445118163579624390384861166619551871199596240775654517202264166735379443403531750510204633661552084290254428184107726750665578485824588749474535165994457959440851384864617651774891720240444255461552626139190068344596842800606133887723371077757766638818309686518621257549409546267050923301664435969028314935517338272291027965981737216795951291837374996243617181684175605172537719223930617526771573832289654655829613957411129254182447280344093932697365203066598116879614951406132269726768197228016429960578132048344157660750777005819459485848561126051271457273864226862321084959181673825234726142293968183555771656150708597874237015361057399920039161591223734384994099920500039663266230725514186436643184392154638056647867510360826462790739143576795195651747082958190406842904831503119271173188972544003895483694189710581250251474461253170381294995601227939497850801357446191274844936584893735139914261514574512744458239041509328832465037545875619845820700521450866637623054277080355113802212775672935900209215945552898823374800005281116830714366948236970696839317364567145827458843901336453128599471799169953112184622764224303970144342647801934767325608067810539740430660795046039208793290743900328508201648464183643383786731003838824888766604415034184089663213031289755346605516152689621639790098017495214164174516703823564826501746988637931842163201311039943650692014326905376470313001121291114134337713510688328839178900593074523114421319150153393921242814896884118367050218766170820262487070850102891232701427815143758215036487676252854651759274886088704595981064479115038761605705741229132691803542651322382273651928616368116633318902010201684556237525108375540915524200573111329005618184831331579245448498098206892333045653367440728317189946886566784077241368229712320726103152495444192433131850484983510930223823768000572536763289854967762230195266965747049182249623879705549558165776000572154755979378275809055247460656175868493834603752180301723231768295559605276864900199695499627819383135664188567820675345770068894815985660938777651155511156382958687394916015846316338166273158878120922878684950254664823080233418782367012199953807396570676611721778056054500921929002135959683502372558856236604053793250939191653932193880853715300241500743556604111350173286887594241171720251304336646753351390682683782670806754548454590521969087821109275425552355050940360579870558066222587544128132125989081365168890769804358980963764669343518963376257455436012876485807220524281700836631073289417797253615085262606881282459220592104349395922973721825823485552303866224167453318956705968867845725268545432559201150587964463203688629017104606467906673681595974244441249505672328879253769452383796377232039915439982829194741752199379619323859992317722518605855811045963846052387225734917620264692348275913116537787657659687806335427153915842606380846546483377559373321689460563208287836758803561808639140990091440401033652415498501248727958699404201548057844782389571236903110719107313186545459737581015992487955194588598943591932619653808858045593580777511133823872529085901688476049048521480108683885695421495158543137291826495570310248111330347987612172934041398965580538088876470613178270404216779132713266187978697550769233261403967427611188957902347414342992509291502372568445650534253790127575309941210272820206789682778581793596859815581864678489313555076776817537538694580762250244409728955157129381330289772892470477197023846630112765183719824284676429112725353830224358840274488085554297049644464584208338768889252306729270608974219839076023416744361182471316237498950595944648519741547965367740555111399340394473005178531724682080304952241042025489328774098503667096215171282868631240513301948837929407815310374007826036448783863586817025481734492215789984337882789014125386915166776972569861323628531775229882408339953897932923485147488630519973256215142763856912164946098713906585963881765959588958030405316019940571775907746358420773092036591418935329330396379227202726363271805535849741172017714275866559065655940211176280275341285547265895263581092694554814375886723197039927737350154651326323572585677812289913721503626685131251975095344649646814215446415675683304662596200922056090050918726851609947661498140269258559418796528018772346003598275404955437789875108018565309363644871681693770318569097519609232188154501567307857527511169481701995941689066976701742517363996842709492170169724105283908963122493971461977828624967264848511222045446543178004848245453408111894151610958601033144560369341568888559900081525707005969478215851819047502000448939160140279963571814421478661361550460289040028340990824077127771174738991915732399870412301001858939216645302176518884612894064972760001512369150337150144967492115944551673233226676135313710985196374841989590801221082640206840497019736048617170144887189073127477443916933141742169257444157968843429819945817914629907797765653159553467374496423755670218339698198827816577100585802068218893056097096959571082704534615951707085811427783076514657918912696697462203073482956272240257263470313872145051570024734421349151473405228591366598067142930123098285145298594999209038353622700324882548281103967466118502969148022206682192777624868551436071600240689654102278855436551038358004147514164578257887667190309112930708520034733597828643434964596141171649223461015569879576734648927572601186310176640613544108511668111938298286542597098819586576093837037522242422248178681585775054109149312257826689542360460866950818386756938295937774154945828481772331415723484590055068706554483420531689023073770479560623538824289096971811638481179086975435054688782246610995702330467035439748861554249959265680271859824156370868687259416891469136071004339428961092876329223669633479770896852772627615453656185157277055217197240445283654674634149727158653918805349385204798255193594086337896274910680791972085528113202505894953757776317286154466772737027162818318592610642778874387630049339891947575832148201894215471955331985771921609343992088721353383525872518643987852052135202024926648331478229257660460904494539912176975288423731546117271983530929893010627226440428308481167376063487397507461787806073095084033874187359814571770442317327895735807934749414089489704082671528535704403696758596638310034204237585268099372656782550641700288980868412860889006668244359713305387076770695508991428764635674899776777877488157816586131530762780045583257703327111808058555255107310340892698157957322666959060071035669487617411261938926644564541409820862406208779259140247521752358856021622000555786237767595257059968080991532474833951213339987158791113606266976410247524693085069546232213400435986176596230074205029981515143712973794970792299481663249517791402107006780554249263878410950056283270688186001367556099146107291634293265987651029363190387106902154329687201696889297938960853119232636184402420205778343902351714177794617885210758329050498362187787099965422021624957086750998756674791417232448734525155227248672492244805628977469719183784734865529626208632341014270040150422351741920633762686069388022006030211796711279581181011975705131141775980358129594870552749327636723954909339013286627890614578945176634371932449002367355382301964319281649990717566828217841421331765145474054520521608909878877292761400523046527901524542732880408570774714423147995177477513338217066589166491895677250979580157474880632214022709492662153054526043397023613093424296080384926358173136459983754729129079425686669885922637931132522382176421424139120083506384215146929141571464688929021851245994758652115118147225504060631649994621343317908161691119022584033030019303111797550526498524455558419314199541827013320746257079231559607519808151962827724871696568419739091185069965346557894497146281540495930888111971930216233328931951650267548937336657425926281727166377708443108179521312925390567733968885139350064072051986906807707548347009077135768850426330398087847486874132827395855752916628067491356089857941782851001682950272083328351631316732007725539184971874655152826615104123222158678515033027726133555102013539373831766222043997119648909948290836912152876995084830038627216619176012636995469549797219413032222930214659471856205700661114319210618616065185628887134573983159160337347372579703944160683345429677581590120332165905280056645214665552736596525937557729807223726618679388893782102168790063883958615516282359475597869083848800710682745827171711139369100291341833966941539269050194599464353184685336643879949975427023727561212961917019365261241077732391146668639475759253835530646997218377908292637775231627730477727492710457150076124687806774968917652290677839703458572720615252961455116186683059472478216317978673770653162269941968122135370420555579281126365539320846961270873597275966510145901606149664035849681532424169481773470011562085111339499806279756230654620918376862697578461558329149413812786151874840934287567011560698348016951403184777602913185118816643442970649934317158150062661335412741780643248613484464283461174666554270268372428380699600104093463525939542241912539907648677878602789171409477806040013425731364734851019457497216692590046204593337472731012855907678289025404946212360367704124402685610164982570470961438116540762967000254583166215955908948504026486070252698598626784294688869754839897628212939709390901783308707984037922852673772242261775484451963326015132211059946252213784520941722318161339329792284700838253852850876805186459952158150943826965084528195655398993900638116693870699356254100297524742230929012016147286045681289082094333574031665122338006385979825465308282080236721332286779832273078958276560519748332538888852738152971478628488635849487442944755933793459747029221239017736298629453602243895941650251447295503309266448825229240394059170959906747560165804700185608788841247704408270089321867118853025995457735751873948170644458047287446550332612725036773829232145347001110613391626089830944584000608404046302559728185890107298468913055914437216070398017332760543597631789272888717157380656813164829853415239917146792393655594782383365894656044149382706600935577596169366189338492016674560349365265685467167420761535974391968037677669541815938994762738782320696245300829859142025377249677735039281586608940781784098975348831946840362002191849652948936375174878594812030089866662338530463851690558536350825156836189832031709254515133884441359297440178482215555300128093559830583612104250372582244898428051134680745479770904312537593627732344859787818790838194713621178251041012044435002740812574997499585785337944726032045637178270830721228524893689106367072565786328625404086488746751388337437245483657646879983033689555202771150894575867250711722701006044672330116087523499643204458297688966743078426852339490002387223161280286173309561749030085948040874214867249618754490418439415680676297134432592776815669648123103685774928851799642953122700859410721975877485297109804092641738699078435419057791720971193726997366581420326846609512284504234917311668532724265129079167471520560769482393137567706059097897270682379163434790239049951040866434097202675851261218300921604396697996257592905201212889496820439832909770055060322863710438447646393499528991737104564733606110596327296523168709019709929898835700940514777655191642415840783797538440400710293848291839948291727238077815712517729614528472762285612262399701591586063112907184992157722903220362790283646355051097045974919800615937564142428481586508926384154040454055054654718366350204047123632507566628850055669800439500631995452231256353115502369544783652483080635489654092767161654922051097500980021500298612459875135324642555623882350631176545938794163527197442104402930155011333810042821691217714155737784274483638346866118425377331410315796384124841736541920501839612426799410059671331208001949984375203423735376692838763688477244717903188499815749866118758447367539405360205627805989306764861029394028108565733872578025781067025607842672973831698276456024322669665469445504258257068763177860377365421592945146179224320775883367227298705147481267203047587902382163520094726025938131096277617819932439068923914919586112165120195315571787411978331247845486675951149917856370533113325641602572370571804751581934239912542966321242953952964159433661546751129883282158364034013858851884615112754915889305192878272613895643849635565264910286074360547659821014758814253291171087436957330156729080337373792265009132977356784071085648535471511953127426845290473342149912646105341345252854069623676775402024992299052552783572255467478141471456281060442589150219602981391462331612810389575620402673540495191089552590935530151907348395973145562497749508148581697519267570452492096401653892331125376094584750736804284366624943659297086044452910246222338009423947815949571195179399199078160571524648323282235753054937693974138480744419568817793365681425166904812549375185427839843282852047055946097718496190695032141521221042651681573817404472818672602698939525132992181628576105533406980719012024743007809676722595184384796870282811096068060993916572003828879944994309706440393349432374650418962179024084837729447775734596287655626010655398587910922449259758378182174047685640455485602289702021548286773412755125515793971142751209215716132268817953520332950706862596540203465896350621571006853815570881856522123163323983965002097258629043583730848044444691111786512294181190414947397170382553338369548648138447127372461142426844151666194431306818698018307150933642235699557855331007262629594676979797068583438887735938293650227623914119987940535757901511891252593865544311541156329109026425951249913631175707509768919325650337963822451859866243646774635847964494909544984248383967612855750476837261634047324448626125641055711930447141611585400803278621360497200323060960762169526329558958870908389425706129409097044714863494569780336993699778884651867077936109366235329605585746473002707209131951977287249304771467218391985326733066863326817062173742407567767883502077607868303203037175849352029273994044915113024211875905979323852680404265657678496608324495537353787385447690571595980517204850704645415531760474097716318789573949595280759963617515456952821248504928747384397211921595409531383213132210563973299354609052098789882345891060866071775841339076287688398129514106429027497528842766557683580216210915639464649685871915111774404171873438411088643638631588269038143840797117713394929106274428564792847643449607810537255935126804184466576691419625422749587768616628861433383597486248632558108979286962255244064403860388410141233682869324285067495610300359887730113438701547843195897818423302679172841211848088514635484071109071046896415715889256767015718179889206602539911022273136260579750476195473147788360806398412260254716266903154108331967952478256155321247639312031394144749309519101092669203022202617238938941343037087496870120248957968742759074787598432664736374133815973110240246261433059065592593830450493195431825323969631467184288656210817586890886437319229063572051672440498907359094161973444835596747473888446088880737435622617713863908449315930718750553395251686246151237735730784097102707149052315595059440146092707590735680089019276705353892673511427410854242196917920599270288611381170275985634423278262060856452766265229339881060494400562122123179551170375791177185168842193764484305314067331076370412126611498275724502769683031902382247522381786192241897044432718981185510248567743373494918064267899989590740545420086857197619918878170792717436459539523078629751411221471965920224813827440803741216330727424601330932858858672788675984916877424709956437413945772367501732544156872742814879887254842172865021058487132748099493745701196530329264850447934210986075340804903120587913677901446451056637485308104577783173730320626356895421288549180149280801458193898104159933888286937514812025985052982682495682269886178849042565039393771622924484038912055098196015715114501238888077433869682793387905054564188065378472047364130697329571682293917739608010277582414665318463767722536439765107358234243719092005615935462507008687900688296178797259716321064350687052612427155365587131316427313785442986530599811070958703927278124385382119197562024402950313972758504093140756157429625396873753643444742516876110280549682031124775037201362856666641793698250942005337277644144462785990211503325003119831875853960152576080599062681005627591075305576796656670526644004528477671859438585736055425960805344615876871903944400350545852748397166289751044402636154959481914768864652405476777677123071611145974260530515127381620718060295313251601605719411119742191241757445628037716900567042820007932195018875272629473189238356673357095459184053045766928549466272369675149695072943574999334208076226492583130510269158777525320897444064665648405001085876979001835889885517111531480894960253727506072364742253900484328989251093527336946503852235281305360148236210907420065949040456659893707053146193211854290407667577193339755084873584954138561886598196175291478387552775215215847014790614676085606826014729994312742156968714979185095564919223889875912058230892864786477350534991468340570980974495261826684123170546289384636622658485257239867634584795638770986826968461274383451321343235779095433620575146476330822269016946282228527358125266283526078256783380453426174613017739078400448303226104125515905235394380968068817451043868368694164999500143467711100064434605720950858044811501857702240607146304728620114545900293312767827888677437005606315419427923553319139036885250360440437959908974254874360530086292427095261553712315674834720165443305740607999881221719719636272923332432966270771038150943635799716422191260492837950547502495068854577447054912707168754507299827893639113229095140415062966117139713332861154589997269742360904081449335304492367854093441316640715988659395835586427802091438666825217207126473452426087225665861527391473145183396719582602748302251928989874723563219153918215944180196755439574242883091599452232655421187537153090273693488935816749088876027564343186244196092775729741450525966149987229319822907513618274196794849529763953339476648574311380587880276869974762430328867196248611499149987086311425631708196431822572739490600758115164461972683383908264430842994225183876776139956179776947813353912692361477215606998970646192461700253350439898516880700853156597715412096604659705373841896510705535312754985008097426895099085844101079849153706537719735992017843406603595240952195738971580080312653436379138786869087368436683496556526865906624440168912099198144632916150939344260113212200770146350328051850280137146994630081767031934954023168945544514614709918393627367027480841776016530226129262957888050008701293335074227200752500893281704662302632896042285405263558229731274070022415512729767131882375358821552940856367762578969795584199437049235431952544828270836542561152997367890396738684707533380917516758065329984978908537336796264766727689129556609760407153866122014517795463533365942264916714312579551270378648739182691035039618307806074666476915287318987596198528554984004601285405595136205136323500678245675168849827683425980618397166658684986798929508950465387087321888209322289973417804567791280558745206549364961773389043830393797750151470289270172286387196509332412641788980645279385841579277219308825520011492919610535377168324806565766379085694459442984817622960188288635069979236032281611945688569895531513001407321361855565551714448043372515201538782206660255500880863813487179360522464436517094938402922592647706123470910529931647351784475441101055310031584154196673328554500563219120564426134874784230571506591857714712441619573856717124038739748929722725307095821677455039476409509204318134156025330020784491766752875448903555350612201112738285878920359142209572947906392568439285027813044934485622764093649465338908910717214356615679949150724768100311508309024419678815092631334640166331356920966776643051062399319413037581590116281396395034544402911789586327178793226919757197636470599154286060498516526546579724081449465523643484464915690482522826369663608766125992397313378676570175138342457820285752092500915775351090168498183123666260510861276453559067074771257084961491877769416121649955115521261200841473307387034217850675976456614467811498054861583171712339597822994478725925829483058312739334324296674194732808893647081209432628745418484201231966149585101563183449605786928380398166802572291961543060489792907208139335862212022772072975029116286845142854767656624629986277774744530935060654380902484848501919809995229320191507255700083333571390928345885784715673978936088505095649193845750637108757525288979279846555676613760169202856281212333682996997988729338419152807348079984492772741242548457060674643525665932687197438840717920618120975868311898078832190220661185698234738053682953144760882002540289576147432359592832889349923095671972896926795581660372244853677058578828047381916535006661026305057937756011982799930224422482918703340882554966281854508240723198004714239335155051519901878283274458421935981483165234869446512114867418665332901721497003586793978389472396869480088213571591505283692901573348430721398041415895316841880619048966517925919184372673365331577529713683760109472350977660033128710946868425222934771100118522164973522334482720984781275469567086022377941712718438887559526136679423006225027116421300680027111657118821335996358851137677444174567162901241733324909523765689948910566134511421160642311569121958595950658147312174267111137915128454398672553875029298221848972978783915293884228124249373829003115648241084429105324140477930953688872244847747578320617981654031098418686883257980470635345370581152492767361389620182559379784955532455157187727453157045759085853419199266019910084578456471142481416463643787499289460607131948866776805150460510786766796849052552658009455849263400026346559054777527298481695146395116822734406660729922876901063489344785551974859352694276067976455148256424830228506285228517264022866558195701133793428751472753209522817919138561326319596632972402259150829485694244214124727369958890383842078972736411949027373733118623674091662299430515864001750521394473290597762144853002218406281332103705330512731560710799972723385432689731070408218616589611797278782615787764530225267188713367421564988638691545528989572991170862557067503713950227435626923445088620333213300718579565122680585169631107666669447321281580347750442953896800975516134208145087045037103309207806033663279771778249352782282073815714032660731343352580969816314512285392766941334958692393971217108865821915135344356617734740364008330044404582516822361476879614300924640415539184462632103582178061751460588324827622968563284815878004682542835936628674860329805492205553636563021971586373221495782542647258030128580088383681526404847523270997644507742598749375969475026512673609105981691271372237428597903977809894707572950027424002422339141159562933490984134356650505200171167083080536373704242634888709373704286181748184712255962769443633818558713176075628003969196078711225024550431572300424678516073223556445452582320626836251437733640530421429702555708188650876657766064805593577921989208230575243981121737308076418019524578328415844042780463839166707441689892273124938732916772778521299699798711805928953820656632321982358542554729345021243486807916196325209930748992060203870662943387568656083555777365446292655431719502957389812195430536481953161626851499895046242992370408488547398435379975647628336098414451139891417804661714436449631305352345119221964238134435899346284189797648196414340140237034117902807628828811625407214411027416085913406963402437079949684840418744629228470839248325223999637802786865802155630150080582044050311207858659153083728885911760336516904017210810284911461454091279131418137119549111008404607922396219377050563481259264126244946963091456472877755356467749460933482957809065808066235252180810410576148554353708550719938463133560125584014803286205847988037366521039889771775781288720254875869199868398771300810251612900111371838868755078140340904369543896738722189726217347162887402615636210604997753077008107565492141216926990525201179414642784395119852523621156894675591701719927098926497816795997904850011333557793223657442661869466956161150038285056468234184939830813101682673505085508625898948782185570842485306055794928324334427667920183061291914371992254907064766460829121004762116491078365059776857458449254068471734536734363646794423858411542120048327241753419498497464260539741236227086447204081129568591259120713496628476444608518225059802441576443050097563680128324461117460237554863324254367934726562009019320567094986099305231402297966453187926882342176462957044233093005091632314527192629602186599643956066572597637611583682820175599833835530326811002811254302271801086001939805461033113718225790608287306501813296029266847165206618848686362844169426192301841405928812950182503060543251943195136711045420017112592517941676251369899585350352783929771913571235634855169824691084816605085849360894882805478337948264962731137251507035845931092361867228229406717495289737941094660387481765870808462251287612184224463925391862499967076492192055372605882435016475342639287520429293225218884736550594662006529197374743680781274608348534646221408316713034109450043542087273957351738133982621450268168923519133964354333164348262165636705106030633541972735257316586784814243024618119947870985590852999471246298834681147760065762138521623492675112384395503402556636874394671206007412135276965589445260802145349227555690390642815336409062718797726536879006119493479501111624968322658021946228798215451843558922746091998696484779216220441586630430673729534960379439486298121359080082355074925690704225040114938703244474554779789947678400152984862385079740264639183464457070579283438183997388346214763484397637082901730745001343662631295935440751719402064260241083952381075465082899849381876785533356384847803979632049786172872467711457676376946899784882513725786986725632523103494870611153272528127562364427292749908559440449460355335538582450859787413304367588886237113828615169686923176266523689623552271183374271077403907347533545743703716640399979007333005239515305021543090532784514942483670406311873699599755022450422640350849969472542429909904674522446065103157947260816597001971084842933050284031796750452990630069133036231625618318141894315621254787800226938614364111876306628042624045702433726423036720151963116562268692874190384216955734901225801436426172405822130538452629548656932415745599572765532160581977259702585178510912471245267941558235747067582903056917895789911786603460058545196026180545332089031907809601075571608986929740399655659548447635309868375607708152361008370379862657066657078985065710541072856677971450721741813523166751004307052154415284918663853012557278990409668800215348068129703497305376121258801944995824905905675375305189115002507283036894646956953459606293770688303661923516415508237730846175777152115587134177637427461885483296583371219005044146310691054330919464444466321998879070375660847191364365051711680423820471073246774386772520822536679516957382290825160613604443580211793603963367328025163482529039771291982353373583646229129215788769505040721780369699618305169532252691952271619043895305731790733621413630683743652459172767202310628623593809084942799010539377950277044627834137687796967003503680947215753354359297677078350787315254679392820294028357508348054988462165322194628037353608664765964602236868982444305293020315841381912947851344791076230754547083857933169961485239492054175458494289863868121584689299658623154527604228126621764725957799190834826282704418719718411833197044978767765635244123554832973720890283167547848681364913382596411033189407735285957596360903251456770204928706205123627331815417981286633512600770531743154074503592363851876548327469522759975801807622662266504946838675832078385902993390515468297062353073128402759942979143502206960589892188881550500243590628437741962909972546029205150189755434834673676467362154599716953715546995354634505839742857745742237006617872238154726544989501459970552931993350349016229326565686659992416402808014260283060760174488748788946319216440444773826532772490012425986091769124419509648678764908681838097338325006747766333113245707828695048790710545604233574963126396470670214820405595959620140157093820331101076232619781904292169866314981121622768774028186299930601355545241190193221498458433010968635061218093864243567581899008451147705123619304003960180922828505979885241479679745262763998118197756101159135093078084460330691212286220719027702045931653509917734448571294985981312423267151775253852090730177425776477694584075491351422901480883368159824655014447026494905373236711323348871075774854312504147199579446808690666290751189176779781150058282437238823065815703467844731853568280573951818986661187850414704705888492934785403070665288626399321916118302723448129939936047114047090174349393602696046207920960476856771751109812346720650299924426473812995596224732223134154778082069134905153227866018096281969491536792549636947593243089717986951077955384098558839739959465877633655656416589515908046374654701695814598625511262435436813058014885873782502306823821933198632163136491184459666271504028164627238435240457657719097991417776673265046352782135572266218334686644043859078614656467946724292945690669007024634879171889960358254102648690882625406765423828980644160167624864333950868270970255268925843724334348363878711339847505943468617457568138016566693417690444164162359359541638824593842608896732373692457210708844197631744695818466523244547741616029771800608384085813036046269948977131821949384911271721101910309907903082073798684916654940128704876297156500375003282913066237204269126816836454496668882159620855786245030055814480849438100939911860719120441233768695072961280708316352945117360012724390991446726192012855653841979311135572466666227376640336137378362310906472439949267203395460099655420133007374753936023613152991318026046733476406098345528290369415380137348718438155167367673030651041807316463826641722962573838915677230493144545307042412808087796402280800700530249793926961946421950572256752030496598173141602448616887723961056060389463301554347191524171443317230703152571450568529078958321195464316264795081923041923172139653488863560765562699596236810534518910741276297561838336577150573151665289655478228547847973918112664927058496787960289852164501284033573552781260836593113932082856827196331781718915076360705532089446917465970868219271752016574067676735221054954548696585596270970037746850728011089409204634027831505886295533256251208589526137834841555194779689524354159949624362792569045456860321868130605850090586899292358153689394439114270681380767752084830084030226749338769964873894863381927185479548614036135156743792414144180723091756634130608339064644677310453717722446040463177615880187545647326434508226724448095032236414074932614158230325334605612328514221630945848919550396583258524374367352028417004107611979585328274770025973411157190844688932102102569607039652942207145911960261871958753233198523678164098757098963648207780325808759136130649061854999624024365780703978521772494897273187014722421739537762303948241587884051227122006868779583165688013183110767029127373314224360882335229499676932904689768634695029856332512751351489596327287434672763626229122619134259708972402279477043077924498748128865885052203972587381736793306340100597997905884407048616537635573455029500264176645479768413173368953846100894223542675857049777469000292277361983721489072948678199462975176026532058080646686208040252247545655063316948689216996920194851103198735508339213995908399149191497967508011490214241935968466468236592637400855763468079307118870860752766746714666656537936261799087140775329865860645954615580867105809288815594004167963912450216709846480744112826155661516948196736486065463578008236678571456477336454072661548874589176705573371548602847503288318320137713310362534648322979057215541435291449331809446683374882184676702297756121271714377677296388744664843268534525003619942088232347798389239681744439282265831533850460574681933965951394941220794715963546189982486619324872971897377650645367182078493032605151121310299313219847014494705883276989253587156426731546473276343158242854293476183402999872006968183297957013622141523103658285932039300907954965169915169435789419600978375987357107072150080677761483317496200399625957380449062553036643534463753874047414180594466125828344278191585973706612576106428815417229517901581910468811817687396736292802026564745077389393288963466752825049624853719210261230061443925490261777284836084387150771317632267018263509364392653211043262461738829523223645172357694884813311629447597476310362676452126740629519737831011257513565812306545796630463707078643808129411622890758604261833929656066567814585149459019520999794688276940807340720109189136293599177808789577189827546683305273380574111643793479269660569701793961245520218766070044070871776245395933538851365245754254998022015756728190798919739431950164759892981146484369876469306873280815930947510531322621557401710254540172541071498451078403248450184078775678623098205074079604831006009911214991715384565156839369262948617482515618095846206380243254063944834732484037446466757270805945005996890164861180400297895174308401280415381589791268419869493694076285704600493881723961915142910152080558501034125290068719486440773699881827420366211684599237944868694345959283291022163340146327572990466878059205408129321499837317500292296100284703896730260291699161247878530199584408414708201344975316440700284499140237862713816609706489148191363432068317843256675199366275527900973923612241748599727241680471239926651588175934648471178309533634861825441237118655443117152599831992846796132557461037410882977668725177306116669828335472670214232066458789821324476392412793287491249072592245789916409614625633047042676550913711685479931925563424791677333699974585576997315164153554589970851953712763625040400332570405458222711621706002345388951655805098814627603525585184850824395886825973310112458476399752218973687552955670502440780415182211288252021280407352736318848237567258755997726797431890654765384640449155146096273131309514630077589257052099238357185422944580775332928443738234130075675224353292618843193599795825982514015315956304491399991677490047884221179861290155177081171033734007644092918310945117922729955392153514928984116200089854774634148857978423441697067758272588053008636377120702729320365052646342791826099160856254155223054987450965307539563350646136810198220347496222928500886169777279796254965813523972972403673589541031476413724401609656056425709303460799049739572334592562895746492788990901212893027592646234780959956060442676039078058526497035308302656692073027517368388208951737650786376298996798524994509858472257699557102813742124764484623977132621921050294666258099604293107127085605538068444954808949664972042320678518187103786385839641896419952235722171807157322968292530135635195039796706263930868236623481465374362820553025883984712607383465611429321470276031314892271256160647220242261336057388170932761964851925012508252679230530642522187064954526899350460309033510518854384375904145282810795475314373691497526405557078989262162871826267589126593019339550721247467563405708092955978083153811443756444151832198360230840969076952678450123275707548320878492099161341595286246574521958936903725759490123504699105474195734425479651530342362342617007032963846457830712765829597542290305172766302429227617606224105961479390967536766064966535250100687485874844107965659521452287994004931962942886695375208154409276419461719770313984058604242106027624715912653209543697875456324521579365049288611048694007997054028999670686433668808788040507550766649476146261842173870672917734871173423654520762809480348688883198232862862490342484943692527885191010532123424433754071281567347664631103587143142802183718619549780611005114806759185240929675195756604963822132370885031914592932219609010188401330073384355182468993111760771017612308529377981784531535769793519579533421677672733161115737058568365211592485800961822863964605214845159757262482422647857520922147332885384875312597152151717805107617690517340188191535929715383788086848795945531247591700080801642282713728778161196858708982081615959861372779655617876359294205840473215204695973815014481772141950828780239611417754091085792730084904128209113043449272666980436517557159218010896916903055708947057349149559578488266438891032297484069555664133479539721031857916126616926923153654899881099475806575426440349585317843405614744715926685216851846522011037528624521559595387339886351080924540657196897121088462146365215784915779323611864343727667696293505519986971286046091922323996584000033876582244977463945012951504469215417503155664110839172224396769462077228801255830037097849082394930367627661421532570562120974882057098102222425016668065770026575321519880542936121807085041432497971294299968966767351429655529022201034323026775031941539256686123009346817314163735246509686761727522000528248197864829777135008001662819619894980776891543378659174853723641811602022262597783961420924831863128409562671782640999004727637205642387535422834803267207567545284884584160612895659269741384313906120639876949134300188358673792406312729455527291742752264582868252505111321040516701666037580559774606716085022890720116420474627808999920302684703602409588033880838275713624079769432898755959595933703770241476718299932845096094842473537733003031701896895785571878378221694810930457756836483252150668780928072741643590558506012630661883941896561306369659862406282421445738980735965220275122848256968108129316660885682881979717879713135438125170469573827701790559653348183986230891573923533184990135289372830616437866719029357342609233640398777135004804694844085379667108285986159151792966488542720215759081787573161176124826430729858160476513790355071100802377606259559493631283289809048714185106059717208311211990513353797537168586097634849145782953883551127776065963480540226073321074145705147375482843699435909695358611040388144714449632066363959420038913924092501511088334025168051640424219879624184726700377587931586925539398825361421101828290437819148712912783093569739331524438397607999675299478884134179147274320155940820175038605360347035894484465146672789000547671302653923096143670397855550909827598727812365863444605771275580171549938841264404762175703391796482552458253127169819358523782219228546692205686971720940926608151654836610093538098287476623604782086721902722411271171253503406502544966050973522147250152108070380724618447879877929578376513423096088481370532196974768766881669979962952650369747949046982917435440760116038213789986250017994803572395640456715625357128596186185670609871535094681176990858949218657071476137179824674207563114940799598510375112479719252973663037103044495686965734445175754007286941389455496778856087293061865360579294291186074644848707169630598738455072172400116791706681885773062052232089374227515817591083001232094354189734286790893102320754993113945182185892268082565846185966500188517367216195970611133454635483883524918354873532173454223011708871366092592156015220519801572160630578404173861888834035528881772136989420967866284691628403471987064609786441240044989507496476312974882767666295303516846149946898512793920516380733204140079143538245950672868527218187950147468307582167470726435124646993664428230337893440491414422321175777861193712255620476319161103568768789079520869395089205635087936877404673797282445860169461591761572930790247699323561937239225814438462353362443200896062016972573322972391784971387414540858473797103098573108207191685685937147099358468444919930842227692912073297162808571369666582376990373222224806905034876159249457333010891869342173578909319087177973690506952278087761461343275443304732750338748673556316128830336241575463034993997640295651337188845575385261172696331065770614253280385648980266182497284797931423286910397162634289499890395833209152380657921382094136203720547857392105230674582908434466873514724999877550056733707347520829748515473196144333440248437196960383071875881660042962074135392361040663442862077897452872141255457874979960856441207950686194047499005412418846298502952624857862925714006366681582598640924088280060511999039526247725457108281287911601229334167936834775405614758247902097061917333500418753676044099706194128571703573750058405144599845311447761229202831108187194926781563214535774439349839135214112921998158789430129395343337975968454776477085435951025428361698282707671956598275386599873086777529515122701555890553150376925245737910741422688476498224333922399787982280174271370612386225255961585039219461872859034901301993634798781455938201705414201726788640731338734893706949839595946177360308466105458417169340060104586066025613304007042117141707904959210389384720402115461361631072871986771500871524900593038827192400573155056960818332001920301829001402360524669230696877369266689112527303171969798873626621442084389349192798164066737142175282835110798891501392305880552089315684418082179487967228238414117129601624007295166276474423010052107683727126095314353576925540207823697043855780249567886805394138798704584329708338173750863728646942999738378215217710986946493160577627322669608732673402395837051976681822468914423297420668877827801300128524185163252750788786297837651410503990796117875153150165250000124838126708470236263867887716945024127433168469425145088474912884079307942621793063596336938568761514903357322503896837340419100940825615895022997878450848133883759517676972682218397005082489160166920138794358090455193436661984839708396092951809893399258508213720919120768345621771365173622379807266313911123619236692127972533272786979185583582423500820919587366680310919579833293125370767672127091858478670104164558268103997078710738026163636707745263739909915260426150993187782800481103451813797603530897546186425404237411090571638663639528306970965495043886394890922653309836683902217122861703187041501704085813271508300215301387820219477251113882834330257904036433653894243400940365567989326081873545417796163386415725707736754284890649721985928333280165260070549372928538352260128793809911092110163332328144216751295694673281276653198103517207262424268701146978783273936433927564564775325515807513146125478611520689135218372030274362170685681456945821537528668917982040223453246411254732973251711168320486870866935895750981032824651138165061088709588705219626918073970395290456157135850994472318475843741595376342093680098307522363973286375887527135459754477242602318879628776382306542133808637962256316030460542336725886870726842763880498983185518908306724125062831741511158254262347331465916046023989926975996426569207802499656766712145107089305255158851242712823521878398930475233167657331541783424686634937213180171235312199011409126378649202986248538898488447902880038770554593310473209919074907876269457954961962866291012533424458968426554482912371391742877351827094267733515881838223985942406221981101921465509611553228565859596420746159541840803487416242296567349200968729816067275465169815264722405800236525511414972934312788931145404139326190665234841076426854547894602841282955778406198384205318123350466619551849441717744345615220501611119674666027240845199395676351909211233829705683215678536267742133881414853587520833420844444924990752654743611189123484138745724210203164261754108238423387986118243653658632211919720804022602296797023295646323919414062400989432491593462807641804027346941021210021000388535850704255580114781450042327473129965630839405318624157459735502367246266096076036219283397995326284151275852659960706700869979671457708141549097075454936355472516504191919817556451031353208700663448802297451786124378012646252502697037174948839429979240824228288842195714723841997593060193567440200493292492273906016295903906273504193622893869855873964384748041405013292742108787583723710178623450901433621539212851892786002479069041672325506795400953341134323551092610858226973662367747137734751862657432843607545567129868813511319504191471790355633677926994381940438671804268102505748841189019229088915791852942356539406743996426670186766251701487831270261186672837002819777502158585071874039893457001393404579141130388947244336278268220860319516586445134791542972210747015736995557423813765059942868914174129283050740068165756054882688607854102529843872745721413812000137154480510637623345753969604812360018211793615864433801292592660590919459222097162764483768116942538094232951802961472048623430428124885579211287653326618615755886237589149766359762626713179992879855782279533707767446713890897888541267116101124779569550018935716445118400445778051082342180499339007425344027718120056996243015216556676050253382359148564905694481117634176906139420790982484724079732528490054793024771226943871625305747207398431569454538285162315560513612479302544942532866607462754578894483198722757005652487879055821447918669664517614435141209604938562985412641023078521611572892021492107085007947549080029511660445888058962796856710324842456675715095087383520335256602177804959484039155553025465146548660913087052388596315762609351585826068481733846480243660251019479784597200625525948005437850338786400759834559683860844813979238774980376247419589265425807368962100970558129780710893790024825338618940173577478378690262335277055201159568005626623070310419720297473159147412639493956884029821764002155111077079333580307434333209719565476212738062612195566506978002713091337776234533250924068255505990664907787517538662285038398501265932087235270591409154104409250826158783217658710852348574796708716097266578558180420831841775948267896246952461057895777769165773518240885406669215677836887336677654643791115280956882215597947269807669693264194908868163559889248536629465297775782177872591122809993476143303682840096060594855843831815856284580189608111149015655167291141907531153700555065683798975943508872708245314337040092282183492042853763974561149114361886050572257998088639667730082590046399171755564349649244995532565343504272931928474025616036186141187864372287721815670986470664142762904247873817283810106065366278235936287324015637148524877171657250304835878509508672595878486177597710076438291347644869602742696829570237925646328424092565139226279215194268869786622297767232782862323428440454242948464020533917662417742104623862435253571245582799484088213514922196277675138983992345525096308332967972571007464745615777115619513838554683801716739295903482685648588555503017003456131273811445516204814299295780305372205867186303226478634631272462331227983296290806951712247601845004082131754733316806733220040447755236990560284581889084772786354378748266644300997067351571384046246104740201463528863636645435056087178499053276371925746067244235174350281721473457982406840818506894915325533203176165792349390050851012548646202078889869962302881305424242304579427263012745544916290992056770081704067790377922577493458190581488626888837215139570547109000288391600408733111746987667343469015742288398700577657187466199976304028681718204344145430860636714283377177178612143652795645126629205278750356927887347709160319600160894581495080764434683268176115563877170170696117357794012729233997383775066735015664957445576025465621356072739569456736821962538700476726904074811927765342847763157964868825083158619614918056948183487586649243262768332557666146874490540248661821773597289801933913104862934445734619022547372116508776914060833787205664333541076773673862694358752477926319991034293166399020607977883216435398376536422259735104761266550577551966151338147227856835610204718969829412953677764828234330582574658201114034741394763833382881399134014757908983504201254478528982927629653604008048330623257795541159986812906349030502026957358138964604378387653085549778822993404274009772586303519965267887179106148820293060297048736145095776568855770172058170991168924200404139566568466960731678855637296345289863936137515308101260661069215420404823553306717175247590074994620697135019871171822837764806641839628760318962075506163641132819009790004179737704671691479120965093375344515613624555128538169471588602899253969540906738282059944070964066230070132585215287361659702270936802367611255405941895999707017653079830397621370860168776035296707146119884876915342590383515430159683892229293255582822321406263667332407987992786018115304402941143215803354584003978471131015652257399832071174278350959996046589794718820934545324803572859561928181625321738215571345030875166525896744903277454487061921095657774306818645209147397918555043729929283412811618902157171023558073810186438305426498069300379579795651392879257160060088982438742900900759779120493270756544737899881706492099745906860554101160949763061684915868830773020518377644321111225077225096208168767864780069218312496076631113740378697668831242328928006244191764530109692585015637001935001609692575254098146585034452216304537574457775078223368192847784891389330279580163466295944292291147692294771761367662793630898106016204472698960719594149894615221928758588171362724383730495447738759433174828769620050245450730255780800938739768010584624279759233361163314839824082255539410993331794343866384193072825100899574282024506740247271496283129259458238752938221610325805171860026119648629989494718324414527548893404712593033188748832289471698433594643688102609382099315974236265986983997008158734796917613435793790947658045866677570212254525709901879945031976781187442296803127240011666176378469533554320283643860289746442020710915523402478816412596672134818518341752578751962320757673386167921919400370600215690093188711298555396914717063425540082407612725242630056119699720743195258356995584513207381788158904296557760841438240940161197723664561650476039683969867422344855115567220265835145850359200385535412995078603726142304856578621031822510193219334612232119464136120028812159773633256279227002080006624932893476904231421385788666031606211765437585371346946933020945368144704415938689812201126430075569420617740274559495957333201094947413844295966096112244192453467080885465577644061762745457191409906515250396000601118737304121842893316170309025015558254251189963885255125949216723300112229691336914449767033221831135498319638998446725794514055066077351730612890195089434934506226642977232228192784815012826178904448012243204578173954750419463225492900614157567588290296456810411668284580092981902854972305226812738420528050806003378441921234824806599619836002532060720206352220207458883794320578606225962945844436961400871333455401762077701893635340996732445626077479834739528109467401152688303619651970665112763150462248752296030064829904279591357854982468389928803273675671917698760725654138663788914289629183490890056102047254028998968417409420783400589635669223666144936468389712946796537214590933120566232001681679677522344492440410774745065117564653828188360962979838149180368926968195356366955656759341350078006209370616438219828492918605090901053491752101374761720258561993376242055543650765653765409808656270283434978476820021113553725354241271531216548123261693630804008911135207296141493397381796512252322128707916956051910636540126987674149580894009379696039637155690572394078004987036323157569280964564641114192885472977064751322904183532448498659877783387570466015427967455187279558178974673282314302259279359619749645586802008870182348554558962664410787142084276781358486231936745737628700254992927196693485722547267649372095699059593002322058365027302414833614184496472076869108267698013172731177268295469838223370591022133584965128047518452382115281614136076035660666631196854644003879088936252153929899796602207003629810172601435506040668294141001098471172736029369473598419453601444152106535944785028978966157497502900982989189806750039061835005304695900350012049745864292183817821660552628290534696778128539333729333533562796691652002030338556654104103255934499742501034651514931787523022179958842097994746257355940469159079162935620277887405366065557206656287430165344056695894233966220986186362151818366266207384995764893929169972256061546841945800867922019878325436472439899932649232061501785373476111151492920106749299117134046477968051746985002767614684449155062490987819358767459005152302989721711376056495566432499000787123190076162594934153043831321318890243368898476677333244963222021025784884228953308210748119098739323803775160860459965685116807314237730983177143263691075229024752484980662217064152248738252619589179739174118289950895036569634882160843328990123512125467173385847253472524443496537661224677402172926345622692639121863322427756506077234500753551429935530677645391136959253099128863339086151350903108960993995687995183547544177519527622938720730856647006124236563649877026368118556865507683534242424290875734365429268086205002037131107915766019720946706074360031637187925091182473716115288520972517708308566275887772814691994941056833011254379600982330667419795412005531863591373938858104550490546489356131434691797997195908463259066377658557900034022787699438092127082801926325566435488087166705819652925551033209613107011008330379150684297149074545851670812030529722604800831294697550647980353447200708005536474068146740200521592344732821790224130879644569490464622186214095078515173735921607848806601029433402100646880249189315740032915273857542786697393608817078504773829169797658147915720502622146984786653120759306601353142771561924944125272233859737798476593192010288063681615429970660654673787511928737485799177171252584416607292129370717956907786490484192367256420254816506097986933944658238128632731470774219132985005343982366082145383868503027835512042844393192987275083327038763405666715402399538941985869606893342865519352588113424111458599602190320050769616007782599633365581871490968655483513494630038688139943037802414422058988678146492384170128428736139098203357206568057501260018894769880718647971359334746283739882410993948759330289815876972746341469174628133650425700298187764067408589210228516337616958503563044191978385566475205111978033797576914317890315052588470656702639144450138416749246825967180697610347479107246668872403168018580965171744039000971799697778104083349462021173551475569790927010224038957074428635959423510759040888285107386482164319858079495141050224862283841393688370744584795518815539795346860631568903360317935757995258399174217690513437630784915950283246433514109176407272556146702371495092101584892565647990527307607587308232410446043238807619603368229806741681556542472062790231651119867358380913148561824902844475879677772704924636434659545674164314720400925557649972001159797133724120155123650948201016074385172974440990858919311842036404703921769344677226254053771104512146322123374776290902273729408589454079771630885787536701599324711807818159669423306572544544586813540168227152162196728530843041352591505106301174181712511917279506892318499229312715605745300871503521156313738322629773180848175329839748402861869076531188107816874209233063348558868443043641428765070536430645072894704851826618608370878662171156278102264324284653908986485559001402426778025056128642357392220194474966969631607457360806363767952786533858897865462042278462455718561880830651839189670637015949879345602360581943605254704802872559808272652227787000219719696035909986596497841770812127341463557688360085894401902502793332698383192931730575865294454212494471159356606799837759257438088868397528932929618985965348977387754180445629978086982819917509637949679399283575856066240975048959751541534650419239260641451073950155568810807505511389575488597915018598376119471679086464218700156882997462168840723586092314154418712000235307132104804941612969671806406534569262488318121289486414623835237263714163905438437795622729569619465518505676250474592135024637390711317364944814028702743812838801434959321569989442202356240107813472944880780926283573914716650507620953154244249370676993966393958140038356968746289722104539153635871465598859290932477996008810287757589829615045606168441814186445979869306587687748288674074216086008883427670396775265843933546698458723530635453526252305870185787909861094493838181002960982744431069721174140235672364952651954454462759169997787332024695894757226019296541482637652010170260110777927465533898395248682278166786482030272992607891607283706367225391172430382409538972221092080231274299866783837891943863047647854299835914323078705288799820144572547030342022206059054289507787219816751837709459927404897538681310435518908037597343384806485717119114054478626660349085716872882606256248466705407364021071512439671971138468554137576880992902898887506571583554486393023364108528154081687243708723496892951587550929581633576439422093662415564660661233250255266809185696742947451115636597676146144084663536365521707077353807223305999465475308329952657647405830291884380210786882081676274879636031442623040964378712506608046717057284683139283064568380267364382858110051208243752683727565482603942207978438064310507688098066139907378702198845720041373231318123580812284488796174936830604752436694333560703340437021689456215327692265642141337924193939685931899862160063929882187290107579985040960630828731591546929364157717236511817911099565168849942668500836196599010115886726754496802230386768611630762384232304396873310601726195264167343021374402435338473848234184122876254840383600422046043663010396693426363453335931103648563632571773781258074722765115851596550815971653489793491862588328415461863207745348124492643304446594733732249502243143961233438505154080006745129571188929009303230285954083751575065208307112457821522610853950893389764964234567128278293253006708080395196803763798807734005253357056341659568697864598511633404097529402674081546104118206539153234229490470669841251858360645030903477786741428618638166662353463401272070041420132737661790508227440840076284986518585186456202641481064258416272962732066138739855611611733101052097800742069586666342112949058527216198489999305571619102708254761706783154497160651232777247384106882188616239792997772252865933559445636691199191713135940453270285344376468109261681354047990087841787530272919118193007899033022626306246513884020010329895637478588222296897446676261964416397372057235988573760419526143235845542605714076748104291191813058524425946045776063728157341485487715247741007330184117628178831407551231310509753703820815713451487337944635449886600613156555933251768620143063771919290804442260537537562508324791812072410634288709870444666104320091855465455112431399084257721976064306474260962572367950547187344740818985633199309289486748004976809314164130817613647638662035527809790246930174781241260080910342808929783526495050147181689824164408302697926171343533172914107222322548518146465731212494381529975925117180120425864820643966972475836981915466640376990288658372165612138933978178633613909527072319360457953093858465818902303887197664824693330465190345302954250631011191095404663931061394503230906021984273163974022220245113347559542194335805925533968052917118119063961438265986448343577898370978814281316590749542239998140930795109953757918271919161714627538203813617893847909043225855552725666733452181459106971099070157136723366038675255506282715190532826245509499373612592022984634908314872119933694994108492530274846471716678246143766171499432116259344782503266914617176671984093614647060835288347825482348909322418076755475155501210975497020935432219472739538195388602772511727139532924830503697414219306745331995669724270557705947652044820885444564287592740909692989666580263507688049237418162344125209874492006397872881798905564462824098112185996330786927815087876231110919011931736690244096389040306328931287294915418136821992164600706351814030873560923513430459770206822378918968077196860161413742797823620409392408498689355791182795575161771418004980635895576226384815113933856541275229311396169034114823385261229113039864311980381169286367655314661824115406364930352205727672220178787707092795900153042176147200295377585866758865357646809504936267207172325337622063161741819062930106522029861538324511289450334806753098511973310735521532157769243474775501882340973014530728921529813645427199985900370480781548516051084831457753662321879864513179429040319341125584609020688762017033389711530708132728138616179073409226446443259584213401013081856095028990240728657327509804576201503525323980957329008782910238085969250352947838676987979342664039080880658340343346263586029854136334265725052791075107323133810671291618223022033745479144041615831603945656325628748507091571346065319052111970799104754140111541082996647854852901137707777216418907235455801677579706380025983026122487455741593936021696850385580616059065014853828239351321785552864037105541434010410327328147357951271945189322294816907040708131464401815210166175807951977104443098460126801497488322897460319558220847050211169717137964309667376449311013992010646146219319860257511718902724494064758835247675205560952063494051732527266260292314237002070520703272734602329654336338589814109728168473775527587615844198161862262514159310826346043156411156250846966691961677162015233014940467355388626111255850646885894269678170123941040863474123151478021972282168089222298937308074168567731396798800452045563885662699488462075115791112880847342819195236146694487076546188155697240599421573778388868520436783524895861211503165301139309308946636115881570782780169670656510450238772125182295659514980293585257683255749945413916989381991651377981616424611634643043017841013535708404345850744012388007941787612072597755632384658070007174244720197408431363501496803818548078774682276410774691665213514511669894092254555725163815805454407943770799924628378346001053621407739272387177568831644886172076861824493405707524616741409040776958146512452703259809819297414798545472238593990158397924195171209424403734799244796339234890533739667700491851538129733255143812224593160291419902866173496435439292778861330247860161916172326659772013411775966410308090591702824453308248140758232888141005389570537478011140257190908818562593810851267015218472074456515847174735165490542537147259510094694947511823951134313060065662597940813936980809065824101152775395466634755708457566258789649560812931484052176637560426638881831184014148182263133312354460049537204056639838160733322957004230514457860183128690926529676938061315193205980314920139309456993156085283269505268882798555026164631022649121812093415660423318418122927753678881050877423532522551249592100637837771075230923805245375605513882662261646011738111877990938625653868760938608513038781286267892945562209973676551975876565764336551829716649359637567214476044911134930980810316872054729234454684998918919651159637657662434185849837314945829073552362683003905450789109864531576128217556653664171945766309754056633786536958653114905842430798262139182449449689318085835846229952765912274509912633440355587891607916745887175875342951008779033129702947237755547217420722027905841881380622930923341189551703487361552571130234287560942228646233014874742165914414393471517571414651177211517253346558771486785844310114720285278746469408395857204616039518943183021452786039015734359285968508506026795458183721493426138847083019096513244345478708759951540671476483828639196354127839036489459790734366541983242984850446644904985191981702525041496201272396139986920613481396860782044583589681355355923416820462840670360015359683549579786465703856943134963340082922017830211714657178203434651435377135696578358525500791505358327219633980501826127819161157938339696846137733981237025498772710440070416712524199288098181352342684998075764080113203559668985547294321307241401823164078214558734929830872763727953297475249859328373236103761137839458174460863868211418076945520498505840717552376271303121233005602619219661088335134450172590232447037310784931063661624305614177235608919075775962414460858826934563244532066812551934956923729948008528786250881174870968437449942253088362812622361498363257786573530914660039936911693443132848036746965286429075005513148447625496238303159969782189069935919675325804759796406396575717653114888085349240942794608367860540291227478274501448372841523661083178109619766189240292975579085810905581770050754194908177874320945987945362058511429891424790011611120470624323885919649593717133987620472592365923643008829511525450206918055446082702292776965913599879804341519462994333045520867775571283983907912518310111088360744191996328250802011681708031283082641515638300208917045272375956661785301812602020400793292190759062475412417330476764972336969814590995049365339721834161738146760003286586043473905065149533075629371936886859582797564294240260452775622665476550272302212281549460463202437829094681922599082040785293466043760702203962742780879372743429205306565333422348056356912911152305396790551243165863658227925173786938700354062711310633982565006248314400268237509509955251944986588246555408356418884829725881126238105449401901221011293560669116057494622731092119136905653284541287621160135340397831352437183925861436429980512368421582515270186441008754484889820880548405493951090921811405095899894818896529333925423576963115191017513000521222727464782175211305349141263091415481062938757076567372897247468313321850649869362652765826373123960229707594879302822280769647712486184280605076780035570895916198041784347186253142986052207654480261954205167143955962435916946031030188252614681712871922817151698476209982250392498125372116295124684405275033775757162599544707056288068570547708424720662689657867701946164445254379189209778944000633632974034229498059214365185523167830554490434635837445299804901379085409388291832009213588885440657090835595647053476427101064473890730911090337128133567183794808517131930613671125475311186760804805419727159286597928465148800498102298261104278077874100039001536306127867185064593407335576219695740174363895318444094104637979910568040734742213650819456582638471702967448926318244348320848361946655413765253816409948917261929451465492883057604164672331085507267588432514081443833695933668848133389250775822206486950220386277357372271696767968180899313366648775664042738072995079134665196038607149877996353598164835466638714465383541274436613755166930264389632785285748960243711718271830926969613362289231382005131112423231905428654081706467242922987899817033188859851315872969714408519760842522837442621391230704737249490914196860543155000271034055564264806009919359585878278260919290026993915455552179880772875628041188187828747110413378339666175059240245932956226324886206880576661759597630201942207946660405844810429819926475478582327954544245159174006433876608930231957726062961837798498587271559040784241324139200519730307429991546764582355638380410139452815177823438655839570372319298828846201688700444172924570084450991321986881948881079106439645054193634794106609805671055621570408146231562932784417539439164207321951005250625828608165685310186994814358312403955911005374764114111486836637842436468015182121770015292632041629983229229050537282405615290885096566439553253916411813490755110718326611153534066871200634511884149040946480613450730557450221504085146672302551687511402417519361553161566770808069304424822525428431367554837782381866890133177443875775568326171185433615889807241636918893591395011809286640856368447518927119602117326757563473790641848188535220733897948307003878133056515328664841877369638729176030815689075897609991501521611385406820869067452344252319154951131209842432913734806557690218177793184365557334164148450884014165169896300659891564660662947443347903713337996555882885625423845945227111084705747678099169210213402527678437440093026378855751501979534201425569229530228143323085587786673918434760876530612762486975586160531181926168442789338060554751532848394320375091404817496529347447588830572875798056739411009374944946501934088458137138379720018191515280934357082085350696477584928513263232856818191670338046865030260453404882790708226677055956587285615989703003859286663738292924787412578496206170861151284706051271231382215519535402117573946872590506768764240929579871627300739957495269777332858355044988917419865709837159794706282047925318908866804380746566348548118085793045975688383760760345557771265820309495984000637232007988133958614347841561478811040581477128961836945767010471606665503455407434680575535872779683094733363043865208467296650431715064667330723047932135980445076493799452422399633469053791592935451584013506732255591874333710104937574985497149779829645131586899045579278194429627047165221755861500520033073739611653434851630666435153950400618018026583182760755014620791063741382890751808192065437770924462827162808639610329932435176594936748582831324731567156948223663370522288303481305229524079949517151466042018547955649083117632357777564224819318326046963523619321741217679541792082580004409661205558899284446275987422787719049018728920476941379526892921295132283588880913284867187502794259733541903816276833085681535580700873228699314290717438353241749775484012833567088647875134503557818579713561839547570470821706236889699378195021955165917761551636177014329285196973969146867189179848417931339610649783108310381466954034642038393614182508712797272868006307931695257692213437752809745386217197297437465620186527769977490658547214952271822778337355972989605828725265000562852039574108609396119549268017478730490078252518745698534757293237060447609426378523568108169908523326646342408248325298586661830934969298254072299024791750806006575363827826786839345341240386940548688593785428829112308981693139210720284584844155796366340131660509629689439425141083341388415567340060203477024694813264378786980293787231129304882829725150723831813124819497570975196299757379461239196757525199166496919512933350685972710003188203798829964014786687784363223297126240423963610880705763813064840189948118065020655336337946496107310034089780194718108644860928874990244113073030980785243135704573921482276328093802434409963598372656183377741474363311567337102773583420419034884601728423292788683918809281184767929224542576834131501346600745854470544968616938502007527022797019211597127580889004082187110633710618823109327170543060268933680267130724867627798626224617825357474388732860796302229250979394667143008857419038218435261080651265239515750727004453854400012801494855626604255051795464671826223969034498791540923829808595897157009788652013105548294777704056865614085468896193630414629398029632813636865984679392061028661360530947798597845281920734919561734302124077139372020774304402303223795920191094090610392569447544018132082768800991806682454335356691645852258572875274049779340117498901402242665589849738366321213286158116937317908292876062187737993042183906892365958803191104913503808177020158250083379442447668804622025589725938480594552976756870746569787507378874568593327849617289480609246298705543364284889313039316680185976167426392753887978790084885554745082346436417659485862608279474048350199798741023816857396445073778814336631999737216117843779814866709224041926135182569124997843078338433360367812775383758404624573543592800571213936007673913689477603604689213826165071063437166760421729839428625814732620102413718678112882294395586321303838802142174025650256912730872614371508246710530573259515047050479420064443565044903337264417048706536115638102822743389783213617108735266683108444408936975074357913972143590223783041066070453526991094267456040394704681794814799314759298909646604175229783657445776233666241965074497222419720169526132141249677551599101010930841686535288784771848250891846964155408037161221031048104575985968634231730445733617783816603895450329900255121768962413516257614287787457744308610346887459695655559791177798171125409209987538729666681506080066635137915026412194797648652016547162571852473108036525497777162118248168680886079808695042102019560900110335919194018935980313186658028574259726972954958545849573279866571243099064219308154484798416025574889928161598930392160319492139852924331831807198441803683012974948500776702647657302716289770471816560429662055127390915852543543935768906215082096524164411295752759625278811218220760573098674287192877831201381437798538466831536544699255284347528976218634009537799075760698538451618390541582736807678003631858116177735253959834920567196795891070097250002721007124645015686797932997692823421480424369253071079552263913860056121430426911976329495701090735979815509658671487514166391612157689765997301493805528038546028996296767480138890210668408658562670902373047009138861247106142794867220184466330524653962554133913672141059215290215907288434081163587601142828593989932729054023057529561612281640400342017179688938770328168896116613133485686122137097617356685528737950490782691189726896405335042803240752766837281402914700153102490789554528024206331859201289476368425335108518559504576232865706436596212221543681673406612096948091994543674185856451549288962228862342562099460929866957751037647337895437277499771098541554358144047126614305708609919016145387667636004325598073034039776013052535375531914879338346788937379861711904349684379251566407186986979237090067675037734895103928021465994155910460471823368660049993235324705948057679976287234179411110970488897596937110694409439134200729296390927976930009664107719358821935830182629066290809084758873599452576997089243143729888204915909850265430941501876479485991417457639877003217983078984187613220720541219778197941459853093267687013842080475147892161914339753589854435586625621792561375375950753231973134122217847914059514232707900609698012208451214128734360734295674845812575648701118626118867478324092064954994535119780733709833672754216911528421603122365371310141811968613911376308296465232452082016561257503419162834578299453642591314188733740255938010278478251220229477221649622744657446014867864136079394477883464906255324392528407149674307051920366110841759455249564676376346567919794657870500596061421100504443053327846076792422388442552388550095198318736139311913230221524643054144800819755782100856207074800354932907975006281617493574831724015382824008182936758792024710586504288559528053446484496504749554014058492836333610205794637905049155387718312055029688840477526733236300937453684710148447956142633916490906708524851165384607208900023606344158515843810967631210640176533449519934846665995373655634431371810631883986737309227748523425356043653637769576586445401313295643055762343087629097931382949811348071859880560950066557609577588225089666040561254371995825381992817271580093389601980474650442027439631005334043585399388746907547369337050329141551474217630080863050224809637946915880804871538506494188427162403848644596499610260566180821915654522298953412264410225208339051210096678868491986556926470231271103849453265175915462247090425423348234781536274823441325116207365614878677645549856867011703141892016328130315782470300719227390174412185024959100920327069844161668824453126263923907706091864660497334612000145688108962368712979747043116346166871772083211043344480378410946719270039256429571316406427811496394037742884330545656250862429179307566908063126847263889263196645908788065374685382536818464691818874922401201865390693169335083356317413322138819860711154033872537714779992861469036229490051120156390306347817746442452786544558685068276678974908727179035014309262077393821203219559007877172606303268625869183383825612523509893850340596257887624975217800283419963930652602120228383531791660882817344380313531182346015257283020194904144656713893486988311929292450412654266332872282729434695433410061668885390360799607828282326394531018532551567092785051615793564613260842146608507222333428427509161769120380288155056261404310874763059291520385121411595363640089733769617375521719813705741959525115403910113632153029025326810687487470469055017675938143314735248855523328444576292092734546213444228237263425733703077263447930850741867375612169133622589685415543874528672501210398610751499807392001303241500846683810158897231217196907808135170241526112353510199074163636932809780208930650030724506906281989207352463347415455976977556153468405530149782209387050136163214463506244633941567729411517305524405983105453015438590009201801000969919243987250657018412953056928532540504427390481555096727530945982647599190305322245158088792567066807555744163980844954785452804726675726001331098737831136313058048558388413429755264500353660696627583226066397568809132209043010056826685486966497864430092914198749301734661070488077370783615215442454833414866671324911512135715180526794308106611146815545078748813219198110804914007144203582425301062683913816090446130333957429245929667527753440324421477779212740686818015797876513084618216619234731007962412381305822477439323701061401074029375397631372192983732739973124106345216462420537632100349139903391099115555367662675587915441048480209924696823919055551645911766619682614836461023841932856911150341819784996748359924795588337192756711485308686620433186223453208268952529597451281084908052402578098145297108667022058105726998801130571883901503623299611746246778926796919045071352416329610410032692473804997109456903040481549037048176849984768976878833539621093319114868067246927279509014389462142951055679729437792447820808655733255430046281137794148076308795024428214588686151369437912745225886186106165591400854410767860711814762201119584185086614161968280422500081607299958384624406051034359146307297254814914336004579411874526397197108227863224563119808924728583780214545771898655519194751948676041939715822013611772649752302934326195278327977027822940840616957723627847858488676007331748266404246175833290916856367219731091530011969529855118464174446631537550488272985692006772001510241922993628441630737344696583439801776132966146764145801322203393410039503879900964508682395664793061036502620466065862293626654922436446601190868345238918721109649957256456430221204417437942552584465955640987420403849236861028095428912640667166241202863338081879702531556009577558590890090590759583813827872621037888118266388867649707447076711594786507325084034068354900166588251796408018109544589346100062346971503244368154755056235270030673821441434229767807852038074796441095667291144702034354321591344274619431690935995065739921703778892507963778890722428412194254674573152097136328982051916385748632650178868161531583150481889876789355468535919064692462454990038261222351894239755935126948581813690814878676169345592071574025082744722919016232015316965925964375975264386225681169486649070455103736131612024771127524285174200875487490127959564767322268499643172635974952631161164135491679461630219914050709647436502830843725380000399076933776486959396311686558646357635940277856913226849513448726522218097823434680963330322648195460890091398677364626520117469019994649748166866298629286980525811044761373413445452164532061915200728872476253907338289970558444956694197516750097715126303808798446624666986420463600283708796813603369733482124336947504162822767612802533064719318808977672577110461948603265818828725062101893822062851319155672594306057251647363597167596545784581967915766494193960341355380669570181656539774391675582675723875888098446686637372496572738942116315988248675264705342591453342349797717030010656955723970907144836074546662614197277287666791292457960835088053032301177818649270171114633433904337818010529040193231121779319589232425126148547743466181792599722339560087996549496273484955479950175364021388591018690770019729249166995545259640505918532265028025740090992171264418903542377458615287853080103153995682839943068032632475283657373683529166127214698682889047176801040011515229896104037351332374511596828435679052916010436357551716267148660909414060068575386769712609349020718833483814311091457887021153500226383444282702684740002344777034181272687118225786430965007751806768314196014801248618395131629348565454669820075540031033037786603468909934356702321077887259841627762254471226527425427781663680312920045431626595274684958852160664242477514296044621366504975890687961967116967416335929851286833989958546246256171136481800126463530762811119677796896825660586752579594008188422952394852312568323570795079525339853461762600854158416351462816169623632378869328071312899603567021293330026020395399578850400701543976938757656322774679321851846607947079470339271631529682145628932406799171513811070349562584790137738899891688396136493104072673258958365156078285340161203007234121963697403333523673612119580665586103864638509992894398157409759971253123669631042323829342474061407219393180789737061614024109346968925205325062959152507006057138993016014160619116463902979754757279395102963369403865186084957988613637999459660437560514552604404386272000601693499569752119760456517809813533962644005523528287787529391044667862766351841653470004527426436719292624153914783294124003604727946670402150429948054463412673738797618628865378176992845295755057971111489762650882765392996673796622903161964355747294290286633985927374384876271952446706745816989237319960527222598229158561116262260124487382807051031268205526608136237324799714683685779986632738275861283247985956408432810073048246786745421064280100510516572112666701824969076382100667359761150166744198893398715750416727397956093925693999670082547800163099494639125074354003940863370981513584406725749639529114823918029194586801462935880865624117189402234051424869056379491090401676530088813394816617704767211102650337731794971898060266741420491517547840549069171569765923145580742228357176699317682666488282508089676139672962624789725592833774833391882249642160534573090701924628489951350280933325447827663741528945712908940564898509330506752491872440492147901375628014070454798596121563753658453708755973309500887831105137646099832530755661944676937202806721389487002852119453346336567520234226088620526470563704450155596974502239255950269342848580205220049829520102400733370796302381541140681307399248197640479462615023572159444034198424589221531374465031177719131841044824927077214680126300898405608007395562450858460125034027658885072068284699704086102317498428000553530304606310233637660376605408045815262934220835634713096511519565070324919720126997008211775412749958792381680773284443044240501832210804009076680122688282718253514179643379527740445632501434118238218304233828127467665249077131792907724614365478770646116108480595010790688797932778402789418156754011955699942394004390817694239924922083247477615954891430957624985310515964428754438878573785446806228854065515941802105546524778896644115827333646878522284357820332029795026178794977987872210938425859706275573831617658368501124014760508457834907349775833781935921200532939819361805232670391845096200310001589013896954493294418902939228355526686277555348131737768192631657956978082896748258021362573215021130399165745132014454849595019997691523217446655979633388048872057723479102110927391042968533745443526336472267414545883526514769587503856529012306049017991176918354169851005325031665474459163093906691613066930949216133592976063693351880617551197829914955262404607288855376811239479452628819960557782157683737748580882786062283003500290826724430308055185149246252696068647749183631247389554753171764393899007630415873706265202481793603601908442745804710080278566151277626452841279675683829474380654559875603905476889855109354718519828203054167200743370492574238651501306420422920309355190247972690203310025732114617157566470791436508623531142302794551475821237240600213796775337275649210262206942791871324767093409787858206898986678201671136031979971401163819621755916530813492286526917656840582207795469425645524450479005820691372099648731888346169371006787201948259305556083685061388884389030727854075603988240289880833772556627420149221366824005446608959389878196480405224303997288145061014051641106273689203421644828519880802384542361830973551922989519217773569515979784578285614618903013077007478637583863132850976946473168783892460233151457183465856336367763463948828105926045895180965611622972920936984886457169841613353387284051322169087598645276622779044890463110210359546751933446871826367611781879535800722710559617466061639945284571343193854922653776175082045238292342523711782575173771363540383281099554271387286634517513339516689497293782415603373897291154737285035884509249123780962304183946103042067610095618839160114577326255235527661322866787228484946134172086609473005234639441068961376037782335223754715441926354929480275588065857330324398064923100360904510559387887717572693668933652811945735426880884055000671847150407373095768297105370395787713221327962726362262192094768057794794301876488783086179545267998202946213503850137993552485383553281668177676933009838751411162174544578854846885105708552973794548841030094600674841948831443525451481269097290337144174119916665944555248310828159771686724911610913274736949857625758322787747456278637791812727096663392355639677612772112303358386262858660294410319041265468932918605719216731691865623544106431943966805391169121078919283893548845555739237349929936769822262009036264856076680308600314702960807946482878914508106516839325448572249366146981589472410948716151242724418222420270200646609898632588179270135120296470563742504940475908065273950956473906022595446292568587710035708483046167402831022596002753301213908789622342731570670312557227314869511270168222387006657385849551110500085593030172105420530145604754977368436139100405902766062266496003493209795921911859167779671796232217909156320784585845010465252244346986882961439343185109413281906120999560151328658969789508923340499431746265400033547532892826689768860122748671611984304245000830816433393737100939108940321761933419255584401160389625510624870620933716469887218929144926652937320110724023230537921597577735297179012246461015289067763317584277403602015483864008372092036683113407449717095022860588943215754703721414747330761380518541248964854839944322085221982975433059038755250175504100275950989554220660587164843271390748691739183058509355345051351681167132243707427035147200877953594377785460575011325995770854999900827464448230505663659971485375968822166025244695835769751065205163184215908256014125273058189296177995815963899575118203890699605303902540208224216098277107695798999993416043791931237564371371661460947959526163439923133866163614357436355964139279359176978287801105894068344638124296132359670491835771063739651280082108273749250844342118238489193775615296004362861354767345038881387937612495074580273542607604303200108106316847718138916251855385603844282439476775971301862840611639246310790331383664998122459194247197013833799345189313794984584919331280484568894099833767135979732015220503281622375132401406082459001025945582522149739725323990283514025021651831346564996120454161491734738555122324793665190473287164874551526726654809694360260663937008030495748079910887650220934704019010992900564729739044468809091683511449170152348798064246314496364931739268959339800716791937776570211080248358351163674299848140381887675344130054921474222866031216601393399142621844954208441146830865409999074702482737641149750770808743076230767619120283618507254246530091749672040362539114528694627626781541311901693669713145192241899154764961610091107435802682685486649836349761322028560331497929557317175123324141543876366388844734957300316344769050451349617360166564956697851347928891223276132683466199182855063175715561990649516122918073256223064514199884470996239228557933728599894142843760426512046627980209753379739661788612309548681848677278790367810659990882812164773359896967875878964901729443484214079439097617786914566259044915924641840188104711891940150114744988324345151810936301593398751430535559115485213753142474725465293083820735202625056955804821814750779939112759178200116263840629646417064688227808321794156837314862933892843005123604999172225581915109999207422418305257430347417587926192790775367725283218413249587206235569543246712084778756889070651650482646091952186486089855710850101540182875142121379517633061403367896832748520010781099730087750840535181778499287435736218878580610279129746576793324580777389724601569440209645094998085534436602909645864182314090534858551876468073673991736707315229778095264460808272598655595500603869569613973914203880559396064717699420119264864750192629213284959784964822565454726785873496762789210593295620493667713558353046131630914445135682018697687663845113108013328882415166224892071594118552247112847582525042840926423311923434670450636935592063463772454568353645115742561304072437835961365968964177539915110705148283924279317368320046205528820906167485690057365223666289540239832687184703064484342563901473141774981500450871141308689864686362913102700378759433108174156080772983785337550340436586046489429769010369830425504511766933605724090651993020708324237640815827404137363721093856537099718825304755645108019727108084518496474200699243290500627731736066297362123784562179436137986902690909280691510650376501667699302225748492450417548104769459259430389258435896613918178157011553874418001016715709712740307201772364451508364908861204297030072230625047891755943492392059747669661917409394008528141595762458590115783818798913710747875403399929818915259438896377084221417840249852092206312372091245640675126725357795673975259762528619650066488912545289667290522239512565433972987415508009116372871746980666943083066695433060990117331114466586096472936840095216474846337938716225790676146805013603287283105362661387469426354349689878499363176857236893724370874261322057844426981366111743441779737268381310269371334257982857164161006976244432364660858302053605552010966939192332835455532876726475659023021241860994991832434685661400605213482526956255922747938945624648841040640857963568089010144049026682446281859799105573649097427786801596141040315225544626428925772983194939821602094107510631299429572961206702521378217304932264821956425176784691511483662980046198736496267426511538986716517144607349033082024664392860914411959083426523440713048832129126860218257555740310921383193176116268091605361990905079721549316531012000671198582976537126115061908703814431163035728088093860650931637309288427902707018081331855001200482017611921994587293288073191792844839565119826964298514312628535560125840921342882802780715590402079827990567454915301222487432435875756479648295005701007116511700165895297804245084207085828347166384421750867476631439362049912473901839044951153133435555299419236220745130000291562964014234403529474423714709567387788775297364932898701391627525564506241803904140434920089760328867439073937395259645703194371756538836492397826691629408296903342266770876431770645667529698542435126043752024009534307993319221653646453735376225405457730603966412584532939449277955856301837514927338867828352835506649202372431036713767927017781617911901043992286174720711321420792262612593707010729337715926846279916035252595947466589879878416773030920622958575539012839282255277438918162233840444762367956476471670688437286157273429484909011525732655385241314553571374185042296156914285935262863092648529843557490498248318500102396652019962917368315961193589090829325060373209769102339381335087754007569386714574333996906747657041902760135629143034999668235904038615772462817817656321732655714768634329387107698965955411020955871331738947857009721298078738358034177716867267133678826705341514011298858596489245573630460822218869657878238621500180474828768277893592955514395238095034610800697136386307301969353921955967201251006490915933713308736951001170947280486788398184978932215960521741144341591080587302999473649938966632179894716998884438573094468404648916704287450693833145321351714906339873094217079237994377931121967261164291258869416895303020868030935513768125868128057295756305715252377697243686733604294663791939923307296225729765723475700122788295805901555360753801940019386274172015555507265949561755605410181432308955836830942941662449938844949263311838426725598121340572962710298765554208752456112822135406278832476272016920832234862856089282759901837197976820609512262760321709730410690443948577189732061064068855471659882277286779299555396533064157145243252004111350841777030621449164211941676094355340672520577679977779146589591646759394119124091308016066555687397026037049065571127403436903849085950027941316533902189329705132837167382054025317091103927384108872248962084528223184807991391401270083979301795763292076964561389794002451713006532803697572139731843747504776370327206773421165106504646078398998572905843036203703220311598767650707046831077730146628418533910018254117957291273198232024582493393972250756754713313168466368226928708023332931816081948080229131417685138561110684011446806711056072517730551217591995882633693406383592858986277196966602681347893852097472978193459909817600590417811008475264812286861827129624581039844646720847071559168068797384907891141685754849283211317167167000264955500064283596483405599723907079969565967206223996973679356523406189581334424250161901664689083313063132665764810142441713687103285383378485429930381456442114168301023594357637163816841506312260125384049714775938759315445679312169486423354819940026825376435143090727802176602008010251304295381491274746348768547521163254985128271114706842999201137800355825954797231925984065169770728337536421892585576518123527197273365028713063854795247124827893346473096448920620308415538022375906468730785193208886007264021127435272015099402534683845660904516459265956109912667509556547940954805798979844055647623398016032637676807703150751577414717088821858231171297777338765200555722155275262568129699275377669034960238875302768037490585839635852803592151530522716425732756658748904195921139989132432579032713494035034197575113454587792303978633364874397560066465186103165508391989839232758098330421835558616700936142472576429321978207415209978436284890528530663980609044655599382610396681175254947666493998865530257467151934280203879060487179423616149282749233178103090058038672634181631714829296371503945991919519687523783527095299102989706045407646982864497133809698209276090396450388237851594708197594202894660705853896991705403259097564136589042509792133363741837708920732060904218279491255058677779959830708645719377047713344144781596725240552305598784612898787837711918796467332589750740891560699535815791026078039553606737748699260979737458939139155638181831548121800251370183133981290453081138221447318322419740475851657159572919891724018214831840102621884759422703587087393316878998332218832807659961356290289782045895483849472559825065818918968322461409668830021071220224533550635723036511313917802449283131076688132001673239531840594523323855231221836950849876430714554097285624683253433183030627621356444106336584083493730349287861966314958371418861483977590209768869282704798447920356599266363740997194363678140232416189165306189197352224492943578446458465127244812476894073028534107816610709987414144577951658831815759658537901954045687106035367846137661419608111973463757716197907556434187998577820355554194089526884476858595777223842604540874264736698403775029235000506491862585856332504122933059449366922805914811797897400928975575267258608143774046882465906528445420122218939088204203596540272537747823470684637264169085692099157557453560600782566563415301829965749770923032311460003253765515298577930102639197673157600516734732000203789771675813227379204081439514976194151533870519922637325052956371923961987563583237480284649904400045513035984946779121644586992191184630055751368589579383459697446876340230150894405914984633678475505816063852189355398542434603529191569771054125065896509942902098263119591315457812563056036859533789772200592742256797958472597698949711214680210518866563078854858584387310720442002676578139169364351130042898529987868022264311224182148482181427414585274107137625574238896792792707136133943629236803203927443714318906731561050630806213180576625082757323645314324176400913899798498145383468457612337266190271174347519010058914306550150747746498451388643274557846302925755100787661042087096968175169884566670268699066082926083060916907572528485028704879430737233912045216445973503362706224094226385541523147085349462822023216374501296520823652107508646866820957450904529351906399927821694713042779071561706146470853184554109625314091372050133357415500343553244697369936751091085920438657154644359603777739626740532834614263302488451134394569511784998700605940128150583686423573305432622102267599593343317286951065019905518542827478425775777000170041176122346315200201465254925613793455043577522525924153634867392548427193419658315795007166711335188634660321164656041813709818221647617431275273784804808843993292119400067652791843525999316399277912075624045719679651393771773282628906880669785215051839061695450432141904991128630337564605776464996985746322402159256962055993989279395429340572227640030217827122396360174034874642716029299099764656713410895391892472850006495806808061390442771921017873214952713319143341795701687436251904322089471214848072621450313460419243241698814921370856033147758102191395260015641560069799289441504698665650800732132276803639129458071632067599441617833637325774878927512918757357625670183262430475556951948952230148631324482959331849924181597516052825684494610359114821167035381240051604647710508456609650343848615353787433863785744140905043867711196976975021483253555805445367513752296248203623486275849947043273781458030118463581894144559399840789697941248451832323233095936026221346917189708081156409426794379380741869244176515531297582745791218650376018649770531492871832908985300466276423537585138620882946443394863008754668920486694512076888037768611458112237568432771052213965283233041251681795562278001521397605783630122694559280150049103360554539407203144085737106821863439087354069162665962433149768044558829034735259758723337168977017321300429424115018440482701196770127626998351208141163571596039959697698992247408714384201414303233439663815793294346504006513291783614281590895455287917436714647734103329549611158548384634682173252581181410326971429456388495425916279966888225087247047780037499165375025970997194933888980705737486425776333793778890359860561374533154994128606986902368551804589489862388002629996691531966256304155544405375449648273995992768282186020642884824485954730853491394259423351704445748983019860386407470376608188967110487159544121706955073203545470002953715135227484508553391491299754049143823897108007714480890310939978127229533689280616652302776693625424978721511005998791479675050064769677266779863118717812028213305866327841932398413095515923706808980854376763172771080397189595906675722537009398722586777354596402111542837316205424591270053551881411986859174792368667060266081350276075043598679963191191868401897400325712019037805227216924713222670941125306332086164702938262839942933394263329407619892818166577633593499669588234062191149573591340247781366375922122641794101268264887623690928567205194970877255314241720993042518805530335618928267117233985596522794084092490753691725056566710588284372425082659146648671026839023022165606931142011980841557786890869202062885831659065443076584654417515628745397741206451685631666083160013370323430778803927394772156078388540165539811205093367557846784148136252383190193424533860976858019459402548132252796267505698431862402887532270574598616511232460388262716477712823321382549337276238268983775996617055577303744044727164404698458388165923142290117438361450954575781216744631693715970915050807882246467033952659292157103395825096432825109603002147056238688571407505915496933287597568582413705901243575419542845621593871754375964695627683611178818124431321880498887248464380365137905020028823898961445890369527849336763652121173489762416930067899346609873625697119039946559688148881571976961351791059311424339281865649699711877076809457657521051697379580605045458218923402242902568717502729787283772560095339199105656144927812891331844300061051994805529802410681455793233968875108970730710555363951357609346307586131683206002167657469925967404148720762882947754282426865955160956170530669196283646990739060418665000093373229542917035265374845467906476335029897009195243451376114298804583817484120953582836486569557845960489845282611863335932600720258750037449344626602428947301333171701958043192209855890518250858239232871062148280498169382884555782475752087750532004744155511484334990373715566897979018408688114335124807175088347897622330828977999737899478283988003871128461075459597346561246713404298201456943831806140056969194233875260906990729411355231688625930449904356296052773013431932765918738210997474252756036242716822787385617759996319906876388841749185301675455425035790440155680053540035143722135755232777676528075608414783738951438670981725030416776224590711138807956006247282739747111172287457718065836735664139570060591367912718373482515950829417929199527155408594170037247242347665014260771887119524342115419323196267784018507471775494291794208080897853197262516047477867675392461331428849628821951292468515900523682797374862444174695498673114630861624671570381846209100344365884612713362894814494534901632231851022058188517967042269271800677308502969095357934910588882194648863489067603577816631108610450008872606092366007497342309412872557703185692239965688979258089589969713518866607371099724461315137658186906155672258031806894130292554385568659274595795152423953373114279095693551930399960619249952383695160812490533007913212839247612673013502846075860191008849120607172535795849231604916181382380644233858647915800400296572299906463188602755695789886029114266122121335316902801632195570825524667186177288411623720858203949944796961473056938573874026790720786673718610522230688226891267585151041171017171637020492122894679270366694385055266456745884772822568706895506057428128149706981991506320060571917829017645870029712959556627688680348894690207524832071472003684325310145619510421158924520470751687934791013573974654067687498356984715749904374091339436896176536669571719571905736418013749363664239839321531420895111053125945281429994009128575429605769501527223260368402053074798235244921218826727389024126603683743593529141399927650948652389771356052480135653888712923794250979752156421339843200744548601475759005122514604620733041861899905063075499603487063318997329013773608317872957905155518547597993432763046140360397721788790936720929546161894543455488077295780219828311883483548225958134987175368617096495221040748015766378148707963874729539435113033129651567985389339848553435570481281013893168155727321337867799757526194075532796876561950837164466442832874490505995644258306142394476466103674887246661879766073466531605211399419510290034513547278106834781335630214343918747232702419308119788933344939594916949045948313579956680756955891704115334556895703939370391167283781613920222978199743124481788200809573642199078764072642209420363159948204205421732828179928258562489125818312219141964016084197909518657600894983288706503671297945733185203472101057031691629050630807107790947353089699895674795660050076404379556210074887698640958924028618152859468553105420597231693812006172801708855033788355648303852646340503229114618781939962181608965429780390022600548706767154653959293382158601364220289231942084795134193506112876221859162866250865348824949164782387659773854737706352352917001202760097498437403614888649601877279213287473739338013291841815124240830459683223481917597756754448266414611695536438629869249995556788817817885904975189352824950730404085141680085474701721553639851636827305943333347784842127828700458348744601905972631591360396643312319079680841781565405997857062953420185449600894588254805446685041937096668809528566662290725540135864342039050291028220818245902708828039366485583551958741685089093396223340295670259388100333957389173467672645650389483521027414287750282255757430996515483145935998687460065565050749991623222945317987623446654428967111469380546474777398699083692540445191028840301562876011456366337420446944959756320977144191102009220540007296833524730682440923019853234396928824583872358621993550517756450617215127264851822930658600852413319263641653124522293207242861634652712829318181013577903454529330943515167724031895825818251649658937657930665546326044392927151001862324153628558363969527702064426287130692072120685710488892374942586195835407192195103669338686826722727541948543631328871170716203424085714375563747738012555074888930347171537852825935161543175125783046924746570242321011381270615283208350098425841082045277595206049228650601375698704577130891405585544883484910498130736473440763480000999956936137033022448121564431887659629158076018825318660040638898515668785662318028938180848316901838526374866003876565588208111746878689832877537384131698027258980421577089191720340447723742666336462326341731079663486386250427599534560174319441843450684123895646946463562685002075699473708921452588029800896569225384040254930757318495171062462742726676559679201030348785597298113237924377185287906686003502657581411030391984957179276249991368393504037524887891433301088312297777305954153658467314650759918016261971831711542478041650884427186598846967275052642395932513230444663169031809112596563312474555967626039076731637647695546380316756403534672506406476848020931030386256060047990628964582285082855090650252634028128348686482564519069099291292464756867173257628151219356275567608322377831535424540864976863439647976363469757550866348796516647686002663677332803593925266908016927775412895773739660848565853729575438762205338180138040195087553447101954072133094711491821098725756629462238947148249753486229542457843949272770940012427663912809864648264681101134772215097351109771706996052799962258050362250299463579593851427908120148405616894961473332650328208387440687923169346461390665221207231990714755182589011644189737789737126591617532715363674633819713404146261922349552903990462581305009197146979567363963294366648242359367475206799053616900645301407443667044018170054142747702327804718647688946423271415926337190288262263825555892598773715473349581258790276850296524965889166111476193185814994245714072421003697979064729390197346873153602364627915134896669545931533734526171150032153907760392508364295017190818415613351086852689755524726639994149193399698219853335196672340614143929145516678382673142380481679991026775093767540692923904670480684639305059595429426606497877683993761049329319472043453689212255174118827283603370263033062415138046654246142083134628502360682932609015882233659698616278282992759597441740636447112692966185545223344066863757708160098040108675090431760449483867349769290565716739126328541304567481493855732685188816071757625549051300590413349861905812020352454664174173176597608609367939796860129494950803552101200151769555723644720213414369730469100349219423613899992135222345538476131364448890590420314423669116129820063911198650953963493173524231248288219221583593045228246928299465870120651243287461061672539391482085614025086266486997490997552144575705418515391095137405307506874339634747549690671260933067165157801849807328950584618293283390084680725957121112565093277164885566266818163915166635411251361698054002579553978867786021443819731142967255144941528822291274250404173377164427590800834276067689197099853628278630887339955691394675801030062346266752716327570582212129303757996458835144027384132350732382453492077057950282022810718236859528858279715756070829149214269071464142544991445745091233566900675268615351406844155301420343009137295679336146137016365423950753726103565147837748466034855950636361203731582270396028124342323498453199423178017574457851092922334409531820117945389906297111970479315851301192204519873888210873903308684375674844404322782477329164345754845789844738529603492238561966685682921421161148785408290050903441667328328610544807558875200290470515135433118840642497270776241006027832916450716247126942635086849439027699216777676748306052728827802315743285331547768628561993889234819004212183683685590320542150315008544256375845127864860379013625905666020872843293282138898650030145976893888868463256072946888967173536921048444706880380045189908721123307247041724529496499294380398056308586561400218967974660410630881151951585737926372327877579405952327935435589467001441153207433490787437811030823876904819192920361958889365493677327164704310266032375027268700877389174408284362598267185675984422344077954690893596888697087669974684963271650171897132683499399241844559756034096229021713732367003588195612513261593229215957235727557764321587944265873097632832265284686439359714685124419096869263850512468385903625876655889825523724584700270982769146290749663282860017756386677717979357283829206000483516956281176265404377769167829308312625449383769076358638283021726780083601025501782351314831251021089172807894583226099216774495697813017768846287722646929293460418796491952688589550189452319808568595931129365371749675939257062187985340664259661330549452440637163392598064075038995954859423807234478774110603857271378764133423014045010274039688733118221074849955212749579329238591603277498097922490457758771316129753694194058999708305419684662810136497288164046570078884687670873136991776052667127993762048804222468902229800273174100180327549036021993590317429206075128375709815639366117213411869678214384361930000392715396301521036254849820335774333694420357283929899264227718762713716207579647578981927514251437898387912564296235252557578160189788728520053414822435580843762614074442969961877442326903084894626939833819211253548500883796402016248807078958105456391323313557940447873586793400328402995100222931461250131315897659436488766393558620073668776744172956968630116154773547833715486676792651796128559382971835134945932848961771972150394032175420524056104654800600557467390783664889815068617895731657409944038590109504651548569693249470727854185888008712508154383235221460590271916014946812210229712357640906109515900683449582734622367725546450683028294974805124079183467132081489518219218103712576945325979958074761207852949309638738803479199293930912360845442899392865636268363088591527960141940841001488124545609415778093940056150605786667532914282599248360561069665798000554482263859333829779608324511821963711870374149941360898424538451325427922383934649481345726786489972657489497993617178915701478870813611769312056919834758249855155388329366103876011389073050105421222056514107854736675514254726243825697061739714362525773554367287123475331510802853859668085163363844753857609129743604605775386386831690899937349968147265876729618535258227276257751609793320744722949640375233341091138527090124746867500331722873770535691952559422251104321869703295392508936647141552900014601497212216864271679423544577343329736444890690709168590213558539114753151385318581298252614035620379451763920751431862299181996686534811709446063160707235283855661185484791086145373522477750933883357760923970286447575649538761523899477163032494280364247948400886336968300872413537539674510770189392641317608141932715239984273386342741815151353832939813614858398780080383674269320247723764313937058027589539108791351745609365883944499710805996247607160169235777674441053320769563383670675912410648503550643000602374718676010189903412271487422490816341740253046864982010491381951411521468867368800727033339832462135929500388059846790122288469314752376301708517785731081733610362210676403353145987448907075516405386720622296175081982211897843832868843770192718310235205214072669676080711698539295785465421121366764052259622348828208119421364114176714753184524265254425153200115941080588613274226836692286219493683267537010608442914038448423127054478407741214463787531400981272155802408742867127830259762461393732764605854505143625751349208175861719469304837438996177820356312167841090631056231399071586430760267996813855429921285264165648924446517509607108682899245550960629621868075459424458255139936811676058977602566697801872052328333755539998193329630326587690461018903976676855782533287949137916397080025280400499161939350603222898649690428771850457846887028465655897556788355519897743958748820658936305527693233896305203782418223104601282602696192356618421323164734519378758565383656167360338457488782631653757062848685221158657519030142241180444886078077302131670161381906954642738350984821432322894789488930272390792615261223190440033935417142485922733222024631545116805601266690302336779969175247391601847324227367317291951866887342445245554258492965363469454884479616875554085755985007723145102767890940655156477013925696674045237321608169187193245521847810530414603426501371391684433223140086711402174359509606045251720918686954025581696303263793142101899206838309686933943811988616290108875418470766184218643102680311242296631399747084959229430137531525797183525757988422141793400625502911603948587316686904867982685636632891907995257186893081746745152148451711452296597571160739867422888459760096384203715393094883972243488102777533811612346977266783472555940903457776607086515476840770916202794290410532398211932856572298181816313287774904840970963513602874327624548879835966424161258068208234298491250219654789529996678840672361313707000868557507146557298381864048558316810405786785509059460613453311225813566566147894135070265867484703099473274497666815821988773025866450872370989985239609307808811211481521175948160816675087442680891715188825640331601449193274718489627988311203519563614282668135084267162090966457732728371533131677930958263296089646769631562349174906961053921883735626397886846804588501896228140989326957947849238879490647121998191265057823774850839758771779416162091725927631170823916258826176106893886467303664233225289905963581823977504356427493853650897196991309971872504489598183501812445169844648357964089470838155314637861948854278198323947666484690383569231644852890309127156133866577780278666711494744015268249723953961202254275946429892714094931271003926969172360491660550046134920601927392945914719374725459821646185889915235768029898998279839892189925273486053528099349101667852632464310128734462578324346342892716901384290449670830023226560187891414605863584672456236844617753891099914413917159043214669387939675006334403546747274544526143540911560500969923740209343936274823513755633392558821848356985699935836555260256310860420503583227535891598263260183707595501967841331814583689952852181576555020241337548712147691636372960357848804311448298563606805940834015350180185156466921556339317852260437841549994341033237676588466268470428491326222529745206818440979093619842308120228738345257420203825202331913631820671290572572623740332803599916573451960758130134875020077796438184235698879251326477844912513387381327198050458648544089635654624599558099970799613413269704300505562190864973025435379818751635164764269244933212643345739345276102382727615859651750406958097128990383564806369433101777607132061325499062454790756556574718497787528326893200886164086231519869847062154390172256891740833804537451410151181410378257293029728754292833436674500762984150000230147578754035717914734835025497532676463272733994948779683496654906440302125684540313117419234931217171222252534067904917559361062001980677030408375938695794119214916719262400867922796639783740273072840134443920062055657241523259769896834029632998760624656865671519378753756719044493010428113673248320323481883930078233958835978078760201821570371233534052474256396458937184548791179973338264254441945351131049990564828650453427758293464293387094146308079292803297574759569275574943902787604644389970068223625465604187449738823255677064826532016092637715853935755783060088533058811454746285297334018037835578013503710349003546123527941112988536299930314671145703966311649925802432851819037117290476250704404272983622423247014681647026601156353510725783422668835359441857611223469281139646616867815369655820819571785276562388016280767563683393422236074354565512714779683762276490072229415482109148629557539723763844421944407892638956768881351440623618220290212616570568588483592415582352389676846205805989752187961642530425640952166254008676041630208696304561001029154814436103096503583802256629952699509188415563964301660471794446700699058137500293757360128213152980398261936278498454620795576632629063174159624243308330663952763551882740462094834585946331571373455422689759772496715162794005653753504868013433251752212228804631864331738619043488897864372419631311380290153629690054485502682940906515670096205947131662070448236954388993659304221416321568794559710895720800790067767861395679887333634126133726350493676319544259483374202411812806128940239301658987480104609478473520292931207428811150686157256513783815208908004411934818920158553546496192867442195990309844318889737867643456559514729703484612834891624205705281692327356124982074615422006498884595484620142184639569455152465712378186114360636312015652489220272964030209209296042260726933326403201598504770092750282321360661128235693646835705231044097827052382362736086839535176995905119444155901615154537147012420907519407880102729497767734369002840812247815603227939237151128971087916700610380579524462364364319652554363928733020249395267903408881928035859597199453265085156970144553306481248952744108962951714276509511136735347147834099082279463348359910823730980207958992836288376905338469486744109904902243929130209090468582251048584849789253848820742794104612124568455456282299002694841622393071707984073679277359347800371282416083019767644458887452273351286651166291898903367627923944264877036471758707631118268082322528074232106108303493213747300925480055572613644074408959169584346278057277294389737117249408632651841495847226085758092763133262482626449108744000057152463791377020054820589652316857946053821364157940779058443419917759293572664727706958931238722423144096683062930286625839745249077043427504030720066161616459608991156442375623407851492899280732951917444260650135600104038838294967371974738252694628176742690322001570447632796261821581998577386410119171129073929753559051065353983539143283487963773932847281444770656732016392335057403752217368135787971056052702312098710707857545625700534429756071878757143002743517790832231604042954438486967497739171443557252568612477174195236578332902472803521433298631084997014456402144880954366526631935505218604405421521017256075160489221257691785296475113848932856418256859533209004700157332466884883626921764209084783401642664082951446224564820407060277035442312631711609267427724840568826405330997710104304331246253040794678986902877845498288473174071157203331179733499710272750671539596838958883477799079128319097839782978133315801946986403915821858963047998302053861683160715175460724024433504476842043627714713882368861324136491561768017402663074524370459130614105242802300740476724756006711933158213525624275293211982304277666998608300593335360387266223831613528211876421192340903412695058150847521447302899105329851707249468713898921764663590183544393073415948694561628886935556937488195764952477386460696017202712505202376556368407284533349628399569587665350816471998013607992801665213636158201782769333614139067701703382822221060126314136528853862465918184763226601045812495779841545157735113160048384621753474465241162484104539925292940405707597937130941686342792150548561109571922683715871175803591551851524773793474088459202757794362672709288107774679814635853352329076325533030445432923441879050372370543695759574755641778560467638474445443941527467392929996118928913524471802740698411353254145937079674989588311521192288737021078498539973160722562420416048139290636858097203603683178632553897219910320741119773023207784728746057531453612900332180277092726924542445461776208019097249250742140169323962364665740686024280267631880695455950816985514105896339212779098245742798395431304044270234508555913744943715670427355919689143258727853586503277752204528054964102711505271525098737281632492074556689405327824068464289068251693471652157138262818183091986616986411261248587180894334599514940261982856769714846715927395462847840572803699431212769253533525125596420396492968351022093587485193242484297211695935887697021064060428920314298361924013393119860603465395769117367554168270959907977588016796073946932994226920452783681607222877105956869858288557968412888242435966772603308987325764147012615940878392817898803023486374890330898605682126178127777357883128068322777081629654054658595757247100708409436565707960004775714054590890025750113410132095203050777279183946821240414432331002653830541710294405495628849511662805080282442447113795966602601427311542713880924716385650813614153513496815922257603258747440872272415863404190937791520404381911759960028474434921337369831641793042606802669509249392301988938858211257183326730162974479542140521065899034281558553691167272464757281064383422885436837236363133406690292717036282460127354284860103611996973372265676874402979798794651648850188205043291977488194884251890724987133093623673968559617162268693317236307593861069806855655262499517096410955918902884283816886636866125293151456174670878892887456071566756350961041492977203301775177691659934607964937542655405876864729169401888509630469254115967122389585522332083607681270634329237900237297508985349664554470430655498794246548847691924782439382639596424262646214980874985633124275005013758947590435118678350127583501199129487036050538205810573287774053863578946166889462723712827729839741722448418594057652992972406109081892353751223155877053561763181474001103002892870762626330927565812654814496148406893735556943510119002555826539405781555741755142391023346715855004407246623795365347410525131077518578048925039622696493973366519453130958658780381275746292981573836589681206539606419204048737439162605583711110301590915242519539659110872018160186485347012922133890604686621660686255025632111205524239924297426087369784207421806710694312349695484511651395548574670675079765918582149549963759435426913717657572124155786937559692819015732101641396054781663831582581127427109662744206348130493726598721695211643309484370716805000255185310270727991550888591205780538290296867836134794468839013227735338592872763739806489119847525329116106835815260125648037337390518901687827950098791891791443819929116641124327600877203476671991747747496382404503744972168995436956828543078265082206280310589994830634518810797753038069022384455079651904014236609371797122049893897286687443900950377353042250380603929296738431069278841162327007407310428571126971661307366656918904358135081148389751783093894946367515244714184398149891958101430513783423852387726005976498676279397553611303116765612614776937605296916598102558860931178065128421747068759567461959806762550279482635107467621815642117424174396612879177205732548796802285123727936334190153512853082976270099161279433361257706862825317299738511140950245767023872686907803429400048908497172970522721761596147970413197190238763076072246173471676080176131970064611274324420535021772305340483992019572666686555192649149160521706072018956123548964369885246797235105585247402584337176871372606277613569650497349581123906641454690534450656228985932869216957237216530146504986467959055199024405440673992404653942822219115260869884110702216145470135803171503972075930411235796901609319302121225415301542929581732099171783455836182805257085611505902525040441563955846688057531960028445536205210577307221321764723215256792454576821990295998771852204591704107941169583760712670160087353916285596515525919253680862059910662399509273006322511704138733383340131327591453176377413177319104489864959509882017599026839280389559537956720429798727929354961213426862872910229158102409954284125025700376199683936901626063688578156755053965389024783670716489919774379940526334298129015488901498093020657920111449659297913965551368380929965041126976379042388121627224163931052828499844925548760087343816171027503506727121481863047493913349402499900328217236813447714795726976080269825398354982059684375704101952343930399121283453900470964969601707966793441210745294479682120949210910370479055023156051839307310935130652278869236032772807186368513213038950096402039465811176220929222247092999812612916776880601367234121364932883617024741042139132488016694105489367258201275630725217930810368675380040166227999074223464982245014305888171503145651983359640148074351068152300865202966592933288721274350859997228797670605999353191931993640604558822706811059733542355662012606229314208083049745918374057413849218194356050222557500053860568911162214061259526457748538769008266096041793890760210119869209394565709978351808107880161707583371706607184208417362889518026079053123416791363524786278055552380289284009351495721629260423979025385973053313691856042281128781806635293360267352948511239869185208822201904037465311039420604288370176827357979064443945761983773282670419529905184259895453286038224620735705045728045366270045820773366580952280682801174082625551116412685273149840864298617144378271874925415799930984554983298681750911457286871854147360401498894617466219953883582375396349171234852444829597008495348217983309669845459092741637027127750995168813632244760720681333756415016074869369368913632799779865109511800423503747535772441556526311151398351473361277676549684370822752954947318177897272115981612677174529323377922358871766974297273384507911306181798455522108693757341303862120285666013082115638560335518336261678656417080757998617342958487642016638480655732346145289936806240176044057668115873902485448163824288566160537846277830213576302879682415046554645260135331897580414017723083444009525084836970041626759416506947166721108207201543433252955337795583479137004253853634814592407667955953857655227175481268101515935685542597370627329884658189600996401267701522487663170546234465839404093389723213903570433291551241455564845602712770201328725530647460602667556381237231441746111805978386135084380239708461732131694036927781400969717752438026302062036651659692776444975920847099096008595006553994874741430934286896115275594046634154632875346519630231640284444986587728118375618604567610387529549430780518217958079371938908408111219095347620403755572794599554974335402362692580690964185216966298689133541409966015764925293151808814511331887470288716110426388030602059379037604262710432762247083669707857708398654455072842014617547903013704998259214038930332740537353544009728553380254083425459764959488112987093972800241762498997899272263379761267575709569720151013601098471098767639080217199741233505134108214932597833769505861108681996566920820962439266879792274480124288315258719172012266305883357565999008169726424521544773314600651690038446480267592184308710530065211417315263303998572087445778515519582074672381414024660972765913587198354980048417932203074553305758618402238445531697965004191171799183529654028072234113587528366767489164936539585068570744537424630877448666559681965336053782455320735535309709196917525618521924718512748781378497969091510749221462677937108783166453175772569433027725280614689887690608625999873082005659122544789863626818592519394091891418858337354295825144920968481473777229902886653840608094003239309604560488362964343583368965040167258400209646339590133509626523979448901957772299823298794196579398126291530002452052667675964272267870085005226578264964215971904093560404595282355668613772448675625396455112520208120260807755080884075538053566244861899293429072893678638267706776139793796100747387021823972409417959826365969190006019351800191274533152244800423264280292358946908499076443519350114577775601789708970188553376419006373119782495080751842067289866196061331046755944291996684567353040575794931511903461339078213402252969687739926362693644750403785650587799742083137334527535297748516660738073451547194691679502060015684485963417966003544368411872231855267913564341966529661563817753217424457529735114409727351948258975637177948169078698538821098294368523200831515109125565669095232118042638865414747409706168804073688242115293136920771603050857772621472402366947369900286860908961615260731383099234368120797917239406782541475523455230637545152324469302913960268493564053963806111229134877927674423410184900261325348122771061206639256289299634274107126588287357737421496261315256565756686564529705782863908267089409296840978453023550909690535579865802524055294175500017291202235896510643409793525962418111133022308572952828633145589344370756613609279127208435034514878655602429216890504185102476925433412697836979115858506252681226438021549218082231821527328394526180638401291490590390727956034947391365668609248402496187917825972665790939559987157152535464321524671191777290584693898936156610469801933555242811320412803019813908717443225285273709120960386788583801682111996215855418462985080469669055497470567642773611981253496077022310421415514811746606770419098220213380775627198825415516561664678174557112911407096863748387473784962090855410033452656768053907865902075395881213670603339528583298814077886057237264854454494130796678379524427242429380693421696427956530605688063824272354623097250970287741240049387748160659376785119609963540082708060421158446613130905240863558458826456593048982179554294251544671426691472799972583536340421427770256328086608078772407871026522873935119207682138360935165300001131386479994920978161353952767416752169277309272412138164251379446923174377122907283307347000959624386773953956652295995977643185199882269022678193345885957121634891337156373185713490968525116580189762460036326978476177877725019810649393319880526018549032846155897722337532779974454783047373175568548959664015477981094090517626857408795476132804748693311499773281598770616501587641102997466071953625698131152788157981822006614368040353950984465842057942583658293179967101432254999087368204034733281320672629827471689179371319005590304193111159273592469017889627711454001513611063290045511603438123905993308598585109616500073504468933934797464018678820969364478684108302284494543146065064787314012189796635313972660332748172930320059540853819441286752944401665492436255155637541551913354342798556462537521845085590154278301782286975999683641079309732058628675723633385665299513581158541428929315415568353530665672107200179836581189012259500183700151718547902747011743409689955737228281403177071851056720601323689022964759530699899875343996617228543077867655938640214888501369177256711013238354582486928434343666995001025117239130736498413568051478828115291287622888146561063137871428522998966713958537916920800192369163840325487405410823703913379558138118680542006361848578161411346648243687613056728280067460171266101380956912871288865328970785553169542923111173410820686612286993610856205805869896218171268986143211633668907471419989852843871807821202230033212297082825296907589424804696839865333224695378531032172008534415935312433397563243479376515626596673741853161951335882145056101440828282782771483408734044752044321117279104903735979982716937701908950616810442220301749221675823441265829840853272909762560613189417805216427532474771274797115216421701270550333924207913344413379793898591140419907269483115558738094084151858170433520885393963973156297359858505613308793057949744701922314000893818066913679742432753863526572267003223758365758836240512607268361459952542962883643780088271203392720185611402399012775059993411300289709335809381646591062781127119819490221734752569444143166559390470459792279759072713542783936459055552348466877097508225456034932442403362336988915333163680425169221011892093857919213250050876727513008067065180101078023239624150090179218840788819542927468878209953386851013897369862936330423921993540380376630418261261291422814572488311049111682350245821580320581216890791359919386845301254714076044258312938344282450255871880633934062790554396265943023854544214495670564487260434043583429080044582204365637538789469200108651851095570867026636610194199645961966471954270370470878173766526293627475789744935032352256782073747927021124869276495503409990922034402423632072738296978769373296455535010634796060778606731081524897067494628949044296576290938428921940093610396576520580821129801203839255801173612113741570194737231874207120488028067110954381100407452233390729970067484450265021140604658575340828019424594959440271769897923650554169264596166370785315944939917304624986401102849790562337048059151600503013773180928982423189041959490210830306001620571165866831062143966169739827675238126027508695285493930951666674588676067616964726449587896147189350340546240033574983053349019514526326507103322701555818570472384826818418571486540979811334061605278868539633847557879468117913735871261449579741471194045832328077203807683547301606851960466572647638462645075797333774919563249788471765331043084907266068077220498124104974597903901566049527529627319483473917836232026667904540647045708419964911701671279550153497656327270627567049105735472954380088465562738214422463100884504412910613091156362820807161043086733127534249530460183479302980561451318401866746054997101832855629034076923313799004655179551972143756095902461239593576550631651686456277443561681719937572324762663485920147052323819424697808542483680310115485666035739867763009584426095427665288410194759514245273234666947410337520719531341593235325664342959614521784821547404414422514148821534904202572061764215256261071001193594153632098411182948929412501270483125466192964357999838230324517593285103682917798347652365104327909937810328744203096154910939673611581200965863597751235344171068550175954537882142079661106248225497660126908108259146700573707865957515945890566585435630195355222831872627171962804293689916524579770726753987010866603000076825805429171386173036455445395251909218580424255279784487975258457455042125449282579539858984933305790418094803166093097556044267410724403055533148012345174040743087280427623544856122313623590918992415849598245095244566077654054137655013121053606967536355311573515043256117917711873794162515527134947731945251836708331203825108825603695808107151392647217552817527713348119317683786379188323429141033412536788156070920300611533010249182089789251557314856978068619209848688590010772567293660669982215835569170216269978206221718632748569918159034664946176101067616338635298400850171971810787632880983035193616876040337606051670512687884169806293947203735591312881317223606863348189722920992666293204961221799404833281049471009765388610812712596699473461979113383876456876600291955831007795565545604221863799771336064292255424574600944174018540520605962694449378557197402525687530820789138590082034340281721808098478669550892531176434809565570559120396729168273515985043754621492238474502082242976133643190919304245261788384079892872437914059241273499509039872034539601931588695648226789145184809883569758011715421251520009721506291531232290960781015626375165601072274082469867799927729333457692185215491053396196874237931004377612221676640876585285629610214501089401629459623062092471293002211268581503449487951850731846900951919042338067243839228124990662544042523789612381580398630599008840325229958017244623031973798727296142257561984340570303924924171708529566146591767799298064922052187558281911051210052561971189809443982362234239040544956930226467615621648195119939797076974645890274355842795231964593345779996509146931904143677568120078851390300697592294628573323558495747172046326109893741777556609828027285863420706837393359492984056395777349054881110495765281160209120981541521294571474401959367761958173655544315175379857876649584766198723920516049915801132916439172515988225298844998065298611741853925036437189510239603987124095999610125035866654747719016260087553887019572062792979314721651209577756468129465842388271891995514655755572378529717454597795772107726404618028527965238926958564088837512401102301436708682780106796859388851985171432058818038613186777838425253029691273666081515414563695002625921242462651653060049082417169335313102532210355189972704654094177068189417085001416882381491918971940214459683687613138718731225011157497708334916046729770085335325166264716770046887909311798796468414356150423590847626227862602093481280798321295420747036277714346195150410347097190651873864425286351964597615051869022607699215308225428929173287637654897509604587264478605334477435502787156056629230579817389383391808764611837542107976688824510289845199369769985458323408962277428586747442564100013493904999590580594053587141760970486855490576893348158063565304410560105272785938920733234347321550600809933708075211643165589817389655933318249092094978157494952655244473314654786346123904034339393156246262713375910997299462974771811343532731054774533077933982788443064653385484742631177809016857304665277697097196823202808540322889898307008304146763826078503878487660265509363279192419388639985409141542007159571576255623334037907108400645761785521389578323007031061329832089709402634183428872651378225609048178421094060129760007126806188714479610451523934661656025501958929692822448123598372159195832966339913998635554740099908765963883827882569684665141037091668007362371781997504350071737485953786197620639882918325770755492808351587262968976182632583465943915584154656148546758200170183234961745991345467318532621109894936919427914142843528348605260098029262169373042054314169845453943338939121208205477533280762034336319442464682570410915218683200859576215869142884815752036481735575366874396382492272053337150197075415874788736464016545050820930729083057295459256496501969930648624878582931699595910539847745462945671961192208138764958154690180761029180589502469928843325498847466950228824997723338387013613653795992377399199675260664299729253975984768301973408667500689931464279410680339373920257160088300840708271870023726046740775187799569425315423904090330982613168033543742985353048560255615331261694506853735232468593155762803438547483394365692355719988742339344575560290507712879625080430271826784868661020237384630096461186280463094990375797250230706412845022851714784383964587086008263986077891663250075490144698716229540425781174522548798319479232957741838702176320495961886907875212066021387716400007890210940474081648086140288536055663443170016775157914177038373235120356774293832301830340563847484857231102836315517646363933859845195631225744592093119305755186608366187366095312353574985721682905223707671675373378795819759996116911389337864294160037875866927210124454830856703571515288535476748772285135024456742862097299939424361355657676093163707958937429922172048914723734263211113336259034406363132533847070601933121477818439567903015290079416378716956257276647507850572024611705901705436760447151032783338859212465203361400985338023257501572604401456625464704430328837988104252034538571906599324216186344257323566375303414303633597984252616863182539729942177495314800377881186411409744346139838403059593686930370818549620049963273454974448311673182683549930816030486571825244591566610907320047487565878684545072973557167712847078274982534187704254232174903730711870059127116777305028358493777433678367390407009310732527546767695942504064452005690567507190326265575600239334945547166247111326857338176289697568712292271979255266757581217940464789435431202837597775118586424986854753111061520695473531472190687259375791138235537165419692617202124902517268644291197483936142859167558448310538400185342425606308344563799565435651776456276423522279536315455968130107521742292945570546659172664096839998305126797633151321797859299141860157580746430240550031290388282141327742186676899206356752020992949652098611614516267896282079950947549376575838066055670554135008373893848990691545464032437781317189214145646063102565126524371573536405551524185024041418141723340406885119742997791226829353384097072894020788540657624095329723662074634471291697995044259732586149292281461542925926498553424743770322733082465756966010129046440059570995202129011931985518413206438882393101019360484110707304976818139140658209466880417988047703732434838490577255450332102920223407254951567433328153612985247296833444157120202362805779249909040668784088517029723713314196740825727899937943195449653921161692866912901329086425480183185144220904048089854425997971459629674099488096211568141941984618743903424451817517085638627322090487466168948095169155495610656836403214798265812741392707478470766577310148743193768926593362597495069955165919828606001833782895724086594402608432453528438871394898542809533855888661944641332839445349883224822826996985134080958769629309447301891067786272865360953503389623320694496643352874760374819303920721679553775896178757126222704410345597351407864145503745978445721066552509127344303865276832148313474569218178814748190703042373350767564897973029998908210684017771866834605943882697468607499620348684669334913552744226589190404807616616506108924016791940475511342406990881715319183560602225087535610077289771473298908810052412039941589110773091201975755785998784548564658832442010228775353571213135123878884729630924281338470366532228846697219119516378843730254222125918794845190882363810678524802060559960439789752360474068326360168903766136692582841654734377099660979789147379637441361373503135015249909080054538998012133566146084629417176799117439094236663248014496019368682577288957235631488448797802457578382499199445270294292146941035102278280096381337970197156162962756964951386431185172164751294596545133346844115322134952727238478594048970123652867278893089990843543507261812289420078388677052146536217097153126827069795602127636111473044184618027654012035575852554455195872467670122331764024308766263327756582203921908041519563265476283971852223344696280340881941060029518158834568248372344469045376842170950585416455563893357521827978689094677270961567703160363561757576611151109825304022442537454651024985803248668577863168162054943125973929342162065228034890659150623143513190088571502393150382163400312154707064382062874845164456262129440343024175810917500563624466448689487910772038948176124413330365529163656223874505519344170123997088486139708768182256625905847045802773554385608308799918245983219464932267608055661050545681283118906956298863315552060060303852864430578147529884300241853550476850610580752056508758363784578296805785679635813622503976797491381833790731824137151661520831634381466987619713092778993713035175617598325225366844307736065863546458076510414092875283079673182738673465284911940254871928719440497238997288719894131076487089978367788512562441821757863093377836250489738183652623396062933532101068322177324072232170521767265991626838059036644043621633685091074830646142709158255014744076870569836305675499128283137937652441802356144598984866850823753009701576710810755998821225007413574673831645580405671489751738548093115181533694190872957405145613038244024218874840583902024819182347588200359924714558260870626820195336294712989713782874314826495275493033057653503532462456365476958685214749563895239703931439002200233015554536901854556155829599311327648675877889452163724140991267206412628450362395141436121963020660629346961764582572752282676092420400171397271713261815103271936559355419240856741287096311050111428296858950724033275748783577181952359613497741373085845917456955080156503782872744031079553181798131820692150204908953575441610471857857691622518045017327834366332288035344054900938554970094588242086030065430601111564575539772534206996290786191261001457228994810806704869727349929615474162872519209999015304768302659733044669701530211947925927996587774899303990435170860737865238248582631592320868918624582993517870949412172769522143346162963893030529702690419496264386513725966810686529319158307567776690927532228885283517232703702074261225617914191610785635991369284076561024478027585981460878663935675423062634202893344322744808135456039021347181031267811516887101284516166951897851027965161536009305379938098995402205459719151126832781261820423113811386147740175139727654451800189604767460206459733513292393166429091929756633682182683886945877414230951574006266220325794216616725681311703809669225009185685272192425722164326808870595016123420199798189646632816683198353375699843078469777456461092884458804202849985424404303421988412517585792940654401176186348204924998186021719494971603845325162171844503434700618955393082288653884397411732090639701915710937028698666867730595953319254928368090465438604755253032859369302384983641373011226988279292028592573770720833329955609683853426634448915209982466590308421482849336653409444778032245907984828974420276388578859908477426881078957848457696405304109455985947409647909804533111316422361774895708611563332500518100971722217401823975318212258047515451800692274812445765071366705297449914061024529481190712669656937782953971017225365400443932928175685367680577328636358035383209960639932705452098788331834353749998865601663482686409004979330474963737660993472318302221752743936251966725104890329897781869133786281900314587225456022146683134723573572271091836086236272682406301564703736941353542094803168193670134985201255413208337146223498823265325545760016489791074420357399460109008107995370435418003841296226556451083310266257160544489548392418127475122150112981398156258309080205286377398184093358687421486759127970387463223050725122010144817216524127574980055381435680885381713462732141660104875140352452583392308176191777104256720239694745196474583874663759903813520070962410158081173190413913068501033439659225758224066437635018505859253018105617148326472697122676393472590115838698418194708734426229420211964817192007326325855220036944791649835515526047233595889313622913142064621494891776007512373126852533308880032753207188304170925416795374647814877336406323803648119898384426574210248865165495264783466910385114290902948418378943978215944573998056961269034262787528412859890257741754195439106530557206119267303961121072555387930507203921250894301475794061853980036818383711391497455446333574858977957496733209951942618317947380159065807027718315599689432102511921796649784390894146005246516065960023044855323342187006568100098587576516987186064807043416639335098745297425686095866665929914257108934534682464035156707078384724085420789174501105698147242439555144648778060930884207167696573057973147760316396709715871218411115857872429427231853841119275692388150261653218685774863931967808862048923216695342151156314713840656353119370429454032020124142969160732725816747823331278925972753055561351115375801105956751558122816558222346416127744558382976861445480818092371314259244518628497969307820393797782729530391199314109632093764673009245073633605810885670267463355274197409317111261638583761341536420710425507095805785084299330713852171911411828878966333872928472357066473397080358812450848117988928797417551364178172510911181709314194802624233389975743858592356910342816847204155102323971716917786483682751886875604351390094223124877048279014764032069888010176054792874954022233018565624421108453556169779517712976810450742036258096907696218080016680876091158016729159631748671749778274857930154367727730618880773443714074487737720323231568524093334700627369562999268748831597329342013263476479121588488626520802716258965081000981327943145689665693993601378125231473097404901010357392951602742946406999536923335433293116678299106577555392450996175172094467493740324398725986317928328758818805526051710593572076696825641657850092964482166703685343011968489639016240695044818201450914228466415661581874406951812182778419500218038005152742222546249979180348957046858602721756855132093049909136568860888814970313951036579673572339887756044293362434406037036043495093338281559081298782553238735885481420950946433236912739674506249957162209274156061918156916372244711131851802899985715705063437344672669641926190559777576960632069884661949060954006314736068951411232827581821911081815618736691728506367129357264089317842501394239362009645925180543265678161349921169099650060440697838160279296153917330917613215717646752371308067612097645967524901925578222446506220015559764248756052694874938503790071175907846930725472242619645309612520062155223637785889036618592241107466392496888601677049950757512872228014428970756642715734379315757820323012182896883177277249525743537390108141074591422256466559807283157557842644807112245420707714474432241219348914840780852493457237582202860869308891104386605482195900950852158215214882196952279728240369334844636478593242929231190732356035887910618032893505799219964300517300878033349766839572804352988827792898742934745741989761397151358427410447633628502051914225152013211791766617839763056984381547886286532973419510444408379521947541352915679255778846526736946140171835623825011985052619430265305135676941195141726652285513603288174424709942136480431652517861780145559952580780975442289351079117640807025756470305512626302569218017053836992313811934067425551460487644295816981478614202940205462024790951929017786288058555750924075365692211789527077132433159593453374348371923817553912291006109507143767639666430870146137694067497131820884153258480464982435188093541859998598306817193697342051639360982343004161599773836252492904088376212961856233567022742717151602158355238619782354882350374921297544217105825909273186342563811411106337015947872936495004049671124794715117319607737991914462295244352059501681421377953741913103002874631882396013932831499363381666226547121326694685979002409476680921654331073672943413705549625192457128920316054931370187773943521841206005310826138254824386126703705127180147953784400806064324196064107590077022630860741640711735463745275403861268650418729075341794190198931773706194924764062914888325197650783623807223951814431445547650957925253218654028131581803020951363547798878076137078863992004404688366173579505897286799561264720505289094096252745524768989926264694474365358793130294660529351775127533746274803804509970538849514340109534934339080089948757259785079230222677950508206558605759174510263746586108037218061087800664127963674045493583223424778263085544852498511256735531496031165868260986806064708316387893805150210361580132569655365104488014259457326999993160144681796025254412124680919570057631989803073333706938928428247902602083249065417995839423883309122289164620783511716792988609666296474830828213604848607908030654685063303164898958521532406363723631635091870144517423043223420108343784747479634341321536821125905984725175163816215868709165013322925557131242031831548752518933652551535984551411146628636234637535701149855387138618167121920749965899821493891403841703972042974135683215032037609373316436217358117491962468688344217932027349173921319898328187225866165486384169759808705160878149700420411165969793857061299998630422811232103336065219823247619994914027814089097800021026849407464331123898735540514751584854434530772688745522581518366341216250371821372972150667781511896861501337153263983454693979668257676360051592180182844016485882825538880603893202790250170344527694425055533592995287946608410058536464630137102826829186774295556278765401926671432033822534762603899970024390641936330668995791594986962094358549582670784689694534155849162996997523046431553000706405278449278828663321144768856229523378873534563457730152711004927737679797515231867012573446455621291874618767773242805275035566640860981563274435922575580251755426500281192541409847498657270084236922319271822043478463709943450538307959042994533790403451360457517556969503666820595709755519379471124365587506754152027626492745358091413512313988011913587779996228338950982254784831949071541593209402000156844160500600470600403799562227918382838582193375850444897170699323137894950490902645486102912942734868379103205330512007599134220183397362267190008530802970035291714074621837830877600729850737848531294789087885519554241691160765510617665806328961086044407457551870573175158822950999598119174960315591928008830936841957870754072926193679744532543498758432364193947905983215987480725505554891440470093457383170357248833442806471760596688561054138103390809595652375613603149344367608562015574222734773011041042181764196611062143812691784399909162907599831339306126617310757390432627926140237056560802017782590562334205435279768942610944587420848234439591327202137408096333710231748926279838061331123739995028204499081650738814010782457104514368911364418344604858349594436118872967066634171444673731759872376899534701381246655499332181289828676014671589532183203839473908220532329663932105564590673768466368979806576930541516390226961461901122588878615962825758010395048418310919518689633595328730559966704194595079025057642310912485900687854811496158850109949591395561729736419733332194074810357183199691434852522843388986181380769767006274235422602077764756179849392131417677410089831857243279753473459577526889660048472152764207078144464901215352320638152831715186079066410624626724410190710165757651777703983956263461285585414420460320302913621317786587140107119126155801160848143681514848321366314195380804498471445600171232383239359287367545279447924360253711834929233947099284184759987136907763725915251072857090318285426807125573260410060128559433613990809580743672484669508515587492914978499964001681155233050498278044558682636375629000330779627421767142234116723997726785952322228488289005853431188353805362153160337805732296816940952640576273986489806734635077241952592410397024831802638057550383518832218151779969858174571686823671592480339735317231068545212145502739646100263587447106245099589107592818279796151145208934241506958547808031093196349490491454569370485573298097438042093345572184620884996773785764132649841484904271547293507828460349724385519817799654248690605755267086354245545778984354757701713372837148386895500406299735408389255696003826085093116576098805900428637938275326520589084354019096140234365717876780438537080112198433941146418798262776042461218117576724098805973354124617786439364746264262932645047946955296293540443974121410083563898047686137817222994470497105993789934217935449440804837393719928127012144303620653985145892273253777793755175705671114719498440088349768806096087773734751755761832055983539668943816029995402050510810389946985847655086436949899319237840188923528507395207280548613246639431247082524647371285291423687750645627034261735544152831925047419277059618251437369027472012384052462684261817084263394628647316102250304055428219513315767728611214963970824868503409277989714838978168399235617280098507130952827836049943593939260472643837457880078484803923446004673944410934805440104255278264677808560051118423768821058135729463193685314614078660535290925939352947194306245441260911862494435291138411954544039273351865918037223884150256751825993617391049373879645581455278394321255065224176634014738718413763690545532885635518859362383947456059887818851251794167844934829053434352004254416760730562602460094532237635594014308036247129796347882951586523617204113498655647396317625951980590212128683914623565232782621171057249151052321880561036853269990901932520019571449963027810182562066773592357028930998356793565723698262242293024084385336156140761512433411996665957915070483130265020594689871491858657474883034553163640284851144599886037739707973454172200217055391527693450225999237453935838302140850986473784328407351881843622017158805461024552147265168092752724986287476492741296624702095062680665457786890395209132608495785562378961823437139188484130352837274770409666319113140860508743574618005974719122233147864222620454700159681007389551808369810245005087656774877969555589996686633722717270133548805960459076329425248196882887160233140470888643448659846999705351306095450579057200573735913643095610991542343109524798980910104377127007781131966496283748301580545621629328279022470202416454747079485013074014258226210529148241626261747250230206201207014398269449163901663799570638522201761630983028428821088329884122526136619751284027964941268838436097442522825112935878239724712612073695653038957202353368175536864462424348506149384561432275500419500909489279914564048302415993629508588908496633188208007782564078778703781763767085107378783814440990795934847202261873529648025636458015330238641667422243023233744560921553413943841751071640144091392212114581727602552145092236143399936054489172787302088015242598012539977829192789793712741470164279226076275121321410673862103253365822293428264920371065083536325318292778694729216644404641516619655931894689073658485794728298893843914506201415917130751653786697813504545608892813029867094908217952880680487243119902317953533854051649138046933651185627765596209096641183700960094588890228697918367350632879541405592568334515231314885881233285042241558055617729945430825917396083984875521432124776610202720583806701307505979703901775737632503476066634779180891564960273163712034889891380641860502734500525874573911621730589974594003514845001729693569550200360458115575564803289915093181499867287252447928277851113790607323285370143506510519113677670818051244946017851072043863698797704363822540624773315692436243321847915824047189898626412156179123891246406837586126562799364286756350913897184968157809707684664253358385702752842850607839669367765035972986687619626621161746959007405849569906649372238787995010438627197114523672779491534296885393054488201109338852713555303775596607127593362621800269342429499320720119990306961902746169927165580476841554662163022308419853286015080839383130759475142293580284674257733174027327499360743349728865769946679018477458501005162110632677800613748917142320500536077484995477518499036923050185872822632337701323792237244557141846831017874357551534077902434829658523016156727211976654055367614124322950856021421605687472534570751092789260325316506827764713145265697798766027802698154144166637261854970642849656104044114953961863440439353131678610801684978778691379716392605062541594466626848311106862445717189368804463730662164383288764487584406876389592121024481481839113089234688259294838973998800540314864772384144360249238028137083835615615758009980085886627409892991301638057454852600715641326407171666770744921329874887985098675545681071759451592750022550247838963772500425720898441967727933448353019427049052318136808385225821467283894544123523485589316912021059853644711331856964246295178227118994031810816653331881425220986400987643015142877981887559735038630816546141559779822655984578809851304799693494521136226125244031734003258924717551660989992237788669891033437210637027781718153787304932760981899755014445512424226019970929770379747593054405826264942610740199532441433205784416113405707313806767553359482080212854428630117524591138364134580426866225102803942468983702019360143707327859017201131860613657425773809860290500693975407382435586251640184497389667197109494103878384805542845829939693372869375795107268152093706765614283889175964657639861045029388906342744339263451747759881518366780114218188266241563052590023506125212586192270596402643494338203597922064968158299824468280898955059875993016559126703045479229798312906440832749563855562282378483094172271758311385343495840194242043014496158940942071120650675724961529471248666626633304923867512347451790479684919663741567679571583008457916695076220432687636348492678877135755300658384229655763098470892578917612405136830237237000194735709107520496548426894489871200244169150663385379822636737197570107017812216279882438354027442308249658394058123638172847155620561383144642886155766721792341354932115786594797761591441712209341095738145847081148901298015659351736865983967990332415171594091300581993543659406419716321798910509682885333725549677929930471899227809825931737582953771372576504669155579154904976555402170878384568619157210699975813542203199935227667004488862943863748329142505406972819912215859419066232351915427437852402515519785148501301271923349107593407476399905134998806563935175978146092009891467777518572048504636151530525854592374990543670659621238407398112994604717743570147633849407310887769764782931824479249400895600536695307938108134967740885314055511680528175397692635795109416744089053554904007452699233774966244255913126012763413795382360318284914203380203503486564640534924660201175134102768648667173458616698169536570789953434209213150156517244862142236731345576578359838287694686194767872722628707425139232939264581170892040913930126508471616998456256984450514392687174527908454589169484626372531633918151104223158606239675989834653802435942641867046079262579101992228983490273680397546432625323516517139121465034987756729815383113201999047013012826984908788226171433622451007122224366327830828621318696967752899659913606612414735021191763587304709788176430773809398438017828539013767089280977574276420750810938637490430681263697934232687813381676760466211938244210083881422138917264114739053246970584403393891518166298137036958639831379175800284335162172751349791557932603142259744262675358366199502858275888215370328905375912795360674060893068233161667368349066978383297916126493058942345226431971038375433100503296988566200897284229057702899109077492362440802555547808824560295445771095809195406562672013081365859299743584700867647032736049006650272705930201964051722395326538528290964970072293374661919104761101543275093964639265857193992479596356544285789215194431154222583085618966756702826914047739604857995981725047840911506201224481610187670904863555724149203950515760334293715716035096288656988226012038685605628981513168184749915802319561728093429342072120699745289689015346588568294842451061169986814945344341725441965010071845965125098996105779297495178298233743840494585331687722833347211489265156426834894625410260789592523533347508920053412277520532846524061100690014660515892097485868722286026124399908830616697606970496639996456523467738707155300698716101109887610847847968433953294890793509855264183160218621426487743311759262739187137750322104564826891708313222100842443652497689767774965986842499017619617247163602578362207944277115841344161700286775167540171553680231539579271612113638607837391339376523265300266942849246438665167640209028809089309624761338128431006116035498415558631078944669532273488058396723142606547341589538947437510690495309837972590004358898335566129787997161851546777338856638426237964994632374379020583904175117052464912455584578172296634661086341890269776663474655516822388927658779408084403783370887634267338047804141130417923289623441917734569206095819760562365713471997053987308938649512479864951075160471147405013342382150482556464102524809941394757097042484739366374515628368749689662483834574651579785928219518037295793501333781138023829461166629502784189895500422050607835615947220353317264461136782515330005892229486652695272693611288824021694710442958825686620049224409074082516408626154929491438608245645808831803883100890953487875777262755817720476670100181882870243343806087005436924940173666282271286537149236946849757214968883666545671034531228421789824876423769098857546174648890688469850194735674847962331888854123963095249651563821173644739333684251101882934166177724083878778218884585424927859082053568738723946630134741331172102617836792492435263230261056486145369408362803134896154171114998883198639490171939372485254157282420175127859394127620672369901252106450083550904275354064786513220399440447013132936511099700901146791283759293722837977568362449911236318080640298650420654009112488327728797412685448154963559978303961926706417205184897722926869124776574179366377170633419995880877553197322318834736525461544003567576838271264332120976956595540841738062856958584339038353102110147086808220745735925092715910073187876974143948147753359140823981796691414260816701303103679445411905724170431459620742615608866873429026053442210021068114541835934327743435776013929791619972574500598032461692742671220491907305882442175388325408387672832604745241761570482429739556129490496873767183566886126069786371068445823063925071810402970307343387062011023404531518478775723568553231082012976025577832161493133303371278053821312654995634290078921813997604948863906460561332265810744503171261664544881234296664104783176712107923480811019999304485978396410988024816531597720983097959707852351642562017698406166766744412468496434291757595714704665174985850652214834078761556186386078286583574837802579730356344775600168852334995135777799196276657936775788764544923896741102277954647408129859714757915837756976451119046821627493976166154591841827689618028185074758387758815769350214450848326692404564305790402707392631101342722241239853120533038901723346424464236071558928451349654071903884848291581021790859022712424418770648184086370554975920247848993023377075949812870025315921103834277712294400517867863890939024859248622684506501663686960110716834088760388119995639039687525837148401708742889271877869382648861021736794857229979925968628738485899877892157227960993875677082989337042645000282274468938923473495763795758911474237548257997569047456729194929290965753170472908199855645482970497308210990388218724479955962603210289592319488879839938772572620473902204732705636834300008483214999822045756598127678752571770874600133911062958659137122650182129704248338039167633602331473257310341941804360346071185655166819517075056548918698572298134943169106528514925051894179553136161916121027566918743623895820441108755251237891960412671973391531088152322297078808800666700549972128602771938071648944795312097509852926506656733698449607329032759927968196466817829716043259950378839782903059950844585077842733552744385435014535847559288402361317392231713631711444658367856821555716427547514540924539039521159419416355390081213541376589400155222279264235782256291787585398337250487949570562284550473281609921090228882120867123999805999283697032062834829608015579417157498938656000114306720827205122639125758077266285143905673685266971204440112969379334976789073100663339301529731417094938352425186523340500770978751025654925465618599279773317996590575211327587373088965106875529011710839675497078784380432459022260009741341019431733964990195404686528561755436200386067253542395618667450697298109406264232646818410793927721397346474649444691602976632284884905381044506342003744145957752386380021674999107967853559300136823536277684298577946624489031961672328560413553959308193646668220539368694686080366160055771470617479486996758324456663286825781169353502397792983919203706018942939613077987328801513673634553784406375156188108992536091587542286461404861953578573170640890666481664163506322626677472414526567822749005857759325986027660137908634423549148668443029652362044541555783230497240936202054391675751588683070418853201384907159002841032465887775245547197619997650490912779818406937862613992037803857426531671237208882849919298799341405880707373220222757811404597273932230132373583095576982483957088960471639642379292073456346433105875861005115127796149538913061085102993538004723994966897538085142890683122438496321319867937569323020598851740643043546447095940008229576203499772748015702088643251254439741259938119111481882184099289895033362207585919420764525101988528467212484809218057445337201748883783380049931461707573412655901055978880956115336660685417602657424182307006382991613805051808177051985908158240453248546987289721383818482786721255000618579273499061202487196281635471923321075465137869504069361910613884947454129832673118655027995633785475993105477446701778258860527056228183594632623937776593293140672398842260623578605846220433007352944123730132855009540281079520183644212233255474791774200486130898692957696521425793144925827490374370368121085352998009223400928349206821440785090449227604964764089406556772657077204852085580249616043080234652894093978415233455356083672844497215429589672923571294129190422912786595643136342094398185003231494443767966463815965948983216256768042419328930423907485822926916802103019401347077722022597522155379490155837477228183401868960795710217448983157867724805335490140180491532911083898586259381909304780976092115411536251923414820437958346641577370418147513811966422605847293018526583235604263061225886218757653797072733028029963182160683737077813845186571768313143192703794555098741521776325948157810791604164768454484296689867792008829442636315446102009742854327593146103955399245828460118978785393561168237850108949676655745254599084251670705790979528146570127666407471935046095596065876207099737655221124143470465052761354730600626722019761329449771463593215267065470798848862212528287277919963339416143700682231170612953738212316372551249920830739587630116521215135088526068136270012813632987630670291703528387731426335510680027174109669124323095944815652003917082267540882083699549120735001677799760626432067353280056442071413790502017365481520162640721955613829285347378112653804589101205143762840074567078989329519090781767392758779867680743150941928249516733231321920870070916300384891351035720266322284863316476234216967317100954366386739882111334411907964652848932507831615021574931173717385063319154130551904058645303413506478204900445636288275949454202116456574989828457841520613197302165934553094091431813646542711006161564077356545348806355512199443149126786694161420828650811864998217520698087998978071536040793919941864332174745408671926969538344802695144822514871351568658335511018199851360759135509734437835761570316571870660034602415986878254773465839758486366829397491534376346441607960310362387969469367692492438501137477035486895960933324509051449732881172885953525430967523271650338433602974911724801316539544446598069727666894671022019363026479512915108306241884624039223952138635265976058178673137376478777187063799982388430931826198397864002783941647378826789741578123702916120930347018514030572751246253890362279714508016774830642631509233291505358583203879836455806005240558003366027538446930209692774693791458304515171238207455175302870947807129828361591292415643557893120316837251868253611122181916398478706550677849320979824751790543082369203397937399844577460095437989938931592475505155228533148676684589198941044379946613546357461474964275891212498628394245968407811816302285053947835309741081530298543082813920146820341094263797669884730033235568846149286909154969428247312200967078864832133359503068933753277352194578031878306825523971634696663082560452580657677437325812444944552745033121283598884082839017502166942836965008698347041427765019478833017456731520839075858418810627803174443576795781739882569963127396230693053646889987476883251846489335318991185389655726289643484017464044974488043322089032226867592125626870860798999330134272252793621468664872675984964568978357885364871744314421217875013160952175473991467447274125177739083374405497385520190933566263065120671445629803441466153197646777985662018225023154781806555038047888435649651267965685079878183657795927209930971769538571515163470437321502991768569768937172453554421726716771868226181095913518878887684706748914315199821989660422022630952314982290480034810317343298316066034335611872726048282349270337127776368567157782315122367770032912594827582121891390352588483630730491694631257314352267814458404815675916397074200619144902826381422790591399460155784257220355741808083880701906999206533339141864041444341299014949006968300747387976394651733024044482220619707774917379527760673015209197601000762311773909288735707403285306096805723032415077455850431496028421636098075345826748204650071705745688545618735223968612895728811298902963056797431963398482413122250777183495197999736364575973352696912673023920141131151889204635754362130730838438458367831793636081897110106802853270249352807554035200893234270496200661208447058132532793428876657010526316781719662023501513467632418845603353842796726077928707641530104435458424069533633408410124151106747950489801182569708770825735353828797174778895993248479057598224130350496108140176338492023097724520311227932237077500957575377846961909837574474326314455721757275782268577142145170066093494445212341405808339548689285058828932603622704944866409564967833146538415742700525995412426597861588035550513192505768677516872468599907398663464141555518741741484434932519238087440824918969196256527507365998029521869367642595550224550173237375672270115508339410666363855742428126380775659207372209718367058231753321790172064983012778172503492837200490722473728880476244805897006879345694591278719194533544929075237785147771635859420024631337584181354428843182810535760823984737614887160422707322447119943634165598776813926409103579076031346536203632071353311644437202153144906322889823115402471531359222495138072558982024738128035308214408350321848510587546749414067663363909905352481942133190469217333475022818623824216086127117647048511780875643067893341158800699563754394176179748171100506042835886983097795177358312147000443540795476491794024175242739894149491595062981068234428677132488480299163869313842897591632220472339001790853579997765034417988094865182843032416242624255441854998835804546684051475154407267821246379002930081732058412963997169689784387307420725164651897000920707343851181899796194540024951989395920476822234218271473299489498936417411237813918201849224295344474741229726352379624202676382049366140897033430158972264332452714010076233827478963043688243014556139809556349427659698202395358060146555568158576658047061309130546535444463931567800682195775284246856395350005987008538181266667442425969956882331913813843262199487656355826650282337358744111763284214542749251037456497778240541893308829119101764248006220817953805325659558860083822439214622775271705616486186214301918417439917452006531912604634927822651374210378027477918424776516752126833116137901601201834535700304597165113280581825148059253171008481965267638622036097416502133953075056723298679575064206258837531383658508683974443370476033762132008310944427697470434268403675764347132981648586253885122348822818694704183531557681586335872310531417111261713206483837108500493473481539843512261839013575291962656800572268165518372611299005736759000282207714469611367410371806433474186772131013081910938219263348938073660021633971325826588231197594883228401223073125001665188221944701930987232024461376836681562332983621267880388005287235284658172777242762368405160665335870603135986939905729469461714301412290832555927735219633256751958951469540405853694926445200915944547997092875782883145859100762866311796200375383255841128583531026237549409239818305472059471936318853151441273588793607253117103467522873394204104183092437746863792838069725293594728176123833110577645088498194279349762288755422716192046947388833948349335235637986963225368833664437545539577048312984827493284284965746862776007391016484498835769090766945457765955905105906300847722202286916808200368713568051717502929933779569273026658098504185689920358230173978159603538308401397581726252478012902901315228114983748196911507042836061119402248673926020054034847337161657951163627138301557436444910668733416852373370421748512928864199705747795531369544066610306846160391135776537961342535533487333884212244367085823892272312214200045560007369741301832549448185949240179967688397361098812050955097643287236151057568948677648220145778604998321863088377846903063948152858040600539404565274436458710946161680363551478235230610524232129335345233559099004124561311687690488770915684688769611743196583310839166436691191783105487696755133066406248600310001389475792659492517326395664162380417409599838410215004234960482511484968105884947127079954435859443327801036065577473983182854054166828930332459302441243525997317736331936359114109453986979174263845741058770003961719970787802110909592249116545573869181070548088593481233478802919019123851302772591687024933668891360863987631690032747946799718246235694854320007891866561250895346760420402860570009602108740899127326744681954285909446109325095089064469308589226197240162360279764600454498886784337339772576128431594746333651987474523900082160046384719350660902696308996421907088513222096809681833709027691016133910254125747477313729041052027075949934731640268673751333745521995505501374571527413020027105147580260484331959446413430189335080005753551470786684541293254586723296802087861651846931691882920162100205409911530192428740463980690781433749443293103748402261598823432676586379506365600053958172319214223925771969910611901814807421271828153375454776592389230413317664792204947750178744738569661392630426994839907826966682371449053100047167048626863583690429383011313487669092036096492967302628739205852454319540455136385064564517742965294065827745016568399508391759601478883964584362254496371966949179160578008843178213482234855451243041843413426943014386164815240170423617059310565298258377322195974665147256294673119601724369322751641175748055792519803374994170016403737762219195622207153054535042322453268831139942317701076599895731910619741334847167281264847660392804705111061101359515922690105565274818915915641844241942831660267040741656059237096686848971548794703137410432667035565171849358355786659433253947271919502312748773827209644859365321842382761549870997780451762357911418668928011371184297552928778666084110724095746535648842542565297562467212140819229517224685415105522794750678519508557014445159999594482390630027978442128236831296188837142293526672535075542996266499026205449518235878857286732580058360724663707616627035526613344469939485265601031662507195983044807828663783004562140296186317692347803811421226411894627920365707902463717888967240093056405345175373885020366354411987874363247780571989262471323698724106763754934457066852943290726123454134362017705363653800762000388793056024020360773605254578377440439885525999874243205650185434878936504363242257112808935162720249815932059621631128522298962990460481798927857718806042450330520547819209228218939090798969963966262625596420827039378309811382638956046576510331101418903985340119377497841619592385064030600281039566055408182243059292157592895716239375844960352167325916217304381591102267539733884480155729493625207319632363043815604556085062683296125168453750999345831939833678965750497865047761114108313172658845543580671507921748427946153918576743914656871820595750128517218114828207160067494590924245971356194373592882831334808904987555929386525497930206134479669687633203628383835221196550935284840608555977260307191569753635687171663624919696494513171261941242430543748725812737064537451880846789532633857963727048087385835045237330186383505183508557209029206807767298072450759516440105007703437877813993357137758437329963152557302903703133797420852855242193476918462644545843061018557971537251806547150108731295040211063658792996796268932932035735182287178272998050485234581137438620764719199602890484586746790407727610697952439309530403823061746269939618861054718828188953047476795543463399472585599209272403023665849961347890580200774668969869978799212231094977828989088375670330006043829806230402125234430816167648725551205002670053287657850592449027213795781681643619985788775559041425117221143184309354777380102896115465288490300362993809554553390160884513076598754328609068101706009110124521384812498606366066078021592701569636403034676361200582132151549142981666194227790714898788776751811200518513372705035160829553014862017047029285225773877228841729711932555080192021059897653182987690900217519910443599377018714330807339252415576048039542616199960585080997834685265963020238315880127692709098724348736989833709990956697827335261322207005583179092251488917225565181492057322061984903370915476271288761575989443310360621471244749201939029262734263025485917867272648591223985016660886370377393306930086453210779500565391774919443046366296488855138998647720511372906935224200484397323018648089409733248149526371287940815475297214881719549046388132948067660507935314292607120402095410032939755870150357579336839887903800057657242000095216482324786967090329368082836725138877359787324495984873998412585770606063198260924114295415607361653536086019614296972183565460509495369610919646493568444233751766099669015608282904744791135522624021295017040950144634544410435666000209310796755414531719380336605225356584382381811729712857035112420563153704161165467233725279131447084239724912163811069407869321365854834838643742028239235451934561280830070157105011334821629319529209648784736948637563779207061220453716494123418270094741405340081725933040610413468527853410055534748424545483183372267754234300081933370658256528768132825345123155284102623666275163120232153456811997343021724987223019954704038463656154197397704912959150790525499388150565562303127576823436236857066961735070334531040320635970953969846259147541599329047191761053980756421773550906547753529832116340359206664551209866480302569559876590369057669082668741717941832900057757962352280157303530402819337597379969013283912009153527719381067498705284998135701506651962935252149679328453394980530612668226082708132526692701402355565404266243102411226213826138953574884597362016766482283494042008278222588657653531228768251518693191284816837925143258106082528403137845904030976206632070008732392022961769628294104839180080641263445960067547282117710410030913046346205746769257154359255079914272701019814065110980005894915470982930270551502338438147786932693434191830784407476131236663562579308298684649290051410483714711426736150762498783465012295705008981575503190870692363618182666525885011701502511805379523769340572437920975502315168589866085965207500581645437226504806589138384294021315258584091126640104237059694905296557713573525334243380928390293106706157073935445161011592307466486096846410267527738629875516844249242705349330115728782201330909611183627991378733314136103031810336860969461897650137154567292316623282971848623545556946499654426531474105873957529426492553394033985793448532962657165145474175903442624999990653792603364209456638062470928851495493586233112850461703178084164423372120605484981947889801042555115712677794750910503694100261103223944934756474910910259840119020282341289037417082564975912567535387230218950755773519435828449250088476095370683126648823994006036011838101885670728774734166722760274073718308783968573845111834460523662056088731928036541682558203151254426757408895086866965351412654671453212042685346162428617599059946481580678523830669146626390505655612938924556359884849008703288437144264379852258047624342607766602306840227143181005742837582013899065278878726475395804564347666961249695426202011599408572130116366732859815767273284488968892093226505035509166689186406173349493589207709227066420117670450947216330374702621603394973102216038783298849262538351095936856848304815076707582456266211139782659568665944875575408668035718703608500116515815866798278843730425798387620559057038074744082740919864898266686765354493950301339282294876294109252694551204596486262472008814250877924320752628542206430332782945161651446489191702721507012318330011195902101088584201257635829082565678949466300158874871598610076931288651902275410920584539632839385766209375631120232172146392033233952859030748587120385098289878551185200867033694027681950845149494711167278050557603839268590366026914238499894456693328889854132207723503564022465738692710260990531353933398630398826975580842087122717085540171910107981096155027547956470352183886663897947060811108216832227266255088715885332911357951121944343211799252031673594788688265539200030167527848992652487907179424919864945797931728374377582930257074185838674166824348244860083769833311786940646704189545101137141124406825258242969304734768074530486152177455229080977970049634585150627515373659137556786342124092992573752157062640211064332578032958784301352556115029139427148951218584662018693325217073216642728808163116087306889785706222096843895014902671736594865064275688143516268018075146337863351987077565265714379112685286901142254230832415906784556830127537223218092482698283106560855330535123016525305645535131339627619003699933615639734490285053996302406234603290975438675695811594455172427727163151283857987575802669075350200853777859621909186226692400558661007921604446911262716247860332756618680476890390701267014905320976146665045921272615910346168912579038293853300236053719782863960350960248467613926147704396013528164164049095992484480240507032176278475453612289861285592198026548128859242694821874229757641839032966958840166903878362224117596226129733436721949699535607310457037301638636582801256222844362072181420368075024802473517327837680841240201409329926074042449309826855138104303193183294082782393056989110262169922658561062159086149626830623441742526097167260755270901388816920081481741431586435210236104795328314743502273820855936224521555377057000182463952758348949699391251890567431987913356298614943677025193970187287651344725508664199707537920932984815928333453387178899259819431513157314622809741061010485563909233324492951446958676393621084368096757772416886383880507480711529579458200295650336606389979450928339454872699591332832355257665210645458567187039904634473832379109274313754447675688276488936925804975077388811932210865347214772918706870577567634801097672091385488086338610740409394561892651206463566811149148609393142908882109395066985909764455695904910979330783045591104243713388249172111302012651142203631792259882052976063763780959248411189912292034019611488386360915265276733173211665951546614089592203118843927131533876807166193060135944322640468637094929966440127236079378826262657190548551783322162013252747052231694328804663018430578162600964839886226771083978924295624633817043923377760198527207764846226253323337343078302885196860583432530325827463680905393280330695177905066582057217628775374671043551865467174340148828828020525776585175252564123198097917797465183975299242058388225771423154047439163672622379525907033234536649429287442132225782179152950129722682062721846841389464180917814944983906734758829638915063467343417896107550269706657375281739820955967179347443748868071029707816040726728679485095312305504690957414680863357238784504674228087300293682473109657138946744243757183865281481171196261293525042189436539740220322748556470034749379161056763122336335095733673805149108227191402801910949557389422083145766815489885636767654103642822440719951854338500966778296827295809231192781364598400291077596559120433539095205777503509453859067051195893729843290677971375953494186024143598351498801290133066921482306015353377015532604288931332825762630170143610122523858042997002894089412609472770366794792438599886312617151522743113228796202792160821972588029270309951912378731547142107179082840593674872623845052052125829818504696762427782896351810132568898777064087949384328498261575656767601950234422382802844080669252038477428164688291352446616354577053786115880762331570026164594921879670928946701399776368668852514939718731546196056068610273989284264742677243354907208864811354782085533755317464550922198144859955836831420950118610475019385242108511052109894602556475383319484650969395703730993072793974343794298203544204111338879873213247794802916735657051093448208728108593474731117429091638552316437637240993753804993858453481741394100264736854547165064087377689367647764476379369339280138549209035775481616266403509285794719442775846898637580193679267708833312461560877555410061859640462686634997485267844170689056401532282408687873089345429069717769208743376456642327212081631924113818861326159890294262215859652063028856171418753957457484314837202970999871469847565489938050032615358213069859586496238782779240174668704884434413138260226344623918449671816148791971303326106843617258541763387513299898845755082379200205347311734933178845429573446425183054378842807159389355121150679161108640758002652419728880287802456086924652885285506819850691270754013334554480853372675752212785923463125971204428835348423485328077594892923844204181528710294420519661822217119177392730737152755611186890744780699284070928687532256825201152213171374632613165824310858274443974140303367716439994687413182594209032272263538288625487996137194120299955537631129109345615538104414757668050631872235496443793271969134838036251669432615499106831818029661346891067019718571985783431015248872195655100071876513842517126929648349573872946541559110857428870636838992625351769119865638669982979453462691529157261962208596194155491096385439404565050016520668020747216648074080221789928420884244980976283880779932928376830768015015203039442614332728774267317780318415641316196051636347088122870168860262468577387347561223893843858375568401051173202835029693333153227869563134861841151291884963578950149798550956314667362689430042520693833769173796135054133203736042658971324311042335872892334600219374283808984890138735465068851108393856571266417221545546626095694091896208361284601967798322208732496349540590381063105853884924491171152225254468931532855718462212523849152816387140413907994368618948025998659206274367701428916067807754905625907143213865660484100731759853032480959674479488856096965914302006148498632187241157177688153614710092265992726075411215739600416758168183633855635779386652390723646920922085754666216121653874476780333411030698198662047089262738796152932211919458487286191997830264628178164716304559179136073822246237278281269207624309423826870607509612480764049428354331943252284412244436683810390454592113000526757962257992363949704508861527312137444823693961835343373367635086429093879908600455722371463884105884331924841061723395715698522449032805700522585454925464030798946658522485962774073673956442956886682016305155624950564528333846078251237221261719037993717965619151989527339708567568738304025451539831479011186636028286011975676841090175469867181496033698766942087765402055307966563057135069299563081450750959748532354967094265415072247007462004616097545205263520596586681002652800346980649073480004087267886562792600020297582547694298097114553290518916942897215634764051291044429396927615024323349188642700037906575636803329253419904796370898572937423449283247858246899157360099148567229097473200044314865011564962375660585390914975252650478238020973347051390032176444480367253332681205784595635954512946095911428898788421596663673570629465633396341351989976594898301150873860374471275124631745401654123509638563161259352751966283940987547985867819874953675750894251521280838946979856291794469814623055360213696140339468425692320858567290197878243452904666879886228987828436287775632708742523536582943639897718854123632539407859058823283465275359266134151335571652619918494364315225878529382987209772033347701678623555256436526655889784358668130226511684597418511207017140634693905053888005747083625965966583369286906183930977003756254472459002032736690817511525291951388124115104186267240757625508688713058384935955598761082686152830445700434629159925179870524624731213222816141475672491886530843499724747469373354628797461201801575666652923784381160200248505380263330380439091572670184481251747669158708624095577906634492626460178217708867950721778204987519697557963333670100910463190517571306984293834434063554263014506905438530729241587293408877983028902425292030987848039912382349690662285112454392977727887042262073449779227494688463398083743079911133482171069290897686458304287221997083516593365379375517266981405019404961005728940242317853642041096337724229636887211446640786699348070488885086081887884153003710410932009177901080924295471760175864583866456591063894655989064377475578059696578100044370531599021895945144104892005395767155793239820255440237116851483025389541651820644304267900978430884104823498767053765451869048459487641229105213263417174035440773014109105784076952147149634085333835068085428343638590991522953416962005912126831248979863472195548273737653689889378927733776796404193591809473782951397347166042249889011868607605428311298347624315827122871255618891256050168366091019568003022185745599239309421900439861325072580365486771799973536389655301468271933949976361413292594728734226072941035660247457358136174558982085801161688368881183646545779410144264699195696348288064477823656325800070486896576179859533326429335881613153504333562872182773093153694638134546867694189147298885325871522877983073140920058508505538212660794421723977674191588583061427322242609909044178189341642399485265935262637143283940521326332649778235848467938897601783451752853422488739306707208737963948740066001322413870377929403108214645279232578363153117187638660320018476102982251064785010536763200006250344067377956675427572153373742793470483381623943654198419905163461415311390777932877311807488127809497703217991505641975741636447915060620282481735402229677664197579416840619321138023497260031803928664497897443271432940504815340809579309660288526368011661065803977522762595604887590851821489354633096517122289842092278556406917124423457847800481127003200332993989119978440169662622304084682925305507605919297296873286371112596640911542318793059977777687274094553649424290465082997816273737384073323310389177496425364751308170867259997955167913789170679272100777050073049934291877198510496455442590064343210647170081766001269124281933019343854964180443110230064332118600449289690749546741091721099146935930702791199050088809107897216958115612984941907042205995131205250058952585371047147580531596908213825397053486199341018851237445600877000337314121473454282953245316147903210984607627964557006107576144369418650400283623580691497840046594462187936605050704096482758407953024675969735923541568102593331766312289306983738103054136861214099913891163211673840292147069842130395535798202482771612467422072452970350961606336573649530684052987695951652625134946830402883610633213836634470496346265886083760113302822186863760923487907212716251543261573153181523741138729392258967399863497374622572239760367154374197349174645047917786121102036080358675567626798296756782850557446208215373995211320883497683687301310092473026571318778443011553589176740155287732082584163032571505997319317480576035287138583302190522789012770638178938001214259123312853862497657812985149764125431329443032289418334436532944135666914397046248753073560052673851730732036447988008240744936150063059637881547195904669303912195159808558467643112915019962948844555090334825332053082283024206158286671494290165829266318357290881697546214100623405798642970366844341272125496321252399591166993344775301817668441247854185646757570046269852525862389949959543028224150022906080885983573563044018270555074208100985597605682782961554950077695539976276608625677601567952847136817806177350176751215040416349085100541914480224756103922608788688385056031129818655179677665294374917747046524898277190179030939688105734397343582989724300506714637598234007428827814525579381930613726641629629189578436350568543776731736883374969909389703865800992736881459610974886820340251091620780811484136952175286486249170848809075989111055058877852139726687180839943647980836864263114576994628967780161937829877580544925204466231536412339624706034795883732172186443256046059879984117729995597834344430707707042488205945048288772043410112306597949702066769484189559697092676285219448837706496986467603568761234868136275316747169188842521250491471322770669043686418097049015499721194410138627847933531765465266784376095319296240818562613737455163769636311512200578624110468873405578995962942979536798601930046059188681916759626467611177886321156161344602136127770771502067320049277370642617093665871222043435726935557831064344709040553504666126918851727348640346709176806957755937527529381281432143980249757755245269352527108779687832770426619185504511847923699909561746174427767825008375938806391331694502007180061208185515876331623855451282217641327795487470208653044891795353539711793021444184210452468650535059275217885857114340408743990879070431543134425429529978232021246572343744759735587814293322346346148441894095773792161408016792606146530604687599175671436745274306869073389840740797031522985597123698640861766961458824518344465295686597564851597384445709975503218933965434579996695051803908625442233029996568053811265373544999065067130159108629918787212194475689104520991169208090817065296688105391141985717010254399007688953968929747845680813327194450071249891249936118677927021637823182078137494332135636035553989723537840213055785807867037495900698729454162501776091278194429252238695515588913123104641001492642947452301716455284190502328356407923088329779112508752229186236986747097513857801317895235863304360269976048862991854811981122174414073073263697262771857001460783415487982768874483304278353810618237836304355358588042360947511127377953137777488810972509110991449798733860245567184837607516175581693439331987579393266654919822688490998924726772503033871869338418873784125152569151201185329847172743175897377913783210743818910971015350475159285692197189343127025134626650666170456941684084626330706293480765363167311950834004888745676946720866765755115407707499170957792328089399802262221075952861698309690062217110849434335881969184956148278645071780299322711154535707653824926775561384484638581345394784679752565302297694414694909500536566975194429776110494768500410983019227196880437780918254322856053274155597851981695776558797593506921299494747301588359292709579256876452617382925686945310239112138173089865594652871980208574457785167078486666015473018253497951530212574134270522034773321341669405665504965523850558965345767488263653289728331453184242644051061542928864723345945961988640421728633639863469542327332450766839140579270788889288391450472927074445376283399646932594461383206011527175770319941455622237184996688653240308837457284079212228785121983857199185828934365254876610167987732295359609509813993223872262150097742930093725823994695955548533837738378211041453004756744908721457867119127194871674773923477872284099578211057000651503230635885221244416105132507990100859718439950728585950451653073115948839758195003487066310282412398312277474483051995791383813984177317167163352293206078867112484816204734084551472479023442232881405284562345829194803191153589245605175793036697120079074785175514543711950143989110919685335883447110419450346079109898357351419256732952582096169805479468966501923377387560036745936639290425234874099712396371293425639145864168988070216269973570719893910033081762701963125881759978302829393652136366260399984180116997429416058871530230083864279024544271468610722570056772967172628417846139027470514094282415067197920976369951084465700739427343076267398114758784239900081941817741566196177909794017450417475558632519466450381094782557198508164394394119884645979993967382889703792270172967860310610741322511579139158108840310525893809469106839223673041607131996222987955169340720057807516169892116876033004858375570244777559445904958247962734449014545357052614634700864790378953577323477706922069221192909142766915512755344679492320602185206717377498562604103627319458968422030005697106044713943695176488570415663168278742682798987290319556531666113302121497487090551370598450041420066248820538203289670007292921096953571362838325583683281119080875897155480415675906931001731973575498918072796415671142941914051780798702963939829993848689681907863942573652644861112834397295813350205356225544058264076567954901455612532774246860394778971779310158104152400487670094474444974142951874462441956169093667774874030155810835461514194573707933958152146944447505813441604082429053584086900443817863312630335051848730835933047002702075731156046928460037144921150674152647320978310727102339229729784518992259193294137032720874955165072767979612376487589504562097257947774708865382791967928042385654317904001660815149918289019996532230501419603928303322069356261076549879582775741924827856716834920535003947622450405823124400600487240353467109484214009589983671715335169038460759062476726286882657003794226432572977766349177344227444673899145010392468584474765275055873059117242026642001027991303604765715247913313568243814180669380158029155031273735465510569709084276282634373742307848403417528446964781847141725119604843632784188371479408492751307456013520383154516234607568616937962627894043896146838831861762886711790482382318173089293271217339159854126624999679970322512928359364671896757232959666707886043419367532523347371172624537644547278693741273844619286486584037836813181336766314662291688023853760415657708716180575806431283802594261253377443878020263314160563270899552806397113465161214196882473556230863640674847144315562776699111248311087880587088270290668078088828579994325415862772664493899808567387498842989197707544812079432413103384217991425062441272357392904679816019195572486805841628912396671445853100305209562173525220599077724604369226400987769042765290188961319847173186646111772392554865429923121928842853615931543121608874014173299965151314647436479526669512772308118081930010248444172955807796340030828322925767594674761316455495200743053609209708333594139490331080587278690415410388914865729346163930477026500288250227947363323176183602143077600632787944144786778308281798110764536159987603650643053299912893326613555500871146757885171242428189030950580663572772935229800450576355252022042599155805910473389756960172466314188053565861814682910603252384694954248249722198861208560630348166512964852930925643643710408156726032238136683302174020634568723709217458002884131140335919191606591995909048092232714383850525122775535734830857388616262587827921478354627932065163057205192967404891027304431472663566681154691315079658902294996386775964685500839396851408128293888041171345381444152656979419963730198592755533747652068192684704790043316534180074845808598025569148150215509687572804563306236202852109432396107723530994544914196182847676463142968350572764875689383098978505029358557186241167739888223730070374938065913449442670185581137209141638809463257214429524081966173101887451026805729023317069023401522640868700852273998953278752572512053907738332187441989522086800832670350798629501100533779416623310485901155699563295362865479373483414072283361142642791840306459504440007789283004179897359723474630587477017639408962494405176897948163537294548660753022699570774247850610784036729681203539480603437444421207778613226184171948735402076489770419669490442252398989203050301179472356648534912143894683199310958560341471462774713675190814338041573290917490783563878132072929940420454831326062183895978793787305723418899067184009034817917247583236334412076565238395669721950669554973512289908409524732103416028645435366863999542126541698803459442804011716205609847937735388519951265156104934099374501836106878174153929178882027230511765194272143004764252940618420835699937712851495082430008332806023118790709144278383365447660824104739665015120662599781549579195601467000118865160870401459395669330446887486702455385681525433509517542202807017713886203098675690995255951226757022712031367681888505481373113629553379654187867586739386128245873387852174066511531328887120848727797131025035805578775938042521627102343103984024531270260765293110897928303600081479170855457539722066529209261365089539378038947227049496847967634942689306941956369288147931111530323603108955835077123507894542283712323527887834055938205482450395869515810086164353340253044581446864917256838364269662604222714102749302249761795872211343202063087379616750652644211588664395537051963889144973110269594992729388806996546658267423990970859618059444420495367947100467423530841992952062068905417432810452269510412419429294645130196754189403765724447098503734283190250877093148213630114085004467664672019580807225465446087658378169686028785219155883708464618608831378133821940107514449242709844161351784923496303579952194152428895139053970141865470944467852548007561893112861506071780848785150080384122573760521541043149972590732291690924930228198534147213125684189639295535984182950597203994913821359793170215783801881212608779276436638222481243797566227759908762343920924037962275371753965418838046850841071434123282146704941771761810439002950258915144434914287363840594667900065667542124362606305904938430368820801558377323658289208541680834170295438746247890457291423811989796906931389409172594587157511443840716966911593967870564014271604397214545099756662506004717104073672582003172064142442700914754011572814980542383939910403670022259248499013789795428672971387153724581719611171363158611435984506140489263300645647095408341952524421146349787060519639647646471772785886951058525952850381229641481231143642372488286662427086342837131764861826229826290240693003398833281557794968053115624831272273488612730242318141235889923659047843272034439046966372192121383668660395540444429260425495687189708083965046851027195846757714179697653487387399484858956571641058239461384863974949816454143455166851231249548714100728960311963625327229268831975963403611972429080627329409481052512954922094142658479716945225867645490627729960094345614104379275480443687145570147194739843096063062566675264151434936483471865050145339013791878520405001812401952737146689689848996741695788745273102503741555611641755311119360014118917292666116183424759112051034092022685866947052478760303792722241905761173444416150632279077598601836054694835999040512283096951235285999369053717277134689465930552146194190725224831261292133457185427154796510876623650784996004770356401832620982876360169052212623885521669344150246848605220612939596421271553133786830544100014154299832028797282796926695976585698224321952385910723671178581225032891671668592659899158758504787052653286940550860074253679153928320138517555791104241782429068513966783543859831845290017440932203658423823314467973246832747896125244266785549482774605754624285743143484469072297429721090500282316768528100883765950106231769626957456217371885405422321916691428247802457912119111176785332172463650498542406798687658880638810516078771365317056113903584825207663251046531048040853624737039307803068646968219074431749664543945998755044116190595451927703516203818443427501729261747244186300161742915840702720505542248555756938163151812543662769188116183019774956650194148260601468721184143495145976882295415977788165316341527149960315979955977612929958255809747196175958467462956264590306279372658029451830105963277440832479817362119198293858751679664428478893614673433285525471034990936093344925212957853916483663051193257059367592816469795139640546925299223018687912185660895837592205630331592307739900785403829445072026380901738525244927244949595413256214952763623826236825606827677154884580621002115586769740449903847798532137209091684163749026684733763320365714330093247637282525895838143350997020464991578764863286689509876045344595348670774708006388720994406661248459581183168487865092789053424593827643188015701050198219273396460487843729608146126626907560851796502584968227066889333759357347433152015603710335795157982687000225678967212261969237173869605454027199383525908436484716601555430362499355057295928818235440479301238803694560012249464378307003393654467593273595604455322177673892242424803629211028557936095174191213210588311431382948216764362952324204586956530948271547087645695542765414564061669566974257719873499126567004057058566860990919661211748092344703295670646385414908145546657874227357623385664628126376102463388519855947162171200769016678189061028255045378308352349536619656649651443519716432674596276510152586880017816449838235716772079031429448467492292331326691495584640573339568166314141546454358949474471345066927203917832444669424927456577029189696459758816296286726974583691677662501184266843275371493750112860867083414606292571579409179980300237573863799786078705100588931346631134368553055407892425419408502818177990506050450356085935575322214888972288473746287977732841232151798094368711228970340635053617626902083070653453873461688649827715635267979181182302902968276768043566318294297211694764461750793172083736192880032513571878629875947688188165134029729036980824644151356316991531412515900958229632101399776732331146612779421118607626713669239653391189333610905867346787031492582344604770277492336398786391724147825649622073999307632046214874394057970861044188580816056270462844993637323187864882118174094726804403818743528312838937056536547562982403107801589206209310100501497894303981704523381554927416777536270752842585792734053309266398260150388109914722190863624010706891582365805136766065506007027370129704125413168361638375116919160133177521739282450608134078776189659903287957987859852259573493820592261434140218904128248191180770564951990798593695110636467081547410743249636101715836376206450524950726500391887743141286223707020802874570485219567931479469714340000051131416934832652397201375770093327498260386370189448925796257278954800602386466348417563506336447590755727584734565465092207722063151132444733687570923538552115436062053662494566971949137157053122682831338857457330326062093536903612245893239692943009486350231193641837211387977224415194866591642268676450669958662806097207793966789480167778291525458480329861562603105284260002792569752762972775856575366305824823175831141394127670637845448930853141486785894743331632697072447100541044219500074610635287890180734851231262047962825722802367680245251449412397929205781195737713624014790712541186093879049857427291667205644966884225638105371387141398081509924535137790879602817226132993712498369682688318693697318449520416716396161710056682789942882018918043235862828212882707463105855802333303747429441645643316178154556550819486105003618615487729322318309818271898456586411468624991950945346742807058914583227882052407693598036230232220614707504813528283355115037858092745845484740371239834398538587335702954552734912403414014244760488454636779607325459544112353783735801301564871770796992653586591313134680348483527780670199085041918524255265561470931668743856190894442851357704630856875794183278597594693679578723109957386588345424525625187029557462586471906604023909170687032350658424438887711935117312843620877489036899801632509791921098542210251814031278023140830380978403571575037673358440019348486846210006764428921641460785639563521530697754685497698920860147918995952079159273318700635320953953035654027768349038006818496546502741664666481990999352741923518493428242209504260937818387897033350718054326819592906576354646706867139109029051309507446384464513162884338650337903490886458161923362891766462726775461943515466725859690418848325477758265402701719332210380036899731634015626174433076506158631100914865090608023442523768765666066183414036863710228578912640993304443871792778346657082053654404185944494668203121846013841777413591126048418720338294092977251966330922570310854463766082011825515041137972489098044805186432878536970945710497005692335478544376568227763372664130832723383398425466615619344009155724424983025872984113235401101151259945757916357184616296802832643402687531124677926494990337472835676560446044771814999659973421468569340543850132651966734542731938571170593336025446423752550830382729760277661512410259231426629406126975047071555335122089312016860719044761765613532836273405252194822362653570937991080485336862259975657201112743545776897652361416842673113974656383361057825715405129696773338435138241699857078902485467824545813562566249477146232723794517691846463920562581448092871353273482925121694521975763439322975154640683506980916957435057394605536325740315230131906156558210384629339959424566448563246403866621673923853346164077048879393898963863526122710490964406185380268342340885415288227137454371458533199277180963060010455759466317036880686590159310953636513663342489585154302548728987564203346027362209303848780499579271554907973506170722388550784700523044558831301086104292728086315239038013431171158256061944929372245775784175677121523618005716242239261312607423053061613072601932820897267824083839185058653670756574172862980815398236010687985118994332705714564377168101573942093294361013846796453117194132179767557231395546509675510128681876191266748545187386839327058906561238642920309203645274715468863419234797157173815748968524376079213177910070960449756317656651753143642416207371662186122154369308027468478211268800511269418457450704809754609313195226077490962962645100062812501640641792099768494461095611528684978068089674316137773620974335145369183822466710732668580365959214789405542955557989240679768277812984278070642181723631654370167610712587616282977619609603608786409667007575569911644514280493529840648920261813771930350226711850477685840767303894717011067126964655298487461649150265966913981215823003147595811840920041405818855653712484678569355322812255893504387336010443855228609257090027496718184724407256382216076750925168769855616568239255327823415670031005526139493574865966157974846769073534868114015260456148978065039522462169146705885939088873886775082212432592465935385982512276540787331498512905189885988630213235487044218386746340412124528285964781647750041438962614682616994135754980246992903607395080491178292252541976615454112214955409431184017864737746302222399485910314648843386999470861649919878104604090490642947211729599296927759310438597274412186940487288621255126276294397102939389770618396918162885160402027025983430419912793881450712826289470054498813371997559749617046148962363168762664154407667409134731503854071967117493367945387220998022549451701814221075419797168220132751362724972828608630791418126011767767567896960883552307305722489743949195127127639201849238891435679000957161388959310343326919543348580985265970561684172841247152430509273527232823787069913761274830413928916383191547062385080116016237396162228222558629418438050458300064827906127746769792346248094317338682370334896655636627141028775274415264385162559734034472071813992813548737578633997247924182056613417933194373641246509643489180051690285945593263773993076404209101569769719477758552520355095103607665393992738209744241225423726830832959807237183389104767133966381711108507809741596451233059643437737291820009526361017009278077585593371580314989398638945974049609733774402047238594664223763981754049951938184259589640106340101012433663888363878972661204487914677575459454576754474125462146256112692353494153191755212873625928441426416786799258170590178574277229679001686344872637487664231012704993659623593828037020114193545433642847936272862107981596924273845601967226341409343837693178649987868711677205254579513542002998537163890426391103754674209309502129957795925905833180607195989519859903015297880501161742424785508534728495483609136318343843566126705200563790372924765163740870489287029735374314924500029424847771142760695776022648037942673892105225198679398514192856975742000368326393819912285700677317312877402121980631741544661857891294348629055122562600193047435467147192335961123979807946068475409474531177487368390451085668492595663005072930595999944429993623120750461149304562364745081633315097580563420976311774823771418984517640960193596319563592667416286505858058390007911231141658696000733516306936540375941952032769521339835513466845889619613097103905672574683609010228095435925887329121224398745469756805347734170627432186949665868955360820337670766005220734225696159975350266953509870048022982929432232455926380797999937788907569256848240090828829879160567587149272888141615163531219190362385224909297054257727128221666739657355463700516375200164629782660928269506574042260976034672182535553820558881128094655810146185042169517073432271731605026720621515220383761551061097354655570657182929320687042116643471764906380702720727162036949003060359278772243903349126303020859641072602032060076251079267033076891459128272337429427727146212857057419565426636011746761143806100066367152544523763013270910501471362070242788292633305143461336248234046809874108329181932030870230036118521054944334974578448209122744976632177554605566743530607631239546730989366422111809604938592129537989785173827685760161581737521387106073819959304808317391794761281038133041841159009204049933151083957248221190818187454046296538500308944583518179515756322924614265048889571226700482027902207678212953340547987219445122429186061115135727987182241198810453679610238070036858921672124265867759451485769985608103165118569478847998200532321187174301674110258903151964420874876595296923586138882255099383271315947669341229488486389402734995136159020870542315260210742635903729452443389644778824646243049811386866786252192733152787349322560419195552330143581730884311424325624096725869621559718470447416098070958302276073268755494359336717828187716294504494898232005749236771414491873639292245739417768282478844799366063668799545928870771936523911637805459452673221623620873541605652779999523075901484927963630488976390391739516710739980376922417568769889315154183722852489395868960509235409176095585875601003018862809013512027861159997634412147540331954332175312121998375251031998276034424943768351427648825541167896137884596796227874350136719546214803774366120712286228069017375590469041629281424245814305880409269912277003573538012185972650950194933842338376297387708112437900266428277133475320484810921289241663638721406452619762292721731659036033498561062363258842491310789834666809865958488683578702019682781505088019423874552611670600411075554512902684441451747884031503399877331848723636070811891625334025584527217113757629758270238113039718782735116142256472134847220194177536663134669241078507650840027274015030173098231791798143053790773452553243691531430702054537004934471199826541320169275024322541098774012973923905995750994439232684056245139961559845171596363515327363310835355010071991314295321801537385026210740661564210996355491720862242994951601596844368564935191935431914594878464580790721399620076702131393305209659748708814304254646709730365343394546065097500754844492152755293021159744266765060374740192757684993143860628290633156633263459280232348471626463263969086947963053977295016630065573149634402647217123156604896843027597790636990950348955984371831086201155907259654131527048340385990094148181549627640780383631493893079585197526280041153275334516811576551123629441324485764363039058963190067342219004737933993856590273961525988294379583493289749356253775250667288405664089440169771981657822935147742670811741133781567691502169228585986910143541374578743112801305835836482841557101206919268456569185817393193503135722147491704545148275926993207941705292084001384265006733575372097674425104842027872745143645749873557007501870915585489515999781969154363069020551139208192864973139783481509976227725539614197271821603650259494743152832051959974340950362576348091108791362161968267244401883740467268496548838237862344896072147060650425788453289722473185521259839761157215758141297959295754087763789271452389847229305429278768956650667415454954001282943424845027625436342625711191069917553255690722583241329714026330799605450308577430411568012412596612714956872125520591880490210261118695320412297260400661242994846501668058480664341415312830915565486024549876708571170380357954668311879143548240352180364258693420153723955874215850587960597223512097540762113491964109212857590078600717778679119438934562658263289116870900711695314068739010613163423253125052153025318092371760074607680616982176930264065635532534831104323308802688050276844443023582660787648672330755844879096259890839748282791141060392540535999583304223597464214908843021168865833158595044601081154568128157667000569293569671858960386729556436597151499881466821623410215467801753304215414870104712833649477618977008561107872999003454404614063423324588907689945484817282966644901075245349248904734621228341436964119331566967257779669250765961091643837476961615104849910496499462890181142392908837650267635087106452541306004019396801704186401245866566115309060474061876229441312194296383591744405290062389613764513002596514730570384793817098826799806723500508753470480911304951593257493300195947152297600102453228942091952705948732424547013840540422657368405271380781504392974797144901583794310678407294894925176876255487922809768291875748310799308084454190556635089847106253820307249009268484059018151845353061450037505903385757218294411429842052074263519853454777975586230536069508656525294975808078784288397414035548412766737635812346018484967994211658319976853571633063510327143301699168858129181218436862964477707665474640274638293982321203477533733013054353967399911769744997827935360569436551439370206430511779195297639502188470422499390805274171077678773067776573369798685718640377953395049319145159120672984091317452695049044127334684786198079691914979100303683919114177578837679710662759932365028624409288181307808992686489905214952259776351709411214762244232355320502174296089312645085972474657568763029133106156333705142618167178930722984028507306608849969955129361024561282062107476154728989201419061873990131284361903777172764632291361147609740812996405180381749834735046216929876151389137406446509978519751124157131845685093661657423242159392407149394845318990514646915713289260544958542126252478479370767197084316094579581948825604919027223068038570233388150776608154414422259266410763588152811399453592877777153275139126469291593764323636069996685748206005881920157313250498971727168701549327694216042403792519383700843917364781860429722227671000810500002197743546070412440256489276196324324699012693085223852811971378916828416269527883083063093092373984083773148518010369839900244651678363943680751176661529637465795771799431168749650773126383953675600590326156070118550739849963818126741526667303681959592825405405310133411375727545437529900703239029063239557305064474948576351632766738262487353850609805905172010721823193660920089599129054282866259013272222106600671042493681934726172848993034814642449765869550085209390502480318033795437181144050152108008067068960925064673320464683642763064393717719517959472794419300312877011717078237090766463656263444978260480681570390323584704717192974045193868831176564883963847010336820715610562903569384509157463051246570341367481730781006943633525789525302745516232139478563958084167844613631870593874799986327120770201347604684177651430849644195409162305975664988022273280824178968983210444561923691504651056688742474292601857381506047699933807729385248420277356159702007345429173735356635984923327360907890597742059841610713931478514205199749223248157267838195927536356820140908400783566507358973146976829832001999979545181384341583912115097258122279212951895352934168263232367832743404701053204051596461901110820005090324054008990473644308588698721874451403685648773260525180707598313498841365112399071762600632811787936487968529681590491445450519046639950640584675448352182128085714665453518369024210369789223219131134506399699308305003344393602979652816554377808786710183531557369037390556990086124347820881658038478692407199359563964640999775954663474310697203478909927691285974253329677044568054306745648700054365232625776269833764469799068852977873536086089507872629483192280284489265493083095969322242673999743575110505839885113395580729756064424321438127712942851188028506351577994175467578407647329350128253540024854448165186489529450920500208900621317630296030251515361385485349955674780452752460885907366593709543563982308428353169367209787803519417213427542442173815375959691623290731818640149125409650252136912518728024845426950073644822965857816854569956491411714521519766094719965329127556836415096975865871787953136845343332611134596102573967280983333230411523939991028893079114907780219537168751698869689124719411289960218672081207711538448226670200466135986304225060939016625789398921931790140703368170697948538373186314630568239552815985880189963439001721888850849763127814729223016670379292802265779529219131731497424216860273778178125388697219563807738372429596824429825745932926155233786909965927770274963354356366062253278932272556838981028710812660041818251940496470865730917051192431856144045277965180963737487826664793474314000766773686156165526219768443049141307496344820996043136764079851050067159765593351501366541483080145557764653819491538498725215539555069799702622766930966673996416854659382644783939545828729376848858783218473556179492950258676015470809831834420683763536132095894925485313694220643516230910084044045522947306794884895559159707061069356915607854958543449765064303976545064135401630921788341076157898842029134877434766803937683427959591469891866274711933490999057186734867864086824899569824961966413421231869311168884411234934419810018788304440538800560818933299045505688504051555135441073314544799230941048594945417808170785874046331677974131553145499082758198528373011767443837893475491238523904517520543663887937477353896916463250440970424000825792358665165399617494628933891683547697168433320854612645478850760926623918909673062500949266404340900582428565391936013930675106589294421575556037626843546735354767174053277288610188428987479278802634314279883474807245581938896335503799108842322004280337456493317732546574068587696933630190298573482789400562581401237092493337500835192300253680196453535971901156957654161053501189239661138763303073239469589590353776028524379087572686940091075920722004471138628059895837806064103462692924772766337493118196522820753112729368588140610515441431256007286030016526828313868425652776653812002980321175305419256753461568719168259300414286052678912308178048811923758851382573607492629109370720053037983540358567467386176902244897005246006557000556557851301350491023221340042913069044121338352892913715651509430865780278241574632378191724693666831002443052405031483839733891601167409491255440801530104398868086202775269643066460835478506743714368408494613000068934186405970103525666461476451906525163949327102614592462010193016791092554018943645133640774912361591483606883925421933622119050851765785744896142143853296994699481661332190142117414268443992022397370156326767855645341051101093151410058267060749660369101038078015545483945191362360490410900402298484517769873577844949583140979639913285885278600447113915939278151617491061837574690499060524513835425176578397999135140169504365836194013746858274984873726905607458185225249485785427820669170250208283080626123045907014681023219495698745697368937599398473971376375512158043063074671193084135429992152263731085125144195799715026852681264911768354596565808942828225096447439690770868364813632750941981474217138564101454854256742639885123542998287701758676628872230981828154393533815415165232856293487924921419275836589395196460151096829826838678534814595833948458465236727263571023907090939655443607431076191158878811482700905778163885257198293969090169471156497411211651250492653327192803772124115191648778344329492803274379788201047052675015591242855507177406441963455613244426806774845389693361139431235490744348955393644313832508445449719502567227490309520126258031394033681165052879105124244061373475788100864419267437893982874974594376888548038605775461022660244787448983137263675258448661557860600790360363978050213015565251228941286063507581512509310424558587544783965761206154259202599922801614675949634330589762989652447607087828592420897083400230222801905072713105765915666805079628671384567411220464444629488545517117668703979776179260053619373270085252046769273707781281168373048072631156538276780753748860553208044575955595062262494925716861855267869255116522174629558989559640976858937993562688145511552946904246092732329506900414585943542867234324816849477645993883626845884622696734854733483157752697996072551300444851545385758107375404196543847170848149708712914833818838923269627604491585368151060274968714486495468220845928982861464663180716414016882905009326922010717705877625466318283827702491317819987063047025394731618773119516006819212924819527514268051845428657764684149030895234524157594993659615814333569138735323300223578304429321841535784102555616021272646358429778219246139780525902332735499266692315439116480398208548990037501862236489099498853797811945854349607247685358356887079360263710709512017901666963781504320576862528994947357026899692398987955206441919854778414164706306805374742843257990810597447209901310030533158059077565394399887426940201551550329625455652069905549348354811774475544653840076154932967233768526491316482329835988736717388177332941796953870739371737306930090575036318544955673264845889320609797982372945556158381235237214249007905197602895442129211573342483439105295213293892936962708027015606486458674193531135044771647787854763998653797259885669405655433972171693642484243841340783204270235481851736388328232449666930691204860695308407579935450648735262492120187689414695939712873000466536451658811110503327115750350052645538059162083946606488062552142145305375757649543047213159252715758969908127750309712525802217680828392000051899961337375543683275556837591671400327792513087473826397272471992157573634400307951910389276437434640429631210809531131335266684538784331154680845390074886839099292762604686170725995214245065655389020731188664835864376419276837278038340673415328525670993452855327784925620117759556026278343044675599304247743773556090116464242598263199178678340224740329949850107591605201453255416435464962622146160537098284796292082132745694538459367151397372206886798964285105476011538464572875383684638165448140746461841027331726733968070174814541059415841080478783640813174188152157245550405377211834777742753961856689081465109047211220910718701452179993470625636367262916987458912328482890245196669636086113612808347120604706082824150697223641306584718307595260678375509163791368786563092052849277519994387995966808827622582840125113699579317264608655614175993335332864178264240411585747785641717971492747866020442799484170508957811141030283923071905554967906252239695751232082159786742036842058654738933319194051204417799825453703393836374317621521390080154742304873811178293287663032697107710116513627091110241499872384336742844600940034635521328198463316257672682799558316995139254114453459071328768525818241423575851932773114091089395562671436797960140280525023031035124155427977408627943675299823980003095190997969048414623795183781105663053837144886359385214946227660394955804466371101281428041664997435163808494382079773484601118670142105857641501723463107598377799655113900319357230064926304861965491272698617042911022468693617941439369420809992801752053135384130934330904233926053028121032097360671534997039366256440132767163644580384340917888392124775047616024024469917784312116977355303553260232925077969530656045095852489149017011644853120183070336808894156476547445983687006021773015927771827151658025176248695011602377413584815491554420922222761972694123851491301906627616668287445493017611083087756529662651772856870057794020793374853582555293547683233547265595386274432922317779673143862465831176485639309698073189994111808747647284457694329084752864963463319228939100984505906320185054421867255902158213310231590282700407716362403180647378087852963683354807256142640224345452946293130881212433614301733289810461774000029776094151535632614059175864259890707110384020800955273660554066063956247601520043738794386243113895854422040321034675842872407562769841645592309206923671389801845185471492910039533965337173012518696230536680484044595523196014210203469332924780574349662570008947877288833064912659858710447182051864723086150529511083971353745252816597560883240257322119958804131531634354034089542754601416249039288480699004676557194377455511770708768178125216192230013999625680889112692814078610196870683090249182505668926870193052797652571545877454636229911190755149278999473316983304397540831291280601236756247162129162300256955058420205431557323060720360457607943619931973053157930586289169970182463139939134008890403754899785543730769487348733809645510798596997504001127050091621159476846249535839818886764657508908108153879409963656502115884676948148379382095208607512765761108195591141968911098920865185521742027584750078329223145339407144934372933160619258391298383018999152160834307763115489501553383845841595769622186366763925821394044335047304604386698716631561289811935912714986708883899074660889121331682170288181814525384520512821955281359603946186450031642793395559804393681497949395934181103165846879754198106772759613487466191352117959788672883688023533042072064887135733332242951338781535407810832881578887819169592263441957515469323420078135376184670667740804348023223855945745711226730870254199926206363090818973711266317414192517305522311129831035323871775751506489436741591551552151765562490277584798878845964305837403719258896849872495231269001958974781305670660529407020616722052848389836703621193663704990489338029061549767453517414937034524815095477014473919266619022806233567898940292154118381592553286753394693555554045304591545740975082986135162096087140228259210242042336701851484103808784466582280295501881660664156416262427391898055262442515993258980836872532983984166416007024902755759844598665381154345808659115352145298045152721712430683925770382669956288490385922511609339816485264080589581162873451781761184154532533945546737951564434632430508404942278788531601096187704971790366548425050853156055796317670967622013488127846289540777491411695507855008953736355495863185206541099630440965536094173537854720541384802896696856379509757375746881826367286447090238101659785189333949041999131201330000110674154079280048176645116427549185154697768655937148990929357851468672714493531415107526714357085338953034894800031993610203649350191036036236386559399322787734904623640151659432897753704429950760999867118490642370041973651154705637597140735841391680372466511238168861392554000356571405275162831286546892195394808991978146738974530772571071497814905561405926667973614195995220413358411633066251723937712902618730086152542088058798179710977584282068512298194592938789552939590458346242060453723155240388672190780006445455940474435463270042574913697603724923667194633007522247430617448714567277834079109396682417097025998624872402921931564139733607308914541309930739654751585988881460601741818184762847325822663419453142716045348669833941052749447835067102470313557888244127217896143386737906416877279413283661363891398825748591305378757641311108003742471472378581606001107490981204990013571547841603508769933960605961799589976837362024366593849437687755582081853539656426665278300665804772898418015607639660919256736649760820426997606225717996947919358205737286037927964664946123586176660744407905523649179235343759858647638448202460820246603333975438600173290767703057576306283453807122490640664439153816609200358585839114924011051706295402334469654834713707450754662366432854812534632410482573699611722519386851486626066491994065605472822798084743438393482767637227088250490799861948303386060082920750418554866296467781015291293559409233246959700812794115342107976883154572459484688151143511349377600766855898409556422308874021841865105265342249485175069985409706696423852575932181570868911829336520748634349322338424929385943546533142265579849478781232062569452978238552731024306194085107876251849394282189321258315729270015441169899054572796181335119854086098398537867600722552581000230137628987331753803486444591918955792662083392677675871138608028338597241895200059196391525012787164548056868738332205964901239171602557248232827781658414888336567915283833303014840655711641429332001008328194214996141197798385920170639177956314113531978201260028653862768733693135541795924284431204067144143180962126279270481370361125472343027907898047233631766504599630479154334367966588095446090897044487890855480076916300139588381758545370278263980290875059413532684809262436928125567281479453619161654037420360449833751171684736604892343452639867896663987306340673348584212192343318667199012369814362097047247444633865928182653077214123947858855209969462055940745820685247105775594927527785582584502988395406011647717931115666174604010786150262976914040496782957549217284558234213631307558897826011958733416200097962442470969805763731707217309893042361007787060674208390132068555340873904862379529082493740525701784806221131518149713330452324859705343207548452152845517447452202734929851689901436731617745509802366130055920459170010144469251136676060644639469392464118101843965896892882337114239527069959284582728035662773657589677178571223858015009825860223191599442435432333915804928832805641339309116132292945636011783113603994070688604431788331176780587212877696504563132666409213455973604129177808945204462288123512844125869312115968234849415430947296396702860318962599220183252729319193489310014596199164340854208771855605483756762403897587961112421918589157810219269649203428793702416332560527471190986520356491763106104644499486781347967097584301984118564547209941135443431397321833542733442928481919534108985874946348355328707309233689845357871054555116238230401882269019938525897255966756834350366824269277342967611275849257227890451448253077434038034428657361919996839244773960079435377871338554562558818368833476851798417113822130179287913285715423557538044663675356264893940637283796898801280464205362458386164874828503025149068087970286265456032681559412837559109357319146758673785157783542602316383343324689429120596958298936301250241521627866072264867964295057050442553149920645170237172874980416143840173759803369984877560315503779761787889410858297041342049872737471303554614242805587524378471584301780287171949396004374721306272826281164556695345655521609274526973592763090576482026585849844043502454416434494621216103451494330203825720873864964555778021207559673745310037125850955170085765583460097623653904165106190591231204156360541205971668309580467416371621039717544072550886185604666690334744129246836207261927655901171482335425714955051120370554622074627868010628067465431366807418319208528734890765534445674423948056676747413088172430731449735213095553208297096523105146170447683692254798624076924572288079112604003955212710984953076696814431297484606953897745876598213650921571935534252848961141296175437192845336071925294163687906226308646992070217682575480117069997455208949387772318176060938313770167106091579677723550636178604958729549684073408880110173624063077688491878290357237821191445369066494664537184505993975051237420717714655543020133572109917890049575065938879712386469124139270725341922378152643685101015143913405548589665138490943485490372629709791995739881486753801224130403651451406052324158782952121212214529956554208757298787850202654816768408250658598469178641884544995589241613846313950337784912189671708255524892702632905593507081229978322990794693245992961889454215658506746031277655589055381598570173271688596055933880729554678400627987103059871873680331920075969705266424457951182040374536662281963682989389977406843883903536721838378580606072514980322397233911056074709716900853947560461335565941284077014167069854715217637678314578871772759986295104202579039664143814189538259790149292604729562407656491573814457376358749337505129897938313809097628090331455225988072838985867389868415224494447499416262098152857728301901096458850650728256315417400894646345316039609103766810957201846534664496672204851456769081590742426213518025960667910065872296312094397366013885789109339243759278144871665867726189253842678597152496100587821805903039215088061000120355348815560944990359482346579018618774836635867118703779841861757280119568273902633162246752110327855985723246704755591819096641084253830321400447559510169526197425522620946579950717880749183718437311507900972516587280413163029942626726224027159015336162614551990217822716578511789810042081596197465038045999400930262462014903065241332865769023932373325468639843829565374965870222391444545553757892817553018008885427624357128745839086553438198727409098952332925387957777736183105376892753320338525729259342805829670538923588836038935135667676968516984566598870999897893516182522794707635144019738301055205970413495399178609788405328556337033018572550093940450184142324876754502230232736875080332621739202283643193660749554975301057724917926868098844707852582094829530680533398197913197135766828463286090293405439038519937358733814592917814930891079323794354460590463713708049853419337308119087463913112174496698264426536881909688332218916186685249630601308814313585792645087835634394497799788473788321344541063480692782795382100081116970475615331560021800281141031457661949328822932925556008377353943254479040670715531027023533126834649100868208442859242749892823941709498706633168780642641792771996087320333843771544009033231631775475772276437823906342429810738428498928542343176580767975398637251179039686007592373821533305790195525337569480231133753504263074772962202219159397772163688107072503458497743646551366040616866324689680686954495301837008120127007949077049925138491813724698319819302319249025690065695842811700540131918837723276031056066940552351832118716799100237691529889471645418257450984559345397599352494265648672994048860612969866821378313272517018425553727199730440552264207663379700487090041693579594007528696101112078042206093471800272603159673793593631193362705303146338185485618299943320847649334166281309065307363100671462288246863490740238539752365419320378749706636853049213423432517803803927393429655077908841025291753728600593844984281110997399686666211102005809268886689194311299266560892710972258852242037259115949585064647167096648010458381439278314298440502548444275276781730215743187276154803074818125674948834872111545155184313290245976785271229109914883569307440591706284694284533484290023546990654175086608283480534118537921473348645293788701640413565868213737768225449391658671775957380011687333894253591832069817371237971101445869350202387156561777467732514930215230264197894198641373094183059466578075217540790569777169827995059037533391839047942868949839697833388698967042964263801026373156197816870214404905832123336216958228700462043727930746455442404957538443608870075477341148659711035300752652129556748237420213810312901304676980887188121892286427402677066420025719873138344901262488709876832695428030285560538728697695160794431590878379022474356687869661760593015745354389223481219767014296075856158629299327008547678784241121258567579968408262535653209343388335473100156440762991521962645719106290325082227735368001302224149311112601053364982617398575367229059437820267496572646803470531988567768058284963708296540638767012372918643862549949437995800259856909451912860148301602951496645249846823004315771651820581680704646569735280469140757917615574942973222229804469868281108486902886508762344856320802787971882104099861256325755204930277873820529580375126788357539919135525785183036679586432792674576927139642033592058152421376215071698931340065944687000497349270311303328921917717336626816193964914882073257210864915918873306983960953488506566197360608264245099701679866272727415978302640195992867475345335698039500567655147384450777872979121784707690944762454645137373954530579094390343486267563889834650131921830477499593479704240175684394935223587753622718232997059986206456425628942902953644296345007202727588402702965620309897872140003842860707133374334062476016987704978868313201966238224316487325661254231003104385252875143135292701454197116594283406472060082427603989274624237380375898225500423520788384580584539874899999571683315332276702308565932894639765164344726314146537516763353972629719426827210778316812251006246650770586351080965114688975989864855514512865098100132560409462090389226761937486301837320276823597692101549933023247082429808377858479325122329134645859202225857437828652069531842191916746119726847538897713983905168586900595932747185808582953191889007581391072187615853876738276116366198100819611834380027225565832657477071996805621684933573655268177133842785645806651254423292673125195898836357454161343602084831630177820373226849236731481697817373864394200850538435358470665019842863368948526249843112745535820231079638602943182989061972294015233086198253815754506366471638703933851577619910072270881167342056398187661786579604961431709890950307878007494009758707906045852219344791931668911298591237734330072241519705472314436365171931560070553112574842097390679175209625410178373724470749931578154343135460373647908497691497391657705382865297296104265139429243594645420437610515351840037944998722654377338704884767933232756440453460739208247578023380851068563123976779207690835981381734060995171347489836953576161083250619999251453692208812425284618755986372902473465127854221277135818686914107687274493146789370076162224923773586469928637454162434314167901937718637677890413327067629002270403029919194021461159168639789233079076066299257964651115290337955080109542420785306877229759567684005312515990274709404262247739967234905658022946919332056900784250462573298680492159951900547857818990185103957629389805279351218914050810806098878627738908584923536263291298846860097966921611967370215456886317795498039249753737795131515097259701283927276658303954972829471637246262005111583829738046358168266192415120019777145737075094004160096170422109871327975993685858643476010270734233221512629338539943526750240931648525891208854237662617952657779085964008646001185720367276418115080947090196135877506513966873254503560694218756221606323328985885104913492241566654019449247865924029010948126476097825148812830905498194732699941110835167571101941330161641826554697154403640929299397693826508241355329830567695554843791362278738720177892637526068453923025274385615714408142920880490533497300377186165198492988425211274334089795775601186927722713652654425921200904540224463048401352172803617935255566191201927344847552170787094442022759106331572878693216105588506139235463827579526156513691986751961840788933506600915043548686146130197119666997265388173313873189688064650821945371056931327297491836131426424900957734477682095925819320689554913764276778440288841031847623984994689254359245026641275676514868726394338719794188530158061532783792667981702985124623275389030708049786907670413256564011620013006280754029994873262208965542412845458340174565981615125218377959721304571053645331217059004270036493017750983539991235367432746249122911806445197237075488353357349941873984102800972300894565398731693681311332280872054858739032093835330779500528486034169174590238770102309320387037264746844405182782189112471048838004777021492361653357714321867138787481745216956605590437357864522567054653881910536380126877700797058838073074558689927647592430774600714121495129457889554524556410497279501510644945042593051051600741495638676899161945277557117802610177065265339103450369312847751799950153025740231676698704677483804988976234868832737747602677980221763698460866992320699733800052385812222787908898631732809155104704957449197551831651011037655106431909181083986700766234562044110151282228713836137029972935211663384184797260302006560046968261419226426380461940191363495820780546815606886407158711753066099834435250456024130993247282870819493557325618926655373922957548580407931591322530074061364672113186863843118364969526322236151808740006734465505983629566650055703400948771099887610585159786189242784628342484939788711873220412289959449005378909553931741601786067301643716390816721270972980132850240706574994827055142922440523954694764541029412997082031310604151640451480760623409318421084177142199280658899581602976584409278474691772437581751419706490362007511012588415492178568076406119816670470770819497463234533834366116120272833568155259443690861255892670647536516181113394961791040065449100970456074779261179318578289308645126577392359002208469546117790052116665657822160017683469767352560033587264090818527208852841461725475547903549571894842873411781039851476147757116824437047980409863582394096680403633631364822386996182685448180541318566760135102363640502384416623647514666535132627508586330833380639865181905219504310335873365443625827782664503247412477164990600426023168660558522854550033630345151638484114169052502641302884815363145921285619750388013551714657233635194568788369683002059258809799977110235940297345646082858179695966642668175290790977110858386704744579674741604984173647584103768411560215522839115031648964664949519780876939929211501608322954289862107606992505006258031680986166925322318171468904509827343027770719688150663856494694858084941963970134783677079129129380838072048349194523528206594116419791473975422165998236642391710710620868670839032258433454985693042870658137149286514177060288580177560790263449902138129288388682446620353629097055248411554796997145456842628691496108384200792244149329253663382687602474724042092406408823024807199884681377774496059719283653975428202355393442268954810498077035808627829705249790089588755378498356960321763618849046618674266807973798791627472913960401383852253470439647384966764516602185787780123410996541171803782123398523339902942834990251337056609974411495478685481348359413055671316691307947557906187498720783156532379928631541521219662117696147373043132974319313365813848530634005325761760881339488614471724739802767152860012553408072150012603066316658816872770802710268108012323946612596332978724925130477783957332634703275107627493395430385285249247669990437532556682986542704221592931785287003744327308406952434297349292085675929355552402317594594145691929630876388806448826621506461624890205666512118942361474835753932269810666235114932562379688086094032203426650881657110207651682328888617302577899794740896111257090500688527969723602965117772115284311840141235664231556715383468159654677873719208531528235796978426317007020411787671127689247245663181456543747806762676771745468458759987306905610238919191156706825051090644581569772722541120059480388403246622078430586272789078570576088582397723880345805782455666611291382404016766995484876926486724159500649483286705881468931534347267039430597375780016505091226138125626879236006878354703644894037731777851968584604336639567875096002290711507584211829739766709226320684328170600111925279159752815124865957148029427711551409581297508654190270062876824929314917489185821717184443642691753891970543890109197074036524194881433601290066276129730138549092563855939298391963776637596455263514085530538905113494138363275544547815746494005300511026311647819532074290303438400630843257985859878149230504938952586696174084855135160091872514925710766677188612350841589722395199707420835376831500764971140120503088533008470208774356234130508039811480235452719456713537089674080267516354293580876101967975601918081332025722446445663027900396408333552532282662092231102270948764676106318443545507649083877836417003337461184993590425894883151916636345298302194604065496106588461788981245371272836298027361591987885660161228037382376220140163695734950921940118419138925057769215526766811087070590304344445954063510790093771536533341693440793610364965854989191875953931955348510172788099343667897083759290801969700851386053039515433075144372751301089819353790017566682857413727809387857188402486129210147596640319896602788373101426777605561726806131184057752643236059716777860721497797823581141107327101262367247182294652022683197010408958780048142010785771194580131938470001493369296355350412003310524962519311741426695406895901483300930439706049323323319770042228396021716730180082397279188024138847123852947279258170841321224992036434999892370190661085688374819053111311954263867538412345850625905664495679012222717490820190445203328212821322104039955038584882484919829949224662523884974600996378035412687061673457217924344047668668701257499494584816251226579790990771211123586364440700015471352959954511187332782408936827795587992655897788434170825838301886589367167452035787371376268422081151919467782441405846270720248219850331889162379577057669621129843412561022993271412320240911169493637123102062442015437471495368819439711762735919130996024440682931651768011196713488822680464330967926715361936355096475999615197102510423953404652517868882234336371966571762464514030827124567838265338240646171804191506283604878396549887584834644851783644367555329950834319796725760375487433175803935864611798906339662667285433394240729937137638548480353463044584394085066791466667792965312806902360700814150964138785790383929725963149201940332402762055851451667697576759830849938996017213378260799967716308152894794796115764575478127577926868924597776649031130837389931318317592512335586948372968649833381659365603196570023177458220902491884869047044083226891351507301362317314669877501637144517549297873224094850569770981618735164786718783831856155490375610050882588189951599163376971794943589615432855862395550758500737201325790447383883117527227928098008554805645308112626491228575393464063369859609928787811810239084333014851748036267013430665839144680801442849303835881740686333722507655004278443463649004222316847210799273023015667470104429562811639585782727607484754667831578275510323694603084883213833704877982544895943387874671016707878764416356405843128827732893280786778310094315702732977223146681415093058882096332150133138618519326757123454474805493416185230529321872857202072053128680231454438810416966337722627629364962797782206324276598540506091044108980572752522010045579910630846830956552298800053425192638956744527400729581012597780212895167147709665502780534769071233892411090741633940658274715859478370100986615756782305618609029068321837998244410342264024498850009146877597821351887539301800602966996764459962045967239327147240397643905733858307123997203706839922058102038727558834054683211780220277945300997772849974571803811125946406393309761131111427847667177768097110708058996930676233768562353079343648944556242007650749032878147763902159920898563221227627542732517624934538491679593243807862553034883425700289016105148466519879440629442654408382840183486730682051498375567297171512284471184726775337127076691381402489019436789488955191058830689511948501246847492350964586922495507397299398465262136777089671128130978787718696046068655514965328999741753175506759680187687710837220517883788066783165672673865551496371077719809117444685389676836092225408749516154714721426428841446549433813998781793356367713148404084470720998768271830468889698568873319853811774425443286946972833326361174869861663416415863933128233774733003573067179779847526006615792196461440057116303972443653361803174559387461355135517430965760753640288029966404187381579139134822784536404773877052887554589060532143917878381277071283246603102053678106642491715689933045000664326723254118797618020955494255022165115217953889464637803465177104473734606700199148140998284962354227627194332514034390808649594431895885659781590012534832677254780072916154743368584442099947674448377035730501367292277526228841796238005842536985965644315562458704191938204686659900768416300443572297769862047403001978973674299863263478146138516604920458241238287916953808158595813635672920802105898937163257743172871157341033179454909577947052474964242930092791413049730428595270254032185341960399521434517905121128670512154412044021993158857798592701963946033170009373438327821311798058309526313496415638754690994673637262692155099514199740596512839500913857638568933387258155813732417001604413313410395516622003978636671873894864247061051661703915237091398900106487119203201443843437307178451805625128042636578179652159303620963061934952958098212969440668065700462320674338179892708496223245799638105998863186101352287834052251007837268006144498407191476303536598364534865952183630162913300518308341991707924503713787439751214772030244593810073542376169679860794202018628929863217286487566846638668171294652657393094771254248048113284145626812582313944577599949272607894806078948524564990412494192704066716553396084860029439277631053220186585308608779144867359464080467609544962691209169046349497599527414796449877061914860436783753398557231470155172038360283466789726456742705457633620915126729640531478251579893518888308606000532851671740299094966903508771415454809271936600022492856297533321187592325622165421863479815264536401244007865717527899153090228123937845233305488262005274148937423756211295366379958976681740372295503534298142556172467681300739008520103449960855085485704054213459626665674345891247047615614451488027255127485116561066834244105767660208682383775729938540023716846603243415416425314248453294156442279765942208216205319145738267815425069257257758983866277381291287666377178081265052231028564902810128451418367746280691636107975932288042384490510053680994363623762879765432713184472425515230875018512631301967136851431945800317238585625264078093290109074425521023542504840059638545667992189984898351634856258667468778426507049953290103046451929295681549607535129718309970500737052132824807240351203202103415876284119063801436154543638233385388162180915770945750682284002232475988465297123088481575794513508534197665468665825967820830139734149060278543765472700445864729043366112341878709392263349309147983696566945860092743838901653400286085059555323302184589557513229971714540365254937908679471531046029674540124649555630818906590495393990298154682655050506806224089582836868644448304455030504033140854546460096512414014992388809955106412611538555165427584268330927628656245887171385444714614006053244811721357117624147618662085272759191561245669860200971922990755586183074118605519008959480680467972804416341943961817019958908392136209556812966792250504671329264110995997143472532136852753188776391764500181342562425385962525899663585032018232053391240903697483759500813526019277167336779930286115910056395985959641499399135586765053873355636493953056183635427923476029606208871917720529173850588377550632026274024224081765599716912665250236471038048685171090526020642690337949945912164681657891551518243461898521407226340409605244046615583406527900854575077874922653042843472000628521494110016378023186900324968816734627985755190933204731149854702659740558280530160625240584944235891707570538140734027578565289480465633955356974364546273719774477419573588035812766436879064858703125390624810529279179426875421333033766238280476627441388609218058987777998809973107490588460733002413591002453037596056696933188750482375345575501345869980968911692206433851165885260513462612098634744949127827261545147744762507299449664122986398742394599579210658357617024652807186593448760952628407920374610848479909378633261079633536664913658452523089001422231530544981227158460676889271127711509887112499956373644266241687633439363392262028439277547857157997628287547930142642719818723251105712624799859512064468984608155409385338869619656149084414737219609012966575284645493340313928237125158217836617657193058560483820595276213692566539936195206120569620633654272457737814290015097166151568330919491692755879438676474616105955989725418079555124084246825885287842129286346558745531042252797042387772183174430961061662534403369666157475337783340756539353704185812348742016063569494367888801210987340535399795501058970585195323108377192492114355882888562967866823098511058955569258494818660625144691980483074059173554933925553134179982323065915714184304666470958952389971432104050282488192414675953747595263750058439816070735318600800737453926022879267765900239768147218963905832094945034606989144373051038742313467417707927183112223628524438457913814088892775093869161925208423211677850741700050001424142763305086440589521292462231636879063041516987611508563932275361034094648911124240744585357584589239237138221810186790206323679766999731368584069423747550431660917042371833948143516200841344531864528026470467499961101698873958748541683539020887179172486177547670667754191862616591000470033799167057686674386696070528562963726310681028824829773405224855962520145063278800908802125204281860508361117810945593677913226882682383202545700415074325726075338910590790290622953125122644750566763126891187743835206392510443518683725649531420141108689990004428815179286692707792199087068933293315522168433361199685224671219257634288608180821500293934533886895605125136904998368370054565306141151576523164983800849741723401840295389117325585236519400933208401200173619426994151918208511374817961837991233743190341705755658752419650608383623736116179521163082507325461619636446639421944519640041487256251613205541402023208506186986494832855893167739229962950368003377406876665626819015912952078791569623341114777525633203371234861359622866524639914189866214454994078406769383705279296205278999584363556140347680583142054188369021713848328909378484460777305822235870590068214125794091747344906242319024398043692575104268140932318234281848926577229022701147526215751044239163220919468276994911626396212499113477439923659457948110285492906514619403209562890738419084956470377436072710401452363578470919596304724424503417449794325684927059630569998152213405150381866557384303010198578917828626183629543775068228859621522258690224276653625122532153919793345690085028386265771312526100726742634157933090934961736341039978150030563705302370480102525440919773900931379956653942090134755135528549784964828550496262532546329879408412516413257899478063543008676853042271738501835409268104479215980206182385053050309053710232921890256861486681756392896314368540771546281932414987080953152743898968252048927101970475843135733810057447678538901193272777078248695709850517175481806501949026878078524479201429570893873003842001825817935065020536738800093034489193955840679706198623039302019416289372694415872101581712903757610281499068150631907091728225564831858192329148040142693056234209149698364488996049681241335762708251261564392496181459742562551980565886017413195498929992131394907673305765097331137427006237880417665599077422311796651762091704173716814909197140775239558424317414364068331295786289443732637055435386221631772052621026640654286324447848089396656273040657143397425587683291777727978063437900801895566357927526969309776963460900196963145415575286142458219055080598423572525027198685954869483533261986573591326416433360893955758259210311275276001686229936344117525718152893855888404807520328235535287924597138650972317378013416291962987691302901442371008297552715355229004043569663745380899989009363518938348585910856371841353090097945069729369111528060607097995183565330940317475174934165708073605256554547546353703848703382702728527634166365083303318606560595122636718875050490147465541668272942028312157019880664722134726652639148185724611675311680779236747429694541175322106812209074657683861775442636196270607260936080622125674202731027537387248367045900747365708981697928162073451677980798359957549952293884686128293446133453982203408058449493321251355485561968405023656321823509206876978267600781280775663990523438005235076356533838556336419695472701035107599272466068642743096509456119744427299606417376470516834302740126272755403299778625000891872338391353611031170931276599519659670059995524994680303403948217253857754469587029827804350287154561025368193199585413597758181883726310730235268775869153632132142944176785038969217215766454688889514399027980435436648150380891625912551776997909488496845822854290479383806320901393803667398525098466087188284619523424555435734875302437429402619761518570847166647115324764597389463779460792109451882897404370184506145934096003395296373470804740502022673359598962434320353543410167670464769587194524190995959598923094966975569057690046013298139996901101017889790665928244338934858946100103334293046971490131430895518764631492532633003783470245713932004057415255075296427021420859721408239432102287684243422540345984683625023637886626211421402602163422894459277040316530671499010672735502515433903465687310274318180144950398536559017079446874333180825020386242912523397871696959620501610210392845882825803911447734846169137385301002470361036115208281466205829674973231060128814226120199382101374198278129311952910851506069186857879078661119228156064212434331775694794907596228792191997887270319017372647630245819570249923680472524223541240376859270130812480873695412900272216187487794791292706639289918868722701374027498338781235767266149708987069885615934628914215809333393014634219430168992274322031768109633832976460429447424013644185658762505469470580949746689333548025153956804626295105698730536165688125827768103589605107105730638468486214784930402582184769121213816412996352045747029750953594050966804678782755099548352221010349266052868875517608878108599137823790420623038906864789799356912974910552594729364081021826135082240847363783635428025469707429912394984902424175017206230496405736647937249176693339799110698643659795859007344031643484156819925961972863913529788980570676687770447509143877129362705948585406150905862564572949785272593613370273224505661072429852780110275946644040479367468092203010223691341353891422028825688156566330006679469548377992950767262449367122046333725055725101837990712007946801518922187248892528284176603213113015797717473366711835410739095502687077007071226080484538485381931143431359974069933226798639950496493005931886294319308383723711820980952366492680797619405052282395266166129472234878176200739704824007855106641247238936966231148448457776739912024790338499065375528517879624884424569377082538599193745044510378900609469679214313674732937598036569191442563779446938494332734689766742365967553288970182967687416227316517970621648901369736800488374565963582872958943314965156655748617167829908813013408700920228060722241512269425417496266460511383333198070269082309454205447872315715643633770366442923659925239046715181546987104661375348710484416783018864802944823090403676785025453134162545128712812727504630565820944112045565033428183798544672537876687057117003208693615256633911679130266334723703717911362791286600828651441236399830071385758401324357317776172791790166598528516936636929303368856394564619273216078406591613028695964869924383338681202462487259432351724748515943997255440021778542616944561930736713553361491420651879196641622668400880116096432294720341913203655317936335605517575345256105436707249957548161917686733399428114344255644065301106739032495455999731119471346278011185355452843524164064997806380527794768264085959899276140699448732025674524425911063854259920522317129817157751295373004608463582732540390740788467216960620279155881445581178646664957846647101853737481841001099662174117815866986303381084567146652200594358416250621831254337824835706576491031211417444148093541636821914929834490601656919688556727270465351786202030691018474347311913689112622876592990451848711597780517833855656585356984929659833025991708503056129774280195021411828163173048495091312148892136865344247529284919369772270002569121239219903107879934082955578409674725996082981810818916164674314541160533488224917178671454313978010486232492101361763829987785310804900783816903440114649721550336655944392888306173467704663961861583328565953972081581674205305111665566511304834183303455305269621552838421132350670046141530524363408430651451439219402794986660381147813154530506209834302487996031615903278851787161174863874206707696916166987810073825220106058797701025770218125592141842859962200170704110235262472515396645896092074496069221489837179811735563431274300870460459188654184283552857580272672888203820307425645512155740872584144597961964876398400086337195677805810023791698841901742179319096209300190543713995223910141438230581390798928437066691192815050805538443370203079949591058375418476341424545722795298596656734874632739592597534906926573573537470098393119979690254291381734627123524726697665879443981963845035994884209234902474677859216325172710690136795798819722224766108200382799983338718484691648461571093847237335147851832968305335902887848964730000878709667397898041061109907081270637533497952257059625205007679081355848072161756877266207555778850148390346942662063311026243737111709147838471982374341587955933349495727373839971475052196958092952539590908062681936321780960983857643610644074617580197822923581768438857054553338115693780959458314977589861846272860796470721433552053775123798454966942408002662173137300031497426519939188411561200965303118394789638656356542819839161140224219584072329074112929656641790634561324622475896410515348782844298486924406611967477410092012480106477491511954001997337917182359012239971209283100801218559519263821068487497935900062557471708321852980492971619973918211461616747162333207897273010040899221935736910463740415875760741173155409914221982038178061847796911612912729972416155084621090757222548522467694959677561712015061262731297909053755044424918119431878848736930635769734626803390216545766566217209209815082346720392556513103955805942545004639853610006327843972429873571110628206975116796926017902906670528656040507136874617276154128847757611734487324738236816823713472654029099151221997889171774182050799733147859447793696389968129775363747072456936057313256813417637537251515566839118560435589243780379060948067654653729176690229745391635727464916041178659233425987035276626327469723964773281761050142098958406202296184053754556313813302109130360478048242658484985563927150807471240341717379364259856241142136648496388799450972075533215396968364344065905045636642877978441232778654190471469257006753165928049209239873991209188554539246462825748218001511064055547987308483224711787140888713222342219469098458634784489239585316078136786123111861312239071863800353603590976206054173116864942538818678452443711012885098064054009488015453243159828764581060637989623355462216983820473748814017465295990528993125717072207676443518057468476334834808927123748535936351659398584383281838449746826091084078956975574330485995531088061936814579206840411418592300229495935031251191318717986480444780901969584805303914463919566738909407647275793467032982956752213747026814250547620655627247339713985091971339329332494364657379857495783036520740987926103871296192095105153389055724398577058945494168183022654385314034902690393950273412869345777386423153458702942608002321020203310481501024231242789667194960716457953549696257597921124961107699521429810479338179359748751255386058369914870188279746231363524467561009315955998508312402589470596279499401494775038067730743069476977694269739165568706084526063022974227615868449595901569149551656148596447530223787171646016659630960746880219874453648915209708906889001843810757632943692647011662541289634123724367581741825560951065323959721897764429445108913448091126000857732165522835801180610352840099339242540944097400667646531397938805541310859696403810802096852952179325440802869503229643923191578039397099790729565677883278936834190889535816126908065260170729052360657696681262163571606783205386754516126090297841114898392793736796172901426977091437277136052919785702585331973985885846423045855075839960514250764775752681727074693874955104247621812104394300354189023469459818095488209583059848917049997346518092955608312170961968280456467146610033509967206709759151660289656426661480409206512009358456018114512493073482040014158338982349582333075615371719506414615295200255739188920500953855557637135624613243209286637276991306194453492361343527362373287890186489417136871372812760624012021169728137116450152976821838201904065555203350442816943747155836426381805724874857858139633947169767201999735788882226702917632822016560780658924835460787071304426690592255547261569195411492575353275343956468873105233627886451353355845085554878483763117545793245651234338151226390492504469993509493785403948499283001833165024762519767294198472861595475709428579515521656096882021547152369299384429292813950955204906752688988515657102864567901537430920706584024376915280452727169725049523291948157469032429198279355201672226863089595240873851495092492831563921198624907345329168799707126063929315491844670231016282205219185002178127797148264015366828047384607263424730749089959044099804460639131295197515839846112253471496130766009154675227936037661233380572399973131975065493654563667550120350536110104976802639309679432076190178673093772218508477306262398131111779787722661200546582724450794853781077014891539254735455979419202646804646069381850023074186699427863030368525617416629912236838318439665753316433550552597916669087991380078696185501955622606517812713075132383145024976345901189119199288655690151532972767399839336743583271070754277559499596202554428857742823458607692999048667822856641237209187669337155953051253705878464032958710257943175627115195476131101811501761427350315854197935244896095504683436909153397696246574589813212174133997645621562381844272836764779713523879107131521258507931163451795981457568976991879578652674133948279337168471874383109174608412611466646545516072256105403541845859837402575294759140588691126935187695574668941853270589004895435896260492033786684604134032266085633448995303862174430110516866676152907762574358336917967135191958843068673693147269656629017516418421970268348392798228987827438652500588921970366805137230318169781311353871603977336968234063997830711247660893909944709839493805916694404068678154348974796821835424939104791091797742901013876420454358663469445868820519849137945891503967587319789704291586636317579033208664863996072457808701610394428125160197076923557096980669883751113763894286656927260211892376717688806241222307751547414127732447041083607089541762917600673658745370268454805872045588584401104700013967774303490556942275667773896147893377816699999185184556094060149963914388313216758163689047440389699555700331560822967607045542690696447801375565673304657622921233799652876939668895179060403087680387576342806762602507650974521110939498817010538964834670296353426538065575339705996942830252686888336103880776843351858414001429822861454045672259312720076855125710847857463904857257754326320988926359687844414308141356966504240241282082795108669142922459787163168410558317893285556050133624859269796281004742470574431209312895185802685755647852198224772505039733498858051596914811736137339474720174365958056454285482334801136134313378032783194776964603404926743471920382345041753732912538728889127062000627484116315919546463038157131897424481353604102023745172388338829829173288917624043713868486957590674025611680091824665646381255189763216656100647952266881765621684505490994114036591804009130688858238108055236235583879633861820880443949737320684990861470024760989524727333082370294168668924487505676926858560705687606220170301691948249233246719829085608947585809763279601056707655012600289152061135676072682801421930646125970086812294771275415962684883047949126993897160586520754558909591564544913846595978696909930223062845701148995888809674631045569787047730478768731150657865875027394716432681898401989927968181760575646309452529547910187228986237012907068698268780874749343699571517202939321559112657050580844898466160628311257835041964175352500724695480087908929181678628071216712158862499013832369605881619132308256267414583594112235490493815037160622808462949701468125146379952862299262808901881826247017621867844395619410360678600408044390047518419852094783996941779191641137814871462240213399108291633105989627567278036318210156197218372618618419336629554294082997847788978918064149827462653527539232547847311397315998894017571948703843069269301388044282521290701291923118930802666806486698699184931926426139487374966422153474541222438257782589343715286422874966436669911312730757188639317051901363874806278031538304362349888091146424576634259762813700988728238473397274302025103114296643876618437336330351924375055098778833221004895279937262245889172376576239669921168374007756131154887058940195321615068469241977667903694263808643186114462982814281680657154877922972240103464815312210427170884892821972137239954120885318100303423351718452134576270175688212497198963201121848455900128266864731117988049927894757842383705717385123054677697765440390659919114391468432675026678790645706282781173009317644741373945502811103939521374615614525244968755491428009102259673280472613164293403113614571518694083125751540238528674308438103715429738072566024497105934098698746812099074301880504751653063152803566451236525738955199452193184239411964869023175381837611315007742252723286295180272538870829169222063886645004561011238156417605272542714450093184605067915085668026525241216647167107248067986795955785842304819546977727003246000361982295642259642731958778469418450692530608675980255288356249750565302503615766997898081755734440543448922077410231856883059836697808978685392503181696689720438895892211615024215843107881126701645165245609950802961681378123713996359000361195473327859007366144179973297697690142791852091656118139724903078096017838458270415497920978581372420346779817944314027364073040468838884617861262719816117367316977212062210097715501329932918712977515865288403441882079158145298668029452075816645292510406593739087476490178297212541360755399046515329278874472517958000082941987412475015686690200176963874752486175744400162312052840141855407504325631678199308364091299955711943111683500434626822768975609667874040686807595178887024301312197691297774416592309108964734030535365578999222654584496484236668733222794300708552871866584254801079569699349279417501233253781751964577929479323736250497767018261168133747767034023208341194048745560665849181993167055907222908405651722369085496955771869849429254887774566385044313765173936311121470197541440932279131541544044254794996029349571079561664440286195454421388657781902704140339471037183448764583270367269987926324261615908696513236122783747601025354842943556602474803851571399110787647114373122865235024626150082784839176285769662380410731834088518222294298076936602015498053910891787874107954281195040737652614696600476695366359291864564611498754520903976894880683981538322206672404127804372879157787780492572247703124653689477505383387222137615803415546384285347552629614555399886913814109999620419260237236739975135910602664687332049526498020634839712185031634357288771245311140044698971924844365752726853386536173704519326961578365844131906325633532386080565950122524111246329518185841742240637369277859878726737126900140698919740010691467431409447308641873312576112307656617440582089611336772309107368395700281827294715033163453611497841208943504895821928170054440150147186843691069448953420553915940880683997106388288678377693653406605841072846977076686680720984191073183333215476848276919628555221761189235408133267315917411862032928384628064172108062005736399530355619952531331748238740501075567898962208239185324628600954368585596920949917622955596822590728519304275099817755916818026422992506415513064915878698062548410406075796238999287534315933677143747842344251130296892511806697371893579330399215941416628579248060020089218888789052658042688713234986221532053124358445789496423174140880161120677798780862158315208901572764656326226449376267609976382678451545422380751312441635507071907986162753694998824305732638773370112793850644304240611727224139754182211363845116014588661695995606098205174747906312268016190314629438506814123746260455085176866637489223065875127697098577101884313356726680203938937097182254751661330701055906958537697453392427179075813892986194640033104708909057635118237509731583620326086601125832587774130952359228310026785157382410342980603730029319476588933480313668336788340794152273583964038333084384958032007972221608943181735820728222865982987104876666377596826307778088575637902203939204568479571357058049965515926617999549991612383678252435561196635308400684571863616051856593939284490835234602214682054393317202281131130961314108138748795991893332112431733158276496294235157230594396210488583347923386390458796875072596933816246759642894360961754852892929589769880968606901249471152674312307616072877207136639426595364846718307083263574116221915572152296673520712132254063730015678466904619538338317173153786769178016365150600456437785407523667593366757308737563424389110868783185295400911081703080701890804722100369320395834044342162131886055370127820774999959424139492224534374396587589970216008402497407235490340869639584551938467920804328543812384805357305088951426976372470981000974301307047381139421481258976972073692615050745537369351168354194550111842112932673530395039536570029696789525764050203488074558389464249774099584124383964604716275690652313064545167433092710138765801110866587363184267216183157421269304144296900461352447502076211524662597048664205981852117400551269595809267189528302055884346357434935625921052330459874942337757972311379613064457584792077802295408826859472982287377927136725752267361529134831120986828362678946917797727154725482803375635116237595156816078820295985301433706600553701241103940330269713452773822786597510911032180097485482328213886541455675641026281378340602408270155267683817792002292443686526982657083974766633163076613781151264688291181513117891425892102955361452502234299005463687707333623656893419046956635335151806646402010498737670086037191231001372592091013999837847217162193323076771509126791263073680388306065654469927146910415139165833955286979406682121223987038198227272904531569087118494808701533285436603422340993541719599165740943899971359387122423940551633546615004528254023234735514293153320049461313937601361659234664020303094390340233502593232913188635534668127824782041314756246677984317129337260206150873953138708412127939569722235781994153691825642062607435553950083924230739522614584893009495069799719311055706452152522644658885748080799889045455236188340219175451801569162718915807701684984535717028704867994985789324304011406876159848237597207882323838803074408381948167601664314676981568971305629418610608493392953194102842553732155999405841115954163195789053405377517618909970356827834430863951664592160687314143877520864025617561897877350740988609506039483525685810268269020567283969771261308727312121366580775211933053887859642783782033493715735509242958775188269697824627970711217248791653333926018402356780389563638077404242254085650370646778535731245720900060414792762144757794023529242645954363401496491456002466971005962925961781889438545086240623456390691413529127935801655919719748766376492440292735820134060155693732231406623861658308931411742987232421570733428661795456189635242420049791666917989306457348338648215272754498674051643663264882592549044614931226597017729743910503489267900659436463090834663787811523267208546518658009127056524392174649653663516767441938560094494413808879154226616062104472149221080465175891342602577683821181134384605784903002030490831120514011055861994427359976424018397202333239988917328736676938630760583880220988628788628706159703085413289816111691547305127392518733595741643089030543959014079561017921791008532983352751997907786415822767660228122673223095569598657998224352084403712397642463020332039597877306872857642144517353116638361909338724116749624336841918654487439586897706701419882693664616561315985485529451026747855641671158603261783105175169841028383933487265661786853127273895187837238651643663986089938004955821283489490793417443578966284754666825897839571086145947053419178719822158529672671038256305185499771641180951500236422482609114558463309826606480668269846448186251844160232090583734617784711910600997548381639972971037113733856823209458164521996178440497203369266955954391592514824881165520147979836933772996701318028402164313097937213315562241197232654578332127021418705983676320400003717701558366949164781930784056396099985820996853703832248439884687926745988633152771888426546076473290055535156822040925518786750479221993100643929313142227209591510256904503948381469280737005859818787243450672330167326699781109806492220375631094823636048942975337017747667685322284772513016515049771921475188933189255859391662059905426900972479364300328276981493336146941155106989646224248136704347004278344367461193275248604087283494227930083884676625795547778484876206073716724559484046898498382023042679430962804012787659037479404855993576838241819093159455115700508141030037946042302627408727294419982002571283571888927097107419444271834911142918722297435219207131340680451522046170656076597516103790714278823432182651109057129969649904707440865332137912884159484987048925437310260972262234057103987070639288504363171764644462456409246816166687600485507082728447957622073151987288212334779016739220242126812968853866613096749378122029275946311370941602027190998991187378979057837680347195685819038201377930245219209060307469178640056540740467166066427106297827788403480640267579435854432090264294085583742313933557012836109005965672506518912172503121757538762683039107699914888699621392750232565892640492755321118156322962394116117337088916561205205421254007664081279937535240693504743320974898048033441939425413821740009947948981087067505135016624830075215086482444926036232329139510475495303234647554307220399129066574480096066100118266610812058933788821349258938878623719775257989749763525934545622000623988894744313392188966033362436559877255282541786809328949086743116393171552410804322688010606482989279544934230002681812127006152252584754021674653643642587646559584213495377776450335896141702702961629671158175804633365381783136069776449723866057781222863394221696845113196325610261668065750483811229063194593812746503132984771301514414382545305093154230683773275843340198841735068214482740196811204538764735670038036421904102598564705521339676027337473542870877527637252938115820435827401968739725123472033479250365095402842552154484334374434115266192840266441360058143611889658295027239696069344436204062905043593831660893596681472040969876257302938443256842766576037917310057287593567506027748787082853366004900643285142341215532133605666262094037950451495543031229484079654121688619497590614480123171943721070219089512790773113295469485236612712486318969554213528070509486047153783020565749672443278122263636825186199202587946100010718453464203339216604074261975187444675185215443009737443754720950505480730648587872617356186081033695273785573951942309202036655303888418812860487238836486121860239189286120599676045190493159471084093051711107375087638534684383942461540071913437011224753520894489208155649064175278720766936081040810161558989543791373290032518763230457785741477016980415528387877779375002729608403742625446735811825550813949246290046624239856855925363818426146123303232073603528990485896799354642933107310884392439108893651672744859562554239675349661494475059114733604544887937015343471943479663756081397595797999526896289142600308272739838955967717804591933152450062126165178064184074505502973440384858343788135259459116313033566419639280177995107434551507064474304820340426039031612279719578684155255934148033175128056981511115866882420013028142068533689794619666546623775666224563590617900524178526607770165189323691627650880335134836040953244591997662043214239910910698508933341063991565707013430555985407035676467465647434248247417446118293012743229586072634975510642883464232222746779437007305865222229237030147632768473640465637589574987682794891317116969722866053699035041939612245056249568335524123840194169929755780158575016131915264844866793484710394357721438918229412656482913964752929979937690463124550540998705402634734305959498788825599522495750102464936114432817862896472276327503247329506929285895674951770844264779280946678763426574210825103850870314167351039530868516984945047379178144010378433331696721416291568723593681993034985440184583107499347309449975922920305953556242520318678806370096156306777922198938199674732508777853024678527742971222608430316827105996973292065391222222806355826191111541411488254157541570928298132997209121003960444192212004233940925626113600137048939623068770189544560786548926999557214578511150330149781108248274201350737407823326433043551541894301650003174736293900355744461958731814522194089620895732166600385084611881494757310201664311808977049939302114984293199394900159899031837560124492507702901079694821792087147507035144408187464199946963495450414432238958413312166528561381305433721256871686522131268904133898118982236841602477304576205868846354307622934700183480267176794507924671025814672779686922485381723400783792984364537297953436868240301445763487715016134638005632479287565890963660965896300487855301953958366248711550332360247588954944372494203655904637407053977667480905104603772921274898704702991434535605370101411969584060190854677149823882288549854389568936997311015202081831869045961052434598217741611429638794807260374498207534043584578423757291158460662662503951458118031510131385135954952053847694077823460814505605816088710411625537282793529670126318647702236705690812966788235395162544356502877097452499510765897190758446452594600152371321945013650596302539061273470565234920155460630283803885554306646438806729500167958611748862391557972010057197767367244264789812057726985967283042580885724059094746222284048083448227275270876915901706238663295730363317197490843631218328035710379425180868555230389890762201584682760242678291740116680501729510240597065433250429393345861601354329674822906622712491285548250888251912450415283201958943974035047141629004079795713784003315615205030620689349593704017103729721900665641669594471628219640715620210545807202695287820457786632851101396314513531513299061905571148037460999499442507722480093692952935511365908289198233469126120334475823818710477491952312230586280590031534481178395488359841466454470334819219603432933084262297679919447017481613426559156036509903709352544646138473241177324948914669840188383201674967362607210806301763801672681573529379884774699836954100317440948975082822239159758170724293559438824407658746516705426275104145532386061665039718356134629266254091451040757749788343003650895217166911843010923287019081188669527067327134666769757359192362603344536516057377599331430210417222599088132930935422028601953198079239158139796449071269439293708697439410989897428100402036513712620486756091574467406602767238111441758055723408432015972990744571474363400195181415709608851592362674163473561858143554504659106206133659466090866985325336977437894566272482542667170127388265375320001165083850029954629718416916332513581852215768371672300656160133943884682376384867864020477066813202271654861474093056188037804165445519212065830997925283202951195493981430644676611700437920011647219966319617227828617951756137523545210820675246878030962902782969991857776763174860704078846047546893652893472252387371639594161219173685961497854921266580023661250391019166294481368726651710620911153445911603942555129895792248931138646248879540352599329638819963439638820549673961358015068851295537010930376049339112394167882592322505129449381766386828163491154301339851870887744390476281064325964233173578118944747481031554391033569755252058544434826211956663917944257465345035899723754340505228745715572370353858915526871065011003737586595558354184602430130530476513433445221187471790660088748796898985575674975255450417265652452340727399976766922369299798051850938538761268299951261153607475990684978207458020535100105078966832233846226942249892546573931101501466034269864080756330829153641550329115758445709090893290908257372151301907203668079935043404550118001580383796278681114124155093625854840149659133557993115654136572450274400288263519882790637669161952211899108968873576103436330254094931859525359897770029659955719021271826171338512571366925503958430628787645490642505522001128505628817308173133397297667568744534551143968691667506038050572281626179162005906251145411405562856372672343014215606639981367596537039847240060408247148849443251259761702971389523336816079990406423891100227141825254942963771808903863775732923321715174328292708058768155407572624843106406531672899536921391353413979170872183686769614276990737230980447024483776922648739368437286358439300045062243958768368251118332776677668445399825173273328667800846415285064559570785926566162107065857629622603418753730792437980598774950550580012809374109160125367718657079095054372086192515645806953569730491448427076953355199575517067881805301318781951750419286096706268270057735693003837804572616043371479346688492903100951429690372441631582192986710407621871388855723764022917938650572643667746181294575871298842332222306854362416822667736972651190677407215004107763531428493083270856555569053972905681827975952004623349510924941979732498815860603229630368098766807877529101863491694890247014471614958198750043649455313317010872025241695044632622356716712222480783251892688475561097177084171934277474230227502264590199736721392280252657547798720142720326798710504251381844233772590352696991996622406695210149445916678593388665196902677790404141252974422644907453137245124603175344009497575255676039264318595339362424636077529140776878867834694770440941551410665172361350962419183764350715247093960107871711594946133863687997064584637898645692047333243007520515871430457509378262727288814269981532532224035104921922037522997089973761293753312687911340228035230441472246344809480834648676148590451818275977936755866889022571234684246277374317842047770769364278479311830903095367874955487235893537503027355817237217704656206504772010116183289153720606354687433525909955868612647894441498463004895288805496431826720330166566202640515490504057784604636857968011413478362378519358959867573502874160203654855289311563406428190961747176544505049805493940263569365742426542300293112784240302992276273420507221856237366748720099557386820165967441076312168133583645603754807241252905685559370437144310975593394301980386466712568166524258496238073977918111360279653444730062852433338533396853607119458900066754048288705161784666619146174719286749386983992501008144249040374640382259443997543060653531206727771617142181860511767896459849480343329543126127573109287693740119476788513428163642082104898564509945376064064435026865873892988081391526619558684218110017135045381166642732794526208394964631934468872159982504530681506779834178958148182673080122546440216612537387543735604272805550375805793144355167533753584978614318889363539453579258025479500575010213194332352700154848361481190619114641133922542797278144366728364711054119635257074950417718151022475655294969763962143444215011303432192786120119921673790513102277952791278493770371889124902155169784643939432097080533204292509967540687111605376660346934787504730186660487136732894989474998435494736718271520925928880440649886960087938323954253588483531480932556949091275328420751669287759828168622674082375647283229658116334217393643769954943088910508417448841971228664426915339886931351540763592551687236954505929060142309985321934010960873178189489605223566124303910447917323344315136758625895692192672452894622760954400920748318327446508159155206435520274141445989570513988573087756885802186800840035202814968748149807427401761739126630949497216887733240932541500640997011173106241658617503186919943580691726567962871497102003358006031599322746334598294035145931032013741785732918025332022090957403447327566142170267540078869686603746290565385470205345272246011521348031203544508320577480512294547265209323659792313369920774075666751653167920939000626792175821867831693850095822661917872169945284330346356317532642567063720153856802151644263239791287500056420153069603757631448521494935726511926694599098297063064222066127406945397203214828474324562813263031462727191352043543206699894829873872435001795005304005636849027042594181357098655929533551783082954426854595373044440946233825658472505839432829403571725833509123633242648253314666419176857955420435526969928229306550533975682050056042347441594198651315056965724476192912039310424550698199540491827379418035241963976681980945032287052939837597179085849801506183446872268602929136538439157144356819319608156617764444321265638837434607945631290025740299064168887881571442704746809222202960238782188565111227472203669684962978036787794811210852515025853263077929984410787487195117758316540835477628898279770637583227047985751024346133827256533986891217068325156846373045436641389829664994736429420867860509421278297644788017093122875075233222417072099015531021345791576898834108147089570925248832315270036243149000477256331223665234384118688097036937483639676936107682342344979434234482082623593180126453488964785165657753481448616102890589957528909225384864840494878442808038011639541214706593832890222180571259414909469211542683098064864588585671777747235251307620694738669266456103119939947488365579484963610880782378948370473587227183537381073752364389367983288091204046227367530934332851082803701552501298416224330531127276109526263357042721066392604111254110648964452251457000850919950050662730684154485932890236867235413908943562595712543518820201907705838608514672590579039540626630066705948179692584371551900357406741861586997473561841479736020662091324905939150439273674912321470304433593577054920794408225960274630128822473857876996041996180399146659720067361718954179692956538022591808337043536734730462763267510368562442424474585295942151947278943498143668900688768440217629854457696764330640439240536825311734112705789184778282212753827921283050481050750925029303912585340492096661035904947375612042656397510664382145706531384948442243388620191176750194647364126180761165528504111861882469509050934307937437411151887851435552543678053723435352751917225856891312572638173522529582673191332439473045738021994244365931180445916983376234019463204526846539890376775925311094314543270011058678219946144433549366185990517912510679149475928010604688221552490476255362504665757418857600062366805763931246966325259017123078418630169603932200090281780181103805653149059521735062025720827016825351414769927448249334704243895149356113742516708258421899880946240496923478547948733061716713954730522918909621944150238129642570618492582114983646316244129849838987122331815793265449083878237857466730978884081833588006884800404808317220383176695718177242993501213669853434121611328860248560282777760246500340038698383333230842151050494164588487072323179701097934501767713755431272354409507105490008899655651580487761630822015121311221239363345741695823954075496346843293389765295720062887857629765364646991030208544544501063956245594460138605188702507264700591797326690788891951353708997127323194178354806307060285822835004338848763383508703018526866306970921595841890449079887761366431826700523884747212695763825222185250473857529735070873259378331742748108103245750064840907670502266738816529483797341534730756774993170425917308925902923607545245684528833600616911430622218763482073754438358134753498522523430538668477198616503280825608529094266465620216305324213755215408843883031200648716050102112346106501150737034214473214295774952765101974943415066439207710724349237184475304160060275333402479569538357934481078068378046833880428087871779627425947735332279071505656076376867963345382419788029468792109856700099524012730080180517305025372484611538986742273975296155333207942016109242118085339973121579343956284185801747088154948004772943337269997361067395902467147413258818707054594469432063981499052413800014836143803349306935255522790916112792213464160129224703779846328213676420624524099911220977090081236471179073488897967743015155803250633112981264115048881466116182838250473327343078218766864569702631079362399776131790718571069862881826382983186019672492962356536207583105585935517384170820503917911605631992561808007929416858364616134609250094167312737981825789904250320851974097758453315130198218673720686130935197616237678540888523114730950592249045887447072506403910729420324813291892044615917298835025313441870032167723405394008915342950156722130376547980074356679922285768030516068438483412110154614567641728992898006955772584198237460237622883368922595633476599851499743752546357741890591854477780983412295335320407208173025210666051327595185995330465351240759492861872504154152648319674334993787667526478751298892993672310829892480316613294925056542810115978166872493261944496664661788828913280375481023681263950957233102019419380055130089891311335526264238416609054775860592463985453137184369432538921110663076533837484517735421558726740236935778630007767098619169491695093864401071070620264717059012888658512386134288091633812713230271727918217354886988334104532821538150809977793768391786087009332240981678255403166242336280150002565506661287866418693257731833690284478977477593964777090557607042327414006369940272134578198298766910483309387765464867746356248628247977515993662256176316170014722863559910838346670987990633519593047154990369089193517355743620032611464696880970144941236703557729382248415682206337734562446590238548250997091591591316996770838355327985562356438782957904531893835320862429897311633172654844991071414287680238154636906882941289035624743275925574041495631418720185876387114968735045175009502536462237073494700069155317044389974071537140497035016419662707799293562403688754536828469440755427481746183378700420891162659989237815604607520731352204484745783461195641404372786593530526935954046173773560264610145749930825728418785257279330735268891282678392310126727297977714851022422908695329357711331053129553103316638791108423010541922756977464190258967805249776814687567144989508331302206775633631960866598487543832966408400992720719821615590735920881386501559326032743336966631053466992444143948627040687753610213511576508184873112471796773367512690089771984483019228264081242834818756297303426217072604171227971958972261697898523359654908509453948624694398096150115101620044327599582351763086328181282464976464720959978893024234556027552274648848324696035619543538809255200650466285026634563152541858799100083621558804362210457287821203856884499430152631530408595602007877584156108378215999306076295096159151217035058064900719232288137553116937052365438325297851538962966135473087020677475405812726136733585679664582824164398499111301707694659753721775683867870518315934753529986471785861260323028134593482611729465939298438005141608679374041480381620432037103537302505141674378746178761428022266773693095264451880214245773516319072302541741631429983522934935880924082833649315736488463431603834822693882096294439747153349316765061498205483894141994294969424907142364922809794330526651330794007595436763739284517136244810989654237973702841929921475527728321222506556097632760351977151867270729495633730053707188792132124305044259252441147707165817158294527402668653212680324121214585587671181451998593998025971448108825087252661592002571683442882200176442051634073309563309053751585491638090941913313849848282890613255430231222671907477284580766483202231232869322490044686142616770395633751032555693650858951662149580893456487026818547250415966018465004575295880920862217398690889153148165609959007086249055388855687316632904174278116969372441295595464140604616056299091994016674220564196282929533321821840682987650534448339278302228780564555714439488276845996284277381910671301927109785676657140227467349250637546188059869596891047377151033925460521597775237342187276009694703684527363641540222864689376588252328977434428181482281590454946574763664704841272567655234441379465074741142605112101945158633146620474170486867173237966263789072712094760057044075401790539725828401046975366093808036419777485170285317353754976503622052383970776572260069402036270360505962296245529510844440003893786503081380101445618124358513273056195601543311456717046173754928994491369617333736620825519445371179692409170371849837957579207729989517986085860058422712862349622013529171996705581851076523259845845143216124472614450157144469060971577198819870943652768574007677081410045384558893363437298249286237840657866838788729546124368958366360581932452680926341215632160624327025127970437491353453230848821749085313956471156019482505240773364043611337383707222472659143970087152830326240708958363631714436555233201491228896573708586957424661541309678100712010024661242794641985978938454907036232562377196959706560906795807380983373344740682417802947512836126806931438464139783796760399157871288230380459725473570248869217808514212825304298020820902932470767453743032441396676303065268806101541259411160167792424293082285124281587265567280130171333831750533355246697547694856118026112968781665046846525640454579622026535269251323369647476061923536995299990676136271011966745869967472871595187557208985194695063294168834046659582740790229314934114061259260776663765917428295934339842459901683005554236732160764020223404146103643774121412344156525507337891865665315721546298113464921798908074930872766048739972927261573109158678541138212835387817451310355249518750439563414824108667197159976618935093779485297899639191494409279711521807601883349112004250727971252128501107132082185322529689442603346312932992348393589783795566720093222834410103015254145288898999501299307719252518321859885359128286948297575281006204240747710791494204729977547623949929959560100079055784264424030846439918930302818232589950890993739367263550348289768289821178363046570159965675150095487275621683926842153725848285817031041839737397763497061851077591453465984535590810318835194385753613236724127538125809981873587307447703614399007802848233837464077750828126051397111080161675058792799278241827255563878915264958927898064152122763822108548526726349459094178145411090248817425053361506949418712784664790836121606371277879479230740686623214310455536165976251342048752590654845981338878151240552001277329585301775989355611551442148018769094821614214021749424233269609790857418588929929429517253483406041629477975701403940618592267841921305592823249107248651822386010944770681001754892431077874502060557156408008017205212534738345077129389362325822207344355906462669632087617014438182226940244625522224736870055175420194867109405251531358966791350018818870524038353677647196474922563620291487761632399378946838237755539744478633509057248667101578225311361943543701193892046575929260050423636625176434496343065514149213437554203544452880083773701717967822146803412414231252590986357601128605279481504854518579367761274404586892120113665918523055109845992630653807001468455935665627110422998205578499369994452114987918030167369954643655335580516043633554151540098381936920565600761063994963460580382961369643044069318698308129858214477671415738639252890445172638352304340311791900865891118150038088574646801096658919086624398620197856054335863039839498384223957903500296118228576386884206558828252840040315378060006525617044664300992225532283020450040929085079364019505365384461092417853184439506564066342898785081935314063356721613504829971824772738849231710140406951819592790782793794129424218087658100057418246347537490805498456624935353087216927748598094623072505374114414846137468568933318135872186263385433156344537781900404176881925295963507572158001113271649975311964211820527548989730027955513415575597319767345336451875011671003253739717286579519277155229918225888060488523471420694266639310759688705900982773152334560796205229644934627085906318240112352248895559598197951013157040874505848576292037018818879334217640686592439592711885786998646576869253991050091104932617298663665073783841961629648089206507809952849412930203900111134536266673507625584939032121331895686474026636839623366743136425244297147539835995198081197094763241358894164682690419416589139875015314421803961070445421330848000848804022080018132634534890377064246578049314040362955423711785771277052282496986665483753457484227520301447295156391416628389504049766936679183486366459764900237040631091306001508161651267719129473401631541000624265862990012149345611813518516792032881726297765774516256929097253611761281005016598684700931420961187077040337977031109623817605928264480676035068462806575040005227904195179323365903552638751102728270038436100420075221926333880750625028151084676951206702262412316035316705755106481673637739826103422866267410470455241216788084140755050524410498135798125600598346140185860839843067312395845575535734681980012893083373064467730899801824889622150095538772694664710342594769692139236886270885256347807834771852315817371646062092122664304670870911626449827040612985657920762765774182028006681720514234823917057765029257215610344134693445967724182347971958896463625076687422403739376590562370354578838201387682360777185539676917163320616691979351751356743981852543698905772710181186735649537799854567001576409598178337275132518454430143346290676067957794546406753529101111643173719874986863988350540833541300741601031431579398110151405952943088234998494562516496470315254218047627217795317203364527383277867047022017304574055793297631073327471179970754268053702481828580233267341234916657076493407413720714183388911157213097166506070541529071767362781030942158445921858354494004311290135677215895245800998610991679612961104689501913499651077890425827622159738000234393569853489251822704002546832597596758844276543367356292510078092324105258738049004733289425354802568832493789774762845841629497740854257133965280993492758468647320417992850816404644611997915133984265858538389816291987652945859915403134316368546374339537528263592485833839621911325400168630961020391985775538493079057192342500386848103574966649324352524762958751230073303919742686792010279845740044804391377703874135071785704139113952209333009792295431380941245799826374274718933454203960573401149403751498279421742927875035146508855742856570166804540185433091432387667241550459407942142587072560927398567157191350924569729613144231599909820395116265314683936396145730187121785899647130814833406059226011241085170934867168132204737270064062764725289965777595424169342023026561555194542009625314715056343910266326128797960758373369833130590253772435735367084745840905794266671436588094273555101287153502445099375229028027667632355178659985033417631477167198934630521970718790238335194561010438109516891805138695885320304265283658905577717373626458976970335958363894770546850370743754815585078113073002569362780137800351854063131983543205742829390559402045699516133307812849900293320547311004950341065358124041340525921088859720749281254255101759169588401068723208052232612656251909777063821982496396557112373810277998437999219418239543398722663830729461538937693623808955532814149885419628436275980031215397733160295861010614818605053174178272167953095047699581809806754265108834924874583802309937095265545324054855576258017573450317543781087697872682669618821756153535822465476003158650475189874142419551557047772455858990010673549365363298355858786391298473491020683842152962012591109478644151980706912905640714978953578396682114639163301354198438120337816233003929204301417950353612312895377899310422315608287932290278635796088648364715649559290116593113785009804566150056207828032434190781081643097647471528200631013748548581869082805288614263905140618297994422215621155041323505635080004456840199242833129055217209676118084437321031659746855724746589281209908676724167780375706490067414947624519946279258864831549016450485611078308262611316772429059684068388508782351335237153216210133676473549822557704851820409957694810547478616985138595205278649086511878518298170127855277803426798248299818565138210216309212467816998940235232308731745335942780386634976750996811226695760490088487247513281824154127549402592428444440745734222563474841885086393364435987506966286343874469818534431083506747921830620418507004909004839972176439603380777861858574085552523996090567122261661599587901270307193459352877632923640134488658216014902963792904850424810813631766228194807715975776944700368095677782316654971577821952860090440745477257673510472427300625721855458022902219539157923207839468861393018887262916403548511563480097527164202343755904338410969105454388818744731058621329205452735598572936597588868022043438145663999683846823893911186803555560026019844030218575797041740871117137471880487484655802209410180993769757251617494023023280960430242594763753238355442004838037410798544045605051890919894876211259255659413162177261950802548998479789875533485134817529605729041473387758732225945655913441924301401816945353019711370888153777239356921768681959572834400309058238303724298780807223319492101615274756667402089900449066259941520670897329809445863680043069778413645529792011676965512957949927894344785177319226014533395849093849084269627205857104925518772772438033359951377628394922837501347643096186227167175691532533483800102710670018956525100154543795034003394862869248296885414631014665320971622945963838577677752260811541069284663581419846863768828199451316503800113312304304984960522316079325087059712824528249300091664597245331195076576357281798699174651907245510562860402429561878121360801702548455733851616784674667096339195910113303738427419291231465188470192115581412292990372776781936220124923621618414467248670903021617280208319636677352734377692049748205267925984806017842070585203175612391339298831092976923529907687816043403059852835096643700126309751150691061408499885260628777836498163293534801080963363216732469220564643813451630311333384042092836596385624977973182100646682048563199347962642917032993123307021770691498441422509098864306356190561319874731997022599944954147833760201683898558317254437143529401866608830218802441281060798209581533833617427592669878769289169074292162435859189447051769846375635891830879569001477233456221651059615181799284362614888212747853576051044668246900979552897234910744990460992382404666849425258297938269796316490348004941858275993791994596400915417028663125002900023292492277078961658227562567147669289137053647161870559013653999529264978990414141066554850502291348350814949799190167199597267949135285968441839649771594471839272580514743744146174906248545536950925886646338120571786834356775842689831506940586474117494280391322126245533671527750950262932347191156928952488241088519382881561417526405874915320236859224901235267632130066456125403780409604327535624129366607333609095548449122625904066475450720696595267367250974867705515421770941973128157960068031549370275588085637934287278997676104632182078712893019416389971908522822843773976761752044231714509320832335162346361817418451840364557028029484756826869972039356711132980239073304878491889089083329331991432141459389676837114232046793042929875773677461349790758839639350158848581917354193625217298054188944906181388967607297125452380984837980087977313101130577771321346237142561438613294477152468256840075635430262307110922661294764040846850673769444261050329812323560638690429181079724976769444099131301246024253813091207339291141708696828490420951470528142342021759080746212769618421285778278450640077880188395437510012803288694266333177605185306695647778683897969177186177245415476953484832056274565903739330801172731438892993910141955472376789553611792612240827935982508301162530410841405073474858091321493769565001056640002272703436564898896820817844686852830635790143519542952324559585068164733909325454419126148349342144264455939120690737341021329390786850595722237892866367186739298694256187135556142559566125260299764668833058292280501682180195768715870824804420771246943075108572298941518560877325727159330918028173799024340203744740964547377281338539915626001276154516562712007539029317671915277382969221139360319179583693494963115459248305062932200458173995163690562759781623763808745627371036150824034214738056023471365797248269025146001853297530782674877064425533835302587561988104831969917805052290473070009853914954464208819118655215534347168584220928401258897962145997016066176629573476800772652893365318612798474091868165579502038445838500785332881714999594462586626278586823928424248370955317302121940727274155493172709319662295330465387310112692319399239617582249421289992929467600566400977546306810153675333384810350581570039784903071392963867168425037018681322987388109273601733955860561381335783924660320785906863534026559846388984210546057572572191045314053618370562953948337093426905480776886652272581121272360864668664309993094019157773823796660761271465379669514426027031859448990721986265598376118199920711007376515027217018545840921560783621483522183419717644236406320648856928092520996511882344144347470452287450742443782470764224692369784534551651423413812276844962973991586064137263022596611205729994228405171108563280038088397258581886103789315141998200301820286062866035643106389928837857357620258636183384437361365713841434321757469182560702532453390398025796931194395946404200452526646202157108615808759943168240667366933226583397860290698279800943695564381305849993853577353783956647080932092139835513677875767207257650855475495959517077837808699357587660347431435345131796026209950113338695419232260747276748378244627483577982449917610854962987785079604243163880678173583963995761964342899965193221356967447185396273888437564910453035148067063516342138560044196190949056804241776634901809778791289780867164310209949311759571890288011553774157467994020678067889664641048853464185210836125300819893819607138299816091426765330846150510499153901556256501047386014933953929952583342803180056840803153166665513623368235930531062072699673584565061379451335515067552062883459487565137443510484176580849902956418811026626942357540037670366551652762002189537568870307722194697206250990838936110033289548619651140875090668465699170369783270537677520805045741297814397261410671704318558246084313224226158211634074378546373794412116478280981743895998398383556263555293147993710051997670831020269736878554073510344944061492946566588431673941154597204439437357884060865676159873691904224782610213010249647360365776960741687092208233478592833398576463141914738443625293705298093272455671617575432083568923809460439639388831114037541274275022850549895548878139885481202127486980857368711237699544381657768956755058716487997970117384594426085346145278619010248169331071264695332662266888765838282481071256089207951816946883836391594196546822660902815581780338966569973118886300890015385098852984410671405207661739635391316886728622549353420532384767801605256616222572199326564118128228089186553068126525546929085040305410417534316766115372067464015287389068976246952847633862199030379713330925208442780851591924872828575502506553531884047720788092341636066582999719573634534487924982064944429956948241136191712212418976595525657474684286434696126834592333136758949659881052730036180045604493574573754180930005056046727746555305227564632165722428194739464650377330021756532053476152614155577515319619379209057827395969175025195764322193506966326252538516694822553768115605301753561097344622233378719199057569421198637076758832661808744283761901519063033780218806149237592229878110680475102001260456212754201525498143906985356620175155378766187848167941497457521683691003085216260182533923543142667566734333138094349527754517724330827906366423153767413532907598310888668476338076283325614246098576363272839497010234458323836615374718187264260028135794805934563818929745191014739903449825105364354437776079496278689932882802551493474861542139021121253152386475702690861801343970479571156311061764873989777625392054031368452888171444600235684060970802096562129084111348616656370068910039065004789873621139579332463708505707427517434786918222554382071263490959289074438752614028673482589622337759400392452368031250993076422861107272656724534116222723671954087201207393077792998408243239773996720561081225480728933080398137155235725003672805616822196053336058911746655819265145824371817287048920231272030475648932416457412129672955175567678258488370311183992746726965611260329309822330269267589405671052166540308738119801993173848142299599719391858397367699784337184499727828476392287161322325114032275635399294767536208010452773214003059342989540250551169934679254343837199688448982875226593064482709801219722536500073947940118220369422844776407943890908345746154321483232162622830229329312078866580238991247159868604982175227604224048042390907684589301998993124676519851422373684204464109842577721872028902389939003884344714545177334388435732088137549347764224709044578196299714492906932958634342693450110582612429442887099439413920463912937437361358016933133202954517116956113215803108546625949047266748244845329790517205614825883589065493965557500159859921136194372211519096050274855519457424135616808026904544760422757308237452565533604641805074201147786354056492225258307580083448160944127035659102605406619015998537618044076621719488870145998207521028291226646499120189693303495608216706086203371856113034679274204679543166956453633861923070186959305672652032598071917704357261001938887800975309100411604066116708132196191197897910708068867173569790587017249113868638948025728971700638409522435420442149042485986447217060507129860220842374829063952943895328033511080161276720796870378330076917363554922156553592194162855112545955346368266490982674452471780527432834247258745020012138601437719129668113765711181762186797845988440027350619752386209343745191619595763519610340496608616792287573214708269120266221858623527254413752412895201558059654594133264349267596548186312853704276928487351517042355131421753230908356346466376580910522446162666622964683613794859364775691030077713431273491934319447256159201699134410975267050588566159908246880883973588041134357835976005440060571036505885553825190914435893617758840588292359847874566765142433158695425339590297255396879607322752354622123441759891968655842578875081909164303832175395669372065956332379690681139884499125153807558149419484668612845370802777837475084943333035831466898952121280168939526425440458160453436679053686169049153887855969115976677949275614400575140096828364559175753467282327765033967334807994671221564034038718264854722718591426295801602683304303045187070838489317420214641323985175843254402763057072324558459461439910825463226349254089624481077903752663258009883626204867372804881020596388431000506386297225529330235555589856800822303662774567615304646537865601292735616965652973024583632232748037593796512350156926091911112287086920251983245652112711493966374554998770206381623226660461424361946065193532641726146628146209956993742585538872679282570069963607005435647978016479508924691635593980135550840088835001631925768083615414771418461237391960248818966448626968293809095452615414827427877642677042919433730249525858390217212596186378246765760550211191135896121811564438497390029262825425079944684033157107249040322349894517313877790973130920812036650210739747757461386817887895196796797304599841939922972266578421158072749369794981259441999627169566504511364036689049520665885386812002488643295301536278315618715971525396101683761522937261127070276970488960433200242323263838947982926083217675956929642884232473377113364608402049060498102814297556948672096749932182918284254170807999274138313686572257971302069084038444948663807128619669021704191931399486170596917979442302297862831893429365863329074235188300673869838690549101738411111648986846744023093833235780143647462433726471756519776607897517300290532272089445722209679985595917411387601182821179133409840887783919515695056191603797139305622324686569514190559555204159419511866732478458061603569029915601324876292041045979957329109054986123053334031674167262535452368322312969739821000116844755708384386834465910067717850663609754674229275796903713282196498778789189914275710546219553316167651369013240780833075048439661440988318680012051336612917219276233311010874790559254521732561069487709509168497774239898644744578218894723729159577529503335737274694793174753942744073392998789580541235455111176563260496495003475062864198750517076580594495125540182096770467160577166716999854365042712502195269007149331065916634524582605879428287147024630491298016221572191366061431544910170191230252723997713059173348151700234145108979084548069857376885335902467213384524599387122282275964402208199888773449778758009684807225959994307105156991036786676365650692597944464329477917210774349734263779110346692261221174246948249719876748965753677419559598348826736678549692818235433758657109637462101622749514402519715218908166008319358487963925598572992043102285356633658435567007355926661955965455603034431138398055775346207604125373201725630751491584080619567967445268093027447857136129940046470355108995872608255370459144874852338582122678623323336232630734660516347656466295789252057685644775629938582302718227438656691880651125562159530813957592739226594996806785963125535649361029967391331955938575964778533537805556834574323808435236133901966795439350785092330832987775740290154456513725989538460954522658508797734956413530848159244674780034618172912981137580284519917858694811154058602526554579825814465964349446224556698962518772609216088193227643739818887655483229067892798877808078653784153810970939959891479294517167166484385638245619205475596224410325536931298797699947378594159960454067854043011744176619379957454525896128639699205610722394806744464873277422716088531131779387829812887214581551044382537823798274403850069260198943945203707922779282153056390197249545582725042994361699141173204972587806274701171618689252682139657619528732289407229456531980484930990982100984850806170708270723794744312526826498275997182164111447103420286200023046765860921450614633391010450385654144465676109706053692280739500062622952398985504071503999968163709985176561166669840488249379189090082185533644877471052372034278316551757650672547518062410348773044634943421929185292923606777838307747666912569727285734871536172655242450439669854725098977107416771403706970193632737572194300333036429427231084714799310886605960630052955951884500481049346028003281907740524055453065466789508616399539880164312803499689138305905192728550477565240422503377434844967756426582694137508509366113316600891831256435237281625278480174528086136544492467835119815439066592372358013869824211063922146768426416679732519010468963586624218596065845063864576617877099819905241160866608318071875462867762568698952317503123508597732418984864667378313904218755107507919244220681811079459473633754184810265714952384396593559818353980264271964411023146906268967741155273723368591473447362714144688081335806437258182062471963537644818096578453390271254277856971927927999528299871600051985797723710488536711037580829505598045004768056464436332336824531039429454996759301831430902291682463448196827253517493385692901000055045985983062261907292961919848068039648017152892283789053755672447033641766101670012433251084346539240471284160211401940447279792908190843349841462168552635094673018494210383058639211517530877191748341676689863375196938144136653029103843247532431159365284742643937068087500465634757576941980875964286763352520929107916263073234933389945937232473944545975384933712975552594590905828695304017631364075738958483938404205169255921933362028010200247137616921000378999312352546641090419896515937407166262806352152002491885113804939332026935954120441194570078924095568749805610230596032328708423873568007642057335530936874352685071018506571776970737985184840624771751471596253530212173426571824589722612620925157013235602175132075739868150725091856838644194937337398399831739684261084325032129936520719775554540773560164696350167204523349979375286512402952589904818692079860341808938952788370992123371340687374510856392700060145978074827442045301145239963158138214281637673233656885453256582779365208885251882465819969551960892731814583803654433512881829439150734271377459680597893541634623101043162743633048392921020985193193808696638971252880045654992606838480783438613339556091014696453511049309402954780623071377064639776905403192741690211409704819226970439600380191806650485884510699555759542787724422050829046099098518443747613370521096643608714362320035906004074680065013111051045509386956666688247343855989081297977345026741777823810947923719443072156684918879624196089082332821513733727764932996011429764534650875116225165363966207445614053245973466566748950167902909747780694676807106570215393346613468253384256407161392035853150844222003564500894211232791794183779197076396377225337586810810976018729873134969612125665635013254235297033193050153580484510986858898646994578316835360816327852432128265048851524289235829115806199044473800998794601085885325493748499947807052819037890985555762578334275307297668555024915866338081114820110930088408370605066163344028466604196570560701692226794456066758487848154373490582424996538950451837291189206467547371642270588647532878080359884381892034989058501938395375272877416269150832982425196646086497991927366464250947786372549159892759287540934105235653640962170004175321638041378201101967177364721756414012163776033945400538746636770115908161248507850765662532317230184976527863618771638766220792746926129343472220519850609785684609381837713913328299940487413991753685334959866647988933544319789407716883665728111417276796584199515216407856649420487919004056117457252108231638924981935839470394617188358781332851858097321485683753597774783716950837603950534426870836367928306650891107403078904895335965215203474441089556402147333238367924837103764315624146511166070947862854868415093970675617208758379026755755285638639328248063793980159440827244689841280351002173682629503560463318444080108550407368630771849065457471048301939236993677021275919402775632116463580468421852131766203906689494208523114477717289368862231639983960630823710833526431685272186540196479380113943054775607259573068503904211923748186343037703873357766938412823448715255701307873365299593945750430173323233225511106086031077149339784610858851457682263596088827267871761357011859639607328577800826553539775079300580823912841045249232500457308960045883954853357304263458895856455126200541575062514989008007667021186148376357669958763896812963854170020900597186867468409696670373337924131504390019125197678985569600717552225157451535364298635519809395052269121703018625039547222623846861240508492118586270906713826827408140492480932984347795431706016044044359904516959066184259091868377437299472765480912473588377674492534046015759276297612930054367737074246038336537789781394487582315075391118763256720691988809851389232902216976665283642576878153375978337214257739085113918819984577969584951346264669754039052927655647583056113859889031644096187534337529430455277094541548801500290062344674655281568499385070490606655938431345289349087634863384655892820796148646916080453517922457802932282442542581725363970426357438632950188815136437953094187238870384636857138586967882004856460973535564003295396419793131942783455061370455064477569948976145167414477471882989946073369773107059486496137438307652188644694317508559907232045078503019820201121622731081934671406799046567065973540211791905228292798639536758643167620009880401733414516994618474943162586614953474901935936252863702740480613740683556923656900044382395306100152759503705065236550974222351996158225313039847447022165303269285203993654604339965385908340021400203890526309625109456957692964046037949361879973730382086997419858724096786831254260875150615921739088190667826575557451583047058152787596917613092917871120768030999839438011582966804213915017213235793595619958556055559090290535413669574619103478923550278409442371491842289370696173674348825422417984404669997937928321645911778104237771173146525047628265989136173175053212632098446365531407201676949270615732186978865047687420624695004381123672860066158691455323703714085634721263727921066239303819190576158042551133196354590306608943309397332242165672086848837890432845168873535278145283014759783335236422224649142427764389412255584663235409285360507412915360164672271156085363125877970620766711442898720414522983583211325873563125336153585683116008908489141147442812450919545174672115997093308153657643779159041005921704014801803633290324539670529248393075219244184410955581220984931942280136858940332958213761161670144641415353089826922296011538150858841211417914974714407429784484288630332397543119193858739389995304454929918439109632402704720870491449442085805361392151593522193564160797701806342239166559794307173862759967149451982129584572996194823884351303534382558794370493860226593613472802823901183545243128806630830968919977627943239857704197453721730636307081458373632427487910434237346373377731571254584849855682338469650064806636007995077012967370709425919666288910843770987113598398272323176646708324371011340935426966248995903929615008736421978455926644174816123012941443373336177449961876948808454450317598751720151386855119154721192885836896548734044633905646310679325214025635505496091871509877900640761552974165575465689997819253510071969943952859923341999993421298737639478583499025461104114333732630304601093172516138089685109000734937070293491877087069028082550111966830208514845341695198063258242734090977848976972480035682851448864338613072886692971854823463817554103828569307474677201643019018538902824823523482810341966930286961645626265807807879220911997584812580094971368568963994718233346816202185108610804195017033256269700226820930304277132679186800806515525811729780760513982745344708428488026481542723239041456516297792644157145653415512064164950527239747052811458704407227391082391938868929540975128725568177269147856698073008902369810375161546555210844950234511560605394575017963818052353022883993782894060468169597554727023387404764226351983317927617553436211827696653022864813306578716371647969052085047518127635320726063022351953012440283552380827827111130923605579097363530989232824535769511329984199004183843145950794787412012914095221569164547945504848148441058766407658423349658057979028838671256966600181518256717890168513643495189518673241000250827887621872633723143818892508852304911000423289101373044903408428983181886684090586899182837312527824552314195254821995789759033342843728280632237135536051868867036960003256553085884049230364734256657650857953788301065814073614847759640759285596007126211323711100315948931639749521112319638759661221940812317259353499923628051044003983869990007952220004100587557492729564792561794218575857785536003099421897514093660718354262523292959533015927991422510015731453179483293797518807798430045641061909863458769770108465876808639767179783484774361523298092159988500880977926111716162704271466606633214130356388867464185837959539529594564189503204581791577176895684075339711051624701142133673373886943989158648409692759653462396847274791291619821235280895083827278880546685340847291617382901321844461075459433231674554898053122025375634619824573538958845107874450840688829851988062224612591209979534375654757048245457262809173985364705456645322604745321994377177302215607257454402818295289580471460872884267877595726559555869759407836775587401572101296339298339544531088706008115612222682128505031705706499714926170060750369497028953678747115967007244840869012932883368638368268418025521276542677492183415882776321755256834062903159027080652039527570594603585247795937204479752333618870509955276586509000858203951126127737075961788733020139593787604669860363654745274570590552858902521623132176611577953212415296017753639258651801806830194478684071562488539128275233962821020964206980236220307540864286355664467088081039614960396448727883953819552020848191171908116653633608468803233224858673451936446137488591259802772020671298766747809619699508017876599485964270262157047687058074381182693838755146484142678609782872386816140488278077479273457028761302975997046135730283752965409087135916134422018245576369334382526487659336881423771509440490324222665961208094651542746044532889813745973446112096698182903091930059795996644250546761860129344016184843108500875556132861541320407303738899518574046095187494161280831707786214785776365446076292221006527635658856962025331988853472409613593282852455426154613994062659708851937922341517927625673339908394875798450236198539637165387417947228698374572355957900480235585766400207060966411231495356413054003182843371589007553145304009341042360302544665678602222951930662565457255642520173564596304367267765650708228444304623104695931011489213833845428649098068941606977167859832525547789147271915859258536998750989010960262828059437239841946932351244436276671674976082171928157857291277276017013107066269771425254365465095640649791123978863675115694414559452169731726334992304726702754626865563955956445825970502593387291552445737905745183097974574964555115455484437868808225116557680166051089432269105863356250228634364216516710569008483429752952556141842892003929488896729711521229219974091044753451468130669721559801655265082404402690844261196968120502600610145863784080776423897269191888838895228247055758054301852587684972016762135392443898251983691842251310340446199340897552760663931796125353717998375827768954829437350789690866732373594085536847187461707970915842692440056380968861806243354407263615596023677190575623069410766356981972044378398972704203139144471492486526853593516456933721313781433242597774594632121822447166044840290390265491525403703045145935117649754660794022789021431081185037364120298886478600833474562870539019422979700809285775736098291019039387953822946900847922343945970983538191765301679313354357151143677442828368885740456188635414632580136764697951083352674505732656358625605409928434905494490009744630193195342789633345677565533871655093380174769831581294848638669701320671371019609228471519927797927088827839938754631874263800863519414864797013405698950040835346625308036189955461817233734547405025226300754101566569626606205733811097061606253219231013837480480863124106804619438592463013236506090952527277817372577660274459403708745230036857617460260142084432805486157089572350949981748199822906904497880547766574236895800958708237241135446964895775926381624913289342709022187829061006889743577137699965547372295957068287252014615499008921951182182750877415783193923032203888375039682924226747715067823731276042449861965325695567800769645555605289738880283216651481063456580354987860714190137259706440181072160962472260642790324886744115847245263614953932190255860436905030013896068422612468212733370887868647753263685149858487467915082781459100554065115132235807249196876101349878472906240786652981283785881861941177829648633793623772880941232609152938251307185631058680543170900513407472507395736698949833007993304241498692982200478608416338924645621950499806278246470338861033508898866444970765786580897686524257383942166440784077733753848161399069578255325652776275473646018835090968456232982750915937561844747915924776674785476081376682389943114536680133801618022305898720293922979770217786271936913128522138010725937699263238542893714299950058667171572072574619887219083408255231614066478446042553905176980510735184740740928552335062858235995524097553671252819820968204757167621081087722045586160421535913093701678902403465257628172196191290488089662609559549934424624597341197135714127964523005936365222939783561216769242909904227343301821269640715232523975665119053632235143593969083213246895532644272764624054658468821047632668363540995028353767653097038545442657796825611094336478841962941768202308227709001245187716672416092458497964585144975098504783024938108140422181682087562877978374841772234193409585758721015259000809044849858871314676000563217827365590795320925310561908731171281698782115332000759328647274527881520996854472547375756520807700426163692201839265602721224198276894380604033880009753444364237460056712270760237302132233028271305009099127483909769556559762170793581027867055629797326498584270229846752110476443863859209343338776544616232544488096639974924444643262712776361969275148346156912068691828274838352157640109428379165071768830582085682915462674230771569811700799175578721513784835894770734350045823570193057070298454442046167451323471491192563679302629877906317624507236377461804238979928891623696589804100168051850179104566130735287160692379770765559781773573314617243314083075696955449122990583614299286048449478189669217528796674179447455445337497669748624792215317212966244052544149628804844643963473663032758802643706021670057492182068097106640746651148322492061477085763442915372846869680794844491936853733834496843218541910338416119736269298948150696449680455570739461798986038556423302453155528597949145457619988719037730633592845921254603546020562177642024452736831059374378425732834510354754493825963329278429414219567171761588267418197672430709563605064026127365439238899841200179817891027149165001812678930534627916538468100019606987068272048773159396729451402267484428442548186218934742883484758743399346271448908368107154175356473186001482753982031226780699040760660411543360376660551071796393599033851314195964406388359507870090010784856725671396069066908394276464530160273761120788895325008871841739567273757161870013056802626824989504055026116347599421518437427454043974244499284557157187599267297878646540021009605058074744893878723848438131494174588904043684229905097487111797547047504191066506034030563768639057787208227681760906086095871130710531239420342556445964451201800516021925203514084535901914349468769095046816783510949475050238816144985847202895337136985298519727171401257221790590250173828514431047612198470637690587260531747533131165247198735324845482983622049387492794157636925033149491581541905338304385429561326999421101212562027429952713404907596846613250169655829636352612614563639837880730677354241958129120537910900909766732737734627502333073597718887795905083088711706932369834951875888634825839240885832134654815423249754814650534960443311600286227404357185153202032198132465595018819301908002513364833606618497237536967673913628188809719975254259115266532393409576405523900065384169689076015836635862459721988894589654123069724352702372587500176706628859181002134117162541052277316650041929868241693387511914011457421264716929837159387363072023308872839804565277248666202898531530777592730380831267042880362411119808805298671708212010161903376121868582124547946897496955991067894623203411618359333760910672105313090152664306533662616603989960691536449880302178978432284638696675445495774046986755355881366116194535666167973065350851877496803240724444449555905821683225214706432651854493907676639531729360896217915875650110737736269121175642538338517451361492532135867612975344932032531978513343027179882909032641709839864122236685871317465044149331805821443966352230098912509390301209410054101540943442242423601940905641248177665586377886180470887519922804330793465320503791034524489170275662964060579041149421728384443548111017548698756307480084618288885704361052680621290917138339844019409863849096594517780814146012965008982510118314809459639111793632139583885036358499040500626523144420559914318515792938846992735574783983271277159462962241749484546894478113383638990269561603287133207095250050362956274536376220754175662476654062644950343509561644423581273606101316436359489929590120425031559048942019086685786612223845430827153728902792045645011422055027207808004295008762412762681244461647922189135474052011243032661595958395489696185804179146481855691829494780964726163691841685570236256416054254645173581730640544047526863905892240641150453826292674799218867263111633634461551254008067176907589774838399523205915776582348209267993761726873175464195133512402648463742289041376907706734632487100209926537218075810622133861233980578323106353435976048087900953545114045018742914190038346304926261641284842093761711471140276341935514568936735279781079806661975521440537281878566046949767067602010517134926106842382451162249320204310156478712318542812866330682302054403155844543768794438396639973844155463183703528684211710070284412050770428026638182008533064496683552609209667185603863864990336731478114387403537882024505888317475507139242416202079091336406253300633578578800934449279322056992342637197594306259072171092189632922403029174212293761080934351907641988613538069989779519606942208893687340500556125007780659241852826043411710877123182422798618436282470425285124427229581554109834312381067526983493053339632022553305190137185790712108380031223990781469875602595731202716220131205682812684953338398855047616199212531294022716815425476282644677319350501213284430828311148874098577762628490682474991567947143077803035764342368347547091853470013423561384835590672288131852072808393864737711516150480803351440660307947331119384401633723401795328302813846335499677294456838359195567423529780031093132074084020561015571494961815760793476398179703187448322378644809119937584803074966302377659491349223123357002839556073064525360206371440933940338801942081722350450016173964731677935297065091231538486821266335691788513700693718804813615865830214959772455831672202717942196649720456301210464652336051234398446053452155640884837774183596933725576036988374520723973028036677588627440318673199081197733013247381273033140832491389784187132678627350242957444942508376499270699625220519168440973358088527026046714435691524120229644942109069301724423040224584482654415936851183451008669990791595369183204310378816396306883515986009292923492687175562905921375552220638210592979651188274177313960479647649379277297058147890559288977424887610880447304222859237911760206402784750079830289337815674585676060381463620181797987808754386268360185393466456258145412759141257252878058650520999326189440860093108195581200025911166741242578609995601234104873583210951898009026956825021058254438074707848405931496491819764955286599046582019387472864119950874005613574734953474760143473587283442547650520899088423663662003010171240106847558067972349425369291653751452848995817728151465050023381264866709531630020733854560394979654012433017339458842421886295761136061179181259231529099109941536463982685001704917226332071801428571182425123886599007623338405445055439601894503097727341435088682230737449879471530321933370148671308114156809523057893331282461671612988961881492733675897419742157379670620726269235861100792678467078880122122487749313115915628114068618795334453634072330632809957144637143096251898476202632594101009783018558065428997313907251395596787716287341590769152703797587267616964052610642055259717632356324029783112295971509387264652762448665541842157491892772603218938294457680302649738580412541137035130131734995366991730550391192631842475566706811850235798938605602390640405107930828537898822117762170060971478208375824585239526207331833604641809854319828484338314391173666723590868299940448096941224633107646692304313269678540172808739706631713363715130373017026526298597455563445700059044533385015730972454207857429759247384908358255852992299670783770904907463752956696447102974730324475046590412770082531537470731151605975984194306366522623788095921330924962842776559292267413685855194652047241808112986891793134009280228258018328618241484587513729633348739950946926334430538094630641994622788630843233280853990186387546182204427821310450924330857301646735997517410197231596347711509537453379360265859518906905196760411055243898841212559198498436302073015740496400725120209241859945498180444747533652181809613574934847554293888160277673939862131321079980255232108722587836212508259694052219544667114342328419275887038412614158108037681154353826252195411542831898610196513380342819022664262963441118322681857994628170617374306743098193967987106757225828521495554635874380027952996408294016180433317448372616030178942315616342124906346923049918442797311824193993776680505571527117552015134758397018369210179910067297178140320471781719177636200746374951582168908966205017507169500505094585844785984648031745038314396373237937135558863447424533389145945411655020296912792532609918631732561970334518690493050094041716883592374137184417356794587359730413073616232949519358089274394437915815969949174642348126296878408986063227290622574219267330285563158979186276009114145623966476160536223902746709054349201669355468753361832427998622641459566862989041373075393731117560142516251726419914710198023876924982392983084675422668168120995336247256892543776623395354171694745123197275316879369545634000338441431537988862650725774536382218393200759560546084748904720975707842078189019421187963999406771730221253141954266558246210302275987046104957953485646335598759146288183995470440285248648492608272656690384191713262166643676582401711882006656916563063934129426817158558787128238837010327126656178555588783040544277971648991220231373154524634175083728851351468038187873568040980907380427083350659535081459631880072890060704291852781233820106061296576021348214012408494523678702322641312767499853899706767439659699678817255505179472691763670383684503354001212367323457060302186671382541117845412045953385510394796690074344153901743602955298273338811615988617374397799714461483479591777801571771811016955158270868345470197429376145803042035344281310307367682369288071596002574508786448713584376966367253887316322905471855998959904248590954578708861333902031085776627048434726796406512238082969193765806521116275924567493860888535289781928973504683892792463352007461355514096584399449291099568099743830364352380402430545210740943082330399761012723124764660202383752597477442016023381243771208073119744467245650620570849610880006875463719020035809696169407753193569338569611504820757979303438123730861146306049224404193159604170825159533850784421687361260216833215235751494473965217185638160725456573838178299409255983037407743588111763169882941439462276082223671352526401301180684570187207034748639679962081515698503203187888658992942739409335631803482599391991245903972524390769089277356763130990587155002894845815078547382418015102698943077949399726207349676224769148376234654467708305494886159287222355227502672289393153043885884799482252747838654025741754090333712848917674845269248881873283462758496801144245867488346610431993770574638574370996114175343139407810293128665931984978650517169400404426580829758123923016613038712867514406706251671560671199439546727620416432394053910594674894866090990408028633172732897612733352037135402801805193192417620235228677326379784864910284414622948195422194236021314221116651375159141548840825470014894532143805690346732637659336636933157778767037694026942643918365998677122653250006180455015367428721366374938055618396204075369269898631790460967841799928489956175024999535192120540767384134250858401517451793218662602326172901989197600993679997367295256163233056652927033841196948997819249002344046874481388460372811533423163580593743331188127279054339657330252587752805574707210483192296201791138937736458568204189546361792156599326733402584611500230797599737462310953773598416484726779301811867860297901011502339737836340799283636152516610667003132900134560893534895437526534989635385033338345361511472086391172437711077149552353049099376701686782783444546408870354033565086492904150805147094881314298002704941326971755379700058300487626325230969483372581750049686158636305171607610168407845509266891376431592837020961532016827033807358852263990155611366748617351058000000592775877714161245754099525603494040679115151061706083557590915167532019394581864314990078405169008432087561431622244572089330704768648898116609477677120682209206889790310930482285847876580271837193399756198209655273025737696888211643786367412126863839084047139903659851751580819282310233897918796887110165693231770726393122624870593957504260715780274387886640854193212092837124879380206529274916205444559806561034330705077779485655154144954734925057105149503537021939192772944481047118581457848803623844098221906145682628050969669984549773665649083014853107613458766837978423560150396244506055406657121612613793927660915292746681092274894436625186480891261959936214852267922525238909980399200996645521030944204458999918739645283650656712556378099130770904106210463124047340485428526156184810318633812830760817373201484094112444019862627203606485905036222573704137896396590195015313731389886275355388265989309979859616314743687936430413504291899586167766119557228337516323425131490222537494462590037473261591836188838694610773249459039987533246803835972549291280027138394097672950089866985209240464821628948804088121805616583438178396272610578902563584825928479281112656501817303423837646687615182635907961686323864335445820054860988012016931398171040392681412747357025915960010801415422601442014350128571876712967932524475049390049020621748086267809844061752356188018604359516349499326879476381000136040772159663964198530803415395550823675289455787369187386733417366682859461882776286813257707513737673980891938599801152353305422368501953203277230965695087195680750591749120979444169111554775567539747854041216888798535385663790060414960821717825348677503579096301661823129104363692372025212138089019891037904999072601670398595664903462245804995438193502779331477352531464273595507808002716247139588984086921510259417985154180379431960646846249099673240605565861849827228209486169711885217400228086611699077629949027056508967911513438047491528004404929073997417561562201374619231193712540244909732008207525500830390742724386531830978019553131869770153525390098928356890739099127737849270595174366945213919485105401955606935350462432253989963833316484062432303260347637750014474969391644354343707770014021585585679237199355204824422489037570311942315176502481438493595988594046069391943972166082650268772780302367103824274839402924937652126185640968448360735215628375720685957014270795554200476030300762749045849606095625348532751752239566347109590771666230770832647882525272413972134499324850228582185005686784384436532172791952259375843637570234320631037045213717997993226962624107890087176973549902281811204411986792212226260171901222348204236888690325037104380138262692510612022088712979060526195701993552951519671008962939810847839918461756261282355373237643047669569069792862831333052369616090881911508943856896693096839034716803300580602884251952872390206092546711363084682508833875612721033312435865433524249918799745151563895067870004451438934308553802619173527445757129047709691136938125787302164165405142184092183151401533631683710186584024838289177885762333893298791808082819058128744114225847804686509414219604999036894930861235249791150670291351529129488199237639083526999594632512659962022201037216748371200002577251137110552012083365878174626308391426208327053611087522963647495838083393952854349248477285823509515728262984198648485467332995533843202234642406026800216341303187491455956130135605123993934171097982571874372258315085216722581304479180055026999698327656402974002219948771296310997317457456964953355917738786203861003658934197538358591612954624657262727521288174847331157400457147216561261587906129207524746461492724286436825504810803680552024685056077151930891366212231714206970393881123588539912327274414827818509994438111759166934908042072129278000035351405026498276488076590774903995002042108829597984419559420151257883425228971856970488080384713488248270246824618489639096624255711926814066254427239594089264385636396539412166661636967453356438843622810837779624994332209436981670800125422493768342200507372475175409173740396880640255164736292823107408845490184141517806704526071212167526320476526808098344101304712042834153668708036150561680039795071429153246252321826342119508568479250037065119118412978144666230880084803724149432593436837669807465728228380274483357117714117623935939797692712837101899075147747432284661828052426984064794398735544213049389412653562962790937780318567535584092110434664870157575454797863232650612616244681133917306110222478498308605013498942032723269108712643778347449187746001792901782554983856861896221164956864261771294678520379893487179976252782994252084144067575730085697242668843640320282856300780977681327632525495277468317726709660386938611771071279363306008410194669696113568926421821145119694727362923688547528522371455315604328081174113254415849242453607488284789181448076833682464950963536080520130623949871865252772663852259972129377803173770411901313279702799777766211810930117192191070134833924880759049690418808858399086597714161508486174917722777805641542494761889137083396599264168564666390336223014766172113243244087170686957715418149490392375946425543661461113663617525138606350376864903230853528366625589551164535657070570406042611923692047417050780180955803921828391895773290038088536440519051747513664741690039117594541760474742512103151378475337322549157668954813752729861345274946973246333102028689266564184584132875908617342074831823371304052518266557155254440435873930014348503921375779383449145731706164627584097836548104952011378894622502639787289659102196184926343974760272719393812723665919563086626750893754821009964803735632512699735257273539609996409608466196588515031767354744917353082638302943870716738435368767288568811154008874207559206746175359928100701620237873698101271126193237205823096622905641934337545593211800144950520669854798688971772509368044625045139302927525292220179776004144328276315928084059387904578578571926135902039551346510051727238642607813933938188862078563796652686129254760193598580922159116846252299649988919214743422625152763164501024939035713405704381176095930259221963249056750495894714050476426397107044992846977859780760325654228348676126449557074646554038963489890455448046806340007060116207144242826495761514111132891897833707528071262503395790549337510436979181495887323186585389003109010531936440875571735194573187273163736781250499328963748376575772162147265345231770618203174485033727830365909870253550768458880386681092624211451267939709886652197376655130344497200076438454595064851929668892014401138732189160138772532282920170491168896894150559490337997289318544695811891299718850252824073660442375853712245429127717602054051085605737630523729134884443101180077766910413374268025730279711701303328958839236821289234850067397956166122614350312960366089242492881265759969389422426388548889431581167798882874557192092002576721976180339238843106555699885484791319350048382384417907417198873219826090704243729404415885178060862697297333397767778610957594596266552139999706487407541348668633662054916410364094852485883061150515130665958277387025117942716462833897625830061205267515150463975945598401575557297490081774685880708562856451344861904207964352002616299991753727699239565460450408600346701948391491555490344306665629420236145905159289080998415124669675655809264692609385388870530823431352685512738640133783933542354854202104666145692865742296959914045649572169739890916784544310056505807551465537637891389129918503290740463204420014324440714841600401180761832348450479112736186706647402725179681013735939706284983868842314735072109159135571325054819679921305253175427944916968162181404760787153476607990464617123917922255026755004391192068805570041324288614205486658301127740827406611484500897783398874715468734083600037131191562015781255313629109337914677187738621215582367177980847392840787398906544517457425612569467322273674819395557994701360057121571258402376009978979106749990299690970563447811120541323588941291240652037872954956836826422715504537724981810636141344460914416498415461549331575385407291745889125078628989221617611607162660599725167520268404666955373113792578958547978919307230019176121591091513315085518840702676019991630527714045061243216476094832517255736240541692154099991088350001940508409065795228282932684116169269723015815196508546436704081124791410968189133512200280173711383932150235952959917876687839857341769468316554886246061127618164669014727838435595400112476923834782224156780579254705269047454252910497231620638068103642503620193990842622680835662788167437507616435730400729445944700851918694434893557211800710810560867242650382975893908702432850620278838765635801233411587306296727591500074625487257339720327228866480188673682666913518999713608003671045807641302895227973086244291320158005068297472342177890376614580872277557177776919846276316038613278663455514648460786861280364800169349687210654260813938205071104731775131665292252879088281489476952340729328912892973555961118282091881792559383857286759873391186738684115444429021024287139665529390470010337494474194460825072779299664388376961424069560093449640747733363806449246967286755640688259047783797993863212254758869307355862592538497667566764290967010450915674432885938703363797220069460362411651948819407483086750602956060944971786399764084604324430555337201821919046703577851378936440307630062787703454392198982049145182909001638439273035920467522595544167093509167103836261843105265390770536626076682348083630269859787613934134071490770571340624681513617083690582980894409526170876484315419131858665928746265844353431187035059900300644289462801330459266099839385297188754916172196205953737717969859488401931806209641126540311057254088862472109629403978141268722114288822252461191206869774361308046576602256212297165377482066972339419483863809299949798575737143424672731947606412709203772383542765086042713344791511475785773733863985244300757297320634863674140237492887878724952239723257918565694923766960321362714355411000645731645779703271024035648105696410732368235115747973592290290666283233563526049523582803883247014076470033980679358006715736980734108795149904556595630523261900325170491572232656987104679867592040866510394118371972089470003668472513240396239063477322965782583694951571932194526049767845229792633490830714451317847428727363722430523288417591491346574224486459812477520050729509079349894705567599536973507464455266884379630207981062942505856035179566280753486358063341417809472614798099291315560314891762978022837889083904493834984357813903060219755080903083106800440233707366767322330621573042251611887124543936893974166531053520544531291073541595330893561076259184192574367795194743608857831807784963481716566758181908277895647294750723629754690842401820815618095843072216529073008614852329319745349333795604449424982918247114282392162261236701357550485080674167154242367503529651787371281045422705743486909930113174689842409765314715179993356397717875187840950099787549541813870527708200029606412099784652124554940097933422720078902842756881245597990772591483484127847636733727473414360540879565996666367538351341667990298587849836080337787210841500065200084072021875093567125553284694284582011110636909310047176264150264578989592026515251684103150518229697144700799697358877827633583765639342661099888360172156168962026689878449222067403106619714375575431119119055598316199373307619481476534512587916768871667126910795652009859488848711544523397409228208105113427223019164384830381503089781303278033498194363689693494580900834224170407663278163659838308257758230491316259831198978904168659487880537924927417449885476813101729522907887132235783467938420403150159258151295755489488345556883720224310178841196592941178168886009931429220027404503293368983414785112774542553696401477616472709678763924048383317500362650967018176878881571469969928851018419872968046201270460654614997234245075503002466980698621562233549293148013789002790122822404691383511412446288534072777249538449669967700605522823173534889569043579725607045149294836074985765562785750130564042354771471147833430562807255031881496925819521337465276771852039885159915976840978884028579787766133290236015148208573798954894632561004890726462339728233944405189608954843538821690557971212737011568495130977828711283256842898574771182863395150281300675112973990202363301285951570088270240529778635912087752176607851103982843393521223476108369188327715386551192447801825723400542375916298027262321472240961751395958980740611186320790963462536411374705150532819588054917662398864339632234314061931743673521143634971731958530998949458204401423983463266210541968002582973530410979811330580128413100826473357723777516039854988430711629739956083581727709077230792061933717505700231466602425836593627094495509206486280120608237908877997324854076805737762742448396062232152784071177835247753953062144593484716158997482249534517849592270216335732898850211626699712537543717618066270347920950357173296283404331415746294836662779415396372168638787692050626484459443967827130137236504948815398260698523126998035654790483077131143313845999213338231113095311865671633731132897837292991963937140216228431997044802307590380337934433497106036227095099726991579846124026790755792100139201963546650907743987965061097013867678503373081225721493406348553956083427087635446873248357462866190139611261352202579958506279016539837216414783401483332932601379992629596561510994370138751739287492017362925339268349056538320658091508833849740625307988928159785478476313869463148979789361260774730158939394144634301978591659291983043054971392690742407897379088971303018977287887537998062256926303756570352248984359031551544789839914813927031202677579500360924098424448987443483941170503824978336634917282609225549028085918085149326531267738008472159526889377561422639336557132745240620466204116235218004853352375615473614651079228210175212600790632097917006969820227472832957984935302989167021334565849203483522287196747015701814760782756544494793312831687644543129090476069613797845121679825978003960213411101432935156778891686120693424695033257401432419652489261270258175189724619267099989736123990800555994333496875411261783378970311392686212773353308102043637204693063051148383149761322586562900615941319547214875790994308112526515136945490391335300447665048737442283135562842272563539127640446312767213795309995316083373041608403606696573460155408228856085899576206151831518310923378240775450432758282671678418403474239213444589557520888652770747424106329624420878507498207534963504487888055258060494194528316841850861327841038605926811351294622407120916912362264390088298984519755695230744363845827897941279923515872788727285800780763824949120164793957547647360361732088789475180565117223442699741415319072863769518724256762119695216565941880112115462222723011256594120880732913637768821481030114699720777433167452769431613920640375136843764209271829111122998193969735339532764017959357353878042476640355302808137423217095011117136611113286263898771183178690345988486409871898004371091654274788899744189208969911716302869194127062704695067435821936607064128868426544372492733707327592947080321784515727825453852150043928659328553714027586937587660808064588390296451582652759571556207648887732768797346831389326849123111390329560993305644685978697077154558045831390578204932557153240210748834309973315945112940509593484382290801050440918939890380143934591067474394795906994630769910893720974200427763467529239546439124884542306322738510569770838669780673048086201433179607625694857437208434872663795550316010007388181044280960891465733153132658383728261586708365962001035252800417874124650944930830897237004685976383222094346350163686276593197636638246052415330406639186116804531019903784098010894763285592767165141166748737450808775252390623323681823933325945807580177239359354968908778484736006713658427067620823327344052918741825505650429395084852601169469589080531772049882247266937349030385444340847025625555032873707786953616987409063566130276970616149064983812775984983948742683582043360050471724265651159748550941626392478194048451345923208172476440638129202656473701838904496313406882091998288053142998433832148139646666476533777984162491217333044364000751071020081582881240733131858836023853098373137335798016709209415082722654344663068276801489220151122992788934058376604640145735064530124617804103893969195257167588236431081079819248523564865328801718731829649595731818617411983094827212442000169588632772605637921898854966077807454354374949950885801270128919715653147177284015053740433148175576777224465238980109655509092484405499450210412613354797114423562193154010413000902961057403569574028915614982277586728018192906268958654704185304401290661633331030417870772256158094065833415524323863976257501389818825156209280541423214464254383028711692986311963705119738029630132229168423563386444602126745177661803221881900404032214227016429614178974791147760041585164014211483667169107150330215262397661024487949708574352622122998689581098665836199943465596379827419961080768762371531806673424981038792107240527716809079820454124611881626429367236643284752183032086806710207165317242539619159784307889641422142988554362598045965041839717373856956698513299591130039165212006984999211737652703173139917358484146353164706998502168455692893742544638854665930429709911345259556567035900763229745964990842752163736406017602901988969947403853013975531943271928636752467049479897939888499922743499786666671291347263203904717335245016403605906218908169784657185837838599126351124222750311196445593221753828452077550886299317142658352991739505765470488071249814253162492339564246831146503148715597591609969164409303727378099641170442450130359235107074187790519387260027128510663278521641085425921175802424759791630289489223428419655673293354767936452660943146892793311635630505350153446742951699536454603134888336830172413471518691056327683105610013207690391311914279764645735064989835365694399231823458239035512936626264067917810371017826935683476903728254571422692727808661682449446750695774538813696736997339998515903948896274474428843623060789623951525606065564693796157891521585418889810790924795969897957254358684882615056312315253311729010949288793482020566306697389492602384972290309633753279308103452035055957335028689073837994576026530378214131346308448695727615792709789465049960191428357918432977026244925367471955555834008465081389746483079952324057171142818432385016853665604342304094949046373890666034607073259088306437517911098094447817156261446008694465540058807208550757003812593261473047021513818694498231627728941908345169150319473375666813684651202402305904881761267154530180222080419944496322972294432389644638085779137589205684904761195893043955030470427197963147093931830911130575370378250580093430899907487661933295328481280023517505429025724882067452756220936118003780105583180617780849701079152482776192902354411583915805025031257692072910216544112034644300831967623132832379816539424853020735058422040419813736372825081925394388322384826896972199499316249053735800826547759494911690582251818711301033998237812431303460147838069725097874437093368920427468129946383490075164731149162231325992454247971461756281259753997181053605299185818935012879163361995420077932622531227253949343958605862570266859546674575731930737560236468187942322872521985963520720219376033177346032709488256206735134056593041504044820318586023983127040524168612195116475552509589811518163025371927431117879771153787042344514289854227165628061732142260001151326881606971886114004683804862948425256058830514499297630195916507319798953610828275990096956161102040516997266531446961663326025291521005062898981496025044101392323533992428296294488688260787244934831946662746169519909887198805673765889222319711792654722310390001908309685412115323110680077942920856781667318265904020775760729666897863392751720013345446187130567884580369301950615495790186841210370289281400237798970524674378075524524738175682812061848462268829392040743461949043054810572153488623768803849134441934225757178330395950053270221949268491342729666211944250690998285366281752160977877137715343175447011025026246078772003440872079124287403569188568027367213489092912563673800641354266148048627145612595477237675942545193687503771883648419415417524583252490483939800527755715564172881974909653263605996430294293147364762591140495411937209075772620640142945487289139178434215149579877728607995807274657004338146962911139695475302595754152683703023550762042246434081462188718773661134123723491123281848173575428197874129279669398585627902539566718110935684189396507629456060127914168153209296570238209251774978507161222299593490528180064128474939351045978402493347783940903187802978807920551777061078536696399069387881855250677879331545507886759592080626832927605289266639281822281618099563149557924007312850181765887984880813990407469099084598609017720898752380634983017254408120415678329295039673583372707053324243768157252254104149875977241501719904945606177931565485850110689942269157461483049359256048995465099953792551330147400664091133102940987595142474536449727198204935735111450238887777169176064878744369395068074411358822471982650486139183097118450007918157773769785513155635841854758314176365693343230468202651447389999161104872546084311587749954333076412157363661224643228781081814087389277308777636861872477264733652546515477451569505278548197006348492262690638816962770534327250127055883979191236863199390427891853650103177628454883444551925723704049197554254838767730337390431212077776762038802819814628950752758087305090287458978538967772366560793937669728665397790851937799835877977551223001991123151125335899478225088369058295738275072135770496148002942897358326133845300921860326594862668010328434927917703428520108781825087172107546383984125475878140009507118523066034347782406027378605527988985821135162403367458222648102090485982114800578140070621331309893835930553753683280127026604055981946828219940615279147995926436234331227410558101911283580176125133549413921995488013984861627891622063399637942290452470585916305865648499614899604642593868836127615701063343535465174801537276157269438429911288400926157206191781174424625221378580787240445153494370834850934881399707813309074300897017938294816337934846372952731845741746379933670230380852671617482581570989322786355033838935194142930593106924622198081080442474892609655958625789461035761503716685519293200776943060086327318658979105223700139882428079367212885629114820935255363663921557444671643855527599364229873414812465173583741147472589463239803019675544914707151481470858910278655489422333966421188565454274366518627428731051210841869728599940176983967271392882572003896648490415741754653887570560864607680490280208473308926164755412939121490913531623385206218609215129897561782638874842483603013396420350552860989012190500161351407636297912445242629452079377292355424888131049728830971399999993176688420006457748673139206157949752787765430979279360723745435466389738142076371404884304630634150424721244582042431795870497901938583334306254196041525101728442234082286800114676155629573788281564952280840082989532667482732186681312331867460915196572095908213037185742060383245758766234854374638030068296196870368428944605755093058688430693501457600659666131091763909962488005593171492912972456629993606189642177849958414630783131819261013086122280561837411302275916906405509682538988508275767152519333419860352442809562459552258492373408426124415610341321472565128936905524451431199126517386138702698091580050658189316207623958332030476536231551283591947077445508811697966237618902121043727017723351125934591833530183304973601522528402946798399891057106405086137244609623542331424439647887642347204315223201185588691376323896007710797346398928751264979800635371860918069347575395878267555901349180284089124228579845630398685033655038173102198706075361041447233173002763743827616505585452560959308123652215900158400345026886081666556793950762633820683060559046083905554651019835600563778045601217590688697267785534445042267381536997049673140757337805770990129890109627601290993908367956672320067949927166551304159486359097145072672466677828735781892996896408992789932633302423305827622164944726902484670546865442934723662787494600818937134304993972797392162867280932404465529229721209476929889129235319438608177425330227594360481051499943955895827057833651913774070957558949740958644490084407081078794043106762634939189780491692553832336285921632758070595606482632116014473901217594896905374654056939022650043687951911634864868056538996281004216929193344798966698778301335496941690078875227165291534035018074101751262192647190697756994600136344829932669992625345220420637360698501321587045152042874576582270492955596348936479912566176616877482988340946651598642491663343369599661321331160633896687730097491688216529420074426147763875089982945857749551496047437642889133337736695385962935636876298942975183427726187954213722467751780191611240977018473206268661364286662367440737908274404968121296915837182788420576634203315330079761784299567742023336918232521520181923384249379078560051016372292432450075307804626139764184911836939956725515549053281998614108826660709064284108284356080698331757231454329960958632967998888579494862733001155749691062862702616408929005061567793297225968093474949532530556300087834756430424437362286917613372724362512651923046286044177782036793463910325984147243500677142367249109100127342262740661032938642105436326725965897428015474437515317145561230688023363506128460959525791059497029906406966572165808281872007034905682539988877425402163049153036786393244467800646228311777358026613509025715124975957220951520559110328184949663307729872978211958116257391460932277181810093852206573402049381773798717071350208880829722817841119331788971361608250999453158790428698205777711145067768617750814144486684886682616626314571413512109667507913502852612382946702756673204188636316253513440173964723267249778335965796205640479165475662133388437376737752282310823934002137250214320428776053285642609081221819731708985640302662380017542208015104311037084302568797069846499019284963623665805170082146641532389346475473159162182946176900337841207993802555347597160623083257672866270389423771457429286285568914809432522863920115739772889229542637375500406402584205609017883797247436301814911089664636406226764556727095957490998413124378232534815147393315682688619844017909056500355280956924114742983982749033689040443743776742447121147069614507156611117780719426347216989627034331927206955877649124408546257349482825208577745688984610025423049775546339169188090229211587794984927811028396455773529451723107831251601597641135898993016651398732430682293420270384869409002741597648124472969724879015743025148150463458760460316234267040535721267661476603680802591526229421076291719813535106759218991588265112431717869508236709043374591606188697224462082561110748301471863856850514043550811588032151693795670238760615572590473711319404684074485699887786541934342557687411622652287623300077458339211844354586444516908670191135642180265261541474238262898161035512378291229045010873027580317098175346586053469782378809035387278522149165273058547193697511474020204201864068867649011950858139164892538488800606583299556335369739958012268152798254492755916394923155520148407497025299887730453035886862238109886994411317132776039502916166700855594332191755865015173133328753119460655675483241044204436722509058751158847324373833462399673838619310641956953195246691623273567571357783238836808418710108363589722011797582007732213916456711934557955480473307615676143151120578708295133029704021436402944161578151832850276254270102934079435963846987568359062631475839641061244169663449004177089324625230530017902557341646699577891241704516129480279427011640647567257869477350487139870925291634635297519871575937620407645729118225964905369029241490063192483769330802239089764986463136787459453113825829307372234278073352783123053208854935274997144140672833574439526073705110944270581853549251351536063204852245916475651335595718166505436869348769497358528202429621097690149345328939650779652717415574498654751312187123819442821687814229966315780739716999047732673085293116766255313688726266722219741598220038619746854299233034331205088586461168290927767615350053131628820606598906064732676104026884647083971686909493204342547246215904053110368352147923218967205583370296411374243785983244068783397977786030159331189639957647154527551597708341973169486906249616069418981004403535128713333642991869201329997291761793018324022528441875999521705936223129826010094347436991813123779099298699092083967979924314808990080184116663597922296810352159106730444942733449166647675612860612199726250255779121267044339265068286876460664688610147886213840089981530261974201449567760411280245900709284305778650490893450901220318496294543643069725703488942622634251447273847522765317755889759850873283044921096330168837713044725657190829833738478968460781875602991902798394053551416423942576200775696321643202279842831215670941036008470631552898667323032110533619410395265982994912467881383674815744041602399833666140630557263953044728890809635925861772241551153395744898343122485020501889790977824384277822293985126746360396379671908002824277929920352607375101316650356254987976036443856734319849950917216394431798705462490997975852271994447870900539664789257759194412388380478543917324395502827974375157460482042860939001061497237652081471339089354943597754970012466397340733505106922090626931721491011152927162958962561394776324130932241504790003140036868744946766682320195944331123582363138747064765661041001759347292725947310840586201560976606442752678732799321101065324165229455562223183679941728449110540303303007472264177793065648027242502085780076664241593696016454650332050562791770800913795677559854069868920395093436340771932882871369265283114506722905410162241950449727258243783258643608134140162984100122351454133989841552980016995125502854680904842655277348822537742752470937988474506319983265906955774145538162882556866848440560473368107602567701034908204249495437364483293758323427860997571835550815620861416684221982647123916508614587179929132821339403791252131901575829699407648818640507680355534344332056620228039876205195586898433703009197660451636259895762353156564399318439266069254698653678914635289229676107186141101874674838662889779526036243120448778379821071015226818988876202913931878116943717392297381306658936974594602890435520791168579870638349575709535182119788510782681946142293218182537254753014713573539355225837926031477450360413238760447419211922824150743915691825726905795457984789033536429830922342976017604505626839141470245619269995308461490300160615597059807655819857864495326731632880866320638718869463356525603964317295194128315958578456206367718814151497517253190077849618829426736311216278287130959709845276440917822472781391349415128991000949512994908453013166739451774922917133204010939658972795660524943548596783116703770721012375400576442624463927037449183871534911805889075214596354756702562230300146799943913125844319486271702933877520078271709770520935811879575837984651726329786446560810718650332019801663235107321930936688606300528180280550295948711868424512049162425366586488279446266673513669679100263312422027511397545764987605367128538957583268770325288158278351181895936477745996191237454977492864018133027148759495688894229489560527634474474728790030127970927000577694120481886564013116589040330318391795159046482238141015609406075704489827285075668835855479705626536455097200220378155186918293689301832187487883506959149521927037287177505374350139183597640175833716963982494139952685427291897425297177223411946497744316149214148209463984393147483886645667140690538792027627791215517220816565477634383789457884354964981302334012281779330246114876283196103068680162689390440726809143711510135521876998395952242132520854272882049136449162860246636950163038102827485685470764890549103649697114895926119822743391573838586691100307024740127950823322385933431293353145083134302322148697646594676640186926563903319155658878722489833130613574200194166251216363279359507281400733378789281274628715819789629157566368683586374227154387993341655748704576289586459135261996336966360158879768974952548130767690613888596993893603208100754592309262744909377097943522253196357206244392487011721353311137734886276559045776484205331012914770629230800601510670312034786007310701979263750026271290945503614939206813528168565874012956711112923521357769709650859227065436132492441021615816405331014385079242925593212727806046967415375531536662221861287366128803821250100928421146275449532289742487680324415615279758306956594762689345024422506953550988231948253820260637860611814477638149538292667775167629639891588673014817073328720758971337020185666204247307212183361573539765123972478231866444244439920350855562531169398997313826028517491598474229896430927100282837316378806309609860927478810319254565883687741591057578330203889012289498579210930708652843966674782953630756280592761039597669306034986807013064708013130297868000274847369246799033789344233438938291375483942462688284578627681114255271019692110597512621780407615525154039994243501455162667318659112562473758429669320431373213560342276300970468680402894800904253576222701524549917385006528762820828449472328977462214065684862977291345480663160344698259473577756305161556149487821328470322429489287948669443396329446179766828458291011810070347351794878011792239881491443978751347416248757390956131537204137004552168039868837140816023357994441560694108878726382130203389710037999510163359707666133943786454999202489751232498511053555325536972603768068404310303698476241032751446805984827498335181644093644074261063834308132868218387069016702453706462158212408012050542809081168213175594139955295404633785059615268116660070670751168099931032327219170522352786865272531237445653984237148071312699080214981427109079845649623947931036325039327156902144853639395355709963926134137063552836940798556916758619267618610222069108820950031759062555587990441481343936167786985275424290842639523993715657554517489627852006225600156678952659120906383183733624238599883438538246942596642958332419075293422749951260343242336744188339430673028766543573852695414513693331050265357683228467660965203688702797397783703507037179625457424457540511632177245547980810670980551758509522198876192028130775171159275150821763117287682859364356657612568114511941704004074901284138983731425343967182668121874023334103122532790642753458607039927708231669897546550786465553586415952874112679449804750801075495712707214699352833759540606895772497915775300689129623093200957614869223108910285486100544728091014653095029765001088973805056241113002771627497879606680109858536225503750364595856078819153056824082321057347619774473755435743631182770478556782075473579174512845281289292330196036200219684407510774099106725298902052208674761419865040231024915288288794909975168437028398845368847825205588960859789486199122722724421002654252422736191705601121984818772651668509852998652084745317353755918235912710577773662055074094820648594081815936947902641524291841224215788912081919299618827756099858603566363590692524699141846785263887774414791654570233714794731702674994601342164258606675957781997187177174419900380894934635513319337614471585726030768965059911911364174122848293608350106957990590010556078315437482328687309730501118996444126520849077460221767898821084675909397343078595196830860621613386885708807781679573376041055744483288222323664778071123967732784712236445013837985497918474878178884631611702428454869727327382990395156330036892851021022584031510497637309377918591242367458023873834151501747850993165223310783761589787603541568465511243286662779528617187021986687227292836154676908686544165933530621703037910486983730769675638935152947050213275444699160318570518566410715048741039655311800328610587807806408242273214247480622931327200997910193924550821938190185273983662182931963025171334533608122144253415905128152062178405556212515988393457992369179425616070271275653058030120653918615115696718118602248279774570491534667497769198703178848682987753200799929361656227696389600568825302177499805100071096252396645456284883279675289376827252898476956376827667969895885428443925877318142324051542226246334483164878846892170739569974966504614876708037908112728395306257010464131810491183848284720003953442943691874184469272476571611895157372963212056186980344094804523229301513786612274046148381082759235117435509823076142384448924662560807448715479943329247330348274229419282399076979847113081473396574225950314861834684159353973649163583813129702451147347425643288085430116281607121217011953438401679412678241519177063448303448386748339869895538833786237358868375355810214007324525261399769740302002017735937234533933924296046376740229999171732956414513584961154858727151106799797569572119179673125888012335949214521267307685077846602102572631180678071239941658504144443519162182068327074764744354752436350217713872916824981415374479921303526320566427402584542446478297252983763980370733139337346854719076214676155475869445899194079404772861131259244703581045846657378328562479190131465025218732081185977272136012498056435456272517447720722904223688503062130908410866299244818755487873723144649774978537547386867082092651469601810020953918994090584635929271095288791827205531350231211272389589101235291500237356245898696063962235818582350555781393630406754328986046474480819713219966887577253260073690758010257109321518867142884969667449892108788158254419622850310213702196194318775797121574020768184811043889444983310275935126631974084473788503195422516386562241316970493699475148974262050588623493599682356671879651710526696360811316229607292935723686697747970439141781048599125817227778631440794599453740573693242540048907387847615048986584750036471730781444404273566948132501019117173216987848763284388579271801945262005928601325652587666963010898070065878428936802553951360485023110673142238807882932955684324872467769270854229478469054890630746439373153140944713418714095204673390871066270070295902951993344591891719147730199629645260648267080892477493955472406855811308946725453656302387478684836005389863988744348687907509404521742211755251387904885139206014658844562166231178715472302482980364785136265962855026292120961088863369754768763062562805763249936035338848829865312368389688546235160776943548093371491745512650364919063542832942084055532083853782050100287182249502591763499572217198518163368051251627189918839233419768244956936345701972092309191811281161577772280377119709748691374225925389406236727492227497008101954596576286080797737262563926840434732833847856169852567095892447252782138377387126306527077795013428447523942955383870620717760573019501040037180338731347962215258374823287391488340199511705928223539352260599769318038756314601236075503606883413663576974012305195315690250236225617932175789709107987116150563807638109663325801269362009415012637739935450624084013940768970550105056373068818579016040375040309093830918235449260133552510080994727946904973729379443993850702723063402602692830977505720150053421231816825093285516342734507629594628627553707806052881272833781335572463503248244587713285475820509374660248720062424752904089154136161242074059561401750627474427845125871860921667604915782720059496292554291425365060479536020572305552911941436117013403815523460060321861542737030807728486538776331026648050287864379708795998368832093637996884514205817541576752315668410900995685252566564161048426631079484400005849411493174853393480378708263377528062961472404350493616047874332799352269446584878302046868827541541222441115695692301955319190402761634194654865722368824529702872069965095339954869961176318195042866841131991738440235456298287391811340692790177693711518817189894376290332650095896507748750861095129901660379063936089036621437400138360263418081310852518047028151749041329199916927650831297834523592162566119113976950374095555803147803474014668913249719251157360966696428342183739268268187065079357451282741215093009789193780506013041526445859288635166058354557339126807223094789956706041739282404902895157344899148934059576315179056517975276631199490539889020482869302949787152366555271709580420606308989222235960557438048862707071840512634765662670307902578425546537305026233131844993807878703201086707608440811021399393535669559080372042417935411874005687464397961590281894765411388840650875459989200321864790896939656686965208200577146578548385305293822613131457347094055159234843661872644018654185488262378490106362431288132705684347646799209752245316303380196408456452880680452452445145150238963931302458439285669570402444844588915936113114217360569509438951026638353925707465909619688626941148908562395262015989882083532082605264381177500307938083282822764734068761743837853200625251046348850827297665945864201279730993089597605368951573097771157589406441316545853419134141255684261457740416512881203765727715247198018052902756746788717299947103687669533572662681214869197529574422592670403499532519709014824593961691254189922250817831275567718909737893555593722785080952886751076647766812813543536322825696769663461510875615486869761708711913967955072165680829165103010977753833195805942744705748045750432195644167491478952103390626219177270008587008492646046593842701730357311729181364161626340827407903397373271537074630517477437574397114153622017193674349952262249839186267297442415328598062875687379355644451537012759914797653609607598773967428335661934269923337673554239472867029720432215633297168057599170375952788623260927573584819596066820209557773807085731671729220551341086832958744497521293413025743289221069673854657375818462805653411333788042612947884801002979613978816928891652353381461889649527193860868166509958604764693662490041275959402723531684712860589083897662122037397530507157800899951457435213662306124128722162502250667967716753783304972015063271340658579754677862711445143023663742041595369126726499313581047437910491709371854863917464404060878887303627778217029359136100755363382574205300295804892892015108984582910122171306239159986752090173782619952995672916994470362958190897330679742876324315633139834418363321098780545227964170784759678388180239049487212868971191248953049654224855653848021463857314408192951566628609720035463051381392364344324128609539893370547009071958515626614247686814365227189647765628501145031337708233207449357034676881647033235882348938177239901810236198402232981414244653056736815667838873042378866280130598348755648236350016632900543906310144033957594450459688817053509864248692157072569123634758738744621758498767940783614364087499504406030945978189473964713920733569611686509704677482024338359509224340296548644669246614001437823385035374004333915511462364752072528663758886048573170976201424085920765011001338718942496944058473841535488494576841797686283370520881106280502867741691504019196435651165373651593921985721204844575756594063722523386639277985446488697683872199029157233248724622230858202227563630412083854545419417669594620140616172959434111842098443527149848395876156028206908467717329469155527242330008284163826711007822727196474171411150279752371816867904442561499874340503870161039497365292877379924580970322216286340038497347820310456729346784178886235501403365299396608019871881040812137855437570580081750459630781975301575437917919393349325031010481192947254464002733952123642040454345030121523155651860735560819131166600432676799012936960096180783090458779758950255380267779119007489501740740780724147454487500865636526591548541749548725779204806248548382375082737175380166331003030572695770173559758370419906607262006379069733838527093020058735255986768108658294464753040575058379469351723072175276864936808815513238075319112887169740486274585272608069253382955928531541478257802509134014216277236748538575598170543719650161999223886850390410572428624303362330608338602701847260112999042482814377826803366362730055239362252560440718655906226651427797157057976695757750275495976871578122728538884787878101440949901818029758062329115548472055090742538326009837344259715832689620521467924123147296857441065508374556810652011929471266493616016246855682503597797229722637631639024255242383794814480940290465861357447725395371680421660678237781460328739790859752645102260200371651067877333459730999325072330318620486557291907194877109607184987623848153631778709467167601186370939137024311929462713085465248699723483020952967184396970874624491702250396095481915992606031937367920577313944346766671373768391056560688886345235557700009199951983353156087691025259092691089330061948066162574167138884664940823935033360705350488708757879731203340228482716595021382888377345544364451936480216723292175804235454855604640709699603781137180524749954812783621635651005466198476080538733218772833902001787181283713485099101193992890757328196441665283593463078984029136004535317842211604103740426400076582655078490748137212997973920887552921674181991976758147977130123235175245883348056937154222167124849806485072240685900667597511277380058323213537008022196993793188274184997605201138453874897977558702004327674936604832805229293159775105838927083129112860129429538315880521677872165057403037781594625585396660805319035537756525200911537686701208162243724158308588849342887922559197011521077333490655250916884295435733364307502901490921573391197275920586847928399726526448580105920958041543627698694994700284143766779707614490509764407170685248296695132127163698576287301191535761916670238370042948073058291195989918110696546500878299379613622895692380898071267588169943915027534866079127242351234006053833387913123614592604690151933233052323514919185187177110469998102229664554708541634092935551146508035836503547762119632949199941458772662600835413643758919644507202711441728925262052090328259312606910090024486023231592478279051187435038355359745129098514572106052087694900483611269101232461998898599781057908670098317725297509549268966154958048539596221471404460221622174064699884478709716597850017489891693613971125105075641785038270652704979770830074592925228032486980885471917408475999475937829690880560086005297590548973652550284631209207302899945307524939325387579380555993720463654492118375759259285771950607818682986046855679833198378630402658539506105953122235032225612863929864055106532946248142766516540509107622304423132338608462119002421315571370783635275177637722469102939545499341934273034734002658987481855007243264170072472896663181392497974368413293492073248649875345808791715832310099446505269225943396537757314289009811552426297708303967527872534760734457211799319563394323513731373770138479093674533673460515426846563521806621169572707210593683648562351512930382944412353133600942098347814142972374365787119118874293665161309920690894485298923256694661430201216193852579951913380384118619389236779986849324697884365462269971561102701997426361659295005674940653398737403388147358242532247588926743853780989861781580624998576996188959842158594482403127951197983350675578966074513766089331775025950633016657035097213435222523769481316683082929206391231137507920401887113895984242762810487479944576336815527736723734053995508859132241569452093639461192774609816629071955633330318964102729304482767637745475383940050775630105121375747589465748631705282692920447978930053699441549462911636979987422492703036780074995244600192527942904514054340496225220706772417414459012775849304384419169471824463589453593939083078952337880389543389035922298899744450629858915449681343902883083036091668384000369513293418160373080423757387071732456232293042410972018986045300317389962055357812854441828235506179232044089987741290618997312871542163821646827798635420026912281461597428051200519291779221033655399002489156374867036994361212019933170581508488045808028330564633328855952579588523340476137457945343567682090928879394222868047782548540434679046450577120349850427778626677068882104274754870852584183136555944412062419547780690567308818788094917703897813991066241291085460711296497496153293428818024111921482687989241787135358182176206406195177133405387049401681725712098604187636798291552622105328200847751673639162249420636920161016181878790171633393490222203157046495892915660111820780330597206469937095868562677292011043899000595745476574496285533084757766241675081822590306828727506987848825721700842158530486925831755822546831090486918277974113104892913716636781297555208343192149972077464494451139109535345138892669390354333726791851497108660607134923291714295782078096333111287299809422043134285312220555323047463532150324722039448068214184338026557787770430331339161242766255908014112672276397388071350929480165724265737803671936579619809240561779486152286221760799742806107862460685336064007083970711459274233437403727374852715884964504424203882700398592687187852482128673983534052892896389464893913128980111952245710916440143930474257190335079824129951176476948514131815082633586738869611425332384486413591845479351274064862733801762071501040633426243838619595191775834034308744212950952117519032259537189931950085566945149777061647752985379631778891628098182218479349358008726791798662095282388987638060902226721285348319317045372543422203574608825006836342018290002438468262630397781184871919736891571620781247225680258617614464823051172199573937198922224913041130838543246836293647746548096269491164956078096858308067229759168342890235158799056981740382471217480288150528150397764681006610862782811944654397622813320444772383226041640248238079647539645234625830725711759598848750796298979125520953369584198936877186947126604497187997327373491893245015932454186219729259564329455131350200955933765328647961863866281243009219557257762179639452769432817806571834202994652057017940680873886674438425503608032048606912448291709248147871986757574183815474446428294900234455804196458392947387640106311165582157683137313616226299832871546025519709507682873277232202944388929510321863133652639124594630414634894189731759013884725807128078097605150396040438837482610857549018164123605387489307603403229036959369649294694514257814291520595362718560672586504305103697587264140892791251250124632319375128949864169520197579746546343305725667121795171573631230824010692740119579021377145447117765294956028831540629720568988985876668611843835192607978937730977209706337209396934119442547029441483290598332895331873776755945766108995194504218768229605485089899089345368546035256900847967231897238969758673145644525198692540725327642641175380155641631001265923456419031861689199827378706297400815135014671146021231597482856224308710885989919055173857907826645815080230822120619972302491057809957896245297610422626848085371677637152355186958833733482602206856530204771860522523250165381506144416476815013957511012869624651214126280894145157569047479175182531915536425104817394584964358913800961834858608864398844212985777268710547912355123750283373020162473095947612271389882054366161295662458325342675520655118332156465963273125982331622965896095534354956141718624126781871894688666519268360515436722888070314889636835645390280620132789955595931232734809909849512032725806140560574435631010200473400823323345313206255739646087515472452885399417192316954006643478902839731229608214486523986267637178428140354859462054305122891398770515106964824290505167086688126723120149692447099193452230520327443007676497315894771714368966384622628668978716909261187812553861271252123088640758669843061533370817548460101541493356623977493620521811176341758421690263254811682023109616919219202286968245072150597182115028834103131575642194014578878727971764110656283779608671347117780322440251253735987500965135217548470611148517998024718823732173032798625560841813447558810835371750906208384956755303849939389235710199636513419249256875462707073406590960574554641251446206542917207318641479494627005420571420246216311504229196471301880607050652699144511601429363159652782454334709454185941611144118579099688672078549979474686778714088366683040431470694803964226218711236110921749284785436034805594327579516473619058262806661886719108024163651804902451788960132554938649289030243202812567099164367382512988234865150269257448093686855504681983217536990204726999829785045007841001173738549486770025206884212953225981655245375140364250030177638168811985544862498383682810301740112048851299177471854619174979370637733425893120298959218457070497398730814851415100426903508492066736877991443254620974439962238587272173859021748093817449429311903298996733204995012076088462959915772853232042176846338563113164478755605505381440490233796049294967369807711838316497303944722725636665753994229170307133260072920720131067078570215314886181824658576453935514087246458126880542460403341383381714520227684422747494782820981139839933978232051280997699499414147039227887346295900565425739046000573445552868823251626884483017084084141703800569198012653021969251563956835481180370248600160332416531355644702166965153761053036823532159916011980536156243744308048915490876145930632807054397737580173517852984050026391851658883457796096215577053517442885279755739267142679886594528783974422559679523314850167493992082457278902018489897335568632517494207046137257246355116863924102654476207075220512235305569238425422624690828200752025938301926178159943902391321567369881273725912131260531307760620221294498293618775697846324170866259834476470680425146012568687944244551577910882167023846785616126726429984072494384601025198671891738508891137853986847619575119874056033680193415877052764968095215865014384514298766607234765848651512911032427948808166871017285736003529700770099266867338305120173374983162463189339020271127804589754245018149049002845063442425037860695339693977206978606737037290567436210685843432814648400011204149556683635468312838837668593168411671683947909993172185682718573847286539575445674413952990383223613992898530886185388351326456719293286601527819908125367719850125932989944617794141102567294787965690363235396360176317717043773507766879411929585867771049681115422163202234770556017412046843879933592670338923451782769178962785076545158483566701678572708095623942517978018102880056073443364205111448249566286118795044027232047894869579167017112948945893404607746719909160553338456175776562448181039818443220489696783070500044947023950014271488780257274319534994070014655798486696694058999476765396450372101369772051372485000935180102865799393917599308077239783570331207435008190024293497340652905541009708540375695115084685918031570315568149727088626291228253739031079218123478547246625904527114303408313456113671970897712919480965424086797448704828737752564432332112912549926739244767566661254078915486077795101461185142458943589592884712126063677478829250546728811959990331597058962217104303932335382127275525648133029274163512805432250868766744852351803831775650910663330618800284465427671284802543478046300617094578127247319971235166711955229491650333983086906532798472546444796043349133509129826470120065283143571696125905173620333386754874512516058214867513018196725553741763379266784031929722157990077960283055264034242078431815897194961972482396640874990674738616671975492710796600128245770023998114418830666508099393199907535195716458813853713939200483651929762430263315328198224182677334844135103647952522124560374147701001271830038251557348407138321287944435395010589780557081173146777336708543139508100471988599432245686887729981540008497194863452129812529330760628745251310555541972011015004595012762012754476893619843184442077123308122584356711675318081989944139703069067339844917874558092541926972821608812983234938472791270257854649116768746028280794588812649606973400832682439188937429126836807580850356581087986663300705021761582182525155795974766146578843688827148986802546533684287168758459842588442757468978609901185018282639745288735277908617543426159677595054771047043239206687343396235768832216513018385393923393478806820246945485800936144031343944789992606120228583519707536664831159620224857470864960926977975035476214569970580538315984882441577585811642204978049738623363050713060135098470494506707968965950076949616467109245614162728245733413700143436377278573362254578245737244380575723012736210647128261416799186757648911265776373443950617695208857076894486148922080642026680646610144526604524754823648544536288449824771509370055246723161804296596281783818743464903694255654507227550962801673025684203144315894340246549100313078907290217587743387822991662905807832240766944483447147689221159997355950858704157498330199462855466366137854658691985491791689801671055071418082695421881274656212020219713764955230819259347793607813230198578629279334834753722104911740986769263917210518024088821037062707035406249875616764695831751185041718239826463647582855791314837289678733190549390190342590825829957465520349671638585386910067755583099607372656526296852719171793589007684200755519488021033992456426893605243224011337995167987429374759850338207877708645388272432693196392466990124548351993268771390529366242991613629237090500063004670371021299371752986085917851644811661351893689575139669232419715002586020240423466977877327772781747404359811610107063426347512229896998743271886195350677878263719641309033530698191797440121508985668022740587144595910565735602996036812128281298537831717594799296895754926734501533024793568237743138506587078073274285703930806834655014559296129413409563904081921338396991542331442921143135572890015473264109510316617082890052373830507990550749129713392253143376195123037265514032295476323900329043462473451369442742425790246731767480196104375530582184800308886709755803002039447985922595121101429004500748202393051418707158205817043156434616133952086218423856570150207608879829661377788296110455381099038892957487196052161648636719586961957006838353380434181642509472180085996176829531976863158823244729869246000629863506492386739257825380279003443657924762723248835847274668935271673044703313958408461557156328534228619458535622344035359028086922201969969006843220032771519713916275284197508236651534896955979362751357418779258553235166156383822224812645003639651842582732452546432542981635927092759379391768727398417626061363403825947730802176367390332316925076208146502230478486331093682100744751802524451776219830289912743195549258674716898213132458546322202270379370131490407074603433326585528059478666762245654476022525669294729699336957147570426621182719124194522517564151947705286898179509259984240573774213864623344167265802555532369432283368963055713782563573971086472690760723867414248742251585580345328305550532513123284815611400340209908692984107496221811565189706847830847342794760083998624491374057644770509069509877482595285442455039728349455401332353929014849402500071893156266190083772197084881091590335906294829891722285221943444227272212366597485387667200714673106236869985960083283102939687841878369043614701257673836738196395164335731057355456852657166823492893402182113462217271097701495252447573398854626931644714363842966256002029838487422171247426927604462673677056207514692252449154297345393188811408608896250688869670287585405021173385749708879896916090256771870158528758603444842459813903353315306860286169348634493501419312276497754814769101897355159080600261070803140209015461958675485906762243887798245564940705000930480675393838626930040530219529665008898856551022360994196587330887364764763279405368774482970941135817071754470233371606634586397223965902505875436620060810013665566343874858765014695519175786712338510023011975274004259083747993947832914253600365340724695227011342792442426526228446917338968434297314241913770803637907823264031022637321208398663162814425755789106869200042651741705094586288545256619888646008669243050446748169514403670617444977951089949369158457085747085769929994114986044191500543289113230110979533482996982065216218490606145588915075233695979363076917239844999310225364781543425860718095952830033480748178653330191882445458856747808392875639488468288070214239773585105995276636740905808436003621909470111816728184928797055514275142448037547754368397357758389939813950718954059201718834729804845943767497393606651842589206686621245280162708307499443916236527681743193120251210563212424879764808225990973875919319098203001261088984918116198880025916398962304544099615391703641426328319273165065246761488018762158824164546833703436055685900655980460130019623244778748602915257648196050128527735992356101421176428271270359976731947223811658354288678718817252503929616744010133410218083573758597806854893080073591204632677169085263414132866510006236481032203515505080711309141204623548019444278988370281522125353284540368536408036445065149268303862295307277969095368947592130440485568190592451155821553431125782230500117212040295528523951933655451311919690867866838740173431390992777841476837291382315035043043828342807626547967970992210113759681829463065376932187339997321930856150041264268406529970954108482226556548387118999583170934698751935855261223222354003066499439021616869369595383418691039673811303948895818169643047723871369558395630339603544735495941031694377103187729628622749310437078351883230069946680674267233291211400954290336100091267465728953841956930220413625656313400510077076838889317092760892174527085599883003039246263574198833817324423141598664264226902449448069871620505992547127643243051361325707810913116271337857219773188114652432240494586252768928533757693724693116219382334579254075284969434912615853406002476136153441226958756531240859443452313333763717045786205232336688485350297682083768755459495474218853722547369956714624695178325315301978642548939448678203229125270979508831508424309211802393577220959879332999456520425795369210913569935802684906716009869203291296721224310128285617727859639757522742494986835432044138792555735848766465277667146892941114873085271275204538428658652624163489997911790262858706965535769176932934797679981744403577746736013280649121524331959570818946428059699402200974164615525977924282078324062475598029222476722680004947306321595148458490630605444935544115114472195082650723085059796647172215106266561511155169074114126868092935138769951760838898466255946739943608730235043980687467621257670753814070096909341199165590554415707662177732620366849796682638131292521524188350295583998232312590268135852603392303843688426674960087344553172815010315335289365950935902039669327720540737957676900768914295199501658964379645704773802853383483390731170925649217206243207197737344299122875972848206421355183102748047280742845308179471591575535198264672712029603441330242859708048765974997762449681659831996380623555643794342298351926670196851833326525282701151569709925076343541959433163955895428239803764272781657393060192076372157903012611504244518067662627538281198886216260105817943102604039090923757437030747936687384344057442350135821244222507490648809598421988116476714624094455982549434628045543563454041858132362740470861931057413953356028941497993846880288677377621897100306671629388539433431274343692069753031776717262656309121904823166252867895189929821433010735352081814698940916048469871727854736787518592094053934971510849756149051333193483574365231411098732233092087216050133372567273848657515733479143157288371910302860772839813390663560864137495583831089806238110647096902692568621943832243306494994541509052813931202755806514782865644439059105486179364406080673674440273432425531906945380359231729947146990883042314242342652858823757106542202862276486578816449326077811724600150379128507627917333679343761063617834227399341075234308431223807874043535997696253862862434774784053468994805925115130266042997577347449557987755719132347267207246148206359094809886555772027364610056130365025602038144652946921003161559870864823042426327272839740904404613739384045730797708133163318310315243118421859439610947166126667049599482079210267242770659136200389185286868364595339447292005725906184343588077896801463617182588717219775882889965779588132160040685341296346332794209056726921078853139427390938217618075843215741527762544993276054081343860109996511502720084119091004240710716188070082101630305982514109028617710608055479719920905147198659761168527162708602195268244153944820723858212950176228298729751635667022463650463805628385326232392563827948830069139518994736685026695916976785138214285171147574822908649293963687146853349281310353211011497655229170582333363544239548322361020657053113984954611399848275817782767122213350028511746514315986822220909394738974507204026950783201626373221697596038104724703650309340916550448256090918369408929897680976246817530226754267904915452672314345138171285119093842689789681416565399541636657557679393937540923027697084447340523562213534604831780451337452217562323389646722762350768826110050450967504421446732780430905615948110069201442710081307385130756046586475512559286247777729766806920609232935402538947000793744018846875911165290913568487504962236658470431536880554970398831781101794990374280977620302245652162983269852500668969877653315615842889325187726038120688386803773393883850302901465252987991931803284406733482118306259937910850577126506480306663281893045161684144418154958379729188152124401057917750226477618712888302078646583978768235407366170646073817260102453718054185896130773713157629142386479856404237028392114127361384878317991077829902920888144694421932620955782009923724965327670160177742990058094046757618187626311130817526420411429658743216875530183388203335848971776875305337151368577882780899909186324015550524612019735378135573410389297965863889871383548973807139321909395278162739904669446408074441536671016752979457240673603469361931054895264869513288600648418326656442149666048847345058856623774709433001336099533051757951665426768330356912093475990475258292202665454472343347471469220086841861722646261339082046510161618894163638443888752685797991240347729867390851080285948830484778121069605835940831265872703507452351793614670362447597907100440094638441966256197988494782164807995425845611328273095276487824528880313646712961479967313169037708937284186762987074699131537716269022423936445996821981605802192944407623083846716913412864266485162135871325271244157721865271476769622170113251539699917944149743660184935364792197408331185010258159922998818600973757387235670229341307853897196114332373639031162737303495070421964452568969264522938470842811799251076216865273910246191382286938804119382546404554232131329587463765536676959953697282075614878708426420860140455375314094755308111779118208428668651797515148757111444179877406823411350556541259489343653731667525521158112927115756733660328849826198347752578863938764409472347298419677332326149816623982106172160999348315376942730460674688549146102398548535107851560037726982235054696673400793853840717128393626280868333831656433208136242361993726282501665963586014090745622579092390550119676198431052654496513911977912897878499182667887126207881363286060414738311798432280157776044416536985298309943565332454304217593308111153919217097005538800660581737196846478236567984470636149318269940548019581638626884953424616783509399184362420298317772751242134246280692400734021523399839327784115478653726842500269779240387944425831863855819798629317730093271623408767046200407114581858002551413446016032000929810960092941713396043822132206392622516196634648770559356152001173593989912836427795321194545180124520756256309168684462913187545506949168782391696239662400849483002657525922856646878362823518373238971914577167429955774032851695242526840313615749004685244163506250470051140603537323627869889483290834250042640129007310714215255147972107605809824295942644626962607654871049166840877120035427404021585787616466728815180209003797788141902390593613712731436736831326269620063402971487097410994695168768600341164916867021671208238572557319835147689020303495864877210466037785608165082548390341869396553309316576542755480965929006321676931376056773022736320760492433354666303377214964428778964425341676234253969836437291561358887791802187025519199030870511466517098817444589555606786928243062210939165120577140314651920026645044168641621982402942716724437163393758238483229477891610310144393931162761190487658352866616643595656067549706838698831402573547344728583402672329665817583164821711091740632181102610029716796773403139323721411663943727353211827655671978135529470352369442672236067681595555321010844162953630446834897038079028153850229955183009290909619804551121562061021766046293384108150703674504009965665664378489010651532730058736579153033937999805010107035116995551831495247496026295542102865399588771069517096269552177903610658961626399275737760223573102368573309514450400457492559051774711419545074305458704128765626281658327134606226696132902163520683774387043901024048034755973544333888758167685174318360480890828015816788468179663965601115279557427979489383238994883555443757443405258825771188188455316682155628884878283069947648217580063551396234999186754914284811869275121282642930001541375638231421478428047131908673198502632191165366333686396944600732280965579135896030976574095467432507579728669773135612685655759499717559788497190440922248269092353527714333293518753923264048921569659027358176556239093322985566825852790866413888898115560896579516023416397493409263102941769282581110134566281112815438504941573949782092146054495444177248962636060576300817938478692639365255127708181383308047711657967001724476861599643695560298001593216260212577296984385928261292538395009199725001857339447643346584538069345734761634721404633731184935601284787823996532583682191241782790321150604313628149983244094589555354356436199113311061198349356043874920913997780800686561801927781538001985311944528824093326039184035145934548741503694492956901801504330466201752058984393940272282497511968661264252088248055815961510387862042122173292367017790849762912780543341054136903438906109438389133784356638873085500861509864766773958164192635881567553878581868856513821457976060352664790669652543787704128350769290572216078560985390939692278501146950503747518481142881465411505926035943977284039079563448563410491768821655368331017299191494067607841838989589697379239212107169795330449826271408500561075409543792854763556183881299372636604106810694173875687840201050093147072288669110992521298429682992398296117553246705683791185065387817563046107046784770705779559704047185251061512133361625172235219659932689722024887275706814753284982127367592191437643678905335647701671994766108221925210896771382326503939058643585583142109785619637381988008213226254882134548657016565641388376636439531585155142932810540174451973044657007621843213939821358413658147653965004298190319004194037456954250981204010678170953961111402088299152425326651867052284999691092255805581655721085485977837086400262469225376671113301252958619587027950355964754588528486474109120040181945422820847436048733785157225588901617809637046269031791705393936880262154855686932291494530515590241416307102090547732731675031408886703396751372834405861824103983673278276955256968089293886239575746031417117642804203191282548865770754402870474034629277192117049468540347525309584768210610181293375348230302737552779751469174965942925472624737190534191078927132129859916890843229979776956159030425726032596176817630139993737353402304435004844419789073824428378707752970584553813281456699126544131928367590114215248114502819912409040237523648997302663956719874149600251827410831975700335095160001461810337414973007024853757048193160119206058896318904759717886390379073994934208023179598395165335209959727864298075205579398761209568305790924653616199561564579599239931158527916804979755940638340914707944754602993392250946348608177253478350787899404796508594695590395831644612353947280189485884466485059700983820061903621663187874021976696377929615857148867061846687228583471972308928828145575613189487868305801115969348371351569948023673495204801959112288066835345627723813779937321891056268250600570318182189796762598497449955327349343474047864156939855176973638674711191438987056812492078916249666716390836333466978712828809410133960004897033482553547816696425667473685287610276595418756740458616927309012540240994038041274159507983390341134887556386893332284262016488172742455930048568093755170459816727531526686015125310869634793710992403963246803836728995681807937283684869510177578137899663638314216107270712905506800449099438828656341361225950320874106623994488095729369094230050001479563388703024684271731132117304953502872329147389534525571921209966199571076386765625473587388132641557480733775944946903764080081543181936186644590519005175244022668140579803871004056055768738222375318001445403994135243964581880522660630137870182599019732286790025670795635100714457035137719988584354479105569297223674206416234677225708693904047184110576246368350859398990034822724564121198576826475592446572702885838047701738306286202258626179451258017672953253229644571917590130505293233943148107265500485231571582878251733970563730299240900513181221470692006387736133305690796303015633371188306969390815827596570807925555813113889024475145404664228073133346557129960190585847847476246899741206583730730661485250210169266350838117978150614810796155433511136479125031618356073380759962161968029574795553384734123981287495159842607328677322588878920590078347207163192680435228336418247030462180316642195978631310684648690405998422383308134733972661206916901250444092037552778016272431141610452182072452067402808300724334291109091875151728638853217777416469001160691179456426473828298172845271379301473690692747986640589349300183767303345448908736774801278642737494399073596029791065650733092117253849444758953977952557056603678655856370413109569369159624412194379455878646159507158297991957178579628113729838296575515680606920456077030852951119771493743837734214291375698394461778907568048992042608588679719641891711969958690696231612647329918532618028521980764105878977514318527868544809125756011477855809044752213005763894737296578989499969900670074815373223146605232620113487063638744322182384800517198471696963933794336608903233457241557797084655339632452431282661420915033870780138733630462749886668120601217486604516596992380038231498362088766569834928136344025046179778055719982737811795869587026093600982216263152306622267760762692763074471792932302565215678005282014199613423938753103357199948509282205453073006431794383901076813304305241519206196819304697008895768432734069453235387528317027606304811997816925928124943946649730263821367310997214245157823617085837108322638465235701215316174466025570993778617639727335951997462038764846083099810865495081960397285297739046756585259566514612975148160421970106958913971946008511936548713688464846678059276845347609094146875309532070680268389951109579843486150005290519372410549219269589173164075795755844345703750518251405702811888970046259357102877487588622062400355853312118904208591461556210931459430804263009665622040749865560479289775091400693686009587411726129868719993410725624736804854276439238171886528547575500381944853872654720404096939406476916154138569342579513514628543212758167573494216457427075905793700785828013930356600449969352395344750127951295431887193526589543589708588483636165315244257884665013693965581316487827547645868049118131751604159932080970835151367833255687106387323435993592853865751489018627088624998012808584261929017515144861857993507296368939907822298320651173378478653849014655184211165673948367158179053058306671437104360382583887222270011141618046321022526575927348503600435921404240189475646454450266812407610190819903432567193229218317751432830053496529351108687365959459366856039412954362320444188517346984702660264196412257870566040265475793425194718508244049511667562006576933152936596501381916468134664538739100373017360087883306090672010322780191751504034756782130797174634969151110215957167782355075054501908562377322550801219456667066555606495354616957446685787737286765624727319931136996598714376785201924815688413940000119239721980890573609931513167728647723868999048256491177806136465836324836095602383772730784493149366079892466327409545296325170526227357523228274384831433635063593718046825306903047966341694320058469246845138128944042899595558189304195084409869756508447979529421199955157685360122995888858340259398202568066941542858874608427502646227323103567437705893344782136540207749730277316554467010165488548432868011406354621801809412622980774936680230448291330787662656283931845554680683150084056205498702767197709624639985935942597912563676551924527616300884242338823045798183767836296043852390117586303719792597360082975122395422103029941302487853097843567820775585263878095228467096889327418453309189393549033107655975780012982000549362620908805821571561723920080689569449583674619166261753220975857118184999793729548630609018410586941064418611758453848374306361378287073017398747000242232565493051105334693845966326326879436884357242408570116599489794989797416466532308313433168244523417009374289869078755908149230343717316337106806827903408641668999019796729011198480008406451586835292795806104073863253311210323938586191322578967217356112365390422037342932685821537085558572754641263354691096661598967813901640945974805246237872430580977112521806068141615817419444074908647603484428422139986099420856507236726788685361570732918880363883382205248091879138099477624625880127886825592701666095809336450815067265218944204908614901901488226835126494214905812001682427549180855677031477353120199687259291942467258352535571044985804983861941419097706891143900023116437003572197534128938011540986914717237160939432091577987395843663205298274383602024332033874433897350372652130469895770947517081289090656259446013047659218186823513816051014747394744068013186129173653955240971071390254938866548517274874484731321498846673279671968105611835244373972329712720016381738254101392160926877839873532755202624629922103435189961227230775835770387928042752469609552928827083525397447572125777889296009565379010694721798112789719655884689888608650549278912239338976499788468546254052075567992509247025310880898186799808018114598910281522293643929915248116215948359869945923191066561979595085693930504522606148066401131908091516745336092142914370998061368944873971742109608959159690692461000568712243537216703923838917109514818175809283265245465981181257364333046796856467417310369596921849218158933800124636354609031505729503833266524006056838246221416725673674427796512051593100089727632914229839237033842141998954905785591661453206890205948138408044249258032219280418988530041278732533496083839453859043490395833369200343801093984451693001818366310996969779667674265464351309407804963087461230345620101348764762673659787357767634752513201669665733503418551643674286063373917280804333837387729141475784653273679346864840157590712746669644313417744227302823255935291909010296531733813163386084728417637603876352299898799399803667095607864722647528230315117880279073456120606048309199924082241184358726289581947544330662144837011013318424844928707321807129702774826233392996706469961235449248868486107753517701470388286422091861455756286182171439487579443168463084524122935917975979060881318642893665318866706649668272498664001830998600136435211542202206472545872747745518086051227093714121247078386286528494762590917178141211298190847090144345726000101696611992474721231175187612696043088582543669676561125842539743414846182818149755184470690232003451071945148062998514732772714331524426015466397538367275319575252173057517869217087562217015777345598686397900052932045059271975363070495520416335098666201774881451948063035045849752932254972674595161689655056787632137729473562865080904061725464831245627682012565072207008056375657270553877870242114610662025923031695432988405568312235052063755550157754763820333442322762795471259797506574552344182896623842781320066282077617490498843282917888234238709675095075936245495649068046459818252544460349097875256805446168030424613947849091884637185065509925091494390516415298343230800132455274168857139647446137535787700620842865449871588425320201090518231634941647678063796561292307349922289188474114600354320474594473377795476444201895269278019141472123266752653120720198816533664381611643827844459909834351320725761844512618783694929055489923645061400289321517933190444377201752710350788052297628434635299886578755963444910330696695053339024177406244584955143437110164291609719786554281396539823105413374160822359066428070264950831655626480451416738023341208889804839677685377500914439375264149954720192872176656180858649613405754346969350738043167708127923566850445096758027593848328652882459926678381164302461184974682912387688738018405823543527869404335268136782638052735956730101857930890333197806873372960690690930008598083182925709406032384438554898301595607964684628770058905400853085276378261027065411397472638670628468126744444531820439179688714524251658858858498268224048422472551773872946779386241332221327687403537719466470612878909340150846208777802086443386259371692178391449173552359702324918877655234523005531690103878908388115135393481599407953365650847851223447959074884707538883911436068581603290977174070850449271506893093842002710353149895211189740117907861396897721132337400689719326076501170784292322815612738409975802908794031910608428766711211358770324635148551232202734222144197632742142912676882431710826652944900937737534870846209408635002614324798134188188133794096214140298926112699434945705836367448723605492930828192804763322739523971761650832273764661761845221766320462742518314923235385266316997798183457318447325100083652271703707143909781403594606995118064701449600645469726172447923481636177389021036676137263438536720987070137300668139960953846217880032016277438514288566142875378842247460282147497638693275496795271980102110158744869041774274602051472594091659406684864408737318325090951705935444210141252082500069260654196962675901818782483047720296703446108176568403426530546914599901756426347626387092263884588303529779647537491850804837873320363068978503347371377135132707023806174424328419173588271286804716525684894774032090021962227098636035833927818321712432310854700213952685453500312344689115057341291219384485693877704802239287047914540613703254033240160571045757770390198540353543826048936657000334102620058541531469343457249060587976520645012791042875132108695577900498457589794379910514592676690339574586646676588326393035883438602703647446373094736021190642680115500843621897120259994712719855382030731940307399364372434796114181175884166461815794402904044289428725989872842591268738697869112252618066309567151238059012060677126098517989430980548139213713024980871066778868831021641406384797020688273417566460219560807825798376952570246578689408804993697769524254592635848782636829268828338853358958507213766734146226675165904778613697614466560899011167504345761844045551184741277650640728328804374469161280950124586556351387805242712116718890720455798505084520728180927688919753137999525349003438626635480122836523257246841810904512892999088970719876504293691295603900151069371670307652780197641280213813508658812183047331444247599188630836272785792766590008529134184256357920118766826857583046523186953128801646611050826848265445761722448550826352233976797569230455684828457033038284427472723462048891588192248188788710166817564634610360131486436851139161838543316254307835200240208629385672231839366981047717533197425960905227932365300000658042027012255394510822418795136526201616119615137475518143360866343946617053804620075832339642933668856854195709249349923352828436194105222166768167907665275234079921696833932691100955448301187534372781090652607965669359990495386591936002585754813140663999718451106193896309018593992329243662021828872204366717173161474203996642339507147269179780762714493766113149868504713830274555800823081180118715977182670310392050833205347697527390895041848171171179735388248438455538592566328426917120744996369479291069808131001607854031299723790867370126564969810588550865481485597432397194274483951709474701583310960370206756925023309847902978980384297033885884500910299401858955615673253587468420854860950661042142744434129055648261594186214267965265285446383917036154883082461025047245909164166098512397813649933039920414173478422000378735454688474788310678471606457609507876824024175870867703849200848745939350056696642833197786895734804179824890755926410061935273212928541625391082665243081390777758737067810206111954847393550717110943257389135914466451601789893436402620326862542462786814147727190686252931918129058706534064763480033268672163014328843181488926153948967564435556664117816635804225584484362263955455388219595978600538013689204063509041105931951625346222907464733457391871469107196721643155961910091499703404070477480811192236614149275542122463391232345278531519924107187334283477205964525409065102959978137111191712342114375673287601115530250055625089626723789468390928387570927871266510036914874132464682811151059921617733961727499131052409901732060278170313969138261029560623470619364997421563195083972632753079759267264110214636614839972268419040793189913141741021839450418443657126691296646547382048153786906941985846644623469126659730609794825160753553551033952913614521146956388925754224273683067297579065164999057895033188250002078734998185923946521757599189102766034189860470052422638255110431889239493265245743355923408026467939916844304187289411502067487308915559359541756138622324977637430225568270171256494823878892590008714571460545869586927680940399453504280708993932037665142965684974972498310046343172140905902282800283735318650146757550572470097663454356817429984463366984446941223480157391177810669439313976755112021095318880713605982442398026045260562876506668367002554299837633497146961199322223541262426146865667589275420570794545224117798370197868387031211850684499886193396549577912662065793480422808350654323360701393144632395156584249755907526574834403122482810661110323759090996847218017602743832818698737404366402149611419767947323643597393147257645543266166022016879609887756606166959833605970827847885453882328309665606336948687708438181312401871357731044457194941433865148818312968106205729608136139226056743227886408867518453983867635649384120699633077121261199813807837469474994735852401116075548795670117020209570420271409030504795999807715605684684040069278779199545359688509134350237536986918488315294183770141818339746966598207853684047528969687473911428863026973801972561551998593543756176333875968295342311829457963181740376443022143309834059180281864303729191389333172827160960250090188841780728999890414231562303290573299056748234736732130157566050733103816143153339304793644993709954998500459228378963021772768723977493761801243364667032573057677237741797709868897278454900971256551556044616352357010114496867141260217087908335683746460970542833140971075187946172375837056795138316197358342561410328289930935264129908453012134022833673717775316094795012301629099663384461216146069783396378900387134152348224565707073096316046513925670377454304726094096722048115774146454315222305162106703859007112017362124998155692783457913072699968573990203175174914282627972770973354707173926673848452962605424597178252430122513359808856028243446715443439405407316665638546658412715632668702034547486950939890935129083621418924879127893085460547200280434569411899903523276435402795877180030558596055615849706026096993936732959029131156995142273828696804054728778046123786300815547451540684175372544895439915264965409714738237166429851498423164999874958608069050564633839122773287706970004800995166064262713384624369385399588052717476140351385702683519215616521195057726047147594468020650611175172867634903443559757302636058871258968131506379961620055919638673519477766334120124110313244408936595542946673701148809797054588742293096485021727042627610962941291155364390742654929548482325978890954701018058371003522205177121211719678820111866852303917478548804286258689939744175174082029624975580782651311581897549420918486791001123347492371040412518677383014796591088115922498769551253712874564360949771102066866001443721318440348864813861825944553011193226080844739211735061543956191670831037337380226647085295270691085479388193142399896555793466108479147759532013394601831894002165814819379584099851603919353228466564289556745733368854534135591569720145592195405615048930183403932189141137243368196307392591762471378879885716083076189826366448816069268182265081970205432004466689877069705091435617821393754943855060889948551163630289773008604492710904522718298038325560434072201340527657549728964611890840101386228696023597896307706269226440922220408351071445810569853965292767655239533422083743794354357594010761731041168188484683704863636988500929193671655002484822342428716457927920148552616884679650232416571987288205887040762308568569816849916575890005697502273258326356131248068637518283166720956903498023145592175103602261750859280263419761620733122468617215205677904828383053579244675123840281475895832326623925641083212983349635555985467986231413579843405994590875574578722810504031868638338629850189704068134602777076859574574794282455652470843883420221539421577115652543468533862176941140490434833327624521556275008569046201421094842762655632409416978103243258670436081527899668507744604436782271555629554931202155722991684571136273207841516133568699092447374670940856676606099833395750046041290194593763538798677693372977918509678870276948182150238641114963668883025755881934773824115872003379461721198379160877870618204842518326894396635724691353599572696532131100924414043551376009076762472319863635453787195567069776302707416705327773700434560546579449697474647009874725324240464519849110581585368749121450394855631708123225442455172183326264598267242058439716129956182289525465863618140492114597872470748059296483272740352551005174465883349054642605372442348601411976770670643764272181532938560868052371957860028850596061931065738972056419600011950948543523271138921789505626786908399973835298993288370508750101221649997308924434173739732454051384536944083250256293223327969334426743717195442747447935953127704453404955050608192269099768426767462378425315173670415993267932752692446319803483036728079757760529320879448485626728864125520245989368533473603886951753240515937331367950424842799825328940515194568690832385889507373595310842870093247495231586565719698124616083866109931826486927096528868086715818830069448183095743503183928324184208371865360097859716740456776459179297420979623129500017081828902368015193970109844056364843916818888250110239639929015087344199510971425489774581827988654904594261078686439004018007835758108655282901347934366184968362773870418904650530696594452867137273698985995217615046289324792828476401236640151869810075760176753242905735021200277193520643229467889718366128379297196824901741039225453047173035996176619734110621137089322231174592117901394448704713986926617105069882229784048889929207454253380133866378704437207987202602478421345130915227578376594006955448778516832206827654372506221655327663145206823256956137757987779649108163150986160287526183482104932465207573425598269180937608671271013837601341931348687090249240160930445270705753386718144099930414188324204610967065971164682050501491091324766176743200566211270206178935605371571893748529492389498205020823689764185526084361754049945345963317412412518064398494808475863735210257456978509539782732514230187079071785232135933423995881980019429452419392799756180659083091927011759772755391409172063040992886903914188217043552490096222393464954872709191688624281974865121127722824679239964304003276992551132830883538688765868294809819338101511253789756825331701520629560551557339304489668312676957597038126896702448732034055365316453370877710993478806160026059274575859594600244886795044015031207816174829876488061902216993892508386027858778117317335416810885721668746436696345133567831474908389749011737808362145273156921657389387175956554124164178598760063700552049617550222464332631708232096762807655996017086066498299652439883571721640594981785095963541661407585760002916827352858626972886063996660704921256569513243470785843684434474428950594493414347139036372822274747452533191838069744479158531729406826420098417541846974038559407740234500417704573948476855831553194161538874405672136240413257380906813962040641144474389828746696766923255121126578691739364994633223121863986818885501500908390534934261388348945338091853200169204583641024519194676861141164296864186414807472940946705745584798732012988411333614091410310639819248005198652825797585700915763445123571291176867715590119808843733521420051208903239574200516478643365807146624766172568256058542193960501432863197959006058928179513832431194804330189305556033174864374391036856090074056641090063750035751066512915344322359012089041532026097440391533010776232115713836287723036928064701197708829424613076360352647629127365927038155213856577094898430496651291783324525923807382709431882954711981262600735279282171326379041032909035310465307272339839268532547106264465191168054626804300132404273490761485200687524399328384957345202909029686886834715930057098259396640871569706133092457275540001227514500548256358904388245190854094151249033584247529541202847195475048472390501909512982845400058977080462832276894517839263536884482533944173086898946249184422800435107913945354088496594240423221196123546784382150420442396814582997001728596357502216841535184356787532882372968083894141076472751081724884897068550637251432947642543166702566524681301180747622764699459419370798603053287440598329098102609371917510038149676734358879906357222411402598512929147957175981777263342081330744223520618668667985320866415882791529547407792171070487751544367411936690699891265538840775439830539217022706456014012555198672114746304732743439328905070290193540167334110565197305643188417818291375739810242257546859123266984478632314383634038896104523368321978267556304076703715772963906116497987162391276623826730488128864495670736690123304208856516863444391610840255966066104133522137002235383171496322148998718369172189339028923232756838021168789226374508319394667993073975641983253306472644131006543874562393917970860874817797310192975373761336380529321722495414622383244165371994702574798350682501400144341472996762920556816372170120878089441753645785113572654313504702902111769175594588508608424432191573994192984726225879626697742916749285012883975201108416725252122401615794730170020552182494040546360012074300161805327977676464730954947057012572055232920692602258061671798916097444676964835832244207068612431952698446557239131331643162011836666296243929790196829136773774129778878050280171248185825834582726176939454277973128017935460254405104452470214239100083032579322464474229134900733727054653275323936678947971349340160888686161355647860491885682051907213463419723623731670412685348631744286138704871015223230298448490973784644405510435201611130964023364705211290929316812930146226899879190774593434748754660616490713659293272077905045543863938468725659340044584817582934371658875739356299053410439488973663718359724555311730387695124080159584377120566004172203481047537279109850195174931021870512667034331007017866617638863377943577987932663136933990032781733699394623025550310916352661593319633370419584745732570735396588755660367960188228393036903736525380646368943302805782254940273167586959448019267242948814080456313268562982782206351382790177227371964742494249315347947679744196746497776948044237205758390215759123972461260820872364763765577789902138410560089360409740368052431686702905194712674349445808234441709926723840257439740621088275509390346202013538109099934715778013771876790710102534549070186654679996674608445226854419384120653731052116664978246869571025687945524917257854864791233179052981635566083501856815370955705986360672384065306201945454837313535138079610224558088322959153226240506479094570368904974937770972308190539509235048411227315334654855808826071345237258254657022310133800763418031676591848382113802625036233518123470663813342274129107562432622974640924183905999981032491371309103835344577111753216177883530863157687172579939516886152222227589435338647495119557852436119454244408863252246810554061455408245928609629883280779913806998804913378962376915033673184898076196245214798102786247233432932272635489598382828531711035408785393465077772126040151495656662289405562492272959887190432751082136881976635518262335716222542147301922538231459953120989346787425140251278243631298544027808836290691309051214711391357371041576241296827491499770664503334241719914011620374429855344176204834304983176540390470447566551068590295892898140093007239424417807414149313956449941263737080181224584684513538338282434137435750891265054174885316676685358565223226181195441449717070768428039897291838968640773517269995606522166399920168563474508683008436040543776246064430641569295594021399190510449317735531552042504803027868548308819771462845181111941477383930442609070406147662240292438830195337500056561392004772873396715369762965253607892425720023842420057736397431360327395659886124942231087350485057706139401721886423419590906027083428099887878417370917039099605084847242498239096429965430995835798641768434442804554604799913080970187890435853280031909267362837727711000621629711378610009081362578475169455596492964873283499644644727125589405350495013787080036076600023252160868248697375739025516908263133296711529101577073789358858357655107825741908164396237693067216243850958964694783393546009744205799167688839227081336810746926377944934621183360996694867442167803759393561275803765821787736092043127829617458211208512009843995663761256604964118687981040627534454145455004105529919970010600433054988997372098991809491592926792161811584885994843206582967633791495791451947667913513656969922993400095433790285014614163546294447155129372732009834259811288228392644412520618578455252301637854714326425680695660248871245332277654971407487339445315864704044495300629705317673296694520782816676512367821094690559951913825860345691525465324731356181386222085546865197366416126768123008807190240975399992973281747056161463099076616942862969718297078110199259535529376147833461609641643701897039273943019866638946701381688299028815185440410383977567063835329530377324896023100150257327994936273936132551973417434144146201431212184376537721930549712733925155020768558050577898820267775269899763473342333707923183983649410796576584468124097319368634996617010346534405101311900135062669795787848335077543724588129533736737617063363427845220693513366625027314311917394670491039072196057470889291544029249154248435485522340505706490349685823293144299135349788786498692681701160928329077122057829831394335874942380909610767341524049135242873529837020136596840365433178738535787610531676284423977944144808137280991235414754173467349688657025073758416294030488315848925585421916860383878564936556217669976106495471175440991169886779861342104147593441982856424416036684832604104408871206092172852011342306819214356594050665925262505460910546490245611052313243410630444893076197049447361292423589064697290344469428364996453286096040424338539407499956166537947986370600195472148233415936468972492881585728545247358059978310460232504346332973944962253612993458330136976986124964171267795711909276833089200387517775208862836240144173059944029571117501999266757159365663744818284802840822134452767639792959626882828708484032102638461579443423081038330732618372897699395700595119058707942848858433788374972540095094103471249731201050266872786643728084303311570060352035925092744133011753548792648369932448512549872625564879391180910856856490673335138022630480201891758640980105431972583465514448782409864555398847768818816458057502756812821961643061476438317534366828379203618877742792048122528179855611102601842489009383155682956586546892616533159243093120905541519782338748399009697293859104773185002553858122133071486005796162201908277224732618418696174729343810297604956673236129917070974860562148082828223559487649297478680491420445467001219473198969851525044554119763148630927829796887563578343431129624469783285028228517244740010498407151149892886299082782614881286717183630801246854960786373351611898352489989682927041549510342538476588111014826498785429406997565258420685489689113802362773486606643147637177920903932821195552168252260515227379874607905631390876978942139980395688349499469753649133474873525563946290542439025386692565877479839477210646627523900633685904408463723144863173306908344347393110781417270076636066723626360524974832660064806359423232950135876579093400866625033335398108276321667656557646718316059738547427966103340793692270857624132523462997287238629343935902684261040527486793829606828685633610476188912281843740570277245605666183387145575595625505723495930851559849514861265068469286491241456764562534997559305804162658619700408076640564482316458778405383142937335602245237538646184402930932556527429579460342493364841633178439484576779238816303315477757120937169838250598514477696027227011755091784082203058661269963512486121815159898726604769051197384989941390327108069324530993649651722287591118784478024438443165510403854095365636474308416392704184150115962013622176222165854493198634529666529040661828049997108595752272529412987204361571042685435156629175661321878406100425491274053028523071798020151698247464361269502067803150640749824689473412057265410756835148762015977340359214503799576227779651276538488726316379656829179464867533202305497008288958658215142651807462775189559587230395615747045434126848277484339619044015868863127570490549180713158468926333096518630140949598648052521695871789949417234097668206252664332293894541519835405232536755673278842369773915890042387682009771951451274180903454610074689676917089601563327165928709423730838909575733847495801746703630479761631758461870789249560484343189295339623588752335345488347440445503370706904704062643635710507474798261976072207673487437006654772317407425244431500271200954251234267354890231889684827848509313681788401916251794377402247052835398673831108089842254115816746273468932726212808703971792093061009903381242139762110967777221928498519121325632340941189685791582993216525000705704529911042716832963610268065153607018191297812221146417333135705055844286877736956911237432508419355870006893140767459635906951898933941715759068534382867563214171151003447837618436775871728508701869294209081775873068574280273756601021260145773578483520852495079980432156460805380031340524961451874839033801294021322397054809837187286318503552088303467643590835675267209833177325809609033918544372497973578764715677252715715205489698523938207591597404080701636785982350618123454798081343385148750663918709661492310367401985346062829718606083929457777425013388969639115742731546737857034468208112840864869975767070524669457028539087326142070230414684768314181794083476235126274173417130769206233718546914261699864969656543989026328436748681539193929336564584669036161311529840820857092117128493566022706044297710127259779980180976974765597982956672474812454377317281156719876931863486419522188686133570508150486531927001624515390778270740873162458432298299049875459558025642558601058262207521782536886889561118800525307634795953529582546566018554036145935284462845530755663292929918106091771001014346087891439133507914275664635045195724451257980287436772712609870968399362991741379014055044807196809969992255619007395956672708577459873062929954739013554158426102143886062362929368894470127409005232370534748135196582076497084184162327509144269099262200684480336753804815368520282367229206940517791673411210232119531771448459523519422925104453067032958515635639073485444246485770082503177077075612178431407550629464202884937318260478333235855961927506763089819451284019016136026471979110017711662268844933884545789362123576701294869847283126487313162978430630208897702749294779380758229060181431002880048502766707118342942082066775446512862677701431810892671319712647325257692756497490442564058111759441624302194122158127798528429895834315253994627259628586132093914513827582884105647243250039282179523160506672090135768095626222007383308826481370091688359824018277034879896245741736082626729604558379659690233159361039136922554304152675003985935986781892523747904547408267926336170508793027397691474653334808140450281889446313467183897855255847114296968339714601557420470292887190357355586685700002406079169571329781908121919092205021083202861290055980958270489942972986660192916026056330567071998516819305946019793352269283607339967778190105336930909023780756407461595569995911201958420636615074452034233113101237950449353717245989960917462956386436000129601926087718983056751653917407540699433508196147749243481871223566681844818514155665030860668916496212575347856569938492323722080302624618834456319456229983755390025629299012731680872684839825241533158988987064667944707560435889261161513634345668964301783386498312978745810284601488816803995753935881578934410077023440781352342468511066179980052184983029161440843690369927343653904886789605817327924290597337161802306365475585068322531928427562568876821243651701705321575234113149981223325573146341209547541047991846853927226144554069135684128282335780555067821810544849702184827641442448409463980146791250481002145454489485752542900612275660853111439967962548501370909989132094908818667437076247772913304846614918669527176814310566317200074090637978702614901574902015533696910499901994864606754259599140859616257582511739742668878904120230451202187042377174603076181076015283467114617601490346451771035599823993261755310526640534215960968031170527883841504387858023079721889592632583773477884002507593241985459647451464554596742373435574545391322993036960809040466875554041670982950822533254092748101983042382203222702075972724128186180088884825278356213927950094256813208284853731585093814716298063387367530309701607409472031357843923586885071522179708832711368364763536412650272105412258049451295065917598977349848280437315315630753135358033133007444572318428080211512362797565782231825476414993158209542702525622978996894620328616598862492047692020684516183170764480180517082257117087131605359039344327178034743448539785776693511668585627011421784088518519830372617350744514704606095174669269212705470297363901472974247745468002029386373918694592644017360132217207231137279025262775956786225565056147387336501135356176000158713936967665910228047851729026911695207330179925622191276119564378750692643177114979999746070922415542939149130203106909071591662282397698069324715269133801616379678501622243398854383255160652642863495321607878906113334512289233555023564136302070001988869620552126560771069174820354025520943706119535820871565775098206643381427516068465977244512435181834969580858152491990217242084032234043041705164298620589812505032633800422941631196663701267080708728544879564045579993649718573797875217460499668728314673836597312695616367457975016574866756827313885960482964302627135038594056097830470936460889735267944770640761751909834641895793926515323058959974605499285751945540102519279059547083001810919103553017880338031231610349810050607727740613427991776729152415493944059272851990173279318522212750010629958639430432154391726973508865144157835335150125336086092847959822626034593293822055318010445730182040547209304597938728997307196829200044515572884215910014150471256757873504672679442551890989289249326035260916022990321582116313064303195370433428935784008168699111239544986061664520239997244667068492020459104514801494708368553329257339271364569959361235760660851100603201780416131347502114681018940065358124398077743172118714213963012026703912536278590651267713380786628107119408156867120224068483768564571794814327538988029477535221002735983841891395802286597211657090587446342347177607121875181363752132585428040680095720486747053105538788465493085013357461768482512416776507463199667579740224513975957422322581558444279061086946726845990397321192556726142536521077672826548540289967072951222790708828213261221872861379005634532563990519018167680732514805801612316226537532534307184268253708207428291151640741585283548051372694615463503788912927492435926199176528944540593385024882499852573728471248516020940500513090135890946425893352158850427254785377981366035741101810977506016801909509966084573294137248645716688422940840326189905072748843164414542125495086657074419578600784564217066152668692862735706418999936092909923491979245748499008836901942065461862701118375746554873273023717363752996413582823407614781222789127656312168981885387296622311940247446053947241252738541280621538435830092234310442770674879916184961054873217652622918621329008724431952107393891057541008762655718597522856435116582430669460869571694885365749033213915211438516528583920143342102908692761000655934631896837466934371093242517940756362317364090823502454553415293857003289184022343540712366934162816365668215390579479321354452984792471259912676815293884494667641170188896489905242455667576831098349048635410060714279548920485850831372024499018915791305833031483396734020294647976074108290116215465953025419271184931006247207571643007332201728532684526440095723539457145993197972456404632007876550234029331680605865235527439861416876919407397203567832534179883352239031255300401980856607733195425617389653106338568434090371751439950465290378454914070898387850125724801473577703856095030764949168280588610929249750626453511446875503439772884329687921867890927195825149998454971623696150205491831421697996318761422474240193740318768741754626949711122300040871093010197152923981188179760100272402140681993615665140157960768657661677246031715388517464554430316629173510751257025051643626350584423238156216937123494329839442084622983338132504954240805455645788638991389152397137971175151122954876297055664535989648372035052538096692164817133237180208818502068503985712087149728292124691548324824869069164242461148897264061031688023936357026865617187418334453055289144280576977788862500373513197794417725680929142940853747689065323766749512367510706721543593102507957734539439579049584551626801070324123682774755214417267508054444957647468985492657107753248431565988397012382809810485891602464696644608235311947551377556784227071178012307132648466308526584161185890038782668364919341754544275363072816696762329901245757345353886070842457987376503421068282381197045474458872486162918485567042798399221566319785400069763092996294956128059957048260550834518436429220870911267773140614665325748201399431628178947332446765783514896262351349932147819247171879317139180502622182003791233768645479503256034687158241595770060379908200013465406045970752805687341370195291896006293327772885083305488439465563458259710530482054806927559789603291679475181584394254966767124810280334002742059474681947477627044164380068517358143547832754099039242610862545159286684680141724436489802196477577149992355900254767307574406686277594835892168332033761695902269337934032930772146848786838565223109465320214796371957626274994208181804304994953932822029898007731510524404333587923814560825196069763900324376253876418421538515223948802294233091290730889599384826782722116364259677037080890097529583219509110358641991992397957067984166335513347011760416860767468863146114563576177571305149019681515816848068347582357007329318481443534469221518746873481206024655571311149503355439972643893505691740126186027307261754834289373627540712729771803007742523869123584850695871590378226423773268427831909550446665848966948585979506101812321766327050887850181296270249402580542230217068579886070251197425535906860412771599608448075985543585578864492366754625566393734114152975983057771677781214470139922485477094212080594367701338623131377091150243845124726127806306738198423286167367520562724757926877601616534138857279609143527490756445646064751009400873443980590587552243886657484599292922457971676523755406170118006924289493483548811691141116937231383102666294989520599303318410672225709252755085136077367113610812641782038911388558641491044904096346813796406683330820490499414480322790931914348492080590677412725618552904323095830977180005956305206889624916610404750690301935649066746320666009892181917227747374531293258979572578632189206598814890519296792040028417057690886230245680386713505593555902363093802993242262659426621610045449035423657716068387114562422553889842441507001273463176410938641688592695636476886326899103595591732838497653530563354872472851622470307561272404060513273547754848095846374105044804651485338675304777291940280338371770575473801600446136236041565081441059349215496718692860900277999477047091496829705893262751687904949233757177821954990224243254621266622924560136413158783324830123626064059965213752316718790938876839053571221097389463872052613697376818010457479483540477763962857877810446962899033336881222253599596916367771895568908826657378576189100033353540017588964712823132823851393630872429450691827086034347962215665168837847172635173684449815600307091934552710785752627926941280459704339389333856575663913812644697994257513202050062968223982285160146678046023462795803371399627639743995520527565273714973076551802878861271368758668986732569718470065225136239831308888031705810998990747391493143617920514744675305505025360683390611663486350158101880988972049769527346863694883403428992044258373563338261841313172406031892841548848512369890848432790667400044543380810520926172845144163367701586082227308863498063831050100995080484851954224926058794995172580958761763442254117080303822640347685198338761678124051221514751646110302956380626637142764285985711952414754527715041669565435891965522651718426530539432345924331900109442814804420027417672168297616976323368658118872053841320611147120522036490483906222181274712416367315210356957680312348994555746005502545123496852184028235317836799184567971119742805038187636531234835471448032826986727917894136340927413088552313275681524923829760362506582979900813607088220470863980869462651483908716338156583606670393263109891960670615188759671215169148288828247779607015774179771239768989253119060528384766157768796292933573258242142837395917161280569787439978298140564282390339132408254619439981391784036475350422920228202937562213193578661796549983089161394800242383183269004906035215691746525152779959026911962230030001080184140356194876853297482729011819612629135478824179867130188457877248335303713097215853170173977317084459983950407995910952729446760591929222370160139981481436168467981323637749712384731902228775939296958536811412721852945988929445943767168341287132838070493327896083200803734405497613288387092863498640264005563780491309097035594189814646998058555579038662123670615272453012651422866139150866557681793600388901629413196471511290918498617962264156747766305327147163810195424662449034478573741009785978407599056521312190263942776055039954099030314824201421341132963245113169959988624090430505397678892854478277618121972007281328876365719571734823991876005127005156530377427216919848487548886472890886504996743194248579311956817426033845002166891576440486146159194776690156134384385903622913721981761712315858971462517912544418903871535826332436939640699344852871215524308017746714367586796967826682248122005155443507101480409925954386423044362633758027214739677490853412838248542762731398660443547703582942627764494092745516353651127715581992320911235810581072282043090426649138781859791193154652999856368672614876799137997015225883640968470122015939538073521402060707755768509880096503146958398229958895946129844449691286573274923453668823159118918522940046124575115377369649037089727054941732710023350635810376193886298316477841803531727069633830987544212232332708596391245065042554636260944459902691324220875031198387960914774266588579643775067409430396242470087912587853036022825707513411050150892911621085049017977295848244897162945319295581954770367484023311508102550009393012311909295411285306246998580560678080388549653244795076326326000781613904539539410416039931491176575975728323484006319453163837541296411464295585982909677594855399975400473328494610579588112963866479383230422577830574103147385188567484841057840580503622409816186705961581529259083685232314780617207569670500713805812378538454879052369774918322328884321021845217174634079854866134018829157907051102298952192408992323516704753848127965087528531895344694654510500649924883273631718221419390930733984787089613435141897440711154578548159842477575252703349044376594765093019770986680655311616508792836281004974094166267299363443995220398083275953576618525966700298609755450273163947874824406572011248914050718128138147441769108555360621136317204441758889700957010181011146883545028311528071442182628487579555616496708527428816424874396778492444052907603460141096644787873894393803557170667651588572455405910800664200163229610348015323328135341244184559130582915811121497537714597595224218138135511380259703705301555033686723859637397386433715227001662690112374592070036174234063517087715586662172094079659410011379000072632264604147219527078091277368828710915604414454547752741158586609984186422754698962613509718735444601739481868290442318760193650900961870100731725493214038182162845134621867798688523723125666358886944571886201891046361727886217808166556800210188783828832127569195159227496666441003058309531097540003296241245720939403114331914897762045622223071321805290587944329658238537465613489239392213641886124399760919802738768926737890542513851426357944780067491866820842600109487124686269093658095418800274612991970589632439844197300679488184368768882111349606323625005492306421241806956447467256052495389854505395826455024440694146995997169963918811907878203518421876585540633276185436002896062089628231329115048375085612448299460521741225986830599700336619348473175734211808875324170372157063648890806797865944634317204816932497525936677206885043682655912111781659128304351892318654134635340445286231339940752801204053250406527679220033547314453900643114228967412146304623356745603777247112230862591884028803661724742237190487538529940086118486767869733472338235272248780814775081768735170017143810504820350727708403950255600594257336227141700547970659703656458521851947157759202939053230156181381771954838869185923976234633203832448228898376080126040247100011193349643523874963215484690057441291863422157074365941612286394682556595654252541938948773738991486567368706189423002095592329277858409923429110470687082769454174242318279026772552966524193049108226438161197052677574299145017579884487015308339070765510479557528764081081491475856309782375870523894659444064283750668192068053161945799246779021967714211563090169914520958720303260187431383666630158859482432888862875634692974768706389778307735244567564587456211122163392640805777962558654025045549233923902958332124063708472176623211874186176537058595817009538123443126959247649925408913471551262292758957467486321958347457111877093472514167824545588149476856640246630570405485870332097774271693533552244627838993843945786572773284921079491974453307600132986090232766759790511965193420776598550258977539119196126480577217825048773793744917309903433434353657052303092421091355229459915455445563488417943123466599766557824986101848169758451766920029423825734619053340852512209706611916280197998815732018793248835797343849317757347126190115041007381026302925182738500229964872358174943826098910980605314318166081190872933984664430314773604306103384528471810766584288084404072290432551267661789471753722819480094692183194141535433427225203584195682895291150874837859917038878093861112818382226285849850911978621888736320558720516298130225688707767618221715322096271596645848125492305972622407123898547286396238937542149106137600562656733186594143237537921373744090481068000517180840621988067602846797453867351756327863338270451133401699301349215619593557518288125888966726221150542829495485580564088746426639994966257849053253134617253238977733411707619956793883295942822483964234594767610196458721117386033744882683667723383443358683025406751629166950594252291330068813927715629096885133620272653503759554762369529617908817367011552262122362683849042803439007982666661295756548555968670871292945472431715203293679205847321719350610121927093973295563269904584229066844028859551596980494175381269470298987218537053935465156928667928919987308382919376622972889945037855399414096431774234671114363116277821917003643192051687260917492918772977919466093169044738205980432656601222948680197825029473599847947646188782588431955971206749677418783704858863143916352368746173569033706693051228406113480164389880005270114147959855558670852347123160288609043743928695044533905929069712113075352182662704042434722086672464262360190581571987980781546645338005908099921442041867568287553900044948652662782808667294086761980136130605779976480446675511692046724539050420838399123721999693283840217815544329416484495964558014494022049200453284243548120421811693215791143101899719124262196538849812661483361342792400867372332532677147051077974899170192611646041758589273725729219113670716799569304694789047787367918309511450534737029706212359700323629225046518901130632485943293991325334667498902346917670442484478793279524409381823429840044653993529451490600479780100524087732407093964173212007526760302762392801006742815695347367779988989937763484271042806460752578661826981006816672655927200917234559766772010303412549100896645965259207151151103421747118433486578802133426356404755152078763334421892907254660986078976919951958127626337475542923566297116512457021300501876519592288452630291270920977423844967492039294404789333525375214982803417831495776980235632531616293443099316190083640359438539847513392409778997388400218279786417788656351296184140020683246981802805134167265480249337963336636821106703509616874774107936012908604664555465249144361035413733325840431321409012011000130248596311672032612405558896256433301294869553075877965703427368941368428088241817068042689900932187532685454192417722102313271390014336583359202119237643038520532186693469445751988833160728242824032035168092750234022620539493259073795858029552139309191195686403385157096001639973082961309866886471462775804108455160050008115581079773524769622525786960365016026327114132953039113612458717573634225221760730764126206656782935731187488833550607012053836831517455978045296779345846622862902473887860413111153927562049095206164787263231244235149627518130364377800589939047508979249337975822166820330690379488545535012141162423560145235620966287227610647013802585478657790948257518820898463988716832074525533159305479875100964337225145010088863130059962977505847758503554037112029147765657086697681710568935707127446197640825500322727174272127973912391485382771956461394010223688392022829543698920883335450321556765762610970772597552825321818017380563416117942544011279913545200528281040138769088168489651722071888209295423823948983477448777925801057570280988755535512227157935664193321233952278159261193973162224638790751747813647891795822420486458153802672781391204945750721129385984934110947256603270100510315892113752286542395623783321918680067613596774979282347880925543597373803671331699582481746592663244399847709173715315101489659009577152983110585062241077224042716086329896380415998368526710566964411651026910412699680079913421341625846579693927548421768388157275614692828478106891307107186831378574492332975256695082722182396099002088087618878823709035088804892105135412063475037073302865782271172650066386551164238223424214202737674086962364813229888784843544167849669048183585972773183704400357556810201364660908764243455286711472319057714970616129110122508897730871735007066518809570181141915399484835379168337465638461720812443968482072793628134416848208374014645805541866341836956579099401640702743793779379254693708946288506465566879753452002150929356067293474760913361349100769970641481653024187188733753526768671353956619668601390844905821737450217518918006216809757301839654515919443652305815834138641234301098985692083889791941705507080724078020816379521182537584262770848345741537747420848188386871333687896308523500975845777220164869926846459459284842702777439448158663691168306735944928123886840909123906385315047901744628641004764856224024692655560651573475976894071413312205955610746702081572806626157493845175337610105653598369625510122789778906926046009733257318803683055578215865056989202185062516296309152470635749679669413944724253966616593496090705641820149186027356312826848709161232120035204679068054752600422673203450095564797709609943040391967013496164334422851531073581076952657795544431380743685225249769489892026114771723147544521085454354770039721453994982814202812827935533196253177265731158708279951317609041851407652383433380235706363054627157229748928887898352327392849089105998307302553782667282298250011580834538976838903342953017377200834247856442105737650013711692821220220991322430468224732747516535623473686328640036851896095397891943006701081533707862058665363959801727664609121701234045903501666509086329853892646212017380858276052071900222884581769137407884985889987554345995342003315476580263859199629820894505564651143750392879254918739430333678989288700804018561273912128999512658832918791340755320562517330155176481961713557725648587783273760646900551648894867229421541817359015255478874808379259683970117736159107901618524369098734004488547480849551978984736584048675261068942174307419129199037034141624179630613881277252531344796180713865414422004915993376259852265866217574170970868775485831244926586908672003809534092476114270165386685443776228067106575032382048774263295630602888360792324532242314349773985635508624304904423141304323949914179051513355620001897276961010798815324839918311607440980015058725511306514131371449557639011319403617506910475982750636780301848191761370636072376679109982497862436560635003340041131942522960032349821222329207095212161487810695593176112049368374819007928808365483107665453399619835439953498167880879053238563438977315210953010157833860316767758634827955723577617233393336914481868421511333185805253587863726923500319642456138390093419024552459405353871964593401062991795562776219730087191836713639716089782167369035958708514364207049641031188257450953919869017790720623877480361403377257089078781655371470770038748852847200753145739581178705033458993888611360892126061561667568072134993038956024685045922423774698521225820149061100627891291312209599713528341631169828157160219031415258688891101199778412257596514905362842451606472636806506065786364467640901618838198545748451614237560530885183527975122167273807365467049574775901380788504454451258592059709748706927416443605789633602983588306814903239978903599767765792927067178772098313496339286994741609548723100313358499107491378796819549399100369289845575521909435363221808012136851753065943742592498627285119270983136826597860734728329314154486303506650766600137981251106189757945840407967732441985306210413088466947707091968951520071346815720714349616621848817106041881277776989137837282915726292302417620489392596211313420636313915436916341299931632224735799211659957115024805709600933225792109368571644018292712889796531411409121171324294773943037667293897040905339508798339764799872518537421825012345570182662819992765441951041208199694401486849732904003808696781231564956055388352295646068888947636291176260451822351021115604076845550226075636311662047649429961139159648438315200248396682111490166065347562256822071465289346069448337917510162022098714738422023967149948998983386613136994571773028333853964518476074275217966507424783408015734430179321364011410657114800599674306647017599513238472444580686468511546436210198499023706198833497085884644158489877235695859952158053647582241726829215865049647987877631877893750053842454063667537148707830172301972096008511908505312671474944705742121296098975955167130210532783557138711529105925390520767215328670854770009967006493983020050413016319576247915342532254802836698463155727464282333766098825940832744195704501816194483349973850030658288605555786359576695430365501708336352045747944544158695475611924804231354408291150195382906674328880860280581128014337102140168757806236324590113347498156391187667091541245575562999567766953049470892466111575845702705964461302931219187696891428591743638392575532927760931124466262487544093290770470056743118963009842533642088013321046819797850267165652956264754634953239157702927456924792099015495786391947649292443358433183467380756542922192699418184836937487543238512704496462114203674623360556711840119564244958116413013858411178371136064046310802187070819985402746925092328317735091940116701366210719189421748755952951185476438883551383547983161604425757510836874899492111482539054885857726914710760844069735237526779783507070210552312195663803734886638684396577379378931056746107089300966840953472122555547609981893792519490379096843473693456037072411227895744208521267337686428780783126659809690274913079794473653710303598000881230603751719607518214042432102088760930039737106205240406578561278067120410844330368213820981271570324935119324063907227100208094449615739155562876315344946137090146081009100316860459583219770130750090126561412628599116075135993634039199891184820548839892100188455903726250637536471352892435282483321132053301972370670421146471211319773348096819133264309669938827302570299887437704069351715775914753748554493675558019277521513412968726799050474332802948403291962476334204934987664447838158583631664719319824544554086356689553908513513288765417524939841472365551917882163456724269512113513337106660685621868866366508803255318873652889724175657041876652272125600831566535526478488035360117637135167140851362685528662630014243040503819800293140565548077103953384762259993260221743227519479892904715952404873351183663563954868744115520849658305429305921626566117960340876037761720715506625586581439953761631675007241107670328844321898158721874802300318212473050933680095496868805040278536737034122066341106384437365304747294957502777969565475001036369428584295651523794848218109497286560003388763261936440079768295740273511723747724418894271288025086095744905464836079832211008460422968611267079088770936098010947743368299241180845749437813347967222750495942959241441511113001488970909717491041140950242474848769552877354351875556643822661396882870260079245202955888624509716128614490316478274088364201330880294790789436400955656788509527193853452206696949430035714965689428412858252661383928053932672536204322718048461095817165626363482301152987597393891877621371356185051317019171727608801396583896272299839423779506175766168486178467177363918227101834849475810837018409915315923338908352347055290405904370941199453704466114835973842811514137413950952171355587271842669867463394007276306476230371500161360976472963061471276441438812934039148776195057779495860116051503449393674790108078424276854046852984217261527937511200243850753691929441913238511415767844315876828670302430739918330715034117504597877354057007068874331311807416896613457549845440046348362378610249041010110127261351824117839668494501326894432616275808025690836726592869250062688309095286204956086403543575072088581273809287782972887466365570091306053388127377050914260137313157778063472393951018759171370960354637411750638922929098691765404559514411353241721587531389250461625727095599294259590119171031772085671021784739569851378876102249353301884920986935915317294296512054641649980432761306109335085260500144507121518316209766647254152453668283513272911788010783622600177936237334114393633728054574983982484520527001637995663289884928634218282305299376246678574450154646235813584547756266754403410680496912363393722275823827335283524991040789964453886408545012767714106603782460188211686793237037557936339558424488887642786909426365091345704305916517734627415083678854513099761874164135106632607754829040881598838353398440444388838928970468734236524966482736216048132204963876872346620129822289905766783765931114754013105196095301192974508105552681377944004088956529559050054110833518320395691459080103948325930119669471083357080667263805336803154159101689451553739518640777789585390975287382602333849264918533672484632122240467164543628733769593132235980967534879516067234450977973446540976031704729298598571277075847028765760635572673573934040768684978518643530723632843018420134094685296802350823846936616827531275716913964179540085020682466688276567793908372380023352502551493087893353482983347981099813578533189939703710380091670438216101699089770920517312209778816843179710641472361071820054490594686821547951521278505198267396861327707455470216049343629131937823516823646222264103568194010310435492528802969604104073774894837451133313380486735311295822887760489086626881917267174046198886484105412152093607331118618578177812708748201778124223812553104832081627718814660813423070348079870352158221244141138353186057986834234214058529169749388456196027339509127443667182002051178553795847052782325007574802661865059695954157289751487425692844791350305432019681536199012932766429459463239630125461686591558844416534785298743362239978990679817986356152070062155992876636084648136797565806466592959491473661001607209957846399036738638146093343421724271520661187447985180491510137974811302833007806806050642553129440984806470721277257290555473424509538783396333893439180004814521469566365527494982810140675120959092817791271642939528296824067990312188210762782807712307784149163258031538402335527097341089134266599452855774612401101940801956432140530168422529337699399518908753238068008458604022225029239526789853315960195451017177233910162195063025851055467777639469364126118900399173228300740289849701996172350195851302125940462571711554805605455831390473331911489533078352033590499259444682580355949605216956625298953366087656653543796202206523175249934464576313427203202974503273658627403400045039264251571770763217659390576303870498833360467370137646823225555412286106619379044323060023451623739450857433713616502002281001991553452126753050161409232236171829342929642544888307008257481763237424176976809843887348623998934738138169039219745426244055446541545492871842913881226935678918233133511486470127054428143250202060725597351107011247799247440207056857314759682780066073018811431330492135072097247542695449083921071971340824537910048428104385022559677723739439691148039550242704332509730134035469530713634167695466213781893943553764186184467678036392408085683802934328502884390439929956342331799487622263868717856896700893468725716307477791004347877889195516884065143271128621149943965823114187576032559125960984546032187302184554351414136449962730326337221462987900561331123121805375779634727322040979944276883328440034338774407404204031589404964271705548810997218084286869739076660803010869416747481452200091719129415246130475313512637251616331652602598568260799615224609845497357288434506307332301447940033511771936218489614870951947842347307671563605896312221586848142952152582003567287964368570767927253478058894005283994565828767988447154815032357964032330489444660248266532500258670661427484935867368406027367611998099685435642430359055687088278797060306912357088257208825200000422019753902549082132531760928707692838417970442558752506494317042002504743706328652930122103761281292389952693741468755317722693340262051436245947128321140712096468993417710195868202755950847035869245454060918314043252448176213303344690545288964701666808887411327729672916692474897342645248559715042579111004603451985908156250091148693942736284495476981979222919353273739243896745087933454334528897252731868805246540617667433706369160408610030108024948342272870217626486730169672548967268270766922690266677861568167642966005489990615581258655710393502340501929192180096496000972515301070469001962361684026392103407548601860215921678173555397589995280601378013549942911771951285383042790634690936467587052009805211276406916204269346376296863974315894309038752737639538554006527570821745220331763906532879139867208165612471013922890859016313239653878326814575759044664139806675964261490083338681529727269565092555095384804880830398126651188272291655591438149506968256452102398397368389675681534690233636588096504270468634899252700356342405946737515286225428626299959134383901531611291470172036783683828465194398496655285627903848911197841190803490757783670364646304222797120044567560289547363491587995655130729868343898443811051835931539994856741203485445528191747945943768924253168629254938022256621653469466384874810521578813192435621922921448323987483333108004701505417860214865425888216155605230547142996878286879751503972666149742650066196118708454903395631112528635333423864151609730554272818215914721929091253113532012236066388437324460309123971524002378383047291687409258353676580109411378994195214847800271096026557761280419188357202525637729409969536937505990393046972537004141348928315974794916265341766604426314206575130421883392616843074535285606635313241933857195972204427082182936549939347657996213073690321923094012413912701813011994765037975698636095667468138815134062829379709124701650733820500049868277391947802497369119534228864321564196079538166071988703912356037304470833545016216436375575925994810737974392223319336935371175966484634277942603246586078292233306557180314670861359139050040906388487929751844791473361250556072522407866816067400007630550848390221312705445868217987783263554971557210750183989719793167793256867129178949078153690278433324824899318733907938059425647033196317721813233157474965697817072978777014848715192721503233501637589498573347917745045476128237246266727252655225499568052215065015446331501373314515514981618184453128033115413547323278805664137731293401085028344620498569436625911620875011553447742974588383573192465418658738879393014711300367518556353921453962472081809399642442976718102617968683877919001794935413839218932060432087403590166629906085731764933709431272430504036437434879300223245762823158871143422876820129862394378067689187285291911608408610556087783327803514968305651600163498133159543101881163212278532652032994596881560437571859657103577932821715750110405721237504504735756995813962844045941083604638678253618692334442560877834823453013745240429263793485698991544826318407805874151037859665217047870631282402675575033541443080742251492445567288130820685806445096187814676310697720435206860220030086333930678460952915737528002193349431680806664547260567969521974106051935728111077190207986286383417790414689521199581599718334770111569096346749476107444533476695274750093080990953259144674591277430317218272825058808135452843884536989816880304184973878549751859921083753586469754574457806838014055634005874635472855018219097732630164827560410987412976124272119992625959988656857411532828614672978011006818650259889073486731365748500934155878849561708551073374680599126956423054265529108623526558074001096072252381836486349080592799188406930113629570329395443624962285051890764054080327155470616385756835604474887590849545575037107895094410824757027340111999348019580926394638219570211309003202753382722427863641342223482817249099360868553181725612323072278301265638129206633246379466910093425995523055097304208480168858781258887661604428416858539531116380398710653803536100357906057311953078332194093205691669394100940389471190499582398732818656798629532063298824121908999331438847303343513590335974803879463354137729999301997987696903468044069815289207736700311798344354741934277296512971220376732999418630174347007606098058046304318706872593575944587310227657755239044225082818091870111105182784165371271460124261639593453720316188030537279843029167275139752020316952878268657835999955581312725252923739690609487289173357180463287733480678226661743340027622688457401492992456446744664546955708420517638298827120957019524513302627536911551627111825721280628712731785944495348834786403088304066505454210493193296351175782153830478353785007505528500556707202505289600274128858907173367142938718699532277316262690515159821555532097513030803320397860444792057233144184073803586091686068826432567018502630536870440024272887933547272226395098940150971997311864374644137697442787228710763284087383956479659921870398481895828273082879889751079703379172250120705693975001319817825477504541812943389937083444512728772502682176477426755119319393447116996252644635863296912140153275100058449938948155775003867813519152858884739860651923975881372857787790763599947399723084703772244643108133720423636365076999084160699352616327799041717499451495190545224334293448097924732780805642223651153109400416593403480757275067120442458468001368414384380151564718758336763442615714186252417912020384234798016242711550557913646436445305202661774916921425416119399588463855015585114613138847312588836087217954053968793860043027129571139025637978314935320455463419793231413492713012208621163707613560260951821797562365290740256708239174958981288287871086854544532540209697084791868842052292001705072972967932658463068562833147042334538695572625766051042724373114325266198975030256805540836952393034984949986186101863548178496989647464654054533455224782232570519452084033813008323241495092628449991373598119185135455949778131853669837284570956491319112710511762335104524937646612828754929785503570898291835506559099940645129134424297625106875750141222666727820990532920640329394677161574371892037516463974807411927032461468405352164597848596950169557363817251928304149447007216807199153178892731694153798382602763522845321274320961526897919637530818073455503823451324567226375799306360624684198339046351275512463995911227060869207723911630509999543713417027236841114621396567191184691387084972968691246674552241638084178017972198928100786754359856425423531798447159283299523221424673437210888007313212052824367911871699020275408746229526719625693091211379152065577003007139459731877788183004368294293826784038446732083740946165303211947753515977276501000496030095271339087420022270783413892730119908963302533138402252429502759955753930704498915485529663547271352016719608790229812002592642917721367296466842995340328864450160845220622752780710166295344609093440516096610964733422590564818090006423609764993540420647962466952017425811734555545428018573245004966342366895617972281895367986821197049490516267301320464817404274680522363999699975031263043580856913855945411810199905352153980503074181665827236126395726814009781823760129907469028532969192123397209243944432302866049012206502385494231423794991209412593284162584844845852837905796233813729524655023598948004906157721703928716886163519856261407826385323050136297324487498993154023937429769026833397322153192975025994345917156770541415894535292880031835036500892821275532997717377081187575559295669339224591851300746694770160710002481788310100837315602899783810922951754329636118176429337157624873181475593432875218936543906028014758427229981307989530295196315340211643238479065990327656478076199715127587748253998520694903013977581273478921347880101819942629165714600012025737110311267009013255317445178535649611148687269544806994771503581519053029187646391750256633370044964743848761795128950343426437521040926737252705603484551340490118192964649233393082929351351981383938586950868951952249492490636077368055062425404651878344360247149375580726130569743795530451090937109961535188564045368507647709614005652229655383445122437768087299078121610177161592548065516432893118861766315943408491668956802842459905129067546557135568153302939489956588200533779217351618430748642880856904281679625423312477710106625662722276781819300352018505158930726173141719443975668527106987687419728233164156082905058852075204410788245904324878555449250562214365244858189517589450735558652133352018412518772322635431652846678466833867441370421184064270282860245164902974322130777077572078834869304346327575987400471995511553150056302285204940577370720023968331276509540247364712825501886063820005474317897553335592511137710269907056318988809596858742902619750602153900075689201998808662144297220703194824160560390489099665621260821066773806603230735034691160751748887785963735808110628576477428694524565066294576380450871434030527045154581914531965140465132091458834528553405523903999039928116346056643979416510489961074209416634928240166224554495032910418342848788886452083947763661306382272116715660994169092878429923436161612469962483647976764048627063753219322296892696660143883238535523258274063120114524897296923956887343350245191195730284670892611506648650060739817975903610217744783249173027774628608917635228074609735212238170095685471312645355739997758791484040081448728084958416300660030583304512659654291868749588803185839149270705125979716939488141899343956724403607883931297567237576204454530936898982359521402676956829972481902658120334346350005435589196211707580014021808115138782466382933366272037518349937214079365300339365056101170016715169568865228197507551423361351377326593694435470645114447567178277785109708059416786452103805885857572926263677345066397774124755525993081128912124314122467603911203920332192225940754017866760068536697086046478639339839157716658318660682574440640805623849068098120834656263118480992369810729964463233826720364093242097705778971141013457796412039792017003365179043268935882406522479830742092600437689453583686409637807887487364275873223229424121140710595126575784176979693660463065802638125355467413642784161285086328573228120621673078952601517218329333428205637782480910734132459187275695105884120173568416073092356796115837204487479896650078354541527639675252957687531912589914664678263831523308617702281185662487751756374297129717268716430754826741898731702776193391842587270000991972812592573573987986784535063536209097881504442460467489380383146753777104386953683776112171195232136335184601818915461287141790353352302460563132330388934955260175937259264283398800733298750167138462546932978164837190092862452624019925988905931154175404789570226471933089876863087151379057029462639226885475541148960946173947913004167650252850399401258625729147883843323267952384405299112268844281934236124890913749609744124707241445113438474639356985998236560556964817261162824113886489539264169040092479762559380566717000538364297558108974704388505979410977385039209523054402048310046866613473381083443033726682553562544792331257852504543549694070041966014154553570284399520715005356335153779165000637950601989758521326956299390368466976085308639556824300302172194498818589399208508746696162697178267273506891965659738492696624040540681245457212193504439594114887872779410201196571346434119471025846286399448965962207828891908458931378402572078059036769566594378801470942356018688987926879396094714711735260313680024773152114734169643751483528047995813510777772539836589349083246691885217805197849240891941410476294027252381830294909569144717993754950500134971978268002930167552295302149408500411127694965703099512908701453400216295615761363737676139365882445803998835330167623269076046383969055299646672788670850594676011495075028933635875406137392586058815927084435893142498878204640063428605466116741289724119666336845101890244971060074292213016376392612492890430302748431042638539584788565852473215998535672237450989491232623025362439613781151319137999285890991809844876287360602477370126415763500935583053177016271723883595316125467137830079070540597163878726303914387010438732932096797332918220495230762931108733609207725277077237463889387257668116356274977663099981454562183185087283234336065377846204883832301333641592011640141301706890366252892222975731863308583649800986429278141772790761608573556616897227545111082076138726711253024919780317913635039512597164080540080867490782233386482987519078212150479773578943307525973129489798839543335848987026338475972596039557374930995042720074029654351137666025767133518721910807231805906117407804673242255985747464837941436347171623414398078081836071469681656865997808738213462511305732434262038497043800321547898630324853136836599931501961409344344640255984949662416500428435521506302714326967558409643466452977839293505943657684494836412718117742602646422636544048368890129432253308939758869189989739684328120401890055719029941449000982095699506835904133507490725984895081442619307470736395901161388543474397773732200919463502642895422375807421892163584749773169884877371723191532443596408773532940249350864199110364605698366798128792782259797621306668768255916296379874392307453119556460909806717435360801283532139791198042725712086962688878065038234384623486353079997101698301996480360074187021612619957892444299589217885429733331100886707221516688335762492009010311009976090980665252668644423844360766963859177478915545584020795317750908514445278513237216299637448382505029630324993722882359346853526869221215924140393019846369925873307535506494682874918013752324158150202284358292260562114956355740887409290482741136799606171559584443709517708054625392815143824636203641529410366271073815980696675658313583032652658739527754745790680171073964223619528219979212385657098226537186641759297390629654435176514504565353111705519177722369059995120928954593693850437718900834054363213265027908701367001379794982502057317471104708098823530499333411898329235009802171281335767104036084431574097816306427965841667293690009929422965138702872189338084467755796890823170600202864134377699075226340671460422578952389677522431678513326889238576959670241669212420022578393573470736366482825227099837666175984970002623227468688216258119039037963712945401580531406944255953065976849899964913396347508750217990752924295541599899679803868466705374377913723200473404817238770096324302886360014751236874004498028123795612129544277796105019660397461778634887499992144962629115763623238424843777423331459534771898106417010542040220391261249780662796313495958573547982328417498954639860740520634576080763310409979746055514195914416563057491581314334624760782361342028512139741510397180229607199742924459745037678328447749251155304717728643815765164169783327653518890053244992338835877985857857995116542110277284129018050511380765150271914325750079858381436490039760175339866028796888994149158660712652043709694103827197185072465024873956949740289574803033073682364427614953139550406427639603333045379376661782878444627063610636345407588956952969146515499788368050918330989011221474293308842669164466179420942463909208323584613768117018668795213029637636429517928024542588065978114290682189972140457993540694393527865658756432218693267693012919168055367231795284820663394731209018236843167241090901832094869172057132933471848837981991521575222239998508289371140694011649466658665742927133805712488654011128432154440161576383674745261983262130604819234158908857806045635431491962058948200394065778976689134850164428349163281999815712371932373346672681734426422954007615465149009353809728144865860291449450344093643122852422827153207154893325614258033659762226030624006821465358728189125524124287498341808466581246902058569410028267428452371066795051354444505084757042033251061890655301854506485423486347658416804050424971726725869385101619870575929868770174349552422754288996460514621749517543601041631064816207798309469140676925086699248196557000970169871329927404354006933071976536079512352712198551975975925868322195979998420433777943907967189820997163699713600595545700704825639253220242022537032779484258071109461603033026409986487380797075265813329926849131537317595713197726276367011263199574776555374419892799159812224037018671805632804514556443795734150647331224403544796440983894677195645151408348112080109619363531169317664769833513212583070189743658356284197558011272386623245369822698894508324317472722824686381117283860034087563573382658960539107960105174715953538172311819680357205265989863638087598575536686733813640607034129558670060139576130929133185196219248459503746591410954475826645784029908210648018810786299696292120306968136424915717348926279632422465994816747551895422149530768635249456012670707651966124339330725793985574628438296482012723831200904546233739549124106172888630088756745713694423504734319814863412671484674413683339530041330104052983303560956261970466587295974569723539530043450206162163711146627750615544628523802454235225846574601383523407139413021613734622784528332518954106766383360628156226578124923259517305153779034131611503542487646499814019894592137028883025794515045933983815086775818350868859536803159783221300522480895284950409958548812286458192452145373071696324666326252563581922497801619951473415966531702520716692879018689447101279131886208631370532253001876748872146713752365105267141697396238484664984139646956013001043791276742498955968523903862978823389588127456449780207903306489892555660521395815509843992520444200555995379939472810240088247352800097506672407893099004754725451970962832135222354409637301177683207547449216755805725588035273783836407915000642036009076543738351550922178966797829725584237939961671636210304609466493292392071965501050291023381282443522440611763691947026941952055221066638362906815955567486310264513271818526027993559097529896773943477576277915976494964329257049532083835697332233628716075631510685659322414209543055239977572796789620422580643245717627138569443426813412997637950922307869896560368765192199498024164979564330580136286683030221922590430310885335186669988689746597131401918601598365034704520113841313140844415646393450436144006036481079631053335820480042523681416092582274948242801323380143661596640501167291146470503247466780588952253014303798164859850996203002395604202450076790661613125577136893994610032472771620911023459889882593457919639939927839630658758002198774245852872648615911912539368816560589715027449149632965826714506366210536884545556340517637629056982158511395456761559777343564082326683353623759687188851457860727710263835278003330085624783542753315117978208899534266862268688886263736495325307385228889844776120404248485795153153772165350546512587309944624443766474252334611123620392750959709392235043709916302557319435521280884123658665580498392666754680368649044725881820175870458116848592682087714278889629048418977199238231780814306902625444113516270848679540737231180041515780524286965516826639696951011554111379710960195726319553339014756230277032819619616739598055696949719743247364517332169993780410004697259092055425006164279267481603886204094498736429710994573697202889986473498470729568552927423432459532920873597125689334069346944646528760937059546220465538196407547253990270399059331064177924530346894001269880658057337605368115157869662084470602207086629463239482803955931297890212128838917118049384796551483153448579906845993557600567600059387170108026463896487010901439736334455355502057091600581658358898721822401649351985318233973547161745635846411284499594944325312813964414542050838599157270865023502821312406843666468869330822931979297217098841001708256805267871718534881407790970016053823081185046133859275888373737768254717133397344967289571011592512418342144228555855240008561764447237148313336736124180405523982516815456463817376998549505603277877026926946570941728995398092935965786923393054528432430652832085060835874849434673914327272539672192724437023711345077507684562797400481534200658174148215219911630156027715529562401152646270643985320882475426045813408791918493968968133929101658926924034456060840977704345113294585477367011647797965298142303042765043324663874481902699114374123353229750578907746062443084345209128133078144970081700404838944210929935109846762481049587363002158243047652840790672106063248660616872596146470307950911427294824069959783240264066471572539035219323302575670144078821134820500394028633617957921331498404348004722420253895397792777043757610413580129539377089303048684679723283510913029037050685130393462774364267409728717526582583759439421494122420615768640982475431284162969640178661730852682555404297796734317446858146538276463035168609572052671007625113094409423223741552689925852804120521132150553439055144495407649738541466780136399830050098266715740453186288435953080125973024985192779752569495432393595393258587235367601096814123511403656440502037745483326978423675634948324516101576975175934965318164917195872594182485019826976657996508877028868584122022193994739662682348999591244119451983426808651354864539172096848529223826573633274899092673419408197068196342040300693179496756714032347291719068721279253069939962781242682760502085146310573243863254662787271307025245976501139958031275323814332947048997802687259554406464487765841060729503512981744935490255187441358690444710528827989728240620895130446374591055008736422475309825556697932268930127615804099906940246160936266305723213154895292401944446467039926913133684220807214954727292895582203537622435118874181262406246155707973055562723115024788276057101354713325638964118191813556232397546587259511370331596450892405328550963496338730686571247706417983579313270353081389299488868920067133309927423863771100403755143053830836863793006757603329719203023990281261576815433800373203459314545696890785766893508557576647501856653724370080954020641847572904978364006788708311389148886932641592121851721463867041588565610820315916453296809078343604350770126013712935581200500161522831649557894273731623083777580395267278946455425298790863327835463908163854898436501827411419181669353324684858054586031219415225018388910885858273370031543978358488247970298635798132962537728841757228069166778790028597498377490206051831823713016333454411959340377323750266199070578531414077788017259056455591375850340397816948761767993917160428408694006576639780804535250349589134413229776342541893783123423854767687643731459769587833348596936912023547757281273053256343086168616744611989150558285399312460928270397335281893733597067212456822383289559723910485536652897573993122180733017728153130157546842105629150197309179417745503327391776540853359751695939659852281874088719339000570731792622594419902051556019308192544228287759785102394078346390425096892042208425650955061211051822456355176775791262547126915640016913330215809979587281570101984530916775572416236060109821010300273941917378600914669585714659190513318666636214608939836775003157204264302891805860761018282017891365529110573900161099615740678214967506848605810950103932527047498474562589348951916720448262209787621496186565507347778348777245278873978491472126029161694317697150551050491919455981063931508035600753736584182420721114797128218001900346348344023939268955874689236880089123770520718409592583660835920559538956476722313713534009226410353317026860467712212841920014498541409570663102407189356080303115911611605084535722431724545178478679346181229321201923124751185608375788946854501955234729967879028748922407313185945837101878015439081185771875259967525363588788544889430082596599907593518572238525036169746840295491186498650261573341080085621548420840780312996932020212250619096081831360346165173073940477390906452841229274626845913699420727875490256643737119312667076849362378463810157844172758778412243607182766725105924528599558065889826882125390299649916766964956977994506562594746895273228922021437901358957097990376810596631864246097216349116158794051245173839049729442477651226337094604853604866535207902889531131122455426744665158434759313768897133386762642366573669797657336359688570007296194358434936837889184599290751415317976949580494697564736327998660262570914383517423201623422944706728647655711221548608147201952637372891710884420496942290477555559018969496850949980916935997764789604506996537337597407311938552795329969618930010758835334760200314110562262628157920965556321989635256514923468323750744765550544809589075458530956553446205441683717542220287986003761580958237845395940428247506557245006694362123461416235731469303670887587958875837406075120582553425944785580797818069104612841905112236276602140228990343919784153044132971690534735418773667884013932398721779961916869645910145985955465539150112726556753302539404795084807192999560827512041802136925022437416911878246776406492213562451011579003562017495204793834798372793081899551823228136133315966860823825736466901668794276708698016187647915621441511794177752503676702559554051620709498021323464648213413706500261120449993210714106167091276840981268676710075441637367343853127277565859618291277966809554285020663614811753359323868574908739868915779054766257987190384076143799858125430315562877378641092008299691451612478588629676703978456527162943027940854046200037348768753973979052142164109710928324069064518210303249643238001081572620755246374885779097742547335913379335328120991078258024076502512494267012561546712726755215043682674162356361828598796281150782216200721683910021961766381377432479337621046305280762808772973883110231408239019284931213034843947514971584267752800873213355449945154823377373608465292149530744368027901303024841087187322658932387881664336874044405270458761321449829549959726942500358494917016297805570225616749090934923319790038121194241402331582468111991505833708495771204132014706829087083801101590876366050021953681685309692339412353670666906220759826609590021700853079804265833278014142755278599156992517012049128553861666199248072048190985765805617004654917248569523707983816284801985460788105661967436921977464961979380539696345965887301987727349889569937267379477435081242392569239408213412701092023546929064312500648221994550006756631887050708072501933826760744941822225176833170748179897171069954456450723294741900471969959117757653110292478258540048283945450630052395171766098804442295770853868322357959642406075477748269244357821540690035329045823686402544703988394295413001855732215977638440904030308570900456372121063067007081615817989138852158799802580781408279645000620039353485662660467865190967459592498548358808844568563609073175197658760501385203721564456684381460512184142319785529395494811894434667441237305396481665962299807814968580917629551204356807728694623618297310802986365403240812457564745101429796302023020311825338361193429584363772087838203953247856451803666333243333826959374050072203154183092584141859362138473083698289810879273824824459670531093480177048859131097874753455381709082143374170498642601135023843486843872105359841873507807067680415815642944171981214009223478743950581031848988706168172767116946863328795087374076787633819191673875694293934638383121430534268382134409140062053455543421961011422859429678688417059270583605540532941111655479558520979865548720699012146304961731903088084720272956452257255689762473387326292727232301155867387445776940297182470306416038372839499742585900356679589293386178716133729481143673913934434014238498348294773709144030833420609747896242073415460245891398533490416049670728053732654709534055134824701054572334423602490658850103689007435190220631073951748236828149434616934394064527426779601203417836990109828559630572690383401580754997616397518038874042987485204629351682405615486326313496853574060590003654021542213195107269296418947985417604588840040232440573405386669278020095219691009098941458725213150384072764988224217162271991966669052794158793767557147206232531904164664255105403129120898407816595945330343837098528539935754641046873344107243415430168529730782840814404868706189473158609610223985525129129438428217510467766178167209692652351240806595574130164063434668746337511516060585105089494201531548192610949223659801941625499035173063955175655055707026962068641996946428800438094250835763988740899792951162978221827648090751930545648503062327328680921068990486834335651172278357775343107884321483365038319202371993473220399988811516889150208030124763628439834207167958634076255765265151755356401233510127326167284598605736232594981273303380861509311203986129065374844607501190491381158474418529194381625128069850613953552772870364171490257369999032545058527167846964719200673759755528646752202939525138355782832563192924116987682988542004854186257340670458001865670967023143659871428085118011768211031915210590213259826497720854330439919739220156212929814420692029524135398676419473314101682901592594345417205865095566664858557631189985415523519370569595484696709750686415880248795091764785699679232958533617500971543698305927579522631737061480824862757467749803618739261607375372154529719060613609210143771464599902312022011838915115548500964684563408817159359054044411857182842894475934098689786800078096643336554954335143315174921085234360326134559340205311476628092289416330973757682439036047139523970756148902515334035693355624004224803128554315932704871284315497927777921164615403381220700091070935024038499140954271923501722558115922896303483276405752278548659840982906182361583522118289737543668275679100962584180567286109412183302385811928785590250173843283176940731070644858744760947498521396957763193215543042848370299067158854546357414405381241751769191244983441374806733556658134793650912298873604108393188635776808653553615447842447866291169846790592056310869493287751852391188770873357707788758346140521168817796689110605722455005730648852845791118440679892469116646685357393485475798520842711253914889364797463137954136447662665220160340134952040214492622504410775727164415400821975552073584185709502584365140648849658632944233786731241182488226839475766558569968287854182662428808468673616813582343736201952978505016202170872986700025407693285497993349585187755123960482841195004902467064050990214727388240341910905202511400267779933453923530742901760852742368221906446187428375923828629679596904800495613387610168312456445678090864779245992921725106367103121781862315540856632662816280608169828466116596907978880120363983204989953938237825932082998790842773721705896199423751701048065336324704700181554788961949005682323492343680498124595686974891832720129578863716392863674212969228922621097257857170038795704818407977997481285685405555224613532903382874847979433889730084801848536751929094985862931870078349920554332312873302811923817545636241946426159536420553188722067269744054461771197930440030160234617193899866193658480957955377294192159083244435710028487455594548465262664640341296253998647343732450203818791820720220434974660765599489746780746125298109168401397903563927442833828056620017380363037609072003290134292867435057613732452233987166865019708572614371241676233256100947495974122486239678253427585186117548303484096520059956741926486000597897519349606612016485496697318887980791036342076045637463266276118182116731871585586842802428666370208119629464110748987675511026685619729297838327589622699283633961823503953049277054584509354791494195654368812800021039067221100676069517046265802240252751496369898620068634948909529702555857450075347414502662519933750149665317181324068601330695299990256048762363761862276885576549050565782565362802042148594551767711798370523999029570499837227512388749849003436655980958511304083031273787112876922265221016715710127395553582313522435916309360072335695720410449839588370196173757083992005852855091999512876993984323716378520901964810853288867605059869418263575934894444271568434078477594147596609595807080896591670094586888298261060217051582250967438030372414902215211336708852327860627473590532359011464636821576966611925113044918741552422520546850343533499725343463713765619756115654517827039178608674974339236575855448257491650422185608198970345940307566099236281287529080609130759711909091977161327995958459430401520537469926968295362429511638432854980590629704397524145239750717241085032588784087605331645731223622289779185940301210556585842632092374271207443657665395234186322135034063133884069328314600058949422212512020121849941664096889723269582605111774430009404199777928152637136737107263306049469738579962437098834994099333435651870730080118425822352711006061299565818796254919816244788738964841749010677835481492536127698288405486755634604292013919351773781730452110771884612901445224520683844511684830340426687930099935745921176446958789609323866218741109398939092007497892770620609355119460492944144309736836704788992989864825196185875238070221169660889570419841464668647150839340402564735616001063144618262100584227489339484378215064080471414149877478590244573525358543946931072543791004526732974897430589852138204046400794268540863933249042569561618325973521337411277246538339775242730987189685621815021003986703641804424934585846243252164970932436260154842504786966605124227241413227839589204640825134307177109326437937552591035179429394320912028664071695956056692213959409317969131931119791880717595971783746170837845822667186417574727395058776076511705641920358557307899512997726917861531795103676915860102166873065645694180095711026989571433229955753302160036636283250819108414240310514927659684287840629226897023445565664453870343903526968694714829285918972300167532966853276468876489450064033742035448966670291118039244115303352062666262061525711782554663731044275271760616841863559308758113353437580489286834579140901994366837452386828736313709825356614825878348744409415244588263062059647236803081509407560397722838695833440376708051134042062902772710294205836838725924513574112441180879119699234023195517140205664837854531291041876898174522736654367849652654306706256829443036876017514104027384058492421308464312186816701780768331150466891149942239778918294089336184575411101729003005754244984088546265211028591552451144277610883413691474650216251964843628293215390087893564309564624963946443711087887286908920683859218325942278500991146717598088389485374134456384046473081749378763438699735235732057559740773317031566582162856010018382658950841366829791243319821116208490098685328386695959092063132058493593789568602695858371323964964634616820227645181134074366983078547846457282799328530027662033594611731644340011065863604097901750248605781731100463851456912587703475702730619143194339929273183336503565154953958512320660371140579054222429386740711945529862360972486703438717477104622590159015300874528392620242077577335074610999563942460042679466517109923739470978957979599814594052607832641284174214869886978530018351557055599416048159522649073174074335894693798947456373230742450553232034772663195473459781990179019402318831813715805074959326968918704805398746771214837385990300366539278413181543394296652706276718161664917872830549088034708369734425093011335631569955848675745471324084369507035633150667240675773555281091874273216407111949037305304237481202370500097687975526883668414580721077178983117139072444611164369966557089760036125912649457817284222558582443759776480164435506228483879607469195157520572472574421233146258282375307067351841201107763838428771955429426752372801118374715790641714798134935845561968053237282362785843734338708780389953039749028519211526749587177053698089115441262182065378024239704489361438992534658266900678669225105357118469937279154703136260287962520129938800873248792087492866650642651272734863798861617392438249148603456694163489733018787702588663703322849354011575880941014695907279185151529472275209698063401439124383969771616957622632777031006427004932443455406469152829020705103759407153832434650514223583554991541719858158970450118225274063078321988231267134005760893634229664927217962703403145383351915274237861446767768555208548061913955081459835450768482911124156085034580631857359240748222326206938134783987840919751829423050439333253958433403052472643939178093907043843513893452135001769678124537668529805252761787334948142451111895831245230685461932154763988394981429292435288098281883666142687318918020508663284800148488101692484113049369475249144331917995609574619885321979258747048248915560158338110892408463820654036366293461414613417307084451661503891666802218390128791378716566068095433424577628799916407794422150597378360903893750815790161861136097487708110494442304790140385442729659371407271886134832287193418987834362495236160531686724012505160020885451075356188241720137918501094840598021286596343877539322200288615431797797723051512545314088496690987781073920066701389373490046812813954658098283807596884140544047071635643099986159576371967927335384663982397738197561424019511206540533545284765295947824535266113045021982683975503600142221245231291461320031761085881453436423653357564623694974356194600415192250157198404788101524622708148247958737970771919611320130891246471436863277103892913668111087569445328434725348430226337553457469468112086407355812128571263947603779088815990774796346050526983570906514273116298686308830188168490181065723830179778019389394513171862653656387188393820110560161983917230390196475455870169700172942177843569243596206376355473717597807762671068286955972271033135953213478606656577282591571904001781519042369854669703684443900336886557599781304564072329362887923973596871724685813210492069010552499639026019445602128415309548808520079992591351157170600116412394917008532810333923248308429152626689009021382629213866440652136905165038322656305594366082625771002825804114555143722234752695628355722740343383598798001132038887133696681391147299070631780572763218463862760226246248236188401680966302314876935446681641902266655441248457395712677555037272714313586545193639162705660041630352416141149062376677369596988492163369305269653637835551887476640541489481921553391295478787819235208474721341419744480809304636776478252155811503202409713760126346450728824515101655644068531375252611967346751567797796819411101353925401054348586858401263703669717207465829517974222122353985513160148471394093735595418406248781620597032785460559428315902792857879343727773957902740944561308326037259728612421626043004832536873496550937344260305571945607059124751497522192757415883584153474646806508652269130493311185423458367919776831399707704431461676468024741216372551529667827526638694811603246991023558458091937892622263054606803821093615757251752970485698713199075411666019294096949005466764313223298895476220140334668199520813544229502853059037819679179517075614281961568899878670621551919980109974195097275334693138552304220026283000688558199088198332996234081550236874709691567604860589343147614628884045387750331801256187105998426321230498061230753477610211700500343072997619554654387189536481637277381712004449055243886941030975157255358700388811383124134205577834844176748684664059805394681291933250758742586157437826086232213898874046958636939355918235055825715616283616722094460560252881925247595184407491948879943533040189693547416756735633529919836265173407356587160325780542080186756362484013354119183641523239688597357440997192709979350634778645112333463182290375216822048741142707915440017567992657182847118037788105112100251207854270290319762140599555448741073089754562381751732818963181051869964259599914589699811434177104300647963724517764367926816470825822578249554258088046415786315343070791710100442600111773022941099504143264456211155675366037781499704810188410666969023490623401321548581045958201722055105280955497651828193943133180804956350965495426243674794571271985415218044676578143387636178724525288152882633864218269499479625650524467663441202784533944828447254366989223819846805033260087759543825649764650062456741751417592035292308909804533253621806145164052245028278331347403969348465482903631865335216472680459836892535423200366075788112756277124061191523857917881106639901134181284507838398418128233671183764708000157242691679055208832051033940379134781911362471293855376889241568092702476861977063644907665640174742272716969233673358702647084148484903935397657202297746684264070282191908479822412479453166143100549800590523928876670583368851248220614953471098408104418628255480553223469347481495961334270680411691210533606302779218424982164203310654361015178532844715384590272471662895118619930404232345972643990902135311541523254608329912242042477752194781622690374240477489344398106303577128380095491530808408708036638373509972067054544412130295919177426299395149953072372701704153641965289272037283368603290614815277428962361910483283504140624204070002499392257450246171793294082079283531936652694072559445990998069688288270508443992466325749946007920429864494653239738612041795052124273217380630600117853767871690995689966747341307526431677601722337977244988154341024114137565109817995605466773246614749217310370303939838772270261165548783462578741333545690827385304805327381455856313999012947990806051240096850286470677304592093852239392125935558028050420317822161808740658069730589583588998934463507612474166174975562415579901041030856355634394540462651808981519987249969607807018299918085627715482759321826665405971152225274306977589201565352480641613494845071130273754064195830231773206458223223620853240066718642598656259790392387998018943333654872833174577448069368385731267768440595744709696386596516757494819256737925970097104393452223961584944125667615750177592337084182732297736148715913662958905855903764111538825344391673731985982194663706780179518514116029041960764455470034525143230264792914949486714927007714171177974324896072504843263512081573503575823559391894560611472942827396896938048783016110990218940902027408851588085536576456795140751876863213115009985389056127901440785141837883969799525899524657046806407839328150557151722333976935965845275062384841492677767870398260459268691266896358224532947039146622568228028515614781934535819489451037674620279837317420710085587725985978634035344660416210235720186014310372753074468413012629933508685097091927266734836791840414625178258520417704476129024053361235846599390815227700436562256900427095161805552571921484337895074558983692855087588330341713376251146142907521790170964780818001936818079111426299247288212427320298839301844769076139335259040773283998124400806893900303051795208450494217073756743383108221111105798772971078172509390762116919928587844757451314437465702932713500775691594495595619249896155774434352980642102738555454228973550160042230199079059834770260312326743054435128975807847935694771711712099933678295626026670901461301468153899786834554952224077877567437994233136610052847502811624563293509946084212401695871899861793363457417338654616595676528250272556068729106828998874866533358714347907215554260024009634183502707281918158909406842080934128035109653790142151455912960306023624426067981290176758826998967089472406902109780447381983925751068605694954266468567390799062964527790529898994068972785530461507394895685379582431192073588366251916032517109159237880369200880308711452904348799994816038757056861460508893593631957700469187435558165055256567576960758152571455617427042933864392412845527625283522937410224083086925277261582163552843318812457170535563348195387039344813398865378439114825329456246208404919559703732584302023763275056042105532959397113296352734062815851476328611810541050806641717720894702618401160241604644168955755026295170989584093460438010741648497794547576830255008566249740912220904091272744365982663056479916582656086657826935847565880365205027113951023945009044169044921452981721312759950146895168832485878826626466625727383809995909013382167690879045502215140429850901770394073896628872803234961445274047509385375284900517625529048770748613439087070426923773444136336408014307049899147909822412680098799347563799952814493598024339295285920502595216137212334981113321685049523840848654904540227629044002331195365320970490311108838252614826661229259460812612786311212066740138468073747385942644839578919526646790622030864277330423204355035247178336246350884078753316915656038432373384339124348491882711655958898062113609478038350105173132503835152381757442849359940804918154498708977966652044956769020263469747167784445952471085204961141666990280936381160093690702884275175672550179162666630613015153214506717600325882151824590253417114229755754182949010938030766207971073346439456404248165265901578529081034058686940050247611312229304847150088743938402446680940138322917778751385613070512325734857189851674583822835593806557717929565223444330439896883333264153411574447990080213927599005188660717665167330588760386702357537008109611396841111867676552704300353827753029948522102931363848369908894274631642533087752872614110911908338302678696061835834304738196623213267356175998351813753026203786794179701281387673024921475248757626418700145341476634226101897310657776173089499699088320514839714492551256083472041322731937943764837165615394155959092012941491686144806310708740402385988034973067873134040563961752863935218724297427246023641126996521768978574040847458816526711953473379492717079903080539035238782526108167857841167296506619886237810999388630959492105611275536481936688457969615646771298602214771720791797341781092165286527497275916937072234235160282265783892383337550225425409707981844708857895521315009096802056465389513969139508657595621907109459064207461541338450484837633831729032552788806468316582564823905206771819026022300832112046908234303167348657043031074814546936712614022978913084700345349618129327221473659630733815288335598959818632269483194201444985968686842250037916208152966777616340177891067586099813622257999843933732890363830694739653996882250096917038403914227115819918160808899568056062674929155882566746659901093272022813463335699944133483094651460860657719581486605377431595567472594957897048465655237392419086964156190715920754765808285688810902093158471847095039776170891545453835136896041638117123779830898884549181879958053283126899609075151619571611382711413310339017481105416766362341746296205723980765564299619819417344578728953393240620209408593693984599159719224217709675141407296769430422145076865686780277545734289197991884946081164360584461923156794888627149414154262837492784947779961026504073919496557412987534374219475414863024474551459665274992057295883521561596431189541681492595699032944841410727963613986421310637639812590490324094980384223808051051305655596548685487810851892940992814419469970695872339226984996192986380998978964659730501380948918228816446640090485283158684371975289775032661532538534922103781643182247915658448700447505524058054039355083871911335326127695823634431217049535459830009163831635571779231386371574091386043516451464680949659239750073351617713585500344538480778693416171910626113678467931955565311895657368954371285866034746818190694315514652608172623130314242990020650976763475086515045352104672094337048116316436693622412454527902938479799335646769016226778029492342741018794162948901937259969411745001846109078529424253979850638357454607016052686043297780435816793661782621102252736140442899555102537334477901069875549471245004396173535140038096370023321268199972940029316075375138180652057695604498354158484858060623103319027205406798067634493169574817505098332517833715228487146419452112256224282045915442413531882490331280858017585439769686318277649424235062223377916384988505626360681105237093220880287861833912312436185082221963245220953471161338275056582792548717048003453834074103740000648403139662266781048026318700486610951637952039605576961772228522387163270888991259699482764249430844810281012985407286010769889233194315193635427908658424859255789860195309629233840821010250400665054854194593019769503699102554123252672507979902753816457650962747392543291700977634195342572404665417094153193610311066691360074753291201235886897175974505658077457385911477112446378099811248634933261056646411158782190940696875451098440801371441905507663060267691194317546832689977117015666147285464153345621555343225014884651423977159161753063706426493592325850186431363810520212064656767676222556142507404495323218500966064080406573588030783039614442244782665001410643934488582775365713536838158567552951657896730870596754071439874248981463765967726925425278613311895263001407323521619391128601672078136651285930209512437250688985402083991602670070529631904389664399868561990967245608199043175785266946738413781911925274110609796604169388491558905717133574916918530794179817659547167104235506749346035575679261546980194211627129322512131860668139640419054814735856351708273531991197979046460452706631989074522137420364828053744958686283371483541771332674101946959601335948560994379510253138773920502993139220082739025758139144454648179722269089089903461086197883088451891718920350009262013278202583266794186019096732053551727113956436606071711386227354156983555862687167875077968444707469662440340224829946283210349232997527973806853049798357661302427003304872469157477058031755088783527829658779401347069782910653622174793741254849352935665762767209530156982562841213944347044152776401659848324506717070926928575794511461995424954047204142815474600066249143517249544334352870804543756381816097269543766917767385598203450523212716126297894826079346583005479098893631784055718886301881618599758487628046580334399594582017239151592838838794269244672055696851409267003983064213866355837875523315917916613075319188632450573731406559894541617181246703084518985110142258763149952308549828786925608933007695716702026534319776408194360332937225160789741998509542622005438312622100554949635171970934449361986305698362532584500907342945858114003945155576071086091704857740856183534621087703392521233434370133424119552066402407925354823715679218353537115220107588411672620106691972303488400254482165291177508116265046296819988326661346850153044385132055787844478370178546147040546904301889058912760256919505561258278875186847250097623548708481074396039321983834524196428408409317393080276797841773030175962798291761601954465669650850386612359772189807228882405916184848418300710380467486809598296355648357799427179512691983597842176480543811772186783801176233654133188656064713109793938075148838721809910098426230726582014931176652512571004218346400449599050851204240990011874417213655229792888434338842084307723707010716280617749546157624728717174038162500053504060090681053087986634618278179457362934451223939192817004288285758485732239832977352296841651662403883931023670978745376540104355075816513421207952282536560381234188861021702211074713442639967236348671463649589653421137077843669491999624764863608214444549077949720318264902062278980941713150458794817075804141683959031582907299314216270417504145006073517307881190054121794837941052700839465792082480629789226354782831680894955591095895452841537518793536779217212644205484439632350085336096960616984279645619096027894957762232438202885459373855204179161451244877079221705053447742685474896476104516745010784063080915681212832032703001578148986910682910185045747350271343877548578304782891626052503554376781358066306614074952192943429702520915240503117955763244944115411163891626885071185213408018133521057911914527804166878949324517483935719738518100188096238475924888832326892627849767166375539836561387163864762964461200153308154260864927001108405070476942415424163738849073811804357534975064622601237770440238022441318985855325323523163605956260141181746688874144666351225163365868939007846719185982013720688940050560910259614001752418207786856857919623460744379616199718119747235688441584126476907407003101125837270777811924744524155986651343801015606584942821629974269384543004322136336545965641225894899228909234649794470382417756079662127129255424687364167371924226330700144509734915906721721849831738879260727592752357328604716093572902230017379032138145558223229394055775449753064550562008300264895543239861882517255547936306603108772707676456721816425712207659386426228914042973574911732873025849326050598093142262097125968943380457914871038062407672328312729159423949614366927674782845922407114866903841764238273968702917235214914423403377561853214816900512035950919554875852580908211012109720773989747212199047879679487800082431869095350323364908278969116223932190633318546070347267079116016771071503520040262380136305691651916962110405743316887789310776895391289783161431613964459459069379398044471294735029571958429549299355270960498773980241780481208557089258390099780736920334031145972238320480555564543909199498480627054493553336621219300804451558072272871573697138912292574414787384953822172617265870882214720182006364087307744500492619492409374899121109468242759852677804023056243113613374002423200106783941232089798241997573170556522466481180768813199626736986166640179432359990419931087787422371726815206726903940850174752375603972553058042449903739074598344692231049861772313941838071345413834954565141599606384217557088785210286478161642433846160410200960596868239894173678946834663598605481593469605137418127748981342292848861684617762063980801245034867753205176627038977985925361151461531065783400876721911696944717368642304477762786993555871018459991246807084975036419115578803053888305457670043667663896105117368025916175694536925608056872979851182874322448894548488357464949879521241026608735139601910944526608657792944043233843931690164812950340534836518038148893217679040774780501928099076045462134835567435886749654182722385367160942991728884954928023284122519638324625946381966678754508661127998473856334826763292782711848520940215806128620181591688788229281903118074193013014411550285495796673218031847418565586721830235619431111775813031652891245205143259669238998989024515499362873699916980651636677588764784517911408363540638474574700597361051746834990777952823194150597664456017756098786918099784073512258319575735826761013279373657788410931176243551066842316348591797447318063900749528674490361022530250831139954730878938395096743416537123270393631516676299122503141401200344133225808767407707244692768065926996813679119734232816430180819735014986605408323278715176411518169157787986071076380829249827461890173943477087283331058065808772556493098815321274974351613885467361657868308597800917559678536042850719825074349779503964215759714551968349792966070595508255405461573343440602999370075167127816769091891978509381366879470505071202361085075922450452397584111259368218121433681961318429149298550483027376760725609469889857627668430692589088196351042620911343465267785373887585660665082929096018728836579090378161810104558099245480321535156648408584254675071298969027208538069945831144203284481581587650466323456769499897271244782750130404746706898105937445878592578390145510043364815875678095947622932830344892339723780858797690957344258583709558459572962838812826056253381164226339029876492853528481496855161323867166524769017729460805266616282729206838136989463911372428942540622059867003385998666738626863633909202440429188701178154331636163842572341784608658033729390914286340560725756197166598833395223545372595563633317341148603866976403037342664954703021200350551703927809096395664698297330786346982950668027952196287325450817644426913146329721287497723915063538721122825973964145076190104354467239619889713830705200847920590569024911534951448255264417783595409144548559899070474586136965792850160374562910462361165730667645704402507704107518552161556770709757534908652864969846557514612634516323236973346504333950175695849402231155456066434205853594798491416963875499055496154940618780259581412776705208730502094728206182713443717692414207980035844954135585546442053369771664575135960789937677177473237811891131097065685080401438959952495410576618763548653834057900551597280079189193325452467377375053087283502153575403393312591929589980964564521182085263443993079558731116961472125971757369402636882202330489826385972273912946832354966096220302777880065645585239901441163911579883631214857654696052536923698022937446836610834692897594874148695854935444417246117924558326446273989713155323206573043113816301133416635838078057593434654674456257016027731350614975389755247131138283910383874702218992981438148341515022767383555727497470344757652589500125261076819729473375181023215072056221927898765813301903418485784277186904558146668137454023694855542138097843505763769165885803626181884017255742287358835032178983704493888225007059635552831603681210632625727401698312360451739864721168397068247633544923602794095546791791588933549157427898599445115131790447117073726940097243555812616068217842444606364080025190893503756777279881078194480979437165864494502971921465877873998400288412032809498270830877721519658596439257937316301591418530834376368964707494112918995546566225475882062269531148816039043165658330987569879152555206320385010987680340463346303043971617651018689409452255828636511894223387900876197069449296956752471318697108850614323622395223267186217160469230320759901655387196882646909466671885742408008745291630579529843281419507443528426014041749619852549395459178630640849443438582825733623273230900333965592938073393266538168633511142544628900955052785803147506858652579061386672231872897900283363817047566971107883296670004897096992678760726286550906517292637999592915579539474633270567650836831570094166973583449282143790964763775641168426941130000374503654377072277123398378086712471421597310234583706521890871848007244531072040165693883464963841355914015715059382958877910486871847630091206383525918733925904922997033280603131695965955673626111361817197870724349476551520932277350825152327176145087204021366172432781917530513621732149777782953911261537426292208533203004178834426226094554058522246603587753273566536939941749349846421906279883076262193342346392673373147172714045364012969102188511316027366671718993602851935797591421817086905618918303603583124624999768650023678426762744811243060052932442858531680477103389951109524829811925617676497405156058672288182942649346969274593299044858253518196833025294480999913900597101231347365126812176994553361055637433946336317143240369966584146477366219502904285806585217418628259993015214608438911077300176784248202636512711294541121304430630407069971898721822256980641787837311408184831643478658347008951061583259845539820600181117113764965075796186092346705398057616688982933138225220352736067966394851087688547952163070948803425987137934215837914740125023389891079526234062363320654712778194427940283668286931268460933385994238612556852295287868017376818583093826449679463016737099679895931875931068605686054000142432574357925054151002866334690669147299277201245226964133353861652701772161247924461030338037524272989015312339303974582300434698687538905240028874874122459648114285402904373231703651751616045912844351783219107723014707436233107159195945958058540408842579311887857406410320993807578625667451643778271785907700433351454399197615426796349215323033050625324406817401322645238684374632804190798235693546987390928250470029697345537177608587258156201189895663814205137603141111527174726392047938905088142420336536036432543595159585724988777738302548029937565088448601257191466545562581012876758406660185719096472693396310823414492109695752317901907102938642127061730650127057656724242078445013961198126201997182917135517502562562594908465422828448353277689900790396764240173054429583579611053642375268152091229818445667740819425966405962173142957249612224644717942081061465440484576410854945815630756697504129599403465000629850674134979208723295842590684877199781916824279668505339431390935615909963822090008622434576179659099985620968177532390528604320064010287613473438284894718266165288670734083637177724978743270185791564316817883041024046917491123383112656912765306945488256958952481881318860272242278993444227130943268190586300278400487413569260337227408893602565229410113825374695957278284971432465568368457628921346749529901233191125126771075827460865945331854688847467669646876293875232425009519273894957947506771638960421301112377399604191257858916079099761658691494395178374254712774133392412094768301708640210405835964088971836438520002752375789143261898849410030841556995198081256093498620227228534064353756756907231363121212088409451044123378144684328525173664291566974665227409592166327501905116433306844637324783151758358659907518872419917841307625369411375091366138201581210291150214365216116260895989048964130389144305466478387591364035821472186434649178558941642069941566059505606739120917026890055616938925455912341291004371981786287099158299471930856616477731632141849899013971648878669092700916097812825406778952992946641178902382561720502527893780297350239015867242607071938480065123832641044919931320766731592228378110536495679367839786483508916191694540519050350271674220149666122226539520150559331409981198288445203899249184521735611999352810644158655860733475375567468343160010432046022452065712898943153178345606878888191093282890396167436811815317809103102255422303175535141326782640824400942630480980232734635437901246388076538108043305143016581298047644828069894447121690270671980971836656219679429777860339943720159200836515447415950096278910846167763203691173610901599705692068267468915339092653974859254580447089516741914090761019847012565139697482914755238336025477113514827086517452193103400681624463974688410932435768030404625136436288299599402305957422200448956847075148897368275534229962597473449590717962628174624206058868443854768466457151989967303974168036453934957670897169531092348681621708078804747475868799276593521745893171581834878999066792475706665317308122340426863912238699807336870838906264005341566904106183020374941550168990446377356371293992335370576860290831232461173470045209128875527359040964860841349100186198599724454376435803976740052139585207040476175107323131031201295067848861533325038625620303862085612569104719598633147612483428611064065984355909698279493617126552250626304546516736933946757245300044308084314745395517508169972963322657801428610564210392915989736284862035786993101970141815667642396105658160518466414201909325683433213359816864378980172363697214938990823956460697982850074006485780044896630306926898559320818784257847166196096764604664358604987197232350925353263870472089229920078000487552527802254968944256092206259635245248299278578496628633345149561300578795162149284794479422878926826675507951169577235231466813583197348014179482090251129574305156126520702927243972151050836341006468508273507170011838610993118976214573111170983297054706145746965394927650280637720244980800340847670034137001442671147740746832119934318882187988594164734938232474073131229487788552256915092957280541877992715003221889586090758586074252792022569760325710329453193094060914868153937049838291959217349422542752901831092354984833928483169835716967578538156265659100339246768537448014575928008700855603558812779271853946952643671631985987322763397606695817620374997182119437915564325714125918277952369635666136571748328030898694825503025274033890031018080072593036570290346238378123792704049190373760634676481541772569316024289110174045031808353913453413209880921037342704300923690464988304960666932784835889161500513370991556495754197421723800345307528319825315052029622973346152601664516320355742236173083278031533251557966788089245078463883046976751436639707383918942564209846167836486902033305465988738002137912164453019097060444775964406855319811107760135314992802046896094961512133817856905686622980127671525992393297433401586800384311097249479104498278529856937808095336753535822180457064514797410588420119003231726904456942216232608860486518290179750966172739244672585624409428408963188070858807720402141900930106575661788781758263081452086397475777812347134361844239310627641422946602148562434501319358497350724624426675203987959917785475288556922080615847521118596623312118679093196348159577638668245060772268559865932947224947090319547759391161283860597883730100092832523990829240705229525133313197582597889610585627574505288625927126574008035182093977332194013383043878101054100130063857059073842061422507762531729725673737178307086384805375089618315911474383017441106447744282158176525278776059391631106615448395555592919264955422589032882447360123627721872587400242070600882973683294846055328837062379894462600321074390036528675954061905906070365444646416019384050832316140842032847844379263697787413859179467517115160214491841953126024526792592450093236688559544298432042036210194955658859072844272550719142964748417059143920521564739761034749130427551510068962678521324825216760744986033554290164583918151556854810432488826540955520353693262312004990982101753973445017910958130146878155982163346503101660240258638841327173807784591801488960607032610317418932140858334487979725677503706542499175915743726395448843731425548084559012214332195460981988339794134668726597779440857471202980732982546709403075548279765578249930451460918350901419372463733213665629021972212642264797020783106117438295416257140816082013919170484278800526774530779333688876442713441166852271447340735610310795727954935432325105512261531790359301045345471237243164293767004022534403929986654053037286438553180740931469511514009999477980240026215843792032162978113824817483304786591517793532178505772777674570863104412785773215125555489867123494972863343716626636797252396809426061687182013768419767747989382201299201008238734370299311126880392784781019495017155061297607463772587450540314503300049682903385583708458584291280191081817145994609035589521118722385963096549029516840763958366684215076074516830774074152091637628778205938934609692167428724710338703651328925667966345217325407557440717076556158286921043409968809122774437737719504641020375083866204544891541291590571010816942596001129413553993553071760883742420594843842259156429157621311817622188423613496240531712898102487702614783842556874299519993732739297273799562476505618607860508685828586679481966167552201977795187233778434073008636881430984303706568930462639044081479776187728304589359137317267182187196205500282416487105719010771364346649781407506435796913764364422201015755784587286805884182775425087146053622029173410291661862226670172036403015640376613817575713470840030149678761260871669033825029844339842052403572369912256284145720011258216670357473674407629231845999255315602281072892805929578394310000469030402377842771673662575247131401978431383815348919898214443899611961801786086339770898165789410080782871413585923122535470683377098696704365183708428805204391083693821746313198242877984201437196721331588095295515258890547482681257941259872896029631696217569374152319717041386917111193116277339536225613804891571020748728296149845757923152371071457673264761288808862620670942772520015078789662407674333782725015209353887443294401556552599627070774844983675060361435359859801040078159399997457426590721664391358648831240596432447543349139617133385021381755818440922356660520759097405430839999537598039780141638131060658012215909321193736126445030178748246446123983216579696644400737938662050371648175445293356469130422539751029837420419453378130004885984551635738091690011159691048635574069818583732729877925987650273021138574483186854747596891235744236575820389078216570541717184035300204621749100899005805995029244834075446426306030792093271632774951732902767784464607234675238436955618849437869680285803394997194123279371131807725414792324494288461997350388113199254254841616342159533056714071725696377620278654174208447508690784161076304493710126823085569176191330695401942545556892485068851630616615352594729831676735958833567833941666669635041906544266303975762945115968225328490732726355958897903699281333072589116424163172476980308904637262708235722627282918410523108888166618787374877295432236615174859163236459594595584916392378269507812531260013191584237817030877874323187908592164817964313639922482314117037023599102997715762116867446580752887252469358684254572426687947372091682785577202040274826777334242216194090529903056147254990678340354907380390911634019837334561054188974466294705583894731052784286980806490269641423706461119618624849934608521067302831252702680532944886061640230175394086190655591251236608099393123246635195109708884373099453467899045917965323704719824858228996599066971198420753174820370664618031208972160307917512954145856757803885885672655008012939822146026846809211475719390484223533826485742932291055152181323140086734039615637026519043446149901508149133301303609367558609916875905673881055515488822070681890415107340231980835324730641023014975172736481005655862735637825250087175552215440668109444797766815227102627547039429935865510629426627000895160338438409386830969136862513621957749005928809429737152660139355249594691330832713703101807787385962742634413808751837537409707886698013844306861450500655500168287124118510586424639257096032012713633076219297658796823738392963342542675902077681425671453361557072077938668075821695682861302381579894057166848090864649343980801435775878339643126857236868990525504635020709613404433758462075207146447245285650459343852399469276535503187152732664077304944085591722825872713213952920169596948408927479096026447881214210528910449375948286287558090098909104208359896072700909237312046924873117524669597110848374135411676937319928546048202045333587003180744884684095923264812087238016881239451119884482829557246430900396944584192711381349353502316871920553686668433863077559731697104377913089886990950326488942682311955751088365388709915006829292299586358455812729592514980560020920916291008018647040791617393906103253049829514167136584651038110581751841788701863859768547523329120867653056236913222834646056663440422159022723345457377656887029921229305325397089012741159786475274360849470192699252789958678464622807728719960180441227095567673509976546545334328639881026136439340762644101383044385614568988516470218622888117892256956035957580002999286624298674621088928401879148161341585486691023317406502605159724762327205354569663877306603291604339087341729146366779107833946329160250672916775832840521982108912707682086585876434681500749225191450089488840046900791426702594599094159856250396167728279713482991739960990884565078713244492610754616013418520534358748726616277556904105595526879407013922247575940635807981868303367698879150273156911036892998406487350102559238160913381577482259355969264629066452455878136930122341102556455411717980426181995365847463466476970411587791868622097141078263698862702925686668348110364807908902088283312318751985365507377698722457915639830441958324832398192823110200887796642255363869797187866744841753456639104373741630427787162858621528421572064652606478955583687256400535516953508574023118502566927869178966906738021390834815582474914979410606210580764193749237004271310782301191695883349905173015751975353732945434641319714604888108020193369821360086825889695700387505431646652356169363156398284604434710047587069280695430657970564769952170353353821651582087684869551954991250996762060079543935873474641739219377713029770449577958277960287400782922920305528694533465940100917490929777376715927515669118368254655135858084345129378992129519445397208176656707297570191516390075381521804338049901054846257344310968479864812729387828799664722091982419124805149481698614245886667745547312652139502973221067565519885079809186839925999533605784896842558429167708480993929703524002006993272615427016460417119775276306432511674910259738388109776821913300393172313434572117904843484447989883130802896601669710329398931831343789146360577010656683929369835796472785038602435884241514014358952954350291584572143682032128178573750038070385146284991729283743842324381989906648385607078924503781840812777307865179741440698155321473763601867846020525872308738598963520314762753451911693078713640708034949390917609698693522176794455314632371203646274101238936180029883407823536104487928535815243638084477908599143472943012250541984907903289974881415212232869520237804013635234554384647449000675116597635036285006956480501748844025607018554473903056631950202720190691018516125139807962135149167328768219847795042472019379484926814473796598432308531317606141580382048566768238456446879019367588214775729650583894180597011286883241611059511195161009694188907118154692167138259691752785138561641835848097844262867916708491159922056590811941351804138410331001741536852360406213686267927496310894147783650125346368214943878122003638091469446976215851285892695493927429283514522149294470118376904994187334867060211225161293513590740294210433028874240723145483735242500857851065780354216782841654774139332769481286589641561133385093646112977830937142737613910647152233370812019516006945554514780056520035351576272823767171348479055329542561767426711258003271351883897870162733424182143316113747580456559410833409470287574102983572089196440934007244881280753981211347760095738890813766215014468544424237684663559469191243583293070969730434458703776646751418161944726642656215671861161538608980942412666500171961812964658746950513787930649857785496152387018985471934733281848024520918953909885991388099727154861481147732669186421789761509441372170199102368935423555034419596893210633283123428611650673733788748408020574485897669862268312406167579178681366223290851427814126930086709288549999077366160467558880925411396887638299263479863427065733965321567483276397760516027501358003668426991585909631393993698622763545727913830421147330512994332855571941592177668491908444809567577808212738724104209463208427293225476289557579303186480636282798001916624301505164836492435944157020482370253453894165155812608196207500957596062427483486705402583710122424311475772064099508490430235056123641716176023450594128960326987429429881826961361219718141339111892077276330943347645418256504788481193272600810060303864775738621784307461520653400690334251507660489080805529375599338974948564694766747783365448724498117127969183691367062647275013647027107347694462437693758245995486313430949524247708598610178968717976586602883626647183737285203596362198141449597422839595773152927056367153586789631817045225695510749082357568626376132980643220099293233929159644044189610772188164502096447146491719433800858274145999767496719086238348573501749755801758117382129537131163469487279626734681881909574821480765723798179886830513689277971586161972984431381016494297026387083409094246187885354637430802966032574618405872560710826972504206478367118803737936617823389016847738719249119534244510056760360655857575230315967490345572678690222427589618061537015202983068795547231779245187463092772096726313537170116336921204955042721584334607023260078746057229055778047152528716069158536361323371141304996180959873007534069370517968852006744009721020945093482056481226966458485068556706199458399900000295902221433032352181714057755517964659823083382359526829803446920337912627333995935654193658904867949226839038337070732095514731277632365571567571036238855003594058039339433098168098901902061839047863125919742060553039425017147294871132809631230302218743711195571189615674528734244491496872785262489984542948755658884670641064014340893465643367462033273383797677100378655902885778906401338648109657136583185923040431468760342344836487688908809069747861366085997295926438233776792645942289801085427122238373841027785502669860175089763403984838024024962504985667019092598590207890117845327113774952881749513648361153194454633553156795215061339009475258891824493822185960025379893649519903635355660615435641023476716514384292165783435592533578498766756603963422079058780945711931112306487159771871523319266950762773993780847269744626310014811704247127561875372587639389947583062018931856266693329546015523290318320521388169002223965145774769216538650502590034319214766473021380300724610469862177592041227694321461638306326557376845852446778427785811026089762871143207984463377281525270414363543548853787443359516946984195836000665950211909195133225896638825937096785289074396008077463950131519709406845265237126161832357310428578906670980572233783001608227074931945928378627150690214038470618201454705598428312024002805960482514009752381172937694047265490243164341234759599141413736268970591718927272790307420214118365933821861839660733426113160833279876165616822585756931008433896615329807940396114020287169077058602105556152368001781440889556650846427151725860380144224109806263521813734909618626323679934722087199758046409673171356485997705678840060598745119943695776015135439557656501201596577947818942050441403309071454937026667249165006700153737391142780550313333907137835088196623639827724588088060407511301060433490435611814096008890166577789241378522942412461156952757754721320474665106011809212901316232976030510401798527741164272431669861252316624834454291989833086429080970498968502855294811910360692895901086296221516251600033863600794255082009998902262082165974088680849726201263637558624281742957879185070131360610331700123538061925042127930079906840157300823734646398977354138357117859636644703711572998422965213137683169196065607273217825306926433596069380929606041965730438200410734033370399851932294994221860158660603439537843831521288740472880295517489198276299571987220613915298972504544375656441703853933047591164873656986741807735653482115906205620591731600375675769791779139161464026587974368815217899047827025727072892976868566262537891820106569026932403117312521818656520450458540943802467213152099041859181292133606634263684721584961679338411929846138718317210992737068037978207540211933160990463910894770760466331077445456840965733785186430790922373136296265024776575325623368759276045772539787301088470254556912631651400745733336495560866950360302961572781015371753127413778505483551036936800521398820807350546986609833643159395538882357581167721343089635244999290367323427849387970495593165056053394037246770363348401237529133313877350094566850620377973006113139269318222614340917404881602226966046217210159302582498345976390260159658681362841387281209248256891911083443952134978583891423275997167844216530177778105442280930214516783614821708316311186013078146558518105271582598325376632246524863414781730893247474744749447765726601663987651421331167722658452679502717036292286961399205868248605760699864929827838754057048139655838406568170651623930334668569018977005780553595958923822343887432529050918558439708758624329851200478061588972224915766964585589840387709510555916047621638678553905606458734356774312616792478737933651428573187967017304355278937816761846329848721426799043355515200131521232810305848923327389683288075559493426215759988923567023534462849367136331030762065879239536323426541971037983812010910537743645385618505647776431807769624154014915434045180989233289187214715547406539780606590419084681294647963892460326444260039131498076905441331580771689756366809756098020960101986230107340217133669548388280445940781218592982431713689313624409107801805225708826696215421250664212920406160527302828266178905688753325647852630720017234150161467447792728336417097399819876018213971553686328269152583295998370343539800913524188713546615814991232940460965540554079931076824475822995348029434761046199488305588523534173906070786560731669828535563560135300330320134145313666177841619686994215794739250689574655686341890888739323031919192356168719819102091661150843812844530596209266422807617624007750363050266958227066486126059439991456366170272878713168275921786037000395388159070040736818681962857937250656190524458097387357783539417477962864000714722008740580972152012178057257971319834206980270037937439372527184974852742706862151530786353472823519119818079901099367368405333961902804699151231747564395792615944044561083079144863138913090400874184243113321252744929177230079903739477387115435854108622504249772458467184111679839087219073751191650021612629514614987485589713945512788497934789462449403441316949119499593039072975023103641314895176435972040376397414842093321021098863426359819154868442484340622615972338171425717260148386925021328959983092837136874907946331560931586093133408219390906082077177398771307367880021636823848061394868745465758561738341809044199591584679611352763370128523804246943076576905537683676837907305051135874834537081552854050151821438122185838651616121676930587962686423312012562241383556777415986492252310743490612412703058090060049541228755629157765672211081611838859648845624406388809232794763060119962972805117027460365842844701826501731514167211901685269879860120293243335313701948630456005265574892777833870018811600168135521651015160675009381566338525066231355955667955760033779366400483365157302200645436822593989004450338766890986145825631813405415911343214559330024287956896991598789704428820482722336554765222105992788506699120967635321323143390163322682414852939650523039015700045337118829387093884746096553277106205033858707342686358905089084102472286409264315204824936183234239576205569400202573156917434215352096786478746872339933175270430594172917219325960537897442475770196554729687972443916867200210503336041447607085005077476619510005115112699343350531594520267052631090539055308842545015206561062655940654865086744386672451754874127502720771204461117142443572350477253171640182663156902356218574577447348788690723559863120336577380026492293145596454353171300637921908371441787744344906407230090887617768204659139172010350786134836713202259288119279179922656308439411861658698679932808322779781327986405650007094184408432641105505130995861307531442587499566768540978617768434793765710035200521552301866515145304946506114376592735985763312018595804437310455065465402284253631338854578914194711822188993798708971841742560491892688159375352102721391998956669653300703606091818483219473151928797854800244358815034832116016185339365647939509538384332519604670718474351803863659947775480591521340285603497617421008050126620917076190191927608158581798608212940236144942223645890059871137434337485790057655617118315413380961212379939388402497651780779292122879383793588151557420762589293761135322432835084989576119139593515632812937397446179935946835973855459994946524941616190176435256648190671827897544291626615561271372248592753521098186839045616792052212678752385927794873844468582550741146971791870484885578169503767439113663446480342695339740409166871360963932877974105245112501779778189563025357363362371445001826760901588083635636528807776232522852819565209714749329761234801493467946777860562173347414238520769930305901768533310302261427361788410477949817190328751753020733899675291279262222393995850816675892593828992328134312611134624086704808416954137124403155201033927290359540904448430807185160213170460718932735617273966906515273393917233352611365407469726126525627657455782466578719116060805570371030857898082962879784207701770591705948793668877267826861137704208897381837081346603397392426525817160023424579513885088194663251456636034164473791110123267475040575172002805211576562580245928684942287098899578856471023999470489424986182293092259980920299536585827163845864150005896662763893613463497157725169988298557013790562335928473464521445263535513425215077406498245091385388779646976201270640659703117575969626867485634264225242735066534611967778077861266712269765584033665232781730604309829306218419162855397452335790278169141420111626482241336458048062141605681892443816526979401446698300156501369211604995654991104987936530853531333941051596738019112885075386748117531170631763597278273966759782289745290929836667344283565299487240515384489239125875911717067547345985960595170469838549897754466421627636826037175526826217987441415874174726634310513958760222901836073040878763311886731991666292119676487093402142840333804181366316828260072378739097930301245285381662356415886995855371185021219211186053190141758122541491680916689126806831123666118383823938478838952988462978226401763317509267097172348654431762050930814279943452268453000081791145813329126628697794209839930222498931025871411672270177897645860379032312756624092224675753428856533510026118874998975935840629019541162729672526434947661276506381802396375380029320646745395130442240955738207533242731077671189645850977567240702631400484705120798580213079700220167305530965813744674063311147078824040935713640192484396144992336156257316791801862519516783407065198192381611579533909383951039457822828150127146448484249194797964708781416778080293883061277618340418321611460996082677339803037544611313071816625742991800103119934389966138333564554508118313099462912766950203737639143705808734486287945074165843956109874192416920858057206163707062357870735546624174289242240141584317654618901629972412845685301972946754433431613679021894090209794852417631993614393774555518554741106400787152805457231257119809538526292357864967980599837459646758845503383962559201142363740684063493746084864395244334342157155102255006985717040131843575216536445998270299879223351599292612063195427311773101531154023769338600035111488291189430623364515352364147856530283657341806636435874672067458757391977753432845441290529504661762320862577511155069140034076443792165131913137162464010087950219214407854730171315295630077671189792893041830719924876571337632289497886545255586330707330373070584352101298608902442784805623915949687311468723707586531775145485541861404290241346149453767803650823169521650360535239749489200133210656051666597268587465662196405124101526940030532197500516211201670338671950271625900292541900876789817926459776942498321822875928922931496324446464276658563470765544347114017384689732685027775472499553479183056072972236643358331272204136322887821461755638916862070579136417989523249472062256202403298503786879252035757845185291308322346432383723676453913825188522020842526541139028074843105919565255399498334885265295968580861010021318283582495692627719428548638557726977063050322606667565378309169367862103968932730778899026062410759906025961030467304640169815405535362906894680680728652001486761210295178369530282700420802347291485713481111337103502617097437878567144280150293363716307167697349202477189899756053544597584530799711628528447755986608291232852910059560749677912565563936722498318753236359165408554224314481279208023056333574921899694436346913193823613944532501213042977700318766645843403164295964766106850804930458959230321984080827815720272956525123000300667687811664965058632956940842594458516285737392335651925850357235238448826435553596074300045646515842353836068106514467414410018896689589625223573001183170066194168556046760505006068577713665034540769695767462530997128498403018746857930227053366059934469527075560280304319429805231064942356752705980818695692085008073959469024649272077186412319040857902755610448135404817372025332931025309075445911816626015521365761928038934315405658647190726138468676529602195783053484673511934770660240062076006544192848056139507901633352596522929210239665447776601990325534997530657535878595369048515438239295907267922835215460559669340630334227066091317618548630029147548617498066801552105210731203826655306078844198933288877997222031341489865172143802455359161464112014952168697910023507004131262638340927714090972304785839625081760765694040139558355153881365152148433878193466231511946329939204838110065954794115032943309269456260256623449122134247394951812737018470123089237714644409232043790250664727021389722820277612389208781236052428750168400456718639493441009788002412486802235233713696220484390437831000616930782548879023218151594259204873156986198836461927671524680869760879816228727289314807130677813117524421181922540990736236123721029438760479238762263940701307006179953496145943120530223567230685973295898142895043212371815983523669064458894273429155469393501222224399082393164248655706784213150228657739202336052836928805829021453697644109665205066934685919773491664728422716719500286825029335715031183616495798610357806556648430281622777682882284680501843548370786203408230900697442113302625009315799778268259870606060218416527394756309496944233397358793800198415225275303549704290726418275067925021312295468789364039582979442469559118988918125269205092265698383341210925031616446154468669210648482403466670226461366577228827994929800613947898598055670121052397376021791499007134795808596546605642535224020606785407484367571924951230954599640725877240307476089128899445483377266453521413288093156552913436664244052317239038591018812858480896642265710574595182164012019268020109027092477298921289773049396949697367383905325368114250617191197695793120294497462614227667411799681469869406980791482957092101546122177443624442456152904828198824549397338356586794058589100628521652419946665163546662174501092499764514963329476313920579591854827728043346728150678672385016990739679113679154345218308798185861512706604268062724305371589353399979131339232660657030887103987259936500567763646649113835907357825136325176154426361339740401708568397614729319637708206795327643503526183568051092231950104424490423594491934028376126371139340027225432910806124527314994590883705138034107028836092005568766224474012453991826977986230064573766526362038367198488069427947042059960487551731232734415400773401451321227529370322854751009095609255116311257604284784905358087471184777105176392954427119880244945196867991224572486469512819139615336747104693630567362614144628766782796691114524566581298969310035812537024387684954338529893643163061076832051821755656829799430956770944026411822503541302887567811654286928412054786004337355537329386775480336655657895697087107002482129634207270067768254450795402200136524740147124583810829572756168331003727018732593866727881850150827691497021954024079714575359772111618215447827810191466173887023749338233496429364873382365990772070645271533937906777008547511243911651178165949561881281021278533973410829630507277597256650736179848752944047552202379980245057958516459549183477097850455323366141197758369648555006778226234164678941140645897666668234245882782935547359757905979669684607985938285790383540885468916385163472552018217944331436277831768260945725674065268062621365863039849419383024265077803591610621584279559171284608127742464782763121347060592207421014549235180440742466178039806135778901343964853588085265032979461067396601084782105003950341039506119015555223184169703609118664470850004137175580225968102920050154745690781837241807947614168280842623773653337652472595103860776788826534253587135608058267188662306219871560311359956928122212278630113588498188952854706116224086351437234719198450649163672586083436119107741454684952082727025773141612214381927518172953340707714804369556196436176680997680899978580890647775349871656750249962590106524506519035723505783095455393314378289539313307008321958128840653129627284177378994850168344957656098949343137034072052366457710599842533626540847858653685665438961262491466387696597457588543457007031932034047623286858976385613684096415100052307633335299111334375124289385984651776370025414575226701910350341907016180272083757669749705897177289624531673930146837924336680094390530026469644515049646248367224499324860045687546157117862030313706715219013747986169002980859613801594789597675908609399013878128076077111627784155083528216684141439060334319004331980466692479771582491239159390797094739773126591609566254714950684824931818194369830400921665806516702348733353444312515486334070814552793913139469029990937842258241724397942747489510079431632716739222052818041828429052834663645268035320210643510959839867209378572417409346441612716420139061577090494974515149871189077714633321215757957869062519802368663727354587527713311893165893164446827507584480091826873677758191771356765615439067974275032070607431213595321096273239319282449329441362510022309049991227623044269836638398827989922805706989226605356815737736337669907361307776197064441134358312732095814042039195809599537089151957970464518895056232919755962068570175508737193087013991864591704841874149792092577099446774097790633366000949706614820702209700074809285386326862092617461217448315918130719007078437524019155872605213180465804067471026101919047711467695259839202527889398525963298377990047199751285543168357478637720823618114830770749260437314499860937971015832810089112296855310246944833501028904283854379092073072161769584471166291644025181687866363507804971188381569101317134936521742887325471404703280452864216948008401788191567383385724417251186616195533804148934206160532374943606692288629724153268976210042545990226989698957036555588393317290544978573694451114617121397781671286759487356024705209964885129835896699812879426852938579713322261494251718112266653732085420470671949303434130154923647184182100104891404525140964665945407890588353728160660062692465618498539068084854830446520828432596369906780097379211425591015381305357980337912216006224789283514302945669742263386592925785747971544628864352865738006362505194105272017531823348096242455242941161443745746251611459387640358749326715205067984539199128382613536634304402441674085091576939151256833032167187671081593843443998603489319748669874437002897432085615684168167506072663050969557615802806105822442733303669981797029468054422193975415678161780567593106259365763784129157895097664919593241491619537107943001142387109000522018116235711275251098203091396397140209082376655793875863268570578208335620462025429981177990746548109633945695011820247493463921107937402938717274353407209239776125667880936476762508939498371704840769266225571414136495196274954223250557807682759890294518893154375079236156125048089605508051655194801944689652439531347296060183418739765353329390998567182393775192982976419165333302725780765649445178818611294122777225936950070626106556846094050386591190281092498019508347184263396144296192147452694588103029749590855143984829465214691691289409435781236171003032428124972864597613635785310264037589497097626621228241484529506663891012779086677429445350968926597697412867626570972659759599578922628472999187346779061156718028790230810302022317777334758808796938631351134175980711205728916864753603038883044219775675172772296798372567769157886708049207580564676137044866613258177087010834843190022883447515948540249317820564140031008280911605217292638742083710819407356180179298915386117487423908515982298079864157274349814194266418104606607982606327767588319039359474428661780462727841355256026334399163898724161151521154086263278566787213286402191537547244066769503219659221684673525268890727579315421230685456236457699599579352420864081965736538936820638552953788388299723386306391954514198746496303596899976563393935298217813309677645503640132746392149871789350081390182995413187090365944175140124269718807566660917082575841374998000263569556841725505080913146247842769129593375042214304541812696786329919063547713416003391398803401610537060967832629618210873657344242154886415408138698450025045480485535066863606598140713138972779264710517956479969574961899049738203687693692601963884656995067811477533711508725882876431667900274352147584391170285933133370480436524120614038056901418487127095823429032137637612793980764755447267542657653503093352092735249341705053556190858416958808675333083743615524986683296998462991731221733644339465339302519044560909533362042748634482733979454274027298579061353933006334894636722248350649414143683144261574123132394470668085215968002999173414924166971674312390085936720261039190672560730454895924052629907422676681297632839907251124761424153262437455905416375476039670007660138553799113803664358589743094800772465866595731713653555409871938613634390373369834700624025550670058397082304841135713898843405016603030154663961072709397076029769454524118525089234592325311192900630124627277856013378715312483986752944943485008396705036125396288637441760653566979827505959915652036183468415439425992555992475106535735739646453149401228240471339762472506508308035830041806737182096700540200578621783264457319047003300818494087591738233951176576955342332443066867692551186862238441091101703606250406548347345927878296827412822514673692311779946542482163881812850204534048879290411124487692534510453402459955827392357040249419067034178130784701220141385621779156102588388659410449262014329959009659422519695360438228054148476254243010615661459214456417942766374114686662375593811308812987658618155226807134848192432846175250197078705933990481451355847257370606528499547956240015651948839166383112085459392519859324336561479215085515617612083802948427404179116043179236494965684832940771065830722120983674396607152950745639625597754279092277006091742467351575028531616276235239256054843594869861959424851686125036936764519317166856498545217518391248155364035223954233292649467335315794562416779608438773922194930167598662761944040465083777473076512395679222293072577538529242207710425437163069122590319814395704094275063529617620583457733210344580832481957376415732041564145484793156491636598157662399666915280923960307630786605112309074398150497900124717874652511492718292098256447216377811304945825123044221465655775344925067274743829459688560993982463053741261658117630667354154079997183685764895836574137122351948693149631709007661977224874079218345091700898501036925035241885757138489900575498558899718945806256323885414338945977999426256258687649688837985152101434159783056602555535982225088631700073184977500566316564575564410103799479429373959154594764447097514806762233849807469974977854052275685157571895060821029769547117403528192224745174193616940315494621209745949585613214670176071921797016927263309813144887606994503465262052734181710696454141888596833764480437138106698242020734132298075073844391526846234076139363568622073551570860885096456490221845847970074786936065369664231199903984580386452978465142265561155891235194925212428585383579209896993111152438502407696832554399819965919445017049242797118635181034507996761632979477060471565330122418354248810922291352720210119353135031899072752267861435480767348385199928813734510280255636404997597108022519302213694326111747566703194314320910627816064069178252234404664359399348723411664468316785554726289274078597213988560848211815248400771118297764202748207168604338600673757472946816951017261063808475791489031684966333858020394321515636965470150532871836878854496162219449602730679699558375737842669756759492204168932935012548413146427346547394123986031124754420184677773277115141634825524037048619361099122662328653908043673745874977491412161592218916197980511574422151730806578423135212138345606318828125084579666994735705397959622937981517464090715863136690627543049034287603813282858414342206947162490574006132060381714783057261751129051656302711083269924773187887075454766339466299139964574077538761839956276691398617485752948163941820337092218607282178323093642130511248434364171873415067106984583537138755000493539435483109920809356166949439735388468452981655481172630059832183900983777372687737203798799988861116594995784688634784025128964204982993433717325252828241240392028869681545854726259853669802768344245068736968800909601141431620456691817116238575809743707234902073155509757070536056685307916472412650725481765389846591314154009837043232650492142895729999640025794908328480593774368329348050064365075843348505543889775108866402352038691143591595648554979237139712368738075917310983365983398187780053011000942841687001289568298298451035995731622108010097782732461627803187396054540906913979469990797319486155117768237939508920914677045468447855572086897662268657201945783496199190230935187744840921693617922960598022075820618779652401411968866589334256919765285906979728908441154131939457443195376731093604329976418435657520666959296510257736793261286016077229746671058317564573601315333979571308929509565541945548230369192999235168201619474588629005464138847270278244519790348229304124693054285597026552302641193268185662166922073160955636854032654830072062308278374627858738156117473578849190587191612412726617998539786349549167918386695601723370717568271519538797229694640330108073759481039845441014273432804353884052574417485756674671809650655171693113758641899938516054718558617030160311496771127941886204336095759411832528795861943440296074737642049078787663209859416511074702575122315556577060959975218017489656692851131488787823855284315204102171717838719069821380394263659518374951627833770395541955723273746182926876878348823582513792637641200651691829899737760223807477567405781758897572068402758238079975959746305620974968255875429258637545243824701570920789544137963280688255565545033979287050840918293585058705565394331059532114974600654359005780343258655773890121364373438803618956819773375247469979569555145364497838602040298653689363783537806126130722724348324932365347234841767386852445407402713420068053877529995238843104859761470473527518265689505023333951615065410987171507503143369755195009982111021649429663433832001834584536074163078189429034821467802220260641454679175894378230178979644323899780710518427195071419515573162957955719785686415814644376947331877542603210649944699821127958729755498406088042269898714949942871510450537242156569240189654609633117429986992541477594125238722861974738364816775928265667197267937910558279294291061607721097902185894151474077390416033724586793605371870104047205180284074662030919321040086441209302635862139936496915422346654228356278791332668645750283057475042139324365471671310478159419653498167141031666603998498576766422268406858831413868765425777727342629539870092521131620288666543532317832139100278633402588675821595338767675817869662651597762777581740185656059730895041110527648982537203002944856907849057956312565814781925956071815290990996377668731628985065576874775660355956031121660922776786007725431791733034343650497731651683694532615351964777863635110195309390854032020640245059830147365427318736350108894077694123764559615097983651155876807621761253400940146675648440984889371058717085084619667992625113858670659802710579841891058981435055441592479794679644038091198018002127713224439846733581973388437448916777277253221422063713206041103011289753248116876320627917618564524097494284159338841449908555631852733620628722492242251271226589963201834227490009291994226774982759016145623833843457025812398474774862907162322780563021369412799395744639494317958639135916618191712246886588935063596193009135936021324626796541349839602124769039508013164055767053784942614707833674069615378499326696049322025871676892888107111087696342521598832335567065992207721453041708807723327393363305639287576710162394711555472186701400394874665286821866944078819523281508728512608894061495867142163050984113624846555859983097493774670522420081833233804941108600348541513474511331806960793774213471658424970819254507549917183735435240930171668201286686066619982997410111795945916808675360236859597226729163116342955886057740404899434761540419629828401696380294841376377953844750838193029276556945440462260510785886195502988952450654035627284968134368975607246549534579828451649819108246640152164714405933866469660803281056919420802794299400215695386841483175378922957509124246668565938591927751087409511201506518009587320765830406384422539454365446189616171458741031458902887799673354246520173325973774474023098604270338270261588392949554189355706642109531441765841299854430877999015174258305108596444013786504340166079492079634239626949809409064060915422690625751338513351679061183831768219840879001953556948407768712834839651968427433369175345616157016940305891005795199513338136022406961478372244150747443730992020925446774937524159519335203365629714474144719696360681659804155385975948390542467247421014061804809799119108051301544942858426021551211086935100211133517878085206385936600182563052147278979096024266926598129865754900291549098722974902730331739483213456236735629091923795554203592065154970295396731324186547668702144292781204996509197630527448393095077573645380884738951681469347417301387073999176846527377931803580908667740878118067121342619353732703629631199743260175146588094443006315230124188763360923743106885487439592452619168954136730722777888419275272174205200520940264305569729946524072454150090466591540842928612818933973653206485578478732900000725310304967559985157073594449422875502250003329350038977190258581076089795709840818847962833414931136502887460199109773510483859421586659110821245375685177071956007773186184214047438573977313218104423015854445075327467046247730556582207058057033901257484943956983708318640454834799035659271686062615608905969965228372813623091659011946638957051795109161080771191832169480245060988906703885035143643983154129357806116479729067889969270858967935773144175257027747881005443672272425019593388108743553325517267662566813878491912805703153601493626958536403438283443287487203022329665133970937514870599738351642337469700990122675434415994507886086677953715739963779303296496112053737323484051323830247956180410592568640477276402817449688972308832564430543697865078707161863104293492051483379906182105640947452079867983933673826406008392496618070816934967462576138216574480562001273446840532882409958918154020522999067683524158135923930438945112707927928731541510540519091326151975781069524727215064263302821837451344557439634481562571091947239274946896516984119116845839510008874207996866156088388078885436092330873689291440384949967769804521881287506062398137017261252169419115810894429840530477497238391545488170429646443433235757151687454361543268886589360631797929438282022617264984659608774214339216642472557597355319349446435224094706865549059766313064901333828759417255852592219608921811761522264849292881580618384298835656093969480074501761122990342337611376513876242359077032875691603256164851131385802303090375719536663558287393162216613808644739051237222980297963738437800623014155533147283270378443773617386008998462040262390260051509232816945244723136701968109913266900673573077864054754714628416410814887549579304065002574897958631312752941332224740533527252416322717101959749375195646147640503454587687156616399598842157824945178962851814081919251319309531190716259450593755138749533554043252450849093059821521548685302726783823504023230074103504977155220047622344004976796126622611370628252982514239291287054954507016171846895005147462293692987153475011527728713176767399037079736823980761343813419137156680276796837396983034024576668100194655257710678492197634229030841933903374529096090098283134302273003959720509861684971413359579489133557352667901724881311611036139784229579591634031071133034720757449411076603290357073382823262667284350704783703183120991425958221920197519117481985345997012635925227305720004400805544344910981950603825719431612982265235033650128340674967637769123418468760988248203642880110959114217553836901155078553353423012179097553438440615345077012216580642841524633987118071641397773080904649993483091667737560626652657595133473824480216704921151929510712965081787137077042469602660609884593794452121176165299480180121823010719576313513101565441610743614266612401404295756070512887263646510081568564884896789390066258906107488013947487157042738004424455049624935129394273386166804868932285597326051381678385274411717408896614992670277243358401999489971647110582034378634511031137134322268915603068565169306733314377877525674349671103690638675262682851154948154129039364462233889023009195459253257132454025029574902827484273197187251118515470058851841927330943857723874228514328949985148591485094142347057958363110519736571767515552981269186264034492920217245204503141865112837172013915372308792250803003080318968720198592478234076129222746858882513643595220309774104002757733348395573707828940790839292779796466742363052898092443359925514124040252877838716280266382538949949902350513632482919520862390965172531435974560552255153852557045464064544199923659746773253512629186426937857584353121104210372993485687385399944532428023806501574419517105325655854950483883541058772955178791806976533640547989506577046027101837587399521707109989735082558417362343720953528834734691466640352802371474628428042792722924845634976839868217080300056671916222950028647099063604104399194052325854230639737466333374676725195405246094654979049114573453557698626869593724361488952655784511017427388953650558860778547914546444683899263803597775792357868767715903677659573837287229241188281068104211511179891595052776135126384895072807951373383703991979804675818014940356530604365374971057107353973430220768307364048182022768161656862281779290298659759910303897240960562120834175825335331613351273559726504292198648147955414253307013799675359576480302125440812676406780413827612196942504510164277244924434085297674171901606817088293389636289100662893440089766639379549450233612234332534596917105449844201140628199926803703085860364588078936417992459945005686784414380971994910120390253662674470840220532733373080598522631138541036957206855344618623013222519868543383022257803036893614948376183084519583300581919657613884706355204953212089769506852278220189630312748304751482073787006319576543785969555888937330582397422051623241616091798349680912026495431909673786608100673829100194510728125603327434898929091731615206874633767681514384728528247297769837052913716620793004841791576603519366048571492413589964207351992852670099155432490017304927507445261790422491923573083423146742116896512068090253921867257008659512224998678701908012248236630076981480932853686974152252034319298562477921046406655170584626453697450450326492569677606853314689757027492947030214301514506367823512150435131561443218191407790592892039018945674361203349556651881290090823351357554954402149955893987036087872382267160941324615055361428143336997319437146949717225320276146608375460475196826958966816021060640737941547548424973787520914835390257609799652198323892051940372088561957012528027375944515631888104489782150705039503700766421848347584251504960595156106416943943080350821515555527964689596568716990734413394323324712381111719426171085185063537940565388478135343184614328913754726921395257297186305955088686431369913215361284294410634055789691965192578506599072833609606436438891837576060669199294111602626725506364590500483533192660812231596236600909355423118403578140096538456430643033735515761473126762279351978775254489709184222069842350721993916586011942152955304274939265482686262505865477108500752549856105923665650677321813156372802955901773763388493610593509654555702340375931786176929568196719198928185267321004533114032419089576537996886016310389747956657795195346752562322151164018887568610660251638816886676137477729274906352007675189978972041473450695728064292601017951787765326697649325578120205798000043929971509082389972566386193520081095198882895971858147576720464949957344122981347756007450510999826484522113241669921415070656052698051282362262376942296553557987787667759639468722683930550020499755770611804678188555391378447281131066671075552677461015733901984044007175658367497688510276641272474477016274991676830900838362709334928754840908004166474114486700582328196278724141874929764959428671563314690648240078673318314862849005482098334413867617983386673185773418481785407797234324007915185670230413153697941862799501592738952997427822558837250064918633957141882535311486942489842791768061186280090697801653358925160782402814394274727886270429144105203020975265332054305568395517813012990460659406577089154561728430251634590195527302578015054212474133451309995799459254411728729626556559328646540589467554654795288819846978586869999286104661550499781042057532443472936773281374346432640465507741400735978242795147119977044792897925942062855566364973003337675840920313465590715550062761657014197808773180007374664670134110495134682788925928197700641749931112028928089450836760646260844777752006946749024574928741396110538444227820566846177546646065126138482378290670504770994809798160807917182275343368869415971446758582307527745227424993360348662925901898068701177396046147302297506976535643083302723237784992129942748038194629220553490551844091256069851799459218129300739619446438427145260066413903470212849900652134507948838028815465632238816627454086903704144089151434537028787474645949264397067874577114186507302441834665952567262138946699339686608012888391011926492552785014493176054225954470096227652135762921208073786224855597659312104309995437695852583470532407998353033589639351938703746390593125562242657432534304179299785203208818790540374500299929608445071003243795735264159797428054958470365316342204853874628339026737451490038901355577210904546381269439361260999911151717590717825369001722964830735990014782905458119519436589597347963629279196648979047560232717100088457869237708197968626174850594504159224639423648631662906700026712199161254212464006523152778807371486173430861483739309080970117883781059829818890632889920061343103291389669189676504187912648939542782129850532660322411943113948384003441677863368893779740325518108194118031780638331676754080114286228511322511301925518454640648197263576558802216006210930475283482365710600567780230850460645076902590492536583626489982652476590292223468620269162852765362504277535551497359554914212445008366765914420657903157315358138365108059991782124067366362302679080728080297374870720374185433670481210936171383255623769858325698430211067564902798638323462156022398892717827319867447988908510159110704277056093472704170296044384473816343908894845099092382809924516100145912918131508718918833824589453565986596545208488323465088343699821438559758472776924514013730666449018321182864552984641671452778971997436774234741545579427415883958380417958636704295920072058489995152875038060250033111127760098137315029909808261525959556019086537604720147225572680449978212955808626171962944626152102020998256057370573772549092104580336076900143824417253806264803223117927788653272479887825430193729091707012548980549894911648375964260713285304567362574940772476278944131074424081630681167741611730273361943774348203889367577944775650177429076780431733404068567393759470256562383046201290347294443310915214300017883081476724414299767050796598225199104770065877676764784437293267361902997679582631765076224881898450404589837577624378853824490624490836831835686494951765130603765096345716652039410850777202346081985362408812326316305125108798974459035590615063377795081903554819539332899910655787094667541296788134008932741122591565148373816760355652685824985901446048899448164539587940248890529572571497481556459500411636432248876935023537200792930713879939546051813695815021074200366376042359948428960259067928301607147855907454065428702372251248589002595072102580366366808412558543378059993689258453488654269859865935254912206763713724087395538748904405761228149290048828554936491249492439757145404321677565979666517885361103277997978150604847387537588787909613974161569562546420156474063606597582906139522632581393607912426527937312532933414213842929804773460519110698691695963743254336956881840336147832753900496018429844806147488760139518082391724557136508078479470802289384463192218925708102368051111784011931927221941030562498582526636580062484298520092629101870520927628971621205779000013229026901750628643401689438630916189851379067588868095347408459700023743470076953662876150260165246817153479087304648508255273309781001716536427580385380154235719454962329953943858215832502469412989613547187623163217432634184578597698395080971507901443217056228826930219811895097321437671726757533916182581305507540512122236938000379423210633054371335181715699654810548082963723603180455090011398582867299481575125971416195826285447724824367557881149470075372143949059331230639998981954403022608078790206234076002243184488999054186867484853082402536232479562407933979762660362971180342680896418449325463304917969110613763594422303665739075670709306588491446501101414886205958134879066644711977950729210993494804149262651364002820810839982262027638056744107302780146385991434449949862745995311456033373630280991171732762706722641591914913635265438405719467667366749583602104244951464866826052185751895076722909243710214818883994697680252870132538798159720597874056172703310330663188216385289542431398849884219224268823941537136569251815519535011165666118807926284046466487787689266766710229206031242470449444819826818546530688105331324068012372323110847246798117748571925592106622215837292449172367902042223431790041810128981016020270580221589647928000739239700640067958480559057419673302259986052649438851103804100859677976177716269897894774304168232482149343481199237565157758185521046654188841812646711312318267842886922883973450586457605900815437218669999870609785550584038808657079656676271923372872155767986979154854717842164904431783302673627810136052739214585226321562523721460572783300009705309314123874112699476911730904106334576728017516184556062044975715537269161229826118935075940455226377209333956073606246881882200664298331010880287494704277952043473259127914304707723672215928803277824072295322441497585522442930608930682398486649264438911114663132620380779329431885753471536405942754856205818744766426735376562641431513231288803840299611026215585891409241918923119360217765949822397036965003741196622481093203950911828372968295190372665621491038432236373047508942005354811744398778800017117557249866382539768829091974386879827577269311769602527343337443077990739488106494161202047823395578525786948259483984205454227478994381155324159800893815581004951458378633918652322671707967010093491258548397235979362797681264070195860521413277462362358314654106986566798433315233830447218820522763351304995821648707234599835254115664542921964916191542900669965886672047895955697554300769589360388400675387010152848614014939672512410846836266343122043262655206993398159590063826064616693445406351388467734058255519952121802978557157752991373267215201215851314345239362970136317415612733761392267281822798074464165283686265464923334149141840545054634555081267199104428277227575192028709356418897033452421261028241273202276786860322305423139553962179716343467616131745503826039831281119492434306216284572475496576891115201842133635355715547243795116352021725173249584996208708731651769121421619653027649424975681440709438033841665721153580486582426319936501757333760676142401159507715912926766387196827158122518092128490081733499922795254010420151349577358021053002775986920431185501790314544334886462736336990424474450048019401238438457502355233285083330776332962315633247798733088263657325194704274504471366555985374502488669419094249571679906807660538289386236972001259703186311181323412156728467443147319062428433759574290321304538046296018975646768910955453397242053408962985039391173688310996821036496599183296239027517311186110326638057140876648625475532725295828048602921973275364490557567983372878179761584131647257950935598837219061082339524442719542423494085131224880529134929600752647680581191263577225681517584633809329134045114407063233088925488811184983890281313874572487668679515723526894126295814493773572183154622329989037401961273877161474622857590694650654409456453029665409184466277567013898563051794368979776220881938298616095554900122267811327853578004152262352455496707813893552763432841029187253320593030326599762914753673591034441509507162269745450679231295686921965703301151094523727004765844406146353444062032949412580749291503038114369350081744708277227525374897437940222471051471523047504066866444131316034181572889905954712610450723322763227461901480909608522566571461440511776821263022068772085338277206869346161336431612825656944556110395781807329846468119791024492179150668449782783121550935522946930736130562487686064533435847764240887391975958861307810884545231167661231971772447458757466382562784672936132175531332669123037057255126905062364095907945810467031954362754364810488527824060205671247617270453183047139658572301891508491381167006168667235029626900983122548835473332171552444184889316715072263786838842299662146201539915156985205166620507018024099543291240563130499356499769672154641185490098068987079638518744612039520189089456624130526725938061514554470714390274742451485298951834468777980718576747056043945485274796074319580253621205064534234329545521611147822294491079401474504503688216580920931022915060864745842746726905647737172621145664385934457631483461394268184378683989262608864359957956862304982960517567219409743699432358568712608865357253005948069655014003341428267766578345773616861920929519998996301740073887974969172868812283814922541859661088098808071127716019361077933348161188026609935598130139647687698981300733075181257745199670830412243261767911675240813112012423844846367789169259495567189356452567014255287066068015375733356752268338517629666931242990766339870435227539540360704172994604535187488359345964408568864262953552664042648693980771622521566234456013187571267801814922526915434351388550494401338252313419510829494274396813976389868046059347172207104756740739172532465405407537858250938302317814475161192019648934401816659536372862177588766334469956393524497076413430110165084307255149278116129418185385784609424719000997683792886429294022559817539860621806772885267160729123602033882505482703733281773475896095962693070629637065835695967253469081518838234456279620337512333181598880732570097347345915672226544416800347006615272419739741753053872650386573381235648109619525143422590106177882993142813321022872573148938091217127268494498832137031350639104757066361189504386454965820580839714630523337756264202547363996980694945972764218052269511428814028840150698953376580733143686604910365454536319820283378367036476875148326741217117465917395940606538018798173561745145261927217065947814910616078854488427088457673122291181675769061546845928489389872211507108177313167970523605712852648901702779882656036036425946100654312515284318121069148124514848319984745688200124725257712909389527432874308306226549228088186224009796397389890817162174687081964220899919329516341692665094836861893743911571380315558426515795243388380664875445509788424351665771616343682605144443309398192494166703495522879935934587134996964886146836811790956119481408503459292925286547810684815783328358183615613081083914297207408323243453943183602941742830762500421539366458222635109368920549264409242536259304391529761921742593696600279911879143155023175407878364963349828732337301345092071396635851347236636050080690548703517397770662565002788040473081342587384336644094690700805580771337938573095428710602428662306875592703292094844585787908833103013981331304435265055423268087818943843457575740910258466063589841060047604402396670777900307600260753579355757057246273620805486391761245322609932532808830285051570747459045338311612312440829280071049227775204595879379716801168819506978225860464265452862565106896527952168512486083347947285256902221637767180365258967057383781326645311614634579633785474257288680072050497017421784982547653092309689569662550516285085377084098442083087733517480602221085547872613937262799107642657774785862278554973921139810935556347573844161491909322928322501243240224186092885232664340935040365824911830560734819023094777384958252932213234633187014459180572769232800843789166694457484229111829852695932256541822900036084344162810462153415173262827991783980169473213575302789632128738466265084554867177255451651239640388901976723883410750438568876302849358934119451761564187458033136481191604874045551995226862272825779478775097090507658437949188152426554893812003762264125743903463710491950386003124602727777822934795951357133196486605612273685194289369894749269974900548593074059807385368414953846047524483889524201788069593500715919884502676421128851655558802479396302674247430522017087002430398361080861306845472505213978274405844418781925669501713798883535235885297460717107779632674477507292772871491501065639470917804609540245431875143584507828202251472858208202516860629237004869524057327816547933967706749645200660505948833753334183363842839676714963098190610807787927331832704641092950891557361955919296815876941623470610769781208417319041527070885528480333751947413302427900597328390483012000871617832633273461520982242681528230245974965698252612842000136675436715040216127184462120244731827248302679852989751053483888077887633865705148419866420832431115740834328293726761364493396239722772356323278889009738210120443555015028313261048405384155500329715811298256028681109182746942521996165988861795439307102305886365683232017974065560885838876664206840628269180946433885927722126895863216095678023763459984026004001798416861730768096334821199531688402626870031817969852531346565075840197434740515400370198785106060874599446695014540352570031546334318165231198110270083200993819460961574081191216738076898150599105241067191474683756662712600729692728226865653652469976172860252877262716403441255773935062735223747722500142877658972179880933192459074402279805690214264394254810861687068347816252173850576491072683937870148769982155509314165618595245007102575672628259517792840562882970001154641986559535254499683454399197727536757760021108301508818198541473769434593865610693207367970764712984935516945466522670904729429550836157240280482005825739183752952526736506496453282054508276576046788697632970374445563775637856108467271770758082551496450136921661778576543284150281183503159112404446180336619908005213608803573851284065478827690583266818358816070013629466953507103165585697041927786005935078551589529123382046304921814494052053499713106494761578604400320885602889206961534486023315509426904702898097779353788579649550020317650462765174057154061706055681051340563916042876559449260638733228999714108391371215034361336451422599864248292083056485897581603256383128161380960007908935734957310889631462409528014068190931239998988177176389855562184467803016934635309030592796234240210644929483102085064586855943331253951395248386888980623466794868906509031378554522507286622626838707500113526602918189552099262967569204845943262476938529731267105064168639505273790101943292694527648904787890761012637013679436971621346688814189199336395860180035075231188037272525728966660716621714244080198347884701214534472859915555775120658327914005317578153885684712868027732638578574413283920427295279265048801374017845219289956861868293572213395104484648828217358995766512964725636335975712145877833349572515461398601647453999648539769311673287373055190258883523831135787991680190332652271481642173250670434213860993555309319409956026275913686974152616693518007330100733477127701419825930187464356309659056834563404752933237481009237396165750138276831763589624328152472882977893610469543915503502826559157739847632643090291687434328015923617294153673617133002901737131844312704968867561129896932652965944654996674715357686966605582963109951061757927175781615731258562858971282764267791716893165800057218282357750004059567044091096667357796596052506050666833639190204975710634487234498634867141466782297145707033092691512367974306738758196812129864272354164269806988797909317845180591599019302432089041555304936486548987145776522186898948054391763084645259007275238629236074720701585470755405210996509698566409643722870152885339235626392731204655926286478840283872058924989136201414011643870195436413490863379281281647994637946275888890886464709669938499374917198826039317269292039427776819836833133837995837427681836216679871214211905011989208781938393776488628449485561805006089077650751586292770195925993244261927326972728234959117015309804367641385626255733217480963802868685043139379161688576349517317348592234705604430301728840258007539089113641477260277487459941925097705086980709364105512043219349034955789940741852713087627118882430783202381903007690742208332797779618137066337304327129753891935005178916196813537340426556311896025864006701483176035411542972237819921995560238580245036614678386057990569868635554064795489547204056394333390506496791267481311140510732501540805616465900806315159221174402378865157839218982942917550827670932689429031549380699843793333386911052776198592452564778958784820521885214140903230518169012145740000099664426598768135952384377278958695281000857112561862573652015981825620202163573083792092430786700079613736910219151054757357051501146433896128387242546730050517703234423841235718696974108059335058377127071986943599507963047145774505823365079640447859176071659888868082652969638378097061133137177503642780131010795150616285422063203446284663263327454831544403946672431331160325082494490505332384103249346392202187072759334929126725862933480993253182374723925416821134058199995413275170163206362782222713866913833489953367121360911500151731329617074020848244162645495904984441129545512925447785182211991094032878118886905714686177128860539799698185577922155392567178734816316092248277631266068474583536603515977990989676959585573203612922844329258536479796094120541589326429490701411589291115174751467582819878926070506220940777452074663217064155852661707885427500925795160755955935869473424959095581322204412566794346775350447653265019712373731757138332992708974075559788512835130459845528488372550534896382399352221692988302198016585965493124806837226355932679288517854502844022774385421022824903257802006948502771621276658064074604429517541349195216416007268506509260553378969477239657905046156503155459208379994119840476532811317656807672295290445459270405464030152877727758048106763492931713408510492076753599728629661461574202205665376469826431705138047340697798725308838911494385723374011860751602326020277648969076985433651473082274338827386951010998336700241287274135655037274059472365654477713997966851359316212343375448519031485673455418147535135182424172091180146858472080007308621447476065238130235257835874553018252817171711710157188625667126334237252205700504060984678544837881763581089485331159715402070423036145258205903852945330542155252975305584538191675321875285985162149013277190243163816948610681737721890294290125725579859906840196863164102122468319858531123235674819459361027965505189393145024875180749481773011093419470168270823899002614707023616438777660809420410490544686354854931223059337810243308951270822735314405716559471103230057059511695880954772339318403390277679879115924803956898502261152754441583206187651402222240295020545592180949270457669334725968576237879245297815607873432119742939583967519538975938148769882506253853587776627245075469024658101554299890480700892583117131706379504452688406127388759015841426541704756075230303751432087335620825928501782643087751609267898200013906135058713765924623321904044400554109423982679058978851396895472549226221373349911785642804983756096681418400488487301230012967107477843606612372854182038664763498274477151988143054919116695856174102334354330615424962011709544756197361924031036675834434946443789413681064445016877645049456346504212728487310476953087098836886462498095544942602418712265798457857393089753922307392261439439636121271469414102294397633115598610765038233708498560867410130447340182701469963205324803216226121987227610630829673595235441052783788921299761775191177644658816080006533711913612967243442822691252663909254124474502109260655137241734198917675571505885963575987934901975387835636583676972678635685225828331630974741234812530740737330736099981942622874044345496507472949046334179656468706173839840912938593528182259758821437180529132954476578458605735390777052557939379718904462533204896389601877384690720118531325030770410692441865580931304645448265760356208974908724847423742284482135479488346527934005403544959325684721777409799057363958669752860814798102541407774982438217671567747866141164839811237947910156643580485727836710916008624198857550801322817538435956841117037265611471412396518788996972551637227932924602844057676992513618158795799644275532373023942043837804372339589586546249995751967425755211975818729509354106755159398293735216111543330131012183976061973936394762521920334177903990060331973682839582532446271685916873550226125859685599729332863486247873641500241311183832452022318901297556449547327952276210212396122134639031589156594645651700289311511158389958408912067964728530331889813763885875551077868861333633107547070227414185003621313103618404069531688051788954727849200942304204927128671316446697008507271020184636168748565889704106595554146269828792641780835933427257026520321809507075467449845944701356078654784516045953910697487692989741555231339644226455013663821665177872426309741786419945152246172097570808250051080585444704689829955293249443550705417285826429140409671456562212437090040957921667065111650087606460712737624337342121490825824689860380996441761846186895725645027354022383309554251042631333567523240193575126951277902990185958162552060525214117013524291933540468592101294144282545168976912095144362806394571488339827088168429555823523997311391793200953249517894566551088423977993182410869900116841785646686517217466507628435676337421560961642202612016123946825964045066217456434945832737806666105197524818716940624666096953095998069552673001167659976884037286730877401446617892763822466663334643900955097472523039426505404253089322801467753464312036105577943955244802514122318482159882620282596442599676198673965706586759181830773365592664915160667787910518987061588763190190720079994200112106072735266358175971412418240623669253765558684412026756805598176572566653320702020646865755110215742537550222470215179259933433025413456054894268263333145490244879715067277202822172558677156578785820508202525169401143595156374516526085749945950254343895277680035202647174090868924235145190894005309718516472345231735069261726688782671710636881738815788977960606314521838587786937087345400949666930033601358690265404270972706236004922922960813108638206236323715774677794157974024845327980824506390531347424450067984508355944807447699454159064394994757758726516717935427424970063196369643002922921052006715676139666118666282972937070798756068033654490554561740688043289759474433421552786985629732675766550537150291851371028463577069808273292325315020069118524273928744434946479382134963980061297808877562450499884553724038777023483099986083669998597567371069588862719146919419127320725707237735409093396664698829670378624623737274209732267387420595759808038762884316026975687714125814041835504974905949157995458652389391947426393251510918585569028943934695055730662596922656891607158185372366504716729409615730253521266005391217014513006220147025234934752604767416395906592571439761965447529932137296948672195202149642097569036851637393453051817834665738670953487951817295144912534840810740265698499394368008221259955976542132573523210384548695784363121125946193267220530900461494570508252763889698135101866611653971424046471743586551962913593583097910766792045933654106085382238026484135718729933802334298566515085026493403528071971559107947453900655170462817624670445583225627175218522559573545994977831407876771537925365661054789768534627439961306114151121325484661226606187887357160281232267471819215288885232636692103465648731619654229853621820457262354214774989786121339790253374734461400680639725892397879440850999372207440009087448070638659710241462276305122906200854961907135837995614829456903510351983422873157559342624846616151894549455820226796244350437122986679009431815690041692088397260312689396895661931218331978278421422590552214017516803769564907433894187159321756849292623543937385981853380713205168163095141994590096949793635458948083285476601328829414442251144496819927301537505466458433635982893646600365783191724328503900181821484876169414576289615383821887018908634120938564274859368741494468758271034517414920043195672986784139788847866490459915696128819136181074809499104157089774012628151012428614528658029810660904552504993859879190419761208419786987603925277597827074501134830610350182787929659913628517527234790320197344731472927096222159394243478143522627476273076771046968400171002240388529506724100516676352123764817200521106794465995622334918739874839548348234989688052309347075874773852328779247981278969176313445179337299712744562486095766732938255681864466364069969891268981260058690700832097601651670268196378878976048909972305571713383754649996240687238556948750689382957632589380245411532991570397964223023995456095444641113913610068815867318468782651016965700492283458251394046551531701970764562386182388079371316652090786253108115336266894270612201072180413764483243032874773141202406831292014523261195403727015190784869701521814381043544416171734139163184856547376681110702204510818209221280723044332929124638244336301743384828584233796212323477117793895616687237809242519081296027936424193628184978940990208983798935830032421390456267126734572816186366589306248014609505597734735455475013960217321654009672066629058398180613168867003818705937810638577436786333720595575184276947583277737591946313984272439363341883763108346449957563529327167504171689698821650648076245182062500282624495681042643032003879171181952919853127293670417047963158380327936547393985720855719203508665755140200421477023483038942690321243250025885991088394181164977213846164129418551761714491426912930035970798317276148586325016182854608620417914485392820640005454345597304158211690285985682984105046028612965083285080329967865104009564866486715903371933467719435089106573149067803956388885663612016005080592174513792463278386657344728628630300772975950475166045455024070288306280403513821685257306341494387068515956395936526814496968956145643864880494504349902255671166299639240221440997689487087567143239035514135952103724444184630798541682190450433896572464021425704495356264549536622565006669676084609370648251274348110134672734254564797558057397505931248354876371580056028471346601081062546627223334637334300500962105194636726949047877374912405420699887579742215888796838517732140620987118277431576241817184786926790041558750712143360108540013604361432328953020957235932067141561107143192719926785585741575942577061464945560999552401001930588972927266859001528748754661687092245613133185130601755513126079433440230922953790737663312258599042090094672267025987079927761599000093177665316152880441622694279216897629844246270863622109109337598489471706839509563496973385583582608131695676215749333254707734883220480079033943623108085790529491724423069011301113657174136729203130587855510503963109453503095221831273860990957941887643454221717416334189863639996611498715778121954640797755758884640393707719346908708896553691240003065009689491981091005297743884906312509027378560467762377215785558704459976121164161457160770936075465174259953259347107577544350275053673134131142151523230609938392536913858845846558330032898178374008181875071523080620031300454021126086877452821080171408020902501930290419083589932918659384528904001849643714227675921289134926886256681137754936731032226742009339229503286051501899317271026717013773777478068198009204028077860055452148757552940990287324819401361081942819047068911402214252697418104653514550508388226513919453075548978080755424456969321967110057185216386481598098726793316643902652257138191309347363125697892011053960924282364559170477285341811402639321945703406017953885618436295894606499456445688453426027860512631252170082588193829703044573855441338836030806528570328465127168521244423818341420177836794370139479093114348142548590855307278829484508694993548598541270444596159546603704388620071446618750901304265565906955857280800743670206816972183517827428721289020080906963400377708914519012839377467133973961926386530477067933956051927051067233103095457799612520590960694524297506304559113186669483136425894524432357549796774123976479466881595764173556869836143273170029032516182522700301594928061770511192589115371291244823755245716964726765394474861099524151956147059698872141015158023390123976108308821991174043223560089117920848630590733880298527747675353225516124283673769791800544347117232334520091246908002164559179524174267829385153189306909293266152425660581889441967434345602270972736034266266329333246014706048098467787081593935428210034280781254081067559310696473929482628470575181243028841326539597258741196455016333253050253835029146861461617478562135574543855998553680934633421813599249185751302585476037030128817609364336840782904664397907426065788987507023293640931022141217467165138024069970543498582023490259398886424818555265539252371956812717507018421247914249290170321470072433570159701211974487005523405020773257002803879932970475431199312365706828079352381774539205343288988952572992427613045454271943173332990649970258987641848916768285408306110462093412217198671315768641615499427653840991595606909531383155030909201694561334541757847585206333120435801758720939485541655086915180687797962382252155342503221388405441873046959976877030507895243773194169115998882052250499782940659475345765115910078716398541561345674308091611313796333698178855867174134141356243360054479387451164962843139861949809060093983230900905816829472262572150135372388793937812208630799023509730205123922445632890228249256304137496585581848651373084934149243570868485513515979990250324610602027229093888538026136311393995424616487801827937536625047070069147397331706904684960315105523973517573203926741539102731896767712009063887288853686993320520755687583756360334750874156441760108166730291986084000880336302870869009968174858489321846010870585866824863718443892276655245767941640438831832423498299037654083476895377032201866803971010714390473868140216052675692484727846834316099842965527207485798372176959787756696581676226551426313885150002946377810099539994842875854419469434726493416512779383086266490588500813227680500758654917845129274926312820890220215326064985899909536153454281456664988465333547576205127922400784030658817931734969138541903079287141161890473576602465080183933538917106311012728666716349829624232894114833103132790658173291967664948500767681292699353879927682147460592952748874993037262597929616656587786392486389524151174329486217752054176175690931085588896847349420932366556977131768140125012422684648222875042923183691357959693299791724995186218684412960786469602898212005892930988387738155201175651141999527970941143788174944968213742860156220391799236686004854434589078533611910302737808989335252475535230843824586775662195604492847962994679277213543589298818802176678337477151236574265094427787880433505747474062378022590084941118842138292445821448733465919015912051790547767703712304249172116265913399037622083284442738767047837414547232187942331243607588488882771504586154351093900264360168299280319750680936647066620320555241631028984503825462115957876475673027526869291596696185496190444040446621995372898241096177079883660888876546481266345383532784505254198618337678646150550393790260681921141972384146128642458433235290322236090527775500471229851229503446288390556997598172060389161123806013131810512249432835957733063863092598511034722394645740862665314900012903665041569681910232979697698472908632298673625985784801676225265108112016335490215471442937431141975634586560157182991448118612687718340062387854843797865178568291243295398814162375448566863077376610374632358682132756653148544645068201254845359273609361862647661962319918335391473171858222985701711167198114321090854434250995031766794195448597299778958568412400787726618629144166398690080112196831336509690388607660128461596797832925880349042063398827207906992806790336473776817406000584415438581555772772295649752568643868949261549289242281103450161202814786213506165074631824647369975188202096435878027594649183662978213194771411452163821127477858521073676592391306086899850625921114152889719327870137825427134275634294807801331659762642872460027307094590110964339848745855569740924598089885435454313053664774919881506892897687779052390542681934357738634441513341862757636310330922195956203215290961611153685739850246058647010516677093232103064901091218555140080216601473625469990757789341667924480798967324179992503579728065637862421429843419725017884357176949576992398474525137124601847069314815508299698961172058217191105416766532433095673499951532031878452325761328623158175219882963020982287494311476536039937261066354950778158188580305550542662451793842510847262774840941625543412354383260941951590947168093052618580653810494509778588082214107635639475580905772471530722819487355835346543575188735512400918724641670434708737158493158821548434544930428082014655351469522808478305357196952737532379168519497296531354042949046604782885591851482763239489953795565249201148969394451505727001755906804999040650039473642420505467130050192262591364234739587949647039384936419098098530512191621558370045577310419662662507783512441077625625285738988589660214128348956074093254651181353243587604095375521215643364986047106280265202770977319515535396436757051151166928929792201097165623859632518175615932409773122534533106080717911505072302717148271801468963237829891120610276527178988163345417514441473064365430351731621308486764036914376844320016555987766873301871634534011417135689071831702710641445210584948829911531164976126784909397348106854900394978740356320605030736273570324159687089620643717065436397290469122216716427888535343372115831471982402305671616657769170178204752905773443970412847349545208960185542153136280719740786321231653978301297526012731126414407421906106695505259866813551495083840347231036870312555137259384585149927005013275934627774401011186284255256816329808614988780665529754260860424160682983073381812311614969179314060777202474205425282522310772705986412611941417314411684087279215303951794379325038950350379516997925183962279012532046316109716981397061452327226279366007086271394457758796426229914497922545209960976664477076992153613686025238118919227869145484714553128960400300537363318196033294140686543742207734030046033858962622624914352407456457049225044993493360293930875293349273129600917095224860995537482710547859161005138392047644788797683638846571330509329165820640169469425752029600556619578019276742934566777291559536990206106989865429553785598799106190704558262023852154327303194037729871845191269514943207628695325951711510077776832820274969017179256898545675956507417512128762396724736951674199195036110049467991355288402269400931838195646088131692112649656237413831682406239087055671539739714323181967293239689263514314925312245436289062441606585396768823576764744363980140572614259822342561074243161625488636718123532868778190505930069407512921348443987792577627269635445371307224686145131563149621020138838593714401889477921529277658454377345516343893371988738468811105486723356932794005440921219609343490675983897554524805054520800498152749200747877396284199965065331282696188677043348063691780799646256857245519628823197948748965577021479642894521512883360158751915953810370850639797299735689690584007788429708992608484570355183157900890348637184875416685383234608639198278087861239701947102652931885737214809046707762474014321682502610112667613742170898136751231083191764166934869984892029180277851355815010066744310597343833944735567725117836458046464615451179110351240934984918551593866892665938136961130354024067298961219762427109325385869446359423002541753321565657250243603303884613932993937865959279678964044588046078153059477510151153662454418898329892357775660931477161612821804669206134459799293679366502420179666922897975373073644818898314668245552307321257581535039488127264115042317215482443561244182528835003580332786706813879504627906870490116712376071643339855591302403429998614177471692672868803266255752108847842167745295910245506769303041791375245768802523589809748645024641887666375395553662635915381640596219825235870966413773128739336765790120030073059184096338208230332082989535349363242614029014846162918618765224111053776952694561212046187074312341950219314483236383088200275662986843078418065621236090959500784650336417548080985021354733949247758495304548113702074026329982580740968256127916348588516591447588799029213724484727064461190992366647575211498364865867032110956454715787915092174702627243733696974862807417258185141822083551705270634850960040443068436635163061826437466064575132657060745205037211201515169934911278392933911922239625437654470861056645742725569231465185535254260011608321678794429779424962733813576864466943336000352414466490076798700131560263492047563503495247919804282222185278059569305249902499544309392692436127643824686114268197818083502056125433725145086928036505350298432622855506042603199315127938741173186218796986997634477503886909806836040445743722862880570942919176933948988765809838737972692322359662338596934965123374347476991436318677827011482214016647547365610392372750417481769037539367334032467534153627730115501020934272183689094155910864400019096530153954101206901250603932269901811547829502282032233294005183868364508051319548143727208064375319322296989123492481038512843617560207402226558285085119469948842512588869691454581592065654877912337542707098451747937039956902676262014075064802750327238065670591321708276986091864294475068937683826645445595483089486043222574579380028503186276579406961473162813569174441598027998154355924068114906680946709929845745987015484908759246053742290640373604467742854060157617053258755713356838165740712642593248051691370447735683718307120813930352821429444752842340289752259179215160740108042365426285710974864466763571440820724008145338160923262035279814699967495723236578267332151091118022636939916018147122972023804757483953564553196945408002264803425552680905758206112444701757716058269257018514413944688490536072043610096757212802724052092407023610606881871382476516361742619133977634561383181365012560911047663183377228720637361595456472374147479748983593518162651437669712003413553498946837084893797073850247600099115866174299161707233784893531177170771523957767403083393142305027292630631081042705651302864846625392029885328796316776230382299372472723880411875447697652523507829505615255394759405824782421806718582457046994077394984720663856205573233445674345660458467837742136922589073101855995841068834622503523537285349633195283706250942507435769974970270940557470466452197625361417966624442726676941893039066763428592300481524452242616811331737586327837868816210475915372589759668696449761422483711943749040865602550072198935026501581634673688465128770645542516610782885603189699988712664514684102144023197710582414979704392461266044192411406014683381161227422683156905412471528979914645095229662708568750127019267255965001945006916129066968028104475181942920255115474942487044026311887545744761001847912781865817399769271808100072896030848986046186828198563094241216763161362377677140562319461133832807424184950534616861101946043825319309771091525917360055343997313331358495010172895471849523179065662509850461746655778631488754586238720261021948232428776529863852290042526197180670425411725622360716426397078220485985941679523608528176873427739588308286910563310694866236095435055657512165149437263006997225056783022119128655012714654870841402252231531492234972279913537730659669599987503999378094473319066011037812350903890182325624306344965758147445278618545597362470063194037452134728981215269724781091285565225379634737388716712603299306854888601973640271698272591095319240765555888445081578552458411120444902903906954239128488425190422455883711708881627507461479762461892356065008179349477174290701238979878078260513526899268946984190538146261633059002447047158765503659501789390765814137676873725130567749814493853929421667828202557790417326560583229354948341906586009289610296466835781552964213921040593275954060609438266703172696383204133354946796977004183978543420467663215551948448288322549765308078591060301208650554060421133904013268842948309089884588743023082279930235928547835225057184910638128647645484551718099077317901470588004829206201504420678453977177419080201536681607525503143738279526708376124320491056234625768962891943526661089801395624502095181504319982340874321131710690616824017871112267136596663979201019817042745866640368977328273278348243542726509771604318041922523094412988844697310834738963673810901908995267189971939214510581108127185468163701550958255167071240642993414766701611503554414411940419582917734851071121256629790986199999965408495170439003689220010422670786945797231969235850631157086938459696184203014505515025901205108263937039974365498806197037417392191444694165141066360794569748449348475390392813867458211830106675154318404846896924682619593998615716284301396442310954826869903223716447471572749363231844074298195398577995614759229840174404851530417667978490063699426936600028449797977855540260511213052349557370626758257997143959917885449883310665516236658561233592532718396466182376448297318893329842358259577932171301412178759194159744020763972957153189236882308193647620671477909567490701549850037513461911430984927707707981388188799594802241648658027025107467940943520449531038567766495879317023982510390660214711086158311621260718659900819113993815981019206980002411273504746288966719037907485633214283427400921682054938056270712180828730922649830665752191185346475018501353206064176412271284605585447617394530565607463566864424544627416483755690514120673514060963051264516674894066382992943836543607465061439507049680718268491637095455764248483869268184119121109249066102068846897150766603274505777733430416276371060975197903306329568178425974642628789408783851684559644100851195309785896447266906999984406321867620553034180518629391744063653329261892208563143197809996806570676230534075916158082008243620739323011422382563007167365827710939915226247993252800114545633126956913246900328738993911339924973244800458765877136821489766160972699382570765115866631072108284970496493655241292240445831917028488982071788848543898145129166758790783849620960486036929632914755949803703181397867975528937361373546962761577662962207719051228291742970947233870176534430995784310634795423534880588812316576787070585082465000483245110672533899162314319013052215436791261286621262025252852179121713496924066920955811300699979492303746012845277113877006297076997114380374551150579841110044342089224440516377145076186250542235670399962251975592367737898746431995701613605322911640936095313734900499690129956689795553327110013858417530334611340210845826547510128600048876096829552192847488707229262829045733119856043999005104847076631027859118911246462559319098421987892697851843786795044064658475722817231567695629917575761160720338046529948758793306544871291643075241965092757934624424196266506897994861032792737656200523057566207929201678804962838715115100336495927191879559258750407447539071968649793881976218451758262547895343851334819898095132507765160321893676439357898742571823839567418184453569954531500825421333065170103087325356116106932679093092028699223727854685217016280674759949139149937049278885671675062376624149147062796470717735208527810171673359988482813717960977779529417224263323185183553171673320299763032418776446235417596885902514478222072582219340072183477776081196406213804149820080825012550009417665392880086179177814495916154345772474065195421337087636366824239736563281895322108316245859751661490301895918231994263299559631856193115598539627605496399777597174460475175516976074835627598193572000822977574282776198024974038782608577171258560492946006406109367312789994926913103457645884486149904402084263027036695793074385884431406090143617060154103775886738569297937766457558612399789354000109285744495802229354674987543783097095141012618348548384804302413813376370004543922258537140377144794573585293884581428937200197988013084547818926281222201912046283535069380148197439555846775645883344962791726360825927611248659200599898321840601093554023766309078224916292138475910242411413828352516026253532644356005700708404511931066526906879899667718932492694696883452642730907498638387724052833667812313704553369799919578292321346821376963128635436582250692439130895686867697434334084447519086688325727861767116122078472182469489325323395666988570670246917586069890569450603565549529539705190994928858489455846540610827437356060941258137122948492044740058051873023008837408669294614984427486763031677724627524020154028009234152768917062357140253785087903729355600728645954284973277697539820879610767311348006981447942548620881704667439654872143854519042795790681360431663486317456943277348528810159851090450527895314691234755087156271039172395787928759766722151676242629010745403312129091011224083265176932049796032344774162521682220974991594892033713766094508300343348209442502510800042088057546922120493249141274034291491245380214834116836753841941601953889277033257466327493397056873725448755062214127375046406492136721653694311147483322249806215483161594654439089898309641533069584862785815147703515225514610156485568015514515791718182069357699171875608792646865555988016633582618690698354908083529839286119312665391402712382355315960381577860986824167842882888906935426095107932400386980631122798817199112860052377045295945646679433112929911631026904499920806724716918121994414672327761362922962894963354828582248486035627995208422410591444838335198652172331478016424432466805977368595377413430066551651461749035324251190070249576024735054695376433532523849388045847442279832393927585805953902396893823771283293385537873048442390783705836674196657066165500536645168202374503910749117674459632075945204954674341646346117978453363714430103902256508271911023615932369578312408093209988951551222044702519521768909200457761299388993167263916545073537102374111797467742589229534419022297588846887428396795284431983203184707111946846841412444186749705085618158902163171987758989525771349462047318983190684935059056748665606636149416187281484976653042222244137565176277436844536195895000602498130043450987713762463275355622902259700447693569386717575223737336763902387807508478999304666167525689085346755244694032897011670909700195343921033297006319642674010577008035148829771798020899951155435069771918312921014295000412547369839690092625757617418217285451418090261417937586289984055781829869216488669866311027767601314870574595534063602210493845371086798753552300415084475554328382345340505167636737734435740356769360532775639779430015655396644317292414282220372659382814494564574118958257396763607403875678468919134116457365526844823195071686209998991854740816747696526459352447205019157770113454318960866629832780076951704649374183976247833709791438522418547490359977792730018563503069417517669898828337921384251067140264505840795093431796344345213812045700863478946499632502695806810343693987940006364358499908160484536383345938466846043068215257288582616984964194825384992520628935004069880794079831963839236443883299605818255130768306655909310376848767243320389451282346340701247214637967674435270796736390517498369552055472923054379993992466802982060562655867718365656458262401341613122993110075317943005543075673479011030813373018187461428282709488283728721491596665338305498156675523181861159980493764704670352243891506789090516032939152322736117095440753371603747714232688110538263838872461673616621815178052763810667586619862675771321663375058691996181808885809030453416942522607205174284438592720627563137514729685950742803095197971417263317393680104061066136833861297158511652364564978097390482367021566542483079034459666444977332720654019922894976588505651500314521119049014317705778615282616345558170992060355620562170336671680274327398863218900503710414661592939203416916939732069928176641726073514819548151202908054146724975545371815424014803824880408642797743589891612170354505181704336790744931901216388147668829549428288766084405196380615447100601816760416605967848831453287181420187890959751576296604537901756653150243739237873375877180871097275368939187382870095733925493173497022366675478129783386866172310589523041094067484693935491640219722475147358393798945005430783049328297619362432803192064663919348595931187492120232849767501704144656272937695334614928564790566159838544254520906216522064242643169929850788049603562205892264441183814540887940456152604642646081518100790786253808888459164460749290792014776061791654775036456543063719126897051107129955175798864503225396039477573596160651333709828760989674961481092550416348907172083484913039395856156153788511253058456413850893912516842332977169998426559734568861671652681581744202400647635087836128182161462457641325948035674231361399643436393913410657749005471861745992859391203002466203085594304274032156961815081290853233267827251854624651877808066156335394236175098685775305577260345500424287628816005466348435835950600399040483742325491792279165005443845073652265177248905509237211882508520359061511601291080058326348787823915519188553688458109520277816821133577153943866050679060657587334366500667763995212155672480632609841461142493709846584692378680473652301703196317530467860944697406701975450030747586671247149330060722978454298265922326509871354876302974332536514304271108149700160998187087193133814629764484545952202409628845071163482774899350680761521647309162659576733434014974508877788663280912709006884916752205621356451448350554199154306444803541042761871423250277765444311899113675814256648224546762357352610651197919381145853116206701867530637021097360878225320120185544646738782583791212967315057226991898272029246060901000445464923922695823807702261434629979440345501362860138448170567978194078867018752402454298938292784803208503008468921776878082862044177766867301770171858710422446710121241586685243731768336375743574922209717353839850496265914139177476853263434542002271379751534515291235804892956215632268222240045550198283993360031757198544695120178194983129576144008630412328156550541801608079631629481404942889792516842151297648241816041732667771491529188321821595862113772571777526038535830259431341104031281840309708735307744033193170234083162390284816668614438282059884693113666082217582778330477618575558743387072767926492966776452756343709727152451400396951464729480894427190494422165878796289923198080578982950849044849702744472815094507452714636045491812704068971130947259826384699166909858284463485159645719574745789444078030569803419742265147581880599782099727709997065988629466708851071806388515362808704646023304407120251598840781471319249746053671937097947084746809249429675999239747777201274248256224834207424205379522783077591711853020470906159109668076709677560768368666486313302405564400786020583051395920013363422305560406259550977865826117875070024034614149367203036528048459467371603346158077668739478840905319311591307243303519238826829211733360476563764554735708637300904704840919990453105078103080979122610735496844118065728267630502945319617542780473412220721813553388758185695327243589416277726644519150561198823919773017584364638864658378871929159351096829409773997029127474772683172038758984845969164620740498549151108600918849091590639766055353337304249451463974913939406967815962331132313900119095789784705620482550134281175557040319455983679651476063971480414260589730191943638978862757551897515425366279836398645904175237303638915674362383824400576023669321878385256897351215801981834444124818684527273892114974665005830424684202625064864025418782191399647787844769164152061376928396815195566074409531701703994748672736601894695988293828632300474370013845796836422762887202510115586290890656691360663069899485101816380520896900571336339970135427187849723967099548709141264336984718651136987737348811512512412583717999584834852494121672340104873304918215109222609938976122320524936161608505389819426343103514536904444996358869294552888075162052055478949444034720622572990304307297951148304344028898949576356355002448587462283582061144774727653380499362329080612415452406386788488066034190642382510392065802435391681445326133690309558269124625547377092193942419997367237427964870665573467507064006070702431362344374577410535083062205937499206939694968229570830059215398620203416599376959055913328879786256920925673660924927775094370519399625770714869098747312889527659466767235124208758141018939572185813380477329991292659403760495554824830207878012863593305259979657034333232007305519107967323645177791154535038150642449857830819137960436085325658310504907898016519681113598867584484209456644032472334822748354941456194544641598625123501474492022668858016247484276017798094418670448700246812333177774369756596789072654792944394046910761910347011886314350557388989453763899855589010759476583690185474808022375062452550576359470476174391616344837883575336852910325698715642394667429201428282747163676676396083403322727388870888451103923746783680369230512303497807584975251183105572774486705376659473404247917253573675581937572559628844908011066444167543854722892303330367245085576029869857601107914854416734966385833310448435101802565021023352945476315173229225137998040680350124017179778045795935289355746298891801117923156335080513558896958851594669256881504863637328047836680876883571335909082487423589569225121853432135749969499674489836421458127316999050262158939736992904023185380762305205410977177204729664512654057590236729896110236961465974989670909548921062506495528265961274385259110241012307803149791757107269526728131987179854553178239940885772161453941523730526577673920866810912462629410636258348318586059461246737991187692515733723949855492734735701873595725512682224542016976958607207287746093418219090093926465385638647752874146177299611493925900637453562530308317498843293581281780510432229971122444151120826976816742625912678645277273777527399854556103047251453546760224077180816094532262316977299962731440506393549361430032900037022216250885221870794350300748079667245111706194231601304267219633741434784999771550990774233422365508714741255647628863843831659151499036237458668967214844731356687079939016423811183996217479683216082443595649516901458024925520775767313601173851325863232419886342247342649198000048119723475032561582830809134331665055224443523871600822803540940386921426648110216927954111388181273220199913764643952008020356106747475896884625547624736347420507112698570308417824681153051680155165491291863961412924182699224706991571658001340717513650333188771429214055748695041211592792339261683797587686838947302747896147486167629768582995622801017465451017011215612549413019015860351723464733667168301349924801742251392905122942094455992033492760340894608464033876095367596380190919417586559312873960279125105965404496212151770209578971066552592369719338228226749132290717447358925650461663735632368710651914572979096121731251179784667266882733039105348653073890174282734376189978918962353107670158514245328542510122766969494658077278228726883325844979697522136067768155812497028926894639500869608868383195494444678298739189774437161194666183679609247268190121965220096651025696755742165555970946361738595190190780366799858872628182170016246946517485876367768426787503524781571937121998966093053080712624219283222354740773267012393086411795817216863095007225001190893693402228719767289947999397353924531647369453567492861982424989270153304903134271021709276342769738739232113925619339669052452659504415113860465325500782351435702991116985334758033629877175140771177174788851944534664411224006192657502353519223458839466468109256684514287178930788911276453961615331952857295348172253891310882109529678527558323239774908784784302992996076399516563753250241527677440255373701616484645640922822964031088593240803001299779172288856378191832402936448555886388807617894527205183221848743249559404116098796597795500780653436781789307254435833363761375133944439475567360500726539673839557057289869108471464854866449308394515826876336561904874406604031669596375504753011271929014395905653703653877605734078657708886157043182746844626716483139892178503651685339066600986357363076888441688382954775443114599898586212919408556210033922156850150541167542827227565260203421241131680461090777717851488281624568661561392822567611667606657927573849877797170082637914568844029734731978989499546443502014849629871355330568760015523911554888785372663733050895201435049665495955748951905446427561639047535294440677331928469447188699019290574542106856480378056446100835203211185078631427569981793523481772606139999021956187768844511731979847131276939239648326965924196206881197369127746647911964934760101180206233049519037035353392737948490365478085644168644230019242406321036582454440936315447255172958868388931227514953461465334618042072120853953682070269531936513596057095297338188280092680125227257624289531853466083188936333993767649011922905067931950849304179211758476681451514865141363595918810685432844103958229785922361285721743582920949734668329871415991508134317307965682121316862982332938245065032803655360412466052028972299398709825982858036728071312258147234680247306097281215846146660956820488813351973315256327888635041224551344354837571124705017498444427657589756589702106961979065433567088833126334969088181044138017038741617624335006686777719208811783058754834728087488397619758889549958393803252316480374294734527251955330906735572641064353573141904101732394122602066217118086161065778948110544338033081074045907219638486821219653428577837991739116003949126619890043170728920037083493383835578109373426529524796097333847508909143009254404216281070113180882401725397574402061789438452926697187077704389065194369331293757783854252465942651880892674896891025358275235800553839126907729055413116121229501252999451259646419241014689023227772985986263014193934631621257147533752190691511830923734610748114805655778944123163037387390875423563911111776431126895875770954510938142673900184200904521591909764904380173156131943191595886794040287082309787736953488049298879239133813222290923627522234441059784324590766981744594164806051913976439688665808658539598008559274259299173856296773482587763693105451342802158728863270580279421102762077939889079375802930563468779671016626504118358359376158329190796747362511816249869961349115397467540404644959304089851144361279238038268877470899550411512981824081606641113410159655566144116673716169822124615742410432289792308738159931620145561589067216333971958324683991840699337545287390463048673590901007698707928675506966167208015449592027740821959003184330805012589188260078556504532840850250284143494705947141727129693150317463049520307842524225708254050014470973783926734250909368426165720447203191683342456249720060107222794653505861580725983486880193227569188717646138338416055950729399015889337928300705349806799896860593837736839565628782189039244625160836465318654764207776588475033933473396925669868605266010189593365354387070647939074942249753814593388806830974847564438983739648363220714744962910175865307085561754219820938525728822923380199817050121614427400818455586035476323076760085677793568464582566383813203277408572938779281784535134816354565286074903343950223458450932327521449282462324179241509770536313482147715980518291753301933763538710641626205873693513163979710398168299861029562912060052307017427027795814764884882377774440320808981607659878991720118656161019890384421001503680059860508106021547213020394236570117491222393680726717757578004699710385197085469347063189415301464426684471348862506405352510219080033591874947168162357748419330996435200047848230783473882685236748696252975825110320706680577236910117080857785140778456693119275639848375645278132755586666358708611345655157833345639312797587562982981426966722773369391339574679196052631935355027713130616026332336415585164514419584897276430005244178374539936901267749984216912356368217199687524551848324788192084399576500057383590231827575966262159871928588533859763760064912405656377936972969152229783091314623522569556605256703780411573094910919652955502027983200151342676157856803814744789238182563061032766305989399351347474254797971437687407943084215471919662311648488233100844919477161620651608789852237835871053940263504073552425539291095928708177431821292411181700182931557985979221163102545053795774195773848372466299755202444114787456311823240449794687169767646222116506666383679406180361782991858027578817287425397245845475948745423255066870634633448368787730302039397337592796473744874717793795252150858647717060826349637311348694669638269274314009701370813809445339658963093049965269344711703642866569144221948073657898573692710403942021836153022015616334835827451715233399459913944066791559329326988225049764415702819204968544528143276785532526094212831852508323985687214555393932274489183502962698164468334406986877528990083247335098549799892570549754580202753220077258672011354866819200596655991176992857124020698715715184097546535283188331753634685343807464658341216113705126261134683262188362821761225498597062213078467047950848307834932277156598628900357954505472353094631670176663717739669758173921481944714138493324071173263175025326174718581415388016817070253084181707932944444752734507287833866933254707405198295955365941484160537126646769558307150726732997452353916023191708440345203347067429400226304083066107100599835534874935014753590841199844742372714244693389183732844891542735292006572628123437486304525376356434502333965883804137424923661912170158526057590000894110975648508856591000269030863994330134392091024752120366009078358161342675756571051974806258787167591785557435588655108560098627838114078153333934173232324909025524723995874202502670647590082075316807695633208003021464871944044939691382489320949875208671681540892555523095551660779084444181731584730111625052052683739358837920608385559715768206225160949681073153271520489049310566103556620448141024544171426186396879770598996577663676416173635221152610323411355405905960755082975330403209902591422143927030098523019273600073126754528186227700461991899353127877471309201300276684809811109491340166767683434619325386385132685934119214365488824757439657894443449541137940447894534588870725550449062818238221210442935546087570173022026349153138014763727854061612645202589794394898687787638722529007287753466534645726639212548122886802537202331348883819589673030333427940559097901602157903526567572575783202198746874854187300705349842711857023919150851323222801059337848693537179223273968851228300146458756001297610426247124109839932591023788636600713479921016682649482990816705314951607338183411970709772022840270190202751066639907545975273521764606309829519136844078362682560492505418454025138744623619300947640153080687641425775291865688880396447228734545352744712272409058543434475326359786601857983426357624359213762891069793531106022372926967749306119475782968320227845574783410206896992134944549411081215431922796592193637638378184637321920116451318009792143579583664623313510745911499506918289126615713477894687458312962520312769469336009709935907388654051199172880372965041562266947673771542932628827395413000106365994890720514734462817649094256480888312241074712976691705482444993233329259415899086455428431129036764998345489488614869678957828128221943777778906261515311878383399553139248847232249241683891522705916933207637770663079532416112030392272450978212048439102969725099695028474206693142518250827605148015912357793123182176512525325837809077332207877266911443714937656460705799764922567676797572508654085513993720334244047744050633231157669119534582324670224475666793675686023914217922849134428874586754039532363178985105338901774813969226694752112688985539066176608192738866159028144040367786229529974900650525465316717652656419483236602665592204090667699027061465316054247262786550960227392719618719874175127285199149097908506158046076364432723137789766244643419782890018554877298129715989742625454462707774060277973108505749700972508895478072493102275934059459415251105264807487154859050390435579888016097673583772950076625367789884216774768609669480283740792085277460817412702588036792853085520819355331261111745865168345509435450987849690552661221365387985025206451632265765370688142695289663969272762482498219970494853196116542577250337539697124422582905077641259308175826785013208302091262782038201504674202114308507753287530493502714758104545350670381068128475724416277457479360226745640929607839154136466005590655919269955512109847661802349433914664124185419124302669736032708688607328406137913277870339494350675735177842285395337257229378026729530503018135941358594252433138383404381303721777377549863822394958883781863656342259874040167285820821044431761883881947759326082188164479316330711470955212983307418709348121816002310561685650748569977180621155362001346298211041521328077811107727809615479504898006049371353235561434941582996900836612060955368979684258741431273265544773615027146728063229871320990283670023729254124475226118795609212792207328127394438401024065210615432484663153803847758723954375758361871897198118336281953477356829586797141600558052647757175004586744293306254197238851969945238688215382030796354303958838088038890622126812364371454904955794919013792500448813162169860959558985200489659006873126173227096438333813595302691468914378766420985179473822860122567684529986687945336805524485117486017885988427824317898311404524294186773592470640895053223231842391812406643217850421684350072902989218246622493020760653791666680746764743734114703123846741295932675567176903253774459673490426317021889291302628733939299855410711437197454593149142949392860061983473209483449093795935532002591567750706147194738389982298713203141129618800773927261779281355637834015021882224319257448786371297071330401555962534474764063198355950672598189426645351278982199353247496838057424447891145426792139102803371557360412891140151702118505434331229829453370202511582772398356073901230001955751211345449647197730035103351023968321855819649609153473619277741741067873658384959562358859220832787921960030440978457377470377098225301365422077294225021991103935781408580912809231162227949580152688522171521934953490792035958734037601904809734433820112012107597903656680409577063883691449380638840133873658626186250748601462661486318314831344264986853494837388179208968179084186410310418962328522541797171759786431609023852217766225007982883962586940234105377452672562728549342139199786034895918753897775027249121885023742005910523662725696921462579385105052633123060935894578012470187661188319547797676806278131779457727045548581478426782647782677584165121469376871507099197716245101733247148416211995911887871410521682881383325449933051448635388145575145647542040230702692053804474198539427232875245794527236746068072498795465364718943039153616658596217106918866600409382401920321872415624101169256495419705101757289926220419417210226764361262514403171152626369694853627009090634160033226550099829738966028857481902950236723772347970636798034039631848146679628568248357188668893490731360565968924730389754824972418354633576741268533712794220192508246066802481711417332223717731986099614372851796674988758041714229452283911109556217696400681030516847348377971471713169656855127915691727067750963554467530437912272770636484623251856351456976153348803846546863822928930049752197474191230550754964587412747272031997839525204603696215888110769801501179153864582624935921351252889884829222900611866513366584420235324998485733466800992587380056860793616203240734565876745945221019886268558390265872169690792247058946281694350126824652423193969790762753023500818501348778480159939456420635155249565110285800630202469962974324376251207814369672392650703284328855063717870644709443132196026351194763749267514462787707613503405114624063551236453677481146363840178009748206943668458954264736776445990892322496069140138292968832186826418387270573397377294995200755489036225774768547458188516856094344220801717839611863398766222412447956534918671761140237948442830559632706683800691977680493407200640741963040806609545331350171607886719472939558177879083265603286093883338305732256791338625738009635763149429456227043049186755288168631591897726549309759759561652458250471099192155971570062393989321999813884084703547499359380650665374090446108893257840669402315652564273100452521238929267743818933338579221859464739442747305080601172672898093094350858737048573964357123200891685023032750214117920747124617795322374666950432273379965865048525126754135534568005917015975062332642515981106433067420215710977121977646598651662879459456321858520624465077752290335668725662954752471822901093834356617556397359712107992697144222792275665580673547309784203726309770933313605043440229097571791308706647863025906126976459311823278414236831393445169056076676621356633904165915345361618447293613180634470573413982208508278395425804934102076170106190633734149627791966657827111339979641255141537286112671291319464695330790109442587367418213464342823932348968999831092266736378062682343098544383766301941153157086487111880544379329738505793235573920533900458268895821414343746570570084494429547588355808176220757742548494547806937467533434235752016918621484511095358093340513890328160250148936742264863638042748287321529274086121438625607520289959482669115590132213452818614579380899352739081568205865787346493454048675656529695933364218638090834424356182640860106430825249607403152490194042257487364638608284850258776166272844976166652147442863504057204340779925882706101742923192635115566113842395061763422026466654349047799910090057187194544024638139449708299047611554680806348872153635314546207850217328416735390843527902974445613030958393683789490622932354766064367884518043607670989344571209031654085915973531041313406098885527708503407018376396789168298298020200831697564057824156360121175354385111376124215544206687565277160522082323129959063522836807683688722292121916698801493499292421337407026540952358094111052469906663720205126634542494926893041687572932594235307189990338558955966382168530973560849614859132103415496000699485551971796771466946535851692721138660967894361845822401368480037342767402172223660803339637368229622773271203789255903227249265615622383724141923121236575140519815466711939983074763485879148444321701696253387825485995767272295522768099434140078709180773345421367557659951219299858288909724910954892307157473698572348222998934335625317107911479693195923845592988517093938726314227194854328269686495501374257099174724650102695089499971874910725406650784875809525486736652933086898623508931875782958386925753680378947479650792456098507436599646277699048741797157388687432071635640568352551284421083672313758007566104858735113586510408071550006683569072406294771890422351832923315075862964828646572685444088450565521739636469227742172420418783435714815629163938499760682879285692102022612440866163010514965282030870696609987315582044713733129641775287516118713664076104353171719232887244749550058161205130750827967839273196080320807668405011682324663739348381336383671753174456592096285333967523063754551099798911585674742141488705108367368897802799150693197365389945026930910798875171741446641114681154583836889498942093228782658387964398290873189273628793160327324286674943897070677665508140837133351478131032477229082274871624538119140917104266815494295878554231447822350326054164706087713807830558540803090135966810802311212186829044835395532688479086562627427658769497514400060378208357566289822532887767999779368672813482976619906804477627965036017924601130762693970540803217389982482484176649145109178250204763076879824604504421672048195498432778365912939746461017711669542490659334280385262953393309849474107193921623584177490299166214079786834907662551455249741540679564999769875852618300875551225930804233052784613706684540748902875744037745158278850256921294424347683560247305692194875585691161697135361222278006057183281979147778579261257293101180660087432023414095079475308387070527963152503019369568187814245886045881259255979300156658915332151644320828650521662614608669286012157396160200373922142958789795576114502909942981187790272087922175126866783567630473359553386188059572081127768696059345055114429979013856667652476684443121603853771957691874617684405775679909476497968274364758731933057872306617128253087749837024391883447629661409758539754419782659803526626366267014812575773535896910909350520489184215717356611047924428359259527690614612055315176561949177894359826473610943673194551967950119138114539237678574337072925226342324875216698326506413531011649674900288967726117433149708738358658760591553994027107416087441741475421520250689771500557791225390546062118270648886489318292887798344966744261884209124797346954502457467813455358010567954104533005640291327750152080656148977389491893689285069748578840574213171425774710316242513591918546454783168370304889710136610821953446447909788144766219568504947844410449501754213112968785578645927853470828407479880311761165219974571857417234073486750646285880994812614392132357793726507679705093629991623820240309052222317236037981298046396306212728657049902649806012097894839721542425792524872526851298154695333780176847590534184815030682060637570251967971516452620274155161313913554887052155528073737769258007188455434242709471585478760227744276547490293038942245310741886607501785675535713919231708420510549896012583289020226844100309865230862405302155538126165838611776777337174784826002242866488734950342072733366389832424885074065797856494919030926088719248014476254972189318134288720688251457090774906032320581998534659453279877774246864116917284617068866612457122012810859629581035455925673138968892223128982010195762979562436500581805777970929973409114607354787276984866357849461633514412233984234416810769598622630126595636628165218969544367513264742769539475337970874963281532480844446780821739802948358567119744600090764075321667644855300917731052761836914216614889781460234288700707718484834666572271695281596473488558598131318673884892995934721778984746671767203897019045026951562491551410130621308563001958385107364668811452631449465507706889906611868467832931133219187383625913365216494222241062446139211020463290278678032753899845421578263401391374241900007743505841654573992295090630565161874738402173225934743349363930928935375732483889648096532784870877316021306670380253741634060761885045744437379341609270011536266961676328040342602067622460751238733220672158677979153463855366096905948380234025086289554977469866372710187658525700549816339401092581540486916390998709794031022136616940150473883379324687334196337334798706661649796149729922276712749158246351016428383816318903144632080705718341916909629217897098463407487435642439422854522461528152867243902753911536623188823245065263921034820348087079141972690001608512417599905577456088654626615363379133865446762111074154703720001598851914665300229347633095820323313872188077525536193907933937157970848604717233705679732421975014978433962232627920932450535988313384957848812896890284774305685267358456259100865485434949833896438679448011179505379653021064867087971069407205412275890185670912014960062159512187395801106832123391007462271940521346945822682832940117102272241860689855801104502185284869690683065053758427612058174873803187418387012463426160691395978339467563973505159563571633409795141484871576825774801114465789904620698351593008382247485321660020816640577310041809281948924654286960805775753840209675477874077117199018416356700399923788900254236622995922431122123825858481314101317058283925747704416013704509422844975564715869839417864451460419021758697207441259608984124520322905411370268714457148990624251826496282196536976757744389009997919911145977600052138880688038131713571435191819806930653237164590958484594499332383640003682171760808425992997180963010730433559276639684334497289161234232128175063944963782899394417846640382211338203643112671146710265854727964804129351750174847774804625747406909398162986672966434313189193936349812046122308091451251888840016743535806646954865345236113574118648872335250834846978146541348540007198293027393378252409243553201671139049018397105006766533641213570496126225104110843713975265657872596977108008301201140797976315655987646385016810644118211094627754693840774649376246450784156451657767358816765595192101966727411974403142341525417664807221910727811229901967817441063441104422616360642798378903618827117649870517462260567039732455489782047030969100626845172614397677121942674387133797369321151613400677728757899960198634215899044681841408752354308786435839429028460913063862758498704411047948108090457533825535504993746805085684976917341259414241628952281176942257035215627659383222804237457873886488659220814469875936585682481680449808722536572310541122034201413866171819144022926312844961344640523613516809661063142416177471438649929040697730422291997113119956883817373953642809290461932316038985709652074055520329258163231177862239966401563800360015306497637873751317805817227132301404127705401658222818292774466785700716040464726958176372379392119296889701022835151469648512515504049432154625919131580813103036859711680724939116370555952897437426694759251524545410348048231423109833443640063924964693890259605514014908286097064893245307963397541017725620119925934776501668748052986908859722625300533610998246778362693061971733139716699966277285560416814065806904733239427079928968348159712039349564994048223490501999560477760923200465452921690235179709951483146133067841974511516136679171834999968462710358892230023667431139900845505027115144680364143343007527310151835893027420716229744748924242826458726060086170208390740206391390132706649891104177321464468614176693729552726713493412722117094373889720215606546140662995689584021771560980336716974276150498208450542158286683905148282795013270469174488676306375815790503799259996535885427702233875254570168151889723396630192396383893583247448547018809145181159437269540794421577184990527316271192287023621181938996136330681101907429683662158469751017261712526124807073397851269362174148791471913498235266644084082014457478616307104756508570561299647665765625179352422148535086398162939229941645372582776024940289748623942184254813776930175991952063019068752934624110630648051523031982036375314746328187882878654427828160485959287795256203460314326464045031591098659695874571798097547455366822773631539116077490839183239324793631111048224982585265473415021232322086058571374482477364067411129650313602696920253688276637485117339372460215031383381347170758528684677764096821355653985646339229324391642925892065668999588057140778794426924866792846931761072723247911152550614481096027024869580358680766102088307366464882627155035980926490356479744089708904631607225412991285734596557653400253672478978177512612888554413416661160447362287694388750086676768777242181569477546837855100518457244169054720626350713495297010693905825304728183046645018518654030984283796583148003716019007338106912020123262621473142275456088456847334880447676191875756571661088857559080976141240931275792467887751627977875945429305158532515510430562164684147237805329491468558469670957722673318340296847198160570033229272561636554718975400161883053282108228559301350629965340681012667718273293674281951649560474775878897202816396627215756481440886934843504339828388278639568192119055084549947592902343865776439778893509596784079424781242759045477181864760410779388661908649528473659407609908759839576503624320019820808188741793762479797952961586751682777539360430635168755944281864892163355432361728550432953889751351951593526295276846483926365602450596136081866577782981918166964722182039093286442059744145071818533545673483320102425496880264548864900077735865830206035798597558502254943004726579742234395454072397689884447149276198421009023065253142705702518633747055055812904188294882724964086908055765024555213222052220403782335412057683229043815956273119497870534124085354841968512239521072209198138591761648653596762328295425411278727308909138262462175855315049372794639019005891194047722876434000979646276910837067507519460159622002733592591703326551108412545486299964084911469197433141547900022274070898973434921303617031790769969291642588442899566677867513595090656425880547319308911876740702890155599668899311041703836817984655897474065600603031651174441469508175058418372860581903751823366310156840555426364971071009684824105431979276867589069954963381856034678209270017155563665410706153349690984623964994799555599510876218111226909859004822516587501937089134234484319285695758506429381447709142118408172111633453712386093971214193383260890960241974912862241661527300228202942408767503606735320614905017417447051905192420489753571681085983591180926212408526891521145581014777053043849573388471058653992259506368284051757236665667151290626069618724951635389717623151817776558035127365653722680752851273610540081044071050219258652419175759279643228721905003976553381689759463651732400579427615641755208595750817896170779776316069188643358025327752522827291891955283608485969211848085108086255604341152432703550263542557415252536074480179011851769418544366932431541059672895086959209619712391334735161320662578693087035073917606569925654831717541879625624456381382324646451414243093819907762470112957315065755505096750144667918867386890183410847698266445915644034372330568489082264455267633299351573984019209730207751516512674450720917878451544667915514430034029294073112037706175343521989336006344620356130044956571406050846328067331106048747523417065877791699563328997955134306534775126286890338153275352143795930169639049788254292526936498610639292704992539847467055409037409913372123508580505556912179864780912658119271591167315532581488331712953466903082038498885926196674038985531482781688848173843949417413444074418541057465309410898939705619542116094197767644511422445041206455757538709916463618018881096904724581086036177406837139247821586645572442420316028915041291661303573991527329927665632220926539699392585597768187191945341830118415973961578270058757380352455151159116059237701109441560835595431055685319732573367091625501464444743729865158810037998734804372437824173607175652196451356926937624009121494242825016209583908322595909474511869692562785831970363525110543130697600050574961798125349561987190797311553569784180590600586795664234819971202252663104187771787496794899557842670599681080893592024787033111974150331540925493956036195972321557625618768009503265147453343015327648663703515394861429404104624950823417802303652191040891815812299185708203646647484247593267195286329542122989023663380685914160939756805353489024458203113297752349072364743845123349775045702165889130220028985515930347732177097370475839883797657499893630916162110110180100999032037960036632322420246228004129674864734645019243774807507081620632760943126924590516598340804800259003977649112712808388445295620846687831714982754247666149415469555873486177778762295331028859496928993251395306725383142278045324358016681345922137887615355979311772414047607004342395411549733228445548517013188195141550487304535764626767040295484185997672034601132855124072567269992107646331429053997729643352950182266407896130424701704701356068307370092411301797845154080101651951204372090213631727190669533870658830105691267807585902149483756619662295125245452950365664716239305986100429350057541908507682457084742957639519969126449094018483214631862388095055968072925990906661079021003076314693061083576909354141672467022588652023613486905278432154291976098461693232014912730117266223985486242405909757338715882040837609825864057494362164981812631006924827779989674296453148472021498027031884812414938548938371035486891935388007854619340100389627668334946890682305456986644726199416312376551881064639076516679893138102795214493173852690285837674493021534569792670714233417106149428908422531062846714348730300084570337971740315678804275537844534074383048623980174871089241374852457824470087385462255772024308521698720685638530302015288264992212083073682768269440119374482063115383010803105921073460187520724930439433544879272898409242818803051349338053536988196438970108593292422792604046505028023881012591088869777715955186336222252489378613481225571243603338745533545868651123592526070457784041976315127462826276701561286855972688030922098494595598091244937064415391970912650884770610677819592817982969716605056268798189963492446853729535110629906149035131917229517412454812411094395625211076937513487268007201551043762366514271871825683652106048390665692378441217538014472067344769835057955073794557332736381830984554604891132665753008029761892221907123905534699447891188718369269440328816907526566318933864416215343193372768630548525527551222117777943200989756478951377400549843888737824237573685454806124157780669433490981587780862043676973120216193466472706161016101864687274609828138822303802088164754040214865362590668232821433036145623427588915628149052583115301318386260162733441010803553866764755856471785080115397638165022566461977916623626596083913229758360621110586474909983942862465616300756798498210555342574192795446729173124145991488102246336806991367028107615419082953798527366457561095396657656101116778555588932923443695721227756098212070766606484637379253942060542498382246266162791853101923249587100764484223285836554557052009718788965785976298545884383883545452379899070539652996768444907686135739726912135553177263886633606876053649213986003965365139635785612350643318921159932567178091123830234616629295975833353289809307998490314964228837488348692348557460857897377907151800804073227635504502929921989099267889059330731162923438165123542942780896300791274702237603150921068429626217889299354471414183319559520636047470652686896053892182307902275275826966111119423708333179281030519908895156961084389458891549651143101548953019819233634493770112327327257571272302674530841231531974394014259860639738991325843284486124881158906958837083275228896334960212354011083255914286773909007650348243925170748878197623300925446565757516480000119575486937497721146037675380415821286273655252479997448130793968210627133972589456580339569122292209093613006862257150099701228665929703419696023105757951389475034617536656029466984865477258095200090449950455205456792621323889231222932816235588673320654759032441403990345526496649964084507410949821541002210125623958510441030619472662610034044727125184806470412448589211620048852473068553646322212229641449159554784198822204647655713095770706211919509097009259078138330870571628522148794559890638836552723225517401365068144611348939572335209596453899127550489852653883549337462263708939608988828573141314204120988937205023338402269632117288557528546220406329697041487193623853174289327373126224661997063843115790074156018332492090883272876253297715576873465569710527451148499332802966924893621707000463180543266418633397347902774592905059012024715933646891731201134276461062381105628023789606872926551265087134166529113195171153154299240116301655263726787389261948909061183430369267234361661761193081292416830557503240213672629773109324190537046120776229222096243745900187477709616491337763632952949483333638370978093843282353713028974411200565935673423262113087716336973400419212754878844566246996150064653016581840484492168664860969313178497751234111548490563448343546017741077738606448541488163625467990388433815620436147024679452729183136460597801576003892435536645649325297366671251233578590899348817217580436637245120275989542738955499433603744917622290656166206187656630879616464285016020707537876111600480096750033543150585739667624333632027108539336965772711403778248423820367949411283697163166851078227846272900717457043555244839792554600677858425608589185570952261084927280428679063987864975806186149025270756680565364314749997938763783125866377584843858908926144557710657103555597109779380207981624466915936435707255315635567513494937732098463232590035630854441970487037245390320347861840413087921123631879504254573469661379099643766488614820943589148585896744491562609654151174033649304512342920253498418776497072686620225335908002255543716267963673844739047489413943260107697807081322196625205119409540313395412103176956950545312480678054015692311684195038561274100472846727363420707225251716038533998484441512509602232798871260059918249709606102177776284154334134440781229720071003484587978344958776494540346379530726225889027849957878189753348165792384717642459849692954214964075139801831218298859754431163803709359961722492619124834351452068884053835274901383005147532128231896863631829016465018432376661979924895604529584866502552320188751706711792845482365027344241771563944384630731934679531465530244719686437319684170620044327618166921399436009760633627525219920106822717735141754816355697117619561640932596657436962947270717110522259939974920586233108103329056414366408173492473133952491503390142412283260235448478151621545359474056596864003165918528819107288753547690952200728896095795217748917737356089388918575671085613616453896012114921925813079504908439932305535039669874418532116519957386754371165405549214462190156375437709580284624182784094110672185137080133673889911584846978483932661707499963930499657657102764982965153172364948310607228902188638100688134518275682596676217291983438897640610107180284962258973746739341473652361040270676867192988918899466325688249582177763132663801608503719253884505672783499564553239731180381778829288816421832634769172028496048589112637390339156952865249818699575227611947840732115915255374801873905354613497096904246741811450338224403996498155569573181364357042119041123863006766789125744148588432129960566940825344061472367944786951899372056554550567829543276694478607858495030811820364366705010110055899094278690019206733082701593070854213257322864850471445934853616021626079488948726358245586164582646985478457596972391333521794297305096521550488902045853730049849243626528749188450566390139005671275389824350875329046733545895180752570442808669099759634575367156018190122093691824156297939175940094850518682864482461351867717646328351436887371543099933062099596867252045906733278014063665113628713744817231791974114295039232779768848462515492844201379983672865975753705688593038764572824756247033386210430286503520810374441574341792940300485468042697593970375771063529221892976208114141826848264130294197974643727744820004178148103355088309167688304218592083425383068559750188292101950328003154858550555609858108226065305202403421575306217927011706062463930173815309370856128747454029099435336331275037749438022528166040977839270527967653734305050287719261376012113105007312210371487803250681889059355169891779884924067328349236134160266969516454496789026547569065462285816206434305937809630251564553997128704853067283731397825555011838525773089882161213991438564608889931917456392152429494827071248418932747528302504683823630085642672038704587354988503125275952796799804494683273318107740081554849502397362658536993595441543633277126694719690721380491760333917390100107170449212242789095000319939137562736567542862404288040941266202024452091416916143349377145174204704705911755215539526438328581614708886077753840895677596620658076293524861426460411504802759104411742808862292531180321862030888564111468272280927558298697528127774957670769640866505032002730257156895011557311159308542702704454281458233113821832233384380986193228228055788331186290842257026504057731456443365965300275922481644656525173259057724331786387976579152922834866577797476912299642772035373576909602385361176686202509304959978083820141950366779514641764644644110630603064608512423405460508898905194651089129995674981068668576387196426877481796490739842393458483735972327982545279523912185759023085989367825423116811761742132446140818192169365823132701982512046899829056699131644678326525090741778217689038602573409167302645020010769268787857192176548240113188043660447015595190032866557912217162754461098898575745019516781374930570810056656808369453531382812585289625700459742769545130862339059952150249047967116480290482421613749656757121160755908320076110469227525866652747897190458467646013354271487330124821524683667589513030555466792563466981366721767175147694967877610626415224146692581659637067552437421885353489200719123107778216960052510091635588206173083320674738917841976786170644750439185929446638662931974854263523868422729947242247914229474830974267669124536547548467353981876208934497613099653310344306064918097263811431562942425604749304692598866951971085270225283897511527672454467195282817507785265513769907520055470205446751067362352513638640924034603350375966021185202945540312175684587724929496487370825655188166088625302272232357195081146981592000013982696504297949718417703129243901487319803698826306179951865964080131771474170747197949779733337854092316089188036958261185824782326329157076548135150287796023910325785729000725331048853479287048866780404807749551634630944870577739202635910577394335911977471366053674874825659800295238500653384305933034127367104459353162719490518189963555564281829084456792489243412080206196287157879219685711538788929861102476633662109078062369666035645238191602144090612521816460897347417021863160064417806821384020729768140671219363992524227591108731460016724242391047760256296601279213535667892999970266716899634516527553406467147785353433279047193528542590955237427488977166388668107863486324578848801571249790055248461169391644130933865871464681170586861874624292828741634198005896915047021001980923701785136110540819165664481125688831245364563916162696692518267847340661893226522863021719864775645183325292592132184894870717342481652918444446060301165892644219152507791810056193501777142768076666554249463646340599127974633106972003546075011142625556837734723453658285267223997891040900479122137346198818966141645845733459386755682138166299344870195481906770997796684085966810359655518970560266035391201416980153018676748351585069676856461030266365200398128082698755347122828640044492904508090610878343353061037449849238222522057607965967307961687471377300980428471506398832770137881500774537801057306431082425789258943608246815857350557501561466360282132967080880543567236813938210780794206152685554071357277409236803915083703840721065357697588368878725204350503246849022557628919607475744069430283991886182764891148289543611311106813742686864322797769690805661710581341035135158400997416859207757049703911859005714563708391583304269534791531066008311528799676517725716859912744776569650231383659612149215699584255602007714263244207347477849113129673500337919193992822966780030211421917012923233993413635838100793477404071954062613369124568060291070275900527135181145899255183356666228785234925154431686820284653641175502148024617416156470379431712988857663245877172897811632436691738186822325587305227454029075167790431391078902461200237966385729051801097765167361219806366687987083594814104309542396618691677687333896997806591651453871218549971762901979898101654291907399319578269850426601857725060733097893470052836726918072687652056143568337418183128412011250928514965857467921879634361520590654981279107059066887422241459622985536227218152650994616425801013830588415091952713694409916179229779181565134601489706284057048846915434799179858279774448084956478081639242824521838305777324142037483153092124014139662945801801658948059764223648106346803945502019678181462043168537386912186963454170972392226101882302377545999330848706798280084427117942671041375449157945637205953341612404341557007683748758922103879744035305851611244773736314415418722588508329144272462670367466063210486796980042521640904744898504810102861029040187560125078637599934138011087673203649013063314372350853958461259724050989196118505482676811187899958242080016024853053232604000403447972869771912596090986728439701530600895080137285857648976932668071311822263554031401274189543554849279896599977385736177224909989684138728733341139781320557971271336919771002129592074789327400732130903765632596793967053283544095414250857722400686275293770928106631587910607167258926464917919719807253911567045967729410799966124151150495469246259103478825289627750544460838536528522030403035486635740498575543647954540313144914244718839464061554206643976658544895029857778840007416151178365697119562945143960605675822775309154425774093076346885065091312284083287601841987861287161521150951796618789463257834698872569410960771308466058892305129335154645088593422261204942705746047181428289334528565078713791538159153998303322364624154196585820144959984391651594183862564823311716230087644277123473929529100531627382391571095745837210945345594047308268195825706688346554290068268429207461636275738913770916954746697816812628582913652345337066730757129849258157651946433823012610367224266818217672757559531969171160903509766858282027746254199640152476848922440822196829996171249982385935312788095243010694995514212846235983978173857727059813738103791787842429506966487763252120064741414574283119467731429036037799619116003196557960033703038481352616118808866436428251308166873049682861848166983866760950243459641250326378202873545514817400047520785763777536949470619383627442063169019629157025349634343652395542399855106702829866239895975293886497412540775807609705619839727224937100119341752691009613500360459658998448606536772497822390021722979856737011593635779401761093142625130783637433557823924307339753217146814712234766668587723555484671290414062937699310579378548094757585530909742413787088006127616284031812678768148603229243460004256692679840913943974136903241786267935681802440120920396553394426962635990507881807228298604052573587828156455874370902416392852823590460502012081589074751109852000462963504111086986146271048966621857493281723980711516597298070182203122338627834111009608826395896171402880650996430484326928379204652599632370916835068055986255491393630349075975801075502517924562332985479099877233747329305497324178450063271248109501968013789634654252635718517968097343384811547463560735146890759280132001510678435395862564223214955464140504258707292766314329512625510827913976919208291257402752432091201265717999584479027683692499840170318527429806482116749622365161804972592597979104587121363629312874048354417071490228671178937261312868210776997448907881910128478355947397179848960339954748725788388887748926362824599556174332588160082858676368395049551635860360464903315269883370010188764586785214826145553573909349749430409868515864410148048793429551401417019516357035698645946751335622664782114649195332350934899135202032388076230119465265101543225435530060033285880663393824237207284537196969562828593466077356641345291546136748144286074382877352295870191330338878193952174336887415531246544794417549192300956079633622519171266975514151716994394832721815664927457960247753808089447557875760938143832378546318490605382914564068063053136646301870742164724912882402199812338296959730180046213832723369136345268250573390715124354018102030281989726088876095496806223162190751571652031648435358878794906331053472293181115490552252163038508088910979906727910856611243111133400076870825474348070738885038206200010056473569208070901135764306021704418770539055721883323026952778346692991921556497947430241410650520838302155018009161660586102465049239431076390133627121746092204161107834748276627421887483981803246302465621832297920563666099885117999166006346008056739074594726236460136804424255155640866251785614821268895688421552170081998259689459685225248197252096278964069587666467704431659588726435072427937939603573211586442725239383626289079394769724168835851387589419080230190392306627540444373019946959276759678776156824682480673695109757375976742978168596659353814661918261104838193685401169209317253540155538691869117193592988299393115449551449827753615894280311808594252706390280840928004982736999817664677978265824420413350402379851470675938200193512404488010842817434514960426695642125936974640877081862655111497580279351159539616426346587320691075332180994058658213431656508891474338152307439094656121808325365806419395652467340431434629195523545195333134384359342463096534989806714271437344892758586247308588817443755525769253913684720950720226663796528478625220972700906679103347971355460151745456507181501641143350786501824685142902317662367383765458377750726350498783702461583229770244446961135482414830509517310039290159927829354235647589999610398166920640814525661940123154940620197228075434844956775342027689159425105126692303485581409919399096111670373981139009746002892452923684300912915129176388433854203128298170537526050986095189777197126697081775415113947318485991453889410291644655121741944085836778979044938265512852785521788000349369724132559480562565989378988161952617825750748072974370203293728993393882169580918777517329803506617849544599187947399401223697704091403243271744269145320675636386350353801577395842590001234120290618676313480742277956075324361667612285995470183218516193936996839663743164672353093338286886801699877672513383839041060124984243766216489680986987976780157917718716511216965308396494232088193610922680982870465879283353582285499121898815025691411907246441764849900079830563096452794840838934058103135672474397963637736556557504440161517786487291521278015868777869739656539207370393256612356547206625422210336358757627613247034553707873910338904154055900606525795169331939639102376479104056278846004750987798247752383940380367115398746565537382690488184186906830131280662794807576581405545979262950499049881097665655908105579184446060898934805342104142939860873390429807241377762895216847809334940587363485070954585284689503390724311474741928228683965745504774378114513522060849700476314315594460863902608690012553259582780408763186915901359062505626110410664644765276097408577095346217827444356250322646630641023640873288257491737537782669233901357927242160227330506282755081059751675425860528041793477490924813389944153230477628757782082711767305402279207824488186149463542071526573046908033743934318145911877987976427189251721617475750973833817076481162877232862146409908920290480083339592881112930395455793227488127714034968056655703236194706942801512189829808255937055314550865451928671426297492944171735122191159123047757789427411185151802329748123148105887813656953431176426581691950116272589490316038662904762877602385262836154274713669928088300881287990058713376396216496265072022256158509765664246599397048671047784768527483892132993640788106992680099971566898368136202688884582597255176678132289605091948732906435335297394043810494965679476905237767379903783176589434388347737810915667588203781439472928821607116534141118740853008864144245388251847167872422420840502007310924755982269884515944922693321448213960012064502739109195836563216361074444663151046057744828462163445117703848519044186547052767198050116666988972569843796587723888574405795683703085742880052360777683347726629618244237873659732013875602246549864562152118057315839767069843719279217253071312866438728856908993723055867050125153378969970212688533489796855896535732466950124357800161267780842690505225456751804102569174749300057016653705838627410562627960131059620188011052375567665900511922443659993116395880927523306249467071806535068545468640462401194636528480845087632706135601288769307763700663053303966349664506591602729545859010572762291630973816106422656363285582715726613445775723277926784722005139540474788155645908190764845098568760906350855893982214729455156331733148266326865464511496785499398145781414512971701476354983354932343004907227925426923688348133283633927953050117907310475439647219115851818152372945561764845006465144250797760042600819237643942609600174500273320621150119417208944743981836597552833270823329825498695354849446563536822138325393089224254924331407801888958791857969122972730227507225894699058966695337656064645323043383192845159385573456622201401448560448494845483104606704195364715392483633854189892111747731335372050996340699172122921131160151441267793766775327232673126366873269853044712830606546745021459085855299737417087869569157868244611020506302120542395649281104239063551758923535130256646032821958076756663125043908678734521705921893445823110788408308006206698497972559806953334846478004554562484423569117006534500617316185971615534709677575541062120779935664666394577362002009466910532932731730903549522917613440479516500800549948173778914162264128266561609558297423759981629059945693534684762691177017981137782490306129093796921568411494326795999034872539303187907870778694111467891162833980991623712266936517544089750809240440059738092580797670324460792960499511651601150975157055773837777972446569961999190049397219626177306650264299238043713507037856295668672868230804020642018992502310365650585147144317305715276079288790115646310944244395110149793447920425930862886948518945658625154871205643873079924653931288817734847034925784747760264013041332663105836692910135014840995504452243038701107509161530785645862081660842437809612055223439423635614196045017793363349503088225887292192737758196183523580414719301288968749420139052088921774379616017334506772609307754362960656631728848761189541149537486229516880448109699672347185642616798811784913164276290571218427186932558961104602127086408618815638952520630825731704656493327027957912589161816310819820831251699442966679190517425349443047307020004581605410987294055028859967107316900981044438790658433512448953078081012451312242554733006320899423092443178804021305319528002585543840151609814730763745230883697524119054579952271973602089747168792383840732740311563388798083355976381523597993772475597870787631654449184595932025992674653491225138734359941976481689332126234146920073174014070262962955448505211665691877154113397620710579180595454862818096461141779214190268432087466403834926314162366385300874825106540094307936267526813797339580717310128802700248725020967007772559795245759616509230473609701661307580426403554778327508343630149688703287735045893487129159121821915537563905045926823251717999156456837499154477634067715725306669138517995866124082093701755770946863710213605393053272864473688802951799300112165307724914544901039941930140662917600328632808256715196875408887992928907984765491004240156193451975008072377337093956315702339734947025851000172885711770962627838125064099521423486261054165997882175488003897497131280358194946436982027609159975177065626437132730033549268353060023220848693903316075473187636172059350752270872345501706157919749393477245205812818061169893669817018709933001669153403608034166314284594926068102067056027255988260504012883080899319482835084440128234586732781640927165587298234087140066772661684317429377842225380505012880016272326236845438139698211226708669373440961523591442243428136590245800993898812629821586129040475754079199245875164954417225321113014593023906673635718472484771106087258129117204862152797607286363526670641499869040936585796763570836620403510233726753436927364527501421342945994792209262695753395011628969082500699267170517345697847228915819355798817679199756381484137058242853825476630009831001140367506952566469292540252473429977007207982402412945999007411278563469204635445608687909334307101734441926107958947501029536361508067764091355971672456157341766504623671628272813569478354071815007011844085257289607574759299734312567269741015368309429364443937935603052016318373432672150476774176785825373262465515830029048090699566572905015214110195303926431262673024072735552498588271298712594536904887932076919156210714192299119484078476566768554542336024325651430675324222928161803414098291191323588889776696362089516069877557016761627891910135460155136072234297808664281455955362421956585300311259364292479905774338606889455331232882126859536285410510748251194377402826685665564038371631561152123548726109348029160947003022858179031683274535950724301229818851056509167189753703483668614467973882228057261248986865750817168530508906132528082307987164532128365182973820432954791372616580321934622576861298010687893779724272632388283736048799532172662603440775042638159412831771695238103418634530816460091704822681661113009478721070894340660691163977980687736838324927079118191847773593362771026858586444292962939298639677354139322270688326618926529951822538379436455053810665971356888579833904351024121317176018500758229371496164926145760954331435116910026231284808632315277726133748572012727641814763049625856988694094744340775896293190092595292821689749610758562396316773332456426010125444234665686868236569201582913403817345891486157980932197995157538869878603479130491016602391485875535981753070485757032901634733660685988840813734131651306170172628387441176748674648610923226134342634026945527433150669647962947577340148859950314534011728486990055263326626501426040795036942805614853343649472117966638423670076710277377161738020705622314124647930683839385854908021031047811064198070386252594789187439265985100557423320482329889630329435251127276228326000094432332765885573286252047221761844703014393129768015593384852189692837053595421116685655432906988877703273520768831031709536954767256183660227611658770703324369008761065214418355529640437332638005869598989208312609430500765466702759715283185011022044746321331038116449020566654652622707590273302463068251670697817202053578930451825703576396795194848754192535023022811237477345993406929876693038597748511297136550358047074536734009844174723235252776022267528652312410500254259146215293980552146967285659888303465742787525375342358079352964366688518045326257591222725414058576793517613982289204718172994570211883011513380956712956725569067091691197203029988384137321097186336359349946173440583146851553839621694015075200014249176211607038160890094573598377242923608291634342943884524793926960476568504024807526226880801785386772183476192510695693141525778592346364193558166575324495225913182011141504599684814872093848162050544728049011998952239775490934417252266639230217294787626346882022913289704311902178342358745788499143993490713306596798916608926756336667413884787566999661270989216075381614192136567901942332448500385243495947036827567926138786007525267328548025872215059541179203551885442196338061616846037958836283875032006277119996682354141660649602289986931828242202310213329932722954567917521240687274285675934943265583401776152155426573351610305024226266924546429684478158255020275761945387582983170756079789902042012889186763315655871915820065505803565835548275922896995291244050655672303888254520036215735723404856688679834066959278139044474066925212637140812292399810587270402757077718615476380412889621249680657282726243902476515563308414129674487664509396911175739760497045036098194258848083134036355494056894417994573692752888945326495044727498351817508450020647555544734355425309914886091364197922786876853102119938579532869934661811311045606699423257398048857189379466696780356323541505025767148304015109571638946688894123253500773663972104672163491221684482127216863091012741399107239542647645527850557103901501621466818629659124875176709279626800364434210337382780264539998182288780277423233781308947091532782752044044121424482359047836590764608852342776179021321864865205514318378976574169719263110855450632358489747196793280502759970421776981515243479447816299262382585230529840914687167844976578388520119808455766192996006490017471429670745088391849893345046846076559784992440807772483294824509973582608865253607059781663344771093793281761149171776968375431371752825065314979627008804205071641962261390505921021844341124557922519319796812818323373719338472411363503925301134838662092890762841145729411272664220222631657273839228043106187498337233907922575695770862877117488311807525986677304483432235562330489671391128271176170316483476305707940339313495633189525738859698547756333424594597172216867036222637834572010721856335644743924014350313293679561538075060069429652087126153036899248510749280965427449853248935318796123196058794284232598046107132661266305860466854807636259392899204769939864879467843690308958754454775203560742000661773002778407178382779595450083345821708769766751060481966343999617871403089274896278351622835424970986536788671405282206996957211105107860961065140637701423747629356385657895638800188689526981644636119727073139718059549736607497195955297916530896582833191567480562789974167477429915799129913346873458560252877005393533926887233192574001280197992519143021972258964550612979488752768036244697604515624156403042012118202119772754155640945392369083751802581659477980659269107825308939514626238149297197309456381561552285272565841632623016134621320674206599750810816418042814752504405611743164153185040743323641175201359995062762497511536449370353579625176034843904171434899373175456312617949116904299457260538561730169152317803987738942023677192593023620305764067776551097140012139390765613321329417305653214863934236779289984568563716518565368483820530569219908368206392060610635216635624790123878744676225665165498986503012149672637418212495477645600307585125415448775967241586088452617643407375109561347434557159923168620604039358509877319617933227903815593203879184093753251665848511593909721906432084056445218211577579913945448724103066106890066037429529766083219329034303927725315780306949851216623329824830877267256405149137385219885361955431435306799538006205498149304449834546698663965840805091688944649646733771972035347587393535379179514554816117871210671209833458665443319286548543721024090402120768426361507027686962054405469714156585758444989867346676442174382528830484196902294241098176598646587548831057104022600280598793818372384793456585126894702919372625926176716123225532339515319874134145197927086285022980713320238379300025901566990161072917501874793956521842558501872679142827631519797950045464967166452631699846015181247255399305201099203917395921587034475110563455427015450317879868260785883970632246203285181277173898182529533893766305810023936717016998347320310085095108699157446922037569168361172594242289844634792299240123662884497224285948353930634532482553081185016057914100724334430415051956813513678569696853342095350649784099205847103753697814648539876921611593748598810142570944332072021006359106701789712916006530516377873254739947783807893350106150454383795371368610504626318220175131774513728087928755211280672820337707852635376670548019241366137545645865300312527751644340921535777332058726097268536152650316335663107116893012456734031490487604687731515453479358896801198458186137174018275113522415319475845414978717252645823564550229745006115456387532384229943469821179936291925023961323047097964666033179605497674201811861240403234617955891624032445937662628420708614455531418886984769581112708048747047286663658501796375426728492555952971289172135029218646156447365539767145280223919974468906375442900497554974126340248071366028956797019172284851272215917997062548189062106724613704624713021706209069695412735725768431470941199802912293347718411293651550607493214030548376307255448809042256771464687527614474593257781690173372493341784756068483391450957117069950276398030726304670424564763622980260616616323803526538399707504623809481905792945790447163297011241808878345203104918661938941061161645865993975143569078110678312953829659174481237878653296252746741461077719134017309800815519864942741699352462970024497961030527106332994350115621988622780054602252459388025197297385918917985267963361840303907172649273893418358783659269276222512481089556388375050284328387060649612628543793859574928017428219860578340226743315963638033755232914366379225379381471661153018135735461173060189079214632102188864349324722840924667541589754530753209838594391093122071193283410159817701196522963438060745320098637610126674344956907601490096614348244437954192550084748071194655589218438819451586190901385948370430295453830826042731180122978325229122304450480326702671150377568019079292803825051916951205056274667565573885826217741601117994997909412498350687109555382666469905434735991683491354826917924578101968781924699598533996204861933880234610856994072786114485033199544749826233101964790050975630412990695429872280789974750906049467680475022620183849457566316850459873052536775892031876697368895284419976713611515534583006278918144012363218394434464696431663859967807056640486573390702567606198683251804560973935921675954228236535165972451805075889249563820437683276370488477130409052787190320158589615345770511611315589559324909625626448377263401543849726313710332980321963172102012588197216106285682915308869100178005184211162947953612436115432621963587271217211926508134390641055788025174422223703808755012484409925515507669267195831588506609967665776690049254232666752278345984647800694170461095331354283891712094919857453674016178546484925505985465113488205904576921605247199731922206282713056073774364614070874619142733967961110062295922324785519430468945506836169193552652680785599841984230446075507314233879555100502553256331909721071639268938464448473753382041769209235823872107553198541333308160163859257740207229180982882117455807614361749716408114788411332751843133087470596586730692917307458064494243048015771169994394424943163787477234950996825214744796363066851914254444916971899680707765901337601173501329231440608307676634840059433370864875836716402171769129726788257270712352630968984233612152931493618544920419725707551267379808451423434549360199758257678738744582805728269540450460618732340295283692633267882974502311793758804183411060817408103127839286636019086045229445716559309752622280692736130885088830049452099309407767959139848695077010037002984192403337080949979657289556625994195444033749932853738799866674311639415906273756611338926330622372981745823886030085741981269028833421056817357838091565255161393973947852464494710799538701354814378291876002902186537668269620595849446669863502239622271491323279530353296089629398638557740127866558499403561361550765261985231722709939449897171478895143982072352023448418782266531754548796294324151550266390230727034347157169665608288507210913944742520694312366825510030568103059379014027040420053009146848957505851732904976491809596919300175791384501707519442681795512717556282970717301219863313140422197870405581589287213327596623791079380912636461153656285927801394090322608254421120389770700774340048985353895933357877136359326021570017825553007806145764460134944110816041523881944815951987568989383827700157277268192397097461165958708486677642579638631756841867013281748566037624295442192999378820357506848112400725046663974328557229007269628285418397097223348573067382072556908299256168385559331065423685581436098475842036291554179699208593957360276422275794273942147791607331046900821508203015539204929336577135713668476426157289784523624476596360839018135194918588886568711227241753760458717560810597435988487934087566977449903948852418470189627851193699955687038085037410080684152618527756310073222656485072721874436748130009478197895344088347205938082107788970859494575446152168765912492136748075572706407871119783024441284441895260919189248572567557637329415910069774574985596223125764853512294856566753167243249352590894580321993812859880331823897570948507599889571689991401370727326651449611566743971343406897637854257016098738217429302767011652700377166082431988875139084646505246513684829959702494170335986228120500980702877790723572020097931353980863309358629773857286803345401980114625624389850229564067413308699669707149359813733761191044266397507620447180300483254097983184436400717492765180273579387645068746679307257529412162952854669599104337920056401934954569636577603493106791565239644830484718859204944818792643923917505508292563352514365962220042822338488079475744756096555738068277417084623923037972970192509211341771019838301452109141157854211693929903329292188342155638913309620658156657576104273148926958252939183957412719394559704719293471958430539395545031527641839711156181628200402025327682752872434434110098022454134545632924212632383760284834915744397374352774257595268797889268789380256025602309306519544864404969077758730886564614156026624618139872750706364168344360268469725555568964141143079145131261441651325491405818385028860004834627537178064132692605003586340591506930843838358341632305128200426234496111256586086420310968040747685042253495894277863711369079015078906854730999765554605559138436044731963414087102888845796960066906065467537583387596956504361208683999908981849153730839478441313069827949432194315768179675904465701249300659265742474259309449643968465654317676244780543716785661909443494995724474701650917677349054772076381070156278217247083855090334049100720077270254259446847145183963611457178737978331614523045063484496939148811356848134068667124027499963359968100204246165183596025564830687979668802765383642241881909075896860367968125532922213908845882375825359083655403678500152677949967778608086337022786424891300101924002909652838835968150455844976475348813067369887617592900405704190129876703032396231514929913413077705404802829867613096113292176270784743603890055589944481752151331873631848348158799546604236020330448690588504397637460459209553942065723958411738695246236151001334759613631432329808449834781111229606743223968395589402808856131080331920559517556827937231405462386708469134583202625462632195352393138600204716229456452764838428560078343336073322118230270586001179626001667638383852922936057742744896668114293491573696424310574387913188152634937185385794449876183188037415343266215856781902478030540035433318435508778088377846354761456586799519871638086078581545331532435170981796594912580809916215126571427323408569976367352649943015892580249411579148645947316614062371514637668636890425628388773112290163994749581730981381891475807222117134048942032260119565250115842470646751166269057640417701561438919438326376692718329931890197888387612021624730055362354106475042166640129149432971425296527590379343269383363399988744423922983240720169271700725870096979555797751229885238444139871319517142654253432560234285914606009823682946286256387561381374723500321082676532161091628074847303719807524681334749695171043140447845264687840087217790265180427305257505818185809178108876108020620234939781467575976486687056907833358684109364551028189397171617194247875387958309530265900513401102335328354553800430025500378336912328224249287877634798811608991273565472513374840959167502960444655933184141073719774362092632919516536966902179412342912380755753636195915341828750542763608135227681950041820963059229357157625376753229948078488118894221124380555890063527906162923055202565014483247247226639966013392977916443008483519562354885557179391328877617121110253272918671344806493489990111830715299176465743016960039077501421797669740176923433893614069268836282484601474332395271252597948787901912565141355136633132291814280614814772575874933511622588548934186304600856664647281038412567144090215910712414691936653768025332106068081017541001276704127643565034467187632025931985914176288654444943375627470179377718879075450693462226284381489058949033985026059026390264313696935259966084163042385633115692069176911360053010132181201403132894538736944448127821580918237398685356741306313367497156430511433906070294481933561532746796733593355719284624287784818976894401561660931902683917507264165680737250158588669120226273799389736917372978173318941883587856095436420351044158185642865168757954976385865838573939100879895518006178504929126722736451351276258541255220342386469498647541955330489075774587324444883528078081041774825151813790639537122627440385944371493717613469402241698435877148943666794056570985577226984660038203606660735119967472400158139767577501681886432746655373077078914090040810692786353981130479294892740847773784890485366770684915996355563872233841998287591463294622044527010210654006585234503978084459383697852002408984037619111976342981615621476351156399132540995907880115602170715115214689758808376093038903570934821892543660979741152678766879645185356761406167693531363141228979479372121082394459898948693807035241972586964961748039616862195733845410177267558073771145309394120284312788816986824364487800630217909442681188532327780036707179220064889964479990091794542815634717640639425397112946824745080516218542255463431565902831467426042656970622817911964537037633802228630247217235269249481073834232188479884412841017597746963655575834214046434786548641672149940643119234105625046474958620371824877953299580180420929025880609431558365406321752194850364401967387400701410829098977989644555939033908269321254990918866574789808613830299774904852994350040107878436521721221944268502992869328480249390673900780275930805611233265146343339670349775564589049301613201615751275343872598501429783457868601781535009189724973795393071898615917056120510879743490898024823250275681602378943637068337982992005455638791439040286438690619401118068970875432901783785294097928989464586795078698387347827050972234257911454769018218079372043979638671413937603198327176052147605547340922927964978987354643132364619653637177149816636683474316979709640228568699346079535396381350278545987934356282346037159825334466912007009331352480591996041807303187625334454004929273460486492047418249818938186182624032317545561853811588910832087733265596459200034221550778901722350467134832635829494534814966102250376920986341553491875264693628645400370212894439533925531502707111043829181387732978669421285970786300628669778280389472916992722028958857419573280856920092897515231101718142905581200253280204862206484215195383730858453117085067180988657822181593115777535712385424453762263716075987815194413516972516135900188110677019879424127279660259887914194743982572754381065330697598384553900980908396788525930027807161443696249810770533146836175694874199886241941028554936798788545247747984482042348158626062926516427447165133719526087025695947749428190956797188920376330490239798090422247499445464933268844503182089526835510589405402582816922248440283924909218849446605015467320104901142231158484730338071750090429731710093913404615115543834927078668918679274162810700411300193429173478244691661474137364115002021711850255191767814797355889111670788304209804224051061939484971352562511064445645212381828887028884605304567899773542736189487442056823038120900891874897676056850421651806142940499056812848440950022065571629116739073585731286274543486497594404549266255344733823704193890757020819073905421099873842135066603693383096907790105411518759701164524106720258019549901189156765659841595887797363825348382698603100606894932606501598046896290504436378526413350672574132700362288685097360534137796084331933155473630082099597622538237255612937913546209399138431120909507753528442374229330288765180146627622453086974279174371345913995891340539487699483130529821983650989667295166882747994742565309930009645569855589385470457004038525251153162468424258272297685019042124334233728571340387469068444201099423100210585441364604620820742435163015955765713257710624746324619580802197833869286319132875502079120822296150705012096116708803143019543004015752640398022695905340141515478574367897656648865297126757109927561495150259713465976521321381733489995890952712243140303157635369094167822795538429858054467699310879927771814599751693579778323349055943465801074433401642290980138845756134770718183734926879127702885535352195160830920795489706845956228370770021899620638823535397496182392687542058015204420596422491754273690045787542454402574455319128913494070121831753017780572004047645166598754202017231120829957096725193142422421522929368153233136190376070077110695393505819009858114725649122764643516836229145385013717187593832795131630114643673869766914216164216065603805575051307891893548873966889686343842769499376030345398020182046754718898425064876581885126609190664648448745676937034368232913954890557172371830186460871537391959353939558599281870263274426370072085890362148467143856948538884784168679170300881641726236127241554787174948438116749470830176927498708083528843131677187740342371485214571014811979833283101098092142607343548895820471283204900160284460045318749690149607128861418244148571463740645861611877493938526147174171606597109263862094216463517146662869390332563012985916174413191608356021962141056316736739318466053484143691921219336551388237038785585212256079259307233535930412306974452280367209648380830128118050134581136738429996557420186370068144084636939259437596197859081685072151611599440508967947454532529083799883869019418440232021380195473847454832812854980959485347788201275145797931820067480299072872411080378721873032010608228285003834859711577985087238380394612306176010830945616040861829446144036051855655298642430649384157004555569414436857257594973384730585967304409969345899451079321245859103386136758451337754377422399977159863532648098353547013019768945109081647832672351012452639200625704615941047091373712437041499277800850297265488923573008730987965860348816793595892455116025795054479056848852516898401016045572859435702415572277849872290613980414445144204279448491124545265215256978374220792023617265864627237391018271465408898084664983462459312763318376309113837050850081463489008952721611626895452814859467954975576441454773894250246948264734393755771389178485209047535870973540014550816986607025410224876421339964795944126352914930831713541128228514634907348184809840190342504961796258582086334466130023435108140347802615851435992612370667439809730091059173803865648553609355097709295249628552242577655518963400926010685928935386406778697361517387863022999973525040687195629087203967076344990083431871834753434227194262848749612179112997003202697366947475238619840474428829537559198246477897448695344739248765443436050453635850322161849204307332003215685573916694266705461270125651708986191927571999868839739398937221772277363121205150504413452460363079258112258763571283680236620088147958151669024367632941396117382978415474506494522473352561670235520810571814249886497413232686497161549023306601418387207069360133869764754942697548219239218772679546280806166226662393986276014075632669485524257220891753307353032077451499811491418742055722726202273281585921033501487690732933814088504811292660943510964357484342864781421024891285160268140569088025231484086615533971651126913740795856730887484248516423495494553500275233204716041863200857585654138644389315460822341155450160588577154313477146811444327476961210086872299143495180203769747341673931885529243361274985499775242894663437934042545412068604165825805282624867392299398701391932879702245389105480150012123290674046911576017168423836618355418576328286301200863329848058702918475631073108567440903852176888966553855787500806050305517856289852119237487192711400659638859816002924098619802326887948659842515153112326705379780625258495319616653226923539429038438748360985442142150017825562232250328716247465455821463100193280239256414061129746346883971701701100205442869762324953214869213294438896770995858520041714889262499018477283474621666698421926522338487799885273819881063620517043843925384054570480986694444105553000766038393012348625110606055460764429196803247457225662231577999587775663541342412980637547404718627826615824413960612742780439170827713863551793821081181301836856507081509133779567249614212157628857310822933647772555782688218519021028934129627707467300868618111492632730884938288467061513719207628336870795374274344619522272757170216504274815883005952386922409629321384588294013949186353843014775231976099203424404608147686879258067448659872146075068911934596760288662216766021170673160180126901246509703552885104754286271567044413678243360503518155680033471043563642013237525710025667403348243627318730417329439390488243975120888022209450889253483440156368153188310961416700393985240562065896422116040777561964818234807175876071694854658451235274834040964086570404656150229104172542428960819708239242105780285693866383469049246287920614175150014437661747321895168786155968574444236578504267512959049910868791239365195419480917836676045034847995336228421385732669777591394693691754076189163620962656700779838592537796294951962169700476989866970399634621755847341967264833047730593177996431793304051696405669783466845547100717662737553157243067030220965825047841584885565164148552687433163460621803243913250971223304179592882108496138246340056763910932770284565622132048711335748327847756941045084667057667059479664589794574507417829066161447934340421628233134226532894410733747825253989119845506477790017328674292902798216554240314933096374112462536136752054097778268248191198218541688375984374469699565334554943784112776574572278042883472308121750769926116236663487925630291361135563777964705298654592778964844904920672872279461310530572087888242163398918155645440999488254459270637531231713608481850441431915853921535116949083501834163227712102167192731895355266596414548712181555719749134439120576156966168121862330752285941684288401627942694674717899461451845714913667499542749794769693950700815814607670570271883413527650690580115711529926614993194782533799164325120920817062389607900926162093891774715110957207308387648065948090921286664292193093696747609633744561563336751560697907065157542927556487779406061485599592719086626458423121805866068122431229662004268358637237238883082818512534652802217206449765244543458244314616530266331053351752440668603781177271111975149789189754103252753351147843198134103976461037935096354010663275337142443751461961248561830126386437280451242280021971435945090564899746800051328145459262785032909175365587336078116124077247813904580517401238254284824402157714429329898304435018276152633069590771080637155102553573606834831593694795361232996168183491544335874719933840539017087248186948285530834215796974946401307578894460906108927556451557123600226368586669913773367123946435283991761151656358761097823767448827839619396703054257704395109630174788590250390045625372063357733727076791079171505095005855475088850565566936781834453720916668188295585151184164111140643556726169444673347756484147548845101085781174037728412348818320521180368953186761732872749893270254242142185522630219732195016852523515489974814129203051681022529479558373349522022025725324298439080525354888939609463310948327703964010052913978478193231950371884314580017457135449352017015617371418448663444502729018532855257798858200532170605651330509237034544193330327865223025876954554495795462301895065407737110136183701321123670765028223355542391601744861324525855569299164225559729935538568481507718853912674636419176599601983399963638950882483574780514888398691828016293402035109621432267236065934584816144439152443215407567730188090821248214727865627675738946980442617511742673037354547344817595831979547441411682154371815958209456069525372801007483827697390833007370327954515491528814552959836316417692826579723556582131555306333407418379985232461189550534611749681576253105383924242900938055178451356143922487108238429186868194877018660869051125348911381756085027128647046653441903229591572410132057355770848578316447854578405347242725550398388755604748740656254983007554600973003354055636186310257846943906190514230594759889040398866216519186721085379631213260302974278686461696974304299340486983526038074735641576724093272571845697699678469066287283554573767711512215377716909742334472957856222335815189342293209875643866388431158773582144787520926243236484432590757137700520264021862654106710334684941099126664819802481563814764042063641646638191650820513899275378041193058747531557669881471612099101268334393375455310168472146625038455096451321707700333577020877870826828087739892280677710755192234220504722567680547844879504271168842947767757732791560182377294572107954194431122608050622964491236402681000907448344158534243875640187624470466096680820079600222340767694517144726960878723514885921994867215630716657070956896208359681949147494770593502774900571815386879003468366539524428710841491918789432602274533763827972819405229678221002883173927727270199499796011809489278824681494141136514433063781489200971603590798399615056388969236235961362169501326842052722502170618352255127770168201301172283136237260710053780466072739816786029348117472729899054855583057545429906628308321658400069769530906924184240848796978400871977867095756459366391638677338629472361302509638667956311611204084529536691422894592874982969870547287208949182305995725802320645208176709135184959582822382958073138366094433429208410735744428545977005476638090135976077488809075675934667443716254749934486190559626436179053204045871914444630935377448387674961892476640062794510369671735158280461052600365625687579024681312596872352220820416924200293106951247125043526992139039131071316854779555682413086143402337330035632311174610665322867211455593576954280781308782743268828021760392279436329586921966659933123840925099582704682119192648092249332841654005426804392635568630890358218237546192826733256062106867103910663346203666345974716823483649097345921396743050120017609327270041061245224339167625287189667405913479171847323423793943798642254384614873261321552765989011330487776257503680780470807462544887463205976878669276720348731549942072729878357491811653464953522039951089273840500368735009475615554391223069717512288150565026007395589525998437825663434649071920847779503203303418785574494610350103944223402864428828460329671872845004825310692177327160360575649699757189655573681727954831277851761500208326903120551287576236900004381708137136101792884223621159281154186655359954163481168871712610767509453297372256643032548596434359162940170776823802154195430333169794156589740397117622626746483599681871207551342317404283778120519111053944428692786255444215467311964377224842425328671563179641966779303303799943792836084186703066686791598865117520749127666686413920917898368162859359289251799548114366630828417558074781429311733151681115476016838618380712862663449608775134345913476759516409799884974937577862869000729960130503828341361412456893289666542597317952536691312521438591692699414050944280281505286791607380547323653042456801251438057389066438267515749865250231069953283357691977552722340359711711754483537531126101945929599464136545774510341351296833991774313523891489740080602137690171552349984351406185648396820317260358515802771584826194496567497602333178256266278124251861768863601412882106169993185940607545628121942782613598526261851181467844710640537592987712784966835055993849705120826484730730001391004997182277697453792003838016578050859261114030752876610255929290635988058352530669468765387930198767069363920570311453288772281123700430589436789152403284124864712999938582707295141584666599249002673044757967515564774178417867338847425992639298509990756572675529852956073708542382484743221130839292250694468143990145799462783383597213317687448551724662010012535763665654818790562076716058588826954325406940188877647996563854246125844675257672221830735874785950703464301995701721724486738387087115349066316779732142098720587860436282155222641405458833531443634229458652076689325677929701636424095204037467502002865025745802117043975353897702870519718901759811846304640611772306501446364633395067353182188472626919803551093059703036869628281413168818484050253453907157584898956522628189008423170678629856250038123286023269676783005536791578109443976868921845121835738738538054462199572326793809449665187098486127172979546992132686843552325308802135246069284295008464197341601829955281163112320667339952632152933096113085244366319249521435310714895364997442990918761020696465311546552078885789465336928425698628789720485963292130134959376601372268625847632749664695851412039468344059030996486201613411164822771831541886363393276064992071764781325913114914508094734066210192946078226153487587040140814189333272267521680298428395445708276587780938277725761127883107371766656694781751855485464748042646496222979054933821387216112528487400753261449062272425290202088316366090970936370269105646511971263959375646915096889582888261886434154944860741010807695775659195958652872015181170981092557209902111306857088185168771691303723645616809737993606170927189395962615707864936852698480774550481087354116377892781456689138821895494442877689861684833688939780688642896533107260216071263459430190426862855503943155302456756107328894478180093003419794943818243055949847494686341643998509101945409638196828896213307413320941815237151088370476828757016761180047378281740952444954835593006287086558099874329573506888022408548599189654138124379806099715725612957961027221238287405671670219031467158593173243028050176820559933327278430827341868272899365421252258102763310359914845588367224586313758391752393608933373566215850297743761625832949660221761216439559346044070648702483807411473662184718632972358145432959016902327215003414142146791375948860585549183272050189922792701126284261859845511133017386428710648514198196058101918654451508896882670492816736361379110839487456479411572205378975096999551644870502430911271153986181279655849258231594506701171288362380066720793894028215572696219944659163065428816147825517602755239533895107824608036331953978212363733853387183768853898934831825484582741212047298236881406047459904661281033020172018182760122556400065085520462486623064145824353581596456936114583361572408099460520520004159391336988227995467427737551741751814680157572366674545942436721613321154510537998959695098743710224915255898963180389889824237938238661899643309765353318526931273221982163101310864512988912145799760518331231836635181069106009054396543048036929222869463509996260012211520082413307575960511060054118242623558897007050897401278765282821889402020011972232596787357639695519388169995349139056941070598676351466074631450769970160653667257288868060285533857621333140418111564012850491086990660292953722793328495521101970979114489014245006517517442923871711486464439250772013183462793066797973323122963342861400325880150822751951323439733261509891581007130636443396465026241359217836563471684237980863964862374792259138477076244726953551506660588147580785278560571788510385671321902860723599540310926308872463027398777530084900361566470196166388155372789606363553596504687538332638841004401592328852536944893990736395055035258646917840859304325158733210958215214250252520128962347768072044852325169216235723455358062478037762486483212182291048393369357565399819839884783975786432581234653197231732683279054372684749929534042185486988480057438128317199802523519090901407917656086436451020938712727592664136049988607647896130051757014808831180440961322078181611504850244465124357446873123081568489426420869026723429592581634215419586401774928659470157080705642701471759052338050765617431180438292100027971078045686022473958850298463156208167065800470448441312746140014295765029555580973859936168084659763015831411787584123135835786969309831874896734764303319854984675980881963663900315583230322405360460020391890191534912440365722319859038088444614031322991137958461837492371610786084230596856691936305899735137857024902335277267406286355025085069292248741399821856705167568978201378015189443675374474484979859716750020187028981421753122300924422393575695834778799187764107372211046666069348593618072087031372665227497999739109862291071137441091759647417100695456415364244903431506325921331307256563360774217829818023486413401764960645359631049858851100008474406207423593100749355944424225538030135679324617393093295160238043788765893067663883734174715062932736853901254121752203779512009108181798440591911073487650727359037960594803010799854726565571033364675567592310141809568727374517979320620360609836116197997416413414077718149557831311971975326292265729502738910583723500230298184469629068472565729444303054182478885546453023823582982450361213096345378336411016749605863382708215029299095300436877959135183865952236959038851740294577482575440262737966426152321576435697251549928335827784773519049005853363196694596140589571007403426933649697244269212679395905022010797731922743127420948779223042624162587137589837231969281052945712584102164935692890526221666668610402297503880310221572039298629491401843931164024945810789755908269933039752982658807148316881340173038432676024484495645131256677214685774956400718819206396701427784074484001735073295311993890657354567485621378598173686389534520490881420332886619376041049209963048325410367104116734795942143194334358570985184732496296928577386064977616296566187504392938751324131197348993984070813568139678535890252617157628103364386700970979170859583315389010564599281108805597361247638002181252699756247559394998600400687969443159799712622951808072026588734091456737111238407687893695008108726768420647415066293635847349932546668666926258757426344413790417501314314963780994064464754206592159628006271416864898512376956391401614249167322702829636182475545937982624114156854284227588889716865710475882896202746470671506398051264683313439713748148500079184115227580993352763663933267567709687842144311827871307132735997459656276845081746484838618643574737677426310075289298116209749763525493599778924951927443628798159163242559765090736014448233947750456609685516041773811914385754162501268984332387903327345907557497428162446186288166654510613608125624090659906717159010722770612804550214526659354874970551478400444133359903968579565419899886057248451869866847845276241857440244340928028906188106704810274700144968157688702962305275643329103681523760840533658666831699204278378349098854543117562494704364680878662800311880300358524382829675185761143482345394703896880026074579745203149064458463185642533187325144844601651129673240080083174893723097909680987473449051830277152340608177990264334672979985725200880715990522312375690767501317364133608224445343153540188841954360460031079534550556747644580423983579412571822965549795250430222372408180825152937898657972491717528725018640061895053821783041196182667978245608047853845257995937379853648557028447527439978782428405785957911961466315603267863250574997108999039456622683683333576376100780086999090541342534124226853286895718847265087829997064304124143593967533309579345435010531785718368558632765042755286811639369724095171240734149421336395009518404670879655370743784871029537857108979616082984284301345874759793303431456404182768938620997654136604321726514752383706698156393235235479281536632233762392167892957413117118811036707792336481360304124834311442914151858591628763926535753696778234398297059467697584003530987934306726181141584554434103096992049462824306781396492296270972480775709308264236762996479666948314853903654647566430952067730039300005382590604990886400955918800420944652462357503848991634110157411866780265312542005925022761071570583136872070281187728432952799826237190299948124017232564013257429566883431234042381637358443025408970913597624030287782675799516941931779568258409178899210819280527665844730115275012038360488440623849224907366052860881322299490615704526572077212743904636456239342175419481539171006004853824743915872536852849388423363810313427183997944399342726724351436737591723698941386691701811343464666973027924536268100129906172990914230596616549042024702309151047075691502032235036097855652905024101516546412944628671464392810695374576116515251742379439928928309887539564484772322621590656419782586915173131480815212917584344216814245153720340828240119381150569889919564429637388311234508139204136266284937028440237659687328581528323412108431603238988491491430616388964614383840450290248518468326781391310877829084952613946560996075196906183314682219637536171957413118278279171401641276125435005201491041279474752598687492747171030330762710133970057095036739323933592427362647422194581984134485510808259749472532916513488668063723028066475987654874894958591239425497587591935145081777414742959635248769359673575052294404980539282641568291359230991543056987190273721252398801454545704070245404378491901485215060634342749214020256271565576933361112426751656834831316836144357896016974625674739827958286989168499902012604332432635228951257277652804100042968752018697227736489186021286256011109559649793247833473824663003924077936192870015002839319380292651236137109885009105379190332345163604904177805470544911038594255648653329811401843059285754415129202257258689833340692513568106892753996332788399310341745071753626780496458424242752156681130975930056815737389279644352378787816203682129029452664887928343960090626610978982753702233199184190979190999674499155784921031925289207753671588546083805602457444628915479730921454992356276373984095149102047553249394520283368624217348103635904207570180224455513955985764044567890813362563940944338750907080998935450495134124910879208192304355545593946245420529529669424801787556862798280360080989859981257615415530663703849815515356889331259804105328728209152680419188426516713753306966914364481095768720493796452294717574838003060745583411507741102438952370510674483036642835859144891455422981191362400527677132134313218266689506834068328318901302279067989323183593147889521964397858409527362365224114937167385150417942718089496181517919604029827901503112101185785066070567906192443472711305252151483297259383915066344870033019402338580510726988149887308622764471289088445597893943294198380873308910564408630282831300195251487737749117240290057724861054521740676353236182605401951636785664917505259713277112978671013664904067994479170659944888842733441507503984216236024033076825826560098429973389734396492579936282526594333790823001630453674904813765853269139303561761987882122902541156064344442671874173186345606287769584692094471549050334922235636180121254177890413704398838722336956170419276798579130173611648389051676413560131904863089712881323654067506285367869440453624667668001527639103618892722155400510641777099989834625076333321406843113097120693630687266627549926956583836058402655860712044415368187787253097469024747759516728243539201428189778673213910074876490915206398699838967826592536942042505009448900162036649100023096481657186293999031925428690634612236512801236265550518956637655716210032186592742596556961323421795036420158478956174779477973363304947577368110332819860674736922439493781028053594610198994555136266487892816485432371871231562372136855343368316741190498796098329720104501347412173857638268591832527821441499916978930291980423754270950914312183695162374476593469180200800308540804207760546654060263593860509400027105758005156574648415299989569648099640657013438097388660599112546228467860887367212997651771379985350245894997254039607918422152196482605517426181751182069096125157943416185302918912113312607945527432280206253754881659307888485443151322458693195920102375890306993559726297639877611600626448974507628183334065320273197416361410408814088901103653911421389512485458368175026963486118083285492178153543523187566012545167372242709644097079666874713968186283614775427131496392032626601160018555892071312019940003178578698601608889218728653876183088883116031187792564800339888821668061770709318700416389349674902749195483761590815970026395089349161027521883649015103159260383877931402083365739865814563818262758188714933840726904038191054145530492896235125470962816300121630906695160563459485696949770004064900442333916083710624992032545066856228892444747436369603825226580279548372608611334083700105256209086728979505407816871483713949202414173723504188874479863734587471805183358582377123889075746992573608083190629493075520164941433345849618969721946919742600149541067552437720733862865655704729674607404652254150025383148432681869670720906834471787529520562225709153792646653580541595335126579918132856227929640149664895834613537245985764496285686403171800754521429863265045425629830352249400805628018093039365309508880002323790924599698477705746638646954434156647985816735543263146213411386033973501040616961249673098729517719861674486468522821361936908591172423269126615313394759597146980873693900811225483045275202418278261177412026490136366764048602658784505314227443752637675754801680511181268395317576771131834411309521499072655600885062670810612041551623180266157951984800716589785971359492002358576850435930760126661735340557147652652487384533510716396055997739517549448379107257438749402252261915827983741276632773862441891683768449276012554777873239416978747193975672460407456305270796258260091618047101997308537567932446665329827434619824196782281718216601386044614755003541270432166944881405512134888125210374580381822457988976981278586355852249418375270389550004518928587083849056298146161662679647217867903799732800367527782904593196838462806886405965404875279030154601611521334673696191364096758062436684146138885658632077503236643123791571192011207819192658136426509903158174520917159802037770642190270961494260381451892549023891453290299257384892931648814524558809790207147295657338454377506055845574621254451037666382631054618652075814658308323295894856648181312298964725188741674929896564982728521563897501054114220982741984603618951621536850410490908239300595702873288063775827438264178149957302642537918585975065060949833453839467365057906935299474578314804352448369189717747049400553243860511125490709849571022212262260631203346457121523621379765886411178999664982312996555569337899894263932091083887925832930316464365513792029317306820249729580247931340105984502465150500868423336503875392349728557963805493019492954697128074838039467795709411575894537490596682504756584127228356322251609710861000666705461998266903335561810369799167148710633527889667303309991340946592527970021937894897063452806226056911679288481495147371212691696437049971903856663569918140952529503066964973256572621219538626059317369005896133606100379043995668505339643683385366370250810588822231798438351303567425780931594990780470756001476087080789689367224671455984978411290942122363870516455110230408887807190294971205197751057500322932123021704735256178618454189663797875043961630707322815189902615643102543890998022096151029083805975555510044156134175813409467515268056446036343908855534829614391337123692479671592887099907123260514286318794302693535387387472912786202712859668590469663257808502386035828518351969087138553939470737120650969857622938275043958167080068238912542627806670130654251883878506465916822140407571289338740909055141885119762141267025427317634534742047564358326874133512708862485604398925954409937085632354656723973882154515455455401222142174737439876973247790591499724389739495312120302477962428068829277410357322314226953035137667139906942754798385035880370447908232309045579634565498481582990168335674717728260832830853676413309258448405526180634300291710729114807075179443665885283653432984247124613650331052367802336234143566359414848768330606440415507659190656166880818006221956725139627852725390013799986686987664860685911614758362422185719314795699002497835131849206470006672984745430379639998399298370435357287568095567989406606139796007937410669996092317506671465062199332602840477387853714210716620062273259650441769010481118571936278546492446453100489532328694382420381316963194443095239630096368635938291327224636709418573050807085680806098572275757590779872411799430731982639705158144933839264130435901950223435579953123739692201291550608623100026161642442543495564452859998894544963333841575074705165705912976892294990133384191736878976249463618851128607296822938605370230274452354769232330416606479027294764769926965989216676210815869534663662663507198474270773052207568382257663672105571852146547654116825718652747526932586131234656984273859378893015539359074231262753214654767012054107023220769045821676402803281401817022523301476493669952036281037573077375318348330570610332630000804537933446882618991350002772469030853277451327939854832251907549287267901436900079560841038295385901778497109964498677426632325711224772731757139703287150975067269049361407716078046582158786143353305708888504937980641246789944589766172177039062713091599007620563663261666884231299390922774387770928543124970809968089097991481450079138213041957551226714865014839504578421434124924867916209144574026637354554275530659226648171275506553297971481165232079283393347970276977957258175125555966818024068940574047881739970898989135658109403760114413256384164986735481860608396551789691253229650494088416374257183387478724298494365469043824010924665927788100306538157540635725191907694275981454527018251840879769889088122974816617002548914251671994283994863945350627037459132332741527153949514268104852720284247657006389134815162424427547503870606673663048693370765170505292510420053054070533042227000857474103617208091021014580484729360674885160164599250577932831559274165519147820374808699087694223598744445933314458337402703536593562846731857579220130304654051374103071479952044535585028352513665379050196754074218193905841915033588444617207314272240212990625544339265754354181563483981757229112672721567136866793644963487647367865128280238854060999937168939916932588074509353638279714008455537609480513742760592708735794902083616601722475143195266496789684702160104111351090691174928261120734797226045634611483074434297778836759123899323554051065326575300119057660244751578199698469393877375675491932464050279295614479111312900879580539601422832930537009773758255779917642885662449330749457121054883497706183346935244517153861387209420401739333217546363284027562497588268134505515441620604831779602880805078652556354869757281280700936513920117935423937582506047223884732134031605569508982113118761588897392091993671264589631426692366295121750948124073060792962714666771040666138601753450554693378541857057637661381089257879820072364243885440781437002202928130862440322294660676772046735364330640451201625092083477574286574346960625026512354841040720834584504607840692400726277295250486342301414908166926020570639125939926392503497504643849346592701834078586304412236960046415088603594078213389418899473062878452712687345597050151264629921725540581957273562987367893371401990850983783688278492212488089865717321621729917379918017727475097671705522973188691401189685779298141557801618853111174212880772161668659713704514588422398590686113920200944547919448409572161639724422525688575562189214558745926822520639475803753523171340075281504000494464695564247520719065248896235175972100403533269469981443801002092929884563589352064769437500565599388854433650831920616855455615601565307173312760866859240561382448327440039232323821060000918926774850773099394834348007143196631046783194683900983351356163236925647536692951514597485409890584908243567135239442219366732357088193438741580320355924039602423672947951334117113997174066685238505111195182816277940594184249595196666217038045751497784567013392161433493096498526684126189231835301116712219725322532280611451312942319840094575089773601090281535811120129579741844657650203923787050638527695031861354430227840645276026982017321923095918108063578619854726650815052558840659237956968209506692632032458773020101996604215034592603656399692553506466929558223395143864074248646815912241862338764032250142114364123713121197307549404892929424676134692148568773074709216753060043144278066257190090333763510937186228019354851043116594301075737190199545809041953995379329513340085043618037130674783410863670454227204909277771431406262029241637929890800124482911223332419470046336364790163733637022451672475079064699289603317916388765537522296227589966574045166088432761829680489470127036908821931280156128015025167749307522496297887949016510566539334999491818859285603804570440567804670497417294562794049290134563592335783391206247726148145610956116203914675864802931664009784723661945392387590756020445772935921380468573538270631181917814018361042684596277163210305592175477492568003455953033800668934481464627741536766253048812636580228425404979663538363800504039577844257582933024786880231868056184602511416647690955767283598110408607961907504384175163596883695288069605694913633765704167393100202999338622903699160409403787460123738254430995410756684518156922535386008646858050452207380004705374072642255094550419018060009890509113852018855464141874095333784031404678202122237946951752586355838437225909960407458665014023742982017336153195096078926427172167801828558026252069641267067509549732497295375618429591631171510303392223150248939037639091164789226455328112538625378891768815047864148685304187763617372487520126390581985534852915689478950435183791150366010408668215757314452789041527236337455801274710590458914382129416951297011943523333764580799275503267304241506879532319123597296098125068146661920860857078880859419701507995615089389037262846079857655105423985096759306089069057818648471975555341148277689021349386083570908079717546137820158708850866937108512959574861882581932130849872898052937333818233625325256507738334632944779098133085522299225065058808258429780074738225001961853351441789558000406795087890069508319587560845866333988393154198993502894113844152778816343486563527830937896278814279910032513343315132341199244675236677623894908789419792097086905726759363224191375910031782438870381128218300412187897130859220588323180447309776239779258294758668000679727260516297876743992312752751090848692120175908820245308013018799467500451429331517439697542440676803548304113229342896657387736621750391248216902245218940524094811758650983786413270770279439798333838799677564630915636038231625915164298220489850096053547342221041047333162246271216012156763611938529683874206778261049381578676082939847556958636308802111533488512467999377090252182397452395934733512644406271452965725062389667232751064794170458128262273517360388736088536468578101299043567542071774684347507583703594799937343323937675147137996634047730800594028276958235121733517711754143843034600440203270082331414369131864833783502599748745635292528080623534123443854167187662027038407211284709817577781265125830002418310418150324119320133425377591213524073738535861728153570963528001569626731163054232961555927358743036229333425390188279212942068083150717776297632146500215048832953858938871291593925030775794005818700344587456397712427535486949091291416963076481156748764091206575384510750126792424517843479640670127330962339137310451089456869653996461092713334272777940123393739631706688720670999233674723984836240060843497392223694878305546673035446974215483948313624169423917062753260472021750794193288401988130142120461474472599208393418544186210302097089193718579334779594583560375781023373939444069761315556702198227471530023400629795572605789528355893420570174794229044379509554554183945838441922405317699438489429058148376770105316159415815442180326663716719373134554275092715931198440517529517322346569574340138828625294148379432201417915702301449997978489277303592834596928566806112023535600740021091025089165102756099690080105302194410460628143979860398470649571282803536035972272201810026393530439154601131454959194060336583447847039349127903943867238204153675268740753214710707202471507795971203448334547407688630220006740867802837092583560819753713848460442216755806916197181238565621696472931742734755892472141098283985462638205125024524816606230445085558689746857701534041297901286992009411617993246887594037848830801500899739682991709827327958616570043327476665406440001395526575998551346750691395014697134430753627708550813324438125232285541849739391170716989898739650557195670817415949842628336125897291283647023877310408461954978989168897307260925709134544090519603425439405971472887609698827816362791674455386400123553750229427065977716498410235410169825033593528604615956759590145554294562134243529114819520554035737851011140499478385902359175801162390989258029703313474758005630802676037452060102333573640202196975340358377078598951523681181471570132029709595287416871368308662630012101628381965929045094482600940447203340811439378128393908413399764686463166866898293407167697884960658362895148755544436409079027208518467928241656582058846054710780343942539184702120865402015326755509322417673000559857534595927224942010065668071509916967519659468834893659837099861867311480546786892025391948710841633013570771779976398512672943350276261898306624842694992314283536272192561433757247844929974644091187014744281416763811905964797094210975242745706284891669856769853438466253121888807670212393877279658988925073028752196240676884086861842463867467433850691344895138801816685525016669604908175479332093383829227241494880101011836008712441907861295520421983933975309783742705394459817826345644476073087634541510420756876649341415565105430076208618565883210508256280916043360410073995722283819662395188840564275771145458116431993238778652622210308969212367510590167480419926897307157066483509262166086186311667850987438972695680107300343373679488878996274434443819238545734377587319246273967651561222212775140614626901555054504463504133807493546634035916076587830507617747263835298183851732477313522365454097914127805622213598416114733430319322796886336266775565556061567363165441807130385517404846195984274259167602153739625056023105313450491521463601837643720101871275384608609201884042012747461644357732957254422688242600400079321689830454268733726010877729070055001103783713673771930876629749968941830717915787398699879659619255395940956799881936591868795022458815182515171265879234069454237014307384649090335620941188114584671948413140241258134835947436614411579487660165883946742219472280951054722612377033393363437146805444863018699344886737148792692374219466388121475639279406870959264684608151264256726500474898879269518062033627898271666588560273304612063881201911069277917234857442294379414920297172847893624033709013887917010527883177065414670110729797254642464407068164143253229299897675599043907775941811083185820853736281905205652807496664834842206091470486389116755684604464392883236107421697767343958270199265551149120011552411682187315155634018991156294465916995082033379653280643628151154448172600708929096640879933785379629861440578846406210579206958777137916598515238461346116997800919925191718052722572446565616409947197616878789076347453442568776632028872249270473548025667654041480250098141681427486374687721419902122148128668640749573955674087274592567936526394443937591428908792805207092602988014269964425171181968036703373425809551647538500102812894778648982780229749626590472186327683380708973389683950749549311617618189194725746189593190706651326268986554180186648336398815689824984934883231992905797483038575841901928691915183447092373394588160532766496046300716510329107057923724024262700541665529265714065178283471199846802950121061214577536466604468631269920316535446383615759003820244161705695321431149848918044215144392880780633159649808336419202609429204791008326269649618171942813052206677158289730412300983002396354600785397229356957156407069348560133171526251891312818606064832044456707637682154157477324810468334646693253626005286759104642921620352713981816420673286352251692635338390864960374180056109141306137140949687430939036236258912770667724705980150759204212343172162313167809926353359381561769763015087568488256861242824808103224560269578931920021632684328305350970493716299859792886483668818853363343548974515581236061730575117020807158795553977952417631604281867684942888578219669307246224947863524494012239651046862326802974722161633476125957193994564687921050139967348786597379725519534447024712184636216331585316975398354383568197897253236315824381926096127769293455850250770096837716104110963601237337988289634009666011326033707959409985808708536004302797340447597089475993022738076766755670471094498222491559088622125342042349853375533412262359829820175026193539680338227067821870065969029705210510414897435276261340948828149385473913936604106472991721232964976787740011246870762109801169372190343646982526502483958854121561939276922787249330439852137116434462409574845711369225654918844039271560355159902864552120842035344934249333062782384743537241170021993994821870883872219483629371951109542429851448411197819693126254628248255750599745111609734892340007207154330935652962271272368527701682103495604271766875642562724591149712474662514485534304101887097903749021460603235773096884961028752211271574729805732487910736619829283479128166374674155646798823954197845153544376454648019438039499998921738397282367031577411678623910921684192601204557432897857387407420034425737553391568443665210830161979803014553321665237212432722895938222368019108097547286052791725122267735393443075926694324101125319818004279537000117908690923599796843628090027372725425258718621396501763877912419382603672786171410052842964518259391370945026667100052962977198114122007914339482185821422213000285101598021035407615840443305392864112724571231620122307905982511592647104692117319473925425204492598576243434028164104237511190335327203130183056129207124116867799951495478877105584274886781579160908644630099196257541102016585565276670553895823351153121573121977973546903924742455770523206314900001712640331460913685592519637704621828720343039083683476599268282441892153320256334459291982672821529263810622145166932054797757546596240484349331556932791468121132583428066837495609828663413356530736518877760169456115184223418504928783620921926509193289410174419750213265550713595763491654314805287567040845515417027745273602092381231460900895210391173327448427349912219888293909024223672613257105217622637040047727683922966087570480965537007177608031409642067462261362309662739096628128589521512189133620523851668848207603874783579414384765051985589831322201249586133485916103687992831515685703341394083291156606864146044051492721720902841909930410499829702180196149690187954326280232653167290928393425603894995539878582200593474746523861482413580778850840951749974072897447110411756926515989203590633722686820585119782924816434128169892729145845296225095541660158511337969256153722799541400308997717545033103727207517795583246863352456480849214939593857882232346399941059459352034459607980802538157737057256514996741953822057029418739496785039192783518365080601199172003541617900672691333475178551400955905367856440435279644602845745920469910462313516780387846132642500644590605252317096610941421749497672883612927865057612580561282621869112980529427942567150828941554699902023345856473176610974371169798904516617032739652082627924190330032275752110499837833975286629390564462806659108195809620351373975507634406664736401232239815829063063102939521937731167181366265604254671391344456710470769414449415051016038928700494551986656302901070378749326913253535133108258222452853023097581382023670383582857678757695432917455255329675628961928321007564667241135107497401366959805686842109271472856333176593847517438252866606518673559757931288172753187779378287156063415607323318845296590509152439543435446410298269448772743800300963860409071101672175857242975404947427331061557343530722926584968192247462620875080140370301309863213344502417298838024690619169354019468605285393839700651548363421429084663067144013231283539732614015307687504491336627074340494337306118868920901903249866440372185516036237773605519913529677787811789690535611232366240629853425060373347869173833941889342056591459557980321747389940688851110615777218806415220736298603138039493528259118800968594497341390035909317865239521247589036341073744848484268927957725319270448454065731121117439940312766995983283518066647708605651557989103489345565118911254853082857830057070475909388257812045655863269826750963456346340485454245934841003494585231772919988938921435843968755580029126537627902427409885765283795699749711233542412933079255031145326346552169848146492266014137591331324123017494234943692058074727425185955228234104884590468561555437357904850622530120541805132702755903916353291258324250170664159258412177878213403735270738734876464006045482011785285076573193480088074265709769547794324045031016747731531631901672507761689526222195399906308608625694202318642833767411609001593457185534216377637031907104637356555228873019095962962273415963820219935721207590296606739250236074328933239922585828266487278601572753176094213121781592132067451178644674573861289395395653241288373844597855709763484725787442900941574374787691514860255123669882658864941881316963221868748603784876913185002163203218634270352805885622548137802944043741467833759939385892557570086231521130553822146761320336923347770404693963452937398755614694002618749078779223846233021776835210881540479443350382698773946062080812348826745787295723461680135202913069621195383954283567203727507055491981570628640645928488387050075714513504099341572736958583497659374769202926739324142271074707936323307328718281901522524791129388711945888884024472535267351918116100141703929021919941458950143435504923527405262778093445188204611040564981139609283464135726592493909207385426350611356389315908361097404637363609466753726584431216136726188766505796787833362828348234077403533707725490993821047722957929447222508364015228820958905076785892257342741752913527388099089133739012462917946652157542971041078324101639367499742367332952416421127118432286173191659849884395897083834792443676787163399397037474134486599474358075879493248284463954979996266873950212737367936366854664113687267721971503780314488118444955942903186976949395180597070344296359374999793925474713547810681746464021704691380211641081182719028203163080000867787850759841715676587802109869829723801857259749526592526749758070150302378676718256152290142887974598771096677580996306984847241461714385797199625011699649859095387853342535845003561277715117078870439827503991541267408713387442064437012593367503974310778888933645125447897198302709698815621285123819052701465334661281955061948998105459556348661541657257012978906069659069160031822819060029895039150557257263009718839357447255453773994776552147567996191852059182618356539001857801367486963844038011538821302617072888105697014296264305487506993392618896837959072195473179514006879339900448359146674367579179360698011715313332881925609361088866745046369831435433356008082114189225115657166741523607937172046118522441836263820405698246483714494004788863964770760100838022716358337502792276340124667526362741048648762292888360776638733007097295159740980921399768378026050391180319804217693955324782403584881586938645190643136653605914823670456394997183457172889906084427322747894268717548549275493589789710543647277262011099673350227054214703963834609354210336557318215879489971545158978595890083440302925994432338543839065656325256962696532233093154495609505985538277495807194171319141481535727559862012488500952707700556172897074106633581938952498509683379626942126893080230267397654197069422704010795733152646190496490239201447435073699235251141127933234651475161894587010824312283989856254433393236009396844713479151105194506784699805142104445666233048033864615040216451059648492214686916894622350882876781241772554106001754879653748518358484944025880094811425080829897775050607227843722846678081896172353560324172063424981306004878945447508425279602157740949092852890454677209281196283953549126377950188400192718575307048961448009377081049969237606079733259398833087722676748911191458320693147517211134961474409247240299412428186419840014478234337764622538581990838652827472276633714308472047835319694463535097332036218945229138781084984228131402376540137399940637489348035073555393681423798300158808408264297300805186215983118788138054668851084781850514926134101038891689356415163592331972469451790546599771176336319285635494463083902759371779965604739275363656777890675847082766278139743181830623943453034449967417014319909640466980779445947777404724713901226528887819896368961101941004929154553544807405790497138681934569926239095802318763355464256432064880172858696605484012417344890103809928250345092151278057264367282657517350787978839791633995496107318357524520807936330765520228818659824942760921151938843549498414407938332221049826908355673780447130839621284782796780699554589300055815389626207452107293955279239141136461929816378852516841617725112648432594551397219496333114038293853682610187513291956586927924328714164727149997523381422073248987542130434834498437203028107186297663858985512833153205815303270082331839124321155717728534974484560448006843010453351766729436987854619629634095258045537747980670068235139722776612436433502159642575364785391836703971212938566601238955562418377665991755331558628652773002738070428713324198821233872082638025500917006148379710239614748039684395192475905388383443837450579321942523120438360217983706871189320525074894944123408819417572061192008201697223692127720505573727633066558481907225394530688632073852131028822857966838426640838096096290793211380624146771263697608749931644526945412701054551669258244236496316429962215840183620600506888591371668487776174870948427255019749813437494458601601092619528282560540679237352961248132409655525678464968586353294535578478086721269732131405340978000996828372693933970786323110444240507628009408222124848845698750276951154539894340693796206895056877340098450240417436361919551284963457720429687535634033441185615629872910639291877806907056926452039113377747663921437887944012192247423959167719934504985274019581608487957611699380046564056919855441277393268463592068222786212018801774387490046820663919928024342074041391195242320218849762785651835609376618310206489493193349951260983846954078577116856402573692089938957517562800151870991212175798775015326087183021276543898241327636762562675504869692793485470518868940118145347942631447180163524823112974829488406165868200005491305144206577389148792547881621819696025162077407563250084282752633838480509488509675844884691737312565666643838904985139640342377468604138072192979105105801968602216374414745527124601811577449677546661169486201743784784008783861819708716663433715049950787441367674089374857284145960737158989372640540235929737261977933814441288878451447493705930713975254520156923411081755398805224929380793509808272417274327439487039591155434224922907623312154473842237379752838055070023866417368313952075541058057503995448679201873310786468038551872364670921416001620194875759921028821660476679770808879858538446146739442089967132573343919247329584942527390697728004619978222911807947207252324363482309977647444860518206511490243570747769642776687491263816451846963536862863331360881476923490613572637775986678261322950906109026872450684651464919985142302179453044043733407866569518868592236071928358057675575114612668160560463030876486204170144030347949701569764298268378380258828792819703648415160554458227193853050742959421319619264766077921603462095839441097224681858361979717337126568154255626606248379849241725215049224226005459575839709029084723049072868445760404113671020409645012800464761167081415879476407233681249439145578826788124635137867969933281917823334352812108109016358505675986848411154303348329465840140577892429711198032524139949602486479730420672181809941537737848787233143165848257843427078606183456013280501943460829006565858297505991506726331801768646530401487872303508951777207214165959849819048522443285943026077211011792905131489631821367491776387768495419272792341611398389422318184485282787290729243476304547677813556673685498758843994317865583357156095589849569966571030636188238200290151840504509396120601594786905891402170920053657990106865716856384319907611720384582988598159213106273832479974743586433034791517070432653471832404733027262817422397965687081923298719497534546476667781949661198736446868587905735079099109655112466103611865648833613062716439807569121593870256148464852604736002937835655102015874456244052603940952718738893811202789721788600886939817019235417792103210189521788070628209191861959372610320365399386742478674508993587416197365062339080989275441217385164581284586012403816055408678720679884743142020262714084258682107731673922737481920906573441320468551955459417684101752649582745124079641657318155557064327991407610365597151955029863358154780153002329219288497245287545031011164472905588996348497761867764766329460563546095128044656430318505923559403548397941007975309990527905800810286703389563623160628766041896348180587356217059975823917791982282926278820237576648510774727079961444330179898609564513217990901163653884644684888294722812111265994570093752602158296482391058577352181083320349850643404261359910058184760004220141646292905236373401394845265690775407240810507134794493262013087424181363621789979698697182372145973806646864906121823588272071411761881176349694123858388403025403562671932069713954270799941431026474999129277142996055983287105942334198318616348639054822388630440199862089612779095065381000218599225992808530427574825325486939578397838127229525475613108094094509921452745269493656584342245085325416064532665596711480007990736863868284684634179077176972156473753967393087841536428920713228796350118378222029146672672242243420502422002791509661636095727016537033137347780668776095204513263123705592138203670364852645674283416756585751173692156521545234034668044769248082146068164116245741938703964027186588643280697421589993257278545853505254426450733270795811787646853415451234757113720741479718221036044455108320386574177287385705121112369547965961185741239685600808958395347875948711391415660300101656932441718477824000843913867946271453161603468529530886863408731715201731067510294833111484385248677579825938071419391168690486780587035927890511789599027479072753474038712315643625119409058518060100913411370322161553704582715828625606431642826077476281947205820745759629656357597154180104489224491564345029590945539926562656619394559963712855647954560913353216596735490770421265275922809991632964641199168462063277868363788405651634358435023478013800319594028881691127622543257111300738206988771359642374454508900875189489627636791954189397528019489046739477242912644815816057750767243153106525758681862246403125837955041864801336308449756307913372429236245337807706795195140026300272380107418391762990666802646781566128086791572243135027549617616191873580375687828016687358285462579955908786509915367551536673886206383120707799263762218018406199842760036659761989016583356563831588019068527089233806164738909301986591412247731367335179343962192142155903976276399689316952521142428260496892712652166811976014807537625767351924132671565016413151173246360779402247675946946202734352988946461008672845900222367041541739503275513652170571438608821991811092691441895781307772473613705211021551330632575944044166152283423088679780665207938262200018124908088843982328968105672937099885009949105516381024659235170025567088577268227701805799155622232385206273049937105684291472241980021252202431781628047779068440487059320274405354651543273091589021909586242799409059698974662103463851366227805584945698425861089132273611959658474598656105313005285871364472577891367558647878814695895644590883110812229465229102906111746535542986999416389423003981514982820967032772558715623109627196626995345189115035397736927348188731478187474050747267065708589415839258793766939416026652304614949458180290784532297992790252493143008778474612365763492714455481821196748502661495544446885796173275718568271311371797540990669171701881902275307820623266662872923932100062194133860858516070882934226006365442364371591301727543659275487099449766459297496438928255053852861374932177819516391363095341282947642396370530328422741606438252469025853427455624611951442846133861666901496232036537029362706814583177183217538932861364926235718085461518112454397338194372419852799733607904627265279768452272735029397830240346497180624534049698982595513076815039329011056807579621029207484485117319662589192629677370144690125404084191532388008503928087081013914066037345341499334209211096128338607225578004327902695617065368629043630040143031822152891372278516881589161210477590957345969425940726634349923378120563307700079304292703484081142631614626009498412624048542361664940117285507077339301858238308118169758507123845369734800847024764022978378169650890366397103602663278524459048832439416409386328792111573638596601382294463415955370579058940732499722408470202209611757389672741579371945469509159167528900266619901535815058715640819236203748347983127685478918407041052270369390463529598876069988365991933721147857203574569343826522661540714526903436929721335190474937456869184047577677219333687309710712020223045925328505239343956674389379930386098626079341266395859677592850566088225485031870312399287163319592312137647125617755596301172826714015007409231920688960557968562494309028623476724379161498020839480992349388378955950014719110667323190725328234260997076665103159793932885620812257372092263887519858704186634817916651227105269990276901210712726618605950095553603540789839784241511631189555534344073614756683939094093485201204904203751242662758972220228112805833331872059416916449670737859004267642539255571007496194148536081503591806560413777618357584544265622508447189417964435798147833110544876165402307533568813759565243402152254883227160164637184866030079305423841833522008489139407475059412610601158525851709655246605671325891885742619177441649276742593785664783196484545124174258340494285496724459554355948913777049410314183197648576474178214522938198579442698519755202366480718907408060371375217893288580860927855634189730525824803572389267108756917205280084327070306566292962763387990278312900906607159600158453319472684867172962048235232611470737129427390490928248754960053198756618424292306662893632581750388391476176985719100600927240571841305090833454184532654965779088319154769576082611477311409414412232329617576591338239662787544897814885743708118009107505407613993635456047755749431986954485044289797238175558553430379707247869258296483442874325792422452093118095499480703660165771441209470087999421524708150496809735983482898764465644576182295982750121921088300434323237011963470992704292218795725477887747948642399350347053969058373913183105412132846502901964849912692047826244112499634610776295552720626054808830715587913651412096514894624426574939841312660036722236519583393449153126026555795413743448686892340785236446745840329044451257600497429217421526082979512744977388939160644933591062873994255815993443181976614034231259856608419562647463921849790562178360644604794768210548876321119420615105877256147179832754729137738877440078052724597586321930351143080209402174451776314896620726246320505743718445641393989255030434956069259627041746933648470821234787241821799278637681549332062619648573145009697968661491940787845384748507026732961424626240209647977221910015422673062185502982779793159129226269817022206633643821975337618056846640472626231492202307444417094879709638062152470357517965697199165513681580514006621455651030389902737665573408062018046062676200357776430278381703781738665057711212563071328162475393708524057035998711392755534010215195504525918165034533414085119099313395610420196910882290192321460518978878992317205538022569403730208515969738053536671877197410574274001518590433583872397917015691434506071033209715589860516412964742148313584258346677446653237844468657037520005835480382080119336240401523574016178658075359196071834581362251391547590260473665274404248182781181159449648468258886178933027423919615009936747728317208593874066798251351234703407514982534145706344591662483753900346592331339178469583476427412647576421985799838757744862663513889576502900169511442718419570761949236269461678868150866404455288771764009638803425598464963766953308294068954146385111257468917411951404374929465601355134424089067801798870668344626081890632166213451569535894557959524979540428803308490168020531621337915550813538301131014801762189009604350272302165520195696685073095100725046849877744232758644688103837033791283102471444748937402769947301060176975011656775075825219358020808237578146338525693639705264913027831639391121170958487439911332557334340103455507655785286641770306437546870137893099005210688670138285614966420572770209052047657646385165540821204443730448175925590167832813208006871068947959655629805219264954093174159919417772635759990804749139064177738460460270895389291588644024547034912197523579737838207212537205493429417863341414660851607302715003201766259364101917338158370122864334665277154330325225710323726051873279918847450086774229255600433367404405706137465729405872963373035995051392828165083112026518057194330729215772135729746434020208134195677995206306941307194094148550011904954797945691062923895335861100591760237723130510969748342615753254780827887266088278192124832891210924252459954579563300217678147016014796323089009784941748741304934640708006538945409387608270451130994187072549769410893969845124920986829233095932228544940885871719956134765741907999784387193574054656435279007902976434007005023391567324050963082233953615014005133902474665267183764136292622849733297173497278420256997790181412292971395103911538805148415427528544238052149818255912245170789123614448509782980681399148105325482207619262719392618497408599534112470615670434723282495121111903222836136262285523057547727663331323662353552673081608688254862333078117027095641015894855772387251149960268315877870012007492443605004807793893627345840257784808808187959707400870823245754517493283530674912485742880089941029748450872091124147126574639009998145061968465912305199847695601154041774154888879166890651503391762035645680820487152368509010818628908517109770028152786910442049882863435552531897349171482437445411413044078761494318476863542160715926083586679668293321216689540442087059262229848125847087311012530036818606364257065047361210110183045526742776561476541376546995109796857225430857728672498633785119290791629041617241230820393402072132410729554276378153192780473913225422702105654735373960177369073237976356576509707008569905931196381357120624618404560454157885726752266736365630708108189100496286820488220027097268713034031354945782766139474636216319139461396287724053441354813280255051105689125427893890399961113382879195118066265511624261436984440098297817674416742860980551711940544977535971894360719024826143171006411470144114850229479369751315783800461479775070106782223819874139724277541635870230502671059117578197019777831984359552339857529818858755619306422215804665657172278739646975732076964496361155577394177554249892321205355960710793715357864994340749052866738091190726609817478445520645622485428424137279861235354654832262582200781718087938831430102083429545846432694444722545887119686251644817120991006915139041353395221242610074230734635844364881664023104343157212302623074572813639617141305434318483044533187984964049688255778608494580332565877058694315126289957773361789184760432478098416517024869585042881981596638864036379664414941349026860707326037318085215156995751864875633283153436588649070608281203758861377899775058330410063796566399002381787094886192561335903596701287101504819264959080354550599581995945373130646366337913543235460059698159630299117493297518392809486948429191278611431236564126399547162494192055897354156304491262509851420938109258256935867652912673103583032724825045424827683304931985466934207748773313835827851502303126173674804602241490784150731216986137952191178201609560352417592976138346536906339154478961191635598919431109486800904233101336861620252298721202665453084010446354847798469418979569497990226434386969373682600336170351673453432466603412028723804089167857596262561624604300129023228877531465975309437830819877339499195272317338911081840180953727628096295804754266362226276824318712728049412754720782116702777695554953232149386974742711438232907914808217918114541679994904041691956727867472377436053850217281176556234955868527940967953034151198680965131459825025591188901780959981252967495191859147484839182482748991503013708616642675843656629370082186697864102709718397622061475911500378997753142560475903745718147002502146654711274050335195492955039279981727623172201919892552175654197254043009305020690707374470023836803288358381433054846931447336964655360879318941847923319529883228710376283670927831273192101832805011192950756359501841111138125077670719793281437685065234356691209100974948583867761932591600105543226328351247775733151700145706795693254816933640408401586174246151256350870962117726874084280798756389875109793006944457565777085730290908140349051535683262817150974832194549316277860069272820610774615643147722242720701245003118902668331222271717174077733493885458691474760667246475105404814571333683213209256369465652419555003811640048960924723035359315781572113860141353454676179095470552487675220808990081386818686921782460024254823352817279233752639447817450210539296698157086039236070465963915054427510327329152429861288737623353843605011815479417062291565461569079276061086183649625473326700949600333217061959341965953269668432009156360917487884222470132050475096231043997657180598478362318052313848488057244022884156353889834789626902456874028268637192324925512752444602244792359668001967969729825279949644069565057912263989257927387090718806139833117248433529022710504176722475387427133234323593206795949767692199917576868049527307351007076563991637571679990432403568774180648367917163150095455476245790742119173817065939883820272808824003167858909515853101965555754718815946700146819590307394100523195764535294507568035340977631610018865529085926278413244726394961894565161254319078762379167346458940545748389175892575459226256671125085775164806497262368208157077879128103290405464945623046690662358846495417464803356774782532144458949229510602509328742611854193321835178792239968220235679385092651903453288952876875816769492250555963428953795345293556732240853305688945723286158144638497293012889427854930897619592906949329066873688108062318278513012297942804761879256708364730109773927711380516300826605579378870350819227207237949052083641781039817195942430897983483362512067892662572764121944514249019224013188590872764333246801530481511041971222873390068359655668050427695669222036416290079552707879204591548595285256615788687501938368812020749362602120758838086325640295556028320096234869012400801943323798561346459806457627991491436123691690906613004778569234422431658676462568907613644424427143321473242068823143033506287316928572640257379702765792664152995165280693819593995704781649822618380228509025239761063477444405456219947236639284223151279522266447427288043679328062778615734937858324675952674758422087455083521300980066686899487238028712128960364932403013918043804183353884831435316597860177651099805857932532614654860645383312446896996029773618701216483670733285086873495297902797829980587183034225219516877835749739194665606659654170605800681868975124354342571164214776816605070703411528895039156296677858392383787377876533398544484183725756046457727789295186604118513391312726518676763268748769270811348634627066764067321987556384954243145491784067650547845381067560494236494584779455600344359126199781590847010387689348640976817216362302141663830914647807446538867077724042908435987608526460230351437995677833288513865115637426177230076161631705400180695454276136822821836702443414353977310921086650523847871848796125870273072455665133508035486601488873474579150326414006170939952177839732064810293477867529018883198727335424464139921622827942288502073408873644229737625762249257629178939421985692507753496047122288904979316770770148469343069588846670924090953903275608648991022740240315753560595997070293816837423268191038586176638206146857936542511343339070605251255015215300294282534189985714961044279328156364225333806409245953769023627834790984559729495297872302764503106950622052211622759080743676316515662026810940962083393633801446391915134143529041686744963832145702443401370923146729482563289746485722434212243222092327357728238558817167682227577648522449241708357843970636020851893373859126234024658477230135450133538672323307230164838108430282907759390153661670379984368086257288734175709009575539486779105643384527331086457918000005011083182298956563444807838752702916878979938631181433613228845979681014528825917097765232322980464774087237275610280506814790937303768186170828698349584900955675745751669512557280676546451875930360884554830819249555729532465870675098734342392629129703939724146849823774369560573544893520969380017804448034827584338582830596710402940750554237605809826135380109851971759148778329611004952218210929961397036086744085729334439463090229834933497760939931684518955585954101391316322999109140198556112849898229503421534757095799899892950340376962904338566032713700892802257334093716423283911324341622148092299708525748392300481633808782818776408177240125694068978669474220570308071866306264426076490690359317470005184261598557875307633115041919254085283537665908179965309040402774924231655431615326912913489686639812822417449578029181643462423333826391545222943077618192048756001377640574777414194098969876536107534587836011322622554157752245595685716628249901405591914854041158256720190330316572222950405078247725276295657131181100271984044745035875783566620281980512676089505953537161262236090401339967036919111326308583059680797348885317772018112924454884167858653595418233516521569528007459170584360358682166086227130094688626330806083117492727406334957880409957597591368135916183006039823431232906757760871299212678040056069057201868135279270438938116727618899431965528678483706515639567470861594907371557058528434168620089788382224920953272756260768868548106928345028653967480215662370014226637605103563489282226457783604681892739648985665108565532480707453256193239657517216714966548402947849624119467494024572147247153696074717981472562733431267484984948362578735392384786141328164002476297610955519256688745635057605255478048675763720849331245150941591558220956768945074815084249054527177062338413410061003996288914186433747271752374447228106345359380506573576886648501473474771551220700016906558553543406412284841048057110858294756672014966288433399632509821472745856757626110772121864117137875465178636830337163719731302830423294887066004161902992744051172026298328076722078897282461503757648708687934315625793986203197205348783544729772815641116004214517162693821220167214372336367803385854041338915505901391339321272039887337374958715020606992047139148629602854109845459442410546124914314047388683996061893522577207071541623603413765148695916311814756688402661646066255103277804918975357852488567167657236825500569318904462549602826866215331910039419972605990680957407700843849202119422615352027246859706349611502835551596952623618812740001023748074519828906507653448597012931688875916618501316802442225558249294097461343753313448689419340375168424781997882244911396773378308334365804564920489268371856190289210971014786964283415486872101168131883508841999405047657361118459086521540195072165025821754406265268759410474099831128537184128211845566056242273187600914192931488003552365125129158097100777696045839170972969720222912928458137764147944661537386883978396590793302114286013089087967815959461434651659207731133321868620352315334777896465687355209636851688542457133039855796701833457846104830901752460285600108524037044161471422637762347046328605060586414111589975817948605093573295329030388515295533323595555166522273907663888306352090092383123564468533836012463577972440356214511140108031244861388522098248750456124841102822273860551888527597932390775426352838773824499444720098034594163390322501147135746566568626775793266056639693021461710450828885774134317250383227301591885002293890910270578096746332962841141166481429189313573433109042046241090547008139023708441879616545457121414771410339445704107245854404377784003159225456611919776796600184525682446721432365170667576323024238065507523553565239260651295716790700076271173329994049389736018427599814155071717091217119453654709181490630981087833831269546558291957141836046161256031002223806193780691795954822602636764246045848044814054623984580216904162537298208254689471523043732205045352517442115768499039876204165465791966043016137487993008038463470647623932093941198631069240483551673422359137183013312792877984584725958922419281125881153452232517923349923529285038888494895464280732993270046655100229601061319005442863902815468226368913924052177258580051295739856371376820268181672347576377548151966980710327594406170682110681668352486748804672093404507208556147458625588606552412637866462837486105330045965087034482203829938382622363654535243607003338938029122578793150922051719042796597410729443980724258877064651410007993475611190256614926118384433458368750366794920917014768595408570570543843999802227989893473294256316669533807475805755730372730575994947665031620522630971887903053973634593976125689931452006015056159139990666846188032059062741968945802548287042854210344321633923188610063656030347126679147836223203161497610061409017474409175420409184735944853635892831708998019549471834592752666336476715653015471265614266624252855002286147976022239318830258456783445010661363864685511313821157503166588058163264478646649335405915368473448188827457766909881368426224842860601940245195156349789079766149546474173481817625835972187165872746970443369567990175023067091397076424753461430299244200634555406706079633461459212781489132673667518218779321872309963381821453207214385061273807081659299825315921044745339052089666945596535851532224214993312433328717430513005190434948588252143983431161391154030965710214154618878619087933705326901247987621762592681706147728678434001428115476142153365037042507264605407502308045829819116263668880733098265466702533283687401569225222700676068674906459205318881989318572972271642009292287687419260136842724394908875847128580458644239544443319029430312311390554035057614567383580890127287754532226431936325898426056112294271446528339227446894685461398499763867363590646604009063143619439448318774599651651644456917222629141428676323969908530812034937859058097686121376630194874729581749877809380061182591834284241810202830365734402349274775302908057998184585408360320429641882841755146840291132011793618330910902089314572486129965147070370025068344359747331083910117391247019818307086537599234630405456438106855925628206140244012333282718120731642729843205910433609576887285415994099236393330715108429661196430403283659843576136655241991978656571198579928404881328475657802274578429724742087982465447160902133034548023017954964405486700658027370656589347739892817856498075620361685360258747724178604775200728335007042031654665793232702261989269450501275647592668326412405501243862145713355782174082814046201298187412021622491846119401160304827444892150642958209942812702247070438234597968142283266067389559960029250821020017736837832244575823081609017980967698688710821533789558747951162628706267771648712389402730500941038271240227658247530130127461602110858952915027159044044222652259802097188212751175087175277624082213436586319198254640213625328494748931771490919805553334298791628279078755139363801752214048608219048080936159536122264095788948453613296390669705622161984717241599363659256574486167918329325383529842908445642289817454278781395121598697772658014120576129578328099994232861054263284971018725382575166832186718244751481653858656740930870411610733287142663904128606320881102079281502469256135948400417735226427654763182856167185643335505036135879479784768907877321527402192089910382849408994428723549390726553592165871395179094869691794251450268042439749032338678554561975975733779505594929316789187980754571167602487341992026319657731448305683892604449110245445217434837339097317888773082524900172648357237523797412993676636199576755024780288879033679279133616657906877366113377825843320801368624682225016059215672938793014958093135244096007033549781877409574143624668878200410512842286114020854180333067385979349623992048220291886913069043736311524961199408632586797427568790103798806767251696370345267173061171265412140616177879518664420201336833961936891370005377330025576243970574300014185613482255586980299930508447383675314101116361578430789962206991027157159769893004735527049781955565761781712425169888050192122847429688583242269992678958426070007230898743731665449681096739462616290645388506590491701645000206170750350465016386379247736265097528640066594447688581183491617590133973195468711828774797327188524166016740888240718926108628745351889726758255000906727844972455575677195553242168484862502878590277606751770978740343934610026388336743701428292715492206535735624774723584166629665278318260084888466928929430484332255762774118093126275953878149170968978619206889354606758200475919940770976257062797720013576688013191928955662473686297894412270401617168789638890357615221750419178620768760509671709858774089207975866239727681403217599341447149428545978060885557223666718516701683544344477039619874694776994731029729103693372877350286867770801322139047554768760983873132745685909963698613816154690108890420572662673311377713278324250575907784318617323017468670375717436040851983630718331605212101652531621313453138852326660922856072478451961340787972158503570256920531271983506972733091613507041730819863955221500806037852559851166322056659101181356665585564246049323422643821880416687803153333729303086575848621244001483987056111407227102153011457248836974623354375206510386675641281117634677610616966377757651991744228127581436506821219449722693056211949412694370704093427004726283163474533764592084037881759335385396412224092608898088825630991488031509264233710748958747192336938226861106228000303335470762092894362247143726626136564560173686304715241729693175155095747987713078296829394575113842563947228341089719583748514196652549543090535819132747383183019625842026956595280538463316837935946284307586986524209070730840526819564550997806469837089918354582983542689903448904421307048339714783047577398778501835901995509284324646567425391062551943915678153544320764245976664742055813446074973745844409508213893002235553941528469603130918537318690814687819836889689102531416490527114352467934900089976248328719540879695242086507818492691512217880447411822726476845583206027273509069735751947779108844388534639597573041084545262029977247282283733479313926419700728085896051516574509575644557853289287533326464461593622406603991054698219983794492688606577694874666732487227345256342348142281094266509265078485247450658060946074332147234161273096132750163279984156222050782118463480814932645021515709101471981991222296146796043291365178037519315276544290138298731001543787960204409657154483139862554035213194418983465957291531649309590582043313234225909663207040410778449593974024116766356860965163257250062816490697867706280461380879470076804943420111639956350865860662134034112043466124097040121130372103317504747435363712582550371261654351458415498508834818724533611888480396657537785584371133098897151202625179441347159678445177048817537655861924126058908938425281251026934130419553101574105189609604598691321961113896673494469237717071812722994122279200410468012767189223998834312671621094311661940702125163387959707318132561496664203165758719623062960506712681822107544541737750635508042941839351997854767519828757782661023416299096253480286294847048528006982636351185629618284505257638194051602335384751396734795165968276094144984757621946602005296987312670982588847265863878056336326031268680918834002107647907235183246834053480017330658447084626172731730711995893806907900667089646633837837012589039494052838735864157757402962178487992432449769419847305153891826400558916142753203259455705812121166598402855928097307354789414281482463718354440227823083353879731372841891373385920080576893869444190345860366259563529238101451999153089018683419938270609874990246744445365287431335767177906211974622514177058844159268206521358482638052052984131960375662386397797488267169416596999375698161049727977825233745548985058115424402032565282091898553764412355478996827027795460783799173740989837301865326499091188029583930024134229904768024199363580062783723130906648905463232423934055716501515044364852567326594740123411719020114710536766429960420374422192788679255527893481970520424654809166027951546122366573682685751738799826308183637098102175209153283640121980890640639729458844137913790084849795662635928431375670665641595229595458785420671556904908108920172684316995436452413761764876556661573991436079194175468950574386078996606137039627598655010067900243054969066410852985539943017828850964487303257645375943469445445017885065665532753165828453716952359549524065772314660731615611023510268799201238245304734184643495558668207503550298376491693482699462069991170343643889887656620356010232770092175492364946021963896252824823836246322341072354224221877868754377903226694378560050401513742824343953427572392208756070344316794666070648929944480151777763064127777173995894387461798477264627020259759027487315285369173666579956695381295817084840417700507267086970481166726174915373764638432822380666827880347462994204901392947137816451577812085699998991521350099822332407783324010519656761216930356077598017812427276974040911543944029790780823356122730122070337155243599560428846295785226117257840112789352765565788182504437733119351682414538589916191074520127994322867518634048682703717763694537483609696672619463751308957221193376205700814552088421281229427762567001496969086494259121309529168889218555741142294962271937118009309026788840972822091038874052166852788685642658475125894462817774793584357872750858949973356329493388964556233041988362239996979155429809964235786445020034758937818721963532166439015242651055254976536038313421152479323132238527867567799892080544071305823305085623156439588641935759042691589545924487749944391322270193456284523489820699540826985553064435290756196151245129516901917000331773819809202461910793880089498993238320225204799256883825549863076408774570308520728679745323667414455703496034627047502986460097308620931240519393501947869344310271712460670333530609026297788438307288101393358134429155492520455732310832497223061343990794682058226895969424659078737621696622932492114651371955918051984799378143318617069446104386636007529185222672095401436769113645659750296303290195716055746019490868373234277563778621440777834896876248642683666011340533836125879314311463020332150101755020784903392838984494070149971921962042075754611935951957347856761570353729671258292819293212538024168383636269583584197040633782662160611567321976106348922534697170010467583835844995271838374311393858912319953110568627781465400631798646704333990123879117687367446307410756317812056435150204729233779452870400868612742006776060722614923126635374242105428070028821070025691095506679100867493495423165012210869506382508287553357803002874383696550488156887424217984461093126905561181491535959771880790404625080368405008326293752848023751876839007537399882999100311220064391199748891394016385408465895419787959343442254261393133375121101366173975251491722377032618945452361487120250418691369662225675560790889099569720201817695800340889948939766775273939267461667516421139933120463868015509766224870253694358206311605408767540977823573594653890902919800472902516767056622449595869481143518098064013763354767060316359483971244160057592895807311282518102975746232968763724409127952051428016780864991621550882367423369816609822954948132311964409273655946314319952294823437499410599568838564562831836431938128231992244766915275514204150130382803973747281851430813020083145287206867958559425978024476609420262700995485405127774295303722601593841003735676594582084657438537984163422293395998137434282764256247717269018106772197070040450623261382808198895447126981770199527534491103293412258035422941118746952005029776750098879384982150709855106465668429525220821697766819261500993609628864355465562661434494572089189088043586545061216931242630881000211125471146940809556677044602799755083687743569291278894357863044126601351908966444956135362737373715496732089372358921779586347411554225821172073246423967797310217173595796720900428892569560282540022458388510414173336868792787359014233784086856810004353755340251449555649357985598717517008523880229297749852941732430740769059617952023549482370893492670051301253616339108436841821016986996572213961744104231920785663721447459372805015030574508143937019781362862473689079327252443817336145352963325882845959497662279322834098896429332972129630355494148835708084959187401448810253112856683715199678516418392195221540590419762956918093531284330343231657146553454814683296187853664397445456061322332383365166325093949496414465876282375658144677920249349665258908762637758402337217163913334709413563343192676051805639598059860966392667440694192873304262543975684908256667005922646432198757271473019185326422956021028041737969495086703627766582318946087730294935885475064789392705450568728705864536765795791176756481259193422075932820850906521756953839722951164813108648924254220207121369622181166952259134200099275167792309966636895320226152812062599423583475308860721122683093961710268131038321074277297345635275522834695053507799611434005147339547493906641228715310249339810074145909623462375644806772994841483204626237655746735077692769380570113873200266217536431304319316752523369442607013933917831417233016393580038947545890571476957210905437196579485251278884643418497219662812579295543681678347639646595348611746981894633922787954440850230859725244987993661076511297769904344663570645289284434972333685804603179962221599241048748400065506984244530792968602100234272396051217646673613611622386440996703036350816789019415235401713479421558484308566142500928989676602260038751944569873714618951336076684781070211445800183310774469252984240376766146428301488217233581008295178620092507963709344357232401534091621290224823497797832168279655870902605685507767034932452181376059781769388198702003673387228639532062893224271646093030335532530974951559598367681367824182116349151848635078483877303371057053616341372338946492963449025830083360351761682297117253922168973097449750394792818549893662780017336908216056854166034521315353845472890058988345640426358595469096652803238859341419697262807082817631456121510923944001842328827278467677210968614893577998187081311762467586823729256800237430854325851958580401777321454815979764204716275442295697336397733409379475468410221568416797441894852780154442483761995550525547323705049770071692475340391455229608442450789408746156221849070375116208604459623450693578668432939544874624291984671557928403929696661488513170006002809296253247883296595878213769148900760303362914922594772397277446336907909484934389621860885289975469195814132109539045788650395142670275026748343084883414779356226104092865089243566962959700741278662342089527427205187362265697350626730394278701598331817313224621617725648803424165123713140347568629738018879571592830102770458770296585830596068313686530610221463014666549955519063104118326920581914273568913972338186715248622930561667660597726501795349498543326736451902657157329040664557798994541593630298930823331967501227426357590923417568632382008004953142440894568457724750509521220158183910312377775778910959162661150730917149795201704358547716814766899757685106234254724015020062218830779962844384623978025076212724861607611317191383829293049914823149924048331642115140914781773629758688271609242732427605636528204925994240254095540942141657615722963041864472423560764866014218501123902547504174554829153383440165395941362055871244490070808975134159564507835630265273707016871511868881820281959448202592689384938609865842453228631277233899574900377196272002018389170903438160618419876308395998209893680143398123650471774802040439013235897138968392478235524678760211706417791671076239982265022148273027781884730409516793405245828038838863405084957606533397668821748827407728150097091307092846156664149448112392267431990591529737418368932002999841766449770979978255643390337701444886460377088012541441601635735336294065790569979251523918085125692875868642789193005212530844011222865083831134749336811728726041020864612616235798890710209828388520709534394381172802380788821201784554066427457785873113485611314375254206570316927358784975650777412477586692517567172460256997590039438302296364276134447782756756803264271797098829047595093056347608037345077335307876584252364041639106185420547355975490876098278158048526485508589220035472085178903208243790742374714021758611650892008503259691231923889097335462875659597307843807421736613752167860461706404385654522828623004747962377888146592393771029627495983328289830461740425581268817083932801953678639385969193619233349386452939576939626203882470073328525071270719491564700722777472476748163684484454543331468908659554598282147124203896242708974301072329488714980414296540408021767981312957351190282422938543404461215123746531870573860119365642196258389584699837380926885660715695601367204210649358256040577360401730923844080541350005462655477494575339781770193962894076900706886196842238978924627628058463770568361991453694291593190221224928534156256016805467652294166947555260962084570677841524101867848645340635397432958316826402907579408289523763240507779677818333273171403965658073742840402989901852850939760446268982423750882085698302125730683535055087028966755920533571596663884431923035290017726922641998673526874158568563002575700327641402544437513187592029353277026795305403998799804055449391457562745253484378510095428332613448457835115430507874256992495857065510043137487714057849488869331948461421600855894539943350909477564421106100613990806288383633545867198006741815889484877258684807532091771922132796338915695688094135541436746141703056090981561882992529247602664290649748966571782671070758059957977545058196748626884449986184488409183081992163794292039569461890783508479124822816278166691361368987268803630203703366301197610889332644404194247316630041909366201555296070839135771293251745309405621205131553959577156646315415009487006910553416116021984618116832757181871468950459863068565725887561886035383151642855386887418976145585130824484865101147071824863169340427470192334144602762127810429311431061131525387892168792621060300409964199444878461104437571441596020825114912774003455730612767782224422569544966929096250827565968768356971418734684955163894409651886698461218147193012534404502877165754427627587294460028427612452222269859093380620539203989401054705230211122445484233557997960883395877318607134687694478195783417902086621265885254870519505848905837495684236795973435866202793870639726666693733227726449001031240769128582890627476542244010369802422950047942588462246034739491346793564943438882574120085416257544292113275379405864389619092001038328168905675043985527508960308644732855453765149326637856595401007035378516158308118032934626460454399662541226589967764050551822790675762107955083561839378783933021371368144329813701587440964965486310549722831621374130727468917042816098163901855328787383408142485130454167279645137007816085875993562302920501419814929114086643805415416656412483132554063592754925404609316285506537586652363594931915991541783546167576046937463784012455622115381766987505924218851642752476761280726585525323289553260884251935214518838489973787144538779186935541190792802943444225747302884802630452872051909102483232406612085896929595828612867770403457248124936460550955745798812284856010220111069147729729757751383918786817943714609062352995203543392368317604354706342821839375262075313685678249043861361356656707302880136993653604462738564122999557600930617271343463839863902308917805444394728185173944151592152172378212961804638796437769437990002255746438431990491287436540010197825877061797999009621256453861827547548194470606723635580433541804039668728987523260760281624855622941272054191241467435963547788309258014087974346592934854513423521020234428205095064061841820438721994223891963296753153764873763740469162779013760263967250744071634718979071832798348516683499674973682002517348641052216456819870273377511281884476377478262058855626291471689500570182921295199652348187637223055197757762667519195648765746393250984203485480309745656621446069288777445545647574744880229887017683984033471218285416551045121841114164979127057793563778974784123876981736947665439707432788749508097050839125629953114417873744613785303520396891905057444077337460611527517755043164967991353290215089783408871112236393046362800535203427442330368897522726700390640623449291224350826582621896670978649551336081161728025037770195915259915966401013092177819654356154088591981335651720995083568622257573325950585914758276074068486440346762057728465575194638645554282661698351674425125672366511788505850390340176869891154839396063334017243977253767886288232613970830587900239637886417041095886842517948478742504548593475423139013837031729949497713988465612729128951778827899865066334755689810032711772775226875341732024157869818897988347018014837468108635867070336519080569182774819300744341208595103812168876136786852020653186678057487890390636191248704173406655849118313824482705794265729147660738759726209755821285778426503386171242111892762435078473022237052738550763721804225072950562105583089331794785133442654158292446253444458648292139865522737848978051249707926389430514777525436483542356341749644867443296087417102769079968048358681024997672046027292870396191304449336476672865145870856350375676598738476664472937548062932963407919259560222972964217719243372101526110112426403618220052392655651189003931839515124408705918816663113719264323492820272827103166888609540759479659962058230195995734439380172172896391644416148194460018522188626881460977636449647101843481744117118715805228113955158582976920854021375933783436032794782771681236406739959358595804524710245772163034187013626511643297679305574683767096062535996641823468322820614355074749410746962556838635103754503850234050015325330470379487240881681009368502001523677409678498542625309353453548250747996030728509530900955803235020675100076689780654654310623893095410632282731542451930228954226419685014104002062075223695897420458730414725423471963784842001013464186301590160523238299423145219262574879749010767346645496744658238195596794978319697210590879227965820019354953244772616252414299695675462618495674658713476697995030304380126720697054465342971084780170017882787567114327650901187876497487672648241396009382641215337524693757110887774382287231821621281657115579055083042547902798394448535640538037940669456311769736454309640534350580051439752654021529824326372028264878556988698809239485068735295423688129914510513903656280246189782623128107129625259458860113969177603315055651153069971556081767903383321936918324591720391789633618520600603226351798465289125810845389036726393250235375197026156890451867407815408030478357542131171591410476031059255296266562546765058264059532642039732810337699779660446934851612446084190315476876721963164835458985411897501004979270272366671140768987324765049797622419287147084728852846509388289269814688540765259673484710291716424349382512120581622387553165304678926938164890825719314158798368956632955448882440569163589519351693950490775277987818639177067763848676628093171084974437530728267325595392684504917163375512860285819089353891572794262687261761409444509262744586621510033799087469407334178604835243801577992777984292054856618714105883534566394515066674129655690321208343654768653313528073730390414484086826974677270672628419545816961574963682926742249952332849181587115814981884747999457040299300811217467991292072293924133871464382433388118765082860448291557572528746216423977115871649168031586134730120904252846265897207412790025104562390019167606293934859002010039344979877023200235188684603392922919164798947263400031867855684665272888389013588569319845903308221006901291400849273724081273233343263260912714753846463610645810722556763087486215315275251066679308638994182681735072120431413641516193698474583752501737325883796587975532338060438634868690019392470513979842953927598055887351753707296209697224575678387730109467181339874147195650754716135374443606828211603697454325264138268743621661176678994210366141211874725728913253719988057692527156136864812532953660381986211028168902031759871406434142305751374593502748189265395814269529286622956166910559962139397575216952189400009307047643097972908763480867855794967601639710690368324526893579953548321625492705645308018296665471289927385731433274698392902401906723576906520725920231320837729116617901783798589280726618135571057846745022147985250951368988175619464765610477454051337139337947195170915444547914066559132300779404337921392105846516912547571070062776866666537770475648612746769079059592741815260627457916189569121327599358979579585005913936083229308990455277907583220901742371183671316110079698089056344592230767765282279307521739259314012540067548347497764251184740470819648653623481402930405182402745699918947124556708798325514114888985844359904878455250687176247528970448254311451850515081253130765519059441460600043285074815025676315850472982465470013454858200481650744535026746648587683112075845056371442266842563173247307817444945908374299104982586410560997306001352110194276191302326260476550319119075888218814845712344769574347077233719969905342573798366505305906309137740859389148971423863549930095652014230839210240096618891708381980443328790852057149172607591539963812381358555014039330820884924979831229017485103813232230590874036225145330637734265048578327426146358333851789617835106540768186882804747262082632625180600635559589255216129111361967921680848233207046419783243828630342788282177960561518506066461678185412890526548075286512827389167011037400165406902152363566962610525381048106173348473388536547876694683398167521227743828692927303430531689171689723296018411334583352061423456407385423719627189924281954396616080653490843368148856264092451777934974791850328376834618864384815431408942233522425596688338201626423461312532305202536422162161446884801059467260516451535548302301021132591710697849543997845738315627041068572001752389793159088979039114581745350349948126994507400592123950438358527691700159630642345974096071711572499150500361157801918966205923960865452569249260314939074992682049929336462237001636042120495124838855391545024985114813634649172592549415390882124667298312735064951510201846092380924400609927862981690326981453322159088550236213614879304854677592371440067359570949943210821202069964919290811711690649746950103673449023449476531300795786857954069194843527058600049648163706094280319110590563194535700350958302024512209208894989021862479284679891585628461411688579411111806659549899425063992853305469490147344141329808868436027775144587164346781006308616566707653262962863421286297767683577853196377727869499449204641490569795276410044655455238059672909915643042146100359095852792426699426648996785242800217048492518947011749274287119115464039991158140348539122336700108599561097434870778111250107454571658688174461254016980723532843432499641913760159698636708200107511562143597084415651391682767517908812240585421580847375837045405021823098177722178745530527103622909584560195783374024848056920835278681948332797412659054245712715824761053889054151577802763543625133369240062815611288005152930592523831596932943983088217194082920184506607538170278941617330315007373205848383643350827430962193590240093339693878572696439725477874784681008918734228345460289238478407805538654106374935622456479525246193568468867794890771015744118372477999437699067824808107468234315749303560046628741910355165186911785437821268605887960742680061554935444656920804783348177028858901352338510292509444318205496574616595640007035205488416614104819407496835254598848228746414417606394122742350697948220966702376174310425194226550261974791857112371157206322261073670837868247558157142090878574030363049875101355301495896915647557676814305085572578322115517955209769839962822722799262612627948166082010520676935561332408867969787581761413587376120481301565669304310742652479048139282272729042125261320979267936320534231476746254137739111656023549865645734836516545693326433289505520672915237902460173534921553938795213292268066591720007362797210976955864356707542669073557152225277041791248664043258467719724361812421455358215631698344255820982171461300907755085187802039626899429238059179016423692290401967073759843044336581224859379784504221175964324275920243646742957584023886953530645407993681740019421105190271318424226597695092326642516740879261990830846143812498219622093768347537249571684181307152841772620429256505862592449121886658496220406970833256395695820109813306182612111575296509769772806107765396574177710265443856063096814905174267267165705676098075884508021175091933064686926385363587346294356190396571611529788306012899092302802213772343539508599916691924957590723408796042036440117709890362065002207921590133326237904804591620740113508655921705774477620692981343576981113207138682027814137114480096318893511214594435758920767470719486625081201432042855125035983514879024783167324404118925326785352862422705245298604246119230877382213653025556434999134917058363638441067304313207514089868942787598527666111763829418806460463727012472309004999857713253711550564894248605130219684031216472031568387137651731381915630766746382940263550545265078534858139077284891932098285506635245301852410194175583341889258468257188245001992154673296581985793874351224375270327600606005202417805309247518676824051739112645963958668529605736096300087444283034082327514860836777792134058705353286427990355377688624606670007846097994948159655196994334246175546977800128568781916590941629851216190971113834538025176180650195003496695983817744068074632476104712696710042733927961335521847055234466255734656318562785884067445258877831397968247825449677362177429094000127124649880442749667448631685985715243575006364504246765603168297761639420498867080263544857181184645542155954349916658160129915796168012674626049607726200262380520758197748608232267390588697455003934010357055691425650629690290478241152570769677695081546966003233487750166463817220859545392183098288645818829844714875431942288749362999690877380252814970987482047362925794145712165959535012594300666126440212390940221297441073778329767839104169311722149426574083303615426203685416921074933938598828394718539440448576025513932303421277134738988507602462700192112543261333762116852022063153690436480195907859037146634619351531954385350150978768142386993167551696907867450687749167166720089513943461115489474569847944808833102957148089320470044930050784703108441330287548464983979762957006635926106172707153319695468218370927230213046809701826633062184391434528339234998809054120781775552984854512341285755821016276526217947582815597257472762199271491002592030120294543595708373637528680180809565921586765109942195188469878082529198646196372611660265316182407181489290251670836504832676156898724802704860029383528421221327861742472385828705747309502468848330047946436021740782908258243792807799529184400279658521580806145208688012376038245916747573668802835772733176901923343822955574946165798514022870811324047918153227582151953438656874964083502783488055131175714923143865360842714765433673110286591612990669495900006955348706995667606656943812416641212370633244279625657471684807906727760147665302703885895341198596795509128221013389393512463056197952321398965267919439519791655233180343989112884498894762886497620518381070586495210501495653179665833240301452830937455479663125365666026630942665942927452226970317566192827702361352083322910079321837381160389201073393755505004973379236177157267470231612379233914053783952091531103804181709560477211403610250007638822273829072464889192430446561223088211118839572217993255100118944449093572834769204711804770992177106395549121261110307387052815263950587133871576728283274083169460286951600306266103221202264911930398264775782050304739153535413240560620468139750341066126063217788377955552229693667430081911490117720616466611542119070488335918555254926211856245513883585248144078676282729749571742479132244883453774638279862910362591931605397209263777843201277711239710851705783062466817894658119403745068885739883704266312387576758643800313803232497618956892057763881098130030702807506578411708159073907190053273201840165927764424713646280250626530735606791779135681702692442093623583915833489488026464330264381046396204951355035099234224925132191823961718139257584302944639034230694747030302979706048306015844711345179140249082554884158793636464516358115316984228043510928954151106356011719658489333053871309164255153843641972786034157287955559346553802439256068597210360230554139730824444354988029971380510405636738661289409068962866774308594471512100677285388245115310064795352852369427756338248440543326033760482155338826864000913823345541989550813039247313053917095716460019020223776649578587312498411994321059213420098984382918159361664873342514350710167506255126277609994000585437667155298276193719942811757586731234069974994624489848385852757400610252883734588974958848583632956377926108225539490303494662023182254196101977885270790048825183024362706728903296756522684368458192580540875704659570159434047304159658115697067346231879607342763928720559043080113704762502039503500314739552126103892427441870830358929240274632525477278425080493397705201308066080800853604387755978545504048680138141196106218833377933238082422175297712837033065177825973383259415686208673053207558525283223184655058593058223863400627678792983935924362902019701903447145169492817969987501224239456442019292849941902033122879100395142893418688762387829459350101457202906699204234965328266670674173050593353136155453638036441732394375816016555882160552828780221341858237752520120810006964339788764202036672113184525068743344543175132107959359128278691510090277832982644046887751565764765913104831496960172104369045254390931927220299648760285662552411591678572753501418030180253533921275278576650685861188875386389727481829209449395495859727389688585438312247730740556478438585813918322121923533505966998018646587229702854279016397745114739865445181357855939661968041356898683143241012722747677265618673909914506834250023792986663342518338088649142880870584110907203122334054547458574417596373152323125577249305363952018348369050874928060529064059165401851020183248727735111380254463704828279195272714649562695162135108385740811533397780312204393992180803147726441927763656490077366522848450633161630133210709914443299820634693201233110032887863072539598914156567651378010320284137273009639809262103613354699481091651797576497277469215835762399693546955109865165362624326911064181504439939058903917373454083473864710333801671751962358816816288560901955829209167154463851673974419187418671045158224362216553404047013172566301422228118837913266377689872825004981379417614380458982576898435479683354887979971101941060621293468866909143425560882866406828863207478960950574424304316827219605188072552723597632557339202868488038488280072394784162497536544520885165808768613128943133102541811197417275352637607926699268493439479246284756178248111770802630053890867019644773067990444348717429765366803680123043006234033219236440609929294279618534525810265771333640885817032412092729829852973699949582200016697765269972856597690425856499585534748849480085145384334842659232814190385727047675404679794149227602356424933763005131644022567501035914116165541482022669087120759602898593009743236005358443142175521345587915158438653684546708946460999066324400120773847465907546364509974422179904449785611439515845974569275749642372281209927253898889003864863770122576415895551678161974903582476107548051122501520263423189059997221170282279291368601254126165285612316068729694804719374756474259971694249855853462488301755659201960741093149341952265779630080429496619562807901693536326120410059190354502794497045693346763225849049314145112254069419267649601734960086577882629815508082841445144517470416097409769705460448160718048472171927536981930489039095356916896457636083837773526354267263646134718693985156466622178088421719891242444413220762526834753316137967459642519364619482329269445261768286358522047207998398826874150749134217504597236582349559046262329045733918406249703412525801814396247788956760031731052670170801098599674519962040728130317013346524507592413703223662696244876939724719026444728671638996203048838701359802261439203720998552890372636039021215236406753481352042832917175418389183691562134263110076213617254058293746871586393514402534565734557607674275638708719058774596768655463271295929829531439788832001885506324666323739813243656181821718223914697813069707162504196972864700582001714976852780206334638183280875093907856722942659931871665515638857112174158564034681092270793745865922396986526438979602614148359047800257724245326267835316077931972976028691628858481035454923047011699076036286152228561731974318424028463082848712541726905330617248461398339238443818964362633616175070135223889286330309951492184877803646440796675797233339261615101643414153648702222755725766205970766517082461634894004382526878613738839378850597819499566813015754857055914370375774023238800075957405865395490755600112350513977651665839638170706978057528066516701960058476890308869402315859694393611268594620176375124907253185664583677888354859388222520788579213865833055427690597388513712183542055106382482340243621642823849384601013922376811603615765592204482508653007462040783414852384382278446066403229304777507930480931811446520299747299130393152245152859691278781856546559567116668195311345661511332102000649371323200050796677956282117647904794829716904536132182051212614421065317540975905674622689314350724386883270175377772320646753436113634207333722545821889673732489953994950498300530927216717392893503119864859884324169266523584022924295247089663622899482357746685246887998956337644045721545387561926272199713836349104267682758367402857392855619175067188306432477408075901649728533614010508347242949653866937968218474445541845500093384381948862536074813046230927735008902514046907712719660343604028460810646162492970590783941272744285928002648240621501636815209968425744993873760137381159916894344025792828885000389671200180662006220570644566833855005228337315170212223369025524154041048754849360492587407241822198030979128263313295980714580214741000408591451859326510122998323641360479628132526305419833016090078896221531174864421758289519860665439321520786047954169773423369853830966756583791514048486937529950052109874012210272567168755922281010408670835506227225397760488776166721616398673076480607117408537004798594233507943535920022947024715075001546495719759736530212852583133043186244990080318179241983841187401189380644280242611889989773787800736978389797203286234570877807816823839377640166048371931988382189231370338423497704423040776386124228549755600105117505818287549472084843445593370492614463233744394712970010115169161305168716093046242641588271488557477542450679032054159018064328164274189960957416631656373957509690044036676763037368249447857777636885752960813970230436842399624006364249078944620396981955424381186350932487945718833361068969810278613698393004841432893165484687980921471587604530700513502666149016515878306411353536974044440680671023444154411414740324296616886482379379967311750287682662439541105411601056903900132643838989674251625967911156060006675330271713847734616666353888996547400759308406067586094753318080770630343726988218261796763957712945492686908049664820332354233188997462235342208245723996007071371612635829152714912709898623827914316219791597788639835122783313798378293660856286582742317041548063148885904775140901079035937420364041363635952626947019097506073722620008223588981824903037848081459714626620688672190556064030265603446517677973225131366455474652518341541019263663581981717899403860009255619711972820253953484203284625822290052551000532685693976768279807148822231680111151140672532054777716584459397803706652773314085769106371111929220157039177401217664419136239030004398456227765833749450162673480032573726827778874578617915349679233301356073906915597567802973639147176947980600995987066373432200272696870235853736350600977624276591212261622908919108336512676924980184981587853291904901551758655372258642893391090348691650175939722352515865459557562932474409556819947356455544667762683805812344245901745639700721145542229286067477165633829004272751189935241752031152695912483062563213485992921863539701788532682951190591521690305048298700778968756858044720495264884946131443282110685824652779935496477000634780110933560559659195963104851051116828214730350616433205871500490058479844025313138725838767427331701039748287759782014998394690799027921019469221644171350536887004469364142186352596777019031590382056496997903254535326427738275527749537315801893749251540664066469740005598738669721009014787566676782122685000517345565050180229443467400209035410313965344154616656825546857068944925630478339353733583559725526508973552289753842116843958141189872071440111718292580525696034029656705787461466178774224547081149740739593010909581747998846869968924620570513457820952282645530314266343220395375106298364698933406801291487498544165183306832939870590014903430112567110050864550368959442395210220584123409432632911031419667088154801852333714590430472103767867931679679172360134869864699951000790906527069848801728689973038168211661135074559593016858738022348904458390096594215062503354399563299622702384338824434166054667125827746492877349260828511287964097980013425476791086122341877482789793521946677971149948313562745667667887223368196673407085744178650336866331999336135766663879258152665491952681057597248179070411269090538074878133236778394311960473496919555670141768105774995043091009517013305977201187632987969871755342719663217954539461264245735216335514103273832690571239631096111954689534915782222803387556471265934852059222899479884805017764284848886473490116949754175527763451235810179942993015300630700310039824634990327105276052623975104940067735511536444038800432779290358227804108987895496675039307933796544406243142085675736805302448283224679622376368536708427325936219067458918993760050752861196766997497438772114652643103797446361140063751027084490105964619770298592078513059061349979097064496525185684289342081179357796470535830012314536813245750179697741831295642650482455802253716746590856086198982274749657233615820992586296364914391769259445721660410785829387039804830734571960148681702056300188398027544432346068098002018848138490288936548948455940680412726579229661512199443665303553069123692967597009325052151131132309831841286926416485940943361390935148043931336225173837132656856562677541486893574052967475516699182643006560362323145391864312431908886641217352112481647012647698520194275015778297392979938226659958058137315553274979311839728902839960929403378328924795351317100768857080444726871713872060026423096245463046088767343794673900903391281049392851298492174024982292087130058514933988412115596754480034449996878171182316429410977566747557302248777033169141624402373141798947209235450750750692348458800909690789969788815948291581034793181426973699081164810925645406248717355116482014711462652838191609871111057380332851711204515892515596554693530708798224822739186993637418510882780738475720699387281077926893358447247969051584598380486953346636225470559052166912280330574698582061791200971432197793276832397435276247878095102758694800529212963871491902183185989900015065828260786370716001005349623986684019113537185414237956153746650422453062210703169503108639593448366887876118012357640337833136704839272825511653343882748660633970722290758116467592058733648426273489845112146076888359448108466474770392949538859844425361165606468298762246008985198049130771822641916182260378032607946629452140556660132206854483068946728328211605063724072858676642627644782903248757484598762915316602915739620793456630270569697244326744464420907370339367625759211654020213877687757574183124155244678186258149443755119933746472170959832162370082218210770673949585796492481735063826161602400225642221430341315621349280791108653151059011740086141930180213016152620346325639173964257120984225820758298789718405439699468582371297794793086607655393457653172442941577654563721376171648360574550833558072406203664082266921248027641456302812391134202091056655287602818930512573977928382310556222962648162471319705461349574624105685560932418195569855386626111847024877589745222054264912127979943500117850072043468945934248329595917224445057869778277564297219564837820600548328348617554178840640642910125459870075038678651125804061682174567378414322821025067843176391111418283071399776368319842498943580722028513940147255598131093181292961052069764624486545195863990326933706309852292321651509239284541337807563796298379520399051633695358993465176347746664096972608649857812122558821438173164027541972279066538649521343463394501905470637465359542450619381670104272931330512952851732818446770583096653831415078298080569189187440255587844519983816186484393687577244408428501660474959078065715040643968098226339698677490640631999397290184242587205104575145228628053717550220783251185498614015472815335195072526182221989528537773833937442859954002320947538237987464955826062856208203306092984035259574740704026719135128378970293514683522784305638021481075702623561916754688280949604666905310909264505398518251253130285467650069909754148113432370225065507780346624501086635208591167410788191504036278015070843813449404993357861137558873775290251760071358501762347724112669986015908008650995804928843391655607713391241253793997643209052574479286673567430664720474432011473208503290612556182589579228413436816240373585214453665430780840953605254370940599886415964765393551517324822444284144810206808330154488013454837213817253655792626041325325448637567930471041265969713977030988186540978234649171210043221948355393080145679680732519779050826096678036348782242741124492095065847431894452875103316884624274129161398468082344216467129417713526479297376222359608718512551137064164770057177825046403377299987653951606803470930790064647102211863548084994393149131671935841291302764843784500399553333783545070916124661730122742391275476997084209935142461400189187805412231130018294519795356162415901492464612848584064597115467065423882025753720042956391566824700300012156392736476014115921408956439671998834170556643110269542852648159773520710492072751375471956656231409546173323793958854720627894273335568352438378448853280903377735262533241218574483376738541155765706755460494996885047814813003088233974649295170368586968892334771294954010285254144131749072337296928363101795959371417837288290792598109663310337590060203272229143068837165940503699279477175505174286656934340951502795482053341356826534840062438832053704829848970168258724181470669644629009551702969817390172967749041214208444754000272869800855604719912666007257873880730259937969100558381090505189591998015762166770390653188483042285325488671227604023178778153214298002261601386324012854529249077573917135208803012727183836183944683697633285379353925577881389347202285101078011904609669668675925359264517795907146949770586426443283293148927701775519333235835714426980945865268599298134335883911030811173538663424172726664717365356953289742673280275756109750984364587185065793665885912618258307237021222353720047244365319125493873022251758944362045699156641177699659813697845811164292418741373154861355251147886410351823001138725611935127872929395672104976030142415427970398901816781549875523411000481477254857812817347689047656439684097498495341980065069618552648765957151229435032880805164091166694010530704420059634228784377514726895405198777592389404872685460994412731502129875080950730284514088264524109561395068619833761451792736099674873643885526207427973029717219220368886917596063792855075676210690145224241588189482154914992247869226155600979028920177539187676318775783141584118414075966268942414557584888828543258135595249829009997312069107065834953196203555685159399514050047993382457831542862347670925271500788395386309437843982789558989809638932239777736707604910498817184467243381969426757947795030557963812963831789923665115964875139468568746147600877811032546681102371255525960743764601602984397468831253776516984306174840564385045636927935557343268044315632675730181499569988090226331102413092026910133272606144923912025198243547547340126210233558695873734134309819361285250609779085826452844699942642014317755396526722919679183861165472399794967319244638553349064639293497350813746999988572160469963271659004006113540306424787044497743829000419404484918537868880821080319454673542245737083856023024490642789574871545886976924688703651564822909735160367683572886323878271245853113740080037184287541025495387515515490486257509413942376868720735195632908186663968499051804850194975472779699192736332568749049850176823209372559015269802424149972376794230783335696836910334605747609518514341090486930772420727943819176950142666469475767962142444678297610985879001360037337560231670787540239898927763998850186948015393926851133074838285856317253740336306600938977111292372927864425421025021255119445696598859656745355359602353845182772799910779453584362987978286771798078654742954592877294269174200735480962408559547225726791314373821829453516013175451869614790679878382777553255478964807906855479360402189645487682569256383300732121804929247871881050073988260481400628551123629895808367425498301748036127053860974796700334489324805955231325528815784447481575637628539443348193515804455162552782292060114440681823881732278214330093838377506649962112129524269075763114267565568373758388199887512812854249751385128638037187135575074638985021408410278997712466468259247527962703953513383814756281510725883287808977605194463786856368580661301817682814012117051198079054692165086204131814247726317521527909021808492972914938473014573908074545310539142605240822029476920618127087047842514235284475399251934695591983332300169100015755812193128207876475914285365488773354598170244943313527411041823105610078544006565086553537958650956794555221883985472024301753245446154778887986243563077123176712461727772285525962702481031926332241989242690160149210658032363144789480181166367009919221392598032899604302718910496447985388591652305879705366950468261319827404489005002452322125441368800577006552122464185004584131617951050327409750047762270189416140305020961298105081057616498300795423477216762883888874959035128636713395414603580807536656016279377411187527436416597738979121599981194272353336116048330825746080617309902227007317291313138354041455008873909577389853698409084889383653824968336061771474974133274301749278676343597363082611573150062239093835125173600303421623042305220925691346823814801285251525516898435339676123312900730502945660269772782194518863186285655627933083102119249698058321813882760855019695712280020619617259265713855219192628059815222601510094411602837082203994430102654322536517886137239420556524221721997954197258837504422205629168706301274741007679066402505061048168275813355104576048166826896747614398984887383722773684502479625622744257435105693596745662466333290915696380251732489176989255785130595607925789126263370194787162690817067229359201444746862928704269661486385186818543208673783802665822766798922668644510153939273335668936021907941989384830404933357183963922198156454155185652123486741822432243582511412090207985161752822285405047497179336646005989997452734577994508734227218690744211966578942471851095687487646335086568819688666313277913566275418980869015864752732030354955183581782890087250619462913520327565270373292261066252285797238935597438165746437256090896139285843750597592175697745627125415925446160879352216074852324602742182464461349786761880944049332270011340553053786867247051383963457484950462101286020668827089864731219140012732591933321215505342758591102390979898220079287502239272091740995070764931864294864597098585924067441445728782593654823680722297419198506732596415721162401358274724401732858871568340001647929093288208869387464623550699184528336320422207086380652813120583863254875564648473761217170714745704383267027870948134864144319661277174944422767832773807193881078210659145097009419067681636523672296218446863701346576241540804814874119932466339189042111326419998244292242278882261750346526710593804006010733534834136386119901071124075321275317885249421457295684231966437841191696348108488099003368936011917518296968698780589147008050413065608750833894553140101155038333587482226224764395250585989840283891621864647787552934309246330615855644199073433566055262955955589153507601268786272555285524769207715233068386195071860512561909118959270802570437204206548232629912515295609961745850654130632389948556102272330114473792143429349952384553756264581447544017723453994651511441653124556718093712092025827292848583434655223049953747403888105396366723842315101414599351511524201632699718731897700762538641799645904447030334452652781349550555477765657601305948337067483556256307852824925236009522800070694910008057613661197582808018919385498834634728011194808354253291327611781227948803415750701328880840830807959480019891729483381147411836232334307843448072570562566960247818800166174199261247462338952965148584445433136813945357460772193327621234444939667209517414262054931295636032741081221926479545323265925491026961528599946452318984066230689503455421346185094089388431564573648319919317526866028720383113537970091533165193308251818725914642642441632282877893462947272096121789665290114761577116813647990114841551834642764783261242275963036553830820405517937383951414171342797490625798029697939697415675273325356313337996426345690681910325442558293611002839120275120739626494873275101028043769502434646231740535179202670639794552145260584767836382401825086880099461493054354546073519524061406011816959276486898909978297611621909347510342841449120621063389525029194544455742389409125965835644017140943835239769066030791716329179252027726134267056978864425580427844840688233279964272206525093098007858568633241765815139670184089416059573149684768269436607474818174784434055664175391694667669108733416068912798938980189637226838747369191360850238910634913730827859547327709272788738325142627745197336545364722347170482014124461779120504049571307076908761743306147301598995356520919039104955962793491416903458667125029631606168017593635154098872719210777091510834820076871683201171204020724613112887261513141264639633664602792230415491245195850732280511597009118943102449211679155149300635200843543293210340772831868835702212677551689228245542850000663576153364361728575532214688396980414559459608853038674215062809452469637281387688366459581225880658738768015659268519148002402916343379324179965389570044876307047013841039091648638181167561772973217577425498632646465183963111904875700352071699819383812601016164464621201189313913395957117314884913479354336939571834993488195539362233968733317826300539233931608360558232542732561426621016068417197494006578513795887172175223174179254697412384219035042823571091119406284558261472811179951436264745903731192944681425059890493513927324313441135517460980248752227064058755227570727997533814794602657037150082368072271125784203583177523038300364577612242941484854279399715594924237464924536566981430260469395397145805219611436280167568188055289876188295844483926594409136000710884462248968607336961831887348409740019762689535413124709604819858956717952388332217277720426641063755029198492344629660235368337674439131592061516921110062295061565041963021529950560596212979445406119137587293588405387813024925597157883562962044846610103023795100788873735028630972600842262406426886191016336240384330050897224725037892044185623650514534292740846964266143829753836669446378787407029379759427019915731586114209301114253449621472096760676132574228605353459067519426679428124233988217026294126575612180322491607995264649383281676990374658741234827589643442205656696051132042269804770858694745263508226787148621018860022367098407007460213791156248568374471869722752149536124440161570359344117093634856913248803486605283897087991831878065023044903294037738940217524281742388861245768367189094511252200684078073757349560357998844989763290394624133809511002959101494777408417149869351697743959134982036913624020396246752337317946916225694616044462371866329588468329638396370374988057806970225189016624566889082668905275712078929292274829703837983078277572043836035134022932307527596048510251491325859379189525599373030739601700149065009934468665707409856990592035490900359580011193223698056621144135003346013333108405099437642567386653887719356545095041290071273606212189800491156387935421985191849032725510781431695110521104876018550904086053111774675448307643398225113117012302041072156316740066342753664291821701483195073723745364334555655143730509725652681890880089008736212456597099046551625560779148021456852402795873822743250885717851771531130152547485424518575823193071902984425345454010782924666966372257543918952782087316043688934512392969674804930745065258247727536801671448900471093612373654536583802280340798702940529933412509291721767375152503579684370807662774937250709690386458166673602710424591580679211245889417961374118202684584896087471900457723658553828382304279665957620906908868538069318715467964065403319293899758942056968776560312427981736702226804471097574990055327530649944812983666478675253033906802802848288681877894363386876592339384023290898678872897028461845483938338589245674031301811459637931628270950166444636504762488593208177566009410343638108004243375939301694140107971840070464774875518649545490253800671220335880665014410638453383944832797610137659825819972488111855030535176685621187159464829333056980920236353537077289827425369389872334911370566270113137447559176417264365379654588929323707097937610047573280907364405169910682636323084897335072934942548428146425637587998513590928012471743847577421392591867979835846726378597473979651296111141498515821469846408251698302718849197971643734782432205623182841989905177109028532170471047915196542058632262990193316322709306602305847350630750729496324753214890461546980083764775561002822843850742456709367367622635190679711268006700317151055147286161354621022083718445320535216981882110653496196367816312164490893151079292504076739836439706935935508971344691418323084508432065395021795241903259832772610938096746040494500754348426980354949108368741423088773669521790417393500503214653402290685192678581694882851048775642054738283094569498585932068354296460504757848611623195115648877033703378582211482408658994927653014256184580027031075026499703955207477418693566867801656449661884755756901483145073778220351646494627606582650357048798751521062035923990207079171811564233820627906268468789516455039688018244531062533110306738534534660006874051104052163757802504061772659070359271681575166036012410748665372021064263213547929994166879118872078022481450910034115280260487512480781243853922779456760271439718117311372577846670744876308199154856715644444978178045469151638482862530892057575437822388929277815474225178080114582241035494536614751647389474762259662967687402124523087850918367495928128962827678541629127935485596060366359659231662258952614388738809272615354607167537710479648097054314672643272627048387632299430630519124122860508447763408759265843469000352386422164070881479218580781507500476335697979545683161690522122810471131405043041043568626563254178061875388063228011041636661695075436845100406122349156011219883890787360831603710906199162737354052640561694853140804817758657633840214219177093836993156558786852278027512010892835141683812207577718509326641691988581748025375829995222659051742111194526065327544323870734319571586895250438406847293395111479434333110093649115609883755943594675430792465054584582515916718492551650155645748439377536610800236374216785985779978268927515701581774431269406701041438385516846423163545396504376037601626614058883394474196234554034363183812827982013799455701964090329975397254830553146598167239220481970253655836323910693867034542661527610058489920707555278683491404256197474388128979308871718105368730486088196419940610705216559246033441141178995962870783191587421931823589903404751503652803821545365475733684318418260505904434465392948947817548914846298832512234062469770513893989589793941345444004707381647768459951737874942223548495665190722267765203113104673992349786556463986063822214655729793085082665310222944473322687989172419666536979916803009315461188224007790472244013496517426112972708139004479091022402410709046748873027996022533844332216255102228644747779787755861592873357159769906044714671400901467333181481746621958674528830798336470683690784742060213152004779070934325873046822106708744145099124555981110163021847615856925300957823185160593506385244803888386040005476556597116119166841153960285136634157695690211148565814332027946830034609304973577872364140247265704403184939347729650805530644056952765030445841976962325268483159171727967001082517022135371830849083401162167555006801512876226500063068168764095956090721874486732654641756009416742136902899870207658610744835316651179367117606627372670770378877354821581238214451810719097504532545169512977804680820909511034668515850396115173986318706696372373359688959375075417592761196049764875920905124364784908549295609820430176337482534522067975258328892620694473467660614482278444768230720606474013619919915984961344082611987515355576759485166307873401297463139059302411686761585216956680564794878951386851246036046718096493081584810251789763687240129519617140917471476489697420912776133803187877665922588329822259483258287369021380209309400289051655634222807075248986779161261130500454800494059967590312768342309839993547237109196896872539269174510386373331038874618304674048688964965949042729171125409697979610760683145345518900084421211358379893750043467226199643238590618879631397104402143923985050958741681643477677760171853251174340777822411477164142496453230275118799330561187151011609519098067694517572485136887287948943401975236284894781279493523708951388407290114601399071428914187253552518046501688761573084940417358902325276202253920608364757776586283979544062282113172270989933844925986482898303343795890745819567304527523139773854501345634310414887836114041507511724510705883648125174478328413176842174160972243798514624915971332810784021172782796411172479602372269927338611126805258036019263478077452880794622079829326279867092914060130520606740718854666987215219202881617278666393883878092294145328675113479093601130277185930129763182259950894083054614364854348891416289114997084253694999685800368888218105757010476718744953162212957118156376492547965601108019612265548430864122355467292264227679594234527020545979773555164286948040123395680470960546017447186179612726548030453448001484092440923658355937565826180582706676931506782930012286962191994751109016608561207455244603196600495996527271275644563581461444583954120846707968673037798723706753871611417163697672080598690485365340946763609926023941325815819489675755881555307172342474474745816270306067103547957986680559804978131483228461178270872397494841197654629729689375426985038187459015018736527061591925262678713606635615924515190924517812655697970321797712168806199028535859481553174611680988292233779195723188623339269289786585287512746994494269033741702996327012603385473661325526793941996276499609240179385785389555034080975036092051954476019926776755420775965905548328209638528490395837047994677076570849539154732654026253563774834149040318360841154477841894077721449825510498222378494536901911280489503554803673145717691346948700172783069545152764524369863120721998696097101392364554110280561079155251842819599156116590904470522658144801426938672353536451877502055103272203820010625231891468332957910191553244180604622158182125063477138030931336338641557705280238676160130229273981343810557237622064171961784232845309143505707655972430449960925667704739729663925989985692411127679546955536370368439622069934725287436110548406649176005595227468729401387287918358649270325922430833180084433020249612152008265624867323299000344769137464954989070660922861606656953827292134268165164081075960076386713643168691791811547457741422676558204196959636889310902004789637658701155350963644686375996354664890256432193490814270667042119480645403202405244560302775821349589342164858563945172148639465302744399366348364595910703537986330690824388539424688987911427431423902005424864054674001845156480749155200821684601467632662277923794633432481283848564951076459953081365885765217621228908084669661803440470614836214915715833326976376089187357524169244121525193158591954879693684666246059177491261931711986696123528524190286735920738301731259533015757072817872254931472477425179365119920537278938599849926156301806273302151083888487127845353028285911587883981881338328026974617370734977746615463059504051635225637571023512568020813005955781474349651551058528901445025929711121251892471803421921818412044450719247505753539052110467662568761655834199720321933737615538780559203643472485298147541764493057207785740853737968077312368119640220509137587261006574978934238722659468930252601247166022704656788937233239341822312507298979611523929215340960199136765462131716789870349112261853118957350223456257132667585785093774098097360413201869939514229102440605545408447578671004739157070356709043568276645486971604039350319050780232527315477609675648839434497926254344891913230483509820345921242834373887135128327307646296533106686016968529255211549881192315472998560250427244303284638331323266310513454672427142843502158841523890364748447209982099573659966867358801455705378265174185447327594934960199367472673585255411367172097586570806068026999214806379279414078309321672449460495986307962472324143393967747718458430917375196994492203112293168369038275493673369964804989204273959645664845991808571449601428595261259618859069969488535002091392299480553649338600897424708790111083692073633558104451660131909136052761692275533243955420253920515238223344363741440197300558631293982826912773336301688690189099453118187324882148760653029752304532807217206092064782193218296116835229736841894805194892304938063808977399443764361797896098447385568464619586549200044891855792874740105715615087997133269815437885958665401210998240352719818737760595068774838315163730744935354696932248034588714110869379219766275621279520520331632742405297728511375929591597775572553206656704217798924720017653735046293174276462582433863602324056007543342741265720160928885144432651270236457372897722122097897250811389937044196761349755877654486833080839629867801418351626799806965242150310350417281714302673339070828757473355082177950850461525726003569142630498100522033080287102224496554433214742163464040344782288052016411985870415946556176626482215602271605272816597175484859118972591310229860095169088754015396140501615613656318642674287212663576050153809121863494498591388745054304307749455425719191364510118287758523013605529337560770609105235706629724593542256003238186135489271569364023257956209204085589536773232635557746570473717224469228556663582932508339717756377988778239124395682787183087429886417971831775649130143615137278590974098236517950583551817752273088188685498917424746432876081724945750969952408535344216323964199965416886133724901264177837600263334242177907265567656736000857392896974932863297033210836095127730815012100013882203948425610496531220517510805828289279899225781957599080440552047359767253717288873330811798356874800650453809330017375356862799438553099001165583626871114338454128365470452779820471610752900796033321106592633675971162593592032317214560674093016661282904330150245341037986528413180382829329463743912567350781334793751325948799032103906058360884646921901459480289964715634360605832070264596062345790828820156475259779408490810707390139751606113734984477538673864375350918168346408514191272810671535527421786539553622621786643382639268745889404292511897788771756485234504840394355221784010386838640024865661232765059911969693448759823373452667713749680802603565469573616482029529313317269641439931272669942618770878734308635726207511707125664538549269761211905805423712830238699114057243209445573364342128688723020231915029890723558395939317153755153691256270527783665266664038505290312915561852154046435305884772378991937785013580954476625449717729723582204259271943049157892862052250307904853382552328218004257591386607161543251250441027825244260889306219020366066061201879342917107642146615897977736857433891233118880808100814062474008562852198956569415044452677833917079375693593389040999058747365278459717107697914419054788505789626418353386818462606230438823799664788552712916833498273038576682510360313888054820940794300047675367829454423195303093869609445210253454700821085795444405830043076306655234985525213017063331069436965989510030344041764876825948463343843143709012411401311851345538384991937142920787183151322596770097989133815216517490373492183585603791631475824110105959710314288133926984326081751948183348374964381149244223302595927836849607931014370354507826652082378563229152331003861522906850298363012348493214943495524348234547300793019516285478563750453331200961333953725653915471664263131478510891220863064134123048942146111821555020812369280505177999291986123737619069626914566095172153085599427333460028781666234417292826796991502232191219548447805190474982178955694363828087714766160619867807507176633281776316033985796103522319399659657372162264742729590686163194685628377896437524519349311844493423898795542860706189020050718391316152113636376865378601062331228819770233552061290959693108253095181338868979849587235584273091048586943335754256406841176335275593330944908766399313844523616606400197493042769582401227859812634284985620794859806391768184028318265638951031385720002191542733985656136362449891305888401372777401929410745290116046581389019326706013494614700555918455163478916584229355444804175563637373894378420079855784473592426064222191741792852668981797214440571651353502153107697275219975865597336136135756484973297430079625353178754676481650323981897552762577440975561922424970657952523197312503551791723290101094049577447249900986396725095958873325730552856575154472185813515682196371039081501205733589602943795659907759889876786569436220734965332417339277837070449700599669988957038084521555264782829190150561957555196682439150226700128529070634662778131733865107149939588089830766577740608641452394795353357364350372647148923146710148001765843385029792745159768123639436019963849035859147598326148241138687550688199168047842956480551923582130664880116945481232395816503687656291770029405040509147127408571428527348633283948778572749475576001303314479537032922686348720392260916804882614573423988707998012210803842903069420922283718761657207143037172440681746296459551872371783791286868193766416514522293701900485439209678726924209817355782118501182188097139909657215291298054865515704699717009743379967204690955880711789743498992297844707699866068472673003233584134916480643105318230453571310043309843617028667102469936482977234823435701693364861783973477270516934984905081677871215451156346456992621903163201046566375451872320755013843786319704408947170995884471643325602733543906042211351795397343681647319797365596770945373567131593987967404639771662614752317280023612108857291075242303870329225393553938063721083872945971828135147856346542412061804783189647036614994838352347771157622748334721110302593867271727175548495208726239722421488574584036462468027358168288477823957171345494952035455765611801862021180672197277029350280620687468913078493940454563271010489276422981933803055814140422487871339301375844040925700360602118984219102911567486235692641181503163424745852846178565067325046500195523548368331002286581484007034715019461135093995215293801686704041195719032635692176391137361346358097438000408060836469307313893159018047189473576173387701835932415431328632099300629653483484307074351386776211400791176716441861587900163399731445769109269622493611275648564075297648685289553773577336619364612842038289951670023613945066694579688382549056048556146340507132093163917273286049658418043144768703848885821241602581098400949836266009963493378592260290910650996204262029622632031156208728349599995553057928241830931084379568107500178976528559191596890183025868772008665956969885965846221327205284270446619070839708414334794407768693824783847563440561656736450661171235578724727734111068999570451999047812914519056242527872682451284942034479257238913948390810508457957418628664062316668619103008954767286445021280258432403296854226011423156370984474001275502559343803226662072669529027521034055424668670493148883222013006678026570777488293401985724593852386253819240823905897080054869797246362319936639820998083005782166127367239184025766599306376358095601074475461301118886277826410676488605098425125513790399978698986701798252223432265551742741302503583585861923565321080641707022688557944225527442790449918554906094000081584352052434821218980855978897864839446638532842027493191344474673302568135699406842766608922113242042866390122715331932144100934979115037954335476082783337139595526583021642723965554777193575014809725602131258933583078807723789878085868198504570388396657770504593263281479215868083351339878700428418217228571847058897837887544616198882956374929780288955188965098836486781902326064991502916893935459104684320284219212336615062208934998864855673586574570847413684250287122060129987308041514778267329621857321501603504753933978967983584707354012688709699081691083076409039981202018885100806348108489497368773375254373495694865110588900658090532540532660228327283265554239232118970402583992556190699555230605217490451710397299333942485690215180528035375083318645020384308936318093546421061102365061182901029459042135162443752519225955510059563699761927456087532371358913900608276014219725504965375817340874126346045769683309109316357480012261233051457594063972623049427115435137908112970452751924081248766652434668522536135897521352841678161763645184055938463894218186308499821056945473375114899514350930941411811578236479576135737205707282852882505243262505492171555076369137621768216071416485443211832561674175197263683735883564653148466707044638654129525841272752307176862388200801650266422384211439600389319114674330229968004614555962850270425577819841365996751287293490272886268335367671891215491780791361081380293142415784882052038285420752917438929132759243355637682144190622268804657847120215719670401787535005298877220678573424652056478973903011726859450113941785973675297557142753172593218588222718732210096602102714000799013009747695010831908748162967910386211034279067169907817747295616919410605474174370110753063943325146726179052907121988430794799886583577498946150137433202190578144949238922338275430209960028534484180859494546753655719530661096635503470917798615701089058263956402704080098451254249586368572176248698459331922992433611655528288659163195602348619198092157578693711005729071808393532952910938862166931250819167619685248092000758366822696170633249953925441542755888616999899057466222065545518952311226103928693439790306742351244484351124711832175731544772902657664375742474032283634460264953674467221030557846319332042710220281302432198779882712325356945943708457092784759211157364390476692388794227474192976473260509184156278597072693353980552899654256376409515961204407957473857587194080864863606058575263753338958673849992043428486417819993340196090737882329078584597956394624144635607042346316544744059964657769357310472748269712032204326990116371200358257263861883826689130067738206258832257815608205319551725220325711697099179678439017597162202433530940222028769797382379879424496278994603210435143373710716639656739250460707948820569945319166962654003702946890690221180404009489231640357776573515452082322987192552957710487948281669018888554863041835482366487664197816757423293506646268675055624824527278582807348114147981861967721076094617419591778050259527357374363442118187729222264312349408177845455286097473597730012687343021743196366645022092053133598031023744512194864722654403617829051943513076286875383029589853322786181817904595829736791663989143632036163551377865451781021369604457854596552205264958064363472044332404946705720975907775925058496140950905566227344699340137219585023507726474688525555260720220241162345826479625720537566605290334049767072352570447028054968675575977649442603364954056565872021794805426436275038912090056618847726199180932353188928881587624344291763823589456797938669638806875866068020165878892296812830850350352160565382397323084008740208590432617233482199215349342643080363319673343961799801843771636190595883694039555985922679653838305876026963043995550999484154737557329209980862711596313867282483077049506611654587351164457903580186405959703303509800864408185420554779463532532234414427299753757609193897931688054888310907437205340203884500370875597948059261673650138288233576658617580150162982185124659401494594129289618481264071167789736663737476242261319067021734948339405573172502081370461224297388356489621298641816999349204379933517795065891664696426722372159545152260857946821390594376772978917434263826896028339256222412799924589727174286629633407310836543971610418746873397355917160805114328986557532918102787051930548718343269764969494101432445720776554079139784244279976780298791741835577629017398207570853778796523516188310099883154359484188188733570334337129624313086387273063770816020455956994743777786783505760370882888383116578182995463069995269074160570188359503699700023844758526448557816898638491077745588972922588258706726777246455569439856604184727559469730241119829058300701903537184961043276512463724353783028089069075637638951732873844963453409950094235474507304182973972356283742408785948434558543771046829867498965932645143633985865109385592762009883853343025652984349360396872316279148469094400199185814225054076178152469587484290691051012056725507379813056353382815261046829623807417944694511182599150266722051832017839573133563594106519316091319246503752478234467468376277449203930047949648786799523989831616683224322296208006376624435459080310934272054077303636675663276320840467889420111063331914542297005067458533366254059342478986965440803315220164069869731996225378752723895448541331318397732258515960670059266408508660733617220829169567452270646884853536959600716634057158020881050065439445464329876157186995572107513118300872454197058843772003964693911358964307907830179277469008976799816318857572911549326052563930355403884565554646247737326859320475087889673573678543089698076625468929213561688004483137500350108301373199954844805495172883836581751821280379845314211329070022160941698007733593137528706110527517686676518094227458931851351344411972487635126106084072175499413785288101525790326811851223175515710526880798288719620042681439787124207284438459677296478677808234442741136583733099252371532321303358550718469842864817641214402199870239637568920122897642941730298100306656064324816150210650112049720951597701949418462906290935722171982417556784683093047467382555246358881379822233185831799398020894564492684230001123025198269397706535062365376193181127308375563689894290182678752523073199143210648335205474915173123961142439771996650171008098979270169208658559869904537889362621962307507488048073072666310877843367138912564623975478534767633130496359231291663926425950658736083785929237813085001164257932856722822621008949209273013741591188710769949390643308610364132289512732492246700808801247309732848648041298374203375513304351021471458996171026331514919837186563044617084407802845990388706919438387756571837400900631193727595690462622334175784443555381435326804889182861419598955729242987069301177016138633189234594109694838640665559681134028111440494528547002101062534258544374177234486867796733476325694193917612447663343802489595702726475940582987389519714641208598799383531730244086095187183549119708827307046302273112869824017724571447086321741845211751563662287448101519325572573761549430857797343048370476005578753598411490447485570007545184505661477912193440968909207910924337152705092811937154116780207591202964106990318180966000965762106815365905017802917130179090236727157338644549880248678560201933647797188249864537702698728662837274312775436257196463072248574052551728905887285717744389487510300971343636429424826606017765466159156194888753644416748095034846659573719689454305921467844680485622256461734362260449898281707367214260240016324077634753326346334468202609028379394720566274101060560238272190334314367564457846344396128981642440819542710996742400656560270948307633503258177141177284183985601819284078957864141140818563148573198943748892829718955669658161969896072899855280318012424786236713545446298665203295905538823902076700396345293942012916263836580804793488532781709522025622691760785819525709152142109158808426282783329848887775673093131148884293411366481069225598169054228902679290270391638909448107253828385389591916824240470750146988221298631803391486678855867650335395669827988096784684800231241151802573937249058612458141461533933633764168882465671421717951017543625989291475575007073780043382667036734662165259163083816486991933923969904650901744321700099193923450899710378597358843670338598659402623501351772151977485508427726391408875063902437186744742455052792539851253348868566908255236160237943002002839959539199958585463586225466252302519916172781493847254373110533327248761400227500762614339269616707314584368848418533471152792330279444087763532192613024288533240914075612141418960837096180627191081546133692078924971941595993319555715851258439286860562299740106616760221905491937968765209861045147195399609883389972960430710993704712214384021350980549416452486654410408600635201860307582375810495149863908888260557510596110898494188154844689083834205479199796538408224283383850310736571638250391531309003458892012755057525256965733306919441123711219357628900566208729352618223611776340642083250315136634738772707650199742589959687286312185404583495067453481463428533768736796957808412514152869309702724973223958767026129503601807038873810807759358838815693336726929860568560296404549520245054074398158187225752154976506378184828750098129394109971129844475282961124519301219173899031453864846230417461986053914877978792247702536616082342375259806221348648903683237600265772813601315573838546194027080973840108015677864525241722619953577892409878618939470771711432298097648602501623258715389725693373186816537976640018318315905343971810084188153331404613050352671117728618493436184081620006071258499019156004579370388166699035997266187966921944115642473806555409385285901429932595713379018036675102763393161888650144042282425309357750253206849041539901503168650252426370498570051243838264383103994666751618796800143980097548093023619521707051746491038437851281113007329308038900568543129721590163375334776951793846487788431357380326099195699523654394937056983938064361940082420578180447571864507527102463035854171805007206615909787911968341187491795379004549038322621383894357320482808310788024730756337625259054773701835883260768733862509939221191400592392790155882636947696173168813853195697902423203593083372285986660318573770008056826775903625605380538896995129123011986480107053360238711635297995008625048288438664113938909206411805449911560687993879405495514738334540620252556956932289370503476188092251048491847403046450775482853725708915636821674402945424749855298413343860695213318521863412722724472077509922196294248728668492352312679014213734381831197844836030235737269641549421481033664804730079228225390731533024634759696076476613043918824565108659236309241236219035309224281676861866465535659500640604478963397965476412059860221170906706231596506609326294819398901733630447924772350427304657757666001207030826029789867768366178688420737775698434038547817815362122178827808697663218281584397613165200468312148959880880477341603710113070636591100130579500976747144984841353805094954681391994276031655961117182734863023270893362166028866849384296013393741194072246772462205249403665772882127701556208823854089906036151833424627788761512810971475371364818657362227819460397156394828761962921068562186776413353209967415326871466267287529586799933822650585904540958616154604915127191086214460757811468759698699951517477929049108659686022047766142074933070084118029418588406959655809144148187095035142598375053288105075737533230950892016044523132169089461873139031619081451324904846140596484463913542050318315997129525777216389273849173863146814155983913779801451505580223051497265127005763225485104367438726492089868794713829687613110772349431926565124223788534144190160501835054831340116675515083317350344302470360944257201111324687135060491748674064800037211633959388263866422248874868958104113780990135191814618397212108779335136750681430957574006756315041007261754491035728057080351790235741613290628000393349945809235203865609328146551175215111692310963992014751250755858349997495824133971413176810863650723654652886343877776564415005785079091264490170574183674463204658226721520435785362033821249505211369413845780871888869852412738484348050860240327126098769275392466772605064204549533567569647736323766907763903033765462187800520887005456904298679138254402416144969678126072207809995898849140206581774054055056948094972483750207094529256562016668873253843047932693660740111982976248542815556304394014389719346946235469832887196243286808682268669308177879443412476855742613670165293974683026769185684068948691255994811608556813578873128159064917940497442920395850532166170210473343012781818423264821522365130092194416369006058316554622581336396336661822751819481369735742111812755667487897441672480309249221504867974112599319539352663964166871980692261197663843834162686201345488345973520836193201694245373219618644145475425888856878948708965991838599544087692462352136154859994379992290353976112773497448293425480977185337601340127904325905227261403918842422618762115847316613037855627650705095552212215847805144419624433898633897648467522748190282228445030346301696864869752746346919606738388636003646974727698902020910375843877567783366772623595036368287342767740837899884380307423126265307850475592163543910009305890751325396981479543671163559433412063145751055581877148294053154530553592863234740070096064901360007610002577593278412302720239679842025554755412992580308491808177847099224145254764833586230830997687047784317365157508972293411649378679944917972989258104576230355588056424662138199392400669566888786463218497036051902822190749991441814951104935547143951132736366546801767725346489179521269758841629129905446329179749438920297550899367632146246017935335659396935024744956780573874174971128104054181458851370478218324246099685436044908031950402230348690128898044027393767204671548373932364800427120246644260564562723412590371099135341802013857302266016861509541040086234623432449447831309747301154096608754195387325573651625634496726054696001850092057937191153375372363533153072623931022270004889315353024892085963555478766134965996528799626184372000849640675504267681204937179472333382224877706380265497826510380082123269232901304419047881613805878323905715185913033811059846081115988659442663890466795310745363271281101718258386090874017487848088468629841685229920679832398084169272862820528351493229212942066022528181717809514609404631073680802664117057645578628296112173896564019680057584820913862688197982795751269535116042888463688606761917502068130037309533902329570179649596711047480061619863687627818600308655682466823689918430656199410859442900339784082786784815386565659362096964952303796376897460446962895585839894638125497483257070956854476363605508360919369967667263599160694501136360881186516824056527632466609603198331017904774391733737680864185785611966397234746442278682623660712596798878489533220967617406792668424153910592639745157612948130529315775697571353963974580881612003820424292379746913973999291571534544605080044162155410646540774725537262373802838719589670644793325266387320740712486437766900877491329453145203517407608657663012346730606361726191474298673352610391050394899897821372513314376561130015399003142791421215445305852466894204385232649091802056221460675266303068826341536122162776169681413838876958221973635666115256149230628179869012211444338054170124397777356423792373019606747681645573226218640111373410804518473889306286302585324527625780744616939917210875161646546988805361812789950893735224386534259740235715343424128128239941932851613908567652281781879230224082668285239842933756471247723281763841391946051519874962498538776628521470490072272272466440781657615540318839300964208923034994544182815912184817543338514357622686764884349360946251953393558111476317243901487573249810587974172786953976535413327780635346089148618999323394760834914283043637954056945938527051079738956962878283478822838281888475230674134294627636555847750668783542074433839592390681801776492183669298779541632904075322677145225007946485935565163032826034984332636138722417586107601134152020582151778154307289946884986297204546622256148666427946596610686506413546043633564960044467271328599063579686916978873125679597927081725792183631573864076335743873835450309766670757538764883994097139505493472334990500374888831422746999959806333840603387512559440096853256563613592479481031400394824370681583592860407884736350643864394845250022688699260012678914473912733382270994674512116239783181177893564106936614906942211070349060111901361043072762613977337796634036058181500391717633805216126790248634982214628843849464339000157490832169942799342643766493689203840821733963314732744847568049682659697668098542887969937956354682819526259731413547226354863683127942834947090458353210790325256320464802683700339736761054534807968534901881822415305173439361063549816396657772804555468766579848726950256324195140854806469943699831032476209394305377309309225007573347855424809405626309473160665416309682971405633131978199500254221679850878760736905450571806359607486569210667909668589586832628465967818088269516000651762077947589483819141455088989976553150984329180415694210342434832237319838711944258696676830730542566467128106904300279542096363867124550712051882321742588235150162460938213606863999961848715675295147902054455625893623738851362497616875261726246905970939056244395431106368282029017193476530231828587954401777493520703325304675762735143728807079298276103856637608400638488321787032359683210036713013184246117528363718603017027936509256467841613604229318406191880823740043087607955196544129842853900180508697115812763271432911484430942262261304420346247515061438005461195056235831733230940387105387417689272022475104760409823334559757671373665822138740871881490784704812293070146218796536376686660731387732728238778091643439746339707945505123413115234153564344315380134782773057460489585175994755373722378467388693729426473095339397494094774829096525878957691788254818887215194141531341395118676304422624217313563782296966028854557818824285211618431066628242943856221294475232971911295744580581916348559697929389083783106983894970781058443928556365078128822263925986571497866600718911069381231080001793004756090156954356185363971496875973738406703434518191550148242018491958662476069461605981251834310484923703277218704060803718195668760053018976187283873116726763843701928061530235959244133178396242500398583595798870108073469068287036702510826452556391450818087531704536303403191556174258161606797974781290052405401225349553175118447659620725881220493059613266129106832075844820635092624221136286248969240942627115201998952522531660274584530855729830336305400684498096480810618753376825131641646732310965936447057599017781175436365169928994826566801579350998870758754182986665760069190514012367890483830512579233211592062295785119670086549689539885030690695764759616342476688591870843443254897532035544738204186588413729053574295376826535608610858559646732486744771325828499839478825165322979249654257283819357045427770485637272304007335278439591451020547756596028722339171000906258727223843792879479129723784677881886367742932001917448756982318827230382487696923584717718653988021016425473620417861578037881394837214843381677091890220418075453539737089264484715655498350063847568652015784109866974828025666583306759034251000311422707451394624072052991030006454068596832803004866952168082660730303206147825063451538595805360526393584521913549647677710708264134558373622429429400644831768220232662369521256675817639143303635220258956271645788203421249440607364767481464299826240331260508578508322169790054951010304878659422723578658680645235175377486936090820313139179705078889801190716308675697040420311796642498300155882479097599628989855456666524891446837497510671640917751104894604121198085550729070943510218604013186293832136073101884392425614308505082455290449645180270833157154710231936889925357552062589916269187308795425287243706040906018857639604206994177761807152957269796369596639829276784954284588503924330958001959686550657217958878179665560587692785894942842029885994259803960861228718831983258032248012561343616980798790970202827869758896419157219998687639449185141123467784109369189506219676037616209315632087006214020889418615711984292519410416416808359048612362020738506538645741659491762932629424561630740080926300798656002932362449360979590502972127493380464769640422150127169822520223771345714444724023414599721496009023862054963219409874065228872345507606092794072223236219731817545092310190426444857002970945750241412571600192784019512872396809839680536912632673919390649898110008853317207325998619502979361447419125459357989715114456276935094301626969992795882901813319281555170157606251863117014912403201632945510637224035393999847920197280036252073205351957803428601702724166739972847225213895503906164614703071243714542345291262791565113542915561690765807673856149727097328187700907116988410010178184126929558639837817131529140466308804488744579791955730873529701417920211896673026938464144037842472482780807087695620387347730400377312341506334073219135588716499176511622955772383385283904037184639042696107415219543701215477814906555425773216407497403688955150911436454697279295855542674805342862711042535377805529027955944294662825395092224143228400550591545861275534722452754267369396584541697517507007554945244513188061125064397569702900111619511837572476602400960922959458672568621383128216435955432466074372398300563948710860138264671112117601107745835574704533212988255385227130846570971386190008750345899692933259773328810126455976139309211988348455942153279726947033968831780601890688738921584742222952157098302187368026842784363414155009062832646879281758811201632825317210933366970056356674911516690211984002637715521208463174878836990386002996128354666901438949795100397164995624432987663035788361227330591619924075114273163310918521209457337915667928512530325937679011577876813685144685397084662175407445981061451274177873744690486240660163506788161853266290842562520268054473185259156472459550971675142965063385226399436497428278813217264448478436396376063856283434679555047076259166527750222774840586793867120721974124600399592422137804528783879921669037942631405143025725330732577638189095552078633469332788149072414766896599533051855641056637448256187849895260525780773077703033318518615915606400058956550685640180103441032244993675497189257218286521671889285836166614585806283383886184601778953028655541836174404884620607739478450383715521137710928201233780009281056659518054224196279835331277520225274068363384102577798652759626159510172943551892876174443754274032901417487310634365589648500078910333931501178342837022328467081189958687994437147780724412562797115740705497559300847947704388599270117257840128709836972104697138614991421732790493864468255770854784088114890775494496803932568576036299711370129868827282259174971295455378145509932163095898922197545212461613927925357590614537700575556238858161268578928649046361535276067145976112145207615083251329384932814752848436473551213501942807964475821903896260295962784012198571992298973497024800794839492702539986077961618397154529438285520531261457951483444346835453565693772402752201231650391456233318401870446592866163495860154228198896170904181503103989579641096457525489060442164912125280327433832622898019713882960633141329700507853603568310181314741987622989299352907295577360917110740644466673931535370069854450959589624368599067969310983951580638589751246756928397227008707557816082637135710141620527187025581843139113217265840790175705587944476979055815716928685966865641038970804849938576475906515526969260373008701250026915803498505012963943264342465432627070746095126858814712801304944984291587509620372728984859396498329280968670665920307199459506755503076323211568755442053552875743149173159184184722949561044254023177345205057815063382905998133985407178537397015569061156513367692588566672762525357298269904876679690210038474359003030387652269867935010317223025994297602823416183230918890861199115056415942829662793240267134552050296770372047882252617911649377179193101540800247589482472784740462793755129106097452266118461653696785781568739854443524271200060279726903441964388691418496839785176830282412871964841507993872932338781143204497894655662149680747468678646378382111885431773973151124922389120161588941913872007212377850352317853167080760529697875158911580895167176776942115691386094156088169356373995579388759459621717398587873621848386328922228708781636584092371117702125907883463881007010301571811570385955840365491261117203092852516483684389698971031223192981906452881602302303842117115550743423345802015518173774248839450819815917175753551555053195602234475561302541820402305310517878939727832670553737803705989307328292780072481251525272338222994469670481435784123176294511079020307636037855264832985079383986616595544130368727373984321670049900187416421970779115492698234576710327935886683083025650937275704963735027440056444778004497542663949781248961216209086279080343416439554663181097991303031285116830639351299926041586431253762039061572191800300087461316150191024145729414231346234129343068515852148275392645048145428091140476352597128035277200693112301716345954410784163919608929529541320537099930538894775193639307061358616187912782035772260319387420289749581982310988616048004531770501680236511922925972522652494155771694011161104359582490199968367885457079116149153065649727087036550218258301979165436400772788932156082749725121560430011048731947622520375183829883385329607315402477798263866944795710090444205423803109554698667190724342699536956612645234047398988059150878591522692565700767968838254191235627877546299106754538509571019671432438572720659372279892567906903347155977391675457142212386464653921093445728748318513879860491601233079846207231059566871054439025624720663995178720667371293221027819769451981245904058485956372862295967753127609973294525674162614052299211963501161318817977465573690649378514902131613048007690101761960587487972202232410075056475207353303909646751636060363642746252659941844872419386007771707084579020736294269328430841992637622780231512739360353594287963809595364803678958408481139317648215856755366359181411486526157724500281443409486732013046968590629800384427387309476049176311790250053660755537982542061288585348355044735940962437825871192369225899549218165570140204396634990511103295803794700317535508548201668928792588934686066976824061214146946192819298849066365313836539442493793315623531985492047932105598764001527415066219819270051475461477373266233306359969976936434064934264774001280147380478202525611119452392763079608132126452464206806058631063227229152267030494554105935377548650235417055902335218185470435129712282238477902682044101882894020262615222575883026733239268387226456228325614695481141994204344181752708088542538854011144497657976266313934045736576199360200378265527929166358793860146017211438549832614581137260458884105940178569814038083394984193122046402771063918004282419281818981996291864731689079275386184492445963790592471944866940151386294247438012159908720628837243869549753564103542836376808385821551505462501055460322443614125403734640602596128663300100378013009623113523184461385053541927063770162775930143886989869747668914717176599003900634161999241721251116178353986622385854011116158335840166901902638772021208932015751402067273117551010472696275235591376751590588628378427492453496974377355262257006961809208098048321693919060546032105227681264370643343684933878596548356562293299113160371730240333123194353455262905014231321249051654224060315375146465162771367683652458902151479904996565951830050514177459282116119349977208016971907884261745153512953909439437438449163400558311886799970021247808846507776620871181771120762375482266357390450723183985859592928911975541284776451213927054418497862298163880628580881338024256331031401601923163239275848383410778053036534844516484725432572095809805919701699992149049422810371493450141260213692607926235879129340975454090609379553445765954490398100575601283080565110434519234656616662790399469234661492660499416226681514367639279733790908222162095750455868673671639160033896285969488200128219021010398641332062082804110824102565908729968134074107950265032151571112775726324023645201140659486178119421259091654105829182836796290062363039593562074452217581072909107177567747406960721044621870971461291305154806197909180070442460710449472815921288527353412057881044510929858795348280347732460307281913687803382682946417089927481484848565167898784247164652740058277920614602852759744084823806311737014089381341791788043633748251169082160598246807403341818298264488307246926286201359957668992058500358258170083049420037052727420432297778261865862847219023989946163625814146897669863100923543579901907223473906181349893424525851549866253525976651290969787843018778516278363539254197740598522776484909895759151077330789089468650652788320704889140933020527664420535579102144398644635016542915996539378933630954387449396516880708664884953632044026598961095219854033077188199855040339621817088659295000190546534056130659357976859384577626572916389503385555843488014583401158448762081271211255412829674125907234694330263045785821090436081887739595220814823956248045625804974887461678795284352789669175351435797276926882593675046382605618240428971004461979944270051342586658239053288803087568504123238949175799820958017039912363603519538723140524702321013048386223707353695810896946919168566793790844672042719036442775660767905050191097935038339404073519768380794185014045109294321196819264029567261321995073595715871698184336867768789964785330753662930642869898727001993194236959734185807843157345795199329700359018629893714584102311519147878849038243543154413399447633529364933380620630604398076085242976349789144162704304081247737529416790337353899094313813945442565186615364854927319832971224020052143519147485279078600331450360703831668134244521002732028113083308873917622029800140883561896733849819319045844361171688894222063806433188378016943853142929308256022398034032695153579582402099941019280394779519076159960710809030328335255540327452627474534175135528783734182121823355148075524311754155899364800071640074132234858009428799819530818862264090034887362446299961519154609053257692068481832735413284351724552556973846135355352858627605539817502493689973841852013413823105002231036466657281844122852065504764549398561120327784093425021953701078503010196176951065298746307020742443333188662922082548482352448817754124699792865271034215667406020842949604350774579659469267249092811313609762177896633681833790632520606262266958535479684694499875577597806215361679874973910347157299485824320374286285796990091571485300639564069643380478132244609151833462847615374945437251469425631728516052884948036357476995166645918804467335526742148260630389112115543415820703978166199119548629050346275202991406662801644217066456533796992721581108580504159529873315379869403143444427331718155702316835926227819820850635996336819573705868231042390166672317960949729116291814406817125824569658370295015330507398618351606004726627281882259834750769906273767590474500172309334005550599667751807706555396294132098798256563375578773444278220435619520855423909288721193308199505101314224924035767594680785377720048293426737010474763554583994588795773014354366918804168090529024980434221696763594835876245740382244077491136597493272751097036271455606240791909689128884889353190796609985647240182003655420378524656804341420482949131997563181794137730955096264798713664518444351908741574586806036128015156814641165138204272411149339398529204672012366906555987806099450184031993062664457129984186107396354481256021962112005906637727586913128501689729453865242623203476827109363633311184748450045068667307148286619992224211701958408763249295272140907653998217416417556397830570893486611321843005793387024718680624207299710201721858339620990377673368612831675502769644586589026242048124589427100429898795723332901729718751963227038981339073093516114408651058938727120343357349343875396020406014911853707210299442681776153419571185358744008853118512568689139837282007867835753821697131792327063251789016748780476661525186728529801011178792162671659980574606602157175225415281328166409554446961980973601413502210527437808620691375515160661699486462139720312232409235155353941305034223051041998449040552211702326491210388113552148027421238584572766800877398953050113413343308413973970718854863038733667567105777859241601665567531943223000650843880889544870105769530358873884381727215340459987605823367596888373317044914628034799742648194094178095939842325878550056837754300003553000572223246515484353188621043231179055021679733021520187044091538543587619476636562801706113946942067645459002439195361629982384502558281199660511621651321224286935696198600305230026221842541266376867984074682802706320184469895922141523254872932371891324621233796910514765720894685925586145101873071586678251062190070439522635531727930816724860719493759517776514840493884624804376222801799326621849807782770476972223423786741475248720709494401349608825501582588645814436923950138389512580230086135328054727585254662927392888086402069089672659316005001753137255991668738246136265950124371923790027161078223737055228313364613440183954736732582606573988375382544073651783217457411722214072107483278949904523587972195459855059236531739734207973923201673661508920124576412130412000260985191416728083878036212752281961525895502612817401936889817841855193116665341270611806088741786626558891415990502781315474707912913353125378679758161948981678757845248056878369726771745142638172829230058708936831707750175404336945151631820925140160554645725704362421821999743407090780080799426740004365559842516693898127751841577361668701591257957797681315436578978758685783777944344991817656042163684765683892231435153281880397989123148913099463552596405985366048135786086161913132527852646304634238896657140316490116879751683221652997068229600101735736518966994546833383902212451514589327514849207581684950394107539831211845578451880912000286928086833390753301001563369835185066731620228201201513532879517927343741992637413436710320565429296208870504098058857696845740015960915859453693253172609693300853420700085156881909899990300761433829357029555778867507174387485080623005102120983107095516087547417571139293976795958764059708909940146304636400799779991780066688128609454287309919335477878034126560073378204502992688277476611371274970779560609313746280279384243034321849134576905796647322414924314968528823392897693324775979611274414501400913550837297247018132947642352628219880481435339481677704157042651002706241725457295060462509048263451431964006402117149558658532803864645504494872471804165580631149549949877883297358423732261026776201445713118797167118664053230350986664660919454082189556469839408870234394391805191417730078846414785345672178061891182978807361491828374705099584399427589032425121357253338587307232592074860618110930553281215146427511312447586703856206416061622504460124877279640423362932272095184018029573468799377209417287889834460266166603289637872321045762319705792909759347254660315557731369407869778542957417824489613313794232161428466151042714722309906905197873631900620776642653683932226178545006681287945851434471904922793968009667067350779522631226589265389732806346758721073840397057658719345527067554855011540238134628540589960974452465759617435767441547341111812452400918731212422345370815022253429520149725861732195237897625564098076091247093509507133339633857696538537742837236493923185979521105724860464061173053317829150252242189533067665975392366590482348491198160895420323331156619653223232165514205805827817063967574381177553481746391328255723959356953809502599148505591048561829469716728585610127118203490611969328277691337802406498225788816364595555950903983179473034151452313124073013611161393089531610517127430584487720121786605589265080641686232586327496954841007660771167679916669103531299342453181449874305680213095459707460916019743266566000122017488371015166718302102680101909242764815227069999511645393478562361262390866854869621913087436329238221058224140219391134214413443235902912712000064254014715036376217577490393220458825476251960058846742857536920385638687138938873505754185939220034988740849465381079691251047179387398786665635841139544785520678683073205155548255500434668804172896937580225105430821932628771005364142673416260864106403970965865474766791736917045170776247671564510384081285202056197973835528476043099410336975480972704968119676042180814067482499843965549031540360790162423063907407169371658179473871256936781860635690903722236560106698667896295161779019714721675636546964556583595517307284880156870529986232718898876482448296074849257245203652578421084180417418104169451742009115495724502462559606804164540422275706017275568166017790468719072814552432199348271986555499239409519677794657455615499582572107807646732127915437623612644678022892485159770519366791453716248640458379356609605316592598564749150402949662501605628433042199065030486138033067393614101543624521771484432976868426339008725239253842910326985285788900023879754359884987902663193271273644527964482835623703789282543983951520259714768330415519876312334694981625956043130211395066474797838829379234858829670209457159086005025490800897557893222271387507194441908977537620257528441871687048813284430854133959097691075867101964977996020010648743024044614498601771766405602082046049246915826362065478104181021142437733372134597440728389592040923232001139830074671019072790633024821516557201327224591164871977356361550220443773938334551917843037684762002493576522512700311918312960733189116311508749167151439421188251951295607672963885978760712758622130470047220557656879021935226861879733650525828256161766320331500948583673471907838233626863807915377281802461907527306781990714186338451514456108373234029836609761450236971688396174464732041936040562154171320529618343443767940543840088790994761359233931455494296910684015566736493515628959666699307210507472785045974281484024738009401057473290533522147693260959502821829277098525313732901036720561817643567248241852754155556862408058928478788408450774773884882690601454534074923502835285728872510285016306493157203524778593477071670655346582299733691381557667655410246613745891814196876872686941045716034235533502632435072095390928066134706308602354749605807653489469384798743971740083965179596882636202458419527984842390292647504098250034803152212897847948923026007583755713716693918974377538751045214111198707766862925331482447029545377785010130353712086792628474729371391823956844483674532741541873148471590906937982596012845719713206107085520570622827664484484583571636492674641683173142449566043344366391398030140320771234904930516808061771128795185453993790547037634770964831611494386713495947234236465735094357363668246576562235901702647541867008758693091130537772217136361980535743914793112279559102567494110890909131862940787395418552569399131030505504814208760314847683184666861935699260919405803375701046392500837153977039905223763916969898667026325540021579290520813505175587359425809255683551239267356426736045710438132389150652276323026386609967404814584237259802123022400631446506810861026053401580218749791796922767854799319758515091407942195331444017608837977817554606937567154627817913669926490593013404380398041376399928700378831361302293818237927924675289146011841249736102849540765783142913463197267484267800112730647728916337204883223300894621620164095644008671280732239264206699757213972431367321730914310593019750324685239710776566059983858643986800016255119219514183663741971912620698060196068926542918336898939676472411161808735892452577185259968394032722879148977384451749077868670378703534042863125769949987492623886071262859525741910879717476710421733043751987341924936802412740702494175613683510330220517191063247576087839580274513628253871841149796364807518863439804876225474172264605030482412519136593550765710532742487088846962726735584037868633430095108647596064870967521368490881289640066699463761681987218455034617849101738957401290822825108552897212333562969700759906326483695231854264441137873234110163644524123836956814967743875495951941019389601807296237572963007063630285448697923222418686620183817833003307649855049898060380942132730451351382874820128524576456197166387335237642769519417338969586256785318324980628286348821278062413004157742863197791407076903210061222103916176052215888843818394768432532073069318117749847648905661167696682171575395773511986166554768875660642250414685521103703128970426113723149082535423842599820719207943320526503423057718795797481180908131943508580053116482141880810627754630855897540130322078229100918287966603631779291019564729010020296868188284016125060800647379651779457749994955267661400233850489241425479677276782249640039944820013159206565609215735279427499708560669549232223843813706652289233846870107137751464159441060418001644265651030924220253785471297857314815051262442607726433188933792550288737884692899538813291716960827022244337281908827069419479339914497138587715527938194187626728828609693937732190328576410729050388892720958053208347153519180588620794941225107542385328191202589921788736911887451666443234800867422692586353824722599948116189694849754474859105650991766597814464347190222912762422345849953724343802501294198881724328388156443496224817437612125807820171377177594052015422709542404913570046160022064583388647318980562210803129846457762411257209451685355500174024658506252462524654886618540275864115862854058484108215051766599937717058271583985579370362757031136476303801603394662150259830383267457227869091407793033709425779010605544174764583410311401976091238862512851110580899391830812263597887805394611813860222386738241125888199077874393579102502803781243954979785816774087668515075793607205615245921049892043503847330306718779996274692868745663575767447112407509207093073786386123173023366807141393139536104611922086502477017924523124036851275462587545468715293008294781797460708865952057959608828667868496219944102771605809162979250698973435110402904776729912292468765838563556981234544410668439555428070542914442275361781721582211853524679403431778232841481544497406723796344971377664772176818356432792259431334416541954698064204004645927368377957815310174575561134260901395519888543535140299200424922663757195607739088939425465341319070247772529790586342918171022353960880824753627727758422731292423909957719032518406058147863333898055559368402118045030457508374388430737834962866412387283070632634340901022679858160861129047175157385870326784231924026426064680758193815083508165805046131756630956037676786176977905302568959841187586594298741989168055226107495716858393424900968994610556718325683046769929476114646503766810926689032428663588419906377443934431972075756960070776365138084048766533186803569173998772059554947471467416357064706066173775091180063754119961841307960582055704104200343066088763735311405245591111767259401576187834668141617814882282353990046129512282369266398021366274772581658537678436791713092623531179404697181701716280331918252535314719589187608981706538861316049623516031449489670538267408292713519036106136603249720077133739530382007562299518637829870028758576030357570424242480980151779304902138366476946549737885074488194228941449887333805094012467791127170680490032991404086087112243681331807609182993764300483935079275461532004620163097234005653561434742584621868328855182841553662487568397161003314481547738381544283463943478240637332840663292965255572409659340121873845258228058465891177603689089361614593193828475642492240538708427702170885497405605696361929523990092725535136340648943426850960331838572698354986883924472859443071572476232349911671598816232031800224009097433874858630879150089678188506249030335007679870142527586426325178703219833499494878600918584558223612051954508401552713389301522359725467588579786427992954121510631484889817354920807115870067300168899390609318344117739611531436088166433179957940240769916040519922043109009534207499393767387886525976713244512058991489023707173508020861013593537103428249139268369722504952499875528139717136773007289040595544887426781829374487636317773523934509699046026921819438834721249093936022654505983013651743527813873267976377667320528439369947007538123420912353678626622704282872438549743217939725072503395762879873470166708220222494313879646399381407091448585155311730566161247163531956906158418404443357657217311522743614176263025265017967806060356536733040934440724193531287797485671885318006002337842977245162943153073004438352921249427297567331068808964725111198371528608986481219330094333197656111841904139827666315642874200068090168620113501168782157856831715143277584080995282657113805464920041554803244547118094881873652658466685811953927079463639020995441383261586722276460870411900368916763320282990375135173014504998381431832999307948155986712570097679331211791248425795837076936690479940784046875879726554154095747978552544239838220996217269292054476834470819437493706719453297546098775670461080854614987642776202404345430266383637877552786335955796208433710290830221889302620450284406669750667941669500960172256767635023565248174728511974507700266181018387340143388538497196621272825810951036949198916121554179228282569989654092935194623464486834273011021979653218105169545795399481335893612382629042160994557713583258143053333702264301252737179131121069507215430905882473884985672527083637913999861810217221532197756352271994511347334089116316550753993131146889302264017067113790255025993346031002679763455542075875044756985998502498625104950344641268333967563592903002370528348593677174046087473065150231233601918499715505458083009048245206848471669344435454647096904272738074833594978980865862864462447965198609818540334565924175187200426610677124540596876679211674112156068455497142357500074562250819435888751472687208249777831900915274779395297005141536245517431618864181994173144835227560204937924915925267853261638560941058043251812097187654451792598884859152817956520263831363512752314633551365144569482590242272184122621857649076598611242169854755115670173322493626240077581614003716380507172537099927457907922744004242300238250941890096296341096604669748106194211680996591867185878874840508811869449208531441701755438092319141287013236239131062805197472799142912283260089109110972286976063497892525094686477915305153600484276829693039556162842376101107677503569496595490518655333846790846592539142854745415541744513827556716589740594362095820093552445825874779866728914570393276056463369556341087603091766043465851490793152793752253922450782625249256832300696884064414914272168023432269016554467453979969939711823667857388947882420888257704583857804418903977923821175406252774478325479511210381279561553256074906873031124642407419785029582952436279124000580733448222040725711373828147764575594744911252662476555923447059958723528965663030118481242174163051346540282903819410489414743433725382829711007307589596498836447112745624932223639201949766973213404742297432086144875845952570529410603693406162189824625710755503378897907115978370226269870643323276898349563680846442608610623079264501120922250489429910599890512870053972123900035613001640067817243793777426342719453424706790572350558865628115452579401550435290676463317108891589830763465747760750222206093771463822851930125827058575067147745693869731259601052163001411397577295771144409513409262209556970531797669427459009680092398799102812204264592796935878014052044881715296480011599019940284481170816111963013706823244535349278660600264214398492185095423316932814899377088862355730990508162233021552153955441708149881369666054711019118626497512140501150327297111994856591801982577199139005237817187845197697889293942634322061255992023274804754991738823375315068523149320880311199040312672375583868685503103708476465883854930065450244891611668593592109689706433219556155706340190807299502245532296425036088838450311586792817747443025326927217071839047420678832927544266669140999850645025325710168459960236859985075311261277813121356706069590521452972256308662567816697521903227252028453747066227218182730797281826697206638583900132801347050440264082150505056964573379663745294620061542784056904028343136124040521475907683523164317480599500910836632397623878419238150078614524106014556802779424902707933724021043977777134983678858736838426535808719398713343235741997144636196288996567678163610782446466921714937586307060858116036773398629768752431158784325991730828774535569327104347648877205982984797680711565631948047491509999022123383413716465323322998124722799095772002272854420701439411880101953228187336004589622399919562641462195545789954126907714046018861697841861686445857592158347613581095750246502585359521435371040193101368805573722692426061853436372269510931540822009972591082236260355302566823096083200612671754590004056785362742541413935522197263649433071759953030234163984986626925724889848087048590096841495242362690450591418551583719857336149886351629491417267546947460571048612646404591921602359961989153464650266974381988610099181078017671849254097931727283242865680387742924477973169492181846119333050470391619973723469367176973801814771478720281428423050921884633965096437205827187690712460668166093058089368805281990889770856225664581066819907875263091509998382353174806325715643370084253595486862061992982658070810922346066763252355736155192304779114568516958590894287238621612854796837142533599168768064499143940739538945747385332279193290219043557307879238728843657291297871299274001379580130882278849109288414440894195384195757172019673588113427882350674247258116128775382943450370284849757624423270410941240310888077773850139726752680983989189612033138018482445175188567714599538766548221869607574038962742318651249361315418970298051458583267438418724450758477124401636886794675994434913737480726000731509291212482453334720264930362362737108545548467779533267527694899638307763655455093896910833972881714885742444193253250126724561524445626062687784695487401309555363107885009550910144570641075087571239780319482435106444745452203246225422577986631258945555098714030653800505153344659101232868761000193473310258767865036947247843203941733343522647754840714721863829578470468651283936906397106975704970149172841773180688900968497904569041022935906305009820394090527052271951409255473413351600435108741204781490326760233747913111613896938536520875657071448342465636579037681193527753101138145017064535913297673852481236741867546787472314941646846344857507915088850401951605830090484633646879027867129832424402919298063387853938020850507460021440237607443114988694904088039692206320925812933598170005190370506001067401698774045087077259968730280473787947808195223438331001462652511907592625481677792993592890048930353491096335105465315703742709818408678617571899054415335608422786012517646899658864858435095435587027183963133285017867928611912021759489141429570659066057708398347039484916625567029357302701901917841876490872352355013970690743763707027232572596438920023481353061052791055961380157426701308406516460407302189118026875666232799766337912661814665771534598501668610578886237619943752156233690432813665719110933148843912427930400924350149668218668843924677074377672852743384296216482621661405678979992557805274365995383281981869343081733664423064308814978316353191024583311302357468822441118681898873114092313921523717218948967722846993981279832924009057484228120781740682473823200574976656419280496574966746863286705345793455225935471957213991384319526561444715594196534023765883335545917150555131368815000277402029672370911125045194588973212947161561262884360575685780834341977715887136210926379051007987153140062635264003133424978924018513388130282601180457543438419745614471299725700479366426276043673890035550909952102168974562316428503791622878958955407416276196661768036490097907393174849027276954089349750704140444931376164441498875303255283567229705772352349150873365195635631033882320912296621103660706801870996231552157620177394440730119037124680951424237247429585374885585896856818810923963322290319063360635220672804086158176002207532000809976045490443254376498526026412656029868348677114591947307044706463239587953343679099099642314295419184180365953879109293270827841366698804827336626567613598386911506725900893630121383711060112384113865161955442218678469036392216377003039536561513934129757465584642256878878300460544810609235191308558831690843460680804403403660629762554246601458932966145585044400553934656516372200596217709570247186369595054460218860961681860656225765226825682215297849810779093751654496474044139283881037662194649499566001122809174963582864755223065687424576628863176558388303841153737398148142855826123756747883058295900131269686359541686493794769878064675467377977548617720976270334525296957750754636749319809692294555735827734484712541188260537597648213942282962030277554686149984566110546654937131053755974960296432652837289181113614747623860253587195675101409149370931230744265400430858457132327359963889273264547702964120258492081796862315538324962331286871311906825544976031679942943940555859706018931252904261706851382323931676007534720468484323875792743154388792874694815758738617946340120774890761457487203791722857931994309129807562294387602585183958432618412076986789254038513689271701405367593597810424773304854312923155751562967355777962044479902435589108633094140183374410711824766983330243256728624752497267581699130333526333424669049947709101872908137865484442190197364981342492840956394075952895865581507395851896535215924745088937898325873867805128179515643378884983931552354026809754521883644714010808947249744253756265756058207424429711937122651304387336902947524312335458511593629053926220724085795186844422473119372279293112456797711665775203249713624695354896490254043143602402558917067432615163168784885858946965639089826944893968484453073029948594166465819680943921668201215996111129654708170469709468624385137390168699557951985036591697662307840186071666305419986900441224357417867234082416850599572456098404148760659772561948979692073210154559509173844284107720363103490428298756079717321921690000915764869281156796190041556693062064953883512182877843974910631436160291243817642767299181187889103190893211284364544086317702869954306891720946981413880382838945344404281775894562797479964124659142956344728381217825842148745580085675138723057346640170816103869108570392464724584565890513771552912053702111174006982370540334593254139978076644419075238445128146073650597483890280921840868423014500983306928747967830004870918270403770079593594817874142237678977281723466434430810108473863717234535942789238288172952869820427806333202219023852646116866331145075040417147665521774833049146651189941057312761489617194433144909822685096607668662650828693999862430132566621938074740603119242830739023853953604667381285034373778614911935619593239996958055830399457598348202700485742101612253153663641369446360654051592589224995075670211123830235033819449145045746581464951325286077688953231033947347737083018673840022768007539242511189625110957264830634473479956810363187400073944014593665326405323533841114217772139217702451444744559353099410453326217562522548310535141154568444822696201060210456648607700488506696088591498141758314574483573574058679503598798243666347001912878608723808601206463509010242139809772227438945220878136140979615890362322830908359748048366021523832183779091137835251534961726539980636733168574821850545039387268128436262806568065526781755279019621102009928391466683849639223807673883090733055609136775019487172493173327856762217744123321878655672672124106688888676382152534249155053707139559969971630186400534021855336030993441103192435893164552374403742942227913236495786863269270420683249691459670224756402909139299684726240241804079679319194279439575624694364697989170474490249458216078432359499128558356831156376018125567407011062390259474703856151685892811997089960334822560353209971915504290816586464780809115611996351111667481742357559117927426908850472954236749278649124788141606514546671455710118844665908618798859664097275831382323034680809335779439946424962413209769118016647354878642891092458853916298881396494575955762451845306513375771278164857079067781235798100208454469604348145171288341559088324683550623732791209372121213518366583184065608064779223404783987801376127715418583365502787892185982495492669673493715076665949654145693317399521719148701797789670145500893404357713994201932650687536211986745003461923226868019600161555331506102788282832859849819499984577681345407846530542372556237255112320268744386233713695457296397153228327339134918764872042582872886426198633705833281183008362002152960650631490236376249392037371093659742524275801072658983561448751597618451741890339434364103778151821789567517725693856746350535492537462341485675732564160608057408228347675813695380348911954941706367387823618614603007176290007629197978348654576221764829735097057768119267317823991786373291080429672825621936480028336881990759398864857775441320827625894210798148255817590432988193891614708172157628581755476955157131700136116464954594521759421154609835952225378604905905606098760720305546530789831327191158381830717656693172695809001970783137997325959031456053236046057486061389994591874247113045505470660172491047513077988566023767546377493165714374061401721803438701445683562698834020674328977439997912171017520669214064775390645371290900593137034905429435382408561928488122312737015035152735500054313359287659238671192124949608464638965152920897743814875028644109975211330904978141345916147285764417334929407325246814222952726255291772897493589517564685481387441910846398528359869406989889739830412463006561784520204301202159276271392618057042164947763153981190838424392442185290465017994340299222164996696493879770270561738777910106719498043959278119053148462007415596747399650846382100846411034887573946716378824582984803908437589424058007715228959240791170464865449056307145972837872237169287689100845065688507606969130292135456954595299652050064887421060984210596328728711050575020382211687382912268433693180538791707276858298764181417238386632154936117176253449580231015201337739900387817418066553824780286513777989399447690580778242578153967891142682675417133475008447618427000833688710203459203679890582197780287055867623795574906587405770162944735845245746866953205818009026409968900019523773389950065065226398214151665385308361147341530294604052544245878233892096606418908903648537082256932003208422397035742828368504667198256268477228774373986114010982799476728247669909928987679495475563029507017639741556139233945710934316782725117122057867308283468811410932674492644973878020541877689864984247807714458205267311955694635664557534913407264855740778237548425963572672619868295232107303131625687665378909684594978245910252327929170844971593442421580346112826761893897705344839540009617397591274862743703497622024920697137972050757121405828553846157234751377481128943398043821326471658220405315243184380514205855237774121245964864548998064735084244644588942097980287227727433864544331269168344561162653782291448725416968774439080879587357021828262154436757221175185477013244835071273413409726624180026650293406111808204251984028154735903429987919762500584210252982664563731400859258546995128963198517532349183983133379381037299623303423264383314891360786555402407957925642095530375268021192579999765714621658703268580251932105418719383198390289285264453339530429141523274056851354993803501866248156591086966231752447769090807776750034260965866470804509492394960145031718837916776596538176438739152104049867941259947153517917256310132311285409547988355435979663938808442659980658295680736168080677571703028915800471109869777724060987764831870663164966199750479888284003867899873703735095167495764987250350412496436019880314173598633283581055471895435650665360665341626666110034044303313116636459152438121335778293735077343056952365317427946209911942666191432143551455028238711725564096677281158936695533142369250681885343673543730635675617678601055941305755880663974450413052109315386531337342205136874726987904948034746392732888958766645295114250845562599483331704129840572346961430889146464181201536467470275108852387707556892642821382431764144382906088643809546216001334359769992147229673713208386144190555915771129494810667875629853149473632435710050705886742714268575247565506019684803668929410218221965225500166846669558828397905638852821112442936264195058976340873428599756966019453156491786827137257858561361376805860837268572247251396874663332415189071689269512824109382072246628610068578400860268236496022229069793861167853089169461061052506274547175267924720976493604570583967461429060294784290842411410850978890801061923852936544375375758301258964939820474527000939371513774909948418819185810966344304390795053171526639361559073043415046811069012394285872701011912911204830233104447948871984103486955763890914806202717031106565351363262778239470471958936941387607543310397426154357610391773124973040284396855178504177489060799974810120808078761709292369834475589144597157295630544980503371365863126566644639273867248865887529327526453029301498034375452878724604556877961734518507909431657640297175118041088119680501855625738763375771742297122252608135236972838127253296209096915371772246001011639336556923756002254039307028590512836006065991050975227017306481070725764677337258224085478336694419278427617445007463542211817735950321904294057868301920728710298060895870462075891510535890539470637957482996193845527346719266296002061531108151638834813719184926118105254612807962871033040272095964910467732863266507127654338130901743140735598745312774767895291243786058461980965799841774252751047210576446327589836654737898081641600785366071000840856644458947621145771273163454981211824701334182662270100732682634610188319371405087714060769780727428338916712844609527105290540379777930810729200582940425372784252112198188805835778306205473172919587643371081425282411645032996211255619355324657070797485953981874476881530951099302280071233190439640062285910747739927175896042191999802239795037000224312654984400764948723251992202730423551179349185406870721894374571360866817312133444454373242643897383451927800583022717531437973487227290286442427934235699724284984797761656014332403886172255490722618605365995266977341981350966836968594002664209832583219727996940996801510842945229002970507820360101122998866530255523311011012692423782415883591639588397016356454539403614749687040272616816433747959374501275106565011482272343563870152314835165605435510478090509375797934244364840408133078276110177437414618066052516273690063977386962948795243998668500517833129064043734334327945902834844676774097980591320620804530414665838535091851328055527599470152108770174616988193854416052346338721929369188006100344661805531366730974235056793916447168408879246596916629003425492430745857077712893450996238962563583581789655146816895563463005281573217132299283090698587946382406052849166744996541652413048242118846312569610930883036489914828033044710109933951892509013874894434573331310393951198076873567309891123094559838004861778378442028681867416267811661180564218672875251349354971599627592882100465288821256805097854499138969110221037840916429044262984554723088039835063121776844183132954860506820374879097115215758554925560808811883507605614294876079608168807764161971199937252779824432169377976538781484645864907112503541413433522963519052845685922384039138151083226061946447553764362064005056985410040568914255183446915147943422320892805609488908492319534989805798831131687700033141156591566925102618827666876864399999024235383803456026620957631995233168409941127144723339742989994396790422721805496219554949449269305310473325624439028271052818264108349124530139453855259424047541740013320865936076240500255367661036756353327553687009310139046698375723347255390847143998396491783424180907071342453105788562316656349491694655777816992703740740688355374631960134031912541107423183907266649329116451396463624996335651006207927765009081968576165448002054482656572306714757720669796290706110206832208876115012321474326400433418290171910948497159597926101528828670203456083569311717868913666804063036641370156884545383635466243251022933427505296407466551074741731413773834389559977480579419517644338242901366558159060182730817800582470962404282147461610258219521451154871100868565773989959400550002146076902750257669589117018364507842383858879852473299400361139325616705010407779304665170316351905519536692507432076244908201948785527283571279390094427485791610191335590564507164571062794987341990955615793827896996321235315150881270210356750338831662576764841791128226825639590014200366643002017714555411617157625167779738834027924189962646652525083906001047929234585320929506937753661633643716469424799783123799514604069437966864483882787792918724911330481424871517843762122809386515392353561225313564083126372761795549233687135402650856544724053790891908860694433242150823637793910337622527735475278466582776774835679426332086012349247510906540730511422645008132387444241553451492239901523074925913579610297934860755400117759656235599685575465182218890681809156483661849500204485382152593973478372490778844310204467580926184772182713851460497957086694776189576481521247599158836472438531126089977341961615554805368293783174695855691507943111836750296869977022129281154548079769933153795183300173227151566624931638643388310649935064671808327578487904091086974401034740853241092534673388044521765996965471946202963320305066375524252046476632353790682217991643952559435887050226115382084975054940005353107329197433496287254427116156405462477245577670407493074994106635877126927222370450685334814918469304447237696095436003092916223615572449661234879464146363504765656289720045041143344437863594390518894780655452294238789852127153385500792666974256593915845389684031297917315224181261187940130554345469638648486370836848747751516863393945806498547646583182272034954840837989350031469512112899839924599753225767888538988426497596518678883401514704505160815205405158621162638158587839483248636736125157894997551156542389618993699923354786707856413075285646001508707002653843948375981303838642603903577749851705397315499243975953099869093843093438954800041126111351694541771119729095816210488230292680648765015399219532991648834902694097971829009983696668071187057069551372517537249772579249468634634415816384994341271794512860418143324304552581183910670008296979219549389051403237603962062103331472437265069628607326263919677204017368973490882546592417699669385913290020368089818457789670419174971492710704182904000096982042175653443634006316075756580056890529265670863587106845028735374027771967736981929757094073536367624722645569883936013603513790848767170435256021793434339141557845415735829328884652629841935769229218244099820798768196382338042566329852598513250650810441565339408412152759350535482807786854822934695157506302502172267120236579500681165454594882866428784768985830688562938681570763933631188503257854449649347855430727121890956787838833055542501663995194084699039155505224544549345705453652386279791185227445603172901105857169197816957808695087565195590939434118178553351871412093897992963734063368692681138955118249743399612407525857874760176612867900854257703624010403615401936932140762749444373648415496029729542608017678565804100553205798282686278291040325433019442247660231941267254939352342745690689725171856538847562117519745292231968667732090099303394505615712618567167129047381245193413166776787279862480471897772076480419452977549718165889559087733401630138987114650950695540326481695236323361549561833956059469593330062828756226357768381005126514744216110240825493785054965118357208092265041006497460425202418689031602736316509795443652710517565744341124128372434953102385940379407741991012524758896121766970287438842225488587703602013358668983154594634418405202890815596184816307395210957942502260477514384906634163785654545569361851079715483983687274056232330182902144922096609853599000080001301414704827523489052959739356802455542179634770444487276451516359996137566345148339552755975954093585217790086286829219599113618923758337051776171573971519147969781743807493019884581843132880386294923758478351031733700003642966833620800338298272397195809841536416249731059601132804659344091651886222322444208048604250794218200697243642471520681644652273795507772308042578561415565007399082202701528381403862781603849470916258041148083040672031740392476364506054346562406589655836905072334443607181015988804252213470534229893549320578373409393452357046137284811679129656321629340941417113562083570149575009879264941426314815121372368627137800117886782634222042180572273216891528851549415773184842781128814421305892286653059707054637420360924386175791231973167144708774000517806256739223965139328443901092862264759003071331923635464561934663365460690460215981302617033010605904887420061957843859586888765812137524996594132188925659021595644514528539795615955490280718942114395160460445777022061701323505701618234706868175622716174087160557359079857837224019319466231492553708671196921259369297617402103491433431317348063086360869883024629413155915666683606107409303781300336978896720229263490457215590753976023025540167056193437278938850412497765263079132456845580574290134615088102301177428685427086065581442235938666744600028492681195029553183303040631273250832622556778883219260680739040881330081441437221901534527625693434132855502084241267156624057586303803716598217991413988326236033907859593502441464975938511750386263942912193014690878953013873297361185208306573377927416338090679291043398853281303389193399959305772622283957575512404859423325228962385094491883848429327434162571451165957094626055637533687896845239030195813654239058987555551535726285177837817782118249725099424618640632470651761313384207394322848312631442585460345565676356807784125338774849422473379457109016746755202921221711914047350301010105713203906002123200478399197140143049866466122309269780985160178990315955438928287925434799390940682508176933231569221523073031241807653897938019275962585285234466501218098335216260246104115665150546271261173529483145925573206251916874926393742223059924517925506380930486597495614039765868491212148988434160069374308118866648365131672293638971133181923173226091889632362339978612114271564958070692552240588618508307894342183961522276551622661905457828769151817671425657338537660269016055059608420539268149267783251587324184262450821448533851612220164929486115282853439448651086477571955388321825060121840966340958702420325518061473136690332564137282005680107362891205300229019897031311105858859209637518572800744439197807233710388564399640522538819965770808527852478000632799045543967055107183602075514995206085377850813074187303084597608482639104849672209980496223741858061748775344139535075867134775570060957991053294995657638697211640040661276703375288745743467066569063947759603068310857082532248080564229555924795406623790243463228473779827219700733190580583170734453178096502424311104961125675922901515661043915805510807924524316671791953648020028730244903205010410267510125948270925055165305259374699871188559764147130097944972454634325201189085595341506373608481948211092669623299260258900809401789406675810356916670698789489910684040957465248378102668443856913883434072925549498756715847790786673510910012878096198435010415136908639689994833896512282384191426639145323484967279758237402370712105471417259024506594658383627068018147385105209897555127956014789064234753833680460812777377136182461609777381870772841959801893342987730766586973549866659627599440186479323018226763824724577425565137095680305116532254632381320335841403766309972314868223622640418958517806740129125999479083148741195913044540573782000300445613065285450199874972547088222477692022826088396862243553292315258325435012756986875414666129412071702056771967706418497959397907305077794813012166597772640348384809393822762422308126856355707408597144237260233050453324828910343568106035817994775675807784025171899605602082142313020034282040219168641765247743481890567182149397369643556527751180527372436727097083235057775675157711519143386840046768164355482370299956296663730542115496633313523180267711785587664082620054122656919239041538227893699788067339838375834324798662646207787111885382521641677599380182202322293053463972930247832481968042441125222947842412672010522705420125002416520810544621925366614321943232954128807631495524591590880230773688345843977888966560639732343227018975452055573105517983062503401054074551959388407117868460914942821942538028804727934228869124430420780155980304344001744435237457129428823503397651353976715278202370815361260980871540882608964111140865902588632909321379705992927090555961807648586921431210644460428248437671731054523673238321164632414902855074750166121642378120669538544778494629560128901770940898108428228861989244463472679334942285382438401101128422766576900176038225144044722795683968185622667799873365875589534091837831070353119354058100268103238635377947128843741563986795006677183799641144416696759259236682544560482419577633657271339175986636953507599500145546821423682883955777866515158982420111190928879121528584683938459131584478316829596322627895566929972101464511941219469022408754818285835959183283156040226559759002484304104685291305096741410988924945754632402284212963024947425057003888442208696104958674344156163902117840246696946873238769016338405409851940947748880234399721336599859896147446357136668762444940659629110093852410327305029713149697120847364955773924601375645775161629213732922008813918256824678296042286006033389862473616673030622993454342431712175150330725479304450744780504555471324650891076649185792532475435716920132062403514729147337397592061359625116010445666966299891648057454085078874534369471459474545790693596589353281430128549765090443829841459335667409165548788194690313834977813439930002299287752361118660789391820653944953994010528181257485568842989666687488333436435815749211685071609767694930739612148690967717733577380265552681949530966671639368928725020038971710777536175110827722225624874559107142508080443592472941209736501657624911983578718055496192843448040280696857289544768778648239296352526697688746449003436750088883336704258569079290862192295391799433101043241906773280979035581810186790203483444047320250909171636422901452864885977262559301490281383628540436827575921638709598774857733676960070772794992164050927721988739721120557996656476826726105136878591841291559644196963344809638946107873847181305391553426601721484726840111064759279086808693377784006342331143050391185309730112084618454081737115264321247273734962479328476328216633278889088606990757015317002623667025970223686353789458974808921180642112319823858371103387516458029393077932081866411613053370912402333096102990474540271169685797208352101634368073329737197499619878187884655219603374191996361988212658235093931064804767099834648768578453853106679894235155622860215624044238292934978738769666805168776473557786406959309656056862524075174686429221647564046331423451647276904103479751921954568023174946878418857450847409831391101566418890578054099123278837732728124639905832971805464045855453822026042556435344573871378775185272148653093826488334593213256194881373633192085292914774581303410517342320825151318396798818694356310930465843559505452070937205124319882140007252777345353249324347223387590763193887354016568225235504789319825332301153338486575074830595718795382051335493120958086058719542922283576088074566031746748186473714443314943786456278737501346799353284263489015376321786192749283278104834131533542544649155575959233857032931852628666511791667988748915036978852544206412056316471102034484082860609925558852286668148900543202134592325533031152734366714528502929690940109039966754588640551038487795529693593444034453797594713568716862081164394012422375163817177384274351287579395761573606082784952009557050667794050947522260449599940075642972144103480462048458859252935657178817777397216637329140358727284874614661335332740906635076532241921644335999761261465346358918424416148814859680013417431614456510414025807900125369811044962354980833406339789134590788812820369007385891928105824118461143090522098382104243283881565522598366055337179595369096879000081578807701002904769144160507890538938809293601296318906411525273449209005062081138904926916741657362557922551328585222142215487279744940841780750594779297473510346615436497710575609862409415509892412588066611730052194755621834094743466371812272658791370178000686024270468595299264884631067669677543468253262917361433986852410316490506571651912708616111876326953800196484835043400443806523957964740483834020235444881009418169459678489606527739242396630267742731060752450439750653207646883080814997158055365667758100635123910883701227347095725879186358086211702489419635636614080108718209410552068934777857954848935842620330901884401269744320705200300125196047808420747465575256883267291851486411452669335883829706344042839859666719642125251928333750370891079433324688602263024333652263898286560521995944992156102598852802955939640713400266158345839463972761607998523260979342150161835363755421243812678961085207299487539333055749741506808234795518334133228726825223385132419427073097592640724940827358840913167942847431304851654477751960679602147973854433705570595347130354825151425866066873120330909495112281076514675025212646194136003837132339952767890807840657800877102860455851720657208571941261856163560428236685498411072145802610715321630709726759304128866872104380451871640776903886115417467388078962858762572452815490365482634675216396911555714003125644939703654473493820339673050319267939514643507059689131300932382680888450941060682323714819937905613707212768856482948495198110073187840166605656605544577671900385734863835447466985338825251905538693009749705726953078134049995907750379468957782690044226510572766379741545209485086603895976854382647964018501895784154000697118593246998004058714499342131399665494398905585795110849962661605335771847971796822031899846843427879045639194017241270220588879006325430207895259213828823674829624242135111007621918725860360718834066435034917295869309746631058472018397189272575006114368538028589714726732340896728007338801170798112670234912580935399199623071174214611027534381732304306022213637139510986282279901035076449342598237109430233596856784217142145427267546241166408646169520749157208378915727552455596936731460691126070603837263877735676713130249645171169164894964753710117008386327997359470716599632684631796818868132326581381226228814861924945561632221119287384878624668220051865949910654421749756680736880647427299085891922740193139742310215552974602278653489832450713852866825942355508585802362418297863967183140669366276872340528128033357575860358876830163778521715971468406770923864438754831468516635084109918283446749890272772555084191587235651632961215298356217255150622157941103597008937897056033993503974708198411145912370426887095286933577183052034838410949357057599996015869539836652007755037365304138353696427767716580030808507701442953484136668521606219844053834914320966180110290997153160555519249733743122461164414794450560826799378098356803409191286656345829613362109666723439918427135408692443452924413571785445422124033814377053139679541907825050956024919627460864743984415045140182590390051653539227446215439301557188373476545439602883808806561831922800667844073503249528282380299519718190546656734367500532076525413327405183659317736758230745973517428672006972554917184051252404577974198177166258209793210261947842149665886170378109187050121825615889065126347377310931650880224827690434503853910775419849862018807777318662967195339560175536413931626133395490699494309908182978993532518830384013543308609756129771564448495549520387380648359880644366946640366861753610031825422425609078179064849054290319227936594541714473594204773507203660004082824216076247320443060139762539330554210613270323421530574230286574046770454139763196367041725857596948661595635574002567679265788988913602228883690514886404198184093268429732610653171651646017395283691093189496522654348793280704789457427195663866558049294249717594243789785497347403367019571793323117571807181262182510412301286939688958406574298818827042768946769928010862923751339539094915336496539293911822858409373462935202434633267800469483811292229654733386069979098620326828582981389652930129257884335721743175484138232294772468181320564120634546692117555933534761448314751319596920812139367855093985029044926691413844084610378290033866342207006139242743325670753308969470257501230332941846653897893200164572033831761984309687938515257442018760204505334739027250653472159003629567292209388740287066460642461311908246626002074122569201243856471004382660887843717550103462993166876685471611573516020825418957546735212084774862197337200455120460162702036031427059137134346756830788167488491260438908793938000510496642855754452730736195022859825339502255200691209891989003273482450964768578366218552647685002444726094590016943977685070547513180485848352077689218898972810049611115268675098525952417400470508060488807048848327832483109766313282540135017359831161196516114268245334943446085826126093288243445978239331200605091419157408764817756740120110165774016521906913859845477993979022927785233248712529518265623829851575699470542415857676068412076925042576854999492071475833541303859759906554710015764711746518995801115485551416473674624699738915007093551680890362967656322108963028111001740335069789216063600311007291186990038375781642505799183430145015248141573568180012422047388643583937235342812795464675520808562059693629841681679148115185722882134017039097515627883677899388326386446528278416636443984083516864643800488634327487972598034982410362389073806301059112723754200466225574798070950538282610687295429768011431854716183102884646103457439142660904351656897036662667959069606512857261265619354326095826908074866892578499528694481558837667272598003906662355124263705715529145499015981077813030073832703581950981728110187324156548336896124078017423266355852935230962825159672963650667913001672688935302598024345605249466256006739965597759641858022353190279514427621232003626701895923996035693371114703004239771365186718603193553222181286495635047965826923906139208501845720488849654459832554608989409308936437198726524920748115229276052940054162940876252922666426301782467733661410977803982222366079381908558012622639171343796629867610031313773443192032559297034941423189862627874026852845488833749824749810143912153169186362847895411949528477208560878378461336139475584688359353864155194689429325058704831341288002425058347179473976594244965941372816328065492967800024091739450000957717721601162704707041838715757855948564760289546991668386473646770219520322938777955262776622744967863893830767574168056240724720600622965366538903812485788920979066966552232828596420537198390483012768976624884329570640525753701619495788674419826080410891312372511774498975711904584774026551259701387803070349147937363623198507532004516193362494424624208150945037273306386271941955836652373557811163598618209485782528412141533828360483192261857796359604574869775392829950879548281347531665756303876472448950444231886499333623477096959086548436950963701511740454611721941536729557086179718924302766275026479789981709996677412769080303947881163538457027020084704556044362125797160696724403357128325544712914222719576647431902889190623949030541667788287003928122059110993576772562557604633472260275198248399285537510959892176577619264005105537371385345209319867648041543903822333782691305880616637176030888992055078214409808055716526711492146784492032816690247815007102599679109444211561645238920706294255145573285952235594303045672995866978188940142289184404619774402579150909468321022077140354058904100847263950789314293477671802765500097245904287791779352110171638313380922225122839569183428895703383977402026681692412076746302770511283984322704074633363913241500949863040970800949487454920757696884055115256521407362061662973187691801627947700398807243717700827126878969016894727437788205785723813086114718542941320741301038350302768279780610335257389280174214793004850389216884430199074606901698761126231411702900410884531307919875866841507926112026902549444800735303382745847402799839277565615844208250550923795673423219740756987210952298179140879201723380068377193085653785962340269141395545065115034656208216890274392878078315346131821948199598014765822498509461644647444574156006126848623804721655267324234659894814202317361480903951922967860433611697024537771840701972311580471862027739151984675079558028974133894536141587438514868823489807142500281312354523959865056941892853542601572614560650320007702910678411680009990221220271743677788698326567538518497642240803413653624251317776623548487385174460128645556645561710550012867699720541784762667765238932649428435397367055976828368754039529589851077827985826945865633446785478612013618487469899055806386433226591078192988517050186954009100577590503005066461596624345948070450389876673837982156016691692675356080027820521079623138051211887784730071680278282832550785564230064446597680785476305039739544505243407389639455232723023666741071383323934664896557685537660709141681437151736825085625729314534888684301641892498315860384904083967582035816210364429470800507528201894527860029001614983373149693344155656862425644897147683887712404497551089262517397838375225123016537555113008994567690898112342778013467571327836259073395703545031246819322721711649168005486962720989755030785966043113001722553255018013154405799988553148688771771205523561144207051671423628300887788799693867685342298369197442809856112233518089020788756184482941388396965253526587090053071857283848850188040746609277887880294982880831748468832778941567806338639048788720737886524144414501329713621587642461410994460277511918875960814163819597348621725262188178481744358304258025936552208835847473817411265494983277639118453855877047683090813739270475941830637616192800903713562505022832620599413494280140802373161426015075188166463838828507049771680221078756356817023898471969316394001771758702335586325026687207744078399627197639777446812123834787122110729673623342784945889260442295610438980997305894115211618891323551583374654148127476890418127185554612525445791550752381624157167617319804105821595414206633297170677146899478562238863649531053670105109744701314622598436574372802780641383841898463885464794800340976175462142412046297122753592343240690199818894774202632899651499880685892466579131934345058503782146633059230725057448349852360410890360078920652523897795664793639123429326761328768913580918854824813763376063412805794518135916990332927962119439040864981059435723114912414653891536156252633848021752885900127185565596254614049650891883018463895484182153340957132546605181051763534528703989621350957960894084530456565650146554295125015576308948516779772469355457539493404552570171427154440070648671159703615129987954434862921347256305155878678381943248035691975186867065581795238298622611663572347966479984717346374030650460588406305942360097847908667710050466538313368742898208319352866147334682576689506987662200152547722050072326584099672323264852523209338624063907017112738222574412273603035042961472998820126252417265113151056356334395610304543266934995752256166065259710286220209129821589450853126676369351599244335179801012510530223884751373374548376092424160524201776548101335983005255193403683908216213472669734145626678975308035082534933347609108883449236701088011192505009327065382425428809478567091069828105448475369134499673851654349655969197110906891427772515672694339254397612541927247328784165718288494180400178155351314609533761147590300765707338097478729514049330352168059498725203150687197982714211763914188369504313147243310998830995901253507100016900129634688103764165200223509999033104781185606504211871464453413234177085013521649414657953748819733351377667194856800867388393775618612078584588502887231935411594664685162573356461911796139674720723462555844589354810307977679511589189144269870260161923145508374498210126786138122154274977151081605122690724286245956028681331840166954980822467808580637838755743937814885380916276701841557990051218786322444572662966640555146985422284791631339048561774485076375587204225081096866000724221255194139023529768171687581465686688359280043800999892132569736398108502203009336227430968470395783959357829634029574841018669389295403763308404588628319439345028590767915787337196808473201319579027985514181944137992720165807970516783762401650880531932265863379295622737649024337631406886149129248545990936301420152169192465889234526808752431985009487713335646171589638581634458679400931097394135667358724469430743755815522491822663511879991324608792797662298269097775195754920207156011908846806071879009754974783322316979293492875821824659121627348168344914815770298740580634848668022023789454181902919120109845684235813771121681064252011125713609233333119157781527864981292245939353889513997554024114299350190967904524944155523419264700068134934558527589993108109576021026345461443149730945493106443505416324600980470888164351897627186582844452042940768530454730559385126072963441355006025775071490605581408121202872416383257296441533441784658297058663556674030627080300705367230590649836952645150312864082886544053082435576028931880898005265914425232987171041767677558458988136107166775211140549703371119028725727278847868400695531351276376814286646831585152755073007953797499959586230807987633660781187436096447382181122731067453783071100512685852512089532879755492097123387924147162241863290966304419815469857902894407426909427453653103344637701706768606355959648059401558459677582277153582715950584632049196805244972781255391721677518387198014850901099292162031560306106660380531069256846953749906944181149959805966100453954785894619361331549989627329859274928778252123484479362644408757429568584467841502396106750287862112162172448833510832155650725921236192451371723156957908386624813206273303803981867426186013883306149045822397276594981787312085537761603314654564151779287868595905507092695845288039973929082135110497924703614944430939227739785181929728192503029936389558215945749043269934100429766363970465599158095520699720593386160866642849585922672739623070667528456238290845515054383851002014209379205206390449053228223397856915758668573750979474429065530785009555813096942505778720531044371827844232780180599445032002185808938544929170202610483108371313844293044583409963485517714110719470109023067443200575285536193217940065116788446931828636794443145080658050186065447073362759624528356902207859413334936418081832636585235496971578514910809866779949630516257473094761041182138965093741920499919830180830654970782988683480002982397071384863061981277563833585502630258113651347324660414063821496941308310080641629822123368943573376155661021797936165736092170352955265637767703428638982609027479668159354994357733523838618745540975360902368096685289717492155860576260948625411417771972438318766432958383191851365570073232141659213259333834565795132740190645612248364085118249099270149322381773970447941711105710697703389415274812689630484822690266667591611188821097819129961432622754076509669719374315927126359953166933430343877107425761623110925757975032022982949359106393515741441086894731918298407955641087753397301302794166716736943437279335322040000264369366149058801260737861715235319296088094892987992662601293907041196436148689960577771802267234624716197530560941695962279215901879873970116410730859465395543646424110109676106573191644418007273858828606773386575695058254237879773827804983561514304167617265914499335093320578661999171709026122017250860559397578488716273628323927055650599203164413883011430679495881682859450229662190697971861070536251052919547499650873467087904635013238774517775389407185723709373285549954574518500572628689795290712514429714679256744594306543042213128197574188480274457397427698129250571593689924425407133398984928113927647143283399741634143792662300788237913404882774660117563255052393369971038187092080577077000473535052647122775539001156746005742617309510271550287298961169140340737266130712932316873922999134371472422824112643705496220725780943461497902645828593783300457633776407271150610706769294862554316667322999085148084960500668984803486800929155664114007007875240949038762003263938202097397642065361905213675580373817670400869094700369282180623215854441334881657061797883304210533281510009798631755922405053877670694963335550576108719501883858971413284569116443252282812668909023287172778273429164958418968219352934553975637793311158259862415470700697008851141444067544590277500410872887469178710035777777038467764012830457783192752629664963010775416636520374108558031774707798825212622628482155999060884877133559411428471349378526056185684591811515472608785503266817414946398399174285118282528090398212807108069010488432181959038130053275590123572426799153386225388045276688822028618146151727145813286253662183896472613903917321538394391878126472980468173129835125598185992562438967839584524992933390772816757241429748840498221337208928267762287810435964777418503536196102391116506095209078899919824274089019060069785044860010570300580706919362965246985341318325488982735257429508119597468725884378716744493314116893763648523068649352382968334545477946391512860216877288895310749139964342666644764911715149140687522087393153416514700777346133602049813870858500916356503615895829778003904797029551816591290527443979440909958093070749653929653808814863424462976433731914625473870706126652136770768636895869375490669377981302576941997073519553475994188111946761571184161597661222196773707833152842631396210715236620470069312991211573116058873365980507809473384170145148167672356307663348304268010326030185330584186017748360774931052805602093670241039371313550831062251572669414366057811332791210799242337450195886639194459447010622110992640664197403499354731338047090782039887620798409993433304727992233995768624010107557309556895820037318010985369703098672722727109597305278938118854132655231456034242642741271406461212074299567708833378307012930345657360854200320996871057065111168811859116744138181412876848340580551983042197649687327760881669416878136724101883877658037512282467194292765256617545976001417170144071651020733092377284412432597441714404457051440573584814622642961569682386687301760747350076321085646393719292922528774428413167056520545331584567664248469450905644935279308383569053092466939640225076345039981829446315084425685499514002786322725352638604017912543920773594001479453674827922379859535400068487952550884586034188338058152220638765913828578747865824631623928784108350156867602443236927575807929755074927861299927167765367552140435971778993179010567166505168319761508494985133164170689303624236053407239297874157955807794038865583447854286825405247751170610416088046879299093584299321679014012835933004348203083162546636610759332742820289925300614844590863053173815176589596859419303935801948998940914815143718296000034779039356827414249525702920761466405496012598776178253269597476425515077846479805784785298952255908701167786075589300907631819135894520664659891664495354522114792511772381978379694281467770787952052112801418106320769724955644018175023672791811629969989295180776162287848350300399106999503242812838815251952830386259731726366524240037296515289695051625187857259050192368149477042212684963830051910279166074039702354439385985491074611558392826715641803807242527234504402977746682748975232445766930309555892897577237472015182381369730636416502968135209936959712917148844670799159180274787910525748214457394247634004413297628894305750528152235221537280997665857504872644709474884092259496570156133377818191686560669932003003301241041413104933305334593818660207451427947304088210822587998352068583119254091004580076351898913040897843958559241560118198372253361860927672765958399214824292870053113953488254683015509943210546570068643847216588831812959104521442375857999964398935200680664182082363105698199637182154738459602044049028195231297785266308058676947540112937796862112929555986504453571459650572253783525738033449488704139575292875496084808349983373874271103680912821613834710798822650067281385698725130306808819331667038411112784589253350176050693529187990441900803597288682233636271996366661708882670243477895718509302694237123481704432226685875302800207110655431634879570671889284476476436819645653438856987682319437269035153421555832375007622990301954599296076731220435622594560281242577695303230116088003136063225239634001033250663230287509006829919013203646899883974900110400293560735677387238460230472664962789080202290047042117356572832438472761642038846477199201884496758197866890315718118680745149947946043111978416315248629056423283107632400192985185456855311441536937520608136817420330646454604445432963439275461545119242737630583525257857885694127226991414534248419781422729082324086732939617111961457047066418216916226624084019773987632702911550209450601573525672539868177999788787344190608829676638752972705271518678411577991327352704275026739263940983416455549015188186912354532081344145448908271059922070515746638664444271634397843616987851897174479086278164117692806623058578232459678256204269980782389910537097005563998722588474515802698137907085297389303495249118026935490672904150830451595463360682734202264104521348426859279849507089329395945317770256668934881336597331063849394644174784177376062855805542115848469088051244300549262801085429812605202381456122101579909948527067950606705045301644393437776154579058863972501988207855738040677692458619007767071664220390102749217099993601892901340155803208337502088142867800463600095970552107708704458498472432751151033501209709960384026629686968552505331328791233666783958876273326158712280942963684339459807800804479996561755341659287264173515907203783679787013253571869601772368455017055935359850436701051348088392859601285520473455104634499583523701970338438558723891544758988697727429016669533867731123376003061005627309271657157647073898944295521232023115474004018219544957571911340714233942694917054245683909577978026883239112245986455459555684232090656803617134481954271899209320940655363051655769210841576549117740026285557670937195589213685831234465028123539946767138922653033431535003304347076873088842242375401406801692961037149988590817183514310393145546457045053615176694416523969223549564140254221344961897081056700912257551593073025569060596412646244132469914855029134226423502404550777479280145179826270740386644654173772228173004164939523979124703378901351361670928161445031103239862211877916028348007483434213068271853147535544224312700303260914948475346059863548704798266785392849745901737781857483681941094647960827213134470861154637802064355272382682243203571028938689851543462604726354703085466759779063331830238069424698046361211026520656534085141098604683808908700270452876419567764502558017464572837591766604133199758628573491254245463800607312719662888098980102114250149794427497456033980166170624270971795241014627713334470197612910669647468723222066446044594227739930297662399709332394708392646712821767322849777979527149222880904052182848565163493190200364335795219002627391892554945266077221623949824715850559219771349409642427717733621832044499252480642208954370436787595736755536883746514085241961619044564776571070730149816160322300161106014484184703040309465852505331539569411894027213176507331789361357461709818509954689104139701343302664068846451089568313752779809209669694263607820845342613187139863873328052018108052740887716716446980261175066763502745601827204452721759226363675621701852297535920285610236147313032515418309545679243002458175862063204290907670912068586173078096485808510807200443209035006595564382286842055923529704152125252875785959329366057777609732980438546826391525636338735216928607391292831322681776709713518295134611530772828781379067336733593360670709816948791647947736765392328610014421826536409306609704960288913120553592761503737811112895395874745400483118736147044415808248307575035896055679016121884831317774023216954725538956186733023474623055120818815353950486381556154456814600633090059902760716950901886181394123743894984823338623354503918312396602298148500005119976547762661170218403262893364500512954764600913667909173341243838100747690590606842635130721453442989660573906440506318292521692510408940513223399597415946597492105877500403686174062366850644137567349584111777966753529187945126244134983355540700507453015520576051498186417570113962056568860035617369626515932626326786681383878246293888414710326766984440498475732877214551368474286131379168206041976060214997726315009486381309506067380400258651314705092372770923898107323988539798637785463181979598355941111944551609712518733662585873489751738188306311660188337082888316800699382072330590696208758591055562652271742698649458987703003390378347426550448953232135870686112562116602518876872439395441224632737558939358932280713672728297569997080795646721581272937836022710261802991400992126095329368675667969255874071412939372229172838973875957627887576434976204167985647819312154387720698722363758214858529393089150175068510370415371768862476489576519063757221002865605707734025931845728235678875659628176418209677402905936255854568729021583126205346476401650874710764105223029275403471771774250677384845493000554712774096191383834243872698431840017936010576041756768645095803427220963994823543358598396188231826149066084832378320526153113411179807193761168504788403732709916138790259996334181350964743255858599536514595730794860858358060175177406473246797236669719351707015390946067629723827945073853532236142557799557776000040013124535039023988286749865953039095263662426962860445869564450955080638559287978248109879144384188156563818439510190097415301764506469112578221956018563517447456509711834085133305741260610456320256276704784854711392856227512007770167298723512074670918620391060410886606915040996771515628615349015654274500218542300786350719898286555948031014226171724069644216382650454890072934838495318822104361800415998141203477372280403528875555261501016718999974565981964971898378548053428540932878239876826281166229209947798819879441383161284684520243072515352364851553244752922605501685851629231066275840160995155839822463222275544203069734559093407767168625471023598056305690900221456960477416666334263970168808833282094013139562080848810486841392821341368970226651555062473462186265890342501774419507936975101974998369185698358824434733324484794726783691052195377150845485709628895571893541756655197262139775278726873839595389199335513795441118673716618134463928783112929606147195390359223911144114023563953487689099931586700617521283518249974708768196975621405027576338019495142729352673214809384095170462076019543217061541592402197838223892047663367995174623585534542134234235474699058765840221998063433342994095651113403790811470897410037222588802425242570156708622282870451651536789927962725929466990941455775148883488170229828402019008832623983834359119007934559212156391814221976534182391334588508528539124936366424953743758305757811594303060340099240251906294143884434678227408830136606446208378223580709031428879648992939403604117370216541332392161978446817970633188814679738390075410317904471195151603831862453283951072715466089527099287439935921182069135892346293336987739237634691150925960927726591635206467082955283700659744712481386798106177108330157095011700139392489513903127737878897041300733844663890283345763088579087642943748178056372567737887657287423586023293895671153781460613926908769210572346753810469934772961464573655763392462797854120215043810100728639996874702168813647194919189390226369715760167115726095790080458544467813297984273535049453329529635562953900529729129287876585269051034860083552608045851604266894726575227951016706363339146313135002654386807148057264437431115510027788141374017924397169142911230528400493727305196617811230166815173391158222341395162803804390717508945392451156480728555070780823224190030094820557944121369255568621354786731535290843080369422043567249076335573878819540584453121556058916484897756550114297211251140182284303468974728872522572180570509568558793605926584250323849024428480760441961449268924875946664509841427020002395647835312737399715426636686449006421795709320404354741761424067208095568481044920607760734962562553041914748175602511548898547486772754984214089939607287788366477405137840020343435048652096113277848343978909389696436734024215300296073475629031831692218151345333231324256054592335172198411322874590619972518222566851421564347387029543055682029642928902909594124157497664698710949886887431040101725170596565434158794524726577984010144674527548171242073561289320282021166157578137512317083484253024907967055512074452706590278218275752226275011439540615852954737972273019194914984892109201416184682911927826601838378628006829551945962307363937099393362401170573128526306532591858084145928795117470601895295321457619778884307773649193727065938502355519072018847883156003028273046066789747006410256254443246131764316721019789797202100034910879993253835329690437262155920637579571041989102915020746958082288389693233518225180781959344404140420912943821093168068791667046279612612709823890429725695438872571224574707068148366170812929151766100035633944713557675326553617920299553378123826414209540194599559518670617021574105698183298072269735239559102117003639509557177467448031240843060909368828910070977584438069066619848854780952371865041647257939042485525867713098076435669904626603330567608152287932600296696312079280432104358963399943208403895248765133931314196981539212311778231257597328636525361923357193075525149031544707202935764828558458614609364623870247352703882038239995954453869264027335671916499202253844458891315910350045914560753296334856253174010069843139525604326207764220248853739198337613094388971306937406160874830549350610800023434164538856454015845296749374034861587784208439374611205033968837609219726414236225094071282136480231676585465267986226995117890688648132002295097787063489426644264945322868773034968844255890133700748746278932408829059150151775919497630084696086882020901606851904758635889268887185972915967790143811848033627106533492429484086014523801012571536153651435244779824915056071635572903313444501274299652232579022019549598348962773429881472108061975942438045539960971588980347588540977716806494536448513125233395662759495725649706479613565991609516153026157979772806055387056109790911390400966900766083409589337779924992056134243502683205973030078640866710950520953745112676447799520350523417397203517545245026722857985520623779413486434171565675055293902782197373457191200289822820705200358912565948496493538094742870517789117301770519954036767978519691860818069250625431354680409580149155107790916592913676311357100210253767378309893892628034103083405471658619365933978079278294296030503283982868440714611109375416497032955002351629589952509030517544256942506180314192259807492666904584274927303077728621686050951929506274064157653618477043615881733449874264493807862020352229329636734442501778076491352025281787276904396198349158017872165075729799544039272327762417066923227940663266948970084867210240081090868385892816811695474164940494528461912553568730541672319240843751017950380341185696438285746505907379890966719236499619440696341470341287749864412795709824930276707417963063717385185845765342021610152473535343814512289147936674566034073356764216891925240186031042088181681608176349411384556204801783321799047649640998312145886608959902363860630517603608011854324758404031608704501313972603561382812152068642660350278277523318083048695665375552079638286706601046679980538174344927939269058340532819273383927233331656452740813153556829100963247639961626137969704733428318721921506777704755763899678899650620341327828901493443855004340863789808289521247626992011751194244562758077511476138028571226983941863628690951602692444143204585044915457470205953856212868135736411480414977796953562676872287098650143570354288126696781621571924681773764165058492966226966736467333701296957144191011230416223389224924432933881887468984418463123659321997701546170818519121410710340754613347170028404826752263302192394548807324655690245460716732156587563385447168946599540903935261795658131577295121941269577104351519007300620788732089038793610984178762329611607616727684878568651778720804656735135356157265776189658966776629882314058868722834171974145235682577609472241238892038298076421333694501103067223446611723340976424618290347261936409897961765999711637509153264518137145077874374958669216503509161163630823932824041181886994531866226846171368410311681931003136060922077546844124391775847456754797255210295969517083730606614080004504751859220061956381415414806430223173492624807939169178803780083403474348662003492184949084696899798762694341238569491975074518645672286954388385286613494905627451893101015771976662386130679957557982660748886441320087751655776609145003180961756622185953897765622414649719928426829275954802973450592172124315708242170161012177750763916240189920737189405401702734019851604455199209079936892939937464951337878562273416925131426707573155230657412840398853033309502942232612027085110411206866669784368596002536954426648694812631066895075557116414931780138697563022812140079775431664747247483958464434258151585803879435339597913974645643138676621480516363270859940279940787638958739906399056562280060720965276516885284222403581670153160114142733486270079190133229004224237359115417385255872817104896102478888375097546961038511501468348846110381000677304727141175577002736427609939079994085370513724791407365492750702969425812675975650744552560264266109825857115519614711261346396064746134909382296049947214635570373548085217390013650160265860694599362856540336394349693175104087694568978317816150760236236712997134602680482767195715404236737828101018961149673434220458230839482967294164593728070927870115115227226695039646109983966883185969214792891875512981253584493807961851533517978233547602463399454444770113778883603169091043623745002028189031800306968832912856109102084002235145597165619138571335299960929764535369998670338280043863916226926809936301660652969284854150236007874992359341562745936454545937635727278097417581941254897059207443448463675470969296231988811230273528644694652384129678749632216803655801329869336199532730973794931263072719749646100313614893190604223459052281620380146024053638540439071390009975442430374675547371275750009722421147832569991230910242914992135870714876620273579420472507505721440853941733909941503238054486448791888281841934080951015131257640705793931954843783747335948179331888580958704197414047985928252055384971720995214548767102343082126244964278990579458605792865228398463514710457966161478871122721860518259431196885303286395710087410282472934396386135570824095243982777101183850540846996555166765721490294169106403914344136005024578750233044907368586518344973619047849456105688030447877963711177508417979304453808293785606222684655620430678622242809571558466074469786207470244679446886990616435905671310836232722801755555441015680043548496141413461208956673144706510717642019570062787944416255113069891017954609271696546023486075543899069808122656771333322219246247132234527003805594358947660070333291642218887699130006249656294984474994946386895936350174058007176805722215118605537824251117711104639278606139534151865894499876663869080884232228454867139533347100402019005244106024231357329571140448056309226997716194057493076716713780778948022016142413664802664270411618961911285557005088346951693983218638737027482074782832965417031274943703573761152320676421157748844928149034973110190576384630233149389588352697704056650562806765880474429789388996075031997259545942190422131755700691107243365238172777814593944877795059674106577743306389387831575662526909705871817561869910035249148773230381571023276071002373341109399643581279678694522145074585755191223049134497587821292401635857283695270610970456983704582577111271193691478803900613477699521202413605643205584658671122996583811322937791586755530115449882489256864803591454877721697968215917230775909201891148974781742766155898500011755480201440625066639021022371476580859088067661432631451396872178577608307011253367263462777830000008220892496347964278813505819935477807527653715952364794571530441543194162176046916526534973093524460275078970082133250943885410229863937670595340263999903105496239190533133807817750280157103671371359715880054671603400694541235066510603259920575170877995154504010098577037177318161898094215768828996606393202469219523551191253915797664947385043191084809483755591291036304281640158950959648370332057683516990038905498909580495536154813924826664536167195155453111746989510627514066508903415293700326497564972608302414701339863137465575799590150595901744145237853134842999913659951550597715213145764913043271181675249024138418364775865601775607577128208612798482914234451100999310465695165591198613403411925691997284695632498218677747502458124249560704108293881431488733753346380646564103825193373998294443774610803377213448130734674531232969427527720916115315159830635918092293858927554103832422302220256896177950097867329066924836277533304219793006259885284135976318731260329865447642398593619805543714267115322700873743108339593706171554537763014839149209356340207341450653302378887877707512084546766114518868338150564814404522597589890800005052270596170615707991168458286480051092099405007347743408733370290295003434253078340940940870320678528288352312211170808203448619301632992848067649566620739359890105902448633890401471216187365134179897060009312144438174186424276994353961270898229003880301282138388265662322400186874720005252215513811743311246081545417426651746689574243398697138852311297501497807356796369405285821308772541824331019601220040796068092390525711171205387468949519539190364146480660268135652826781981121130798307623018249243435851936494372674888541748674427469963040557034533822871261995440199121812624740592471090398574620750474621067971768023088368611470541891833523481260505174800053445697563263878890071162580878814155899105750028154713889753072885052759238977580491111366961873729108258392202485543746039443637136384376260350046730142951853398498871352658432415131846772396375561472788449030416102712345324383991317561107359012803845526321357840150306491365980343496370969459866957784591087694920764745309594389836571198440603825975150743221290852196207973535027749946206277807384211633617092986959691798225792960188029854654247936378836294429710161149041925552334900819740826180339552190759739837986819412454319950030006402440818192787257258583587706799384398253056874815105735342847728312615458266080137291849596637381903281477597221079666147593151103111088583738429440791126120103381342513048007110829848052377613336741135304684115566655814172067979250850467370587129733260572829956855876656289110820439496432557802072421783039653630539336559110972884008747534485278272488318419675860969634656020583012783537171489487866291947015540311611856272558169602987123043417058732273311467110330798378233671705726274568808081257819821113100754287507916754050089026644429174246396418663999467775199083101506947085783972946853132736696490462686425278575068551838008258148179110953650055493178436316158851851060872904523017550397900021700937829736779622129943949753848135251582253222583761897070611400142573778985847344926584351885694033460150814612792989473205929401209796408966304409515567991541881991533129403024949772714145203034479404742287964432306066000934658823047617908674921307306692770450170238377074858716371350437420718141873734099251760501988136578484937066021498626638400780935727433261913365764643053551345396090341211871322333786482712143407361391699941578369582274462379108021145168887845314442972222755396415975471751753275329175086564136108500014315880159291372825354142946634837188165201205739293747868285304824083603498316413783550661616145288498087466336332804008275689642285825124803245853945890756838562962123677109022700933915172288250604089525463637910946936437505997088985087614142410852741204102448427027092446916833550628719827003836268601258214366623320115486783303134668074947509092703659682108279655338703284092244510593346482872509145891665993083688231754885260550719955622030694355883970418454841056499835127818132591798662055811843753270592362348593736179157718592504903197268770817203150220946489664166621538203575007520193300341801948722912396129312799435132242259639183787509410367179862566150157716540641085109678857083582056606840257176401302303853906049292920989009908548299578571033753564387199756681694835674398296495086438998217869036692025705875975920645131941559186195327270353800403942343072754891585899965821297642311087005481867341678902170666580650881056825502282340019554299882679032556646584123390726468185501479244807134256071966626529054578503615665637217770263828577432186969290186532943467798951622146131882423445175790269774116334984531914041841302702902049268447973145640064202493861551845993141360610964330092388166783840956055835976873048920578073067324995247974255365015682929550808669440625201350943911664464138589239400753599140431738255148656423090955857218928170512449882868063194008695207302021864908724567519061727475410656761622956534451324181305447983202065234797888164465151717125273284708275738928074845686839030885826159811521175291869752321285195709708498544087269251583431945384660300054943143392212945027068325400271940679361975819451458496735677723251735570736987373708159451856219385274778404620379234723702057583530068514795535377594030068335287645060942164848477701504983851214998677764237511505529988919391125233233468885503689972719826619388829181926159791719533436443915118698320355244482289851273353544434563192600396876727664323475871708129627971792230534386965135995253690383826270539936911838698397842450983913965552717918900761901354928388753291761550210860278220703323368019017914227700666272507580200090940094768310245196820017430773137170338731047347051474368394753231501207869106597192523023210704498984765566807649275737538516943947614209201064057405833324586339770043058799362751430616659039633540754682006442920163468943735446046489933615274116577550966452787512544290962194851087665094485459462597594377677512933829531566840299928035246208675964882237395643825512107256398113485076885721423417738814320793078493674746218755259001611507844093995980904438356885464270138137817855437646037491874000580438533770027565092133025047176397619825744429000434254748405694875065380008910921606205704843918152881950027418131665765395748540934993359790859991088016922527156220643017787350315599538877635980412814039561539520215321057650337899788619408667981484826557713912861265802570795192706670601890724759089097411248205543416163174991211666691697314913090438906783995613334030389062289324166230047468919349312065390114447469007359192349358076323087218756826702808525411118462257597981187534143582470530227884818701731237779187135176956633501197984160354606406045613651546077969566589703748965269891720640545190243439845939777524804402094514747657885186664970891303110979772480922618594314866655596752467319479249220546623505554138821025009470220065501194545028247520523353457111762705441399371309401102749030784868355110701203451790723253835658746251850071368213251644172013611081299143162251041998400679742891622722700554592542884831774097274643838691260512307744259511876849350492889789242509360375546979284161217211299781257170846888710856698166840215132743268441623242196176513655440486153355583775361576491582895956321760846487969136600446602712489637178115347264518238200565448649230253148453570882499247165927821727842662825529240995853168442073648382233030050498467200963612941634153063995812152320031964165999678650465956033205349012708702405676391566882431452287000097847544252391390525957817912296266893609758259233409319438664981643976383491351708684192484246169998275938229879357724140199837059473872222688933585203630784028004650052761262072185666410223116982574553648545885629093367654846766567340868971494708658683385513031981498819813875780566923972869275036763497374924720448484553895282346291668158752654340014603222491066004548379696363156376337565730548061620588281134269684944105418646218822903744612979791125146645976848863712111836126556377031961068882301730875919897000974720043379990472995250955465085768728964622904875999415851724748143793001373679608537619179628419809276207702666798473856175462359580411264484240413915557857072237181626487961628038068869134254771814419546183161973131978872764995433075372899684344384933239204061952975619379173948085224864188061446487148158976923838020960488410364149930949252614987605718858645597148612034410529700957761481534018042725318310266865275015918772467323083060700974839037161911631914829300524852779844927588930116568098724729928591638115693630761377876332285744965512835156254373403643097042471778218199609743069558503156522997345643959211141469462432731657025711501932962405723744603119083996919998923976392240140439638841680060575336327738679088563414091679950283113991973833702080282612028580732692313890767003605617921290420246424100732179363737670986821273303897282766916654307081033709431389898849996972658614002050609517857792672248235310817420523148556694610407261334192712407054208563194562997908434856112167405664168297605333437054457943321717467310922649814780078838508424168206222600280219980454081025611354547465030859457261091112619052164343856304186050609323961355460472199688790004863869614518439150969255034725761284494125993760450074600200745115065177693884018345376235145189718100378762384968380523747720201468574083020886392342948523391560423941664498198717029833312307112590473636977277619061192760530361075148195523188514382450547015033831098417997283063532660334033730138209781442104916734831907317457079941373317769874001687611124932926543453330244353070310106123431624879405254125881432870562708401307734985516279231999567746854417019352641521125789229577782475287653756844075517048965953427316966075529971338088657525702565763849482581600362068398745724918778900721765467974621187186924692518386941962354133113741158157974344900112744085947536122322896680391304962540199186229676899151571136469571962672360214883566742889276983193181662038158309420239057765705810536322462168297371695390397828296278103587294543744122738436289473355761520694057432968108972809586030274372246094341106339247197809977495146625574935629367545703711776845247786489477787449745566188050435714978269847506983776443837536270024819005458756420635523424907481520254017689753875125852009040519711241938046311949137481175443727278924357877121076342306691992463520015802559134106443576304300041521292491618117932361700358584830181083923032626166813228417270410203361148100771272325624048979020154002718192818532808204125203051382970130554673196037941175240433783815630301211685909352877386456941098121091998251835152239999521291389584509771468991617415067766363609370165651665986320377034369429335250553490153322201717442862483618989642478414476266102606821122344032832029376805359155103327004917868571251896172431872652179054222460063406267136147550183094687230721594487596400013576317661230261212693654683865075758877750193236169902759635258832137739282971019137292470617716608073992299237251804525318102677909862453609341701386226253963205131984456845823146594953127208403001568394885302092712074524939634891048541425584143942133266621515481229798845529432223584093273977716582652774518160948961794445260255303848710891217889937550003787413838426920616696126144184935562741839695900047961915788002346220133331977694340014522754697751120479280043811910606430579328321618581398776953487967298674648809940809102623022480680444977881601313943980545878568309351905398021337304861137973339199575758093073280122178188596705530901598613065164563424651454562014577457429773298755250815829112340949789721975562726304985699287234568791560409919531123005397175231238203419999777722195570482813961615649604692124845118639760279651127551616828005242743570071898883438939803803945054552249214994277859258704357438134451874160025995508767810556397709073989431702329916800475648105317680260605763837391611300267525938890834630075153985535762540378993037121773016334126708595572705117908253049207765283315768229236391288949601674727513879725237344645338223305589056597815960781570359954394428335987361729275993200905360482715768871459540661941775935140337397937953191685690332680476970843233637036273091805129858713170451646350266964528548672012843566053482278185940946606777315532136286615005792861214701041350680265476063599424245137153790403694546713822984650814184358329649281960958453960798397075111784240738458266713140425519746845790751806486120862269699444448834914373199342928721686553203688711126787855106559396153122790685104363248166443735269832795151173374406556606326503575803760306975175421295072792003198098117111077006662595771628636083821937558969668617965042155329735651570016147214201276154007928804294306568433002342947415172194836748308936702180633061599501371002118405954999708737273623631126122086288099697030856771768555536696954982183018746039744704010593505017266367329472141629050075424604387033704642048644694175420617476013415771059353018537035402719124060231678438086965404486434635339411410678890424960275521809529684578671040822041305286395075383898087707861375891016515295413982781940941981511343087911046946162209352367708625875904506379122167143045353224665274489395417583371671920718841536088167471440942796880144682667659952590773877731394845355812060817858823497512931888902780306551035466937193425542666226304732025623376276314799952787523825668724795299081112781731283318155824950331553621562227299197565424625047183755878373703884659731260610264462919716146619147736956012236994462100065297707157672923630217219496418865228517520357540282243467399380690497101983616846470733636361707198291796940410936771239681914585844062136030896066431561650593399698845214585217965183706120953377076550684317323207646110840483870329647705915096730617648304036038564337234301141580963413778002620477511878995082658795246404098961419805705649381137796088871659410059491134511517199015300249168225552581484991499221041580825803971851433658929270837504332913303545776347839696536826664008092316388896345673532571851738985899642711523176434925228144464118842596717625819489491641483375306088434888154350239314141418344165102772025206446729849092029031570578505355748352269056596401799924011379348704924146975986554573669518614912439567950663753475031922607902209491513916102919233988189453500632200523326942171270408926640582514320427202780363155145042776344681738602451557231806519086987717781487157334674131842898405505607407152839014675000919517298650646557761144758115699764062347651179675605411485422843803013390751366235948243604216437699727004684146974384047065135300507650493371064109629496771909317961784241878519938622790249862963123719045989327224942843860919511227356620037419400757402646287435178597536319202662124001778990134951879665310483584177373717621770810161636193521344925259468244652701811887865845895282748774290526778809851432957321932778618480746161458075368926872024120389651385415794165913611445071262407887549755082653314380670583520700365722232771874873727528764942029230358603825084515522871955562906928202966662420994862619412933839236624964031817437814936565939212770630382787224613724400779675075645834589677350512062576999560531293731191974494979883216296065119297119611313343727090496084277157112968778033352834526815472180423423029252540136457117422532453570424392687796638474980221401261719235394225330621372986406239960682629770157764415808327666265030649096335350387545178839385296837326109661305029513530540759068273808784034267648734487517184361377013473006837016383259609974229816367025511685557337607033785984583245512866168185790510596760270994022805844079842495371144252212503408326281289678869942910826207469235807047138190875638325923818536485489965667269053728757120108690565070110853092657537253037350959731641701075822508836961581179118659605338338420142020887260979253301768164018810553950839204447704830123339349396166332896712110517891591825595965747273130040003604179071309171270619203513711248496152779983825226762231953386875194668849237235348334786361380068016596864314584099979506486974785552946486650490252053903908035148004911343149714312800807734184647798513947190204579291961136708558332978060223865715556213842196545421367159701719462628635268497316187616357449170725067469424979420480375596533684587090950083197359963370560140774938709802980191745448092949766796556929427545523966161238375146946303188149056343039306828944938770639659760699414267685699465735150415383050960276650747109681593051382987689058744818499106809195294394703470628657775156564635847407836277427692844425520603089962067112408348096747667041781548227215696996856502349322672647175634184621223996535405496410319913444030713138305301701168663256561383367785752345154124960763244877048172604087228016689219887596449368202442007764178096546472626454905595249128709112635251038841778830635503454619522408322972707947257253135139515564106920184668008232021462129983837535148870829724866664598035921530212041358683948668236311211224237853779159720806975083011677164711314806585474757040548034660651837847464875303851912096207495285940114097562784726316892848529630289315974853343005535708627203881674450531699980296737118866512976117480479819443394970617020593994464152648560749282515373529985549501986769717235132579954589240763973420629294899571282963475457671050033780313430919004104450955265207991518038670455716733367082066531332518945469016091686330223797682279533339325350744402342200707842788094480719701581063547599362465799672319176522861769934553600205069749251445345841029612094817320139302173862634226309335543450896870060288064238060845582157567632984871794010716568840298987034129436278020249459590934703647069938571077145673831496195643517829303762952261478272138105004107407760187106574366589553146685976201208476820384572214879583284866238216639394347258009940206406955495834169422791091373286304989070049818353025524771127425756398110069997299606508447388541387419168682897751750927835619795131913481817175293822426166675522152196151884423485645252079102491321191660630104059730630426912291152957064709917831822257614267884441002833051358005505664033376406654749769936426300560254483709587978603839888812428909736462110783549578572515730318302040894292639907526955773804787236377456071076626979249527384074736420935790014812684286660891670961503435842509215376142589266127325612466824629302283525656560950922787035243907038844247088905208959744370300016650420065763835942037717060643079024302741142615312936185077936221751084902423979821947963333246507527072035769868172656747154338804245488701531966105242121451956323651830443543452685930037215884086576295967064507310345842113139530682352243406071454622622196298067045106245932206712175326155431487281257996722920603117773812238600438581193203552291417611383777311772581269249274973736055399343954541278280195976168001237455417364251274848359949750469520767542864336894077144248185543415481989414471498540815789707326425627635179503261479296184585189951614501551837347415237691177490450424028015275531284645385432072348988509055147571513499028421923260211685158457179623885070922443097657801214776756297493798610610027058959580156924796141346400845291120354737054850213366050206598049050870468637423495586888159702753602665071688404532243655966312725733658292409015282216720185727274014018172293287621113982106239433195267184446601827166716210312560659122994262555590130434830983089965264466522705032448320383636945901270935147357587434966622289565669376616108794670827398552537985442795629638173862369923777806441892516815837697671668360155517996625099922512866485724132807137169414224755667814001070845573150224485946643620031233348412095724349034411040554883197303499399026283611035327546448682099067021505639135977531901112827474250846344814067535904488523696165781179791446825939466368893484342084625623441075468430312084575218877276454974954887805157694332763446464511433846953085992172582317455910115648328821225951633883689810316251971124405438595678624862424823549811021291266260528421486497508372320578698575788883186437210689645912625128638116455424713325845708607240727593627136501575378704510973941354627236517365544038232671106230934411631559714356857621570008777179214565289828698162308015422155240219965193339887729094209919903959793414461599255408516930065500040577149648528989086636878685756387242135437126318410350695062996145631632100738766180673639769720165853311623160516741959746341242972947954384552065023184547775686594534146902242697135443748719358796643454601355270027727250865724127882785542940320460185492080430697360164966985584140284249779700136054882500392535720431579031222768562885806511595406646855968147051038712622652889855133504868830580181530248606194163080313160439163396710018141442327108601969328859000488274774971810426159416205420326033628955163069283744247774425248152521674427495633417880976682762825328369574231984918222975369423686668164035616704140844425412518578598283482184886369157577545773159036733371973797697918513589990881363910897360602036955170079440040664359009366836890234400399789550610702039603350653973864415753855574801894079191876056541986153244047595754875598780070926498239778550531859564861567090381608281757428088993125490718092514129777929947243829792293530472053072535592705048603971737004591989336445022139464439797779150521654380077789993153602416412475634687917996447792466482838263280486082705968268479093393042247470132488522423417173409266047188911612618085021957933593302378084631798785613093209339321109792552787592585552632317039112000937825202433446169874221980553862249467459562509694696714608464129004059991715280805432646781023222066832093775326279741632220158391948709272048621792529867264681118756607142767589141937067473923233343592077110447742894502433760243467756504033624463721292472783563028477334814167271498235543668049998859566239352349229458147602934752306481312358150039350839601316275866339851579382544187316986903353678797135089959939608865506804206677108303003457629465310613578721485960018596505033856172080414114117199274698354077001599113958074183850879282964847574642421594738732310670255607168894852838644146291820063633177977255719843481390160820845190537035187645568725936128122251339170515428966627854443978687070827528995227954748724390863048691189091854147198678094445009727671218939825007670194727725587326711756521003792770817464624096406975942117937649459204577906596794844666700223866625395698785724682578739805247812527084166430014205548065414750852989542287699868188988806688237151093339047689783801959329958123107011262832780084805659469474504523298621893617269430364093922187185534203398221225709158808153475324649480174462104742751887962579139453857094318834118579484312031431361390749002739448820346099303889660567112003792135724812412130454027649648826439448969226591147771120273319693797582644939060834995931459332893712433915801486185719958905026801355714697218905496643285530672189193439636533579374477441780441625067051360897254648977269947305182373423268342818309749374628911437224360191995807514808511882788456896685710415226446102533830402118653443902875818125704310989361271422633624826320968995561232228428909753599337482060425185078045192175112042230440064181041296139770572529975892967880774362542634739792108475296889488225246867805222957866808580646003493486254079135413253982504876082825003785443049228446702782538363117213079074633372216701315351798019194086449791386284176800321553948190472720961773427233548421169175953233198549216513886879431986134134882732042333323553395363820960934738942665399034051623903606720278326732367628417754297007022607437972021686813866813326465239373899950032959884161566733282238464996859404137224139313684566159657836313269664405817471125088231913258640082646317884916379533510783169039706384403664300104001613583583714649278439478394546170881306684648115750917837894937024079281622158091319860067360198355516463503791385008556667995872103139967462505004586775750400248920206040145891072243808426932799357760066955226968385844823440786261517728480395460087629892773866597044667819741105931618600067794398383617251033204995916331565941626883857719363018233997965730121580613338278063049798769548926200815560413061233035235998314098956312580951189558404448504123171621526416560197413460800605206211793200680278940904937025972028581653238138261049292913763579497306032543403515706244300159716407781657771897225479448622495813854399972832025153143444497356348246147196442730548031440287253876975752816206588026526288405372011858974014144420449756320975987662028530311911188076832632893381806084976993674976360114110302072045627497347168020766984441465539612377339159589890736337511201968191101362902549072077291881567103483248874181106366316729758447627807326061131934789125900040948038311102157893522925158878573437659454507185828128187087613607842097508104613685823913273302354719985734684865907519295760150766783388990812823204458516836146663408248121046060556038298819283547935735828783583623424099117472863896992943984851376750677012151589330490478249074852910443186503464932834804482936998946109651780101744463422182307026341407820023641159500281515976618985248971195574165158425625411672618504208837146696083419989382363812678356617714386362306982082043716733253420120024865688659437958647138940694178270556657338916440580123022713547426933600813802909499505900812416848800197215412024141772745497689420261284532216987639802421467851240216319310315823593554484638423895929590540388999414790086157179575329667226295338906727050507178298405211093640009755716423787081540112647243041518591180081149282099572511339477718226792980072201965807165145858077714096921586002537362313416166806677429265047150965591179985523623817599426841093739435843878649075931961129421885709917019903426942783174128069638160719861685996461188458477648755317711257534305081292728639420280520515665116110972978462508721369256132684552826848955556376398407158749212906299554685806931978962338531043085673099824056132216901143238010455783525287842092530883092720706374497368116819697479268469025954201727339259559581093033651538153556221144037954280751696065320556168655899012729341445284313540097415408104046128190721576036986473427932795135524458331228846316206402322222712993630658535980526671077166840530223517699042060452359625968797333820704729905926495464934730040558792613216899496987372078829683258806361660369031023214617304669578241311453487138956880539978944034071143321186123124861170006320196799450126801594133288540790577269239718562567204208650301999519388940671189656623388906401695128657037082238618099735254184043951614199941150076002469506238688786394555687237800285503768017389880664027390422179343085514963506390382427281480280127835326842849428556740693645325454255308665495357548919811018090170500641714278316845480532652959713173536994781242946622795174357649714447639650976914788004391217056621023496934662189619804439535381550062430012460613565536818835158532216208844953767665259837509167439771444615745890301379642274547275949689513167876823685457706480137493366845884839886472550955089879450678857216854177992802250845596439902169153309598059867096014001112505902439978096654475256137594559068573386804504091041102577621930139218057469135372949327609001550206588800752999402981175420715536591803360693205554572472109079817293010258373213424731139663216515906806021386384657422683609044318462453306889050396564875277192207419318454617793619622260530482544972223821850502288930916505362770475330728888850366621198125129490780666883804043619293865385775652504742081948412072186296725512487422302434152289490560529495158384787811153943129919486275546015226150802133774091723361784243054642488829426442522657696297384505402697151446198178680936411998812378980372339461720399148173912774067836268319298099941430001202945885178165189586192725740632908910914159090347072108379737388034148942142574975035945132042655309663934454227917865026865612671437117268186199672640585655134987906205914834566195330974205972057402719171244824121895600799819034918575782485162784327986391191888078102963720536213382022402443188097149426921119516358062144830490557082317838866845568546099223954246221764161264824018757609187353166493165560945591304973861699118524293236610482256573592023469181354342721756716287501531066305834834035078345226163199106480071553809494846620824056811795779564340026846724943387385602583230091233925817459357736559880576288276032469082738817888900285426774879028804098604916385129216370247693047353390614065658046333782046544506323137537262183492807556107908842579299933248193508080635664208010606141287152367464821284263674095612799094950410785422414921544908721204933091024042502798588161395091622504497782560962994295096839698731706896738845079208711723806361483521460557519956391028283861296891209235538449693144275727033021623030246248457758708890896336579861804794222928375246664972817822219965475627837142987051107258998909167299324039450318274443838196594807406696260355157396824072740180368838447934220989925124662556411504153068472172767449797568133376390521187620204840834522599281228578635476358708155852586469149282466370382041950199346349973108035037783030651124900498654046440606617845710094513403802918335657647971053829139288088506672047005343554394816278235252294473890774832933125325916994711899895445943103376864368916223044952844340279374676636438655074516058657057540823872560587350156247774291772592849091191908132000880521208941893496313280317001683730996394930038910533348278978514714873626883101372883603285689950894788384762026945360692323521264434547083803673631167610974530079241072584912017066010315561090053456512330325059864453742023462586764881367598622428323742480475414272392255271382923032157417495792011226201722895921752378397315619538392758449133281375059629344741525466987886919005388648525141419303507824553407950900960472611473849746363729782923193510368494396190008125970102003020091355835434415681495673773292559094152391073907452064555432737858387704715864578493978356678941253175904807006608178748404468669292070714745170950939528408822988531460216787597312145075044093742338740879265485785016067349198213818649487798335790781352456842586176251647155123894047787969717440304663839202108136260761081638762467390256695820064294295415597342219666352014756644996344273855751060056593803956182019275719787395149374948347574181051321198676025579919931903523633102911044238994596130504920358651770968124959892205891110498399914813445984758033723910976240984617943171888368262458921251122920701825757770038510067537069384415871065493749434169698972029842945060135985923352948963894079420080120770548671067906692267651793183250074689047451515007510483800050685601234049585338160608033775830598234333578275750996197727502287909185256521498898393387958207416564009981098826662502026796607069537686299601523248960844269388596930021496988222894608568875788602570292511861338076717868596500277890488691172445180316831393714803229355579144971769185971968649316726763670525870632914236296902438513213973723210633584670660683026028901583632852133089086268898808680863800624152087370185131542164256544491642809026839144552446649335338668054368094741067633140562202402761571728751818249246945012594508835906198212043566866725219156880735031421444929615661216965140734849737895788007578532656613805670085228548853943259274284187337878117590403162073487354996309236915517851944057371874918931856997306988659970462813914439049323833412832487035199986110178101197474050885332906062373093504458148443943433219143223681678347617685448679579653462069318093253564527287804726751741605228047875301934319298753164313944967263172365614946849940449994901489079561288298693963062368632453616463487769664328765333053932522581756053293659338374808724161143225590228845801313261601792239034635282637911619691572550729772833234630993012655558870871046457043543173809919966137313651716896120624614571388966527157737368615222995065324713578246735802888919111471112875693762044441697950831512472899622736958247109282479566635775939340173260336818600854104155595401074147877208655847937799557852062738435465590031810118432175870506154291543591350883070000565249225301342494132920995852561273569308173083628987678552161461688338489809877885786222015656564802307975860534086717564062777842633303557634830546876381435661265514640644886315184597041429967663049636333840856409862528364879703303019591119826549642656775521297997137785750777142674428463676889469358448732964851718461817776382398621738019751720651730307224586671340045191464760412680954157277750478053492295225829747767258687568969311313345333155988924103500008513867228475201425016005755319308730329336468673388459840805844717830224331167842468283296174368002126145738028083637611838235194511463224165177400035185829481582626622395284787002561677509883997927910718660162416592636923131933573713697813914000922733579601652311080590125582318357363956108117882688136641350759688932873969540500389878860571910710624328475382137320436136325275266454465105347783649174651737495215943987057140305678614611901896604132785031095048977555976947739428844653899468355431681170036173071992664690314965866291277701186667636639712952694069569863690352107175006728020234931689082233093017715851766989578772274604936043760374763935351141169375685352080306316208623251339971400561492339654017618931091820560715563412565186009453700157156895795157478786510967178239889844134871457467970168653648277495041990741613928514308652824250818837147262882687219443344584669885039552429039284949600039929482816542150885997470294079678793442979035948272116378097494723761514575699701029150347464927549224636671374006420201634055529015050937172370374442308631908069541049418989739050699875354750783584069519765698198066340058495055341257743411948680537238340564447018631393088336995490271041038498995296206599097558451252514253879492973715015675268474047865015607877099001196818408083616497146565318075774738057709135260738789718081667681417924655201105782183535462139526820214228282518581217568927923510513188467053294767225731602295465478895777340062978965997656844682383000559615499912206734774349645695133093955651908403175708862091419832486461469974781707241052928414877931024224491722404440524596471195111861507943093651451614503439998607560231043331366590844748297093899331241709328314417573308449616839430559656236390732153034548362254881962867626245121844396214278271179528850620149438469303657818295368472566021901320659673099941705090717254021614777296931248226615831471263580815796758433452250624385456278731009645699184312424534713275876342272577870322999427814012747256303041837645952775268088328113142659067941018261720743398998523258275214208384136010901561158766646769377885491523393622791839411710520371147210221513721440548507743743841417163381667948473122428263767532994624543574547713532520005590384205647284082742608970250216537099778542528959321518012110357614597782087504709700575932069662370233372824553538482744084267992961386598457374560311718637290305705896592680390265331844625471695672456178262029854631205215197692009967862996669012435434903133164656569667946440561971264459411906434662175369095421319213642674301460269222570861853414125485700108968707545567478676157062727241708686296013418365266628698327104810758968662807425598184278608123471245598769153718509182561159074969124028047691584105601578367050324192340953853030177397143384819324371592921539893321612627962681519969631556818093660740237583080693325035825979244403564409443260609253892156277865796207651219783728778318786504149264204255744693824524283069318193371995449636061873517567195672368110833340924924552754944464456893770735957555853416664844205573896162439606296487267643210641509178488009171143717649321434156267923807497364671823121262179749596006533567055483364985446613385591315320515091706828341347917154312926351395850825110191705440101954089717543154102047260871499435464550294136660202008871775513491656190513949109185193529960906547902806451743567210039730528193758053480076353508061948416734762426192755509109612702178905854547014079735278517406721214526363764087859750321574804292209469451165679937540105790868796005146967135584728224666451718492124193927936977798349800920680366032596130983853953206604759351709630828031377189856796761881656471701728299555943865777500922464344490239028337117474481200562982415494947362922337155628909681163135729386787594374887168068431279362052586579597963063336617674385089994040745825895949729747136598183124410814149791970245207203647432255118965709372395954205378211000014402078611815895560026388032575082338030129027081352946931705173265742238109107706018783572303579374545310658655001008059937292090242776434909810562040143507419937798746443683764062118438843483326232457697625222287089349729637945453442492218407176461976380497214168131538315283363243966100545902941034351364845284593870456339197842463887130259242214561360471805708974921275329216774095874134737529686580480404912367614942930716579974417275791857557502041522148541811531288686373378834937541404092725291925468414853820301965096174864393378394241082653894566419786324547068747598021249818323641280480274966906766880768485984499938374585536510292839510200848610967469610980183356857141102155753559032899312331254659784737974101473540753130421935879584089518676342721065025425888656601546479405450212424826416894295407186427845647191269339789543173629171508062443937236661437158578925832426757656788777597725455101894004487663677979988591598665621398526297076237188541985364466003079443150177435990595756585742077825247841168227001663957335428070712891116771443716363822302382511035251585324505085353389165729512874702324531365772637044666540507293041643391685001347786428243313261773507534500976708417013857743533656862159875269275446249552071986923985291862775822237368818183664443226267262812315630185157655064230071017239840227410723361472049064205487543039956378397314431685078353400138548975017366590000314317441818669446097778379775230902126354804005777571421740316741065923241999020370370729043785982994274527189411815944849466614724924100187328976775473979506260902712272903034056165473439567898796186425300169046687142311796152755545198797945152281867876848169492557377008848853264405725039689099179675959053728411880947107884113965992259745878052619123085670791353519392700169363115668828629660231180142560047359257680264533452700126412988003712613335397790181266631703264741143521407342419747508697728957204298059944672443845296986635875578717692889435882219571551805646782843219233391865313158619861982957022256725349559810820413933477369928592555730079321578636257217147874728993966388706035731140089128084850862669399660671259809810526502303025702096667466410712940556162024455502621441463658725556597799493882588750989801206827546055796334751563216936496674143854117464732082163478200633354603791023469233069140004476464083382097782130977497418141051378913424699100766592653973322539261239138099514011585532083275488724352370968087150073790051898040031822792929365084035096578251072406999337278942343686650430172511044753173938405772564495472140633423036015980904542357834520581686909110977848353370861045691303114559895773475710043244759347579556976068003120656274899698435352162444806694757796684640130297350124359181976495567283012830039821253626015018071341601165772222054265684569967400838132477878197329550106908545260164140457128809768353430623710786919795794634254456508642230031668849363466212341668009911408932097122118104454997366401469111965385357270655280430040176445000990148734582678677272157818679644005361443357912707436788456754230064015307390879794876096866278557908983656476579938883366483062695699756691102587362915967049183938015558640708917618954545821786168038672975285933955291233524645726330661039986080231015392641363114589106573698303657839320114935357578984679958377042249026650285435532329277056255075750711637274373793470937903840184692126416592647275921504327540413454759711483701374469059889961490253205389113013478135280647771895259093633620949463597353368501383609068722615994781385689644404261758049762958448964345967742767608799449099903347981093514532294563125616208272655622434068371348996792653098481532966661455307681637496519007334794606698561103345168575859664926478161424598356667299213590433566751569458199372221327962556177165270490987107705068920131147034083601402469418221092123147034255563378662527358667470165066734189034565270919813875840053205028314847830391845689157921844527813899245674054542032998066055087303842835366579867463783451330543314083087054402830493670119521307433639268470398194145287247250349323252545673986573568252526864210948445750767695448095373676475160735175424771541668615978156001201803284427975896885971470800637769613656921079779613117339570624895566323840670820335345164017978916276288248119256134784928662721121658516914978836085152077624688177057558759692882081618749608344181268097619524966089527292501776439047617709448291746453297077586292820716367002359775096693122584078117881467251163565710879663444759130300860691021970069929437676497873629450864049657831891237412755564693274646180558112048074037322850615199179670851141539501491197089472251738351253878614197137916766970068285509333512022952429266464813703160198975055069885672478893442134029463627547914327412938689177754886333075126210927222089088760762930616444867057130695677752905885611781450977434443064331781345158471026645379864957893133423651636431405518324879298397130213726644615131223300205425865409341333647905471223071916711532290725101485021157706949170443966793774262896108349529877850443134486656251725217125481703233672999660185200320535699411106668555717282108306735234838169319662332951890974573932215027280014089314015726779157183927993692081390476791451415941953438879166020787932269445438027736582302387163479760560373306562461929302649213219872968735872492565807703210170254489006864582357810378945458942968429380699716192639042587069282876253018611172693482366589389203308231938688262013503480075150526964196197962930961026842962627694123637012949687110163685227866811507023509537839276809687809481633463598403377125292931790337138425788113423470858446278295980917047543358754680178169565245608982220071144937221013908350768502702548737121470812483461820851838975418140801692037179043293049643941141015359692891106283788501402809287810802960815159820157663103774354791132866611350210409994591730992106875915134985118230783599439307281817655542436139507944416675082286034257180808421611453988733469541996386891406549484276694719795128094426354287810475079804537858185493140261686854792403773374055571896333241368199144738998619550296037169679523183987825615459099058088810775922776971894992068993503926502552631681573639189645973291297388500306538164753728070367434831927613398461809706588483642576712617107748714213910810521713915682074146158658505426606864168816520567858096604084301078670363328298876571561148032843904511808399252429798718990196662969842088383328815503692113842155547734103769120258082535340555876747950454219751127828216661322403379598829719572540343398599929097385050591188026483597723722768975768867730431244851161864687423418502369086880291542171672118207595575654607630707841770133704189841851856004052054976676364258536990885497582892852233208648004670135230618853604226640088805369552807127530059904401734749263153432271602921801360459614876362813854464783531342171534445739537894891658487404331340293934299479712403564832132714473759641690262694958572822003945844386549209280484756009174369484379977896413580736674508265451271070387103076585393492392355278163074107955136197283279851511022098957827503070100815544950274952701271153738866286224655040687251608086997110353478436807000792592028269395577253741572644228358658484554598882956459921252371351038605885748696332611209068493291279619106641132906038369455464110668937158973507615606556689345926529054215831139672774743003179594813665050067731262416127516666076004420493154685468854500567009911963727001668858965321740259390222792630908698368591804316954128420668067283345137766896887512408031075717352068173765725576431569795724548033027154840590782084720721729438994648805452747503018691845222020984504128200008053694290280719241195925238358946120370503326338158268274270109257296665803966262630404860317187942585987766107872100779541358437261712496474149031273372211061384710982143082235161999780395224339306978807846108039245654394630491566916887451152528688119367089246251779396637138715962911726863410222835130669316285116550970044702774508485901986034366242096470648199060316632320275417529682152589505821199636844631185261645455689933151878220219098707617693515782458808623084532554366625079649027279379014741644534967547473141740281275676163956371015572745599011190410416054212196696464829909676351574227864645351414983879219165522621236710798336751855095339008748685985456562516531082711968538768673721891187127338630947092235316162664627926917113943232681920969603158161481972990950106383233549426434987307820311068473325804807763622147198667612399578965655060140450544174310518180756520809803330150836904786659916507618625568577092812398007340879699159071009275722869433200079478336000301076478923666999788568111302723876480685034593852743775213136375863316886847178769005480438479508596301111682334502962111188916111778294390122306151873383288610061497989297889630201046811772152352927436072933773503840652480273297651862746300994681212569622276016808389195041436823128195416205508893736458680837982302358090440543055232034235802528599556654691126771387309494160055279624715379121719808763095941246314455329302630314922747188532130735746276727032655394308557646323569898630185754162061605473911233321463458097918363066646208202427570550961481579288540883229003353230396107050279318288952666698883837903976957501511674467368471330690991726520916643866016508845076344555099351215763173638377638384671141524836923730089420364716438366115331993390234044748790157229667813755863963557954398762958100074681938087926251816953804436273337543706116233844261430639846154736451519609309930009215132403083537412883044971441934166637821532468469796949706028062347882512418251668250865507220717796889102818487449477282643513909455140177723066322590085021397713104961511648711826140433455739913634938805742082959691249251764336152488154693494268907850779045109744752024565865034637099299883397261408273601451522254405630803207945991715339176342287217045087829479419034331969101702357021871038347971793295499115792092339515320469478294720920693690154406848230580917488911385886487500749131218870763271690977708083525257944435448601775191536597053523062734596805023235721898558905341039560089534098751018144337464185533845816255708876495855516923354730205910233632438005458586289506182752500904533960703127050019456975564538408178667116033439661987244396483768977367159770003163035617018806995740368362813134362719360281940192487470354960218536424043702202111733117737412123321554678247826599839854126309097754959678930503338498475495947787505307478566421355283869877606205561383579305695966254265928676638164920523930445725732028149708802095853438573135433757008651575697103031822569687589559648766550563740614950371022389445402609633480631034661417275174429449180331913638693984994799444635303292262133979499167433481139707401751939165720414590363962807386167829495062447066469164079713764974241802541012608438656652487074907968039025239279268702183883524147602018758540173804505268961169612392714160575510678355172477957327213175381107108112323355355183348308700994785876707625655157282987047979351264633607826813013889350033951487541483900811966209775894095654637171771835115026086251375951327777778780346589486734341674504792071865836498367786286337992822107822739213043743144269778834583390422173052320102656338359710969073025413574640956403102571986142501568011456512175589300191849136955791471201810760178694335284021599236337165333217960289999860117224787006233808766271451438247134223750655115791664479265839146209622177965829874026217972131421418525226083544081898614642901868370401925704521246807438267177620551280410845340573563724293596542021809771651354502274024125305001912812999643969629606219657740335131373687275025096386221250940246878002927646127382165123401131950207111940425625172223975041113462417334319054198557392978512455618930443332405302166956955330475091613010641894212302332270721762777725204461098059619983758326549817154252645932728828580879330620263987574080096055997950096378994780452423326567877708902064090998381684961840636253163449423880957778512714399786057424531381985409147358817486905884688586242978228795829383817186353638814560546049622600602654118536028272081223107677862837765190479199295821766977751704864897017367992037157113787512237385722670632560979410476339676354878952219409448559504392970044787537250956570378955824312810241041149427694491835685881511527037845348996889213456663654209836823168626930101285289877051600635229881421103784304323610034877513154817037864836156910507530174071717688156102648574508346279527862920126346381424559340400456833978186788812460590288974072719977102881083073616805263840682573227838411157102358682894697800615422959121499150002264933281698832993509203513694149258795008406307301794059119086581128295287563418647056344026772908962159349829487250636673901619687152093286546337581720620914669865051052199924556944177584115987685511386438744988789550674578372522052250408900185870820908747369072029266445241182769833412329435513871330857748053720265958613534511527359850998294992778332668978670898885078483147122490963795643945895677461884326038745834787167048573096770273265900824209884057766706109628941146825861957510029039870689495952089037464424441397167813760121465667653544993700378968736294721282684471834444770165894372526678212682314969660633485103385585614861044743231720246384263741317363418960934990731441713004641659134073497385360084344408220213195794671351322959787266861223497384426288271405505214957963065006891351963140727464497530209919704854154215382978435399357634182106490233215922221070380693346143476473762448463402641552437630955123072414338446742383831031986703466748922979860475660380925464269955349482090211285112106144641967095769436232651034613672590573837826474937836885301373700997625205226162575508560878626246305861834138849968221138429903638972958090724256798599185089913265873877382716754669115742162189008470136215786117507213907020098505124393605942375311994627678691310576532240423285747894578469142771467232074572970062947218956663202239035438146241787451861356093787650812550239238002445831365125958294607531043198697165609044298263296639254861391723684522835239890028694275503195947908495172565630097971212118137923112429765832187364898655962083790355806012026246696619199943725575646839402746230071288422071746941316695648786671855652002837507450227382912899207878167379965951217493703684090204171809297792690330077263092946854362025278292073074230372155472471450230839226256389624723941953426349815841456242156617993585328373385037234368078519774080681814006967710030398291325686566897825319441231702901572776574202444404193621640038818584217369307097344261123645290934012222365445548032625052808854612139755547255918876060256306147940870820246200639316806929425418183561743086479473818179646353662905853814120929287955884987102119692374183321566966776527577457538825244187689584716426678099955690052210867085713044113992938144194589614055700228055627800383343587676743399424621770248113654423313187306961701075866944988616348052996091492745879134738357746443061592430822428894590581357744977472522813325278674123411115949404713448567161332679931224507226884025140430061450623693305348119149881133008900360477064903008940410850952413392083886916509974335646935507254785556684125135522580390380506388003824223673453415250993854780096814600705579252628117609299761065939543566444972207901834961376981430930317983005690612735320954502219552371071450743182838829247561579358916201817524586194994010514123620749830358915730367879907752279856340272443358772321312586478115940203109777824015947779684947823037363862771265731125975567309637615313168964087822678053039614109907442060780848435030291293713676696289706237620395661695044295623396543120306109740780609669080169811156312182513086865960170214204628451507342978278738720790736103262072909985598287755457490589533451491369696331794895481485393390241737606007976879072303463132349921891566574489839607760301333177444159163871351192354311592013756350285272728539269343253527499835243637463010683143307971808938881896572951927406636255112795643045034891267933305697132147232672980173457687616327631671767865004664169779469119943276285017103650844869561881320295288549836367425464093250415731458726027175486244684754233549925592332325626760512372703771456873546835026722833351772912258222033005282557003411690502086870568457399716799279784463092897062481541539437191615032791353414215693444729940919460210079538858876812842757761404346152567384068362456614856935253522151100310383392382868894582696961160325264098197650059640465472429321270916179177392383557436732771786751818299894014435732132250589173499342705400068360227175365792753443363029395379104164754911948349460486666677649999194447304493045859577152033057434355950683260239456717477234766245569365521735025034936715365027631193556694670670644382753450048406333024252467596898544286556708538427723151919010945947111292574133069119420383093622609854209576113878236641051122358839381805939751701461097527015830075592834432919206770411845540535972580205474835200198994496379381890546952039251878875638444794738927169155408240176574053995521579498424652520054975099307563955374411541187108510417199084568550649159049651253323402172120530626732929911285965455741990818388900615974672232107604828578938975109463192013732871811268156346830489743650622239055607762115822244131880767444215189757284852429642498971369460142728926540150649581259157394406410035839892764755060749000975590649940077992024019081320508721254365205410886942473669506470566071269644374297729932041868447528693231967057177185988969717803736061963671018613924966587623077226454383082728063431564373404029607788229823736466199402740253143880444764905214862580531388476861287817510052052330226152316217349769552928308114510347649820656451047431030874703803966110485046022634159796473608039751349361716066786239155963365048535697264630007585299011252420267534164817041814350713503459508040370434748201674137179583225331710220725840062525912009030656531900860679572155263950352794009551014911629463072122849708981096189124486625991753519103023222233604439824593775561813200085302974370034387779463045353960153763787266185301270822952378674949362004789313197364156980617120916427058275157264308041208815447593824026438593985746009163298391980606123428346312089526815142302677018435196130193292371743590280579490555199204057817901879365828286015095739933336626543573773037107715276382789514403504590889609977659217125660184752056226987945926570585095081450056509358186778904706291496406808937655848688615409785610092217446222035659419580329441992450656010067031986584028059189714674143904929406457910748537619902485086714778640353319404200950192332741394209067630900315621937841460987929973850115624100171642314752116540237569087088598040868560813529490658837824253520829107034989020496058681014025990764301529001310476147795362958247873054175060233708350419640635932031305289991225382839689238286278026862296695832407839471956429658281018505313482987399152881458238491692013943153408017488621263832110346595690193461943938843965829076692264439739587992839946762172717658250186738083187421231293241593254102139058386660505173970222434739924116561884946033333477032612779949137019240543628190398177405911189073856375998398673804099918083982389414969961870567394013601646421125224874888653784067421582790965532645504278556111915006624079259158911227494471070620583001530129719844473896740284869469795544887428681836137816332073844881150205449319156174821795227806025979096655311495503229335341877067447720329056246436116909469567404095094479550552109237088931963840122758924156126878484494692283547260271050487551321580982984807327933604615824250780099704973978853966910512528478938755364520206565653202203976104226468569426746441829912986496419128692323245029899070081432075036972749940296109012482076011751967334155708101386598974477590448330857427506234149812319271959492284449252232157156904886228732062199352109427731582338067852465016350391512754565461768848317155665343989621314602153102444110795748245718281207174042526220068823175481879517186591606441465047238737402835507073380952788001141518601692105706658148111505275678164771596083925571759377505189555274100397444083458715770534281691467089978965936855239652335640792546541941650706134541113837405702433359305629676461534319720952366994100298849495696569310183334321070280390643720931963944683935972990685542682381816609797668855831780101363890679091664614623606312858458742485529421711689851343899633040789101931820534145248500071013364648462293758067505829626508382274417788605550966853628620057955743918525574309004841495337321325274609497437387439483118660867558737629774188901018523346567867184091762782529459705918986091327306106171445611419625940018506311588447143553335657364932195502869095381820106998432972405005798899005473673894021507362425353616163180917480980252094950861387058796472960040556402748990554370737913649434391471214252810364060283653700776392920461692772314108548267946677897406170317336884507357525794906473490546284777644178569005748689939656103626774425457810021483616977375379755282736878341258374585445824466412918665076653686659839673540922706749307394865499859721265656829937018818732831440333106234113645581927908937039603086263634365831114894982264341660540639372306861716368243685328320649695264827363750984799474689369490658972072540593314949030740952985514304096380510895384793620293759524757303242254856132644214873208619674524595971211178206882281810689038379767036301809564450849594219360465585440938796664929482001100341511788516305673384898351855073583206282893882980486122672921981407603322602665631478947746549984468161393062642467583325252770015329295212349164192166198949719673314513779567712238432099495486979020753112863797392420575765872673063622393886229831428066992840879822298278147535040784263993477704330850412879858611423677601827244370558908206462744515605517589469551797729387393532738874748126106281189181669080027976385634810127871152191982078490234376972176340914212846057174485555964756248720089027526905587994031324996768231326506150020021652810978510846519501349823867790794829901497968390267056073063708494700157473404390064891142737641515255616318384644762229981073554014018225554171543221547040306196852417882104814535081156771434060052303254789265107709173598205295376990379775429181489822300116356395553246650145630552591776772666731016480885410747443225316457833576006172121569522079087666090869189947659387106298326665857262167538913071192770569429921603209999446204555843429557819380707754846957011819368639264634602990426580523170273109605267638190158173081134598904134124137623467061352584059265233194168331772285442245827808603144999589097811671498089062681936753664318151509370949366895445727620745240953117078428479797831082634335354766505231509494742420929881174586404115677668611215837572390402975651139768122183064361830327739821778766692844679540916059240862631394223015451520695211240721107060839283466273742436256439718535784793109572782232482786254743131020757266552209866885952888123362514938620725032797955091000723121684985805160464590416135517477872707284623095682998585004738080812428918128561336951779797563920079071355834348497538989543319462592136117060529833026051860169561740616720742936449229565461372762930728999167932236622256898315240403390739659410721556917012400104782055787792413780165637745861424586616680457222643601758105102130799195038576147262537254220914164717825866689318219564461111176121045410426296317880689039801912964081824878326493930881033898433825787034407024075803327773800987835063340966517847763185534320710747588803076044206723593663189723074275076358032527344448422052448090870334728670789781288789424720265035134924740951276003474559855053452461997382150143786953918417911160184871465488727748341420657905856982513723957821158963870166089814498195817442780069081453048490753260046023523550176720378741399902717035425972937953818030730397943947665835004037349841023828333347112901089333070230468809434525153785427891433793757799618906007355612902339490202711791382970299220183830460309293190146230047719096521870223156656910003933120057159708230165577654904785889933338352716360328405228708600123357247159149718779977406403250464489606466004456314784697859315995551965581813778355585686471450692923355647015013371414525153088211331097612930510011499213811963990381860688243736951426277202309865743332227098612888893803340878451857612933189202421412588762722053919528369718829216757662379244501158420202998838157098763571361188566422596621277780821705094430082639039389382675695652702542463115393231207142996274557224635991653834159307509000928199966091752243996567790030916179562669738274072436392135871122484479722528915871705209246911759611486626666333985004281194916305907558668474283289889873862140727447571764352773901232083618955087294158727629085019733755562410377440342808799826848946085316890081702746254172935470466125277752887578562851888189463839604592717896412239891061820373186955199620810989801262129430889332584446343920369124839111446913304111942886663084576758108845388575809116043651495442387069325109635879773733266870170796688187722010375560323792451321528809687734447938049785653489697561914825986771963379454267070458434225887718506410150441539106620660345105257978589221516743279961189148064869926200032336181483466267582957759871405372695114843623344643021409018116285423329312586437585075020454474363185176014389458649108241382037419525783416193779034592800267001955617017878832891411403165412680605012240598551175376336763791021518712535321680595713605769208046831483617919869667170750206670433354116633258531332871729505845708875320817137051601756768557505787839807764367119160624810590982908473223546118962346287509686290248438982024040803379295510796851501010095961120777630942182703473814051868589437549848680827700062326532685283659463365296633334154206603823466849802532015083700300040961976550328813277812430031256707127421803181064803488253050428417256728202761910236326396633268472859728620227115666270280971765246529533370164349431094728771091749157344465735063646151175420010035878502585430109177805851485375914111065026862759008838154306398509363118977699572853869876670198816228892458009173612730193837264355015271666446978222021417882874550574616265729918193168057007435784773432496240205098045224303542431722813286753235654327209315067799058874212231592075203979275829420428801629414543073811430368837771727568862420801267555272757709292180913551568271416942806525241719387826281497069523903124460114983642702000812119424697750653081558072024918421208368300282458054112024158360139717301061009310433302725233106027988532309424161658683232647344768761203662482571907812551023366216143874791256101223344109601522814382858245820243163208631610474990564352195602827719462321391229635508699758937420150159507500248429065293990941289417385898819032541915630732854142077793407560293071739477005358026747881203749574875728548148891423763443557849613254266766552370884090904144858326286518135441443269426408305385496832632335707195932996979275175137909967632386918788570739757194339549802563794788162462517904760020946858229507282966451091268912744287284845157531889010327014376196902250234440292765298568289203321713734303521369201478699233747415239584127147335896790835173981582526880293017189406207587156992575913001524311564513616648468170061809554791197170731484479135738370581676279024563054020101653074567181364132495275797984426597849546739868457097390902949192102171958160280712265587241498022593381040416773034519978423603935111948482538117199640389824671718319772155254329801351351436589358851027927452012868564369736153872423250974977873391075145921524977912388830541603608695211501458497076310113779598404926940276881330802266706784106685586133353299666219473637651974231198443682002881978180169259575221054561044008488232656295465381406698050582952006648081000002747991761659158818297649602748016891888839661909521976672000780214732902318544194334671358188543015376746531957584215566176488369329222376898544834031154482146935135685089410163378284336668716340556204726331160019287179505937260058455651291449025731157604721024028845853953814216338007980838638734320983960328743494143505220952233531845362131884662528390488593980039477684741129279997554643654024355238207358282136643769358455345041755712533833215909095345620657578726242373160757399889849048843776360098959470661728814579444360276254366031866893751029766919244106569403643369252197444351025500641502831403949741272019825695031893143986192087495275245777302921976307189252205496934515058025014840904380438067698029012473774550938682233218579758341157855875824781102119352634390972520004436633303238385675838257821789344318395599421923614245243881233462994487926425712274491626206716951510804206064475760873684237741258153972548109226881859079510928321669243720836743184648002597325605107791188599292046745659387452024027578267278781342392856658892171022659944429166997958793664096158182585557221004858226708841925038174865635695412000207934331345631385191707071762059961810299279999168614085686538514074347407987196279327630788752480554440127224687508837337152004739201386005891396643836009211592761179217929233819711172090530527275683510080417771468802260796461260256013274901275909922718632120518456087782053137297648652243716629697243926452755001916497477066406178067912443631216219724935792586524314589429651553339803016169913928849383010428079207226140067274425510644573183851296875505901467660621101848774077177067697960009292834523376431958158521235289600061782607564307190590292571043440108870308491814028050931838844294841898189658355386613548878529015216366850931888793593544973500299805498925178714990422228684922073142807891294661002988855096883468440848585938366307231456191660884300749234667147843114321661190782917604432815334209821011675662277352410165418322210223480878243336955896250640611026954711518135423991733483629280412220610627824783901886192997499121361631441907669386481061754674116016242820645072877822430979307170396155026137805483337577348872669795987115109668011255450266598691554393911082119919351681164376344487984826249148841412891140752517805473902161504200953084615457392546921423949434982362587475780676270310639144680732954681140162497044154482223120671807284016357782981078910967135393360718362838784225600822010091506940856276835020323298063552671301745214066532815968039395460508537934480913263306279256026466395793576464907334306303330717140841856226114912935891753915870217961536685706592786605989578347631573588820632062891969367000404392675724722245529274031879361606140803407695570151027997437545517337748300934242353482084869822744155385501990720326577558946582256654053054582428974225328888106118584683929707538507434650057526207295476884648806477410432254458518309114461115714653388468870405506007067259036734304814213193122261960476647806586459377597164405939916347605930974414530843434420258295981805003771673020729043306752184257213593163047389038672458621572779385914517448171000084645768371265796859601348600231161914174633425942850024849637074947587639039758945741859503299368176727318139657206620347363589709823704066683799646144574653008769178700344857333225342203892355743557072858300889256639830447054741568608645495195997657893211584098442551409499698573396467341939316341360022709057930543940116791032065622000359153803950212000633306141533030602081437434496873400784759927727884619072870662698659466918012825313723160846294182457746252273820303768368760474734285766188514786267061491795723110089924013161437732361792834935915026655966911184072762606293808058189370402202144114020627616569884619186604858126287270483859016205737918287410744595165397353725522486434123808959147264700938391709023753226880842524806082184109744991111393958909792828619531590592991870699483591479922550342370817462962412952246333540860613148004365886317045370279128539484924848700809384035095974899848635388812390085256228716080737640571510569468290978358000797613196745031312229381465830550439723050261801595993640139149584661824596318382686570569397664537263789399503926735826989702398453829237907987048465751661914310120031370320763479825790607795532479825036143754327941772587600227147339619950609819417407051515626552128612633486934680962744446833766573869370824720146441952998963988801976536570662952258524647510318268793085793507196394590534627282908975479212027923826220847889791768900437895746414392579957950203921226364415836205553104547544024716366180271565117527098723972609372069400482430845813057962043594941505680969490247205817580478362410754271507412324259655989399032946244731581464376337660185474844619126296341782891453142470656738376893173939639581608140186035519030220699099667449570172534350754136896120471582109782010978827789206415291601017275287448794555845965163013712071626075181592913457308526912038429260833187475261621827882211359302431843168078074941612796339682267235142663036575377706589409224471564315311957956170315793009312977570096046622004044945260921918383671913009086739642796140669641448984061378111761629958844919608987050968161599515175516652177074322814117994209967147886299009309433132069796914660208603732305282877391367576764885278628563298733813196078357547031799884592802744187272319705470980660770806494691640863520512642307474206378950329355463680104895865678847598051520202133187352259703687529285912715334891196754149497309105980805051862574284805843692840665524625517001987972234991515782188812451985773024400488634657425709580451586333020281894307200688417661100351054364117598878626536557881284586702952009773781118322832501714187914817316365408490556355443981498091823128796361688263809645622186162120868038061302719299062497163732314962938711511373961732781535235404877781501199007252695243984936785645640744697495501749661246187422164842778468430228231898351205259471319279446450846118658654557717177261335928815903906922895110390084627421191622445375915194644690108479950040835068913216675542416651830335552319430371706799200216547748115718451001015609015937373229488319045359636065541492822324431132899389352775240077414317077568765829329306740972481850817723038965475396414262864253091925599525603821179532411214964271164019447777106820692361388401138815382806430364287096296811272458610396228126091668006214143362266371824865215860103736099849422812885631549163823602585804363142717002051592227290475774548553442851011650476500545886496347705315933676122024611170072726591825364739832725443420760668453117809559651878151594134787882134987318458539075586992903931127852887951902649254149256481898867152060665282434315770126603860433841193895811371004453095576764609001364086388194898962911183014702511541454865154345260551658026189736647702729958880091386707772316458483617668490100417284102325599889431850076821659961889303912885134123762928344168940748569666949424394373759019699014412944054726494255133694915982976462784276054270794711394425474020115943031722033296351540289817308410016715649341499894422998206743816245753201696900736561120505727796908478791956501242314421055831480047271028707734391502969267952949285106972630320735046215831111335144182513605175449797186447882448540643029782878912568012701089469794215224188097455948435670772702173733955019696772711214834139477575415377274433136565578284683894119167889776772357785899190156433041613792900405482134022006469984185881366966561598981101384918741742117300560022459993601225630356492454514839031564026101238705571644452514399618394022684197211150261166013503481083064787540929441693045834784155738192824802820967989506293523691397491445764952933964944707192870176150925378256298276228182157871469162771219148890959862945823859913191553629830601775815014912012581260407192051880274926479597362048484436489901118153216148966280599430424584633809659601338088836831720351552953606201047568428075691486880945375439242652237832375507340266474749631680335448037081636400499976687333799121590131983520771005604122788349773119181819354027037813294033567618052809587733113869396968234506569420348977993477515557890936416610505136577685529599065020204025754971193875106557238794839880827565121666432093927198187681603885440415882640989578043755239276507485828787306526663218215902844087245003602938605746538576885862633990289011955268873004896469925168419837606402440470522860167044564899023947614485503438717478287934049733015089460011086668774501262808386655580288825879777683073917407264951753115666084312501296437579181161896936497931627168757502540037943657520662599082129705119513789678212875937084796034434155953557801504099137505516536167496168132792082148924300585275016439126833318533635273184215339297779532318580846957461102015097710871943076734345864249411492685484621732095439133948835715043533802133720718608462214397578104874093574953116121681691146977020451886460941946937093225183184761339718893569045515133635273016931546552322740583352918891884514662560313489062959374364010422212146384878977244072070755297078130156990819511119705356221272073450302073440575758472231207788437558944179699521983807039689529121950109876463396569242089231722449648825989866591717649095344916182284583390205947410639824003541311607675513247054852277364028591366787923434422938845690887483680519721461224276724779788061548310190493889273871334305985846268654896677972684838980957398538033804052582129055085159467179118577210771685102790425950438053973997057687125640349354241875218868863754323007694003644419856791657430097114493561135004108242335739196595886230949735975626986668729946800247835440020294046242561777813492444993227120430299554841014856888319342344989078280211057370058579126396539154628200432399529420059669462165512803272288997637888830083693863488263824784939157890405268865004422901478500091839515734775170463817285848033515505991385468308907424739667414715132020454860572373822322995050512831235152709785033777876369324237785893677681238159003734843089269308203427106251294079632973630201454548538791224509977561019900425670695368861548169949525605122033137024424784822733138084179108374831407869059814871794149013575783167664552805598994961865262047329515641483355949057044087490834608783632430061916035578462559575637508274434229464801150821432762741003142485122833846909222503495364565084167825569996572838490459762409850433189344994556737729742821696170808118650187925020632813836570256565778612393358541263809177871054556033333078291993188787161331541563333938378832504035349904863623070910457060719983653660703849300758465460693832581564002362619109503343559638158928510693539614167503977916319628876409243923503170433263554813902803176918257389726771810398195274996061602567060023856227457648412001359899372526989271325515812663002489851355206008309943181086828161201964438946216050007433325357574558302812328544823416479182083743778588011898620543852268911038234622711823248205775289741519041266332110976209203730773518268940830293899492454057948829035867540709384726497353475036909768186351536468201385256144314337724547176483631308847309402026058781880845004012670375694350674727139065530786570664018835086488062527325447825288765615398157440448441068514165510805580199765104480094453471442173311357116513419649089406923558824299263083771696440092035413685437928084420142969504461764752590399886345344424696925195412707300705144990249767656348868043966851963914139974487568434347136834676844051916283024004113004444635439041050505510885029827163085769809910212400511925052454005339968529214770116454886971704584898157289422313238090452412718283097031464399474096108860600464683716586007272235805456936804620574533644773097430170124146808997957386846927287223622259068626339883533362027522068814992612062300651712785953466294558259466437724816267553729242003179829486391872102475648798536940050104963216074652924836773322749608074811497389986871400530682225384941913936309214071417048557483659634303788128488549391609827907308734756351595963482816652177833842592297034258538056695427640973043552986870607447878725392814833309881562997232554758428313327586252480978301260127370011490345603858089190632180191165987217371403695083897073053402945120948861596505449659844213406249175143183564091150896330302839637629459504365855990554060934916627752537104516849725739070078603851725980874661265852194203748856330341725047855407478392554706098690884638252336910387972543713660952941573123981923628128871677629644892742231652195578266169885604119131575024210589637570779428216812084564224917010541203952957120195204321577912713964732337477777194568853725026845133408658362420072196879656645740762346388181483689218336723042186225847400388238129393906646321650327371607702547123190585232336833008300872371494795849051126477544251350772023720673832075963020247265998516742658677049842751862633308772020411931784831828432189447035934214479550387033141349613085162883583707743281052648872826234913493661834786585508900304036804863513677306279007717432024087739566821556383169010092954027606402474071439198732914043647161383551833645316119718126960533689073401603838944899473372068908494063306786301696626351098357307183749867588470716141876867617424277220353258026807488049625956064828461933524739242343320221459006746842946377469537895571555357271889083284593207426913285919229184986022981282280281156125065914095225763894205410569422758638265758500240734417103239316490890621423045319016769234987343720666309023286305016424464316764332849117137181149326945439605933232361316223858849988461618632042813841425101086069733490471207050366504931088204149899678978751518389407152971614017417997731332676393001100640420891220962391917227627520138974926434854429285113270763157825723815339590988450302696099317997512290815250185563348225630575107788165965407417829269308836987827369738612443563041686352848692960710748714765571145832192703981384257715459104798159178278627023236189151826364315955165858082818959884762713723084788688445830449062741368633119116440987637951499897759893754437570162469996232669380930597198344725493867048231663117049306461858653568153500820833158291926166996717829044492367864589104727103958716262228204584470907663591432061787345373693637447585771926607027713589046554641700813214948938239802853535043605247646503699175144376927330291077020381199304367391254678236557103419947164750260241312442466382546174668919002427155169190389030251064138243689042134402510207732876670229338196510484351272417915592419578456187715609204454884910507588159106011663688008826123004031950975316576830317296644538155245649134762516417086546353979028669028724262034018627284244156223701579695257599768371169943007175831904625589526197547234489179735027678284778950064327684563407258278715901124542990381081841607726080914153250114680355732997764801867079244174925539111424933583935717190413239535226097388796647524465638013693516248007165614132755989598436369226312218880977050209452303342776383571743178876358856280574461644789719660930395749789940602067527165092637595924369968997394143805255305966330819398533135249313495701321570011638451394360950658763157712679251548413891665300268517867117810876594826745052624508626888668716371632395951830775165356966127987703390005816791949373061403059163612878161309007032070015069989298854391351184872398488974547195423672600777311867655838495852864840838703347827215317214379815151412811373898189433284968713261604371317855294065515979218437806837307359176150972500586016688152807294404115869412173914701795411179810082403591658570819122306151291713171875485760470758088924422109831047398486944406985532032524841226670779203257859527679272244307330539449104546123641131083255548946989291292016138775200856027969407087650407813092933451429705801701321346583102003574348970753666245145445099410127986914967513249032109586326971966316054499758023144597757840320102447438992590483029407613057796136623155639214373999250572324248771962766763943179782314679576584719215993659634875485458829002085919164371541873768755270903963175115491318988682481354229389270220438365075798985035215894218471315931648490357483872961319714829021370678053769753929776424768632245920430914726841562448405216727484929437991437653677063082321936229281381832367826007867768586187632072047493795363151325162782689036128806973034551817150180130346638545669084334272535674529766613178636872712354560313648707780199910122138571036209429616112968235917219429998336227545085728288553298854742480318980603804007777508120244894972677220498379647563978743828802582908688529746606885789899001482470297080755602995059748254761264424455754395964497777486523272067141230888038951838259746028533879681323102269784683561939739348140346379590851897984096098408429715762968685673410174612047175219369189883859160598412051385938893162459905826979458353058871358346903567230621840421622925851522061161435422462580661596094447114667264312535985642513149768375806956574430278108313261794417401536711078983677424467733468586621440570720612363660077953373418049240720333751893697599244548152333181521477947930064190855450975143567687887067922564664754655076338186262091355602891820914462643896686339368931063573627014726983875278717609676334117969625027740552577953170230365704337311632655501035500673465946594218051234948202786286044587687054343741295213329061456511221702600021607082272943712151094223292951149825278032032531326216004573758007339076120569549882516964992427919885626890078175248991286011858690334807491832837533141651246167256335844677888694619978139909931780980453884383347244741149618615175767653425535212420443314306478758626133406585874673090155480956849148272684328270764119844536893718915059925046567496219293725529860313697507220503230399170315214589192376662016529959840408216074771634145412820404394434121116388730667687800461995384255915032137740016467159867416733549871750609664918535066031648270959290305318161399461412788626320715060147365596296107247519848562336531385342302462703391772981919769520230728462296561721021798602907223776131075992652643013597570633221960014468857278508784904691496142403665110004799805113772125683982499592285663571022460802993687355343008651039717555424036441723990813242728849140193894549337490278481223816268053211408005271764503032268352927760679475367153498594422757764560995043393276006019960205579910510861668942829176412066596042734768462071626155999856418946766148563377630758678278712220658123755988227390796635491556489329619622162402731098683064404601307368701352687249846020179910405881051225575753256758356449236957748930098045906576560148628017044559495967651038669342039817187964557077559436501961817857561370982728163928247575197524855404950587486077426524685741853543686715274619453295965248570780074049682185033016993755288796659247322387455074829411266813513286232388869265929544957081790845812997208742320214253084017665324035708809992977278318772619329050145314236796427073119615503664873029534359238259898092488451215893291915131340528608263479897018468375567719475450120620702800191580467940095521663575769186087797782588367867876593117811543683748170704068419665476293298959391477099418267486986955642602555039582988634562870260348188090862166075536866096139990435875782595324954156901490356511601738598558136635924204718179238883568268168098512619402379097172549099755482010783211091530910356427824227758372138514847765583356939198025617866005035296123569299395357909511453717697197771520170647080502494300959375381571651531831363954064544629999399294748580103575533746994874032537017093990693404501818502132010343875345570571101629778606042890899871477382300521622170902404333476422134175883517846689066276154040179380274043664000917378952724076656046677917820408124305570151748319694890278493964588243015662037682440660440299195345523020849091973936365902525904154421987852278030284501992310947753956086578601074529301560862149355873431254112817729038680092064396161767148490172619013919326572945709577174485269774966589638386116400651262331773846038326400187658139132582490241107324373961367886656713017983976752165567371504883298672937592905982120241073636570300019055762642018920605348471903161717433985061218231315935021605547106350285808593063922330609885971457453318128238710047474188550701501971447365152141611053324826450437082453323605957299413455833217088618793749948210463427997798451729718806646169364672301226498241875747092338207598127269606739146634504033735103757699060359731058928560603616499839325814574173789561008567797255751134258437745246237053654374468046567068347693475362727944250342464547871132301356681830777382823693067581214112757844255495139515381321140196855134621775700773492801010090489757572343961736062565273666494809407574478500916555436664613106959209041786474018501374224357607242589027995738993432792968863958679859614934919158057788077150594066197411205565035533268164206417653761936046093873460120134195412767832214715439509349390487484654111683652498395371362520481284488016078655673942892206338547693868731836242863036016849762407564740225845673970270848508563908018378063462887936419886412225574140164787374786582695561421590049144963261947942961119935125531473075459322503521696266316872928965081981302258448130820854128578691536951518424613175329303785036088946480140072043158052408248020913868483552126357914217690178524915721975244365055629884464336908063470219316775031614959371985378997849368017913429812795483131265637783912284158246148132795347180328075468005491655986186986838480972762110528404437961702691289420401983493207934262350863779800149656696179817678862008083832922305893565120132348010286033326883800991131569697687266369027965274097182311526673071209740965875803628865242879575135569300465228046019939510385919970240962391610025270701831214521424556478426533207912987667573401229348681626360718909364311076643017443350212195262844693125487193854102279425525426720320028791899319793916623949187864926881506785421087029685090672968850373659869357971393521479895589011754518783844406617802864301024893125376128978792477833032926698380775334758183726911698982642863190314346156140633816143934005314005391063491500811617242163487903413118890863026092198158580902144326106511812002718644156805079282943376407757419362969733776305212234026870437162700272881575502630362804090346387789968687529737506070457514038642269661629073866762934479306187157942049235878351405364446310462491428586351519117629105878199638752910631145161636911963979411405354262481672934595676167203610354670533367293366900246610553611181847989445017668931022523060592245040348828799934189118579290850035019023878214373974297412832749273268754330230495962696294382999550624583335791471548079328115538064655244871707414664741692154211786141256025623771504759020463305487974140079963887927247256461396343624048028796814425469498566635183776491158978739878743841195626859093893495006184226348779343291998543766571416274226841775665303151598280220902274027409933265368017768433900833179305990307907779767027682369547684172590287609333753652201914047276646229244399512457124981218589764083817796414624101221069689161067981634784565220708558225573239429947142533146881319235764244637531206063946719512445722293777389130191373722353561278945479673823575762767618178974556119267380631224650617489137787946718736556237121329858317922732109563009348626548786904481766066305590031819045482805372793464244522102737518621508109708098784943858188027065014329313587190440114877978818755630580207167292370743250667624511102952243822140998407460781573519076761280428429443735746045427751147421395297753707280346965868842339182757336132434838728672333601896663741229669737327664597036705106768786685623405963593560017298438467733786169073038002778121632353460919397323580909379242746573044791270237280751644136164733052523807285393895505133501015309454495529515312041861027081144336393800888065679953710652811300160911423107702859010008277521135195142799388758820000166514253271907963787215223550145198489941851881672027197760234139890677687973820518977366272342192271117594384394264860253299246028936881102845824878941326960992868726501354874608658650618372512030789840018015845193496438803817510859264725994459776819985220452783678958662713213933220344785274314343167168140650621220479009216272536062027979859107980552496020523882657006239754509003972227570496045978527095711448908991988625307547608444359589950268879968119766263483463559410519007349784396959556764088183774753527606884491416302990347571119248895316180900732266559489925980655688594368560711635299107012015088271549349094666267928147989511361401665945414872362037233707493360030454533834809116542846786231074954643705182172561647605014770904492464016628836267016126942360352604344024186981110762254172483354332103186984065755036571698933077835603358054447441467543553280937324676270921648664975386223648138492289672247085914151406346654932728681239642085420969311164081409797686754935516787164991288363577040505861426620135840102530930559427724392293712801220697309458084283084545212215892863949298865616658059824045360672887016085174390691074193859852654783450495045557825810112469150553093201461969996130623442700178382288888849689771905809240327941307390661982273025528640298367981185234035284460757506416060418936806446076040298147962252555119750984867837955696441930021065004304287227376292558635487942391688017135749826200055954541758062197529438197328373279105301776081843136855788217284337448012066489223020807525311076082769852863465031587048459205165740744698464682601212720547566189172175596680990327226043124707787030898467332924430476909747578120911871478369771246126669184966112891853836892952178024749876350284929971698344762094304720788071538043905267519199953210031734974101910903371975988601190927172131447034888199512151188164741029460640780639416406012501004672387397654225888513324582795117751788698034901144633075600164092651327792664252992641497341560332771687453786924053838668532122808854957747656504627855232945101807363189674679769848369819010026494927915041779882580570094642585746960738399213558151894056743013763451242801057858991813173239275124452596444233187400897771564447324563954417496958269837047619211866172979288710346359721605311391175844232986769186899620995474799827013676760900232970595838345602351090435898072554952297477326712200225609856628008833490481667107232655362180340134528436390846768323004359012907234574815294455719490172604567739382153972835567411237861558561019057130129213481193309254196917596488856901720919492101190129532793313027909880346932903518371165215579952643847657983563197288847603731138713383535899554573398197491671018085532379584482423023846511930838668436538706288967571422427647559175070437893319424988675252488693503507087661393473360245801748182324407760940871865810658008993608158135815274626968072139811946762202012782987517671499609284389645356404265582563263833178798469598221326673322194419957905518211417334964289618650404787381051024648180698385024429223008223946205230227723088066181227906494913588284728861576670666990977128026065724817257211938630597801860928585796258637864380349144213985541645382773616424342290324039138723452645379236012709630611724000778838043845038755890372311883255244577853032103488975413185914476477358616712323624252768133732727488821638770917259355081741590086961080917263151042927778010436960415857308364519966365283312462231690183640524050633022859191609710135837643912556212430131154494586934619607397005823927855498232534151433027877100989904561409075515901129178485091853510863609006857540135083491433041933424461401105582672899831317924670185694270853922044423926464167672267432134963064452235387882180264183366675224623560749591266188719298284295517581297446226085310755244940396021691416129091204059228264322552455432912104255897626534411814185335278733269636210386175074672978709392547207944514179493221868265134876777284326429708194895728388120419171627240778051440142991668373277735127979073398438999672906349021632699028766435224246291410897023772084753934543897539545557124447233542409942466831964493100970043827418010254183032069446797711831952615096607223523195288988607489792462774941254036245748009030173526573333080360432842009595808392790681741719531175743081051389749941921909749356607154313931119280567585540672303399036006445774249755711470189753936182494740278679310235471323974402031931385248866220377980627933373072608906568909004787554892291889631615725550573190185697605278969151288134655685365454249025096358108155366011464545120324348838038920939065446034160060200873738501853386963341034417401645089993439146442576724903096988341910525361328464492623150713131442589491965265552259154723655267067964127285714687293951550382343910833382776248826862939393701481701369957185822782258437674372350402323595714028946604749443301579629665595297895655719787918795513101711507614746163367317457750869223998695639131028751734837734584448257430979827313026553439172182731293878953242279124329151714426691938322929512150210858649757564353845532292214800524027308135048896189933943239192602147360098478385690578450921681394279577205732927440290237725852113890538924197120987522109070823887783796467699599946011658676670308200663387352540374893986696500366138015007731247487942837261497129171973498012726108274450814581705868561634287072080852460274302421409491577959023352032114850959835324776350757358585448766927427534879744156242689138098857755373854652856951344713853263758992703471322574342760848459907757013387785943871081514856764923372960358109730092233226381411378693338850900496070446593165886264317225140994802752561119151915066732810261882653606097872283306568650318430302617787995230929456511239506084492749840022646722806189198003100548932288106377947830457255080402999285024514000967599766664468603950283337228741156295245479894396737589498810520338525961054900597920074679129300018110926334925000327537670111791322644706047925088987418579974191457911432511703796319195577995108080726523290913504014576267921933002274269028412863505460823284296962533173732894136374393135642869961047183532397030892716624946390486665040149343123405533358864499884011768652272507660666377261989598714765357905635930012303059258473123548673705465071813083257644900847203420260966288455500063169242771367561530247955704489679706611987354989675726368012102970844910896892506451621503740144032913860693685136462501789305309300247795106854126727948776866931217978400342280144281829012339502531084629470739057244305900847977605289832794993516168397001940195031994926173601010425818972539158957059600378930549489101575658474393440665345753448099433788189550884675053658174473186721285877609355025332507938742965232993796518569753681753409380560720087191547332663808681842853545665291358243731577916211126542673032359141900105088396064678359085142165790229037051688053796302757335676430204432330851427100097988649265906509571126998813110387385862713454605031307664991897786874440554465404681310720114521298246301214907378041245831513493680556441393130142540690606807281784085812969203753243321141629919613262533761343726065757902373782751319189468804636208772253741390613107549579769385783159305697124876632970081147530032570862621745663818307059335833474197989029250756148714540136869746453954494348678738492322190356989228420840090661791692193900487951915534678691617441166043925379284631911683636872398825274263788100460713323814975839238398895302599184672012734802313798818225742778042591602384814671448359331389373623432231091535314089695591641767391919135931771494685313190430218727444754505450927210896490189052094348933318021279901999796164741817578305650782726284675149936333577724288458247179298044422264562856449830146617572897733567820881147581954980104047002359853299703114254286518514919288567432439055921916270652584713998069571815666913670922433090566266146184338853922422377378700601014882802230046581657064516275371329156063556047028866283625952110905401936462058484716155413623948225339963135493274634495967354591627252843701570067362666172010101316318132000345334046962942585615542382866162762534161190605073617034034570689038207794059520227642912690781476327806994899109507921095730600801853910327570538271558731041298538860584278686126911655157016728004557176474646906803207450750386261273405692507787482499489269752404487264200970260450996802121297127755756634141583762808088003475251598060026503625957178726476371244717142030482409702660242153309227884476296687548761096921867417732771251015647152445531717832592054030734060255763760409240462427508484122200853098091888834406203927796227252543166546859598517010641439012699668796094851451523567406844759165424420204768364655212588263601013540852565045930079877319812162644682449984340795943574877177633987334470817573318533339704034783024302872997684749021117517822997548118583547254005777712753447209252723186529663286959641119022509661875063473755718620523202892750758791128172841874218958901286073769093574183580439175821207825041145229275375561219949775851639686812991126849666400122846615113623673662500106994480100483501486682111687838049105543188511700780653445595971203736833152005483076711870208547797412772543645769020781445782158437188977219956818960095819005726018084202731233892904144154599264105417221036645345676841420465562174810369984609478805444488834344383050069678355618687466518626644267528676633746639890932213624504168765494473329476118430718266328447238007848639406927074529522475706748039667427152783732967828011769379429078644335133355092496660145296290908729317977078190167656321179134245228689854954559853250466344007750236381585426475673902035017939794695135086786040750956659626123113213723654978375375909326265534234250415956382021153492718478923614298404291944204181734864976674613658323611038272238189528558240193901145899958011598275478576821924067167528225600273540788252407677654560000846601982007998681406339805336664879355327647084256888197644948522659257448428272970653890370679733044820935828626434088780289652986865224969090631207967811965761090770555043311827840555990421499497236754255876766959560425431867687824176399048436819024926770228209803839600875202754665261527105959975634394990429730236734603967744878114710742962901238543983267209802809139638217833283303138447019419028128208957711330160371485382305355574919830853216131389444751624025385242324178837427334037608636168512037254994930977300030198388153972839982670932593369871431004793687603002658690237606408794709307972739119496560425564492863765902886728062554489080590934639267705334351132187248291033837075125857235443228749036099673237880495840412279034116545295797860799929258395068612382025339368506204865507660424248377607495044557558533514061827982654890350794639392545982050907980832440486997315463863598472983144580231311719579592813976302467471769036109581444011295081897427866946261894827985379984765135428037151136747781457682896744121937309350952170639338269002630767502249547167881878693530476149771967980065546067100210557468299792237929501657812629602584081422613160476253651232737192971058191158062553572179376872626768955348279785555981807299690548411329824111656076125731073872265396293827863773365516706504209465670115719354443995402991655393083136039824395567723563456332690804106895185173160912766362266559886576109248234627003563430328393740405877421866326887097246552239061148637408258354366894072219867528532972908530707980904345212368929466288739293049166215201407254654638746045816334394888336572112403702300907419289940572587871510066595735325388510162985469697127114840849003708149415035908758530538013072024399489119800284378879386795711873122275193270716853220724673038910394209620305284252109645718636454110746881864320946103022693583658824755966617948831547092324630717940589214878035519825725294406783016299453555183415257725532325679645645937818953519365035226533290244345227063098410167198291150903312621618196971886124890456409174499901190547403608118139149741370345098754918216068481497568108476508307709509890021432189932868324709352803840356921057230228143982642077056947643078661926286891087318740264558970896684489751514595864195175740345503631497113416310660861417043106081196468733944427287210554634757172425095436519960215707841210217731168954069871274153132416360685490511805425116638266409140293773516644452119948948752044776656315820074326646400145285927416751507938618179902868401219691671808917073504430670763204712112449534819259875517441307570306992057376957187590329389913717803193148207142915899703720319634097555602472331900849821121861015926446738482726628256077145848204974571022027287599811472177471491223201499787855865534273840629009281395933727157283820224025681800584568878193292806857853663073730387647356732473235605126303615956548501942007414266751670344552812356908231367962045685997358124563898542892973908022060725464357066321308454079485108786252394310319586739426343884787439749953813026923270016628902446942373581788657271118753862272091858245341486277663463173552777722972356253379927120653940333781418740097628130409986034234344783180287814563015129429936712425664396742492381214797397674863777620891367043077971721279615785510577504915564364197107497631437695321794706392756860799417920257784971866942374450378589007052905844048112696769878851718014345631293022076528787942477981552860562023805635142147168805422067266745708393950220760452443308946012064772579115412233093138304760403860380876028860822276271385764064548398418739261009005178199413773103281836523536691145287692361173994764703666529124776488160168398143433100398154581945565125390955470289891349194347835271122417904157395210370057974281976008538699854879093140454025287815186752138913530264335027066590259060261144132604686285227868925022713956571596592848547788586103040745780995677337815281831891033705688879854546628331126177010639242773143220121239774440938531587839949115017919745360624361129332768483502229480852484614912052732159133208811659326257109816386366127601558467665180953496316273813921153988820866473636104004358280040309886527998745794389003405340799128325369384726181037778450011290225962489626086905224935299566498154035691094308614100027970758010668597651334019844987655358587339037532582374745872144450289467921741918618304985411913092291451231905038393388091631733951907678803926804462597334659799381315148827371108875663842878378902183610586225285314665669895231974002091654039504358950934954779587274236427483350207140416787130372529967201757397637132043474957302878563918744450442639963236674566823848176489587436360782023197100306065738196750074990441529752602584605858178506058242529779983434942991880373747072841950487564726996328242939210172464119011128775909991416581816651911734402286866575716950913751471065814154716771127756078529695951684490894864101386776961939149373975422289354794282693052523635161575248643715513814402650452010164784891929177163950320133799759418560482275847995162440131009863348775662840389019025351452665482452306140987735683607631534719024487654216860062338807031295182861897737447584536920338937125419074325342439414113618055805287882768843773769198517475124206968179534006550067694757472081589395805684880421372925424908798430691249689652922539776784934237069151021920719737685287702132195706988586130637293379767898494677048371150957354882774808217223082102587745112653426501119124527030271081895424287351170278478250936119230087694083908873103055643213384110843343684318762993863946296713777784337649386597906484943326456805068633088673870008359663851671996468277196736189855924473055704825006829839420477293791968955603022562034206974837159582074157947894922197118668043482183284239386822835160218021249688353358614834244772406560124237877376086662867465414055842674095891970063202142058862737083513345892221047058077439148316885703765532679582180653383858911762112704329088164678324175655627838778433348880652258654981982680137074238208229109953430327287455779147056330812879516281626637199752128582046263709513145541177345682094125898637604882345263935324245722225976044737694487316697036949671015112630126739063462197406186145643517088263770009648165518069428065210941495561849061272792359277267910640829814395844950663042944452859743215862289934850926289885811954750659719193837840540516701439835550951298348827873846187292136776780242049198584613205735007331103589070112753928098702693526835515412362066364475194769869431401429362601906736775783111128303941268951283661195115651004555919031476899782677481274365544334220702451524652041285932760403803710152854742591520989420407190192407265944706732078790083391953529322986943391794491137853615476548500391412720229165810906905785968574245582811965426578337533861058442086189685406757658973713559882365666776684818235683705273004798719933843378557324430678206955327071847767621367034092172645137228055349120765106533283060613562693392686705118004971148818916221034337120545700773650251798168388262054364854252551799180881105129947933314349061011631673077948452871173972317869947987529578286362370592616279470559957773993383766375891156520498569340329248912460940204015577297358681728438826400747442170272636716087547708921765567557011391857937111755137836222470187055735085767845069444031765907513951978255160607040093082105290670357664331428231734079303860587039020386386957925247523326709890685193853943611850531466112865997347677518011355982094323131365672798765990644381693810749591472569967468933172357864975631070979677101110218495825757287714592588851259060199601722946845495630065912074085078847198571971448435582479890899391334069086786154988250897281642074230641867207814059741677394753652579870923821049801087223316813328278449209485046241636652340632203487556626367344609008438782554989191862078939254189417453455706650820125172424436926580010410067254845662522715286240456176056384585655361772935681125093389898546295254834875460031764823454980933821069545788118189708450788145654353409996606793063106616290190937721952615960112169047374226451821987424724260696927787789206756862870334438194642768519527258767820489407634285142475680154021810837505224236869766115459715155145197879389727337740739960419649420189842920208733108286386358634786117301007338052102604545196639840827770938164580664579082662390668922128854405259527373173378529179773227408577831461388161879626841952495475052723449511247338387121238673548860846129936712109664414354818738575992770934464652124469727356929044635370156877491827357532724319091302188858144431939806351178366596823933638866947995798445628994475529273970598001966997197166712208372020577764239810106493860800546957269001182913030003026942521227386773570592791501227287243284058547820963480570439398504980947963013223758284834385407365113088938722087506661302212189799601899339299733201817011853716922744574831382346372365576592138772458911886251917664696832875229169233681517678820229950104030660973418451314984853435811504229836836472392487571555797570112348849761870767298073149718835316387478499833759581849315703856965207412348132798795635175636611097926868324151152705652022032340493220394882170496391217124898492172570972887764841208557756333130985872257143187706872456757725991615279817998402230784286601336169086449510047002533945477297554091858818843003697931224197706761721998705019750531758719873636067067130879116428975010490959005340093700421751248215324378108414959043952319911228095507217241083613279890882560058289487988723267283893260534049610722713702476511491423634618422255752874067083794029027948573677575550980609932024734386862945974882782753779962747974477897812235189981054603998403359053786712627485969051384892967114007559112027188480801002157025041098391676446510046462671328123202289602526917447666433516724241156017805576156848741174122835430810283384663324775957981710442931572651356292004048873139697144914807399734528121679102507125351136466215425589952902191416059641310369569276843585943202182911878134951154722329863250609909362555987621958315200408442137211684639659545365975848635401549617573698855168351771729618726735788206941474382271096068401394736415758977627429485195399549265816148148509601719294877015037974107015028115839613622926734199837192945247499337401209376459647183777285064056422889261675065722978451161793486779829496971047673547593059585389078112262039543354916788103974391011883797379726660781105409946815567749575377125204610008694115929722724998667824398166036758377538169059904638210048770614526225577117817554829541370475216913823148722786626097263735692308344667849740235358616012546984853064172986146399634205558616737980165690093444993516212992341231448155759079963089239424820055995954076159790389408940284621059048451554300631747424183706405809378039214930234965781511863627457567844100225361202229802490827340904431536437923351506470492759555785543003943564595609043576513405370397737415774084754204987570096507140002142408299672624412672629983197255034698342953829411442866371582259858106376407386621866308065526842781177966785121810576960931760354812861499721875679233312999089285719502754693711997100938406434933107566385246734243041271998029075200001141875971333390983130026469676735546032242076405857739391317030294017594130080761393054730264532615519370858513469118679821480172770177652602770785550656517723001200554251248508927341412213457521657173485375779981430905067901777394603601439504544606762456576217534920407717567861915257593772286757753049424045233228687284391642701381068662634401357343289389080762838358537961389974096702005560858997154410029910276813287340739636450908500454881163995556162660930543891862241443590009596792657944115731933792346121800196076455273391612822909212845350545711145704324569577293718823260117951049405596989864579703075449102262164893993976431229869593322822046987283883454783551939727753419038522689872841423840658042176661736968897522458937720063417242319418325584706401087562102291747560618095759526763845800111426686227211557883910370592515371941622449762170982011531309939974323769534435067995973461432410039797002968364845205603918845019755205750527273081914857036453616962470096472841257064847209673850551199684200687324545191349538171477018948027925771101191728938864532196205662264022151760547166269336848392631798249594792801036262096674251242942913630548884908041976607160662814404996874712385205991624033383118750240497511805945941112394183366162312562868491562450816089329861068660728109192732300985211155554708422772013321565367673817215837855637609026776354012722906804694995727921960160361864478970389346873227498923596876142616112745006229262067341182628655944261364602459614841495672013640576913384256050543353499097035715815260405901756815375636649928606049844176910618170414455353789581471847807017807401188494818886688086224390233260358654933693242877702223750882211731819684123950434861715503296344980620972076137452045571113618676467935768652876184155347169284936681989427011309888017853627427668569032863678150338182321248549618680759716893569015025008403486941093666833088038271769122604963444554697371246732373811820298049447994682311239136048411997773268605756205086754181568312313857685348050135295836228397405593036417604091018159428954003688736508306676630541532629212291536230047865411526941456396075986413652881610398669554238235770784386732473723570946829366068887962476897299683461682022043463782427280007206379421165058772051676723584983806105440306076170793742537964572045737250882775589619353375561298807423339860303672841039408712884805967528524562199337223778294533401466947943932868497748014707531776047090122509354558387137995975414028649672264538412154939067575590340152437642418301330890015450976765392325649453462511140706556779056138768902636421052934836350726163217900153426134080138200251511176170504934998325913291193780422726279041211711335175015415613875032224407487956385494433890263849658218941720959703856993358610468517703790085292154653828373086063595843669035121315276546015296763579698659970231645793987644037942741021739764588050558564825366317239688189591366236319780295397822369764873281147215641323990568708035749981007839795014902965479527793193423796364086298321483287061807282328355020147804718196920959049260128459492614966104058317908449112789720029435460781009513912609593992672524562489448312956911531848097392456661004254406567040216851190565456320152164891341529792455838357200734873819043082144027324850848760745755736536411866750695567447058584520543135123275708561726209757227989632140235187956414573257786801468280009539123183246429374782025529529796412001163225313677302685364219502652901486185793070873316499479397615671972707813835904691852066916054311644910056413507290785057414909484206458592332327928328132228202541434041648522287498597151309151950191843042337969425920978317222983216448699027796120034260298536163231316752670319562195688650227444966670545493633975311059540568496326417396737893463651088562323023623417240377216658033526785740680753972416032596678913408773833065897936159744581074415695794997290774335360944197494548296206382739381100872524703074687814246349077451495224422683178652716478976011784315066438579935406677523084168481321008801242043357000803407681525214987393231999143616182212454982487725347873831205171533321316251466016146395066880801162209666448428675940253478810285317000460507288488660162248052746464415435133365798401652756951898674751317671054009674033616202948022071245287623999682244359795434141612591040442151490603015062501728782975537102392556630064560178893577926454585336929404606014844014534520423153770952738826861792516763654118246309564258532756977833245149644186036479578388061076665547341887386522186153847498252593709209265589739683640673369786286150983820657696020620857975684905150715271760912626791468981279989798790496095377950384276448031146926241730684530784113985692829894408536075295769350229292247344538612604199534275345216532687888131389218147477019049757336008701301758138243797252255933155346017431156963720516201624312499447400117183946073678901739566654089836078061247388460726406259879332032578543191564622998337443653085561715436482034820133599121716427704668743234943492065884700163202272410802584626056738011687062190744719892497371666706346029430191899011314556394583304041999217213003521036182673789983054527438923791080663475049336649599059138360569456407129323250752558917050159765008250802860763438614160622952183219062654628158967934429903360028373174768734293758799318028774475559732559739070426428169501491337798153124425775972111334066895954735081714615647392234406923230635227008194316675803149694756865419757715999194305529893934794762016953304929753651635374724201448565846279528036936811230979345822126094690473485786214340477777560833251304815005913082121014272292821322603750055913404648943888530866337565676976846265027187795181199814229468154740543070848521075821209668440484994146784510219924258780276393122608389873576409917577030720419791951770443823211370022334672437689306433730469765422516471795633508495865829402231151411543664880990225032517252922905295406796950930724919359325192351901574881927706551798078500281922353289110104778566985528143329710072943243607087904530417632040704207095475630067261720203570640690556892313153836114038392629585122546136206612958974858858072992806975733369732510448538218860157119352080248102707507851020064013080607552946322064040639477468470760465620298948940459633243968411921787149658016968599102493279128546218159476410296963274489914138679268726315419372997602279489824656901235989006397709522481448867214777799020024651000868710852841396743338244047741033138742319512576636682729014279498829588364167673817509696142458082829121593193365393549887795345987290943731494603219307546576446645148273524648213725001843176780423380120435453815576748505074606239293981947146135877255950266494853422835806569237943324548008242625374379894861411367816390694268378563222770143341734675279115031477604133263770564707978564779120426709874844300201742131057178246201302427002260145311440220118197801411261034348306946931051585706143298788958904307304744750217183600416462195779083600363447599117587933549417854759222437055879475944931200765064433570165529525388148741545951684201188591775031745228860912550243984257002603019362177036379194665248318375016866816421938509510225627307243770089805248829877124422584089376561838166033481387312866013219511931915128997231420411817169440554399794531594793659257625233668985390941953904295018473400188576053414104602354540893028024829663644764942874311762594023414203713387564843456840045681282197640064696664223999378439716790472971567468254559591264246663710895410698264095353244353551250348839600362942992762498685619993338940816508207735531839934527885405556266833888780813324747937772847936867324689575439300412771576153327840143829678977774370100066666828356936198452047262935051952888436212432486301765059240172829316069564810492811124040184841772121690903386524544251372281128499866837418224575845315729401504277510894900296424143506410409204518874047733860877274772637737009273350031975381274139735114721956099535210107773023799925274236541869387320007183071658615876028692431222962175221825106010319344998676477432982954562495252049750593860390436946290229014398330911113060355615911419538689567681088076221498900440723639388730038465406783896482028598674883509481071798370181871379755536727087927578698490847775456126265271012770035853346128941443180395950692440316472558605264191413292603783800995108209861707414175842350882029775870087480677689646472678935833131418615798560848413006072630562140258201563784389693308436797531343750944010605867966760034529380563799023046986483558725590461750496188515759773906750771303121752320656282318958314622492633588931980423251909308434531290189649461668917404298692944099576494142015134286497531341865502255252229543648396546931734298327325910203393796855674895277689165217999353576812118141170236324930047982482375140403560804255067310380775323305776456283653273557678353292233674851288900436008068719815912118840623741886287822123086994995686058459852425715864630034844699671800586665487221656302764368353778457642518409857276584646694525868238093233883984545506841386791341441119279494402259517067514587284489355781046030592778834174476336240741703706404166919004354312892677081112063010843204056981394512542124861233799061162452854505481703675792984600161037062430398701467628592501735333660779586241898764441165730104148246816809886573588504127747692873416191236267562991477891465770174904212965484212831455942544177531754925589549041800886809337301379250388464179622482897946909896257310642281319874510939824864405617271832550575562066584744372736502177169272164222785310430664167068242740204230671145886236906920039842977990849256458919231274633705795494050714646843796955076345078289198253875561076357666434645665492914642534654877403782559797876904359479054515417894580640308299315824724088722004790002638827051721410876521399384320318412764222120805969313974710515553816071125204687938505721658076929327866641398854882098556971230002771804663154196509475400841176050070303456260682400348878929467140608275626573187566222347806858902963909142705180323261168243157379346555793749314104572808636154502142448931391169823915913203120199545568138997163901532442657363164543746923069341318933970085193223739154608921192784255691863366175171728900850753256791410155589555881968281567602290234402736253530951144535179889059119914624016911166250894320733747781314851173758656994435137966068233734067995704875661586832917555610310096861668954952499338164138947689909251470434270065070052225859254986556751760382148907467517700025553324237816794963412644506960980515594270800220198785289747876913257528902366396479802890271294676693270420721531630569506747872137207416862214171346320691074925841696765992011581334185413477405943989617412629302566988212888998300440830283503331890650676054549195384283610126674967843634912613069075901520269474384113112217397152834976538574465108118690810120350565943093104172024609390132333174049234673007081238360873416166483038093597732649803350617018622903339030768154110402660261675197286635906994316585235502384576430997091079536537416787181006521079017754996622938632378025204120587683863794125844304292435696233631538724477760913099216135938828252141189226631556277302792365777295421344563197723791143887169329159750341945786904679248100613063988318925990077664897595867700214135807499182549568122278835714220544994574987130141909076191234443531079034915119945414331608540103649077411979442961230111103073718884111675177095111008147710538439796837863683337746820681169837580888903574135008723286204913064586130657933266085868527928178851106787853116653161700517743907691406716458296335825733957001666184770248302323416055962793443942141979553472685078622014832446902601432800860134390262100303020974672936063209617048787929739715779174119357341908854961850075828879277878046109493595085162597585438325074178262022387091667965611603310877810138709816207591945212538665820257026727262825991129027868929206158893053764708903692476680518538435352093802352774854515829564390808216187451684494076222274746880026838900998859653878533962895869231801709864463882994445421670618629253540226921659822139730003210312475985847338940921216930186707205619540161247567388172136537283726740000230930846188110334734247348792023859343289988704706027607823529365654295463160384991734493870779853493619554055369068342623734739821421682169206378464328346243750348697650552577989168591099783569724164532941742138023434490925263562759875447932601505275081139021618594525354536144236020919782871410931881776595038762051706238384180776717088027153501984838646210713625733159970964031888625309086466652990593657555488340510307400208981347640551938548651846375415203192919300236333784725071914842978404760003733100413716994365127776017422145968518250204768977887679642076168379047229205577029721281666219376669887137167805335527975004423985513783195308054688705046023722493022418720850503242935902252028534977184018328622849485009048327554338063669155650518122979041859099811513561957386848803279515346588702964331551030119629520117805627368675145733012248682262429175853750703984844695796595129834148290568369039021625898640913035635218368282411984674680563168774085833135263860333214792460956488926360812864576625202804451242467139740145961522111928195793071310647225135525408571246125397953069110929098937267084179870783355949433834399614281163497824563683708825596532038476764928674979688122235067441302350228474990936498233601950395797861142130660598445489482029767559949008001803071746899051698975835789502032507033309205772977716052868396340334349664840316941925544257936035770263444660308213976751571536858900399197525823461674369713051990372108879650361357995274855358184852177580743433913287780239007110689146958346967389165298314976493555421911063424182581768633648810928540672855060256236352907366095620690980833266150216814094545378357264904155656347327327427806664543941969525362357867941221255903804247275102878192694086066957956749658020361532676966884346744913707944778066742935007734087092174147138844177061588970932652371476695842042479118491168601846468136289716858750011553695564497076729905630544532545687435447765135599571766523165335875051160151881181213393171984725309018256967298204161116805956486842499040231402012163449563624744148274039897831863142423913860849024089968313054269337678925222200787192247863520574413781759612875779129951861165027312377426782588924739552836375414281243586379470184154716874563343736683494058621818302914987132166342165218074418190702308554988939057831412097659155059400374586390987658065293452603693004109252158649010738485861378074957313927283117119408631052318857033074119432102025760800355606924571301006914607920551930284262152424722090012748602713429858230844981190273154379732768200413633632468419627488604321617018816511531887143344936677075769011956014414690276893846006326697887026501621327308171034239418927040140396456252370779483666448300438115147971600335165528135473838876909020039237781676444733246608985866701557608975326269509667037233122205384837801556247880502648012553775109517009543047583085526419786609607983573963363590443189697322652898870344452534518893366368988623485620752652033484100863982057296190255052219110988173173250375127150294941402972115225306055323445818591578355925677108868381570751731599311425446996641153693575021586256232307826603036368968400957256839412731596050244375426010659253516058883193239637456610935257310158466742558807864390059236138979593845714243707818506856840533904556651152935890897510752087767491917396224831020379978291417668828304153070477651623866476271058969116568839449176008395092053433257607454105931248824664497969499040818674543245840076930560649277372263720267436473810636540233420539379689067348443808715298481286661222090296583538291816271358022499102609507366553279508523258004574414911240372850927363538183236395367582673991307632497564041356280331281361369556564721925040974547248599965517844617295169679598077453724244740268354581140471269397332299571399865763725317632096936406806024775274822893269469704184378639570763099701313803387692768080094483480384252212449807374999610764560222424053650939065782247921919169374674166258415267671384137105961538481307069193609452991723652203289015870483521170277289306734649753700690576922851938909676712741057630101431750652409011436685422025646696764151338312364720417786933752885204264885199625699894971423004910379344041800821949525413687021263412047949083162267280468826760697097079470191580197713308813824093224897526300647055820089135808670265974246356986802379229589873545017016536561817866442012014400943421603563852289814709273504826499617863620291186952495435899295742867946750076586908424260723331950730946011732546048120279472363380504665809596363584047598582877404537387505571821499491486442442748238268220078857340994763376512933316061171366378043239374178453667673946024647821982150795342700608852168054215911199695902876114349554723537088779124903365299490768902815895300221388370607980837828674211891765115806248885584861405236402173651149425743566496037584425822861599854972431463468955540921908812802638308018659080423196351801234440787155535699171632918548073992367557555952486550620529817673177024766863210762215595472070663893638438922864772339559106491296680393692489191650737584873845821912180648764301766382861595515121468121980794105631334853004278740188487784793492182163392941219236002039464271585330463900749154723272194240621719657551746643292619546666858841784157600876912594114754897168611080368072821787142360997604953027575424662327719020259281782823775313773723374112513258413562866985491829420768603626601326912293793391227435083444052095327794028155439097091129121683563136084568390015408017894235867808783846876934825486882813340051704864221287273729386276006116645368959768228875970776278591415330282476287033173513326102848705280013013200257221967507765613342873054206599526995226326496370758192601614996608296581902506547071188684850024858870834049053087862975975612453261134448490944839867166783946657245517692281927569779314059056824576383444247055097174997657434995683307846080784688138521713507854796190393748857531505166856134336136255606250925005966168575527620277034822213707237908453222742783560159926540163574735010844216947632840769788362407089745142848780968411960207026961208601038314701651709046214219485118555211092141887851142351243034870145755119659730949361202534328367625038903720399801987282880491686778506811967640075764759628994632231182414983814584443251188884206075317193843726254733629719656993499430768029099312067367920736287793182436262697261957173488556754618587004952781118445066199509249993117255695350891672884555746959892761933840845466139919813729872407994810615181990404256347251916197657940756584964792863723215466864926129834420909121869274725555319107304724694840978521529498739018968490823954900347872433086119150878885132066090755873424042425581909495778101831036789271869908435721894659684082595107569202346228756698544656920543043495047539891770366630159827159090994970827304340643313801397804159409740351319010453539977758707053422012246334133112939857854471662570515076353217906270542375882441825262001464039583233497474694699600440672668027438706744659394155914273806731567074972816099108282262893617617823176592071323891206417938775236135409702919903148628213989592146836663578160124185510226420818888458619229396733470210368167652949621641967131109855472195751930373871242023745642434808253553682396651090475866962874606766793493750944694569051399920168867370926297807040196278190393630686179703030418430385633247135446545257979503961217715434287603862030572538937105731818436710532446037789739722043930941118458989120844718058131305924200151073288640800595930836159569068733225376613401117528444495827299919943039986669529684802944170794060735258232884206792973384161798907822401973859956897351895665168778826469564203174976679723605180786400576067701386863665726827340564372553018280329472380309891050904835064653713796052180739834967116209171543136077314769895059692220381308522514069985542190334375100116999186334779832796374808392624347585186237054640036634618306927194789865035877934883812289590240867419063676553913595841222364628842303020545064374397647077276732757044385745892274724318042594574279833240768919298651352370466461316968680113111041554186475058551777839398638563560710142963611225781401916998287079319490248721411692793601268485061939404920290596335933756562123456349187310069129063591548598124735177255199382273614411520672560875466605018375209779351256030434677128635787718263444815369647744452937297158943976337172371266654209540592581045886403845007736338561659377873956598478691655771815565729407802025005727343893764389747156400204650286265725711978406914758956297296081291558469394823275179755384454558912894140703095884509635684755049378507130786335303553188576009507996196988528039519642191983411749766896002960948230567667528051803388637846979082660230363844486880014160700936557877797408560932411755898833655082655267469076031686557422556328757901328674704418921102038759829230349762601501742260765225996153492100571621841232638633243539553520697471931931263614551621691340299688450984808353345788644631178468694998810122697174222880560488104871624437229270357668490006595361944738333298490568894682324017046729229615481133012425575541378921766907118246136558966217297561969074713303661708954445721654807296185169621426379825746052528901407121593900834701740298445928341815295128311614762403243403549135642989798293292900334976870120290757250794542372929655648377474154962841756707786045826164145623594446235548259035461826666839615743827693647191488298177362366165523351915008626761666435053275034339692626852503609090561629925523607954541129723050990480717222523968121291245428360496655805711477803340186993426541886844452138697493448147665171603848228720344143720998542421797483575176570530807880981548480487619095261252454695945724824432164343685774404656071510519989638288254376826990670585574745598491191334217782994233543433526699515872064870851412229483563186229877573295785416574564813925657537330171500118814740904714711136827899161013968788220124936212136589480398588644492569434192899541297986411311909425595776870849773944243671747194081695006964611456875460224880378005481219614991406344055996283085901673560579317378419181023261852132750489841462017180237559540874904382072575758212375473907828953518558422122805069630657708347354378678239196008208028306970626374630423575617903187714192573841286040253335149810359486982571753779217991210950990652938553345173745540042368623241596261603734321810892806310388609975002592998373010213621924155114004506898207799262835085426192124307905273698359910955254409586513052613442349811411168217710546024125320463201865814548530915996582056552077805206660516399649678067977764309149242411400337429072067496157475575545579869143507114152798869961080896449345972563779014839028026392490438846559103824997106155548529305805742445192926425883202624976884131348481175778551795211541212687566433702760349603035502442983916396417180501314897316727426133077687941406411965779180736689579629811604301476910254309823430008195762845273356000612211648786670874080577247757307171862735409679709191271624065607112898129064216869562859049114104337606858108530263113140737203100323160348636461949540545847332984129024976701918526736569207831380746303525627048500918386583941829299899557799823621427797939223128310530703011582725817580756115892452073614821204880813528969089244227598231172026641251851922582583918069591041326280170510989065676276815424006680591506211860806977180625403885835803900259144749167790470378465443348650786059624491011246431735901207704481615948924224545546713235981600737873001373011516141333491277569329761161254209699932119241596752456656625035181392654756429636587637897471710782293109836773322456763635564024057905038592016163881775724712139808819583771596263988190067939444578823227528035823995285510381370649925225092655229959701814844938803247851893013518506836450808566076295686338931761429496449601585791685133979266733255076191600384920834935980874874091940942804659179656557006705731232135919389592663061639351891291578992689021780657634243828141255062478677342043196365453948570914741550139648175937852945558337059293365149313118687811667917183191443336372684676437638034127266666820466903506328400141120473459412308513425833660973003590350368194661987619326844910300317599687905075280778975849632661995592028792424637735044549364942501087549724023258120576049940899477431793753904385309412594143551617964867673942829837219764748674971927004174001283637403033755963438033402866695613884843008599823357769232087450055595423665246294106268055533773368615102454201573504746508314990671902610293580846678817510560556690917763108537151329136286461521752964072661071881593690149505332111842135833005594176907111026436919311390262662730566571154264414932987813765107503930274354447859610329333559533897442450494728553454732327392828145704987604191741967858771122211378440554938506033472328264411783313997636709267142471319577382025746325500469385952962087691099807504600220646722021486424188980613260002205564733679720975220079833562610367984133622387354609426798953292983101882177480572867622130721924917263031613271019497066955655098187576079606239296674590196231733940597846955533435986311373304919698312614391869877537110892577976732424304805608885962080832008304678266816751089493381740726971355983925334256402067622193291876176352210725525328714350878885003397970507556937623664959886029575745011298953805660212218402476841433363589023786869755966077645553248922114919853402343362895791033022935291210229931096029334678758185827614104677721079587281544808943107880748036126760641961833663976861907591887065369128513423653323169594009422611544141898772275891331569149755705432549758839312924729248313360780721862425943429676767577874550231215499393171726496904807135792086994604046446366172747263536997090428471041919829252595059497191343133252906621270620109441729055536378550032553314232404065416001275690942234460799974565896716695732363872812137328070890746280505429769820141977310646387522796299044651048005136889153977565012105308818167480756386907805268592800279280767112873673202225253678536287077131591829758679662538119293927716992469674866248773450999173717787793166835862880111565677484197735804952750661881190101955613433169444721170609878836158608193646602938002064689296588245631314861582208221133197289464737006834556652919976224047338179291561417248867025645502566871703223606038321508194403007265353779471029440634503133534922970516130138194170258697278712776616291810284890737207674554702258621157101036824764461550753902240844336457651733059813102959693559947236317838138192358983658169960569596761400053136257698894096389026058333598747533519702036475972597855773952677230616233637292864310278801291370684085403716218929737882951615462132790646330697055711216404738218727292319663034790949786761508692547599680975685111937790156513507941224091122712599080545425672677087052283890863814112068453322669531113678408951717884841756493301406106619239326255355599110439751030331748635521072127895043808699177736078772272603302653212055460274730523088096840702742080519857353118282700229487757734719844486718507510649629969777343754000488634281020003917098978415030637219408344428162157844486832196297116976478547237003880501249890009386071689209941124876529842244649438029250146625244098625968630252952728868305607967420641727133226884778098588997255643356354505973201163009401371602014516157828472156942669793400851273371905892090273331650257373072096436331297484726610326728531496208084906872812423234722084122695968817072158725782308870373126130344364207545894098938415985303155062725233660592867758274619627569066739202146732932347676408629145392368167763529344271237011354189738337395469623180828017084868597190471160098885144198340919325156278801539709838062236292603036247785379379737383574428473564790249069113590096076513398837362785857329449095253090216089319414120813562841792582570237712368019647426841704471505943594292438312992806879197879235133331331208448366806379472578675095633417106207186846509995951587596459319018063235204798473526980792616561792513037462145861808824284612416762627297943782308450938255416231279716321782471261238566889119422818874363865500747472275543990776344754350679873025699436846432608129197973037677081656646077393187947371687710763150122863404245315317841638137493729014632594979282006911788637979005641549345012374579075890416453892815978743056201663394708589819366219994211077985005025436374526157981045845144577469668691748881798768360581697028500061759465860667606611646127423473541184921768294969008011590985202236524953756091554968775106965279559313536634221866983223095318984755747659638605274932609472275651070500816691665753705237815775223759335805023898135687763637392630192131576344816840978026912591978906847817658216450744108601391597218924891077224463279748503576395062047226496133941996441428390346772888540950686696117668125137373666620756318395370009143631671427579556185997446065205108838669320047460485568750310739216139505412353194370460932504306793742428620600133648114162603480378503302478931175656647927138041669762601176210376393929065461862201673674537728975474218959104602822273664164818608269116230563661712310172268353326999519940208138825778532391675392624086044300599128592908962820514154993629509680531158699486735614662167463135756596440283695316124230526487822713821045417483561959301271821860330382644363857785906587195631561586529780025179461733853356626683374436196038088950164057554768632997864872382359247388835665501360767484073527273470660481440377328135377563956709820960841120608295185782281751299780424313168513909783128481079954986996551420925126451579636717497259217307532429406556856947460971077463433652994391309937826948199582307532934569899423865648140238595539224992884499160084326663840003259565252556828407565186864639118765900659648559734839548580749805390930199981219986626951872073716149853980491839220174914673931431547756754508955712108319309310354106163474310741653886402235929289043410629831281280471884015448027209228646761662822518523795538969765365613612631955911983215327670249758924785121544443074228041113718404345468048006652386313492140790749605948870443787088428188263573057804448591256251169856120476219265168099510005423799592408117125843354408631386216578493760873406291603888515843360558756009186062816280300747349027084412557133879907857278470135364048853202979905972662333074804957323698068308460335374289375917727907713097369044673833023007070005612355211351943581983842327660157787059210731939534633265150427816568200109712158012596368235140403645124527455258922814262773170747600887765922688333943966218929136058391247638334031584263899228206032723649490015390486918729214881006507075383247496875855709896017365190558953023956199573115652650732756166553423273409876995556100863907384679485120377129174232437597315150345664588309054469664160364706284358228520154579321928733586039270330445205865315534196628894137892196727076027424168270474177614256594401552364844547712461564206352178463687330940919314393217802034546239916892870978522524788618188262907549429110533355689276592920000552762842518399008847631453501847394672734873480455635987636855232501379467722475330354433389679538328806148822173175802533208879551824711913074700571617237539470394535021978412755021140193927342781794479871515489142896955035725250337713947238523601398776204343123402093456604650238331044796986553861704535724834548315971923572196151152068956321695977459197200538608361011816559496848663975589330193071592041037780669280920661641364822163187372521689395005637340357314450727602675995948176027983996512297934483891798272807816619623178170136494229641575367253080743007321495799533255229417661144160573734885521017142171430317644547741182557062702090825409256230174623338846384734690228180535673447791464152431248588531817974771148775351649854109053221635305028968267343337873898307863155137552824756429059416088794479100338425016092728107792029288464475398393465375838259764424224630885464511353857628258029815446869937284336327721772156328947778828157300374130681078286547967413814088401495648409714739287190584905015406884217854401211066131484329943539288821875523247435963547581821268453497665270633955274355532881715329061610250448216234588146547304961854918334313115887676887410754488171833260642733630095811621482227444400082147986547294137517460005784601881412596080737451013175168958104936681917739983657904563685943137809525141724355367084844037982602548544496656203467161045073297031741978731548718899255240739001956304104888098702532364314524112512963522730219273845933901409916095111660538083739550067822549119614840739870152567330943370152486879255477481930409134134791791817058525587447605374025208329008310683024236901972489708847868214844326806922077490205782862763576319117708006689779736732180131128098277899574912935662265606795128893865149910963780148224238047384752690704067894134760470192589022951543985242586950924904131946770327547807830003211233426657828171649459363426414379357405028572331588474603661030577975638000500476562444402285123839003062461404180039700181278384908458293215179647758344039945785622604201834771400926599833750528858029027627534847731133561845494285999615531973976038710400686383277090595948197674428516177866033541095170606385553579255469011735603664417692946732067616804591407745762946696107620864954338180863900854729329650179733441464029808621549369249195529741187415029703547160176237971769277642363265716092768558596569959337313324730242241161171110629825558371267457829982457102964408585773490042525840052769354972400339399008391369895860009832187367072368007905248563126177668624619403216090777486384461312737530681387003034722722630596254990444034194857585408350405330269068771197043174242984411806783627977048267007193117499789932449145093659937585188689586741588886132091148419068517971487145655112157374927042229593436999855462750751201291521611414346863048069737740605623554200213479121785053086022145135939548535124283205785319323601597235385014168755109724391679210664821741962531076079740916502990575139360350911576693263310218665687992879708913886393422961554112099034487633864794500064255455694517545717942001396458093985161909362703806399505331288788515150431690117146381667553326419865337711735356669077346695623368177855422552467194172748459188425671045668394135182627877659595021615948310838582782123788982640693753475913940749507607150773972473566373645098809325547348794621894679354368125605086514534642699444276658568976488509662071693930329981115569994192107029169690851023650164767286080676849283941528151393370527394008689941874274726285182342147162071337988736182944920652356536964731015884316292268644933304023136760954804754872654990418716677576405104217864950836160347547240741997770584115454620093117543452639881060727119854069792570239293594907846302729870350862524151838476127395887695946634603720901849644871959397187637798899284297316298412338462369010103472664662653312458178048709992167942077921606958250156592179142324640702766994302237229652629784725385455064766087209931386917592583612869805279117851101860960292501547730357380976602212470491674478683849460345876167389995183651400163683400801615609561352975547075650540337069149417070991183499499151886608387705824253403218954538472810079136378623891788765199851279890292427517302223725418617905710963012017622716934151118296002190905645357554755323399999710340387666714300943790755256588620164525481814631930552233612314691306060729382250214497152545201729424589788008562542172832698900418996411270811285647517484073053654586937278498554428264833699718757378951436455622288056279666923007976458334721043092505561017589623988020373720193577823350317842053192362607081197299351927853239425815560449939811826829799522475163376800277946446053050274910568412456525338839767304004286042710516408263653824220619549770853168156079924887033797717590664711940467941551401708538197352530284820279577085919312128204023092721734575901319156006703620662001919992566296752655623809334390089651792580136557293265199174626184555320286880416991203405071140531749655713982972702294808757838539909345375608723229101218797392593129021757164399758500141081051590309409865978710265871253095016624826813676153280615796011281421364360654556679677124548640415013945162574248869008562783948602452526231707131734015741983726785390763227266678749942204299377149441811787432011724883048087573525510605557308362822913959347539815847962380658131224310088556150698711761255295567532860632229046714420999258129135143523174511050495172866955903059379289230475505784114473687386724613368157003889509314915616831200619797278388120523378526485668890174941798169573411826731806364719042088402553658226414955573926640760636837617399391550516863180883574538603367803732639485735881336897169788193083792499464274966771826976882398847787131164583341038652317563135555597330181903794011179295587629704747548093970263624716031741587534365320623419004635758511691990588569997985354409438140225997663765712286406902670227873207763803232649401118290094741854429709394323100070403048538251268240362354904468114294186410241634557967237024448396009782337692856886284961778667970558770480317578256766733200857248536039751116791582689090358668237719408843158187596496187252238134093327919736244554344134028516698580455330156385571532569689960986098513070376453118644027597107436145909991131215357432635560087742721150317454667368354998936950222427742181699688185521867931840327409299309905169478696017105079489581347180895533983026047067167846520861113520301101931271811629610156475157875477028802767013884950065670574266720780875284367414831400808928930859194072775456469092671410665767854822985974169672120810854187021099728596976294866259439485891605598281121928471288463153070921916445993178087494651611115535767566716660270005641233158463049819746412959910705973809287726183564950397667121679096675132511957046610532855386641914726398861196742355728580862544953972272684357415363365634761930779103206341312306800068548697790499904311650559454770591748155137701751249131791378129385624736082329759897771709218745243209277551148098635300198398299138531187627779241739117644074873428899879743806101022259545805153698296561094420667058152647762191400036351753790841410567867781576056259604495986695209667081838984490892886339117224739677529144196155531843308038720035371013753254258061885780003872827975203328924848521579765570789658769979599295126115471554954366543886977425900037984608018028366768537749808593480702455855788684917950430364941908242232685705724639888857215947149169287401297605145903225022379457786218395122343664861452442362176186401335802164499323506372261305050193139773258877828934252372931298482486675747145359533060715243382508619680783824984084196096926426504091209019158469368835231124969258511838799484962072378548954956661894622230537820225624111986996895544048545395331940650497945095072224160854950741293363837732256190009657445633923911065518204803831013598191247581760461758763665186141988431711010763757540953684378338294647824538973801959868085352746784413806010000837706226772598059524067173821798351093691831449041833723349597913433897172720721010363835062734418405452258386697352956228707176440151587499026580473826977671840829591721193238121120977790001109256179406723747862338419219909269114400807283235944465284853032074369960983488050146619756225337739093633379214236663158328302453452673819007989586633092221351149339933007347094418963378940089132755887750457839944607089630380032653922293789442907368265874118904929939833769621300217552008694147578499170078153141026312203956823925271049087311474868508906352510705921653832988370845341555784350400242716362256222772779958413342347332478482116107884837293680053940635501588657280447409080872886938073710619603541621213200336237791105993341765354478795594431338333297907233609899860135341331805265713681903558144267006870446218145750156212898802464052377154460839905026375064181852533542502078240020315876676425113510121738141740313641465340534537109092260533375615409410385904601132021336898769008449229166610943204659439563840107594067394343853171843839775771370721003098526838951700974760651705566497108159125585994147235858978652686413333195820002910123883629845116086096621911397947067552336643160121123775184556250650390008091390946551350877636404471230052010693277346483061706049883334168967865358633469036467198882499285835281494346675288517911197777450426627700209219520799980112336428715097754281141637018296671420465596197554055734195948464220573863005961164922763144432292676046709348746046321370233408320979672971686348466025338773642853166016310330724597966868382079806885653255824626355317821116504956821364200955777496879424327062491996647927364880710384095825134546369482208979657709145100249188584225666440799751780149983814472684931538342079156093355273223529865150525453318264835813777307869770108592296691694081685718709058560776197954161159290284510025304455757987975528207649086315805489366283446632811344634062663681545723239876081694840652896825200864537332289080294168478037535233340079315994890456841931907984657702196550219885193174905358053975888704384604214376678668161052587972130998258731714043234640822104098992154753231024697997130895458182573822947076612620643757325743708554452476685132428458440270181755328024450759769399346245924909142277797916915961620680751671182208717409837274673701528724104075963718303803548471999378896363795622937135570373146824889254102467586137851006056700203566748264458183419382088000417984290670679227380778519174705023264872741314448967822457845624351588079422057556986954659886404893359415143934944637448271417582461363995836459288602476641201795620622192391555369918858607697751938100306449190265847405535933951847514041685310447671365707534557047530701516449495572633561528294373060212747340251458912179314023260686497252414637277294814890052936744468212755091502960474646747586201292225834580081537282096826805037849164993626069819578801716671177570870903949501295076190285253848798796703300747509142969719047955707237014373585930514422387783223491305900024856199623755370201748625043077638311781704399026617108641229526023503935467580566698039298751819518784013564814973777160064702094780149191226469884414383047647249063876361406188400111220491004537312713794874693427521907188688842350884445277992602976519231964801393064929756095172035945769959533423005955455997253453776882181669139258115951762557082788042528155117724701738047002481199298323885998638910483651423395041519256748798870587626758691396737217857370388889190306090487569148335870678271494719992676507887246619938574429875778197248519227796559985319355325581864095371715540655999182076697847434246831839584729765864044210141506768995003769333287661703402658588411073245156425983517915888697630996116835393103859501181247914562862738124866269537299240765924840306030748667006799534122001976436402931738993263705155583041129725689310014956635870028126256075951181520038031182288816258142423984781086263768910712381968035787316995630399371436978642965581833387867122690008517660728466896607371581318291101551544396481476739888145127330238545957680934827427285808889480789834793450359888578313347515233788552134442691518960293778261092681888462213924455333863746718145435049317614282752716111888375509351171708987291411311409336632571032330646198474876764721993234128188275723864317220298633323148739641820496358013280927503518339232318671084121911001589205253619577142783870201657679764226266488935969819277892558488267754829736759290412142766031267528357454450489671775826197577894371418873095713199958624503126452878005547871352683367945043199856250541166473656784712849113890402465042827635493518282770307009685471778220741376344072913778356568169034377595651281064996193086194887070983617788856424762025743646718300463314909994423326421092325726004680612454912242526234188640718370960400360274764669974817760668013099878598480078488328973160685074671737665643896125171193554593682112753988146620433443598896408249213238329689964080022164077600752946094843561124252141715321654129525653650477860221581455894436847685122563939690555211757269327867028767279449927164692760876053328354375162967674725403819977365340047026012726206556599871056743937039390471114051684737809517264030163917564089322791066719565355761061310639595401435983924070774825026338682640573030353947146100680661843991885877847034881470969432658454301383348197850854842995386929853933854798541890297266272345856367726637507500838069820433650647937926355675608782826817989500509568851079045452976703778251403945332250156885625752901448079423182143971773415481838029468742967013502846352145323720894311217815710644936944767233792599714407224565808145932033420339484446331669068553510769023840096526634780377355290839116281251667721018668509886537719310270977402840879387306205072541884664215326872780372870827767384349233968029626078753055225833469301685301242564488687897293106473658087334925431801546187402303156304119799954825353683967915980918116004518979633535445216827345958384618825402450295218809652848484423583956812372774593935300673651155437556493109825448033605592205036541235167862459597745125435179932659498546586193073482650089157180549535030214133206984321225052320385398592889411203342399228539748815170453247573640503888054793016907532218599357333529856393717961120722293442791217046846894302209053302313140334313151708988692053209720698664949697096349649868086606810845735528193606655096600965015657190685698338040741177099719505022322764789266464270247046220297819894341065814426931207481301879011597070410784268187792819118509360932902797203323937873595374739562761369824057911634175742635564647829047905826882331534957049650111098612837964762405585329947435222800912305488655167643787996250473023875933988703547494723625403553348150481169709291840105465180500357645845305188163706665659556647731989164739105541538512246248459852216453295635882528585778994421452950087752417418163895645331591143006453154537004054935344171278634348977237426318715858637833723666064207325908249506968321150466640072822181230715896523893326168408095244838841865646436642766624833558071176787702989487882249439117540476533886925795477121696346382073627284497675743891825534882634302606557153733232823746997547963892840306941900879547401849394565756273739404871054042755556627646081222684691121614287988102260905016095760534042986465836677412920505634021475515003488051454185104360689557773448241897288761431281301279182600002203269562355040795404910224200725648513091555806615563867548323541891662047568741107789044042384787793162221619916068931617422337471102008393010085244693362198423026616102117370469085124115885144665350591763249756491269035349165558525115428154270882560159403441376132176288865272906262027468344653267272483379846793011562213252636247981446281158997307748329652680629440710404985652520140301355322863813773365243687604030245550553393904789972758471963476906726715691534464591131276972964837754615202792437900203173584596835117665995387214739051891688882795215930699810384842084742736389655672003917269242448759886076103627041634619184130391121128479051653577739637643058637120747446361209055978237687724343398575534208920056623351054038971623785268576556278551327681838951803630854035928727095975035954677646558623790802477820416284886165191517860198473977609276414977474236877569783151772897564970858752383179673714040525134650401522538089252189372348197276660913273655330375652446988701785841710337963872872589335400727935985405066506743351751837189269951608926894920908901456066175649816883998555456155849115375075596122271832152929031746032926466614551493592090977694898175886593560749899887667214307343730519380184570223982755483636898228277021291391364889440466529507435716244591633903506326863944198887616193890220059440259559761736088308685534261566158184774054878397499961740721311591725011204811841248737849091037437251573428792152311667876081134965575944448199996493460446301806755903533936224832337490738367576136045772125271558580725938333729529964432925215618752609657607286996313384427936710503556692792941289318495800243047074970412324272210553737578931851886168664035231029411491971947121506321363893885721581544778873954084966935957957916453746114204975329172121003056203428515607421828741662062075007822063827465257353652984453319735505300703343484428116943816300893245143163258594351571710537705257523583443066257138427363326157316502423777459727758940020241723918001209814576961853028880280817410299465716918169803569559256800346421252057574696423597958508868730035004579725677813969596410152781026073873119582815023674762802796049140514871409315234834845996853103477090174063906214688520479839457928373591799390262059601657586775482592033686930447667059700215408441841813519702057078074629269794455635203957361138696127251987521351124069633003937588371606975194248552027731465220840487349272466340039322055874281056324433865187640242485107814584144884105599011636635201465221322833309797545511030937334561845027591333912239358448874001244293773324282773875765626698887618912772789866630573062380099405096427906004379319525451542448543443744884483915612686858443857095160648562080954372694347485106020325388088294000183269076597361525573817492696676786068292502611578212923685322877277453177961544861004754822341500880153592005010575078436491499845106368988586095566379280615068204943816088629436893712021479026182778920807129433656373603805146216094075500148969294403451110029767681376905353391252246373303327828810392911791024022860482318716846801861860682104871269154588559893582963440287277488722890018605540932333053371649311812856991538479838676299024819741061613607268118783308931994076456031587886464769689947482673050552734319405198546807211433436945596916052198465885009865537959845620049166567794810900571440763523972415784166041711846425219657712890078034966039406731015070527922667803178594436603812015246158138501596035228155192455282840370776150319695941241506193782157720462243965019024793559059642580168508177337094216213736293629364994361501561800899354602307098949557634053679312748406129093909304900583238797014056746638255590713834385796383123072117851070899091887786897394960515655440118786290695680668933754107827592043147037486520156307944786964003935073051547288803607512122812958925967021414371133015072969483900713512518721247425417600600447397679073379637364015858813396850864834471845847406026106940589825004744911272454548732988731779456572221335099380117221726409364920970694674491447869595964476574735489183809138969591645386715003030923830153344379851469669479978132606954178145465175150056581960667384073627310954131496298584373737498019964366902187588833182648841729466770014841553541370025026577519221166811441958968233371819874378999591533210885662535534590280231576546755076477796987993614898669879068303378055214342302635676382103773385558537054941356974020730304413371618733321810740840026615915273716525495801769638626221124574682847310250525176062719402434050488119689774584001115749512185021737073935306595051046027319745022843737496251922013154451208073557970732429202912070090709555032069778340639245313663774326667475312727176637673574868459649374836033893828513131139210888385441983590767625372103232256877550979611664551151628027090618576011842287206868611310752314509236655993489317789460269190510009834197571855175982390280868800893161894990925467988659551407462694822055007707109509715549947525491184976464766078492154995537919392545574968047095347318457256824210973812486554470919953366121104837376977491378852323720815346960273779486569313216819290333427733116447769935366220501980398542784569773549767188702496646009522278681840234935341693502098152438305576904715695212488973685102654357741689420482552810178543807552137114354170254287338706451897154610977797053938030470297448842433788135012052369699600833392374433436981056286680946432868308167774882545887561789043496297623364865398398076169023823083594623745502176869051493294781929507062426046025034638494868889088902198188898002458434600136143624279517378744737726113169642132591249862167077775281681158995312688071110635464119106770203397948066173247240531275163363772810362875604027797349920636219934069378950357923749770929212269215830957693898765035447692142204735234457987977315165731474670592657897303510404471698598992377783634069964496926793177641354089946213450990504342674638209606614320709813279717144728973827573905819269515390127625839751261259132256039948201528754884759027553427631502752830713018487040701523301454344676527197797273583704215279040570917769047864762310031635210884047578559111151155706911975315110684651296199306932623943948533289187799875380217159110056140365601869423881638364772057471267712003582708858395672504505808792209489338348097361282031561424100252901898375253853427558943652486546170504226810773819824755954628278064896389719863754963112858827876472760527321397087749753428020807568315739864392617689028276163822045864609231664512183090955832462759387154999064040806464183501695232547198087600875602789975960393299167338315787387896068743189880754127923977732740151153024201960303507424472621808198298254186868329822789367960750804940414400166194163714546274325115671221941291765832229180006868200023164011312407709392702762554406216398221468982184161976237913328036748310008313310501574003452758310494549719345059466153935011866693691114758503743573582436469138742482681255221171708823837461788563238217682680158718131446782606569389197435787646068498457698502503613457343490670545419761476326010634767698520411970943625852961633694092035403772732729318553944910999852707820498149681398943453804534530215510423992328459791188724345800789974414420627639123388392839582939721703247029548158271628331104856060057896318227984111817910739630979610659471370532390721307829064869299991961468339289668957887002198771248398097842560822626216273393400141665804408530065776768278683879946331743311856310973816859863783417906194627523715276286410137828749915006315140165971008321133065676732713876757799853886792849841697264943978109854520482038315927310402495071324097904364863656191707328702355147101877004987841724434429362779147751076775583420639815618016958575667735922378924530398610830676839343551067943258722222038807655007944175282887763490069292211893770343004027147650671626480260759976701799120351288038317367970424808368559823714330440503687457400084148349038621298381116401701507981370305923388853984176039848508108956901978099489521653106118147786365763032346445505707301514976159759359717751539993711001742976672076898184954818402256099548756778566853437509884720203227970272057684023727315954516591904987092869217645254151762050935597369359039603677685170051905292427448965097518365080348899348020839963450943211641644799999093681865063833777594108615496275436341486830343498626719824584347773622283772813436656860405867920218097208882817867246102915694371969047141893324968583205056268824681339018713053409501332316599037658208670012922556896261167127033643202406866957325154296131163770129018033807580595685049747736536257439376909594338023039314007354948417956281513654047200590068597554529554581213345880336207517897096468507993501758624553566423966225999831255683270567416537562111164145602864146671349281943148288041551731231967812547911389153212450202598113553090306974161569037351002069213609804866685421253728944902540119835454921505512243246974622763973917858101897714152466383508614132602297628841018908852996122541261661626462195613112540883374696376993618832698549503045544396573931053995837278178705265970403745788674921819177742919159562353179662799366838495671043976011820047336822523432168508096706597181259326978082187765108530385684873537481012187424504722243975958711379116809607895173077958905379132085803467674056842185260467504010111147313722469402174740032713071211666041571054312245872426869338166482814103022077223813527658290749115037885669435092320176418206423824619024622650699821629912887561140008606422471685892160397715174730571114788248640260714274684024733380301694522401749830415381345137542052127525858095928934897514215736199897792102357351239598580393547302936047479494496504803406681829981069737918122504258121917254036824430290878711032345007603143434129379644782119045939649352534759769806706900610864941121469301112991918274414823315137869329005968869181414732319903548208770787849476320566207646467918837293327395177518890758463519627890988917958752156892833399995662871971146404694067267086425220600145876588091868977549833763585127854616278933032085862034558931287026506790565608333138673762011007978906899293350376749325983270417541200368289570401651926304793321609950632314533383966827234882380125518553027748406939000332059072306190636052898854497431043610621680840621842766155160754999080907480614984447583163854094879855071317557485106474503245654282513744254598118075961379723076501308020524578167902131729757509415427832013726233122908066154890492217278532945270146449004237860570579506520454769247275599208198566738240001791308067523974532431898213662499782034912483424833536844106495754001871069427434068006598689495889287196009997804383703425389917330685760188604960115276157786069173414687443121769992995679733946142117122684916706398815138603817934636554295683260974046034910634016019238674237078073615431098090180987479481388337794084149274562556658858890882512541509692532811938453739602483864882977999408554637658987154291567019203582925169917007811476218026865540993534714278761651444805118396844467759092486076038515771602272845562211180309228129339492806098730235311546626461868538942607065893400793466686913418833602420544892362089168133480612842782974057088750148610106651049897212014009295732018992153755162381387661284401193198603962082092871788731923365694927494702212613454267283652583535891367766900765434277374651478251799542020206620780784114726679946880616987277770083783449956351890831938385767428627192967731306434437457903958092250749309239364782054346498145821553928521527688500795182155521031018788711369967139942626264795290583486504584955719335005134511965461564235166430106638585889189052533644995707466690560093400926133006334312826751084256321683334256150777604932741164239906488983554057113886118543711241559655685129718365357891028116962346608653299009713504414104253242752105443813122810237159147313631917221184773308131572627015456482199012154836665964247985891883313417195006078683015023864363349615817733734172290364711383650904987135379361884463136275433729952273888936676963073249119563890902401942290701019885653806989727423631067030533427336319591026879870674179991462399818344412161891992806441647242822377940938393269541969768589082700375258276894016276504034271633757186969088014948812382186041976353614872263767321965845830107588306550950081900333219949734497774431871608995930244844533035147728804341179244338877336806106671324204489368852999801591277611259129332011664487679784683180652114247380140686834390464718033605143550546012970862496579013436515658014580823986238064143899881418491079519671129503462057177127043527435154761906727968205098859064841151087392230233738505584432952047423765765093553350861976155385781202981421514951271192828849888419567042140631693331546692357285936631912996290825080074875206652949234238388374994551668750904040341325332362879761472736519522631520087114195806672863375577959497086244109483126978428224912335706018136855571014930252642942494883328033130746269305300942424604862293710511056767980848268835637791230599199185337685323083143172810118507367873724809806330735449312814561744855623455468335710915128442502172330347632956719994333611795430272112690280528344093216351445313170601454208770752056790219688644149955680945949380707468803127755473553467779641090626651842912311581679301930002186240011063605909045086549102786712172076409430693933861455387215331107255920910570025018144365017028213295012348369216783221360600400581319157066136663067152985998048215735502642979603770464384259907229139439734676660691235272257691633010977115456701802053787772652672443069766088911767849434425342349577186629451448764832653213133448879797983597445774803526335300687933609212886471431468712063093358572887370253528570253710658617537721534388972732635917673719555403119365241432073527218891859814688229808464218102611898496085246936026843804599836257513122180990623438873229147566246306543021558773792351599166809354456122499467740962383391992334677017980486969868779757927612682197694570214266432126356239260386327299131679661129020024705451999766872610140907172199969973942602802313727983552251064499396209218080280504562315168513397035600361851130945916868605142598399026120084595652068536635558502857283892953924339785420180013872425164556803155555263183130872268106053718735787101942202245328219506803320316535569833957581496373787705839164508048930695616490467440091813473213177278636602442146672946317847661283030827577981472753736554021187046505264043811053229845626739489806410461249565923136851126653866276899969776408851819267620359911844783747291374098776715445939493553382093502321119403673081473395525382790357077706863661641720200468804002502774287195714091958416115756672840249935479037143653705557324667827451137091806446178509534829053400443359452539627597677057883111897624340962872052742034588302943051944240317833147691357007515038792354962243728382218906050302730036582549448848200852702801367559143826420878313990340541136562958758477684127900123524389309577103238493555958233702311914912194212564904076642070970956353732592020169673770851005237369009974632724426393445742087518894948508957422755297945955887549511427169372886865011356791495957218772026297220799784284414490937754055308169631171034763831414137944144943173413678981727437897629163975119492106551914525271982430623155041794863339880657156220980519748764186455956053340056375044809951577511252244494111302430530490299878764695972820991559924813021879012434152663247497319235620942757929021590567319071315512003076904414513498668861437937051931104477465026351438855192206383380436926825182067436341105956846959254687638829996008518948874015739936274061649093271928221260407707577964246286087941210131650328055206641207662070512882856869607627739275504546483292247604461508514270465698823483162254282516047714034737240154330403949033396751890371966225987330819511778945685045120549575715350481951807393416282978986255626260641968026846841831280369122767531524461115757421616481070666132749972656886313689886806254905130363377837767944730377152007697050293156053891581127572067147797128729081077126436852623690468022501663159847192752834854906631623863240028278796545229670356691291663616214316715560316835459828236726793932309227071085088680248855185909156503112247503040171132615161672709343666165004090101540544923499168608906801870307925310225956979237687804563697537837349519234602884417372047445854371761856124419655968297168235470440114053702744308904677348877971861382911811687150085719792564811743845814663187352095110888992567371820857031025032930273561741180001956157705372513219663315466827204209621473063466495818567118266424488896026116794173648523549496332654079608454348461339866095260830425895918785337998565645919339660715982677053866680435567946370836359929233962762330101244631560141259132793017860666685188246673004351163766822511086923230102440675368604118914696768024466741601029145861336420848339474014683458589291307136270305541188559470431879125414775719291438570909523963912877871193823374894998693959413757862387322272857565513261779507998909676367595090938377467429671405108466585860804836302334323241741522810966828810299304868372758359911790650726327900997323925791158814352449416594071356054253488894690882053666422420153247715633104080986653485679579558153927526127111684029273471316654706285529213132561398580425592403991995443895529516598469971504996224446551140804450677075145445298712203282826717951575016664997732242937877921896308391822413238372379927331572913559572134867185755232393532723696477545182794358340467190406618700484149495299633957028354350967381639844109155072495325113998396669316756002695051203577013131446188619076840697565996459478294908861507842676848457968743514495643770425643943397534446207497444445005326912660728595893920078664556315926808187086713449000069452098584615681744123451263872726166525966426068478203491826063256868140154247680145069519473345923307656535825586469230925844146814072940812109917119836814542730740388376799237587052874054617338846314231759105824463673070619646327430303821295985353925775281892652602941426375453270709355264017059815611284010851454302900663497069375134236387265269827448155590655668677943611507603562538697788175150480099636363263768238974611915956659943807814028006179147673004954576054376595760973721904340217480756949998051985517198597594014325457309006513107140178321384843632255805933107153834128414747656583387013354379817005254552885468199814841205185931659992495050489930461799398190449414151317882774515826950497742141234254962250035787740294507956847111763627144785356012405421937369200101574581157443617673866744422242987334294698527823602362729550893452877661985308452399864906147533873396626378218570307070440416552084809558445507217004576395201211880756624687528490786390009022954167924059201426754185233483138668266543696787586144305427450862044016493098352715949234859301231259296866606273138786876517142915410205118980330842609450071408954408090063871765885165297591459646092572909103508988014533143970344528075820152684341202550747367747553888850237773731352026524783163277218975426756827136223035931976401570123066180285578723407152387935214409274014919787873187097796357627063211955572756762280205514692957879406928481285768431913151782665817112843899296696014502766774147715123547606606846408582093868156928889471086433201942804241878336315430075731468854945617497076434803965309635831877588231826958083207438713728468022353055102253666141074944565021849483725701270107943346641989990530113538819004613837438363776638718563889685141419472820842762111484011004687762645922328934365281660546872029363403175670004257033696544764750363208641083925357734897322100442366660978629048195361146342805236689838187981172401367967402231817946660112629602725830253178225953722820823705484875844846199149348342324173365303195957463929462695872597143128487132110852513057194220249743529277861896681772711264522765644524676618728042053762374992016706957250320876953052383201215502607904910674664125469860789889096648494605151380238495139628219721429655297459273441418238121228221426143782512391602974879915529579777941681522807554803254261203380170937466863973676241487651413002953766611778117727943326368780295080648974147824228123351843293571089736884153482599963181543854905561252794217060111519014635555788603418809035157183383435058448752975406123170944397849684147982284901399062913215178814216274869359344058557687982367502803141613564042998911154267012368226759338081786473945663070013666960555411473505241545433957944096325471572721466104231832547993185099586360374221571003061184322402967747620513490573366532004839817485087409054414828596653484288453125641644934254498066292929031095147580740801016397292564455959995650435292630799607998185271382769490782024501326243974987531375093814096574148859242864055840041669071412415295960431218413147268488134721384697845499490157548494687360382592679034131220547594126956238707304902924404884598300749891908337134872160028339839965418400992536895860298410390732719626598644139308965362413575081529189187568188976839587464268915697680419363038177083614133265909959677247497564349322332236303695753296765722606188680667955474969902692960230358229160589555944655073782254937503130387944793214752310813958710755934689247498667443804813653810997520367719446981532271609595291483461718972876892589179586371974865044546249628882740986921019565441432024966628973505934918327170516680709499768581166415245049875899300752251378393388713312148869331541996060076495163326420875720523955297123176290943163528682047527718109156047791310412072656253171811651347813238251950728565014668763587184249307254524612700681808452077034441836682209218728443836131834058828445136047358595613833490123556777752993781974682841313961108561611886946645406001293720724144575263168111699507579899203827028460644795966705466684938667596867795346202157421248176398267455913251243814950823005145721903642961928048547867645021627188493582537334132002017279718830291410624389573317716586692105509363614302037209080344917125581196454287001960121236349337518198228739047423846114240954205771517553208104018752273228530331731625038325773736647956056479933418728204491508523517400787495709231839265529589294115806191856167043637058896483666344030033440534249397192346533712183750155751895717280582798991887700155525493925224664984611525359031555342793499595616211887251736923746898209144822399535133130842350020917548140604788958490412497362221773742260858425136800792805084716103208379441347016784048086464730207779300803408838537335485118553301361863769116396401212617593058713746166398103296986001702738980734904734819981388101105364838738180964131130864049917892657978251286475935508404766898258791116052923847878389134944484785784384163569213119320132730491786122165727917395769602755516489268082012455902809593194522599850603663994094493747884802389325505712817663164034905497935430363959955381363961899209232230530709326387611461300342716912387232330946520865388885123138639374617751842501397964119427134437524032199182244781508920158136098099041359257646383653064938754777703841491598217540606063553685018422340633529973502454063908695251021768381715452668516700465572482235788253465358592440272953795474658073245683956979232516837364110851946178260081340295761003906656827613906533916667211315777171770159539558552073398531048400472869926656574049611636553797331962540533236469790803166758974643049629561796350027500592260041340134978418686137177262547409942872169735432002175146894330323023852991386008187691209018208191284961917987224791661814808186132631478049786595130921395399978523820139888409044302866090488547122671068100852278789246658238547113759355067188586962382627324252143617317172029135071457019806173511278453168971814075198098191380891535278373268414193141997916506048329280963717354697050467336236518276660218050600968202384140311077757522696392616413194840877075388977751415856848569501917828742094270318271876510883250683520004641251648077491702551402254222723846574149631414966210841537828391051646989677993623676695174633749743683713787401560404316939866699419048183817887464507302507897387874271138005823329311835767741864581471130484858464835471958200235291423542141741347983639280460377855411672980672877156893868086771986416643242592314883570136241531040109036031161540479832522322253066201043584039448170156669547578516650364278408817668552704006180271265005205731840958334561241091065215678850501082322596706132807093403654990978811310462562629118895224965429979110181138159016050763189246292843427847898060058545588264912997665005261917419522510051449932864202811166579645485735739402230487497339668089409481396009721537522610874290409806386082814954830679503744228149567817107686080760399040644950851607142676402957306702270502225866570381012561634184097864680520350154662345485733706091409141721776434820572253468892334202433220198056695611070175903039724816052769638258025362857477051821413721405167602111862477059688702642893076136699177367866733098876438535011423908612567815546749455636302243385862053571592787658687711104582394589340857491171412180152656003373232577580670978077823407202210855043927986212044682041738391730061556748584891770590943223679763115120492006600879464140016945601351784760177524206610374838035802875339886894016788850337419283463420129466177614930530953231454141371651563564215207125219117743585956630909873020940857629164202167642623394075249694218578512275636368207631648340651088794007188170000712522593009907429807072812883294415551507915577761440141406041525867491469828610917300429778601412088377079651173915876575661439423804596084705338800154932619479208483193430787366168489378015149751183494744588622523753429459382130580053622253031155288715466868405833933202409838967316056910632153721608054830532860720678938194433902579844022738020668224805420065608716258248020528624786455838400632303509580778346691339765773158585431787556640610105178888799813189020274345942990368911640285278527117246146803617108411914747300715975825040696992942787749045171004084172562958837154311787388369054644368774066287126821743045968707313103098196858459591819741680437966492407979952963025757179251416407853921778558636204106182026313114035728775715962338493765982529787163534111868597881406776306782418614166891707448901820267187738054233936519497137623711703449809824233277914663492817577270372037432424038749504917950931945023320246368268837767445848951327428190578096085264295672694971249511686387385983477469764948526443138266997480374077117897591972247166887185633583516017023978326899245174539138319107177277596718214548646074595356305114723322234702575435197439018109865496368757917847875277925395242271462318080349053858503109831614608673287994695217685016782232027706247992294367090658661779442071376032333849078232195436323105595137631907167476663434768898383542769820968538313330106967770442785442866753953024132555391452406987799907943477321743316244671297498042332108844988263520910824402168148773953262978876042408949243120970003479446768080267103394190887767241722404114346127496219805415251838058176994939939057774766378124395957518236933775676371481513446813945345525927536417180239494877567173067069292539574091767810161842843994237925213719976009919623005142819448564949554545835375401853075718536834854410246305788156369944684369264226889294803525908441729802457233282824686823709437407826360492250847572204787559995684557604259853928652958622200358827666646341200466056032883630381767221192410173070451883645504218724176473103017080280090630043018459588355420391553453444724868546733449865145203182678623816512130109766925363700761425006898295519644298460297203944286916317584598351179272729928039319117115427426391674211383991465366053000559272483476769630700445114200621587943272235487688685585785663671845326608259551339631759192542553105909336657139801854758647104586454403726544337492014212467193508296138627336168638528587279204939320953734801539521903949533624951341836133571603263016877710868332343053092413564531368000124456738469634263043747581329607815435730794166983244004916955881323385180731767996161794871600385090316415167116830276707490062616285857006502604209467125491384201021055294425093788091335962745397771410683897703587874960307176460899882210469773302913505417761626788562554465183558998395630038089633053157226125302999399419551492740685321775694227234962434827925917439926448238965769886583651482288290638740968578532137461551888570954698919980895489389258163994183565307062159088407319255436567301729566444435856905691868473217297957198011603377816128502239757746835660284013376681615648514934903861996872255970234560056324861476088299133444684138013059141671751588015384916730927268547333957810479589021966310353747107482752769104662356749917700034338875043024564062697825407647600119732507960781113478327519729610578085784801438372624695087373824626159773425659394496441537546921235937596588768306242897379479909983497621042743772164560042286953147124843760723104230279753074667180000615499544122761950980697191675646666151890136881021244474811824212506015644210960264402567174664854782468849763877278270104483581064307956869427340258492294184165739261403158012282492398788599520393131306685374724091639040880173336564447932111530967344927025413934338390156995463404554355519632403620902821415193446608185628185747177496303565910483118521177185294320594093271409468241452047456031746648852048368472538061149599576060008793850946071974730870152592212105078400336650810959871202545651846942648461583748980202782224440377880777797248159562374075240473166515815533791852561160367686964651948187879673764945028563137045628884429145923356080583273268131962136256504304515971447776788561514357808372380985446108033949383377540811850723358058776138612029308846798655556947671676112139857753589134285019944979031988452362549407222811787344249500712227070962882417146635182628826460077661032962367941503483242761229744130504820587805638678519905038180835777039575779869245348866391028627568412249745940352904612156161909284978617703238788507928010651168885955567207819994978732814867444035163337707800876491283448681054725281057717965454446466940157450891562445557341909025639309489253697342137378406962924452200438364594319477657010413400240643652302910301955276018506282116956791351647586299279418819221834452890207842835889300792151423311180711410356394686712373876487725833335007679893439897180067849391136025391865308460578979195598496824087343809825025045246443193686328415077263794426884579047123845855800137718820726122752535641141422984371413578752012684325852199680013523056016425399372144533009502592014685952690703543365678190387535080064260106358576260394148246582970092405884169479142256882159699259462313916041471823767315295851154529159779104470319662376451155636559531185140206762760088938026749296864715595725663608528307481384260211399991032491603431855804243473101329905207993164423277180119420762366726899270003764345731307705234610777411504199752504063008688122112669478142948606006967028035645538106036688677569034195895498110690592575116164952875049525250098946549061395390933930434616493965214150051645215745157424396725644759852347423533947964757586204716978496716118796987622641412995886217241582533340970685893831353049378655031828029264419302622044955689596201268516447575124978260323021790474336510874709562755888990168018170052562301261566859713463490833879136305731325614431470249479405166371912080552033011373295488555600758589434775328386871433872367480176608694748081287806949481258260875251417869539755851884294988381074201966989706818589309370655076329156854258235372630775955131614162914242943038816842470219890648695320473366562184305772977129223302993726831236238269649864893637951024966122513724894764718344108816326338998470534203270425529993231790144313408570038966480421059267897391788140668417234025297044891533869892148123110125369360235510165889699245482001702216300460183246654893500788164331483087943339873583661166679347689754159354329737857283610367542912760161939123756643995001263443733219486906443249750992819467704273653583943221620230873536887817418854568364820144915481321663446790859067658008026522229117865675093361099842731791055905880863289347498465056743660936532012214178526888793078806860356136643849999232355807738011541013237945945558740710748233016482581895016051031697868684014051056256273172649346636933808633304396465935712522150618583698142791782593765429511217357633982913239753885222280743541572426620965055003864154320035261438571875394735674257192169288461942889477936804597285952185517213843237771445001770548124664871176468964280417196002702068594428583287465932809862480987174192919870425045466479977662447110103078259844958703991292535648511707195630401294155263129492133478109059770388914410198693740609540064888949769836514901156132180138722707945172672269129527119311924517221970444612886337799471957753169040218122719267709101420631889258465936644183803913152873467961248914198564364379809041282551694455521266146505835389591430654337277775803646357458536256216715283627476744980978268795322964516620241988477017080960348224180297358063656796404806688587275467573091604157592061584957928082008751673324651470408345287908256370098631896109010391979196946253834928401716846091477484833627897495539986365937835763712541815613325434352271943042837100536541432441684202631696359694533676513687350795152295161090266562820716680078080493878816380009153454280222802028403543504191083069237834688604646477247850028544040303806533810174592586537144954152625365173431629798480874050458952990631099767406734403226148222686166837572947093579504777634411034579126359429531307128929189017255246705582952320436867109848307564391751519242890414869147554358643333174094771283408203395797205713853202452090070374124390813605241230434891900271804094972446976069638508710184961453440493490926465787302946281474137791779598705692666700455004586055492074174909529413066162300369491818332529197701097689909661952615269587988064746397633049754660750921862211627754761364624270328676562877522250863132948526482169987235946875119708820258586433580446522559299036081330228498778639766279975408234371190024341160085156408506003715160567934533839389392931334491269734970413773326930463847461920484479243582911962608395547128548411542087324826262618466536357105188679500344324881991174285828184205689844782366380746042953336617343231396042516733232578475991702430522770656288042278168475684506535458918604071042552319075904710152819379542024429070033377308584715944417525499981215487250667818946483091963412794834368469821394352856213930579193310022439718434709948433394386076707327868187624517193755998491966223310726193226731472263560683885121800607234693947353375593633014911746512699314623424170211111972172558811095983767981717464743790470350788206057704089677783268598014986239887391209957640797517085692822298690479395861525552131380155567838971228664106663089645128961958328471774885777915843871181685441237055024133119053298256690116633381162530575431548697446111229640336514025153722795704444561260068039828053517456794590371315488234171587030750002049051331203682110167287109898068070282424295728113868199312824517766445652961333921844451054704264715704188569436515717407816167241886898428347385789692483409789114169139658530491219565825400541469216428360983598583841337059026070958879872887444179256123665929667833147672189685125112338149296025781799070830737516189345980658342804070717141242761286930942941571165333047907584871793921023044508609446497314148015942893448411154404168063309459366722084484799036978207343240743670317934084608233973868186603072677496624604478538621149960021030077356065822086067174037048297660714077772389053303424946002000481728452982853401532767550069319596956391270905231094903873490842471618781505215568466917956922863193177883941876154346663931307455903227883863698785302434085304227331748324725223456182077854169946952189826194815848459000733601589692619327634993213971738872395719533573551004008320611603041407067499434058930438556154275009745741142206007022544862958852558824535778268775654514431103448734693771673888823320746223986520865904380090577570518836315724422579286536117823180652416477379518900925145323340112648741916872925175585026365846449988002244220781524702592875790690307190888356474068602937680038076813397955969939110022319718066116470576446366115762585311414978775258994845444920446585123845266233273820125737850521778178644481162637287345626460327170578562497492283100914726982255879281082638444831583164941343599418134609984598216793049619278874666730479129847449568730993729478993742527264466621742170001780121756859531341690574657469546666271017151937637541956160339293932064173908952951523823057013101229469750042449300058842725776738980093991696411749268410618488595662337687793898269939339490368409040677054988519725658101320814613375323831230864627944539140070734687535820857575236564513429965487280070433433973221670451334490503273327746573154263318373926256394240266962465654914472755382194010427697658069166500866135610211799729118618462917366170688403078333581839827767517540404116011003737865871939137742788723689982457277378314779894658486555813610791748826871681332308840573064013890383713453230701201495288827531105733195020738824481896061394985535832689237957612582182655251744759968124238171231474247737051850639955259723620459910552486065763700852595707843962299037157996637156636072499908472478060914496994638228433749563717512821044310322743166492317618587336163918204720512778597437075999770481372083225228473522468872123690441881765805668759543586516224012755109100097424950161288892135710300422930521589877836109079691704656833401686075096663846320837319830702651832909905858235043742143865242596442773134250244205073415244289333094458920381502068920682206198200311139210143792952322244184255397407630637137438032109817088106574751073019844504659931391186391218169570435026469823938626315564577672852482586244055111320923127239623217261461599266072500378745981275280332655751568374142613457723726941894555448800580039919437284512429839202429844092290473374301712079879845845987552789406593338844504468065243785525631764810722782000521232073822222211405275017223194771158140437000961796577982895767867397722820084425397905112514629498852765693180957935445051861796899728151461214789381398069694920019376879369908799075586922945921586155881971439912363907324336166746533601489195193334752829480512152911006114908086717576017568611338763083352156292106294164084148546774735209225594962937916107768839551817981127190483718989664662747852524608095085437704150251137460759000775197305339858635628382326435049675973453743039040090668985297329959109797391391212225805257560049971911858278726066230274186212952160899801278344714215558436190394950024120171577802294832040433105651328370249391190558446244812298000180578255819898285352248478642156622808631042380525294849392103035625698974473248459352729269764975845338659747985528522959182220295823904247102118801671319873524936657730395852477498354061937585367009248198033348084042686569296224337764962136551547403966227345072795106700916782979428304332246657505232446780217431013100815811003129563399270398063467441018375045555529560343883535727834300012367329097562492633070034294409268621054290558743460253125007623282330152899374055398816322770975187852962475934285487180967079654821915608688064615899790272892083499005965424951206538421908472942584614104973051038358521403190486268808441069499441207168202494821226968980892700265008095380284946837982187129264249000418116821927156659832155434337379649180915620662578983340967068821075373829755617001463531465433045821493070387089248434321335246185105029975270812635814847102097203593906014716813592721339658610242665550635752038743165309430815853467892800641599903548734842178073954565317623516622521820118888015535012296641412266821339493635366750443881122615682172669716516806790703226356587025037152814933614680755933610934225484636793551776001356499718077940351321501277148656018598196151447172817225086032753207102900657502903129086158178778757859835883501970636349168270119997817818917267774218828168663598569162895700829767487547784855654571109703426846135102492751406350480784023763762883251376273011724767977744224462629918858732500990527626306705132951135030515568392166814761821711529759345210261678566582924385725154358859916895708876073799847368327223994695671960302430411983578923644354961121960022520561400933779304217722442858941601096459377765862087106237143630989045451411071814835935623516309396047238407001746229461678974013839006250442295066517830676395541411494424594089560914584636581582274406728204841886014415608064395186207624888041835542242107733662531062319401852371732246931177823598394596189273263340042385420048966249936223264171489886257381063319643154599473270107234891636426323879683662584223719273633768206099933460890607159992406175798406897701616776862942637768748278861181577536401025013229464668585849220182668175638728665050700809431572583008472682734782640584226265486585681473952380891668604372346391044669551709980127562101440862830752998063672660213871197933856916841236912171988945455494524237841942526162431367983000916933813959753937370310633861323898377809311705989565086251382244622575037085434825484621978252887010549813732764375289483575039330359210330558325954495920809768609911192912351624340328629338527777258655521327397449734811550041342199102805634627517656868771858840414302101000280314517171322726109173580695243740460990714728935686209153920000479139883515766536793848230996328859789151125943054213329369025684001336606208540322757873613175853391845970234587191743603113665230243861155245191191770823204009374424203113777655854195627121823478301141895005824873780297629721252629890894229357862305263257507368589845144969952296787399259983660295621522466986716521828077041455732913486330811205060004075469493982371488221933576594678927411915372149081803195778693960500845175132043141612164507313850395095519114873852734158703888010800213367530681861697016599198079097038411029502160134609289148069105532210384017605114973031789909437358964861333142654708421977432504116172724980560415873882989126247154324021644386456481138870936703053465118434189962811876390395549168948392657621293728709015575160584401475761672419523580515505194173972860108386848095804321088594651868866584569887537345270276342724880372004006312819176259235927873795645711024501317237660197206109962541307630018665638356321656940464000638316732108018784453877390459762375285452273841376508903753451541738504721126621535523174232324234554809548602063211457885269840254775052814836889338463340274090392794950734293898728213263190826790648953522618755433708415851065463129346771715146424451115160593374082909549412890328753982287360855732307148528677943869029114135487519824983253098818849284600601906439131304786624353590079425082290894656018097275014463288026652057221031261925046366304870064619985091525274047781263472195497663493407312179524695488446516400257614435485426977019805630840954577731461990111977797438350990321832895771121341557276961455058902466891505201786467873019389562557277429365661872398493903383253815324512582452429058752106790679373472500475785051373413027096991626486032392375978166551892786084643052583769734939908119844266402383245492946424426295699898859256271802809060072475152549368284079678906278007897235466878558316743242971449188697205932936805949666806622517201919924291110965835024943534580368229332462504743203465494289232594592785088351504099302090928103825895493198176149801899271904562217347585462224389979365007498219655325279202439132505149038558223860369164318154385093990677463062795680047282711156079348527801983296623883332695916762032376872862293724340651336937727325899277286458725068054297247953795650255732058660147361368335499394470939205512365795839280619525110047398999681188807616414175006516984438005558825387986077362489509302385810638847953658726419637095421432348959828081630692030077797494827431002474579584646277454966654933172276198705030332481661355575588863083215153525415418036605696444647430531358098703264545677611530332353290826791281836272437062313883889638203298027046144178458344299930274284162623941611837504404434729077493957785003104269055557807276845595824222568908145949700158614749632299769999895124537497663336576178757955754078110724415785199615762355887691161202843214701403589447244818948823376109451925989319996987478748395621985705589090633322087264142475913143212895636919446121243316127804937726468544091439053829764046247647433637895216100970967636071690446664746410560355272775194796023298178310465219369118412510719321101381807828093972028058037886089375933369490232791130703643683863676981181432774873933370356058927062642114868635322974533805257119900117319370275628603609448708445679154631845266038014056635774163867916419789439964207204925397671186470021526421794241940961990908672520630697590968097410248339972677903143158481785036189309446025423622444502276379972661337969935163097413997456674837060316461755842477592285759000375986936497075128798489527730318419279170717996192178212797274573010303533017187991114929221184991222553639378063186800885837861151560303962433846637163871930175715172138652117804792744478444837928433804417472597702282128403951529471238571731400930585808836225085033435722978465144382303015738431916055347466554083596356144608306216108281154081483515625910182826972660320730620458605780305539744500570826215873781945094590637954710271634706200032989019390375922239524345442192441339796562299264214983342558864482262882126322186863176504694026567534885426046655833464251640164468939746589622911603248191432117830743922586863786595807743541647457893384952118255669792631331228579964746756494466914389576696475451493955665635051081245743843817725186516913917622462997887396874036219095106849411378681804013667084392800934284033704843635739341350242425232028091623426126737560915861648882755885259268621037401104509543050555846218785819010519892715322970635603359678645099639005418625898182113884354137992501324881888046164757695772202461421503018115905768842169214047183370179249883017081802538753022587898318922983504295083770777847683114265075358911257365658034018310252374564218427975305189605881641020363265231400401125981000586877050474103231780451065350647672987266198599792985979254496796589586875730274949141890053893068415220900745515648521187750321114415924299062819053227070023137150264043787159117487467619714318555887268866158705426926591253849262193553089468813422592763054735234853230085042697880757434764709353643233193254212615081900229512267426806227304438785702112339192361130503922751671898758673330654841845255476643716462889345082482026269925738486218408899846189019957735531419430155122919771577298913223705685945686953163881166790501387963046212306828130899942007115627048008771044218162465620069190930690716305423326340229972752099577289254566179783201655924886305982687395578166689641770605230761459338766141446573923029910473766689745970021495103738973292364407268673006405013438338090022325281811017664259324696710482075478375582787685310071630072909715000715284811973106253537800152166359906126333768883251132465517561557398812866370825943367269377395494869294442575654932617498949309826009750232498728947995263885143980960210019594952460622227541643162298544438459842018307309118665811622191365885703739477049937553194187429050454285847192910511954484026401744313503169560951363677403542244714117090133939157593909547718964891596240039749327850211330146166695175972379500909869306937844553201954695520283005862881286445220327249713687452800328422420082224874727960614194828270704603532313009616287391877608381494575858024040857831896854783819552641316011149611230085846459282086460406983267055495846576857859048434600412339244999258200430430843354574036478038371055546067788595506010276106138929416512722381838740395578409432982533124439246054405311360816948292396515225449814141213673729499295115494108180326621673994168341516607148705330768671219335679595277226202276782201874436647529118682221380009211942801816665577510371328023264870815265362355245809237746639678644502865901393426638159340457655709680982271916674463940426244620097716673094855334818723141212416344300698446195210695798254700398939220123180414084531757445240677797910380368866731370098781041129688039950464069203012311675424875808737770884647411861088329054719418480496671729596560628754352931838590280509986641488943052264972336089720805872736374554914120555323319350650183862193084289668703949757972457391849214722660714433085261275801829227503885435692140977282749272449049524948900195572302089491602159869742378741335283420813585730540641087183235826535763551677574557658000196409575843266366045226431737614596161138173134549948341532707702545381273677965102972601734517939756971832940229809210425098065945369675239439429008569802867345821706130564711796499379448760841293330975061203845250540652982585537357557241862867898610308529572333691851788480115482304469029690930109841288470149442993718678550329848561376552056935118488179746415255331324469588847021046211567961273283843383910158454527932546225548926620828310061400890292945374049542409653911008077038014209596597941292092985186271607663006326834463813062256320253740525293242357431673380436041506678954059015770764447326676560916991346483781570556245750954314068505427000986155606514538163317547026734256971074404399154952449584171961931384548285779943447436208551007731617076887209889033914253084413524556173437964862570853125722756625000010966648017728167731348927329482140358772189464794000717535727610796791389874450367888293374735742360080272326158028299604331914609253977715953873508613380753745927691561253833039411180307070447462672444041331391624227585868876380544144622037071866364094645017606965455195875953081894800507551225200829431423421994816746759326471969350407834284780142795813427721536394254017471525745324349208670233175076661144242322193354095173318371119905009450550694990194094593200091687707243537280439179884832150769629991838078571715009351374276129007601711239312390452618723954963848909025751734401869011965576708662307613632868876595821434634469424374243404285894954165019319668865960850696739178198904015420915734337985727343114581011274800639725622939632483576052333555539625712262140747893131598104341272942575140240796071912633175028569625295123395772767349522227588122837762109142036629276969621921116953768803006115158194451143947080160390533931198830935140276702436398437471211787848253798620920057550891119424374415027381707746264091423008122786078754094764032039861155853269400928271005049903017430553074742302321700971014801865053402953116080062358933253555545786430366352076515284924290222639084301970859663105561285569804839210239615615989930577667232498226374112283441068337192289750321607592499843050270745875971287686929965631313812756369139212193670486430057218390553665911623871810489745423083042859408291421229114245790390632286176139869114404851259115703912921277225269548724845515999763348368653836366266845163605663200445818205825319081350498202788959034340026744859072699930120367141676035938205895641616792120917181037423609992587821992686502673410676684558831302339209369398219709455010875876578827641619378123648650111000178293996608607866231930955692737585641798529023524133319509163668391306607334899846859669958512621012906481774071546383547287720189966961631025796279593476919157865714473300395837537682095524615940577604829767292031491105193989671715639365045595122585594169774881538334060038052840942414717880030896647211930466378427822899775220884120624354842545427098095333631968325036281273842686945645472557983708376548107916163164289052496149032074543911906512068083363701338557160609933358104145966836862059406099204297352393633342549112348313375424914525525324438337366603808481771841671123180385522379284341124298170434583509974774501614602099400851761935319403477173999490342030936954766739420792687767490443140127042609146627055462335865980402783041053573383861779318056803998821241652290237057411821334584920832415264518452421543750833945858624221461392330499776093477708256653269020536851601292526539916570132771353754519183049555962443916238876352922852112924550749511708222235779997091517320584894081180997868701117097660682376262375063616342324293271868726307291076404105643476431899958712646600828007626156201165762715311414020646229350377972796558106678137792115077061850829666507508619931081382706763841332127983327048513158148035985270221427908409028397553778817805109220882778272992444611391394598188566392473780889839834736279039174510954303229115422823777237249958332310993705309112927314908636585875797043152048772319400334316187707534639798145633019056151801384028145716486562582959277121567269009560580056291352683222913296642252074742044514950169966246720468797576269378898092278436658561510727650553612555647695091093110840634409190088198059023183043078806892384809041079335186611073259206855623808955498905967411551834212745015597726870908059242887218574397851752676412857227359976401167370649074967565380107898621764386438367366573171294595951193542544934194621588661748723097940356819583807443995407442700387409128981731674403545755835052863743814726642950754699545250536601471081891766676733296565519402549318656973613760007590037747483129611826907615689030608073499557097983934810456396242795675215756973006851683984417630356026768300941563021424894229131448010090801473605341882152113887994892691360453146889854794622155626410527155266761577592294513316873937884504613735465813641257300683293609155269966637622612927208338748461469905266316976760783000303704741250728828070443007673717568525943585169940594315677776896367516661201050528740682086949049910143858651406830509328861606150833392734548421442960236846019695131830941054185812787989469746647649913992615878798854681379631109062340836260121121755782833331848640802362683461187525201973525770919095549532822502468700385546630862061708032595666292763425371521590396288152502497043352536196171929348474107406451792247218898313104803144760712343519077466490112075231095037506567922030127819664064764607389382186306994063390584794673164926943705331456235701700437379323546824006873119485321009593404113457145722905827333465416426855138865756562023440948477013412505203237922114459250636440677932476305110835974439057078488258670352725534449714780660188768387392344955375613911243489494079793330911559645223773347875101161187445475061080594970153144693519192172315415174670097517283388730238972616756587404340526718098975255050647075951142547141339597155036278542840177983580569823571897449624890575952704557307933702854942694853179100338073022001639195335613844138750801018374869566721349339915916550155053322990722432215239202988602775477069688730742865495369183313993456984124246524478487227793883779809746490325729099693348817543100978294252774314626121493822919402633786597256843463029601164891638888829653761223212055059551361187778417645984553412389611080969291831443733163669595806568553173637316417567105385941732715396866432053508495015283022846189882410802453603517821182834614491034536170859582235088761802226570662545985016266866486924159255536984537691334110130734239647491312435164244725700825651655778936535867248098796931870143238454970165473839110282082407312257760177356958074098782777560465373860878693930844899587780330108261646649512941443526901472871546612340327369204126625019719307734868992030547943775514441295396085586603567398122894020183159298610698005358196625079105363892326208118941399852560846819552541253734332369783136231086861917493552910057150865502199771581436708227783809550527751455755109900635553046760440239682063131574332840998720988302896222515347887836944876925197073694307711490605352839461164339814694130868452726266620820035222179215681874369306637303935676285893061489670351356559480944890473998567626384104656501613009764105562256308289349828345259544077231616670199936084113196777362763869327681519302454188845005941201500541827245267374091078645047499602417688535361463518351204056436489804071400818054510744353090545937152235159212157972036718461821403464412066182411838661552630883429196407212923960703170558558197247226424259377909319838717977035655769115012397368599432307913884218592469158149366754552764419267098176346148317309890408865961600687953719854031749680469142586910769316880700319648431994364412242868979284852284304213162513335096231569668684407714827422640265876404224209880212760876890828636209756211143235400980124425142582320640861412367892079754437306968085326201089348900496270246970639864939244989847188913082953079444811965852355002540234400397695501177372831637460933558655560387092377480260021600873258890925611020504303964946583791102555233487319338970399076839640758791856903079086000867798417575054703946842997695104524253303640204743518648265577516771650778462429221123903445324416965632587234728689805609773587185051042187288086178116517751172656698139941449006948626799670897825793339763630652633673407938737942288666371474957634224602015966177110946560201094326129447536474599621907534550030539230774316256989087062429466099586214834315431361004622446842579253030914672503077993475055098531938767571466468435764640757763118540355279197930318760566656813189301673538574842311062274871933867314865649883341684089864954168875182122696596484868837962713902639166538330098070427445984328175568253763449822711735216508129221092183533221227229022060119587198189484044312579034495437768408226229376723351933971674028047043451053118497426898632272294927057638803370731359393025558556208271653203562659978149021483444518251703281926717211027974941436836609168386852021446868276909319990267792588066183716241615353934980804758745116698201252301824038499329952238335578832809558620327470220567289890669734892396647796291956986884328838100002849668825953686382819400771879376601692256746291938406725340821426044272248913145743609956057440725044083866481286122749093746386035115864585837055407269992487165503918357315757985215810648070690761456834671492213420565293159380971672312516195968316582347587325936233043450946249173625552077717090270449258096740292939788886786150233727362359418998697656051200580240048666246780354272596071324917490045287107157527796941219577026297161744216867496079296820991299008251701352441674973594173677755691108578514341163679004062921640412308682625696219927712859526135901835027577175028280225649103026982000261148700696209551985482921888104164331715497682585724162832886182149169192790143881333206941829136460108603732172833596930495052115972167009008220737656410584018078789176046471892091109520348905300878866174383163960060593518084602942386696443901309000942924790112728896737930283128436806193652219843078370078624070278903074455020504965385131492644749551998434418898158012258077402850627773921945757085081845114981741276859757732269008859599773116134954896141095230749928763184638512039121695967019566914596762037372742109632042638650393099972729732822036335463686452095173067979329264729354422915392399114987397879443171851472826112168774207212499941116547431212053584305678645998053937598300904293807924946078681946504318698988364561451367475855800825805120243992582792704963845606336252682178038073759281944605325284382431408961086281251209232774972068960249906066386678778950540791832832007790060399917868659360432311934577947945929925987978298941610528644089077714109235107055688758899450371415476700975791488809729326215896567983473154178217307606821195174684189400318131434367271823803865958252409648728727012132520186816975368206920627558257944951967891083079129324071663632655068987551812003656731962294263284876207965055380616042573747296153727512032158963907201225399359512676914802901528318694619758737531722308801170124680688814083113229563034882317761273372523780317282790833289283456024646128387396089789570536277858431106448232426007712022301943445910320650327738009405032913378586668926201162891919365690285406484965080095693977349999986327219843384092011292604126184576786492925691345366858383327067440613948322060684085939084642815086989008512096155918260996709329728181329892525755583213060308788829712801562199101848827292845784109131710700116959225869501412633434712070328949251073340249806794876410376273106070757753730728422771476578632728682096754440819671314044786934681358780236105117614218425924179270874119135520051759818081166574788513070599299672303844151727587274712618913446652497325492563571993730783035244329083259318914967710301470022333606597848260116292049506994327888958343702785914002008509973098189209361385037698716810943895646386020731057208766102052152604590296364535960242416420792815712635968127063912256798363029751508941171505880044776979145039789337727573717723251006785100757338339151668535111520450528113172597217260325107454844261443237284321628837453276017827194854625423536873805144112421896825051121219815895176100927653650935884456219548347194299359282043716537919700320689014441903255724310521020078981524295297498492266513152078765437285933165186978619859414883777299234214549669109862378037772294254193335667657903813723041571674369427831484948589915622605000190136371713658936350967132163376110298974803374635670429172642642159538176149425063743839320922151072670250588275348217484070135464993231667507143087422032758046028527494879565243907241413790135412734772646967628309732122584491111690346195627958074322347182747251864759900141063877568936744660672811849461676049187728895832412602841768709192251775093710176354884276183763463823179896255022259913870378574156530821799314901984581380662698297675837704327218064833228535437793745723706910360412228209429790412477743663146550876523060407775428940629897873633889798821391225711965840582485581578743620463618761346060281994441949237369062285352648320868561016648567387274549700125290516488150875258894638636302347194517232536097832228916420359202699271921679869548357651031237576730518748203913954837031776158997935232635943368728021162210413665297315309536355714558034262859882921091930870764807665018181885246595321046719102062324804985570675644389888645214769731932783182601581607985277053163633267654679491745980073680333047009810058619821899815721687057218804021259680777636702363285713931166370698516438897080196804211855848202278201011383792525602626967497376798357462968553632510876741658857068182558195879219501296645794650393351170768560912632537895002977516823905071198057515165894567914536065097170563050681641781086830235520248794928200475468300017324400758630011508773231875086040396279291886569826863157851825295145202360922291149961467807672203660798917306076290373294251866394468659993540339943199350696864748514940331647505185793660348933958151611344138569947487790894832172681473514875020594131285834583104889953208247651386014596037961878681009038759016179435305719654190543885661199273127466990788719304446228374796985268417091967496725673885846583278232439347077348012446948322580837080086385270864082467116924585136672367288417189102617592074065863327357738784104736614414490296280489159060230024098051980600498191714728938811990657563734413817154956934072267411451371812403790376899262814918814269638936311218837725483793305041990098258603123098655689629072507902880951786249874700637248830094951124324430554768933367175384035142723753187812962465126846732668792933801350785875936457203282203296208130177704666678646531192964556126859329560927443584938847359053784194977047332229051995437280341858710755153624868179392997454712806614607204762815220387330702141217528015805996792575129615655252094392040152974171450958133748087414784762335552792680259116581961854541081417828551748434779877182531900682827331668925022320509171376294626627879856367372583459036959885590618101879629447035010885027117657184319068352545778280471401424178107518844183121853586121850152151430769606482464514119292755413282940913846229445173515366278710146716642478672430569367624429908868219262109899947622063258869186030956213167755772322545869894494628990670878232647152532239780620981670601666867155148194068881968986263984073971682737141555446717238107431289835995165015618450586345133584983125932680640789248097337848901719189254839410327940432773080524597090910468617081562421392591076508035091973846794738871988411042452017007490547220411244025618440900963032501586258679782083168106408686725748578731279564226617004925362254478045653993421763804385976510685970766842219134764458834959423159041817057699258426550426442601075022969964643842092155667242090885481743048326931451651546760627793102526476956405202304586712241459439060078453956503536605106450934841400024864449114503736195589636852534791905894444891901278932679435112176934708278304880005672258139258398855198312514132185064691720434516823649264194407262663708718956103505902244042645795977813010133526626035411539941631920964590953842271449767823344857993207366386374617835550733892591725554430121570822204821876225606749533938617680709562357623126212248795033440228613588130754511758421915379857927760805781558118367092899765574395299622361351665733473475499508143340771029226345229448259749627365011352218897023482109156215344573019692790963235805861001549678932626240763627263767502088627128911104455881309845740832184607404855301710869654463132562655789838416084980401767134108340059865360769806861942920068275803806610603893822683663597037328317238072287981736300147129838763964197046164390239125597168992584300384814249645195011352994488199654896477583853130193487870579224959602718760526419527643389236168083443067744424146236417573280629803332105658803075798583292081562288384821769461438793207553512812979253598255560536145266159453683238520598029179502088885316954775912516134412145153487097173545029793600226691555220607814765666721513259077100379621705511230194598155227989482877735678275483620777074258341179612967459578115078734279060071574175880009175389261502523378263206258733816347144400345977897338128499424151208466417733219608222905941976040236576652370607990369523831914943819629396929041168782179340916609682946894398036870996983625169958206042525476918224518647874325204007934949975970546140186589320546740998679717035146521015448738562132155220834555784972252008898777288224117606756274731095189101419508717113354674529553596457251910563570962946976652017418406537494424603762980006538415720670118030107228941131023408497683828492389063165851017532176113994542788248822849856989892847198066422007774883924162940341578106518473096928422274413696977418082019442614074874533535701408719197253809540409592046839777847706168098489101063571489616238470624074796139982784526321796768056843555010739030559519525028701001402545132212524805872947482932959445566385358936626490683721355645652560991457560299695462342260754577381184571139079363620754159186111611026553185778486162325216670448914405411066796344669744624449495087097244653699373860983804674546706636800760011405733716423203002749660811362878474875975527645480758941863251462395654897985721334510308431873477637150866579503840930873163936364894835552470050060393774706750828647811698748129452534165758009787034265612879499204677380673081701185680251423862551599760172188120582124402573851344291267270679847247069632349084795893979373506278874397500650134125744659300079287572090944145452882837180654793243839656269937652602426355273239584140627605437208694484157070877878065207373424072118714019229554858082718139314621597117521634586130039408895260291039637610563595359786851186876875176223322126228380516485275069469774402532686309643981044962961663902997122902806818426046532469505503934954348634123950630605979451493740651701674971652612177308271829048501135927382813333855184543962090176630852189562614285022128023601412155156129132877662127391680897705391532989598525230492627898251762228896967163658388139529394134076920263105337502193217283121489926799717185482314278505652075517166944874775063376873847104914853411821141585011812266505347996898020906341447794839602941170633061559709042631356846914567165599370087559862177695517394947945004290171578810671663013763091729779411163111175846543486226202110612232968918357922919512858362282723986699519654186788549887899313241490229989345663040936981765539162044513387170513228176834959443449842352560976926112963320223093310681045806743292736652809477431339585128031844378694646629558621108946795973214483360779952693703323634506821621673051887015294569630947037237090904831588486711614067469047383809784279412065837496352066289663710752540648503276432268638600733524465432067355414259204105719200110245474765303261671341237568006662493037200202916471158971002058037304021020465682809795758839101250523039760685530973822929771221037124005662525596947679344737386180454925267269553907322552707807951638730904360321793068620072915849959312657830101076008148123392806993393565035245588748130821380637193642615568816111057357397199134426636039773821542997957753650377279626161970029073514794970356391605072832220397630866960374621218256558746627164759205514606667823124354194114610411578408735430464451553203682619326366987936762301342621389794910763424834974055543978911423134250162095023940817511598427907614282020260255947024896259336627620375658716587504934932477587351236786740658737092007642369660438557112725991281953423031517406085929459474189754011535332642455172922277702808356935160276850524657454183673828031166113227901370960593717033748894976953126125097461782345889126889613175325415604002665642272145571672318026493621031694667540133630262223424065785098276138364703639665115592114183770637136757968968259448359623513323751262265574286227751033762762913751160045789626165388718553892130333948291253873568194513241515545851254824705719096089572694585710618697873795183605190210900685766620376755324322147323910492957738185138085296054535996153741411837045213470683303153939071101093964131241840575419886882977454534962087203419868222657600892229273876118189093172891829870462874293578589188300074412047724610628614400355673760386083131276905563900764677265753467980541875401897515673967629455200567191286580522329562033196033500456289247057291407758797922430991751275268301916546801110577124312063934278648543669200612724495941779622322983545965921332206338168874650008784321041625022145965571466191501862585768450456769662204034148998892645659740855510269318004519167090942003029353650986788118673630866231816270358726564436626746436501143792925184763712208472938733613846574174839797258356840771827308396714202283027666701280333442084857429323890498068016206039690095050094774412759594008707819426800215260470869529441224430788522462640131973350907992515644550126025621987553522844076185124568983574051439514507931010276580702463656303572155710257036447241195978802571270746218632215232420339079185147748989301050382362092999721628374908363537685597916907835032591007169038906664901046450025248076525829524189134137811317176130329834159055368230633824959139646848829952951008658950278520405037253977079712950533807086059857841066110408708284288287134980249995305842699011256701845109811643645467986253195184497352983449104382970976486613515733700956075564551146449532449285780915478763007125930519288588093753523362548995452874563863431596056995121301016204141074014159045727818299044595678588396096664142604938076558912359289000403181581828986943168536118968283675839208658629218682042995727139620832751657517922570725388370546386806940439833484370776940311883583050376298792034069023599473821301421709233799660982796146057488014585657714004903641482960794511834592871563072460707024187007092427799860298317494302049886536794086647987958460366223918580972203724581011115828140160891095161853148160461538913589962760046319661056675805890795018242561933972298195813758684696197208704045774327584368025279220013744927941922977948166265517174803627146536730117485962675818320758533686238690423935174485383930723641659016827902648949032081187774897238468231609218679336047877492937543098933360700501583883527794741038919539190152362278412413699620709876172299570073328582420661702255001539037290344575618236457400277080618964091166132266047109469566081524601858801904599130231721426295409242543619920186726134118272202000353746599299927730616990493681178597266920771125617394282648342014842941753780341519755613563897498883689822542026189007281180769456424093806219605841210726282034756308798736874168798828545909995581471885508694418173902660242088675916493394537038065028145674167190028427375123628677262258896246913698522803181817335562679174347981617042494871206691177299142882396784067147711146946170007703818712635905939990570126620373393534101360791544789200220929612860739565006585480347694449762734717554658390220184875173673784171156689926054099224237662903333778479375013697616096610393512516969613849308467553131229075748956005658665562388698440203314010049355207618535287914094764816124444429621132133530786010484902662702293020182649247685662594468387354580198249303069535868456079108872320468926515442319584782088001332065873999819587872315337391428726649485101206565109166334108992015722687772100860147065802191854186039287863779941529925097637083853991993073804732067145437955407379539106953367637358777169170486322962991575752488425524563153655438632018547180070732506655121413952646342943931238857630158996673916651479794624434889575358252416573022957323875481179673952323983002844056177570680330865724906756804921873039556565122395841829194486718499252998667406035952793512513423842926327460019413539482352740763478180922036491298542253449536418135536952258635937034433041866311741840221855699927073334034650430278990019682544018915430048332575807904940668826138955457269244934000245237262423299176686005820647277913112739646918248091748185156298484291967603697643248773707736645550835925474440704269738653775368549565506154245647933619150811817341481670024094440378636484618598293082253939421031727597357335210132676184160985144726753810212500183039693032522727830945044695900474537141781631463004545227823042155129848602334012343918473622277708248969941020011823793350888298458737029506903285269695258456907676712603587100260677228760550398168472597182317082419528691197011119890664308079158802221805820958080137936832961576561928941876824166717820440412951736793020268048146389681784737093583153444665947972704812668559830260377900162103914629964063587875642383534221859829431966963920718231516177638644458813766839210323760316648423086136748145714678417084231108850131978085573809946544234865805512651544494079568925755111721371409032544467899399977723380776473275444154815458025305277046552066323671035581990420636671532075141363624496821935175437224452404465627124394445440291242288660424999751428553669529811722369738461118550465082626260860128945929558647983450312723041678984019546455198081217038609328025294741856571574961147267715275948744692810442272759801559895595048619812208997326335418618490505554737682687303587244364693566635950494989796643998979259004581080096344278467585207173434400027932171178443110355276789990836265058861465272508168335700723715074304481413499444407633992610191524529381424793872847053344037862633079874724284897894940132408650084045283572779811099041243943370515724364333433716381721657695875439108771421199527352266092001648759886131031078951078061321334737394780738879014533172616731189113895659462313681243103091859305556040570685177406463022242941160562765732633887364374317639144750844454697579279089112785369425387601005167430100943463715829948901012960422293201026334903028122785220579868308773181615852752809197251217792731113358525050210086251422460928578321383788494789720004037061669018639344094741446081604724374142588231469248726419867291572526346147834385355159271729758151970522510379328865512755570760495415549662257606608351349239008896972952979547544314609252138919347361649278197885002458508127304930269206847789366551259050929928820651237457080274496079563654782812118289013331141073754697831404076630015915062710864748954205111289979712495982770711352037020156020065703376049778708976685957328041790303167103780763401347878485040450605717255744173202678262814037966657293295182666914456814079965199106271937220867647441861553443672480523765956674292268685275696444165035111800272019496862222703658192093659695226950242086919564230908323194989918863016089063278905012651585925264617320783419862553767563710936392657656998106352957503982790289076364244806875597365144882085026414182437786180901422258309888738770453238456030218819406271515085990687475391331108779329329285677235846802028959719183343509580319658885965622480562056001217360352731291525025547647137994395561849381210373731103405016551171373665080489488514301583205334541901851399793772461218876895543088761513943707092455130733789820891678238446860636927940316891228745045302312203838087986716686700137222717845206179256548508170465402882051896350032607311426163650772614320892044489730682182863299283380938537444441797379901121594612314248958996947115910125121366930966847848267834019094916092711489297475794180724846131764655831671622996722755909222791632728191883358118826370279141766492642014418662460554835296993277702465273123385933292792383051114924822025272734916515552792879292385099353864112902185119229962497889046913069124826643643642032240213221554525428252793546233003549729330435489799765448643253932303717447593024286275172139824406503423554139090764282885206509790935093632860058680337186601348704852034708705072456786354578692490701475063784418311241199026827679586321553090048280381149380901040966793347967621915962180400527987914633329938275781441872196899277166498908656907726590024783347540539245428271641190236201173719471353472147058326595355177609389092807146494642565852278606959388753381074570815206594937761339308716380758710951834359451215689918235652124670177083442321207366096703366335883443014063402408582269686362046394981261719655560903691115169648682094116708677503735589358691140325994611387315355061944318476438914770612168523156502666472116189581502642693471187544249954427125411685609385985931858890702971933971981193308197890688520068639406557347741993407215704033180682976308397505527407299342291399112400374461832984053199283257867053379189818453528021869515841535276596570492256362859218167939042944641940810975454337351201633623034804074252814009880126588684597422678520005868463252752736570150025340587288415609050352639825441664588241279460642924123011687982529593079658101424537722248639651321388626393853796416166829868659006350789337888940741003234280687076455846382799994950162948029536515939637840538194771889576618445978293149807438210463471221511975417935679988117620686685549868976300597983900892443025322681586635745222129553918962116274921527056325559675309429207748145970482208312795105207696234574148222621441313075846442843514565253766194857627476103853486011243655777776349480764026068060177820027931939593072143225041892577805771304961641982048054120991249978180219841618749684378991624029004165299576558690207886220362752173609727472308506050541973702942670542283714134799367270396270421369241774672180221553759813876680695422617825360864104497132654685647642850869092055068835988642443336901038945668036606260713336360465391702276344281193956141753484587932534083897795276469958239945722434025656779045192872590211123240497611561098893394569978006951765800804046225879823743199665466487314449409865605288346459219458659571986327527487265697201584575930629409648367443744336732865045937455530542207581938451576282526392093339618886019245157821577079898424978422238643423691284789319606353639389294085369304492189490053172819620826325507867582632383553654964306602728321036037088186558165077790691552128368510066916216970728496273491791643908860647635514440534932209355958904982741761617794032170424370809309568906246672911534024388536537372134104147374889750221466848380030958206620799782420594969714640130242864171983869143047049529910053012709221754464017711935015275119777829355693825054968137009072729471784216099764151968930712369565884454806124224215155770064324786867894749287265560142201982413537984956082044502135401389909883738537698780776902183069042678649125422861162041320120314181510701338768882501062248687211673021083427943547461874583779339787449529779032973468531213513177671938253410825747048701483830841139749357270821549320029879342541970979711572547971424644430764555154238865176807841284836533299146168000112212094133619472903790437698983706172644204965804823662392376857778645305920555542131304974193026466907800166151433830020760021115183858508046936286881839104884122366398026360258009075955330659969941230207533850496982845262947180009178426480856382136083528496605570808407758196523920798150553037893960696867816151208393073095344826116092067097571541940779658505712647080549086712229594485833590798771881630449815109352773481039760007491603662840621155003991735323835967718283509938464741750386239412145138335203959036129984468359620570615982229741256250327031842004822042206081285594128991027170244920371732468453373408690771722831196056223979622704421720889549903293925748584840039807370760421403727921540749326087337044418311064240546573202359497324195384676161202912558035842794103619011000660192153604532160762466394108119510510056592307178826162071467080414248730596486448485101657765730471663457445544455122384592792305456049218184138543812926306449336688891992460336896282917052494268206013689996014233687701542170388770113915068762363588988357392052664571629757027355679401328626370972963462655768521699570154536454482377171927513428453737330035837118855379540331193741677744980884812309920933499456655983198602835311651261239680394801162404128942698832813000227438662576603048751261281646576832310627739318260161413796879392322769072811294335164254986696623592777561370439987469307240520468885085796997334124053885237058353697612878606822355986392460955294573376652818051306299805691952890929460690085389557219511299191700873659100969904777041674723148816359151563595198595422449224440959084831003322203377491433065010663283408793483383820613387404437780277035329365551573030294322307530048737702207419442754564466553921750123005059690438513961874894405016053637020132936458419376484672588166658838480904369287027540975610222759739000115061949401095247062795383954893445573095669843022945169943808840876337301771199763338348032423403337381439276314241831612978739324479849834961031400273963941862262349213940068870133003885736989763968385672241157247520720344774472437097647429712752607066551157791947713866740836354746764938778880004946159569760878977966383663973876933492291303516077349501552688791734663836082294672477381699119927737002306307929162650734995770039210950510015242416193299836216413513805449445043868829668525982179455510052891707066310072132532065196751720344212932257588230048329846942677455835723593561421585888516608925426363649113341247283540115034732114503596190173666514230226246983322149653572785360292776060204384840090061045239098748616054088003445819451190049359228770835371002379657786526521570839785746481940071679396770001748166399929335346319369415216875982076378557546451231188596081496558310710214621438479372670773855727478413073070212046098160743790103771793462088746127068603850583844254530608863946713991377515502114986586612774721055785953399098704074413015643050404717906286954145900101624494385241822181993091907038265233996087746717883360358676901294088294682704246578488040447198360853571249340717187554701494042540622719887049223205595538952015083609296007088668412282743172789680598101730329344087266761340391920547421414180540786756654417838918990357516543650511277992557196494951767488720488458628100775003622433958785773539610321388041933678212544851689685629804501012100966586890883127299713754356390198633347514795935081665281338697345992646533230281996868106425024643396783140005507924319909387482777657033162746987168747818661867835955849371195766582978022368357911616080207543269830055557189391262608149811678276907088442392843004023606603370774165936802140734740813449318908670878754131421922819008318700541957297119765034168054618662977184007559633689562143772836427341384988894608357478526724898844594007450124542681133151352197848666264043953177393280038907318849943515922571068080113017365542363922548503531322033623673710174654346505907732139717433902079842295593723999008390973313003108290643389698478927713114238259641452215319580229864917650026956925706756981875211541045430028175465956067343624415606418407202796708982426681804586945771593026445302747020881341199225998428948266836721851259100852584123266325819440802845280852818815102038331150206515518375566775885023620584939996331518355806878320380381474921218210278702953141318311561309235626793723106107084177079623966726639461031960095599515434789915221511464116930041419912302592372902105842428817608717241698192101004252642657104938022048386351512566313930723626404685333576883895377680453497557838619795252002787593310476865155179528111854100056823141730918500401370406365458479031432804051602202920822573504597862786415028843839868811946066904931081590819038544738628377344317062717075298875789171508935923141253349664813838810725174608047728038806031969455271366519333536569528382634137616270164646435075922247533144141349984823693806100784535864655209620392991760079980973748364552191638084789627378280201627518494517118333889846631986046222521373447734407941116312598313456859424427402860052679109677636203294010636130240633366151822173856470845972935889936220437091769122924783270465007901699048019617187780450222455906668289202551059589340058510449600463618101004480430534009208226697632010194566086763930096818791535962455941144094434434951506630175487114173252373175216523188310564310309503886222892578465688461368765880094618940182580979211490926193540340731368111112438404136412493524991930710801381938743808963649720901503195143930070979701040720854470269502158901646474296304786310868770818791040385072646046931509935151471710987535873853818859846519803654680936083371518788340900537937260546233128112141812345736027180434504893256949448289657826979199273334676745389685367070977716982264732569645391543988183174456728882493673040692640129197196230005490601048998463762886085356782163417100492444105297669742720063754051103246268758564335651740605224943403726475346570703780424322186950254327182718459286880967684008373806526978021898951590478961160330433320173551800929467069748656642485813462744786628116734134707681849932849178070882587533788026065652533132161347773665200560849314476216075665409683071374154103895708054207476740293172488232092776169363426273178322811987755745747953896335606348264864895167135277918462906530239589169221181001472185980179279123992378559748297328486014242174466640445227393807018376196596221416095346728740959454215919896428158783255330065122683849391034093047481630870707074195135364453366785237379116763770707925515250839226529595719383899706156604685948799540450412787006036827862151978628998001703436143712668217759649380972391497994567480813947670651073203842541236666328911354433170773318692866995942948392238853730901648474145595869369580143390874853205985805620659295098539778626520152330939940215540103305472861077140780139019513623115751142118667965560347108363271170783001510006296317642975767174689368331666335158550540397450266762653889110699206120141146382283473696630720225745959215609870587150477054719578839506669397913789506631407655768667538347398410764963937559265622343800750460548308731801644535153558017869566917245795520147243727305126193374068837630553734363117529594207431170647254247872369380321842060427200461682690270918005719184664895325214713163151870038011397250049052541364502900465491828875464595042130384864215288372283462279012062413251057264436462747431137781658335933185984875816876196849880831143130178340503225313735251575347398072514499518917244194536569029615057901997852165557263401560146924074664969627205787955946401965885916203169922345069253198362002691272153263663419267339699473089731432371396279605533087692442156117696917843097561289255348925084158146049553278795523455773721067114353969745278904038556731226575688916805714971311746625565053636734149978571740798407735749171589740048864309852938329620979117726438612194720466279002216273805996834685380572411994116111479066585113766874635904460570998100955035561882488307313342973435128971142517329416046012761827433522729171890568224538083988433975743149972401901854684951805930166421998172996435860127136066593005537314391796740556385000650931393906069142279069255903413394889784372534896322609289883005002975438774515336184517984613174854839748932056119245024696659896416171945611856816085838058239809811648837863548515238693719193459705745295131444401052651135565640106721006677156338502287737558742900142737929326178518992323732682245112687682626830331674047377508060943843435726226850068231865760742214940964698110575272530842602706259094081287883476633516052816277382415865207616487314527014058272309709729252723071554480313205176274906557521157398034299426882186713784367438527759913286596680516918001433854987555333582592572015383040855339832539575656171714667304787814867891762087712906630984913311926606247445855156931912870958525515138706835450054863231295534811714484485623913410792152650423319948155698963086795318308097027884262596633912431608329926348745156479877754913443737355777646515732884706599085146177612834616280212660478642549023638772093464289575151634063184343242819354792438722121925454904324276532048987733961611696128832535725748875406530169072634961179690689303091290932294220628569938479100440266480119383379551347751885504008011980173264785338428162419363363961757057296634737674802577214731413768355392548873324141216548517131679574367153583015676096823637656696830206366479930595740324416103876251465305901275611181806013593663938834403550925454650466454228965597701519422484100869382411754087482243015257544474880456787463318591504481607885173985898805019361601291483271170168333922188362608240364550202305463132969138574763137059099208748602567454782041741448781046195305753708152387787836649827260075050143498078094122406797585801435257469563563390969385952568513128338933378677827958667812752588446000378842143634083145529291446826142573370866918115162923644435490601046902776162901274389511801161238383731675787674768516173389451974536145907366100571268940420040078199567285564170985521070606308642724037492433884110376150403393154349603893306184855629248286449961704643109222572345221810273472623542886446310933922172825210068440380998323057461199163962904879252169447668213487973515384524362527118233771039583835618911626175036524659378595360037114673942237462790302869176784309028936426963044883866532684348926287878001520145563151904606409074611095107194358555422584969509909511089468044335246964656669017547708636188088945470019396562363977912177044247643507430920502139143404419948352125530633793269355356157586140559168834526877946927154942487032576005781223873030630714549377370913857059420168788772576428782699557253572549045984987329468844102497788803433723459285117483051963057728007139979428207964478816479280173065210684974028079630649634859380001148620716905495209354198157743962890198685865994478642819542170940776982713327647071372593386806031185113717357649720478978602651171602296249395574106293077968527330627384863056603692444937872133460796167665072667263695007164611351068917352804501314335211129691746731193105988752280416968045021005747892378110563032734466663751010176543209010227154637068316040882099380648228809177328450893646798743024555040486179884665284649859030176857883006713804407096985556973475757595136831154563693097071678278916805439007963732759217292973887532934876866204788557453652298819070280097981613322661232681494843392032492059134032834775460833204659260588622069548154401023773128889063255380099809775580935653150490883337224606438727630194488306000136676855283722702585629805096572348623692960918860329667821224255478282576177506338315696670253234882022561483003619104527549984065298038800860486838924173118778377361771668475887375127337206852782334350712921882043684987472016146181004795070084589592599677553791277613644856612590574485854178066357372545697957494904125751601562369071043052411085427644993756438706792072282412265767870261893469102855949536989140060456851839134805476279345314066893828218929169209918078250369691143674457878095852494984562256561183244229081336979301082191808295742873839916507467976515719982283204591727826732478101610685660545618025090118394734062258249532965234878617519267988923698115956075100997955720689925233699513960752885478225666462491963960927346917132665554407744793161185139133414287314072409658030015328969701648415672143385940504161962569583049774731863351848823280649340183715770887421705826963415248397911961341087858494619735993334963736354793389897899440150828468522024148758401656289535783533407277457831397905851602906805663300105680954325209013409545733598472115339579197459056066269925477628983147848981445298947695178643770432164344174224911736340036018450168204208522502579286538453874078518462352328916197587582444082163739941256583926576990423005612957403509015268773002935646969604430615629146446240944744868949522649419026826556614469294051753210543225269492753546692616463142952825809009263093647873620282483676659404394225321037566853311723298235870287705023375264729012594190957357351360499655755656538094292826997596896434620664915243604183106065484477163500949241315119904260377958481602953671299068710227227793521386704099043826062866131633170631521172806645584449570346223425032681678150433581183648870750169430026819886692516153940494505039499847919657487307925819161192008563789146811456028050060648362913449142869710023611805012683257072880965647510815452338328897517645252048936888842905084975091300569755140255552073666817519942959509611711573956096622128729920569962426932797547112035211026513543826553066976277495999140887507262998416148372434807543124956455863822726118411648267703970977023969412679103491118956815754542567834215684108118834693420446179179405685032503275073516115230460538103655330097920774604672277145900583140464435360537427046420182479536285345485993026435257735492555420944974750980364993680751176334301796399419164271929759478358218198867992340815709414727668160336966727898261045201777184755540209096448150578215757500829586694687909227246080999616981043942813687138040247480446098207975191153687425497197768884642235342403083170191991312661312113982391157403986588106924055288043459665256402260849931145196897701900969645114102598001677695363052519038452395748534876855113909236943239089526306145909336455062386856075770443231265463521883866327333983833456937976787531287897129449589677474627732766761094406870090713110042097414566845565304444079617350806096645093141555664930710239005479536154397119141753644926030140568549208420365717209749127578645220166922034113592764100987800819599871148990871095278823101145415467928836246353399143474794821273731954748178750886742160719626205230163901714072495498614026563581486714189853575993736222766614403299959580292142955846235975471848907326372552044665990465942208298127798498929626914851047459598649168774764268488742067600795714458678202401142567192993381892585909084624618857063911720579471311509589257633542341175090949205830293262582154520646056430665707034051288280019370344970092387566986631467553900668291945928178155228424446435741276873637968145182956965629658190027086855813436348110359286733974867029279998917468530925360268560772058137862125737356637471493218322176723764741903725375838696789445508918925781668184446540501879901398597664044729256450124841256451622411619277756498938247963224455591297099580560457860038310875628019766421747939813446976359066584789583330734839951148691227817447324411830963685060688939948733357641904783194444078361813702451786618406261341002046653321920221044411766181494495116541962346875120137309367883046087195417512631200828393836559722650198291529505614875590781790129282553019137040249430092975025575761352666614713801902007109429582119887990274498049564878929488584419103077990266386385471070554225304691476323293755450317468664301594775350949813703863466755164245447970224074608821880504914001852053542272443826881851264068038234514371479051862019587093481910073705323803586813994702947314789985788960525294078503635584957785567021524182786294944125711730967854605425533833205407111155230881868898673922233415746101442843769964052509795366005829183904574375687671652310048032217382689649643625069927100499025718068131588343086378694312600024610770228883614562092094258910646012293977845624532293404610208173227501169998217831296510818872610378365700424519908975848478083073155251147393342918381115621234391728044684902806315804578538300210385485130556048157242737122395806690948465639293141713229707118923751700370477538650903013640614464201802501544141886931951274880178549540595027745370949850810074350089211942648836011491507532430344880272389455984189909371998551474072323093909848614574785059758024690531218002122311685216447971825171613541440370989402454867457547697572143129215205010032246241560690818084990850996656261642128251409940424024464929017032515898133948768761089842286917801793736733975452194633038836864292614635334953979075573906202891293475796730007935155371021814686129048526522038990379199012691640154736109033459688949332489275685114974128343526588195663039184891635940852729207445104921772070124244483866556416620542304057178712373996598461456008188191712256953862303332609945331734298105500851815640382994489547853510714669985841652457896809114412547297105319095244728818861324948624308895591723848953322609694286811061205115106174961760174112899262303051719629694864733543758836323633606579306856195941407427947476357623322133309921733411720841458943680022875998470410190472291879880047364746392615429965358914951198598901455442417099297500681712648740748619386080031443958428367447657334918226162007170000579995330268768198539506511318555208946795822472359597809016919772371416416630439018044595233382913389263844649312873166727888943120181654729089191681014825412073576991926489439034155166458858348089272758096279033991567575130249472565779837663302656515092812775536972086040688199297749557372492096493416226661000584106027449576985202057185946999831931410667673299768068810132433877917334756183722731318254246963735798776197617604199236506539322621879155621273571801619198940284644123575658700663860536004118589188229995310484883887514710343248191055431710999013137472153503219163583670473831200404462304902442647245999554964823818320038358194958427485362897597245847428799698359334167832159118507616955378524402050029682468665621957246762341617603012836580084338998225992298755531707540424775240397711059574603608171725301964632003024898808595116998388955317315230835128054824832043824924471545693259077110413322807927449261005531374579754039571418758440762267159294155936521951440637157799666290951602023383218781438086190320691187939003154333377692143761728568928506685396679573200082600955428693112106113085879335435876030129494763754534284372101962905702168738284374359271543568537379033405885015557611405811057272389366551493871833222956335368526190304747136852662582045140953081846800702072562396700068322148795395140596192469378501860406466182179790025108818567475407103902032189722940916685331973122542870983617657940815502820532908170453238676234320720091809066512620266321000530196118117432084245659549558673759320233166120293421579264459324307581259543526289814567520143634256467796185882396476731417418039804721902481963202753639729635572231286451719154505704537350957576781194629487177985582420315697570148748534553787289564706677863614058136866049330821445224546646698919239690289001849132180636740867742093711959947523494087679818185996148873748656519648190953870948872659340449684769871104223125122143160820117150951278684512273176956960361561091699544622748993558504607713669389587639664167618674943195012274140444949955094816714728571287656254905234857247467092503603638553323403776623793067024130603091472681459429683461719731836327185145683040471223167795409443037116286063291493563286901012922386344667002340539331541087551275023201488076210669704263912227929164002912222335770646236512158116865243756826222184599701715388428285768868744795648792855726599483738251938111320310018364458828518876857224276910213766867897679400834690915379497587088643928963083665988094973087980246581311586814445703905260040066057665210490435181745070210408329887985684216086348000393160734744853775307256497910562422141843801468178221640191917178977263173916578221701215622300858966693360022294543811486322703493353771351113044917937295258969783464236913129808493305139485512223787042645717635140238861637591626400997494014066684440506885322429091699389951984022029305587015089677900539746522693879047310288687227327707819487515222924808185847329663951092209650255650408301666806948346788912059803636128839152845867144282644726030756932514450878506900240051265469587006666354010968602649049177045303051637304234701346044825761997240060289365109474105933969596794615590328213867053308809581786201170310243268739865259840555122129434675475948304678393728439401092935078493532162316057012008915259615018318178725689244713702227748227442939397431166985435531653058870274168044816625147388868208833721901392668834114348344871701748241598166082135477806282872657047635650716851534098960546230173641342388546614492212995696573524669998938138944620070856457250744077431818347495499183422677712272614288245633968768392632760430866522707903818554951355048797307454987958692670507216825031123801756932808672542780660334732506687910616001358673859159731889304942216676363917109005283246647556626949979848302600752906371642294449531338422941424866760687114707026341500503876513186038128877142538716405802323456150925428098601492896134317010216396218057605860339808073344045552076367455262249495079481707518211976320567230088549448637397739465144065759612489146310248981950117078951817030843322389777236462007301397700493903052423903489296150243573145996792255775740785316959757721700253913029154775008246967650655063789529167902840981580097971738111820540170474566669742232960071626125660215871762381402130426581513598443005853732609065112104807956841788649529183806610191259698059910347088511077789730634042618202741792466357155267056264410376158873639334233254623598500404821034319543253221817068202555737831778459771092309480397822318111348790252858212621796825716083982502441389764391469865188374912645299116668906024423476497338873106164983069952801845818377761363024832384616825939314509051676088384101542250989341941709670348200098441331045071736749925449022087269459849405413078973162088343141869900452005582260225756391714178792233786011341019842442722510170129832553882183011132004842252029802309512868326069381761609949075413779574558937011108701250013869551921694787903067939365398235457474974639718016681600137440765099598118956116406589651198857490451458085946550394170501519795100110095675156352882018751895714021317168649860653094138765720548552826226540172007361320984822284483021083828600045864738916402384370200048445996408792838042167401190496710268211965034773281839445584100050993498047164054547918383388086812217598776304694203996389928920594802514106394026056027772734869405354195280572574619674126671363364466611580805406164249020675960040277249715173978052594216466069971936596587700319196811326287998734979397550555890603637718837421658073662448536377037948656199628357155884198084350938952498628728520304337881647378725740180829606994209698207677750163518203265335109121006892665313731914163971712548938403051748098068231431472637447977848757098364341071811308584588088261902808823377305157357345970084514515388549868963549519514225215895031262799583166630010341505722687519056498586315670975147742689911115842594593297727353631489162996026715172808420641002421695333349756652768971933215769796863849766639727833063770803658977028203403607599600244797382242167709420915928642727709450169617154688813342233811217828052917085113477249405516591309819934836931099223394079387788773050610096570526948959001043734027620653515004353584690663229853543526030192188476032327915446023352396576914337198098052988873909036194792222647097936523657397743170534470780026234775227825657080907176457155386159254058580981260795042102854441035028265261581889411206622234524220726370436038925124261962813720746130978973332005357709812769836332202493971385173064178035616418153147522366674612628451768484998375182550513450982309147626989508548793602446625516592414924519845172701301452082079573826149349779069165100689730507252602416246931732039932549548999142466440619233738220400930040818080416814958541432126903195935190178203850323905129610417009969911857020789169442975442349246437471311234919894494576871923258103073391723025066240703845519259779895512427443642510288392008174490151633506141579243949445624416671827999542836750525592182182434729016482332809853103938658328347582304094729425105158688209696670498502696937713628590185975273991379908985770320703947748325815295918649840762498442721542663183701841935882346466753696821538359183093194642077899012307030880634182682656044098107245523300570081206279498349841473970325256481175073262325715995971307656754774253051583911130412022621768324841351850163422914222318396344101456808504664666806909798425267876909710271775546215225226631666630621886506248917664333246939712774329258278500316692979780116617624262253636088236494571517246615072425145323316231940000456237781332306355140731063143043444329094574337690233850232233953212659741825094868686483739721265328206607972718197226947662400419522836752611047133993182362549548469127338455576383595653059736334590505288555610966249826335791688504512222379485164832081421136937198505239071485060144846259312727641410627443343839329637772084648358090467366552850999956988226072345324745366661532957344127428076743412796632911152213875352116399360429237498390211667100305993615215266214100854586313715981700276630098933124750929967121230209593353389249033192959614485104656564696033123300844274960200250787122357093890193850209039744172343407742551996755168891433274467224480284255472863018260775686236156087402105297771024400611060471862331938305190637920223985801619389823249439733937921270476325783776834702349719490905226430007018795626469703893476563787009929191955301213775537643698792541683579053736803205085214162925206704524461562246564184477701317275435416480839583031113723843227624848408726571406409958741572703876399994610029015290055029331596297703706351727997476118321954598543396395530133277774629471968958438588769015538564963891700053136963338810271274777256652946970752293350054812761796585981516280193062461854896399633351523082749102674087272660560421502516309098232904785225532307734912255422386775525991221229000872171063455022147151672034758958858107366013154351539746182952487818716973964583085811240198312476754878785978326112994743644751802339617556353382691701815157943271497872014345400186566798529067373549453153351375254654929654866127654333037245840651935091071238797980061838971394605421326231817040531784656835764435601937132516692950588977871963382150314638423096184329107975046645902941297736672010885396592862374922793283977823632154463130815258812481519425138024373955508900681739349687078241014807265353117977448614578968514562493059803000810348446299926067930134468898116852299490106093365491608655610266160611594050698074171089491213505441337798366804076687485708950540589856013859972678848820768317478485315707883441484407999040041263926181639026570215603225713940208017317549532033868233242228848415571773210821637856567695366350961056806992428775905937395511182918800995642361837930386752317351382080605085920495526810796600482730078667897048409903965458036079556112517265807160227973701472514614820933925613775292916955471990331898984272929938375862904604724562355560247929257253927646602555452511848159098195059617358592605608024303817850159345838918948409545390418486104979661087909164971106333841303925416629412366196549730629374471639447924428291729571150285859664893251481615398343300625538862275553109761542299543150300431521832684377578676621917022728622028754508629622688760032210022686597868971583939214904054090122850370523200479449671212965926053619516647917934643250431304938181870679586850158753269834952268790402624359888962304341259441650068772622669077355247346563073575545498127298891487853146183831287946889181185085100937629707683544651482241645231637261552316957817273246234788639180024631566311817789561652222126233591217262415035559606023358773054862969965680308230142335280385886114192855123633994626372994148536277803808517839422868487542242841584752520476034440555143102101268641595754892836748188078083167178489920955281649456249188971487228421624440984389181560144954094275957234530719309619112262247671339008349058376234818832924720796108282966802369982737329891007443971269892839215043964320858317604095055596910363712967935588772823525585732479618189107140674665914054270232537532220378147033862432505152569928314326318964995770340802025270136396548716403500820208484901129967245971628978579633753416290900848796025062255732291925654521840821939625191096750583059684629439624081729777661037888639558571023304601053143377802138232298483714837463122945782637953743802299024604333063350170508078356540062081770798615666019911775410974040138382992298155965392168864952619918228733866613840752245134284966240849781881732306466504757754177425255016935059973805977791093521083556218204726687403575922172414773324117508106831043929517850627475207709762180899580961518809159575005414467096918510195098919999098790992638150066983515755781280105984699252166266087996717997891163073044212752336278671163030943992252224062476630209736325908164175788239787426486367080810018941608918237181706118943339310183237254424602659536235753103894840415006386757665430168024743703602035017282305215182559862769353746351486765036713857934313430818488999409859635528737068743518283598280103176473571647118718536951437647049345656350603530842572852651187095443492212935695272494793035489604453077843828674190409162239749092103624765207497252565652236239503125649651291840852314565720104395296343445249226980796752015559424228696814856531407729428372078928925984112237955768429867172922469180047078915951733612905384279905936800874280631107329665701889984870508483618323024800101496240654254149865689000171773908142166215946766586324510199464757662921941330619471772744442356232523367196255296340679342017975341484471238086847780492132484990682353958925491161186698836046450016903388053808430481497202727009242061284411719573412067614269018511266504050836426354089885794699407341710225011217526210640970570780966086905650446147150808054025839702848767211496631446916584621794318353241374172582483068197975083397156632034098018909764293848490323056394587038685038101092386307138778848281302283723925085257925500328382507782094597129268524266274066950925469023913361448037098088117926478058203723034807093755462477587547092535083913789126513639019415368816391149217381549829952876121125602097435261288774110716955148583075835034312421879189822044031482634211752613038768344293059107239792523860564645443362308075026415764090696361453296235915850623497910958409418789185684024770006218747178871938407223241076776367069398296485655665065242039049384256880324105323500851488768189066188125495106973424209953825178813111191047820665087598137043609309518996665475214345907247507327071468113906220596615309471266242866337241986115159904086973012025243315809449130852618954615388143762856707710546518693111842917927773192829368644205920347376683435274116343795156136170288357732920066586935037123912690197139614921308182123116798016869894637696002820991419476338438596482244627705431007221604013946339905394415924268838018056980113124509655998948275943428921737432574347784586226364077894912268796197323754964854983110370700780379871839951644706951904177540581405328552766505618875545502513278866208714432145556589138152823974784589464918165743004829902748436262593751005255525062426932712146663206619638238969289489996043914539867390631009648606371165825380609159110279902564700072111475210624504150088730858901423685140495691883216192023050248350215545813232657659659602825647609432268218356712039873544667916906206026409617736035114751217671888415545790083251939267369541397793439377878042135159082404742312591741985392447787673973530735500918269128837673354337513887954702524333901005383842329774557562640416262560697968892704140797823011302613387087112359813988897967515264675594792246659834471781592910585751576850603484017059880312307297913473662662465511504036158926532587999066204650219392551779766285450108800207175822990316235969682207078498359421927498166727125415813265062574746904251546603255708720144982332998505872678132373341903113607316399728478432397219462366876961312660030687067679023879800150233759533401489547024575826870929663877187902858628767274090690079639050038975055560516544960043483290870561398356438955335191582671465559351715718666266222708095522969331193947072898674761428813812925086508769526779770458136148558113390326388268627601603060382595448526250872806422554562902359857673735378709479494057625625715407069686910097474624027996689559082772440004883617566091963913276175047901943338418171354686657953873301849995493330365117266767712041531387514715789502557229252221438124887321740306944429038187701853999947055095812834915730815444838817501504600733955469460101060065869479529230430309047876219577603307809797562181150593545185896011935175838795846107714210052757809807986159331961530851382778047592438524658763291026695643413845604826248976853556060512182169429468187504031323576335792417703614865879938175386218284869846901229719027941188608461390159040297731458906531053390068826792733009244846487766506616919262486665600084464268812999269879186391884144341047860652995722670349673422886360626774300991002038383976691078707081739634375751982375528872294925720531314665767844294835772598231524855358705173258476058599073534594992311548514021350663830056076723427022105582344107634928902432948164488082697273378327699011718071950178114070901550710539948853667172533803142006593954819267551633881777932328904550976040524983799886578019361108748310628215227769551334162374937705837963145740274453426477088386075817300230319390852486309186953692425413918832764450415090707922123588606942277966188307229557245802497430091639208997586258703396106208736297941499853018865660397610866354357649476102327346831721579971098760478036234294732630619267416723001433692801754294672549001738858563966386979078254442416012336123966287833331455896263990473306249931996044852178290599170022951610306025187866264455568450653792214858752296005486944217153793485870525179933404523718225257946953104187892872431208219057173407983587805293512567615047401964338505281468299075880183254570701797865609764559154932403820455133198061193737920902779232919097279362512883493902590163797695204040413044569090477278282213131617986958214183764506723538370057074419840992511545505273506899454691466340649588111033747010265702748848346880156802668057483763929404689753921830096762890492299121149862566060893991988343603008069422369972057898212424478920295628438585999417744717920518340326326497756657167031113424521763299421589722691897314366809149016128715435773942895766290790031122529369565213773685244606496001355844972777196287479078768097799514806235186518892876768307546438423613772134383672018813610815235694152754654384320882352278248006840579239659154956780324921695076822507722661555034579450175336984343198764223066195805511310093103154253898764464427735393340161326425394277599778855424894649551785037963287227783170833009662887819408249468244930026758811379329676286673052850902422386362741270218909963359080354151854829665800018124178459679626374144014946910318780561555070387197240925853987567855341213140335909490488648950526856515472803128267111109472188048153365819997045375324860175597052031073080659417053556216848891129870567110558548826379057057846569874500834020471258197579656116224994051680360038683072720801170012658704239564355040486196584308286522226657475312721117980107481659813045564571959511781580250486810339648984196913171584142688247551071602377481506793568197283586102817698971916922751182767795918839850917539319328047993474144455730871571872806918494886347627977266403997093894826425264490530697811061499485052060057335490122065720740835943775829280377975424879946164836671556474604279835594957572112669399031531059351131320072209902965934084816075345317924201597723252148825406382769031214201542972178734660323202579499303882089109147669506472404514301055407332337497879143863577064689032754366784487765862453603977367611939423766594964477393465049338960997705095507020599783939525635843177699810627593151210541628933430397425990871636492305577527521808924662331545255611716408288536083577840794617483958940908973089938167030892069818063818772781501718765310681656743507075169002193096416557847180544441225092781471227749278160359428506876054238517463504475851599106077468454384218832759910163616566924779462245228416925925526347059808127840352222489615420778009624848742385441109996671295829693682855394700191540036437751188613251767728808729560616742369171565515425115421201326044973944987941289485363431417348081022273519079837010280862162104551757564318997369413988870772309793112686660783069547991615117036536864853894689398057351337772556322605168283049468111428542178648315736314389338535707942499155395799718908144904159943498111189637315968789495485591204999212012382481363111186317287055316426549811047865434337354406545059667440828890585754220773026989505175818734435689461808131077386020661438781403795420243616682383566427342571644464552617770699546336048243057813039833795225460954829477072112394804479102792423300063622054553450087252886617415381285752614925722273402967281514431306439763740962237193085715680834294733692342113282925893769694153543459152932453874992979210492711463389859073200432016667625257490626539614611955750959176283874281334724039221026098906029656594513092554969779698964134677285928633446501683941646212724152434812975552414102478303493727948835794571601464402869125283634967405217221232806880793269850132407227566003315276279738294214317135604039469656788904156068739860803561060811184672284043719806723552685481480145207557443124455841633909822979468605900115988010652926696512250213260356179969962282585686028756953838697929156976329232803298708049568609892567914256586867119811118013008617299109550265710372302780468313311648187102563502916424536259081815682870927813184730950355844767878594939742459877069273463699829462179527393066392427987539974149120119265762253949595381475952620907866922935459936829638549758205721666734066498867405860615857635084171486776102444666373255024277502217122609560857051255300788764890287808827647325269068588403061708374703741561686818509879345051415420915922515889895850558940423254443621416252694542898383402071223334969473553050460663668328469001161299072197006102059616790687532522925139355364274350135419443385008909606824001424295903985332516714639528853808258008397867133826078987394433943940263990069806926325988297459841594515198793492956394732745952322916366112245324678663331591113287080452041297371476563008130502640002782635058726612456606708230040165283193818948827534757873336214149904165524302349235437266031697138220448991418854806663637435483667134136674823140967210754055109507055956863955389298520220360274767167252478917230528621767744656466896705903925532953516064271178342685998483214912316113046843627704878544411908597927466673108596251922427967150529076923198068837417064467220809610895702277146274642865042760461713823401152146863931026850010420709231923038226994951928865974100058982839548644763319087885371937567809670073363862680515650207278514567832992860330587836683250194734805654516749157881194370758022653781449290034460061483021225702398233929616811738538155039670704727753708528425832849753413101485185915198283011801874840930090728792867751184485936481535494337796711638276288838598415860583168703285269383324951410149634991543063931308288326596942241582601355198544908810608679615261518670317102415577703743306327280617725502928564592893293493298955056308425734695316014578350323477597099011019070063455824149705547425208955935143524934628783684129903010961159215908082429665050501054567338395868256804346685235024599823572279410456180125084184895059521919306762438145845990166604113744389340050387462984832919549199217301927572690907236716575878305129967827516048199292367144877921184767958317824403384610729753084059088848757149953113550346379266050619387411151140012008749942035788600590943799707402865819761413830900428409757641223900203612128146317095771229936020905097523904752850824582872669647873715389294330394578910857629625051111797035054342385114760925759011730363881700890969392998774388921183514618140774381398294879627169779357855224036434979851548605217296408104576360604869827943174655716091446040623269175336080200294391331023600222210021197673352790907861966149300064771390891589114401817372016801209935266939272372302143238593898138496082970215926347231000753454765302330269335005277518266780584266924203208079352862145385555890793524788844257986020060605943470161006976119172515706656539813499854272781492896207100149981240841167727286830160642982080348908582022428960889907505144440665320104897264447025788019022849910741696264300915666973585203106782633512390472288875804165730870039302544403625395206256482331691722260311567607865361218372652685526846589162863093583992342923719483559368984180546927714508598822800679932714298187807407663327211810627504239417419801531825371938266254356986522403916685928428328057073619907343979830846517762288467651270008134969505876341340552435639178357777398857324988732380766181703371759470899223882901595395756863566537341241288055289822501847646477984757180607807647932700048024841530261918039281577103960490799390288580871454396368806473333378882777012262831470346103192060117084601587753556713576646312409875641103086254736387672366083421748185921326929252091086377827284096458661191016360138199325351730437937617468918466704009015048053814951097010902536520191832062584174842900373251357222340507259581509129696224143772744069477173059364273772800532146255840493902846432498710414593181173895715387870560500902804970051121149877160559727402972329412296266128837538540391676877842969431685992376342526334387187225034696691569379805522791629735912689850967390326402333013371000358523704027684081315643362304746765087666545829094366405204906896548651190550051745907322349619023211953315785088814878588253697452538762876475093379869704075461859918783536459117235427298909316085226631274144871094855786784631580220740751107420598914240484614209951057796444324125746914893225890003733228155885129989217079516767115865877310078419253232851478551060013956233882724632557491058094445338663696116924966495126427902634686413545614954723637760986236119291781247270120339316216378362085280801699256043629322787852460433000646421944366824152097373450678425423927193649364868928546326753380133925659811760092136666854592993869227259342761047886158865848712323899921362326570951955228257979412163826138416162068153661917534002990293618709756605023768960201881063813640434500337989168986150244239627525515400757437160020967397857268174717125212609588227796547496189420418336709574059391126922416454666726287902409140312207460668176452679647404371573691123471162859123928648295099643446712880717289969522003720517996204395868651713325781516930224941129658555466774781598888259690361196002031007624357491983033609932869805826530285822441728897916297783941828863732367296375026161115392985992833788975770647253123870004487894010923261324339523430099110558635383836789018909933321854094671980623825251710657421873410478151695819208685046353320992743362360092842562099825247034713137581664940917000000204804082567697391193212464074663308058188426243851373850950155549543286024905318650039171764906531338058875413988817955204471329242264486653673424275262149373731880692889687795294665433149585542433895823807062042949794900662740215631882441636918336638534292541901463592138599422402666239382360781669420832914396310004185843258196945998087331749776553906411101434356185944551529847807397423431602797289960682721187816248829532373015935036541058408785249098788143760906697914479127835030538191209984686168389123811312093914912480623168723922466131752252908766892271435644154013188351790524759778842030926661992755051611774500919658125586225080618880925265962830949736104861507847894783449877508183906046069268309091297492227379135984921766490666672586449204968937938799089832426699905730772804628505748379836097592167696230165401232718977347690717453324399642291998692961234553574293768447011133041710127939352846601887395824612398859226180002387792439387535671346936668253688080394050762825917484487588376392384454025523984553928787828657119039250680896231491751139794606316918311634232777327555819314338400889895618906244625074389737801313788575668591562377791033696847131036648405101584553692670207816980120660272606332980081335161646192202036356843808495362732126136372089632556242924771706673775142139050251677172164127240181177489879876176529973643112992747550504599516557642619836958358217389790249573567328421967731126787104565153404820462033566531807836328511224476027269637768294791614637374428009041941007791070313973755146049908287169192389356437801605758673194105813866113698000466839137996571910021058126469585861370885636377443753536493986287732609915051504407337268655771409291675233969914889426847312214508151108166363057729147855761035770047491677824671825373303948503632336837352490757624173159322821978897678526948024128504336653925679690266135352914961963804958935326938879834282179740342266508302104084783223699993500771285555028011618460804478089071645470833879457907916935203388038404833959175303829824520138096686836398379309297395662724514389489901643600756808694692972717459354027587162626016200293783895941918757250115117343826336027171730039643499947763863925461041938639330210406949703598711266241358235413179723516460120874919402302547269345236992461219846678611521943212648104179087737896077545867089957368538381920569176132139820997921551677576276361593478484653761118125447252368625707193885472025198203632002010956780515634846319913543793356480141517404872047243507500332110162290027679053638461864849446118016702168954199148541938138342768025392768094483982063883197206582935167623033066855305625023213693279666670010719638359681579129788490759248771704134328301151547236111594472253767348186945207256743719235868135371093971909538117887481413290875257744016857351530295869503208858272627415109023838525349580462831161840313949733910857580221836900939069247949664228448480392128689459210885506663403235151671033215843854187353636237968491764567521543971712066155418629205252588479438017463826060882884620672229942621470938137800542430287379566176475507544963740755124667540470936181417910622834663012338519374515853850403799135798627197738959485745232744672143448579521182945386604696912939871467989475208896843330044050621313282322050974279589338742170239766648395799313486563339000531647492188435225715689398329145701494078096665553248798300547553192755237053466836931982987328816082515158777258780244399586643199628691839136313896030721838640961699935138136037798365965193501849462658877480825366668859270839159934675084446904348054429772245855689262171375154037889171768068878201652388301146542956278833945707284727304705104016093958141555413510855900355710115457540572896161346107072545273449723296195871703233685837468010060120954574851727788898132648882461998306949448874011112652322403160933530951480240828157688286098237678643286367739850513029322476351236633516171454511617138260428913973321835098103604617666601778262303075089981081798778404263836376724617809145106918230967681028470743098900268206126143564350780922845456853254047519635394664998100713469287722271945104799693793552640629670342782710696028518868161390193461404421738154106125429411972171928927586566241565578976069645383219716250904751024924835397548559495471303542728979782206979876084543000868986247410593621217197083806642993197808183602924787826161980908205840933836469626101375501476142910248459608899304359609815626981525388108066836184844478682432363691148592274765213271963523441301495250854380160948750085079001558634480250185918062101296713404268916457207924567255180731715105859540864772230552730562176894277012797219074223027322636448812268255129894254240626864932170289957482502606293416168102878229849366668478269171851331367109092028256485450674961051159816117178463747880609730865568164339484837641030643204048439667785109404650110881929474334776524471274064566896991268170449113628913176883927736923682976932715055410617885363135737234656407119848395373378653668909425274598520335372301052424341845517932704303115830713315259313559667143879912495480882497831595728880086034843923642509937036915538856299441190586616168267290353863019791744311214194132926932242630496794372325016451158212887141202970154898288078390404650627298298451797176858244155975860850488131908206798114018039172335672563654849116724997999998749411501681926764084150763508498337192827512256998599540047241515295695440695028915053732692087641929809758616095382084283660497663763672230974103489244874169912828282512828880245813863230864189732762280500926926581515645073311171979871071305961540384914328586855324083204089416484281497542016865686458311876791683566943058856673567776612659750223644998616659755084303752546556740802788483234626337642885335059343464628689442423649004016977217513169983735782670019966198364958641906880742937619164449491241609126583352942981354409177720034293394617285854948181421295395856540551303358109073049601233529653591017458487006327542812626951375836797638658085956902984305898957184470648161506044332789650376819309936461585849917654130113847399034421380274463427205475444993298545169389378315304982518400413020130813763731185784076940020286063844874419631587009874790521473282769826653510311115893915333232515500821097896161452975392048590244749120484904796013799837587214769259284485673692260767361162148728717595871164358191184102586532779178628104990468827125863311104045440710160649141804644717413391095397283521583006078397982621121275473404183123845444721738605977374883061404012874060409759142084609225753898517407222506475617823435173523791203032780677529848189610268651867301472911099333648115611353709986047059176093355657992671920726056577537586327390428935211592580770086420821101393664498588490030905639337959683974496838437671331347772817563122944167272971670419128303116951897885362684241776582907730157039518269367302683438362211658731019630610915445016092683780660084983188148030428217462557897283790899574484456424501513565419501004524583947324213238531106565461176569294965897089474262385424856084083367734185059176139997144519286230794442030126441325693409833754849292140111502679892445027714761708235481248487472764852552174359377227514251804146091277958797804556102280187485637764332318072593052952086958894815867849070907870605787591979812183276157065921376664325045597151534409525865832725123845762942074939926157929336510215728242075475294232783665407232906146509699798459484647030126604406612099639006943219270391342475740552316758858599485838565126472430995279138892741000330128274760735066656589733850672124520979741784084966581605049241807005419472616468727895208278053575343190835604152525149836234469234735240325130592667947068625610044198698240787100437802120860853446418951974036645194171870670075057315863039778120893787862571841160890630448186138954276668397315317067959930186069463302488263429364515404826807036232887435414825517099159522796853180984074366556653744408877885185376158917112942624982470676470738215474869612528748525214208374129201960127704980771840377150588245294956953891217618118059476602186153299920860650080158737003991776919127146627712556463985298777042414378694876417650083315461104391462117174799916398194111661374298323382716537342950554209404176610223181997909282143211839063809744878481330371833738993853804622623282377908684892028058630659001503049743404365236952498980293263339240120075739262622337520133855276909655150098202442750757597542987896525068091443814279875163941437257895667884879211425641807334723152090128605186094243732111061981907723035922865749534841998555016909111744562889688520111966617198877916481849381619137370855663785984913104959932574995632948027499260378467351121655990816836162512748668993952124455030195467885400789147662916063871187874554512997224988078455911847458972512365435896731163123717907947364587771317458161854062011621874676106425675705172508974045873449457447881091212011082881006093937473777637551706473298536672289048414300666623610666238418512284451498482847600186562594402709424971466962151527233197742909847773585828853809423594262938830526259945122392005436399658724868978030789140044477219087429470087777261378194197726905979410681563325181113253490833988281912836200385730829131244124349922779848874329923291651932046502146407904777170617087051551699945839610679546546298932816198053507783869071317328589408936420314028624453024361112575196871970665464499521139046873958210430394760903992721315466696937042749108446497001187441942827745758842324980561561280933696588208319655575232291652741395709312406318615606299774803621250622699221227379127412557326909583843568834956879049530104081467871060875607120053980494692996166349645582733997649584777066723674239393362106931745310270246476595943165393242242374042389428192200338776692572350809241153606365438975100408425952883507333744023058343994900609923416113232164003987976317133429539104269716260384198076227715799833418183899383110767497594597371325819731699359908311432205009407104188525220198554003609501948284349006916273769025736387643612121775849768752528711703024672367857563878546341894362645725976062055527666282391302889377425321467533084517363465872403850591708528877710415819788607364162986124591689568926592038387985017620758050321881307058050243082181412504263355947637885944748339566347212050570506682615742154649738189183027477114066013773881730405133447500338589552977290177949418331934722719176664948573577173861017605049495765120875958421621448955237189945757714007720543554190499342043693186048356322270385595855857784682793055660639963868504473294257509068898575453421776170876166232404427970031319273888057453012280573839292070033878295031009997112564503036988776301226259956409799211754987452932318235549156377461318205422870641485984848097230630281183147684188279617686395894347175213107430956547421010375875653512960849624396593645799012645916736899030095797155438084446125553219686825198523667068441389265124346286078671165681036811979250233668644375098553578591942470373820218500908179286766827511701443443046055000716069682429003246601146500057483643117599516111086790013968563478082228408411043826498317565680195524822327821225816813535957721140263372494712883214706108075073870433326906818295702667381543895032441785126733739209479376473045093256564654320391183805556617786202700367705817747380263048225972586184960268779376869139063160346613369690185747732017229191065621660915834916454596363461995714649016136468043078300296764560012794807094239543315210717603909063692225758925643730467249889825542331773085278465048513980727935724738945366840755606964337627739412833461662742808304562863813075327004460060390582555645635249179464123887311767448827899731236277634827272615619650043665733102305774588639574572775797316063195499795565427047353948045046936460849916528126758825947758453751084043337508586722362008144061374414525918072012248146287853685889593809346670835663437602064281542890313067147841672347432745276422512882358499976100255132274478794213753657361024783927624189057750421265347714303939844365795741564217704975026849813521288692725775527690530234755532070595861553567001560513890541184297233577437970977968285879951114595499409603021760896160645209459891279096486276577657281068505177387785655515693071237859709438961676783981752291546130747402946867178600615637701190080802282083758688328131174554392309201162967042947169824896804959615111689020633716336695955143178951713461449512375617755790898869804354652795681488162318006525712271421455074379547637988144419961107967455380937209956657083429837379904083063382409170313008454492910503812276467844325809854255375597731261884735875707434826280169951352807278546791424848347164787419450200632049475719871865649504993365148317294763469683067952694913634735523455160611030565853443219064235131382434257447879807243035481392731087839431581897129610205016177066683714644590919859575558246902315387752615252671152307595846391069389871046721597457778838871934726773189758729830228200735596059289012203152166299086803109778472021442500821452891787715106744319327524810608359556353950403302919922475988481670755516453810137080861942046909887448739854262169096792596899736991734182760493223439731075675898007876846286289020923879838824846502885237247485455980225607440026434271326182577079749923798582365565996141675099104322999842965554773201155247207350139224709060493967977945955575881228073698450817615084188871960645338911059369898767675692628836757777024421093420977797170483962688682346027466816474423001269324830294288506832291269412169570516219873199435978849490482065828116454774152876842882634382847812168557802494659180636319048312464966535178968018301823013742517336116228077325565135262231175929679150004118746165666429057479918022632271045356921126251565236630766027948619292350275503670296811519821181489507394734828897355708222582249632795974080569929254082181555011093344573628872227726711214752780255892908906095653182472077894140183178557671886170467238010034458313265596287704666760728693417549884929950800416950883484098794892583058953793981268131833886924323198306211919848519847281322890325104756315271167470587029179557263435276453063802373397638253851873706214734785295813518839559464892421994611619702218501945748635164060622989263672084860047081536778305959408072803386536209051992564261488152664370097957727466018552456762264645905179538020962528329810465309101166339309078687669266289176707121299589178911791610004807749520530550123430129615711792221928914264412234323674214252462960791079182213272097563498811368443918286702576175187936082649299532803106177297731054999977643719329135566063674016895271680311173896720511352666645664558981043486874224839683326210610554348952125700875999978844970400260239553069094276828171760696899314321724121593936580205731971762076924866587977947285329982138554125538872265181389113054832750130071052797989382065386380128308007071089753163579498573441618796476941911708376193158523686915971522450059338226580264488791667567728011346466005964029253246215783417182800388551968182330778443300361572283868476530979911310268608952296230747958424228367586729498468571705410855941154441600261943610919172183541271361589598156328821052933510309107220774850440276571191566584764890308709417257241672304859560633893891884421356977219642788353927993089901984616907893472887523626218143331140908993646385369386603901447282221932898341312462303696181487852421415147536665697318298773272739890529092540126606785046659085194627164521206507424612126191204298666908366555101119396719501735752452307591882473213954671056957184917030358039750716618538941378275154600825569291638073241129007390858044489028864131466511613903948897419378431447003737337748115388262191734551841685960759257182408006666097784796191729125863779954821550473036358805990725578372658240274099148519940602254207642996227527459663544247467480068848768649671054203825484139414085535053973677535335416074505410975414403705127577114611666492744397047817039212938595698556034811278892390581678554790115431123383845491347472187278045450624689107869145311918727204028507950203333609041695915775829772065376492384958000655735390797482541176096193014966275436266132527114585630025768994387213926971752890562327350759707574292037794474817802523801171781336826606693071190799172267622796933019675160928111816569752302274994883759487789304707388522318420451671859840076340589601136582659116187234659459188844577626488750912400011717544752385730214709822993492325741273229533485412611598505303645482208155925860023162576867265997499623514155498399767972001071238016248692682598859045867974554980130861936561724875869975249293304598806705347443774040574478683528004720107921697804824736132832629855871567590180438948292015053714198477743378383272462080689070520884367544779811041698766467278856600598475235900875615868631563583904835863505645769386420966778051551545395119826659478140589333321947737750868780075599318726939284914577129623927281332185512621624614739324520190243418091585129993777379936549514121230750801209805862251867794143179321002990382669199313150996107823317697928314783412155666714058935898687349016980455964982414330397173279646249447431062947412885381773577666973792477855717990640630195603989642028159251985673446425610793789851590510224265406495944861317004783259559514815154673745969557216710605696621308046791020616596194900642018694073476872811618143075594407411348927781024555543196673230564611474443301849543398277326845423771098973446753535272476992329389422135786932430184846029285432267958109483466243536627355761386465704857838317735367239564685927134833991748820190468622551104301959047485092214242246470422552638055231517428078665580183501973316460859735985858007069335608416003985566535986885935471836782045138340654287552748914611231246881822747656971558580853772370989722238675347023837926188238442110443647132771429224407948219178199535989105195064111195617401904620334035452768188979965444234260473596442691094622308283178806639223684524565619249154621312201933397758196486463169252967327962887470485136360275715835123986580921855964892675285223917192240491211393135395638928291954482635028027339667202171749002324384392518487388534933530030977457438830803942015895775961657936870926668404150809637019783642790914491818059182342264801038882106042958851977956799705590654354844036184092397666912270396201691431422719866959313565736633311088761008763612495219131295283051632915943135168778239550042441021395801806814236584651406672348104185772889068077242130415155871371602164992432773043894707819063647577493809915400482782781547471254534018515780630667304753273872322646343589285794165709516864938994129256500793510351411539136974382459389949633369862395429696963545864037654166272397995915249082900967785200262429036559245477323704044456839240577463021449434350202698730404966566208279179482206932099718448390616445787653527153511058994865506918216976052238529420213443320856770398779555338201281025276904286666599869302222906368082195758873512408738800995706247644316926661273775820230467885034706464613591851515216053742133781285751909085781045560781088861429062601662363643153081898602663082480678527931867996947527078166987953701423153674868671295624240536805254951285424335479807948348629856096763584883736422547136015042814258549922909207757121828585555543844484390675800182113936497155466308853273129159553847114165415974320322217413175346977614941782596906565222808352287753224203832259959441009586031101191558807575602140731250148962188425204952601683562239743952547015434607773379706304382677007005963376225649606566565123027723908028174855430337886620078079980906906277446205794412725899019377053983914918357486259093637501612590093293401335052096998232729036723282547966863238236921447991590652710322297727199806067380977840948297184511869875109576536974837341206835140511743996828038128658622615833726278156060741849448905687755412841608345296798046387181699492391301379757562844350440969752742355767853766959389411439428492957961427032049939432361894349685946023571503578719228854375259443801140686236763516998046898895293448796690579715745787499867374924458020184902564484624502771094136055622665292366164968307607309842209738700080914845742092607297575017106406957048561294352617081537598126996884267581855634121567000046047994464760217675622153535601036320537401458618420864441423324607046433988063394380157974082116494442510964256813087050877866053276604852712270268268988597391104502460274157132234176771889317746017006911013314903866745206774845039045648180892594200395978045961310701305996859488630808336297943623447717010906233543107125059114754120881638181919706662869199810352104062353593813826514369483920186977469707872082740145069004673784945373790876955065484020981344079944001465544364039580011679674056810760315794781301016667813873039038478092639389401160726851006469360620845478423386041026582521426085264937536922418852791424656054739615250180387372102343949217049973592069079951424792690653729121301832083166223854356680899239540558042373607217763849607621824467941880431784247014943828499305311831902268145330681639288575698693305675719683573195699329992542897365147230126429325544377567988569220271015891639533546300842306079136879838675206130243353277533458832432158344632132727152405709949090546671439197667210440380718132349152250938932022158463154328822044012637282778093711869372285664621429771938279464256325556136543225978242342180529436945825612292083787687999482132109817149041956877862740852081077731228626405640144464835726055718882687207775483903607146741732547508204288927644819302188429954309662118451873324773711708615165688515865150993729887122895539571790423601943678863168153548159613918430368447471527280113663604083131793567685646899616417204928132780500373835554314909530684586348901771376329380999790469366397450821072586981141156903967662955484197801106687753480970305373380967007142953991998645624630893580963740075366984623061681108399591331571040096045663162131091830466249495463602538299351079742842562183911323859160976749236329961045319300591387195252511927241219804125702995764734735079629291261503320122393907591335758961097420158694571418778771563033610199292229738448119318687979410941551236739028234260643117784348181827303046490009651147034323404806747355379404698783547467501626718034451883946084183627469523718735859910919706861354632251370888591758754827731263016752877971758115839329950903267801846201916759252835094427750569845709112921026585909304262928286411324904870809898566109194903672457704060786086995184100482224462933222489397204712010625606926274408420359436993885572686032229482669158899781817222244563835965882708969325819216949045328021992357043400517918381996866041683157157086357716400618437044998852275428962415118802398631922013463856741857827538613642089056396436007766674849500517777485121407626976796215014306695653108548945953925934411260373695157576375758645633162786522350308353887643167585362787601744214108973881523560663750237148446290921083940047663375306202287744161354869467109427308051171559531478602510993392600612349665872607753092136718895248381909584461710540420048666652223187260047295695467335916768020100845143297631666372766041343807383046350647103862049742146036050318118949242410506264806465198189672366836351272222304029224836320909430130338179727556319035476352699990909888221650844717830172899038393758157548546303762520668963951323412123132940089597450096894508128193804337496418754591875700012968350811500504251042443055731271470946760609134126127206761100680721550864724387092532861482716683762276073614273798005750635130589077240536576994043017771340355377441454565075859750698126280141790699974929641661304243769098129011848196869162321528942655227365442239018058858967243044361920976703454435686985747829905035501570603061589147549393518980761972252585646869185966014128493222698108427778870977533410638259684531901601479245768343682031864099089777937867547325872274996050807317669811982449984783308106917889094971137331860587612427785491604159582220323009502960529616319295257242380047728174915035356371569024766505395500582744337987041792169151690962433874546835300887477153716926091729352928825543788405798380360457335312038181038226955039442819539036828477113393228494907813830827809340107407057306836696872779210077678751174467874659757014643716894757440232941476156522477517278815073553810251604955365835163135794025567794769532401121831832367943197786618186819020750362374232870962333299446856208447403760663794972260665243181211377012571592394615808039834122833243839599022301800821314764692314339622565932452880470623578081796359981001151847543093067374730053699322449224847192062887318540160156324928325820606121341761599233888268621283468773664550380985005669719781869188852298189889581967509552952900135189147136893804216882042704656401591558248374123484571078304907518550162869940492961758115116723914088127824353944376402573751878802779616284558996300272279357831744838533648126844459936442328243227786241048750804855764478551766542572638281653738879877450604258153574531178355364829022784820197006221694555923791160726424348683692061047173546025221893674389185570284563927046238042649698713580737538163630399810878377502944009658936663060886428649646642516837139769917308909939830182077920863511496768520719042017818010207753617363685341902987824875843133917691638377980311035990493160744007453111827996794965187359925328263490482580781307449123346335973849711118108831740503324973267193839083055053308502840487762740528374300000315542607372280174538600534669493881885733912880773488659917794675720700045225492507154555116059717791972760737583372371456893626429328528852776321323493292997678184764470242454297309967468840905418001176767858672848647562304222702218643131533634890467327224651653072903236119224061633086020389867078067452855612721269624521735114790012559375346929263080661806167070920560838636654925747181395779180897172694563304990182845878265956551184169618708003696832812612258410272134396085019730390267134784505804012606474558224142843846112965324518245487161582600257837238658677303449629107941708161337640845947658184869468113562568914965390118433189043437526627522283536901297942928256631718510272650478446007666180944966614248026639013714850606688525303476842824841851144612192089346881185922586354380078398989019423078968509460921948843190458768021713555383618720145368447396996787187596614826435781855981784510604088939561704874070072274417281617437798062289132476192998360401579780400322347374927003440828720545010024716384340001890432477334094946889843173254618011228984084253796130455881689516055115045765252215727828478581095622648078380315871752954214943710545814523163458928747030393661169505772848960111383813507693379609460741213308195403874895636483863870885100494487958895220317879404406203167103139436251531263819399461748253253742642424125588914268900833322499026435321254514866287997005137839341584322305741782341552182332459662894776665916630147437377637567036633628465176595023707339432382380876896319601656095546185961113738946126030734198282144800033401434750089544733522206329009682433209254537895058544294933269551750883801114422371023908795041157282217990560715332889841056659414257146125535142725027555126501414160585609436976666703193132289363828533201202561915914918245863127618427261140372277785417568086874771021555194982216976691559298241242133519948639236732264466852214606150864377545115110347488944503119271516926685108952325132943450546510516071455126677077577186995273269790746983411827115938083489014641730755012231115851114436816349118376063264462284887239551128210377737161693515512319063521159766621871192377257163814848975041065827733115123577909465225092926480081510601688861242619918180801495829258710076476812519890026080418165235257759179180134206558937531854913953966588134594008657523356157269542093758349576166374242308614348370160983517873612476307700354250053878254020766433706028065665215877142268668736418719439769646864689060233312166222670424370223203704385066581679212961533123116111562700758013324633061168746497319126026806588396249059599546873362032674120557369416905840687621183090618847145588114189227381075048878880463109649106629638388216838073297391226640469954808003983417918770842421797574362162192053829584177952602410029869708684171444341947170267988283729537136202007321974876978647723502135833995466718360399589022032485477567631501089880999014338780925465964615862049834238675683931609478909642641811563263676358039350026730087390996898442307782674856590135708428556767511074693800149326046575644123784889026801366309483881142316751425085014292763554780945081954854902109661782133462423391477535436611884646631643024998195162911344662174660865189996220883445889952842311632580594411581621338290287325799717327157522469419532219469141252803003466003090248056214866015021987623114636214925023919205929349946034038281379644070297608870153418576594445678589780395767115731373152937953249622286682134721692946161699897161485626428448523511250020805270571044009111513648659235976057514214780487716624673795411002291063793519779960955771282581403476974412666648212934408375106320955671816410482382229054425607288654474530344704403513674896222624883561078592623653997966316232387099082107568056335065308534536451895836298361056552640167790721508582776395175910027024673272177733285994495694237325748878752966377211239506044635262368998040304115040888856056305354075388579553868674527402781398367045103342911195647589753733681024317977260515521854016375908367668471190593702407202924449686666879874733601588968969373117063894876819065441532937045395010080410138353315731315903047437742026639311747186418479639793983106644743390765708323213114266091192503790855645483362004513366779092311746743633872028871904828116441469614416152595787219762335630202820402056299859195463218377454701794976521550897557391517470443200856761446115472967046056991670843060097748441005337276743017135702895527669883081711204142823568784523591645702013345967283424193639163096239260827780950423546352725931517062688548563447825927433713553490903179534834880341048234533870557170713890067575655435165522954687776075831477518421509858430146187923223368414298841133240716673053578928000242662906576071585713624409092359445305766267470043646181272015169412393529934858469143446244861183221185280035434602971612359623737684928122020122424935009951356955142916423272138832628219219574604539674756707303131185837416229121637713765985367985504747708692865586842258622255205624918757510732312107560341305505282024701932517131130267544273234834710655089207377773794704619496102977515093872314472135185715622444832492658535049805687592166837438013303243710588981162483018890433863415811395615562227724350857991333247624394123991573851265431879682937452244056021949044614317753055541881979965844425590813689498767521073319272889207410146119504672444919228130944927605131817017927850307491324655298696416312253996177615128855682301493032213752772249321672343644309308988222609483547073626284597762254318502205490900823121248500809946443426106979205466073063559529638457049979023126997384782538168619765359993012048552302845757477412269617557684053961315093371432490620573068621307844981415109612322063157286017864500357548333256375458320362486818556544667167659272958266113621719755116552551932710388509715488251460383785538593971004848952749735680845726292786368170981412942245375919442713331093096268504873159118940061370595746009638438824918418156367510796290463700829580556327912264809574083237062919629451822429244861033475616840268275458303326263640017520242956162999338515959266733419916634944288380990145668222889276191853137495859158499654904408906994725666204186908695232936338239409027353698485133808124430188001563010181717325708302617461133444327662217159169688113670070584413027537707968983238042532719485354793489892039150643419028961533491763273694774729373475097182759959170000616974592425876504445544872520095553151898889250770599530270856952461038804227554826588774285497481582862218231998652231620724343984502658998669729867217415390822822870059011922628461015939158161247041461140958877163874132706587032690235351322889546963800121662396414116464679009523910022472511707938198567432933990482138673411252625662030025342044060822967858373512203697070957123247097135643998187864074396608142227963086014959179387827774294279364596089240474081070367963238220399016269519191619669477223555300088851104417126056494673002303794159986109024265791183425055084349517693349390962441142282295422530322767714396620444733193782097288724266239167261551855264532947738532322795544374837771906311149640192529003360134518066247871983442231706912355715648803076960417167001442826272258101816842035529700560201151665725940242583173039071713426508777793696122607203902592014838325136555371884069441337155370935469276765432976148950911312719920292409815344814829729326057304808942437329719811372775100218089885125349899289216607639206413708856549836868147843907106638933823813338239461086164269237245900336189982429480123210800618342195225842226759504604760498269129013109617329192487267125974700141954219429601281853394303593816680218244585333454060165895627760622121352115450572193603789258743138006736638318448601132732374760039970746390001013601297172743729932454985254657223503078599689605927006426455457315554000980384856438266927402712088869193721105261253240608108926028807631806186210316673018677564243304243685668746024123192130649851779513140113926140483418123434564961523705363283668482253540259142472490252982143858846729842531524064561799362951360789267030925610989282067303815857440738432886005827185716138843207976080343097715366809270944867969154565717594474676738825647549349963470757671656147766345082769270887008029088819401987646156385822579355057138447209237902085852763056389332734652508858778605777665910715012840021095223951555774063421847538569811356438669032547721574253615897883126609529402661108267791239324289194724933223264078259150193905896436052663321330123372572393072184670144639666131650588058557550141418270604383527321321986050177905517916848096022205542564352644888998908864295868006377702317182084520418130122888554158259746925894435780352817033656157327641753268807940774389363679593224083837984155982221457130886631826637374980322935163995703646458073675337743468585829689376255078789917241652080022955051380661330171913724500684117884215037292809606942621658044843294607613532540734720358555801697283016438292123065304415311434073881717855152290260035033442958503645614188306092330739683969887111706338248664208586225719363823273524127221286524151060632080947832272667530050045630770615716648921948760151358491127782618739301761895568674858093799216006649521174186061392991935871507507143755356207663165999112158306883214767486148183883203833546251299975312013414297926255992509864782345455696470174835104377850860670778057962993578282676600311012292450229573313113691675611743296216079860871785801250772547570470632251135096322426065587470113344307778313206911404138959429151549651395563605684380403488193436861804854131079531556883573485216646772495429836555887685146329705269541400710555450621395598482956008532165723586478666054628493209574659742557042054478721605686286371698352886262355685285642723572488348049476010991626854007398421962363613084263372882406526314367058378698433582686663726805007064437223930625513136084134247041641825810847599381447158795383729229719064910465095550094825990618579224982269118039899734336526138958516592226768354649531875647833727374238233500838885576656228957732353183664964426940354721588217188788300541803271838179414407323210399526399666285608112912939000862591100635475373669174842667734589577243344020642600918142469926625791475522390365467309969199923669660662150688696163458635762424437001846354601795900770950258405369682594751114246644654346416255831111112150939385366638745863252116292858812976327993649728835310080540185516018097802925238451183698851660134271094141418447173170825733030593606574993023146740694831309246780573954814583123581107996537807670885238139372694146989509633401433228450045474949273136943599947886414001544457516775969433917978116472796805970264101892471387713026564860621178730274910135582013859488018172921805693154562966752126467829828443990903995307493621734759899514322123062148358570220044336189831778289618625252323188423240137445907712632121107895447706651138274857956039072450986624532995735006676010675840414807313846765246347910706325002809331477351344401574510691285220122591976711293455604413822004704750989895034327855565492587570260054046239403882222003729355727267459380127172453084330254392570766062641701664732426589981286600766703595351475103507774610109125189470139302752466855778577095720139942643969171351824614018208949077085200018328804554594396631592401351006739486741509174518135805181602382662720641184618227771691009554171283310307573679163249150885255397666403073097630827429257003117127508930728589316127615126850791841323964967022287764266481454126069776474528379913209964154878535256934617997200810623105288600570828882497918687569745236103565189551069292855840795839026247277780856560575794110960327324246615980471575081168634004949498664572152352100456373844498524490562469870537827067185426345556280895372953340821156570231683470824769307209140914828873205091687784891357027531024534527869392320231484834439887985077294711308947546286556575143352050275302902000628783057210397740984484533511710928253186786956226703657656490604583680221894671709840099576554464963151325672169810346507082257793961674771359328739701805259851252164976353154111155847639281367491537560436009328309984377391962192799929050826957490400310288155567955641060898135018290455308534150204318058421751214179452029827062367848716891097736097084768237670015724636255978656611855605296680644347874368625941487824021717415106938672869931775487529244511223910192209986629142831936861658174692418602394256319296255481870458380050691722785250535482231438814195652625281392774138318398615829864375258885576596406553869326628616055315027683181448940638118300232015564129644126722869105979366772039862370737639987705149160741208729901399540007965442923433107997782541738168007435544835078703584859649738024157093883819171439545951072281157620344262325689298554311378981224995696818971919054262935957897640216841078190581289149303377500554876754840722217359359652452642588913536620658470005800090269177372692327605157848540739724397819463919423592159774604381582817135195148065304849440346376577239696041940250295603365257909694617194393021603879893701830429482828787115097769913876009523436750476391966634804422344732661864098668115462736912737866929010145902008642743709083137788175641336892168382654253055181419667673879094649029394226920912532047857552128275510170348867180178168096851426442464845928695422536791046623842701739069943071752544708918287230522128109762084690196371057607105120240327254872895402431515876058576398862851436244114141818537177603674007517116704334151608941474103095694996617163205551290570738165438903284221384335741436510200070634483638428738279718530140160672760158322071821696165811725610737324991092180428991712346035838001852730681835978057926197130369700462639408178449517832500473611369608179367999658598860608504558154194179503009623011848111167640777518697190313500114359718026859658263917449446824845799252169975364357994892892671245239723480268326156181071748012831515754045440166350633209988710228108377527489447629836085467038084902788392955493824733560427151704110517347406826230623526239788784544910320730346136463541612495434800815163123779340798752451568561497712393759585299147423572069747399275702069451859714145806936580071121828709385054011869214215514300799293831820330606594787960043834061838774259089136735317814550774682844830861966913832843433094126271841217145011473520216883647454822100673561614001501331439849013549979133083014129434576791688186240482630552608520508518023825474489911890976884018229801205776655208172672611305299511269320757381817692880044028072163164135260124029881184674704850329229542016377214481176786923146047511838845184431003614969486168119878878019771502033592613564110997778954018669529949838126007074388028835177395516403285321053032571559671296505159975818949364541060058981055500155806814860254829794383690289599389057894329300840515190449297062450407624407530749057126165165292205169175714478418774923535580215871317301555726915745037045492788347313660076871323022025853227450461405964481284723735314425104643501513103766039684161299111984522647912612616679311432829796367111646160590580504003282600030975701298020571528201649333705780530017773193446138589031385484740185945861373697814248501710180890467150736149667278858292835573463680151814558924733664153548346547363487013538905020225149709697633101477352612888616873373581419006673512693803271892899660619158414638651568970488938175871404469374342644615583013709856729941957109902617282230259206045867955104102450809741494798593969235698174488417874644863708332100146720729304241761242693965848567951915551242564019967752773990360355332787897069083260399760759620558358362540363486578750280229157628354141961487162966379179825577141169928234667341901802139079119567863169643170453215635371832181798720791203627488694247855127960352103428147491052640899652163829284172678860093095997479981087308217524745539097523778819196603616650753980038305659691069491187088561496492788940031253368968616568278090836572406237552931496608157746197214828331648272586013274705185830221413342284262051976334737569134792387790607143061339836075898447257343350256530277797824006267376022851076114720233109910568586048546209727497213783235770150089512501995389168023074203167054371292852440646888718087357878463530253529444385015769110929420434823720252817443737857088990875541064043590644122110695332839308297961565707672401631556159121342150241042419718863435045059765197384799226272746918419547785695812082118788940264287564447761171590348804902855296953798948755352526882541341289410491326620628528375991381794057066940842870072417822173373825330771129619847477017708042864802309678691691983300503900995713989939602461589308585502452861348490848278199471427515482711082172242008927465209125504557277785659866841869599404783985773742524850486266694074510446625930594310564535209337727490622047042938528220780743134372329837520913206176404222609302002885479501882467702429238464454575616422743979037829402181806016232534877249713915316197690449999117046776621543468688185009216188877269688528367263309597075737809111691238361957824186397673332105608854515337171316135353849670426456615377356167664990770176691727377207353295754992512202738012471384253870044804636052219723643182923808700835362561266009897373311282883434209345749490513430041005363208978727507304919692918462132594567549232282191551090266023136020479676065918184504411821469225709632417418242048183953256778656015199678313105230268452232861721191212150789197556887603542078075021165357923470423693856243338496696000256357791966298532201264558250782199368184304339151370458612297791936614187911862601766018557922009914173235230278546289442195841185486653802457372614893477735293057350758865466511771045612033016028050901602389228417387984865332610666883095553253848330997986181068681394260619612652675724901275708201408827431304343907044243008145161626542014264341916299572215694768828487508697418700122171066557481264027616213513758964423354251234647367398562587874846939435105394975739084045930948985407280853741476883664834901686565707343802168549453865482824973851240721798388228966760928755777073202699267200113255943927809277893019330072653972483293484157921364283262040471808069037801823260072182889386067970457322824524509590096765558542911864562537914819870946823322545056967835373863429684690535359412314230320437506840338146794952163438904509456344961193429775703101727796794580703784892415784719378823744911150889886171713937965713754186172657991021644102365209855133554289795664448161001357957927540546953853824523241539845167658588591265812279289707999559811913115913491451236286861964768757828583100537092176257210802256189957151142517670491862772132726448388317283007828485867654523257451583398045509857692522767826347398671908097051098717186060554837907110623442625202220207475232534047258774235778722912634263546317525408277520522799594543807694451164571169573619963213302454427726315462699108608112572796108379640491274061952662398240439034584492223436150704643939018119429920914503707404533223207487179187611534752284911703009117425139515172017384642092354977511128847627322252636740381167745853112100821951379538929241386300214285511486029292911994605221435465984348962781061744082522005630557115290767643137090383814449468211034373831279813974290433765734489585166217556994883313903395263938967444198768097532797193763119816549149966051333032599054003364073699520641218903401742965480212402637279887099433025215188448703125746768647303468694031814786569295756997030306498933693561411577615084811986241993246159520161267314393937219326851308801035404202200332464051062776304416467791201815726746092862580082914864735796704454109444859294041971735363220604836877345634617456816324991256513180927583616184960525249572967402628675861526869916544403346844870509664267691480505926797570785520199344079434780001677133579223867218509067918217527126726715677738771894607758117993614187957487670279334379378490175558935030144102991290520272352146990941261202334334636194543656800121356301357019776529527621987874728368208151122812772492923189287071147895898138839287718126295016242879781462595933935691369288797365851315093644096576578629741024207283004151566522078329744599016423573736097380619050333240711497235265651135658097458030034667021278893492331383679113572516929758118238721684755350486815713577683481370706780278154813304808185460897359612126589852870823661975726402795738343976578663200043748178736217284465371867501395143732629711875049434382379338989937084913520472290111797529688385040642750482130371535975049846336033983722589858986893479217584790281973501499644106350255538038888641025221976178326090327737018800382387249163894639539945246764499666215374377653743457077731580717694903244132444146799506866677485795432085562152325591809665538436459477403780337425923996817103112653683836241285843544380513156449340697990545224898778325571133155961024635049947138903374682991106820396668621198077152338232525732790257165912088958758292063826167454036778487995285142325767086318839540371572559222960977523828170773402090057186142300497877495965674462331198998875407711651059202125023885064835202951682458599594884100300951373081838089680275822352980296920139514738990890510242465841359741589041509859051319762478256075652233652415174182640935346102121761465289310898313847465789905989830087370444775193216586240686907553390233432888345416025563762093228322219075578140776503183276457391977875984980224710783790005918608639697812974947234418321864716946922150474925785672786749757722539842878388403387748499748607031366922782397782361188837610934824581132356318252864743635610638638696887541317970190340674972406497304601772454386797904340829042981408718072895379780910101353114685976800492467604042457140219900218036355462246483440635327977695679230752920746910930221950372181508387420582992129833940425782115525811326951998224028598201636637009968581883400878943264458868499360003166210218176796982423594163035301561019418247225260105061733157585749523006549485460751259500299579725451594806848919937850380129751178375564915801674996874171763653259605846591207302101708769272947383057727449599167227062735076203848579923218689420289458366328791483020794049827698320999152558823204197607383213761193465569316976575538893117970537806435246756121294003243980563253137451667394859717287631035543564294508103570533628045105149077143059372224467368460360882716565354363750756734343146960438368229517142284091201197988682231052966374315235482299115114842156930374998619504364680134525870352114191461931806895911139188384026699898491887879235343874847784365333331009473299295660186374463295472808914454100982946892428292920962082937880956712506934456490344683132258006870542385110116024892087494461283667125816717928995683939956379040836353477954561106073470249403793525202553997223266862998162428385272198025231820951925732335163116701495843751673465631904127621504653099092434116722506948329817143916748093286786500062352589654935795194332001406365368970833305514862197224344459155245881466743703703191030202861745256544108587658036961442079182655904572770516094872742060718234987507162573689229117581273174364331113268092692210300428270972465912536990421821004014759198026960926657972625307988338587509939962493132693119402064733928297621296829326122733532450777643489678435091884672529101489702839995897903863493446243546147479329012892943668474767817128415592034055324101109033214388323192800508074978651833982118711284824544689469486500454830067192597277791488400930686027911857198709141276907355674346782285206869608201042547538802807819789030682666346508265572013975074512784297781143764145229979616322417856513554086288115790674619055177866769187649408425911831858223919015545359371189499439438559167481354608779898339322998484637680049954920729410242608373289221001803765051021049433489180932021163509078597854895137799891971696028846906092643339558715444565032540176537993611247372979902781655982959477338690732346414998440014660312006075209919494828048459562784323986745727996984087137769044911645334614909604863487879671750285537288623859123934213750494827700291185316240376353425557562950221403129752706939498635472795563134299811465929944310754654920849612256465813267307584797583172339352042602020805739853284791859826585999650020906064619033178973527106228170605953937787922879630027848806848484904389914257757876870311690794049930513954151308014522026680005347785567968457079802622186949367612887183678905118026173859890108357078864809009179186258924779529408821340367542473769751492305908000805165324112674759501976317126918425172102854763170375598768112152490621632940798103868601635509118134194651602165864346916924099045094805658966254932928116296038984757282302118600201577686791892460525209193134872230844751707119873781345532171972175123748300822777831847970512136021690573501487497739555599921294974108831343732230133338528635777750936424976611896157158539686941015192522308178604432489319079199040007313148885664992027131953473027638914733685009280846575686995810423849660802246063373291471517702592120567857084106045984280959678262123362138491531200840299463635848536409324983408715988148922955361890474993960013469221010265354535376430365644289418283075433953663180171873821826244638876012476259800523535036966539806256760669871001400771892780989831209453406121951539244028990714551845278216259086390686889315915029130547850954916068793648681664812764676204301384571045466691418327803161324468231671095227310176528997743667478212792114797911891119781382486877486008352499600916043677000831481179723013900330536924622916537583734791535070727552893467582780822344998561128419730936960504895386859790581104566654449919983089307798779817374406537644298917425362439306752093933165737452017345392179272786683630802878891810590110751711981461974520527064026190763578959917892418420443581051625889129553905347305127757103888257700664713917721832319521965539924357646423934219367400011342923756472131570357750474882099867866475158860534142136697446012791530781145971763202024836891379941768818462889851283903422321775712313804531094384024025015333533273957364566114376367484049501689761276240058139435155983555415216546961714898601740676493675536715348543367192651026877916042389071018852431917159532039882632446896181986060069988227071793794134144370207167143730801823688279828664427805169561487711681529978468683170154413646475161394178046118866244678763558865118630932203165888481839885721940938278146859829965869742726056778506987566311306467116355946542394003542048321155366720768683602956105673267099521754349990232978169379007213970670527979719760375599143962915429174307939099097917646312606720406245401685292715859483892592017497936446041746994130910943336848438871875358657296193671279280790474954415044671543668657672444646171722119071357232281623109002393193112359718304910189195635096345336263248552875357950532420226619450072265784881053866754184192274257565503137049134838135848558828589657411576409396774823910036235797368943880677593494488779390574827373799978373584010123348278295027102339261354757537480336193705296633560222441723409335583348369696013544698370093897418940916347456070128647606131553058216576328896126837838408185256815368203430024795720278223137584850644540284824977755409295564533231716876975861427865459791373165415310088581487265253572297699552397925728009414598306818462678118332052587861956173658230872077479540975049158226991772308799239850505468886850263781265649108552447950100163812669660874895469081174856255793662637889646774214246663205993729390155955598105095590477748272207961052535895486726680364199000099229133946098907282166974838749103595556357695933696428162691147498833631588096714628188623063900042577687888873941178808346213878810919682112299376096868896965150741331245075532309828129767961227592999994184008906165364293735119132454451363787706381582812305833140060791236814773777780301785340482153007707297823551708664568689099864600711017307922391828536445666862788280966927853614607014474066787325275070157678684890873076294221418307458071256432717951419784150265607135542488070121085262267423406566094385753188204234026560208883675840923449040269253923634400358781184728819056241001955539634354669936790400683760112123342027159473070522280947355185331133698352968737373743169817719951645735297117570998118481269480182373588610866453408829738146812788973643645483942119871811559426507503436951299888839841256587091889575497060646686543168442005786497682449571645016099323856919731864292331738791808705304537551688870392703345620306471955486637063783196245657244496835126565062029229742537227665335387556626260774159972423089807541974864204600851207198918234889424115877162433022190323872746399581456501495029171760535125446184791421143021228338725248255862184746420843680593546274904742536042638781752344824784196552533033336846986301749849521608469878478477293984491290510041776190755658878751758649735410513960185361668454560021340666461884343338691589612918011806996162355863408544154895556919775469459795401946501981553997981618187601002338875640494767704280814397101659348245780874847036820343235250510889324346040239361325397897773607253933486069854925925115423544656995782152651090201656369625965253394204135017924955174383655760299097449913416636464693446723120333984441279119924979157810537428420569620751583499479423164683910954997557635598316238558941340509329573074773185458684711010841002261846559608347315252136753053173335427398203737427981696244466867407223917524915099233771838960493600167294227428742859619716256877338754614436643545168544842524381052551526910661368924893106238560778842210875185393526903913485242109503580459917121259262424509005763321074748774949855787948578991992708506687583308569391769190968762783787500713672561011259980416886068767386247402842102581432960411937218267379005670584044148137746562732596078910694005902617361573731171675266260385553513257291784529376456151246016180247650137227582073647972431627148977415064224282415653939956870191288304977672143809810453818797434734883733255053142617049609509542644184491551194561084176457117275893269470406821659246981541105894120062359516737746876772095577453941864982850246623523074260699142667610315344501643194937705405991996824906350119931997065093435509249521369924654067329547854540182475392788777050447113592413199258812853409996301787281305070833537866009534993557835007981913052796693828854376462426486951967735509462246312001944800332796873603287097483070719677838598733807431367551109936476576076293286796758169208529690462845728248006734050132704002824694663026568438518669986256928434629446395805169005375166429563192761302512590990039867867077856312873447266105150593498929780449034603575749662895921306740430080220633520188750901496712785710648436529907992489420771817058295243185798702481167490238972978076599679532405986854245220304331063482471359690941248269618541170326135377803716804010522942933789380160289992958991689778672359098478753046879876561238507508013968483106946152457463185585147354877452631371045873793667007163824909276683175624036334014023067181009474672753258242693269906635200619308724205301317640474692236771355490479825775583146784419645501942627331288773411310239830263415567972366024987836693416652732846510019544832590657266364908395817571357744637129049223027921065296318600584783047785291763349849525526921954879475913028606139529635585932883567422487229384279213873387997324412106908175136489917246132422734906957430122542662917149068586854898294841901850459849942390157197623432972246669566198219565600473527607402331156303675110122637273754771060058932812672586897847227637815572606624027563890846552352375949502425956888038543039791296325642556895561004039133521405753595546848803444427977610932925306990569731110850337085853034861188674003871945306854964268493281847145220891922520499200984927868653526492842094784481884788120244579187628457557628205124550210525167702733979199162103505691835432018037688115903332712822610878213192977661319398924979304300343096036209745995025160911267379251720421941147013003405926607472620858031712661653681499086843162658049419449170281751959678294850025967782714347955097886189030078551054575481102959049805880262776189442175023309655844016256792702563726009821022155963514141801294770762524838883256906315040394416401369856133785411080536260668088635493610502739748127434335779913342718730317078465703918640511758300789911968191921581747496547539296838870394269192288113139698252217657977622156407270146422621477839955426920383536518787252874228994717831163490202402884107486604617899346035655684369009917530081251592085759526133550983340807239696416632737349560464726949828087279351351063380988219884889667827733225837220774079282901298589025102821326155797545887235783498438450791960564363721653034834594690413295678503674113956745889659825091810704428913752047707000571145682898528868924883722025812814363971980270545147854137490008385669594555363347468147142338248876188447082333464569323461243257905835349773028861802105368416280662748127883731778753399489957330010714079621522324114645697673022777599447162468326281107288734830991903459651793821362513039047166030687809314276601666535366304654225786890131162468100614526631956469809269863713739706531404704198078356898093870648648064248124397606928045402282909654821437504443522113861283094505412393922955656870355100866863712211453799131139130426475752134750389624617237790107436281737208132414706654402616271452352854946678248041534195395440777504500835721230796174619270672149384118112119703991526257703552422799943271745372167635752873119455725462419650257772922952919266101247488770874169160962555826936706686277354919067652480126536824211220509135648375318709100492735175719906624450750437439358457756442603672855851173013082000848164539028930469638322955980955214294799290117951939486058250322986579831885259055358320644265124057428678510150972381621003061919119735682258936677852090097207816992649859025804561456482150667376000252025175266462478481989951509887236316766259389524181016763543284268268261398927623044669405041958394547457180230752943616991375114870692121494403114070486918740590145462516452735233361626627053329548178425239262623803806050363018029133910652344183514897768438140736749015641995899560271500712898525913001886462142176303863626082966102280881385503912338007994860049120221076827018256707965805991591075956377858090190266588706026980210692497978899428816365377028839290854349951143066069917652571835402929484179975851165401217121472943636923830687810977859290508525570832990896017297391114489899407376357745384495987202956166538416918680285968124820079574129077259449545220192722139436567264742117842447959720613325525721781720014577307209612426215965354210865987627250579085645516959836111864477028579492181396761205308440660596994141356124577916935503061667050391312159631943508344045006039484840480276633843567488196654373065804118949636570931308966166135991025575049023167360931139885148212927043694386251071878038724935645754016385264965279499892959948671847459235473283472269057063486437096476854046836972740483843742731287192282842531031132774991518752101102674999058766081921701092535248601674923223232089679177260632491726033954249314818169782816499920768817501169045200797182252829581469134361434492676836588121116592326675957560170212561574492356195500865268728666029510195329058513813131468133626358706195142657515503113760548154926860570921227791918354318340762391163761553057128259828709390176725203656418244171821205934075970551545697357163035912524476830134795343745745063302225132892035806399901811306786245767042600232449685222306957993293024156431351464787816453223059259192543552856906854503833736090929478332187430625527431974671394052168581083094746851621017299604679186232698688067420209435897158058460443114350513617272235988462003371140965569181493167679306195886082581871992263416312624176924691092321806288889931076468193764727259441830342636965943787137074200117717819406542446017300382588852530447339858693161427519272324913368522341395735444866080487510560958054717980051275714339721147442020821804827154061324972572202086657257638540065559351747348837928744795862221599687801773261569275614977298564736729200828989745639778673003449884524045168872780252317609805280360103868202713755507212089617097903555313280256241351315237315342637947606364333063800324054056706964347634780642567101804099131502305900833615335068516917643983061210268910720868712471057250253265245377674967154095850471767240686418067886907601065063102135327214175685927859133724274914806160548977539223100289466226296185858448832568571274059808096704192852349500812801253918039609538735193714606301512393101047461514575539512614310452038414333704936790780668414085709925846484775490817174232983837332639145900817011688921523868881073343403772485119898745213933162335831949974849649587367535921487981497137861959645556234064206452551389725597645058392112603974379362038474392777419120227053144537241844148096904084653625426767723058531010946815417398664504810824199917117956885351650393682760799962345951046151949494441568226097068697071423286246167507436845458493404135788707710014266317582286884785141422131919489424883358938135728041191554205381202612068328449625603361605210005934896498488339435782511631749496219870558544271480737001211212207322477687708211573742253912279163352277420997702242557763780315210721251100546820908968003723370395868364318606920916365838294533462007347215252824996672393535049633204238919886670271358905346460768831627790989037814079258936067862731619319629220861977688788665785940118765200211077615579529826883788477635678051871693260324633791661527629968971758896831123656333091304702537435500342011003090325501099074110220009667362643183896847442845321536428549520080524199076607636951399684410624096031671684414644619929131168392747653697715136666530521023954302757695729766740261746414043281759408540530795251736517116624831253076832190643408961638590916507796817231605756853261775043549675921980206479804675926551013252571769104654201260826099501318160397560977663718496016189631223270295343831688133392295950526551802409698074182308420974736881798577248157781461770502254809580158579849810740486590097026808139565805372480180899048016587450300395780597254579417818592814093892093908081910875706707213083367901697501926986831511400181998636471798325553934288654584246695857797037365444167744102411291360426181105904873397534568594356567083322265110381409427466793488767477763878846684596752514432155841612003115286350368565896637616123517524352169012744672605504439019103384753210828449534444696815899851834142971959530724644549441046254104003051287683626512715283522277429217339706267751513489973861942910772563361280050420894075092516869313427080426430467509899539712832117197472389586619670403899790644022599207484581905823895172451651488293587923235893231560260722130627500806797488209516685633407122014140667761721079403272792716314504230462310334954177996354843282449491165986998135299264038614663733134259353992934853552473327253371852423570730183814999448964056906389946710581943018314495200993443719772829987083585505753450769890340147796517759520287375554828857698684782546599828449814180437547168407803040103193825964349772433139184244614751678701481204011317865924256164420938829012395298176379838858764840371771584493664277548478273638057579500587355074945553354302331661196349013322877365396184487275333562318221852724006628048452746332191388297770398287369699557612776334711625173281705415335002985764319104050449856108680692324065857605961982885402275416504170773425721325905038397620388448128661877467810358535112227882038395973362069855692509282700602613976744820540564881782980350586210552074704218847769064342229416095443815109700266682338997950860915889875185023433121213799934160953022836325954226687646710858328192677478825015155490912724768224009347324324793549665082334040178134095479752374715086568889791806917322626235028914338856528510486296496925866223602180916485023929864338486275535885699899823216700304065077298954926591007680256207792007027370222047373217353689306365489793980085362532346171263916753601360878489457573596695474263835567840696590202206978947816135352803100505503018280733372568650732983237026837992647253055235481105163867002261961447116047773140996803239664776947596526496069161871895829004836568504694297758962941290391586332829958278167742002675350650767672811376670243824270529127557202617194256889641356131322044248703507048890118763715453937688292556148405056944706312715325439112266637300916285019974493236673089361233769177438696847665284400238372787581354472523818783865072591337488930217092564930510651709834635086971148136575552154735312796214138622740176469888732343292108226855950711153182735983276394198152006163734255613776506402446623846102396500425421729588088975356819898394917964922545304462148503505869177240647824133882872235973723054328089431426396031204110635859749942694810708230381517023964432379629639996771099733625145579715012023655373343075460708452161800559056745509364463892573252114146757564813202184382942338517561373310915855932126498831414091437471545912263073639146783290093003244505855731324869844261563783617689003311980016659729460371382067275532098379507037657247458808048459578281411671724801870919680786699994375164717491230425633988144176766826935588094564263085148994172940085032438810557073527360818374217603781531437237598072806155508921575205915841270421037022425480645970993511618362151815900746894540639746180338686522399688805660521468773410714471583532657691462578526117663042623954579010176003211487673999728767543249197445109554135901959380928262104922728945132791298574314950151687766311893468595260031108787483662416418805623013314458138976595671197632665864815528913247453578762433842528708866693493519335168225692876220350035691855533378507401037456977137947560271082884462633866882458281131876366030825578461048346007112608582842829276771109788616103978777287792044120143468659250787200471484969539108529739988287257978007462838040611873892234567239210809559363826196145870804362860128704529456674691974154094040451296386398715623139505696458449450344156223360351073307370440104007244916655812639368955366952630134409344232516056573334955616651862340344487724588503797260380552657571250424200115954964548670255701415170529455772936624513733211953676444218606015467112527682396458883767969305476808094990159755265171434700695638955091365902665131544880195909320162956149269322022181408956629767005932317611143184054062230943915992276624362601152622486959999872340330964923873633030327913381640014903403885306913848347045868783752188163700932932196257308094051444545463352143271746034409481495322505851537281967607005345117699018283056837092576732624829122471299378209954689458969155297062067917655789234633012992438543816147719860192652582059112420985254683724704913941505105317876549906652435769085488412348294257983088825144952595399968139219064326298115355046466967201937758394369190339614523773011925643691733573438234647145810184671571889733686305900832231294214441157461652602989072927095449205516594367579690843967797415617311511328385276792382473878265640299151072923015568166120002756784075961151326534734593231808143267878748961807472654320695631771818158201547374843789740644664228604695117622104469663449633287500359754711067669678215459647704894653575480677256877034771720590865502684292726893815608903688176686040635161515773720048113841643453273284665875654285152358524009050666077599109182166454892552972487613009325232060185828583074388941246456113647834713775779336528225988120566484278400733892360279998580519647306593604753598974953915519448080692930355160284920816647855076479740332451819727816812080603344972251380698841749174505781526354058297339666304417653728213602497818093478042919083451863425620565867104360746646433906586959744056319684135705782706847463280176042658702305216119957123160403434884542739903626699549573938708408671486392646039543700189563321811987124172443018552772646308300892522675402939594525178813733403922224317614216820234322879000636056160898795459414393950359086444662310432294752468478767289346681303357646261950056442125826553194708915003387514860704256965715306242849184251160740335354831230102729304230530437174987679117321344034598605249863841223200463134274704740590735147406098543045595409251044616337958956912809309582366233787138062932482217915210609992684131024332610527912065637955879038204420110179115780200779346509920867821375815623159275629727164135784513594318790448566344829016688103391931016269254714610502614262688779085008546391082338753442986003052041742080493415073261620134605585252892829167280430441978317688050411663246967411140974624974609952931332780101395030206106961545956586638769409236793194439529961452232238412655443508922595284844734947239821345981204184287178705072414315067562769753776115007753855537963761014771941743267225045156017608683265115371282824962614581796276181871990651629238266124524802835052872460234936487487191421475286892964684033454728338306949834285196418229883484679398318172844887928947460838051548520478573932830507616618881692832743613521875538505744754931232827744713661492828848187730297000775293223976802696881144254014866493285346470976901327894867096923395955804484196678792159411178415971698043549249127377434131724895406015498425003832940942910302773558586644357267094553015821195992933600243549917548144589246546424705157793694630415443800686451846669484356171393352204384693398644439645219015914992323762412499761884578172065148867661027777352837139380633698679338165182215462444793716169952845370566135455875545706603763970580203510110177951193739492344150858349805734456223091917527803913553721210086134853815798806815426819231196871230791888379888562329403678758150224110667584787607171822780925030390660808663273109368911423515443291324843029140010856270534202386870759658219198510524759484196277303221822133110468820516582483042156871117424927457047856011608660517981949157169608091307677178919133415952861005695592513722482463408441731997451483251419463379380654023962850835859170790392275524868155238756168209166727892328025518593268042954496834160996919019916410774514945810724490778308321514711419105059710523448795142195502105466347524265325501681822576207404998829903042570462367276170149217449957943866408442698845876515381119976606746521879516113022514990036651666265633918140687342099311386224783082910880634747768090014050518101684787032917557080332180400956075894232181911170936260233142236456292962041914591067437474829752938827972579061414518445270826312832323718006483478759652407282152833752669178883712504761381575906226122563467487151924681803027974168926208095857853236871828441489330869080862609808602797025597988408376641642102281177711282576976818095329120087823529786451698570245835359034934756185224884371029523368533192001433295819096708263274549763274410215616645267371111067564776247903494683978937099371587406295849557126818899028924911047864608495047757391160798909346839132115067246592429937630918107466757036222516227198348566234931722031027939527732373674537406208200319279266322463570320473960872313489129657574650772361775117601476857065406638339071689396052571208092449633782906360078330311095329778027101886203748232574558785414521013031071875174956343269482328883732111885646865994494163869991397965880473233365700964386434575961673531018850239816715468655430436009250567973052241897224325018390443763716932624691938238596923538012938907275814191307987755916245667492121937517650518154378343432071302581922490720656663179033205881926401360755801011716089800003973776448229851181703477907647753053219155511316253659404167933312632071250994419561958470380793947300459690865556320283847938732238763807748668717565570063907798821392156091837079198164144078619016330997798989184934847727093538685211785098297649488665810065960857543668716299950352609556800242963580923144199770677395218470262763589894040189752272022315101312359117029009257567891284215158801560116391430089940960991427813888110585398536901784421406262251058042345778484293851585267306047470097136864272176576047507177210291287940733542244698868118760526185909241673972570891350052840545601468366023979260875479831051847807070251801922526956393472230296827761365130066146187507976532246255195708914094031531166803474421272494947206416578954802590007472835458216536160360786660417043844915065133889573127114208541260448755224084657064090170644326002593844501437726642156655254790411055274734703474376136034802010453599298283923075355836390710398659464531012408913163678560150112130455806295712400764587639119922154682245422990506154508440677817178433872620731687679060518635699058316102842445037254349717391315858418887658290179263436064323264425467574893275611478038105164197384406557950599020711866872562108812801175075670670464708933131250757107813578358487746948509696680588178312218575712988469507396758172986248578701274491163003763692981526439323090920688676651202790064787734427081702352570754334248769921924450532071529333957962860682329868493207770672831381993857690544143006414167335028345167693025465076553140078668642441363273662629614123574767751839040716217290962268747005369577207733268424180887447608179182803843999973383616627856770281302992829130126179890169889319227328378936882348558803638604467208902577487090228840387053910960798171134448141509951567727302249679916750932134620650996314383196418098806210750151258698211474223982243966294041789847656855246585308761247051575484953154020080542269424603765271500024200960745144280593218613175178514741836376817385601066723986554312712862345366129695319606782397885735247356873013813858284177191247901727019751301013071476271302146214094936766540194638630473887824638091234730959428501245463490020147754607716461243219340427684756178778997610000138103569152199983657497401317373564099463270298177471641039656828743197008172037016497292207729790573634478211721271064049447357245702150530873085337184509119351891599426055189565119418918859160370835594525875043401767445908622686535144924097382023627570958741364840591521155360065832831475968726149352185780626265562211564356915984924763423643671287321714487536472721196245769962184332415478852873564943284856310435839211039442773137557182558420181682307162519881711044709738159262723197941699649179753528069060275103113224005770288336227230484891708249822151529101143820509708560615414467756480910255714612592346826377460712409835228605123399166335799595295094368522605265783946707290104146630856857535093493958886755841599624890254553869558764513479905888158657574999249821218148683735395898281564234807608561569397782012172726980374688389888563696613362897624376600096870492765675381275413653035968073134053982417455857891815629911577908018094311756933199098188599716140597223178477430100428604364323558195525559035419863009706790778615726940141609148883079835062956513903570999107677110583146090139267942358457447344139752264625710678409101173431471019052659787723679655703014005393537391035825231197047322229252155675649954062071605156534201545312681993917219742237517726245673165764725432990842776821260611591156247442372903648127652281018486894816324303031805634895195040282347716571296893720282527533944275863934775611845680725149652432208916444717825481892692218478230095588909302901410295558112202130498419120294127409196708451741227907535479022185857159949983767718672002522426638873459770264176424482186747832755206997659035255074522757523194276997981780245256051071492263685176823523059219197861678854595397266741914708039288430698817793493378725779212572671704945509657576051272033696098261699118592917101143688893793609738937623413104712861358507547369959312126452388256627784763318428980485285005803327131053090804819493562565385634188088094160057941020803364567896608490755942415251774182330913763672568172769957580781691985660227739825708812813380448957674971589641165182977294960653841172153168184429677023554541178186817822142195897957142309552633949341968227724970015239412343321156691859146504060145223812557900145304883357425837282453406264529697295445794096863887756037464219536575964100480070971682010777166953167802351380481026247247006282175940434250463531425613139421676314979184600646769396827268576061932960037788965585925650051830660829232155573367869299034135771674559640159303628035401276357851592661843003660636367527737604331254552312852953586775187713963164231891014266467318292854530398324191451265207714282251034557280065453442359287569293871716389326305644163597584451303340591208727633934231894429944473849384203506882789869158104788038034540352845985958663276846537381707466365083996460654995012437301259251652899575541549777296847941439792497342480727214477565740998852803115798621492355096878044858409490254321255519163778839508922896620137119628004263424649798180862384938967518755232183899403435633633989031783878424046555976802181585891005854910192489009021742889327304831747555702013970337169923829661123162423448423757620651949318889290513295867005987219509867182623314500949156975929782985324912873646200446216342369445992811740897889212060738196511722958125881148317347112567723990082618680102841773642401209961992363364635704881771669237625579181675134981913875703932297584636442516175219811132150112551481408682136954943457316256067480532885022255819575017700002726719607918794345606372064173058564031063647312826488806385123454840197168193835165066109665724510988107092892275951744682998562579398712297670936664873831561425526228355344890053995582131403851884681063069716539160297758023117329086913848330262025014049992521846211524346061479039366547013202712339938482139714537535610830722973461539211918315786496735302026896004315779738533978106296309992070714671387322491220556713024686471957185336002507535075900756207693476806281823044585686557698491864347384179634276157179515532947915361195141314388330724471112685215093341999488123983759325824410552523210231561089951355718155389791044029801347625885453598592058309525973602260447444383664567069347790452116970956820145244989724378952202943963420622389447524721454641445883399944722012132131408086572097316915110704052000596127953834610287886679590066453453218933771354151642103353842062651904435383119399508628735381731570456058042704187243402545118599976456397109169114972860564993322444647219867145295981600338561460964956520724961216440420007452930852392222872306980040055856263705796664416366765943664321996705416347872839221110016260884688093029377682834761820511836386659946496122315642575396014072669703036359545299990948531637070621242365287941877654278643645853417861879460957518650586232209006483093103047910190245691770576876664679821480540402879466712310998141773337096085707932347037885159878960966793857351375199516299607860654244429930664961095751840965451289604901333572196371213667631887238277429488115109696569169777967542373057144795861703909974948913735200498116940870314354179131336648337369643074051198452728818116183648877830130764382040786381621673321152076466618730292116166497752771043257943350285219189228662617127224676309968227843418640280435754946481838659588920959984539938989630900739422672665500184065789583827129104919035045811124679191965916856871445270502040019916610742407271706319404977689599222685301690760673930539297773752934269081268101063048115672989818854896420249829856849446341757515704262058244400370893631933657159562136745206136907256460458046171898659404884454726153868730700607382422071227137532022501659166938200606737342074476324626035368467685179230831604382964763397051934483384877441030775724007087919258770428578844283532933429276417591326442349359606333365329041054042192223706799943477162079962234280696618707039628032218560133344131795422003736848415166552684270014792277920925425614782309884608244978989627487893315797836368511617915501453725894928466262927194740756772531583806038673718013246490408785668184272481071368513671148658231185861686228243676435649881866351832180092790503562726957705183747180922489745504276480589447138483831061573732431171615364642203439547966385480847361123131348421905837939324896349063158749424740800128281730892356230265302253374100883733701314366161838466650786809596262958104536591453291067835205875114712781229196319454680218096677869426112796043044362576238757475280602356422458811728357627958742201716251569168539581855509709530711653219121487741144485329786223497883691581073245567472588872903859730349692704202640118969853170076256912615634086293065136409992399086669896324703096061596116694935484153747913573815921115542084796232423409454605580267730114869368826677413864631459922338973380161016410416258330447576639479403132074347167911469134390854265229371219819898928729153531806197356910893485748284893255614027666059239320462912953556168942922290172429047180316306285025624794485597886809813225104064559067797628700275050333177430235322814145185779356717050367105985775846732605788753267429339591387226940450858267067595416217983165845066813411057626479302550540598999365481455416536896150464637224148408266059579566849542557739355052976482768933083719898301009241104719813524255039052496673716872019401354503597482152768046521282145392700619801392748829143947420194571187973794807699581800038263414992212641846755308156678270460713051822576248904137587559433243534175460320366206073196093389166628677185845863062197921265842472416964897341559371522878205073544109517702863454226905373396647091353821673933850250339106365057784333102135778895235354906864080253965685070525512352833254295072573400581364693201368079774845712164219395883772043622985103789040699148770055911634212034757544593921171701639194671758953495355484119284278477377316159025325468513908773471558675965997716039241595339824112205840149484703124757865807551847597331902275803719946696269403537932295456732276692006586429147786503427870068300329103336725725643785891895718427773339239263392720579541609390629579611379804026851483126553460986995531060957214095793118125201079942284677177327627173201951175195125459940302465651297646602502445926508110284556201563518182409234864569579276471317515619937631324089445420309356281193555848656178039797491794956350139517936133471344123818155685872265114800466023463044544597762191190589691037545531733616331330906465258319902462412592153387485721275518893585420624846830824774328214648015948658476549747907160479872877500612628937207378899013864689416724899076735642198823745523247242091830529681181853030771447465583779523992502743397837522683148527370014580953756751628482308169044632281859414841310774357397937352284424600029289470523934990492087255501322423592644145361811690000621615217272130183368044014833009338902854180866703897431040683651068266012824514821506388055936245370259017911650113568074616278148915047909568096379909428387823065830192071270575184693612072112396776639708015409325756080661312896049621202992415617828303989576249966299216134818687593457198536700939649045400058152410737735230638911204686027071648449479529567101911863282989549197365640526607779425133707748186452264863504400442262886193282979352342389775064217120297881094428851806377620895649850470398067646042353607971625511836600230934677457531679573926723892660619402518492249845607846348454249969290362283919754621307762331661433870313140400837617362157483006802091420349618642044082448197801748318514186529891698964098491876908074880011996730716789359906620749412815750844376717822510556645781567142086463701884831628401622541799528553733476424235698143399350402995978049944354622126980379746115444907881481545407376154537643021690723686387931917641086380165064658583769763754294342694727332072241998985229119220254799687466578140186331725016833087995778762734824715402700201428658981746359178194959293204085027481375859625793063390876557487276578178408427455225140361080914157993413822267246957655353190183773171503087600168865077487691559088101497674923317936576648340125978220250275260694827226878197833598854840397193551144571641626765247947870477706216645391565323127433601587140049005788324626822821493602912701817770385534997602307231230755992181894508157934693576205077862403239827396644617478610499711522779567064243498701419405272217262843286822184075146470400325814984985109570037671268607419017720764610930913379675190823488975424751393844524581739253693919664164606058816425440990592977864443306104993626371436865633040125212780808836122876317040605615095829350176456495783561263026969399360538407361729564541130849412252784851503392579862997587295495950535029299255543434854959577111921814125177874792193651933111375569329771507676117144725158123328135330013573859758431302053507156990508462687450081259703794391093966715889211193282889175132082261834833261920550093157893794644664638954713902903636541138605828651272013356497276384305725634374605707301634469010365564901758846964653312713202431576767449093937756384658202679211538515631565943985939416355173017764012517712217935895123572488351217251277865252972030937682774165040235562852978361589213204330392205581005107127326653997246370593908478814249129495840926509211594335043358614533793856948748770182384489272768789112030453474171744087131226736187681302282777288618446109687150416448226180859423794989252282316314885532516421707093916931530630191211368032754820641660642033715960805804872222916113580018372857879614074947144577313463855945720178760935701145550610668346641314804148349240096188435248624472033453763822524321326908038039329190462328074463309386420199618100377971806838654241193430987189249806077632846938421367853523189205672672615541130292182927462497704390626973607153498482500713213364074117359247820165295572634268242498735161847201093915570175018679980360896909880050319020094156375713120414272588998711670394214032220531149774106815256075001542796906017362065471393404647134263560112630090711518588350328975377675705633005519242963029670469363802328645195185167840468901004053978554794851374094553583386382201407207002598871261805444811298692574566645941384983703195705653267297366755583690343705527774218415798682370792734307529963131842306674455602429697616196948466268067330039512079346018301662225393492030123261486623255622304795491920774750063763180614212503452379219238032248258144732325976401277197389174478271445389880975325651597475156266017347511743714978490818092232978306193946216632586381902325360972262838564564339595231096081149230583925464957948454247723271675737373516538054318239717164316248210174135433294516595067137057695724350978522971375936923944392633928899915633305928113271284297514267511573251559188581049495455645485036096754555945592477292938574889496073853563210165052055394734018873468547063626101264246387171037084040176107222572001104740414283636347617422751697380075474531699094344413887148857712683123511673158486099788748691704414724721640778913631139221955647404671567959624955225630851634888303085619625217647492280921368705612640687070210704981268346858674977216240756348908918660679229447487491324307275006536344302133432950367346574576586602026849829424255542174295030919639984378600542454501610595752669088265964920440123245727528508240923909469752858437561124925333899936306975801348471420966834548843585166147874162926805394925947057116466078141228268692523968423502407146604675137973037380123885007690954453413867400025461923425289818614464184600064686617550584661675709038418721992297550864883317386135042977101190321059945164827384469330622217784754009619932370712478402971287581249436010213193482213148155634329704606486849369794696766130657279827473839338597871561335145004443163070257205895480193659448649520608497162986591263340873630106399194929348649587936025852816218843213019818537039456835462003375263288114474336841460923296790720728650480398342144511260206402035661880890779785294237977409524022982515240138066789683198743138748758532986423147382321434425675809254200476918988429280254758303080256552981768337959434709144647532819235332375367324663362089219837606700027512461552288480781665974587836497804045685219913957101470395430559263117675005808393841243971981301007593339817980188509146495947106266507259381162080458680675407498967028503054221286402774122395232971310875207720496780832494569031663013653282351138027396950642343760116125987289485446759391450174435953963858846694799780870155233165527955001353345842380495294473773793535733059234867499904399826505111311932632825853232096413997106426461376674939016534151349949207510178013331946210768023077969339463149261103138501407634976988175037393276515312688248706517616112190984029469154160321166639217338424936959851756550778073988542445281784708333002882778239590780656535835559090836956060001341243949910211128007509000942867547256000277513081416130849862106473086178316821886390592785543588362826535034702959899108439155568085278344371762351959490394959846370191745432835946902462375458207653394493689180965487255295525633642371837588940016068276451122227013096579525743489012775593509786492082369277346113324835632652566777216456812802523061706824393632659272701118877543536184594778998850251584428153766435987618627588707728397117070201682860496591883143768950892088966820886224334882447037701253051374268505136853541530990154558111135751233468446602484344389270492077538888407369962649561742805789550074502750769159180258047046335104773936255625424644431138397947906008681647871645896631625048609789431612989195524690093543959311454221579489641694032341175140093159372401767895608567245160539818601012447441264940559898361660253769471884199364740213937764475612878918004160952821886646509499380627310088273779818093386186014942730564482574184459880952878774918432573031712744453637505040340122383672744065239190730061386021723181830306610564727361760062963925224475239516084649439586882167190630743486913597929713959528287269321716930899819167472794542442361353114070232078047258644785997131241116663320584600401209549659156019796147243907051646690384651581365040178196820786731177571767378124988134560732122608949093146563467607850507780238661028471399561890900788429750350383303770911616506607778848399713454569714715325464139288009487465024441802936368271620275598243535084547970130068696464124910282503128686736564998405053912705568488618613967678963589065436928924490201323166150119506156456349923275450850107948945806924462023037907539589042409482450298993939563886674134060878660306721846368842754175218575704814778186520153082072760889708597536022535226871290872445487454748085388359527878016853379943299497851510949503523351819202749013276692256195394565693930964474729172492899598328009643577388716700270796742564978126989896485110575817549726341037340282942578306160123809538602264767863410264188419976938481629056136171763853368277606053367253545753829402757027424445977190350700408770213936704928261602093483569672986839276822032118156889829025415830636037800760275595856388056916623790753901847172764649733176938850435990734529335534607221718172002931056613882606453928665064935224405667712618291194956463360070178235897174483104333926643001212407262323211099754625599166768284416910806457526608217470976928844756041651881461984764393809898167745380852082001389463038823583022251183652760726469012101281099930221143736276059810713622605453184566360240030866654043719525754582761628408263225671145323415487052724912749023356601361661160991317148379665392694861270434916112514834200516589987047865265269938930075067033674783769521278682158557620847658016316972269018183045364389791834282934189651372651164754443213221980882028759591716985422943086798167327285833374277657483922487344310094785404585143113456996739127603005541955134612872725225491439779614606367653128435955343348121227575977712398324598499889286402078265905739503261981294264040052854864808484959724527225371690287774570481840354820231397421566101084433621059799459290521004817666678869467955961927656189789209814220964421338027633547849979652337911449170765637858718975792153420288918802765675044885958733521223565482472087684944922236416939444291795900942822003435944776365564029125929549952964003948616517348183687984738973802008864524305067110987817467576442935234763690207258413376649487161954848710033114461393846781494215951282587341933901459039129739222602829789946015775560508976682038570970240380414510978679314936110164547033924917964585372726325256190099274463900485929787078935229090305691055371243685982150843985601817462775545599456950323799203411572500301466476901802130972407072694580569379972355989692309025927575629069465488454288147179858324448838469358626210797598891262843567603543893500945231641184244385311756417895895959642994479213339179989938459770633479729131872996883999628843251906007428046665886718599427138507769487186619530990884581065983620832811184512682136080757843549179171278358876959126446657700552447378767709460171763499433602631966678653573598517354029348058655339440318772121066759556913625518425781578713365096829299433742393793752980163603706390503111417021558748104450948252769188379201402999527528641838531108574145369261151140706148066866246665703371529452545929436310502994655938266188390351136026821655070769345367372029029759380185295603848264865328269814129540667839539489405215786106163060650030121298486474502474574582722705253538426354117922690751851991338241997625128089956948225676447941555931572353871625354181728179032317206554582402209207916684131366906455605280139247224151699264672894090683316335279921336112144352612902875382540016816679454954176255258350484251302030967546819871200001606807207737144353176563995723202048742942484958134222306852947853071968477262286599008045092610447232056747903217816170740383378564200118749868123856438334234018957612725333760500500262441811272351005061304550275087532349752249530799524845520489301545859663927702372139094681347130868776679650294464172431124439613684968285148360726703478327069923584159501409275617228264937470105646146021036766328626506442079596232780661042336198049354920344733838837555303473682105738023281102459524564074468634140245165096733071437139175123313077991223452803254836160311187497832064702664844302360237283800666206481412933479885368256573612865588786517860257127724446985025243743190220917449329077063357333572443373357203216179692377005625300429807270448479793494318758661326828372683728724457779428331736693866315469494342477404454275663396845220752534906649032456275642784081113207522535105463861019120629395649674523758579534826867487627164359703532910242506599017140147739644790182247826709548671384971167751708457940143796226579922732595856180877746769292978377314434155451252404131714728279355485327255789003882135509153605927426370291552483110188790792157781347392136407241403451461957889383068296249262706543574083546896799652915010827424126453519243637614235841186400237135366131301081219587928848412764837292279831014623315247160380597591902675586495383056364749838215795705372841433939286650337478333068277490934045137019396752583452099448538106325833821116226841220514280646303709410546094149502060508569729190585898876734599562767723522055111997576042165251597709217540676738460614986474305799729342972524903488666536561366714538904147494882509885014539334313523793557383561555738026868625739507323518328989337816101379032708863910325944176416182308649839228450520535861763603201364837212285993819995785459776044653584060772647692535737002196663230185915058524837307401439957674278714740956738650617656151460257341369950098965424852321956696275864519623525077946933112881948440644988724765793281452640503753679075895248111462610906917762819183764115048095850369358919296221173200550367821034548264650062798362850974290247876669724466322530388338225844419882097803669767739689699082675458213757205414136225028085428612056155580726932776888602564834007673435893205003452831740965574867886181207162008990894017499474740335869400518795305441029638031288341924519770042721616417474998808295357581899905207199243410567114104199003780650202091278462133377022947476867829059347874833863544069303347757103690545135709704581058312278308460035584587740106802246967532607080572132517228021231970189119600891152354745932763012920899064190862696523148613849146876800219435400578300359820655225532268673413797956626672344060863646875990673972761144508062139997354537718201747806250522712250568919144509345949075451727108120330041820442388178726902079917238901994947418440303954891968436457592975475157759840710670782368151545438254518518592733874081412250904166799629451374023790447932273280193548818851142092849746441723585297337161454018855207171800447263427350563792302276144490014482092596044176827150213644491002927011106631472164094135777422212646917859863676466988633636662169715518765723900808265048936742689570738717957161240041313550803976597294155619913452725312254655634532998942994882839195321632366001354896115985430545417452976191133227159637805038658080375959757632403361112673309012477123467677758744351840907667437627830271009122627107805278936316305922724626004553544050912819284489267522387934398407697696894075434629500521703046861859795620278270473677666951787814709174955527781565211908644489974370402421512321826682036434783032230668155317215949154675654272937385020922977499395895018915135952088543970771621589597185123901136898653006143676523718575731861618897680456794431643733284319447273004404888024427641946061049407761706862529079068208691364340808246081436397836593337864128839719161261316773915742214771486639804206138829981893264637824119005506406304645426186411170894894184660495559441321001701257571916032514906895816955258409645421723280848620831761883312665979124007903911896795860573362053971608737706321254312782901327915799171266014707356765502308286003276110725943273064667641592636255859141653577870091725250787332369739183063626059019616620945916000908008972385928737325521913582536821144175715932683895570760546213045459911572981753255666490979250368907922392919015295447385835047617596023985979099250579518202960298174840346831725256296101122973894699327562173736221560113167789620074259971949874283662834040154768790711597059580193572493337932090732242744261899954769526072546609689693386588057876387161210511049541800218587704876579908983429840861234073333929604556362693270998163708760920989675966265169206537976905553795526141191718371109693637267062440241095269382078486687440874844539120684414521523165230123013360394469687849387649624784892187428279535913727976799450061961093323667643363009666208722017189874563861166277500638057566900520318483059648131833611517664294829977348718039231841768109394129150620167820163121469344400043745916690493803997796576730494403507844524726360249986959330581285392236360867928552265453931065321197399447023835001674472792621139809914681543387875801923986116545857548629939437994845557412886167882211216892776539168585961414154396137779186718500663440485228655499231825920464054388124096524885342625854166971953075650979021138791818736460097225698818136441803265714414568007301241886240567152960949994494442234674297063380306099374283445607598147350505271128408553217280921530226361076439194172271913054109815127116927419204040752047782100582293210806316080439002097010963571386119091325890422411511506843767708656774441017426358361643413354129375684518281125933854294370853438673331555421407218825817222100690862783367561803042362147561922854113418458857257819972588133348086297662594127475142862178762830255851677664228390202766012037721882544761155113631760822486864786765157071187311684861749078734145540281225978634505248487048074206788309033266069456492180293976773554638309426908395748342124954863476011432160734386898918440386544952337023316776619643469968833572381044351191187030174775573397588790963245075346751384088127651224623528194863607491064436938081728624080754370550453297670913698282590770671397270042543121374586989121345351850415849564998063812970551838736362534336443743790076723764979776518732798658288789876153162585484158957427469613971882939325944472487370642778283169477699199737560642106766886786948552657556245616983974846346743179630030007380841860195929629480962661021692934198170599623862860944602690226680691429056538783392569398294185790838453060799587919424676924047838576119937057734548576235721657410562106306975347705647884771196373089343716743874454458918601239393933301539224621272230751964098250554357338935853177000458886774938345185148414005448729573414600095314499831917262262198339374750215217320603495595358621310968719946141894284768800035623847105244479534184425313309948289835721251392545742354346928312867633581320413044272083636265376910322336878663064868833011706427097943040924852950461798522089432032632559815673622883066366158941688726658366274881200521047873412475359330445570279556581196642391258405395861789711133792790292410937616373142129882796935348337128903636409499438328329891989675529327050941362549598928123857154056125653820647127191066877044368355972188437564492194277254918760999478237388165620006113140304661650034881861945812205520832964756468113999709774344410595504465664815039726600693797851326845895808474460040310562298844054551630192112415883687192739034708072725617963276088583907663649038649215366021648622143778818042521312840520693014325478776642706252771431902082391540601232347017259398645863543820368783950892003875477630379861516862781263467239642260479214145002185013311439390679067277373458534906417741397447907274674314893669096722816922989513500494065566246281416212906202253944667570886101090717548451738101606974466221485536098094561372703806565031704159062276813855320880935606371331623457366879360240251430925309953725601269703647885215946110585948762200013668653196446263654930238851853234458339581017996397823437988434442560698511024983586584466100881338251408200898442618474291499873022167362109556277785260261482483760404831092100362097135690346380847601159131979153950144745908588063732930138441885753747910518801856484593530138007584413311287188627498126472570711625023575537940814958092071457011728114155791905039798752436605406108544857917375074205212504622502743807015844889617181582129976225542802191738331045526144720424565146853472065673019423785141170766855761176822223179406037943135098789677599074900080405449658821152076941303401814898988998372545246398669216294552004261953663705279187650566230271711647204115758797263317416757496581749215667869463540769097647471320778225797213014416115316409025845279144939205864799144078260237171817298356550663728348513791444437858767993424135612847155803195891380742347767839207324262641898992097410504007441741809356398880336873340558066709158120137333068918866155195051394092080223836562140605603692386188052022137592125201732583271143100943862110158971461834116286476587710245160739863190575645526084100249932551771116152622684685619366663517751862190737247665292426606706060216076463947868804596171861229944512788308506851590993461746713443512713421444727252305905764585300187134234341517091147085383399590206617014452656745595614402834396102232400437872378920138137785668916391219446028397168050100005740087463494592937624747983494473080721116265298979425394888617877631780983812959482567705042673918798482732918323026090946645011831148433056110139524206508041659636243793248615692257398747044348352913383882457580060106063528326830983801489068207182138372413736728266866193727038537915279038037455127342821501592831536165905107620088653373134180125967553958686531177854089277708466355695215793656597004478745397762685354648813378192950364603512755150013390622921958468438970186076028178148173896339129445195259451774615491727687547244706600677892781259332646320288195274008889842518804489950129833033769292774240964782925883768192409119177114279791676754705746316064221953413131339622216692192567374159002352362190947371432069128563666330057492028278136431836769129540981124204462228775053799015547924244024674150531869835155097053270175097802060972531493471339787511367531098466172506755624515878790142015246720980956292266074473576647923000308440895363028747182279541480973150456515941302557392745550553895700503495908452474158436195906672354692226330351215912656123510895919755147805380885509038417142241407498336345085063484632832272925548071375242824214284841089700607139791571038097159560981447068792320380540680609568406148825820602393095040604470650834452529052899443636343965545031042225194785718509499571046886329208153783721153979623074660691424932119617141812825566614341444317149041373539347399121564831508137102608544880215702831296437481567752988473151097048439533928313331410598422156511648445672963422392227809297999191987227280458726918814140158771571952391716482885211168136902745716102904982979774758976525429381788929320524179168872432338315298890559651985314779593989977589505928824867274043979641278000064717516717885703411114093922525366827746167347403234206827889513889125899934366057288426547960431917532402076648057351603423535599809106403815252521115913744481274071588463804842764971823807245806716766238605577371239748458426271934180988016505576070236194753121400657672612078840069798032078950504611641153514495005103132732108364906454046526372501276809307931342941604172880536041019791446840705858042754507838498872556842284121306157219195435114809780963129580409083901091557385786549844334726035764232810289538131412824055797098216998940743523000808149494368884571641243875278059150005948465696519349318002975581921329912050938660802094057578484635049171700469902395312865788552829204299411182846009375848547822571660525101085661050405183478693869912207926373820037075790745058660303257610401231441895456415306209363115146432560061664909291210536255545502076086886134096132671861268471292140392028289497843128193191423110644288047727357831124816229685729812207865921575466911534286286549132212154798395838825017634465521600640442935144182015059450004453918810938098587196220363481200247713328727788476117363011919083255418836371195401735963947130268808455782989609126547490236468956412999158430959420419690081789714466944589712373991544107706425737692808187051891656861512162635118653934371078415689701024819641584150956347578478013534659620983553959153808896841364798828964018837702880290076371798827639266307547904031950164124146220514438472677383414161023755174198814267729482660751727575914298789785106544520582726050819722369586454471741533306561166335791478865830059250175039754001573288153864739442959865528609491239657751736790894894470833641598911387336398927755101498442757980950673718242438700420038482712532646282472796249549796560942112062011179110815263412196107297060518492085951304615739163779588180970021225030516156373995457613637024774839808908929076790407874336457321484521158993982119594108342545795111686267807218174733318283304548293492797774093177183709979357000899107189232440508687856133100597235399466663704945860459658280955831109775955594559076184787969028343124058843170006311950305644363781391938363559061199134607962609854400891449400930252647264673065937181422386584225124120831629853456349864833505568963042873310158540209422146463203558065666263246165323837825557798032623620023756299351397376617003092791822558361886190241988945369135622168215002831946771905891163365330239954659186559485094789908873045451128226397415846306513708801096107653116979430915907785947282587857084856819056033387420908557416993969385732825213799076492261784350781868067139254190126064446424240654638851890382186999235924255569378747043787139014994211942925939719992312544437175454195631561991344300715028372458633695992603303838218037122929103537280058176360364711738316281532207635009765637745968476212715675605433385199308196735690635803898851020624773302359298913156817458441502355448264106041736897249120595152038239964875204706382175702753994187237949037093266986968918386249922849382178500014345655049764608050916629394524986513642277755552349823300334224996083853616981783156410549400503317751740304679346776566965628088683401989226463496890186030553858217568965025105068503146046852641750631049697602565893985585980980283523966147681041023380578047109610866868924988390461077356344432249621089476227527026631416649457083518740771662173683033490073172723284654020810852238270963801810719262386905820666674117418200970257084756845875860814646656588042591764696703318999985875073151341097403495271981677379630840638561056627444627293754898864576545648324930024192529189587994070102273080638170478646754571954892202453982727448220610303318747054172339328433158587846556067706631149489187714296807166112801863962629496593460394796950153607352815365027158661391622605006680480992925878456258093220329632096717427757075243384479793630091162573318379079085356152088537629878798869375741650720418145252565110104868075003165954165015799298231654982870530237519364326892696490025145342358446418238033586979824653148264425270569856702771147667785846452876590192640724944727195876240704491788216479900546977782181483881116272166702744664222138869719100904231100582358097027477566483712924212406758501399494494930947760329931800558598356031152742283247723979851594984952384635555061739332301515101822495235736881695154671069318248445836761100673088195250616430376401599615465104430487975845908574228836780558094360569511917630224724574658328107144511709663918033831317924618592984393791960841371279844835938508730171062761465748003133955448687254780379532877304963790908838838814911068969994593935842061202040268341486244632342179936254774863107884302818656889925921621569025484440538745578285082568322893502711782862167002672548785017142738368498842646328229590138853999380012643565333770984380510215669989232907195028173973637464573738935882938135725538105687253330167811348252709665361352084525115930136394548801148385967037346460341241117490657602603318693906584916727750675077840278345392494005589054330197908919695866399605213489396866165112925596045930564035820816354817059348138720330010340053884967540594791998929981538894458497438538695442633305594491926546297891187342788216102618392506454198413826323037468888265006128746918065756808158424195969133672403981237726183694537634582827803043454119633152384671426041407988245574359338039534466024511570625942016963625694396108318222249538261587335517672878810746121391063522245709504217466580017608279744352383114985539821389140915643949118876577851779076440062320078770195499621023599816170677736481421103351485352930931079704364427112743358473978563143721775897875451990517719418606163702423019829638695980156469865915215201225594620403121313750368420627927552909201368187554264593934184948369189917182634623735502688054636668556218312816609868089923887175428620664382470262206003179399223548855538530019545481765896740418237680591477300516636896874617511288824188312366832326362653571216496426370807131797828953195429983073302190863850067768079950672211315318929538257067942554217968731419568007184316997901375812686667232832529324925980570918487596678548160168511954721765140862809318836766642738319143120676017336142683820847391044615027764421896123652344256288079926652504572262374889342706284441097046256515984480804385364014951335134626769979561580410160004453192310941727083389366851112374539943801915937605061027268895510764195505899379309397749993427879935807187330062000265254455381765030538472242062732468611765183301885321915485696261936867836508483083669045706711361830974381210346184070591099822310227793660203034434352839042327159633277796447334321040716700431130127911542850932598358678362411215479250537421635163994592346682468816130509305349878310010946522338401594154704114616646219645501352249157850654819799236626680091493909630381805419685381004588177624238265496351905338003651251663094520715353254014795822309094435442533309147129592868986537050455433109713546004665803937944198767066913651347428547588400882725008790367688452283711191459039003915563338807408993206129502847123302389187255070158464222255460363760699085917859806173239776809325962649644046024772960677041825859315358974072222399276505922092597976161196567380007677970498944508677806229106256314206769912444616775730717777113349621237344722447351265614641887308653795314076492800197869406619557447428930633628334541030617935856235271375894682170927297530561687688225555880967439893985039515089353514732768442771533071797268133475347371611130626320626448445251793662412860088988381420617595250337597139447106805132178272766973457880836002529778227620158393024791786025238270439715132422719779954607784407967472875817180893484929347439795080544846627412554777569394460071736216878596405664867377518038661090405631486199445801089773861586773065448630537204283118287599962956007418348601112668206630789696341630224739046740767706895626817297479047048936136916939238058620293865681636782716641415259470740836814611751277192489585988669097818526933905448410791728695597077264798295336600786152256185420363493166244553848240222298327704261206621847931151738726177996393621671743826837071015558422727067052852476853425778552078336443784068381338447947056956448152099115578104185622840568454669144384189656653768202150996099755906794458147484907340948087573615564465053009281532804206418400423058792212041578443747798125418752747348292543393914608752493839894823652136272456661787007016324807748215222485560001018802687626312877608417990644671288899696079278630066858630528256166844257091678279662257528817557057967905117009705229284087839668885707737997641076763855127764191804854244635158045524966858918397434062567029732820632896391672443547259239132071364895911721436744228938352704829086070105405901052053318211455962238891166930253232933426056109049978301104217748135055006961930436369272671988100660636400485726283169868949741219962870194373752087530892303855375468896560201058785428187169813112998129711074601315158182013097079794189015981656556447625808071312602059045327651452054472967639455867373359000368415367915507996282880362742629238468966989951931448122973369240384697224552700268960979247175881896456993962478459839060099111785855955262619482397296606078379862075303009406711454734538250825008539484262371227230547159864328234594412139263746618261252410960733261243828478160204613882863408060780661247414187737219732140633957251757976910265840057277994061372378593193414789385652868743132819708813235563847486590101478087155301538902896733806210621987286039232293473219331475827818502523223545007714259697722525590200010547886728706194099610469193691962137416394744335441083523548990672042601706447953022766192657850976365009324662810198945591450116664474923172660447276057311544659700894473720805315868664975547867093529695633486706638691665264853019482434316180485953388721231880440365216463795316646387561183952557291737956927286319898385311090374414608235432073321313203126081393248200249486267365449336022691146336851889559140522290898684518201499507479312385499540835980020757322859565304164398209671648036702270771108441077715645554111326315107545978259213003066702186643027362799335157564281494726977921897086911412974349626903881554141768193043938579317766997553264645740604831495072248211336888033743660792986612024566529384442604402963570338876489702338263412835819358957762833071808256306114986920013646750044083370115999089801486443915971382747929367610176133213951792842373077682196471681779472106332167913586551079392846443682622183447076195080132818932893243052480879335183917447904083248769019432336462367353390342440950189531129062738337178640347920086876346553972896831495380476302228043065766544819231063259252369582199836692429813461987204833405167341300719063033421939094234912680228529440474525182326064928975114444160141432665372898368796034260284380021186637692129444276335875802668494767890491049690520824331066206459313621439139004271897510438862951446653528082838134907634845959371033950415105510368458630645087378924814842449043521288770971943514165394421026041280109296681772962988419589233506019648929159331359137620698402324148182924592391602570999655784639367080143188986551086846681507296706206651896375035647837773104993030396970690988568709924213493951714234867450586254336505561071566246656343922432285123723112197146035016761914296610193649426115216154744671920227187391783629167694806820302976914225735436881533475066558197514487003357915730481683416578759520651867557011595196236661249334792208974092657969451340891308410394954743987819665849730581554987954067547942499897612849348425551891152029424437826383409255636235769353982910498296931333732952448278831930528894995895126020195263714858935887537487539464689466667005717120786004804223629080408693388233177611203317749973294907481776032612526786307510997178840158210918038260191141907571255193261812554359304878778761862034676626229964589438914929838917224826794190450211589982720028016885369027514606425598236496106648650158145916156677831168578025250168022560121336706277039135450303354404359628866399709135424252283558977412186091062737300241238564128225240818965964987400412956334945677435148159220686285703505004879469076849520056960615261389648935737646886892437072525428945620261139571489334560754713011682254969475369061602312802048495364180644210485424107363170241164166874787431901258686007331991463344913361675110126621411741675240148126843171208358011647190303747797494132923470593112903076465168097031675797831497092629528630176150660286373226490707409697003111346910928052380329290509645892575971842622775394946990172019032829196426594936014287350206539809624783354576706404690581781862369950214276411342074429862457972740148284222484535400299315377947234099772318696046080179427658079356661083319231914818100605417674172959626020059613185101865656477629359552438121942141570127410332816280429883728834352125741880441594517281743881709554766607161554817173161348203947533728652498851599061498427568923323358060349688563723688136399949577923154725219736469730909570603993850105348743475422334930513811915084872361443593194418791916360528960218521246745232629552998813806360313541671646308517461844203173120806802295100794960185249116225064764168989538433081084566712650184156069939576471893340500295770665501460228231905637330438067727841163237280199713462696460855106612151432944146472185619947672386541429028102855008534230654553445026381211359153329254443703297827774434322062383761938177829975327057178100653839845709357130176325912472632295708258154528213580165858324211259431766113889454078383060664610340788160379996091459663048626057697802574366273749376931229167351012253707966355887573986370908128484250495491526926270232996304995206686016017877716237740122005566518615485073189714284089727301757519481022880572369703655894938041322881468899591599916395783955188025598645860370284662198976621725673115447819462600092374502365106931018521190022340739101671163386915943945397922124430922474079218297728362395924332247159202222701059615023094890852109506912837797580204740417673504838321172470548221374807483804549490549739744531960116056863123438951626198519583925564082121278669528583877647691872090104126300019825986800343396618955845033157371208061840001955993597850336137896242507171344294107841859132239690926288630087161167856910481204966705389102354365944743061781494562551708384690000383205121148527915008643938119742892882544413782581567296794634888422815487255173310099130873374041007269023991687105742994041814625684582861470749341760318637595988223984394304528689453922122387909580869420410876894529794109210554937697000377586777330380288437241031236846333968231119205464301302395514300153015197937615380363712153134668375479746686802716971103976616797010995995672208732299345323447876368597510535569767012136146043936047673801878075193260717161117225079694613340915661309418664310789974809084837337891428708284606209838734552009726879219196845150857866854391776552128102595556967099816077798038917292480872965037283007040716562534313428388344238678977515230104631199485029110475207519829102805920956693937812928359420598355531484931636971332102038330350736503556188820256888482420659228066352971297688316711656736352859038809024284445444090241676151526642931831863008555161247705970526051846251020527682737491684482953066092563466044267573273903375157337056742051426789716207536271485666105385271232035793906707202691325773200386145829193375517379945519364165308174992362387241802566803414817445091897252635689006867736412025788360941355159510569306203642500756506798031931247411155135047935914143609427593858996401448794741851425550495074753683274736354385211768092807155257175209175227011147311571617841851221250163780746395279130411155493439903347613035472143072760510124405877708639867674751149855886816661417797014569312124745092148195497538014195834105498356459319223020461113667738981168146759488892206204363932851515142845825489643855840572091676871567395940051439469672374752318317363102500075973326012002547350281376261738445388120755053785703371698598361833123246607255584772691994208946849618987579608349362062945090644324044998977100459875316838558268669303522608309553232625850740579786236875093171175969720645011189799174897969791276669243504801806600504944960171886269438658315398899644082937261595798430154151213608049409353643137882624423378277698950194413262177835732337544018398497981920869127642915849018047605439189052934235870438498024599141593073645358654096157380543193308230744342164136995771213611296227825959957116391872398453464213447755415639487397747281653388095223795876185737339525899575833329387201740067557522525075810853088276167963157588628010112726772042640090086438384456093423186133409942121112355001644318135730242660326250492534385575483774453992012619543226887453219564177740064792695436455681921739606729594332271979036677529148499675184729908576648944952970067043564213212689362218945642172964400353472963363593080085457722683070537629817628848234738821316688749299162377329507330407200554582997998899403475631743460726938724439187754379881046249053636112357976366248600827170442409010839214821536264607071183905456158352181201265136183397620004106750419919916961636374335748165046365857024680675808479199060473133894775581650947650062283650528104303902272968417434177954077921075958337686108934316062384604952671410822491012206485372649668993380401451505572050575686135763715517820818939242464695928245295924103143070517861311505117154240088964329864239237419240729913216530860728677247271690371240842793157837170120630777262254021983303426486551655903083239739608728274772788263471539126430643580097998261298900116150746969584269692117615776720429002110703919609795016560378256520983598894554271147655931511114600510274732843442354961850476713170039309907299458043996422802539893985044914811982532933945519857355624857903415598003432697842822197965509653644173084276540719136390087786103447134076551548249749524463544813319449154326159746879855411797978857578882725702231646105300369390564003541878512268085996700641347188832724310676218690456105766328191346500503769901553115529071149024418680427218715751470921522826881862632467696059357898598727486634113070860704670877215583254451926129305019561797704798534592406208615183637012668348724778587557729174805560398823426904057810692655526558606631352819232859610833473281029709301476397129297184452395552038245935319958574717646580921389995523057544664197014366079406619572672474556548286651729199754344986154812802626286954890519003658815409839345048979103582104283115132541896653154679277632120477010700554090388612840407810707144776483425101186469102086483297508763906266804685844906903664696186780025340211974635664846577165048990978863890590985862209823936370755009049969875272884865808583592699132013149814418978796818891683751998478551962278289533193536420099547704127956117876695047006573852448847915289853129138626669760236885135654252814722741998439177652617848009043919086055318225333443759145137470952126557800857077381449995959997583885299246112938748856645106623275949257154259698511478593191351558362931508703599692619571537104409558541604126344343941018328584028223513549509733951139790526000757348223039618641777823405592892100935949388841937813805170753168725944304532038420675940301135680101525314321180359432698898910512081678652924658459976999100795777725628715168495846552984596205311949461239010993212262270988415230002901614120439374456491801646588184555519251831920959778038548443592144167451422596318357771791221172309024544059591498277465628721311759768757071917674921193570746210355804102928735153513717646929012583915881995726254408134269428468345137975049110371940816653981716460889970925388044860337158741219997329606350512301606342294217443802557264333538882569599487331349632008053447295643009382986128042931087036099448431675028449844904023600879781905680441740476437383612118632217662664953011718457340106387429227043666048877204988483514520657012879868296836032121334041683341873865229823353864433883545921378360759567147710775862159688438674414829481049880832697521592163151168481633708569865107288924043331847349832365837980673176822638688711666958245270524554078964939666399080465607227740605059877262077432198808709271788101575751636210678110234483040879214539769766659892597527677588090693919862419093885435604353937140097929587128673668935647823219738688683861026550231423826618493350125263283174998550592812845917201356252759145983864167639760966671172276056656651273130930809980212597411051389431389743713086128676553042870977830302756612611171831124190593489340292464503440415808516776494902186097712495541339358385459991777893194300547644848030043184108103069622095210738456796831907983172371867559832601260697472507016475726500645963026376874834780891904589828879297843276096315596271577321005326271023212530224992766969685259807193311214242771584663916147150610020256487522787204587274250676821907741555540319605705062171081130424062817198001705677354510632720308856413896046287795034286911767156722531094354568223935996209011470411992045504292302904472247429545444218274820279640830338772114392201408625554164430083818343119035646014415467747864891332408960330041571251394092680626214701341822864602700335641062002582978070046048844132352159577226037010412173839257995222610101781575722556379676239653706044341277698195693058259988039290251100521806465823737554453616149487706481974711852977397770314295021201309289208259524171289500900084279723131665688348063433945510685124615615078364981635883150651597813849910063259244867888946303825582982301310045681750441181091942824998708891534157601014258761868805554191312377684633540323749662838084795116370412246765969200361099773089080703116719819822443917425482650378102658239056753031393120990457811069927586529994010839646024851579333829326892436565949140582786221868927932545343010809322559997885107561885670584148299903312502641514219555091574344115733618010062169902730058287312418713583666366498839995365669441994071610306233983969977633353160319399016619562731388754560926554078091891266117013049507345552164104742847426371322333078716495205367918938409666380957764082099166880112066263177933963017603628627139829771548788002188647555500236954739253643688945211475732176411680080679800734996175835045406929581968240085171204639680675595043446776761571737860631227255225744371370266090227139676536470858193856327442739011952644896918574237322995244203224718477872083582824323163283918382774085971829373294168448926621227110975467589556345765734966036807205587284989558009010701000021480607360244258071531116718443714275950087429116528879100582689639595393143295802134328293102124691110321143309760367211474696343022438850868201262785690253080803320998021653485459425267706823560121348582209299463267508922155556434823931199477522694955451544685865566646785901284784506971390909997601758325857794565400515672857289174164534629293648965465868354210794854270958313330124576126807566227702899972360333140891239375342684738124283578840511601201556494885598597212512191839788747284489925323157112518441860380197081802742315798516147694808197991233727413378886122589322546607912038474000517204534993116519436379180458687197652662414085597732980172843249092007189799439246212812587608569509692444987189294358500457888091510782397731894014148039346898492423833446435509819895953379488559869112825049989621860747227177118112795475579350015622497649807378810967060646655191096436237792984032855365295228358314593553434329176964894779939761518174965631645897933087499589386476765435651403686174982699244368640586751546371292439422513531730845389778845928081886907166237904440742638552758756288626252425199905768884469485825406582007551029708555101692114401277315092505188701227701329630962548731531400331825815999362623007880569572127357294004091822454728111887512362175035709871659300863421392068242797739579580827781372971972539635764780242356317676158095630583507769132781381206509022840100430729003426146856649613195609124711165476846132086326387348907081829895424718101643105378095570691884950468746551510568233367377009483494593986293609723575874667404866861368587705676288171955012539915254951662730902711420433955462753317284009641985788194611300997402667632732144196203819621348854298408006152813294249088721958530897606273139767462425143138080296495518384508862874368375032247211098157831165718308783265629918377363081126617496983408267503918282899368980498134164882934554231553974697698015713963843934296571659165108950434183628708711238725473857265641125450031554302948154471835841037863852186872871270442226559783041618698046849092915766395678222376554221023635105092808965172085255512726068479261695185585946702536161005478068066308367771063403714918520889587119307103697167568326786116514388335999843957052628727255991116628766142628044848852388996925595811773138138086985546982661208418962936847529395264626613074925578940431459448954566882658299374837698162027451940206974220547721947751957141726709387124315099113397523252390881931703214179227821736671087675759959593442104715956188408387599868292217906021087071656149195278875326516795936700734667429646507197081556441446619004629991250002422162190530621469089878731748747366854446998735089370206864046419427582862612138885573617417919279050336871849257852021671181874607930752886681818925944115180524173247476579834118104882583715311784976464594052208399968713729734365393881123463437467560083530949037293817837020513458350748051655979871313088551987495450102026108134941868191435284925304552792487312855410139609822162551566467371281080480453383056510267350731370560924798687850626961884720594653982997470718932694489174335467303177830246610000696549323676998417572389463051448232874955875462192722000445193242930489979694164415757654863395810811151113300224651566081603281589892384978939426551444003132863328898456373372452781366518731536164177513293863284496554536883043333929885514816429919054836990883557915430237134428249539081340154957707270829027890299369774789801604058618606234867693755756223065306112376699166067625814624766904553324494405193348862390766662941418421453091191940830749552488908536018223572644354297805764968097497204969435239547818426414276413218691391672847590438231957413160597199117430914496946540390116622040217002333001397684765745813928494618191875513614001598675056214477664421903433198983251633020182070478502483537671743321067714160373344040199561930993425883700144408304350462799432590013792420662003847092209673282011183601341435794203275741472598178703977198290924842393096582158533174776214020038522188487954297002106093516332960200955417939341749271115293289847008198496516296013340540649245005717731429194886613164072652695369695492685271979805425970817132076448951119401896716265232924907802334384159366516778414060715951160534435743479349324863049609375866322864813276163545830374974822479765771156310465597498191987027367272103811482401110502121917189060605815529771099196079268570551241753405094886868398927124543497775419713859686511793341108941487513577130433409676430711250128013152707423566228213376104824600965368110889455786999258732801468676051906736211127140836534535088417444256785705099482612736388622263918524152087430465305037031173276064793760645681524384387073494442451701278057888342813793432473520164346167090531608355978936367477570722380607184450015892396891283628734440127043983144628476676075637134218853001684726265596374736355899766034927674065865498201570270701227567275328613826859950008216464240075733257552765268418280100898288452906347854462681289312097652557092610085658648601932246754598033980869828711238308289396855996281459464649144399199786480044830351576061239901474879287438395886547730670357163444675960680583174285988156711150189791521071504263487350410856993873852620375329540352334600964833929150148008778358547286673887846431664683764346672526841629240603855440667257883734155635882006161175344540407564583670320045483422817670143566177761056831290685552314038267044410858157212436249586763101214047961439502641515924714071059931835782252533629964691613207711763867504892865092097484424546937457000903970914069496536938201312553851990837422504851266658889543218433444194938967541721958946842752834444726247874133300302602832284669921359332744585031181792803240521472173217809010970850318523352082639501788699127298920516876951947894906583146196130383502480892914520942719564511444574162835470659836584315497135805172402753407787219093071591802507904814929469381933140083006873558697970341917971696130039858839611015018967436013093802623549939286191966136972631102697264556739553229425893518936720544315916059261210980671297121433648405281728171816563375484169884825201937889223240295059328577155700762821404082661768452806497269180717828076270474326736719096508807755766996170208547954274961946158610373817619487217563633495791081188672958174745264067985319372024292599871462641799734232275487317169899219432329621257168960457058835630475577985600623784854785954639930429613249550255367458639128651534394240246348605120203761661353049079761538710261343760190444547852424785390180905147268283923984475221721649258590533416640358081132921758155530394395864191357619236759403818814117705392488993454681396967655105000290046724236052703947684664504311224011727376700329735489631360470137492632490129246611004948595036758887311227820450510075593101002763325742345220853619486629603742163923678871985233840886236898774581074358691415063602663800960680905129655254357072648972315407701678800322421696030391201031330358655940034931863228933642420823018176820884282059626209236989580933487531240957035117404163466747662769746558201557764393699443712480287917225853895951347207529441962694519495877144313753443438372375084595904033703812230376278671307807398630977124061779918749686660166331271545644746948946229428403713410375938069313471184741446682056266952116398044208107077703588896790803053372443863058246254147678282517770288159478168237273818478580477280639983006940029785513142570866400126608989328398809829952567240316443506263676982990428095481331582440821563755293802997081010438901349336037845082417028295802684300540569210151366759115451199617735754447201734304913497133284070145201946917998777804274539280543151216810134195063623440241756775101719364543439290056642203508318282605509151037766491791531013857736979847207092233637522885953639128083009920909701817813138419638970409653706587510015852462939743141496335173112493020504969614563025738086816654464588556754050929404350831535738967393148098491835717589839481449645638874608024492046074428760924914545419182353686455138745253444181463991121995620034432202124781487233048455967731016797955195901438514217738602911534202932538056149790243480567882469942555827836449999104268937273360479970424061135273392135108384517075463803219266629905654459475427636968787163728991410925151745173872342088100556812737903293547970524031042355284853946085854157611903937489336460556490949052845903881014928903572839567448228350752606959963815727150866991411030241664513535898882436001175723217624985722416831149512965656329085099034719499618418563211016903206255149711881515614829792513535994230945433765426475394038830522805301055618157949790796980793852801761843010769706874466403963313808060073605990693552997315985550584683684723592410809654375455414889624645760101381154670406779636819668518805568018390296622344289829313892823164905757988325046376115633076789937418591281449371238979463912671999907863379233122253071291681579775074364286521579856297552736952379897197458422144121934071562769835946657804611519105854838302742894241526938187150256020317131191167969540475921413033795497274862114330259108934088802986070504594941185939917094798500011311151042619619080682948727114704063886246776751103085936197975775806445845704945474523147153992735004557120739112168371152269574802810671547208438839022479265933359094812189384617499496644109208053652326258099497677254394787471449497939247267777689324563686588422525448184336747257945854964665341239586396921322773713780359636630646613262963605856922249397180049587586859916149240039777806801741412311137193265127891412939869061480651025118577218864578357032762460194678356978155798794514901057593210209681876543210686531113629281188370857007962254195580744173717417822713991087348743317605356730020319210671662331196669953297203508734727254770621588193668251960254508108583542776578708169606048531568880309762535713668829613339953636161564089514918288408240482781961304060682007857670305956607932720775526857867238251763828710580816471813822850942005156517096921121265870363110661027872149211736135354771082921573444350952710507802545938551599857701150091180043774622347038208017864936989689403592478386038389589158994095442364205860162930974667100903331782043163375705633371341068553054787812546093453672811990117502909420250424385987713861075492354515118783749889012879673255071915269348854936572363397639277420487747049080258898504788922893836662463440027405540354146891014153596982829986681798390134583259255963066848103173014414127610788617745320247312136474060499388597099428560387517537114344742264833415565657545108128516217850005014626045541793406327418710082334560036575633727052344504159774964927875772862135898592742115463710744849963340968190223669149732962646304040757323286069175777414385069749116189055748608282842731095379018416436004524154379940731537292952654882654450329861783396894336962831275633057661579139873092832930170238283091468295120069297497524364300611941676916603294878418979373981011520205375089064184829800003792324706110394184399675095800325336878086415894257501026222115494314100251586645626230983468780804543804330162769207433321709258187481654523909378484900977719682316905602190786633007701671922210277385741473153654709486546916278501167195208098123822568321722634043711858050471997535083229266748602080384349182309138866215156682060059651333050572221460270051981379183345230998088996022894762827498292795186253721422838489490546743610287130127491745335190513441225931622381108688181803501956744255671113748622030429963958121488771010538487934385337083658433631997288948901558627463548846607074866193622063084143103561552542673905598530429588651034583728851257109232813555498352822951653952226211728465568142851446225945714130512453052025692776314901034601889873812872723473577801684675411654584000575479063005073905273075480656288683733321743218304283200252654001869613639140635449955644704515801284394460998968741616338697070078235257500682725081686932282026580674449537793252034353441994010351468925368459264470940226146813623117740336464369588718028970372679586865514075375733492485299670840920318261123941693479944578801713087940734548118749464692339587920301587750917670016285721779556994225732292405837012736909454629931241043508959854719608507753118679297853577925674342082295316980979823297564678704231740621300325294556429031732262802080081103119751251678434388334933825869060026698678863097129204302612520687228552646996960676862542050756704642280044683930675149060184682206810191897209245789999636188930130957304685718047114002132839458111633089010771390699059858182078357148166522555040497713438742775959933000142247177244017936364992965209205671321577486827349091373142566215002209228087409136440579580510341568283617987561262174858282797704360402000535895481383295313333863511861345434218826275563681871912399099602543666253405638162270149146467000332882278151591653434684087664663006601287668936624832729493593208961439021851564472257879370554488103154618405209117101976859720644854703753101563442853360446664383332634508110490941343650271653651689559348720099620730253958008003137436408713535338157345106057351677165192742971389995414448898433139320407130573111452273368111411652525622598296622601314309723277546827383969790210278383314969219460487908104497903870380377596655935467391472876713409890756156993269955210454482841523734157722371239763350692411015693613562481458858403619780629561314994635001637781010473194095901908005932758896926023213834143417108375220423039840326796124498366628952995105502805781890984337301649423706372869620856382373542023680286997516192626562108005633524356683884509261874012310832964843161370569094791682386789758413964176753604918418801574791184122311934065422471537412768579480172892791836407857576737289406323722106521266862520315659785444021189111929468478775127421966933957079478212518720416624042205775054797417608073439218301855226383725053942690317340052720075963392661651130998010493903543645518133441430768692615387864874211550500957470748393272508024067725681368873415011218567113335099736806457466247684314554878840117148725704648567461357506793952224635556291138131868442642628697918007188232980399957552706308880351896290981880881999502282089399063796125524571799845596995924337266209394543583952186776012112088053442393558471487678622100133373202218128985360789824720411151631115274425933169482117289275886876488562345614128730143130498361042859210231085499715609237602697099263478602025833968123574301135949779064087452563561086708465616785076606464049572085310836390132386302233033256547825177118733729589030022513387989338112444013750769509324377634294266507146941500673521900860088820318186338296902527142467018083841739856993766925763475670918223545783999811247922600113477566269235337184613642031777035957314459614976630065446376149785504638723561192871785652674128095718483417517414432860720350646626624676766498999344528657759165800429128449141626725630319278218063942143992925138850727074330602655393952767807348602015310386261920749211648614319865724348333319380733534093988882165699895052798132299820169391149964645296639466164221784880231053950259734300376753106332858082330130878914061463681612290876068258653048595750906978461539680347298412679967153381990212112052461114469896931154597304777691190139746154554113089925439473060084666808537145122242673870804041047243754111060023767562339477668820065831835200835737060332309111526042126377193807837103748878390559368295937073363378091122530791953336428511552676003010772144832996146824034961540280688777214724648938502835565203307693267438680368968476721674576849239970380743106384977551583271932224121591073153637652972458524517082157263660964256645181895699685543613881235376068800711740068155545619856483635087173425421437619651176357670470633991624748051882162963829836144112429458524109285008917968717748139631615663986279277932912941251147383070172864619102547102690594358044105924049670104409242498738586675636666242957040417812081199594276217398830132609845546213431107530369506985461710828578394555852043999471117305894693508946202337355336222577560689382135913881440601007222083053053300113328089540336532452415157070607750036568440795476994969713881095025906403474428119786439959332005344133631434106517606569283887984484966726343784527800305830476571241844636338295025591071976453380095447320084778111963123533494440398750764589199139617762073114882521138061643261709223040231054030270719717832838442866760627419195374408784871103710341061117966181888093079932505111632540177466930239776631745212219922636594154608324190652220329525940001848086454453370479639926551826923058605526198034941954370319574044461735001751847527744514847720800902649558638594743307206185841773940014130387423076392706948579140073630658465693038127790144083731164912993916348959749461542476768139441973729389370319202016491585087505026568142619933754423317490944047894716919684181139820417184353519486285815472586908082125597707772808948095847999004984765828436787018120720244456484891954407459610478307458100372224132772387659552366658460832733451216825622739475361675632469212970392551801184310970583477831223737858922657823430521595651707507342062756007175052771543237091856970099817518182337865558381448982103484153862569280293602145650546428745012156415618691732914495778386959748978269219428194008390529176855233991424109881231876379906410912279384023265094989138845733446182480864254371968761955210495064908272929499228810874825831918093912957100394528934037549249418643258173452819687558775891109620829120525259201415781703255026462781238667875036881344249534243265914537914533544294734792817615504808388620060320981701217094885424594231889841789928343172799054027224454357002307029832039350321434704522066505496495269109919111959920011305512415502791141693182880242283093560512463666988819277057761470426108775232511454475367213729772023542086909109393827366577902554509751899777947283489183272385900192046782192551455391134957749325386656658817467707864173803380152322079795936009888115989974649494270832229492964955870406317440720679034217995386949232489420388272452689260921414608961624849501897813246561422926687379853665698851788400894602241246075899326326719385201608837836162283717015790982532827495900284480428630844805151640927593662950190704003560949748072392664837249062316341798598418439408901042242527499928584333338485192289012500753568969552346052115358144379965597642164838886578689379265315359361726743116304879321257249303888042894246047407291144780994896262629870900515103848530480088320473904461416661925139357829652305779623135157955267432645883910266971391778783092368080465496265293061018267665810029972271537800568464858445234479359106950322363154364807371796746333826544313768881173463482385516737896983992271665536910932279411231313617876712109212570486280547090397826127016295373534253865858849588948334355052729439096424828984384015243188929957414978173750433581416182728376701262998682324911130589370209322713464725268480048768743618283956782269555656068849825265506284700212094136952190144951436397704143510355650886703236418372443111449058271350333628798605580036191270778173689083733781878871010551587956179282151980881519359131224505320528826564380676313102073431374151480547143037471245600598757202121753766997238646963723650945600431239490860301217874588378809271991574087892213652151955350660806708078554638797829316933349875232069664663281726886734979929211964938336328055386924194133128093650355914270782989133733711172197895782498078005415295683279845092968912102525007338822979313867717617317290888726957846034102038155027418319227202372436587326400268046374146282489525108809844373804277248211634330344050966447868543027574350369143928857068070407290355771638537876334425858660398440061813102083200183515447107360232770415450393824965296819931911833088015123626905738761269961073646459716883982289607632227203769126640581549645193740893549249514368853413976945974152450751376069003595714926354292033717104746250438998491864142055218989091837130772955313019159729106888337607363896854024745549000230813002594621496082312655536457843043987209569722909560705455494315748933712159074687198769260034324595468972655375170015405112368139335797712084039416403093045117139839878577307521670294702583709166850268221737264797098118858174349412219057058154190737443480641183164966028098786034820413329215579646156280733516847780366901950030882112359554136105831290217700828743535685764893991066875466890809819638148295455185549640980400802684506081825454008484437105149994823545705986935985975677944666951229584223964761044595403628904167951343166238583581491958457103899636898226655386435026772203662193563880658205009766545903821981546470918616367482623301623155747719538923506066008388674290609875288024571627760787500008792777549820796330353500310523320167839028898522837634553700012263838897735932753409855339635348307559846658364257405882565593286981992688457732586702009644558455768671642050043563095558028624816784200049450367750916501558043697030140656726348739182689213293495804578131163747111413522316759646390344950127604731923381769641936718287545137885681672085973181197196383861847427455575154401152195136083829382140047993445258724606892574846280441194945981095465575646632580379836555693906249237091920242471680426142150719312480884956530302866436805368038157619677799413023653143106249099839090967377884118896983147114640889012727197257595084858425009343687541825861540275147933972315403811262066500956413237652266476997400802250042783513641678345586717760192617098984392734059799174315700419633070757491003002043287334118326969696616252191002688124421479852199893774702941202312810207731353617551327264114207948572906751382222894989414927262402841054435496901387235536716174613017951742482933038457064274376776306658889378227128773434682653003786428115307288245025738839136224892902140995477429088089049122053940146569718903053489060582324068000762814997826851616006334538497461505441848896955092774707542524065998663651050395478548366504420106547195620303428553573993103465583461350256181673811318002808752366097811733422657289469550584301552352630082535968259247612017465897182227361141971211372763614457814745247405491598526034401114126741158123837960810647294421890835443109115535080375306857361962928105160384453178081435445070776752368707391271845008242194190832559549476683828627556111883381429728601978897961797015007550425320080403603435043351365821111647237295154225013946312720476765841080886411344323025962266261032648441653316264353103891744958428667468805247176053723618350842972319702949414661459234942459351528398011174073041462592432338339888650243604483276756307829817359956583164110951581460930565155031155761363678107427681106130988876659069351031920668843005109342573360141049477090217786470833180846697957632491131997386418488339111498798256393812894780977099013658581379220002692121519647458482684926967536478970753397853537654861185108055891039196880424891193942954826319397985157703385568796344459151834283174261610100775683658831317834551256882049714876528157308216477593601717008563394109387419269633444540240533036031002902715233677110893428990003462034117487181329281341727984204332201054381673020811431996943339995828173888869536950315614472265760302320038082146005559547816999467688235380824568868179568269581158759786074241261488942294148144696577476345109428602566773475610632853524348235748771583226822967073166435421755355595995889332704218835923686778320153161105124742141333725543587334833605226515557299158243999133069567881783154856268138210414215539313652408779759231551318321865782968164710794248115213685288561067236156552000361679617532760984569433065841061524392128439535296194777467118069175211839225087430385673512006618147745648916381392898451047211926459251241687403156689145637124548876525982070301364596535638873166939071786174439378280442001047927864729134798720751292990447927389756950107603227703329541845478231270362644535095734186295728009051220879149539778183272237313089091451220599513817303553563809545727652636128478232599332710963826616293103049938210854737112943517429843057835209535520194462037004351444775839373858430025352662398427165528427137759448220683061238333988791379844787554837686284264706022361163746795926633299723248346413931234342070455489934178684073562518998936599016717615328569598815530731954730962114295531988478491252921037451162072041520637192139622808782938339704606732773290986371254379989762677244124615679186478489497561372782888172434334679567939979463699716253638971011281236596767883586023447132711525317136077166265747744667418189816429793180686533665780561079095037883706798552802292354006614453791129892670247413080083950972688095937546489614273977944354625713049009980265505271822229288922112063765359795934868549390034169455359522483947840857269014423575304905529468106206100480115496679571379589762274632567760847324367111580928465037415386118983001407672539127838122817188117123224359112691859710877787746426537633606126387825717353974436199398748388574485999132397593683533213001395457037358983217457999458376667980650508341978593020367631376531095750528703451310030484487041333373068409138993593985589532401962991569881423125225879857421463871377262409736833460563269876419121555593813985452181570253088185746868172436426134530653453357939704358193024967374461697257621126446970658194453894220285430470218862043130337637529181399593149149529382901397354607926515555483446759632010416872755801525257391093408339837391980379158374700940074205522433349224808793739262034932509536963384891849514238861507781522632945888928272525720079476961884274967587907158281651907308561490887129597689664736935140463419537478591188577917450431822652620202395045263775365623303444439634010384134801934052758768759132556106254478920950833273360530935726949748234164224868014671112704883990099776116714029497226616978820885682072618002373985627349854598105328747698450202852814948435721199770429208064925571519528892407681396604687698879564877774729067297456380411212897049489607683976517353500747636153653526042794936225055282594201658019770471786592227716851975950029002204563613692498004947618641501128396371361776116610006565941845445894239919411869514623178741022184284239817094083285974408062176726572449323099648226283369953713705859599192311636127080718202216153236680348209402552836830972628362268109979660462086054151816075950083498207678356254349730298303166275929244856958619948055635301316468012481406039399824675269082345051069495905660288764736616180221867393570272740833428151447251441083346451296225156514992951219990977408279877710174005273759090833529073894165349466399068928098204309916215240717834213477072114508574310209293952154225303879960971312992263558750262026781046771906257857728307877344761361126793859247933095872734002145914599677261350908050562324053656556029535236229042980681621073489101252310089671776792467379874376248401840707628751462435553529961208628379046056295707530537935034280928568824095765507424535699041185851749754558199495728116430609945498661072059575480962761001708242282995434444169179817254631022056593977924102535369694410138873603281538651056292127949723758345429137416752280071690546535679769855876041036347177007127021322455067063336503637145829533765077709525447579025647097775384221037278340972539279341624118338011533837459141129933496176797236504041283757397655915341800148661095555061331357033422478603757899722999974735509663085394646726727628800287224844398968566263708890666735622166841391755430799812853718120667384877622617788582677032188491410758915757936576337330578178236803713523561877617322198341674228265029175568067952177297313529261493908864292205672972648767219081935833300057144101109535840087506589013556956935449245715744483693886624933940963448257987423608211345724786955330202972425586845242141256462875763627721288045329261874833326901296755507624064122206446331789735670957675094645004915990844173337012746319049955670119881788877782404636425168460658186556393403965412329719538403495880090734942398358525893431762423903706729260455921850110809281666290583980649233768173869793082483448337487673947455063256660997349852514548103642829030536731215726639764394551386869345223875238988502711352102139602756072873434680497000961023208898667355677176139586141487909129198385989297540217480079985704574192716313910891430935531828750569874245659041983037024398381260482097364603014858864462407541246944717591539257710934096643333611148034601597889311125489328759311766986405797191838543052952728343790453957799187138409139167175652005038776021635131472304083887159283877198508523275715134862698031987922731821370525746088203457774181607236308753275477153007884204486264489281070842818101023165510805540016840506893074498087015379705075212485308707391995070682646395262450773364698078727580644882327465964292517781247525022260552917754422579109400721730604875508284409525517881366704511607181920130738942991572653810961156835972982564088519192763172311459549657728898626830652988339999660648301986651576437956346268380781673761839158087626699004929533014066979046744155625070084582008467870120611202825973372198204956597604923410650108556584366315809222132384410752317589902451390437016359452890838609845207318423940134449186269578493283062575381150033268708596014708412397856052411529462149603759984790599642299031646062337820858137413194462496256793934943640111777119390914237970872264628337950350303369231703011205740925979733479554599166735333817266937705679238031027517209253027571856566736063670339496255650800706405198524714282597932929890201603639988289298934470528621902403791315604846969999903256734787337039230045207041509097128764369303204396587866286241870337865505070564612698362651426369503349185091540556057927059363460372734632267186481575077828710432801831207018775762174689631186761796217888629012301336914080684153881565155046136345041523800242372749312313948559587640936935960934945923708613600037104550401916858551500052659493285079009270374591327167114714845431685879469698696302677493784324609643271685997396967885091751481552330590150130245817891220063170597981662604512203294808532578300042872752599958074789635314274377244587883968930317168057418258809042358174404310144328710261909200648831953141124527790204516418765855187105177271117475977712574237207985308167847197901120051673975544400584462429107114392845551225765903106094719935744237902598552614477979330845796639198311668534244393770188273231031180514370006248021897350807152028250939586153802268237354629980797041788565797276908123062389160684648439340413901388539555685426702567313012204333855281117810447258056713938272193198607151853256895068241375797214547467081305969618206691544403901704809239287006049963870433605686196361911182204214641595174558735079405500688149200115692817502513503933506751345887860920829197416823318359598534753110051076626634398423410796161618020549512297017942824806603652883538071575136777641597156016246209391962154988119703367120153775710646741034583912483893985493973745222357034334509416453298212501260962536465425860836952084498604090185436205394474842973573941613275035341381044867192538002616525528313858443661743885522644878798304288072936183441023005655411326127591296878948534486136677506141748175927978983411589926205795990791434594305908995932797606391752959106234696821555142331807678899575083441289380424811537295092866672821997092133752976283491546577106832381235591501780084581039194561505465789636004868507936663430913724812813284989602384107582279881261714230466077631223121926154219717816152371337232090778977558983991099966497107185587837384588214497079011301947096962732402570459397813071491439142773623001215934300505288493229693452986536490825484788506372344046820614631748349716020727711240279283168334950999402363194999744489532142440330115206185528610715016416164018972603089414033400853595230446433456873143819017097940755918933657570086766524928553348804548050497377806277690942950595526091481688551229939998245954323526830810328590439348286395464131553809167934128208295976670973765650182982342716023898508528994522316512615127799339648335408386583390806838937674661406322136567612765897344661882755032455778311270585415308549371484464838590603607365718648344840379085620610457686587998116483429989058948805104360841832407357072785562833153937001747804171533602120211679911867751235898150310260407051548153679513983979414669864203808171008846218018247234680477522943129450320590221462189872095258880416340269069718781461302013105433661707405091613567132247341053086397135390172600183343972737227202246630294404334982182440111922318788086365111738192838382284257903200203252126147579083055579220713156206189895277662096625069232765846091803829061600260322727727496997105849128133358019509808515710438278723836296538499761633294777570799015797620456076189558258519804917999120991898964765762484813339046359917307365188315165434438435184581405993398055998379662903153501288229881572331492049652845156338432266034607136369385296238967648517969318435984494193571301698329692476125537329357977188391584416920438089110906141168638012712392200104050018311536931844789956187551245885513570058127857841739278004807483567291630837580816938623845393284110135023249282393664166428331438240954086592445635814510275473166976681703280304614659400462688691768130015308943495046357203692377972549717848965034836232627734518185961984078519444892473030886518534492803761992040537539020174811268354389889265338881235372038407866151361902591654852569267736598121605367126063711214766235303416644592776917949665437402922969675972189151643542888221314205093741216446811264022973784594771094378084043337488850376730108305848298238588477633439793645670165826097179937831741235917928140088438360615600820346529069268746755501459793100648701983609829390839942295263024716370869448589031930807694502376431105738109912236782027760048802479937486544142021487033683098645295929840779378125498562054078281776251944024073812981817003617977261330087763134920010573158530019530530794991409701520564070921657249139743532636852188023022125980491258701660410815138258354543205923552489836066920004776884670045044279213928002866370253942250530998453051838861695286644565830671909461786089654343656910792054556994857937510919620917858985658011287230274121971729152453542236098412496466859127069305813516989112989703560769161889735333013921538376293482782285950128010891854113282828050740723682972100600272948898275711389814751272774981216422286314289649529334610285174682503310897621275551908577416826658559356940659563727873366323104878649920355162758768097373903487668031181584035962764569946694747537550565730070975153616020716839130581822756376711398691403957000292866142896162213514872496892752788928595290237874654377980488172314061948751356281121027781203982964030012878522132732509819456595602424010153003411045798383425917759038376276067906738764555455500475930975318935881713467222818120730450447443876637389805361204159236939318901551167831141767662852623021652412609238447585396516100432029190013655126664584724981252465149216921243869846659557788174075977873537193804415698983409725121767464725484915164945987221183756078055929164285909648678695348521009280519262096337191251345634643038198658234795725607595728474243169169241336532454928839411583868424319629457547287903870575077177091346296474041529530248784208322941500825666494556331625007646972768411461285207393261012154712926857086584386614226903216141298443864089860408106813482088785961951132810286710727242334518142234752453445943904275109564485728644681329861102904942033626765068814155831264091165229401919048341691544553239882080949106706664484709630405436724502799389446148927909759570081041003264979764189641778127268533049262116000771719209813784779864112664771465513995411823215323500194706552301189930168422144178558437265220217548800181507882460063218669256668971798138160077303039810394013209061939865992481033099423706138089044249336161892126379510937209625180479932675030099601592724093215221748775159836008621463053853299532067784297734907855626520144666934679125172692962893014881427704901333967546833297899998410122227742512825116660119319124385899112981844674746737559223190969769120426656874165565213191842825451814627231766838753678917732570276047229774700578831636909998238756435724238771505656911674282556099535657595846686884329865757744173164220088709850732324300638249782135023272395975332303304034342078362762292436908945640408537698493227697779329240388182732051243155732063761997121014413469522330143850075720176502163806663782944626455770607392452341637750743883505061104450946011407227062485474810127743239481844300189857399780758233284548212612078560773184023094292436368396482843188816071582659264423106126151131464333797150083123437089927229982552962505618638054400248997338890834138027926410627257015313366681987032021432800660652510596736585843598581686689401704662523928850562137566252846051156148666864993127668375431929473378941568567050170229096838821203544880754451621027228031986215826938637009235302321942314149871737172534988465138026276075550331003401785598180174929034927115045472037975635454939478155543689580464491801293543629668323336247946570410120727424343466941346255906908028685921202674076413501692612005277046706133700207905524489771036970501741818896232774058199622391142795239317827658559474227740260983270489591187596126558179197952835539007153063899686614318063798035657697009985970416992138184401260178558157605504263282650085669562379709257471661230223835641381903567552063913161243782911586025613748903811741312495732330331466118893512789560560633226002374194724558041935095181283961876953649548567116927153898499831120442661404001020234655516286152939667987049138137252564821768057380155706930501769760252324171286352585453407596219895328496256821101413896345297958992836203803112090564853232840739805322837885879556039420364578858674339443347281805989478361496217593975120545616668749616599352548950259504921322913820138090430077157649782217909649874085050550508713117619048467745534390241790580606817605253109913239791037752345534791097470178723690791210611071504097479905096766041413961850327175459992061718642412771397709536737656454783916420325251694518932617785815758981192675162152321604642272724856008766356853825331524553159857386206834360389774005986687646883774076224754995813394978928401579658369258028119459700054972947159058131576125969984174249477655536250517261884634190652865816236426108521802889199974056337858995393530962019723066069061915673649486156150267006228912219033150803054009905228516432733341394032733615045912669322242097401040708900844115672658990199658036524962068986247491990436200493807847011772762947296947453444608363356499755938689024131165878290605799003404408327022282927769083773659743227740777230581993475192925043475817255795415864947119173733413294903671547766761527273183933005307067939264723338606156541897629196668768290731989394535039245698351723482529571610738862660075690903850629935672473135232484874372971084995558703225216811717356553295581068210382749925522530272363635614324465933666717715021842229959919161852641123665334706222890111638746431970585316877036089967968881992554209809642743184644848267570877464916945013164419780425419847523687253573516461946034636848936997739134783618676111387525890345299140284359645447877691486372158096036804813208237931637005733883216041119666807122853896504016216930532256104975752591889285724437876478924796008324133770724810784772420375463544413352928710459488009323256114736910535966762148211751337731875440602222436441982227698279308367787580930244425507831237903249152508517492948126787929414616125474943990035150770272261614343432691957656059014745738887172436050501236996820252869633886978408037045676402254777942237209391422087789937132794387840891201057325777486247037980538035242746675664237349016733307844290046977065675609770232687253993936151896359900657142406850412067378834871251389770870517468873629725473311961289312376457203282239254512365021377220005833521885316176565940924070345401177440247113293600036977196641941229918056058506169246665685662951971835418411722810797580535857681514847718550559424187381094497156286484901978264945921282386399431541553018815794420157796775967556788337964222311695059678857751535030878809005574472346348673446499591296297530023272977004328831479541318575645326173241436308551122296836333703861382781983595083360862892241223767470820367633245267837442707713700236947113976830601499784784187757699927359049954531233570686211754376453412048368017207779297467169800220081697079454379954206261502771094179615036287566578974569285016587096893944522868034502497688976282820212656229406554510413309386822340883994649490590707654802274257689263035586596243505240506470990356792521223622871539736278031034640265771939099978602425305326223508761688887633531829235344494018799924713378700608785079904227950584715529363313549846255474579297538885115777636065691163083554487944977694667681734725785396166852806980310034180101484768801614276192674298130151373397608086561173875679707129796872918930996248968563572097225558171788437322800877174585051124478052449664819946860229978232730019180862456237990739789485068120354097641562395886503311107262197627808171544768429855722512915635548041421699002961958283846018705995700998013279578201206764146756768041976968206360799916793005790922446259382786498663562916731881172378021754827053002801531600107118975425964426861366632416459642994234781240530415014275528081102431845784156451026709686135655022624875132291366604597403020337777193369083062822220486152327865386757243931195923917648226803200045406514887151642610927088097171626584278261166668695371497223666729557967698444864976696187229046937283825972882474572076451820754124492948844772016255603331567156061107480731706518865589903801496120343569707718753835215952434210570721798885765474004282230327708312997303989107434105252590492638980212872398407345164945275305216515240973800215660645430922228181032579971181601409710488195641493366600705584735692348388703324231147486439396190736886390503167763808468721631475670578583624910204272435808466044493115902183673220601770607638043229361481218689751624726830112237150788222335176872205716714787506390108424809905718284112697421660892591865142969678110476958574939831449768145885843966265403685430158579048966053873267408247121453154965356923177210496007469635174108323947183746237534635928654730096050130149883848489732714092933369010525908672699628407475671331290757951232078817636511734637507072543126320955228622371350084670682795115673852192988291352535020937469168922367390553747223617071977577571989081816638937122993796215519902994204866191721886564548456796961270747084504061003663806861599223861558234527080806960370307528380493652121589587256739997328996410140538758833202489541106315846974864366713752305889947781824633519941616986261184135052474926839808199314451831853862367420894711020466149880906815798807842909699435468565750135329490887235544221943294025936088606460725181779161179491641006048181049248267513144527452271620226200093668526124662755828266328972055551281854624010777823198013809404436778236972143724231895397453624978026110462850285232828049439092902962613870164832321994472808035022970382786074954182888476133043724184094730635714760091953015181696076637912443754527817413231976904598429800471215636101694359624181052800314487088475147807024880372749762084597740401539233391324143447814675561984051471432087260159711889051690167734273278285639464089253867802879100689919377633738567973744345908789995535620684112106877539761236816356153777622779487732538663472520308298197514000027582204537822210711212793598592879108869561101135619920387561333458750513493403458426007272323197470134442715562309442767924779524009233808505350256052374703059916463722961790114104333042170295621475601643411771791699147619676246946796627350140365309759559827225803778560974026296565652839377630163791772429072124429153981395225752535229180829008539859545447553641155770502925731262888308458165215417429822504575896111061638484281960112662052394529042608249035940731377357893362402278199240214545106004032799748575942044102979748230368278203838408575406684141089068009151859845297093912083643685504660700654641970941350739507233072645211869054736560902411186461171676803983987928477489783559344883368757484979409173698219101761517010073933067749612769477903095954065186067572293577996353201375453889882554758631849858603185500477374244682526854077841918090908490327694809346411399555373095376488900094337836099513939919529062291406101121182561580871506554032656265164904798269460595945697923300173570100601544413925254899190648863504060664608235338980441618671622488594632342803497074925483320847606494176997430787646993222129969739805362113910940251938372234762890212795703317500536996722734037990364088794555979730292200587926810322715070511281025417877787777273488125836888155364003843374190950829119038072334250137279750288324314771524125469715278197099439038601473407386975495179231862250485356719381249517534212406092204434651763773144710186304237983006074195507300276058904997986114659573754383059312019499034741345966305062869254025675632518924924096706835005771068962801140013769827498674346982997572638456423774195338222058305819999140652951422902138221564308002035864408887709865115068626460721307289969693994290634330801887444705198059103721775347383140140401481917422331582840887715283877397901363825402109608965953321271092670468135434865547678147763687939556681503357675084699713863747235594525775527817265345802722022861266038198330814267759580144260067305347732076250624549442116509354435456410520395066681488372904731596779380392169710547427687210296226696461804930410320869833638888708973102644374005866150569042226136905820016075289120731399235783709537817650467233006254527828363558137628857673396502358157193492683982858635092488622411011874004577245886958962063455195188464996076087850136678206885229281978660588437246698332323685856628238619909798075874036663047634895529825145251889260414339059372746886249974111027293078374207723317568438225119425264515511126419710956957731696449256458567582279646051454136208794445449235725737629220555838207189056655753923180723534024188980914525362612354343392436279043108900034990453115948262083190920648527874858923912051825741181332670375585747786741766576547267641897748781750185867402834190338960762164573690968678934875419420620015404378393027955701159790487682413432479096279963481424450368103619699339980869757982650898011642621577350522463937643321737867898383894192225755432357960515305821549540238462139538303766103078889345786805697449743301135343396872823868290131277651290949641754212534727714141166340896425162810681007940140553078882007210842266490900148636205205099065087747047811344797533649154585358089032958000800419185563226781937903700312598280665581438475932993016761886184854908639006666492209916042085845316292985451656733465093847121573754084464749575345959602291202228429083850933972637046730554811033714196773715951509621668816214832212346031516183992029279909109234222134336298582588682995077507640825254636501020745813591599565510578466115792987872162552734950037101504781047494362654302820110987681320559318852539468844616023248863385241504151208074276302908027409953661559752261043824097359508112590639242744860430165141639887646627832566925559707254486948550385405097883846406864622309788761171385188169006382312458965069287524484627635674161261992898426951534491373063565900806890138530204685862575660108216254896571169281979893567075176482291023311202185833287345755357776891877247017884514624969806373739047135549697332049317274119818790604346480497473793906281272541663074072298889758697020562792329364678485252184608692801335698045340184673981174398047278588586795800834033463112103905347990639238000713481932097131939934093404136017554160537653990543968045860851148675348195362486289151494856420607357071313405522721580274594354604699324993604269901185487530542702289879084354004911882835350598422997664472615777254115666092532313249239737730190227322268273416947237461309560624233363032436151476110390268163600752683166644961434977116263365823123849642011213250931534378535133431362630550058954106131798160209420316271428146066696381879668525256461285028414120306269587810761532341896153033472951771098386552219942749203093772717410111911774033218015187660921032217408188278476412310940553252397740869689217681540699763126414429293687199311171437126922384603606924216534996103521059621407636443894092451562873312757818734897580768880503080754219695292466926361024983520360070352477677093724820035738740673787502393982087431335109695132826399482194500836198005545347932800266338854761545474424446036399483836580332769322450611631231193263940521881362755870437735952356158868955376649562713603706565580186896086239700569078300421761921640876266606806797471264983648716765912380357846218215697418234401376413420644518184538681115365887919746366242577791395381024268376852015979804579743837003953871329770102191954439270291529265188925343142503115412239040249544186638114700234266362722517665731910926889807385070091886100113344963789659330837905615235097128227618252120683188151914178787217979077669329357832887270809932107818514991925627102233913353688365450807503924231398021647398735597535433334098171275877062487509607284821649366663176489103485831221766617356352535274478337634089786115170432200514908746522060785876981600395795536564921687666599975575765574817746640788512914068722072182038537354480565878077122315079981838168413608871759707179211211699320703208828455879344198189991177262317343767240637150826540465626829710699088193073908512084791040931911955095617806340496383664397598810246372881222335162766555223787784493749349526860765314849646986840942740947482938981889840533076873611419791943905455028212141663472485058882770111712975728249936458237360104414225207330187798303891806163029265014582518512509940241983530493287812331261179046275885995959538632294392273474333342884276423813626361819582730586135422345159873875502076461245452857937541405133399952869810164426934342150727333443923581647295830291591760900047488637432106741821433603334976175529418941307804876948062808275576959612625526174653200530501705653913825622776752566861968817044188145652063824249951918305969548240271548875036025665888111670330857135318256770784392955651976271820569251228361111675103005011079211398712764449526789795924435113367057119847703192136514743436750892098085215531713515061347195238553829722321334365359115413160151606771353364842332522286397662327122094172331993646333381373517947248692242433844628066987820810624470316806712256431699467917128201230607318138489239856227855207822301672225358148886466908964691191443933833758129513240583898029708745827068873884692758960963530403999043867457648970019063511318857803740339781504827131928968409406512389555624664111072186611074216199288681187017822057052109483809699278970886576990628571127035265646309627231443815537861944951914165393041608255376424585491752350717856497419867910778578098196563453466878274850693991553726436442779468151257283387143441688297789812492288192334124614367255531842277916705418273001531539411688329196405738256305828146977131962791660518939991468787668716494739150831401924161558630907543987482467076424019062407900246723155866526778867978718193478430767908467802812629404703305692745503780131415539499572342514848361457794022659922425065757871321203945606633351833189637244005221242638314464362721633284598108623968662533667296001480589936152831080623705072338818515553146147944143893235756135221325480947395911284193741160131495985466053565728218059798235169860743750090921040498653961122545825287170086970625703593688871855786418084523176016119989429163053860191261432685320279257199201677355157721268511544350249983929555659740621363589129576945668173100163424369199143044317930212484052300211912290535593007575244673681482353786341856136948825825112817738134704488098785675862402296675225999012728256267431749478185544500010168828285905935083090232391405891467870921157453177469337780874585355296255129841754544610167470798513929118195183910835204470945570949472264122984506888973597045304102566520704218670472143431290688856158086656161261078980230571440437261458289085464794888569558242926393330201082754075790117040571420953647807535173300573306580692311532236886265384852751978148629519706674498927487088117799337849377274219880377137802691974179112422562184579232711999707288875844773171568019856340939335134222262590735569950817380248218277985336016091061683718465248809051832603389883672925163938801518165132171672167466066659484175794469321230630230699837253416063724645605713293543295399817569152922086045682761874152526838314785881239653205819894305059727140526266087414725539498294985197983075912611398996737929871052791810429529621991432501045226150787772491998356212097582662344095541844333598345424148584192471930174926614742900222600352800883696764506854117797456324772733586381124561407092896558928757869323975094525551850103399631983197508333110157589309247084470869959823116868783535324764006074569965391441714454005900917803115596203816881055259508312011410150746037335460432407507979862173730396119814404898337341218602273532583363927719375939811387522561837654911197080183716759023152366166370648810783308732993700623716637933597961633658577395952168209307388345636899769648151697913065234318154191079284106504519402553293583781320601263481704087858605256747955333094485812019148616298106105298052941761301090123951197373754662457529225526790569328257351070141387005687125691812051854033635836694103540108189773893938848531310239217576011497535668131872398460372642606807838698352628890923745180975959588312490075847135223847263982062146229930984676941518998087595028171503889431833772636643550207158216523847924610757980784203235014917181036798082571623538999948753925258049480101795317063364993472931792965883709177860050655799937113693306633556987049634064606053114777590553225682239677888017317932873481088934348070423654210839421636899929879875122675442222076388475730926468472335460543419724532771511639929065333283882810549466557683281372866790109240872336235953175340484031973928584990662377864195224253362054364266398660510361967790955556369750554597414166822929611363723122997814186796016327498095336741840291239968764256140419742492254938084479828077409955318343468448974958292878452636849911511282400301774529431958982068063679989101751973645878023040749146766215624688288722038035323750101735371180517088473900376298050267932607397706457031570725556370144383293894068897324629124627930417096534363103540502361745021665242391137950824197334556402037629622774636479876938971557253358130245324341487645380474842080196295822970049000525288077478463230731323846044116616744031446412218260931645646201139104404446422590587614452352283979345254630946450135384632833115136977658341934263600333614831888904040957427271006755604541101966704992785536112065600993864655241246664859127285074668989444926426828283485752300499550806015873767920388054291118365657751220769373731752644633817911446969909289379158080386617190603051743214327752154922995436429397753676822543605574794565748974029386165592772942669692009579479133839190259138901825389237307852353646368477287739015257491666932575014555598387104020374024393826141642830291135933085640194952325258699023574199467595535293310277577477914891543657490178840377088605212079655025171120459342609940086406470093295579222832854631563053868729510457908843336171318399568872120169098606854507796066553566628107648650788588493404173311880445411383318743831841838130235979715544568417085859305178402307019055069438942575884312634087441070313448149997445415523137937203977245925308038935047230468431373235190204236687211922899174417283808150610761352601883550930155876872728511289993015502061587421443592836493589033139592405902828411433024290676758225115601206801636396860754372042664049047964946765902975196568025237867415132901323767609259802326308537621422840295829016148913409641508618335871715624909554057707335978594063253825879920737433990336068970350628953043640073069858449420690583554470114008623197288889343752317540454554284542554934547151570346923534783668489293774892066488236779477546856196277067474439894797646981127810965364661628993520962593454379984260096089108508320072768497283510589903221405267049312242885154595522153733243655862894789090076836364298619651290705840213168888015442881466420405912306490170904285172200164667530602896231234505129088812541321266135731837292348475745662247653539228881498984430579584727003991015918636560924313397879706525887742461075861944367732831831571623145528478220784957608499390356154850953731651810648683788370727158545371965700680595459317090101150840455632985385627934429594185537639612712419947461103733266387825107100332035556180259942899926468413653834905234980188118713473353851893892987790130132061337216061806335116640162359154675881386131152652625257661395713807950490784570821184210391379039204689588685798495576749732737249842443969427801741223170168199925068024865235634130944447167762447292087397726748499568614261689785022245173644938075307648179535898988850451847076547128816612213665464440238687719418499902528958961299846759523116555882490706292628793857922679734242877645899312227857145343257706064383148801166828675275440151678735627544328887537261899336599044893104670853564870464076697031196089452259004086606616984679161469192300323532686015797292205658153028543879021514193967491708706985706669992386273547927479742906626610975291747399056708488252347441330756265223485482599507294914037797295017774090450672838890223523817921331244185565500298696291545467845791763671188759341199995938989506205988744070493806962021175291672656088244047660535834691251005606207764961016310735074747487346525015542909271167391834726596465638739589125824550965727233505587270431604725369241468134317376162234608313889612014434496435633196481492039937850666229414129262848670090666423597430983946467061057188071465181085453279502017480712309632485039315677358262974311834462460778555771517997198525577712212322448144539524182889448416721917015002848493156140003152163873953032831246423085464487132456337562447288001636862348883787551327731741591104632422940945405885649865314979955931223738764655390139843291058787216893768411494384606120407909822229027286705678049473388145952220889699038786972812535669749272128751267246882000519572237301216898313776497661069288502598478439323248156971142892601489318011304073408016713829714520718805977818235001292586823207132394523934164392083326869363023995017932113698119415681409533910195843467878461783750381406852228395412318723391217083780156800377243336768810612208464251705474589368103804919545969557918104697087813610364474622507157392094061059275099784297995220453389504736253634006987846027865812946927955354313674319269813904545304920870469639346545697370124009151376437777949759063497262166119840278479996130240294114804876163808269528772965058260900039366251652457930770049657423126267839393734852748064587532766043081509605431261134070006095347289921574454936401771366056019489989010056917559145658259742740234017043181189171716642342157579182197842810980000719384135738937167822945803353539122633016860267639342623255656683374296845432970110949272955053487110470486945869478703627715343555586666578281653290674141427817535103852106509368450095436657166207339706968428467230196910212612436368304760056798013893724274073962160753349620594752200064106157271775673445208458544395767101910290856302101683627056643892164649166226462103234410709024307319739161289389943083861145822810977005892751239558924759960026261939025719067305119946047859578523730724262542928126956934537803984906226585523585492027142594758493272769642639341053454939736710404958056159243251809607247410511794158578589948529731288978198564360643498215019678785257289943359496777526265576339106870720513111987673115622107372039002742693545512801030310744914872679924607415398510261433750483310865029592878036937505495864432089707042941541040558455025963860538295902923532659804669678687637215748489132102530042296108330469715577152707635247039140933434688272810447534973379557119724297135180791793976864789203375871407090421547740206181294771984726357346953184445301467584829617924919228533733045245265375283416699163097618790774366074130859013800505583038227468996363819083734755434575943451415525710047559954778322185397160843563050876533233496706885231767404048594841652615176686859800711383746735131005389007959469138726024941239106067449024469974927481569887802087772969964117922348094989897295188878012617132213028832377614831794660019745177884700287864050250906262823053919098467665086965843199913064831069840331440307081598469000984756748643955319204425356546433128974964441995245347388348683633457027405170478526476577207239258508728928531928967183767961792963811549373054332106868109854076169794146378572387072256865289655166542593144816033448321107085517198975646927481813742748025569685357943321927882366152936575887536257987825230811011910671266170748950951372994502017338554355187200723798839889813580342558510083414177947523492453798192370665122781219574815614193781010459155184287828591931454455074525324312827516285049499732264480351144538281899488538362689693162402085601507705122362437786809138090291593894210931116352405923086460696717107584154100827734030038022926748267608687164568415431622133132782964671567316534303627612593034578993935906647047238652300733863460661621594045502398197728493098312630384084444652177570179323078282318097407339414701230839197176870022340166738083978122962058567583662503958380613971108780664570361712595867875846995077050789388082346596794765054074708509864061437063572156252750871329392752772821014687949231086043185483854818025674412898258613067958984946857944551563961654132197183806864344372766952186194752137756456534101357337923485921308858010040569621248836952066044866802920237874862778831768816691622805846755830220370755505893166239284330323695255473881956543061397496806528708946569610453664070508733271190560784039276306978169040933455694903035521380640944638192142330208771012926238963365760285634231314927720913993991350192631085273077701832116072027644326108498628707029285217081937884864759299703094723074036382468774286208973637729682930822625977955133024304854809139332220948612303471086645981343049490817217205652434060274184711020065647523075645525684709980841890161412209910863066083061304235102144989325651173145656778833369322098002552838225364857182510962364236416310687456927194938736124624711470344301958749146375697524003976327512745198567045303018960790183727744819942061296192982682630804749878170730374042036945241623822452106745071531806836173793088377734011248263441336550496047053696947525889729442489468844813851492331045978016918392364834019423894354937924744861375484012355526119559119663665293845535719902098612748042802346281072457757298150146510661932007778630900659448472854882983229048620123002375917333084501208935109725449967592486145481717724964483258563046367815245172193128225391361344644550504849524489208075890171476322792988439209225861674466921538878768093381990107911184982700078051740754952126150489950636222989455603467387558959378770800259841400117132238456408171846752413726932260860550949767276512447446356665671869485024342932499055886829036217799852139013830676932841417576582234100066836904385597389268152676384359261007622161161605680986316872391173130884059719840498301236789803805912384327229368883440336543564391943190310297463375000508305141484939969649232421480722765825732185127658928076529864173069254205588088145233657172241705867616539894870984810303739364264950657402671076108128024776412241936780763936525002923475361071480028341075466998610647184799272934089097042453274811918798761353517239511916196850357875528521587140375152642187854441952189008211632757508536879893879733531773694553978606505737259947052477566802591651236393730604569801072533954653048633255045914633883118295788449980948848256234931334573485783651667465764938910488854753004290373006150219082480593660626159816187102598637140477091723853381389134825604379474310463514865795724733286554970796354540469381020826917179445885827483746750869665833273039078271798949385403370337583744738558934986434394544311143608190096244807745722386792661782510885554123011761623572070359034655877819442535705937151531790233848315175130570881721276379366273288776709528445071514111208600733865294421307541527419229923239718818614033710183993311990970124861584483462475813712389755200889363604524215488274704761830641431806994564643644159065130384736448196652963965609995856308915562687146402834496298953185013080616797843667947159630573363741971493627458713353015968307886314195455820192396604519902099668086856028854805887651424674946873350854637737898544194622088629426013857748808527432604126984931330400764492507968172371716098770100078381083096090741164781455846218893264728656840699514581441090837032861318276859946849227690173308630601687263470132156911073715183977349242737511701127693462406425037998513612075067774769998368433875319626014661320399657529928979280634679805646693105294917708921591588933145152926494424616377138056136992139729410300916972665262528178771118170239878946030013521963820278828251932997684305935786596066444168007734624854615009317964163578854897140724459784588316849150927858223345158466857357028601987000479399236521921401155972836150420827747649517483958198753635443476874024450900473042331098268433620561139268438845255181889340690489900569843725363150307305651498013619110950898935570864293950316411886823183243654864865439402906743466999337024202099620291631057971296436063076736363343443418090998853119454411682186738329128750527214053206118673112752469505084596311938570889245920431489930384530588555586929104390610623884312514593682004856180430254033566263818526552659070222745775566564386394951632774665763292987169777920953119439955726913114209550144495154152770513110837618180868761101446700104119258244645411540231873789097852967681610753053661181920163677861829546485705334603727912836685139231844415445170016716971594849810270477515874987099181685482994156306049477089991276113148946127982469974046380993297973965686061323301788311533787252507451563702339191475535143508920313826655412359830101082680616906809524334501609755248284661085399990649164966983309764787669179152036465323646597098615762642905766898737793223105071442519488684981711823350967501572621297859791000288174222443923138674964034342514467099622035336775863228998283947695153020230706133793315568527475359526573650238448304199021642730593521318545750416887049030826478576723645667176840281822918907071064007398548606851173433567097263677442007855435638370730868813963296554784005934617243042414851766683007239576012050897748336447257394049031949487026822936411253634489546098109063388215589538541494323872138113405041196751359806069805804339732629786263066958512692351571082751631155150356096053098699616839006995868017108134801349017885005349971006291391796992229189068576414810158031937708040036176968653620276856208124461988175150714955771562900951934580030715672787287613845457155525713470617924829899021067324661268790542398191775223748710774896481623548700404789450952839874885817474929496428337025343745773365001533648598990293710831014321161683802342465016295679249093706419192917146175202138913747393606487320479098012818462019837808552999012641619284155869986658775621718434976679092583489767874426228155234111941356923909227443540596054714622787873500774710517804993150062103226870026207719219086562959072130555860057347253933244862061902194752324299903617994221426147024646829331424067197658910335655499324487577858500160459928049049292970406716054803529990482939982278481531376660515926430721179770047477084162503073548055980640818952378058987419590711762218038321434558994154627253535884787989464598069458198033873479817145291306709211904859094156609790945803812488041423457486078083162404956413588877139731992411812673786711915441219283544520532542992673547487482566857426432040615499167322169796141428717203799713808261609319273079647177549466094191083883822918204028617443639767897017687540448935936255193873492165697341650080044419092625153734033287821275594450621708853760027795091431315844337985207511297117184077171003624799200608498546234665901269511533117095107514499351978634398613433398487513768586324342548930849758666434692339499669800302204074248131785819265197739496914495473640393606619934729966977862414147099243414252010989392332280995458199461360767598989482586740656165062902071463988840197829364683202059001830742651240265184077585938202092396558672368160673687627959533299616661113013557744001953009048394150251109377536451512023395785778604345567313541962094426984465506686639564030727856756013513552918086167473715648591110071766031640840711619181525446825306002572724841975429615751213677840860111829829109993384482678469345083360220916087129430322234140064717351189891710276269051217175309072634056049984128208380826921304540621727131069353872597707028892837300618204579770879624724676254043599420783743676615512650704744288489975826584443896448168082310954177238337394586560236861835434301296927020807883597086014856490572251944586771192654034589128235975578725977539341251442617373929851062047202122236281760588975405680653708482830887563482351960312391593171558386663907258557882603001166905596307669923018904402796194810342457108298853286951972290416992471108058678932049729802813345775383992726637593106712416277340547131496645526234486807076084571147098408732925662836668287780677660624148231554924052329074502840454393518215353697027241676403450869612371068676456115876399877854432775979341903874377170014200386000992379302813163680059897704440889639731025441214261183586386271607262403866947176666432846922617330746781855855852947448932995309617571657749684189395959154865828531162662216331452470442664177627674083005214440044502010371964331190380209503745557833696581958596308425976513078409891882767528662532517367783803383350211093748622025974933013582994702136247181191904206733200212291800382328910940006937759660659002394676403230068579107416871592237488200256759552875815509791732303636726112221745349307549692417140687239817974646092867795182025273551880098176344736685023908924949563389888625414690391595024352844531623391319265582688965426357531383942939327760306043894438737615709454599499103385980199311743131827820614097380865243975061881519052726543776555760176628003678491012545235624470697928935877540835802515036597228555204417862023428382022024999230160737692467146027441095921305743334874537922483640944723986802893914054812171072973687107072901172130317996180779352085865908543132732473899897310484770221563991881682010814450667176710489612812414592359768607289758834358030553059273502711323008730499762004385510084708000626727589571077621554857166989592827317530520185940579312248027378499276831899880090702426478278087025439613182012291852112256051574939574177694408022769589677252111855199684467048988947117389189354362802766589098351525397466893082138423917833362741562507479067767195026016928502159743279110217922558520210842643478387575855718846526869873820395777741888188085345977905347270591685723400447376871657483088977675390553016680513310445877010168759595282091997398776202093306373004014970342446575076685967900714806557575747902384297869231192159378906136167647365549912123621980433310479341462183638181619751435333659235882451650441147916626685748289501065538812074143131161563801504479949060194648799767768421872047668285311593625472846527648603985729265353276011994321352000042759105348094078875277053515213396264533103369936038040667535242562581501434522688265153638267214033158510919977281512532144311792600344487671748142911793917583886430834093384397987822483445870486821171568489905092056335833716422884233163128310667386598369000785410309794822344010340387355779210542871819951500029164788921774267630572906932914281523885264643729986480118075338877626868347872846703640699243580536018508363880696929025692322027544206894419996289433920204169385886169611219283505122803122803279551756051069671652994918104645470513860392197769911627956319197360414804156000263469695299376123996420727706873105487769319948017798684407305914091067684080273916690648300445747155333407710367127685577603020894104818221664550306538969002293661467499507812913425739376007956940497250899727411493344206569490341209666411435329905326791304993595312226636780077493677539841919309891009135385858207186750876297211243819864948760575949204539483566981618997422850127683444353691700040454985684856205556170039238067856175604144715129770902864754030959657930224921625965155430383616195136254110061772776107369437232027569882871298020619564646912723826682728305252296149322751728640892170464246600668019339883526635324414381929978284789778317007607785187009439557062756163876672196625851307364352366437769531156110454469922311498949991226295735741716120220219679195972186305338598067057121327190204642228319847066178726492592645370717387597783267380717387538575453881923257028726538950117614133839652209014722389233618026198368605695301153193940186737176916163527679049879769146094159120766470355095990583398173761664511107344998822604365226695421446736614236181318632165228676150201335130519586583875313992070230521503748598375391269609601803970359770670217294266856954834001903573456688598794051588944780080670862472030606337442114899840184406538274242895240328535177576416688919917081981826634697005855847784481338912379605087900132597904798959775939852194168060521407235344660904773650345919507667322245173698415261694328358780046068688120132503674649785019803397433771340440179272714824866596803433605436447763068418518729072179762164053623627025674402191051413647099690399789377698001639793602532723389297687960343214880473600292551101438245718808540118540677439836142295016554859599394982408633423666927400080818429854884750544381128855651038310496054065667139871211972135903923083948819900672925617807634912670143316450988420983950286514273574012972374682377097965564148692649285936805849451789202010391822875262958305253431601737060260225187351667904598793326499406396883164818699853925460072823031669190766985526176169096135773988590693747145844451117423377757504283917793189816000774255823568257278315999052043578970439479028040590948309191165315741717811157235695095181359963492574409665040210105205879572227974030740923338987712866687737727381829308039340885404553440134021820241801511873208616263547361222752568332783629232590924700618440913551067642788146553549664002526782971094365354856437631075965879782177424191906018079044128184639880883077948040816958681290416139862035608972758159065314918603157056107927103606746583553198497607505515655887395376569606832725882448231478565783767466150827986748879559928900505822894353211873884267957438935604115218269357070286803775986132541157828451853664236416443506932743254405855390539956612338801461128338096775556877573409760844590296762060750998186252082837616295028782461247837244850798570050680925850338062328682412696453751617084027748082952600991510542192447015606677077379481414933051958156971802774271632022250743323267674373959874407601303473084872774363895196002122806201629577035191519469179622239624010986402313374408953226180543855237063324575145136709899343912641811287127398640430613563721920991609842533435812300591570026317563396376047941386114796216678782423533802065182873216950402081840161298415552644746806920145552460885196392465802244088127526179712414412435006482229625163976932527695688262603248465293840018949517455589735574549166294123625221156854285585194347025425210532904746434814993347645006353650162508969391326414634094979885604598381683834973224338281025455019682967921705821019226686106592738864611517350018785089842813446996240166146888981267864592435491513165968374262508087078963572324009563240173688759798263444108965497055229287571379748100252678174928014818565971324657393815076700823288138965630707817582567961765090163478186886661385223239808075808656367984279885519598321126894520390045068411267811634716231630322537015720986356966336603841765026870696524933648011797504720537832410116963798981872105890635270738230877770644902025564371789696714726140517605590699239160848799326786441245697753703961089371813081749032533854451688755549099470763900976508304518485125166574968260102462532293343444705395152124714845400844093881018071671981201956871021986244333789884908289988558657795977168805954705096077603812855297703466591609477633255434100922779261574387216678418026125666877266504570757079371790363175256817541482541746353228266710411192785468871164898461437907836085665593976040189950051459595424443495808236053352506217532932452732510690698749720026236059462393307675542024308799493903234347395578829319375896085896131754310981740219838086946430999244797999329865380718435779961098228002878132994769589798165681828300817288333671077601991784218586631824851043390493677169676131967766601836563422141117618209312951405936287912666553831663858039773747285902585053759603348949457990747549074817205327835455206050559255556591693104442758692906742531293015341648844550252921300730304140196576399386816090529719197995414946936714454151921503202127703274349148248623526592857710974420686201828934465381213807330444579012915037840399182428648341405455082521843489400032673411418824699905945490981300309312457440444204273110396197317659309454563886069863401749279915722483374360074471357133668192908928153523444177899780993860520861191178983233444829363172592770767009842948782844081885357109269489859907319080140816510368800096107326977178803610320931542357066124572646450066475825265853526149539103172453965246620053158746307949526643048220167592895469169837481009911788276243309635115749650089975166402588308497171368050750463839022011704609075679040296772009452203612145167364048491350205586622572250378802572912478536708272554073373356620058793113708189784362667288834188556821736869336519595193061369196827061526167165516113868919709853566421931067647676921588576250598299198092312794909295568281776690084762669160965861300960644572392684279533631890273703270860398916463082598315858382620855549819572655282160191503313297598516113377812223450709848188597229575289159164744222562295549774124416041390491442909422664943507910254338175164884006376035226171397615717206268720707800406821418345144915572687533367134743802024083049487844809429811892577463710155210693138905551134946873114130973309979578310422879523129992690884612332348506979673083743370090719640735035812058407105611008369604202064010813987446362496945164921510703036102160248096510609735519079235881456802928065540132254026571504228757148445263468930335280269334786584184232666852064327368732839334593369308851544400232205324862276894660092762351649188624655938949138070526048659904211453113697909536511431465048041020913371809737683998258625918230819399890563244581598876460882131580595586707012654418481095794551965794716125983694738929664644917264231484575022458079511538306624989555457254787887459351188990737977065564161481696375133757012785143046148044890033435839000347141268083167692842381926716361604456710440613590974917852811855265483831358367235635465389411596890162107962566959100990535105882039604992049317668699061099006381191043012115673945209871953149723240781933833766407929582977689822195737692525093088977048623131753469559088203016285657029045544100849702193027558944746955904783479678001944452547751697943476207754296961319409549819625950080045547132992672711778060707504188233002631846527981934834275674979540409648237830615682871531014333724127178702620608699778366951157756045481373626591908746540562318903128878341652917773507843806293686749140268263584584622278537775599583939003023758608655777052499536690230398018836063639257367688610126062683440112801603338595122771846574180457714041238721197327335116692764779557699274612670486579213023229226096374723471512124388540606729801531423172375253504824164117036885964401375976210585818656009319387675675297743028625853395826191539312640877021034389733728631446627185110166505893173630655514988739098033244815315717693946786929863934570572074555483521485631904970949227160912984653502718700391402870909825187073137830496901987390482385737070104338764513335082697250861206292323339962001592434538644953310363641329098367249426339497295476715389692510629120326089427707447764047007841001402966332681386995827519270226513309063495548502561926416044202911232723785929656662831913171348925706050852946097824481324579283943436257226828819851957023314003757054803233007646240436524322905617998213852360981308484350627653588940058371507466699677410689609015698457652863453001178276145771656278267859539019927803524968520819666197608544776990489632454031682714004954917075942712997571969177309295119977767553353543198339384615106199386591191991905081983018786739907753579253319411316455875628699656240084708017950439114972880081774392260369279271702895887126602610093862862843771775844732931537934852537888704506996367789467290224582618731101157061137412364122997508478001492972970386799511407775099121090674068932883530239538551729601319072463241221612701282458178293701542039082817424885503157258676649867484717049115367080788715411740504642273462424846364711654989868119609286733732055650991610578247332425181972283788005110610119714087949500752794244888185909083924786553680098993898801345563725923984345930556589557768078937259044854391013140800472194387952754359086314176504383718968633075064983541197723547313815907377768929954908207941136862100104843653506435034339382371646789040770190542319600116852207858324396776433822882534372368328460876021718864055380975632669532224143764946964207113225590169980849483548502472369746200406628177991899043262692728538605756840141932134378207698337107573199933055473254963096110999612195154854296179416487314550731639223408693957565600024497421733707755563308298318091968850137313849545149613072939771231833093918137469687242252758526513881704632066736940073584793160934722710914534132768444170538053424526937484707776251747357097131946656646700702349838436910600068869788711744923714049926132281180075959473478552230328369094857585607474967447212113227485066048438156060837875087714622342891459739889942089450966338329495337022673423843211323325226860539499326928794463460395202307937143148703103482004395415446265144951381993033495189779318363125560204648749478106602335271371662458438904254444315853476670055750598307290163272811540395185234520504255202774567233419053866009611535721897669974240278702688783474289912511897574275933124779740516193147008980621028801889712962901922346524894582765578643476545922884824399911757396458342920131460982645790233540026884650943446293715305427157107665131913568252264137707822162746708808330959327680794653214720429350549201616348045309396879733385672460165565176705827835835667105473160449161912541776574386358689908635288530583283119930838913652837315550596705544332651798994388154740466900756269351729672453891678000233516269696837928705962130535366372753413965016257889363388208890088560741666768564368260130557941125686142913284592292897658541079140442271393557111679089227637889226181824201064837879021933118335022554229431520217193671708329261955302611625363617960270469012084315762328874517880467031454329707515666821251090130851932617192197474634600838263546271781809280343697586824113139348160362053510929124613816856410581457422283287695195790614889497121020080643009958873414847487960689412156917985746839889769264653440096782110237017781345118581212762572155822750976893123475074177833495092983052175826823799468950905137982140703072950556431081176737147913023012210602854142293075399562282352996709575188111329573623640007102555193051931911335504512528007979888786152563842200446299172229605020821450427192115733476348128702132685938009309130368033934575825144327283226287735500902602233161672332852534703673647291022030317348609107152444655888685196078563639716020247083298376908037330550921475148628949279673182166783614751692908900490169298201765686255068622138953919820015960958693797923341014579627480614770651565290753148720293178792525445174766976197482234018241022242300480702951905512766110256935253629032256665187404478956253808256860604948820901884094236794329626967958597339199226660003188358091647983305531935690327589251394128486678838990133236093613245223376219844250194722588651246672916796719697701385892546956353561497666593148035131984765962147803994201766482770003249914336305795027779977519037234921316470362777820919698810568511350345661045196610660755776872654764675449202186926894832739072116908679096898510821803953357192611950952313685607226743674080211985868742098546694637273051999818463735966864764542937627948345586652013149589655004846741715355944407313211759030159877573975705983504773374295853259369130366041025510548443980483791874590270883581408557567256398130786146494858724902320976744616117060752408521945370989928226373937873994082339348136754170929707510330636595692134709316534762109844720719461931573377630150682806688112909205864716198617356345312477193262116436612021541634095636871613034345496024956878760172426334962540653969997304529590248716556821507198476923780961899001747473422867415703344071934609148640590428660063334174863738877627283198828302211969108629191309153697959836931739003153420067320274480491391345337184543632909578396511579347344051638992237500311653046131352225066339818510166745083255087234368992860040346487139552746077368537599751817007028397547331383279714513063027596055146506567256163150369691236803106461814481454937846179030654580295402259028240825978144798160748161314803907258429711588128181730891199321814220010457564106404928646882953959524385964492848690226233706391037959416650694089299703855574869143962987556963413371730083040404262547524513279413505391698937615645744821763623785404237261265665686301669688669124548979828310391613087253321699463831497222340866276028385895726070649115231012088917132745214272846698280670988108199208895886693503127842462571992304324386339789071671291037941903628000266828129785453096858609924210242041149162034314294008426858171049137696603994368686595313703105013106492259570860322823840355467262246445725889316143127880571110231140742446819563764021956155887152841931356782090672782805237182885486572802529676973390521006154520126371637178100765122545649989917359325901013199352676572531357313943446341410985039699596189136380196150830411354758007640075397398795580440402046474465742101449299266658147465308416462405458933456259091331494040212654814190448112535378178708418549856047057249776675984271860719949716541861180045926152681920045796998682799558144047890192291925617364556132189228527517577507188477857068350091252837053554771984809642630492982184144569833395480883025709427539757864236089454688740129739420059922598596587801737073504189165555855167958336091182836422456716649492036206452961331346153296111669942727004029813668471449803805274154980899066389438692112700662067359925592600716041834846921856734622235316822433403752281864385815908519841829589257674196194044748895124787265580869983593168946288597097146903592975445456462984063229631249404014564967314687190911919393766467900457947668752044889545559488412869315825878641469309788534615640798539154950305665165038634515301206676128871297521459140716240459695902576257670702418282380975362265092869883634855717037991762826436593141206283477683841040537791745250585391196383546310376443640549131612316020924335244563836143556396861242880109009774060706719357604872619470816510461203055068520608364921595041781651331434861098688032710314104700690034029229154215463863383352045159879018625905621285765060342269810423566267419179385357979698466566279222623671152610298993539970388426781067305319992410712387757741188271279326647764748689609138165508150024727871258119065492114967396306609361180205092574946832771895807687981726903857996305336300924135757426848931631208553177744561664324624511621468495870664182013123315668783749896876653232365352060116469665184264854247381211400070987122016137028567366879740395986964313955944878219788034008910037653626001801611048044457578783714126457724169909487845798615926813497363122857261347694743356231555668323775103276393350879304274275364862233696091999383433080694387181416323741222294551553899254094411856782748351424798359738316158954524044149562573601189397497863154342751015530355800335123024985723311624295610354251432471473780871731307756116629657886114219106071118340871230080625682840308402799865652719204958963122869282923356760360227666416469057218861860831372892566932276809420080468743132534061032172560299219260723706846530800294120236596619981575208947130922944415570884128831607683561006258829158898644365765649197362802488369001405173962787828597996915220196248948818483777886808797344879237251046826911226533517580291333147594939275552510429415696759269332384696686996341248114955065210303938921817250099578586922704372334717250512392173613283439639428045746645360356800465358574682789292313983314588383719397168170289944103007971648986697820149897178744169060185554605069685490506316269133499720116493720657201591409089466126073021678105164283630220706324540731772392879248762648982215954093975987150658295017260464633146819820205785107033620866763878196297568620268671733007540288161928041276216126441448695201046787415211997025087518219223537888904490975976798598501325108773122668073368142227240741689143918447227022134791098450870545041593460330917415178327401894233598382844809619388037725908821220469596845104872295119409681908240058114074340226232873466415073137351953675365291554226460099107659705762390913786484062924395450041797700990179555389381802106796110890411652857301070634081525799107046074384447261720588874396727251269452256617994322297819464906705164067909195213640405158801169360782654506164350697346579041547700297644929210562168678266535945200783873974198771027640976802197717169322455395394151214671010991792950728819227880377784102218455371749541008299908869887531746817604269654682428930991847954865742502745687907511336200960936607538561302595103600102973598621098961529351366542245487125400899398901266735384574924988251957241759479872738528001929287279401320449849655497847868033364260837683401150214957395017813068571713100631182681084485613179798206933789419039600001522877535834350920067753734287558065558174416315970408540382768582497193896104248276080958635706712075243091833162517539003903105677009182482275187696495446779357205030324719368862224953063176824640708804423036676031178955034067846268680603990045638998747871875741561097366805408517177559867394553898556725189755624656514240224300555345062832615148556143302163084144277652225635308179856939494009410848742112896794788787583183347723557019976362737916142044681715548129801768861285191046381984300005410029943409168027866449674165294316169401879887863749196636926984462809273028440714687172944089792876044893948903652421627908771401416239092258737470811942518440914214448193130486569830418153764905702565489516779288661084827311329207704966916325475378054914805381075629718121335067346337914443734294909125922912966831965547184291880850851470843882876347773986264693463884487026920552945223140694415602860870518204849299029878182200290538100533438505184813341328680553396750139526623299685315966261274148766043164709478528077517085252563428624523151310974995382660456027090520126320508561938668339488463256276091140949595812190691749401600096533404605186688795137126500515143465404633427419833421508144402324750213801370843562257881774124856817930996656131003045366994717656869124352418481394326599919191707640449873156998759049456506199454041181558477441189397752810352299569518061751913138832620670363184455064956445041268076142165252055449750465052268408161529447069442447250622689641511942481612751259292999418110577519958995646833971627652216648124957933692781534746411841424665638121005444377391893504331998882244517570284165764046369712429365984245162266056307990718862376088551321802253626471217722965161628923926165229559333150258182747506471800084753238768321684665634659960405201214081706289271551171280086105679157764361956602329101139842533089933214130300405497631860971024442535407701184620328820259894269594350926386054149102433822927528867859351886161136416983296596167816108034644458867666176343901818659070850331284414625247774503947969537987543127642496792144852819690815628199834300264389256754810507861250709858320433055312447089296357424898810438619497334153923395419181482954580789239833376802080335014946500421483573844701559253046877579085763333087132079257316381832411576857814104960036924673309511009395820349335442056620563050001908763264457793512298047082090767712910230563970825411067040056613041639566415557962439949039203221690627281057845715621062808532078581321152656774275620065747078428604737888652658328116560630014139853715550747802520198652752292029427350673214353563708886051753050638202459856077190335798318166204453853208947610027589709474762002921679668065335547922059278827565827839938399490173476012971914188442284851514754482619187331668844612344610749648555145967206019073757144254859747811769590909975385848860719146197801087147709746804582523763157632254085972179059170487039746706969870475286457520668517482602905799669860717568378074682993629395767172491553355450066773470913074877862710191926924131742113284354313417282080335956533715654162687366929508157782364335324986596941460564651078312803512303270385607098455892415131999610108767084932003346085775476337954654745932622689928076272244569960466044725496890898018675722300404718776710706873803405092378217318373616805783048362941859183300906182850785755763740793772523147348502328627781520727678654178542867943335307759667900737350008208099739123750866063524515766477812433807500507343271460295239409681884451422653462035451221804968881690895824580004396681829637667991378071370889440186576791568206088450953845055776585995988311093938121771930866462284377407195566501433619311254290030415511308754420111525223382198148941052840759455659892777088917616507101537712938255656070767560300594673310280216043912928599627481080486981192210159429486535932648942163779317527111418918567367400586828747179334647869112400596649509600875414725335045633880404709447790800659825701509977270316603026196032608819956823519302019463641837530160228832852353812236080482377349422046892467114009433280750544822333964910083284656281016416096010265283314815657340634039245143334241969894248210261115431324066029835594455687306094941929596961140059463489210475520742877337171562729151892227531736110976004874721692022066306331728764263587292084180141224683207471939291659484663751736860660866769000904193649463845389163986212365755924857638948835836937264538252082907272615491857031777351476266480876097560066170792591220987989507371182929120853682546261035902412736848841923618084158166806557172992784047579512565787614534230889820911126208492180626674133461872437047633723489038579417444010303172387669898558159469107452183749286020095269558183555548879341413459968058150390722381917567035823742083803872461437569139714587613228774800104840771148776160982035352044501578736729040922160210165273633253465126099360373646886297866783778967911647813094392518383794162391472895414482071736178715283080838644366933891320834521550959398285926403943923513579091607366767136128770970787623533823201467315217781964296422989038213723134822194398086282495565052443894056655223714780396947541325544158371054802791531879964694825413383851822167849247129549075706379050412148907160850643786815080462663038343055777596426962586161275513292807859937652139867064431848152511613025810873096023674696391057767420048009925016758927792699458377693513322767720055109456512683941054244078968423168207721639116404818911361732896494689212399820515289993221928373556225939649093188868709122334507539164327746748184206759550610123960662716711938362973970689739366389943422569996090556859324800984911610526918098988605578757839701879628654772732613592214869364616726557001708343441563277529816138437172284946777756739739393109653934566012334774792533923879481842122662776902882021916293389813767708596243206577547186003108224572065914165735029237945083397523115979467041125007442436108597391127986079387740880191400585393902375140541989945768922832860931317555860911492665086045419336334195511786809436791666559157543776579260076509624211138362453380903001975141335686236698005051597918195326869939250416996764757509885555123220184999695864192438220438954093583113502551669893290115412874518255652420828026413360435867664578609964441423116123950528700296290384927381393051182383266786304739932613381063761303164741194376601328270284623202753703399854443706164618229529340522288684449519106889529844418370219371246467657352680674371669448572473858910711547639614490095799599934874141116601902330217505233993798989636258334551918349712056340403161740129589251568383920330642673232159273499532566913281297376723290234425570123039409472169982084066744644028419846721537330950873858183972315234550094399640289725843460775104178743830543813320244582175687176767739945972195048031734259718015612480834027655509402952868092278297859443681490987537023179675513729751272324116303554004053156958876593584813831297995014618772764335160031293428553075275028392871388276244526666753084266708392764948876504736890011060745691888412111474092819353641614278155887437526357071228515087638507964826193821427891592375067909750472918117126703445046139535032281150927625230262608310674043420741586428134572073427603287911925404913777250160652791560791911839965241584778660959791440614103195109839506201996254766831395644157115134364739503275650544168106030753019875928822722066052682809659011811659851190849490648880125283431044229571936141443040364965471129289673892003739647230185158468486254533954837915166189482829418237424545198240179210874198712211455222016483152885974392752841699780597872040295164496934553458238812192124102002685911612068981959993778655930888081093820993204550725890833782054554667987732343754129374547474492796513530951536902596129880599266257311405194510105218198115250732927171353157128562336061895768696179090375820741643075127060381170838009904175921273767384096385550691037887281383283629082276775321845436090510150374810627421135098401550535038395317020010939694911448691720431414901871074046321478535060621091470226405394346190689256328242613165601936301411567302098002394349480957317460482939077785688842893424659385066526152166611212946295488804660227737429881515531806193955201262330279255565756390454132113156294165150501541640753220187674843843162642982785973308033887145188275615577991296935511769870494160238967534285100341923999069708255467810201936454884552847532191089618755490134578592289646919816857456964776163021391011000788728445258888732896634032410176187752703971938584716097842512100123586531643071864456039281552320683412388636814808429528601925869780922915603181969190724083384214142987409955735238776222237719225478977698157369268779956569155638416988920281368461911314086861397146527415942518777755152988877084960252709049236995491814942040627529211518693330932225535778067654710941236724224275079273337028700123396894216421178583502467570488968333601293843416886585703412254817714534575275966892796832364175656049723390628361346785974099579771418457857671384419743387107537639879209840684187545343728393088738837188987467827489876014563412735007602068336894079430663295348768407862145193389218601627436345711575460345752128943783506039361967582163799552610960051710564729215804874261888119275402477854183033072507389807004846684469068207429321159156015093240278087372650045441630270954396358402436819656442419195540322115632376470494851404243182341547933393260583448188826755649879461273625054884465325007232796990072526242776399494169871708843345943088386782115438634155718855093229273576007454733434781810369082269804836309645631069820834876977930431070762899409541984727258530636199256342007583031123298364618133722290696406192627430628255027265125674010894241789072918074942739914374483201722528805192599456620517042198898943733232275666090116413370742804131864723112210090216711222875139951056815025402957793134347880901761324438045427072974918268886787228088896048849231871407200637341479538254126191942895090387155314620662560329520356883131923681307241498672136684379622659087506414905303677812104229303786258311704443438947664335490040866615384913037940792966454141702916843731521959768025108498361117843483591638110442777407329140648888686012035308119588639360284743681747290493507344324953482849130843214434154912052726152462630737817665711704201512721093254166609641436982176091813307122461897791032938682637191613639080284431772802813049788373608494686008777891686001380304896667552902590621772455262455354119397555143697081584334820404598965445274581198794924467786076799304459091939375255821888735681056841084900848839914637943580376237421516648635443800455471732465915072398634578108876518678792205733653291823380991366461834349268506210208693696966580791080294885499682432793359311955193946750602413741629254985566725667540586444363647618539513886597491166000176117538133060388946856248836881309792686059457517623200553218863809452483879644120669975773811165517067425361959397184564285916360547712282150788728143893226704081996546324015114135517298488121813304668541332128216203837370439926322916212511401900153561950754382396891693498176476459274175598687004902790438251343002718918805920521356302346613324302210604999580317395948831309731207071550270144750493879055029949458410732295246967980782547552977603009176076512850470058130956651206226036857717091503569514702598340380299174097184692882827512029094664168773469311761529521070489006454772814948544235197294444166324378293653628077324407148858798375271280205745693326786250387423250118482216664051414622527424875066089314464078851925606500694645035165085890433772922138183763285333133770328485688042872165170794695457972223986246902411924004541682546562284577309386853065569889222433738714036099466602019682860160117391712176325652705460488676116844024934129867354457233575660149597222499588344499722668851436040820410664331622340297834355594971756630608353833974345699903293814416392064706427949948903017057575394716632628438070388405411939636865240115780586403679792484486154804901530253886149162069006541935150322481057502335995975184341990800784213271911224217848000953116095594860294665204152750550418765874954471896249443613383990978040092070710203572803993712777932986987515770645448156925667226103442833202120257008640285895033638475753738453622894807968248650045424119145065156194872060844513198237907095882199677906987299087504609134663902253402290944078392919435890568442762827260655333711005580240948734225469887082831823438602663800213611630981391188132416726892315831147468518215699307255825499373046174410075300393812045658439971596609042320439633893429885944990970412701175540826735567371169455219986826296123957469716937612217606026004943896668779086394570101348863461374002466715303247274981594563697588038694605564586191152355988858293140079873623268387220809783672544425107390638845248011849128854730554325213514378397558106924379229836056006412073136071219969765985072899716211987301650595975590070539721495917216908046589047829876386801870584515787944699237125242328925735244038539926895295139503649135759286606061859673590934455571405200551516816786604227776464555446253750288730209063883501700313183048145789680935597946928675109336423066981375452330051606123308860805368767212131245997537312373719417510248723992388644718628590926578184190017522010197208150326232503256967647386191178891395484761918916044045207675110514110561884760067415623135557150147455734043212843418385623850913425415952072123884681776363181965005460885919884620719207964336684456657705587776009145752166918780095900200561619620961936103077188056549450112236583576132657341760776231537009270711197234044133354692468999602320050714371197547537406461275290010827824240353449669916415414007876956038093529813006637682200514608362241722260541463574200339837255958931032922443997760668552938783756256566136288723546977101306487797085754003775647629805216529588346927923495527380931416672080591665825793157525559615803703767817606289470329750620630652041506441145663499877978843655830872741645653274311828292387222490190545604467732846080299452351482409730594903628615853096914890287277302013721450697431339803251042703548521496242360995304887902676477884656737798242829864742567649490593894579329880408500909893996874812582367526151144077940374440424246589574057975095716201994180776738368055796448420845721339527599683522716703506314481350684744658296992177867986371016728841279769849997824620876986501241316690193967206560671256198481836744803811125600534418299882521977906096969795796090711229192712710230854697974606239972277874937820159697411453709281334853034147552968654169790426660576366633929088341162162577149273930845303717782680310963323397053027668603253416857665960093712980793423440044373350534328967040726355753615627964016505237386979854514029754968683113520943114974076092054709809568043385987001970012961152081701396824393347634661185303525147691638580880684461496508248570262326380073689495369174766070450217141536739177261188513010031494159767333136383888119223985156152046798075535018114476557442006162473464737449082023167432293000218945455636668757504012719771677310739342209288435845018811357779452177391053850057971213332618522130865778675777938660318220398645113879974213916595704752857748895811645664760094553542883443214374691891295148370445932440106527559975033666210054257892092802682820273489986282045944781244230022231218342094372389694010986860375408487308734189118493819380349884548163084659994274233427411591603274108631502506805630473836836632737846402824874439397073411663724369624340562434795730885108530949029690114054185842193793598846268307813884922903096597881248607276885204740668127473091245889253764170829350979814549076422190037236267891489707683211350978493416421464908307048893568924566186420570738629341914084236541810996841219113819277675907014156628603436914816149112017056152714374787391073148914539939513098728206319208101344720333460021659312349644333172592713339001704750546622655885812673773951636453006011292105719256220531651597747309204607958244179847194139144633155365442162355017136729294816169649326699328538367825887244238469971548553071464377421316006857634011520577095876891011976956312350432330419982313889681037848971796941650659443944447260387196255238757393461734690412995858066095272968917059781112282301092977508173332542681899287736177817130646769132576665029307900680761369013462446932756470417639299742899998048197196288093235691885083239339487011116823977786886147067260805607670265799740312307592845198168378308420943612362110823513647807486641305013408454015072268711643995747669964298318369483677975005358938694935770069271764228382148112446880898227125437741407273578676958494355556046839675237919604735652481850825391359371211311941924241390578897347048908159044836195697462400558304603054076998795740079147292631208588156710616553117457626441117476184914702912420175775176069292527174560216062042924324463364603570029534394427849878429395876297822049107068791641987001615118001271030333274124233403803548006740797736586658451787021747472514384981173636084254335023882536263161451810228606725312479473286875898107115858960806777785921256065958828292315919123692301370540156097821195840056726497160136551712591100077686679207979040931672424265041013007246442275235736208970432077213168382210232186664985917000177405907213068257773742326668623738827127780510039394320003346777271264469589813880872336663641398896060578000268630653996239253190931293328634203351356681971449289421521983509171770125793436973702748541906882751800011520404785160133897129461927782139256200762725459449223488077324745697870432879611940804511785494633689741620836606931112833677680433009150916850784053858451539082519799579341334194928215156583774582862021600747660436635057031983096328635665764625114021921611290260431858442371067588989911563980214370824829842006304118497448290293200962441486970911323395825504720744913131347446653853829350129913526252306636851650186569563275308887713095953886263788176372710154485471936772593113598185702082453520928711792682947292184412049590408588676721337680220854629336858441145329768120768586242054640748001109593251205180256369217153566993032106476628257575314466724497993395791387110509717978313618673663105250302850680111477373605135319899801665586594464487730134518001680548708731561625286086925040321366523984717850504196077784907342975509437996217696779996289004906539748361375863669927631501469045130424569081956284177040155935977950141758512152902343660905329755792991046173115375508207912694855745785998197322611144377530803929299416306541805887159586556853348900302618329230873258553508704591636527231560107908493219386636484586088670133879709378762521664683677218049959750884736113306543175213920511384194463853077276011898223242638442279234849589271198292903808623926682488202288778534692992713059438351394410926668262660328434313663116631868053930465566116088504953224958337047548515747719222192244461447243754110199618827755982220952110420130073551543078132367748414925164283717399103443681303790470172149409675411571166717910800630326944711289798855829649895446316756359080077462627204481041629857753082601860361541519564381868242375785163660184610968663355654109053463460761575935738845614912625941431228903375642426735696468060799186803403164174665634214945214658225098394443495931816525399308270211676570210381318207077276029736944235612395565055368309566958954752832400070914385721578326968762385020970758832814187301406680053498310672786042047564166400284591895658704482679300550919188947143659765937010791892172446716503421438420070867585566418801533614586536351187265082504691866425236414297790543632222501382806034207195570428801289375699108842961710299114863509889378521655992883051980732186149390115942412431207599219135623594505272753666130937434625330130464226210036428262167166886723457668058796423339077194760783490785535505086376911834471235548834023305281249729829389788722593224094120588600339627362205060024892704497756812725241364881611489930885330612757524653940717825213583036940463182128159163595959048757113658866838808646553283421233937348456325305456292681507914032500838319023819083264554419364386353024812582783893860857128951930482596926620440616654312977048522300398092158529232898286410287842383557939734522488803394429721066443292258972429099010489088780583112663748892922084323372611125133699375469571289935436403142815103453393233457374874778294945670595256171751786862339687733186346901921178596891462660526133533513639700735295135089836718824931383745584215643485101578159491720031725865511020939360933071348273773730662533510869172790716200277010248424620185226197990871052084239660040984192439456916223601526534583912483844606506428586720477100624315933197606034893114583118064881542681179223327321326468856946705713127714155193665865104773040889507937905554269678404208890943631931009647256908366092050347188352448221545543213235327193314505403106707868208334080584048163183151877431539868778493524830673281096748257848444701364050002668450728832417234481224032899678775000219723895811540361005614767018714575849101756775790772900497461957100499467462906931544170898583632881971587461933119497121980180301149194823840588511084384910123358053933944338504156541631735025818623960643529418443683753216255073370547804580110696946839105011621308531699766496787738489845827348890873274539634542874601448997843062597278264075712230329774996608004510448344924455540003254544768518921616291731928227067000376182488199757447070041280338006205420634412928822439083137539590569344934224018528648913845392179683118459870543793514486623530323925480718137400797614342965358933099385428120646310845039860874645037225891248848178392803331410047577948640592775043521548348504944273731087773656022337116031142316980473863409636838131025939721926081154955049598144223177693096775034963124156038298856043805345638727852699335011949009192828167565635923994978988273422570736420016174501404700600044186598234812862785111072388872606240089592603164215763275291867893729848965839225914145495930039143138901285831027846853659799099318151671763158982844777205773904971867699969058125251244361413639801404137098972393315439504187034387182312926222973096085072141435613413114726016461540450269817937789476558180097555099483932528756143912697907882564905569988227707131712347320508011307858270802125586427340452051481671657899853422608840204059591040664893889138825724052185032056432346141173371815894310596666555563174342719543290477226548403000264846112912018247894526950607741966271225190273385603902973961801676317947152533463481315516964678812910825426832084585461448046343888233060423340206597423344142478397533187695476803570815705118411760081867051428309201388054449229575950325978505402210241728721682786118939763801314628821305069894994161292373910809171807371162536125495149118006093536027226173178753499004391462359286520200360950321947752221271454277068097857449810591673368090444518983186915013862843285934619405202054901009877712998212109672799832705962435392189726373226236112529085516876018208204839788220475008225751914672784942324475468738900485480191102678442587909637411122240086082522166173552558366115324341065716426441105723351641953085597559472472974902512664610505863533872019684214019670093128616389302235527178837193320419443569914315134208352558460214793577799267455162387540652343929105833758195681310509083889992934617221597523789032289371224656157474805120836004859423793382465490644958557678209633974578057827336563649015036311900035816348341741533758255976833696189164692306796972320318351703453807993092988449459422852637290534120851261629888494957428300881615476770459954163311412678247897531383568298712413042847472311240369306976970527832028376390195392970183574994313146149437744199196371314519274450561419316391122195354056449120217833776203351834214189614736062958540280585427355914478001229965830781171127639466229441076100190994405814799235667196085452484176578904660706561926327433517121856763567360841143202258534710282503277259131012486304266132092112890556883184101954486317364062207733840283320626674261131248252969133110974002478323750084540741049437991041909930774942977314463514435419898309886340042991588624902051155231817273055645707909513268414879142069356651950347421886979141291775018680458312651377535609883158594976349830575729688606109011361637249653803712050130076699181265223604303475735743251134238460763847886298501945394500689081040031636274063350835006385379312365287407099378140737548859113260080441070609045724417046258767737196880903552646901212032546609540447966416227892296623796564602316688199870302044679711184406130306605560824564419181788163781490257507212590489179559221202851474337584746411006043497049229206142418603422126291050390227288637976595138564788839706983784704678895517516294753133509996814462420024127568699503626804646373097682133310161013217703168135207579259469637074751129567716761981142623134350798664814453194992069827890800268519954640525078901767326099305162986434493719873485212789308665891896489927828583765794501284022582886735767523508799817359452608146465205922170672596939458804392365079279016877105193841714975794416398352313134213338194431639062429147079171578957931336370712731433289639989667188392828636455286119239507363425465756615952347741076526910328573166740988576422044947055727439043626183556325257809219863021074311145754864563438484319520995063706930261501380426416605528835436122515645511304769815949064944834383863901560094022896785474629642622171522412818508922268352899352131663265042523672198211532528958340369723735576473571429599168797414448067044475585719480894258678149804975024817142357748306392239857357540229004750277597818970903764500129873306546254318791763637689902851296478561615710309047556983140384540215172763677828951796699354402069437683715874646310678296912599690895759484492700637466057260156024482114711719666705040456099347306718781039286033575101535396573911984448158624207858054171004932676367938962030907765088693953815308530636511999262990708335200033199405190909942167681839292595393220139029463798078551128816923636294525450860740204960609209915689422124482141872600920188625288935055679077817101326648660265213980196117261455881299467677789574339370649859023241486401725659765868622990657474611831553965372234949716976129986643584305212326430278756875359820064638358858866478866613708256368572903267463315820431424259666801336756318472125527041053947335747382453174635956471912845352642711298404582377275733316377430928574464923509789089104048730235659822681056800867771823601166170413568432864579535307612339488381986128921341362262844454632462995622423202641655066287237968588679164020940956901717595270992071195493465139626824533881151382278663715708837948134837965653060797213177090683696196591289181077104374169239317421123318430039001138339900083478482806290373414841574084276808194333495578007531780012096820706490958850120019549827031514532962185767244026128089874597284684380424255178470304104675194609041313289823004817373359447204195637019239799470631824736620753496081128694918604177306327707117040672007708559542054728775507553989269059369309909811698997836086951393419864400087292583273992808960314568745763386667294846125961566379175072034198102853844288591795469923867599275949243012168421790347559303280098910845708935281061996680685394313817977719810957975757027869708685791102404920596608239864724192672590386550745880789203869007667140065537753196812930593205245783779202644153545285414734338314592686264517330318075809427268210549526260976843124779973843499287931023095929690608720866406876115291506657687121928479243377504989240573074750744359000832185138708039987926143155444172221902240851565343041445633507745019006524027570207004659063758570475646662441472292464277088389615883109386982762106333857205524104073769224990150831413243235157900390313308890678360049097366312307647765882211625038613435149027048730503921257809014211001008971679014155332459677004162429254173461167452515769140941699329052548606855751003700000284214200872678518102606027530246468112937668884188113740661696922741051214839314101346269269366539692779457509005278530654948610303309645200834603728657949953351248984821227489471518301538693347768046433342908354656305538939652962311727097442917125688441679232670904355157861347443421654158581943518891647501922147691873053500336532474809155384666957650982788399408465750414406476096503289440154509842650970789259452269838927324897075295519203900760590848096807776360840310675594586905253321562072621320918751003293033110452861911843380970389767099499403636932537394580755921776741098399723140384223664463471152823569783694251409686973207289103220605897887997204893598559704759773710890499355833883351269040003817269127657496255343244999847582265717967265649012084406094189154546097312257931077522458833570491794713557182665321093202787335620415967728928279772363002694358398717736008391644479907444401129232649551631251705019706092027634469893405980202757252196829171567610433595140720356481337872749030718618153005148122631795744223908479615317798956234483941953281474033972607582322754190912616599011880075988635601850430317025192805560393707300319414246112588982957631585924846638484615113534639560594292967421467248579112291751406160539120747181693476831840958277116200831398883683077804536649237066888070773199824235904067294698151484094998341514103698961967336846054949298338185941665980889423657849320924893079040241936759018851167739117816501551675992716689612547906846749508076037285855214753989393967817053954557667744393796753145991682529845507473733167343729011779324841173926426763538470786866781828584854920357787141050177350633993042305972756281203438672493545688481772924273314492400304849412753960707473617787958418093421218323728191059988163192584331177200705383444120498572336514281375378749523604588859813712464169653895499796134583357371661495941336362500402022602263765706369164750365430794536197300469989653489213873093350836139738877540663056295755568959007395837062868039954423677570438043035005447561821833247942249847053194577305916165597495603282375435725704222724256164903469268683934069705464359259914024892213385513050121510681220178559568474641734388834738748527477467686493686048326024359437965340377683877328209256400231736963540169283132402841675064528365884047464562562593833563588177349364601753893764755097186937207521970590747208094173470298869608358954596834707753160967414778950811918705689991886386416914193009654574085590510298135658748065164105656290836652317373830908486895256690110404073501749849136725902485624581881898240097430899672701710299144830611822389724694800184878786856533837319458959488876830192772892499048560406685211727498163670576467994435577023499643291965992970767502796761560258658920267126925290948243621443350860626941536202332694123376308263865207557457693301594249612824101104956720581451457567045760165296235825291810302504854376151105296161927365572629681154080219318341174892517928783012194472270196900031939754526594553223560818843874244360210815084957689373835788899342995069662959540652211884170912671983818561618357995818464395609094663775295001477680760336452524481483593789007743748040209514421292167487101266218817328947564147489454844774748726731723738879332205883216507343318188088810284143916103653690742527224647339239148445208004019214779269855119756831264253863474277144323166927063213797320240795534050741939042141098498016947038569204117831127927504254082297739324443195908030530877449615735740986053065390128533423983820216787177532160882663240449305876580475386869055716685697650656692276281873010205425881236490226047221313065153495096936048300150193585595567067785373942735590651635488553405402689704226523585587208471798292533693046319559978113421220081925492920756720525591386891260383758042092314265220260457049154950265219471563000419924547458213438172968532447034014005443405945532380407507134746349827449255942068058336887370767987782049357070521386873951611343397238970805385989278086945948883350338171229387619158835957341943447907394497905980406315108600503847756854080412797680219136236721812895877711915504808471017528466004942819268998578553236620211830890300827936078635193787432043104488047249550143573839898480727696416122380235937915193700672240103117002840271269011377600545848423275444681745576351665023695415846237187583138823823367214704533290871884657602966025800188360721701720430706982024971400882088639793106051144005515593688763967340390506002340469166904907263903726886510867318677026231648169270899003936028151252472104074399811695839166221743143015183718476743882150899202915710847645810501767963312795980210613133329375830399640431274894300160269337271934796350534417620314487456128226448646106222334708955733310594622344672879869789226173655093561605307138321351558535384322151835636908229576027009136625202914107554178071132077796990109872365123264456732744350108500380250690999239146602287547590967500378777224419425038521282151417485599970642701868511682172774376087785017743302299711678174920488788302095181010726716131587770769458800915260955807361677820291587911729326485440686475734701840790584719619746813957781585893408562651853219329966715041434247534153016746445114263712233707110626811973697776960979369768113092142505046133411867106815699398754802385138989950029125214793195906185903178231210376105238318014033791395362561915183130106282792617514982011072454351347880197465886975323748061407822633590787262611324564145711877513994363455153588168041176842711884451606521657492671409714761280704197689259913893060664691463859802887717597558967344331372000757313844794477841282360820070477534610443046756840968665678590312126211917795647135119843072388075228635948632404102371458775353650988805702806057765356862139187384722910054408720178047342863809423739652090868433334857338128760938554434520563660573754005981080645915258436196177264259359790210760417178004602006865245645206779789472962339710804202098543121302355014253007524676152318037957911719956210597074315786854321178268247626564618795120520998199729830867623824649322717937938543804534270492410887261185640268884005749277630521129029799677648509702375100979968029398610173760659466244006626501583966251307124235763198337643279462731457735299989141261846344946867681258345459203900105325694708909624773421492788441938414303723840840534566733365620646736120955663738456733516798676224340029673311075916306626578943485779826368404723304887389259559265222898856425123607134860706438788283862933359731315369275751464600205605429304027008589157922534260659706105296967898751467978826775047879400192097284603656349305716379536336460030335612993159997194187782104172631094236599296910675400170195959580425876536394138212340582486504246895903989486730306574960776231142456021757205477380314988032750479751370703339324263215371801607821210058441644345439313486290315560385281954599966773824683343617656159878988786693822469781499769220876902509009572732118823466926373794200676594549995849459140696911097947278451491235584734136048237979119537896999873938257971151864803240028552605992216851207353889946928650420114683528194423901384737266119120882700163009565346423061757844207735997189401221529085046717294847205292915546101245652392228640309728439952589657682247025355096923978054369033814408102266684071914794075906472439203707964292932286415143003901469352425490580325285995468699541293622075707874166978639804690091533259146293666010771984139877596877119160650827812222459338137158548253674147654517873445484251627958048223837955245462970185887150160928210109587629776656882728611880261500494659530723371134082111072324647394867152423266084130813844762198316530735644503381321177616126894211870565884311762956464610077881956000947104476770702168277466946206641074644487078774750066960679889413391864145208376631790499155634118819578855112091583669547987980491619182373544757524826250842499394397554287064708796478264930488277308546417923665461096078616887812319950752635397597461185240614735488226738894787483227513555269591783153396059629206401875022684909018134493454899195848825590326224514159301364551174376505563116988547500530740736677139881926697999123758121371558737541263497350745964950647708366345933478565906837250487603399116944050903034991260914921286695986488126226726839388395044890030150139526435759167607932207609963636057986599591394921855707534338742574207221170863973322363450718630454918215498028545253208753995517169754109577840584378324624317848700283922039794233934952532601503722017035884930376506493869018767571430712626512089187337091161232587287429429740099600957704307868190404987853768596996017621360117146382156232423344838950766087687106831025253368430902618275868094909162734105333040631490395934133226784593188301808088862768876919163160202388201838969186055527148672885941309461860995053266758080385039136907743398271493871152955521709681767202826340632875679030422077517101528637413632899402350018280410188331656821792489605464320623213148436154201208513897355268320370171206670898030752749425240952230101878745780676745266048908569408063129402940578079757136052285367052902357112528232028485621682567742658889912975214837147494238502161950679736960116728861017625047867169087743739320689883981499083996371562028200176920260902603583566997025264863381639164428723534951625731083336248068437622228701208105252687749954563278433285683004589864573236316006225835371446819223264409904019220332940284297365434504971696142727940972050473271488151535065814951123116339161113356552718470355271349422894694966916447815785205766855147836028876459771940794776559839102479692737609495656320133977075240376378831913044687184424962056298294773277995831586666271886244272349107957493349393116531948058538799030440618518791806801909903847516488378927458977829165102813920244927588768951674658351554028062578832023128595478908026486086264365758389779584255922234518102895945615991870968461013001419408105866391500214614813891678556667559868257303182845106948256876963022719422557940663466377440819670733078112737372827283104307692587502047984809220689771786473344175890469513824812905307168352915571474880648792611638744895317669399072991743172854122892076173919877420019707331622032262905999650952428849432231851239977298400390503105309873071036408813356372334692532673781284474779778239101551424973397584023817106640102410789586905019810936448874669992210564504754310913928572790696187106575266819826951762737488062482140527399795787399481967412197574720890716335475555294160807318583277411609866108199939886466649515768800377766015570162077271272523262806357408395890545914658617581762641654060100486910653270081688134700287796777147916126071994729816554918948280257232600601855764763820948836511968408315128551195184883333244857625919067384864123304077789482409118387379128873423756629791660088913189721537203640350557132848854755852098378674386000524423482421278466617044565914663204965683168235176497204236677825054624312170829058233784339416086133010049018349022404805145061851850867206057974662704369033932244817868774467053581202359707324443555325558661648399255223645263145142848330826142820051717187152486241192766676448198471073183463516279442787837869491858625528023060117240491903456473214037335289887205733252340524869954373899392856400691739622441351599878119976774300751671681052111099498108917800140589264625642960472815275273996786389562674792059659823646665097292002148734864489166186598542913172424377744099704150154344271756663540742397636828363174347799596483479239914597491685184548595906594564163882176382460717229434508438346046494028602975308125059318493337620222649176114882937511796371971834733685770261655352697538367672065427118109171804067432331901938982830849364010462173725424935783724528597063929811920572045567150444088807199470641840769521649097270069389290485714503023641628516360891910810133135479152993667877018146375701328636776166285975557726491874401144589688004945284047010690230209133465319367259395062513973068404355115061125634710689963055057403385368501187178378571699404697216995116268974986242189515968958968959503054873223549844836889564994870968512569319307166710924977324381299799464744627730491417220149770490701318708011081569320491782365838445365152665255240188521933972408850063805385633849852349122621502004569703060917773925377440239546576883682213258863984501592622224028738106110832470456908588124836095526260465284778089598506542349548207254980569024656595101151446368752432581528636852622136934244834664065161176295960210973589899210472019425813149464881948148546218337942584131889851965543310667226480038612686342764198624192173228127823193093727271532998554041762063840206872553466423526610658352191379612594526628676934885616468988063423361426476151065194303939400743030472155460852316995316028154148890302408801023852531332234716010891548262704136378320972004673506880686521724240516621902948786446820882984039567081419663952930144464693505863292462471616818139562153320497932923428441846863387656151863975324730210326860877409901244465661307917416032983307290792277262539444832834482703165626040404030123427922293450174272036037229763897927429670557441440213808113797864663171693279159481809881329150589123224572296995197459873338279406049884078877956137804762346594596601221863196944337401091760581705000487080410764483252648158797211095200872402023703135309438646014127001892115841439569140672976294370777244098250216439005129004956917042181875602402239002595385834974076355783338652517306546720509010865873088198722570857973091132327949186048815582768457039545182779277148490309643993050702298057369766590403077999942912912354714368536706158537379525164817820798260264559994877092884965322989018523945196097304060244531040897589958908787346422795660118916321957580900393232815825065727873009174609170157631240291650925345151873426718457920137529706483628622368903840051328834094878035580251795262316634119356112354757773434074168102947796630623271319273321403236457800085062445637135458338177401738086153233245000661181819849359578103401720238333655799930672229823260613221659375245134237228040363686811435559366243919608350656613159377371758490862969319558483449636529979281432942534068727467302931777328518034495696724761997045980047117857913237740466134805247100562282369123174645380284198127753961072716730232858022429890750272461264805483825735094134031682497612283286164322246093391880130843132020589454308615249412459730958006325759504013538214606698628595817224741831517414656828685176662194798315040176362480066937369604023389868918374425829601992376442573615451097216050314530537041210301987127296619601258894242981743526628052095561228706854922572231579826805082145302132523062215060584440928831468422641140404423853937714579721395928958197526968331557529823498088115929764790397362666711987111256543405966325187455238065115699989172403982817702628816055507312734157463996973883637419207440766562169459440846850902703050437615870087565736014154464907003515364597326445929883058278099241127853774741682393182683547574654248905654639078313751673362213867305721738198839538048495811717315028090728698593586018553424465464182880167467459177121909238269940274687558285910715778674167632100656278906645992955710214747647785826707665569250942212056264261480071834764068918599901063303677973964830118572444995916083117892987447649654847481631487797338879083687438887242974957382620214835613333389856667086678249940970432501334148287679259658296088954107261455889053032108703232480425004999225823896946510292962735876860109794384266446867806495245637131314211310676595234969909581870311269733071946777434182284426485035341958988712911615235767704532976432206162956182406446009123248677872077222672095438807318923711343881546290333958032039477996079375805340737351332267820771846487979711323661007329998825297046455259284724113355731678079200323679391722125483905193906528731871899058335871680375501943371331035992968716205145683487598182666229064236620859859705389611722702137710166294246607896612309181257643033717072719440542143376287859193339737906548940270222122896937262883466546814909450700338153198772307380218479552731928686231209447269225088787923426617711117029936724633647222395365262049796426664802087110185617766787266660305420569695046607230204050765165134158914908697814806518612715850618037362905912016889868073386779106821983938095213698398519653161942769960594257482242184534717896014710609545979880401083264840625900999435907549260303431810640368253838297235850769922894021358899077173208282413754986024539254494834850825052243989635519908059539286458889361603651507512700162053229292502576729375015196665110673005281296116511690414191845977400527245853937853827741444032862798155854950802425812616924715454344546249683081015426586311836706018678198803834205298866226613261409468200110635409786097265239542250190052688567915289106578548205886592355676941140071905863585696886897815830313850742821140484128069948098867715669092889556086581711842374151987979777838249969381938951141998682875650346517820596899748117848822895301027180654336722563425940545209145006550894498713594574845369535881126338305921854710747335207124478395385602641290753315178962060776000634431045500018709904173700048702247182429543475141427503054711576607303795264991190573388865952982283076805039285078466804950152826488272931020584165526018091867563621255238958792376861632102273173343717775881474134073904830861299486906492530929622274433330524228722907040971607674650185236649061719663136924920372280755628480794805191271854312308873953184977908345316947157131997303731182856994027323092891908726699730774233201474938346391174148475202687110728020365085256021729423656614197993073560555427513969277144465611532463414129750177052282247603807902227489602797074204066170893304168880840230828410006290049621194588953389801299185934069190251069705863150183802351460145026321557010370696805785704297722936488570431456734772981146663053981855129735286314222959871501799574699966957015425013068940165529329408606867985462277777024723825888112200583896370465605242647500886774724125242506426567636133568643060552552658392416120266785143249075371765538075772684206275206945714484337292510381697066276656879616501960450704292284205255672600348403193137838670014786463553721353658746393634352253588861355750075920622935297094693918917863604701950682737080213145698930814565038601086856908419650090461989660603557205127130864985635544047130005796081178259339060931441735605006515021180280772770941400112850188978953791584706402820057217016764899247827505049062798479445297920624349961207634189635790557838804938667876770204239240376487136351708327848923458876989617053961600798214219419872146543625966911849384468727060127179290347192273427620627263692427236637553445789669523809789142701154111343944953777693141261429265738822782948724260694968009382697770655651437009472639002034639015313342126538715342877027799759168987337947520233615164754031789486724184134458775489445093441213685847712679173225807140027456623305822007414037777081299802151594783909957973532221028041406056767377502531475424826572844860245709990505423714104348974759104083243865833442400134241819876699864070680606036832690003276731071448493664889459123809421856986212969767558715433621954663397765830016999373624888315686468139007714670143072345343353729394181758383202722144941864964351168203147144761336253854189269891803262041368947195224615890673260287172825365581014937044691761777240309837500035843673801373085839367564697730480955574043725585254245794507193385830592610874870487873747548431654048871093460290073981702722694986180041632421986198261844365559507341955627373866725002572622059533874587846939828505861988648830332284640993510884345498108036328909466481387210352076472576124013217301176003831026325539762403841889628501963076713344294531561929924214998895423486098886658027025089042844303242086463862427003673667728440513501499345238892984061971308418336338444346698205149321135298974145142986516196140898340941167599914753610505353300128690689544619968535522258897506095182085096943403029961683325604219979421977596408811574699818888213089338020179819403393337712740529305516180464558660373393658063896867158463749152492205637951111812765341916674254266991294846790439687229559586989094044249827531845617105385570641405101817519001518097602339380073404830101118683947188750058043207954397951611409125472471097340291836452540297376462134583753950490556759024966154314023089542238284738311874007447946775036701753935331446708767578201679312257937683381966656471307225151977605128346211022266436012405707537325628900739078035384736884152235145103930800588951952252770967231893702629680539273386091182004625696213054420868638187466954639920829778295909983269678480408817446298470221734066998368297398263470219256246858030125253777646218303665690989141017455786072357246898325145989747307207674060580455518861556869193333670728794108407251619222252705075725007591586514453651349273261227054162957883589266701211315089160751067201193716594410748410890852367708443417508561101141130221081982350628640801652278847761107276529458787757525534657643047749972235661707087767791111564089728080811409659732556896144947563290750835708155923912088947218639138102920990224807507985348085624655348429375930116149266206635925097336990325903009263592574462306617329600582398877925786159936205259070165740635612961467080025784817284554813261339027710070171896513752668296302459613461180782386009730382448527923607356742279557723390622069322610190759261876181622951815467200179999994422269579046498205093393080395232340080884185454659681507085533616026390150860967020849806464746396481265749733245064846804828878988648185257569352360103288509867170821510790977617593723723406718938558623769709160055388274542047354240718780163275745390683836563130797806418499493223199261299354199879830105407750133470380791453217450924585373517938957187086890045386480702349129475466444031563069346514673366766497946283357319672489974971359871042504557882242692064362662183676133642627449704214829948891967794045454497921690959588175933302419389294541184892613772754730882960755876186203019488109545950597908572808970149516513230736745383097927974510485782016461717428211465663499231528816257803140099089904827699577956993671502885411430650442956199786467847502686428033093003102299588645528661836427554313024832526298995154538100178486336612358157524750002545936889753291520213456455608160482718425976665113915600490807323326914117902772046084679963018445796213960060649357793551865492063377352041767283671866536388341747303702130281642541936974438523585715118947703481106074460904405735277294148206994576401468347739481196445205280847058910431682642299856322424224491949099252211947045415409324211299488076127809659125134278136040071445611971339644648536190842042258857241109834865847538575367554513461728888213857612609426972233950486722387431116764979448311996440372180291660557335759503743032946944372960975777266963069824853766379829168575253228056209714810921680460640840283507890136257057538582819845591971245074446662338739600893319081518891938741535434783076064251553450599418686830919043058003033711229990142782188778593742911368081227912168513740422570539168449499724744630195877454822836939927739889884712120279138319026117353182481632279360869619032851767917345002646128386421864763269539195130533415930797002757203532016968435083278779435876386240372474197607263825940290053684146613965464802178707137296205854291578322130389994437708769380132482322534875779082191785814412262236816940358105260932811340059569398365246886178414689644088348364776476753773771221461226138069772649053501916775978939240807586155540683719760070622098117358671031770405501618038361601013662021544473592472728169116376428412971392056609067169150631125230007374833738389103349271681823646979964325994715611365528471722566740782764817498005056409536280023875012612582176134475234535574056650955137085384026919705986352738642999818146145966281402139759433316237092607837413706688767347355671803341855151277500515903087419166066317224717746701488326077202199554185089976097141678647216306354453941198076851139219752594894645361892780211771271419095801859392601816740070540658534634944508700455346107819655097392213175245020441646512023315417242664323527875709887995516800314176414305091629621638589901609120771421423478185571431342438831061489742249984631152390041616644658161970075186870801341761570260653671465018080858264643625290393590070526404240283610756098149749067613479342870329759179381701474785184896586764851551893229773174561161722309276319949461690242105799745716595554878904243506132315925159374727353926694113394864935943324735233331443007203521148038626868191595958030102555204234821187863926696395502948825903945797994616111102403114238433915751251432105005363878878318095361483651510438526517822542906868679155802778804162713004168698464998359705313805946396323018515175851752822617865495056489323059554356399997968953973975341746579731988749617633689232170227454438902037360557138752669986387191528841449871548187443880676275194273707401053883232917701460455921786992750734952615375201846673106107056856533244897169409978571418500933353833452003382322521450047182230102786913425647544508207319527348221108297499130340956073931199488419413241194816780123746513959977962212901501767154882060095370165908142008019383455613395436068225659459458888484938197512618654023751585376821761013455587522143087770132425120310998313520258650229594240919105642873731728607388648868164081521261307919886588522384079001616626064784387715043475612868918950186819106565339811305588011403801111202646925699343111162057379105605685289537456917143386930767054562595542567000758022294875209283782372335368346663562723497267642777000996482577380795583809187308702819872031481359496721857011803210945006249718576018075036644137246518617758822432431381216249835489045584956050748459771929257102685808587509356193787549557281636672739410577161808985451660720056245412533196646435437435813463298835260455542081801341078499996530768678960973137851950434481753461091118432998370021833082590733414558603141411042009074621326094073729155982459540435766856670365816048409685436668386167604314332733082828438696649391333799855968406963376622532001416248019510202173731205753872065118934835242716181931544687593029512199963193180009281469295697655795334168537083598545397655455781749718119331244351905565811097519938866725570662989027597344126297900425189031404416226307798658154853727841261517720545206823528873170604931238306717331477904411543084939483360913846516617570090713055245769000903043395231889199972544223550484685461800672964491297946576374048224819660054350599164147284205058328306121441110807404233194803529958859899971121805923588290664090173637299763557152980673443675029234563348896429073479302776151970518563778022512062024346197539684367219542220517130595895940108540558392730778621655541183496367793621251742231622579450936652583401650001235487857444857206125084395094982055908163016672772806232392178727781902876168752012721754265914085011888181656001439877682136123312225525570800804731764141437750537033870870112510499142708272261310622767622575358333189581304830924022441859943452978079597357739894661108488415050470951461935955323264846888765312404601324949570067244754065065366819318700960891987296836161910406643388572118944304415193736375926652676565737573914502087060266873794202499027426102016667962042780358324852368212632127998163748630974790244963666965128117612216790387088504772297774577026864718802932359534327554488339997980879293259288057487884597075445842915817908352744030117668267106835351388474634934300565493645134209281336198367420564173494130080371236958736436853943784259364039671629979247972374861759474839042210106815078433246045664407175167477588263999071268946967916568807474203852751029100995785550997870689285470855086563437973636657966157769978259944465155952176006792177271742360632474485645573803001473459417986947594082372697560522727861691215818988726040919443644408936879125966308404384399584485175663802146479435067435711249785678560118597141438439363306631291690371166226100894684481334665023033160101824714468269164597322010805901783661883980628126150820678355437673143122364386619739117036023201584308337694465043807675719089388341378822571145430597806002902325935488534301216158629861662154445125475534124509855513281648162056811187719737992929662191102801142205877374475355199662202612780303423111849485418682298910866843875931730389572795091609242881577649480739489125796674057100057440045091355258058938649054862843091614811686537624399427912849129236132783859470790394126946530630811934866041470500448662605691658760784056580088266856911766392996246526884890623321601460193360552317687817830202037136547720050332001584235085134680420447590104240220581323107072597958892629633800800451328263363697541139011280705176778817073222432982242549066423186327052807297331851653590755083726271836327447271272506334723981279741921510912504867236036941954867943116960640952674269935869580333762047071448311895597948965529227151706972587241123168500764377936749698623954690122761752740904650418917635780591082373966501497622418665556289214837132621104393350179118239019631043360855406923406345115871584696169018185935463546611641748387946138669990329235480601299442362345843503108024563657105128042174810668622922725006627042439508996632849027986146510874357888695639667426846475903551379460103158859804574103657933086357425818109914461986017405607305186723550440729968073674358772252340550092464718166283117354463093208593549730295870933424662846248793996113956478957407503862396187428228267512413340105872035030747417592734712225597417847972855868653049617721073287807958035010146609045628200451453010018910934336493283877210317743590562835252954593968429264614349793154513489499857042423104294499780267668947619335316347285784886047670508278539901721621757362203157616272923561523525932987996696866512863105021242272728540469451272071189523378252832616557926948155066908997278457789837143037592510525957024500163438226237424237348467018551035824691735186484443569051712211292758381263959687416409392796016881067895304110177855171335655505645043981653463600766283550597798475308617086218732590447311889116153378542032682428246798903102697750206030543318222739764964255024172071297605433135408525060029840471803656284641586606593506453354624390430574290442053511814249265375960498223505081879736671164791999988937658528309271482877192665789589409321803952743057343308074817920201472472138931698995511256159517260155384390938836146226052716049384600110207976582927805936160193267576567840685680876332431739758740058596961218646344799455177100492779634040843952040762600145297277349664900721428611458516805588560868834352061588094542495703528730348432901871753677012959574051279213472450460683600260067359791361081430278433162694515788594332314299671196642025328467894151590165803380795733233150438490131756872083680935790593771886502658842447859807385563226611013464766361409439204923443695062605114575445812620262691453593766240479017674258984341979011609865155452263053797596907819118315506458189776020184189193112225754011116234481213701708489798033528337982066137063355067313241313736610905462402556532614033959593228010418502562950258037826463797842597835590264052453281337238688318401469892360894409170687179294751239077590396243052293099758438466709349398433908194218583213206305073022723735448166263871381465489463453078603180480766343894269072541313271919121485380943226897076905644784424138931595703582487681756513940102912471426195782000455096658567346355807370257176804017361977155818928697894973538231312401432193518416509125344583255826891678797567909574288215419367539004117236230764623344249037048895879748930691200807511503096519829655686285566117757845767591861481695882340068387715677588129662718998827918227384175217100835588535431930511753565192469131636195605575094377323836701063821232831926556079108160513906083735894385060780776492400401854082074536669103013699027586480652987566449696851588227538257341661044620202915358955535982240985076016519959378440354073817086195173355132606820342959665125716686823870452030168242360143821399806099340068743726977733398004932179569764542258663645667533634759831176015255566962719805553164372796500494066118512229990597377800758143202428261277976863518126213472754410830957358170888078752574980468734971970327676220809516256506653049964333045658146681955914578998230642592841279979914039511701561412049586861476153587934006927399109080233154603049438588868588334197387309017798783266392319450074001813956367919064411859932702028248963610717635084525844120537278585320031726032001380509498220210784509560986457815110591084149918546056013381688735329025086669238206140440632894308931179511505471931624900825681607264443077145388516806902952945556559555722871236851676783720032457227465937335272891861052379147372995137070638842090079899471401777738056830859876917152789130819594567910357720004935380580600560630748104151405251633356391003955457024397574353225044093543688617244430331085333853397783335088051458254937605058472586566698255432601039867336299724326242540148654957636506913146932275344264226558366692228827485006978608581021670329340746329153158635839907746503822792814163868137151443321999841579702517378451675940960208038097354685802406649706251298408984268722620996393985910570104312557785631168608008665592260396330126616080411148390872544901096603349717179259144436533321161354903629745354002907549009161026259972904387107989868027797657155687162385785447480634839156983628984345224260411877719066682161917371189254730409639036764147090114319146110464694158528054428537422817771532915834045093616445305249414637556747729208361763871491087219526948905019395915051831633289753461564516740993272508944127897028192470561387893078358355178396145460834099652111008423562299333058447282033927907312666421508106899914673369026342294356404772107223047136527649169818762681598717150435470082415132390198645779787409210589746986369171278884206261568671488352907034199260377515372590737966145787963129730234147392765266434033931696283045247816318195546372762336548770743527183474407724377283338255528267370247463935323132488351221516476580486405003123398682429004758815519235507245699275492620903981013557860422863083707244361602305625029198896047032314263375064727300988531562305448555566364725058337574529551617118712424969726245531091119103993185837251475660149071782625430005952098178032436397126343235532204180287838901844600677481453307215839106020169949940430191884177592885834281659920133539996610660919670880131594152411352669564655881741820556866941907079892210858777056659809894871806431987093655848554866639581502354899375303890746887572948909504208472109721399829030392073437668640115644536071264845596558002746460750252759424351725037140661650953708789383843769480540254331774137563869445551083093503220118954038635956418221113098555358715747089435896032083743901959388890206710731225112804996911031790014772234395494121752824380266086561483351357146147140925341589489544537311517476941340935442585009796024779883094382998607883178056971166785227342200478299274517629574785843962358412277156504229365377604577487783444750157682696096753335396896540588204365181921409442470995507437419420311621078276465263772404939377294425492198589348764290143207069052645171108952844914401553912633012675011950763504961526703167971411703255028775266107010554397249930788805488295392262062708442764568666663562789932608734181003419347676743045232015572729583910120553203298950193356805248977747750469514320018998703631232295240773185826560560090979170413503417040085315581447455505765527708863332709385335136816828705269296346725070608270637931310521629186086713152244186680453356854248165962438635667465132210130807096710554101199668045186076461275868260800649567548603664820335534596284995517707093676722393477746854083743697580600663682242460384561473125271268806601482013288899514050014523524038993947227094853777204935722095364996859032548691169402519413598900959350959307400225934730802358144312853117195089038172712795470972587799969789788651659244093240381466569142679087013609258197740426811873469381078241567989305769293282854544838797028095361579366873653488082049870548166563183428076787939706271386256927706089356612727512523316541878207568242245888962075094245564106570583098235521032627884508227081384503805461137011692347536805312667620287034877377317627689291935023906237569522762170042249963954213093989160882650146101146710776478082077996336569819887345906333627416043596172865335173435204011289216223103476213533934281537164675510518000147479622817292177518814503600013689541139212409533713187628756428823521782440086550434062521322169398582963420263186728780545819993365273844932592298949794604845266707335898176485567862527661021151475796025504809841478033786379577146769504178718395210912917396143699103869355623051608340469388860582769235135150812298091801475615946452166763299398683215715000563565845604244600914178328235837217074024155544119982188722151543029033743589934135439573965098685110258406105164868942179719345687640777121568849046192274809694397158621108095632548971654502966295906551333609925121843846710878995434561663024705144302286574254634013139330315660206332592009364499396185891828047594973405608268469076823631193316599928076327229104904823439621180703454637960472847822976348759942082511222326368607423121074004920154466564662052082810089932064024931083495881187219518590214306398785702362470600312000704154969713980410250513811704383105024124403065964965062936084066856369512113756868047454774109074294306113714612847594900487327709098546472568108941379925577900684154589491519161434794326936870219546250264222206171591670474259112265520001814523132567780097390715515782933002740489341055797008289243196297107366001160399558787702514990055567391412418090349989569773912500923731585832103056391288137052079723368841367304725299392737432026240605476704697191588826663276290903064130323523377013904939888006446444296418162110592026720738037395194260750206050068747022910915521442684038036560820127073589538821241360449061997151152524237788338713392600354305507484183407678980293448473728958844737100897019331186778482047495014592518036017109749184677159984830525377531948137294808115717398286778578945255792284539695973282829932753786884561245797527237152819100957616019716480632985639124898568647647260132903226117679530349269165944496279847482109396313560458973136788404027344575525508441242756974548444013292653520934003849597030412076079281024447162668451871127082797330121826313484449176810150046138925359161537095372243577068973931471639391000467875557269749902949362332985626882196664158097945184246932342102945359379901750569514774856641496808857929319832122506271987082188683942366343439562306845354926496313718353220322030445745311772349233450793839309360520652416271309826405073134077825545247149971010096024776420845610284584805574768314577449746895858309429977008166041812421412709211908195011478018300359682775032352735341130184738999124164579165727501111227196625221122300158586819509743598613678263371206523029719078219745416301110515833240141291819263202772564081952940205898691315417632794098981575698477003316761461094691118420000917394140319744806680678295726095949332904800563866629841294339943998364028314239425382159410025657459221379923108702876600084871718134135391773547675237616629790321215041176673435016304129387814841687251739254683303955975257231798012992579411998793675311082930023784865651111906660697807806997441026469106730583696718242901545977299697960275236949210420756178056231283148968734572095071876258585016788153303013236075762132812067441299021208556892433292794187063902764933866292299672654953021834983169086858210386799834151337800547911521762119079365991817042445439001950022484635708260843861428285025281513537986055252969013976245857024117130793656783501522561175988699068196713751506887194069841712668932351139355900955135728289333937472524764529385697078926097379249011287762399652303663430805296508476652185673581143941348627379156291126589084076463065785609621046065080738845110252262539506657671583930488877865689556396390227946447967850222146438989889383669175866635762723035058016522500550875545697157426228415061716236568940012875524768513301594109351074995560794913453129160498638128126176485554469177755266425122205466769617563212816096165579551805831726503407692437836229777285487059336234402486560202996241943892418783150519267716618479156463742142380510661547755531604820579129353904375711254806828606463028334400721193301428620670879399422449345242969288542094743899862770303302780156467929792947669872279639967244550740316109581730607578811259323819140312141537884636927516912170492371751056092351007398262792056703300875271330396742117261917441884090832468861109396917401700461003987057073256879772395549447401210327631833908508340311903076829495550462996508948269239332232005823476662074076299172373758708703807175722502430111931207176875403022513816401777975753256877387565982829616530437487649452234041058198608388675048735574750884595370409824443642143682534547915651838345628937543196855021184145269141461905031775937067283499443150253094112522640741220227782474990010654896768755258789802373079440727276341303717308314859606466389469618776143218339937322921930774540747371982361929967452092588830669321162391381995434066151868412630887434807187695782532947716125983030473378832318205720430805889788974826333625092487968254109106953231141263013195943341295029001077259832729392777112658617046250481002788625768436711060444082080088250159030795046578690614231956760118480815767700867357200486291283895771511644422571701155376652415633123662603320867999459512619559025829157964584175465084850313260911119042262505614354720816090578128529508228971739850261216875666324295744976768473061657748213365011442691734772175303378295153496258268787046021891112547418813162486220146617992658400837590215243862325575564515008846136205873799527198946664409114579322080167532694685864220510863079497239532472627214706588280971879555388637571778792906053447761776943951612902759268899993864329329478237379738606777824341487607443940152001301549254627651933171815359038872757282659429180737350186354728845757468779515191673080912785438850747583168116310493333220524505907282927028422648846917358589906348374725306950149807668540985288221790326247133307854726308321942237949246313548857620706981203313134537657754862146119247115364710360844052519761473037937344977605530197469902804947253766676599621507806028467979297269588786734097618312885490441184670364415684527309717882264665270203014309942171525175456789847708172498681022417108611385576537445962376210320138391401618277470417280516928081261891781454220039231230260139051801584545568514140262574103497241333210900690912174830544502847479810790436927849641647770572698923033726830942863796662510528956155298754743369593033187338283309361425522007467701776102093307984400587571560874618457559944150438425387359605535091598007106729526255569657292108807182868360509831232205994624305976428692601082794625843428984233277799486824254911304901064456930003157532616220302539262486955998107670971417810789844168945236541027177909191491534922934844745136316475483287722149307074778449380757541764883591330834213330735662617978195265459260322291974958436382444412773914852443048527839472875053304011699875369174293244002145769508542286553849800296907153564928087010468230906862554618304711768469709391104839149393612964861353085293574540890270957290026467255976631198017651212348847913991877240974369875672996623995751116037473577061790984166935797526174705931545391280929511310126556820617653476378089416920510120607507696336380204956521984081469675390251085625881100626759213367755991040724731402133504380843631200465108682171048602596326645277663340031390120294425627138039278493600807970600797306606251322639381618850729574595793004773943224959091638916361677934261509444507898957200806848583627597897321169498663638574654987099400300723936313093943846395070434529498306568815812803893676502314894441387289132570539496657697450194682599688615280854729562265540299690370777664709138038600808361671310614196535812422693261356314031390510247555778702471098629731631534998821673244302471494542100123178046354858925139567815863503219660350300971057183606388206209257430681505059423933345646394344765631731546432405602366025358640770667772865206016427102376687206998945342383013375677736219139082962013007845047555718867393684800827838961335027881644880083680861902860274103813974787282068687258535179601209674763433358256732846755771985086506979073455524511413794533094144957603177003245668580871212033540540302510683016828272826756986808737991326007563982092881692554839817596173681378155409115015550437900380167236211671070417931850563114575423567566694975325940420702938507380346166949250492130812680342943846368433353529661092554251600925793215594148498896952392675759943575397529142714961723543737274929571774438132742601876728853480833008128274841208416915855248715924739402545823854416431201405426633065653178565469792751586999156505362168047217915258384617978385067123984543943159963192300988252574804508403358499438897523648826981278441507114372685801311786741371322006530260617571581636941925198634362707041317316516924797091343616062080746284752830527263744512283671324236915758882210705504978878014765211200675106965566180709653509099841543369308668655612989521756509827392989397279179292592996679744559894074339752476335165131333706956784499527615858311006357333271815003257240179646879219074631494975411449602085863788430384280357479708520385390136587035176235194797818307581023507448918102769392841450300544387788775969753596007237568992108702720073845220124467303085343494101389122871877844458360921322682582809011248484249429591725216793586138758140393597912850233881481040298295988806796782999432180082776288448616533602171191211198047236087696494279609451719779756772676569194525718689806226894552873021619677679937344724330457248477214993011369437079961853403655998176903469632062004808030024905004769043481094105563775413293146429043424236534320370299107015456139695011304728879693762883829904085946218440371294220486316918919582096810327172601767496970886126350286243446528028387447434698325131877197335318786180547081587823860692139967598560913303992884711841124123385360823200525716436357033443133958926663756973632155990358374096598123712978422717405429993556477675819763793365520517304384883227556220433094572146714551063877682225902515778903441019336896260844433085666408450182764760739721379360188260043087151538535022017080348863513127706285357474934660787025520356061928394422019924309607590830679569362766522192325454205808450718351002381868284686886571853785432145284559823739659228579007376504864922331771137788153303948282496742435085724030919519691751939469116806646419013260748462203477319272469016009337244818637587670955124854115578973012794636720667506308961777575277044885738164367921048856439552573663018581968661623457887340908020649458252563335890694394502125727105097836880072878613215248950537388576986609726946266785105889115415703562695051912050491632208379152938131152049290673840366394812128966061007472139329679628959507769334829790128729319544908168269565745258618368562519935038797526063379796992937159838195088476694837792671761891297895015543781357268916779754691398208761536879566366199275305435662675886848145758144742365833920391291905291663795782525574676412255128872742485055485331575215479120267591846291570785046470875126114811047107789106908238883961473513482757846449813985190307124273411608921294070402407418413511317722460201008313744240563356324400161850712242542203287045296763398375262595038966390726034278713896347811248964532507866302696012897147857904883382508011764448598618123922300917678331555906104283667671191807156395502064479308001042693167405291070701656078402404996973538874414792854452590716588079559368194945840428308176605174191014257437132763416898199573399078311991741502982252531524977494872982430329265071482173236364161502278908791241571270355351823442661910643105790845625020862585913693716913062702732862084619312143869397092860335164501845649853348680299337062063109967664497544126091302054305244636525775364360472462798791987893180518946098306318855002160217605189750863778140286256626779768693572016485731394914707100119792415139133098124969606317230497069907194151009289759344974754870348137725765649993271031659034046980588057552614948078662715039276482869000550656860828640397965489184215004233344050116817361493665974776483365803521010986283678535164465644215386584178447408107609760389562408990026110413586885038307121782297002271318786102921974002546338345943599358898512830228842244560990776196502205455452321080910411311698686618557324053034832777697605378229842337116953389069460959091782627582862723533348968048576827573784180334500907544265481366796139549201474960535524104671557430471498596067601505018690487814924065507424800568388975786336011393423919778879220300993578067199106898398314896372475798637742014737900604583211894023085231477950211825412289558981492564839565583774399826595929353923174300683676134990441748553656129589624492798589523042343694016134907344849273027929782578978846378739922420383827507701727246470549194764176655230599714569291088571302565577509090079692918733565366995900478264914298315970477916579166037218829281046706963435162348575979307044411941310450769507404039983757333303983202280619774960593477407416467001624126897702894059255793063656284032419795291815702651221464237174398083792948501984774707912274469870617301078270336521072068799094212946544195311297333483209326435452644144525920623365947881823479618208232996859670851727325164303294958720346284319549086713966131969023655103156174406654555668863667474634616516855400482200443158254353843014215531646640247649842279842910855847001931179842001836640288970847621351268626932190074823515724851176748251043253929405423922982675764526984047399825193886192836721476616179345435711917496031930916692045363760734160993661318928342680320876180211887677275905441632353935988924866080262524323525973240204399897855004698513033487529293224195629110196861149044805103043270727100903908372366707524595215894352939323473871436940740394389549628298077502290377675667960421479747565197203280455111904812633784613477746289863941142388917527987265193122410676206694596135834116823111815015778701645324746305596410799031152854466533753994819841493272152809291112029427664252527877863459810388096241400358712393698344145296060268840835472763618150002948039983117241422040815020937618035361128790681232559211304391023656345827387370340101873813639235352275614187120217334833604439138753923200226990093545117553874502835139879902285063213176196823065097205177380939715843959201111143392820620754771754637466809514498927222049158686416448869593511879149775210622343102143971082496100430963616512423990780215154029545660190696564757220382052826587033417185949288142148681610916625389498050816920646169397182655332964474517862711810458570501976780375158195412157674016272839062145275795399460516816334299694425661212624229563507127004710603559724157668319829473471324795711103335903706130036888441692468115007920927360590847111218162224097529753413562244015637933852836329796682083214313661286704390996469091315223929959990878395700939388696942730232572115118597015467672505110828501868454039175369166624644900593542619022280041838033674262051269092844479802699328730714215498939225231328144748077075726139976029284482597473213779597622231076183139801472535688705182953346128331587643515674827996124621961306849190186393316981544141336697648695105453277248694523093627034001304595926224540663169859130294251271536059989797476890925107436150857371706524571690902328254581045763833606578006654825669308183475122443596539987345759898332743342221923252652346570261279797651014712975993886019884673181205442927923052169153994434139098390872320942745056668440610849587545125002198790267598526880995655322947352044385569025157426458741923483955118393715056304247950624343282040079667373002177350500316842930284053083741514269629864388128248468282203355552950760336035369798126665029539937571559741956612130825912367086741820184178891332999323169524378157992407128117774451977379387190284416664099675591862111106254983841337116208117440596603431502804514293496657840152682986536837755786913353363686516920183262793340828885849569204900071572902617911186981567411669485206735462290923566396436035617966960521873083131607132193673222373485994565055486972615155435064007620813344766050294972077700456258579452125976563981477071183413539468918797817017159123210887268521425265357890747950270046993472664370215580830815676808844266432834603721558708500895114644654431787337855911118787141088837667727534584774301947574490071099751588559389426005869904875860531935246277438547644191880804580558594718506401447902721841882277877091629022884368743321506218781224791153237801689218151254503351847633031824882385285991509002729012652949813778776736870720210361614298061111367458962565112690135896368589426255252346268974730635057820904038468225246752237531516037607482605520090026898885497348806150464652039489536132514885322893957497974943997942770062828217101766061464980405621000543893910401350534841168960532989415672053380613572201453126932360840331986750006253940877917746198524410879802113468480704386262796963406536224088328892362228941892181594678073580707658810867638783481474047805266618697780270540476269128533676125883247858192492854146302486886087475537500423499300065024469790039353754011316955972804811611193620140123465803062262677390016349205470543332800709948319500466422991449969043676022256261666621286061498869794937689987038807787591456600381285201102570470379983322410238400629095130544970549362114898905433721132253759664410762909034310166634304926500252434068385510513312416892307571695274422855041968818563513158626182696418859715564378662646646189013305156090615313333729362148521118571011937579618812169397904507944273707509777876821936054477509069674482920240069410444146281837438020544733762192540164047885081026572804205650699856304865245213668498113469252983152415146311231178039264811755721253933230648318852920741534782628788943046387337900588720901315552713004282755222994483458253594918087106547833468897195067444128799135817409704811876231472783686256756448698481777538353692895237542977974165671556368490894748554633147038319538428176605520113322794318098581729274796384048006056490330580017805082217531833048081885295852672912996694536019484816861667465054381914221786129452966091818234553330057074530851008948691560292490079427151494389823871426479918802223148071959990772507758906509862608567661757240171943779256813235428935511215006244017061655223123113907726668939560227060784599531235950850716392165246235171056266749617890888671521543414948628086300301331788080597538126764831281781104319507923321353290939156197870037158106724325364533591585977273219897652055714265208875131000910371992489294988480886176702642100355515038746091932498957917092114458058666348567470235502944600570252141428485445961341182055468597322900147963808013814821133505836764213991349182834169982779611205960399767009031856749373775601261219076635853355853231306546367548061528011232353411440078278456184582869043316068158526529294513313563881683611206618001733721566165090992071962376570498218419656099617559901067173750101179288598195688287161756134295872098273187371430142099296089652283374777844538987797230265733813723370920857547195943804238749389559408474575392691336725912528594953341883171169126557137047311385654294184850408177102376396563409044612928576398372473106726114182007217450057897894516973338229596792011784289624359227857744158958563716675871506627927657739676635127556160466022325789522766186057068091805233079679129126377333933368593428958744525650612535005628699542340633147674779783894010280874028430555127310202284077924643385441168915709510536030392350620109882141470011279979932683818720447362551156974833696136514206780872620961107255764863877495359686278359140898797868784976151836207085029634500059887122955524832131859876747600101795041812878577421742761169426898454754209714404905538406673161551131660921689026351638719118139421999439272540893997196897084698531012086050690952038239577374068001141759182038000028535028725753761314119825202426300903797905524682322788523102932073368955385520373617222124846893905645398658550025175717451671504280987610563476367192687483928865365606444048142897682186451593144247454290018653493779394292705374734412125804170283372814864834069745156372857075988358114867492427736968513461561313656498868691085148008026396913890313554844333600101267444894868813037791632691998615733315104747073208148049002808283592749160251710117768025009067972923749630259145709866653853553203593367105006306188498081879107620972299984842774407722199996648211851496466467576809388209379844319175440640933640288158291590488785779418298469465778584366381055195246858542264741571767114572751452966438466352362569299666829922558041391338703584068608785957262977157914092875038021776573181523964527208624536882433063103404738040687989887615307510741241258524719931532236395059434398268176569110363092858191626207260639624952714305539348965712466432127493228787758944629215481226606459450389898501701423449955329491934855322104119121699204283003925426696103328054704511874372160105741015109744899200449069690548653832648287327242864408760015159846693274190935567950055189823512453056137612402219259953495900564320227631800216527740991801974010125110178398291125616818561973439875233579589081396796560147021147528701851566525170153439058097755041823283006021008217010238884629671822103768997760304946183606458343615599422619595899682283734762569270637993178571668811474622818772850902621067298551313250324699367837296754508135405534994799532318062619347236580457228997729519657112983406523052036129492592728111462482562227533627671002224326702280103067560959233671584107453000595515810126489019566575223846666959959067706837571719854938507449232996480316054049221450971345800675748875253433628670999386442036362991034739528508391610641754106434604925757358429224638681955714298875629967364217945462756653593142222218881874356347202884329805746796362702978021353842633636532721277241517728050777189223581584561462469817495835492151212888628866178857610360988480502815885183660105001379597934201865954262536509080238678234441478363664628312516418703762049950337639756606821408201669271744654143733490764635368553067215257491848661919535001762917047802185337202799165201086666065180255865284733698186501325856462795850520917516989379120780942198485563599921413558253686304490023138223984549897608895074690869812199555110344728595139974684901819681659050526987800367587536392471885857766864928548165520237885624620026389901198594967547050425442285964981387874925886185250759225358643932554722092409259755738235196039603758851942261593396288627949694159335231103028527481194920538878032740238491825882108049850124176525130186563607719266564373978636243555000594260306052153938996768111909563962983581498066726990738037359162947535397675071972063940855100904001165611865285688630772793937538698212464821217954774655417253838116731574372286357559666325465104437866539948008889142485005461131780488030639141881643517861627515020242192138853172051086645929119763829587014807770255593029248863166659600218419860149951814477770832002815075814980793910359435145847252091574008068852742031356788496524035611650069846274090914707289824883874472999399544717616584458007726230184287577498946115210815723739808176737674941942771567634576273889571216515912823209917745485473759266289365145966925341856762271411084086533587480708815098046471623274789321415109944983252862592569284470037620087060709198342892479504633590514377131182731343228263207295231699278082878933865853541259196563225794281854999553386826990113641008253742400349701028884347017363103182959825736970166701810862633452687925852321141490561568456862443269129742600114512798890493054875495025345203796216480082629034022669773300168391866598209653108779138636443011635832119696225954240762475628278021040701825845632824992099467304702628384073014378936674865270668543397028564844760987681083347585792922487899085734681965796771937626205062374640859095789424084777483865953867306006872582648918021000646291554172613559634306822573812576047994382452764678273664817179241711043073569771035845036725625808221083855371414099547263836119590593815399267934331767840212094439210922794770874375549474631847178206638146953340269514327169252783806022189931098995282131689972621138644534014446872934598855602119726506246740589890712325487486270739884489226441396088653488325050431847365300389430217900005117698477287684777341483585031047792374748857566837630698506184622219768649746083813780686133190128252239141186361489716911656688864418913220147390347391340004343092511185183224947885733150523976694409857714734571021177455753327998473177304906411201504546658971823735156308030516814181846792125563161919166870189386597855872251957125456533770137633907522567670887397619337957704447535430284581009733166793889991406357860698680519721868247968419790946228369076600488301770334343720646461472812754868346849884031873766244608692588665859192105494122745850972264071247357242683094490623992205095898915475268266290795429726040341969302841276170925821951329361663112276548288301349766936011129685957792823510387204127191866852051243232597665883807015416063038278561310437088204473881514270907189556910647711500934224082032748979582305636709325765130035571440444943203731630992730270683628152633111381116837979410028716785521493195742666898186820617799595262135817376081410522920465282050989265839783747732026911220192534260792354086056471390755658455821238279865224226309465493838546533896086026847434472857215080102621358354124112971868588151582511792015365848616878345222003398059156774647396245479063065802168800545151073083803143859462206939125428566315497759062826871427106356372417546207456115185027149448737254419753613202132494345764083706683384586567646484717099470186891370033002032078199257116337212473826484467803844464162091315342568351582767205613191353732480081242912821603250656637944534716565168714316918237205985223940904539023945994897080907894547919935158328735367458208996042626352237014485697475339362202409341023240733509688080526256228300774469901907100835354726680342678512871050054339072664323776236949553235599700205561876362872694994373216784662134712615214616364007348266684737223648639663853462203513602403819498846186078117650528253294276483101513118475675965792550280180010738786337895462086739329217039263500415430507768346192585130959642097346923690784512780598549864459102536450465963031223158014448689006445351515784082248668792087518664682151393845780105349328031647766266904699815000392408154867078959577212327130262640163275791526226105290501560310715591459307744393213414776392219930204976726249212885521963274910831913640684492412291067153865803403472791099102360006072589335110844351467996846535902009341753739592181147033525733815207236839177075344162157344144841566588902532400363323610837082092587271327557415683343614978461935115698405975683253647824265193154480355023581032176477248778404564211869953361068269440872837984432916970389861214634402302871353218176463592664148646388332927829152600903361651274649209042540496497147445409849289385752794647589673773366617700628374950007655719274453730101961605802363500150674296428475550511458896653037197684101698038858061544121415517061440970772521065317927857763522335390116427041477224645338980261684807417844727719177546885817363226317290799616021034521931304660038245626685322180405144128664869802735391283433666047069180805585433145839466762455104872222806502779786837588367914296590557202579428052601598575279805609568737945752575289314457530282484348056338035300698806962239574171116240365465713720294872959636979670304902631572142252194458544099980993614608411746675972202334219875933815514350353184454400716431120369766154473804106061178933315091303764731201273421756328994663495177940919656306752512642658392194128295328883993775251494753879467877430381063708410749667294069874121009503139177692082182318090525356963876307914912612088572623851804671648906802093195256015121694698645620074588491684126307916459403923320521944423364379557823712607456836893821399865316663880405799202604024782035311041709601716471022723494487876629577426411566324307954507614050502572133704588822182392921970145347323863600350070469690715173824129214184841947876810325175318828062893371425952205352874910957484878740614269314145360052849275066973078708442991052486721829129434935669474818807569597168961102635834975853046439903694758265073396225686225686052733353102949484579646327699989193658581781222495503905116805755204151992265571295798687583195877222104983884317847858084276243876409089299728446237049807386422603031935691975123791512644152834898579826628436445330094941345605489243530721428476484760574390795120527533925027599041403542069950656771118924083633347942204158346375538369818661301874817747779268657760236970663384327365041826311410247192931812322243470139932980247838911064779047309393342191254714731020275393366080940244553723127025590284029097881101127235934677385819790852084314003523020586904501342877675208020252005696726187930506672851613076046452797485547130325854282626916603813765840645714034868267885103650669434830487263828711793967401615429392638956855060687367956386575893687685293432156741531257093721957724557723055574889607531538761770575686715233391649392907234545374583404400662225934376063020496239736655868697759482521700184682510128292105032063430754168807951349400634702032880128732307769994168810928856787162053349513227566181630941397142633652153418775064376689367912249903253593001669514778576935610228172052819288762558379510606709874605378015434667836013592853644491580884887615724285182163937260087671126397867912051303198203053988166198296797001932318484391962959876178474027837339039935810017695695593548672096802595257475890857485053249319150829664782512833750676923059892843330408316315035864809551436483221026505157504393048049168882839924374054991437783584417668747813249102109056286108982124869271677252066140325428035223554295772889390790394299825670626280237025416884977889137721594138248046195497541909932633005977757927412584121821813270762374971676176607095443713701951607516135959833090063433720496479701268313849656826546973615648323931422687349271512923206065891876974812562158417536327652306799660712329837016816965156405690351593422807684441338242907016883492209746340354319435702852287435148619028342966334968086007453566308989676569535583474474723368907625335388003691116670335553423802959892261784851543042368334624477388408016550884490967489205010148409004549395953308115148047996471526060943563830803496213693808537195077605355978425582499961663770373110151747471236166831435350080063937106079639957021259629988076138625950407757386681433006937144376421904147529369365816529216441141155709863700074398918230883486772247232829990807174229552603258222386176026642989160711674129589541616568770246560895059103378310157082087085571207894190937947616082267378990134081500059713918741895235817840517765134762093658766368643615176403311799029743247913873481022649874151232426536780363762463669938699842160628928320013441027333960497543988919281921777343443661588827615753905900264681411274584337691412869404858815907728558854799757415306210070504530840871576990813038017248330373625461178300565286274135295072608414876741936856321087327501681050901536858373194469107419277021118153145769955594243376263890168278290890786183547067188760375027903288781175741950109184936443054268198086630141975267599601165692692731033204135355268375490006156273425946107609193841795150582571570877240852431610252572573335119092993439975158052493025275363553073696379901584905630127337907543890821150165941504749774970258317717268475516057493525453080551179593261315378265479483889663524597329001051551646894706457019738420372295897134834139755237428827583473868132826450992920129927794261750480074367262989599259342859662428764227473178939656522791692291936007582335070737022593232928127964013040626274178936103559384912027981615998431260039797176273213717791069136957726917776419955075552689287081853815196105286671319521413679636409174477103797392856545477006394106988207693381916154660882147435217712114786645576776654133896323485088906970254855889090634582033182200804698290937345194440856969956243294439366685523567018629727044791516920173092223090227582376745702824030423688183409868471447851315727484687614794724606453901462933797590769133666198993238812968415816620609360347014007141972123991756112544925818513223029234259255410539682877030198571491047148290614091679921629261334317059158117100255575062247964480878490702672977234580037515734497009359242285731617930745740808169420941802766427269917730075304574948032487165851251965763209717660828949107458773097529238606472889734318439836590227797566103631966082764241081361299076731753026651776513920045805263693708140462594403429157076024630476086180362754709903508231617655763934657750786554896803473638126945790207063186251964301363174950705580195062215798881895693294296775038352633908623817016123328023689182429440527253829189128507995158037564453334381395078516275585674021711471918671199462452941587054686778100518922520167117938646509869771577653895619644594737063295641761409205824520517247837007982310556267060328733699112462325208796726719829350856496273710766785567378065965194742401464063430710978988663265620146649475846765953686151458205716610686654515094251408204806082718028746777802164715417781949173170841695560051723418937978798271632134094323233818249830648598268618197061927025700471163847868867048171759722908027068086741502239089910282179011248775167937668504617576461744666626022841649378451009169304784867178252847676448376442087423268143527046457084006058516905369900622214644602995145523862591949853232987170920950213457600178807817880501121046900934704444612820268543833051733971737820064208395716335983361863086517979823201727348178970058075934441025313680318244586133823290516865156155925393397487707923619648779626556978568413849106511489709431056827198057982482947712433344421687508341006783938729278546551127592723143573572362518722865932865504681127780150595654962699028613946620324319244565627844000022013995553565461047779442941505647425025135747527942228036961526587286053175264557058179456176488035516698024119119000455404873344416935826012017747741923930882823492043418030216822773123129772417846976828285168170300367148603479114500917024170219419389167947433331343658255906615424507788075613868302876281706822915276601708314556967320617644961102520679337769397332979403876471128810150442808401073540763682618551232541285397710192568950139251166575887656777699477396828168343890082236417638612109252539615077174412705713472301090087601851662609903380183001990519024464709885616551491469215567325086313053410598617348094303465685782628995234332359380396980015925550739551568456759504997607647639696109030565031538097888936882579033984985152726823626470204597554581189082713694869408470929346316745133980968040244637741784110779297611388853257176794677546976698867354335651270020962390981674993422135001013007650884061457114215647534991651007644505778450894481944055164778004902403435613284731268337148102451448802336035814592329292783889067525727204659286527776238756180701205467212931600416274596535323464981816849248670376188309164275677270142438795048600108381106481703528490688803571277971551905236790707995663348707587816632949366974361102519510621547397322155688088653150897336369202843484970891895675474453787808541081556695754498445505197129397371623235364032870404615315781356258698050888349143732159651879588634687340208350158535111500008452673602473319671466351467460940472459512875044509985165271224403639798914672594674867914513025227727174752742391569031335868274977274026029757817034618557745491127221845476445773128319669093764079734031095805001359643191301620260798582769748673638157121510099485715906575128677841164883203205189078014021692464091139156880455842880420543264850720092607726937283890058123020633825511479237729350790670706762035316579756991668553911308614126217032514600941726434195868318006707152795308089759730015232997672329280674834131198878056956794680276790982029811840023480645552818610514772788203837532481088809696623125282426133156655328272136554334655543548376514140042918998563895279989576861449870452425028358971898047304755747105705399546889086317100200821484526957445366765912573321256313924383841620861230601368852893836424935933541643799645367280510416852397351493024241854165085533582907065493877289125295643790454726305265451844790945850832751053058836033984050789687275052212862983971544558223161488936756911457264540284792985874761982090666833929859829102341795584194442483985842449859212404152306947748908982162176976853883777824902008283726883650088681429555148356102204967785787466193032923980735344635769272017051534028477111155448835651585579579818749538998937452589289697938047241435305007097547358453730455566951297978289066570078384511015620456148091521091985033712613339613812730388523295673646105853286586519229927045980392803565571571699836108917245609930141384169225799373890499905458614275850925352757033998854699627350872146590900478703856521642853585181017152790114043522899724799237855863754237931245853554522636770884489181813976234501554936909545316829243666177772500763194201308510379328905571108760905594388537433444364776110573088125573216696635369220119324143479130019770696097924863837276356699798770100186139603292711766577313042023468781355810840641871198595237713900351051005068524479477135973682646015153533238864502960760139046904211334102961169872058043927636248888552187188701950683871753920015049711804451044900224887876479306300862007512757989421659566866793477576105073536040502044605847094138252991813213590196501079091927535920797092957781492630518948906971933668507751439802186110084380331954595662561414478055669844463344007967363755464262859707296938277856129272235094208829175969354134030991453102671702667998114895867471680179612103845955614480776824756351570249111088913665463300062422281612709984605351017716879901666197021326514607191018354311772907992455287021323749197986177453082361601466067993039177172825416820310282581019130854403735599147608432411542752374948626547093060620624444273443239535124823143381491827361476055917208019072672297813268458277279660783405726602568088830845933668801067580604923938331208800705865592019632554585165054385439265527519847069271956413795212836853007716789099491322944939684301888078802747503459141080589197708919845791299099598316904397945868030680655108741993000566728982177336496490842140273685022523844037444446248203274369381175879063299521445152000719592588417609409286529713002304219993221156795159739383676934683877568470231574524427469871228608085439571473140475685531203015231568131553046829481887179223875948169691823498112386177110330967595114828362819088450718145481750994487335075107874852127972305185491165683232715624013557846595376290510780700507004875104094763706516013315254265843312252441395749089204662044993571869035413585294887869383183783832359760710111348102787482506489848180852438643703678175631988421694259580821727653895948111352049920896466108153025533212719306642933865586446739367221339415139513610129276695080500686394842310785390532873110945312982173602537727628279258638370660665101973717972633313036860915862929036426021017112197827031646124150390446745126005509525347910919938657116128688292488408416910314699185455517222877623810658248442348616803765389269588568500027301963325967383377584781090510813149330371620425040356784958572321562496123644092894885932952681551562279770520176943897708569622465452987487097657274632837306809098412855412698819586011018291043621231793169597592896018445824277917815084338391135536831532648846376760092513524546490745183307157659288256195912558158004724063432128308690688582405025676724909043073817440006109501513615218855498118111640654040218349376321825488268958272135735910946540591495945973580824179407329381161877858389793536793609498278691220958220260854165705545234754495662775722296109042463019652902693570933019160088335083307847686659281126738850841378976704036590501099286215465042191380168607342318336657376084907033989110754508488535008427841883218761385826430629815766873585984742467128619223046001897140590887167787173066672557018095685741206082431041611227949166266515545432713998586727284095944904349220501754444933175780529659522651292470552453568406364874467289134658089573795804788488295166434147176352366134595196475954308767092468199966537645015398534271187095459448968378530434503755482511467144263251007410123705699575940795305291133328976263523099629757438382387373725725615577858094669486722126758859171906434281394051390285509870963556291215689268188097077538088712903818345725571280621633556737834462951104324407020341239262923400158730785082419453175184606669575554715336188163902928325270083945924852617371824057135950743212332549691897516942496694985158364129263067479300008125092767629569693243913728735691403557998001745805275456179454208048177993768446459293861298471157842401666073477288134534639499247073540037650754167094953004089721497716381798248220669429430916008464943404110962667480981770576343581892241687294182338728261188340860617006827387515066437955393721665337501525220474691000361426181588195584471296773995933822099490172296856091428318963650187364895694845644174885835476785671642099926659365006404804670754267638428600344134072735812958763891998910620193499656903766656945965261968361266865560414576132552680320819337080616793692837105029796938936992262707821929541005603249910984609627430909268312543050039651197237306609260797792892443405976946243904640000146468118806636897500461130363679779985887949472128578886544822881133776800089150187808969275811006402852746332024060792433034216901274467942256063073843746619551147758073551607728326352035624766020041972611425171878656487817263835785941229447915807916199082965438850207863998516111044954178370286628420717447555160694594617308660608453104542640709920592780439195503129856150127693687928362351996779570679566692565656570163742230896520797768689191474400896440893432005051418640733422916376211722655957137430092091474185440782061618660988366681114864541728589030584843441504293783659606589486932247677945971682560720585353467592637794724085115013040125277966272465157604308850442693371289134379957406070690536295772298721523775557244033088684024849027022845540083128263123885658821628533953560471948512302123759531871290849926460137381473759635898531632614261076843031440733202361236768686546642426682928933898197016254584082153407009131287285458497438302045171509232489270711903570711312790003928830255572019253471837862025940211245020933377679154385433202070125707982864877645463561821643846432721480059868671553590039516776770532043013933285658854999998032739247512862364071493111038285917157734577247793319871404369182862615472204628425852411065364346948928116118521722067522883293182614963787410619885952278536313621236177361340897522397846330975477964327550895108299853723731056957015104071362029888406874509953828052021266971407181330762545750514578396906892700933436994992918457010641084743418302784292463786606627902559586199371037381672445972650228370751960019515102787291849654457892802580194188357197875732612434361612711129166356687458670389587608684784841784332501933242236604367188969795128499470654350322400787934293186800337118433218077563384117243255750522242525637483231117959850369530044269706418119777484529989788685116236412398762835322773040526654099846244322669249042267346980248036586187240826813898230261188234465758115795671344717644991112016779404317073301745069771285752676304096655180525449285734150159291374950199985374483362805988447653367204717735133318605512032983063577210482209085367735195634579008110126117902205206349905691417909714675631468362063291597426604071250120804812483658698587571276756353813654553965050447706898193138598662561842121215754202880635641650886883743932911373696800056984726825091109814183804829682368195820830640617563158163890527914251818903050143784589637426382110757155871358480182845254753334004728487693756151547605991833918162329009458304982064808448381645673424281855024628959518634070522415837215722311702167714013142442218724006310905357550701776153228994110105919617478982418462782704684859200868580232380390614943608031893678839847934540957625902536708192216815072950574624085414486604803748520467354346797717000777139402237948820141408712891263569994958758276442886993771746662801851827230843628152164618199713743423195314178437147111400008751452935276747448472562523392348552501513752583896925748158109546193886490217069126832098579884706162636807759313214022378448920616326844438938000423741775753536277525519799110232374112168770161983575714955905571665129128533707182825675681328873013011280581777960021213683619495072539606332374714039074213491300988326874541298831781328386245867433888192219526480865650089885595481182024141253671753997313860907540742313500145661201278482325721853066503498088758498606622558803563948019484348379196029281146275963581908939245034744846947199104896150813448341847119103631122094253649169809471207239112160012438505199852808627921980509257726032997051085271637464878768734259617476978808394787616112756404498929707283861306888550859242823948815355526483987242150088131007172776227427461797805432309448469879863390239852867262909755356377791968583642100069906260315033920175792627473815754424131656128332132627004692516419835133615537843846327120375197515251101516861897309064336924656151689912459498693405744719897118270661067986808842452715761577806794581663705579354892981982314440455419439793181890413303236824742193694842415423589792647738001507526262027399511832573070032011155039446898542695095990138481073361526092389089372062290522283265987104090989417381177967016455958675951275833272361650320559799818286251856258826779241047154857002469997339022662016883634848570058139667525938933462128267691223478925074151023447399837614308247267236674796218116498212914980032794361961770846954484356664743614818401026831480436499915743344253974818928468807091280922443296702792091053187196095414845128390801838708915074980216500374542478409665846163554172054442626821162905626782278897872623559897061531393750852226131455340185369539705183203089771046097525451349165661451141721500371814315044495782499524914452020303218890031059397006898871011097336587520865815624650332954912680138942600725873638719947838010187762377470082550610905991653000425468910958538122317611605952439572458247526377018671691608302853247243357427692182231826390236490935032161276179899060519487154643011760590559420761084567785469442823720851894031977921455106111593166673587026780741656752498000618175471837751641662308002775373288625236006723512161095090037872283265298259843176433094631718967330809875245607486419814919279658612220949933857549590416893499225956051088473769209025630604989102533917738423552088490345729730001108643552920519095562889638010872751214025993864100995638817267842139531762531486053897420934779327461907647739940857864616399924836900823862769921748914200299753997863954977383693380020445115043160954549218460148882555858130715529256114183837258553192790988838892995865019371916634476033372562271613691323600438900977148681973501757046128919129302941934499010284954681718479641862192771467421398850219871109717579380473194190606442630898256646287139618655867791233896115426989385768167445680342447915494983159148278637040172041737599119487402723160016002008241455368651519825834310307101444417856576153131495918303464912119718254657632029398159307260141199198881513344421294163967419929232680808881209616740125925615470485199307919503040062522706285998383257511954166980768602415337747442467646043394446204063561459492505829051077880201872915678801308417796177841722689583031215762908366104456511780857209072746905531361064885523518781156815139766324994513917423091430877879078000824537607979520423261172045635509473520396582263638740563743583155970561482771603408486029719533714282537723601828699866350198727237447293971011521746442134112980263797584029860913046711053004589071204789217039471389891364572105323619051593733347121664326803261905767037552231832983841219825921462247785742892058943990547341044971504978603850157942078119409512085979558398011692147422793713266496432662970129551091619041376659477926994968399730265121717693317754524694100390745398558097089481996851170589778112896349922914861251974229486631122829475072701639885898034100512614797979517148046929911966698130953166875954772157985309626567214069211538833104501902342581291578092956531384396451155965552860488515033999608322219567279030825210788530844895098028974101786226281039650091649308803870797861267109388089440595466623090180075327072659316032897464683820669512152723292710037144998781017812396209117848912618147995486256530206832068819310914707772532414364402791981790292038316566488116696553875498327770454777623141323566965422003767712274291370621628881549798070635968707162412477496222979878267023859288959160278302972839559727958890053821338086819877208018910423306183728696040317260036461300789520645262754350914537814140109481124311518078654917924322332730102930824784459006466059950855368186304598350586344647156463815539807209056858102995466935277220424835273337886212195331674586360030764929854397288353704919441303698433258874741309699310527249275791639940337671295443129199799497089029720058954130678604719945395289887510166331041638342848858800404776050069775647152679906930920797737596763466079989025655158026143133902843704356657055642499865981261629155539822134681014217223855984589525809541495677682965207558409704618167272454298551021974408331743659366496954265922622325686090109350310627598362167561633709643961244086283542306309457747507021943996944847162000752779370474642391901921350438144646499417985186431143286098675238437921295356532155155059654680884100412459458676809714017839212439515574039900824867443281259748906800578831791007642633473964594480740666496585020061735511106153909615249067218579716497430844884410279101545230244130787110735276511136579222708588683352368193262636497155150317048529347948324736095825409528271894056690423708539438189311333739082158177863632210251416006183840651059885830223321861578555639063207240230245091249795743511372644352002045545220975744495245124742847962999742001622404498339757534866729051672438375143802034249214336011404247686311902874374821553580057177053477907708832445986140571998957793547033023092540321641435481258248937861578091116827153859123240487380412686824200923125260203394283589523192193451097595658267597293418179844544407826967373594762526918025433029114675269695827212726827956147717815613056990978095808714494063903704622427480778886983329596109092238087027868962987384998704538035113539988299249778985124676885833868104798324641292933631401379734534684724590164430384459915216847527473223542388623206254707669771280678630219410517435693100482609852276097143929201559616726957501418633998122634488336840896331638806567367273467121100967411230058968822007709573981679560651633433575955919040006628131128006701641944659670666936772121537418760185131202643847671572032753387187585514576776439241245035712100627646055401157973708308137538181986822444428015831513792411768291638374528247918313627278178714014894701420575645456733435200792797475860064560575258384928481121160174719180560141204348512536181169947579343495289448076169936163353481511346546889622656534185530151834724507782039072421951801185380160851416704991951148721081190114523640171908191255950268268687385032335293824679134655403656532738014455131309964479290425760468343027284591784347716244752695434051001853043222718375957163454234531754062734507483625301229765491652486852071656636687473246854096720896845837279462278712007280274268965150583614348305719794428908900794242370850653062684502999781956979671900868458114944627233673492334746066097809514900397776802074129792196308927259791506093027121376238516778818392717187967264146140508141553454063543675510093023525187720887365469045719048033942960661873546157607959451383704128108183852999263524403242640940927228278426686924113048832832906379628906251635557637065348895259283026064151828433733283635815411653833152985518746093735918012513972508505073589024221399642763268262412907188629835470869645666151387625561112354809726398594897967988652878722216208402059903653151420134536139076148491403907064019189138997372818193663469279209704077873277710422978252651594379765455995456814477435412598684000592300026991628313109146523679661282423921337193796689882768046392558079346535884956333937473790306505158609559385571957544392951123361450411640342930697189174268921894042140344879306733016553775614945001782132002254588619477079600805999108578281837524135095967309550927597906069540712719819463110415868527412274518567805892139306539258952944645096897768749368138692213963997088978126963861748093150777575581160809758565802663337103257716912064696105230174324311114216054644672117253396372467389598323526974716059587333357328590180800463200208341974338952940341647595131732027952088699805031394977091655655980074744230899090308407590904459771565289269171075418191546292644911507938293015883713162015070196857798758875888979568679198083090974831981086090353998576046575887307340155371552894163640319001180005350771014263627976382584307315955734838418715109376393123473875767951232551562768513067176532169377660427445683237451457834693951877448040907323841657285421163071110875177473800226413312632909141848031216678147548972824656657966989508254222530167030872161379174556482316581791441177992979937785286143259130677331482530283958374028860463189070125198020265269569224185735860734253875861478360514180851458928964971148744308148801910420192499436063718080515157212895635256957970263784626221619115764999329827750310433038639964131211372569527852038654625664462351299395205618217361632402608060368015733633787854229811036158144195530927906851030887777230201593491471734674074327118400194011571699751036323485518349589689068159143660996035390553238262853901176978573263021877863970289456641740658668680215586314458895814918320049730307644983050691078177441148559655982273636396711219746642986796044524423520109907334087190390409968177312439487864263298136671191454043808736441730867436783260901413067442738988833273829574449035696821541942134427823533241283941954066352324760793519211409065511375794219591681026043508153546323568084043468896817861139565888412898040203101469860085696419009198277332853919800463303086222992684181781372381524157922700757594260030703419842137008673233165107062118634342349311529325961512777326616703738967047475200528637492702096219787907549856921082006456190556386870998453365604166980049631660883011947390589722348010272682250855671623546590695150806074356466406549934224866096496557945339871342346593528950708293750750868359342478514677801705648412413740992964068224033732710192261902089082829725923594657353140965316408118013165554626509540831692337404916090475738592097027008484279965577778217188061133906361742610425523636373511734507005908113917304195174056994822871784231542575359479301200562084280061219482736420256571448145116248640817180512854575133816195800506593602615241699757928827759161836955107880151774816379476908011552433508292002993573279815302013165459482364877030925747596562069959989406558107253116079087848274452564849094957654563259928458224577167981996397066331296676160981729352597159611416482647388494851699969425622524775888392031815622129112279340172871279330925964509130060075480920881588578787134300880941655056788862862539352774891833228819112402174654061840887554922422293743770489192546175299371134040742560622038996342766410662971490502123844140477748500831949759438363511698401262078922425986728162395014782934171478563646279788364022352140521247106288195120240833383564601377185794213880788732791758509286715809958574865010808172661443941733997053058565643872905235236176840846571139894625597767088979784123151617814554348924642328700208193097542603975254577434867351899289154431445010277369437746879133790611883551925476093857756878191202397654386175524852089012199399866860019778931896755008080785649194534036639535345468524590283826589187518530196036821282149613762596266323274421331191391574200744746216426197810525581786236244434287369813083879226497823135878334164483274095308291633045165727185929077677069295076579160138092586456650326542545806967478298377195322008167014077763613341950226293638941455886653226518737734370205577714740937180498183205926665941863198237278246639966289955158779900628535814303798417594873719700167323217046355354536409324562513794930343015256578878010547571900654879730898378278244250765182924451198048861477308785407230486075170819712404754463443647849857343474556216574575681199028658468333156049647120629363833295380835251252420348419747587833075705580583963058073439357165814950001359811326241094417543261371606022463140518717083913724179161173585867774297400466891337713678497312808315626832382688529280221585228373442922359758896112196666213667033428101017282670685511642814701926308715333156807682345203167386808970910757531192034499048620136805934139720503945607984148131980733439533197427860373181585751085953280450422398349098288311586278732759984922211425610531229707804691339169966361786728007967775782984036779892573997597391081160894516810118441086006799730465016978785007663051080714966736917776870265367418288239425002840716323698197719931871632688550757812781494590204582624071393079720408736316448341846211466471315498648215619691518640495178064536408462536410746294083031914053471308858027497610078582372013877529252503607277559393708433841429411373833743472611302499021785883688220909751408515460820646897400475950127302850375169121817565121008079777963340774373524585781113784663738459532936307137205917348238163474939423354091547266440309332378507587152915120553821037036748879920057601676508592117238958077641050985992742352889681174554379729622697435044319830903774086593066496464752874229508003885390470100511109395473764568846035031268490752085832249327735168105516984555766785611416925229022966493789964998461085821998126169562345352164936180599304262283761845853421546162703779590279338578615731772067829163820312251690410592330018915544687789044363919257693952175802684211033932306736089738418276339559010762024814307519695953002960210438400739881405474315928988256451156367596744063973836494955036361868503265390940145029421603911964702257337960484112947511966110464826647449472469565693901692844452031259308978502091565825186625826636540620778713983698121646981233703347149718758620396139496755320312088802769411952014538507159958678875208149016989432054009199300501566110772863681487972588554090740326696189067708743614622617936235090374971462760578688236376882038382294550685670607422486553130756276029158922248047709235232820156775161016832892285464315476278277663344389602339899521988297040645143878934971064684042564769203269715832966742678391280361140018833502620132922814226484321573690662718757906703483725630001086947206420051559125403727384152772262640607849086347439753813288213043955297126810577532163934796208258865532734169051285432755692428423385645275438942933869918723584729266314914134595091542181261247942988927165988475400054180063217709370317277193658030862182160854583253175519532591448330067307369000659576789256617094051341879355676780655765388132882235581082097856763987183257431025341225149190196401159630406962353380890054462419402432976504010802932171459962516564346536754890583221721756311410146685142515829438282353470501116328415863332092476307929811454195883129369931764246634362131704029221307425375171024517243142615992310095209505587082727149323165197287940538609454670461536304238531196436746688294119844749466931797962397906192716568795432067976329534514355098597369149730852138426416471626867408541272544676376778826749593393917589126467296973293734325857825106328472049308311661780856583074818662443230932392761740295070687372813322465586203195990276577441162954812645292111485175587952979294296929798644995745536123979693140218030117043708867030266741505936415424408198136872315228108709328191182415723267958715934358211060734118084815875012614804306814410002589030917877606077014417979077158342277916988235370759856265232463213722524871350245270197808218349503473285881005706854556144782584127620703029125867778314064381506850842835290156866810710300692961219769877136035006418375139097953070453059591095284936062250118233644919995481609769901390108811328728940794022061160333362689514103313994661222964157579263844745553523741238188121193819774213831894135725710711513055953908572169984782142345333568882260391572919321704897104615228889581694607486536479285904483549490644615039695530468482401768110367307213499931832743003566488231364785234289989446302297542029261572707070110913190526297908351540679095450923310613869663575904522432721751192157585987727207556218401441857297986665009118452194600783334531853606310763276512583928847312949100719736590789717475181164024895759564719208468603406165763263830054822429900859050723931117781155821545317423885312044017278941864460118339533446631996865306678414319326380867367637965694589656760895033383649297452366793551471526503110272632657598313259704800339585507708167757323930841699730506107490237934512014109921932066019284802235708317607308808175134479356473835327144793205507931664072766243863094216961018657225943565042812680850163152044278938059896328471279820783364562674894298974520549898540652862857919717815334977273989593852072363194283771675492094704469932754433578017061653718814268366056068283637867038647515595659992623806060742363715664591699144756030902837490877749032781412087833306918449977586753121831244155444239035491186938516187079634571963665091880767235828955171234368278705056852371620894169700103903729243682571525675194876922082666605564103041523831468325597935626599620371308017366256983583915964999140272553026304653730967901498809298286985076549785799669549994521633861060595410475006985788791253415249298925333184549329718262338885255927959387567890967365185320449653656121304618002313562945713798306426302533121750187654362440342869132410790191743516758353707711369495603260215330889179895449688620490417542981887693701385078112111574029183261749411780276626500058727157671696918135474585736342472038966076114660692908838261690300436709596330545869715290068205451546479871749103201195594132115134337709854138145321998699589314666561723046027227847566991050328969895961268202781608755622188914324247187005915641298251403506692639391446259702494846857980944078954483053741101281991264095665166739205801550639555285214162161597327915860834544858708072261524921534479690475064190844380974856404439836283171708334575834754668935179481411688485304537533106798811652166084596620453714024322521694803607107598253775341169307232768761166219856759627050860442330556899640398319832087028812882373139112167426840485838203715786678256598159770831810202821773631642907025127836722712596763816394772774984239019512983584352193486263226246040338925527054785672774367405974158692915408789099996512670042613546951426438065966308769272886989146814612743120787859847389190445709818689823861994960081328587958643771998466376919967374803356949359310019929550146976043658936547604213826994322765387910487085750116463225271365033342901817176230377910836723928297286186262770473554358916857605549402972879863960862867120651484705030257257965235815283386479721101061331031440313638382824659608986047331916254179310060696505288675693717301393291077521560550079269961657220040579734505871227064561032561517679041455770269077621479712324641452112678948267359794244870863983855027982164671099594769064162786477510915493072423897251291676997346903464670949853479812173647873928569687894959397465140765108328118152534719655438494173478466815446338895061721414926208857125280183961787300640853571204576723691578734137603754896275923592550846355153049804066574916795822396586132432694991554854788380188228804305071013154102540479276849754344432388192810609022606965229566694898027752276010666557796835547552691557610309823038976894399773296411612384391440457342495423708325898692046872682527422333320206692136997371578361125945275219358469034510073361516747462823781330200390165934842983384879785285589653050438703597340578427429229221892418017908343293888511604793827712185302613834864840922208415194869441927994109365500228762534169281089683222277701029169745422591102770497137981233091981805953512089211121826330247269159733580057117995825611565795253175394424384553193150883369286193869269689532752133591021766967765982541685679753685202604030620354387863597941441193648374925509461541607358281662007016669659949353578011203673247465247893518423766562667412702261145620369487473237660685595092889832001968639835498113354120876774931647486083445968360951520784839783402517982617359731415303189781094375475927796817269311758498430847791168647123233443822348099904878751389171820526816478222844729761184198863039892915060180973116944290083544301885111026946015704780656404819797942156312557464116720572832364656333080514331675064221318386540143745488338859319809753104283669835015959212610407386233719928450620598281840801303131331072969245523976226577554306316993743776198962930715851201301089370801013562208036811909056697369757488236303646538360658550708380647433398014504252334150358073905527720437346728735954336771106960870564353721489371018996633365608355429861996376069934336820374354358906334748051870676113575567169445670908491198266829785109953284371493009703625886796295390822279278750478053393847724901989221708335682638479142977744770022380472404158400827341334708817997532354692454892377150518382469161907145017633594920160838144905281035849454196582774613584412422195092388278443515338782375714543124413543974758940435364443860685271566997912582487159108036508736381452849816954779579375045054903439648904506626232787801623395012370898404180411416565247546020376219697733091836925327507408699059054227255079931246299306114750091403114367165059648575480173764564683312656317242378258439862979301712264808361538993135435894120687523654981784050217347017685724749194734325135777179793329419873755837263242875143341480655686878987064699776836262854770013275840098959102305388191296769178943859449961276640888710947296032362406989791583639877862642284405410129536495042511279249106477775172066349590573384358279561996480659976383202813822519845930983758408061289391809345222907749727988357194585388792409250390876674555171444925243689851650695569024059199415377659544194945511829413803778301615857972951630748700463965612871250376189844967388943341480184903509503933887470391426452886027763236517434090977570674841573162106403531984792120991195670177565410878829190601137944817182001072465106357768459168809322071911558447826931272352428673855055711383584492578923155327001861082717135655579675089012090150186212250137595188223982128620316602527930611849376290441266557379284400390529382654624092074325432561053445386427847787857671025064702618931510225653535184215690134542742595944183981290343375481310149604919618050196111118317728081728888895596289710985095118872226903747408359935282256590106808357792311050868615248156452457413192887449701321361366797578060841171712714771175187736490908454805681609414462263527237541805139353947929746065424352816131496215712983509952194307978235461786136438780016127836566517528762651651051791804512522752280474961107502566286960716371614486615468941897568324134241644635787265817737916428551028761159826327917910051117802151319249022706944137460868613496103333342409464533273792583914810715100009870309351438992715929590071564451527363994567096418823980056450670132622829625530555245169130048591721729603781299041928098848172163836660296517217274237622361562090691734071376020933524462622058094243217585255053642961773903119031192355111675743552571250191680005523919124764708817563357767462380416561467937429691373424764769449864387960999753463385695740027227177779915335855887054107670528860000084847691319148361080228957302594832036760583457770063564243486946731623465610859357423872966519993586530200059470922383791181284497837302565046324688947412876205058891117623442199843461566201195357319237945676701636164347046764651940247271511229351275917477129732713970078452332844365350782893848721610797149387839798223411853642935860128741200764468266654475464002694163758773563942922654425533093335631213523331096287005634785163427006826095727384127766752670854890352069114204315887704616739778265640774573116750118817238807384572887183691158272933027656077395173360300038561790028428514975412973358761858187899923267640886570136700534694262067453243067647640558854696027190267693619190946499871944039242866240176622299627965768484023405210713956852594106916317539281169303122366510559842270960155227113450820428394839178601718628677309807752171445626542275196149443133547697408486034073160124687636357038243180174211238105661918466021370998873759128838027302018048148220891547959587093759008988036666885424063083581068491176754589745992503512437393198956793447138977154892299236877220744061483250945030609308003090175450831378292455700881751918896268154364152326910867439104422118610090446096205153127559063949919600256635856451633350797576742258978341424503101818935662921867726723866499561016388027027508138600800705788761086920566228778223216479793815983414517449383203173238611132417669603992288121537549909205454586335481135453948584184071821867598593722714657546326706416635785131539571529617997813802548719747097052386390821404867178050536652691273976137626467439341962920501203970978485822067169291277423804318211956009790691766476609799501568133999322864175152681346044933463343043151198532818151127473855813639309465224412199511853365973058972778287661397491755900163292492940668221476170105794505267449938297412674886847176731186880622523192483545474645773709187858574557054147971701147789087735087752014385929150401731255400145071379976457168996586586163651779007936389934975381973256002449399223336955088543552276969134204168559102981512350806063283619014540727433449805413181684631444453762366433943649612435068070152679643539888562378746805094018022097269906998661349558489788960170349305184903910893988492771823882616295142575257635019080332604599587242571994592358940680284861477036556090670262220255202482920514279289987117386592329136337880636341857488529067483406006563707572365274114989437941662093233179898183194861452727238314323195606219769471651600062264945009769578153257503959812341000142522808698999610429429370314420431172703521136552533965682262911965665495269992181084903596379137917400116604262751450351192505096141686803656946306300327477710606422180862692060645458111346968487225362213709153732011249528554213294046423901426487667449260350829461826957432123484005637840300816934240951997270588042653159114552943935206488528915420265310830178332116872831601909707350892023733884030517666510703543861235108609624274078067035020451508334519394041414512120871556446392961572412626273211423635703558164269821330475460732745851708970337034985431266577445867747013870829937016849730829480970574769859404298004738343378060037103421571945909209676839224319124884018986060061915395363566271427209910559050527565916282488314661902589817170550868566919759868868307317965103476128238894007200218839441839399870366736351265712101850772256330997236869647657809237111801806347965712033449721092281878293335809648800117591390468085078516706321810620544485762548799488777352852427186247784816327115755171979471785120051086381177233444902980394854822674695725900818168416654141129044844492702180336987829983936023496764326372150302603815907173233869618184990152973160727499205675870561702316389901821519616246108626503949725709519631573941479904736741557376455028834545384331826146035276447702820919139761642500720739802441560608597536811099589146344419389068483458974798956896282584572544420638958215328785750802810488457332881897301734958301659312615058450637988030240692549145258361312639131112357563926763255583234962951763000574261919496462530021754931856156041919899017338775825320172946504821797750546132505441356335641310847582181716094200995430556506091310794293206804031888324536773827444887415764723090609934147359279041083931469882007717386652579112393516739949684266165044876750621383798898116143543153077607976492004909338682904526336401693685477098603358751136128035300080114117237790431898138527460055778194386708220745522034595146079024855724146903747702788926754959017432041997340911190764218548547880111392593397560458102576642606470974853552055012460566291122758016337644258479199879959124162981778566909425926170395931116595250717358401149624437085200137418456471013579947966517729067961887125848466676145177497181008263259841343332256075528891272220541778664093988625272499797350896497715307843481871257112262906049299446698161091253043951054290876154616113460360091847064402154516856236639741830113892063662004752629217094152444188560333687003451192902612925796984220659130475223191843408031044505841148826207536215192236285711805949928565993600089448055411285765621375937890532063445203541495978854043054860304724231485121300122308918935597406989230636629885938869516753408183623773713903408999868186267098354224312287894668990041826286301926114915193592040001544170872660592968588376056263032415024754902158357972350802999541473745971928198452891954402399823247306393405849465278701019956002623060750173428970587757769273147544249243066296190503463376742381603435151745032522222058491784323853813465824089302986898230087069676053367019960165499623618297850876941739965029142254891486377539469366958100985572138905044339627236590902264276401360516149866271691793952292108589558300129038288938044351925153991608463304312338117844540135275556132420074994854027314682453172841747392425584861867845793784668819770104304801436494680031616069470138027474690723229892929791936291671583458276143439165357618617647108264652514606102623383842866070252992654466358153166504250658319697342199882659915653980043775826377548011812898080030776162150414433538234889165210853021434416914607487751442375801462315595056913386810917428998474158568009698809432799295411591063616639997570798124455071556712989052523359212977905921777382467848027092137227786512978606013880544397653747592032197755901852105244089294028437271910855984131612452307174833631308616365669547563834389702726521996346473735934100943095088781278104707119670206609068345060905118322062725761379901207186062312330582698746539436227577962552765303467638894809771568168295862403223743516687222821399511031525557977064305302379843029159463255864192084975027646437839266835578083976696977581411092684444269660373146113176112944606101126443397648758611193874506765755889286547110788307655952593545894705059534101316074110811724898199994074584471851561369255333728263086672275362083386790739183837442217802340157127824182219833839307019075441952049166289172703576738342664943668798889541403285417328330544219396044381659817925870239429240026564853012106835103781080725525386422739907167149134632676285903931941526646540457471219266308011486683396660020932571289077942930954414528007407953158998272846304206619091886296801508331731598888361189047682375518736310131176871517653663564528289011661967329257256929365838590824735024828160876740952264173586190611089264023114360926213212082450646601034169018401251449881117967096228043084907326341597287258583479882233496754281678126938047725793322336356049265910563507728813345994127261843926853363559052292374850833198296953284181935470212007290267161843958295532168365112032637328666072295606240196999836540328673863166236943527302765730663593823127766619311068827857855987145781507224746625523286058566050244525434820369877127560106661997246169838148689810760254781517644586087094887274430671845992938286731501740759086362338183029902848709018951428511473921728543078063463814608557894290990969023457963869121690522414887835749543347525618355791253499402989011392538370935004816104426877643874032904535497306445655551948466203327384855593123860615063589658857727561919326162971648127290714417964297983338196539309156577239484507215130811946344201941405632035058299957366660697083406333120477278557356504982038672316488126544836781617133961439090167860045869278891267657538971158193139919278850516170150385983712102269189001111667075084887475592491077872332812541934614473577191796463515501522616530527274603360766401639321119984331963929732925525254248018838876126897447081616982983373431768970663314876894759011380315463535212797882656378122285914841948824139725448233215566340946872961604688964141628083263631511623072902348590307796004270254761385524755934671634030210169933441605519492292933626679269888922072518871304471815410397511129471104517217025575321392537808673031525860407583714410462182859011288033760154208621241680308801988709649057068957485661657010729349701040529243031951952362892094032846993205356298639326394711758871445860495548963082099567618576847900160423643857579876561438331482119840550273225338590657505467877041396590470297737859331976620805777711476552357634013203390309159553203811365296520815292572468289394418839742321308671200456500876850726321494628996863691585451548141701946649781581127122728935316157443384185476337267468465941024563493120420074327483369776536174674585390346007350178790224013144157545005264832510318731079109209783706213710351035487016216828789092014850282586978125000250939220007573700741364977155827319776771031023174312976681107197666408712350049851078887432840479791128904415441757040281265683175981789978986132530345954472484190620524066937373274128903350349964189959154140369719273899197287802039417739920628325865582711672507835912884263472641828027994701666607098766226933111019257608714448241773902392530085814223824615760908294390243092136403766394265248737119415062627473448241527536580415439422871481010093555067844969441951532329717366877700628116750883480776384455529104290931327225593765323506117166929993582853247070362866419368867039163356820189300854551597205241622534100832923770146090248983038808500214910598088007679436539203892139590547373706451916773418749635543429129888184769473142348191901396922845620646343005862818192631481790170925440171657887509543953939796097780979820888701057131451143597044502774526356855981226453468740241249165504842514853035283194284798280413412121474037314561650087111904851389694899216494096289475380287664762564231578924699878591593463909920914459601292501956735547767153533692017561695848217856240213607057054090505231464659179139941349491313568787520880638006759667987342779796205656849310889459074837354663358177724133224214022532179391406050442013457830246586491941914619524876343255257736913387078831493997492971935240213783014796645799688612668961051880797949187340146389451302144217394459181891031061103396014286114769361065684353102161326894162782386980251680956969300189562480223525102136968912751373242600775846461212017974849171397180106054972764766281679987926694043554073810124182327339469393572281539090773563340886584730039869199102482104530690855266224257940080188459735288972655942588464140867290043329980653693439713915492047446935679729110098294803167375866110833763121584228190382470082926670759951718692606768722372793622353275619756071386015232254547402250884399904183223545404951122712048669995663145038995248781031349855943233366121344282762098821713616819021596242802294969268984030379004910744832306727024773163820764217443962828622690110680451545990531836482949386879292533056547568159603811889674959061401858843652622665741999867073458331033698648355572698543282482578825644514032230861181078466059772015264953212669665096174973635789839990027241803821309536238054601521469383119190855640523824609834853484991059664572903600640552074324348383194971756366646534013575569080316214662471953280840935147910363471931366551220527614058490708750453703831876202570542437583930009171425050727515946866587409547865484787213828049431272979336609514946757915779340607240898107227457258821081730034436107421485182157975931731825936300607513724302828738581027524612206654178361777700247845227204779556592742709242357236784835890079115104985427474728201176466352032125038446183216002294952899550327717422485737169599736953732840661644872370267940233836330151780342585566773416687884860589900454265173004904887447259869866071022386558792461753485368564239045247978929089927575736879096142510864194859151985935945838881374004665457264739753346083274404665359323289303970707129844379023306455778461689559047667388014470775152720150117275694654109140044761770965617043678699088508271813584938327536795337947464481400192780661275639656840868409390076984865892109167300549379703299374148996041734711752248692096168975055866420588484268846375958439668952009993184657836394913584285570414281144476935093645342646811686925363830203763367681159278877814672301897332301720660957593114290223522882761479171276408337009659038563254587437675418737768667178614001439699983446963519653383381065551389525024988545733831705842370064758631284761327706586705620248691754137567911984140839445355310547701167601833480032330022415428222759613274650058970130016282898790662375869871918955088264013536258857490356633454246923049541842385888481366738831487195982160293085357791892077244733723351354191972604439311985426066330333218796256142049754795299050256254942623150842934539157634690444511795417116496230961021537629288844840072616689013230296992578430008645135276581084450020291538530326562483960417691551279998290127459046133490882158442530352563614469342473071775187277493250753983387421467382866665270563040842187878232167160860157288842818880387762816367294687432562702041101897262222795357959329943567375344563309955005819986801755234990061814123189047882657504879278597849677824185289656339469675979873372117546246955288448818937607628662456372054342517916053464934502573291325294151871486192127529559280505826213392743434495201239641847317077786390160798142803539192153800530537464941866702785650454324334839719618170560669834962832551579281345638302264206827938075639371599169527001385870202818917020794873671274372990107087980086455188391076580408766388056578543063989842831855955037150336694147141248627102947563047229832651644839941358783817892557971182900486316034064203354179462605257285035886122532706397993050004565093511835044116111152874711043101264265099534393138220802333066506651737740373647323205719065554485429513082752383647911064762872220285013885759105584455104789921018371063351579712058103967636963938572484717903935049020128494741124307539258701488551400380137594096335654613835010622401462649892921301417965431570807118092462886127678871248130195620329747738362066404014177082661876590918967608011311306698576126713398160368600458191264636870423220297973339316365681335355513111420543017538052410503272741797461275737502910058403042059540391759654653986495316664027241069309000639094427125671474768266234351002278393867646019201196762214008725111915757055425177183055275267383065987916986126583244933195971227624841604111537191537808409092183897632111784808646389305490227228962643787067404217844817456665367747536677992016370867226604598329851753026436039465302459004131091380221539698533002470063685360846502212335068287333863514344955280352372810972265298520810853926301832676389658487298539720370803148727639145928448103725431773452743770198146028074029893815373602017947954338374804235254005312014027803849902845341764612661137332900298221773188415600809055151377560762710879085423495602585717180997788750910891980620542092415790223183706643746519026637561017258871968542324576393867069361629284964853066910558650093324010154882399398530675913745955798144772851105945082893512058368756554833980569558842110260510482516063391699195731784665539269954311874369378488407558445947586356306821007668005895452100378366139587479203899744965801725672546935006520118133210859536831994187135107703949816116447204567591360968123046089240320875880756413497971242669863945691376243480709775323160045933735323186468693877394299670958581173597948290128543164227154439997352158675700478813687210574532711508221658822720498954270234208501181643312524736349240993371488189990102046608350884601374322318610642128041779272209851310978431453343981213385136261795737571733565705716155489017420947094133851952456848968797289779463633758797032150504490503622585087426796652136134993171552346289540954558278130556656711844691356518775329235839852850293478830679505261262599140376394895614890068138807031615655973999619061306021103004268178612424317765973279020287026269398663744212086649945149153052521503869479911574962443921946532492939978643833203607986756559869834806871059493021348332906744239605394162759377276843187576982033706375062594908191927045935964325834732588004428195751345520100742503643601470486298764863495283830234734300805599638099951319827380311167990198037754598424296701296018634941008938060378991224016443668859619283864008744294725828106161002769823884940924543713795624592295078084224932671298374261856133986660094709493262176528529715771089179493317822954852507091857037870214596629341235065915756620288251710292120863999789196718878541534775587469948599624784428768474873800475707932301064223929082408584355406843433445598435953322548000865859297760432907906167254733794689297990519620917675491693868821713111003020892261302739843122007749331198225098106198464325038496764773466482664110452804966928055364293967116892151528209612674075564251164528362460012713810077304341414162339699145661378529095171103887802531274428524282662975838309915911723646253581951421371797149281073872095156523877156010917652944422663038192808973079591687516910230530011214139121139232084528297689954182132379585263946664694317997963009689592491895293259651255540092653825196804211496398513745742668096286060132636226605605651392080436336737301022181015391521245943401271529559777703303885439531985864509191521343614735834087670394565096299265886888477583336975542303674510430950622476410118672104705076884840633636418031084633755222967812972225251554607390349539747287387647495141674963292042683089321397801212492365861024715073558546819077532111106213620280078003355963468452041906202935435440969719486847100351051650627049981225711091086839755029226858771501584962472230633295177940605401434565628407530020497583544257393946556445311207024032358127902849372805982958197468962634100628270195614848629431561831064850451745777574806939610924527169424605035104641762173714928507541476352611161803370751921223099255447553150087098379672804672216479311708836580103767951107918909179850420388005406402980713564265833808241264112203897707374232580667808537585595210225048500656313051132080659374170329080271881584808996007413281393621835321467999287977044629486427061898241598828699085029212807785612442843190100530939904862872197728553844594523004909243178258251621440050093570268476963252104151901798430025211164728640386414822531766482993008872860903286830201185418125631014496234297853477773403387525446912318806197814236102263276969862845154455153207704379660381160236213101391391823275418217549596976268895073964546382046764602489930367737406539128386069932999419442092614529835934592604523151098857785753408387683271851659673158129798724414523477085878593938889063319442810373098579810318943821653000631176883155361618865306627430692198198279079070226272927975103324989370206720234170353403975690108191208830937649985534063240288810313833037129260643634288244757946350486005759260515824634692381355799667671862090210248514352110004720684409237117490066839528945499127055927119239279504511184831565735808598012659095632928402866635761046084507467636737245565372957176208053637036213036075443845680572318220712705890586314848637429901858171539812289246220710841047743549006753066429984879793246035655852987411841002282333731631717293088899067042118697739360091101609727400699031984766937670478972421457011338115169314152158119462528803728528990373370488393147501503996661153154227944995601102355197752705793580486998126816592092042556164756818117249771829946866899133211741070578690386756798740617167104533574453999039592282980907952366042109489495267642687415143999220431074954374394896146494767860562560253392294485944085334250463519760186719718625807399033919493157630470829503497641147479228928725290134064104694072150724096669211368945286104092614353802958371836562421634568838718858268127825117669653881710493312668900612819893827704968270797264958799834578313125970233540441758826761604891743804355177671341380367768735089728557475988144004628925118970426505682571389184570261614897771922520664519449457328106894820949005840462168416655601412576958800216353069681581930172055768280936730608800914760468911599803757749378821175105050545509637792254151864249269999523964177463605644637022677618497438484666580205878439531167311010450777083273453110057730586859855579803663710127855413079123883022846676414291681564231304956185423513710137197428959775801463981756615032749820298668545441303944869945276981619555072044080597346961173803877246546984833585712939125398419629491009202910802327740547940251691231281790697669063853006152775124890701066810761710915409466577397054753448688617043601667739258371308637497487265473043312352919679118018203949239464422050012793079198156154592801612853984094272424283553696369688224656819972710884802710793690250499084128152920240803359679455169365744838232054135419696288757470897774658215636501692847715849227343159242331272979081977404488090600597794542367761839351540311692938795119452397357321639716588780093082075090355924618121337874195466170836169974668904952217944618571125550507559361869238518592510897391218636171905195642293879742567193457646194379430487867983044339498971462997100136152902501349305081321226771234347897823723192948759156456768584179652089204127906760254187092146317879120114141121801340036913128190608459379283870127220307679458220278863018199903496426202569441226537792254151823196819573372530755141005191945479899648334127157284622971223053782506201772965454124880585493923685637256174209806534055421518487062576516702631841974007601954024681465914200898727403053963216496157168706607616693340594461782943696516492766774701381977382249411126384430355441498052746617975146808050950507112518511053618011037576286445734066060548281288222860919098561706525308459667980777146702726796037402903558092203969241174732674707986995922579427639596614677961871640473891592993676063137697153591361950830337349462160921894636222840676307302627538657511463813493499138839150667813575025322762901823376973214310607944200141415035088428150764559610425369605039472297289771159283773333286162458722003565290773927712629004582842126178218029797745405976135075627416847471802505321584278334709415133634078666691758965478035137599795474325411597897320335352695757859286869101555661626649641128899201092059055107808359151337669769476993223804729461340249998920631332124527298510860789367152155514456297091206462230081709788923264243798867500006723164795811175005385402831406821385593190499485001860816033808783189408943706497944468735777019328068260868082050577264583314857252980070925556211843077647243174530083346307403671749796626259762605808344542412522024885308554223399811539337782408298666472309424774146438976800211330415613995788841834647043868717201273159938785275597932305046922569999985840691030164603330983788189180537828530446481101247071241173420198286236886968513044372743823543586451568143404939433551466319740158524664890708627219969207705315304102808920851222798500385096875197686978120092511089376312199202500031852162621402878347037887611131472619529626673221186758753565973270245670699374741975486849969338717955659966719368411225069868586220390271346584071858006498552932804255230057689730792662816340670050481748866675881061469219080157667725656132023350329312093855105347642280196378592996196198681088584092213769937570882428357561123318912867180648886593655470455670173533104492955785252913928147975803641678968424072424181647539961738517471181139076450852297939345551221847238404828321311129784700937995370611410665531767731846924206525156033818806457529940301815783181151398086195711430273972000426455077402926569348197209681889746215450749757806890139525077929807723341304486130604077813683213236185508827903943433220723035790504853412740470092944329903384768611249092199650922400687952456802451519082148912624958344991068119439499589318053744032905814206433173492764802829088591230988837089165120148726561294433361726368292506218574733226572810632245501563709005871080917522247644951685093609661380430061898214792749085590873473552632633181391057707820397877421038434579612369687903792165398966127058906932545382630780264577343382408278601847557002706322687793195496410938931902705737377535498593482237742493737934046482171749425607175388007871396143372934635624768193747257423840326808573671109993793593851068713050170920452460401702370758885777006933985376095513456737646291662302976072018743771979116525280529086023011782825893240337589390835384720492190571267381665409495318509126216228137421711887072532582376572021522816330465472650596549347591808520546440796149544766681399721156494775585745113942851196445162635215219180426094593199665484651119418128613431097447697048826739450279711558846766959878312241077495619907218493422465975508121815769307674881133364359926874098503038472793520988800212971889165456280523838050466667462102177339823340051405747363967539787566072582564992087806856893475327808839316870336862449046748640964593775232069520227531392386407990426545601937792950515050230583793338717320249114186192657280484175239428086375363659840347182997316737330358049094237405463836506219310745407680130310076063212407825638858371049092993900272761035657266274177015335580862129908827358206261557122201988699822626848217896161704683585680363773259249824200594665312401657767333488117706839979635335323125490332238822534852963471353403450276945472212291571303229410335417511682724802595138294548923117005117390497108482919289949226631011754948381103338188837815031746899190122141318392945547953559707830947336156875011773905760410971337373713677241718551921543531702055671766448588761069195043396713222420695350862533976303098004128418284974817709947449180232259391366943113150605461986276244486479941861845693001020225606008611987114462554516218397414792916401777209766564606132896949279355472247908225443541868730060645142411400490008036769085239121207565138870761900435559839718375465716568216229265941608596911847907197760284333808962476509425593257412778171537281556956229435902010566238687694174157569993254903298089702022682389189382190851499014418117632397858196869562576661255232713666084395577446519786637865831546893695038547769660274615896713933637005208196459409254831220664274905520097647740883976617199357486234104270485241905049175992826073497571479666271474127376142512207883309430313375536098547123793064633498407530193503615479783388914637654101893025950618354032897126259198571341517390792934163760145464919048029438635449375266406850862971568530971230522051558453876299755710637580102194190274023075487349705481422931509071310584950057712739430604182295001876565305786730074574161094422469114153033998580663953496823732258115696495105849531965963129109335936673925649402044916091851197348563528335611147073089548450139419661090590861277843248256800064313562247049682477330004675764576818265879416117365849450734410375880669274625560618547733826629743709529806368062730545889103572773890919220513411406148685804970342244307693392944800151938206373632878771726689422249605590813601663045461812569394484514486772272083173814458180649960679539095588374492471720285107496028092666765861171020482591897152582456044576969875464131990133255094704030810934216063760704882081599613697936230401730901348523682686997426679464812946179604981484378300922813507092555271752550995530129802194040012796042728316134245632023628324388545474723366247844742685992628139632959780689877508501964456059316530694621675554779719265352148535782237732262223843354592979744396207212507909012437344960911228354908986069858726131927045473436142263727951008201507126677919530138166509592035989318499060316755434423628526765418077077956959316948559030285737107515086033556369299512172391504412003354067964497822642235106076104416704277041161504534766155416790633761224525278469520305574469574988898744281023685119913719577534895385091001946799511254537491713114101781396113570052544510554225225222176503116076543021206702916241910921785464267189664329060882498047453499874537131882563766808289778121556678851501020526024585085162211200409563016382975022820098545258614356988192857915332899284649431037407573511050463712803923934414955044429400608528027231328404800261972693809798058885712537929109817887897136688348414930828103454202870357557218346680013177730443148364139278316608057950752308261415084091417021162384946744415347427674996704693092580879385903799926933612579852535606206933790254679452753640424161574832843244799431587128827940474063363582543858597894062725218753715074023131510067847759150638980515675329172007228303586783222034126964092017217850325145774556148675081264664965154447298227096005583366811073996182250323599209959621373066450600384172101335059009279366524069834494103855380179287250941491100867529128274760612473072089386173560949106716238810159825117240956445831783524948691578039512947417894815880520079995343498900082166689250467191992910339223468054323543766948734056844548324911917214699838199316089522109682855855294268015228283551350031820392355294240291488934391275305624609831473348657967450176487008498583647239143855738499812471129414268167767763632427111698083010866006655889486194042370740440216153842227009157252705440486913016888405493858208459226688437844546728427268239844429922677458465542240380783243132758801756222821473003897634548404720934574248452892680344416207797574169510878648729261543777068714861792982443621832338235770898169108206804712372342431920706900789524669578867161581943555938619856778628839771687477253890902223808343716182411732355234922690803004655317591591369798114678647646316940506632367101012719063159752015257254057068774321191264025910843247191145247451071546680696259513558937684753578715935566696998834873327728039204473874922591170016745712412930998348595574770140468671931275925359290745638052350083948881152159750400826093605069385518934739724693430817311142675764948283810466054699928856281923582596938342170001957477573680615397669024436606229601268764792349728609956614825507098360396951407497226232106554529392038470740186448120968319850760900476872721298368922667763418411468979739780547985401181926278360871057713671780280623229606337324339549919392491787341079771940249934362514266191652464130852623907210120786404691014152843788474966306648106519992963536840600325571527471950134545335256247248900471221042363450811984514229240487888798759225045117235661030942072918975191451918792698855477054506981735497688469102256507728028012029471741747173400289250176308567952239694777215823526865563296060962094923243172670028332929632996349877609743184308242098272729362354142325358456403095443410617571452992060541988370898619339029503922262632076385071631911508900917534786583052866621753422691137347492607128841045705741184075207989876713940270029261862995784643648198282440752786635196477772297747548184866127778100920024041930767988550731666071479751463448118400921268753053295790836181780541331036198632668749102022018443062350665650767647580813207102215678104265554369303231112401316780518197292671861013084755730085842598683681482793213427277192204918197364775714658432884204757826060185953175687396330202402593918126565178819003269243680580690759323221545318448721165578629782381799624955387066571579749735870399943900471370823226665019343152353965889737174538455445198510398709429963094637641751376812832281830333092463654496857743152770815454520928036392576739878569140339712431112121744157678549132630155012998901046719737760196465342065737136472575822415509608541112690043135812339777896775882711214218348405817205842580105825775500061767813113504204762134756544821266637899019962214314539781675524397822195663066693017824521697072649201205264954052364865864240324049678121988189246606631190152544397119514016311672282802360964282569943154649055314744729971741851052191499119516566629421080344291835677448441108369719927495707686487589269977441900735569214561361909137518273567171790179913570958034292798087601737262097643285727352713676372348044346858974428672307475150991304898479752266954687764422437927304369694723679297701496602374211716105236845322924715132217986319584473430235873715941745375706358311666821391907212774297321707323988524376795345966634921742317599402527939611008248878534274016391733972431026218893912436085444949602420169202526864211031517361162575705645357607683946515754451903087616006745389397285000818166577333533869723397363432621485074566386029425574144388878940591983369488672363172976333759876812559412125163390047136722500881186003391858869143648876715022847782733868395351609878069449962332346377299375537387293923570674702579682943989425088989751794306173852765661409064466436997869073126662699512442970761370433681681912231003576133050014728150021201939208227443302140661012747224272610456669514980089621917552503630127198414187312787762896050519210980780021402469268684982197499008821525108422500584231447751485140453025164034353340216351305413991630251184742372801556369205849521920254216524950067466892285330930444342246707434088853113481779078762151293787492604384132430565546706237811570545252793345179785661984436059505917847815748735390906872281858030026898467357434709237809569648851751855871700690750751138545532379731937148587183538839357534190718853023613063317937262796794185293024200287440533046115686463035680764572330148428263595909393024541903854928208649789733338176197590392447251673468260799670338705214139098423684762821092039582037889489747038208877160838487560682968982858959493948203582987177717152570995974351053665176876920683037388344496442519691031330060095357386824665795010401163621925251726283051744886679889864252291264704172412933544795948407395151496507728203711041492066881007436805485610487752791406258210543311067936158233026375918353598726849439300930029068525000027058733658395771211454504730072375446352417351195055016565186240657992685757186724592343980405004185086032115234565603184459582639136987786371133632355854230122864667283242117308067675477977152838411586837300756780358753872762643935500003173949530211127244828759623144396249548170224344172978047805067319310083842016284589567110209866384450558410141772375299746748544106913555016916375241489391817118071553002157715078058034387442623381123106302571551600543917036279714272667787826450567851650091460247068748190602327676273811208488767983832780206411713043036590647642742385838852209297661597908081790586653893344620755545507134382941472013799101897466084310436751854293189732340368402331521412486733887637257603594504573907147647403518316293987880224083772144844917280841548089735337015168804553248315251376564516980141159614424580356410989542785515464675367614810581560971145923122393137800113527935860051994523417919362969260664000914074541893767012374164083758549633848057027700727527948824879480621857386609890021271496169154517868660015388242907697670965297271936438268962865356798796762435772014852924851587243114907860602727328229183311912325298538821248934525475284883441184859551616645778597993042594467621774599386622445449384639294015471678202348280238791941748001553176640941359948611578934708084983023728544179571943017973212486255901961293391467052894265365724982178486958962222665812410561061074501028261778935253683711504745782331877592426493899497413746468225805875477507612994721379332545335361485818416322957532656822517314230559698666398820694042541305907993075213510418871955253032476712468746180367436633227647011701747902549613543826788172716551865001040076855794541729078744133212899788326730696042876952631971927659446822850685318365971973213383594561779530229077505401059776626232953052212055069759939831701009238725923021133604258972435730595159985177433576967873631600702767421731173280851655268472842578403874078627518436235077735963463776805464958838857844282286286311017989787829633601193250850348421960832086215359873567147438412373062817163666550865860259072635434340710026614270496295611787354151404017966527997903279226831487484450253042542968445064211292674672790267021849222789669980376156938092393947071924897310892735389818550866676543607321673405630267121110637585248759199567547493367168828760491661118947994321214184853260893279458234772209831479869552976614128730477075960227276209534277159477101181148007954099113024637581856969956055073379179413848645958966514011638956771307158355410074709983841757983563715942219044915154388758551862250005806666060929478652406441838731034328105698337033706247295635915164205881984026913587473975164734956259823656136825951978023801092084888936359475704250349894728176169579580032574908738211272927999267473609224948959987393042406292089049863216819329220447850810501330071524991525069730974347330561390076489948968679569868443501298527564127051371231176142220972397761936749728517919774011795524101698278259943452367830149761381467932144935697295003441967877102764656804572688113362946852950618285956288879268855574894843910239714071220937750591215290523744221168306785354821420440719564992874852754760203604058301370873888532235594679663083215751266509230882151915733719607903457519821003234558222764744190885623982471422595979191431703853901788252096933019627046437394641624597579149849823764145577352697932714592004533319867385967015563575157879911470984754758920978831271998156651646494229669028754978299554226171133228721525516624465964046437349869909705406242496276266911532784918625927426516589788585770306172445894418461207851532778452584420607737125770712561731819599614762329229412590396425962458984611966958985896673597554274773599475637734665455955586229275873105427573710079623645864488944514126676681710208022486325937935219289253019060020693245250157818513795866935874340664271238558097413535916438322737894252862203466485126312585247225882497577810367897301412065025728028576109274610561620541296725366052265404371474167995685290678390565794565114534412938771245831043943697067915599905112417275440585959131220343231047685287674647018321948487009196729811525240034062925081534523795370136970642349252356125067712702300648838695268058038917796235813987827841193056286924088156387686572379569438946035969194142586323915611530301124078572445392194423853432283088767243356232748575849729263505253104694817712752269134938077618278004094990448901938627836713067069575083754569948968513273549123168870872586291710263474543271633019119608225050375934193791073164035765718458538260018722402201562564166204071729085814980995627045395670984904562785128246961320582762963716920758756169687358817753438560325829399818209115140143408833180832997563187972245640243264709623626536912380825160947613864619634434759603989530115831804150321881930064052368316980503102390172386104245289797811540639528789994051802667099915452721180220169136343203436698183988009758186659826945983607331676296657538517010098595135030001041534056525762493576195053382021568812330419305649232390544434985432865794696785660424223041186865208183833833413330158695792035282514404694483357836229539609412132842482614155796147915748152243256183677590757996898569648448201263561081144446868192616012871294484328728842267302473774928569900918966761390681593573675702148161641305995055994818831222630056821827182784705741977695543535866024858163800471939273441049285057415649330881121605341137129340501787262670705809806066059806163492341040029671215306985652086677255050116393989330724999257334562218335826802371676217677186131225260950497447171629367266825377805355318119673546768613638124585211720053643450926289193655159449270560508820063610238689929077450197097118819217879112111315157607326889296051997793921187933961205761497959608987022966022222628725112310793546018305714181837660170137609517510256928133978733112454859714698819220440969071236923975771350270626871491195224077900699945750667238312106372857844465338515121407469711990561808956795152048342111504027037900049267520248064176001706789020926231735473712844619958939317369241715421853827573479484308742605582292802351487579947355080399055811745914674081939652483962584067006957318907872579187895383475401304128295948626742691239138227657837051003947132153553017932478478426393501811249969591580939378216255953304177620455972239905672012224321615290878225253567219987945814020892486375000780550300412193563445331651731989088742934355071014193816030204217176683472549943731092787869619426706236261850514712073589841435433391358833182895337232309169559985284294730360085086193892736276840985932681999013850412933919719475224110090896378700763708518245285690556679501056234356042496334087146145690340651008674855031610734251799139384979361092893150235162164267598732571393166567366800778142627832288811231973433233147260894726917972717393326976171363225433683799555807662860009224002879323110297210904257568198812607183910729647163256304638009265808734087396514296334484498248389120162003731797182722156216939242019262306703687465616757247476435033972749246324093516911439299562294140427102217203571575558089525165328165048953360175361666905729382923880221523388785016686146748454291545047431782507705088701608209821415140201737245879177954213376494625961859708191257518308494960247103414853735640936459691914175669111528364673991882545581989423967933639968644487107245669327148678961212851030884590887523211577727532786570206273821579197306619710105984824826317481849208644564167264910033139025834673186935683462837489759401813015701836720402928734064707530162369329257805907570343707143840490451159009011520420556478891672878131909780141859493706861210089600738329924662753601625315013068189370869965471802736619376242383294758451627716077451460065011664369946416491503721067560890543118109287357704866738120453639334347186015637773018391657910104219147447218036591650384068908539466879941283695939245631225498088736656730349004310795888171083770715065104487815490481430336095251681767575052540969449738546504549969041641573963983032270046788950937608422451932806786148306422011046712628216060989870802374099531771349467790341294172573819708617763141388909959107132598349681460261849328035784395964704612586145469474192864556604305847099717137214317642923642852204755973927172130500532248370289648302452610965402702040100219345067218494953954338184276541599235318241843167801076725718463111151895697947204582163613980280327486031439471459177055214702464793185292158001527014334206861713457366131671025909177764875873293151521693807913485171933408052290822799302357089457084147390057305549118146351259984801346451107228636535805906182641358662923009196738422134041007359556847049692945288096537802095947361334080768072224588681280821564738114347315588379782504719513384089588828956561154980421974866475398649064505564417793514257947614686396678133044778214314450686008127783865413837459913242889168796207209775341281558621095999000393256199816524528156887887793217222256901587599664445192487888588758774251783529787982474301493500985630117654803886182543590187535806503151676973013849226720538154059725659296885010280185795213711396905101703788097432947571209604082120541378075102268904621871706180424688627289313740237044069973769610104743874938762496476742459308711039617609822843268073501442754881859657307210926346717720056918202209454301904446429571287473214225957767817240189027119902573931322911026499120376370740746651381952019275938426398351355531856776108334957373570139664485190801787054329688899278392255009953832088752289573216589638797368139521727786298204979190378818223903899493756347798500573680809870330285755863731595459803782312124058030792693992911787277250651537005032619416270199129855483902964178813527960492723874830469004567270158495439943079820334586920393202061736180460278213461604261378157063618445030049681449025072674434504309875936580759219220056112098248926631610742087391677260142330667036128648488540353575672638000578744701021304804436461100969309330079639260075916883561819683248510168859890600472716482145885516437243148648484956162645176399538288654529474807971546803145918619703186219212699452010178253268924492738350727666678115277398305804629901581982390549883920398272864862878605333463131520999379228142280836846389490985116403445954546487648533529209750204477553267695210056479747435733180197197862235600577782922631784060065438593097007008454259817975716581536966702139808339085944625311492928032433477725100172806433110470464040294642478119375726414178886353212124775425188211075075641129761694942588708415222402002520530850976638662352225082768020488786803372045815426286077184329701446189451825189922421421882869825891039393186378918671226769192824207718181707694186770073263780510401687321903420277529373834881572840281888971351526928326173014427672973658794231655522613719650315200480305026879880792764130864626495510602809925251327662677746411049004995832338808937236960125469748421616128770099772072838787556233248508154499485230659905740958492864255842156794239741543175017217396459312717490913737454845068989365154643722230971632543086361316745222219705574285901907453412992317715644136273025198219561084880083177530943224594967666713570800756480703517406276510629531586423799605093090414018713753706948203067982640025948634152593786650411689650597103217134786294359936193299464335242562198335207430835338506946580272300102383059862614024283144365328701014108763487459161484872623135200583698102748530145143334461108782443242894370524988568483011528908055512033568155637205602185486853437741231797534924842956335506485625991721201411356805331380528242598514133389886537326691205435516536447722652289457660572993602912500822041792454890495047439514527936472552339689098105720965974935371587135436362033173134370738877129625489609236174451496805050247063467058578519402296332829305432554256748919264124138526503812108341964082087766484407325691702343168681040960867774645269534448139384621238707659232422899705639696393920338739773197445322006199493655183383564536159940881249903126940191104301626880366246637148581881891056174978640896574133173577878727551640842017014326166556634027204727264856069756077856799566949185773022455482957828943710320749272374168409772137311520128835564788864158337941565632412758175131822338441139452589186649245706123221000564713380327833452864209109884137713878969781355973400784590596507957247958649497670169667475173971321100171279065511113792246222081316885338027920846097964571540380844699434870947306053127157333256499945182171532241372979172414917138391944035457574616478089884744916924395442818113953394655690222148833581683865020498209470156812930187286715741592657271114054195491618566357607238421144491746330707692506138421415019479731811977561955445062904960513470648116876053682495959575046739950750829477876317926734638800824755756568902044718960648720835675480334641622815973275258215456614071408839611869850069585695719636109666430148884112073572661024231637415304194083086166523374425639510478473510385877931216212664023644453095893075065068843787711049783526255293777894954878827432371328594102778676543168605036385349961950529493470819307466271618839405501209365921032021355982361900431941665786520359436224603795546752613278644868191330883431183599459836973643767965611319334139443775679464525758220287698493087269692675379886681313661196513459897654452428816087361793597413911214562666770287863812393452167129801701087603947192775257258474324070140177396476566737651987940598219964005169295806682967362749399253502259328811879247693329893041877515993438487852812746509774097207272509964307777919368992341996766679876514956611604105206814197047932185287304799180081277133259283701446733067979831178800121842345277953782263429587358072740900594366675898846519942006289751650940248959023447623387700459196090203346713191477413268332799652013378708800875347560576833889184717667899406719114607665872973516940971466019705822610490292145866711188252206288607372074679360341409966419402090377343722215191633478345065509198469184423620983957809528974705091569810879019077802294011308251567800748376182790615449851794523205345251203174451231103233687875139936604406748249961678504086766007250933421843974779161108237698406120497128598065978283111771461014404252518137522164690670627673011486257477206081286302734762966308858195757716746838659467452514661714460682577646738481315869444984061663898893306058220193515381745131530752726037866778916841010007239572198851817998008069765233494579722417982393139561671739792424917726224829888088892180276572785664717762785397579530171827587418310379212098999902808924026500576935408470951427937552504840038725744297529777359889584787124121545953171481868109185242863688807997149484000806851974493283338190357703159084206182882854596558957287582225838715193139829650498895846896128926072187688707371905122792189188378087335424941923736365680377188745351186302605227806656316687343266117066645521369317872005676753506040775467456620375134538758693879002442244861639090075852905762243831980115394169969164708327399798576704566988887462085023212075386109514949022655070049015572174833979176716183335126722012239462854304843320805669561175499655785408919829449274754180157100624763505067784860390348398845888149144956783358349069818095125558363346668773238530744382962747034605098759851922650708426842733800719412345919014315155472865762854193575528485970860897273988709978019178185560534681129517764468026874053064959978154898472932418161916826132709217221760862885148954707021833961920049628126957030541251092615629146570178820780828772834750952290834015623470110288281140289352086789919378320389196082371230911533928483165374396062679820802290912370453171134442592864660673707856607366713405230442536682632524729231126546832466145012507674751722853916657563038249510126209435566803022380805183418927631596969733001217282433298308600471364666263561203532891939064585151552414598770523995536656702950594964262176307544381465096490918914159456499090421897672762535620366735142722521596364335190021813347883292258673314136456428515920645490106407262783557159271422374736975061466676089638085630459599317979938195560891445632238049857328255204396965702089202672058540546791984513306402002418245558202667254070101047010332115786010919732723048257537485933366794802916798478862213224786708311236763512558901244765931787908984231234631306847398491274799271880948863243495827321958301325878503007227957954285749093120694425059610011214077678951625077425446746006250845703639047725529356500664461824394264367783451845047592168427012213819567388057789194837659050213844764727739509026570502275752088784003754054922712022152095601882948711310304958035907876848234579616075131054189008089304224596164896344429614157252126971757111121497436800741262406763047791075020474932629645230396017784830269457672583778523831939780543327715533780781170164648719126181927706390427823444375918903332317395217778071248136643477903728621508158387914702673585024764627723446938523209333701795182618713827048512913590858181882076189539916205334176590628365586538189082578719966304415838211277201799264170371604079304786367358802487295632681796439687432645202917689861342552358729253874984749847584581068849374005379160981430799685400175103919909492571636096712144419312370689924272370070193192265525610789703812060759136109692492510561302953258694766272973562867161032267679265105465172798252032697877839777278935399062328090955191883593231771768160886871221155995901924733316040689863950219853550523286050566270585210001977132977399825713525989978442576856109738742615274401831388115277582237045691392434381574280830520198515422534904029273325273432854992640654388925781203473068994908943963434900350762370554217693548392697474921337175409286924743135755301444683862396104895796826721774333466474000383227425085769537063638159856907663407902785831533695853248449263681617173540292802220873506966224941596706240196685549852219849140889554867094848084745344134807808847262334866557671003226583015683752610869323880529048170652099708708798440240847701486575722467762431761372511232017727233475567027658126606870059460931007228616247629744555821218353939217841715502565257490062482279565504321026118593708020265546551562273505899040883549417591574698827866761068556977917402938339493442807671378549150347943791881689091039266928399171685197854753227073108043224253854927192437968741254536089871999957055339719504493490181354253437614537493211679018691578061436123104998973585098151625684221654956093639501250334871078288456271560263543121257014161774347094386585144780244129871038831146596629533818336750054845323893733119703406460997001247853858666472847646474494440615173953243437135856282837014055803664350977423234679320177822735948932538761490216059986587068592361801963084942790141894722478230823636711911168818312073858904121424252054086001757508246097431654747456679591509568696528237167092053930275957595848014104242806973683014084225805755624738195613751958765296866574331715350942406872266914869313895186962738114735530926428695760396129426754012945713693251673835615731924631235593820947314113137860711312787140012160961677567053776958838478029763065548987076995727563022278672454424669228855513396971629548324910446194397166136832305570627073037943613372567134199168023494373672222301829560365190299519010335903246339030534423070055812655510683388916734458626734385574511002545931169777965992184672723706665804042027085258662439941700510684055664335396273736793753584836825032796217522802598816532812432342674516158587409665828783563151410656270791147798915354786054533062922992711655830241164710693892838726743730349826754018383250541374486913851521752818969408503519261696056668589758399674337180657857310392451224766559094856530135868218800589504938871355943902338265272580230643470986949891433226532658684715615704095854851254014381411206111250496682148037100767927708657401868686654229892341991619452852115872444000870562775130668481030035942355428362114446242304084897679330291255034802816800136534528066490591076456177122840708479687012148780867129578891443514709950727957230214190663978834316311627013924890561834143975592097612169641098483682482804425702786693660614310856258050440555416783375693588006913484683017930398081880225613986426036679732377888409476978710281600442824139860226248609785108901280612543808475238006394649190421667900059634053789385791490973750708481356854000610027940319501996298174001668618684452658779634238484437946030242679508085059902105356173960417228657305955942974592223618538298830420337194271571258061685756693005226729985975006281579308874039157219400782503402640078986357531815153721890683320218807300367745175147328148308652259395139015688779954861141748886856794530382535861189126569445753550795238473827115630729201925556332876217527529135332472902390144423704809194491755934133597757202635222691863528769204248297095455509880600895145955462854886619153429429487311627397356858846213490557057151554975551512621693279878761079114433380892368958349228048226615668880743862899358200699411115031248253583063502910247426957339255635619442150521850597768930121752980926762050109067041479074297808449595890226093660983258527129953147431802039747474740051136111286861592766104989155854257446539536376702226835803362225280345569410730521130015545555732896408435890548747591641041891452183792835022658457623084957684961271443282887749841762323692323112140529913083226855275180281800624705265730783994324444428362766780202054646934092676627101945344492310223743251195336381244337321073129040759777552540518924583261223067213427261735058234801113956165028231981599219672441588768988483832186465510616462892232629106415262755451375252171486353878478134829834105596912052158942971203045444304304578778079864685934496070069784448188579018514291570152510867243668771869147437264851420996487794137855445274102762778481595957627206597274810371232164962236052950305179402571110898433616373982183087414954722448920205687012379023341612994630420390204104923177770232974613439443707150162170738115565222289989438622471373664012073808734382923404462094172843581372608060386726468083656436107808488457502371462357894267998458150667432226860545229542622334606868802910682451871990011837932504005002348988442021254343419121666860025489242499534298534557440943980461515742320182097153538663721760007273955402921345159418062814113935862663307739135920949979129693159989241984003742967986749906013763126102883881877740766441701695927978361263635667216733183530996653524080246238255147781375396770399513968145287102605294137936756934012373176697083118576783242000146832746177854843853461877457372369577033807681876616244077104711981126832809018395269136514347000192479220022650138421519413533542829257392905245056425433816677159246997840066568110775068727227787456873806857475026858895304588443169168685890817709338263730335264789033920398116522668515350985304448742639566558014790857813738789996648543885155550348646418965074968867095115227833695143170605207957907181161359346356907299204432240858200009886494614971860407995306292456846097653351297113614389888888773255446772304602485951859329095384536385957457967723489870006850367979516210294884318867952789576714882991811567676800855028948488376605663587702366634748855216535048562884003088048949710683197550757273326488508947359621815393500549509896798196150943665208389456887848948278948627854494089384320632372660202488433218140161632757234967923529510276365421578698335773233679328294789267827846785414329898337732205475714428884732963258124734640349520824633301455549047341282452603511385998802862933221946820495593913106385992676572643423328744534772094661727465523426964803425086182233588001518095396345782560823352022214216609312562617655303871619912172880282018836865569843410186912893217588903304434724748843288877755609578385745660819880248339445828287716943784985908304450330996002508688947487745882850266752940839935599645137489618582503848175991221333316911609694394220188950811014931104067878538263273371502052087837689077331742312517717231021439200014078595541811379519828057228392382653143508616576666243198093254692969823521366484655952681011420478098239350865773491961382270617174827410455168141952434500704592295134841081760252813748687284231678085952409037917939271117701307086734078385572534138765393876575531536157791799427321566442632778200961153162482091088090586909321036803568251216190184539255176675697502260568832453858084264275969051604123977755075424183792182758695067434180207596092260596003929305300448567152743368693636667594477530696834800304823837201702840653044911563267409175085733427120624650051445137321193692707863704140976095953290600799336001149396865840373651314381208441084908711285867412548100262716291452685761226367722053307870999312889024744884716572550532112751916673200402859512175862258700966416449722767941864474696933858324677647842792013333675064531377752291630646424394435073729241314850380877096202405402318615096846585109697459499084565856587488142051021917226375781727511141266217491615383789281418650273640447908033965885292539140333724499228848480605771941163111000802719767272802722907002701378246773631585225042997148325747584208192085498689433107422954091899023147188215672798721162026571771302441639856138150275834191561674162748457403073414675573132390098884837818896022050097298471526001089350474653764639300734409871654292598052827638149527984728598634743268416356075557028096300403291911074656737475876932432033659056715580901657384492822848218250280755118601052454369191483369053440039789307465167250678053630650633567180491786874029916121085848154013356597935442356776493160559654877740419275708544361829850603728971504880449952167117283533302971139284889297739610854888332264443116546575236599400722676474907146342683097685681946492602104742632070365242083689499889501539253837374083273665030879603926380411107811379352451036136209717911088771500403866415210608186965190269883893146943015875815870490868541750065504420476803624014653244410179166049497012130813570537626594305345385438935734610930273668224027060814479711424688518220587713421932506303244011760607825600946100571943366198686638756768084956295424971026327822182243524737557079902070293444831977836678271350659923072750885393246904832910437796631843886188623001488543654517013524617309054031443457776331021414701977648691540448620598694209157268187354624124680629404456196152846354489986832063756799971631148098610647791960717363156092755504360880646193568616728867540147836886508975808840051323307512141189965379322443154311024721644596568516947555875281099578189947179002762085983778068958020449199220417149651577222703155372875904058052315611236530249454172793023808052003573452180918953182237439823319504553825090406487215050491801351513318347351077890982644028880581760378937814439652726380864202359259099424762735279252767095528994720226153508759475821516985619234407782318394027841211014392403829680414684803500179630474400925120144743658046921401388024763094497444847083254257490019306833205497175343520618265513566887021772244489452754028707967400824763891511681902643920648634462388230732916807546220383304970449201063925355395763454126863156614335649162756091155952533379143116038071240868373098740491275641973097722032022607271369355576340174675290051075186807646479499780079758868674179438668441655458769220341341401045352144636895737406536846567626071406100665809785095838818033621979448650824109652815135085425054633482639475499414357872211643203135034911256937959403763815271820329788650091177327785121588240876638783535186417313182887458266750146130822659625095398655002604781462311018022503544110991460997435342005075216484749131663620213091848839274300018612669036878947793539692414232388498819553274347989144321265585198990095535199219487273887371541970490904962109334185057203888063652948153728317409726247621192240323493929763901205766498516677708157198159745355903403889855423913407515851216233478736245680936912920003433709518329855394191000630402078803690783506313778110703410518541528679465756217494074686671772862610981293856976817723700000560417711284614493822512756722108693864847671076955666959987877800526853294797989717638474165544409043364161189992946065767880204485523241486601082626535465754952386677785730771102516124069976518958263824175727131866050701231785732214927563882031974669810446412355276575114238982268333002524104022693133838598748421276269994768156167815289950464269839015079831945965898790474538825308233440509275090582543754493393809337746674550531478632651152420098832030159899500060959482454959322739473751619859454684728260093006188516880998626517802689100281629673098038275475658922900614686055598758714085800645323056328439245478526699830461841691113323885363316300425872300463221823550686315268620731403590721604905373972605018452203426813796094085472793518509863020192956348716749727510826757158520298383728014999658817344916944640385658111020887759129741519971025968574561290426108158787512630100802632886719566206002468023731314400324035676623094292145867120220623721151801629342979734019288784918473662233569613767764620413908191300638797096293202512850081946254152729696272431549774471587841226074924880598292951495685096241998148973826759716064453084486261107700558027645316759054750829756173774210133104265967785546704077299503918087799269138769832044729444723880581340044662860445548632369005711172067867754169135401356138199268302635399549454593201000174710932649643083150135021746795868379105530157925898907966962391481735150843448826545317693897666207799062020445386756383581222883145867715690472556709282382978334541415575868265807498284191776826040236827061476075541997404824912149595607465991591908399008532604464429950401334102225436162252301737361282994138551059619814963326539638866408598778142725288056047994553301739340020718273551933608571651259060728813626334902406545725947470186944634949562625019581742925375659962642723760529313479026625596650258944023155406093842431858143784853774995837018161346917575197255101065380902835913192324228115038933259866403250087367766842053841791733080551575854998150805413049364639387448814659023985056952624834522128258830392388613087198844960347258598665941559820171129773697248314287839703502318439487246255198665518862894301204810312806764177096982682467193818675626473318885834969389529760340028207324821124903572700785646909916337960602625729000036359917913428514322176320745137106092342683269036974653276401525354209363157163460528580750369368624532798611928892777285762990430506400762704940555941694374405373461195482284755261605989151515277920304514568535049868617255728737493774493055422444938214471906953994674265599221185708970797856892046755993038409475860069552606054605526966587958910096229270601714319335817214030143924183353747683681675553643376772210865294322627697060976347199570211956491925939601595140710575716210793401333520878166947569227217574729725214776934177574621936584371607221312337248512231423885944469217707220980467330858548892042573042006788600807514966024323841010388089139954263762316461470576907055751444538868196308342207543337570644031717322541486284981536027160656991097847679938674093896213098202091322257807978341780615353705545307888389047631033842945445290407520183189456335426835968341497478289734134788151608347381371091143826656034421447597714081936678642140094507381658428250597344184510768555425992958082600635598251510835313194990702098551345598286059705532211306870173528858435711377421329329059257448515950734117439409432636727588069041503479528037548839811095702208675066082777089518731902170455338850681948750943479197607826971054840890615408485532534706842196948098649981419197452559451279436539653844022566879269420652571488511755434534431475860871802482657282204092310642950239553310579216800364629148584310442589635424341346022982574532318371553632529951209670240110548488425228170571091308131196530530146258098923657557597433527566941415026001938496667524066007808572613012332632500009371666209953296161654037368702841132062621487169799636647400789174232744848959352586409903027065743600639110976107670780384101752866822402177137872493813336786671234493708445582492425222980501437980383085163219029439049388411293731439176348829097434895159731002135688634290132195505293386246871104371236550283103375602851783980154899980389351866348410781028731636935020604746850932501242405787758650708432972053173711237541080412822759732690148505413694309468669629869919420272575183170445166261104172924377554228327976582053559286040892885436966764456618067394032014010150941694215816151191326720578581972295821379532877174338242646208052917261850619322401967619962709715175687429393028008415911868034903522080802846436150933812869659707964910391476436569820490220045236667199786189770013534997082015440471612889367836110520138115962043494248908016828929361274842711196821011964406863007115917761645201976833820604862349106255712556023720073453020011717594306396514272780316011390570292467308504344053731852202459250691686533467203025129885134907499616371537960933713694801138345787032674555949046077386996887107186641239580741405986425066549395071337342498178988062941767519243827425036610443950529739366802504051001686579612522009040217533992785394103426724594339190768666603324437456745822556485515437644534463030399617036056514329151948314188747367575951126359319724221500402135696047850028847238460780913335622137526531714684437807135686255738511286078121755336207511267339625848896408183672838930400335900629231978730508527025791549102425894262723883350313888857325764941113797599853365980562437449626728039885448530549049411382687142248477975267742868636717217823072841461655716936716850672424878643519162470412909731393117776372758802924423895235098917913578099775894136616682996494330848478586893472838039684992788719989056484235936630315544172442023461718993487583723230678377839355734416504262791129799211761964015942054145675115945107241170712541386408980950728592711559570986529979548407999170155160079305336659077973252962481192964565644403262161794498766737240460174623220575094672251460748374942707529914582726646103211143444163927420996342819444085661830174756299063825403056216655736414688989457358592390559792492793119283039972081801590763141370158828468700384536600308437537229346006415299589689769989401940567572459393760405979428632526082763857576218510192077913285662567839419582464928288369344787920677881012154728865447029864900301722155929010618767138565458123751036985016563210078151721711726900624631274189694671669738753714205047171814244966713694625258554110601844250409697002981571711041550605682231920887759432313439030855059627266721101327445898960114559886086003739444955797930767550669843345253271749072641242631372214695008854600985940283238806563092898956462134994540651531030646662765189872707455438232115755023154419620585142745338220959472471201680662033420403372933791703055855856142388431403613609958933015465342827990426424232426366414698387209939267810229038484134866496506890538288629705639817237662013426569113988436942736565097357204903260861582908548912218707799052610792316705214987202468282046327034635616827391890386935664755084615613333891401975921992728049812835345919688502473560460976010857392851744041191659965178818102548970532866488224509625911104601274296638788935773125546178694807824164867719320748989043513769354332503992906145425567117445402960940502515208198502304370917061600397937808309813311438791947600102354621974398738681453290857374399111079592405191137623488816185881514407951968002232959730521777161859085819547634852038143619651262167977345505381822949031333069987993547342023886690961746707103029925457016499879637738206365128444317974408046047617920783594932716279827628001264374433078718399511644662374296088024592880233620142267377832700530606008369129691932719145068824122602698788012432849153876571527159957763746587510350644583366158591042396546547905139306524276491543499862258792484586755487394099282644861070652302991325617390746769549815249862564808801481833975818964557575467449397624724278929362876187214303598351819101267841167300837778196145267823132962028494218523298765503835269826246069291707851523432992131356102032848278979707476817121868662507406908050894931080430623123434449123053367566749840526238563778496415330042839024752140338609597594227877459585124275833346310931072813814024643169338593876177468260229070920256246579679282268795455374753900798172752928359049031023782341711747483343563112036367646111662206125212182792758692595967748428189730874260499514123684654764307277099633205595336435157711773250582302504687131279975228890638998593884955666679598019917117700724039388002867632793140103570708619283907578045450730949243985285855207557200443659891976666909750430966559622037046339977870150240764464012995584248517706251267961272478906207014152696853958494976398477651173505215962550820267219190624432381432995674759693504073574220886427833469866407830016264443645091806298869907995745672338481114520960915350188117375224074210490943289858145340854248614809027554296627711833767013202436828203721143665860861356581923626897904802628005031804341856493874934956500141947813310661926907031999376188740115429609477615150151561740865229226535774847891788173532674391106466864876659584092340299436977947320986443969024738916521413604510585831475447258775631282020208158051289106402808502363782721767379839561605982415738730336196845417983971960215106327243511980453948611631086404596919950048572767053753751496959763725681041992575273683052837365448245156532456389684001374448767294478943817143095244671988644180289518992721989259818112736533430573264170309218432967000634456631297116236251390384570459323403007667857691018177293424462001634119799679377837898679531033098747796684462958917264337528370646335846312879134681749283353570103974292552705791840560852804512135861307765389153446262177720771392790915251253590938413272010461647988994901366344374618330130697885760712396856697945268908239002400629048414118519928334237021605422101534038936906452293101778498771331786249683848143005857759374288480903094485607198613359457854898446493100814922194852564726020859700400327478732428128905942823420958045383225993266754394061330660104280561081995524844172096038976505476028521888410453802736295941974582597598066863138123407989324832667477831538940097915551115457288972432382381582889202316293534019407602862682668325432118701848729255089006057047419576303620264514871300653200625299971307403230744032275676542825405904064966414308901316686051358231750896261509719311979348321497797117782674542138330050339279844839683506155661401253754817675098014899472627202016511828763381469058331895028113118733431671561018288908454836136223059607547790527128890629330396688981804800281362733584355751864522206805326138559086414383896672274085043401991705743066635867304502603942714458540150346048697505369646942442847782807373844689220606363673797271016294461167715112953286248316130611819174379818381776900411088884752381126738572234535102631588135517865250484682001486874797044826739407138665257894753147161414965065535916755031205920420604784432292320999202690011332031761507091110466963989248331837934879759935520818451475474028199488873499777210760196706050397225861773301445916729520418746620993173628045944681765215750934006215057976543802212360411304119226164337979692121233271712838658930199304731650545136008423408409890526207444086904990570622619986625512342350955165721290427701749978095794965552477258399926728389721919310896803962897971417259135077366121359513079394654466247258786040219799443519686927472718857617629662248357148204508297466487594961370834291819523021137798552856008961952362614864397698517375913735004575957507904029185393165864352226487489866060716790400873604238960048932140780883846793033638880448288205284690712418236436235136431859095758971645426720379915576172301225808070740292318455760187846360023549882034123137090977732822339616484454226807936143373463295544479459791334578209264040480326845050293493908056919497847990067840226380463281988231910180073246190119093267559916972108970879373811265188953438554796334456736291330467107613178949529777596847884666294872979167364869015769291022656235056511407503511555290008459955289915278210686392640386634776875082030300024273436193255950543302089615421516467807071756953727390342919291679247646544850290086599091177131865227055062502308383731551325860164002664543722658264454474194798251086843246102286082112557835685324054033657836678559243223667469713257341725210722101920228729136759751279988770235653423185448200526092952001062033023703390350146534897732653402698147956149147101286491131804362879624241725789679384440150877053479806384262044917355380370274511496018485524085985925318639403263636535897371987679760014252581408669872826809427152035013498833140220192431075603071211190948395775522204439217760661210890495008640658190691014174642611879583377319249550009173130710331182902323657820514519597967931688962823540171206579979411100777597616306419668949887307367149660339374122896609994420739764578794107487134076227558478456509909584544011272175398327388033398001110756728171465368388500909595531855251986222314791996327746886712216159603382416347304069578861308671433258373671433774759024338182580110525499271342893285605599277970261778313797078239665102088850570840242369115763241392145701820976284607274230258528913635232385186566695676641366049937133389989828344383121431348399737607652122282970042121376016544122026180265933364812687495549717504358040432147125903734028278956693882947366513024558396501818067557032910999092078280169106607454607754655355697937877250501301174084942661802353180391539466099156187082149911222506747089867983607342867211460016486948710153690724540447234188720867040645861988191296212475719997762709106005582144439888519010070439338181676613575286108428026227279421378304941462197690909077520461988246978981194079504838949441629262816462322629923217336212457287134874650166545061656918952000180232835986543595913793130744887375755784679162757484700264692704114350034269538050069902517342934941302349997434886566133242189760764350150164684829732571767803853187509089529711626146618083797497781807055449126979864379512367884429210011033120273935442308346733308863422225645433520051666204700483144125892691033219618962159492064041601266354359022093082853840949587184134431996088271224675308495609745681813347923805103632446515090107524996240165788086172636950304576969894114901826612524622503430476645359057682143269964304343276522150807678260423691947470192059425611636303365086901783042009314484912455825540237577097998284040683304069531988672137233611898856855718080318853948583119795823176935471828289002805237013676702466640548946635403229317825118881580246414319686106543097753619808408604553919443413016466978555000528521855694271159224694741238520756249773473914332083538941330296068343503700669779724981525411746001951681544475487489175705679754797479135335341487115515603010072706093436376383140333535614655598713553008555179040841033615108874322941465897571063807447556831500485812674082964079049724214844045943261540039219578563579484383722354869366169766035890850732988647264613625037264040953826430505336749386338050316391591443562461113967207486115924677678098305885345500053378926878457887723645947472828234593394126819090609874473211081976517720577192463586051219324301385991368853081847813421608032085436675634711572024690905931337148090016704187897532598287904046036307599072432213390385828476725167964727226209406096369358934816716193004343680888000673046351818176258253212499429839395737396626170875942826511016943527081987965112549605863326042337245462709650503511051681185648379707802365163033367330458648546287592096575131641502077616370186001841921405913881717292178828419717571465663038898162614189865351129547397404726287857095322103314164025323565944927940332080658388014121741074895265318608337295255932912052254161128397751931825172008651005724348639165751796422757018507991217626972965413040886201229411981212569138634702768315308956818670066238597395047699343251214085186002229286131625997300182892268256026308602333061206196245246552295872661978599499300661928282180478495517246250578725042460292312332465661004570737463030598114525970705211508230962631431738548046799656309510408006592475158512595091370052228071501773492356937856872028283017014764137542814965573647911850736939505626573543697370033073090808792239857449218387273668076092997780211210107503140440137677427386015923032047862244867361303387103940391182815555207117537979746984852888229226313818109081445931399590943305781230696044290351264111469256632661112292128924614228692767862555787166048568041586515153635053719335594707653320322366003384589955219509499708254528360330170522029696202952819019874363273463826642317517597078300315823125803527322335922936346036988518501519033085901538688528200133339189954415129014082592853818958182967506843089109221893118967155005598542915241652876552703055857998792482562694760419767997289307043383248057789699817755537863973908412373408314450411689670571130167696696681797175462515967929634467056106204919108001359066773555583246022700074566523683007233241673043118822200397928345617826350720714693184378598594066047497367141223589160727150484653921856358479153139383403099275888095146100703432960791877825621828488248385558726901310659491645184960029616267219565244946948000082283706797406907714082671333352837226886071852180385620129969552195049417577314603330983604022975425204136093387253859591004031260849024575848585039011941863820404008832233015994548823528836846446171354077473137563023792462183792998718456367078237993266547656562499214011124795609597546511375347438375063006086395639917472565027516290536011626592456150890758910821220149234614460165849538228568976647208974840809022289343887266790786317228786622993754010680494948546184154998117388555370581389786330753175377317702904554638772764593447997530937506726545758646757485286687967994665219278069102639767942302775008623728773738930306823749351275793373723296730471574618471364974323642713764970331307928093074345264427842575471298782332186616225387281016496356193201157541523381513598691741750411576149644007124617225646262710687843189855524109897360597626236099607234131961209801152767058624269304104456944894417672464777682148529645960561203229856742220387458078863614934592524157843397037901413442929393623383136637863997422996773607091183528636484042845381664432703335808638119596909255321878777049067313307628544015423721979127796755735870363268866793450192255965086725465143863467803702384914956540162469977955111563812194515054529434761516898270807266466958787880250803462725594831433169652147376074795849406968401693285948790079157104626868462906188786697759800835485969090471055312835298701482055253491591649478518273579465272154286043345397415675938587138853797655204993300594434396177014582371838458396006571006874919594248139734295943438346207096722405357950261193452076264732766778707702955527783654206017445411898504954614307614132428683932200110028118364597531217151399776384990473092885858499761985309667870742664882660741209811796130887372408719441903019115143139847347802185645657836499986903033185847219357579908204579475232609156888954719486678867572501746878466045076409463843383161753214312262418912487170730218460870680485670029133156745970266659785583213509990980077735608717789911452460316042606413194509603269608114731254769414942556756291361690133889910007044746978391183531395282218279222567439713692875085914581537481878606474989772031422862568923436114604692104406267567528515704245882056598283207000204086457059692720016332305920744756745926527683868308459527497353475740636346148047934161437945736310824948612964901458885967423659038237940806929567467405564516919795577832527343887192995872893666010495888719380371630122925759936311766378901296477427283562703016850420405627088427902109519922720386961070907846837623926246680340571918588256164000725483128570404532980185024980530382583949111733795371305252551398020215730250931372556709213533919950765868407025215838660341237263203605188955351245746673726504178861142069391546844583509129993513076413281829959783508451456455398242145147635147089771865995863269220067033272714147448158880237211428054254383230404783631511086341906045864981531441658351468045951560796787629094973553420073687045442246520288151687598943222150485044395827674182655964073446187883278773866893632987406980815092256431566636691183765212075056281435863892826779523206448941907000754537167665048227322614510056693282402829115333765366095348100555855617696329262600546261578096124434482473045651402672559576231620485894687878722769771671624094330346420308358084772098532776474989141929890493506445629392610223229638956677807199858052268526862862649904828542479751185947081427308361421397777298498446237007596968631204576012064253059631369202090983821408978691109043807447419813095583869380711128977013702829335685039431176825320438139854245953798690429429691621110163288711393500343944224088466059820538519203636404933534683294183134186537302158151208429536802965949983000148251090874275587690933613107828869512219428967669114988601156730858385879840944293102896116662747027383662408611817989128415682437325382324081783942894317148551448963304597163680210613940239723197126724488015670593514845662518153511358328584943890384287827566196675584495336304961396811571792571488203045764395070744739522499997392081771317517605289589605509804741762096939123431504927107693519821422624503024770769593548928674986866450252076638327118212395137809049257684311301731481489328146714307019364057969725643100705774229045876138843960874737482358628577705456889200257575781553986007494631616679951461211963300519213136702015650532235836878014474325051937785052978252856287093877892622441465881840618070119656445051319534658044752438614462648968405850699778288717385561403807549140403024696781703616073419067809933900617211091329487844051916386740811481241982727201285589027496979719043945387440313233527409226907137297112439136332682352754144393851545415150787830863527292205604873215555873690571005465873681360231502554746260456299753927303441215479391805088674736339836863140495565097823282292314693338052360751069256037683252418716879773325947890547641983646192654496042916416484424048666829368503150381401398257563074115140948889161747457136493698903056084605785481050003974818328132337954851315233116957671622121742641623347884281905850246661111536309311115086668738035537440428919717384942451512883921122787570004772759836027991344627081780081431275536174503401041998546302393520011819175521499300832957647518352913569885986914659337167909534573993406261550899927601461963425445413185476669142860315068612754572942169715182397663776213138084464345972509783037636665988315782137758975802128974126987005671845101594216280868487083460198454986995453207996396016587234211834764018736265781993413774059805320586071207060032757124739969121941189768663835391014070063856426871561717119480250674210564665095627687418143727026273133254394552803651552407897867134970756789935872276953306793090744383457941853263885465259828357943020646009354658479294715583757775245684486910002569958766129354222299902298244952304518853804585053934171635346122075084663492758955348155865015194526577340313362805724948021863347187246731907634672264552455390652676249022527863440705922603221391576436779408524739012112292570817034264688653587563974643377017696823898806343355529404254297508640434965074205586467780170615639400481322588033378554749415849522366795556462413843115672181114067914480816710531432062912898399014349393805171827587223107430046060094293191162403351673688415394716316682466415782841335301150564144618419591169083517672058242395049598895687776410029987072545136569910200802415022916398621837789876263952987351012042975759549385483023350885687671429963473189910789601303659785036585273605620008560238457719680144229740850948977342883954781619092952573429101492448260039756492168030617539575786923898418233375588023945000578646974988048482349781379219095273244656942430044431097979123981863544953397017573947763508625384823600782406388132901139275040513369615370997299206578935200480490974279510602884126202678807960263623234524704843620786775267560626004808026769533873293402539839091368643914742458128757165332214555024893436171388444440514364683779120271527605331041329718442391739830459964951852659034631345114380542807347028060329976175990917752486030513970618762656033149097046052915227453948420916501599073192279858467530398899524874241844488369475620044052170444188143827550556719196529784908370350677878592731492754383030915482771997925909363564609113242586585912703350417620909997152690153837635156823403955824652881344318794009748262322992772675688375655284632012167090183854531291401481987125832369766388694445314168363888375410190622598416105056694119459008352424577171592517248021167355314532174704589760779337531584676484690021878228860398237597008203251662303562806784113353156419906183154446156303506979014523456974751888036552906663467650979359128215393271881873638801499761762533456008573086346013469882792936531605788090449167791342043572829784038132735578301603567788028396020009968366146233796844767627583265361110380899717862762391430685503004800586929007710959479187172319056067701931177478064761295734699152632250205497450529279409356027548984972670613597468916754707215932553770404969204439415942151474372580651636043465058302033891752118232683308542658695643469027281172528366513944040289718092681486131003243680773541278067069897324991216636879277335397992580598590415127888303632884414920007944031381486775647361539563612308386492280803277424753026985229041562737990427077933015134897249040454242686014909034316453865728425329558954338555980472658556835493430870629461824064070772534533271876805439718328591977727793422914031173479974357967588296653316050095573004976539000314896609464797442098692404880673656428329106286768675128389731793142847624558059257430062864827378107277327246634853471470031790758879820522877046625806018246869023494762975441993215201577339307946402286899745970432828713908457630749945158669419282051394457308829619913414511403548962444215510442067342197740159434655876250725579961843295098947333191780609686469994590209566420198875192606602937849639613979446442047563354665378808106173928371677540011384185048073867783701255560948528696735570962244504552314695302939553975111095089095074022341490737191519745001355168665334475489227491869951552001344773668952431066342614402425660575959697287098488000708811051371350517398575841002581683556525272091386744520098136692891027135210043184909769999379822320791271507694927911093281633565644961397076558300772938227267232966423627255614905220025718919986893132792586293875581523206592075048140107096562908089203316675571431510589268070166954012865567210865255532509838797010268789835202003135452954461547990800398421007276510650186896958505181175175200615546313250308731936685728046524669961459798359162328764286766198380840254018547270251085708929794528929316178656190402491753750231161354786386881695897192260681774734483997068454433494301308538461937795672200440252802575300287379092409571159838327547772440848200242522075656423405842476279533687705271438035363355464077404996250863890549988668467822068970428023232236483074687912419702403883456958928879001905484869108453865222450526250041701540004183206962415278777869787374111230697963463644973309017850129340393515900967075086183969238721288604291582879027666895073303530495891208278150392639853976985667434723171255952100887546000478395868623870652171552635455709167183219365324856127303472358074186544187180683470367966613647106012184423010018974678909097728058145286816469359599564131451525426996943575911535705103319330173570510932493864942151771401391117177476670510954179210474151857972845510577941525250683260767113391150834194095938553124326933626220621394830377763836590795382450635392086378100642554066141539125948341853872456984214180549673458705888764588075616481736489254479172904846071830387993827248925028438827476801794493967851074891634925716545957096601862173983033837632958386399578619675881962927282315189852472037228541631436430150216461604534690779725420769938156555090975875987778530903710045727813942846888965491913207960529921167886960725597492737384608683996457651218309060192195843460401328644683324555446915734234175541211400208332385871743438199103037304795899178083509096900591338811407988666291508266099504800057337961890225949934775855205103175457109176722797035583034435075743548042320382350597854803833213564304510751549027197034061612254790081252266895173289991199744510331501020578682220096545835691922983946786481944069265667110918358206974368191411116242972365958203004981141843618747244461700322042995651981541795121507644164685093523571509537678892230135370376611895504478485469968305240637797917643871379620583707276294072246231816587051510145347145436113620672044328024714218030101138578876181668997714325688103114114617536295319048917335370869462577280766575758039469881501994089100810674600090283392715281494256603673089359822083120610015950915279769588322956428175850182601891528961294630417935182016349715778908411250586729304518974375585886270139239890641809205471140740308078252528639893573310585936832570116895346156601588413580089400369089212773443376331123918457869878072684168866833862999814913311512577225514920414492640955625033850490967406429348768653745392385759696570917648314056825018493601113162649737258009500962761133944776480113314280297977548852121698943032373261257781297299797058905783335529927956789608500447412578434478972631087973844536449389841566895005811499747668379324560364921033076252954209569539803628117275865161381381918249423826812762549267216374356169417314064448335249669071924033413106958398048174353950112878493271606761122218613960653022689435336337029505427763141608512614607782700338648862986778697875705208842276421372230700630797935786306091042730146426346494850906228861548090344876520122465075565795766505252007711173282700548153068741022834706114694769210466401184793808784685068739346403836551088116338456616127643076297722765136502216117823898098665708912319624174003983258755390721404782312442904981516562143844330516678745041782563747000700321829619061198565671210168443984864275095173230269914400694506757362713347708738586006202806417493440864119217757588814619012496305004586373223384083394055524573645666573759457461194623167631162723317753679802557557236558994026834681605814778610523160915342772209046095232257198984206226553163347540279173657325103542133486628549758863967483947582419600318451516191810547522244396483289414524616475953664310553181997181973577339952112334022110618521295205917398602733435588575974644872423294309069666277829523348467438441986228106626027410901477072887433763021370047626662720800959428307055125254905351914252614819909615804604849409162123787326719899025858583820316992476428632138077783396434636306056229570343896941748412202172099921267639813620720706880910890362494101970357154570421899400202956024732773107450447235759147020056546553651999196773644148170140197666068214685725068217252053347589729345810080472727266281402799372874489011735261535508514685126441826922813215160195950900670778049665586490074574941794944277845760029472881866203714406336009189604861969589893470124318921487163559618740247444292791819372806128652852128099126400996602102826432013199340514116599585067210579759857228963164296256861318245714011631869406594374216326972451798547279353330104683958222678099094736995034344979895276087977923114274487125454618575648464275867947170730541356244706653708835152727506712220692704674547119311296443616845088337638412051251206630853921522498419836163657218023657730991280106434813475886436332813102489770028709607102869454296013996017686656742362345729478391014607869043195956258649238319050444886642777192733709454878592066184348488605502847676278841518958331401224198817773381751030797104697695568885246418968723166483866890404993232712233086738285832086752954713228939874340782325564052139028311565322621669657283864281474721508953717673536778090504261882337539918750816094270603092002932206839462545090275409392176633249223012275608007348894530337338213478110956036304062211721385320675397343448247395293264782286847259521427442016557369398993159945827892247137515402099068301275511589437468794336646067743300604369130419486485632731000731373557987002884610285385460490542982390302543920721149341685664984156086797901769800841389462763160707156904642131009053222501652301876683607706684415385186616193129138287132172467188442707977759977343870242994623643746474167227755758818258861922175219535010597717406548311576497586973959521132530647619593710250467773883275640691672614801204785467272169362989956969387223327783663543623032674063986685210224647945755560091144922196073626253726403779610736334564170326417290252283565282572588380111261627694445640758288705510363714327341514427293110761129202873301932098910034674694511196682477944829779792188021538867142554913468424407337295943969787436564699720101420065684191062239883832387428883014685668561716850180436932645788456510360099575724894970407471036075711627137701880243846773022642880000615790906547803570643282678896475809935546008173063034356166456404827331078269573919338831087572679894302634586148125862756554637929597383113088756414008756032240346050335065440867919478726922684879832532675795391291620519236179601184034833679833486911233215360362238571071114519014047008579626684296423477376077893231236732533459644590767868322803215737929835035742544505544845591959840954499065141139526379138654667890950643563614171962515941514966838696521513152939397289318928227790799670541029014027044002265377153830982139850781370133775179278843623367387374456039819775237018704393037208718607258092914495150013659700796280365617610231212624613470045335403100349969095819834938699526235805467797734239403718575884440764384183630159339821820600502489693424749755380040873425084970331957114732891613315291251397464865378733299462991757894515675234530347769023715520340611665929948618149708375908535365439734037289794797806958886227608533147696699601505172257771620997550588662340038570775317177379048193174236588599425514388749270628175826673359790888772233279842693514631873071400454704877778755577197955459394808502218118765564822494938929539183341745048699022259516698593332365666158703389563520110569240308442496810484037496980284205489005076945735642527851346073245648869164821211232057971622590437801641686984306190270950939707215434070074127727885431364379505343917287224697749702636567953585197302525391177363558952127620009027575342929726034672434380864490465892654656895883796097339449974048550361788189059798584435111458774583402149229013815667136183641118125724342317593467237252655031393557638185862640340129755021876892478501588428347065628291653173262546584094301379078638750984752537160542185007962736354420419145817984588125358262019598484860414448814422597726674982338414833525827823798916279623106203058673741648983354317048498379579766955422474517963196873684714318299171236729264653468810696643195154825487239396494306991439650951775730005303838722925715903895558172946981896117885668298517300630090268630856815267777934530718610792867508809053100962913768065155990773786220310233210439599351548430521932846064346388472610870339773554995008978124093145454265314937227645830720655243369675291353404820729152872028581727389935700236522939572085861882682402750544136889497845805008148520774538064074699660276188804793203079866825107528408334589674130513586446737833024207804925302633441364132226772469064202780222298696606087450031795948910887715123997110049836968186246264748048757330669765638711389732047548818430838432626212748808235379811086387802624484226730012477846233496063755019113618822631429975592839974922902182161143750403257222458432698618400309114482152156541357229855131175792197256428028165022093006205431423724943054525528474405577125836160826739987242290024463882431301421045725431488851033793928276388100677870451656344524219235971846070605578521410196847620160477426095130281251055191064354893579850048482199132768581887759572699854339829208532157414222198854604225969136970194042408022304874214617664998064261547380890147104325383048124990212973666486288966372112613882035832447837996717765649291801482737932830866110765296340886588858760207463137721865254785894991058884048596708114400527104620155618553635774496139893225342351328284125122055022325432997007205867329740642305559096263036907128843462931811996443077496350307506411602786615350798354079009954658691818366086875442853544350932710165869785299729200287639993299722599323745806972381882764886242142731829020680985090267722297560553147823734687759412485714177397846401173221833756441141559612572069788910092953794748385918826410699848625959386789807838074170928865715062457748942092688429902493282677063851550242689499597305647764073419385621204355401595736125455045114896394268265735525801196819812691393816505708377727413149967560996925585836080359836129139433226181637044184857412975162252988214102649735898731993286394406165629634089464550298883179437917867567882911540395316469666974104972746295222954498954827292820306658188365907179923152572243640763331176117859994837892092990975901438184076275913947461657214040346087728911155619118194269153470368537100794432698942516319386276745909646621311802123541418487025844904932970440713331523240987180391749205900709159391234153129199652617036780752661027631899873128685658085341733886347889262784912326613788498686257702517857282363446207997462670490781112868897276214520942376825832515790031091718349217252443101500337896594663581439003582646573063501193110242980778954566183280361426823438213710720459744336983218516275687047463264079830451739279049618647187370378787331910601413445737812972177291395092244996979817631168157321307166114835692405202209008747279912889165848804300317164948394748784935242633550008686673756195938284862942202709586267861381119184445043000680391811078836262881073024743219831302209972459305086782061819674601602437774188301348242855355570573633467319919909931515166233364829563662295089898760533875972506229907829782343630927390324116965338020658640153573765403948253635577766240339516845276270057212176299380900761088348468404739892151270191082004014901041630314783745918175923455460433806761919750934449405687356429208991597985188994755950026003604866811304422343988049599082514873724544769079972397530287296406238074799610492218363106406815643245770561515176789267832261114847017196342603581949276668582455750717997292929103909939878902404842692986403611633163781473116300733118117829164667163937863823640267524304719818991418100067925858971151285607226534645641915231446578718906962413409148638032268584260867139647475340337485578999999812823472205943978857246858815213013049305081618260303643312372107797164422086682518607963206506149506267635293221598646339008913367405426304504422547271335689289775425094529418637277337659921474178559961322330298021649569775656263828031649249462087918485847120705821021999608269050338663140127572188695323432281938710247770198092868655600402921950409838176462169253096482025522585787515618545985526291638462030283163511990964273137863418170948310070088698913202956266814993240464446224490773014346656673578915144649142131573230233377266194391469938961062355393734575449127131169567926836288538441893959948329745344543432917353816862371583693358421342204949843234125278959219825129745303839696712502123213283476906443991780737767934986407886109127012810215158758341951223299410433678653999336995029750650653401589223685867519350780154104435747754212375113239277342129397272860674640299986466344825300339726398937929559952954987846831973788346945188454315707166573206277314962496159636951358766179181267197355003921562152302843624639583057486805707400294202720308726119104220488874881589099473509739899240618919675797808803256292552609909519457924131280765415347384014085642296778040118842699839611740685165250597732515207147569125070449146108513530989504779270127760681956699279888651922083629155547032483272998239685489248647245232746888076880552148370732149423855594763589034351248151690659587092873044985019018331221541022280293648856817818391228542801852497304042925964056542387869064788578577846905472981246768179603793809025478138637424031901635470158058571968388830906571088933607427107003063266536079172936570070824442366005605357679853318053414380996896088638656005368622120691682000165651661503339164972414319932273072925414619469175337321668340383712989895550039401810720581386086232595724812373006670054477533471282801744844420853088299471612014853981769471529429273429943581097576461296204309587120994104367625622779277349660686441259233728314824426262075789804665291699235419217941419394214787525083115838218720421464717623920191761559530629285155142386707979925522707325770418026760464202193312451680464889688113095840158277456842581310226555932659145364689663130893599708432092297152829678528232117110777148162092420936367325779708162230620436533583672796391926058274936408088521907114271641358206996960370644380520893324573608902081836556220808314995163422536618829927141067646818878910683723623849436045814596470879937806540874718034209746026353921081707165903887230504461809895729641738185364299945975504187509712208519051049740966949820921267543254103062754051438913609011528994214874012862675506542830703164319942695203984673558885002874856870228018171691740217828964456175219033356962201248055865288841133900653116830389621038421170867095090236990157976441102647627641262460293564814187245074584644631873066833555201031595085553885241824756288847601761720224487455684136506398790733537732755969486718103147585855505355879246127514841808806311708751760519970768069740352016218212619301164544353665694702283667022952790699403171745303238820101725864431263579924742417904800068974311146868802389873722263301803328833894887188739966149291739936985964489224997677618000972451345799608671742168887775364391299829416385130854827676707410815266186249872062652530289033268335141076090493024259012485755347749145168303554239530961353924046366061320433563533317560096124827202413865304788938433244742074597428705483202851261115035790316575313800990065098308227912880034001254298784874040915802307164414619484071981239403425388529951796165987243991397581018884710495799782852997517066974010649371244356883050717969692770524915894685468253081208633750042414342176833654718774188740073206479865381475453788952407332601277888452279973250063127535635849254765108017586362063099824006495691442658497056480897976358428944043616888493796841681987373709658108859566780942025414152348867001675592134152576646563927898892660796249189068502588687118013833941219940320435618256776032393905363594091757050419600456216819207387518377072562809860534591297103618793314263343351353898536461672122472139013715404136645065603358192788409405548114223122311963295387319498876184481798138920466053248862130276279787518698289926981904649991767710274515973410581272595757836759483113534411931380728532376255950290684703608232839099401395861750327262085574703170592855104590785290411147658297757776519095308054909132738957315683851149660075864466350791377583999777522995149513040385947900438309925329840504502526492089632522361519511440252480864425394274555947813024960620222172554702194213789658117351459505166619087166769262961658731925286323250594918248627519131333548645091050539301516632677045758682854845731325480732127149011042520722171363165960412747864691443631315291891137810717689032426399097580334039522079879904578236506809985691573238794784568171157249723338663587404242350821188383584679800441385286886499774529425978705042277829570631962833260095025571713210859285245812665966439924050715161050480157710776928494082436703419859530550055750956227566697676552197786836354239353410701056997281076330302666773379262197250240974290515735568584452958846137938664941735908649116478400623622038866356478922565640524576501789038162532994017022252945649659298898986759513506785151067111103621566392345966086825211973900875954239959947943381955765086147725495146916570375477304198940286023211971385602238866143786349525275498463455621810717860418685834164006619432093861940966700714454433395898337300523024063637646734424302531512039406342817202156992892419255899269509903485629204620885029831189307530165759709392948735802866863988330574234774303226397326139228810755045276815403376005635678512655880610998225306337565884133531395078930592327392823932331159767651738580063288834489392083010506410982630703454777894890976939136990346541012621574918925280406854125887984158302777268450824691101338672343200843120701413583753600580516497959744744059877087300374027994931251557181283778604271301461335876493611025153855605533502681288507352030956613066821984276360456495010740478127361038934108104660914180613926999747362844086793048236336405516731369725157814836365625950815763917894433534625887575892635218417293551293120593719411429591979223661102418307545558752703380096297518539414777523886216608863768159531498365734096617598344344370547396055656202402250028328976767794731606266083475774488748877673139676601155287648990895588381293124001854124965435536435588333475995378675682132136907582553032058056370789937974546551612271261277948851652012305511770692408131386988135234024046955340952483293748538236699055662138636714195667229111649455530228966332343120273720413569385194756043996005391329826046949850180170875646939883714246557854511307275393276446303772916741473390221319109379142673374792491261471871498002126547166262868507881248039264109881138719432974915394961893514464274100186553183036255731566048285995167938202037504916757553612526901685100869009245233517707322877102145360480925813206875326251013165458430217415851959810565797948578568047288172345074502994634796665874432361101033409114885440202798784437191323031669157938208946167749615622454484206886663778443660689951890120307605902996380186418185907543923856957387873529814036750167793907110412148492802476310150694288054732703839278835021120545758778146174957711146376788672829628866014605795914538920906212212812965850998178696301608192053538895270563319445373511892877512085328277889596986925446583453709011033580258277044550194927722345423310922121658422040288368987129296342775399256475018537694871336457910435662573269285775312323979726190122691018683487704508285526764432643963551718913084767983057469333264235616885023582046583468802558154942869878091448099494654389730639075047034323461881958326347538646150273273865623715737641586524247540607274008336424971460409490037681129759204916163506882620027383220947305396162190127906355385739341314992583582272764834066056936376403120383479982991913399502261041940904270410121991420543164691430428881602788026416704127068864778415148035478650711987376666805709093319679325339263978114923779446159448316731238214648328860364890819384483610178316730073624457109380515535877411366621876789403522490970702170510174033750358970468066140966601132114461749988025721278392816578746493348969240211584857790374609119128943646730577251230850050344452045401261229560419465805034511260304326948272538380777219159344834652664236750496210698817123238574696562935173382906387657408051039332380531725666221795837908824600271180367746555445893677119798705996112489620551637043574144855241841600160876574972271684426204989385685548837796392230263792132124129931639509915164033686157093739251143318594288290873629602473593868622573048745074197210852232611847955131685957079333077281850532040391539654071721187675870115786290756290370848961818365744970118195214231202506794449253716798439725760405592127737425991278503247478996495278191252417330324585179043105411145624385153701142211903113263999173725132864903997852835225591381904330229803004851689217391226043660227851538559380054312556883984812145771990737274745643168259926189511943573892224689850297034864867937729643402102691208562391571627494783446486121195936481002853115706934806812885789973409745914658274744263771543812432702935753250501925462108088786987850013041982884600238266232117223608861958962720408772696362808308631261205525921868020385757537494947507327352414954740870095184803510265769355765735781542313300691788675672575481283269810179747790295050731134665946144980158324525755255721693088702989051467331825367639585102890661005171400187882776354111673246114452174072616864821209476412584068938316023993278112858553702868755711247767341850282109976909409358429777610140964797728677605427046340501724020567946138999612700981798326617522890721556040320994607108506468932767110304410520327875202501602613695653579270802485130630905255945086804967472431336870074119838306942215010590280901170339422087742321985852728726667581650430506152234765238076061171334835491248642225999944806098059493850975104361885472253123917821366620700114422959360289711192914076426877853785054652767142350912129575865415491036607909525188537504845104935685637032539465377209338144973460390386339197354451927286791998165035008289166155545020768037211937356162585765472331862128740163654915894273569245213028290812028318634157082080443853646094572660974508949621748550054638494236425054216132193509730548551312546192063352227089277123707213186389753777801347776192151818187042817326498241977714022736698046107680550985122686950501528337473199167214163622917289520705456497693092239215159040161419912244890729449202851775855892569547869292785464985116105416225942845362659738072404628800976691123908980907503755888731767518490640466880721547700169521526391835392069539270784007154276278173585288268889247841096008308239211383614210554219228988324896498039929704333922771922655164314023466107043491989461165358679425473708537853303516883007654457801007895234321757610246709952224829433287799203480330266481936551130906578576604981431050586006454108166687737812435069332243991573796800044794707819008252255678354227038398724955920386271447568827376540107088639644473561866732357329901094297573641074531791454974484063329443627891341238026032717276970466036246445681250794375824832724583343841824184926100719336298707676195589962169337463834062332296909032104478360687808567037511740177350310036409414216636351083771634715032557232282855867155697165775460248168265843481704633545811969519513031903917537083483312554937880570406104942324252755684993393000223565207398005213684767209348341090557074448358607109879439903144104180726404067247518026613008542886971576710353788234137291261967208483604173997517371048208449444977931076342000180562819832403942159951398563787061448428955239941051857195946080345319618629103208171828843707923733481561828234348442700521295251814574995202049403975431037624207530660663612994029993288700209935405716396533165913563524906212033051673286231173366053416625731343892516520239779293203453326737851102734992020351536593418968552022189676165967378564388577793908571442292761369318600186145362790444264586348406788618456938305982541906353351159544379595204115169232296662445073068840411658715031747903249847587604467947274002493172532530246906584651706844534256220837944212765390802408924584892377130099223986646159422846827294212718558858711940237096044507768358746390779290157687725825681507710304689310149161505648133391472532208997554242145364181885781902927698051614897726810373566110082801932119815729971296535629095280820756383262221543361114313801281993098437098589599221713192019314835167471142063406848312146941661450253361296662219186105023762442027645369181342147777056401510692741458788207175838777757661099882907007715252829687209730551942630601030609491630364823376371251887784033882087271268889402825599874206674643974151940289784267211882683070667924106513036441486224476170082851616661278522675164076947429441849504321117028269012460141511168952356973482441182083594264570516792370990536421096373251922383192357048459074417316333932314166741344417765969061171872646167083522408305822655236298767763537630210499493546095050653799845290854808963852343302019232985137012263081616169263293458478423134150940001941694206489299652883145655063609591962748237135973817869550093863154927688662167413938805181812269010234442694367401974931701763148888346405739807403627650122184570052258646603951043832980922573457292173519963269615110757394533809208510662064984772397664729979788633883410181345296864259938123418634161965734804782014052640403923973353974998098029586474676396148297243372651307932367398252202656152263646152680888009295153247068417406549004481620394658603022427405678860743654806454798969966188772411822364948687492026118220397597059555627804760354911355632570478005801491302425207019437574520705693038339564705074171029349705555809188090400320760527522488747100781681378813297663930211292346696355614485780089305765444390861091167020189513886643519521008639870934386946356854949388491384656504064879758099807746257195482166618253751648910034210886925856795828922646066223460988570156433379984022688091572494846586046745255160069129375494120525187653984685776898396101238457376245584371546173872135086546535836294929281677542382671682559772474261241693218510948527355540739712972282847058892508933361157053102671536272083713643114775627101091810934972840587501837031059954157830659730102861136004608353141693935842363238310704537841205621080823035803532627507612786286167031423841338129821843944041968620749476690540011870480322001352705963868546682911843269194676948506100548994010619007281060549716059705225594896382642761754043310668141951434535561181488585216638055871999652296318124820557795378239350093948629248794065220818835658483851956211130012814501646348020552937787878557942568163642011229355374524358185074043348286656061262777379310962373995922063562981745152719047733827807492256532119319565891820435957739276068241924218368707370724299501233072950270236684697536295141646207318887740866395287305498528468797698596405360450261813049628636980739822926051357394183074794054898625791410880828474604118927121289590087405586234280639938172497478040104360029373638947348609957697998397668528162136020456251128106998054497551345715609313040070150484408701076972836051770081414714508778188224233603032120900965180682559642654231957512990970444966466373790051594010653621641563846239477182180188219263614191874089068184414790799880246450437903009852715778248320247372674571730457567683684640017128187273899725303972393956304245075525045784678011375059596813790339058627561336226418455652659144667399714927386346456028857402878262780822332813319759503399454766319859898765603698888210340245625843138877139845394701177331212712553710347116856701841054035377210651193872404666579410374098082786878385451552394030032952959264224055986907540793906202369486874220858834048109863718345130077735157609426343089351184486823963163308998013248932728527309475016273822883727513320699556999581882540395089296655258584662652389648607891097309677152845052066860163036339124506465890389387915383405396313406102884038293206600850390694127282113068724944533613088511416232838033696732602632269806850612520061269874118257656323105145951303433795549552220285712114378456145795701640810820751631338919127669012349917467451498227055145538551177796212955404557174533435437789324780135436781055821563110351302518220121842308681716593469586724109269230496225780514031593705547855843363351371032190311057533821857038130230297551161140053033973840809451438505705718926393017644222684728152266615272229644502475702455582423767747680318605492368179783664266576860152560614978309910808197479849909739434028302278435475168205285950551055148714135657759362563637220823640724191062428740804840558509920479897076453850875032937350842739220926131746128451918118269509913018750604683125655061201619840630427116935413521395730897681654259430693007619263770851714687198942811755264692343947791280364478977543333384661862753236200797735396740551616824672357659611631147278201424472954888310140402273818602403409546857296802753116775256975742420773293041515307972091416304353317875457544813595955709142649334304630004164038949477389693725722616335353063067347896852984593348002008713841912989492747350796627169101673981123429420490574545499494001603124434811983684434106204361179483329772351178491183140089566434206305127806623984700658659926352743586574608915416586242031491492093071753702239742154649700256103538499865597194555868863966523987765085457556658508207474735516744964780557252411738376738752429747309491857099604341483176317899100474435878792302167737535162482778283974042444381273067486345887655708308081398297021859274588291770322063321311517463894376286731654441691749708340059083856883910521088247777732780352315440227537089448736201284842208233899016839105340604539627247052980378721965955568221943575274825709092114642594652866553579149281890741384221896520304295554393133505562190518915157402805612466190691734079510605928282537026430198830344151337285910735024772302023897043433330300541746783726242110166876545090096119100094314979096718421939950855625856526041748171977249780015557413405798067088744132870066217073300535546095830477919399587101474063632568752104020274289831387346974992545787665873424086075177629093105080669344930241675599813221178918588835728261484280314697200140489279485574713595181543781077793594574935879791732996524938250842041370551124765248632957196363270091642151755566541765342310225910714285254180020159201491413734902012577662272354978878452630984208417870293147543815967373832088117841434824829670515313912915431871633347809695214735236824611595982232285442724713215158440754917484264078941362857769326598835977510369745465405153488517033162097155893294446433036265737734949948509338123017603060061042814328654073200573399610099782714040660531456753456277824883750390283062111854076883037002119151143366189411548145972063892605054927191879153181114961390165425953075411765225675798405557414453389296956900029775465801607585753008641231732623275336357962203757258221004850666093332880644311312983815822919326520921630515448094560727334145195056762411491322735901166457294435891288857991658612001420409846201051294859157144584892976487763281248858212987059354562394392017711415376573901739910198877915229235072474109959177301416459758932553035349904669493731526982481769937628228967153289798058581689108193806506519086556000702948311778085054382554503996624161661153678669541476467214825596460188994004859736266879423494153027493658886199302863569728156214692265886752107099991800419173619410829917635270866120853213178197654960470343209640617452545611719385501672742092587848940526913089150537390441501694546400422011723302673316021407697738869020318503140979590878217079195313390716505304753965467800721893525945452342810339676226197347101534958313373770485190678727386620714972848496376063389899047695025756134137285558324666824804350291628327116710124135036552072853561474714301994577644042918939484184945672207722765505098747740243070168698876095078467234160871581604238399883979191812777436331833449616971031320659249212812013358998435501371411795600808095447296123688401826758791287847662764120432364971715376370449484960746678421940688565486589397368455734249356310691263448043782062878105944178101196773365385020205180238765805300341328583616774657920486062634245612457473224929831923179580661886077359970216886984451195942348330401031599951691324284492057082864004746830372894460085901586991978901091930003054410305200659855147736155669387042173581247512561081335041339634855656759987862427441268227442482579047475145755658892727844967949833195160051921513866320713481786375413549132760852577270442907478544428030838621718970391438526694198237556162178445612771254639791598412074279839826621000243610749339819631216644528939390745046108967816968031921270430704259518731764006381701896955944217197077163317728004498648032990578122088323159490586760262872436597487768623838888776939101445317108291110292829785140531701997501259138926740657015230186003299476424821053438944134799340061735576432226753684978339785064376887096033568124876520938143152926679754480904892730789818264605667016625488779251520906924916184897170348430623545075508004839612943112917229111759562066192488872595967429878590073155092040041206368921674809116272851580773052712719901488435254134852627597987177249732944041960214572121462998742684337194889941311719755060045362546418313002466654592927125945236923689613817798769006329747314985873254805522291408599944145112289626584469401037544973915609057369379871915466067960698217312952077530109089316246410074707518291586923419982121045614254228369944346128367535340631246675143671959082632861153882326480601509536162725997377651013659208091151908377186991849436744620041587362760171359352735419216526098156716512449400217730741154816840760181896923997778254415123307628083571534953757772840563409155565250436321547309774992013938461976568568654669369845507513792161433809237293955024643122055810060266962358661074181361796563180458202862047376411363229482315457383895137724420202957904372296023011546833190462523040508647013188871322926024955497944961097788012162671075701405769194330531903473471771721147098631108643427534141444672618890656677674779451987481891114738935815242268488055834423292426872932274093632803728490623023217606460509572786444063747360061197454543035760721978435329246123159930919154206912797640104892784814776164041350470237746788744104243551248080685108073335704596309034457156854800137109437367579243193278841693951153252198439026068504447725568644112592365643068077387006303842103429013480749015511365274172104619126035073334036406026671144161555126373814872535934244157473167131516588332897335393637136385448248664887965964250739767117576592268339887566435631752392506071875928797655271661635977467715328821404353616977839118160237253070458262502163993256076325815900658687299676670789694693737495310710748475132516928087197931035154536365161212083181766983936438020819050907285757479781202513216218634213125767841149587822436977393332818938302160524456497210260848793266274168180575367224402268159434976827277670074307139660618922737396994345977109550317232370994012078660070713896742890030858909973964184016886199563445583122482304483421897680530073633435498569315299845035011832584009375546602659444494465027528210345146325860682093082844365387073445137980956870580065779222334450678148534596184791759786230203329564632126626489033912804554842480435569348710508161234376412087000296739715551331805817499807504359155993062838804952439767112561750782980681865101961598315484110447937896721884555617060423830119146960803033524895570151048596059411763348822630053043801135945617179526301561838420366923326603192933888693790201706828745998380271956745100883019939220323349347630716127381324818345124958428195947854470885292659012478544443638180196808558760937087000221989184647675115280069456351898419413673477569936467621567088466745171351028337148389938161149888962212058930496899239211936474462136213735262731675253340941511056268854348712909263078098038153578450956873964348742004237827297191350097293260092975162919245684425685400219817265839662758642670141369709459930091279488225023901052001402037209967150141878911761858906660282967257337740010609224998298165435288993574899113742206611702257562047588803909220786857533449605595265956735181279724925960029837299897240022595237453741787751875586157162807025432052260867975909086803290367347802896943246835428676662771196383461588838192555707617134349216775927926386034523296698193994861040221968691267759074353577321395916887890742270022147696706849141390897849399851839240211526146133475261212589190580192453289466834826282726132318454117972194046138137535075593196914642656785823768535854742735549340359843750073843751094150373634471113860646947881208085128088506533127886453705148907177875340253758019565676590609823617374298978274002482416617704043349698458876012359383743385333584324893511947287621363423978566530655071873633741677277130662969560595666374413967312282039993282690744093808938023438782252469094268833592000613224282475592541038869254375594135097241747654974184142118542855366663596457116707168639790666920821324326940170817230805831389173735894340860913063670133742759489105112324762494576497173025402945889712627857674980401155055975943260869767614201117750237366360354402314577775856034370075741947065474889073083390789641532409518002783964600877746488000428282706730181353899557487823132253867961182773252114623263935713983189844287404525526776752272543105912914484718336061766060617798784325652342996835268168962036719789965617456312912950077905520534022261847928730921382953964878766133017078410915667306817408919808947181949372076580603662818758525481348714989704046766045748692339803889779060001023660058251765406903921868901269712354374036601395089726782093100404021050185991922485510309582863835616044007759538430258089945213658058342322465171893718640893436742273787812378235198897767403989375888333371209811973439645837990250848783240343701691801628552954155780058215019446666977044972343498784979697685853067678078186197073181523262651734095829451924907192593824988268254960108911384186865069687652598601542664257501202919267935177844265377202092127094202889930264892056755748543005321959480797200430749940182577856823312220134936182274150689546786263237579521755662867901859094620004101939404767345549096271630660804653733442133008378296838317190537324655122727226330575513633314147240110343067150119719181679913981940801784027251611351009470335932989791333005376571602692710770482681009648613826067771003157599982728169411396106212586318819649361371982793921279765724919163438568553020808642536908462296833615416661577827408649432068796134941930696929609353928853695094836647803680761009455767648995076392722051006002915592906619060317106165401357559037602887263170996829241092552400775165268023785993107986007716398958677706964909216308764671492475597264807918827170963129324067377445840199410067935432215011598736527982586372416450622386047602084746993530316591276740238100561124659959452061491098578848790924243760118124878769016424124675340603281981955013873746179698727601361950614749661130786238462894359955203328781844691040303931606286789555365746413052350238129949782478291817328936588799566871803407069471873556211372327682147978181311150318588388039331030431618760115763492855636406872519644632423287264767464925511304936254507011697647552495202478584824131021847338018924606190645901459858342687914240989578808448145512091290442155911896653383994379400726709149070846081081129923487727846515557696990416773950595753846255197872046587230355163639449837113440386618796357545108332712508379763463743908758267155716490110617032506618559744731307757932247270767847926597524696900560175179275905438738296852643263203947563794379804766733465298739706214718737131092400368490908729533028298781433920186483731878761651533547424952857928236523191236385818949733089555231716673446432691096265340967195798536540791028498271212424488805993195944127262253516866993549037504727488052036639899652452084550900408754888220550524392633425918050284604551531368376237187928063037622436791335000155276197547150553186266480782980093513106552864738936640563307947361058564492994746271920868991717926511983546136385644507267325212627188560762809331256425586989349001677599972396480257901939922123047013057610459242607988700515412197047444008896601388138648674931972075833130844637568854360981263669687168919775337970706916217835830048362055813536065843709991392020409986570269950865156506037568707231532352015275123144833922779996526368552599544326576507046543559069223383561084276904033315347844153888378229798717263621285077783143222898513468039156556601503764010515829746874417322557005657023137127523548363380828755898602014329427069742963568777432876637464161192025727266508523101918036170791346506744777234177411727813865502003092539618907060622096534014665802219988893970445502183322771393263247366375354316164720886667833260396338773032271507858197087068890121330589236928465841056171136153543707425210818183038793781641992342258642998643904889070200646064686697405584202448124711533920685098519305898803076245603823290005023802531907264995831276731021365058996726260224524522192224806288093487342461984267779011940426355028378924774941672221937479209828608225077913514494025470036362165788559854820505961028588037250630517202633982416277452757376838933559447778806397031885117952592478528359438586849108479788431792013327800758775809740547666430165049684028548775978483033539736288275971570007660880964694994765419941599807409096937865990927512172744362175660545633232553218124942305200806344188355551809066360547262227511734926042514080951820392876661608406044778447707453376766163098575620581234099606647715769852713375919864603717945462504241727833888423754610098164994662418457236735477198743933688509617582575811329470531237916529460375173621118755552090291027129469229353466223993266862412762720140416310147104833538259897679918685707898074412451694733328759285232617117741663159636825751344419539368580664996848210718413880562515855748553097223942464006383356983071467019899657507067057703046741548145945544427242690432307006415724876133408335293937611509420938155565238941441234585886739066385379045585684222797999075355706486327306719772748922996406734229477451933567297315728675061246888499825058172695542672749638247023177895368291648038010966607314555664692383992891472553124745462125025180038548777732950281291279669662368380144908398723580622732896370305544088131174351971650785599844920390887246407614125101085837903338567249751648920989133670183458146520943212790221190307598267624048485885972107496013901933994008836598301376470730201047825924305371996498925922523431305423007705269591855334054796807429699941355196209814044373857046452818836935432477850724808762923149496687296859449232142774191289243230381048567619820654433104961109800117381729618364994154461133168796110681729897578691192241776523720229991593061385868699502941475208010019904304209826097750179596922000749292053557870041090496439402042658168108892485561380344957780654859859223052118833870475290047137035507890251483436445078606148788176826050342028512155384612841970548737085138099142411943667885939201825726735430246622321423458237145356819641869575677055256218906000687123868809499835837892712493106181571543623599110378950721880747460301628932640540819357879419315589850621060664727344310411769900903435819362589301847759098832128715473823436295178866547150461604229847020512818959866514299028304297134150808044275793468145590680252451555502200898101970626781272755551221005688980919412639560756736315861172812690670928622922315076079044836115262867677018161614078423275867383951517220224126272332784416813875944208300696615788698364038546059538575623778906388345256159756595870685688539908287414845909530404372807904615909890973388518965352648135986989047532395544595487173137892344623400401197197609855801978567884869058044153901055913707157480434919905210519950153099746896644196501416767030815247145635159840397709121844900096692490154079276764972178302609465100478384164208606100142141186547656777651118194430104302524888429850156582592174593846052757763576605913134973135345431102750962187787355839057241728028193809269723068080737339999663235918741522135709113770782385281224673802697487128230241893469696528340832430907266467057939217280360950413934737333744498971150279852483567455049374011889222526320165649416098134901228504560527161647851374492358980498677244839964515512580795772148225061988881687547187786855482811844168925667943158528374832598619574146543970538198672010892409301585919140668024402245035444823049557067345704409531105043486647207877661162169972865337187843572260215771304469093783902695989467770664858023461744165186129596027394023847923707343967180828687653165891633711048843082021830710919071300373849936360814032649587710707046226309070547868921808657995931616459548905804275832283804668848641324611819694280380311354296787703574228315348374976410062440829724348783218097470373632038884561064703378765293086030896388957446054372530196016617577594283359877677529670343711672214155548684162735752076348382506114446076773842106698621318786705413968284412577544654760289639350531522607285873786104454709168032689020795300483860580662095275624449008150390869799045688931584966490046723837738864594308360433009138264078089874786430336917760200414766643721408213773625534411675582458761573808114964831676312312363254034624598169833568447440311411834549368699241113619929178164416913313659482250113861524626570509922160319135458644203128950682286299966189016141335759741915399367975478416694281579568092020441492152650003845159382394749967110124497365796145904733399774262326263351280103184423306421816462799607828900421852487388181811265641575996253168653108503661725023497213141784717532676360030826591111971348279024252329644839161266404640676907644447604461798921056188848952726376258857767957102417092860770860207522774945098802740859093470101978139060870650283283254923849802585190288186557730814261538690017235515976863605567166945094848662758806739769089705078623915224523316230889704551016580050818434484519421581166509948843680429944238735205050893260028534503953036643519190807486564004473877027145773654093133415736367686581838343590408394192998953635469604207126087974125648950812236889517994722216621512366623816113256828992619880607257442768980594968320706215189685957239327724558834704187397428069374140642708046236209264901016284043227824355505224662297124236870755243044609841452908856980113330316047041542869103674360669019472292722335364213415561648456831874300335910756430847209230141373981635529832145068257148889610468427811068386515717022442342329015294927531725709630668753970790853491128868489163495180150295826726671498936855698154518080579508685795313361276958765725760748231446522378154029706087473262259256691459178642356631950856068536483988466613215182797584933681615857833650472640740617159516512371332170960063420288816443582300928966656130837734695693243540378426833218181048792080586853578903870016984263914850458010681332118002408754735073861076955516123497004033743854704545406049869768750531509481534792302210407332362531623147404518658659020759184400726906005767999253092220261394796916445722769612173233328330328289136865445211451462320919924337310615457945615195335840625782255747355690207566149196493641074641324250571023743126383282414151803519193160941978638553610395875750473967283153854006782757855026671224936344681497449104536010487628586353042273280073106266146308120588753182934019210919815185794903847577594370127796869974601601325261495364556300191727630314497991609369743732874187209861249979272522269071221460428017449159658723167963863689354969849801029633098189148897521577225059729651660803344910287968001779855272953904269612060875161766976360726469196471487075382258501325914395693955832857374265026350527155702129307498065505488502048370847401400982743195770041053067339214829410672544815756699280189288680915879320106262936670736094287686591486215627488851964349310660359104751039396457222253275501417113553993015867557592561506056822931735235936244397887665941597833122863938277655787789654272491659622636720361390952901768202521341997179541039708505603861438366749594032624503933120554262723242813914731472229712479512568106187207356216318372974340530114738353720542519088426454311267436298258903870665849147632050562889705888569046211910948715238605158107776384525001695254379036974733100694440788373880876306273489340213125248675749537793711186780910755535940729763717902638006105034065975890299630554967114108882257268772550636409356884128712794831305531779174640960640250504884121003099396715416571406357810016491423850602402115472961393938409504138030829310606333498601102407079448700090257684490164224861444713031815582504530610123655424551225699123269506417687397015630134668085983647734158498739500198426208007763717116751142737580114382547240720656875990864259876922461333595401027547583141232944011711405656531140772881553823313768329902632289135262104153733201492367904385266019647912693045190690502409463860464278085624867507165479801023240356588665092532085975741984709892880583613980912752163100941206062101423652307035479274219157536668141703633706340217862525181115024960840135342359613943618758445197672640686673591524649907860295582460299423762117468172099050627620043752546542906736361670548153955473190839312638367594451043022957790362768273895847878793811467101300758711156871669167253983019666343361233090574872036715639517361633322444546059507436952082931591043722174273838059584000726174899641818058425546231285076047627424723674199250063890361309991583080419844978592074908900426276858979240559013946615645389546096334923546719404021446298071004924881859306519705176732989733082479840504968692905232368622952678162404257572038954223456873535254563092562665669413807411416571734345507066523621434934277006951527829835211326994217518128125000624336059646924131774325560821760115473816525636380145890749717487690225015009243131146749749454380500420667198606470733947807480119756105167018348989083944992785309069334734668655586384979624931778656768046916623778103011878064804146770959546060621205729409582783124800792264203476155141254402419231214693594866684828826142207097296371215569476943249854313915738155743676332320780363667749490336115190442509743032944725215780911185206047972285136645160775989268353818055173254040394119244619881745409412584225914896895629142526991231559076598598064270548017095103750140344332805019606526556059624407175718804422461233229275117540841850712205100944670856563498055514335908522473208007899237278608799464148088116664914336708089467073810922297927840160061573797267439560613475188942378765507605794184115373364179624486814125148956594327974233865449719163702502457106954156137064849178562305041945722165358945297256450577851165908241964481399250292048647065945205121741766103490972955299408989398993599131373509476379124991269717161827765193144729738177622609820623691063215185995057904449616857569037449386444381701124983421713432553443586981696574239015713191771150206021584889823448729933052180569313069768370976676246626723257938742761605698712676942319892622189923310692602604823427299136964773104585350373002694231086624655812599458168536113614280114946717870506675613764519162848199716992744533197980969571887131214337507410281121834819839513330786553608215333490083422159998070237614221566668468877424260621222187873713033703880138755007717741574780181246513960154768778022377196518198087434562823385891524709671815342605612039596121120233286767124402878567399634286204973373185156433440891312501174899131657443393919260072016101466168564769002709512235939603749123637857316479785741596695549287584500490409522539172040345394895094063856246980655663082950040429089989547844168232973867335435806090000276350842947826034794619297973174310201410274468317348202784816273019190904819475244285687524730120667923358555664130858038758220616782021833686768751351827131661752407151426144527216039052996845861794262685636002911280937963321260880215665470827679645209751367381468942267920581468206516788632044392396743595004423495373371978380291811902139486383050064916129620688985341620908585178328684554607409983806373685020186819166273311083709316513121399208512494282669165389987410905965885286973529519644537859279107330274789252973334873672488725976175798555918346038135303588309361702620602634900628278131268855793879235537613375150921207750027359256213058374850616341033987825509045996681481582517679031084699710535592293795190836709785722057587901721340413909666084833762721924973124476376863558413366258261627960854409099998920001537324443871447129316373278867285425502146479476301832508237522624389773804158633608222398949449473214541747422685926006608610262155869399793000741461166151640794152190079544624063429624937822589641846925611153964522326479032929463989635153264494750404241225925330922053290220106535619238533277716125071954576238232686440901701622576556810613401339949491811149264543564465227858891219297561193561761433618769242554493085380517934142331247511993587278041993039842663757527453613363248627353867071751089688374175586982282810083239159299016842052662748716288467792952120293604213884013688383035064956898148771898861730687999606654915835709892374438495339909063500233693483436943258796426908936275689480854756698891814709326358297125887626806814980458138757417464240420839772706978223537878809347026776905532351124388384847231586725284186503648226230730411380090499255168737366429107422793150841813653115946561621652809724036022298606085393080860379534296074991080820050311806715850546814161662033614756222530390062346926737696476897360987338218257059209748531653036670276316223279331554092877277950781987588262201397827456687941055441978516181927517492688156643240651839974826905243582004309564164124297401222187622300224966192614891610296044278844461239500800085824873049978176996403840596238188626274381977895614090008975048121369475961673219435429550884038599235692235910494322304028277293462634237822106771780548614610347810386767462504552078287361918212602675888786568631790191463843365411553135699039418543248938456899629397961183563624427788065013886896680550775683264128568222582664392572643015757672074622097581929822801399745240650265996531937960077901291775181711064871154784344224788904814938291219540808850200130660319843535710331698830234196396132490464931651907186591866305958392536971857453493206144085896406350173639488596444061760819546592910615255966110200914742617233386178330713161418646992398270884971934756819189708441181261915069031301902709316045797745919651736209580478453430253232481176348485578190875307575977637924870819241940359810883946102264019986251747144640867771912117297237753539155388933810132267200575225364918366405362714600258791785217370826996171397702055710579272182578057793654741979149372829000032184837048877707702463412211204752947372260886300486106365788628037668715763293755760142866236872267839654809610305047501130249015203057118287601141597320545867164548155932589033782314349085195550935920651747697181348254590934359909352387765328052841070854280336535275525755031022841635940533514492906325914384572918278732478973491162009874558636567670954313432784946208971824574870187560287195467204109169913649675355299555283212405757074233935115615870083966363205844244927598005850500224249638717171255784594838948292630072329210736188403958234399255276883247171425593736773016554376468977248759329084260316410660190150697739607766788802491316832589364426917245592247526019171124734707113861438528658467175597018604417090372994359629421450156958713892897134283556049941305073086751848283093726603200677435074533782363632155663768587397828651887741037533010202843301794993200837336060636271009927192630829692980227951251298162374509990659392591924189040954830911621931267759541587482435883296736998816292419727995701428094636766788789138082921121343053908583506941627410583709236050316183504488552024503063012426162155916790773181246004811728047709492034579940430275160681262352462648455540336143361254485555001097130461165126689833063628650245038776551541736378619998456723426649120305270534293708596544699230172263804693712044519801958570337801554153692754945685753835010656764923220207944610328259396209146180598656048985031848590581785733465249895412251649086455802991405160395799408562506889581809220815490928849018119708249895572834885231420934178800008020527492686767041081705165093748163327368588614568471626369421371506858265077327096166865436920211041175420181127584314184170790006901146614689255641806981304516425671317186761949494290179657856798837435491044068431639531811570641508289431545135908539985799634635089725359899879849521293485249136201711033955497445377469019124533474108019523576763414899202476769387439475850275332746941860515135030490941106447426787791707503655774722439838247544544365603145690068226009783016066717171779729015586192807038832484710757334875351350941089941059889806960124256960068453424394622372336019993461284673113261774403985838957145855745132580214744917417992568437999093164763061328063528580824860412488403169728906501972878362588210792361162638376970200413416213796978244372023030548538546719404043662330937384472858950973812237853483322926469777108264277780755004990774332970980451849895325820782840142631611665205887974911369144683565930395711121549339904556509649381380636959982852962683406526072875333347177098354150306453832410428409278637255487505018651651504085597471095773263354469365615947366404931108185414890418006352250091586090231518527468272031381054760526628956253921653545285740108309718205222669797302853344321849639372332413945065488114544605051492831196462720981885018016463012460672576317614863415330156726562110245926281817776003533721839417882409270716262084807143794699756208345871425299814106218498851656277335607917210904176842001315334714369506557872287203977788149794035300078058521392143581774967511295120795787625489468739669147097579736102935952147224455572671923934232844217364713761352365713714427720218100429270258551376555703055865246218640223733635465192237427764900901198333757543385012016438594971188027768541101346262524935102079513814289842495726763099690103703476307162899080816902467714167191126110021254701469228238595198493308584179608771184473163556200004762333198166824787690582706016779697089070012291513050767967071413689751407538639998537635472366329146016409311610381862204027415996493467033769765331550190199492053972068548712879872000854271454617163424726592660909265350280273285422239464620852239516045298794989584693906933829006839045771436677271864410580426961612174780375210778040886458829162702140355676876031403144066061683444814917143762324540304649751805330581943018710274400586597146961125941420671581514054924840161111325216753656367305898138624247925810555891761281251886995859494094632233009346705099754237514238610468671167590018595847078134448853882298012170834145269797909276459748273708329055740370945495726329494440869177108976729643044935522746069522725966322781864989176158325070801204253171728902355431818921932806101265313398559470827527860082313838979571674630652306498071809687764949477548695663697543782312185407231475502028755524281695220772929293690119079034842354639076093909293734266541871121838550445845569130570495650349053811062283695833769003983080152835060421198855749646267004016479123369288343324429885168374513582464378574077019264977249677716422840103585000168395653642088752796917086336071210202619740261747649004907457166272027961154481091484758951879464896100894068845719430367995215516371212832279040950791084157339568282399203390560669851212553833786963379127987358777841692648891289698498143317842635312716358284318390017773820530766652899094752161751765563772181917079430918181963521180183654926848062424191946030497189543270875459535779262112297845604007231234522593024487781944627171940286217706888421333248722022290068193483131852950595724217112945244596547335097070915665233832193295672961618171740772579209866102670706802652930982741643158437330495958662767201457139776471161701902160721284400382162017192926358987718973235502734531772970551972615828563008967432625187180121237974199351609071362393505586753707902752798982674122427102308639178164643887584007118801642617930057896200051978911989638435700595225899923879054527857707990333942120286169081563943859642636701735002406734430237753185033075850097613291476356898526761605088983352720663522626428933835310540557365555423253948239732861555852461984768538365518596718806843120006297690822776335868284422353423368305223584501897841364228671874189543255381086962900147765101207655389897566688683976493554500239315230521038589914283135098158426832200164062321758908753372903610889334364447886975858202666452002081465585889450001729433389129649385727649675597478285158977264682951429381227479336302109364931873672112314687320713753104041732065296837788098566164716841641954959723341434737613456697990490971149743858776365825367566851526736595625967334167108233079596946159114377721091178452832875957504477033596435172305283226650647249025163887514094627751876589547223101246896348978361932883138844802702905527925442941141138465698469623134905665972255956966964528092212583135925566952603686471981121605948771354828973812193977743088452301175568297908475004674336024597272616771547800710972957029395842969122343025195458689251297553796672730624105416995236373476556636429356727248256722259230306277202630149001056344566109714438597899098250149026249210055701898152560284811688582481979141384629986321775987648705372521460419139981011839654608106515139790502409368674986462024485409448951416554116828336083248635540393716002344478560058518119867154395242330295887808365259070829813697761986839601157678538716978003227316886649382813419894789076809563902126562632039444065207924621178508984488782313766324117453071450065354054360335452097277074598590560920724425172179535215184555415943602897209299193556386852795311434425616354114640889552078325191934130171267695265777733620790798119238987134010785650824468289879478895343898837785834647049816671851672455023528526850526398275723880692072648851466306804413282445603375881943230504075904252852295304080032082944889346701888978654629016541534587706619973644207671875054850985467302407248631000620458182112282264792280123928833513176544719647850013318681305227544666848352883079363085977439475288238504675732216103029547817025393685065201657987708192877286573291335438151364483736539118018240419779254724150426638573487385136983186973276171403751282128371981894247105489376505077509061169979698336304033870826857108549455095585310298158701417461320886960937086446054127417134899205291662603651210448716651032223378908651004134347237875659371859652738367144943819638115238981310948766581615526700634290874422600513300104220782706211487719568088446591085139654141902004820078234374420268501562040871033942561745625435342395229553013957547118425102401136026888207899624159996263455623353351832088792505477383942374511951156291830532384642646725059501468140806673375257612717067607287228967074039693983952833618391460873114628921116494194398456939905364186590583697406338842815608693557144128323934006355308682896483350610599641025926577371814731238229551273758087750022525650718373587651454808571778784583531065383380151898302337245624468435445280522719551314801194471091836563503942555703821866742541892493888699000741043068060373097342379594599386994117327129100166559472128082195318476454236092110006960565275396875878999147262519828071233928968070061239582940184709198038653051189919190709834087155444894265871624424279840088356958348378412084349483755871360835765968636033347300584293896462090295438312205215115126086311765463773780058617338949393523181324558184430996887760050085640718710638377178982966580974502959961128799226070227069459389085306176793291846041300730742082406133093347183078097437587467138175354100348380766585046459633462245638831694712489951975573884041236170197413840520757307234528659214483387590583170717652153185841277908309044470089533225756563609726107429426687706786389127987669283993348691899259783541376156391548322176862999664390357344751634594709689755350249148259721157594924303857132350727838219119047846879176847340297147504069620259723932324434031774672701917525765531099035307907242740380471841371350861941336938862113365706436445420545716808742286843449568205874708500120551708150440409278855620288110991647621593791820253381981896953645645910942917229502405289161333197385915361552981379923081130213501642073496425681484138904086142008409010719860200918096227532173637605996614963905122035402202148341219657086234463018227457386678772792320111276741967561289383991864716010604360985665904823760655835701293607514919962403688532913075284406874262825495187068186507379681492928894370677211088512857607649784732657920758319581460280643328846997606417875583633973975034919252307680970418075871028371307218143731320198801020465415618677233462293629054768848223680771126461624832205572029594741497335371553302527349863862888945710335393915797787824821435224284204744941652041551145620794745876084418450529579117391188138207890986200457268869873110267951796500013092735602264877379370990530249385453831021988244033346646098120434436363578077140565461102437085760802513542951777145256879197427079872343238255107876793877770548487506821695745079284250319455965166450259394065159984322080055888712451645486278982279077298556930361057345118703670679566005309464713531907820602844337866548342317572915696803968718064315004735073707935318648019912164639655998899233558096887890870456624799866781598627697013753207313606832121931368844847992360939601678546638338990850654179536494021397387177775017158402477927799411268611280987309389920250723679473852975389661837068258342292063280443843488722633298895449704532138879440843492605191654760124399617967022225983455423384699828083468361696276737894302610865347992445910213101891566288380970011454820096791514018601623381036341109575536458071976474880295288184948925388254852796034836455127597966685177790054768501206636076466637685315412181787471514394222954203403468508730822772766070106134960148502665641881691290299620737097457511169302539293771911727287090190171674953038242395782345385052438872202388700204991457756222274813520071970977218535247531004470526631551176331120494501290571478893822248755710275720651581053047170267286758384978845538668031779006836665634488056015748359318525620477469512436932832178773195287598386160518422642402561530973992809932319534707198876797009496545997131904173423290324249920171594185043309541505916884779390617967482697415367647192238230661076916751370407849054393664827798515693272451215931439348119329602728549686516953205603425986038553436922884172277759492257147536210119868811738196752199640889752889439538363944598673908752513850395971168774324015027853787073499659280630883214321297938416391840066929262589881266692817335403056017470074439970125071094348208959634813545155275520034591300758149008285062906413780184110543660425637239886904163144025335257398811956301139312609987709038043136302986857455492243110277095102744301193867953426843095665157541527779856902939955730817173437624863383928817545421672224958980154351053851421575288889435062290746663141251493484692924461873194272519387024333533938971900642173280462403562260574856761805150892203660254081415245931551842858562610666808240144453917798642197466243259562649918459325069422654582336069333931549544136318839206133005955131104072092799472174135829415131959732286276132115936012211859279429552755075110256285859479978941004130015193087156231895246028183907331804588899056278495971800805897834318069143308080775744253532580426353126162112291294710063580010087080839927823316853655016382419148586079400226824654136116486871674488132108310963169358272172288503261700743221487085191581969094976952420034650699490495639103346054196015837986121368928660282407283620401189935662422506648270621589018347508119372016209811681122321367946622399266842771304802013480059571789730938890897187283723066772289303684769527406722439210436419233254887193401702965027934260107029857272215906908155873911278013487961413207844943959726687686509553813187126606471820051733737454755629802568363108647181363822526064149106893099248231118101140484192029698759577035945571205674014226214023691508684406845694155933786179360723487768063627825932993003590517804125309621462607934274146289202183622309571533198422355285418026781928957512833816370436958215462860976086850796687695703914393416308506147663097015623759506211875561350854460479939639424925512500853637496484835467269794556176230493210107556150276751958854838726978000122104614661493648470463986078831693380519794375783819857697349878524429976574453886648501046476538469704943631409267289122191843822235188561659339746379830855924413996339102615821853841669780359497173760070199819553409779434952805122697651974143865692548592537223527866107831685165434393043580462259698763745768235298126554519668969599551111725849196548186143874926832641708817684761993018674988510758865401514965264949119819106703609739279818376730255572217516467981092820129784161369219882758675932303663680605334286457878380675344177138731624572504229039232982599353813727841945168340450555211201209921821442884597148337440019790375530996728611955651572695303963777235989407789024753476279627832173733330302086690069253087724917616454086780107707395123202846580757636628611340792176625086580623664594805301686285367817907546952244131013458373282380805639067437339525259269145034127615491056328655416350003339585023287908401284382501260696949444018955867893931429881099518058899278777300166024126904381910003795138476173450283363018657081652297395065394306112847745169004655263916406498048237917456327858710751357884745456054052390718736497191846229114768661006987088359840330981082503453717554540370807962475060114006454822958030194692181369449056933829859183016406662520018448500373187462325057220307122289158343708374693554827194466536857021909498273357278349341675421321619477663257393221008854978924792196997348734808081817467991978345158320888451827804333863547589296480769283206292284446931022100303285383384886898419148389783417111522723767585946929079076947931008189252763908372987717113030877984921236086062832325096810021563345649386739785011863804557431246901603617609036375082347849401707215018262511406676060024398784611287836937771323659424358558682461596646722148036014077927613981225669495280122058666016211186575939066315212985321656488213275029552800399617708015122033723851199041863999936193661054309851955442707933238515817441730965990146952299397605362754162395787156190840448222217982414710470511502498941473748007233833931596542402050697816697498092831837594817997611111665325836248739154430301653746558451735653554005109106015733924083076450164065136344582419792208837126381713253721280342987012491341449431529775779817392493225509059827583966091709583190540124171078788322945983166444758916889904052709949738712192916763357953643402717411392919971542167899842525530127759862199164777421371604407753490393006453992096961627997936165590046462294435537529516302811990848295294158980135363826271118657226050148263842317037671922746524022789533632557402307940277668575899346629041776147033273418017745644423108444204770657583585347384134970919122354628044874778607240503915506752886920416305602055655641167317656987179673441352708115323604648158540794179988978105670216243467203198531047928827321368753224949938812069580358890988586512896169842266747069460335562733234757863397118326529253622719838449258714768255475063584397577361582353478524851041175739375465968564004888039157784178763586329595906808734278700567324824652033932515030189831978616943179229886188195155732728282231009629239951290137866074829053391911359213295641967446185140599571265849876928382279881225365330459179515566397538022356663282869310647422838226529116845183701505149498919242234342945480209721862031773722888269043949490066891668162994405095372543085753132225048017046280995482949473757775347417155520208352191848893768914289280842023476539882455709633331228170393588246813105226419424927171164293329191524305262604083247763422297123714377881907258397973849840875706968163645416074021803825701052932541300698497959287406383618974830297469495469444626209793828925165028500617312403771246033621061372850431343070098789944946174570846129994066208581936801342102222974275908479507909202917443101528395121765720100754469827368017557755699601209647118969063454019144717041647268402063557608211075443552013779749037745674209458391867588503840114012824388048569939232956723844185535871966324608230299479758560487475923067622835760195939758481686066936844918330446453011420304276232681315191088854161898748364022780966757452285446581172004430354130754479525347925119199689380724961819842216881562006776473229012140577048627246553645224485926160340793038864182663281840734460352214178062233787213725843704175016288669075001019476218755735931048360412954322590746649808179266867096084729264338830864287215581856009940287776785626034779768715897717127232729725479181455145272432118697430876995822212238001375311546930168542291794861251877563212356473223372024456324555276929476040134304239462868078132669405513688074011895371508641768282886028289957295349688620329495449699240606399255326582731910568142796914017135544306782283527556295153382918358802411866763738714349355696557885524718718071610828757460732379505289779150296177152580189648093166526870490488494941170709171621145292583293313425213177401572308084490019244337589158804405543521330004642395485884805953345334577571439946105315194146099804383560962607375134324209061595831382619959335340128309240657772448434804679344432758883144469282510740847602060651724429323221284436516814498132456348016430999523643832882825918124659256201453385697322348969661484741175654920950258036518466336243789364209744493619488970842311518547744170155752109696591740706580584438382089827983967220005269982186366564005108061132983598483069990032056475640415201828724765168558340798040530980774208651146548678774737830568588898940496003680933430270798655705665530254633750473472754918728274527173423098873785027568305317040572477310449459131718035771579235840257430586324246738008415055211384763468242676824314569551317218208366309134084629881096459643182418507883419335099695125252303881269934998043302487477389718105244857862604411875240299316161883392952917790159206011552424068320818149370401048998406279489576243537460323615926914519104461119367870801321270338411952469902070143137341192255147465952341948361713650184446382693723502669639156850264057130136094011215104727602750343484586167559226219784103515246929889712366617026317064565483110024180211159806829062189505414122734708044524464667819095697885203540346133474966440210334871336723200369920207004186503921815135295208825651332325792689148326844784091026644226760881751351826113901946482738348208532754823579073578462213350755476317841429022908886050011481145829390199362364238953225202902149064024368715805093003751422576744307432899697606089939465264464000829572601081318534013395840720662735456576252183274581609096853615443286644853395912380723137517409125049938776536808033562214398046238300472493831197914404706814747255301574113774222164783037038642514035091244481885032130494867969725519773606025320213254771048714185848677393988518149734448184688674146352288189618767459671214533479124407703979880532985795315250644751951819860556613422748590742441249488188870365842599959328957910198497590648715444469811446860696311186695156705680895831221238139202789963821264136180852445464718167768924840739081608840198385624567541694645864178424458999930265622430114495689492209937713741270925495291991024467475785532431436448197309564453684110117963100383866648242594659933334740960522045193096110255180102740410425477906784211798165289775995701973506192673573736281231681678225606300910357392548136837635666176112214927610077133968584543420320554342666716413486879565498006350973557425990675271234522590243890770568376581336409806498766921324008736591052510618608105947532627819234769327002725889059772066527070995574403972678792788171808272589501186484677235093413450566499209131999622366847929672298990569691400374989490544754556646351124946664398962817361891309436581226227478310602536117799769793168599256718704493408348576204490742904443572030312552477552936823773733457973572641475890834989841920530609545657042828835738430703091894227352961372090853147549009589836337466863854383312965269197263844493237151444242278449182527496964496785243462956196182491895053706038503787283474690422423597081954857615564857005199727085147786349126042305033308213255444622995899948434428006847886085514756120406014070144488439092214513443623179000234913401427927007073172671038299192817975633643605513689915197381609232413689640859892173683033385988280342705193567337850235677811670847197377886480197470572330611866743500270771572477156015927927545218760170766667651129923816610920950517930080925865453208505229121895714424207944460160008498735265083029160979147365746037225369023298651272992231780177176137202918972497275081665719584363049375357647247835167196224938836438426070542592035018505027407391007882975967698609543818502308162342717441280456247667078093555067567540678541497824986837351541343406113306432694656138835238009187774601971516609728569658047856266297334045749829923770563903690506801201907602395803606478067696038698103468961879161325359106614197092266099359923720241996367217015492717510817513246913186153034154870583158271623997849377292065731814639386720129485987772757034669104004749017624749787837399607762139516544420827061763330732710513839902629730918337982432826572355826010051664525143219325585701219908567765751636316446702160795390367281808196375624865425516137032864273744725659574537815552023530109280020374357209598365005314465368553437862402207293030164331982384856784319195026409267292379203215355305381269301100958268636132051006355117756975585466353692258854639101573561739673393643562384140205799670660355785706792572380580724061639850367443506937222318613841332721208621121907928360181898104188571508576192406084398292819965499073981935416253010457530961401138284869353959601021696781223384562793201568459608859796774492769351511307988593573889701366359404315161815114747904474052682430701448678236571797574597719024255458206729082774434985319665300729006090894478073071208773456224723648548007127789252339598857613081035738332922862159042277142247848681672293537977666589796778017654502428584000808607068545681111615739233661857494404207888881556832478251279401292781627630149081693994670171802343592216612871568564372147325766731969642614168343982138365224153850080828297342147131567205004796044277482581750634389579540444481613613798833787585604961085845000530558333728826647483333620383339139314158590645931338696949525956074797615977797465595062523570541314182494748328915394485613204036451783868523959832222816888755188673720527480882861928538172003783710894196876713992369326837864808980325964030402325737114584310934725597232980992375999722835284206253227308870700590063954302340012190383290332036402227233951725090275499352697613663079636778662534280667226679516322168102800193555386728802592981517890850893917189724232526862670405962789096105132066232738715518548869613799484900809336136767189881503583733115308165198105221543588835082565780510255719938056338668823619841002486811510592190553145123253009917443705900092550697410629666289494917975130117925353299975628658404462343200841065912111642850843255080817816198656738888013749626817816358945238348810697445349586194670986837209222793416207244903231814567948862491499962927463350572530370508336142450844957484340212815679140602557177899506353706917529871585904994266562260042259007648844020082268709138631627053064469173315128146827213014475651111639793560867731629256488170351279338504686418136140682469986639582868030023967956720818517905480637342994399002139273364933714566102308736118485187385388904197250368589070470370285766489587421213004669384280017026275817516935302311232051959837047660804253165026066245136355335500333255240799679209287270021477289144595600149399184474280564516892994083653636341142361053797655451193022581901246031622616413113304946697515704377375063634898273413801340433077367732936962127192766665995258064603553387902623548460281672819325664599819444474731588737100351727971598848784237856227304183147386316905460308678713634949080494859524950157718433939760644291035869542885456523996738011342485844661868479592286938471594091515225531039536725318932134009913670146775058119407654208304110946879774960041372365516539407580869553706651726705909860590036572285116485306621009318828560989355249598213297550533964162432689282302101132228026503465618438849334998116988065606636687789744750260953705711909897863658470609120206337755183610791231377721336031964107191141065126005375242304116481177784369459817884831345706068873786813988416852993800649325716357744325913210219301880707429953426257444943653918243523835027926718501684617364421140816301648591657928235919335564101765974978601744384034359262104091091867711938027206943303310209688785894063626242137934752820735090052265876982882663637140143853035496480318084236609024304729250184702441970401553391500738516215125163829690297353114370775875646354666905530672159908005248054122540694592165643655808533267265154825564073045540181756703180998220701805380425926576454723767630012617728322212214545375994538568032390047650016172797469793815382284850119990497835196339826137816720339529314756471273638187096078785596963655185022766096971898603684360256437461947196231413399686129404037072131927041125940671154800628534452617977102423012967133800980037545385396000948751290751426518882812260390143016678882111881520408557601249880500407628463957375329413465578280330047118963433676312101955612456149383389288398178039461201172556403190889123855022363253365780173256783879684865992760355693760739061518985763892933167441363435653595938667763055098513555306456254329912120929364553073428869271827387070108492444092765174114756598210118859742747537904451720828353968415591642961081325192409326085584190671244807835794138305900557673853443623560732119134645603066142965063952384142738074900272665311334598720406789528761365795370606649457599287562625831631751806627071064326472783537468716529549815693131400064072696345277040457064281743796317625680113114907727165973378861629420706539853447368150784160340490974223806902137101850233476178373341853982108249434412802973895156131254710687202622478372196586864932786272758340909786178972433536803009355715196229041701913989995120534787544142272115739082632366283206806464679604148674837839350300053242647897884576996422909548773791648203414461287883291610575336612556936441061067919842212449589610261217717715284277351223311341981646768029336097166061138019012425620807218629946002012728458011493590634795186138517609532060108892365847410905593124083624243409791185174681313151797866410908239188681886021808399255816727408603897384483593850196756566840284484628872425401373406990525190867328463391965858385442411201419812144805194173014241006145115477685040255383509063384848190995356604560482468534322705139706119071718189760785927521550234683533080841614591202725891095993705959368474541417746469523676248050075018863069285909420674177220949396355969677639610654362414252009001023087601150457393404349215403429099423062318391488944501662886620541893338692504321640273729497847947433982524786845066091703151523128788111207791104780839726051601785600068509333037427824462005140076153364619588786064624563751212864631095363427132329732370165335044114431645233299489680546169485307076340089107802696190349551083967336623423900413913029098020924307507000150505841650163001350036250899025505276175457176107737157751380048469445880059265082167200224406367033076744713109754352027627255802277792320714018633141910880887019894139924141311640970952398427921484631333889810628963669609580361240401497159830532507840547655403031957912451383701306666184520668157655709790733582648424670299183411850241843636495835399857948532138060342579730362579744655876150411294611159460489352289637513965965067220500574422199612704708274733154586207569587949000001558831563800560220560008731260780962326742184592403388263955414654915753319817481517452703714931018618305677925600991813962337711546889488408261828735828897587943486876071387657845242099526711703192595691484405561417002496356306445671052798740888424902427101085043462609538534592455745088269173605330567275658574465822731185223245442584908755791068523290417303814417687352810573190477371251003650869090618635284975897587811289303015595106369623302651170016868098743260921048490912310826479156748555211196371349258046279286660349776198791266821895044947003262316245131062970983188381354088091660040621058247435515880853414882879521903414370251447202004372837482744803465841472518056431463255352169085917800414408666817573006841123581276029528995961068021925655282551838302694640629545502450842684648239658549375981214986168156736581712206250916364465419052327611773433808017980805320155053324188840331017305683182532796647151044613040330105552366448428608328160425342624453041230638355238820039661325767013140177431606646316267370104521516362440249447504241433205072704939996020785980387449505400090077076998633972311646672388193245373132443981283589432270691810757539545924411187883952583051832611960113496375764584368560612063905190979156079696298061587606289618202613100855689087783455024026872846604713930659734842653253076667200253565287002367292191878036368288630729861638695963533307453697126934101025654035870261136129143920881602579385172874238659339305841747701766886135045140727762919526413073082216219829498623706717381915337225629000567967163268229587463175830634617735296511154078960266808510972083312379974006567560709154689967376840597013763122631242004994308801120743101233209346749578793678321802729505706174750655104014577576083412903132743454247689227185375018574063619717504041630363346695909082192154016293618708111915917554859266358335551140127585620566059057551842386022211585556324301995626279756789231796725475575803021518397821377426720692775689912629148429909606438960914402028611737075418504707571475733837194651955717716326812435559427006527201092608563104199701929435452012229538091336187387510849989562287096847423324576615331083878275165690043580004185944417597590270181122826531193017956883639488067091848626400100119332080675131310059626072617026578619405447455663106956329740159948775090694626668991689570019518965461384658511778738192358701950346145222385052349723690792630309505786898727126580309932007480472070895859356966836966494313985779931364109015167638146722515041980242338248501881244824498534082505952088432588760517367516734049204723602363490723019916531035653941824533939356967012081767175972996386038864324034470887260336931636118020412648542447192564315738593434684060076426866894482319931596347750050883225068936631082992635135453151581254238461440930694392152115278861180411259913159943891969637368371120884267304853415059619368013012086756909598960185262244859914944253647374149591967192370472937994136854392501165266168537574589679628056680710616627722820567616988764073172970429660843610323862810973109594859998872531726265406568037065640383374069098594411905894730245887705263088821359912856062841364141232718352336123247639550077311368128321525836568710223322738287095090693300135107635460862981159986828490574840929087585087848661755035771494533764815912540306085788173477831414043770787092934505190304524498287632127380170066415889347219755153896407268030687289347971577717793503246592656653156466825321638670695471424651671401635672130131258184786509000153545974833359773773730081231413879166011497145983185513317462075435589632841565375745841138582789653049842968033853855413500680341546009361093739510343624187193012796259045353145247955385743203254180210488726115955548298715186546288574296173433377391991480728348823259562437234987645896473808542935698263781142459916797827243057253328638641365154044599745837066081981098480679880648523291546041750737169109344578715185779740908221308551218324466004795748035397038689414725714563706265128637375868672077574342891758298982858196098759977663930441600124101013485567997140959466201685420472960830244656728610665788205786841419850288742615428729321222574164812144357717010019454932769591139471372485182647132452237610198613473847540177618565214575648314207569299626345888595623449440548978804666266063977027425673792177251111897973200460388887463517684127484073907841832851689676861260482994236359996947513486167577850354355264053252975667499120309086077971984527457212785119623513975162304269245220347176208531127666608662179979952366757705204256897051119510168976933431918057916888458105696758535020245695016005636509543660464272137070758563271316793776640095837421764811863756852168472071946240999544163246242082307270387029498970362835399785359746791737859969816981293328581904054197740637115978385078855982007235824991485475591787865060421897578900858284834551954455816657793875823834843132449329075589904228036186443446614681563575035708686483464849418965026585326278847092480877573524350860871922650922727071572875317352559658115586070625862328169206311326107077767038056092183953329804647286154650973535778291797955216614929221641501089970961204051466529290426460584928088131926617622043145328085263912207976076627819716174162635757936410655145210395519406495893482657733602205472272936192481118588063086966430255441305283381062285566949719765742829674229195911612558669902083606050327913150569091782822921058466122766109451603482941547373050502183487845416880636922718880276277884400290945393777704438734173460471380537203185011120999754414471178595791783048741915517399627672714533112303268452760198629911765084831962297829597143038497608260454625186237629797873615061628640375599345729178935392651952723359763785384604158782968230739263093218527568940396370058565936648388335338650825055455127669153400808271571679495391996722242603354394363474386287803638053078481827454935357583379948094630763729878997356230547158231070094629636205791720601344602767747831863360299775186363491990620771934035596885802281517150452207075815571999120622946848256887519066732435756845862072411609902423301182412594627851679570548469266415778904384484332559458266941936140973331882369428306789273260483055924774432133913957256810988847895673400807432791665715995612410520410769600457569762590043996757657013445798741877980889136976324357613100163082491287916248325210933231181914274669724857338645076735668681053372910358798908302842145208358244961193112326852826046337024271178785964160301901130768667249948512193968020363114382174785514520040210846565086961463710705083107476742947853495598020509304208832442432460279097158856987636775114700567384803678614511692670736163561342490167683206474920214464478804331510835251617333413373763475053378263746668643715689111587924348837552007951472384647784623129136506372325899778709056626501887682768478293150661178466768981277585173090551554823943337520604048724098254288289244045140607517183823007445786883329715979232208126156557845911473831066819541323625734051298685181421131106400904320270530257173801729559212389514422950969374005854060920234726655218259965267539050196771109305946873625953367466825755335926887960062755773216136607411267683147951089967498611471556179752314529471188843032542722695180003685257969053133586345731689156227635864063271818400488246787343642319153224291820533227948737342613063802037286894051829807397084118089965568066355115838880123907243037856590719948690785087685726250446219646778771158253580837962029754318215628197896008323324560251123291276671327352408962173898589628925768190946425208726163963420432446197995836255086491399627732690974296801295748001075198321245656000863030172171297752408577825876078950689856662256477871038999315127813500999550766369906985526138131728510082822748439406675265317213837069722417183054623408394560772818098023087984096054265857962656216963573201011592258392491049327593269788510774964350264221035655009937053138268814531228159285126693644763817234910496482008515399400498637400182359099574274635199182026133104480963186120489507807077643074236993927143914133142165250038678940178295350738241167507108716977819151380497674387284812816056206225306766002177968645104271414756708100989507462375395191395246994800969998513066056609207271500394057763534448130891166741636304817691160698989885372148759306165558431102050539627093488419337880780871730273731941545558009948159389377998618740841030651802185378560839562115084933602807773332102210592276025124715399794928300766423299543818224673014401361203328127293704317814379166033411313618157116386648481810371999956318011293682074476277892185852569777289463469195624428539786196255378987588198781908016483384789834435442547761812537477427338921662213290362342860639578440286486040543493942313701821214468121232947787178299914132955910827098021392166349756685147170649044546450421774176008965571344020298409963690066947323958519848425592057607410947516111033008080464848272540685091794722949977695908964701325068552305337813482278056453627894136980882625430816954402607627774233867840627722660760755572018395518629675356432878626878398856664289771476667558529461866482102443455096639778439014114526101945317447614546060591568055592835059729121140085857134971487448623721001830510344695686622595511821439946602391065037037371272317348484298795095424892938957049802994646545328060318216476668321361096948495429921732518202052274346372030391635777791514112124305534325270640180223795104681785924124962233991795408097011222302382225505480269462163910455581039239684859279691786904415443412283048657140668010174709072674956856880472194216206882457315712221792512569774618226691959668309238094316580594599427335576858541690884369995039452662124427810870647411759129828782234001879775053057605516105307671980300899000880269713596925499767247312425349704614879463725025596526832496493854818879377195001803527935505459123507241717854984283260536434561566165797526036805914169701301075564826889069327601364538305651587626459786212596655160257519087875065031222721212002865513046459161331901188875779195106744817375782589546340496301153898211971576147483009539537466967418419030340231991166825922092573713312702557769112405489729787520536085095749150893533274223510057919665962698136999235264021913715687910156315928139295356179082325401890337614768846015746358719451600849837009758648813105035959540507351226709399634061914664219159675742210891513315746064594817406926343081359704223112374135291877917049295311079107332636763899169336580862775728871470916733526545583178255177482546541036506967601877796529078512687178883648505713053809659182355120443755341761118704863636417524439788935414513701281860855577404299209944066301315861579659475953116653412379237334703875468704360487635033163651956504763199722435527922244224239161211678909166710396444768004982518682146621570891771042134402789953206520948593173246923108099696315269147482952829813380944135095595977896771823184676032496335618048983925589990771837348953817426257699747471334469133413537848635477026837009848581525765473348940771434107104618228112617487084850806711781189547164865403186936592977897170646946966293874579337055759521062317026754382094862216359832236003030181014093628115994926353256389722922269992374608983104840511458990996799105249556616023951542870169206986143578228377447783331541719286007392079773300982921228898701745521825293280543035526454438330645114259923795498641173789722239680627205159243627797849189080337216815300649400838752216893891560959078255384998846309287265295564199002098475897666550074840573001269384090626439321211488888865552744527217289498015672878502881550518074757151196401214121553978639263033908097903928127034690671155653455096319064803927949420772208820582695162210154608761384587707014642316282040602849272417622773238277395999286245915694994568656679155059451171022294161004668515008017987334965831484050614183503991120782603232580763260160761094353820706039217600130924495428069689427502276594451145884273820823087476543612295085737560589555099495527258494168274554508942621655060219231574865188220507144346604258874673195283948675092294636224347615280927744351659695625857396870896552103862856602991767655825391240673268969543575442911860912184471082432685004198447964976303990753889670243596154707257314691361018660469469323909528317732148777817168909103630958351955920615689090703518702168329899287340151595742272469712763765262572668651932372765288113706406660160873822053125417139781093470962455321031675625933591671280628909356708126154965285087584257387537866900575858536330514179605133278829258031368874921444273908474370960107568193934692537823482289002291729735619146434352863204923519669944911057307772457207511344392459073607985738852971659999987683616335031127888225178345774608420018565599944380751961990809855753734641703461751880286077654545149434145583995723458185216376793580217137536746254758905679345649200418579272746156029828566093227275147097114300098433428614441936150636445021546911323834286811655334091980224225136846537242171118147256769928648465511873746355621350892417934825587101005946782768186443309799818400084058042778802081821124572214497581653290431699465779870205012866416083283838228937246273812636751573154525960841434533851286374193575245920216129782784202623253980941082315912929023601107848219760093919277243308294174704117039907129759211763057768051940287525988446984941113407151976205495473484617676337448628717071189877531829858535727335721910923461313076866369266403214692987727420029070332688748581050130637552834443341077984628888107868771463180015196395201517720239153971901227439791454312211108543946312148709110130714046934755970049988355935762114068380096057293592323635928293997685650500603503074540255440740933272520280001067633026589760635454035755621372362880001410755565999744776759080563824692899170555060347677921522133627932440826663816997827079368347809015002744441176487207324184816163819670928438675367681407695070400616983511638805932313607817590317778950046741638320150123029532833390511319019718718711758090035591479304839181837235083637500341497360689923465032985563201796380657875717989931452465217625836996351383839816164260326008889313655804631495369625310205384614130174143823291548551051835390804996926596077813320812361847862491126740653134944913539077740428018990505208540681108896432353166611478259319643378684124388063798941934231596941956677123905907367914805391513825654140722649699573123136626185157154107071965277324272237460903071923092629623166893695698498342578136835262628607581564974250778330960021994486167685647866314193641976436949007707029364554263515198350854151282064095398784282926294907551731875674924744789780226985889245829879903797278685150868619194476135752308856058517960433471068066463289488144554216016779224019007172400434554655493789113916253455826103775290230846337298218622467015326052985199534024188589506692898226170445637786458448253179664251769629626411460079310767981681218872146026007028547911116148982017607624440500929169178305196116258551150872795992794555983476837376386094182751713298667483251951661127249319460606054274024100615415485677829636835752161246834751134223072769219502085494401104307270456005634274124665278060150967029363034845076871117527022106674680286608609068287394464073656410696839468829334887784703644146143056232517067224049265426435732137193801343231998448335595288312666478633766348053751010760264357825334665949057169936702214569291918565857956369377225301832891624598765087299604276284299641112889247811925229538440248293550412145493000168649158802017606947284464816761173013118127268682096493656446982662565374737023377833797501320534113642732245737188723620894394741805607157400271601325684643905206195601461160675321048834644106806133725040700852916463389912927862399279420986418217243446482267367160368511216099198020401540480521660284926326429416129100240848841961048402792021556549689175489869791163517258118558032904705771701295577184911082963931817261526916400780537539333569340856735953159838631184097818469111891374302463044965216556544872329129275194302951968728218668601957504509637153575864605253650303374035120287446593029143028267223498666007222705334001280580509090307683195820633392396188512861538444559766915695811698054064577762870284611818453661612814823030441964526430903928941823610524817543362780387579078769731159703902554645201200551609898265778667861358645989155768509794660842005543223526084933208717584201432322639857008091128497780820825529264188818537174660898386800686743689356590867245233495648450388726037920752037011365839014341007882497205915969480694265640491706594042740338375616813312052613632183552806044757940044198016625156110443931303610281364229497924722223129262587750821340947958736111399133930020696160896488381858341438569727045852803868184142272445663387290028275608842883849153230419032318481664220274113987211398854843534623217486167942695427261373170899746881497024058659293199285921384301275600584558375988497002407221394486931949058787125669629045717422919835846917053373151417077050248491965823482846022084422105076717415616287746674540526376415965427363066727162508441944303302875564098744172848975024194835549587036414820498407145271007103114663419775974623583409665394411543706574307650882953451626727147842149308190241676348904791964763881478027674804630867719517618660888036478500090474215952381133138102790173750102995367707431886845936764706214712987865748588185183268511318919350664983119727320019077858221639125100800013653574231531591724887159319135276269502244253205687797382877502088008413659113800042673572621355579540263275420257971841867306386883366260241683591947894042544253045721256357527064694535851986164922328994849607904725108814559973977746699362177319177215297868262354551251794789672391509928255756170626687501591092534689078283784750937310974375419732044265000790681833623530515522971439727389736168865048385154648826734894620428480273549793572757563001924538709155945245896097852638069285217602300228111852906816020594855883313201464754455956906750766529824235683377263010621158838597564900795176307920679864022024833578950950595961051755423331617913320950213930412530990911079211750949115328706897334216085655248981454156359348001478990587303447158295530500701190746289643265366542191880338596905649499719960365679011805078749996604747407016517117960084712792793909599884917877242760091942348567362641361178055614788105449581233060730751194242371060416325078111386600446800310831317013762770446810459100712434952045052003154457567926232393002924276672697288077177580257542377024929931711945659791119828117186298136702996280945148647831705094867320038213713859674689416675419355158630984913129692313722770332125027827644230658118610122314659278483451458951141696659773311046644979460780658183413028759689551250546488731236210035619960795536101708359516642694981060326327837717830190916139178385082858578435066705876348065745579311966864304421166426911146299199175138959768081928633225744055127194549347334977506481720314712960416576978994411379590140126748224990542790424782053972218023392312988010570203376864176585186729832307450661839825663750190866298756303803316621509351415546274285973569906602396119267296070651755414790237486905978342573526697202629138481035535858693484864090384996320676671198388214263398806392659537333586432615677775516319545984320352878782864098239995325256506713693199282338740488678286904149999965496900482000140101908561019927433023292601122696975677410449197627960191016988429115213061598127699889539728967077660881732611837363562623959616255224550248354740228984655977165548003200092683146291648309608988649554341495082907486127718479995554318427740371218978723547486166508121070251356609326418038812335801300582063381667620473841322593982301208713305486826733370173791028802616805776872733609216251547014789068802133746970080111080020211394296659988771463333399152749098962289248237102976372430773081158325048499171426449499150269708017490649195005629316220515639497337288853232272834101443492391848458966627562327387327023113496601877372781066684901132752378959881878138702589230398139530562734773274844018835333194798483593350725677657197196078297958894419057920659412074544023770884903460971471711926331704452285564867914310727111039760576856068186841165090387529304271290104443356081949972243346460413292169358308020241843545995125183215319002430078032799202594920185716007928813628180479138880897005489732472618667828816984245635790226446951957110481514288940442783414042032981706459872429290146603728639431641652347507648435949611952674365634528854305824275841279892698856277804223914950261530006892913341812854018348270410452393526907247760788069430546428905737656530752080829545158271538122231913841093340007931729453906976554887849358073861226891296179100186857441261431976591856370431433127782602535222377949978174301694951618793664181631959012923586525596513378713217884212104426009143418513057604126064435122229322066749056612404138091476401168367307905210015095469152244944773256250607076223773233577922527316582182372846652916095546776056834176474036965996594703204118382517496940585658830518366099514342431130370023402853303063636601056592262657892321265499062306836315649101039835891772072278453752534846959874991163450639620170980754031238359963396821566186281659938064458036301954608749149035671109208442077982847475773837170122387713805750208832762183273519072408277457481963859122190772172096761307148027682512588819088862268036734496775440516561693937005321671616765836251845028420350009510022374429841296878841636529508061356379333023871513561843526391711974003258248946877008493901665627395858143435229500893754617273984860175940588261272645913667611555499548797725778264041897140893624981204328030154211186555481990012166952866776637071917445689135319369735517724819920140694575248353195990747607759904188335348757222091537254208193675995442600783699693233601390839489925316242260747111834644668966679510228044276394151766791497593222908080789539296566330698380171761696858494198438026294229217467355465799255580752993096271049123526204779415054947723910867992468485207097608013832267768723477976114626179790746694963870438121907448925266472581919938855279461584483057572489496561793198888455643519742161574628411770805734177176947222903954464194685161785042859543596594855974968186738933245158436656711899864986984254764905243185092865292261723366620890863975452482901058501909676808014300771799417874721813634545387466607096152064522019820939405379457454425742704419475851960982164178805029134558235240700852510542458753903884009776716425971224040701477364352594800553960725307222278109310328329106739917970347802646509514015336406061318200181331328788835461914955772372739342653704445434098405825603426632487795727018660973950160601713720658722165098328529962359848985074595297667872714225218022300643597305789243517963650906715428518368550338018238304189826577439141505554012986486490535095844890659883069951882736971174900770858319675395987509442759230883629120938037895709570562706203680450676241659145973135870976889087885596955436138942914712986400055455647592248435812313230419717174330008189404250520956858175775810500809115585182491247982791448855811420208944234849066637851059743324349029025226509133647869592258867492744731979856057227279100739182390804016699655673734603735922258920022012888527670196383019683231898048596251415741829957933520818389743577171490926196411671633471407638907133233281229796810377752722802513948968719581627081787542781621132164155520597736697176030327901315810821630140336375840385061027489911766071270509130829573182909476025952945427923150050180447039779134462700615977813003403543202010959977740819225267832251452428146124052508547159513877941755636621422380103886395198830051270120823357559298592791320223735216362118514261241888365526340469077969354278335181145286721132351698976068585444837606594325246068812101282396874184054491111677326440544406657053211049493913295779374013659891394541160062046075441324748831293084677584144735308757526294710494928481463069356642941637082619614347358032459487188208583024913713229349879349930577449372873478170882565117082211766336252672010348935864907366971759152588390072662733742693313230803915434239301038768895322060515680471971500154454972426540160229498135680910301823827150036646072129534960344100857347393136643610266160734547010422021504556647889143945716004846698915030094786750837484419507356611894599104402213984906124269515366037418970584326706638294736634533898933648015557587842358686227446536210605367065013198640998738349338132204793189685539273709540448238198924907075882095609842990838875774430588570924438390956452936298540156512090679177215136443613850937209141211774886322026725625852336303489078746545239655842244620098984687304910829248944211253222298623855755380250336191882576042679069028272085161531821162493854067373638995619686103158948905510309465405886220199093949735375390091676255069489886391373486409906898230481153596885700210361202717848606659484411194663524738834671034227174150622275760983737160006789871375719604696656581235442971058241483971010410148754344700758525304141578183332981639691923588727139539888237335603785833241372067172034273380892075506194568557979068057860771858653234986941164479726228999564474722186608319168034080942120561627070864962011622767722838400611510095211016006237865278973317613261437220361007320434938545824196567826542995939142048311825451488725765160376262137674397181941724915873516591597633807169887392069575829501271523697592623493074417587616579326355150172233560530242303533345939846048601770483823427930837302137888100466639961919986003203043144782618605203723293381979265104124431523785245150699827373306048799254734908377744366720581867271351178577607397672184146184050413111225644138660187594406731369122528759049003079087242239652339215654157724459508910171439691473696715426541474123359234533147868965152416545553091194768238928579643597239639738980867284827876099275242065994909499275915357549931584659424158724836000400958159269639015440297109972141945231219072936077999938163699555938630101816043844270262129728381950294461283547622424236150306837393862754202141384533983495866285634707139468592186100704732880493409820401029924384626100948508308472695914959262085062492046167852700886395165982952974101885456851908583611212049505462735548872637775094107598952678442656944528717951701484221397432097526493187369746293607958970557025213682067373427424574628346525865427715952969037300444950995079185296629540522699159359536625497190620686140139270721492401936366177273191902108043445729668685399731244110303616728752259092183962497593544984456555702001684002337432140461238323357427249757089691662628035990485630647364235728581943200772628422610019699541823147609629125037138957244687734857807724318238150539795915536043262647845409059499245242247043932177473715337221270034353447919107525172220589420364921401647370319436001330090116309295138286857566766465329842750264281788337678337525254577317909111785299792967474238619599456294340457257569480638345078649523550374428891814126155665911130160275671817249338752481865884668031233726130993441393560067018698201386702624341239864741752565718546527226761145715405134574285273619363286277224170650198484969467408236970640627851651656244920562504887653181637888056044674943989057115204932517226715125602461028445988450430550539985443952268817524014429973935227358630185522182958022434167069547458298002718823540703438706822855704710369065147831994793573211866476458525517934832218154980566444349720717288856584705689993302908981286462173648509354285841599417887900984184462922867428516118384907192380707710002137651215355009322129091075739718173645574890267809694629500717431737497993425935642143622749263173349860039478701777617187246230835707675509330322431236322830078023100634427207210431819119707655219303189606776796316021148852301373454345126319295153688057402296145478047595868732222378920044697414280282846668987994181001554593662732255482471628037282152853711615010466665248546423667497283422305261338564004575397097768561755665972361377707685384337685028038716790213064267723124573243108035821104868690368704745420500547820265977656098221612757894145631361703721210953637728932802993048090507674643188132609057590617604807235125310433765503394228163535478827321826032498665510465310869983759658657515354189137859224531573790512217756808171880013442631655603060485247176396259955103097407160837427895293207577691038585777653131430543521149459695653590619508273901467507846994630077993624212586784483316262006545913724163275102244913693622864661536705784315261743935849761021180425584919947779380148690167215253219412916596176862846238019665335368797866475715235922018901240095555263240781401486915022543807309178041551730658011916200203279882570309912969412860105452157058982906925497254962370224187680310027761286913334693393801776680407817233899393406209368876797933551059214316097201176770287824968825321204874821761173516495020175726257067244099869182108238203641591429674314171376590622394358413533983079018172794441915010205789187683426696565907306399579461598409574531728750305587174503222979847101781056657365063376405887244838077768060253023915254740038790761304107067659092146659174674311423899616455018718127811722218631767282864062777271112511028188508435495983489339437660950162837955763136255846266667422615424456800445442243023126401708681115019323380348006922842481684165525289817669543593714851467837863867638399221119168475479924675656832673192005169077947138691978136569620988894190579684149054713490257940145761383512443882783687524872505060859011841262923985031366893509943754153701172969438717140056994454097380601648322623627718473110832773788808341974175652743814088404995098711927908373068486109717883321541426841602305870350521964364588040031897686442502675360786053401882734743492504909062102358659512128298386830883151556367855552146614913681193708650428819325467347059813950557826650871362558677671610671675933079831658982961604130281366118686243027979156880346994974471771503557224185057589792272181133298695773117930376434744411684844385913547409902307132236439862682420624387682071986708969587287534583542904745468721322150275050251557238890479945544683213310628752836460562488394976148394806564729998316132865748496559121106102043453271367449081843717655894810389164812443938956655454485115274039830445124909563208499133276029923658271979803704196198330079046106131517145826669206951568213906569574400439765824825001897438487140968762883557904209595028256511908864934312608656644030435777741558153210114681757267164073129329090124011630501329076560749870136633808338499806477814255206053104271893642231025612722926073965240334708772646087889944719383326828425477040342294810046387385876449706463461387912631884372892706543751627016459978300011397607781380274826050248507330922980949210826182635966878070183455978914151986186168116762038541279047393946393124867149306916766666447861025710411741473972537555452787685254783046103668026999600927839822648195729035909487537271017426225834147801804413942216105828292409422849022867012007417717196261857895116102211070381947024723173884510823125687393060368953555715673412199938218236859141063799958720507734087044874040145227699571307473196615346709208327240294340950984392792250132324007482503820469029354922302893786386325126565009985163718295752371554762257384070689495130284898429655788739812825391734278703083163602410999125980664899560268597339319394006104501184919955783404930935101342915792079309423051292103198346563839225439132741207742442166053256685402713253768502050025555655592826639738173298950575035056943886154870702925331436632477622353416727853751777734657334586578635622943741125799107623796142196283795332542546650939153928495514906675918897604653400026148951820343922155642890193641773077563631684906556092161104435653631985615883327489867075841024334093078586186211960529039681326236570249030294169223912190810933205284091669340004553155234730205480941145411692273468889725901881715209155671961726519100511875191551453467352650309377850243642556628876438536699607524343934476534554459070352299324012055608407902845948644472705324640541327153218052355209598291968488403102775342088809645331503469307578117529679230936381523652492218503006050903310752798138126456849803684440550363128170482350088327059760568217465358077409143118927001728925977562684358399485306065328714965670963777486991899384264619159914821140682280741615012281252153860460227194383147059962243504452219418949497461064027978252661361928417492012573516716248950562233901373466884710952722887790376076047836713416348529570744166704876367791597517809299224525303460189130050458026087914780862300403675699216907302556902361507355016773228863107903815741894107314260663979179769328381766346076837022546588046287245965242316082355790109424199752518110396879173019888732440959864949809397494585747958743249259558186887813813405522145504580858028873754452999285584399639133873410393844000959280558849535334326192545389014569412489522137855547947619893561800937270388470982768344378865476668950203797832380307425114971862419592100048697762632003678793636198897951201664879298987086506850919032854758888219536638954567909333085336727943108563604048180991057253595056022140312987751326714200789853190722478055580100408718905384531138514857830884412096618162404208856650097881885473550169033937521090067931555071331158436523768448369977921183919502508922937178725768663915701212630480652035874136007981784751605442268507804101266682617359734590206891612960730049932039383213316389299763033075849129187961806889053843756159192093598946959447608482045404597779043800483865668593881547669658295895599260073057336798109608196044862807355546651678841257102323121801869948316102091966640959906943454786454297460857517798897858416747167607356939970322748491274406149963970289858602859170744666074415719278868444312658036267636909501678551687774091740645694059397246535812025652682877374835383430831253681627224215407912232382067574989084393534428831043807270223544889283841893403386614950801074225904833364936276104194677038594371573524444373357392773293449134338317874479310891491230579515468222678314573821552879882049807764346990518439674503485725936874379542371496794760126753823543941046654861189870431823083060300157151657127317042101274288819509805454753799213193599169097365959018489800855649093634354575755783803424953587790792852467511127221545024369625947604178672869762176837368182806100864284588484229242297775710020315952216783552388619384600709021618639276236405010503079014886670245800613348030292938744485774530970586998405017365153249798907915815058330838091862798336677335462503203382549095257856869958683579254973232185380203356879997325122268905056227682711886214583548790277006533772611838396844105530961812216788512439375753703512350312013586371448075254108748434966962417422393162616501366549859648227414854644567849500208161899618291905746993668188485744261744279583694120340514721460062592818208248619254070559374061021484953600229738569519962767360422599938469883154658659124715617945918387447241370976375580695517476912860336739926435598646538711087631295792510027131310578975504432955411431497893433786406261453719891335872029456427996142362502702659881793773334832343968037753617448334374350640069550954925996294130682893595393379228984411313766607930774091863117242811783531175907155816102222905802202507093859139763081333677670962489053125527685064829294403515492131207803230552044474173282265682354537938368782391182122623975673993690185623340673833156118029393808137381408463825455986839793313676441140870139275797213117065753125621257715456530842011496998364102114696903621225094123938210654511600680780732962034280085554500010838701825240082997861416204676050504030230144427665286184782020992340063419884242903336339360236376210809198445128530064611425378549279798997366467721451089271664233496912210513679362579409489169216187456564652755238236708686768165865721540312061005350966549925651008538519337522799821258526920012644194200369017922493378870490297687297180575556621607414878862910798190652821449104475625333528038199183227762089145607064069787070344166522792034974675368841150663397457794438136379349325072709379786890062269329436629224018641733930654456301263002840974579741172681036457161823575598561692348571808108228836128242762247948799010441147456702504601137426317894860934408007827299894042706904863263536039248777778632246548193367138384493421488037434923542454237051509476361784880127843486073485978731019744085817218803680238770757598964667842771116431857006145004156229247217973069117179736274858226451388628680323452141191268118697939368263473490410055541963891754227589633610909673170190147556596556253894245821344275398519807607716422983642211821480554962442546744607929677023459435965331313918094835485896714377611472012387654473131458010248684896686743133066874373400852423161415930630286561262529833136202930416477853436041398468030056228419030076878010221852890735181425206305055039794879874305279223820465202558829775353649995902475870833251310352140513973581006136599815965845923607229318220331655355732038963495636822220411542950949023866252453326028582468578329502303695810348568635167241117666068055559438777355643093521123101715908318901877851570904352663429177852255066828858348509729611802950507951421687417082918973508526599399542117325036198213104499802319668668389803555561418146640354637146052938292376464815865512963482974697761241549115676116117690595987368859221917135519167589767279646480894807771991431669673774395116567660352725773121677525613435909666690051106003720502555451856187237675531304856931187467049364435325648195412773144345876689704653842860309545003984583247001973003980477764327131544710454789502119086285100794003921324341072540053936630308989870908574889767792835482474193677094245256928227028343135528026990818145413171647933866481306044261909633976123794475966211057931528546517663835027164799856500375504704905248124292607363774148868975807453192367504842292226894556876195113094340121847938414930357881852119472414457733453075903919621502583885571715195742683013428341052207724476886320589191733264624007213908181654417038598951328668322435905097626369565288985011712690555659085099001775662934334219441812222265542700059103646792363178459999868162782668938482464809922764879350526413324233164225774683728472086346789911257661626224608369578218792396047156296787746339671949045654064689819549995185038454152395806849594677506999938835233114007708884024390129218856127486403418758895530407429929473074886595750179448618537419423119913340056284790479354627508670433940207987018100246026423026845957094781461521470039117596854434642806857822155877029288407100652541681210261922276522993311118686202266213430207694806714994214696978907308210037066207483468918452159276366029105217712652957572626338246605924683292375339552278994941366447949562722809489776031783423784805089245770152146818851945532005367426001886732249526267431905488962318932255155976427982392142828951184586500037004028208328458738633212047604588461895309511632974527506974849705373571141636517660607165457893724960819208919848350965317041786906688851372862735914936603675031407834685592524010088125059281318384239090004477984150663981909139365894379793980750947518001417484740423143043591874592501710393937873433134062097898238817351369929026119411845540935626372863326617363630529418467266847921041993740013533882826309299673887857068050785738614710905312092698854660033981890494389395677479407536820025307074563843286419906775234341625961416589987729364709720599132829985621665949314143077258853568140407805812823284878061391208673253940154918686472359621236281774944196729640263775691888902197307819596089701222942227617086606716473684090824669461225746388040195315421327669514155329705367017799773944228170065431108103350362532035702527626790871786209160387881358053828814186106966108512380946749042344906339714839115156070839985201247138128098262213419515718423020895968498389180231508407614499725461046955284077499258109867602116734763491570697153952349471576438679531493624383919407569144187343597585579275853769265043022165604224974168528216418418622924804744999105367105491976534521706482428569079764664998599456990585376077335014998488627752701959847849065208898823103767815080933830399079604535877831822008405337265624261361375512946837371468445503470651184259989476653621972181751635755459915343025797968347785600274445349291864774498883255202760674571395533718762799354615512758681766805015952737401534393628438022407838507383127479080628156829320093580449134268576812934275957179693549485644384303720609462656856154197104286622722269781503829840559452568605219410252372170793762053183947181247729509654653345809401343292550636520031539539576961658661055572860066615939689701753547468231699836947279877658888909843273610099009486799077537866932189560034589627746173352399454142086312833348298887027121154293462599293129756364156907242413400424171205201911605676259229316510908035681659609082653974679903625104420113233731728290667870438322482750711078124220908664674846905604249725206941096205409801144455604161916013001126178656515888373594809523286504500341391539721112699171112639242562792312020756633999952933056754920789718530541105224275532027701358723655349972986680133588882695944998985960093530106448462430654079409997336665005027048692740358428365856908727377060034508317263134668366165367358321836538644045371505919373851665420624793799369849455434324483204788758591481704882889244566634925189230176976482196883282661253416104101131221840389075413595709043691986985658029068015224708212131349234060775818299491774277637674643382868478133055998319258932096234041553026976831464336037434358173402631651680856925174936912085145957213358381135121948053045537599338357052779150642537260500923449382314702672486359840603179141928372958528176204282609014778112882337572799328865404267384715991410065192453250937845239998974483274389917094122187422447314184873067136547612347338204571883762016904714680278291850166399220772282044961497953263814385566453586632199052739548109531591737996147465629893903717775357181003891235447273328126490590202429479405185337830268270421793600447096286291589233878208819838357624046358363089625686165831931537980019061282315564170345294408063269205880148244062605154501103726361352194452254522466586270552023715504098522067149175647256049994695623377348006412645207906093094750702125328312293021716016584266429703135875219878500006976000907675001402793773553326132183745246985807682377314113286913867210913000432707604217316689077747376958658876249301197040011906643364003359366913027352477856200491959484889975550916903624885034072794974807921894391407458744945619090850053309944031653451679412565620878544359087982260498360105817213048950071995570912479348326644549570423198074551682847817830948569922090103806032286102060160582949500174873474888257532959878373943107135005622027789382772824350050936587674337588501456463071265332640392170011128427092643237697664919066779794189084763639384506001556477534461240841192111522535945251572058534747028938182383643574473142835509729261455963043637357364811294599261262473079238264698722266459343950654868958507599184716128837705339106601015015876581166023235453800677072900854766850157751644839502225068817735540213212731003271578499209003242049919323383013730043869778244652989061165171581973193513878030377336826841611329733978688010102704470002543438704597712770190025960353065817576552187310801726808894923254251099173331958148223539693365478793221836825425415087150540641518031306522777848282623907307455524456123607195298472958466458759560972651764741439976591347402606813319236405504963169588022352407539341664298356436847424481718884861150332139802267715636732211245348817939230740889357494085773059083630828041569862685186368153109630222689773162648130202029915360702408694934139725017477464485549427746706746387608111728822549001659008554648284342503530499767441865475704614047941263500393840221861225811496788998925800017934984183207995540094388783287765037806212187411288439576780131557406934476997912549604790573832649237259596944085392179481622604195197056806350502477260257441497886202104261285275669629772023401492764351306108421981884622521095151978952285599992267315010761487917276654622132429004459570463559366658592711122178632530011146080468957166664037465662767193128153426483842695248150922947639989387823200135772994519776743433580561830612500875374369659852128343290314867265217252078351858880666448011059668166729486211629685797477926986117142617102181802845534284780750734487046694824718965278338536028745556780000273414988724067199283992596583506728586054158666992281231346008983436044577502830512389332355259517732646859531866985841307337629461834787267460811715203964417541544473578667541768395113611312092276548370746919456291181394828599184626209564859017890649472332435086767754770684778295229753177073968582524425150379232125033490056737900502584589081270215008632673859486452976769333709927814230510807579577462597169244127688371819673938728437652098388728890651738861594801323617260998927287894383382962227431143177720187727740395309394454360141987684476785149808410882565395260182636741927014419895152238347232766580512801900842546914426138511643459669220777436525709159140475834996905031630228930523213515143246052073800067213502356105516305720978382660843571903404432149921173174620560948093792742360974920338780099962192130726773842049706233845107980631695215138991471277790488248240385300005924016634624511312439356229541680378134988842339746632038798669119769050790649613968245241718586559859211079401906080176462788043796770056134263924407838063864688375359601695134532117215909615082366830833757332586445384926211849105992601302055609556838307134789291787131709733540839807510562105249942801852679871883090260158204651260322983658038489107264235469137266633800404012748383442425544547789863249813980952073960963932274576527914905535684071279142671324106025484123552382670238245742354593548306942511830426813541352375366907373412649810962552544008093848036777453529356375994401223465473040164947724297684595941012468627146263784904912857657113731559505424968994765129594637484651929959016095065059347445303404850746866573920408014614807882908013462386802932496826958160935776509656377221981505531559486350787608369981166561680834646892649545831310220960107181798322252862158870981969966084580443050018235307825571602306485054017105564821341438764475722909690537791943637246139079661676093414843174852775329430737773005064531998079868460830342954544567992524943448218296970008693648733257523896128370173300879125265132892159981302188283395104092635970041704392175394826343234496955437603681793675566514803397781930375573094721639941391049068491204464432710009315388088799852819152723841674526636577926959818933544140726663192495576811150391893558294431826342329606631418346516667876937496570084628165311900568425814891398316743475824858800385157560922048453257588518341078511124973367334569612557858302881725554998019895291006485245550372788379962196523119268470490222620501806690714320549198933745459652222526515575157046651037198083394615691997003790061949429276118080659214450239945235316018026272838256214627107082848223288538762842308783719797101163838850644929128564890152516009031409484762517577219044183916309400283207416197898363483993762012827511359511045979541736658964241449629466470580188824341960596518411118575864826473147231998787304778487347245619235782500223429006242015513840629689863676321414272810535464332544334407278375675156233196716903539644535054149276105234417326906757302185183624550150967501813980878356528127665698276175097301630824165414339167079755892966960560306611331704645751687798108754354387944423625863070507782873037647052118837701282763768077083130273421164112056174898483785566214576629449612154662375307105478253269343184825690430336888828180911613111128041488630945042005781597308141290546859536321086351180902161681628989791256415754545897525430149753820028409266208469599283634457181586608509572149291666407937881967280951646555398134510099325192809735027166089012736489512113667133304565278337112458026440492466844570378159067105506155449128285250688371284036710407531994248361188603425376387309723157955886874613248617215366812022181875862062223702792803274475974194814700779039328153061903953131139774877752601320456410431841985250844597542342168830928762039178429029278508740113869338518546134723115643518943176438527060158105199736109895203231420755396787686369093843516355851690167405399101208369989228214030050146251477716590811991351664360826658671430753390693229687363507772784967828167447179375544497093159726363592335658645822183685333818778132963536253911388755149304273408140570092939077060268921208169121860582967328209919649798859657230915136659050012050336244601793073810767023868934473606014969410584148113336195455263016272576212899435538473837708973372204475742723857887744305547786511973568645078587870535409295953765309172577182614964489093411033391738863294409567260774598995446534465160001459369586017941367499299362540559262627559051092094574597149734166313043050731743481676876864600891901426944428520234324505429320477558590539949282147881756993965873869418893508310248070910212806656669424220955182050053091453952605417274034091770521066739031751595049994748748165767505254987323224360535117391443924759418612093372854630751726993913250562612502826935959818466636285892407275400138629527609696201241773539058442250371912104980716607716228426545510662103222932605634513212626743395437529572250869642136976543730880424448476280842425316069211997333869066918691435550345305467598634882603825051415126193928003782283630871061183102967774076370473002846784139749355766264933528131268142558459798864230569346176062380141654891633943044285032277128731375086290449717539646063100074343547128299152036866444077589266173456717763752679641816700007034480114626148620082365484170925817100375046308243526693506755455104211361488952549771200648169019431669421115108045213301258647037391069630687545667440600260194420500912296846742952977339954954647077305464700672552945892127920487348898842017642013233681632293671456886063636905815267059483572032508377939538952510142357765434844477416737477084765608069774708134687435878853381306098491932849327862063017788828248055657937723242049955192282202183988769189166727679888880067291284768343051561959353772366278436302536489384010769308778101958218963468380962149317386716923519922892659320763863718633738518873430023950031061933840869376090899764453907960660193899943967863115919760531145233293490036339390726875247940933848167125792709897646441328390319496700404800958820796038030869406047676407358384617731859067646623928194550248863413319405667860860592045339463291046176358487461510219757663936810232903545114556724863388496936355749539961572297106901880966933305006312939307232815088276443675529225371022800261292443009589609638186043398904603649789136697927356512223140448856046347070829804363149115015910191291312603910364581537686999699420812064172024840099983446088204020520011968500459526239179252746285537361956067158867285056615750855351324420841465917592323334059785074010621992338047513383301563195872054127819908193916956023365009798674070497553572731377111640071830861744362351086443535131564871674680040856633501642960350258313647321034571030033659357240442201672125372758565949058851636968745163365128687089292165017763717114011858782901682674420741978373655117723475622567617674600376473532420774404146118784485963750038028962851852314175313164455172019639667090824153953470278922608213890812751396987992098529743242444455460416142554818769688824942175974022096357610306769783386974317616657045824988989834971848716950267800323563525498763106668683127697451056215502954739315881827804004555150371613814201268508936248560022454358758127615944195825626910887181030965738889899919840152050420762293917643338708882205652721719343473290078167217795000729424461086014530091619708038289230195160225751767537890140275031219968921163182854797454417603396632089787828788383141550941214617721556668813098874948590820123777813985635482222904366448057013284424828018552691660495822919050981405750611664166762182610003556287790521141099007469865904555945316167477795839609334067433636407287699365424925626029814037363386769144312147615414139181417596940434836938431593616168661048504537339690209894191915020988402139740517486109306271364639676763884663220154903019432588873987779020786805995763197802368458826342698928977288787043677458656337431451918906728712737952715540069268536551583975946999886758390956081783719925782935782906474468502674510343366007274901214806012827106898778410165824667059174789059546113657438006772064679046801527518090324661053715240623092213067476604831207656593941116650650078751236718971057233703204398154986574128674298324949152783348917580471726953039543536329293781905092165322968356448593822744817029901736685281082063404587870711253002432155870110129256378346627035882932601587134772050666362958424262819288271645792107872276439406152056283005119493467899026138339080610620403809177679452809961980415141220736035598648715189020892406962489077174918642808390752222893807740807669955140269059265426182237908978758944331359452650264949152144587243461881707353339084837297341655755958275113048725349712720948052377409289669836523800558055402194082215851965726407240191029143774064064450098538317397539991877684914518314436925672387379558863295662385354229657758538411150798461517993169251849920920880285648260128423238526723924923868060959435953164578245072159626505977553290387634287995335518061770978080655121136651216971029458640829810498613538711268489821009203307097010479461418864088208189317591650396175952442110364976753166586609766214069864609906670227205289261195818150489355419127699327441191846621110879728277631388429889433071088879454273335911239648680644473264792030701448385958817353552719030005149395064253042133276847278140600321003473072872572248357552386443451416837846205325485313715852733997567702914390009657608863733788040327591327082168351767519872522791089820961801579223670680153246904744297877383267061533725054806644592666794449705755591871407374705166474635061242474636293724082686190856304383582424511366066359176658558165601797923612650053225386419564716334393914914612876580208523966283875897324652533306583207462338643873376851122848127696031610357696834776880335945529503800126129416984528167478841643824414260535215344791041759834681477372725416923904629457081398343980576143478692503038862111730002539276839694624358854546220439657302934045296303470668815031164609071808906388964022704263432266530122432458239165378181113266270101029957721556702677180333209223423334776451793577949211526768338168801535938232384518875410655697962507996820980824619019681315407979088118472908590986922975809577738022085748477246858185623004135169034971487875939052470528858080295103048983024292288363789723281713460140010112176054989037921046190079590118439638434901019429472354674387786365993156685901634097302306058432140316511415587756797072107375738158097290528236512943401940116781457446311277637349971286533350948870497576649349931131217203893858496095156613623559356771747763088573468588173808118223537899737726581732421464734186398966039573797476082577170100374223372982327876280091320574949963638025303922546102060800686785685040858433507026713366772192973888513488595833827808077229710941002903980002844178442538909083462967421152555426877684393495268702064413939163993639405854488471783222188926985724165044007333451988273669804604469899650275557748730375862781661277797604286916063517428250894391870901254582321659838338348548979652609915001796725564151645161892727765655409633637774832201619817147188504851590056687618221456363162582028915158631121334779149096268953882717253648311528196299444547264282289333805497498875493140318963930562974092942802891847689405576271828080544484629614680363801428643955394707915508334981020913009697485880332150062120191824380849327921405992663272914218116758013111310784327024493825368098739311560606488066107444501715797478962813830568573490661379990817880638496135638885836181951943842856600176858197446847322585965839087608443368952350180728817827399630742908235160097470191138482456445764634359235292244744056282509699137510429347653931502401279192348428008771884987577622146294726920918901141023250386929598348253167905407766946025748046779184238987835320581294263757969703736212092172956504902505433312758286013706222541982923950630917497798966299873868829536316525822311763832652781678612207444716262811183564753248810413739864284978453203769663434839887928030568463675799473470512165983701433461801681878965248095799335138713075051364964840633098693631987094757071175307225541021025507070036613518607182728142718063579099878744057384971883818271547562183596145916792971935670510993579357030456608503035442362608557673574243794587006849165759765035415847645471676846616121690765733403061742197599776031464299817814306160068796692718189452074237419605160507537231770577363564848204788174624296242956157374580050679063505683513178166921506590755922659525183565341343680225332225320604366331541490034328179486368948823826808656793103178834230829403653848285187318959064122019060862723383674423870922868499369673999830227165183902839160588209602275102029673410753115168164838806614329392259142188667708011208546494011017024024312570802390727058318644236785811334062861986563244263936692505438942662445907519428137129667758113749122966035785976782198566921160878377581904025996667076977297676140483552972109215102051349184722064759856064015828430507392062941200372715031764583981191012923288278632901276281414353047931340858125558025706727059773386425274862067976576531288184293002593899020556122540449615300581497862908567238544409967013212819100295412492774169355373770375368836869181335449210939591927085031912115628451502043557391622774702169178534615532143850836948027372080662653829348116676917549307035718987417104589970474182840635705203075236646310610546871836537730012029397419544856919683845614142549194339034085242409794831576586945031938447401919014202682666792039108655553146399654145969429287776273999539471919369454927179036622656446704244347601346522116455038908992708817851387853371749320163936973246414623349430599268628033996980854798163556568841536450839599998856828077596874634154226398901581368168994685773159135857583268960834168080475485530106664669148279553202069908638327511127680706231327846269526961890593442306859985603564514033442330929311382382844360725790983078361203048727702177478507786619961244830559569782359526388157207544446640693988187598069722120517523901972693180707342739508134147056919617788146979982839654604012711705562143484133943514166671512578049156069011809401785203906049377439308529178663755217127544788214693694733546188709549512977451213903507454876250315493116592838786907701508521828886917745595093328281623683681447441184956756891684159693054625829592463279617742574158633523843669736179406439309524858291246010982610869962031766699995563219379008605902716856501813395693274948229715352276949046415142677751808244650270234372171348984700030968990073910724080849203444414859088510491049018458398095232817693873250916330757739633763168583744717521497751516621460977892306070355020243924044455455431748143939831592011970003121778675278958007874073128266923432252590382632811666882674796478094381872203735947669824383086690639445109394797356843137256325701873468639977191278424622182263232372959605629507052756074015815407416081537134017280553387040627756199407670515360455903905393282473754394136119818597347638921665280965665839406936472987938469010848573441874975303177674591387237185151820446240833764044970572352594834670367702437006557939737651827126323286547197720214471078463704890241565713071499358220676369863922158550873894303104973913248524229257356779858309196292548894992798319014065718619255579058397301989376012181804130644746262576403955203640843512051596651276493810129230908864114703951071932624096165883966584221493674614592453406697269086552273525462439204804325572907537790221953807329660082144625953332301488494884804606257046531245711751393512574730770810895905873756851638185176422644615643969832816967474616378419072277922135691204596199122167178750708869698985566877261389121153056185592867743829249818097553561123584114469903223920463503926530731884148790669899902728694746809886546268111476952508321010715642685515478798135570428601959063407537760759230434450748492526326087070235141059662405145689538185292211158716017915345504301948365507331499838129280518174121684556735465136486922498015931801302601183158035359104213113213113843153177432385205484688923889717822906556111955445352471477520368702242026243209741880985971922981371062632928584781138441485091816117652159620854708783939082185417637679089721699315671185911815751983791685079388702497510332501781483674869948062433377892663100378949261806050284624524037975964446282239082129499842546981064335995795267766225604284456778764846992018750327620331042525655005578453072772077922833621428618351368083794735779239210098591896834117766062709738601523752228328833776483336449640607656597853997784376277995045959442948199389548766613664393181467202877027337683354968760092070965249109704340668409023037286075508414207866480810596673694169337145236676018373726428867888984359945553829601485587928482800265015061359683978815368703123265137161651513943226985645782653420453808335115475790468564762777239152518328546440974048864291834801369947028531673922559274283817339930436916884975830118564838195114159087517132051104203914673911289629148197209148805379521264571673588115448294624928386965633446136826126276214323645622649743672984175023951111525858707079136466002982607548512259652731436210503135549199930044142698852627736476086577247905153509762747077895976704396175172625253939316873324010173099113419254797918004528504121237543107424089459541624914819980291506800972650053078488368788112128994635502240124020982782846107432622241763403345021345239607512096646710647931086445961165841307224495952888483446574475227163269560784121348940484752240964440027856681461223200307820658710060647695157343889537938559049568313936796106538063518772223024260886211149894978260583780668604154899736199481559727879107229375500262310130724370445122343712405479748036572260038624656427197222987015867313629472768278859239815146502956808131799654689498909434354791745429197464519773319102831111240420952293243405339558426978860830825754357560431329974096176005646651079765887829149987265321318777100455974734062982054315507054374189815422596397271953755138413899808262206516119973041958556332346698105848862006658913503376470465305320248109582837652480139844936473885939997573693435335169215832859291314036798891198127443063992521509383581070444177707166534257124481722397103248601530758391532201182199561785805343118200631640151479948610855747351560322152212202947358631029733024742009979735334104441012506810072312652207608155517196911537470147685194189732426709845001827003999756741849681355203622211964216836011922581686724770584384493701420609907511784482227341969278971030809075163346885780665910318672640511211877130675459131632105688682307611745396536374919509386347353288921237154985155519954477314279467596558824961315986609738431727219660709677896605683748177354261712442219023429144669567110267106590147473865296276007133152837285202938757536193669995409998358438663527345111330186382969999304497033178911835513341812600930109471426749865290405782260472212684583604584237627738939649146133186225925485250442731005863220851820357728156294844833409338220653832777695499010886665400797975611221594701537870310765031698631537063075316737579391733804564383163876536767130413588084510274196481987023091642714012340849784692615907991142621328442007278321431303564779871783310089884799369893447713765174528547056165069073726470959179282288908157116110717962053698830126918282381857509152269062132843684428034700508965343453797171003868898541042236412446831774042422202028614885025885376956385057189961112855307881277203146510296630373257601138603732101671541077327595669110912136148748775426823993254828736655938258304048282715393711019134881943905061628902272381106355966805242622474082485377375493330977370315017447569335558594655062173229664820542734442242712908188473329590112669904525134826057439761222738059419320980125663358053529364236259302883802984129895878540720389782320230485652033837073600951225173886470967659865376638480245804804817606201883935234722372733826789400243057676031424285027902374942207033493540147979263786743039157344869859036219719216288547831053483813268199860123134665710785279031016807971656085613352159769291503953344386999457989244476063858439654352098808948466201905436554052285458218350599313102765205922598676793895788675695674480999794710244619339848442786477325064972385163212815127659539324458921350338426310799261814171296130365706201139549570002698648785018582330982131905397851133898491463337026936380590521987320867369642781626803609444298396841068943451945539872598023529512205720382925481762101408356509585332498195415907079305076442275903939345943691344293024896442073800055818473145060896081953824663681056318549979838478698370884901297776893475373410676125921323059644776801665855990424755285479911895631207726931184220040716384336958328201053258433378133664681196745377516442445061947594498688551263557324256177580496805233868131971723614654916597302988036394372667183383841860361208516882235340397921451634264496376369039166064871442549458603583017600863316461112248908641512219782486884928912152591862261005346926537506764841385749413634716173855463845017086488829385171615716350731970498849827151236352287831390125420047276042827223537565767627368428010175340766054110706758933648686095709633687312594313001452340163126444378195325641658880042818868032375316109878297010949525377434853017841781767191433517725425585271809813504055663388504961378440976664212496464290978731441468431059447796468815199942080808558900264135222968901779867435895439178563452792810858755522561100967916036820265688253618562925818120348305115688110495265033394274865656817016878083474480862650358127009255376267661414960202051669360065987967651978325562418576170381101048834693436403864113935940218083801432461653435543893805565312813473882472865875030112989932827377847064996016839035668109069888019247668117482168531454413888263894327507264293206110472311125911854376679663311690144317606012687346157842847038562513396367796662853256865442350090730694868019526537371555341926698934706259000187406077048287981732561448524140577482374749669638962070411396058787055862003335796614834654128922888647203064173794860423065395889049484377845128695231779010253999513738850226577909028811445507463754701686085311747481473724825968892942712293523090856806950162580622038535388820251541157143710250158211788318555169885305264305623567834693177256724239294562433638843283900175719001679497642199259625173579043300577678774852429967813740635376052028760840750190471213212906652129533387518503398211181298561446781585536079312904506806989528990742753665764763082075813508187355666095444643167022441277496619267987155890440831895115612325673143174685444975855392218723382005472114068267357383566591211444854931616193691908716440504114794030308144332450373415025019265337808336483380323649401289899153930745329245198992316499901871283240504639130882241237584011013926238476047614067700213132868027801691356631213782580280799440830748740705114232554071394566810813638961304217308147977694126568328258166971133402752523324417470150808761543471610699508329005422111481223849800599182263485641581261176454512644136110644590603497367576951063531627648523818311841475550222929755971252531912946548502177562105350848600183722947821506961677311763464608507881711995053427292116844767582877202106905507958087197450322067981262841604530304579799750466789007809479968282812151467244778932482946148786688688674735301280515196383856946797716063989423037600851970645296925081249700253300166317648997903604929092155594595359347508322848615826081727600601446940216821023592354249024659693432109149752179307413685711132162513609602944664483494783094906728008654890236911371987732768230292175618185464733130446775160400727512849668169124929990473631542181969637327881176270133554323935298531925750178666949210843600118591364642235275847022460977376536877055531897336358569351151943419380671340977311080882260725133861955304795622821558621898067034412865863418854531028223327911021123059405582796045020680734782535923116685248734196130311056985250649692319062395947405771795958027570455459516241632248480651229105986429577055128617856701386314424513852993221163897138868845906782181396035820108685956609430661636586239990839194880100238770413226120791342721659544167902758086026880187494549254943669492392685019377795864873740552566444546128582177512407653078693309671462043833895942297075065666333386484657392494368387032612376603333333204827332023461690349062081793259416753765748043203629420102201209883332879645454322348085147247455564572284149799451001193543660450633692893176601281380409201510618429046628979132748072107765631713736205154041836260748929772221223465194572614095839588258190219738360195655881588890775164456958123636539832631770369829653855900645597900836050487342188528980237035766108290829121405183896456014119283002838001788671084515819855779148953410467745502457562084442230882995756853951566939510992934387569932127411810988021401727362667018321498063954588389736126805748977130793637087230784585746908367624301620583009572635071334340043625525449706929017741158423073220044549813094057843230473271559369447026036764921307345696823318414677284403025223606510951520674638240634370581095862995904300808482739760562442285510122035463797256678751748671560543549181169636830464415387816842100119525807403463726588472374938673075708194632755143923212089658392391816538390969129340787284412240898583212036697300143608582947280181627242335863027746951086416364447710713007176857524535485492024887849208543195238629477910244340464113420842134986221597395224332291808350900500163401341969468331789532906616330770919377178526278017424039245965528181892358714157525757807025697237628945672538636429676943839747840480539195774028103677447939801056900880643785241342578262595535097956187302324390959670209151320604316268207530845972254477675629455801995687756647212548887394902131263117756104592918481505544433635285867100325705262013671471778396984570657252876433038136183132509109230082681633548364016358516302766920138794199273114765216840880848030582052667694367857044578021300305975937770442908833349953569371989918146937588501059178815620730643890896368933433449750043486406702223153938231002741662784554040257784217314662340990890747212766241359037231665355807450399701007630305652379353928962173898618745233353608648002108867227832443833653559401977193921850465964791288825131732083470190667784599785427384450954469854151068260497384212820922443957840788268133605499735079861073638118888804749655970066602201630174806550675340833407070247177897443526671175872378280201217698696396592373401279816251155063970494425221799644707238186809801734089031779578003945941927556211312098157430241404051927847056648121398429049310531942015112682540984943441881897573563180385507994741102806166952087681503563392030657765835793555186665419526762410841850854835556763479442450418642912566376667592121805532596659147008673050691901846352657239138979734435995749036346901940989175874141665472948335173193327575040065358124436841622810006480040834872184899459480043264176524994321955467517397476400141480284660071681207571337612050283242660895307766601642396324520258612737336145230123863362339827076835501234106978190809611885004451064366082557829646041021989656553125850455597577647741691782262742937921028791891722726281118396465602968111206136070498874517649784519370437603772302683988380207374028016716197679295436958994615909561202783485149880578431583678015124288312629674073809662281645745180075254533296077519403008989599921327318997201718925626830025227691817583097463660979688838209540249932283788200366800331390947963305327025953790218029044274938665265188102185561833900135675890504521334177619218226167144117189358957653345435739581807383989786465759212594627009760095477037810395322178489367963720588260413398019993030338714582270570529927133683283372841697313288518028305598819972354314704243325912222034924960815678808026103159907843078839505080472546991859658137944546426281898984126791474720525881391077424929542726532236666009559492306573275403977599034950777806080169518992404788710506691029909120091207072053597592204776975270373849409454601902442046207393069061281504159556741003762284883977683431404031741703414466179946247963702471994855161206222288722781832498542398032858327294925490280911435820878898947276433338417676898921810139745670446114419212401529832111756638393236268803611877062583356015873691897094963452153439145681317762332907476364159435659710908744607781213984193487283296303932251671336546029986339006883943297222711259100372077498031224123935258879308914063298658932538718693576765010933244196240683763520334853346632822724074461185408925772871654309320952194162599201042636216769716960060946906076255168883443785655417750825417367437993308348526731075191290329489352493786450713395978423694582463900451780405927766894973836774455743532788411471521235658353617725796746246403042662208601864792503148605667016558040379901838244784121982274028682747745627165213993953227676211566696773019197398362598135894928058899493538107140198188150182767229470805858697140543318017877087989370278717909873047833275955330498137754007940085564752437670130575881255338486799132814690712021998031600719486574135688053321423333353339587369078835897646526725423030329341682226299938343082805687874748648356288651327685811456899137209120339487425324651754754624181164259488494433146086126977616889267941217946570447594427311512325565981883886799762264986932630299843790824773200734324913307622125605915717110780205428956434472479494437074359155500854194583723843195197520627139040934769059328382700834562531153506809048388919368880965179399748972770183732545031981881429611137426692737689288748033135017074048157278625542316852157224756999589833621841496387922619688509317857584065824166799019329253791373083001861182503459661226320917693189933545032327046741551514890620888100740163470168481897714979398533557646343415676834299198824283439430936864987363000755390034605704766729733279313303875468970821161137591202299877127691048828053669628744702513518673023257430810917419775197221810381100965651576302947298881798223164550699919226208786301838813818447083937738426182396615087027702167868496148602064362383225326184137307523350778982763640486068560127306816915124926116917724397673724144719043434304505463386621045522270893628131157498804904747580678033882857596112599333992505877593167149635491022367965128431429999012939084458891634037529371542630116905854331787425164156558062024280934255009698925810968204946083650831841815041195692684537425405509550449038482028551651566914757468773513766495557156410644899563458347238529218766162324164562093323993046597511409364658008322799521407089794863461000924335816921485977984284240334004143223886531626894175815073754249401968203531067794785483492137665717262083444710739526796320568209969447313830435113130640865745997498930992846398364406087744432220555557711502496017351665011683170595330472749107015997482347141041319117894119401631750685124697340602744046506216948211479724149120924460942773186013405584096172230049780916843611766754406315541975107176529763118071644206907105359071241063967450645499663219971789046856818383935047512563412834920600751171118582549958270389188135791614956632927568417285993162972621831495499613748846809795763560869299536422046768909311241093086739839489623860216390093527510497173972224877045484605896572191339313189368492429172764728163470770512628759181134964158596185435737255498456141997446142242947195938497840420256783192787277444233709825107826906130011516781039986328794445602622000616406818105466492319349589298911970380418689180654836319373719564012196153679199879175515771492909258948111528195030659224108851169694614192594247844688739004602825388487079294533096421817161286594016600753675848664388567607057180374658223570058016857207770371466589765023761971870302002953387468687748451053264754696907535386530480413772797319873278527891768738225451155129615973129211804582051562134871858107189558447074929246545817805746752835590399030455952960624065240139448602065446662682747929841808316436718238314872456739728111444922538276648871069543570617422454739291730080995926196803210293815620932253456274702189965683361862216548600569095369380455107520713354797398939959122386529059071388849112219563598694197605850154758897046629675913132065323254892093929460048704074349086527859811331126177047762467421056634566780905960089091674938251009605026141778784187949099092805750789713668406666215537349517179141685682066869485104534092785556740055560776617216796998512091736470037750978978574375290696634091016124890826708938083278626650839992992641982108604636409331197081424487482119781508009396409552681356650071099296787344271429179873575587539850113636297777619634159558341056686764775520228467583010461113575445711918120583717804936719062022958784906978574512084153213850625666914073829337081356116788896639023127315394611603445772784069051161347987043782371510759645668018135475096607060808758972698446107531812813216795485084250354149131948222066283808153582419874493038859480081319117812753336310003497594005779520884529487902029526018165333681869789474428635054904750570404336176925653901335405616414673699751037584046454233004552325879800089988033179538738199233606477182143154518007074184556988213934855517964619005098600773945867778610308975683375433571740397025207618513803352862424712091140207377968463705354437916732090230619522291557026979814173709209028017687744318705515884448279158700623101756480681136307450598538939433493384509551270617465339840681902912039685786468612248390079979271710477765677902358422322159807831784420278692513045120186126212391696358875793295752865393907112333151537966974364150149462401910654048382441725703847075915960702882378259293747670760275952612592960069719051784996675822869771575422788610846925206933705463528133104552197729960147564141348634811886723859158699603516831621750773508815412855303058367581235885645077991565377013398257634646240970941757011046640917787380268665445564368034799382060982228237022846067957846293476660933996130486126696423039654085631033608135452526931472346627202906215647616389293321944737466314361626685487230423231771211413692996903959927499667839417887868286872262851845022374841243924726426889275803977077688775502420501200913574429521964324045499170092544608389581776698569996666036336973179979713895949094485794527956112495632989599701680133647516652757679767424768248479004258896622136465834923910594798453121203424626699709888437703214776591922005289827555484571115146679255925970050838560497285763790521426465110099551590734815202959645183873544030084501464241355037160162951586014210332491756275398060820298535939828273398756210014756429246784557581943210373448329110001485818671578859791806154256063712959951507423226604869057670812013850799558980619299340065855540228885071286003721166660098134603964676899484027030375308021166974256000639166897929249436291744231416811451559629771747247805651839797574971628939542149468963549484742203179146001050037918786768162697818956634973211624052385808283289295066546732424031984887826517773992597622560687140218164227289450620865487824579346117230650791882931382992153099115429572266748197475432816220379755615825554845217979595260831159043884690275276746207509287784681924050132705949245872325273228009894958730016815625497397249470124497434316854403422884333718371161117486386166420650271823773251826965190915315828364266716074050928071086862841260222780690257401268749378533765409446198899849785567354977084935575920452733041270931602317781158685327314999096350940472001692869322340356342657323182047345042067721134585780412788406003831150709742042339040571594053283955838870520023107421210739497199362090434207692138506896873270533805439717730687847931391347637147315522124021383036702272302392854177260410235432704790849389746498542042472491665506580976138746413471916185155864561069641477149245054406182645274649870482874558057777704892165714849041963625830494642921817259093471845568946991253588887870255548645652322320915236594423560684992313134657709187733222522683568152142766586297606891522821008266779323271125424411507128242542383334653001624273793063597607828307142638897472271993944745240760236056606469633347784046436712880703325478134080754319842889351223582250013661400127018814210883645707984572540683651985614219631380785246718613208268203975941364441246736363918854787198155223910378759277331439960088535253077469675340385086684505271867811410874057645822146493350915632747107127669215088696641863859864697218507766448064020056960585080313076607690298222448759911771800839216836745406296306220825263063382729539312552484467810616081692309965371553434273187613858930081063462919588195611149051096264093035490725177994018779472853174937604825386093293766938685713098314386634841322536835446725043957446612621275890512221481268534385230846446560996487897466996341775704421416648038856140181808907312518353977959699349296211781485637958498343148991411402990534718682581221099019830590704852360835642507858616769574003830508478588046635777495181239055072071612966018525430298413615015544525888712169192655385989724966287842028156560971096107103584346539215736307194757569055300031562415131235136210849378319898117363429107072021298369747257938351091380792204532240355450277560383296012959251996915488912434740412453343896078158383308298637879971246319995624059909357604633272033327519261322154216324994387003263677832477204919169825463128907806270027774072073957511751415991003644437169756253829392677414469023781077000003814262006946550608191655117627448068661189023792674100591213958472882894285084635731787144909961101131363964936957211274135866923036100225255581257869913729429955167276396448653649860419468367955243415095511968813505193729697738064228450705772332284286972203354154617888556619548372400361191299706333269954186526328709622175481757164988871019814748486679945796377788817263005687863344603562586683047990209810932068483348145447361439352517404388891684051454840498413311600056700328193905601239263974770145366479881584829651633965547070902476161960241088548802420101557813466263197757860682490947334600151230938408874703889494727346510046325063794897197695544370079688674564177027527166622265030180035873153277321581294352824887673702185530105723500381597974703698747142662989007632405777462170469029051179447826296056570867740566535895009618941085469371158706705308667494940076389305134133767789654657076629551686918290879008291094048002953478611111104236808416763872778574027412890859023194227538784580295208871117874980010158149895599977426683079808741614381152886270436209592532884772505596906199857215995962244843743736878773118735745475270168640048372333488157845128024610781864078841819364396131525771629969978824682355862643152368542149263723734333467732976313634159816923019604216067349520662039589998043183134679041098216395274896721294832087479443488352432452172966579444479108089482581350984312568821423136296776076799723340185007958305669973073614880641024511794790443529541417025933333972521647612575021222509159716658885098080653848135508017516467204104077823290589176043480527260574619525557862328308526600851892277255524663569555420576889156457224386110837917062783143282941359364126589198347567803266374220557293098957195552190507553335104711926578499700765628410446695218262340632884778770874401033595017935909056807445366955170854318000269318916436815746819484874974414480330747093671606051439014048244637899052731606083812198051685146186933158175506993030001502078592999654308111782894509471401872302963942501186189408503398257015479691495557989432293723048762452470482856906364463400757853085034694107585585303388153106978053846115895162831966448738495124907130148103522861101089113583288166096449801800819119358005949364246748364322903247010223216729381322207061368702132791957449011030390410174712052041429171068583044872314161742448434080411864960260610935641555250881458875441248330225005337425562686528583756867432085712282559784962084303105449979016040825737458609296615462273685502496675478419752629771999969415317919367567590293190288688655300249417375295852615518201832359896489806903820511739896446963142665180337526142717102440591776801958543106549063949991100590667650668662292963296755484745390281722928678704616767891746430208809039668949397916156353998944502425709718649689508016497302943336575126176089819535750281485464870621527777281022799691507422850710168692313313647519038259793043707506472200845039297260244459464176359203202421051307632216182066375454263446617189739891870841753678594568111994838241212317041413196284787885262938631701928937082810717941041166664324447842383335840323713578333006781477992194119027353437104404851814358819799248754060546798306381949051749649851096366918205987129527169613302937320544255330051679622286622332759656417228146655916688068284360774449253729812325516743121733083643925033664767970118768545081371985907947706343372467244545873841343234443342357373574932505406627055387988848939988377904801853272642843073737719565317349140349518607557232861558488751507419054916923479665868035135946851046126149263134847512652944073191667974584177416847001721461234155859100259238811916560929465273894164640836711993343878201378634293276168929562571138285677541538753504860300470872722559510320218587653386073683459724615038836728491945965394880444687517899238446780739417273782775233915934943641882382638857406599650476482540378838477657889294425883720917116714964496144227561654338943774681941556863046622898465488820450251588251622200877665831341971293790026056037979555789516634084800499352158653683034365529457437079048580306596217172513725856902584136094548881156291908816372796064419226170744434185991469673595140001395507922368908244920085154544140707333956651165106306264447371128388533280868372295648267017532779729803947025319761868527136395241818192957347105240095602693507917103355030370795591435723724824301252753286638882270363577474333247881109889027099125329107800556763055585866254286621592896036360354602226547700461671899099605169362897592974888416659879483518074349542427780827771253227860665003119528253650603391879240303086472058178642436040647977097438999332396608835017073213970345743744779496557672021934952873123854537034424169069655311677265610622060490875498835677373684875883440756216038752436047501847850189934535340072929602615082559229294001884285964920620209991549622314631885760813569400304274551524656776774611268454262578450420562187648701366006005200107127130631180480354116307814440393503320017608629472226615412644668406387764897060415749561117265370403661271545021280450973743882750899038348146588001567839203881458081398267129056017173248083498720421560850060020112283937245511555154984086694379913446040290762400708380395645684568834074776637035482362764341895369557425495965059648844690061498481923218032098174902089898310200630564789932956262992053757173199070232349208341263299199380719413059710398484524198876250344532439575366839170480927764708236293088628952447567620159342546769226685023922273437237809847307388803662214527673901292521490441925304251145937578732561316171932387880424235926395396327808690492280951938700787361810535703780885622567539075013787394279478221264960342000024096053992644065006913972704349449670469498267877171743251084690905381792517261083887121296727856947762404841125890497828480894257475625560428680970966933799012988438955618108222926725574594379742383989636789096460184235885051915246938945506733605630782049091620894566880918947664430803157368172968531021418084960914961410363657137963455405050355868122118395537175077581888562771792330873148366818065726778500467267747320460851405091291883902691383267907869843967161099412972677042952956996515899750319351745070604249857103288508180671612001371179731580552607095111912791163741788536612819500186193449407772551719993463551272489013740119392106812456771759686408920534032327555206634452899147640531999261190753690018722298147162566371284070058023961080981192510936697295031506727981570295765793730316673058689981673667055314325256483588440120972616958535565647455175664554828519194440758142330325276596648534431252965001061660263452166446636269360787819420376088176859272831137917499417731079657992030074888501784345465297813906166728245605521272987621914011632936124450763219104266827520797790520118304176571882852192529013240237108317221430198855942593464788009221263459376703339975017431615991134040318120362100764376914667809009416859562026587575163771126720459094193917041120856149527387314660026082643854482587657014874768205756259223676330543061908953334856232024974825521859940935469754002155585707482493985576429387499512734540449236411687226622543207252605632337645720200435030545708252222827292191525827220380582015999321665236939828442079431070851352533419826317479578349451919143910927114674693634543259012594639598868395862612628294462801116542311586983919543367236537421154666394517929738529772365638285668577700667619430718259526764412392141883095996748029457161552262161617211617785128409178535667600309757545691729374225997109658762808904797330635149269494822515316379160912308290874303621031595508191217330112582956755819602502203303100507598801901104697423115331505142685005620155352954925821470342005101820124402857897426411467909779462645680492742150255799331347922126115836174808220425704200206778361633665666354811773726987103120295654154664425036306952062751454391510013116156642114215410096374740519938450125507765257055712856933568744274701703799079794630995077421406563550427801296121315650634556044313722412265761369563519914101073350484393015641529642755394717868429245873134550347414176413450661345987036900733926655949517346254322231958607744673448998898551635938446556795796210206943216091339928931763064869280479261641080205404783367435688531607640291588195064143407843617140832806864464069901054044409468199087015774392484577521582039827889011495965098836994853943179500361898927077859004754193463467732024187702095101600378877043993020535520689311090030155081571529814395800316018791464067634854598971586329941186745422061356189092660198083241146997595169140734803553250657436679116370697356578427999205291691112509672044377063195155592369267073554201678958404828806088338896289200865044740962071074838765101117049375556327016442963721397835376461347427867505867494297767779166761416236921244454229840339493188222242976989935861796706338927944423432087474412574664277729682486306557867354479035019592884355653270616021875858598226353030431411004078484578548439135215870545286433363315147799187527706972647956499805032316390985360183237349427373271237236324810493537894851266304699531171654840378717276629003707437052075206023526459693586631169820581590849914034980861501076532676151830495903259032610232619357908895758301049311483771310111849586455424498652120192355088182652777827715334844884012495203483614445059414908814182654606399222954377913755469678641319523095736663974454604376782816692239978249557626040793742287143789289387208651797655766244680968571699477693242818629592258492450110177382649014814068658877526419129990259329426649654033986801263131951556566565960912220909302641733829389352543540667823670049168819287024262904699145714121990106377410240988167911784070794673681664875505284828624815141225166235685090027088316132721805153310209912526452739587063773403305410776442088110789050484380034847481666055762176730698947176306810881275562142077720145251444397735946318674449090660060993789647160865662046096124533790138272482158829784599524230962602940700193157099665206997015478278893804482089733496226632898356145343279334787011460848410135902261824887548449027731108718198602445498357467420238886779314194100114780567536083943876944254863967769277440049728225429306713527322282894671878078964751940480441748154022360500476695929625662095827038467688916462779626421237997726324257110447621862625546951423408883642398303562777434689588182437643414109932358318905995280748904961877222948897386494371002045122696138101994603884301012336754810231805469535432001029105314638117876780365107696405962234844079415616889105910211905299030352996060656873419493974625504026010048677910595161571425334946099240004847751820368789156326511535148711709458373644026295308191788439225119511315305277179583431637958841892105111115321906381989516125831171820229366547888442516656682038277717988062498741857098214546889726581649202598907931670353409905264006518960607484477419502003566984595863374858437833198397712166079065533995869908791515032813106115029102402400534144340129548714258128704266481120398693176363511899186181514950718758369324424954627860110728513816172032308617731783575009390826699135195522035734325271105340255825728146774517063890393928201047750434552282150749995082930652956941288456980852800249465071881679892872936783906906110967159289848643382186415691958807068684007073873337056081065761549799650508535783008263855236774580913205894684570714160144864290223078854396715827761787401121945062901393929240804170340675402110482088951522096379936640318304648319414249233419680632848308290989027217806492893021408303448816909828179851055589581103714018374593216507176474171081939680195689523992418153933027060129239412191957033849786289462301739839318189223461084268989238771566904062397863828810743207844495188263351780138600848282837974280863007931255120119557545362805588368007731572877944245571854995548345288210062991912043345050997224497769670289173755795751688724364094315946181830264628618873369351265028288451416070378944523968529897535586189310515371760625771905011549471252898707775563195763129842987123213304095769708916170905704901031095445243377317681255692970430680587506303753486690009898410110479285734429068606153397257087405304899818387233665228642298860980783807704586927667001210217514803769492715773722228606962642261407557217464700826721248602241919341319326399596384345593061087508094439439243317045767073753637369542079027875408330695277837444392496053777333212229605431119341766308971074215913753064813525102138695249361040065356321739123852266575840669219059963294087691946437941094453007998375782828778342721222315199631735613211703286840242227842777705614522688183748592592915994729174589811908953455047625434133443809515702563276986967158625925988054077829914141153034059460817130511055089879677237746711427130045911544267285228170416092335798869147863058293684852062054373236616672052343631769609411243246011804119807957131633085315500869212640015578657598769093488138453018762257971820709457687572328986465846379085084262162123944673625383681309011988392224219751558941665646154958696525117731630955583832605894722423505297244951153484087014874120351731929972477883637927832851093678851440136564178891672184827283863109413497601348215010077740604693147850293010747150360730284009738433101921360458783935299980491668186955975122436438261481617860202798670132228198185219437762056055541958420683288117179141323864249147111444993623056174327429779963285319058063809456221913429147583571788065609620329737649707005396755640855070215092103372456023684795167125991659251339500551487900060517873510491295934591093311711615766866281133509793406339036865637820205723702407710659244761272692018009376086203505385914202610887052162465796706951325530535617640405492581527935830860273609485519831391937086048663629404570183890328796856187246267791837233515786879512142828987510920452290269098200384148242855701620944724238216383784578905880596300246954360290641290983042945287096811741062348352711609978843412952155257162353584405921069898847389061617066570410494616666340309127795013072593589708642568202308987499055457884567970193102678166411203257008340934265527727507846875584263340386160685104872530963488569741925112862917805080531683114839141006565210946263051241971263840561560468868302226048953767172854093436270102386267357459391420770799044899149051947365993522269395094361562224183199445329725133025579518556491472025632734467297957342240723592210102644169479106257404134158947495265188602209587984913236541001879378889784084805460589840583519225856068565697543457111056151876782952274883284569864781248027703073876539282201244811223681275709587899314639259836237697695470294855614698772453168995845979260747029281960569820336702948619195389027297367718959191229354161574518737052295590120925084343426689118268603158819048917959646487799529994379930438424706980142757327804235983065867020642500753365516298275107618336971028849515427142408154916561234648574451056262779746348491646809390700263305971177146074224678454503581284879828897754246653007559324477000272141553871828442596492291055903484522082786878944827830678212817473873044191753831588252054354060621509460621605645685655809738613075983366070474830249526301839298244498286902918932293030045809164815693002865314276190188502813398894409687684842141769902597052556152246908771553053856401386121562492692406901412732986428648586350488645796319652952774302335964563130921134518781036999599486322481831964295493583152540779568484153619510278537893845537726678033890456349728366407026693307103821494576231269646174672218799866628827930573535606130451422698866987731327155508100967766959875789006390684849015210431162800759698454510710057585302129051551473844494193092288495057744794554413163954174247452052576708428887479479795633749026510737714152240882852337020666574344840243722874910513134394571571446627251877481201518160683883725567871748486866205172001152748429922381231144559036350230864658934858544932261541415865547227379456249434005608389181463441521585028197435777353920709036764695443827252612338135455812642022763551081741026743069867149751592436101674476206595422824057562286493511564593529181740367174160194247056247583579862738710280937381899012602102794795392340190235886026420827789173434189974340762956567237055493169468885656954840943995553235496033448528289900763324588533129461855934840411848915051309796603197847175903341478418189843924235225639941236884122564201612390361213345168803934419963750311472872215396436307323857415680307231603830234278411129693325233468732016161356728065212558947393658499016060039056123882617043357955523221396209424586485460627836377892143574983012166839632776244871285609516734746836027079827503760240988465860465139339403461170995158736406190060321311288135887493166667923621322858274788530801250200859590909698392852091469312118235959217719749997913215686863088860694625204962863355436328205591364461683793783550884080978956477318580420127411619009968172050292146599791029905595851723255594442446469871525744857076020283552442812023973598024387179001452967002316168784423145325903019240510435640449019230044542331603658490689770817544703854229242521862370591754815796231684006132055910888413742458226144204089887299245516482824170075820149976885686449665690565311731431890942547264445690825128089263986295737183690328267498128908270582351819498532755871747253168135606739326664171503324439526096796315141113664465163887958872468758639109228157450802319294425643102074674057973870260554003904016147452615835623610284935854512517517198023629513653284791321599493574179746239230175582759052085915402380965826975057791582157520236881592946903830892689609034380195935396729165873669743470839064367644597837037148971165444255633150172424369598499642521058016258230664665188506678614035150523093135584020382718224707461767269952150409520203683699786575978115276446403883557801527498764256642024278834988830396791951430714308812469452376977878223864252338093871527804492554846605971577742742300936844370705568968662406064628055139084368693261699373735419420652294838597099798706950755093726105349461958998553335774209414666717506569526120976985282838228216501311739552489565183298616786689983579122644982028866423423422383926254870164293850463975129991814598768972932401247226289310547714516852338592684138726629999718399492182636936231985969088832070545059868002596032548204882077627333592467489535362139503293137487858043400019214657124300438409611197201939935016023184922487872335219361871283765668653481665116441420761284630219538707598900703070363689260313748616196067448450627920375905783534384051480908181030243711849524652675721630200004104246104999340100121096299098100326940489749892765552001376969455526736825346812558491713346161669494414307179337432955267253342227843599629510681101523399278572535350242655684083084957414250891788197323598886815469421703976832947570563085043443574884704683364951873996242413707077223831669126458556565827286258203321926575635885602270050954631101981539335527313122868884983224862261186910463461028878888008752592051973489014233189428463388981021192786764186098821819733631698188833863917871774855990821501926912304533885110953252535069092466960233710348115194950246761730639499104279583210260917760417092365442079010293098404425852834542299381136124995766604691817560970983222942386109353617483479024980040900026802066637616686681046072582313157409779970379753923212788212260873110257115312906345133360847807569454030200865120034037769764725400568941219219120104252347553707775967772734326017657690788831858508080943524079706970555678482698181451373261998536185022410914660990571376411783170757168865840800311369812866221562344250692696825879451796621867418481221573338292521242196737031905435073748439634359920566781600199006908590354957379039160670199475337362794865997134036694686802184407682861159296859040477993879926367465377204920252641403789741759140453334446651142350009214463758474835790493347961622472503572043134317403990244585239871767102762494235445027236493739347309090980322086482841876437655813141427744658354035274801242574451200065116880224578810707634642915681002904869812384661443525723015160142980946827898656730980415948739834889321853810442651146541156753053487646270680233614012615513424742972985914076509247426849886371036303409905207017951473392504991661755798529046081943967127749450008221276274467332202650544076176456197487123600182243618482016905642756641059838767486711660913043317803272053174069569209363252422092744199270194626544373586380704218711043995566333688164710535022213450759121213303336005675891385325912069291517776002587366588109558981291797543446469963429430637058244413771611154302611501704672145904286748716836958380430335910098363226962800380218941051602085935616324686149183067630736664047012088639425343438833431024304387224079555652529552957872369479611942489336184500858405967186207107621534009072954554784048855759906244864149536417420617045637185097530420693306577624275030225047705481409128361103777632608361213146662635965456584595087632206745383190700423093585700888303448632376566960883773164271963632794488103924093625054449488492072693833288391374787351100832724207781327960049147682444390291939688386749404296693727540138378523308069734166202889992687914631432042015295925838626542456368401025608192029434277379862902303620553297753600834694341850117243004870752301737794062143655745130105233873484347053511750736369767287182388757896884387210218652458197373120740818847783706350168541559951584693861969164205808852072376161193228993503072399240670763871710707871362323579185087939562544008193882951674490701679529022763828782682196935790431661228965917730745205019679637655837974040221618957841655269947595853118531491352706019597586573969582913055604765064856060829333228685024759889933417383601554294234773421968844268475490535944997215894058689002747411601719418425983066148146993913246204581521570897856159502619886996556122936050667220056729391598185681950136397512348909892729245447706091475071791174228809735698859362324327106873618404000887895471764293244383556124276115537473860929838310345393118576285303797980051365910205660872696457147978249021038896537556390375754156078952103829135661514324318428801741402773943076192076343578752240699799991219048281911288537183943737462062996431407092080955349482427924067279109770306720547017660942948773120812218249490372439628539755663568214468732634168293401818660628506537550604257890841844277565982391806076928324490140066332763953418343131369056587870623487458820086306541438190249248908633989406149687457881428448766728212656984515254065754261002735126836664986798620145946833576288594838471337266172221142824041600403403015490731490187987932950221699049451348584638332857901068518991592693664041781043656404184129832743131514930032538746671834451761549781215609666977852637493135505582354077511905560206058482155990113309771491506083947939067036334820839448871857810260805103099313701622930494675475400208256053146692252040163337744336224086182143720414709493987116903689285841442393107755875812861951188326526691834448823594464724486500231998594925857279809220163578528424615667282357278038722537208508228664695480731574262263287279882893401750922611559960963443588571325867861123790816791480726623630075773435432573551158144114765540744524617229669938022972771906370891804741568717878445103312562137914809956522206331479645840258096680157369288256345734736473082228855604540558937698743071406085504234240773650129728728158443773481359067180727390239341503872418010839988834861158041488926605405920464927140063484767522232116280886414701504727809685125176630591303200079346659059482825379096413011695574766961419941083543347334084490937268672869476147965633107545735818238548101050276498351165332945794319374591108392679268044560458181868944895143126539063320872636024715113631649218515026776138637010605761586781565666459590329596670401661400726151853432506317646679582462525342142604454064161800592015694403533488527224998121320149136988101183990760928426003044150132116693009146463162185206219131903268459854126487850675576640891109524360513276544533345369766091047269588975809030490218334108388811347455798467838822602605527539953067005147503616124059947785598700886774339329832913287212366047935573249023962813244321402785871906610943018584728979536145839367338559264190358804833617924362604580830457506658585980281117403513803994659328658711137820344242213121376575531775899099498853074040984787316604087842835770001446914607939447707061533727358853605501245926325085908200876142208742686697746743551252967769984849467591867518301102466279906402529588326119874737315448796461372779013518537936100718662881373196548407535312875326919249570199889631473952143780732025472157154615494978268001431076543519650407957984765033383483456326079813152738674163127560566296620879078645373921383443325585435723570202350278369095183766321725494261530792440361847000443052602836451843261031240741951452450678615728943669842836699529143434829392304490521075140140356273738914819740797115219213502400108934635018070424118116838819228385039043519990858571173558143627556288783431026722836984951883841875099463271875178956756747590103031273048810777258986165912839875064448736543733526412074873910312898330086628555341128543999489433357957588322745226995474054395609238877265352567201228835232983719927465465231643000973133304300102562809494359724585354919422869925626394300812007199582401375442048763757315605436141998069522618683678960941151725843740161183554043198887158731871512228119843509164357085462938722162954499900826393107109360110340820462364271716624637514149465842892233536114464461072342669263875555324498135241922487985963545761406048645701482367757388799466328509984797931036632776948324512943658519987080929775918333624667420786414626200823163219244306039608424276853154680596770631499312710223075191158685341303826329109084349819032700688183552438441431368812160564992450435281044460288880359857306220252282078782931209539301486399368841496141986035083274800896914421787336007712818317008959588905910635289478165208714361624000806277051338745781871121641308128357419749510983422813763127855983144664110536547513618337091609524606804133590371290475058329125788149706963197777685396528633396554852383696231449541091593861717258470533433157807484898925608367149678173249308720394631817421287100837745491847155903762909201015281850530423057332752866447474973963214668908478525617083705565147346929464632698484647308667055990467193829492324275256946615649693314098108050614439082035461009488470443878396130340705232596904718370953526108746710834385425845907194079975580870981500552589915944611792218314288461491482169762196669024797842369728938113682917623702963360833580844572391268680608625990292540849731572549972120563894511963736234437977472690119757150668314075125548532206910886061471779710022041649465190271720811671629849966624772448313909274504559692801131760729966136162066155577510266729111774281523923170283455806652392253397848550995962635749540703272044429616581511039277646181170754669414302496914455678498573710624588482077046586628261770830145858017116537943920130565422617405121722366969207079989925069493649337644908009323182202656397230984199088722373079092647155458817739034784147126476506384240265906095358802628805524300471353678081961430438201619305334565712530498584015247011730705788563244389008735574015323613726550547403362136562213909169505485279637256047113100121954710884812323626047605699198317952373996926350906637118469822461953094597601370943994282057099292565413980100456439716848892055841808756947856306488376741245182791946104832746942852444033222571448315410577046654887774528542673753464480404514238058350249585712967565722966682605234345786533041758964914315342338154398721238694684248003468775033665169496188392066868211046114205709798386573728488391516058694084398584848119171358574244402063252123434269796638554921733585158360698694276446721591998145633497928222094426199818056875637738494143496129442425743333579092605729429625904159027595141693303970123173179299356811463552643699699307614830663218876790016616679480956488839873444470649043019405690949350135743197574832103183893193272850960849102867728855825417336452817260076955279871310970796172053860796468738948926171672897722083263344814710939920556391464679535468680663866563454988818107215917774719110347620393907090673760491152008621986448490379221106574942480933472159644532923468125308792872726033760114322683754082379520526912942640108115294431904068710954927043238575317243834195485830835515176401638183878483048054562503839504113020536021673539996456186313826657035973744331591057232959653167322285917683505242904357831161661554495221646573001099398257772590872952256323549329145041359122271283471156727673675053217902166936648482756310335874613372873308838689807494536202294360033966936481125630085881685439519211917346487781516349789353899044315402672097064722298430368306293488387201559829467416628416304286294308004752040873671061972485556185035056406374357661732780938154477196876747854170284654019486445923149770256649853599082656600520428940158157352855668476575343663101968823591619117780797635252982359146900206067544459891161538347361735226509760583958383664710919570235661988756393946735630931333159692498890229469787095371451584460129203565589416992970593090531400887883557925979821406966596683729284970104478458009073051231423805932837219611527074416599692678336889437405097050171835802205964740686568724597521942000826046844931991456946986194828633722488999906552622545774019794659593807685001979988871922802258925195646480270040885736132958362641979907656308867752543686232125878587304226712865952417753423308399208497228938436593273895560450357891888566865488827126340339575503018805634459726341798775231862092072164362698242061188273000342682400369150825825136926351424316664733173758851492863185242551234299920291207693306887891531520350990776427695245842119221689214176120862428035607473372391001105445787562328614274255910800939644336895867033645305458448090417788223769157485116521160595067839208882469562511683457442781223073028295826853875485013559955440878554875391746592253484864675596272488415464201794012055897354956591959001087799670194325690438651483782984398482295615231688286164114581998363636041113867017697048764758508293162269781142693395484657475209962860425536004768400646915870087944126585354483837277250717256084435020198312907044201915948073209466250910978821729393994212768768237668246159116388955735495164897190834699412121167481093867643793109070400401758817438627961094934121756485658783880387060096631057250460067954133287486532047446705696606323836681176114436853558532886640157656136803382759844982734925564572483642660242109211573785364463135374632177203961514593974167397104991530449598257782853215541101468121611709423475797338740317376733635382866858196971189559532174997556351298837762293699682941056851996814223072772436709586571966565318569694344118857601977413430335267909805725641028696855456967975035806511060278029911083071709174284602978740399395468523331278217887230686170818238902916255569962091895628707411705700991760627675114436500322511106872890464347773967190776075738862717170026942202507421497365580575073355895753421876317730545732250165781966346608074506936311519257745775126851546917355585379346478157343477838100650868127156337929390090492066156565394401144515732473884720561046722291055780948717325502411218738595818006315255552056421722096450421005195227683711927341958015285837804104799718402833209670946481771536796240470072404977371379899181516910092884731925188932234258245101390270603799373940753713111391232092783507847091695922549047884488982143465665483318081254269855446329881669672134702018290188379162806371723184474577191052157185034401048755582038226575370894577344505300450282446401418106685994626799727222168149595232378751952963095504568859565502257278385411987492798357854699943560448182825976752992620560922969755880653157930636613961186237121774343129350774295614818616512788019203532613734325772987148013148059931482896812301658287116427180414180414865606939863649576416338387342821841491683559405851483525379064506144090964206978158617638976305468255568702644528286951458164110303962789339486112251578429133077593480184483679149666013760124948494722063487131242248517382453936918076821152493500682763664033555753760892363731658801065269806953184911002400200909507733882758026125211975416456750131976406449488139251716508538299832186369879745658681257802269934688651399996266928932855551030420944771753047199882466121735056353250543568990486567459089540383194948926979702159638043492174714099785802409315758865769031945379361855037351398475710545858729277789716966724420409021337761373861533175294179104872961533709320581146842549592493493825897772211331864751671331304529488594465789106153568317016854857876019837578477553307051044480947666899688105509725994228746713778403687090457512952204443683028940665593947789009889226668275352685214732377926158124889380063299488911754478216901089489802782575854498015008477891433698498540985248218211903749820413012970144771496571294555263435447703072138532786702514457483987894995724228084906539356980216510113824540685908136150764066111788057469583461464466979610190384293530794691128549032121347514063001121080552724999572874825243960965122202964313428324773213736288084568509551632582637543901589669070875187163171063596219213143027312534098657242187424514379838817632485872871037732268624110319965521363838064771871415286983939505697581791462465185708708932231387473748641820223371174220700309972372206621791436412480467907039020927161280199282197742280232044439095529385599058303605766572044556869841720421925261748181274256212976652317270644561963679551576726314328279887763552203236002449456645977887132293094634976835250662773804087676383398188163731186221192461296500489039421131581662550373365471007253108561949776957913746221732654303746161719971622137960870202133774045649988854042474240848227979588728716315808420184154263752784810317874290309931324678906949710133340389559098222060260455186576020462224117679501519182050635228140940279802185394735648083435438926327591847859478294389003160035264561442728330313429566748064274779219376890282328183162598280758915509045055689832565573522391263074164893331015290371783927173833314762630596818372608249621810355200560538620633850307296076363816554361447833404521224871110487060519197294929006403962062148806726657962149474356368978160251019215327543043838258972929596834729565686886828452091011229471800454753259693179459825346046854380898817873740779702966671194509252343547077610347140710146607995473022649621042838855185499175568244456133519985680471568464933301544509186450579063199419905272175769080156712955133541013493798592354075173105645353717934631734420414573258840344486919201785174510090788583768443666759150351452053289642113616082553595005443579685302194347033440699829736950837199231113466433123611809125067332700812481267985327833592465370947352033457038560932008515441079165865805572728813677424529232734137778631707465678770867073849919603938768965613191074180290046147956285251875818032548448558299813073033438409258940662719521679472768790917668850694312516504667183187224108169184957408317880072741012060778680533115120604922780641682162427024911737650979635470548230434800932122811958192320354734637472219993354432715535691474078216422108638873012494469322294481346067264501701334973667991927187196489530909274681047861118474785783690589883178902211027167902329565984979037607068971542723706415168639298712222870390973118339307429241925120457937549785864235642911778700226529790679481699873122741312871013422599844223787304518254350256375705085535785627249573968559187156444618811615891607980340508601924452863778540999752319742792412813241079187617310479804908428222067109354664590012593435770269488761419238524711003112279362649046431749858284705736630271660366144398615156876304035810750667564994674071005992566928514966413234698549759510916458763311452802750213139891535071231286884255264566095871607935989860516412168163975833831290728182968231992878857599756826879716160564869538481194270375083255976363296448091654520406186496439997455833158141912060898382180086262115249920766239657845187539223128006908902012485414895994964271583170544196299498181799625080149279948940303518700803389869842538282729085567256341238738541315909030409986435163727371811641451433374700660677247660215762548707638850327492814736817533446817507912839632050236445817686325307800184666013187602564325090697822243319143068987418767323769413866380101405577946175641138824331600208849348523452441341309892446562088763130548085549023358903505586008747702163463977604711784713482793026274713675372583382622859896511987252713091048612679343023223124796944056450139129949027060261233807727867612903383463096082710578241518334811287866560376328112205211376889368912511311721286037700274174869568875538484283163807319696626305483127614027660625133921248674862428522563222991338525152492281621113927462838385762677362901451557001682628468888693472999415129785805686887733925874596059198266484534278955580759380790258256668927095770844141838243254506286999045580213970441974933735068780095700627021721969418101758303400661830104703054879006177630388533946441864125350610013442313811332683671249728197004345627503226638942727619255879700871772607503909825196014716673713750451966116514517871215848979823191041573077499924596233802120657441332535730257367661777876560891902980161610885988261079634830181375542054350792687826255306823650498018173507479682175051958363688467929415179996117476057317751081366263565076704600963241356625799124975274927800044652004827569891345965333811949482006767689091434631657197368241187511318547632902802084254295443881312727534027926386212130863510929713791008899500142817844687407185486383282000036628223259338391856457874282592331361901184194648174835476957187768055636202671885751545819629538859609136814413741258134669199490842000583819236707615023553357167402671262258090168331013265715131335810457314860612752306582567147384497890057374831728140549874984613135748770445322792071042375197481613532275965411733939997987343234262687803113016397352462868507939411989232279341874177093831977751582322272574293785241840259122760644994610146198102118811537041994490692485830782966269709103946048419287247200429807876810927452274069353032970727606083264069251542177312553645118959734336585892737164551062880006285455066391404198857442105901691742985509970176383020724670972331359550039467212129198973576341898507992730632791469963715658512698959500857141325391058366246572800159999281719458395050285882347235853316251836166243547913187479539090579285581938007255691787581287865753684134546073119910919117334855620335995417850613805261355402902036779416362034309011099834042321469050069191503972034791079514984518770192147119278036898751283242347102266180003433230615847345218439175739322546643468289644359350261808704438497912161036381039567241470616074662405502844574765350103518143658909504293444380012618199361604044858540995883891513275650003718790124693773207179225298407041473987309195687340929237697293928663033281508203774525132372279219277042643741000437762671064623669597423157035630772326464274068117424863649697734098507893500977694643262453041524289472077300760514022909740870344985116601248375094939975420967556800031455984795964123866339432284449819497634374401058551693027057719788670505523450789641595449228196674789253819116857795121184410118872717065760513708108023232235874905827584263168266863632052682748939335852123572868562927758274925542763399375819417080485528505165230272798223988623755020782329199499446652185381016599965271340132493964241631267786821777558298729452936024048011543496590558948867834617476418905811548661484540906392280891689140879464399466561466371741709705079023461242803744950418462912499832843820036752343582798917820943852137633652959676369885708955251322129007844907002601346783179702919017018881170161410318777224308538252904629715463280005504241019413735268791305332114767959191157662548164074747536705294960769248431407055724796170666896834926133553189566831380620267439179353040237258715806749879774603840720771398925823218445369712223124809325644476121614335065330335373271892813881035964589642991614362722208871815636408531736213562012499512299815794054116753791607830180878743122894444134317969247422342343367308163998773210534867280025560626912816302296818428028297579882552880538478515211042748544525140459169928280767453469357757373563367967104328741737783013533029799217070787249755981565971931456789623613579939076032773320590276792205218374077591524461635059248816608325507296162382787962606738790296818010817779951280732875498342686212411546460863862091716315712175543891274530872958604798488977721433157933372074139767337749101857378085333531374225879642206529618781599702347090594757488534074415816575689901753648225543537115846749199224955202032919364443510275887118201175315429386072928500811241683648697418707449027717974940132021485377593916312399527267937300568097869838223628574627523543322660771340681435042941300447977458909943158145726948762094459695258309925986313447210316960361514306589818930461897389972985353076109104687343383252604018024725270699427203609224775457584924973684485790424839632019224588311623084604703054571160600688559911700198130993297509545732925555136903579263529117321056747972705783005006401616555187263472790496842740454963044319977709917498738942603678064757822259394412583579627975507124117303322518445378160338361735314735747407710058564950140011952608981014341124926972573958842046559104260549999760741004346820777558523910611153458857756483569136642741016493328611561368042375322894479807260750435009897664060485879067595761866890788947272158730166947124767107722837486809264861092989284809799444421480853779816463233585496970283272884082064296288094609546467248646819650534682578304023056582529646659165166383246737012705665614155122975224228924034921776836974087875573748707441417856382878357915273094228627609408562212657808508720998822769486476134622538263218062389164936818656852864873042799348709868371370513891736296323652397254299012099580947329814226342141043955658751461503764552950592629718384498092199289709787321579163815276392057806028754944565239701915960245171909378226294267020209051871127457804072209908977375900380346677751971449269853911653608851874401752512171899232420519413055408158970081959577752397367419023966801418763752042059922401206871817581545665152474322727109179620947683213326595254764161429247575547254382019257726021995879700366036163865857439778635247909349136031041972849428408686189370697487571722117535286370025582727720063909435942294761089066170264111168871483582070983921621948189901597286652479022700813167707522575099235254534568858874909159402466053694178281430569894431813763035741156233769187549114775588248128728719718712799817636811545077222788014418415369494256202004916664562524168467157549398693995369724955620083767759339101665869602417422472053864016740952592959507904103675838744803363162327094810149281544437663519824444234444694477386118983984680827228368280504554315603261905966684954600731352078247270297864745004293900457513668948460647086304674711880254775576115339863158563086278344758164727968861124983641382707604229371720126766376784259361330786344762424061408455672265667776832473504807348394389440143867959542632945884605389922608641812010266226216260972320516195948677703279174716049562953459471457090551131125261929465073054916016337814186889767364256319687484347072939233290876163377460446866246954033511247186617602169338198159894468774222051258781965624854167295840121179051496369107730944463313343984623959005779643541447379383349111099448237238344709550490888950018002757192550827333054632671919019735460048090428399464460952023693242616121398061008682538772795395622351091577334079976949138327324485239629309019573855488961272779706677170167184317621185412369792365158976633754772257853543516941121647916393217418843885748438384023274374075949532808874372865610737840441523844344175880115951338624893207248451427762511982572185859922915895524922659023581809888520365639962645250686485654971944904879436987286023899993865810643088696941175219977042005519713782887820939056547933531164707014498203382791810813178019077762092672489185512092017352536136312030246148093252712665563391049641398124018116649619570832203632272128301512717213989890679429329833514436485791144144991447138892034904779709152801928655109473583588161140120115216684858667213603000858384132764850325548039580218408394490453031968551771246908991506562555149029624519149571136806173188179347797364139847892817049737918856280398195967980169329674203544732604131371399571125358752367756944256847320334216235933506896696680210870076516718138942373760684375365625118943318018254573309821903593902260323522292774988266057374933580486944861687438985606009799056787298644752380956049610804941489819765323454604929372026827501947652151637701429571012636770366998163454610917016958538259600540215286882916977282611895542094255232982976406492616822836177696336046463403671839025254318774625246825083434747237825396846188354888548615518582249419593112098276280213920656107210374269391230760420773400638746280786314417113913605361234154657411240916141595819259879315027494233675849974922455515985536209462941288629666024690155984240755065649472737520707493776323585033934784617955318694460101213611596448075950904939938892856925877544872766398395939362321110354600844111433743305556794829101624548076678796365058595514281876182424437290096095827197044738451724600514344928390148737386087358558736213323063219354696952803967580598870077252152821737625506775467811717706994833566193758740312281511033983096931645190484206256455064116352703373106248174982864143275358114680054831334753819490191303211629202420819535148909823810566482058723062231261092062935134166352681790074986009685654593160686965413020270540774215439082246339300012576532949024241187280249550190342960809871110867329659171813450865165272439709675230799989153601932514953013555009964531593866989725070634861445205831824676728202392346109417879897790554156723258213222216412761631631872610744184781984552456940273600415239089571124349095144458665414596976744480957478541648624521365085235727289211949557527441788772641224184159360836482175179720911019057764804962304227374724837555074285839803697512547487717227028826935823142122062282027090976292918676236246634387953239085297418529282217086400164992785019309011821048796254653780788655957827729486722635778063970055849905078053922149758468276866058020540159695103363744848713652443288947292185639202496539326863006286391020868448525982324055265482513733292928797797799580759627213056816339722844259952926500026510171784505216052909778216574519850022847993544396973982679898692311356942920005270655535440164245695036119883495226841905889363092158284677139126022825266512491576056052463567944091474733633670121274457225834134284619471470002399070506775245676914059881045073332003659395493599292622998574476700294612029157060099397490733924806584503616739260583162824732959435973776546817950202909944341287352556792458056119178129519256167384624618332073984344942630051250402903930245457940268111274946820553009118058726876189425924685839315918816411533811868812912150581146205850134160184699690848623837062954178055164447020332998567777053608799940038384803400185304214632371229529985679278597934457667826663866726955859323593711429910956004903552037808547978553431683526000863106571064863335046273660261193313741369462525166089696107879710352495142062022126004563951301742310820003149283618223781524190954260116848574871826815299592658787745874390716544843066974333531701297255002539148442377956834805815538562066589478628462248857355143208306312551375838699271028864394519147483729256505550629432086622365545685693231450930845448132361418913506058357237078548519069169415425119377023460816024122778346579500753132462082491197786116906968897869982128613053004735298835503017754679287469472914335053124478822512220362786350844683328700275110089788604664859960227887770337681437979827165045152477192165563098126871221426047055125166418896128582462846773778789677748762451878789017560670020713274533380243249321756726256967849477976443742048137723729237453867743496745176225215653321511145725617023988212350923696061108564823832837644276509446793437797757088443241367485567365904700642374413758310941195361451310420064303170003399983189492930574649251064061102868464127916913305745751367330740674735083155591087078472770847963618646655658044251437277524769404061120387933190518087020355553076390292670483233291443859198463929908280200912578891931541243377370538090762441366012809271720882002668191686468641591368355830863057230970568526664940762580321160266572514995639525246005396829584146403610025592620783621103374324935498537431102610585693754995308149709500704458853139980240476940555086644725313327542478296942715474010033917515295957829351135094408326059996477024974835438981776616251238193842707681668049210318211110677061862244077594050766389050295730618501052565161253321518877179344694510115683796905139272226906217796997101099927857159389344815929029287020192892709681302624830627650616128883341459486324446024444084095599989903831919826753538565333780788346082537475838210634953477525769808458353244389624946706513600383946503700036122279595764332421532938298298505299390859629645279952942159329455708498164956402742841154117798777533169105636190445042222927477147171848278412904643351098268183640026907718268653354602410932247379659288294595245548159514149927308338850849859397158238084961165134906105557843892312084161306356981827615865620782012047662208827873007434789571105062704686750941132302637982384905208967467469490759620097855553177227622739969631573743550468568703871341209496804156368950278825327329990720108435889782358458013752182727203471222396297891397328369364119397541960817015953002034128761765832697458884020059789721069748316431518588369887001987473395874627435306101620811349924416784906675730486374623311469594314663121907284097182233192775648902585866174908710046520225935849789113709808230439854491752220262549806659488162616524445361238734634894998807907835385206683953273273961731850891490926664369658981461558920517850277828327144421451810882274133698308297472396496973918348025464160521912660420121712930194483078028855191114079362433884635044397198744551654878161056096131711804024030234225891240521741945288353935997466101659027155915103141997450833213023326720643670026942273291269817216174218573190114048147917340523184341395730078726419826459483981323289020387485172546692712273743936952650789205138959188727496292857548274467074698144327915980557405886603731708003655378433484965536671573078974870294229865096733359877224623897965721960294703775851166517916384909353080715670108334811986320849074745258497758939030832977763297294491337113801441325761430818552394535269930043795800096488546646620295949281725727042631324137725735256036923000123565397433338407697565372950915372309748853679381961003543025460908124630688632020080403150050586521868302410503142706840506025547479027187448718957337566856875481362334855845987658958503775258672865383098347248345617309054126395017536146016959048766973921755501861233088747623593314238361607318114829732918768135682203539559548809908651056133513239106059736461951926542574710001380701078875752424134762630477197352942736249918906816126494692884537691394998695707858333826603257401038574624036083227923810107771404551003082521460269742891970428087152002225361006054391767717997209089479977432248416353916199652174798805155131877472306056115605861872293446788875017946101534681087101353285239485258687038104214171282420848032456144463785387857969107886551562437223700064926437225375140954684174794156561339860370535556269335204254766152370005706140061661864583329374451668048843530375697665229570356339709382353030107450215109292650506309336411534222643287731933507063798207874856754748219948973524617094668039766470611590400367614903237987741113923165762436005334780677605058299606308306022261054725133823929143841262090665265993524542675449953494900748281155831499962762851705167740318145962735741905256852654173009966966139492493261095024649285863769410054614639980643600769455761985418053017754873279930449030875571280843169249224522565427122829035458049441247870650119026752383557917537665299935385774002016909146177568180673069691901358392704202583455768953674222746973641563452042038618637777799056822774000833554559664306972423751559099233158292932382578600847713075523141983675114646368738303611297707129486065876104947951436591358153379381955733842595896183653037977238438261935497346901033936084957273444306150426717548476938814152238647659802907052197001531307562994146367049292626988820209104109481306872696794913699321057128093915788098261776445407648091215028395220486255717954370673472964306678336612913787635808327144274021735896653100944022612896217992819978229350204413348684098477110802019456973440037285575014520103131218411382820078312454271101899962362011714484189497485957096084548262169330135539081747967296020046792530508403135105648086904741457250823281513172670817320149342140859745412843268983798805467873556884510936999737567390300296713590063338204870799445766116160801268365968572232446256813029964806313806163436067010365920526342616182618589289358391003804059943012013542423846629206819279196234330888423693356426703353877862731472943997564752968944913304311361052750469046173450313208149747557706112794318465765152095328307072529000836079028453114289189498147924557840541073011261713168422296970641516767990349616254860008815296403739778652485625104936240090876000883376438170028849866235469859069878028914131125407434663653252406126632938425402304740131944035530776674851693722193844535961808312772639591620868135930434756958981958061670431366886723391068933076411691526538442568629992988795942556086332293552792506633213064915003940186309431573092883576939533519107360369228429033031537830930685556072685459753905723355894369347640274502137893275944418488242944730507075042732529764739515265706040595717888097200506743784687038645970916672279367245106908337254133851992078303839570839717562368830724356869013411572255918017538434569033933698589678268629510706298702915242936275376736645103330830076263226750818016085280931275742917468343863165694146527014458294442385321577448911535628247616135504494055114260497803826575178532244167310136254916136582619156250204190196763426091859596571800449136181835950790251776633541567981304101518991383253374625644820866711547650083074188580496333404794328839097696505751254325556675216006859140939074518253199915812619507735605490630007663606143938723299565639594874447424886099884051267859106779837206457532948760535837561110502819872193018127482214967634542907437234284563889029874715060040313980398652239077116641476601423067252321637894489319832185092611397865206650309351088439136548280964750354783993081184169763708467592923743228576759897443334054546657297028704539174359354881847299479531324029901960415299984075213154248138906540998128855973647329187661728315916011284391716076875703837745424948577963975947167742697060696846145037910562592501902863176043922464380278123867077980766895266260612773103218057462345369323450231927982940339164066173266601804533616601173552895624943737154824616871060800424471916498322597821600841869792066784029908946973032949977824995916413926504831550926096414588435947183414279580552532363594402334817322519269387350768295575044066847772814760644574228699641573208125448861849632772327111333184541104578362287404892478722832042854394864795843719536234584340102225419884383302500687424740119504236720965865970623177191074623553608573650197337250809741401175256240880455689163015724842526479562527400997456937884515463232279596812685679055431374124388108689999418626384640924736341247709429759730141158601874235409385726363513607116559959999124006888692579562819936305073863054188922465723033642763779538041256435762948845612523084676149562598853518899114352852660089482179933792969880263080963929482237619981736681331817459797235776090245726835631050668252520771585874360756320983964434894452729270794793563350851237534423741859742973114172604470300841644317418825285399267770669283591802576359245303549251141464105215853343038278270948662823917457485242235181115388094144462448612223402524790510837522328365936779682521514424753134355697421241191462634711345482532168491621365123017563277367206779314949529678265892924090806004358191050787402116160046634812961847493194351431923346643392512361464292711530635917055539839597690592859996167065727850805315588058511782081273503404609537543844672454489650865297221252358077500699988375067359214868569739854849816921847082911965177654962644454525002635952658002540317995514791887986027998713735117327899052083017542173110198121502775136551421250421830800012924513871846892614710364620360822125615119448930457510936351936997378846846672933094736949986117877234380123455651740629874951103071618432561343751540622822994413056733758390340657286975951707149547062546204848868232621096792602698142097834058674608497669597357149277194487381005304449670746631475654854962650864224057549522346759369474043787607390942806103153563289525367813606409278505160725498917807946407627730881715657943963707571485928564050905125945773708209171875978203056448398557228744890552349554478448673736587278589218920984249091767109454437866622866855243294704482428478402735069120802410756679903277047245905268793077611405764779869381475752704191393427770931202739620520924683739527643527554735164925730976736397061026388667827439555174014529276694186815538155283137563555207754715555411228975297987596951830079618051705567610040981684670285985870825769824297210994708285009557716767162881542125949886757252010777184937893861744462365729632076139965313207653009778309750321599435566903567052440169735156116927005668259009449685473217633175237101899005749528608348303069806749970571341454827017574197500236424463105486886688557836271524516093240737666068829393651183971435302139078448334713367428829327502542144947740553643662798848656407051227336429811715097427089392561240256656552019846103226217605987190369980717984221110672286583022394864861089858541731675448197637777885839934787182781622632792768299298714451825842884519044674995658070453267613170372879678413700446615340561543790160530001878320849822123414167127023059850299981082505056314981899224178149027250937276100803071382290024970925674954406866037476804333742258724595420668539395230193814434254574108867477675440178584144780263930451371032317115766868898892083488386949205063317193857846549407805342181619890559709958673372365978756824746036920313424862239202758475916567465670304397241398656677051957396303810082539020716482450306044560449102506579857026981506807602038396622462981471324585951376796772869388775591058773889120433736448611046003362062035898949015654889591017120776299878657201558053104707761097541242802000333952412202627962347706535325382820179709701388325396956670377308370102383708712545539469148714584265009767792762323031995368146443823292069947074134266749532532842030914787450213990640755458173531491262930310556393555922314655700470300583138262615533266511920480224407262675261019927006859917524958905642195155354971985399583054392462757412676149633963322466232025478180040866476597569164119659826347000499827762698565672973166102858791587009574128209294476248205302529663217165558665972202147706982904917926184839352756328901691870943143495405132212262469239606638196822312345088271165821597947489816978537607749548005050232297279193868482642627013782737031610282955291760305334356857656679952734775096508533630607256170810131068532238813441345334882918693492141480629315571835560015392312324585438762048981208842336777840380753697429548261046720026117302302536075544942485032548568684508022451901478787711346791529950303837392940852606622764454239652944852679962030686365110588016148731158851996793255391656478961022901094482899309895458080593117810947441887364395546157229759134491004685055338244420371317554909945231844955570598969607179435017104604834528266221342190924442132848795749948861326033507623395800296548977057137842912581081105011626047813468609433890751306225754309981000386813659825095707850145975723003197893198828926267530722763074113900737096408216854129122247434935706602232332019755466370475213804314191952503504040580884156447492963047602075277907368949474592836101292136292284568229914752595144519939485425395870367676118491137847962417881920573780790859788656046148573211928098301844687842888968202578729363389345548844909879664726118578841070151535104441879557436655793067238805583026903330977173966794398758632538394579551561186816845546611528167106600154125275368988657073538995116027370090943089229127754233063811682298450949264926340571761639285844043754987412343551214212665587988901872858564292083519816741769480761512836071661192599530114867429794368461193754008409061259740577693799267146467437052899508719515704317472768657126759019174601918373630790485864586765487231970494016106552217020170841447230574212275364882291002920849883512923398470037276606438938299640830622624936732583405323926110972724532373311312562536691137820943155180249630734552577149141604843692926031452027329101657113111035993875207591752584210400450827481112150170733353216841553332371921403003290252378609797165326033145319890397479242858857232213992277949606636449683168449420021658406889911384467818697882758094897797624278906961600914439855663284881867557223268888952099728898204915088673546653061454219998014001377138023584494828585256687253192261914886153095783020259397153446421841804273319274117133161078149076099045323232452956895238325526883388394329126520687313816514079520933574170730527566482139725727290979230206825111793521050452698509619848163259953490804967232728298447206381496509530416047265831540125038606288928618607866601128669373798738410999240411738513114188753535714509556659768920706142376599428025339748139529935596031388541981297463176852034577565274192109057157262802909035225853094547444444372577742678320721779223929431694632101154169343306586714437507564976895063157354628890854588792240324609553939301343729673483552786504379631918285779316994093952746672151321392799682628891626034735909319906463978796339986074725804745334197814542723739058119202586577691241275850086602848673943915327134177632422753156562989705312746062294898801877593514203226422993079067611280815139047279529473661900986593781214006326986490278716901368190505348725349767647649152598292773126282416085966662805337303454316208792020219525683055142779794635078113794220445256377627400362031889008616598186884468751729136555622422324317405921757773839039837946008390803846280733807732105271450717612204179923250248136795184979902944885272714874042811458752111413500646608038374365941850773110183249529140102299277716831189716174437431236290196828225725227055986021594182413070526252451239301584601757695152388754604759328573131384111095716308286995201817301394575773500516399644434617260129231544587555758536787735521060555413786502445480925621755854914959449208159374856160703986644286385488514788261403844419285540981934399391232867728008947594664110565966033769638481637583140050782412586831321796999462303951664531787236741396260596861330928386480830849162792706193567869329192164697456471894668468774578563542748401620100848053604436435894452063917688894986603200932560193853097288971998344128578670895276403768540686307378035895493822289841414648298068513505366874531797010829166105082279941554639026256933618336930647346819351469463358431846733211908874622795106799229065939220117919589948154285556413894964793613812940343916863749478048533649838626438056162470011258781607034161449515445437729128251266408719537306417312688062646539948975761545096850375433699668495547383668181608778530988208789941725383697906624945521480444707229979743511857573542673455590308685970646127542418866439913797112249183720199952298730294626167704080056822702165483982837428934235403264218449060901530953813954454734477761937332273637716991175418179864615954997409780310499287735666337680015830774162375974823125125157897971476655431107337942743237709613882678550236588167420343568974052862966562181804541656476852211834091234276651442952126704466080955350663375990274427971916034692927740939368473012940451443160625210348918671684749574201125210020865598786411741653782963316995106755591666625164665818710238897308476021745027091909595825236051676760524239705177008549771292172057010951765222725254918394383744089968483699492233614702486915387421875221869282525032900149918360660236863680273756927845102192871771936425147210762733427394521493002904646870032025150879161447368162837447908303109256396929332215318339427520343880594933171417114848469715655056755480232378787964798250309071816613987198756199345990848821993361567300696816562788506056164753255100662665965398105411633588019840934330047473225506468444839790244720979981441154990223564052597682381035214444162361684922031467628040178102414406606656503053014838688586248668825200055035791844956646312998338797168254890758866187344829029981827356887367551238171682020543126635711213635277567159122058230964018574471687177007096484397498366180497284649385181379832988730103667223257670893378266968813495404111329988829854517538694302022112849757822109666917373699268059808349667543437778725097378303672521180866463019384163826108875215126945873876673544420424650475541039910761344775484050746037953743688590167328516437760581956663515594509958207709153182293753310030245943363489226177176912988591294042480313095829251117831851737431826767340947925181995426306615543907531565707240955448839990772530350090372514851999629330392071761307972508933274172350279030172769991383228514188915200454468078097046361934616633571601780444954192274344528475763478833545364324957494208905072080775969805313366261023864292419902925616380534413016937025589458607035874993849190047019142464151589081890379309839402451431782366152192499823561254216766515504377718441365061548849239365964256439208759927879698502364374105359243531375912490245567888622091350863638805102625567049427083939865758312041221586983788872668440880795517971897073745974562999832122856213512828770676489543833757204295113876342810283468238747768370773451098853726006456898056879382071827210935730839190597304045547783059385369684775687789077511064426483953341286758327752480288160076398278055875134558639400689547231590572421362960419176083707450840994882419902684266063422193511687763529915770262911679622550558269859332573716381479230065727773527427155479319997253094187487048618531667340926297729755095078838524462065115260756125356944154911270033653034249586558650474558781746974265956633756891581985153932099724241827299188993648016855602244149410111200003066372214782433252376815640855890006149376498932967796969569193345414928397415922304193178207186291987914563612532131392368341500853497899654770215838077795821663384485583413082086649760854966962165622394518075863752202670856060904061699200740920252904057680386804102193694282537808301939437772589664908869524944500637892271332684710345418053741043724881067042669436372787685170083306470490676364024985865742721138148616843630093195383502246944671624817791389400755079783571981737319268258491989600524947225697276732376193024106071958759492283204545114868122901611721524060598474620745990652463932938958418099086679432273454278422926991207939973942190814400442121825255614174374208623201120352586795522425352509709520928380925607334129467167545970866592878441282157253354996074772299596183560083555605119050682984297258366209053472093091541812823977716516568515762615109188626295095825206154071836951202645598181704445039031958950898754827085551546499270677817950524074084428218526056201524623307461917477037333845221290090419838899238257579782850141439457136206818711725354123588945675159550442531230078990321938232741495904519337472949631414999843425684904172333432331935290324110372528339412684079576874276171635915864604323633359221136114060441899326958342640540118544275836839476271807965965486587083940165049054475860380417261609291463864174417055057789604677969536373411675085450201643093293365851755063756608900330003742271226136584784704053984690325870370524145980346281592543903029552517907350699255097882979527472390206799963261971314135796849042110135533057541272770837139759024919328242838751998642180122164518675042761157053680004208378508347542372248456179329135594129325325761629785999317098704302000095645801848000036757822462852533226726462568604167002321397163379813989079356915801234997383916880575240755359588154424924736785214933531269205568406088378204177338643721130979446497839195498285367525792072373227334130863215838024424611514725223727452951616660486628978864170590258786565682661242353657144260130085089514695915991439524404903693645813243145376946570336817219151885203596680192736118318191428478312455901741347036076678119166118556421718573163758406813040517495236228843671437566033327447771373431307567558610579648596137191082794814386666507471964580412034253116790185424313209624284468567967064353365767604711826362385593634412279653576034101341245851952313614130086659756574280395029465986515911775548463761333249768396580491627565919165061300963330397295179195567751025453904688184045494628680282831776362797106679184226427054056166998727472245439774470117832096362254342868729819098287959808341289669077303065047482216203098700598375413154639665079626827427097378070801245273159661676441060284917334183815626116981151860479230982013445229915379900313715184543552954494723757817386692682102219111932887688472431910102743008697289914589563298841647475191705247426679769380717358841015497878107080429625485371658135447023281736884333036223071478448576256510137034581952122852619746034886296889854918563502226700064717659333096850817558337762866650074847215102645630465463046400793136652431538567375867107720537195286290254885181561604609189249468594753515756558737699492682481470800005651486705556285467257793850180841604568809258677516115062468672451660542989010573027216868940181085727897716336242377790032426712771021628612170712683927658462294191896038477491450250025539098897001078975580042265658823624560599259173572366847169311965387557119800043259781921746473883071712673574282963793400391879516103453570471518586852459557684446863748074701711416680860822905862870954321219007431855754378139253673865427420736075613529524115407942570894059520284286022661445983672034750236760199301584455073794182982502703840314750725589847857119443354709066893309032958875002691139041683372140592087474529479267470440503961671976701887331820033493466729391221132611561373760814888635462612650824455290077067563873946242338379170039227290050031756330509078025154770124826434419984299992101606740384506894217866929301149883113229082899966484908291185433022224479642798541087908345694730441413980280512861662661602706771470213841035652955220987078458460936062285380289141130340018641762526308882407263570799149148439204114096197003939794566054686008669281051427036318028755038689626611724136775783643090680350648056470208176209178857714889005645491474210415937720929964380890836821627757310818797461601591405412651570940698807202620020244893843019253451678222371407100611384460617733265756865795201477341407336514939337203596488051476060007824592582308680699504178436622318110242080607363155366490891378183119092230028797873756538625395202797546190782458497115137452743044145395344576282637542533463301130486084364256563050421806673755874411639244241497951091507164688125836515839900839178554993506629418364040383382720380855251091944371565624293101594909495610100783020658877583466836174846055675411283487576456328710597329249111108272286485765553945235828494255069938443679442088234876021546344920517127216542412899352811992200527960351227881391463878659704208108524241704996067816872538664314220662439924950877694460815637500846271867060091887931836444499161826811417611763792056526527486466263583779342699046064114089811930668405546646212030165968405345403434662783617308714481960791201303446926835042838651046027127980557832460232373405026838607452082828867461597418598032395765584525774172614243002275415443308558739276825101686628886471452956353505353955370384715925751484809458073554349388382729098654924349715649021503262751336714296033465336085864510139075380866310292157083943724435693779722035869814335149492996625396064877204382528555135264102216686823566182891942687475791845705530726978088606769586923715172931236841331851161034685019920355812129627314024620288739972505089471439110462836754063565506743483541451951778513224553098421133648303825362599104682269674201898351407252527548095113719404090295035039447123977322922229806634086923335799575732446102514221272493323322049198715014060788350166353256707063165935475992913774402319719806700572422968879242335108596595394565663334498955051432655213794191400550031429833364887178954256234573732667046440492929974967203752516430334243003036443531644405542313916363875129451353646530554924884139398928350359167502417027311326924054284986326561849449640827042956944399542132924400545022984740723907915232654826917710358661971247841892895795969453074157551313965500321166950317105147569305756758001127964499883657608231349134934949157169127120450984524493843047697787558668352229212908846308299595270019845736750792905497271030185095005304586064598479813109959806458420908227859565141582338193932621405444228352702211593426627886746943072955103985946488509750746757253105414123127007294468250703008382111965385275001388401407443710740122794104909676898917112015893869760066714509896035015741713854599157081747058009045385525901315421553075557190939237985199181484245471321999282764567685806202926437001080475765788150264646607998134834529212399011245820308072651060959296255735689421068671218895625527606533690166523353003349117212187124003578772812886867023009110424707911003297029860727101383496327165761578586683645020007655924213144179633766576310227280099127760978032820661172423197671729355489698977473555900158063553688553419207870826140629137182314438635710970858402254360792731240438653068579798672923764054490472068488268519172851720699405427729346704494105335681092091053290250295026410085377193156406929103023579222626951826454998134119182364421190273442904090969488922096777875580720130024372659356741401894642592628231708613523183911907254384097553970955388465162885090868941571256249643382765035874775596597026290448105805254462206167177519365737973336053561181771672775747235649911732018135115337407245210053529377943265919345577255867133562161370308296434514698793483782541562075496685264230468458384799933880189305483465740318827367766188504002389416816543767505434609822991241812477480087309572634592991753084067433153632070551755373618912442116381391944559585744984774758736647541483490054704740856823229270017732305163665303931287306139440698996528680684234917372354793749148336500991058853965251825279248595415775295452730257117900938294347658897085458768503181427757242043882988957380457657360464201078933740938927471828033857557775032234697724906537641404329391759296008414513288844837094032484903743855530414914690411285945581364097593566378090741751192411339359149316005431324637430969786931105920223194967209216899415692738255977103593427084150773131868236065056616760131800000705605370601978203695549975511109478595883045099382657687522451253803517644598898855576559930709206896133319034439167182389936828251897887000998403315121356395327137045398661660699112226108740515892260675896346350633585523438279560580197236531696923503955859830277732778084693557461047237661860213524396899798709198376745269021931322212666938290229306385782947982711879228843595545818219857148168678978178302561995482736641477402920948007472179899762050685981276316442841951273427278127787482986273337077010658651496673751188078704889835119885513918509952098564846195497157222548549050982122980268469557371981689825360245057421826793222935757989722795241210167475899821671359586702433712313081738207670878266454273936392651061161873122889449231519614166339511310413554686580846051873529115949248232003593710131461301647424966086390688792830354061728091804094723575130893945739436684177794534057614483413971545398991418822314397030456547147266361736171783067320724965961307399049803629781047703574839359992424790282568408554607383103522294898135175886220640732065737079373933678833052273330271668398695679913631577000187202534617289689583823954768894737862637125723742717680968022128580346846889203054764964490377866372349408743975648630024847311901868977460705633743972863884381888407961012793968850112384209637481192178668513330499277660284443265677040789415676616530022580513670380599914054059942355927420094842452719759953099069775254620878297118933339726874321951010520060427288269717110294306731085347781813546325017942468594917462958923348049337472241100151203570755806728112059548989877424100428974425073282142955208264700329413754414247951634827132102937373455238514895298399198670323703042884152745970910368350836530291905450777052410812302856971371824297048867040687448912088281839224418736112905734241118185442100856211130203724970835301126678204184364521863947964774954100974372807746956636369066628245233940333166731365495577926889559615881149287991918354844767176636772743245698132274617749328872690900782921313541139913973835973946211912521497324615514328122672727698775515747365546995993357491544849146085041196585187752064307216818964482633827561294797698957412438864298677175185703571355040790337824799557224778171343372431517534259251507555443705181170708627277949022912427843259216728090011750310849307189252693015345836053505826014768891857597921743554586788133075671460460581076029581028904584410141349701675483249001688935500207703774302227079034146600782683019098336416793212328666912131826939831726991717097710710287460274456186140018123196231275384591643788501699763589259260035547029370152083213083911064028607514177555296990215510569216940383962326287921939034141360108362707985059781696197141273845623519858742115791510387724204447448081331930548754143653701978784584640419511608976009569726618915698009668910856041615520093319456015441912396279584964675631752242861935924745153294194872961478825189898771968083979620386406353939104310361660164173025943965307262353786732538468152771541983850206123370631364708366627741097726187037762434555711255918024583404426297443834285299907274526075382401314482015568425223348182823651758637015386897228526254034238118304023094407379548452966231197198673997060942991946544063177377826419388221588460819437254371842375102757030897869785443800010572833896178702256796445255738598818771919237683590871539043679101534670941288847752816045073218060783854072993302985632682108246525059274846404112701901776404917887018218789238220523436056977146136051226695530297862361636239222629948765856623795200884433560281508545186281686800337721561571359977736171616575449463104246516053083298203412109045400791157948779119565779070671826086184327816253831649385288997962770615243237208025970883024811431527098003973210424198589803090238735826086080545822843259469250852988727851838434478686277508705039579037789794498211424899147368602641045393139230755632892287290398843256486788729014984099698262249973528365884486538723534176896149545076777492893341804925579136967662927839387488475270634591239588406643858691401855512010423429699085095860588030801819564817221700141254986487124730898298971609264186048495640887382904931118873119258884093419914473749579292081863692962721727409616322108899073859718126381729675238580519076829691457917561064475760970627010850758880523163631471513154211469294473758268727269603502354615513837961515458542692248210282040759411059392321171340511465581035118511727272495663423268729543301074947933406947140332697965011074708138897902207035816726733796369761973949862145581823616094873070399336187210278862980379173854048881257305361588086672700056695380859158540422436251677832034047698720080961724391680012923066410395324211092509302071738665885034741915971628928176419442416432995420953723598243442714232177764185828915102636545485451769152364157702847464848006150939481320438814262872088772274546138603340338200908441561507564092981854394037612646498367832786318770923296205233386693144108477432976200329317759844791664642785260660537935217368659562705433381300097023079776753893508659861271925196912095723372618073957344158728817568141355347899595825156271574436757210338597981709241722074500740445414663803278940389490101453421338641381309309745853869627640428882447137391805526247219636680368792882414991353192937016027013673126964688213149862884077178457752018811264610137787066746936790282753810857602138401967505409832596521635306573991877849396209590688556462935200616533756727693045221001275571480340950458137412179225769590796204418998629255710884326374109396403254173745887157155932311862858072420557828282794500271921704072459685960410914962431056245554524390828795227484901392027239906136660940294443403277607158013209312047478215848804279858489689768945549713437354558173037173489109562129505319473137767569780696904445721738866279086350604979260372051123329159729917876117007504953537676265635394655473808490524786939849591346164296870123135833755190656662196380583194276382588366430845396250421432773412821114870613478285412337314212087443903407893820795854269198290352934075565546905695105973473539055991257049694409406904299192097026970082398024022417666058299865610028670724962884547442262064839854878046551774526768647130596448132659944325424850310632049813272082994766360586431705052390437859588548504175332615165288316637619685071445388441986412015992651181816282989547645770361843788200329922077120830258191502467371099003062337724104641949202292531958251601201653223421670339871760314229570242093132382812920267687807440342216774627076346190631114551666558145042233745143910456889616399007403527996539384193151826133261804503381505415410330021524608084636016500410711494689473201499657532935508482036174322994479222468825592845561538773766724027601328204614332036524661039711301408868833213432540171779970039245501831324141653887699363154754876601555576444784884810372757793028752536019378291420900816917154010379483959364477305522482980799772645870171766114320842748070112966153836446177562848125773340635691709028549227350157232397234748921104791816522948176167807116462778289673139686552787223540133186133799522245739960598633137114507288899666431026536997200447516083401678886670165308664002650164673797004908814156659948707121445471079484430972660446833686635732865380228853381852047723218506774576123888641219282665922759011268193020814136767441199570729162451568368849776556240377675013527964657529126999940642645907233609681171795904812756753049348921350350052484597615159977693506175006898767846409155643355694563109184302817244849926631796758714505633302405280332513495342573277144749820026190625537117682373837187783904452964563061078617698990794734147496853697817270294368334483544106358290460020570313424767371445656746199274875007031519972872471126948640688153176546390557536103413419339202019154526468520514767788637570839638438224649067520683070608090423311224290562047629704198548929494774095339515560938820933989904280285818025109560819401710090494038005813549744288715171182220416008706888855878263494612116858334042581508455711049635962711786735013445976628914034329871781231819223625361016524709194211357758459536237806152233982518980469687031287724932368051620467661610836498802209412288007975564948481922459373838253615947935486957640013905634430546290461414038905039317059549307809640473929502598679457203888590097241166445037589102696009758383119702870458860203707592531521043870302250793419156430894440734349773433366059233689843318464578465367630890330858089276926459398288849969329438860554575266765899754832661818004265957967194669697836675286293124946368872885411169417144756977937399875162830276633644829585790945604549469403828974591118935898608360129203786837245639803040876768710229463226043983603615771138578971321171008425028605807743761475232446196495631701331784018276200346480828542835577345782658365298605393687842910777086023204461114373883530820978315907850027928795286477238689802709656029159466475634265989636711356448576742633357848263028215153596032127617927393306973722284468857450174300170702344567065642517574406255595832248696923894927953855306332605480451085434955989199124231370838143865344174481364808871804222086954343409153498032399376608745845675633572925733387909410588815145481966039634465691291999407087136367126348778447964048903976170000051570404364447787700586140338689811131016550370879484470049449709609074978012427147281646811054465156999734401588379529834865152645203555695569983807099756604107004396280689581647691989945877051003736992438332931998422830627994375593273167568384946208924336670600557241948886879701520138345041402777189233125637303734571347879047069387455179462616916635575648226777136228640733488082297606953365848835368343521805718595640804841656755407714854359159324752091373140591051764148344876743634312737708684014299575420162646565690749254536965210190717576584264072462465730218098697945448210256653034996011952444901496408999690467081516610771750501609375056955092341956862381870008794970438235302045935609470721282515968272493597695343967086830694141535565129842295985496170802699326107718163932035451107848711005387248184335782514018615517327098375829985643093540523278426953813757573533042427503883775957671947992654598591441331619282191671323708120795364440207367788166232026117387002969036613678860248119721354577188379685424858325321332001164122316954446931801242724443306392801107495943651829414898721648335299394251860481386339113518690258791165525607115115554309413980406626983016882662329938666771912137366743192781647913417970156820047951559252373849494752216214516501879737272895865546375759070965311439146400198751363291836257934506028245366021505023101246777695210315438029200608243841085615149183485214704863182377655975489901076939717958904394842176277796863848931685883251120533665624405686286579790158925198700205374644967666660763256755019640029773561460109986117912262041816214412010683943659732200809369973367834337401581901614473670179386863688811227038429099902928261435938341252014367987886427291046755962147801899647375217566450501316431402635976543482433570460928581698781979029712161396241746953804158336832799560817756601948766235595183478177800382250881237772279298583015140864881230988943931858360347743814780050549516617786710905926946325800540382344719321440598111275699185921890031807924052558369718769348530358657046895105574565358200147252678643300678657254687704023659313174800935849294222955552580295908268852991992789783612158980033563397877827530365722013548251542933410108756307034303373747069357113013104700618410384825313800821421877663369250089061724727423783722943861781981274993644273225288343298004029557096597840659501750880803474063154834055317634253781620861711968599791239513013720727209875670295059016288057660240033720301264820982871097361168720559784999130000639309956707779195004661635177351006219860536123988845847518303107235363636733659320019750971854135981166981822043756082725631441665169783714861206611740598842167425299677380864255143610755763894172067803767181656777514707532095413866578103224194780437285095318982684102037185684639558580904959900865327697344612454895337723453982861019168358225038807637329983967491875992586637342250041176694036584722475594798053992301901357561310978878146464466844234446094014195880581998294102550671354140051579357963772164682420102652624414407321213695485522980666908176244051263545257060554257087074680111979717808099423658404375977306818911826997440162524725948056323174246795359109210396603164401789468497880261376669108368073997756864188592038757264174201120540255432175956240038276405631155270494006835122307839617115456553777736012754296383573797867144056230797059069216288019403874887317841302501814462223620671728787521165316933964326041913856866576410194105676045209950159715108082757954423712911610384651812838254301371415033641276831478068971716527536330382043861244209942705858403468207463147706541635063272180943512652109309009663701995101080901007525853769196334337823715473933052525137341723938372435525936163592086689854350106517078408533696048268214175260405549073753041961587764604938309096888446457358214333211146303478083047515026131560579728329903454509776367481674548838569443974939992788838783432408963350543620223727482672866907661459408748465830598750800086429094761479338323353934657103258391667009744796773235598214552752123658992087759825022903525634908812660110801024872345311450867660093559018065430217230662372110151532438170160225372069074559872099354740786433032437796597513493810960970057801144174602620630680122374260182250789298132997459358995854223656271044235389634666443642262804046824369281618153328708822575545063108280309894237811840052452205956805971129495737993610511982754959883789533475314032014141130825506983002085463789926805952169194767894197519563374776579916427635949431673211300428840268579856221891329671607155533148033097298313597570269843143025939044084654445792223311588676884827603330533576205729626056115326906250492756967081909876219507693375734704344009747110681071485017799359310922538450933666746794335265384385722380778608791296740839310648947651412933122952428104424478336827299216269268091886082339368810992151304418079038041063185554564803778726364662817983463919497614749123009098568872386735099968296514544677835906711533834040228308921264637655112557512151531715674419898896774097110882235845019661468489637708401872349958622652055922169281109446546980868347886592861314312262397322536616584368022675219805144265417478418209197860720774398615944294953612359912048687007044322102487065325298237073032152485742350743189967007067275944535793378131514430715605397967824147880966803430404656488913068130193107452358213226238761344965536570807274185391041818612286292339157583892425704493207314215453982945219780198380129480916725661613084369189782391148759905933639826390891143012809347676979527460437860116977790544252699932531979538222459256218077993834005306508927441078221222865052827908424505406266411911648531014179309155143205422945250748211785154517217313380906218203941307160521282720868566835336816040409689953977632239206302839245789083984495167288670950988540750856113014309290336620728030811396605500611002706374466543173601714662326369494728880902124111253725425314943417096484513960164284817599499761141760635638657215798014798493113194988296823493476102351761437903211790504900388870956713180549871879145877174613949234019275928218447884470351332134339900452788655830437854940106333104522135141424821072449511084378851514481551170888737514069648615597721936947296036304273909855666995667093086165738816295852750185434244407316999659758003811107477179501013493423427979838691404869947392187689106878829259669049924111558012806232501231323113501219239374838348016829795616028797852209753390978589128972885314986757302468146035406928409807011715958287477271543652990131626454862739373300083093149662340479093579581755573249827470362032865572791145165737170306821287582213881614668728126388112850675016255794163041220518812122424561818165171698812655133687237767780064088479057324551086812426578287550341057955898054630610794981266924744119372964295137289312538731071661160049692759212302655771331858389348657097500666333013851964563319151670220599067907357902229875002855324849500360902298921295479618872784126913703410314720793611374300794441915628978083326701402927767095991668005327404990223235645405658714236812013593165738210540743833184550685966935316819786790196070061844985299512234040950955878573180426474585181523840217824743359853268528164766422700871148863947800722929925502068566805530021221324770647299438799626199861782192986664475437683625368054454958331220393181571441654903926865416977764794467350159066094425641128898609703192973309498758060549476744041940548900453855232943616424081176555579153579961853626658283044230402254500511270416219428845043306608164970517876355217177783769632547793185477516939154481228194502907742349606336637146778890781877187367831946531032952368419928635513244552494574647979997709899544825660068680078043105525102872332629752916126298587628145573133628064847218590041691992590194135750055699260550412164291162262678830743090611614692167482205895344892659076639102035314495953990893417280622103646140809943072546982264826868754806752363626754653881777845445764605441823716451725778191263366910478206176969882250253803005679076014656277911993013019715431208685227296845302411474434503917943588542095790852324637355911645312050395715441680066473820698788291324035334934988343468988162988895459230207379727259052853154120923700608921108959522805083418783711024038798731993256509051072985330920557405713440000678590794452395438544051946951265966001968222945794224180949547239748075727477472693593741660198514785376977593128354275140826308722894842147936729500213823883902912768056233259806401172442576582876113120334975578911855155542943809534937936390049337954842621487155742576408605527085280608276670942079776552418002531748619455175137038084236352102602776531952519303057949044411817444444619535346730608599098308552425127509611480476136216994546382018792140443965196433347383484258176992478018658561921688646965371109583847115382645619322637081434061670804156338859760156874301992567711687542980589696690098331901861553980440161029539194098232241319244689433393369122700467271570358183110817474254899995138367961466942834144367506498363201972527107341216904248884230963270282815698227369279812468987973617110436802865579186065414718753910538479232293115162789403809881147043552575562183597270252947602862796376722814519687634509855754239622849063992402624781516824173254596076589152435857828482687984035524249635400379812939907687737003741545050802456406534801000755257692268271217550291529473964948422917986089088824712317030218253048553869887701511201013506164837201191124479101018084062643044640902645771323458873965191995641841536658459028311818804953073833433333574024881984390413077743952146401492995179933313428190200806613834786451727670519443783039091218838896647198191017537925242608097919952549569904270137572511487202747684135130373020090462258046801807250815182106424126366121062377164554631897693675056454139947101777430266704224461402309920205493143310139683365152779000442911739341987808715545015195249462050579128746669041830989045087727749278652548923332256610957771193881760311038411823362494433053805818835078265775119075400252280209641403507551291538293077239799097395740367319811901683211127480492278726970665104116068094995780556002680886693508717455963230772390583250334061686351902546901664810455595313273767114527395798728361111586129624812001980330963591314385318389455007502819418519828398525919390482268311709101336638617862278646129545502446997708561500679854768323245180587459094628176965620268392717502079356543548447271806233219074678077595525610551601460615322046476203723473907954795252517109778221343434282718521584610378606909107639138566009884159396789471627215910888621529210005328327021866826023898607636353011399744175036434763048072182191987269008479290591398987507162209993644758503428093411768097887400401462537489607477344021390254351801915611377191174813150639010243193032278634883632495237740249198334748301122380148830733810459596543514180340313875312076580102707531177267046743936253135361961510826807106084052135344097998409950996334977505109832628540688042922095237467669334616922764318617924545313035409384922841948145086668085561593823256390677622756577334423914539404954801783335300065777366483556181092254217327920841702227225277414080264804907966036314179727285688205077059561194684158524474221003184024402506287039357228983026600489544720601285727926427071179488795485124723551349371134441284548266373024841359095405646034913856719829668920563338337472775487786665191357292917821581869470885079408152066684294723969849999018189220894864140124963558266451033236636918290944690331973546916118877901291363638013199908382058145509073222204251065419354506378992846595945663538208757714325034441537880032718659258871777474187324509904755091738877721093889351360998279643811981287942752391740269147421025868708894049594604656219704046155607359409589229952026737410324380177168040685901166914760402361441516234317750214214381424355229038303522448817333771705342432996490159413242332109255900576163625947170354248631527565965189502664954538210765146948852954009595569209173542684880555642829588564008416438401935348513914589810233023813233137369701528115654021808269015410713962705041603129686711955247634414923532166039792048549212441716257387073180813941435434899522348669506338712882529121037916228969907065163678097052923459614893856643631075447518276463066195036452463299730896093443894424086530067450183034895143305084977835721926349992320947147295788775027870875426811011945820480548591436890899955423830289907934219635477658445864704252931591798113202114718830623794516269279871286438197779671165968838226791018355502393427023647531978330124089004575725522803005716064017994308400560154595903306459201845672871920798680118537785124199443853837648734444699168890294726892622320863509874210811035489574258900739932589218386510455600843687524663652841526753466860984065953214455191342861951744302877592283877302901986902137692799807270723586540435496059266617782494023286741330801669608212378585377076172952346343943364979274106848420162877196197154009182872935206796820851531246719664301142368840301552176769458578668762457815436994897158685756935516865656890146802724407803994623803957548451430021461246623659852932430147757725930711401183158295279346244526158549935372993489516933879723071877239278983456371525090192702105848911262510749006297542086025520579297847397888264738189588475551447899514561434796192316640293413976283384775386879636903437058256674923512913593864759441305601201282266781581286394432280579845936282891711638169863770718837436359476148585552974640225701350416319541457804824904742745482158847314594457606782262385710102424944687285263390320811582692901689134218941552946384531324052600052707236452194181027429928854798055280498169486685398463195099215553490588956196943488385799958412275993921165941210849515016282259288280592445550409777147813098064967174249986869217204209340038487558924984073679226760071330252463227000173006971206058442632718154231891010920213136832571289391508104136732932249571672044268347734532476522071566650444667224602047430650749402124296407971528254219109337733044253744501771883712090865045834313895988532471222030629344019543993489899092789323802687818299567395726110855154435091076374699582020821016019331483619118403265028971411111091182073410118308171236605595125638170451381383115187424659983666481877464213941583161362778455947348071148242177898980132175457046239145318339275019228893832384482984320344210921998558819916881238496214297821164866534408866279666975736209170105867749409914346955766705679257156265510427900803037690598791003624198511951648718157619079709238509829505767446186432049007935111272934105137022424466762579233146997003883481831915069545679773456472436564627507812174484786751988733047617244620856101081558415235611372933120695903497188897339374579993989350773036739592765776114241238777029325759258320502031058546995767729369629171827644058243131377924782493673359993294342765639516117128570582844356707361486670970315557189095215751210631986290937908169202275589343801662122807735025024206489962276900539414316622898143991085278016859584745464089489781157931010580038037772743077149952621128404864835132811964280623648839391586461485487674095223581553892003190969617315119542653349428600785361810057168378846398469827105690456164546085730760198753099157190485919824223838127570666898536153491705843678407040778456284700546064000549337361473743340301086960026204477831598752773840774575209674867177912454604540224407127184473565638680027510958707182170624620739594575256961983742447208796659095138830475531023115339640043982857891296955184886638800557292198635778371772433453400847894074426016541960629025173349309624831254584695012184931289534205526695529438404554350965640871086707754954225184777923799029346930383251109670939128135140501066379837697432835240890994213953293772601462990378393489546833741033216878709791013652767944206205589599989098636083259610494399440112047214581996583812143903458126817481013834225588933139306108809768125101751235238082768601877967353218991567532716268938940430126483363136030106165044919241560835206837843334762373747585853569310203794895089611578551049366949163236980932170518427750912753888549822490148266826562970990037988980085216214075437475766788655798776857668452616574993559413185224133479161528794058817132114776316931522604574284216485592400607875239338442161696790665331376608665927198566831062460741232920404446883257858472612438384765665580348904063170977919373768411342273521495465803289871159352716520295733211402365245147848656332758268182867671627137930994645083587429354328370176367734036276883288715706571703616012833199458386725004379035566710781029069800587688102023414479181810553362090222526627173898396154634954735106982130597854455153211872984225062413472185893481737197954985418022279927908071240198838283296136029374815679950397779194295518972111782762565914965607495477492153153607317220460110280255565219722437772193860353748465358418118523681402890695451443661915092446309452683489165861692200809837656585458192016865878751900659771631378306977002188545072663483674798748383097106380023464895170380185635977745237699801563629490883439568520631011533325087991442075141799615365997335285735061310185100972736888777276133928993628999070780154746635583985590580794159137608089537380041564838246727157124726337138944872100075087811743849659419784153619183385440738591849403196042684760371081065962426450773540304982871283431645995056469870564677596072423342393885716064446399729019114965924798793646955165163773535616767652611732046680689032323623260686642535638403349290918674303678747233559778732655695191121272352693414272492900976326812077615595331410060739594999638371727496191201763117226659433672790708681634951275305175186379402294705208022433228590989365668368417305045478958065469074748957114961866762662799450843483956775018172164311842989268861934170226749275086599675240729298425599890062230894344122136116045248521010699212661955114039879916459135857138818164983331304518552699267096454166484055967894604787797586053144435700646888638052857945705996090048266423984830680902876258025636731145529567218608772276445420188129687882287809033226412143724128936735530616490883511818438926301187934807645804266680829850067704175693801542827411494414678388163912713812637972681956576742946059106279441089180729052191506593511489520512091967085876169683493609853935283216557646079259061006073457068699001378897103357338125146724001049399604874062442382325215762231899044038525441998598417334035481641889599008089363256821788248707748543295496226549114889365375720993849313846824223953786620004574179282939421709138766592318175228559488468928518975024585285049731789095765158981133547777839640766373821825774381722347225332603976966069634634980592121343057189541535238620421935427876652811597586038080062673109355055219050029233605186333642128576633369267719575798938751499603385965777551468267112396614297560483145678846482617063131431459697857251234092089049098659957565149113797773236374139683170639432738662620072390210244651223189568972955784533517769366800883450291151276748404957928910729813912428269966402518105352068237621160243100998092490600420449033505790663380363394277109297643223780298557574463561768568897742509297337313105877758952113402539115623163434123822294315472647058872683324500897505437213940406204679627269747106457905674357600678714090550178892680006304735390177072556072057686634433061457318887817264341411653684248237426077178599997122573836028146596984775735034689736986581523409102118605151897184893451672851234894206487386662657539633366202335178162122760290952229585946662417343902600519306525428042263281199751180003775640761536440447138097572952401362919264937795574214954631481510819863898945441796736465108838712755849478711478280075752686637069538863890123294071952514320253660003010052173780161844809973909743741369778161155285749504753000527771243587249536941286697079452630648227856718108584398279395120506941166712781762031184755185933879658797117487657068788336199442838375847644820526866824160778013266053829751631930337792044388868028286328591349121157184238753386032608373019140113618302416512966516102736555000565829578664234406660280886700422507234310170350295769610634962508664881473250956800832664706767224039031810643824608829755445679116281612702116074371974355063570428383646104334496358480123778597744723233218648886872307611987247748419288058287186410316120027609311145953517933417576801245009900862427632075477262298582658584543858538210559928054322808425109807991421457781452227893664330798062170640454634984212415679764383391643955535306922587226102234538564336989959598400161495939827558004401890841470973645826413117085344198438014251874142975044210537946612778901172326394164558019541699123278664342475320977151099591692330293165539103856966541523501291044820839734260831544161147532626542862978812940178258896779472791974786113704489677546186253412102126468892536150317745334719750945224958792859561486544568898528285389460315504430347343343478015464475460239933260720395941351528820189395144727877888039750700684946381311063845353019573395357992722675217897615124263082894617381263683556907299132974251653991606479889154226932887757467621396928905667259182836843776437576269062683164407542538709382475704581555570712316430061728559085168844280834193995466496902815151683704828678137568772383307757599931981152961306734997950692149786274808300297427013592446873501054774153511934238339624139389974503434597411633716168590230085219093737194785620317652934445867627875248174142508565782223901963507505534392627821588420730489100979088746481703494478962560724692855627448295571489174663630488360621639595851553347036771519728094777152964402792717060510103950104499973960439774258722505916969545367528025948393846009809624219032829581825828847576212261487318598965095288089596186306305182180312152794483266486242740538936334583994498908591775401154521066460702971536639683156940598542121452697469066504890088474526275940909691449072672956757466859481492183499903722241324149176104870545604666496255623893995362178686241196183492183897978627819465518530746307851235506858616446755174449128837338617784364691548859168145436797233236873156628081781198240639516231388958211373594618825721336330026491731213586520053373069959997006987473682724178397144998198131798138371992842267637218240916025540019057986512806186536738665611982970190873375196237258887632466880896705918616834238420381069202723999874000242477976063841076088405535221847075269492040139760145767706066059999315833244550238255206201727971662211610201564718346976327719567606702787242842539617800388966547502284305169251955772379434157918427900899834938538355257569811389925934136791144917873564163854961567015997770020280706308868144714885252238490282983939128192084266272464821436989829224355517491636588333188539515941052191146087070551159180788479922926921325053134523617640351401209682855607552292264300715014763338002301433387710471911679247273592697549188056991689228296118293299724057892921439074571774351174351221477494908842964958780439234176907179379133053889143505896769649179472720831021224574914782949405665613847324553730495526247802213129473140359011336895974027363784936950462433978626482558234306769919292235296855765219436665469352747640593750498712716842221549140550106491445884195384733607526589349240961905156203268555796061463263813404924922735815587779478301523462858866776067305960685782409468560249255484009613938580850710682556549054316888611123073652954621806411073538935213180163494377022411581598854944781171654595534465986202418476244378755556284116632850210709154341102323929802878907246973615758341160075627374017261661441897386186756003115569035577206824314895796276265979160548138448023940767956543499959631142186007130000897738616338948393762795810035863845511616027165551734267571928968342562494157698951894387714227754450650499030466582469605507328717797423821129780989349375548680974148306494462298844395799895097453732889899004426050523667555382681596989209376132266650312257448348296236735786498081155615133423625645030831974527344340467821296406930576798788715921757207203008751997598170044453022691854110117262831394572415368842451388907083635408425011645929932492530498294132776665818470626064084109513143604737670084953026325672430800243884421652551690431682928831727553596209020636672384197244669741072362142638434729449255681455603209270630242151881090608161217014366417935650962696347011741392268014462768323697935828072291459884307440040132786965918908084464205141485953309761298746421372149386473148502046240889123644989272016038042811697047647847510652620895961077329964834286045460385578576544834998855749298095859627465933012493600617399285559338483790434275504470519160862011020819818473917342413924364818381158919872614091997010054710322998459439678636756402940613257692507530684562602929698987444676354009359226043673098287008617821484911727071121134429944715823438138847296441484439743061191571974839934391963774869124446296804556046541683147253782146030939885732496677157473227977301259845752732130854730921193549791949835761685717001225284858512725611343215003451399912803602348021890659560983413607171016646526933289310610992718839805410519338284253597878050755998238771808025475902326531464200229096979111809931686110796033810703253036036758780184415954329084255528462851305417488293025408650978276253974145888786926298972270136873923600207262419877171040245155747985897930582583406629969546264131026072293146918129291274148028988868765948529241034846925003476851612264762661100147096631981580357104633923541850061432871673259941315380387347716762783865754517724462787674296069433212044283672641717471232973077592488458482139339501716369835183654080292717634320201814682405272319662724680294292402354956285712543465258211086959957849460904808945529203274921055974417257702967099719909515835235070776663208183148168508041086929663621650447578065923894816826413071419188074980157033181513574686358920105239946906000269923653747175344107762870962696999484528287825078550840063767321368618317013267605914786340809111493026271017011895660784981070860311652891918753226422911858537858959274166494093946035294214688534872075385927996665089607727899227534363318979812407631588568300333394173131394413947817101626009063053242233974979363734307542485917985058732678859893137041528255392555757314827104905708777650000830188155030317172428431095282958694549156833691809565926098519875901062682615433608234846849119245651891634619455709152120616345131617689611019753248056407342703518788644723662250075513443663839188786254114445842533718542253184301519950414449704063273482136279911642089293104305729011553468716813397764180906359129879805893025946336151754125858855772779587263233830838469994760146665568560272810893179330738576669994938920615735569271452539757747166159844100938531100705836061814001795671306577708713134952966420381522610302881460816758868590343474039763443719414675171065139529090770110822615342427335025507587641122273687854898037571294479626714132900537283639343363739597654246699151805107943761261594657328252424887210233455331934906309735918026878225445238977635842241745912207651346534664096306000669795914595746008772639298088082966709226959985141759010139555362386483311897576710324237040341759080556714151800721169350616059475775450999866477094681930471708017946171212430359437030884618357766828293951824411546654277334452782144992335844173387725828358160201942872680643249431511803520972110926309508614453306991446340631448125253189538141343426276566803833911582903338068248926944971366896351073502633668145852290168671255837024267549700657032398209687199214228729859659867821011670610648445713348660305845303377677646742931638285604557370732969382256822216590745931051357108647939517664079152524142015486742321997883415045279397734349774828050485696794444698988153116095486716194880969160917468558058534984148342950972119286932697206748169339531239494487870456902117689377514517963112373388585339021295366294503523298360202519013837198229316052100721775234432862353833855392136413206922197273441254444322383263519774426929635966895757599095424892625470629536131483179619698851231997251953501395847361080971280751608602006509887460596021561222138007450098673155810421038193944543207005856879801630745365294623085134081774979246092536858835388931443653056030699507345231415820504451733747379839961405163385912419331411539290091019082262723235825007758670188589371910998220429687088218279080699857554356012171512749631620530427519258665350928750193391145615996017052908411985003076611863577431263252977883917735489866685153270603423122505207082311167915180657478628245513176433448906112871828245419458996063253421220989861961594051643025486134582789637327886653135162717919943077359038494455647439681898592126369666955502161645782383862314608215608405699108890911250716571016952211187110740902830482886513119908105569733189826367225791424214924832704709749444173070348198240322083011119549947269124311210744274842557116886587311291814196758869027928107570718835364808380567188344566575581636539561666597569049717010167240771144241972296638594059719487667580528602189088365063037535956967624918806419162081280334520465984700965699469856432228277181190969167140078120015659942634958163100749402488721274948506743703546578801252693323949367896247790441411320826328331888308011582786181511573246688021964775183760403490313182831096739416237671052285068160394171708632546445947917489264662040886747919101048515895145941053904545874031201582693112615891493374491796949866573745018906850667586070693295035836726932941381443474036571572528592016855556159456568144888269074804442000949223357274189417458775343212929777076702976172168854511732414991167231703622733778621352770719451723330283924118628918226480450971155958538473047276419394483455752601030517480673967754183972879631599348914266726090024607354774753164483804998277456115910323857131815453037184831498305303993025518680408567745030783538755337946774744623961610200192976295983094287077290536058787038783356653383586437487347511450409718415019328917104631029653718515485092300675630633496228147800506713350763567351934168019026587276403242238463409772184642376689794197363194317307515672077779961126821551155986642438534510079118232205393885791230255499501796348444655331213361986744809636959447439331008725715145311227915461886281405642206991298346937321436953774842812734417585326923171515323422464107963149938274147470111754691569854633701373600504056307233443185471145055279989125672905680267961149021105434495467014918276609651719195159009120257568077869348867387855600870000572459615259915067543627441286739234147119608081665781577517598176954942916267951992978824429710680707407094389127682906891744367169649327406592251607189020527159006927224260869094146355963819764020784450742030749337782898403751213910677245439067985323286490450607253086899218720166021992864592619111429492479411133450563170860161369404195267638657506221341577834291770128570304308368977294244302141606556072246237046887329398354547776715745401434915470925213805297416811944280779605341985713152165492652358571431834241651305518149066894724260323985160083639313657049796663939318502989437605589528004646433865096177100777303365469681294689829825684477528677086316745196404437433713833685818530141928404332234553870305496045802988836617842468136426283236031654115452028103829231063739896292600605915144199892481285352193425587523000794629326305823278473059801257360425724351898615053454934140017961389126856354190036762875490442229982087929075214637691476423904980620517734518398688408246668571106658331047187666320398616986426591111078118602098472433658909058840661617403569703793874056667319762977762601176537161035399445094991696496757661197426526483086162351033201440765017539969892731255455181793023334006344447475413695366543028310024908981557726744876250127823372905353497385268960031620133231550620044682078828762310293845822121831463036798743595901138880965720612829135293861288944404126137862495234449475055965223320252944511782199592134506850053768288541822689257550383792270215972383394388023562996452286118651597083373548477583004793677951672966650154600733748579420906287145361979895216445152781238960085493044749997235273261664595563942378273684671635497827119237641468735586792323838660119685027564853219071261195945508071557778803166738728092930117827177321841433164641896154559059490203104104898104021810358439535327833460030894658909848422418876918592662060874831912596016644814334879105449741883361784885467450411616072537919792421636736790296214449868965999365074102962018401503820541169676999481820422353969861338058271768217794035269642210115456849316939387953367541286902615117516623871372985807326761939722225274547538669707526734502894857327685257620541723298906760788961309279732516094673155319616939867541360049856246188183758411927794306196197395276087213687640278673932090195477325319506277531414974493285134106365547232178091624342130452658957681517037675597326172947202680198652288377339093988905485861943197699445903767656502208244586816680094603842665110878674411897756270844795306690496155766957242951137677052227308356517047387685297259433696303538797316437614919660684271161548747956544006487628851609191701839684252521059447898051526928297199924335805776353281471407660307451478906225695906731837914837557541011639327762248394237069650084961429921770192494528804768968757239566456613359282413281319665070121701284910933186616148430813466277058812394262776757283452889095375675923547841533569871303586054324205999134204407912543952811652391180465559477712997591670994402696595896176847811645560849678778050194319300427444991291247364644811679521154153957160407490450359182581058269769123023297908485290075320603295979701411887334942985591805077875399492643376237007452636134183454997859105962082183742625969707327803025795499365438836328586220645581834051871158875324250328004796666584498877364292858616162312268816487953796007585465403464970153259048864710146302194497547950147595991127257574923295488134360308127586836362775339819071091640892139902821493747874037679662389615524399522870064863066316708637324811044789838639386429451967295735469813285225536895800593908897116304428016898511849634012319258415572990396943240396955422756885323986838759790932597134727827065667795679939856315079368147583528338040138095797300617820733231659888111711769983427499324888727469250536904486229638557026079000087622852013459989393865483584050072153405922345550426575233369122623344372978189838477969061454801809140588308409135101960281588882081774592612860287126756373664997432185980189337736702440112801058234740159763574321719210353039154423664381688454230169661641165374156129265507950671880340208030013178114545381692433772013270750306204421256878239161751031013914612212036163027957532261708756121872034756416440187536300849545799093589770075111026401300274034180394778527279715069487581084401841014695662228929631228397007321251820520722108889826157485456897637590669360097370972284748630610187938677090077482494333834468912984674289010300227296975249081981324095865813153633110003131639114483063057419373463745301749739446685542405708467691500078871222520437021248796446639534455997863719190520319409351518506736285039291892347168370402215395906666949503436067339866207257158822938369945797616295752544943474631054766454394003175057413795650575696966384791542693975775754257283208930417337479905737248446641771224206327243099292298662412321029979186254149341845269855853713111542736275497701294271081574250490525421464054130738085298135045405378786726538246725002970602871548643612984232588106137284662629870638431315903306433701727012049988679983404652052503172275281573245466487397046621961976163166753830777875276608059562631599013427667833360402554466619665074115129413709929151553456313086807405287983324123347070077029784191794149895155041690292350933815687982127507603694717745788543866170896252174143722458442783288356295439724635902858437785225880350790786961034977064534822936107306248495618243001958417068061257824839727632195149113740392268309139524267831948684328365557465554902549555456801354041147896739652611999000342958507613553766341027233576501780006227993239727844578772861559413981220822708967770053972887030900335759299657497555998133190384284902706854871454399780424708290186514519551744273217620339432437766983042218412131965391897205801082288845069287794043091404015491593776631491777440429729188361750209766226825505570598594609714157359229608955181708116953006294723444107248234364326492196157980012306369063184377534036356648116908709885159383007134423489523500217643658089894282961866884287604602542942396033123678876114302086369867339005707172119060739946704483455674780804898975254878084907426061079035120133065941865848066590175207866335242118269698898488156080905355617606509178955389140990882212786083516056284004697566370424048613189781935200612699237696852080495526824133869537268415332762701303333284537686578921634935302099250176482387416255646979226555024918860128448217874349834793683859619496705243562385805574203163234730620240009667481679785637991924086526279701037186272944954083523767886405461469317250175390704288996350298620796220622966218257656402293932160893689699280289848782357824764157779183848662568534203410862154043762152302620324983158719169391442331974204826666973469966956553679321794532353334352865447983939623514602468506659884909647413345457337816310943598413766442613535989971784352647220566029208938804865142665576390982041676344857063256136712572905206107002992638846075816405867301079812818992505265071826211927309193755033445285705832716624051600929264709957097203361805626145392167085335199500381518903069491609517023620096681774235977508502998632801738267606456415114736759279364587464643501703422345742781868243015828833128245754509960888416512058976964378102886417606514676429096056117670167943208302816835267705185894357439961181980662976325048504742118883284660886549001718436725115245593163518943796894589349031880903636797691564031886766261616232911823471387900779663135509201377594404064192571891507723719806162559135266324930319601597447830842134569069216219259249987449671029773450168379270078831612092695317148225816166647148687334024812448015143296890931927472511444157106155280602425167182651188511033086756665549976570044015778121562087515119636720886501013750993204827888453780467111768210729704614856225054229330275514950677027323281457756886013302065234964255477708940257989988136359599081480954309223711433328434017667614113607887501004850159433736850149785754695303125357238976198138974942353259244026125136727386127246120498360362556867759438179657675289576010431363968814485297433939208615032536633932831109402429954907290071802460929868950285134166724764277765307274559568982501581326782575039896830238510544593854912366243467656477531119327103021407895341551926459120109866750637014590148085152137846245106566344748939306100795388991158387289193763867725667831112062374573738943988933625917477150094679612030082219860752624210171062728031080447732773381652408031183877535402122203083291276466757655976027850565348116814819640539618611912919499804185618042367836945751454111883954330249425648477987983496313281826971858323168601191880719538997878734544793059085131010503967593520834383620341478190141187138684763725785353884516832490988316743855607646867087735375685179056676145368665152293522147947563859327392301901219532605158395448474235593282934318049216714467015483867485729970677806655516618703502038994394342827645787859386103750552045434465609339793779685059187616937035945445061279386515105865937040294953874675245808449496722545004879784605597844583621821275174551147114739902724722589972837682843504313434845380851792391259019126037532697545899731194614953423042942022498494117260017029252652728119465967595097643995932363190190607300957989963339579598477794296243869642813110524059091489427888659406562936885595843627062682376029498701811973046529444930237816308559881914259010851922958531008440093360098035628393818375181383934446387651990241675436371793437611982273223030549082689440315296469121833786245886100138087052110647757644611708041005812003075992088607423519431561879810508985746849417021378957950972717769947622796165597639436346516477210984752776707696624170796072489496391460646248681551994594106346247376716902552465709574316435224945779752361089763554248458636881834929935311261127520456062594378847113029709407574656878922298038540077155913369090985112923397774120632747661969177512132006008059685869479608487953681863561455245671020507146632641187124995328895420178610510614694082434094260880945894794832508953336766869417236432290782351351872475986739443600648419993845831355985862398999546550736804654819028427589469706817177407416504924497475708921732063171449655961787850690081436075354261538120532241728522746783957384414753655202377107514299909765411347388202171395001817662961014995124489986656701952693562638154086377336440095851016919356955780401909860440678730103583415083768384050246140489236720794064354697380462750312596129520463276893667147646618100741979012018181412631535833835904206853990564566318360349436760194998257090278235029993006645711094106898881875703709192747907865726032095071743066256038465952070345899433378624343336160559005543119776540592298373685593868167649240048371972762124611004358203351366002024432826433637261590753097810456504341856034992839390744174807513473312789793879059477964482639393691842832507719764240522346847121125027802539612882245736072305430130582060811486140406340152320093828243926495877055042932560206914489896542338623115778467940956489526198517251734910711951813849944122631122912802974069790032040550691100592090042089014109640615481537194991512733766977717511113721767484532934206035183347826966298051452613396651561710624870372102597447034869626358758936575412349696331150644059856955201386783480083987829342372471777712299237823333687876587122999770596246457197644395519323615007356947355296435517860025233073545007991149691985522934219058078159465851536116336649430078833201981972131820236013153642881655869932624011631946352836583440961973138268516882617426642856643659712559933618121983871704979628746515040199118810098112927262436274634557679968194421927937024057418912835450168389134113675486842025314991623649372339546214900892168985401589048581509975886647304235686891069531504854137075653022932945575739436700694102691399795507147704648509094990463537058046379990846438494735487722600278522042658905448693281255496614486613590091732999297190169572189345726402699115526900513244283534236240504117541410381231745813661077757206701706507716150370983818755427392904232850968854434575831638267944922039282298937835144763538339646891450920579855912988500724100700207354195424598018479535372177432084230748601035853697891719418335821715017444520297667070258328324871006635288142935637744302492480298063368141761501439251225954942218569672154328243785010976444654432896431423667069827426643691255225924551063474241669667572174722192875510036551061604358868974648486452691466514714176625216368715548414641349950410534375960213076739757533117697300145071285367466548949120684090251585558759931622867410134840976467025493614792154392017972563002255002440651424443815670027873683827845852658777777736314225598937731392327240908780276022956289376060625743534875676482374171326889371196984434351806374897687904412046293096060502540832030637353948878632487840357007074162747763166138306337034363834883001191704911947660630161166691731675214945302431182616596801954682375425359200309102243848262541265173242273978545485865088084904422172881417419752106526686569724879009523087374632605621332980275108458113344644614561397266810689245966073004332516405010595249607897981087796116294237156800153250042007941151638406760964890243661806227695664565023021524094255413124508492871883746671284292381419431706593668150044597314317351673893444166334156571746501190524306630995927140962246642626054441062297269008382952829410558330665066593398086438337763329715271891223603975658739031780449387150691690145869335822086967727987591409802426419640608789190906768621459675783821814468788941209235240716675641501267888147499691875217162398025482413411516629103872037889330747720762875792420153415486712159339377099440948382979282542552262685502985828068045362598978994472210549631973624380584138019483474852143454477834903784957177854971706288260399528811168009187045383710057849114237569147369007964523522034050670756423698239384259411765121579372882826526924660429641189633374676813664290061670904665982261480377150278743317570509119181136760570419812900549615202221785208028936810419176162360553564852843391499334394331283838436704492498035761652965608897102936112299130619634260678280909911838101580267927499130923779845716000879296656764653033616240742197183632321875661096414424880856405989890007080720235993512325499638622236517049763263781667324710257207543320401512556730485578709486375966894370460504043604006257070201733974734950370172996495282031055988508926400944302083166965862200677516995695411426913941388220760683232908138300141863856004036083148024200858375516586827714951698932051635084864495411938165472292306505385976371676800334424338065636470893396646295987974861294241837493942830264670712459164005754165216465259563889663998879741440439362898154986725390003507497102439883687682722120378110422499416971134594843140583881883010632290681090049931932638756369379191811961200923663940924848609097504002039213922029140678223537927899381040570214607645786475855395445154713997609048031179546859147068284229712221612596376945594570062850603973389342529746153707349338615756293836356476178474942287905126983871307530178422911516990468993634733817943219166500253229903921167396645546801438755412452478072613548725726436394128153191429756024108316489612965921659294340528162019443048971289626744512371783691058765590330564668290639057376285801570754315211863807139456747865071440726278233349185156872158466408475508666771430008922620142584146082572145159477974793834072962006403553034281243862151168742222207364839749800573201879913584490928548600629909542176903630459630220241186329018682427267450253117341339164946626328361657426099611376746532364980399764021070327324069447564841467905146958269669141344217453147578318306568289229039709895177686732073570761058505863548269446070171045989650468685741259231921182824021863103281450302675289341814137071020396951002553743025147278299041105855513095144966608436591615672416070940223252066972567443312314862525004889893702008670995874437266330425284840891675135394322721986430174785759438666117812863026703973904841918830539489435758503467703818650879955768215080909999385898391869697264009587824078212007530342640517435208183166334125860139228043932002153732983511185759216691863975331703175284264072966125240609517963415187775938026191570702042188451269083070639979556206349835449274361762309227680677843195637429823507716073493703168666718412697711958309637525779355452504398079936491026656510152724901636441429195761032043894021858440967842839637442045022058268910598430935773273076444643895048661541645417869759744283528317192033516359805103839356281053990632098780059426441096412137176348159329462114478063814705062941254903297221503521536175799512560113128482556352284408845670066472615977228095400802911978712469736047520190312009105573105023169087088228265128918015576858355277686308274783431901633246240707388415158745622057603068416051698472631594528762574407010065102982983187492427151166130870010392119536775340263306778038242850612663151357669107987963175285422685908102262336793174561078101866718840993711865599986775036745869571352620351622979921438171545691223969737281068837067673324751350883625399004517859572209461946980517157357169262639178322169224356675760852768832049533292683476330463599052854159026038844411561380378240277174991542327391524473527521043285804737972603941028342787186318951706089879893628144925169172872779139110947543961100591313295646922483906865788413369353985542633097909819697859187174708342944703799312237487018089666371757522716493657103382102916615948013448722151655656632665167303437511712783436229428756352044759788846316236540159209712707273193669004609991781175461275321401891460806793628461663685326522342391684931790120365236287688010906183362844542515329658329490439819849250633388902083693646293919732275857608272662216173042835371335017303278920531503047408796040740119482433672562784181316934134416391330113997006427624669719671222403659462707174584873334211446100170511452538123166715095344669822118388474409829139916901947609222908071149536749586557980375103862055557177889395622024372955509020700220068726211791748115011587402874111277958201943673752737373465539141395220189754960470629321748067827434639241646318610883793494500026812910631032130576583242556214015526927605564597614692536875520615990241930769625838879431278870823342431274531693283756975583238846756915594435547654928469206163292152833690272409100067563527584549955598213922643120808080369088861595804799422751538570487939767081006587051850519220465582572306460535366947410098402269196163269626270710995257368502729940931168491434558421793590368805034074065925560460837209325509614188668515904084833680490946381224197172905911677835506063912393112860712197314135608689195578772110044025402900349600080456429726401598319151015516208491681582083733998709988016116980463426714993406181949167489484345447122470004300218254956059314490557973897314900527343321090701805976478726325893882707198831804581394155145890038259915896171852386168192576624637925576634914937330659278330928796506958289537976089198874646994311993135072482506544718764733862489154230712151614505502908572049488596095662322321183555147334065572702806196995134491331789347052981390544589611126421846674635939283008157733961805138321629979727251915586600703617359167716049538710247278602008130787361197535873980456714886235579157062482793361787503930711784295744816945522178066012029059738294275859909239919554261457664677359833692554470412611789774050819840531621481271523488186083976897550961096588880479167274728497908498076722793512302556347910841363550573254957745315078121925958983016140557307787997572152969853327482635219444144411322403038413652747573485563651859929714646005294481630725328023817103945024052790333505993556588206879560299099548047306728077697767783573645896592871964116381883821330930534948634022037800043501757623560668347735757887751782773330511711806929153695228762351180848427760921032852160131852357117619912204423433072460909163329367770815872811106391848172953673631480465976945899041727477894704810119325151479506647062859629969427256060692423619106715891915936488447667202296247901104098816244269509357769945676948329390495805009976554998505814741195235561103585114124849879187901216827777158039658964452357136719675907047891765224366877388065619439276193463593214068363571747252902907145297215828830159314821618835626412266213155081253234077387823640573999041958724274728152701041338335611436754449543578551087743432440299646252019242243057101156661049493289899283566029023153226029032044954026263254630248138489499526256588159834435263160279187867581441351421745125672351260054463025652509742634309533103992036029673635454950208657288373236136740979839434348329621143410398969461502811314087390727093185298206059362100476076479331427925439095470437459336592003109901070543289419890854803128194453863343101881553348350525108672970989474271685585867598967816227616935117352315188978970133740888912013151319870619115127829711758699503105713875629076390201243877197741501899473683143269811322334256141537919127670256944583077172175757202973695035114325586737874476261664266639541981392760693164302825979076702992026359322042839294809220631875329707308464361826465168777882796560375429376602348133378705865363417660104786795381359844105536056256300048692138385418020138526108872009649408239530969584654196920798522804420566289131708493350463253165991198337948211505215573265101584607782716803711387067389382490786086750613665332250537561012969605175889128385283074472173128227845146062987635765774878806413995876852957977482607302334918206982354916821560086656061613289577411688969936246110422273467624997728291519656870726602620928915773643699725803084143071796755266513895733768313015394485385392708853351713261957871804746136233768163806280139010549380796281002186943924488185475384284789039093983828648222991796851521972535444837862577758342506612525758922689216837429412880716923018502275730815992591380144300441991372218806094597180501799946636136448658756146512961786659735172533023050199243208432094333199569939502996040993248744251903977382578351951792176654943445767017014417055353041382693164119661102672975511103957352648875046204370475809553780727809114238682150668881007039874647750300235968293293726819637193479476052527208618703795054108183781971746724707608685641350841743787526158845007202737071423158340753394608944953170134092564154452685283633725613569630797794764145440509528611824706972996576773367499686780460365392908828801644788177247382314037213302510865310865108178008620896326663547919394260915164170340647261912874437303628417046193605672343492222957478935608216203673858952851522700901543643785005724417904046360758840064918992871189858386480378627703051267187351964359422382509632532009313648475107753463673437785049753422097201107519019760361972630640610454767231514361779202253954115538091235593012637510786666115279863582018927351190384935608610677150199141739290457807031997336643024868088362672494403973084139167159441852463142410733112095056946570680452521062143166038842270231426640510106482682154456915731849635726063937709572124806048119348265381017102934166998590051525813351149861712340415432769065516929548463673100998713035224148256243659809457007195689571244515258098149989704701849233153929350247102669510358961734996188836268924498295280066221012048375918913664166827951822695806854271260068029955225679834690709826488183263713208273100126858568400791422482714843231700190225613802291825499935271192782257742024449478486832753618899412845485059395193814027621237462116799430317273016101646578678643123412676968868175454157727949717595125469825523720045146812030420671016683960957112223099059432530337806905682284391565228263007933336499017881527884284750469607809544975876873923624378140881448722841153330558332426859488976284088286009928805778118809935326405677341526464012606963038310792279673445706365564747402755310490841018785048539901225869539586291510780316191532853385840547207472660909046229093017519884463891578159431655958170370953938949555264205487194287778809445576024552232852141010843373669281023385137984999064437772490800353924192101800789801774730368055408534913316790466023098957109320862486325662215335071504696179331622438062775331744266211351972408845252258080649982138558319892016151308811705200916127466181295472936125393028207226952415825636974731869179955927938883120881174397850549232325496589703919277447289400715455273811650079033587691082923068453418459144753747483546599716249775693328059563239843084108929532133883948885692397062126378586139343768910106752360281271306280469420478006259421222854789428573913574137058635891352545254761518548065113860083351142968759136336331257991450952939163889253617117814817497127311801622834607270678416347223743808153808478868555144702877899923841334102739718061321331963138836626877534820632318061908720342183116386999472610142645591018770471531402150238052470495659476895845520444427202261282837020288671018076429002248662709357243761909393403490737823766970321969132080360877637942186922676872286559909156669910085487930345874471405444953021622671627017919335415619948050185353600208263389931112470395864062639955732055635422078505531896851868344474607926701567878412306435644516242754274409157946331300353760282859370778930716524941088948248910996758150059248292840905194842360036637608252385782784429537206187198476293618692943258292889230801629875819778546998651038138329910125800102341382049994050049626219016597058089566664868527466835599800799952033221837139494969225298147595487878607351506567394916971598817248820457497386049090110825086932490745740930791589261119706148288038753646595170034923669152425318192543461960627652832868879609663371322935430223703143550487473492792398922432064010158787699502718354648436638747277084029555159898719539787671453732325279123209284920342723022926938961523905237533745355920515110094196356153789355442529268152394245397104285092895891278226215442296626682438099427049486533086957617910475177757572794741238994193892232769538670842737307003419534224595266070596390994015174183803015304926951644079656558402000973741468975897743827935220946275834390894618337121158509456795172819190135467606368438212883036646311585921313584622474469456854088975274795162705538962776182373754915845399399414857342257739833674539251935715047347390067332840834474886059559029794136375138849567719213058085968530948332088431861505128838397144369454674761645020451154737118817542964688440414266486002044826303000471754715019323796934578074742429820658390871847323027059873435498117321004324081379642185877931324966328357283833482044248184212121864834355478094168379416809272139773448913940663329919235041182471858754804823482902691313651022408549944284560152237090721132784911045032126656326704713653982946949935532811288878104443405214905745852951456246861878023383152601984711845027881046202370447804975815415101140583617562354446881454134753619759208332727331973264601973922979834256644076971952246293146296256664521934866866290536677268043079860036093257391344666697511652716190394439670196198250320653220487827076979625429522097582724141952933900461784922395148062873435049378690191786677792487877712442165379205159692620266086487157670207048848943867313800378267761313457492358833442957317347039933306272377505549910588101490020562003295385783939826432570118041026336059974821228993440117345911566201116106942895387728053292389348139755862138162830946745434094109848118004995379097251374928896840636620749342896505352092386190524565482919537103626899857434408493102779306284315073684723060924624450208630442418973536730209545877243689622395345363613000275429881376249977729408707005810701797171501228891491590614739708693774258791198600801251298280117531431344603365333821356303429460794392210962087429409785792122266054274031089393864826093693522599750286126184645892001793732118511801070506959728599922959408094591202378369531765349538414210369722965943508853502158834346484122922595765286914623126081214120335209592918609816654273282428862076832061122071127623140692412362085016542180917923775373894445955695595379736982681330555857503672666319557207654567547540204886506180890021708290771749061168251265152683551609499291077472754907567260878625067788724239038226206953958742113935049072169220706400597639501686154294059251200881419319115091554167333946312507657793316574793340368272711832734340981686606255590132864823391498098377251231599568489314283524957759688480831286196858168333045747482807184358149014633848328896965780073074033330391108880069550039290343798993674784558454826926561493847704867124076271512760415446763405769927996921045643458702569034473785814337656051959928592511816981867089052442219009610498175411654949274364020487074287444471677322633737035860113025051477320629041758798563790073418001880913522307862488328958771814163752644144382855931627225742012744119978019396484264615625872333778522553437566369668622356035043811945512074209218775313673177990365774422572639836327913620919739420211381427607050476314571803498805588063478796167156238209827640825854276484710870186082195224721478757950317526997711341307124463202516858960836792423690123175232201547302674260757506713399150372172136821977556308413702440628193889766214315994227018668090311608386238976760903352484974373056055253446712382287932522020806496878480030886616593250421293828025327551630236192580291893910098340552695307900486600191992231054500573572134282319516801625356028459525975980298878677050628226614489745937470117580777970256436253332696275382986202196577054090661547226327830775871513782439722184597328121238779218839519845913359480553530181419599518563825066447411979306827256899447892357813158536271318362634909231919935688848844743177473080428277730819720609320069623830771760047730152532332362530460480882022834250518035067234424605245601088637236101579841425259216721401119544187076186519848883467718660770593265845076764269533772557469965317863132080325625755378516438250145437502753139345878443301995657647372322651461258995298442742195944064375550450526489349266498581448298499774298395576660299375228143505261784013589507355067165424114299200404389115642168524989250177607151484269756229207356944689189993117285140772179715140488062061316739099353928561262555668914810107372462798775582389252642337529283979799345644212631238873023276165627564550359606093095391503397727878556031424641283357996514048939590188782249162488901547234288572131335448755048546428780354130019724607585431570413640290952815560560623304771146356797934995435682838011716293290885306880528112383327922760423862552028737882564988508962423010324300183676434546617577725665591388965291873922104363042235476000968911817984555633578762656512683611060716505832768332504907557947421406498532748843760387378395157832805184814712412207639145703955585462479597769577272503989043538699722127411786733652384609968489921852785043216060647406696983848075354431225036253565807672920818679663940909562569118657642400829223225244768173541319543469827992371736305954249599371100971129153436509095937410523080607596253870490948574962429294465422156150312150992031749399779687554919658712418663995300756750131981794165117664678986700752016912425541318665510074697423737903249688087793950196343484697035906753966819794002835885655129003752871900928053017521653426075622953787212733296819611072510141178125438002619811606030760716039656565404431188035634653296504881147789067822035227850367394907230521311661509642861586812538057109574548044119542573991185343782430762043820189740281098859966206522738106505050331849615414614306254171976919872303766108342662979019936640266442519687014367886024453063207828078775260386190842858959560731794462237734888439069751335992627195007545846700592387376354774876430178461389098028676879762683511727273451201072236178141452819031567167355555675244556630434672154399783162739997689087983267873116262568826876076481907530211660138969987328834285821633000026398551496907544905888712074070805426766278711854567804479164843487950517041301607140739408833405400726274411001126344567193654959085778678676317921649585983311114460637909518753681671335467433339876151032744811175439417001065082539636293997000204019186969158379426445481246137262128599896662251882488612584082944654660121163736916022202016609525187485296542024056836263750702775128394132058308520134591594359010963479777411739088716389127554595129434885435171687352073230757364662825783847268997223209246114906200366148274060051919795133552772339931596766521275926601224699064000949362611230293307765936338345116591613683869610350592818355591095396548341458862182854623963903712759219334401685271403450325289459835409393565424577820884331971298412614735050735785912370799549304639481801601853509596187467626620312928041633164447523918055492895043404151808556526742815491675971721351316219104473798343792855131923202989431983241075107127425506079881668021561731295958264115796444618771607861405585968233416761316831724365407307932210243948049627889798725932114830493460829546088455699256785669666711096707419538960222337088186542228894002011505297762533237178542867685986718268837174271549193216925949979536607840494437585621875188639380138849902535248591511272448144894361286025541323817968640190356691228918139720336750099211647552636112202745339597489270303019509747885366970692910787299605263619579373396211025567959114122328290023140205205878460994882752195327941496449720603055086732785849859769459967812036345400518984023003000268274733596485822800958450004708500626679032096252847926049356508803013362692646507206599034261536595942336362649056933985376251363885207997399111031319944486023083790473187211680453365525780173368576613012512551569847697020185643394537502196995802865133838099375848807870135697184583042646760526198776962188134725913467932197396715956330909425552592613725220728433421477007215423886013372006595025188786172163974394812460409338630484193149220128818797439616559474117806951538339954910053776159565195821390670516897325877933379429989962961075139949340127596283249662914116542829148780676662953026165202658735606396769269022064569562835817990538784376230488326508542320595147088341410011465466407224162750879608501361114999519773897802018647181185330290346433718869900394139381313976114966494299103565894268234433101278444383047250091129299948539610265669572995044721113736115893231348697827163823601439982898917062081437657923467118944027715069744990049548557564173468217792144728666390572162594040748276198822742116135773103395621041398602532803250484630511757818369781094846631882276918632458684716089185762705321138792288283309675208748130241872417614962191754091433845502532495190632744792684931392878755686173385898189409038933492274422015018199530300477686116701422221855147174549556284558541052027890183252823593859725430251275013836394213437421934145061485424145643807829831635018407662239296437491515356831346263036188964717019881503829758567113150860681596472239667853786531749812057234193124921009588178059587614059155896203146627421207023434854486530190424185380454457487749025298472700030653398762645848861662987920766432993908929595640373152889506027167735336389145268532668701594490249488912670186416176200697886624374967176344256522273629136533917835455631667236029064992867812218178302735293347475125504972142773140505346153372692339271191592499852027746178065007672691319579022247541703935555077001782204600912288994634539999021327411184310244700216245388639769053927152453074372051275496503844174071085286554281951657454145668191886696805117419980398982512112965650346895461556282996380276010279540841359383175379236956194278029137625367212012579779711964817126162959702542858345847076848367425486642289463552253661781977393384870264723580629484826498690060489084757186354117345363900537375216142609219228049034725142333671137147906544597053378231464230892717454266321590656698267450463461221272066534679033529614617696518185902729385043980964686640964435495576769767431695752175896274038050822187960310120345748144673937036057978781476312885476963498118073292826415403872960575096821278976657421282710691905982259399126073513691837581938124635462202139455651884038382777382890729615818331522167128720892842488694371903121909603063912256577148687296514612995484901457680974612209075212311997014629519632070915997466309087711925332454941737198035773232878172950364754263702960662849792404619215828288292995440485420743445190426775690860586748076573344983497584530602523936561641257767430818885467648263876003402808363808551181030741869809365813309164460886094778645265652671465427289189364835164474533052329614554421786858419026777431718905895441470345289154196077691660126018754890977312927617489060920614480032666339540272349067042573134521956156246897261451472645931357082469968575034957061546093410915958380683447629050845270120790710759959470404760443118762498486077695482104063456730360954152826968288327288933532954912173106865874629077014522362807397140064456054576581564882053776856701122890508171386228765352716407947051438722694002837443886691326455856273209574814903588110640847821007456288057663494644873797086968565805780882688761808599482278978867333057790856574817935977618416946589075515060363584190991646353622394774348725074181360250156554598507849738844536954543989107720678799986947491860903003578984527884648828751729318815588789347371547955215600105009020635182629178299558131339297177562327903121781837986432982578135425442281087274387142790908991284239897228477993620058641633559121002833247403566246271045582793516725492436702945364403045853050851487395608485693657035808886770752217541885550230629516562053600063590527075500540498862083891907910485448404800303926682079181868099630835036439635507482872216935801054169370006003912701729990450474416496588673061544038958659181300113655241651193808867289153847875624349241037557516544787783572065185357562083816693434073817034268432497205205297184773665237738790892574421084887187717679665466613516194299316606765784901472087728137010449249911733509365731909843626321858757431928899752993580629859509155983285281313251885971263602545017258512929997114651879505647676898685593447343530879667969270710813892841771060829732569607062557011027834589168077407152435911952784744780123201783786292193656848762445447715734229349700145486778061953078119648970434882422062783291689468169413119498367715843034998970394061216739735116602713950634658887461885228429028217090369435239323462002940701888773981152622325605958309382242773669359435191106810860979603912221346514988048603219168817655064180093838701749257260823690998275339297302992688138669697980596662785458011677924583457116975545333588983592436807539360894565597939415195762983443946036925013861489104631547951350903432384664110333149263797549185165738165039678328580681363344038254330742353340783748685010466900519667740091495129639850033029751111763141053710256059014854490140008166371094869686462938555727343104754008586723859876383998468677628179568940092093425574710409013036720909533448012591266551289328804007085185012209736908178953736657392072710954684143935533541988043545215540295657356346767265145239770255812435761457019482980997305706514933868791511833544315960970028037890201699407422140433266093324258767992016356015448940805243891912324223802970976282237770050065013009983791632682326376451945105013574259040573017699057348517191406670644407911408216026948133238116774789363927143519868026363901742546919938835180563063171327346869951087265235421340645774077558651378799492914326278386088541732743069683518566858286763901202265693208133124852587356841416376543766566534638104406700659255839697635971882364952033464239339048993268915249149864367333268009163390718239922422626868601611524833080336051785034558477146119198496032931638890701685634453212075477209358090582092180081302018179015552420994186617155712980153722561101540973394967358772136240553723313599600886827032428335616291386380532795310552546118894015853091602719497241642436204154467317817999991059403750375004437488848807183661584407770685258534386437533444318026164339376084678432958500905011269350570214323475919923979258129076906370475902520781933791184711398444647841479976755105503497002137646273987318552868964524776115241748444569345763857047715059126557331467261266836635691883825272537177480884799263585890542194456437380518368370494383854069855535563724143866306101831689848011874558455285941462321689689846902744422897535322381511871714380944384589116372175969990423029135612254643167268048207238489822365285331700005333838333476418911039932077446496115007900916109534115807259330730992929465494778305999454421256795400186683257539145884502587609094070696085400549132889769839102949266780288539605471183898504293895746638027876463354811648029734471774225370375653312934985259757216162621577359863417767977890146486104454648823514865957347766094109533289576251248072176743729310707412499370505208016964644561635512657311046678698294006987610806981666384077830233997732316665602616800437996866299636397244683347910904626518444539807456926819448635987187633134753803305159332818383471089750531699457001041652721374153480539755666507991571747976793352467379003190653762092092760514908300190780540821385498735780100031206017433346740432891518480836195720261153811533347272256574466290727001647481946397318928555553129801656077213234026159739781312869674958380681221366495324782903912602071531248307830850475153854008342630644136281870068551647243176338912621385456677418593066791411818594320948935213853213516361585676021421709824607806079967207135054355096799447167238467681269201778490603268024352874120060273625364575014647711065507829566861373151838720178068605249999918228683807226935170347883361956763615966627493998687897104430673870194005325282462702345147805229549881670826147517351064886611232443080283557547924762115210006253423076847208272638270794712324806842626457764795089793703117015584910643470958516106239340194903523977625238712953588999061484632025527784615975021159802670968329640150289244626854949230196272380653805637769054315423482822118937551091635242817310851616002961010630922280880072036871222525419152160629548089188611595334846692735592118343711620787123605251725985725953426424672342843368910581141075765856697576918466972568376790827987559954726838552851315112499659820313795043285148475749209150398695222488896388387477604962371743942153366589923919878723628418037940869626507948836007438637053456495468873939582178779441755573175580563000357469769148178083933623545308074096087641664447827406170899830979131368721170504800572888169170833456179315006315288923087692510853780886024772989628132505244226984153839388454390876217030030454442437244136249435648033400090219459332534362474803669638960989599833801903920839437312216143774602356814667149787407718079005844072362137997956839625867254724911058953815591276541631814265856300702484968187013879628532706960738568735459423830659014180169733881792143755240153034079189228826985793670175667243073121979866708701085934677775500387876599431776316240986863607864247255498742825969293950423974622102388675291612707109411966466658232349589866667166702126900271138638307025362766363375557505714203844943042119963479922259707151645784962476546325657161762835949853554580790070819024873259747707068548964558290254532446123426355789535480321615672129649790432855756616384107224544585638997132094735788620504016495849970154070971300076507249971757676789641236576336550073825509699435651769082476313355436384986681098650084992745012191020729082330363752595481222685051132399099117090237572733378959985325520563438278265778306886803384185013033618798144635791824118967934232256408322027751921671023105300601637112835902892321057232267854192967237517004720519956072819128265295250934798247066697761349227137468593040383915995404330448487481551760226538025165699270818352351739299712468429779210310923132805486246724125371585895675633349626059527970035444689553462276600353280149228996878335808379011681661422776872512803136686445707361482091466654703544219649689930379915675272830148500357385755002895187395204435395262315188704972922093798104027543708056548412159128198980831739198308652379839388320804564493112677386591217814045238921911880059844251586038481044379218263533797500289925290228832575237327852020924114817304745996493190661770637116884676772344825078131138875436637777715467700022600292609970449652120916288533208634730415008019863151209135588005719545804459618984559747449866575052753209831284879444899355359685772127608048644002958669372234520802662566725936922606886404082071864996459142945070266691188974196084387992853813302036433011858064143979299775749254318959012062794816365751854026398167640024750295521144716848471528754753547270848583742433411903489587573096929789561316013728937671035616126568894388531646462786771412793923797950090640320715703562901730249226085811705841882045483677028215274975402113953715117971695467931180009027678697904565607709976857437813739334285935056244971981506915638867480085841820890747543543460099871212556696794269696310491371345090542727825983321231496435827193566308411098052346413377077699582492309233838785378546545869515460184040692101461520928041642656030382676991780797940113268592723495449644619884149151530654144368824542848407771288349332473851869044292646848583727628254158008974757394208611197861771309225669029444866989232517907714102143441274953032378028970647188506668524401106541962773689694554873730814792151667638284717809877247999076989542519617490068114309312437255291335304655108067002839768670351413718665309557256685817218705127966930891844004458878583327661801261647338405771738012085288694978433664624948202000446340278753198028858852855477091379505929348402438729150928762049214094964995885377975065153660721476431722688253640093936593708299830421912055718183406768410340064780262241082971352550733174923700344322882584255775756981649466235350477217961609676778705183070468206987370574299722700436121486348062466277960250677497694897306519087543989778726899555818633061848923449745744348880252414592392544241286923139547429269941880167780096601318166290714088511064859914335611112239789378674223781817731972270102842070059931455043324245539952683582249378222413387242583021739655481872665253234660904432318011862155650024436144776903584067969431906562173123296905109212045623043548984757469399071109305289522723807321091283809098555759351308015972588579472491595069339257159882550930040141164961167086994630017031974301317245024839067624000150364309653573742684573715761130719554646935941336057835964623716227755174314244945715109404095431863628740760727315855789152135202335707722646151340311124758552751828948636033259457223417696598682855307070648938154888338235727703576984925663470058427347864535742430542393255793912193780789383713101904118488768571408786682615857525200902364104442914420387626412131328205620652161275940891484912117149943923479794854200320831448991247575283908368437232902502994522209625211682243519208771526756384424456514803551129797863498495218404246493438877510530507576242797911410715655900590937852499908637155097844338780604823644761908408857300046601205335463133284185168105907131134062829692209681846213915306219840585337924779272028560297194106129432690059797266709371970969385656034403030927312122091231833610306246422534312950104747307842058082106698199005993718106847243768069724724779502436821212129852289682652049649214801624336462537852121425734111873161148161202635568124446918983389487888927640088979975811560425702035038331736557931088410228402374898031933273165081970346183756000782801083093863127118083867294449935434514482004347250499788377572652747414248821800489296632854923783365643779602623484742491165074399923853718221564977838773352705041605732297769321150710006726058204673641484030968197776794629765990460988853857546204882516248785691965064388242836294260144345323450758258943940090461052515561847965266337331107891112513563050009601070095841624940289606928752137499954213293318057511779543123718359557693493070817372196442180076210205136573293739509115483916468970100314479109738014864601720726517409045156496081381283912700985949805218491866183145678151903944683414064376381952142095233348839149155611357397211806715684787940671795458955596168759129937192748928029186547830694795954049313763358004681083200067740275231801427432055726922259300679299102560763185817748920336700892116177048754049938705852617995073344698835421079476188047046378277425627638147699574863028969279540777463470458683133876041927559995766167364273952075380064882057692295790703281441227252567245780976665190696713380506985485630055121640640547931654700970758519571245920319759968873739489828205303994171349608405725083772410078401105672944807536887340571474880720549533001353621975841509605600496097141961648505425881123819429195046026315566374960803448911500436205542314609779649063114509634443788685264451841836650134899893177349172482205605400622540434698764517510368871272372215165330594247835597919959977781464905256400132502097225949982211099976706183246873749044365082435152342234595249023283311710852162220279837365033583136713716803531488327627937735218672897486761531969115534751630825214375842650914612405929120300919688974450026446737819437073555601954477639329457614277849702695044866003003245415409697686393843587122868251444437853913059554599201841985597015939473477613650347720381076493705977111424701216971736587777000548075655491405987587256741401138705366088871720708771551937339972982873774107425038559751948366388190922456721202357753255968833151632935558804406788489045944566115340675774255032600507856156946806047652046297869489818024315373281718612568971756915556991385443937760314058249747268986890051044664520577517310829577896015343485213277886399120049214400455411594139925754500525057125988773408643161304148936162312183089417298714885412238878292864721530384593222471496529398291080867140919064797413639204735218947260664044752620468021488920012318167981775062904582076625991570832007224663839403467308333153666676314997718551679223277958779031744860439217951177360658659140080782647415040567170956160095826461183507547191957320225554171183598249857961355408791667899687089920528337322553740377580047200087998039273549497137359622445096379799872002820920724176698006725036707749277640000804106076261943150695350030038878390479658840974141787127700742018656759628519072784500896044562439728335107191380960638932171975464848661104392766544111104643296529553647045773109827878242497019514982415590934312337249886558060075857380871626699987449209700735723953848208388690359191562389199122285633343857261413704276900087081865547734585870444953283311838323828669064771393381514578479864172003602734427572987299967873104085793949568404141766603236641021519728173550268243202256884227387562719371900637414403426269742156853954660215813676535952788508008363971103324141196616605748951067350690838398994509941061699430359096827690180535076123531383529605136459234510996946024350754874443242818802502860470324348987679406619005544900742881951002625816410784619579148020510955992080044112436432362871907493092557194932346482144633547342682467286482337888942924386808985859299247626947671756303048453348038636168778943137814322926797872985498926206940880706976075999006277273414903741401900383372040096136647079750113835188446541785664662082230137357951027680663651698147494967943883424124885596526438935580487198216284603193548932380400390079442513318786234648585241162253531438473412174809760868911841712062025156775115929982652485732388077908005234006753400008994554421102136312921474279293455144025223362408278515188827824453756193266782970556589037146670243652340624808659233962527898444238712670104126897427219246832656627564803016641840691417810156257902950119314085914814252295785349446208890072472493598762673283050203655408347610222525729863329419857421001851069938044571404692525647851288034489924357581357512470202455186847305962866198581380917640616709544974764711942481890904559312202884664887272452075356403842543086255725314814720161377363166753596046877226042985015329437105965738672922059213889538263658926838581553219288386136699872446409639160517419018312088654384066399247303595992609152815327070422331608741572030340120713487914405737092717913152962607217734351705864997422888469239891274282434558105194097690403738141001470846527472685057603218040525433779705725635631934526380749300371534497541553389066859605621431348954005045695621031754825527870599967500745915237741787404109679502636300160533153277326978028039396298880892387225846316307661074028733449301449062568236577332606262199424722599118056633358141216579207156800815487948062978937447268012000621154496404332051692849059796416522761178208298479674132243487657299545977830484216708290041746000472152682918329608940237834547080484334006681336619999459306908290487962684903797076467402425093195492984540473560495831400606360021102709212157740742152123553860633074461716644859660842949499320801548135150807201483187111720295356840911835669863624206555905171007455724547370128126044692911932775612629568894963805814084631050238334111221375464587722411646728739782227091011990109239276098786922855798280254017542723313629491158584813289780621403696873290727533437692722317696369569931497691632733063659789810404747942595448234847005183411416243446543035054201275144401356561547508104699930803007902188466033581218765233266823185480997796430624089927742573252355190320125838964573914925658012823093259929716264695928266433152520474960797241844842321319440500966094613513379647817211806636645168321193374441515208995740959590127877771785306302261966198380951221505031641128253118388650168293121676651874266470075216149074213150338540888374582839683805955916473896144532203213239917423331864335402462868228127785571685131067505816806921492697267809848236461374183698748648622376249215014330766979175320701748421826608870300204677559631530718094601118490807090514847289292151362447145996455918274501933123738688410918947290099382035855821999870323677684869076351738969849009565068858228653130334622404547296324953030208494570465401076477420041373907918420684299853721398264333996851618550655551470365038294376251799196585412465873279533494071999926225245294089663818860106711489310191219654037080771708449320614928748447204145888643481837773620514198846182606820351578329950865887273018705070138071943038001372841004681095078122852299684860039423003890379649177485411435934385812537186607952893101084795198458447179066379548155842388359397951334397813456540008861448668330063208210295655565133947632167068973720172761453960224987243870478980692621462581652433502134637850277958324759380594218637979996141022198815089413128742125975466841675116471188902517335850736289494657376232094419477098872124280126783868766697270849443801720944461463188194016951786198031127710795837514556007676447020022639032314835361683658971645728684285955744316946038116544673374144506335359102381553519307916281633357905903288019207546339347398118580935227619215389705272698107152267961866292000289507231141005222351280703733441552069813526643131950060266075343512878031668386538346130151471257855461321553344180191028929943123730331213010622721707795944018404379997397187847342378900949787143264619561334686233166086365680648901632194659195194473337536233441936923904048623306365597416684769496509246148699825141339983070169088915863279001538176998412916983866687649656598247750777918207696103104924111330998740887236279533292082923793468641760570539575201025179942465682873602313424771249857139088117046430719307800817148795391818071771505681271728961119924976287252563670982130129154357775448590339413573391811895072768677315858336397474651204630107293305444809536183917369297946452057306765812496801894281097021912729770240018673010364091999999927312085420956207199198664513551985666017255671071503963728746546109120540543386560715200980904332787612002024173297893098396840329634373728379470211183178454642180060171324987590065448302543829890211767422219855556993584326223760980502653762287217675831587805992958904551360141713330244230829175038731788788774671506246547289116421491256297831731316261180679228119910379836534654956338917966718081741395519069851479535088109221860006273830603242612408896613829681944855029055118992234917116086131167008495536724496108529410885258502042013328546561005343607333395622300628279012095778629221030821649731254901062888462076835226097018288676966592659321068211591704551689038579842618854764655374434618778972025495751414963621060618541870308918116159574490934581942542521731425320752139017568213165785006589261947665899224992706344157536498848345100424438235600938388507311744248269176756874916883579645760204381289619898300478924323011476496860932954749532179523583534907636129073916613810596953031774712966133783020894664019584434003485910613600245148427967388932013854203701482855204295120686619852624937182582211083565952211848517339348802039232801152034346045537309248294762147795052589295109870940266353702626540885747686630899695565045130023273017134255833805402612548005494837638128114423036262453194741224570019732791705875643902202344852469071860678539515427500478781215653207452091936874555808292608768567309608838257718417313919411409886258712190612521686632751966608477764165486198735658336819379177489386634112115493681982960843061062125267357309924674684869959457844857407784986397790121001553522173944602357761481129816340446936942263895530071096137054545796355520047912698085129546355768638032644285926693400909785129205426912135048741492325340061015297984573937652831396591285199380584032015718366877109499370140998206321274165328603704799568076529272255949573261326475969398411888952937324915605714786681919481683618120589122491323964620607893410618609963575082380863328134670076083059957947772575864560941870640365014220417679825331077949908621043409274339640906771023025228830761944216436778049871995142965465845551909056462800968731845194130876162680606819448383404576285076346781952882431791782798364506876233422218665396487704668991642890662170500136190858085855554497982414155691548635994305378391352667455606178161614483691351781175543247879954805865089541097121519389228674978116058324672888391684949716902595134920431349851995025051541500681969988882279175869749461891037197916332379824449726345152286899802856223583735441925653581490449598748886848558377114206337023382251541137126226109722648286769078659376464971111913881137587060659351653218433605836208622304647638190673875079552294500580094455890244075496184079322140122323165409169757208589225789011602541227381885142420010823708485669544195182391636999858013464438864931160522918586869680265958547978396599508994220962593910583219399283219766733581623396590997090934632956763522244130645688099325744941221198905399821330481039674592408885603549694500924779394940813647652180964401512859865311268399338710454358988646530992473012425286530839246896117677878881315476045927652039396224623921404835845505953920421427930843415347650991491982068505564017072078391726352235737120064420600063277138375823490538587125977123536129899041996759887669157291936099875116415935900214761614453215678947929141651422353583081744983230958842841780668248980912643023095187764732426990977341690492136368596865660782325189407631223890150200332017418077470923035909298033914819976385213901942476345890669153758513932175630471233207605707862738330442344899010107360766145704829142123431154933064561355519020744018790118400251555522746793639869839252790046193160402094368351353916458009268069730016775197003842295143922925321341690967786730960738867545384695644249553412526835144130248048596201040914342224160262749187979284486819369842255206279677384537169617880466075577673971353279212425321250019294981017032917374610851257643876855848122634398292510781277858132338083008386153659831960896560159209622663548404382309469731481904530414027765721766432006505104632661575142369057018616636261866228649327862869973286243695508199460167097034577361135589129598984649859906736236208197145718758918629804476937297001629959415926079918639486209114850106219796771600847630340607578960208229902878672859916622862171380702990800505746000179637403168643065172542130744436248686877366423240570365275556442753674965516418797622463700906693186202995280109155760384763069555206005792958734371979403748955560976889817538153007586608281531406745915504680397638215067576589300999095335519496818085474209661315358469848497022388250999048064978374835719506037455191827285363447879100093653632010798500732763367909295479108599455479300956225109390303955602097243598164516706295532280637693882748754431734952011268800674195578906945919861479175179777635857482180726355405410970387452562402792584889997866195332897974939722045465708491926198249884487791170017974752935294166714758813584352661716693722805091488793315943557288840565712545550292990944320352063787655902127222193357287823085469319925386792004213661177949296698212440521461684779212790919209405257393245528326723090965717121376993976877462421291123783450409229661674949228850466364611004796905598033905261196089910561772384249828537810354571625908526356231622614892908730982601482439507329343532683860046635974832618995067510707964961461959709960106220116223021663397216212506716288728694457027568527118350677391253236495999296889577228244582648082781546041479690849982202039307904292322328968594711182321890145018596986437768470357260039744729664480721405951417042543312885967607606226268778674758473658008485614666977466859781199277864938728341118608704547271985751187880646164903263945208413477260346518490258670019539043326506503730866547822398849061314299869758422072213806582887917046823247265861627990021670323927935168853123695428808060749101618360199228590912089913568740726741876445716724528576008881777864021295471584911376475484717369488070447287607799374456721753416828685368608599566689732484402936088721273879919633979038983404530112073199077079521908613345230277176113376977008683333894099568430871905954893638154479428387811738600949879542860057880627205162567400544501281607665933177554046003821643207258885048492718509208584579455982533944787110187788722657025433964426323304229063957077951909051841720579035030640899203047011253225055553789972120663198281810229912688349689339794515819834886949845484187258206116255427801911951568137517247372593359934658559398640417476663017159978481872854641243703100916207440894449409580974238873393668480759054608317211660154879854387705079673692415345846589422196338832526807466309447470862713270582148062992720187394859571003507185635393939347035438181880652224112339588540366228616147642226237444143029616493246397745515853467055721768391595701544642573753217194156364863358215346470967320152919303394790724040452408254127167304616803011223849452139620456729159455551446146839892300266429575168404358260418454128593052918700868388444498744657437763902274924890812653649371436047978400278187903430175391816262162897946702703619893222589661545525013229761399168689376413416656753915296922581891221302707972219381567520400407151179486028754879639977069488022917764305914679261622734264229560775666414192367733550078638638599330744711264341976470182055615495795741523132683814291329333031932530244445335435439323292557742465917062697355782483970994016374074358629003246036766368472046160907892488270322882308505162629052299638450796695271355486920312502782912288695654303910123561082221390439552416089063273844871536523142520521787258491523948084519451757204531066863435886602720394511114598715301583195987532937201855577424775969405918980734007912072532277121111982289422533784141861351019686076135039119848851177681931816638367324042298695220815303841783621466960501118966174385100172245688717120109323441493190441790072652877761416788516241107417968536608528824360342621545137849132884255172249771181643062296893249932388691736100641835910607977112477110102044488168777359297468614000757406421160994319816653807653329151381998756541917684685348319182671335129687628355312845019527219705764429812602579299700934388152953515978840792634422704519122884110051156608283182471967218703679726358869881958103012718573761382803356519858775388614045886408033486557517575506690958966415597810821531527126390173605438200897554631422302701482520994409750255146816402194394187212271804442030193528444190352096232436263340360095126681604837208582790722789269949660932211452995035067093180427095920493171388133724796434836751635264365082726337879388676423409485789879909471860362983743245176415809919012711653273446696565043153225870577690418929182813633269454737722272702135559378153054710171581890128180498644573877996792991850435974623887580717867709209094551234924771765867332753965303601748907962324345362448184177464998908260778009068715855707209396124219414255635535796186457594698471217743839727826034447873074550798931981987767408822852352405284093969948232341981361666785432955292116536488365574231733274617956027705077869705062958122796606201729803527335626357915983626270103758456380422278184771985456794227253613859348570411979294374268366238527171726986687639483694425054220983376827216265174523937737695042855129863757401451195423130160787001329370547588884896048224087518244886090082311881115967815095985302067019795556067025714514244801972929914934613270978636999814284927107881732906457411421845266978338352415125555878797635739481728379137437074401152071518328672010465110407351810708805159227444726290492212488721552092376087781800520398214953078154517149593389590565816855001493167803916220442174401146159954562783171385705254143313964576015039830928414909208335627769360442390994118277016885851764168386574450494256722073116446603175508406178720189264518046718720963729500363644729946468804182997463946495789451377044888705348302274739420727376645651581800070537937698531590056324536095748337585289757004510475791029084033627418114281877246739369861589028248661957470140372350136641641569266735045076399947452643042420074480911236693020465946631788639742955692697621626434521524994882843364596286788099252179969818620678736202701556946729128465712536259077702734908116173913865428681909126773544222172880792379904785100672720897468473470118611815272509122130925195036965810823446757856315681085558067095912878681247725625671585297312594868363267504527444698875928961016188667055757150291258899099101923237275194413453891928046961301455740122890336962466714059925447784608427853912046987594783651037635986258828992389826355506046617456074627092462651430097070879026613439418339857773083699098936819815826495623230739699504605876883353697375846121522898544966214073171911987265965005882349211252470533747936743686630674414205613372547683254796192247521785650995554103849946199968252338096805493595139282654231312735575370947410326406467323451213184848483662253730648098059859204371574530631465155436681611887515345490595519468398187172776298963222566986226720113532256120095551774412610496807144803162829146739089926152120857636645680612910303119999360093277366245486045376384246654373945371455209356179084004007848907768203281897312981564846019339543936978804292963778163310780062072120532576552874716785978905257605814751436224019779120306888825975029580550986378461225371603384956457970928924720360568224426795582131600288241991499416142727204648981087041872815262643009978051341659602064752617081291547949978010696537135805058580539730422697628672730217028457308327690733376079243897651695615159696663099325082343879662027527179405567254292098511710953106018172836296380054159287309979081955813412894233635588000488763654558706850536536731461335736443251871450509399624058793249758502092806990044711565694898599551458539332209355022857603673563859016817575482416827072984197308220385102642617495603358861020825406399480880134290396086022028627885402302975431895963577396194074666015958979128176062340323638345448673500113127854931247967145023917227156176700481881047197550103194155263517979987973892926506484441358992181191801975559458227110845306804759389307483139656951003689238300548185132309701470350399736816870138994353465281962463175477084821321506307807037259942746841208613808670411500651225299114931596549700657581773231684420481033831505425686246619705821234830516413467022162677365300927648790985692400770871080198954686870393089992073723684640886754724908149213452740664481336743403386622037775413404325713727048643727051953754971177740643304305139274750816148497782258318418020780054973128467149453089645183726546462205592905973338606654932891669497938842743936422967352792992908244508584370732314507619103113755122600134664481096176654902528942888559725975423245967440312972776525759885640613832259450157087415995385782729146129813798939154709476281391916762490618400254304903151731763163197536531330349998839406764471090244917804663784683659809411918161991334865449882172516239655931706796633748403059854365894130148031885625545342567323633648599210421494221151501779105488584917492732569044116059191974223323675619898458821348440922437371179017644983416844036643410420510958663890086740793669748262147305285284369508330028618657532261825618681241510446976836940095768084890055382606581599617598677548150226082675017260602984295872209293123293499265299270125297270260983707213771386522384404023654414076709252779681290703549248946554415188522333210222217906525894272757241991123190623197609918183806467781667272829406510897447499748331356361609466706688682995577137094532102592047363302953305027266280607078663588165642242438227075641997783443165497096984776295028534150065390380576492240177900155825788167838211153445028182616065323343686618497540404941361209656189234334808410295821184851674876102668548800490097704476032238590767728570827304244048834878837617713810628300049253433573046830080420862034111447967128754853078757851993603699823548166358965647543046251524714398701724843605168472657249718735160412305072426252597674125477232072906649620873611531372525249065962202971901994934756202451784409071987699773434233733576749460465569635958458871968275626387042114224189101449261432973954990156707305855250823096641982178289457727178327379750821840305591515620894296305341800974044079233210543817392961108323666510156985245262870058713793274293426410897446292947880576973627275866811439359472617590331032447574041147235986936759484152913062695872900543341409307856716477216748080941115927955565761533487207168871269627653467255576334525211953252704233479188160801652262375311286547424037432105784839535534920482244359436912697729244134261146542678262179170873610978578878708795604252388172902955558228604445167178018558562323225048274285071697748801294764679605021887073280510588288730147266871595095425689417106871508104292045969389880575323311562578911444354959783573767517189589865582200607152924760734129191277815566741237686504916738385242708231613778038889615055031773544515644170259600874556891754153451081945557846325110558735231597929635770726494239958389889227270841546322220390880627431908434384062583547393189822112981627393280225885288084066781053333709969337046181777826308572068272785888908737606058636591612406763817832529863948609085481508695267425909613547291304933397045608045704582713221951763104212988295411616410408228095979490316909971088593394314646349447711895616842985105397639342562883632026841859160571160766598927596094343534835117969336426686696543855065681915862256386155097502601466746698560202376234318879990879168728981694489389008294084920850188405471363877850910404886210234369709664225071568115649488319417964599048286246773736214440598023260424932603854270957042292422651725321690344051078113920878304030653425708455669174093214826498908344325630622797411409294511312073507418641634529919075380445011711060540662991174525277447208531396554568076787334312518975676641088392933206444715569341481285304758085700406315938089940460285249154994503719562682874049585046120351663616876239848862335822909272593623848759453634492703566889745241413261039843393158134112812404071407417777597693291211657591047507381158037629872606140400103363761941827502949776873159519835151606861251464750530731880801477817662151843457192730676759164427071914908074458234087979850024628334984400263639662351339255641370641874363654959886132146778640591136865148105242853192886749863680488197348722107924139444450135593909725836397836679598358590719592208146243669379547527449787069051745922620731236895475894581855284138592998059469572192545412136601181126761220471992646413654038298055187275093174115244970333975403183401740446397251028237869737177836868594607450209183364289444411064768957009560443847768305498207587481534818061907509504442939677325756988599428646248124687468585061534284657681154775377952396903285633331822099204770412098873041071804651840138317734646037486404658589279197675117642760617620360773128875770255773452494148013215773776837082084547730485743986977016664319742487999471998074077805233219851817615713705214415764211656674572349573889895658981029391739816612698802608194657313149847305834790379150139082810384917336597369888653633361285811919412870740856627708302086248354708280894876385146537464955975042089132255778971769335335501227858291713512634410573044174298791389773110453977713874960429758221277691723551318935579756843455153347492389930840519436736497692714897383325951199096224522000301049892042905466117750640870483290540102419289785424209956139387717035598689013887616804380720343764442478346711344275862177760016578163881158270743894457750081978437705017025188238291668754507163520850005326369412091451411323240864473197262496311931881489849596040577007629055762865599545402575108933073267875135147235827838648672389596059953097422083027643910449299012758455206483093241729664732657036281380033604463874550919700997695854287965603841678916894592596622124193171542980101750881712262743726080815721367648273562938000677137511488418975863722473280346587915334432825771284769689258037915144786113299872325366168519088788590345377008991149335824718106369830519002610780717208727500442690940422087279969855959160734433668072676383937577406304050385284392562710192582097526141700829795944919305099734276304069592878020591752435408721041991667970473364215704195580108772184472336293741603260535624976170800733622660900889604747992230564989230576882661998178711884830483029722826670682035368412337084149842632455798114178624853611003780783592028415585328505078560732669377951851772225931941144405672325490247985889722300107127179477237355365631700180629319446280001154812580613995860956555615405885192754611423693363033755424724148771040738919240202108836666659241233590728119211595729144374803293394827883046615177211143327015907049091557339710878822213324157691944020058136967111712263663506554067035392161511686530940632481858082170035928084001928524642970227064155900952891239178116203377126510333840094604442368733426421757567723097931564411025053507188608247652072329585559678477375514408510137479401467873756395407020113361319878062005898271388300064773167119236586817144889316812579164489685987404583082388376994994047449970935926848482345741436926436931285739797248757510473557788858263365049361547034621124537645562917234400242879539131577606613323178894649699785763599788895507311864951687595919343856765294846402577026111105791957595570902680021913289145965875145384074013779293276302388906672691533778558259501249524952643070965175277043817612966827786893990929189577793365637655651953848919344988254685004793555053150093951154097138695863946851484147699078839768339249080983439353143881975980179385833960488450628846658305596465608897175035149387854032178057339523515436847312315569479004171732422305586214988849038052096878779015981384361900550346196968204290620731688467371676735911047476544707530764686673066302937524088454974129879842862982428701703725881293757281974040063142102177855532713949458318957760265583343898468489400134817086789474539898792893385806858404297502994170562951318738509926976686528650071504924452363537796968658820297739487642444479657905739721411453270931378208341599548200039608669015558184827147360425752339519382446453272700199693827391891619214922333290440972378744876525518472029332191722884361235550427049794390560957468723804185479507305397371812606773853087652886050386238101841975057413261718189272084895303284760334076925350773177472819303071338008054548055865439244792604614537679347514812353033014109734382160830960201690297302004951113568520225507963447607018509003480983262007230442289365193479143161272844025308527001693577447988815591333915202576142849680130415322408435180652629533910400892412819525024254893695701653476554951404215050857385817335127521018872768513439728629454831687407357302565128825148937797580320766038462748446544194208223463041878204101570786982284932781122380170324656210547721837734569867408136855874446400074555761587571157591721865157607903627407574677961837624238965290476304211837492683626354024857802741461656656449023835891746843393395869965161546912038895705263331946398557684600564839380869881269012255024846371250144869441953951778236746666467770175693282414625740620389713820743260750469677563931413845553643924553203097033526148039209228062915304756736308277577220678414755963710591328504053754078143152893912933235601284279580276150525208032971098981696657897285226342097443445123490737306599251309004540997256876606947509416254897933615954332780063279941341941214390315965875315781828353348680609843918118925792376266035918984934872858527685758310332263661820655347648230483750013640773989057971105447236369975983204786903405933408241384535116403550516777756282341717650898427971396296297684019051509835097334786402722983264264657683010114881749399458478402303204590709020461599703461293802477336305845044510623709891326537648428485449970302947319733092027725281268010711541027383733295664732596586648060390471095061826079240303896237080627933774408246126982410813540299697190782996927662905543248858689907750258437959767382790458418707195754038174644259242290229623521146194847098415013738317616864018788234220220569838907418144099925234611241455861765784285976668306315994641345169124713197353636364966975098505964056544650334972985238377903384767919709749092136650478505305061611869051855795626539074070560831730510036802246858653813272719066212200895731662509792370575673832669013050164440758405648089246667796704404583742471841241369881351521919229092747025860059259973502384915248825491941361278821248003391008648107957450850373820569061868256400023174544242595302463075196293022783195663254546556467673696092297528069637414646586243645410857526381871212162621016104659333162508888008911352569983118733856646407186378726637853687653211217839865656457429908195485714247390610381609908164351682983062106125875980329826323641075371595647804892002888575296825756358458466711439725698668895234449114929585677518113856530182608069243879914890933269185620051705881997589146117299291159199601202311198645431985241121048976517199041252741279405114796197835237787017871888776145054657387779750239011421751367030863111373482895164418388215887617619608352322321578373684204358281956632944711979586545943894140892281486872247682570820420151547777560370479476731144953584581057682195490478195891561076497631870244456960138388771247867800238921729301368848483169471652407108134864425098948465208232288559816168121786579299025845791378198822594345816483822254417950471839079717455455191454254129042756433140023039450225756226093560105880695795181714842935512467799888128822096367632440913129300734495850300020993602151938108566010194423415519565396969737749042298213510026979481316791891132726539843877843739147887660824846370616808768484343058556764622863913365937792501072330501742759258209685925503094189515883432389431037548551062746565373620806488202574206306133355587080690661748631983118428226696989419398030367807806762388363082429741369245326815530561295388015331731271870193768404569288395913319867329687154910661638714647052483858537905614522064529457057771358554107430773499556861009599752772112165608081608171592462953468466455708203123878457866605171774998311218451688053378395347113969031191098670094651128663848408094592195694659496958441190364218231303668283464466051804775265089981328357229686356224750317566299803043368369912710110673549192507877175036938826317356500945893706629581721261285038713569302268113170038827692735122945940499786163524716547596694132293377866032042760802689878500847493121660380926129627555668900735957152092312130186299040977998338552816386608731902035486720430405180131131317532860442095681533521822582282907134947131288606779142402152996292861535047848618514158920097874921288868915810998387759193767699969313163290032277097728692429418811754335274982588134301240419415662843557126362922596165431794955687667601709058581768832946770617973945682970058442261894082940782833140078848948612762018541674119705576441360598503611730544756483114998733949537748225828431306446842094779500258511626114735548999139242469883578852671898802126245005676688656797865204091963949055052892878608861029983003690837190292242605835027403125810713274119767792417996337575487128061751568374581465356744919491305282329600682206777997579090130171626961871475551133711608411435749351423410202251428622587918623688555562683843093829967369069973533724034900447698725157325422995382188696779314168025185544123123971560177255903382225180967874264606740670829542908815880091224137910431692049938515939780721240558444076329528509477975234112609405118560540005315569038665521018053593612487495648340924543715907995585088095793503248693990259393752103927046468467428553352668104655553523841101288943826872849533709801695492708678479383010511427074939644174835886885723017645254921610790944101796205097240231634456254167006743373992978989024172745624619082281480389400896392905146281895715876117127453600719168363948107970754369241530412430663962390713382062138227386465774629661991861537426322626018711729534957538128823564034979625765784354410884442247358031126516744094057711520498404410113830032093544389591320392869356873654720768466451891345412867008951230901291507632632479608739740644822213756770486988622818723839319794854438038232118773472388568743995985444080456295487263206554111446109231737932985387368303621238221361847268760864535283263122072641037488621591912106420973301402671438507820956224639677639389081119930967726382990902793882872791709605439150109734994317664551255449717023536208646005793549081858423140090299735742552288873678370209634846775882996374213510380440235961675889199811151719012813195872683620971730403731962761441520062775973425373575658228332667085869999226827806803250506656592335014224508613863547369450019138925617373834958707962485400675636445878949258987361904560910966862098107661212267496973774878080493758849345364714043451914292409599771042080158941576635799663230494120214975936788587429124864015127696709753825944135829309283390496903720140245318553990412623091547397152146284678667226668393497166924221159697545270523734653175300209002600313948621255516037955610117898709161713355250471718109881979739474698033093285246732174460813873383811350177464810098690953465842473241932968899922953734022978915212739867597615112339119170593268207795506150822362691582533522928497377793108317628055356570947850811118692476884399725199440659521572694797674071461179469551433519761473973740271841668917794286467628312820921323072403346798908129595806235421807729071439876376231656997764165337411543350747344991245068365003556481988374386670709493598053256090111812737632725489395409583005836242686932675589164645799634497286835011682083641500233418543793527067814338390445487710833151339659545281028186217308910089565674100975529613480830277958835211135230803366732109533867431370321644557718716296373489261336908831904030728986891642671534128078422539350097020416790341305642355234431217876275904289481636363869110142699038566646334410630322449551551830526951715765413021906401591731786657921943360028548470266320128824735070112088198867197444738081492194079470326199205120613492208496820722174564772374866857812707916132572392610519305200434290081801624399861664665757631603770405371729248075160724697988238915475658707461409335144798955917273849677851486949040759564311321576831024698986366154310970656319706362984084248539654833328137246776100238228232228651559202810931130270428527659238841494372546146564636706183744813911916135568177091543724346777487878312964522774592822838558921903397308196676059675245183825291325697955396167604408694801012153285584755579497952218748184872456998568423958259688069670849872293655920037349644900144087555264306814968839846031987275028270139573696097899969868060071221042019358540803685084707233369160024906348173196037322153444648519577213525157081249956539265983982231606691789354861378177317744460118617527080148220800239203811498688310412713263984475019655339210654249173185220777620723658373533592408952112053961360904159074678616790298160328108880000995309961532323817173778413372589580683560976844784062774361887471964190288217810363669818459606227121402133190704895536280720918392855338139596989807543588832734306672216220133798094865403699466959892404719678562987002034259999414719887325153867324472267295338883375650246233827926365733131786274846006412635012243692648434565208833991115735630078347520092527408692077264904835727673316697229910750137426002738300382269898242569569193987894446419315776341217975579547899861141416083283842933895897244632947711764636022098871685848675561203898140372373569267460643154296904382466519940546755232213580815551207555578423338164676158449511129951404283933880450137728678101323364953353148086386177922447167971613493582650494657950467336425430647278580885890918647199080136261826662596236026426116515403981416580618315183304144596365280791833213265876986255815713238812323543640644297953745204584760160195741963797692334411687800634123680652625835145550076131577550171695895906469330190406500818261519493257658604114968232627615390184914210173025991581145552413991565476627886897189594923906455703914746685950065856065880027342662928933641471199690571926386447929621379879857102394597295890218946694100739516198098958530665623674806224176817917602027426143884633127016346372255688042862943346269029116672056733883649049746711019585440823438546353079720595638947841363711104119044924342464996619932229289675599073960405983067946555840898138552583655611523945251317960075951410825049437314487438914193737907319235738873855001432339317071524428801494342481846672290758894802573517264798000613473015492516358191136643318089050013103184169487591033979258626131881253988673776289233240844822931955285144020061992636072102568352800507258045978097011747730466051226492377813202621918418749806560764054287221458178455655823684589784986998629773941511759552265370877426222620985252866004551567689802931811398802291913020593038666187685302526132212255114965506815921852359331531112917338342571228767518324324777385164960916880822648665354957867237028095652286264186073421268025113223530981205902975456851041993944294106435914452995196434493787005366728281789963734670323446361988089065919424395234110605814516103027847203067712305302373493530013472363846841741474243476227384640730987982319301470517142926674343465263986046739820655184945704747493975284063822493603404510112132530526996403277676260819666129189986166345472629259233390665453796192845370103464030081910692186750979538545690511432808250435364975021987127905189682932751222720548743198480166881188203203270014240400552496267244842275519046501175568658336898506825754614697056856899064159217851670432921444186437642544522745965873478242886282539090142156009555414367162288815788586846491919095062258960511311966452484661116739281316265015996239769327977538803723177046702849965664340054523514646934986290769528053769100971240493927009045557833740608232892220287162344406366751815454781526463024043952879067257150419097557224436643390905409234441034696627764915235761933085880944662426096468324762800263887987003009451277212757600019176339912678666528659089973876133158072315107562671668722315716722282844916683713770835155500289422069231837537210527870806537693933369123124562671154911852637616152173740128506644621770568940780654778774019464210943155114409283243588426820799804653148496262354340465892694902471077893144050824149958505621225747168564681459135068930479165547650886086625243080942344922038976303045587861187638560969832303691124755031401650496249834721307314001916320996880900448569265657951242821518522232684125840550155685377190929002686600946220369232165153383975009916317758450009637409820234889974163980753052430615533076171067191483856827810775646023211426798922900722076988849373268002099240843097163250835880814409070672304915144330300265885296054377013191310665186346463619500035854777835921371450323726277034834324399115780725467576741838754827048955328194145418818111069344455053085837381816891550822244973803398629783504175268919001541164985887257760775273502749219755200014595770805974471473637203404211812108111566736030015551474563348211064426739138986438108683321681138935217233121944928665888999191479809615519852382667222774316015191485517186598613680400223372138893529828484322107237979476518615945064201880376765204803494301929954181838422298095972045748709085303025264343785042468353346816649676357644743165461329415723106347805781447015470223401825278602065228603708282996922006144147448592590547428122839811659292115597960726450502971716291044902006766713225031252586963190367496389099680085166093482819027373903875367900333527924643530864462916411702097960373243232977250953375511937146890185929499450075674606382753846201795659944742476438001477731960509439055538644607725139181322000584445567602538296449871960734372110261415013525417604457417378144157522382839829828366451167062153586420524152514246194778834174488790627807593946287927403855464290809672527013611556001752122384759918624062928986625148848044049216131814975366027374161459651383610982961792060972432482259330251084414326215245100948580286654856637624847181596639329310001128496565910737162951934928087647999472210684510337287759376473245680348944715285617638954537765441284193439065982079700422587476737518957904674914465690043080140297071730500490634977866887803344904910306645550686570314083372706318928966185488705193026351420802712522614319829463833498833685599252657877691409872416426699379062681615149802781621638351946337976107342220802680078561692959634466130754001468210843542399278740221355505867290487008359698358805087096380691520560401325598437101962163324397984858152794020853055484595413677827570026819195120359647584404067253614863254468779958103328007118815032887392003946605627807019930159449406932006579071133577067499834834723065296417928848151366519737225557017446516885930672647454913440371047511738677983750953285060608215970297092256594421127217600423891870000030629871931636856765761899974667339447704473355146610400572602415285695318011354267898026394191767315017852299254592538746238614340828289480969669132701821992510836486126264155281539757949218106676628499959512326750601805442239910337643388008841878280882064672045902172851672312676141004807256101910484253779397670311684450080634977184058160321792815097047131654089412263125928020336699397771012493080624272959679903527383292311067570385386279798869276807161841525006305800561131905148181630437126229353707184522117821511082799323873517961017222706081915027168700703690878400469865702430052282415882048710857346991659606773406099033927504714448418725653011838358350790901514883455751550056391665376485458197848668703158097200074820022269416385161031478228181348292491133334615549253294607304053829687307998802434544169423039529114874956091717068881460492991135750783948572494817012812218729395450647327015109808706601482311130588532212668534490775690668067843976519812222810329178158596218338573991574273057410904915399504842116819677245070902527273083622794991143194522821372694208583579542911502407165357234867868975337098722113751957403344083794970544528758215600097978212443353408973195306579933479933143521010580780311916892304564612340998137526678471460465008655134912817117486201147944294937493931496917112682030867418180628659946289495343795302331686816327663522833601581435820264313543059471656845822879615501909478901631499331631492933576032385636481900887484836201676779265323461857113717429913111641252343795242090120907028850256326437556874853760167592584590531955409097019471137600350848837528654865144808097746167407361703076380797029584336001641756382346781525497626201048690823681816446643306402042559520866302744816872741078087017207434623452878473608377617019134566745006138941406704871113619295606879697116848813280618376371041662591503954970290130719865534949689963223123783304563955663698513619356939314471393994555623276560455270779002217722918513099830652197067691548969794937395538148835779949379715436472331201936283323871415963881081385741820896646245530260841158107560659674672840976665867337825056400656814863532929571460366847725353976717023652309110581561448175241274020307518157946949001572169218505908479570443856158358171172276907558766810903462409246057334699443406263104524195758334034694299963572098153514317780951241673674798581701797847655576670587045861316235709733491783277484197708781001408347272978944585701116134814115344797517205782369916397216657508228125254837737477041966660255018061241491848317308561217470986920183743659391749973651482435022582914722134450569552190488267064199344966613867810959246194109990299743729222296817537712580329582425784324274371834502775337810760767895623029144708987023085551594029205423095087783495952959544950932393353245790041788737041559702180008208330212859108096579903247665019268923495509697878647137517166892859345737596139558667776202365100148225401871835320017253588542936784218190541603546446728971000348511139799174693535278093284345402299752683224062772846609589913340175679636873928532686398316284683521703308638980025434119019887411496972735713708135126970308613386861982775185603283649124202138980051751331974195856995256446976453058729564627848942455792727270807810450159129293740069494151953884133306207732171139900931062187201489893459600857225160393902281246762440676541596086900296767009931757922165320314080172714438337368247720109926123161632621460439361832758042388950537281649826144935241122175032831915702553957509891241606400493122178467968686816768407268663897721230346323032092595450738570750337995001985234495658046670607363098807561639513887587539785110792189904335816184442284338662695044383255006301850145776663418292293517922449062602448871265033054029525166141351659092149443044499448069771307730790995288725389870084660390968424924922720812553139636208667748721236862775875371300440896692560783748112782940366645330440339651022566221954930575031967998157038952628569222488793821969540381812207726430855448264012173865569308324224094875875646578895766887717987932647815578529291471095074538421962836069513217975642725999650882439722202418860488288426447692750252787139914592933162256030897131722560927156062210588054581947534797069105105430264032173831444357209857903813580937228439407461489672686578904900930383681281929519625197431552739382665754620275439718691150393909707238436738530079409086351732252443578988797128041174248066110396773589488316771095244654845487315587232049048408296795316996282162180829042061598028442435035798342926484313429204286627323233387709984118220587854358037150856472581727328201187304303945874738689063205621540385847841368205715015860383335377618995322356933038492800022140559976336330738174837723956278299784576932028920723046353063660524670471469392117092796805598887145984143599618041231801654033232580145732254676476966054428364678282463901198759042453633006515001666195292597079675178605958486779848548984426377838025123103999577536313940680291919317178578925885893679287982187171593449993245948242269970127547539676781422932576811226306530031095395630766540946983568393378242697831612432734634333878772163312115081304486742998887872935678387624247368540721372398362192357199018685367873783248377564899452459203464941821712307175883704789746993783877326024435463234773950160626051585919351991187019641791550436144010455414370584566530247570698898589578550669420644809991998135068256387102441344359642048808797137787350152788019011861870035570277695708930128146023366570066929567836256626033131143309180520958031985141288185040947702008070715820407883846012702718726516017577235715940453282116066326905584175875081795473822047407263209170148417722473650240640829544780724555016080638924858365836967728936145637745746561157796377932302915853358795519369284519422320755962198548754977782647859428548053399119644295973270192740471529227259945197531506127525009455652454368348847036383869057221387100074034196020235818225017849040879709889414904816197026088680725765624996502413319028890732143691564651902174035238743703609036705449154883179347691843529520634786796995511003837106572238975283775677019760819323923730304917711095701235030689019777956099507332944174611578605140572853220905845071411240029450836970019646332913555136317491331592862015745090373771814978511662976745434447045504586617341357018815527262437248770492678064990055483915524881340610989787778916459626548021242955603372801663538344201772815717347324997337174259233889409193496735717403689849930581892300744644614328848383047126928423314029613520052592036426558501181585410750578319948997143076439858712663488561201660078760194747067081755454144554222872551722835725909891421643206033771227700612558138682688379754157255568317843506069274016086502173272208712023680285898049891671302255682368310834728879844072706537485054729153641253742454489060433479181701192308593009501876532984766633269031737723103502301876176825421049863674365269052507408242060927507451057146145254915076282529142347111710007236929959123188650109985005812061567311205166847544904579548485888341829802327277791432012128473344815380837712051326521581879393100959459845560318741998075378264476438980139955088308569513244303433496909474408718977603738702926421018682979642341356065875129260713962810796116507691115215775217478174468240867803935211717084435634474176938497087643171780089754855262443789507497671042327958935211381957771250036936241533568489360342416101102970243022262809440688515722713789214683555663745536867342836057571379697610833793298785027076947295826145120985596147039784627867009752692066460234557946997481244811577699846327022438320568170730884871806316086088649071011353612228355151873211902051821233465692800602059666752798118762293859996178637387114343016097076880214078404663242311340748758180352397846784999010088781910243221204755868518518251724058105877832647466924897134911418442696320326936286904411033315115680275880390171125919701499314174636977977312471790780917776376680050427508349985140810156875986100081717713767422793442880406727131570036644746103995517729808218693889381738102032862509998782151015784277511258608858752131233326963201945809253992858916866243543263414093749869480147108803495468803507818203899928206681408322050506150252447498286230090534569629815322884660110403211942864605117164127042408374325111563454166453592207071451959458669291268396588551671892251778986406166874859381937297676315713704296823158343017483812894162317261123424844324046292678017474729270443284466461614164807324413677977541922384799571757440444062041239375721012641729681012023148410223619427459456436361612424674561697615310610299435165977994218142513668895708646811784291895517989102407358427732469062583923345903673082332412285508959219702887539052447447542860729269883518971378335088256570544537671370283882027022304218507090385367656032162414256072314749626196258138417353395622608658080039462863999687954286721298407125425630940387236412550497011314878272132591311234812862957643419454397200892805346657233497986410464447198155401066173782294331936777248467960287244241139101890160972005732330374068026745614931432821728108310055801810163627249292807873249805470391117950740957366537920506363143489705095523387975228210466937428842895871905005060464137735323461881734007095177697724069051226694916944577133570999596407377338566282934964599145834681601862956112190431490066780452925390376313646202236841743832647420572037774174028643770620704191974915056996631116901039993490244140186758732148613125729388547033601962523184228170012193170822471428724223558394660215614547720940182533414741382043756960718012419836342961097577221247508191499557376088249573804836985086418509108064029713482573161536781520717045383385335337231225061991377552436077515190995168887998565707203484679699306129310744724076345468727832234977794422214234354674071982943642425094665270811711582429901750657789383180909743786444042981761284460809412843102579631093243345835716149549780139202695149753380674420724022753779429268115914725636608414191474396160761151143830001283298867430605431169841795301000734418286126775310708412503460224933536510282373582213854078381270914106923087736545285594203567279655906670274386086097470622991731689580307443461337876091710796463955586384968356262801328272930939595359014207175018350389360721641595731282225905685296152172773722644136073379678130834754631618968129099906928814481949835766630538168496610113879441587355977143746005554385274343382069109090572994460641264774675921121224642045905020708593076722653063820740392921757564826163402816405199788728260036612263915459284596364100677750733211329809840900520756019216293935099716981399533439158657360984977422382598573960580133152877869891264913183339886716454086042355334932368042780294986654138791013879667078164898699677593597212893504780344471749365087560616410268177098991709486267226483099707291707168238659131405518364284122116633253441401996748033795019438048688613965565342198102717032319510314700699855866475424950528620900382885650423446748135748212718833583154264075091279253375267215881724308308378080671787006338238180238584065701841403845867735605095625035977038920943381131247429385984857297384236974569333497812049773826496746326764971192700255690936902982951282912813094799208563589166477529776304829379699447263726331909393954444475292230287770835701941311595687065246219224749015452962470537854990738224325039116005112644491203532622294830784774065696858491805014730683059028841859912348367249623312424894400711997104677554084588259002624100481662194860664740283748993528427296159072286134019791591680439147643520962159204617852155837470700342965615544348540639846429401066754612174100683162122957342864434568998496941977031343676512218919772985477792719660081205786757917226187241311919154958156686497485577867493297460723693600834601143446802238383772469961324281400807583153237536763348247256964712237861339885592255763312555067298114095187650503035354161919345447039706283471201108247203022146012836437023507667260097082187764676468727987227660234518197583190523939894916447768244688827557586179856293513414706269688174182871920779189298468736011593544620478222581635593033739845365780274560511376938556743236678317086996118795717495871982665025874990291740698237012206065613502379614687775814746545152353185361278752420833075237948324977336317152164482963463983680732258791756973269767504604604022935212063326410755513744675343148293501448404708730013597242679488669944585489911398219170399205194163398725192271649229138183198957084008781415232668153937890864469465157011048915014953629666251901365311365677480312623575930345627734660754751183064258300214619424739793786657396699584601948521668853673487057789392605127907712569314257211691939722539777627678532030018662820420794923833234562380798962163786403827810854536306938890287068083433267655239198198861775760047763520391447539527031436929833922917455739381263335966436371539651079990637782493804745840148123010594943494225052573806820202096316229378743943782616282487831620793191312741046125023483645672697862906852141626215425501489127069808389652706035004136173371475919981100786540028964553587593352936335204784631074617162769629699830224362515237347798634985104261021619233840345225013371652088211319101331622236664315426746248653769025350609412398998228750465774993921349735692298416702975616794860108901912348408607682942744015064848891451462378042093754532804548876298453577177900815757713002742190593252071091983246340546580970701869794522740710196265353921245925010518934635021421538535143691138906237618854493857440989139348952072434637604281557867844552040319442818930910969227815486378793101018119605379970445177253452625971550250017798236127639345323159549176429426587961020043748515770166669487511672308629923186749703729873218088442975170357118013224138267056010976095484577348276670159372019121471574453642812165791887802117770307237829318584053777672658026338151711399418349111556151780120023240664813270661296807813764376440695075481434632767763693349646822567876400278290966423038394923954999606184353435610665692386788909640631912319149158066531823348939385045827698799820354521955146977141154100099876512814957831929476855168704159886426851729767836613118106281260728736194420270420192970445400983177822421887792933102373639676628912560376731033816158789855847978102997608443862071012357805055849645779847032129640256721461605405704775467434070697945663295406339394002814704774101846505783957392942615877337150635013294005098403140886270924494881321963034090421449327861234951194731019351540051164580208319420002773883925300929350416804350330698956794428848310233300668408229953249962020380161209979314425231727958088008255964136415584644498123241204557329340147957261844017883091265494234484452930909118265231823248272823638908964639546665562693144087869319021341563921950282283924726807430343704721265269558423443642531950331569580574417921132409424087269225837678215947045207112726985765984280225333189327384701537230448431316485405928890571264838700747456217830288995958127473891803575339736286816064566048103260472447586342620648910873920573981836798994001987207464500820130100582991191925201393566981416341692170187671837139066839422554770438898960572060452055109081684918817392009675293009480572799468033376104999539741162620490080462583636900930751896804944246901249558191203673810772789822414761220245237824332937761361695656237969388618518609480693481104654788667077646555174996179171295922508818910004691617061334332442505998990628466414165885973307140338052357948580862713608740967914011790849906938270124888579245388922969678246631142578820014398350874149327307032813395588062730151912188064785584250895989441930968482170279093930570989641273413576616103867796687525595636226707477016962355052457756901228393320903551034043918787442221691259677733142254358515268075712619885155271293207775175431489690942157277144073317121552388643443973661973880760474950369629952358269508181727161860053593378109806363583624715959688324015190289625886582143362167657963841103764644116799470001141921533332832071422760943191810796343487163372619471673540617212377668014084777955004721587061342664724609105863502787065892402700327667981058461618412632626656296986190178902209830843232174766800378798139308010974140978680888387650512330502562861187015383214199545433855653716955880351514481836842198969927290907787609945732579187499436740563320428819676964416874065448467983131791086848648939187377209624594677659308993443892805840088410557547025028935312559986200224745829343489539721648398424366155694843857546781976601274356790460722893845404929047818449380519036127031423647417462546474059129068100442114387723747538057119247329682442848858784805286391988671708705777424931343411855104123437813489890806538156744557152618221896297665619696948352392847991869360644989451748340714300527573464815059019390451737673573404498619050047701558236931934395366207209923221467169385957658220368191302166553649059198711306636717422448088765015531401040971313597367995603404817708907502059172852085247671921009546534231786287686290651750752916742099527338536556223406035438223449976926963930355594146960782597039856516848096543848530898140349258947577702870151796825800294126064730716055409680956842588920896228485906612609923503566084044157539695576990854085438501883930347155396555997621607721316245052383302129278012336397617428700510412348621484746836920550919196675655244154946574678211675552159923276942526448974704772575019751027787396714683373089763818015313211329857617515746898618031873102955404873366007355284740198491799394854423366133920128155638330349113408419396917756844510427643416734049755444754440415797280339729267143245508420316516979988090490770178085223685656340528876381912747393025537129231241295386908462252132533716197322615098202230975720992717987919830148733859147978435859461448218761363938376709147405868730356567749676686087436998489041447899940307434400288463920304732567569247546988384160519314515267835645721851894099837679544508608019188044168906254075577062205290750465462440354455682228095116301537042840351677201301206622277231197996878477958869162517794367173032030306556966082764763355086102274905133365022996109479019064599330042199899695206809811860903632235883556840044957926585054641509149584129162066923390195820882895791545658311426222370299458899967704966890191087504924734201665886623742099448579143022271071789762120602862844535511593527416713524959497491745478499959794026548863155226676433028684006106692010476088764446004170688040256098879229176717585783844280133291951607751207445383421558502093752900662348997590236271943610608775193777087050311235298691916015481078027722132167238320468450435515819191792133377738826526411784479325666240098025980445059507941700593492549988214077112525778920380115953487729249651839645840151529994220730407686731582998764060533829822974501785423410580576717362262714508406488462260107934535622229700265520725960364737175757956915904161466412001124161843026153949637842402446160091036247824755264832437493528493529287612690797439934334570558128810821095255566197943968022006749174000437587462558953806427600424395133162458502123250770398124706670487391200442699726196995036455814625151389918683414491117135379336527694450139685363306462295998591041462343902238262621880656999272793405712150465115296133980151078664430003648160506910967495004047228907805644185733900497013736093973934548180787665793401906740939025683114331516080385169662903959267042086569948200072008357373664299354310527749215681030938925576140148898859882974022627195424701969239503694225329679920636262943465643902611825298183678436599650574550181709078704684836279647797813771527599317187830852199873864581864460403963885678574352007394706843303672185211771346488936505600871654504194971576814053769915085450249576400693609385705481135044668442930660343906060914289567557258802329975893372959993984378439290357797482140457638124271618985903338741160719878917347016187485503110426940456900238559852896631447658254490137271149274007704325402364726426497662668519365223878350167309671100391341316446736954798486779434873433987244407666722472541297948907888539978171592080196299827943518299280600918581778833102522285497787917102862430439795376746349320429555443721467888184849557843455276268845577912116864745319741049992439315785682065300379055907018377859791429115233911930910484842972016793456505562652261173606858037481790402848690339702859513322842947250727092221007609578602945578426572528458889527732041761105747464339371760101039327081887698579936996263846124175569316614191131365270832712197277053672595307954083368177754234166050463716389492075280173463821955202714926401687237600206289728118283870676060923432461619736398908040237541951555272665624104700402775191869749544917968480104207239994405094969958420080852756638289251250164224365537997294203205948959164839796435755708701624165223263250008576885840994901142779618205962317043718853966622651454651035676201936508464081255610440134428700329435173751358302138221775389026534300084050157267738280177097333537220855920885751816551513388279379738858853187225872378534418091101049558114374424258002093913379705253633672285805940038458354751700487948131434896340397213480149043381564715088824208563888646556163082812886718265165333701880346768037875776340278341581345404349918133822977050637476877806287801669028082732867727122084766865240042528256552120095293401351780015146771893573376155908110540895298668685889756992812034401287328395697587154507759587255993396070223643491599141630063384541895272161090072266637135391777441210871231351439094252324263834519288285556692870131798406902159393396039257347244442854651289467403681312983838082717293422730934715066547525607654889028482112592698549713884705731397191649571788859588238995186841306899737917198449060551870947679061969440215605229984924970615669166614226893620211533975243673876779497750210013658393676984261083474527577118082133249638916366901207839749400965926103825111445242983649397859969693854848994067686813794704725646609567186055169965970489525968749135495794737030966467427115764327526608190412746040443628900696554831269315136330017713045231943747994834022171563208155929642275718548041882125772933255898450989428257032415900112597519783397983312260604492828581945563185624296780664915076842303017174813476635575350421854184331253664625876528634077948426522539538158256357300060076956667849284768316192793187995901394125777525462639187158550120974191246341089768945973104319305440819737989536374536877757033579002404721415855021480126822298695856362579913868768351439326654350815760185974672332998647172787775859803947304512636404505753344260322066052320838916125121125925858058748022601262913249534329075768722852547846654479991134620540054897316074497850712152932906952968342772173417660464856917076606019915675104242438906644540735083950631942497040091107217125733999226842075753128419496698309079735907375435861981413404952307471086488625154102367843378306936640741839118444543470524665647548748973948615697454401390448486281627152888581280423960561892229565188014573322872156988149381139135254263465170096847538716731002945234060749077782446493301715017491053078548138869274193673037948909011793588897865277281209008210403475642211499502369401737248357351685476959673400008655273082106334940395558728184097413002405687657369140386179263934402897757904636148682714220311867206176082276791351424656542412579258622009553352246461694190190298987144157636707512583842261562073245931619390046525006868742612893137937647813837072606872848826286743969026175058673795676490719187618729228977397395413970628739502919327603233428595867904592076017084996771830728152761378688512927832088062315595177595788364928857137538567640210107336664662503080442630525094293441212870721437192470929643229836235335960625822121955381255195228456876891507020813460123639379297875268937168606767088392936205059524548953197894346388896249206633868281392965884221345001224039981289643318208827473888673735256720138421641200035192051579844165707274127644873956492870181197502993859076105194455422458657277493856260138998657044434626924378433395016001094173704879294089290771042805966727146610811870906008537180394021728761099102036654629198065795754105888163892362122116070135068595084182193637715715168414295341770213611447343582691781344359126481476377114091150893182874391496512761680972987697363473599488316395647371406998759857655365033162300272027106824733782058261084635396749178438058478838149092133186908214311576489585098148193932764186657615231020441148087748826846007100012079535426496763433562487284908972294530440705964797168990989018589734068439768165922339442590475450494956878131201009128303348631363456415673833174188440990135701975441660800173908606645200192333635797981622019135236181555190711197591745304952686148944808346557240870393180247912776502384262185409949346247271826074332851821205227024313840444355571468213202274424519225356672809229160710240000335837041854518100605988881424442357311548683932164267915118913350082277895982362605197284619472541653134061137695831748814288167195227911824147062487797488925359600042094596160997433501329902555260483449901420756361225003571650517870163872258718313264661856544112020996631358050911332690146618232412634161205901338279263469652379878998042420256256519534830075523091441172357822043139575775534639877483868908511505224646135569781934900215928535092664283453989255034428231702945720802671095987105862700617506348850033967399647629515657323809341294883324276679983838276662611337194957402810316394741028069364963219156738653479351832782547671392230418572709314385071362423044483611936968000983074655616672302690040364295523342702206884659235590507792655500789374453900268180265634723632637743729747539742424392022669939587670420986094257738920739065899699522596679978805153449144286382291377979209387350987796245447507271928518042155112367671013753784191455269815105652432404586162024009290289004440691851460607131162077011721976731847930236098822580387133224669146703849941387790152300158612939750476404414936911644180659578940758927781275585937052324917119186754418164127683289039145557278933299745459273712957152659623305617823013726756255956536990032261075557771083689969991234484166812901034659336976908681374393913059227635953293604200658697623289892790264549533851511920194172083248944847224511572939382289817981765556301859600367366333383153495850643542909450748642013126200692568139011322061855197122450344923582282679696638426764293493404812214669638015114583650720623449287063931342201836299578778880938832370052589133274013194142909098310947164288046182552362469011977895129086584316483459229120099386570781481800530772533342172358536738320288940181638532835826404923047891576410373783127279797593941074080921958198621857877364149368224577133687780807651775653657817798936373226876960671004825805522809770553841332605379177727872134203840838592234423812745813358281633916521987153384835565046083023387527730690235869975787274634356842327532899399239751356244230256237294310579553414387888159503251855601869989923685567728716353959736408191071587723883569158498082184385072128852262936565416565427097377580719059904975892259249745415188311070380345180071929751183628302602924931201842056062466851637808933695228986656750682782553125564418194926642198605258072441277824389236199495922029645237270072261962063559459064833226816312357972919394676089259939147459623557764765072458884445402268258965478411434136271469975358507041778764618840751776602493961620730012962131431564991429472367155561357343692946740636104508424488483055209599237212265816944170050868867917690102654375598618820523095179749218113812125980268691867865166617987813006636527170364203384617546020611225097649007008645590720645020436014851986577032671847243068448150858722969949098628838837327134395236143288854721393161991759080659096085958971178352435254995245322099501161819807896121414726103342394602603656620401902040771460029727269220690199437075125886065681048969931940891622913787205865526358942673960311494668194723647424975519398217460707802671291422884480330680358863134280835914622940884704959273324503877239381386146556259743376387051665721989090201757290630164407873969636046912448668728843884315008126924346862036498960497184602094083937727517542517207820987817108392228378960663684966102492180517649062559378136688082561171100597869328189634750658366737175561108377969740573022619052204265893772299779608777264356829440844964938888160149742542564481801676285419278214542264578626006257380066376962209554885493366555428738209023166253365986883851547625925403570228220551043049788026850984943976567734280958456312767323146160511246390868993908137965244739276864992746891091692646278067734965177262217505012379419542868343976830606097871707436796647336919374903262038100172426869969804766481377887174944354112330259726739273445146224041165658163498609211336485877191836229594555686254528268293125764530793476534811113912754979148916095601166521526555806967730959551843773658186509886386191559024820021568745112698144065108242242617246554193235647704884349477340890459429143375804305833776143110506604587487245630439005895240167682856305892539614097410364190409421826103983625378950185214965512951185888673497632918936059255564262726335370044213429762691342261742600750995351354509031028283222074486337793299543094709576809483764810246634463363525756059054094941541433443553536404465962299949395463579999191942435788330479867051437433286151294923415660844998222805932929300902670878926870525314250300730433622402028084094161859695566335542158537386583577783445857127295209424263148229974863948417328690645610711045602903569853725592646545541018105710686989891728482867898918721424787028213537467270701337710086609001183009690545411472418827266230320110339950253142941558972113056823993177946800868406287029470659971093482268600234580457703043792904464753047061939891338076811087057758157805773667025576494374240611330083145481284481635244650857699486895217826668194657259806952731700383607929055536007430382548138339704711036201359230999279429151633293315081542231372957434835911348344743820240411734450889037735727918931303923490641495170525851039387561227983978982149217628022169763632078535825319846466606289575469925200107915144132840337866563216890321462703385521248950098616588343110154778220458619255373317467292964083157847638181948242453772407454490072635252962369452961627724163861780432556298289484291542892082767088290652712435982278966861476465076367054345081775761427934022021411535679244505745777560731778571633588251724605994561558452600474623005754455408763891988764606201088647253072494406001267661205653508626022785968052673974471645915705132011646399491932030135387297501206659752369339952311940621681829019358799305078119701827695555025016816226356780144146705155955233546525381544403257567727221685711582046836639199499643015196657297427870570284035944900383483054991119038079248046221508993015040657237523316301410130860612808660208488448064225900914033642066567804010939806281551851327245220353907691761128639967246516846790208034384207756978006957015045600870760118618811483328394701482792806621286689112243986366072651477831823766457536800112160405937683228538774274324431483174174640332183728966064212592469223385033272769659995409360976519167261891102523646211341003102542888509892460057009120008713194622806137128390421581095109111196992240073524328769802407995012152407184018931538419381373815239316557324545457749022215061126484854891288675073887379344255432608637744499103195970048972938012318207535016821431278763490772458793970002307348227162070044424300018038095985758717540162224564265845568042624588255213062381133618360925908479495354519061342103997389485843978683786080362205057975857106401737628720790221786293844092973193191327170630212573459416052876895498266815851738402841551116336533420657015977764644049120576502899817023282389758745592517866193064872985966495646199734051380811307274560574364177021070377393589005650043223699490929045632803993555801236588253230125407773144281079903967316967672818173018086909176354789840779100940331296231423370297823804896655600246844885024809053040247966515498807257212666603668884728492470379761495070119141632012224303289465619465468584555091836954632880412430624137152687379836842959541107723610806140228165485836166879148968965711006865897533025353940021312545069121531617788594223631999621765096638344472428913660985015993031858729074365127664055607448672454568599747752857573695245233619077537490466819967973895568365533914523233647167448362959338753113720913172550642864877612505537024045680494211204754857053779895002349371151419468458246631623931051068961191650735787854334938406810658898202021332050260524361638926022635399239180009512457825237907180804034973418786941664557069275797825032790172706425415383057285395609960573845968422734634839325135550765211214600018259081734686108997939184589872266575098660873320568608120175670171428340139042971014807456343317660905174527646467107917186257758906823593793188228421577079020122491834629337567306740242257008632035701867634134811275898066367731378822337823263025353942100494148134976532733332042856824379098669635924794018409742116261579955282721011055522785633150293705053151144463976467441741132406699502572805535448541975627088879847635807308967716774278223543351384654308374894545382195234238315255327087641673113312854017097927797506387019673297017794696588124305332064889750039384826252820876817121318576904155358138197915802266230013109913028712645050221524372848535567435110187104252839707557690088038252927197331339201651317754524324878735792224440285695640888321043040035941359024864769219716392166788316908458823546954722342503846688292658212740683823822103433588364913978073923544311398526251768172395061949204010219021665657921382908467952358557480426738511054349871550927183897079714412842363124169854379868396873535588655444004777587005707753189509261804330861649038479062607869921802656219050163217047526256823915405313351931809668865072346468698219537824741059241930557858440305597623449457559829417229067168446807706369630346816409347951742220170082633681426786628752774201375008463583116326302269917709963295083870264332981985991393707271464924441492861953029954056093523179873037787854497369210778405916984435131666293358261449742407399010119506848515197109775221475937561278099177804442011329113091648646820811940292618016238689852830853475691506223677398896303292020456722126971048497845055798902447804294572229171083751148791418584712661231103606850314731914880393369262267625399153875008144715696099784752571238569524106910245940614410895421988720805865457784183571584478139944882790772171599328048421143888305026606943707014380870441281965899679479087129492319669119156884651782632728357468052224994551023353384448354161391664955799084920143817348152889468717597201718294865966329552591101596740212433039400417429475163340467867818826158849619927463831698173963292929202953155491728639431056524897380048225684967276499968289127725708325025253956563929486355727531607959364308263138522274767485986625850048134811772078787233477980334552250123188631482220703163947528206827216900042478180378935208746470921804945493734913502124858534026985226152656368621726381306020353767074461252213141715790920511174001977729512175468803743843121281772371861606757758042595972516336206429054056214792440583756141160920388957544839536351530945193991472310477858267914818106475440476006185019768498598724919113345256720180765495234008427117933183861487109772594017851631826972034972605616771978527240575795676988689168639909427243605341453831430095245217370888705354433710273713315471878956263261375613765259366013256095833159743593309711176425128520453162801239078014827547472696486884170564678992537002987731746064512598743839209507793308687240920967632698491248607131497259293072296396020990310103746842545472207126181396859723661002075437045792584054793244062843741917043097087529210780540683983771384165591826381969190616661396012866333525774418811663520847056780701999812398381711935333902436191389288534872991838178107544370599313363392702288414236131388474522591945348035885890652777153590342780922306007010847305698280860540156805399114048685641057031706177910098806890743855837756003833763234696275409111756191229068639969652872486056680170521205456469273077203978158755599380800066775837987534023808385491905917095313116797346023224369320174945959668253236989553164999566850265348620437652382636507171225275527049390190813148407580306000959453658943752414177910974391317824649941083614314519173638088863299595625174366568435091616116439615414224763572718161263826792636181357905415809680113040267838783138167984604577597704793487884507923647153943043808728639139554378272004545260385550549831667074267331693491215090087957998451439519523805714519243723635647121928573313393896311029178836057872706995246823561538743541665923305431110852556344587824857002561994719662590170507753855852493129142967479902923236407788167420335300851698355339353831880118882439147743791945655601941299260897658841959735767893492980146525574860442941599555803807773276797196610748035430423068723732381662579417750689179000122413334667532927642900810291737379657919576607605156514589695661615678751402055101758498265940061762753484831454252428238872158806094205890034490327928148606523975070707873344494034212811771443454700141434458101758546685344605677109295701306301864498562303325348408127747119674505163702893904004393863381997431620295636678035038112791861486853162422546926205995958146447960753322476768036620503363691330265366220859494893281687403739751379304721321561447182303129484692530815896612452126240666551437126148790170414616433694412832826214555648261185574802744625122194832872442755809950954857264211234538842070666388708295323892758571649580810975294094451784525557564494863686272091652828143830783654135824371249462919100898649744317864851390195786710359230266948634489663793099203494555583469259987508912706644855949832789741680920168800485223790713029404938943019170699095078590229693646355896965874656890029928405259748356962499362744956112324375496142800465637041563420061470494215418821803586669738991148025176379757811775728003284593295721582225217017621959591446178499531840676055298526416501637461609094213294830922255289963175137069689568801720257966040824540879965695016270243724076064790551733016618193347211891977793895232682272921865941790937134751938762319338874134093786442363326330246359259881234325435669414013713253226090887519939023122881756542571203828391640000267253673351512838179353607184381528038326137706573636853077770101869885884939560581819546040213414477266096748318996471030960354895685112467268760566434480949592997659508150929572987583224924964462469017191661245230277867732473036148340036330023109871769136355155141919651393387376964526013330643627467416189135799998065457700311906253491687628666956317047786510074800377361068457335093509969110389439257480894885998467547583751010470968352452175181881737892637695449063164127499454420738592656460729102599205130059066236081643257927113065887292462694323290711960053248724822036209933636852056481769596748687238497398367857299709678391247751119076433019830160817231057547020614733318599028244584858992067396897337403648773301056817707955208556036050373641312215365547796980247024882952045529984760744058848456364460406503892244608181560281652333564234084947713969347460073139367327324177762889062710927720074858397274200325030035992419410440704276609420763893997515512354899933974098862821400956445378838740537757154625830902717887681737389488013205536812680572768773907630148697743067964296375420931538446149292301170387987274992577762851024904463101201325725442068613280891473978104623326744001258622073845265723139514716377089725237552966673313751301521912425677299343042388180105557310839259628414153464526335985459565591641404817687638813934690504356149819650098830775403044418854337940521683704534227281673547383339057810306091168786719767031058466462827125505073126826117292693739888523979765008084131205229161269215018510448088395524228472305722419517365233553604936377402849086155095251108529954268622145319968330980210374504183709048522639026460775221205918374870281486110285392272489287123250788471254967026804958713658920073996168752781341830666312502808591394677429044505923147337679343046609421452373287075092780937783167030958897254013355806029826662065391110388964813879711661216455510518721759969388074355838857105613922806731477555331428555224412772874148509326586580784877501538060381118222574340581392957344169555318397462042727189572341199515173826928121517893588867968673242345684744606853553213022913786139461455666842629541927578185905931126468213471976871176023762960547047968470462250622916482741706178563225883065623906050588872486021717801721342799735978212635828743915499375490809103640976694279100547684664340932057393605556541278673432845942111447382986412489198055348094345662366187150807261553097944769118086449758902365575649944507018500012336331255731932006170431081946819971903918271827736347018246515298320716100206294477126343935631252994523058814066346898161272583148044123313944897806962641099651167272993694276039260372410636922965342113905457341548437094249328623497610913980571651691296402616505090083728757229972705594158407991454291205698851450869633260920688677349087687305144064583190226562125431571556019471639006955633776763233072339191623556857794571362507308696332983803023570621498887660644448976597948287283780753518123706679921442877364583933553688048652266209261900584832919698524250177677544556668658275025820911958113931743929482076255462309884947207126373275924119434312856943604825206760001412287866348918757036738058867102887057640731547339769672673698432882540880178352784818123083533259237746450007787988944366367213327113613552319775262308900595520736643811509487825277102806323987618797477338173302934049996971508008354960402651321179969117280648647202377712526337139837682392558497018607675713078932796095957901174677885820461708879824971967588631679637763858020592215752290750455312348460394908648193439018740643237564135219822420283799685043156011010231544719469286922108024032073856391641124604532350350498278954447421532752668998695430319537725117193977566446505684143167859343501822237911612219121070179250235911221154213428676509741882700466002076401994803225251815598124215980766590399530837483189792862663186315915794288248806656492977555864929838299097973507343255509842060720270717294880049547556721119371509278420057510042188107775235784782241347899328711660988116452454017270546126174492015280909625579039538355979897415678989918122279133160054387762196491823947153518289774346715742263899151475838206342394182824675716773101591859491269561161584879091192899771992373464266533832329197055336772609051540664015701608256484338150882947078968050422154191067322782405907639874963713738634384387605163308244160637222735086902450830261542171361601893266533466961815282744578818001120965097980493780360400681004684862868179465534101095629911290759039384471193926102073821455727688631703752627415623028348457393202588039830201625443248894664835165986795555873450197075495592075744167415065299092328368266765644903472298932553018090050664673773922002960408121008989411221468785313826839287333801997815655373209857269680993266013665495992126028231861669356559139362092676635195228728667764975847626658255112774798461856700421174205161583881049412160432476010164937226581703350562541425285055568427584158485690378063947714710257315391199268573629719453183399090203430315878962260450180098221618303818110777824323003480498363745761678453666855014740861661371762229557947767807731128995973786660173387211393321580343627225643495294290167497128743773525985343529718519320715403371009543495331828013885361383178016449333901991734663395327832303493373688952328901724354553017480525973439035159630307184131664718672926173806124882153513328474502615182423927408757983760032368904420513799539143182092722367161871264812887619228630862732169798161515939475053505259948345705750218198504761908513994336678760728927383349909439658936770287404828889499963418538148573747167413676988253577365507238047483455357719411383717906691871868089507305278912620979462733754404640419538730422203663683710486710728299713901701428057228714871471420347033079438388164110174875008336927807309802858047635609882949365082870609316822646885706529689407854384494364514122767735198748675271707228710966783635710349547351681866764396293999784530791806222944016602368608577024418169614613695636003493326948438220011063919520688595071429544473705668618513124226580988445328581709819585017913813833475642179701682308647367599125225886197587557159101187715507532607415513321299811823574002021012338516845343071555813844838771697708435224926856149636433833689601075692989899781687106184414808164550779211351598201466459996242105783454191213029722520001484227370158511874896408911659006351396936598900824993616558316832070548450014636252477051641671330002646198420433652516830259247519141834922092887643610155507808083173505330186541257980588176006123325636613321116735660350205030204555849282798592948824306610105590335932692936880112969085165400740409291163161597008910509516815910017948271567760003301671016314729875558696226013920751039997548983184830057228424712719485887330866341199541007437149133095745337059163609340552438789610772303851847168666958810140100798307804282224079899065405863041943007320194708542030942745568878945921893682103389524247044133344699916199807722195991443312864227429642478599407201905585704097970695001898554316250231163279067091917846772291890702026796306943157320269429269319345897928607648673896086772084523145925983226656621748846130475321346340097109760144460106792751130021313961871626292941929658456116052442632705231657666278745317903611588151196774991407734910840601524493850481051899980504928390498756751874343003998860652312963226632392823104821512925557510147356026453914841735903487744041059112882434036714718284036197921857025387889653104310689721813281308477454872389525133496124192454203431166184983294986809336747464942093789932226524319373229776086614735681927967557458363044988000160423790727594376797000133130767090330000069881166991686072677001894990792642435537021128272118209859848085163357995588324847941588862583210957949816742779628140359267306961614737787218599991890202467965201536838842404673358168488079584147089814705407833391709120695637616685458873255915239549417752020566803942311719316796314259569253700243578301629607669219953728207127830777641908179484957198171883495443041074584291073157398918505506279113069288713768049441356920627438371322088934351612922731552656189256946886461918574735729908751494299872109360349448672264340485662139546321833224364883966380791499182456621202478738174882742415286489264675329626862961137790618937424739472338975304526619676338626187818260130358286220991724501814980202483572985014528137352677230271939089632105846097787468685143384976375567891670160301387287912709680409238801939237384178519375492904004884515603099207655828381124440435505446656731161430236553663729934046052506075964869194464449354828378974284446659900944336634951327066598151471486690141487248169106403832289186496876853444261700824519231111587129818433562040786353593631191364632546537304427457109448111950474137978824879129088175136550451756416426871492376129827232095216838012148308420035356401815619324484737690592843706104783501529950965872565595756454528035417659133014553066354816550619930059427261322453540744605368695985577964163915168479139391608330164518572017221130103619804577593128490753412809352406924368059865153357017312477514761088593042163780650479643248907062694126622430623326423658018612830327533976043250362754760353917802965859622468310181845880191770621024700034118331707343640187633868374369664129575329727522083717606656884938893134768480408106135700728961572072091678011328934787246801637611058371903803385524891412821971083193293146703955226784162574440778296229659537463651088394869962223179358747494786967819182066378316830314348319029966524173485713176827238552229145653259190085778734874826613987973518634236804213795477195236207414136377162250134301974629932604718982016724943464729534025891516149086155749761919414319440051660808242759409385823302618552938945093220876365230093432688502739374201739075618200874381725632368350218145274442528519911058110470690988492900161956246449010714518789273811021603920804821532033896833640570286482165253914384745389138316367850943163759665622545317014365647902146211882992934151801736915044963852411501416398073335445685257950547690926464504120520885783005634709334333942263525424084184943509928154065205642503319025720896425332990981940093630843214358774590665678738631006884204620267168406814509827538178680295003508357415730031439790773558427865259229183770052274791618066984509111746014904443698416419573577151674693092776812567054622379952965998238220800963028179750342761525169236843362582176957837862325754385293491668883918019721510106585813075111741883467595225619833921641302096341138637376132304791747612415159604304943345670547879417229794245615025506197466467649604130147774317550197871716329999419551874806982506883607525173299156198933562859202850327917032643534722368613867161962397415042181523406757145719464625132991097915971354091423964863172464101412329114990617903654821873345124715782222225644291411567419877038064511553459946558911344243961486427107229528326302264285298220652201248517196415876336420058284170707529071012477249734978996437243423099461246958810520610207613033246069676494077007073574019496425501361127680975504716530547889911331198582156000548142594350416885664657773605572582281830265568442308196444175633971410320542621179220559257554318679081408628790988019639099451824152580834772326920985084454745800054821884732414697054277133491214910686402634915998952672746423760126015060184546690030699873952826209372695300558204509463709551858747849115252658339073546944985296172891014748211251366300958377107692937008204679296639623786253571669060971813700988588703479338127030328562324567428938318303712870834587114563977301178008490572175637579907575451096658089534459629209307589731492878845216249929464845879393888684234665137792974549113566946292675847549055701499306488542620379247498914583785898977876090290472671202676879585944120880392422015186597708547661435129720462627411835247757192488073532099207561325203103033403810875019246917250276078250931425267314085628813258960325386428784355614527662060278174818678259938449415002371876571509484886336538403402463799474040984843778464061040867380855609141236279606722105266728953160087481288389252445333907253066421444655250951812097412521968542329722296586738280246721635570846348139630193394498770064977899108376783702674887121031583966319883222224053033478668164521122725557773277984776397938002364538000911013350325000986558653062597510329270355575393921291782945556974690686466400061347765069800451770844317839271993028497300479542639173397646804848747418162426971864773960085560665136412482060814212269942898474768288403855564400482312079669002129463895690009491235921368807893000175020661441930068615319731940377153088768048849992971726020990575873981144854833719210642410282840599904482590609128829862522653130352623469148415719755018121229056788258535949769975492142219987019434464752994952561585998315034952833230766573797872127391675995028487958953887757812648972699924065803135415939292899722685378138132014759253016708743428050061893384336499675174873806973616470611357199662511443684814302003620769776861895481223386659349675231314882554920966292654193394687468140410514296861430254165415742834778427893372300708245075623814659513441965900419726683113043027487664692916160372983750912085707452456197557543700225176150110668418229820414873645708101311362912993766182396577737017726411048941018867010991315721416292053110888074638460963812164788507812153295497005056336899972821289734855346871520719584294928623136922918006236484837920181176047479657088913273660671294605471235658564114178697094015509221767525711555349237146751925879708846339974413542504929548858745778445040595460126164276575833364817881539581315548240358646828961887525090958652053833527010966698903634136716458520314282934681973991980583782282394372778945272721155335866659876806570608387083872978745499576840360254889004289943952000976470864510998948940099161166675540290798145647128100845347871904631099968556419123426389587200219173211449334611531720049720678648610384210058396858583999051842165189885510373605803860059752290583044619794791613750718744097942734661665158626268680495648038999870198095041043742742917065136206018416524160900404003993716414329587159059975039869589351303489914071091431503542347520112301738379278037779783091630117074408934259188894526057857410366024953448961633476543031571333364375862998841088358450186027461320442699612647322733422418910966863727125318799392669082341895257260177094274028858392409694781096786344707535783195543290590826163238489588246531783408287522406571590742953393961648359477161779646972056300469835853762250128128748020083125552564985632660434546676951886034340924914082144497225930613427443914769186881742697325923060420534971821684369812707047470468473535419316285121799833916115984966291949069361478962389770471985584963173403873511355163121112195122094456510653778406615540217566969121226091124941781594838747658581276804808278019360645573127304303866130379750336126688621583763047674464082539524307040007541827836567226660768313150912748251572571060546347602577539786750774079857411729736424245300472347457067584981832811782801085577011972489098045579327757505108973280580205715297725211336005048090063441066720116614233731396728766569403958277623326233162187118850514388885723697401432331770572320987039566545641858020953521295404329829723593995768082317571649503915059045089592582470875088279270069746149006232598055230610575511598013376482323608207588632404812630773914155174664462993895422316654410780529195506964666443477913731104055955954547783232994654572745161603071915745705684880431744603251687639738489273449512514308812944106628257536415603028583568586477000617879493932325383634997960510360698496148066312054490213680779911434331345782547788880471025264292840979404649577680982284392185338018301577624237270725324791365671792741969045819574134480329791879412720086091525346627525901098330163673287289644353856773948447361041830619870371633987021759515551608577274520947921840024329658040316666212851045516964234917367420908418423854138871045341710751866659278487913165688371605941821489439690130770169824651616324875884106838846819452780814704534552772914625955396854385004125584590933508734560788688201400182309049570441724497030392247709940467904910907001458429782482339513378445874065013365806717384172301198440362133231409140108249659350064388549122160842430484236077825415333187546085567368201767268626843314790387354551709814396127409362784173616771630398963600200747927189531053861765452254572371830611904280659094697851303494532124892202004295545646620816093233496983336692804231502202110251401329428332609869882718855628881282599510952816702437234443022059444078342464574453906601399310221075594678011577969850155829661092052886358150429752234357356381387006316049425654270406170264545455780933676168006266981473331001162633091920958023603537397697122322938080040124167809142129733413067225649427879075149929412824849254627091904104221274493647782236266699924186703095360134921977489249786174091991029553892692366189844302144527595460014243454124889932967008108148929718200071608269451020229128454186934873627305718999139203783911832073699120098590734681139643182554538005889134655273253379658607109923643747819798590415540202968921694005623854452769912475051548143243166228877986588717005449197374457045388648096820645909037205505075532893762540440372556886033942788988997880461375429059773807398445072539101701409020642745455450111695192302571119089113720379176671449137963182222812844255963995756026857415753633011705161464724216337381188083573300940970809951333743889094168125829433688544746569738659360577824710734993091324668450633889669593503869400785300433028423065747210570746374403776627812631234297829748256511935861092532566616854756367422761568111081506560762634914711170188478506994143771993241206822870600739831793043221442742429685633415481661478812922498895814460236596027010742450809920750803506892436268007283768426485117366750592623549871046745534587784445787168842814781852434773458984881608223959295448177450894206839716789700438852087582699581107751109189164066363013263446696945811725027630207036839197959221616116226610885091296762539442492201103642009843967082423718266276243878414628993602296325904423050461847898323768379548781308653381150368933005105166388913704916037159626293374968584215078980868608793804259819568782423836289920150855098891848007782944576418358838473754054573642138698498349492897303360135477063579094373313575324629570190639573515627910184568959458565396742183904118631749691578051016760094468240612547681249909147969212295051558130976330860226298660660693933726213050716034765433690340992616647350166640591009915993359796259980610759757969077259505702360952164434373858101196488980182213643301853091646141254537621870747626085316039168521607561987602160894261681578664651837443050908019128951764465934776633994188840256813167511339498055730465350192143758275233052223037963833163963485846716240827755145169846430716152083066144166326296752963928865109408447047039859188767181999562264171969507218996248697664179638459607484841444554375873530436299802843747315340939477596745541503117740955267997753478890331854704145036359996462838640912683886418175233675577288059859386356340023706314380017559158283906068459492083020303444075919636492755323946096528744859772387299801580348227925475962998288233003239385730217099787126017078010668014939757398497131164278032420841790318095847579815273117925485499944924610215609497692825395754585900145142201587066561301188929820899503386830699421278748794625064366877720733886810492706110199506557478985815278359670316020825169058082960898784112037522377906326248370923976691961836468121474179296452767164532171696032871851604533468328981343188548270519552240560033729853323013348133906337502382454723119991495524375826170512743191357964393535517236942593513261119874389980995320003328117231095784123781917829919303804980666609650722637672514399153038312138214812490152952337335544589926816243595256548143470178832452885140355642378169016645717856289395196269877746433954674793048878595733875764732897904931634191107366832404345608929291014290040278905634801749668939041782099843195903735527017819683300874881074903924733807761217176152899230811411900964850191518763002454640877056310159084462250596084312378512708081190223912568477638882720401385128189112222245887772368285428796104727325029084745173444172624235498469630460087428622308174384918984735007128715116662510873080999150051400640395547582626949719401318648077279947484610928730727536535098173427109001847783785376466759890401006188869592671048630673277112928673645264883078050771692794261023616405829060379270397082508782545775477162455779807864861798009012436135057185458447767338463388152825778668369770044031046332004776384085072906396903191291009527977942810363573572659242237808391782816656844060308324947982926033341711427983747825165208924697353319588143867733380695923289687503445980847630447812837915861827304832677135716417913355232751983586374487368240851517070363702903970743921582176165696245673872317969377830173716989652691913737820923425844656363088220727352599256356460640906175100038236956262162183272103371570957076596630210636105756674015602753276944777534226350829340802057888745480438192316428872702291654406040473141283032834170566073783589525008245294100509091576226545446053341034533146357739179159628245709424289434804808737481833785143399457534310197481584443210385693129921727565866892106287643092290426530592024170860700287611981489272416927817158656801603778730945029088613252397405607795249557662903698224080301749770966556551354430265073771541313085029922717371431835315046320183542720892798159559182654595009278410815941911603568359867599045943623433585007926013851592246359487067197994781058236643082522036351029405131487655224323128828759976800542367351266689099216933961046432936872396427024823693547102206206084236148220366541701710643852571483062884331560718838934008203773271930842940299860899387253568559192543012863458270297873708245312375763801795592356539490521421009959590112947918252795325910181353758606595684249474477979376912472119491901614106612343441752062059198347815082314492770618886583329038274478292363328050508154999553108602107110182006307316996027004063508558644674784280593318667946384146109773423774832360076465273649530056444911704272121625661042156736263839138277113735486087620629892577295389941770246403248279240850195293195468111926260802483252344712108671909955444368825473059673998826763544775336355301553599814152218098588354784818284458857693885534387056814487579975442336681027742733303620226859416193557175346613687611429031839789384374679198284791842820141622998685740209566799455430702065995644265147090280476756157436088410655492032451086461891683600523006183154638010097299373718813618854716942475570449270324308515137096334365586414534740217460399152093041105774359413496830539745846582846014368556182109095675455479415696782528027731505529131621078613902835604491240509711469161246359510503748581239472826240366120693838068199012014753028240961238100486194021704008223135267115817158493057165394576688332870286828645234370950597164544647858726261906059240663697840513225490848427689141346734719627424382836476762136126986290119135315093634874344679071331091126549129678560679944725899290769453527059944850124607089707436244414706518176699085617457978026994872777852295316009726257925864725665804298005359092232638939079253216899989821076431886750366903937428157908263241006606624818332734643285909516024395543493756615565436782797151397630295329994042926236317734622055387929261444665679881661394555710134805431138787059572385600497008488978915088036122100799020466958295227278050479743003942627511891888057904143172687651539367497330832792146584942989248038847682172273980884515944605851686449116431795492207548758675762806695308068511453729473603597729947590635664858081568720042673361365832982117259844293113238968726450660842602075966551534241832078454048009567588728021309432921130482236350845459550608693174710814120156944018179566690075364290332574222654276102639309982214050337196892148205703323543163120734873801201483831257081999473449180113506483806900451317687739803123558276510563011218536924109532470806439176251083486085183635678742288504589822593334476780670604829043009860843418337638784429560274193384366160785388740174757557924110928571246254448939638298908293804387138694971542598250640278118017998147047600336132166078430717207601907196171777296388125501835276992880064093852381550922237857696928354321671513683658375375936123329118243270179658098514995395921449407860110965432037386560203414916683130387252130808243615937253802139409631037429241694986010788496292638965904152458517334799401316640328464427687373042400618310712683678925569665736864070350564095967150676638922984902459841706737997192414944686476052255739634437135501668081257507391138689235714375121799362509028463206908092788333951316292556174410055849385997750789505756399263102018438773844996081468960516153839274110813199509308260140729483837509174667176701945569168936497684495724157716465682511114177113641341917354972834880219664841255920582239943103700425345932682610769611439286726096865461226379852554655071551939994916335196959135534925943453568377411703843286710507548302202551719565639036561569119655072318996513275231919752907607458354596236171244138724691437070589553435960647750522035526002616125422929633616601888170551024567249355427580887406693699937899916195738852306858799158408712480619898075907455460729538500167015264882255784863258463662892303695836188807487446649357997048662323118061708195605055782404931127814856369964181025387012116138389683640831153149183183617271578848079486945826389001073459998950816854472107688264445801057350191136686543043225279479152289661833442922650885161442517467099547471420254928162252813167673142836486520022707775379210122351144479620896460935302399535929076071496761022191857641715321117243264541517600701703546300591340800771376437219126860466380393799845231256989377748457662012036302817257783578460870927604036544257330452414414492992788465098798269148847564809071125723108158531909538394043199193713085140658047206791743742981619258583206606796616867594826297251261607160068451778596501564659076491297438213112474010559158334511591387770412995625937601398348930230733020793999194170675361429596681326844844805088988770075577124834384505200229403592419706896187292305942761568075975613054200585132038164326010897332362514090993358609076563602825091146183531183486364083521705972964887761526599253859318991130582612209551843353088695221294160334963604862637552369091603315721886367799403632148579637932695040662522705564431388370004057132940196649860374586457495012146110775619383658027036554796116244951591115102309780407234599870261026545144651129116527346576061902300945588626202033067064928625157546107606414185191104079659287965306537064933493467282195207429478036981880634857538304823436073705053663824212768729669521366363098409615029528260541897547308243779468798820406834867122484277750801227620718145629846015755129612415571271630372144909695734864597001593784386632827095069379491614143187039950932575875995637510147167907487087116786543338980841081162131253124467653478538727603785175879873069114117358440343039489408440314788146142476460850326197299533132789209742086694624823935922300729137421899381247042978966872632427960825935229598367452094811609543765792335982156736320527966400497265042024568385929760485349065170214961955982583065398641381645465602401829790759335290643280522363729484984253942710720101213159120194276965661134508858469975357366170982548562443184633093555073868813783845783410344966370658490357708655382426183658987699527929327124619136905555406423053206394607575756838835260531930596323580446454041472046202347293214001604902081541711854309558595227343634244151017862025119583176460349969370503717077268756327714105420211754588245551514024954151192722399432961895338459544871427963217019843454795844914256475175716734080817648013448759242051503586629712229588559599258859118494915517939111741603878015808176686844530622270264662360619974428777665936653769207275660753783625572680984452256932566207499241652892872298794488998773520118486420596881917952739658705662863541431679743986375675591844207277063660241688366327871837932760997586581535687721381261917784395693799009568827702934907009452385390250566712188681617935918532631051448614031808617763582137867101648771813784777627582203482207171428748390825289873173547128988068208708019936006541217951366593476113363389444920333422425674486028272720256787220830737219164849173635060289164349060157060714520579426620680096605979498605959018769196179276113641860791640190619860065172452107056184829285954190992264084820044107705547226625099332574617653171634845275643777580387980662264378681974003814487884648354988304192845181917205788723661237617210886441848842650029184734559578550975810111523204131298621524750493550987853171308302039078754098452996368429155547264159257043609064911489601690385039583188517044739620177117957148103126344595631714185686350239141570256420797230350867806193551645322981975205877713951913157034124678980413919264032364409339390713301448062245834294170151927555903190005735902529402955135515710733142941339664048614653687938813824974821659504615679888553800367711057310280235703619644007761005839135531538288034188427735558377019012482128153136567329243379732858960744866848456668532687531342032164415576846419225551029513834692933351699913552927678230270678904716358702036507856443426578435814277121522332656505377588542047907400123589027306655606409792495718035013586470414618608664125774882078146745241923157098557555276210980900432934891956481389225108671462625575274167764066174827760734560394921416294155666732834973413996268840821566980112321455005998858313717251792398324094152051115210231324471351507514027795188035670396991354812760347795158431312554599178500212746993738745928273880810346350801461601442116484184587706128583588840170814376652818019509686949730956537881083499601555543516722151716046892087150841131994839029204719603302517161261958834856490215305658487972144475354221696012653553183921141017731139130327229911462682923517262814571161545304991173812760693435501711660865986309411781488487762445161348940395447415686894308076356215854174412581325343106626696869322843195944355656175296528502467449569514387113603185815744802855192876450464350643933173009934112566491867175265165791888709692948722494804923437118427158613580319156411664889928336620085022110353869202986725295973655012681190233364049939933546233632672517730219693949410696135314636605211671657027274276109436585253397713649561180167784249567291039913025534469971067413792201126606589446487365739586188284807220047512994915704540890863053014801827888501546525302893179877883285900441321477325211441601768059339832861848969958162887187780663813331985190433849372612195818611924272602983372243347060713070812868399713321789888477679748807230488303820843975708238744132471420385395088849322011007976191850289817907783289046516601679544480806149315827173815106491879008553882261799323899368243033038245807546940123397106694078049874771309705075470261436767263246186428059573463120523250176414949671497295809641504606990802849636614580005874378569075590419565512104662783209325568089641092480056691639581600081317083430568801178138104267629348836182625219758354288047899148130167014259490390527034948052950089669399061895250936553302143635445799232472872729590413493305551362616915050370258108765676701218956456403876272508771129432290915129335910819973100530010929429568134798743768010237633074999836179295415619235847469175227392342666141397430955354994118334189546952291038135916037108107897473636848186150948581219628528580755904000395036456575141930020109041629033258793979798349477005742120554387777658968246333521471348053776797416847108664468279738164155108896963586095145972342951356169661707848093257777293414079168028116799987677571033940357556255245856713644352036676203280413595927262449260327192507674454691933333487856144845888739982600320600980241591049699541331068436317363778485429558330717018734368489559051171421550486891270433062606422040937051506937802869846547279740658838471555015108327903735290038858362146990585669353957396264264504327883130697952830579382956370274793456317100713737487105109251618796652036181516253847115628326270763601326771009322164195609728540395955136401468004744030708773319426329620127733835538773604176745312360723023795590288353432151560471585709805447428213607220288439478235691825939950341690878271416428671390982950164762872041655570853840804218666743261889416392808905554721251285094791274737052721291347563524838805755804121749477956954417207247372219191155456710705909587597997887779565701613223368503703683135654434186415097646581493968028279006861196908631588934031939100770199710519978303620568379209196400346475227448237309273485780988859159192631621629483947055480986207727078878585867539539195700049425828569869228908448737152673131375136464065047762405873835249312099816297691436432958198835326938820782637253680253679047343531316188713190287940886975339549362258618222823102548259784460106272790518390940653557434255855255565464772468209645803617935525403636729003760213579405910084289967737185672651128943207915011443134262074111855994607779643866710941955232515868702419179144576584684658012704612177979223967994254448717250337125142356941186744399962930137955846059089374684718534165629224739997810202488805407934559633223774136567431024250138500763994851690620708959058622278703577784033070443015932901563718932853979853174614467987737798724807496012485216870140696036274741899686470031970385343107324969578776759251249371815594630021061971177159848938771796050845419247916243512552127319863043081109154017476993580955916935733054800740642244888017523133856506771050231762983331505136758847358206610766193432364854451818184376347225419592773784639495163096021779908953300675945337194377587245068763486567630449136242438309072140468822019716035586573736107468618458946616200605059381297090113454455888236767262236639197813015881402225589481718366095511582326409018775184602200845801091423095457836485337115391442385724562130291095245994027177228166379679762688245897855253343514898614643405768738991247644637646252478319895759935629442874547040756352728865868014112717298916073735419318043792394841010714168141238423369584364517323618220076208170788379883466211160609062127908349224540383628191308630544930353297490919647795107390162066572129004893567032810185340336115699034089053483973976278759817899288885025748743348264729057105864206301291640902508513736993442082719237328331035129291596397362271817410610387880936325077252710843796243647699439356453240077513535032826641210636294480230507008705907523676757227412645097329310916735976658802533663252392453045162893564897911707371190071656638338912385482010626272298072436880439458223913064116526554009368568711945964675081174822626309655213025754155875913862987156654519852745382350485100138243309342081786409397369017352057990940630102313903173874329273126395907421631415083235775829951115936871831554425236020702917608026620463893914269258460184860698086228270522893861671953002797590073019672720145038970439512496331181566589179290928644286700716041001190920498845829323038972139456558065144405666887253442343759979158176412785185958197964685373231169872034597354294173387015730028707709745297512754890110610866696054595574650111624367756243308989172714386672651298428287261344111861078724533993559204627584384847905062306515241839536868868393903858531408511615432756003059868619968736583815225382769494113011481271274615663546374074384908986936086936164782981584999128663818932125659664542409968981864049257585575495992069019036058964113601790555129994260446394890125032974962411942189463532701215718687595032495716634977807606425334891977569873534343500212917070077397171105590153295544839225001340766432203296940676286088891878231042705403907709416543941767535921699498576729415076270385745782735076581974629578116609672141092159090591508109090710091585995438870308914532455887618994707255920513854537959683538846663107794758166818558127774637002009067866517054487863333508213536776739443187401619797600629670015192266422043445311312228560715699862371649244629178105645856839852922245896235063517186684937705038021381001293163672117546070872526771530546891033072817680541652913553478903314916983264661271978065332368085008641683372275721825414544905608828261755176370200387279857588631431741756214525339572210311686003683568835872424769731468311978875472656113957205836606803909172455963466826030449227913748414114981008837328898453502575399951111910026270899050465168788537232428760855257917124190496691124276479698844969627410731675540979996448722612294468036190414280993242249230797465310320810342057000323227135945922344981450213654633876240949918947885506282340818191160698601032934592517013226372098952495935352238970609125771997759485618532579272788590776071705571400230175949777409162576640790932267927953996972560808662879586793788758783015640851433048649599789314273037062904700534795251557396194251710387473592828228122295668826466501534428128175404887728424618355020715407532593232788260950462110201719330137158944519792119357345375082537897125745907649680889838605049461661189484285854702470276212191897281692579976891089266627939439684934653402409091020552867283733991522253276671012864013240338729224735918068053455069495272395683944071072758818719516800799191379377126516351716400529220845152524745475269505129990833017100068340057845235566868917380083366167861833875303510213086844675703219288359329509059710119219993852588940204057822576441896345988655524286998251510383308396337590114579328875903441491469911570961354180698223592997588483035600039334035222517465660678042526798933632603314000589747280865819956747164665117831754806854931818772357518320174749771404600176029958618351201231912943561559599026212747031441214468508918622806732171570692281468497402369730702577838437330553536045400852434665462800843479860270772945172910829574527974585908631649664784758735210688034262782621539136143741006197387263647703778449633725509843614477444262582071714618558861265013402395865441500654758968653645459418426656207648602279518448038484078051272888633789473764460453658640135044828958840803936652703506342017184767673061381452209795580009988928081706782201035794504279854592879481222527029221481328436349752973886291005146910325216495331746307635418824689739498364231657097541568860175315908504937141699872127172064308391208868705877571318612569993715442971553444202643662989389267053272201763291463044028552015279476730562801994905382661871368448028016687864751591474994845311978438853126174837548925338337802003711872740075054208307644052607225168948894986041214814712740622108921736557128488199899362703757753232060366641428264752960281437831107530611603472427868121614195919815079356484261392645607945862507503913497625904426626808436393502509688427723164052000599764182387950735430442172233663571638764453516726518992015930469565040815675518566650055303862479158287360322889784422394896982764151087895486412844772861938028669393300396497932631053551581058985673551635573394135704989912112894387727168168130670711547415809967764684046912731425442050111489167725870774273716720837733439108772048404769055693827521707039579295828747941625390974726850300430699330177280750460761386283127536108522650391808267974540524773353232647701030211124474561959545006862540671049675496957964951785847194923500281360678876167845444205596647342051949271468419820434350236457472744488513610274781110459954565111926965242831985667451674535887212745766464295732823968715461275551010935748323820024571535874517539390060917420638511276215420209287842755373157868929826202095461838153205887225407986839187887323105201832348565793942051674128895382754412065495753613909354355889069943458530071214302191653847075897224563654796982150099705525569189272492370348097341567326870556618959383915155655254809354248915101544066406195272898033504702205000878785825827002540350836316087013122106271350216906041535478664609495472048025154006879710686882401638657923643104560877813050277776213037277233450542213455387041698530477102470366339650200429624211819306137252398674275128279472620906159316847854553419381159003411255102004372483741941066835592945107699557845296227892168901929975413615987839649744264909713965923068504695603250813729334540468408637297093113039665884836079857667735248931277603332217349933890420292935393717112670678502846407670230458957042641513152338050804258501466995263572731296789811419985310874919238671766444277122748723698601308566632594381680002005075143897964529066274082222038194277944587137752507107165117312860176030871922661354122428783282984863667625337234584239132446821074141143665176902759668511485555937220612187752095544956145483148853953159389058785046696131165143421649771426104567566719844675838914775721506026047942618728194292907136090953341624541223139225511094972325810542584491789487418861091628675450643383246961860083000555103686509167980281138603597094094666612715175603158791895630978611247908081044505077222561105734028515674481945637793035972518944192421417130483444166820252334458418862981520451383691408288145470765533179845224898381768406068712304630161668395642475792198715708831651929033798095293719364713253223257699860568385931247715363089950006717309216276985215136533829629241891538326544577618421758671808619217970292087008761232005104471604090304164265942832029516511089457053161307238385113413629891467491668055115165603246135698202560912633682842140379619132720194293307630715174179381798140379013977636237655710564226610933058606405294007410762664193081224357537428227411828634656372686790090634891598790100230281416580039181470606324565228735191748562131005999937714756273223343809043891672817916379003795639660857510289557035713063452987843571068480981212390129062335726334922675877706337650752287748215303854837758650726142761794474879683835916943012127305430138956918316502179432855472722574521876967814705508121704577079868909133741715714657425987467014653019251746339472337207893164908440150584698608414121420473185250643119877679506908154317327663220548038871835761970421012269319294993097837362961322028921554916685629770399687948931798979789832059074932457070035035914475936752629181733035548328706700210729376832510004290811864714723886704123480414280259843809367600720092368979431320561311875640386587809389559970565971295596412140032246698039261039253603480818955523701325126857652175274630823038608584601294036456187347226935645503996767400238125044318968457284274686254181521629273480430393303051380333832536559798892256798115866076791936269172723249959706459382200537950961874059504147664289357694167652961475000274890673189571100450157425835142596974282144113449854215137380155991813676392568618755853129095031814624316929886218400052153999746873884727738050565259508056758954117055155224504676501431425902489452000694813121879752241814458473484501494120633307528558660893027921072183168306520501785532099100497169641480786566332838922367497519094526692193377450741012965170433285190784299010134674201460743801047014627616723581188862412540689462232860593845072083668919869691977394233328905075876036205831604005958817734834187373370940831100541319968184906342847550904547014594721778729064584781748187911974577046160099992383218808537913852624170677382713375869416354643098122724117181293915652205212059630027521752035565359260777989061286375328321114480320309036908499327693557323413986349225476296722703840049276080174056083329832169274265786188329640371017838618509316492403677276637051416078068552963154657877168350873155862519325588405665019622304198212480468380150928074016394502208754348982604871045149089646295015069978183639812780470696283242492779499688317063292917533481393199951282949829412405469280222103797183220271621311729268598551757255895078733254874486935185074218023129013156192734580589488536709665968076010723279232030321975158335995675107333815187749898481347068788459925600304396179563319814444855229537051091016061797822081198061845311346991205820035207177898242409513408574832379355744167421561106082355200794917182718485634877871534734048891623245514183671645688314544414383253855566553354839109870449702267073361496987457311287993557558036273580119671883227921384549410347599329672492931500091916979197268617659105112781750323099595749600422903640992591401102275179304696311201428763996777077682892112340855887719521177155507096903467950030342995775002735523991818474585795636570486448739857271547008958090103101539158170484453744573626757284512730049998502904710298009424419294854023240505243337477090833414646500157081279407166474764727117656893351536913166584662334806132644646428575744463290831828264603020773451164339628093298188900621829283962042033709190344282409053925657304774949461440816732482772475554899015017877192553473388247543847942777428711343323041930045595643444004177694684706165115198259732165014985581839544968427312356840742816603972397871895362869280028849917824591530254759959080280413512125421698300839230530237529003291111498745627570838471607075962650131783001045237353332489372484899423393966806470912396833825270744476440579727428436949739556920649086105060858224052040968373212893122445598270250632001676640531188612321983515369946912614801459444419893412777541964793044812477933506456337046175441168786875304893606341770468371661623129708302891959253201031205048697342997034720891321668960089671547771569707021925783848152789981368559373441264444791743225935840670867432675626731544801277473121723088960589441358999714314303553210622619079440172768880244835201431298678620377267771928245733669602639655200935129948807074460714082023810035537191896408803731785017113295412728831840194663507187132761496823083311809380830432916513328733184024984752470777181123103055901034774842475936347602829973018108284826344314389181093539767260531631653939741587920920491505621626201188995466198478671354574303181132825234948745821192512987372182408593858397298529975661390791772170896013838510937150112602550157213613545803575110734104976203793989359232509470890967193862977868625352138346784490322120554946958272886426610242726971958732151123925587549836667090943805956270982652897704857281123536114177326619676290339402397927599040281277087601402177540482256457787994375370217408359569040701680258132808050034756543966980309105677088313696080433419421892838726707518208373409538123878195266365890892845773954385672264731487819909555906367747936999317690177377147585959296465969248477562739833307812980897647493449252756017513972596268448421348390546243858605289160701947554341570272056841811702871398812600837849197954975951358047766366563932329987517473200150976711604597114649168846735317319953067287373549642985161256724868973722389223828954488018454553617648627150127547383885722287864535156855288910203397275724953556711060782182828094610198743261553868633039563716585671274670366344127605250752289595812687645275767132832040152990548724311393325221218559106670944843046131519767724624632333093358698077708524501007254542924785944102777030420585903510427030882435206546357534267672357657078738270176615794020348576237352824872141405842762336403201081757498332474232732554790964833595999731104722583235566975527188649307237000611753320405936734512913583737229608667041372110685422072553130439120806304182697345467713823124643130470313727049962620520126266866863835265826540935010950199968375918551369105304186999479059130487384416473988687911331923725698956017275284090561374730913062100670000900193464179506745291912898841345325957344266711174362260855892419691657163586261123900616706302303028669305145849726363954985785941259218082853312066900990637374626832263832813313937815122204729524547979090379680379635597617323051812567660892699430560077628968820484776459411288084704196046386611010141487561737565960804407609529055172579668532463195669476059084465282318958572267590349780415054048870949316496885961420704177303522730737819579931106541240108672334980455302559008682569539544310249543490772238536008560172763647462641889356921145246718609679789580074264626148625962238728123500506687600473757048503625778972938615303489268508282788385284067380220518847961195270201754792783464336716624267238977812296635785397808751151867940554248127952158980308744337632098972320799667784595706195827386666085032723038555954447065351142667183333503566477643271894273173811892878304821719756578793625107641905052750722770481449369728826483253430594806550163214708742776098519786600661249759917639242008163428521688992359663200643535279588700978726155160366263824727911763558314071254495542836654705620288681587556864886367729625349198397042320665048620144654713455169201682647483583872463901136572679102715569667157724322477032343001514282839049949376997587946558871223399769635243166571055047822926563417294653079301460351739836080749174870778963836115882096878677206810742381217032693042332059886100176324631630594811266161852404969875769943587577467623858799718487209264049837815081535829083787039596346688315646682550786037222530459316570660630634903303982314777503693502853431163277997170432956445178564045093244653443677593012726712066133080488392380823226697341215730343413465929972578181777250330375788126435970487858503236738386574700456995367174414274079368788370147007236912910615220748314081466941583423479607303422608576694506617040583935466464819639428750340598743811919861946592110082292578858721583317482278966432140717525297505487530591327050090302069644999378398162259735969897050939933839527755498137570124153622303468697379799295470592592168130158550700039776442487325477709725830050314125877355507589260519013002084947751516169649525620682222996209125911678125112825901389800874419199147681804264677554475555572479761784564319330620539049324565306934947553793812125127408224026435230157791314017672571400178091903598508149197069940377124908548457181048303686285479235055639997342034302505302698900886554199271099046550840795642362946460560896860871774257749239864484415385897902042937077351438180116447248316125020915311509916224976607758902839710179329726691799069649496025206838060668125409049363126074842854518403325730306080742020356315380416590568708236107494864349307411189412371566819328364040195498508458631650643218500960120349146189949415673302981257265869524675117446255498678419400222781144511585712080446122317555443614252125044936468102162511105463070806556431194253677640048034011904296657404466131964948147354148159815916090184920915495751234237917988009191173967216300645190971486617227459002438787678087638121349960500990283493785255826709153787458667384759801443644331191692005995014261477541240334244563544187035470487333748055713447365202448288643194258992031286829928935291218848245192663594502850121695619168838432301030431823634554617166023155406426628708389841894682586778843415010688045196049998588861724459431167686482195820597339187749421693983233278347042522290755809615297859247636810360006909134062129514712436199751996002920687017824943437119985771641448408399497943917319989503710983821101671293804671214826441183926724411452118832993988552221816304841483851878634606789051707095051566100399146005166222601272910306955760585500823707810429574227753997777550091397741647771298473786327191113653444644391115032768148498707258792515649930690522786667050295481513976979914798224933746416785948462405509885474868038431336376185490241092374540779936180509550658185783595879535476111524686198843515725769325880147468383275936548685571327778591128534211119863059169085632408604685978345339066420450508825935917507918791048692964240562454600150732748463953615362528211685995220597377277095510145926327594277471704050552961382593781637073608038368642485737988434805521790901195721476140580412124513438732830721844120075390333205612600959937137894649273624607618597234760642040382867800738627816566888657846078649755457795972235649583888255890098598744055496948255419266039039899737115918849875221619014522248927601620139899041834492126812212556501105770414296519171365430777277237351939881861665340532195272007806175583348748023517149690263545707102384658617509247760946357854591196712714040406272568582138316510190966792776950439650405512733404895169408597802881670132911353281666073099001572030617606392184081916749093985465374129808288489673230858027106860436352226511648083017193987419030221288240395044134450542928139647468081151240180323692974898454785524050895564844013154558871700123954028569052941844034322515813123779121816049822088169481688466323175052574289203678357136370323741080262925930895004866663941691365345336379313678857605084868329958383271187417993600415384297685242494822002451531798736213863447758899836479007467364915176778307968168419566063599480821587446766592436813571704561444227870650646436353274893799133762426917266567468919086405586448403908516912303846281718947196152574112586830923282692092178991361555904976171748729259128284776758779949207207943872983123813714510462702840655703490065855089006810504025815328074134073119549727011803420025612545502569679058218093201220133181939406681794034677480472328977143481943949350738425399514203552478596439117645461424384507431097205747085140430087648087393789119616007124805394520704329005774922649289277843025547924676376652246410354178300925523522721166502894662032596911368943505673835815601769225982137405269222375301991582306392959615356830757970339855590759582238333014593587176792063136025516540483887696841825866661607597774952789153818838998271496081049158703970020306155142189507971732950593505846290809741201168319018537726201667394017764688396709836461495049933448180357697092648236835215314842617955031497021875006228159108028400687034629189433512968302729498409389772420651216262790924647434348380993529537020064879262699882164007284510204851164034937403365563596327787189116905555555239584186258113781246032237560831474541237746265016794896694838532987319551559023496374380257366930412049955570116800979925576477621073125595897756789603560143755295628364393114602825968573643226442094067965529652589911370203007845055743911229618378889704999203745170671096528524996015112029363489652805992158705538782860344034704311352860850919700144733427260866538616099693700858916929103114969574649419263776035018609304656866963568389818565022405514116473022142752167300909483786209138684793077506852658372541483708613492689301593223554879688540148227565893695561140969479447711488412039381536590332319095614082067920728789770378634975077777098843902952301898192094733799237664807154056013934056939116567966417717374533983225569139784152526676295159557474778975332994334926541988673738972074212995873209654260799768912726296501537458425613761183872041341895534079471177975195140424133209281129593492453449904341977011666769179151721842669989221226715277267187249788708865055843200396206334665873175393269247808809349843325871141892714433822972363316560951675862216937221322597198999884241403926917941494025046691731587804036816740469473982261085645273052367338805078146576503620262467517687553514904578191934571448925222657218093117602558941240561980482234894882442047621372705597714694374830093962783651036845969519277933631443738200520323358442024943020513306490216789197021582614872260686883417882780029843199598995653569868670863212668727399029976106360280366901801252786436063163164288216577939892097082247381426957859821302187190886373591541678096828285856850455507034750276832567963731471616062398136570610072132764049697850889008599968626667032638230059868258232514222190141069010754890169167231768642257731168889843339659030654085665411857693125804045028086243892267617015846850813535690089152923271270784269311692525457436572569716204004752322603206590707257503499353572860612573161537514794213451084734395218497373290691923867963481501403158868626358858091517371375577496023307962031843517905901072997416471401454488504046017505639435922351529933594430442721246577981015349836107071315281718006773126059914384709808570361709132290422609606391655068336936803820368071767315345702414434970353700005374959453064259935780458755506724399289025944742321519662485409960867808391699397165112657796042857532090390125625093390530208617427859114751511336567192770399949259508365656942111741435782746497083193255278134545864167643658776064769617303660802335553460916259670096542783209871971708214880490984123063418347195923651028714872326823453718988941053678417756617717789690358922042235461898774241734871905331927721064059998812715597013093194163912138919270970423280958748147042673287652976734253297583426376951495044724649330485344105561456860907616852441853328457927108124180245305833206238479617159787614038095635249967899740979095443676575150740802606059395699819196328048570246804457033731697740592225470907214251920989542926286467886471287171630015969395514364647460631517581825046087799164736775079063299604152419315581113978463763208896517887073946322044791759278642827664962125640876408353285374715523991582696257167305314883616797030929929498495014525022344556055128566822650708817257786857099015963544709357212013742837734027502450715157501823257685185492649536037062538039205370382067564147778668331381962857635582619776537325932830100009693953755325633863436710662390521872346537128861428763373582040713427870167702669227577747324891043821655634368784037692738976732274568271218651474120752431826145290749789357652839506501100785712243487178533953770099778805535913147809111428208052876233201477089857875719976379700248870248704474035658295238642382200496935418921237167689819874021023015471593155503781251249610697752608059932779630766108151778994365690564411671284682739559594996704359615398938567737446762524995714447526559914621013433835910301066083483024822481135461504003549429695643796427934750394325058496860309104498222271822362010831675786370928103560138744092828544533792191522374684759892476874681531208022410419636353121848282004965654886386902537461778443323070750540684274787324061125479199508872905611967306976600729424481296914793834150080532048336550601987694652954229212933109976102964354302931198022872739143247289497025048662185871868327484939494901259927219639992421542801610179200386046734289135543641094353242884779201055731427226259512269185924329246643141606647794410166534183134432442388960874438302731805727232904919081979386050453020964500332556949457120446102544492402441273741849585555815754236634700614673378928626398072459949507769992865163359175345108024270916033873178373073492390972916213556708936316200876242591408727244185993448612951151560335863717337399103497340528575837615430057571311775447617134175798728991344680316097781550618341360654279132009309007686991573797658100609571556377190391696767306472026634603875966065112263830142247726819964902842631001369533864076869894622209914965525138147247058971611352470870736706730890733485143679320034556971674870596007530159416813539995064397810178460273770152666418440723937083583225845056231587007040406352158373774633977071092257625971846809024484469336515647272347803104695418720196516424047200955976241627105115559875159637342965553076455159861584518232383795821649496626753701244656241118528612622369414153863352738124278274934756478266225786976032089921522969352298180012649507877617426845733890692571120219821851139023764840635516260652050037382752112056393292102386867284228889429953897971406352892941021814655504980887082109919810502016381660421212329703773253606280428839956087549207396338861873789964999129546069967175583141945533411676476499464902262910780603121725730626315705786190801646982529881937755495421471760488480724550527562567601993438607382998025453734047194766203555869087218914013772431573906675511092924472820708700245090997673359736223152229071218421177084692214332432458305466645219988589344716809081482721708810225476030348716719370901649532337697535167130344143352553301086185611486528546632784158969861944167168449640107549152292203359092157183506151084973052662227173550398114129503540181529064152024710319811178401013980566392952782913012080157776491359908641450589907236669586372156894235455309997023640384679196933210315810571433485692252325768516531289186573509581016906140503502841604357937184793821088737256558928208701478324029315789157916333085999674094968155670274329571019284246260945874385848043862634399896855739356379090481958254753487649859939272056255574855561946567773425615756697155821849504411630488729728376935980187753313866203278028361599517177199223769655120531365163432563329853220155138839101964689350265867082757175695734066774473332692605070666204878581529197215919666381963454749379378667996617752810008638445763876301885884055119627801314295515165195675124944130794214799428713294850170960894431918103971563968155105554973499862434926797330678746191925795191485580690317065189886804812618038904479391401478250733815505377086881524470877481379898810963430273122000330607347065142458099035258483413893454193990496493989656545207138566607659936186683761085776539340416971211046862945685408975912947874158599732492076575540325280802527973817461816103886833178124009935318840436982559861069097335313314410871829604241957630663526713786551660139347859517567497190514400002319273408027994404440745490510197410619781791589937631947674699186434107938735206532156073613405211787364837578459097966715673666556986419827236142746146358255056350606580559329664821110331974474833913320206961403079957761254122624885048051415730489057659337639503690478313511039149651030594584627626319499913967211842905483259796581894018042137662385891337850281842172358139177578539192717170750182906586623833722084674195025645464881768946394688435292784984797493693407650469429291577871665688267805599930716150785113008187755666705825381069882382117175484172749637275654678393515395630365208880777815091328761807779834694743396238998709956306144376417861531161387208334868849486666862141388704471709838151958915843946494692170460601470346093574575128364825320510233184216438223772929253370976644452305124695445092648219705689372313129253528033303164371481019020229528989231584802593318571019805263765448151409455784409720651475928147683852778033316189080709389554881076679930875218590069717262797513560630933007873105739070589175961871859582064245246498393477480164542023744983780548797674065479752495262209377258662676017358231738123587008858533575450013151270783910381481625547884678343518316371461052071969947262119111283276364159447276340426103644946149930144927683630694800787892105940006262697949580720259495875334391702406206093452717550273826878398485679097175962938979856684067575997919858388962810580180426270175489231405071061207510620530767017497730955286439390392501050853302236536017928822627327285609153702636534442388474178949394489008174711824572107895773360931220523861748372538865359375068091789267561189535200139988097130374660878258195002531514436690104652236048667577601118289059827208776186059887153215748473396543861933021710555046541263569492209527710174453080371866881830229939520275947607504361870002211560219039313548080657984031267690975587483950986018653337304727905382907790408630320366329430844136099670629594516995020112262083078380854885904208888101716816151218497799932846808378736828030336233895090401187966346305761165303221940720952896429933291411994240621003374896282281479770666832478119496085230717908761942479158486335312011078909058564954154678429116162049795981081181319276263061568582945251297321140663385093936140938415905048433862943853240889404075658209120854670576746186291534591728817077068087730943022278952885063274126919962166587913123261470249210608663618971780500798970648123792713452559615123918130835114237281995918896499077311209101021165197790258849778684565965548925203503267768563106320448811666177301702826649188914066725366372398911265591302880075148613119035430098872453902328244060661350118767013576607219578749000115412653643232236740460295761193562247073169758251874969097324509426252876922511373512952808025723035397732848691267279065120421547746168788408005438098644155457602611133662731391753396397023001626000674194894370036376571494880135701407362061803184147909500293006529420066334023305125007821574044106241883925674635139086567657108058264216527579060228659810211081568400294694555333249461279266087287109664486900199399557957536793038061928256275313127680456578094972187392956098624248683367823429891090230540586043200397474546996747850051866679966220400997724078595487582633528689260560596635120493273934983977386517044631270051762526487436119619005619395398164759741194021998363744500904899284164111667393210152732473908624950234133327584319356527604326837972038820676654930731484813897782958519986963407739609518030711542186938096691573767277166168012733671352021588729170666132277534412685428592588100129291274274687534641273212393079312130919602806325736006442927147977504305353698180321115572159765419900067162928784297579262819827321413401451708486796713556791658231746810474130388716156715878750408793233584297358505397671180774225868847153962685904285499845523589006833152285009457448858321324896883475088127445008191821811089178378179172364709377656526077631171319325398321412093663743161005809744425691533259970984305493498817798303441757147379113948765789561349154834240541736187419281986905769211458748523725144363577639151182862821477414660452844058212117060006508978476813899496596966073193663246053939750363242638329813705594883373275815094352729642789214600343509325908106617703098416968006391194142061947403082895205568711160521558859144562397126312754811841016570923217379515468771693176188169670188940598876007728352136458906397157989337857104887646328945119082724150093150754832867854971146882536206091021275730582801418324040481236233665006549307889596357082389476827031266286319309032140518680791422958090288324931646679452702656372190560804155845032163111321366742814756999984949223681159041984159957210939505390710730092812190293158794050497102854113613734357189859702896270383110585348835419970046557240850470089464800877541289414594128767790659127022434517113411005074555146967823008894673271562760367588474416899984890380206918735770712126268243321845581909039229231361927396660721843124596390875812701772486798614817986728686808154045691598686908970984408327336774849310015454066037230807154417945383368195444211327542633214073428669488878037959999993398051520497550931199515409209736402606526337298236552492120254685858909280086034642872891287993638294072914485829954255214682290862677212091668487193124828960406049238899112993278241962999048974380296512929475648618486903851298086058857004636392007282396256882501834233938814860884001315102317515242499869379388091812315448803115435254525820278411607106661694837685810098355972127917108616570434615534151102598851363150030934574037590712195172019361413118603013954344628737799390026837973233077337286683147020687349416343033904035361705886419225195265405654086136608354050222859153822862192326614777390701335762402488521478070323767479513261229249130921748235980645936454867001544409472514338308319949828500660828790700281608753026161566363648166709931062364351137180165938076627047412857819790562147862811197491356279491965275450423219754557469716488352525605188339575606129562356698186569019980569496822638726823202871895321496240828294916444023917246381705155674816870537528625682160671346496891208172382205838797362598274552421738348660852866060658874446217569055542574987011214139287178288535445414792765442763443898644735529431401768792097274731160753121855253323925585991476679262581912439527988597933667705973856733503593116414431181634512277589843237995973523053838221876962855649369668648499987127022845328551197360160594742358001810113692243044509570399377172996266006317619315304627979667855181151830368597854099410567204951355466342764153008947247411776865659012937986858168097481632571190355484398406796885848662401751480591369371925536798221586482014758692014145299948906984720311476343994814735416260345388208429832515018002734111468918342533369356761530157732116837838828766025015219813720137725845170560201402748974067333049365720024341180384036292593069019400035804663731456519490355128462810911739399362931009526457557978288364819667292913000699441628359390975980480091123648482151346169380759105205126451430750704038246839224191328015548756563314031141486764525045614616088525192609391113074751087006461415943592859491862403078612871748678295392162624628162823379526624384261204856163102298100098310401882752673669305875035600787033868695197596066015785262397180048637123732322449705044410410943264531661419642101146804066092412719495604272741587812637774068505907526438132077325359946912053070605607884767124209769438279259880097840314919421466893818776903354273179150069730907302592820755827913192160808488903148472567733028649265330063680122262967311650888416666250889825222204432168773607646686906534729551837172197551503868279760843672639346004867985500945437350777817835420704790134245346959393697377380271640807128123360164258524892011692394668297932413950394175983304671268423343467442150833435661646401236750557658975726136438453643455027726787207825864521887509238550809745885363446049581512580461473478939895620513144247236747522611225495128414367029536209667914061267831849600902536960925924005503880231829450227631131754716257395515367038676122454331490291812006091463792557652334534466474003568577444780618615035312911571966671526446057613001189014893048739406265112128726952555000092232635357317341909844273371491403801847263768342823888388539123507091435761957917093045716452680070312679430760107468598318114406122746255763915212856012812284597196372577160715069929926473169439654667968863332723160898897548513172525355183895822492438645706223602968559995490812724060511275099586488014213647290193271812215475652984013436883616978962283356159233995895627881111801940614889671354888269734517999252152630625047889453907673348331042414191712569269824174933481695393087878824761273274724354460479315070074477245180931099385228477312316687664319161368645133258243722369450139379337973818092711905555001893210502693594045708002042784574802220603564033692101732821810187508063611127636915296721364650185597731512449956642756331806087460539418777336590665201258661045116755275858482881122571141653427772251347300260932306760540715942978400922297669301710427501375332749994618548846330779891976782105258360021145069834675972791144258922543629707521022974662213202724172900393202976898592805892195027996211779172172407677899579362876640205740099653669845692601291444971422516940336083878435843093319341873025931247111068997326539569992999439812634337976848498312241092732747693133966356059754968024727281013460729851216145076651340918449462457566106892823480938455120907744196863046088117562897796523559419691216620157221176755349806756325810230461979299414160407482989248984724558370709163399635309664601502197155821107236153243749501614939155185272777428435506600161861613172928406005934033272712351703045187199087028830176543752918454089335646345423481364383760068908325324834442892956108081162965546395596431941215275890638780225230462115112135792293803756091690661275080736964920443253464261862385806492572009170429792198067255312273333459954485928669166506757660041249584735975822713580128500821896180427507304124894119164288550021945192766305269345597007640354961273927464846143782813068985242909986464094088327320327829364978524265550409026121100663901436914341829116737488545147759296372426957614542694963904070369924512430005663971594023524850323483563744996845974646459522763307202906446449076790303907925142754107992895982989960989663023719149170050829723786209086035816817907972419013406500305031455509529403685295549178245703400916887969677523939736719446428330778144455305580860812395196363261638526346252872823089246323559766021888003307709876320888624212068617930750018535506454842034873442075627914473986483912226874529192171416326892570029019970793088933850086432452022695461713273813382859760913728421914873863995141193938137684151189745806394206173662951626185547598904676988615243625213924766710625181422017005378727751832728417104275206659290249119699349585375728017049884445522720461914941659488451897117993908530768064006051249468402725462007497635784092237125008625595607466516911800264251728204442456121033835635380259456729781830226993732939706160518067631309245734354608963698335039882182531709787335020843530668162931192669894747406609357866314600886715294962994585809556665498495903652864127386558346256211104322652301465676229713403025968348252332795732690015264279984623199145830204010313630618371914034102313939838275797567863283013263123115870527270513886073694580891587149262989656360291266704605781363222494241458018879621073494184903685587174848833162085284842383247006697677940422466968862338084285236366550962071550080678706770626680916012386367758471453672134925520068694314763636072761195042840704901053394370007178786107518308355785976108116221507006663868170506534682429994210815417731193002515251839425203552025955281351520961811355410843924521780169960911109782592394277233398124398571713118292381112099547848601268295074731633778353177096068873833398520312396087987295109107855128106359319816011945092820056689429612497598422654393259039742030748124109597185001672903839592317451031272763802709021156865001776438074414698344142115462939093548256033843165265431301242006379369199328577763390623065569227466889564306463746874175495042049126609038552598382117749032244993081343676201400704565013338836668840075749027721495138115327580806177945179502035350587816230710912780304383179655453575796308910776289852966856368298238280506637202606736222309385799182019669875215040101346677316398242057019146787905825834514770301925688766567894421577231761778157825094887906032568461191203001970755183291069832220453751673220428946945979347753037902532544635885717927244052470235004691307509626154471645689065446186202011841130937147749736572570543194854477699076604546913117867902884401465076489150414795565474947659763497520170146683212287116889965782074212261086010720934587540514750566874819381142226125808843278852613677680638233374990440129063275015102885848094501990327372851785313267909506677022286417408350602427092632542729446803526988715563947740309242078083679368331965847986996991413007762777140809398600090203261413215256990715894928779761098741083612368188775632739207521993057585866848878042618382500334277997279663400898990649909158146642314406664393809067936078185044501569573045152520315679041793125989515544702069355535810008944826980342063662697367113371496821529308618865602911869965695336504383972861149284273561193750160187258732203299633206824008853708132542628860498930146453950075704787156411196604749604263052897945185395390621886470720000724250829193166543327224970867597985057234862867582525977955149111680423726785851129206414558343716266550947129488098801995197079030330466348524186486296625159848426815000706397595606111509096951698067579254358108485558975473919096262187146071987292839133129082271804305796961353194146374177067975480227310148327734500995610651930184064954539850706938336682589697519904643299970734405969288708816264875618580557122040511772948314941348473649453290872627973660856949597011265678375885392886139250616198328976591583767731390451520659207358773566843436080045985708283444109277474092123859349844441054046424354129016590117162397454508456989872573186015731537445277252754320982391210182497316452354962034428560890557091546290458224851326287866762608728237715241966811146756041172067655665914670083212951787127591592780287201972280668868451583864325454619862337680670858270697586680796848188559162566349253132338049976978781834268832420748806526073626409124848583165059340923381612554357431147607272632577988231753465401560068245709197704564889740521828423783331922795329592083872890383493260883415095644582864693289125789685583427005261832465041510006640429109947736091345388509951169853905196859719480377958809160947490137576377183617012664882179860539754161468334867072271499329788502833028644000244423048156589057217856143403570064784256130385650546779641115408331972657243519711701214552509600988771487387277518910362623501924984459227488570037773816746799104151226268146727244892075277533375253995073330816079358642851255872754686291041752957011451937887346143476100563074451167735712887121240896888815532232213166242220183419735027090929550466774912126247023492462612846330785257262757633997119059974928111467137547022081273107395954596835988740206048441366710540452684762472302422093848022621192117798793203138650057006252775776079375146644550255695530348870787805728097933792130562633856281149578154707100168177885839628852722526123471466903193414090477055015892703322955327673355935804562977584512368534122110976760987426920951879164300101042151092466236609335922165519453301318680928407638047265813597387412344847215276204203957231055232152420096126051484660911819348311974141290709115917261783318173712046846977106247349468932835737985624085916527746884138828533472237220282409341355555764007745703923763190655183235861376882090810626890030856008259397810295905584254159517741464526219599145935095238425744718010872775955031527557367161955971809752037779187134313115953748982539202204066671846522914255557560406464439755391496461693584505061492491389439637499233100187453078663642671049639598519633892037147256043230027651447550412441325845335702202757445068144170681836736625856306996528120182484248049373766102987506033528857967575398399774950154676928362924519934720660528312739909256911209692831999937825656821132343053705452175591505742431627317746931193719572698381836701236890475793054729912340239969858249984047079169977579682971968164986898667772732345583749348551534933792192993270723057105461388682826428052856275578811750352488038220099558859710282842021101597929689097415967150013640845691907237763892606138426262635772886729702113904563681307857022562265443341387315608911654480783295593256179895910838075417438838600276454602960811598747800754765256740212376450532500488121120436704535825342929145546007902403096585308622004542125922228819523835336554556550930119973799231500753973141188039254163251554075121139306020161071036538445784712479286981756490098231142625309329150008573058888536518753950183242202323457255673736799771015445443864937385503228900716350361976698724541640844301774048899781064743286059734776242488828376178386788360858557201872012232964107940763116368952442298511902736336104896709066593745381971744562332283976225697727652644109330046793659427903614005800292086588996002121980964132155569342286631640516093745085464345637573564688297568014786409919753791770043915421993770838357278307036700958039546813218202277634687373483759973846260388709927942749646634032367868103813372098460207956961249011737394444237774412556475160533672164897457647528837480442690307592075217059952800073944977094388126781912362564141154072780034933057836498768633900223305525420794557475681697334813130400622064421348848432878971100699648438129474342430377859999551373394671122698244377759525766881454152207803125494911075802638807044218303182509197687353211367700170128430958099254645589716808092300423181870343753615600482442560276344204914413817870475961535160851112758368176162639604410164440686799492227039054764564492770572761946470755672100087304829037958684999790328260277341546557852712549517526334664431000691259425759756131734247921580118383023821172318905739198629087695781572313338301495734343003410831211413926130205197143523194132254436997181342374175988636217468380122875535108599441631739175867464478550641104126845834619356615294621675815845928385643691766493901915317253751391663553609582763111224722470189128835008459771695924665788515256560678846757307587477390893597063572948435499150143497860497129663543947488714445746058588298888399437075004107596167726676082330902458117092072036512332433444989346351923069125029836376061497961540866342455026930391606594917659428749812350204214950500587189925735179832440636393676448291104963475669464555073124566613909568689433003937877596762598320506924112639856189131186135056514065850988849423555056639898247916795604076838733938860653518836830075081862878154184876523353650016904673062872978349312787670561421513576467558244475924234001189385084950792784229002087451770049939777723202367707903594618502621640966930746792569139070689453703082893524782616948979556708276395166293999328647091269863532403207687625915003617769879114848520780535460053430328463379012749526559117796846301656288953685979571026879444969062709549102882735415071101200110775251066934152090804032598293139699356484170083986486404537538021855665775962670331076868577847454773480862324391582848815898167900290147658132485782280984719088969547729687546013447495209421803226911087613735751618851133720154441339676195316964270353947297967059947127765989586311805045391308773537676174464163376388916478220651661233080735337108041867894331665777160715159235976431995110258566076105705370468316408939731922199041811097555863860483058930859360075586811066263932364888918267415691166901953756639151344771235375521491843602913814721816882241624381988236740833087395486199134025907642571657180074338926178632510436141923455403158405437913382223467790788325803423638774573972651407277021232981300461985083669555171472445252668693891939403305663632068006829401056199065017715602211628800266503191571953317763855459100517720954984324947902285954255718082080888450704762686585610125597611368029577412027543485526219449257216530699318949338464402463338474205951691760854701134306564996953124041377049143141067297541854455321668585929825223949762177968259345034319705597812189293692174331556993730218250178562170729903442560916381911294233217649423672748237193406992599221915490023563867109179221139790193160638854513436101078280955326248271044239381177229358389410840696600926043076556760734337733939008080050298500766726532343572194673167423958401114494163742828926203959104543388178420807375448905840022107072059720100232591601858027686487891193824315901906917357721390907434168837753670033110777769563201085856192922109664380089117603895027495893042580339291788959640283044349940690489076031899953265249709496560735936311746156197816552115200615769042054391790536920732905893911266734583794038063490868176892685443163897281798032775307151286340723181507253123536797629884690060390322718573674099091907138794537354377154205279330937329252713429018955956703048545385970151582036593008918361376646719673031727604932077353941885926719221585932409675137385981669450830439085905776827570016637870784570720825592526712480874643000913248236566130043596044119330614811537422155583109931676945010423384747372892467386750660652051753173313268556974026260025938830288549226066158337831564652820410211323935714265494552044987109952241427435930737168759223443541661292346419772060640794672767214370804374340931795582573797105877375069121857504339660708732893235225986874966643410826582866324351520998774079333355187236887233302488527734143118153602711142785599926859652864379201162128468749628022747426109075676903426657092179368010994663366434878946271008231805140229618335149978654613056610215884628218929945709216143849657822300687345386980393789259906536364113450442225635371466393470170858959855701720299224673958850566960452850524829948696311032930521085672512407164374178025124079448939064306100262308334822365888264315524182933263459188740090003705230262410076947863003490963669459075109359568351170427853928663334539711222264900454216319091529210169105037430013075426608844608766786216025332219185721746734492280778197839219969534775444241006866841430921240976891954387926127481126533457045588864475058270442846318118054713273903085651454552448713395439350338537287687055612644775540075614668658341004970587336793763484254554621145293901388242824708961053721719235311575843472613017104404662728271566825924669298926866213679686305616948798557907357482575428780674746670610123984966473616998156754725115810455377510630088371108044844423515559409107859955779335006406101764532169307339763528518225033243755460132120159651824929002739997715460959300388137364839511297140093695462103908255636284007022984847610654372195701419890699582670738479425241868474010557496612912732362121551863172781205967958315776190901934031880805427700266058572588659283250395662311282475624684555601898067907667085799584665890149437830469500328251384164307147331364952350807567729328599305808190378629059045317630674524188698464679388837605862462941637633569322913767945906930619265428028198024989995914520271141438601778188030330680515396738824207566041977578260096953303273155232191630216358925895378922710255457868572164669003622733915691278768539048379529018393118502271977738564613465369353207151620271157187863187857168434668846305427658310216355844879999169069747969017955170188173530958637104227929718887185833117221600099394811636635437801575884191912331935684059684592247708016944649023684433074596262431929334310002937503702789845318353089932851806581343968968777397601639222065631471133770560819155589521659375969671228360033637504996826952411108223147021543167778174608577019488604129920826996903019999206090147219578886175299506278432208522642737183749672762487368856300352956751071316278170886973085809292875368133075678098653304916306184182907664488059536409600615379449711142909700381704792599091442750281816794831993718063865139671493938853485547364507679984046081174160330172702655909319135516526346538072785286185592566999213976507551088313285133195963825428122381736900550492109628760978398394083751474511705334921998619448094607280877858308857916005184262090749854076045144920572864887353280534752656352261331948741603141379318568089973484459604930777205403180649816776228297574133271152565917403064327888013155063948429682960924854530615291405227873145618276475314276478525916135300246492603493250290012692500169818156299956775187440875665587518383290918455533838292464376309398369284933366205789729375584288117170497834626135118123176617666810061999022105798132200399265411303464434120945642981463671413604985152986209626267496201521462186193254306573246079121782239204020442462678821660996095823851741747876789306923400756071916710232127258577733881104355590231489688214252161241659758432379911964315198607131699821944098484898327708113964244009672989836697532792231311657020735035789955888314150629398095076379031359020927650072095269311758108582532071477608692519742376331988325544880700097925618512994542631502463731078592182531113874402811493364256967730577036421484947330213077505522883689069039299974501640088102791107132904854791354683237093809942019195277227568721342853588548571893714679772809700814511855918908054759699834954727749449406129158175398603425941861943938825634508404127343053402723854215284114512669972068034641688098872636563006926856369151049224185774536161989678898250130533052264735752760936813935068570968547014629233088452345681153837524552231012392224200879037260038272203937069882531466628262413568895742219268521041107038695936059807615837102909857987292230106461347908391432385768033999936304253542543792060517984961707119441685938424853120026188684032257155133587018010463411977845889602751453719509532426357461161610468730255896725990104084255577961618044262893657791224000702550229585581643500662490161482087446011784039758870344935552144549137687310855714344565747755328643320976104986307003575187546093180531167889898135365770162120909564817324209502785360170608190428875268684890613461447155560432683972156644779598830077916930708517873516980775053801854613437577233398934729890762940674754254442150740392159040241199340443879882800459234714435650548593282515855234507919458395732430956019838492541330984737415234538877690684188312120262102631273841015061085398860210447674377828379624010298343937630504218595504453351027568878277480615875228295749710295124372344116087400408741422127431083396388709566598119805214065560815121718606065481759777604037985697324204723337997952927328332553732317225465472583066011638769336551446731231625661634130766920295376771994676396309829583056879246859286235531916186648428406136855182477981676816808396243841413605875654438229145238033770912269928637472568112881633899555051468087871494334719865410886647983987642395674096876228923271094956105543887562822985135452746611229502023699453364497907350296434662873597521408353931653023948252929806880933462830812631877311878177723957408877029935553729219195933137983640229763955972635825475376685718769712046695411285090971954248666401618483864702070949822598162230855809447644047450133938060520057061949530186710415215238061459791914374350366488636775930360412787515632371160218311439551152488565262970939133804651539481089931812695552694962450270195256858066455686497348624038930396636534950126506441478868280435636336065305114065576213945500910471187670559678668824109745523221372393952375840804282521341016842444444325406887194661895888874634984889935525849018402040590087336062845553423575898503155728921563497803657431628118657981313623250147269539026917471058086468258008149999045180138722634762879053087231410678073851635096606692138035949374689255606603339779982781729421995517698015918564625136053260405363968027723719579943430278555613155372181295935102874336171972859440840943216732821369369527946365245540404361902593021397849777767700829371235501852007506582513132329726939751896973658828326884818605147885254169879517269085457228414066102099192052127137588152905778746926037420527160366724271532971431997014037996230714959972362071051456420546620116205044248712534481243050410162834242735605188597361679854440353925762264877392617664211881229698464418273214955763477793302571082946661969979025453089323408633313333037926771137577537662829915656239983950929217374638646922792239609319367652364600894943805528298593187494810170205041819388362871650443746117474537978049614920668137262143986549063238117862155105987685271331938472049153093005000574570498273919997123903500533074198331687849106265493195429107646673547227332686441292508131212308747700702953590056980951532195524882761368174676688971859669978946636334438978764903126337819655081066562807326128729467447815871420229206342894118092092907729034580152739433710880914685329084424711931118308440499479392579273902619745009945928911891720655904110328240533676427283262517550193633874629083413106768951929213695345158086164240456252353596510850244545829518839579514614832240028073231254832786260582170152817299496766990539690392842056410948492969306122245409927697525526841703762534856277458003746166728882787879758461366975705960496313418140428094860197391584204426789155682632788226355553258134119285281346738129656500153803317524496442838268981732828336221365200576571016075802587544546244026627201244642167588908019865316352878016946016529262396998270401311232028014043778860668270837367940448175467922059872001411430171672881653815743291549600940825227379865483750898719167296225101345169909276355778302859308300797175342510151225280580538255347210036567004320681743842046915337610290245420317739728536020293880000341770314165884482845455134362172235773827416138349623437494279863769796919821390538162217478984142454525618074785921281382690495591967281993411921574767853074965623258481772707226684509164030704860193701521430143519199879458937214597058572633329606489401350369605561529870248337040402725457251255871827978508171382781746615513520868296228576801038835145476286342482853145313726809896009589325583479688017831795563527542942116229517779607975703745494747044949285029650225963496243955123521566901392647588245647100312257542983997831309410980303029001875087400993571243838636366859753388264646001549159662799372511996450525811081907429599631379855595046899939792818551706911280106329154857308984815485320992630603654848941145389934453466122111278266295753289207887262732947256049920741750221557197542486024919762696519233293657571837017521407627709773732522322210618847080292390430605470890894026395151404540902802104340029437584707052987520461535946875541952325250728912146606835399189936826771787987841375832289105558682710010466092157821482814376130961553779559985322779121173641362998140889194119052312679072491652030942088659122677941637140793586777844445397667765466071252325658410118908785982849102567353505741265752173988223002565371685349210176009243590666084524943780423770703653579190579510161031077692798141283306804043114907876765930801309515666590615395349243577425148593454508301490304902881565942961977043952465187787010731658798312972598756251183756236298201601663349957598117777888418684336477726695272386788473089337225275475476433473718122490029399041968804707635925272867401446244047578892567765090107527788778419499445842481770802606551254540233446880687268946503130762784066043752871759628228577088010964622564627192556427324393525486366310838804771275487522337046038694933466348293461249633556595754961893056204946194416397670187333559980285499599441083129893430003314810184618099549694521309629784938661907933680919121295190199587869196852282922371858449272163604769920407466305839390049224537300957810405008650014503781484740039844393174366612629000408991549344377970106111360726290964838515672277962533430982304440224882759566297381322886060977384489056767927739519238088177744538208746964753134561659139386255276293627171773539957314601604887832690310041881010429020489080506306862143900093227916764114428325338421995146880102209655054518675780628776825010950384174831218205813498700794839350444194222575179314154681351311746860361138335968483015099678809770714084533172373068273067929574467101982093103136492232810362517575588098386578701392102744407891241450135371356915627294846580606408506286578802607534289289481893150250714004091428500883412837144967408713401374163005616317780612656517255441988995482801222394548430784408527330199864083417295013685135144610909606028424739797202930971971566368870338802466502082717877643580611042342213173607672522821817760803502407488139692124795347687415638669405592574706240736640661510234450367583887756762373247607079724612313655770167908467005211281834293411903799355096863969727502064704947610473673449648544830180466375650368654542223005854672187727441759176879646736113819982779257632853133589484581638830843881936868221090946679290398298360389255018435994915344839648158469907571401309383556664039281396443945651206232005417390600105998658955946148082358713421081486966754349330780793890966058344846770054808544602758421509498055040691341334142081913904166240113304875978432139654024193786132263177881472247577671730127082437725226042944646888729329215532091514068030136418362162084703749182945024559667322898771337192568488223153895180446545289645170801926809499777869534267824803685003586899905668905513129104654065195868077658666555435930277790979529744447767455474069487207341443826985889854545425445480481436874782467369713732427147878531155901396983410728678424987526001748690449862046893029668719240764999883124701955107787026222731330478754549764621141406218447753350021084064830069499600919521680815722352444058842762697750200138840221956423692641357220315151156640631295729026318119054503868132932688874107349458929423907837489932885315261125594535125306928713305930178014602838754647343216931364264809807338698411105273645810634426049256146122238766211653664895547163249778249068276428586173338059089480402874933715534942621194817646455872824443476125580986037447916109846459819563124568743490920739577432852758271133350182870895683507637328453367783754482772419102701179804991225854612962002197887632227174872779252741779100571556013445890892010529996850878990129471827887891207557222291380042354077824001266128051783721426683955725525916735199740354664335249720110048386377565546577016538566495746346447877361661019034420650396185807047458353457219660226479507906519817885678985016050321330585215333919005077769108487807454672517055142310743609644895834728768109328772994873761460506551460685081055032520406726406854316824796034803057708242084796541478507638775243714007536296184779591756589494637537166627636850233809842496361098553255977513684452468195612831734366777222463373075020487236920040043063650422343019101350864292185048522781622960056598442552766420233870203661912294507088785682667321940993137739482422525931356560757583503868738279820735770826564640763715893060765858056143419871871464698912967645264200915917672911938247842935220823487783553590943423040083944185961875738106931550700537318714207261317755786728539989990459299683766555541682743129990003480901219530700687459062048305767108788536496801545591043099775941919653149923645582559001195333875336115020755709484760085412022470678145867898688477677488370323839736997478841859201463798522178595307285735022143445244367397959859291793685260221354659667229574396630261302590134283616877508513720718029031937507951328582892882543372854000437140966054195259947145693816213247598454406458704210543908981351758660930182278464574577152620281021764850912157464826439531751582650644795856560009651664986225086675514085673852896711511779138248266554703706260900970398468943108753460103427566181423545598289921123198851957468800546449521222374906195975234206455335557618983008995745495083041283262002627985743317908628425000441015443860919155141102518313143400805603179982685851955541421895294307555487947375980431442689043173315168682350092927636931258507903782539547179002790381628793049096838567676336834278658168369559649105366197072730408202799831048235711214433842211340271452027279367989746111770794112455413715183822972212011379095018882889118920024580264786896984541177263942230233045010966836515214403520107967750912131326868632031766456975092648940307063912001592979940164211539284406603381259297847808403772706616001122734926447905600319154860110737183416443339184169640495520551552919011097755376820596476206967161765503659464057084285449210757748407267586797977343915635058410640972058057015283147595338489320172729322602143264239650623669413548179874208648321185220626480326087631260777023307150940509544061443479262939686029612714057713803974167345802418852980054035359643558495371060206258979770694344369377587042691736146239737327445853670973588278353151453308922556174277510068709438017468412181079827975430920504789145735910933878949062728590668848718579935067963007026602784900159153188995504115331815472400168020434690314591874635462853287593974764789072505471892545042116064754342769349342076086858714227312253065508390872837130821971054328110903970752660286911781061651710244005167698844800041934643971382775033053713120002185820852869679481942684630073939499510855551081264954720908776635210723268668490006472543170869477833539124651387595459832269194713822514409752042058260339820559402805608265007810957597505467169475483378822973506879684377904176436246947747334347174185371839197182509768789664015907246616845048679589931369951952726436888034261932210395392329780238667298783694733046298982899704240414332690120074657505850778061003440377864779479001090465475644826357751949543966840706882507790505498237648774214732875555637413698888602770463300125072360079659469086337592237683294290776553020677622064997543864677335776022519391092142880895090240656838649598291439508780786274769893235895998813829335716039772629639837084022154629669451212608233201753945153307895826917588907146926574643523744871820126330502300646234561226874132120008094365744610640576273197650127245363913345321826775743326916644187050319585115105909117241222699854602497778607686557100346075504134404980193525409659392607974311105509647655334244988681973889376564244707962729840131028106564496393766420800920681685900050988837574086467344813993578419405735296601211678928211776362250349728577136331761065715570085951359371359483596517043519591072812192928642123627722261074003956454016348758125982531778691494094767630100680823036922333543009455321259342548673631322291404235277069254152545725132130707841523655767635653117936446301747311568920777790081493554689934196600617701910135652426948162247195237598898420734331226227990916881433925826789323007089987198619696096785195712713180891870548360616462152144048751862450113269692517549024140861043563407818230216998035839263277205866434361873125706428842642235968125211447404892012915528577686788629990025369966525215726553721684263205768885751261673510122605848219854585728423951743095372853712297045545311373027519640285133089316564588855283334304358113625048556790059155105192268857252876261547004532452125100067319868004985789651011605454409152333256517341249191811558338302625529234260953620929754336855202210784095610400281319179642295616899940408012774501948605146654853659917313962453746424737169637567350869231268624443341434996491042323190901742146180736207584277394023387378663333053317906088923890601199522592002810708228957921992202179433467144240900172047418479624338088564196332191715130034033247033001672694605324544057858935251834553843780379830554447132630243244215328294241717867743110904073288459984983717656501813992509240554008488204665024714135486508994415682252629471587287512906574737034219239700687033449117063355202038640696833364600302664181656086302689149891400644904340680843301373443835344002809825104878851982509160938883086871101840906502500059057999719152011578092006892257520898840122645724449830688691198203458097169685008695763331391566902280780812786281997652750146626809730259078492997609518757281677358826126481519169809120555058214662879539469515380443737773944443967545445016889943736973172438213326524982335491808559283673813140881907374311318075874293725455832849321719618596074574065868418292118266298226962400335017795430726168561090444609934385885620007232834772701533259387891294244064093780687566259449411718722174600970763889984745818599656269789749840307824600209023650095852560568955417241176514791468452122535974694178605816443475618336130437133552009564133804110380860393924138542199281833586398337223936599295049290136639106289414675144922562695760287161299234434733388300638045673149307702120207794085992215233419399282044132524139834258332268301206434786843514161070413764465812071470597786837542813150105039464370410023266330842013275150721411329118014671024117340972650890111178703750222530756192251163438356664059135275273706703968509899543270269052060446595511979572489252626757349128191604549974664625786911724536493577034300563934246707678807921509881025186119771154920630588557773406195447529539080383559820010349384738959756236920357206293704581489071791362835658225274889657567071556883896203876798468748683618026182354710222197804528644129170145243214111779070285207772010433267719648595178861708872688928602083869232114199211156185303401143829757496414723819953621046370573273473639818207001694911746246585141982870133371870676579084458442604601153277446956029189933214078340087276460996012874211920173034544355412041323765677727584219628672047795246982900072398775176343231196704023741632546030251361494952234135142774533621806343673802785089220074121803154778661814930093957882850674059036225757147024904490137683048421522962033167658271218724297345182923572744491692281797624435764782315548102467998603146049423309443099951773983088198089255467187543255066375290198809204833874881071591292167102930879977802099424357428297082326543845396241883570555181575811310188178294153215029991357469347346182831086457210574151529956949484286168287163382308165716451552506570168774245817751618270606567844233218044134383854389402189333466526519378152571009128520830977024114571341522054591449434103116051316966607810106974909370480829768527246278836889544604674587258271439713534590661527104017801012239124488747806347633032896461004560735517884405989780217924472697155057654520265412401646789783495872069903808312237409557573961821537423949953630394738718558393743095437408897873263795430231762820830052766743121418462948366485447235970171869478626310648106590477695421341763300621295676599999056582481939382969418341576254244263700659010685909742542598641968976383330122672785223449144670449611364495299209602490656545141899692835926150908977752013074937876007616532434106213585053235109894558687510542958231551646402081992503505438165155918063738790789534383980095922978172671374124132445371968769932147094476567631907381999533925577998625697781962722133734598294115621461081731876732219906253442568178360237785625044416711793617261221549358168719333762231442082531941306606228716045262183152261099393189532407787178675770162115700094199561970153642559504822974811410145099272322441013696976289684345357746600451836565485248984422299098892929188228132941080555903530671908787109503183516685833953780703595787355387613303401651998442798708182029551862519817193571648490530065253126176774709219429264696519877659483289375280537472288799528782336826054806518235290122833511270531400169533768775018341418549089361242611094230951870585690547046869527116840864196697741865512612746852054787759589348062357243052275230078306332628176769780017065041400926788595229748626570917833707478973097909097829716361744533711030055109103633118472494365879161574137949280848583409421528481394426615550269343881271708901412550143307424592462987104490558353698461989631138473233192038895502940607748823836787839987418415436293456386958737892262672556949900854396474753418601480966385443007418900281104433051864104718607335160233535674897360569587783201861687313999512134911083090518442257689803091028637237097552258988433262562491259205636491464511911720223239150870685453425082168768987748532074773322967659755560781776930876238857368873883381946320019591132552838989207205412450448299082946291666268125227369841166044290397055021339773694106401029274481494370588591156137167038963109458093326656044643904125838503074192854930975103774817713935723519609044041522186659737221083372992195987603951003252709680720387547951906963408489730129204207737123968726233660399093226266258732349220439756361243618198211429118428690226302698927364989236884363694344254000571000127467083980164744069926086588386912659874143044979393290838346287923388279988071736457536049258086153612566324551150676722563663279662754499543869846951021192800027209843185133327549873282817811100677220373622188959187649477328793987902903182005897031295315984224252946392025991835601867385702710858377736629974099025681206848691990450562388683503033967533015934015573896905259544395007451957285446522963851278424042034954030625587413549789444099652498629678609039263620477953103179708921880956821093087252058770892174204839670813026247002420785948706882303987703951017126530237034487420293452633232154296803514753929412008197110088863385063056145316853717689802587385904736134750928358775726330975093319111951953888957915229114568704027966498754253827156428179802633822408236129328813452519260469044875553121793208319767157448360757009590720009239855267783800383471460852360753726133258976852884998359011508071560919418294868904975945921640469309314762211173924819779265534662707981850157898829416250677357627994063428548757926688257757634560207960655883200412058852630618498265119431267739213110108120476538357815737528560335983010537469143314576674573486348003875852569061495501930241076923881635910003623535739694986945758067989434252324810125999009738167794586964448242263931922451397554108345597229513439337950127078723027594924508869879149384160670335707566549181620440131255281123638041949590232529080700370817344836147708411669135413961229288572793191993074608201842665363423696281752962077956586451083793517123360676567265584410411197937515792437773973608075669437419511766191776960033613406059704753797626674684915281314938632038825713556429358205646340336897239441617711674794094948417647094365776658301103451267270484505703487393214501647062931668354023738044814069243365287720799913267412824517146246634154096741903845487387731607373644599932096047692203630109728575054214835854730913508775814413720747998435358403157732215585796658023672177861780545882430938039349246328545298690159997185953271300721949373976744940990802627596542702168748123415084188932055951899310986586642195211774062439725779514072659935636081442581192289966243182035347153459555362521465618269978581679569874652153098413388009515886400451814688366259565535797420109200128366456015117271836955311463187183876189843832160225979125546128433087432679673527920234195894146537873698133008404655035536161492782640126021260214975076913264353666375499129598627454932297734092208646707574597121879200267251430219483007633895008643840684598162262556683789333222730269777669224080403336103629140311603531757385142299952873597132545451470404922104678110888669705497178769808775190010413813335042722424193679810600122600724436858020120027077179839468412365794929567520433745016202678006353180302159374306935738795954601770008814357190601841330549967494574549348998135327465031603709501821998164025750039405799125847991297470950529436441658539816007404612891540946886908727762306342125937974147334050209762805917780792772602437204435062156157616778023875682504443828540504991075840917806079442456397108096876645934378401594230375590403019602237570430045210918482007556190160393991125249650777298071398775085418184759442729183555107865734830862921804544756367736964269045969044717546953254350938008940116531334539879629336116366596052289488727757254502926364459768095971873999456671000330252090348063010727994073979236211128093251305327680704542358459180820112382396663912619971294499022105881790804882946515858615978088776978010011074343677946136346406743820536061611086865846992641741143970825615925781876129086254980473438711788406886009618010662901892499782742314750212804514245408199312358037756903279997571522715644922422436273859492373009982574579746125754472629289189508140591529141323471577567137200423076652233186473317444868377527869665461763209649131671489890802341668289656176604332723060647426150612726992675307332642462180223923740282133924301290877230670290770044643748356462323943433093384718192428297610626382965011280276670568619911890031723018862971234510544639732513380456836904631891117263499435623843716222496148060735129895873275816677911549041902774518347419863650431387249158057156390623413704701985468983001496726184075667795691178609782698809151854634352504961867681905432056329534391653931454231153857797561726242677276092669345816455700864012096106315170407629988675758183235004279746065927025355463689264205726838988887383300635036605546532038490163238605544556715010371613703283414129784582544124936137303401818003855306847446233040432174316485281846690717108079582710672165540997281934835894856695420699071122962822041064840609426298610606597683898110185546364619206418358080196634225575103275164229468388780037156818799079986785550848359908115385905163317748222543370515544213230203064629826732703030675469694611768132290683039854565749373286099234330829044168200250566291723600624561157388099638199466389447194349223360945458517520263599971627409148218763207375713642905678832529988268683831578429360992866164737208563692092542538400841081605195342127387764137455435090202133805130954942607192524889830217033170056893085002827528849475523113870795386281138731614866654939239271579701315757499154840997314730622826597867170088140883829992163632649681634562070403475369833927841349495032277329508378457297109133284146489974635704442096304297725293847928391786060419590793777459521767798873866886126532184645597076971028098585238085825625483684347885824152208701489377893812158067373650625208526782616804144900490284281940849473426241962071585387225755449636092270133590960939266502997736916533430105717731168375389189766769986452757340683946622018049115977267778720859419633547997281838139811104564805686431207675237663308430436390046932196081295753334100656210330384652984898879286266932105353302034702390196166091990543141865670159275652440662449115860554670982625065614479886058508079997381228326148881473257698551676133244665690657450609429481195067788967470644822472648465219892893236491217730573924441041910405230210826342973703413359298401847776272892805037175279969531130449918316417956895883561771307393128946867679925019087229916602045324286642185769315333931268388638020464680907868148613500757904619472820470541815479121893226250777024017217966869962262082027622196155722569401789670782506036279292994955524104468000667603148940426899128385874146181514604158527141241182631106629009941841716237224624466128222295134776259428261971228294877223405847352431156362788010015420375283260885390882222162437354520746406426639443673355009232870013265584812633464012937552179676663216333451159129467095732892365109110330211992012641924658655283355387977137362199770961308531038394626997329100106552762683790001075988616774692898542579340878884260034756795436736082147060706209630622071417998196692839767059312131084228639671314416913924579070238191713421891071848771556366857997110829822816900258259706446983460912222732447397921281107473978193490245469992336244198640220433162942051474293709414370277186136251110455051505572748150749974295895260057518239118116793544842621179831244230077789400782426358083096856223827603373080551922196923569432581493552212718206927242184071940164057413184496082160729924538038345076222817989962544188327583907917103695105164842993684564942792139308381564985066022628582916811773880415317088162574097545180491464589469375216307228543669157317432576066771244781277409017922077288341871000800101534818748881245089200294278646022377102021513530324120998621647374799660355292713249121364565173259481132737177277427319404669412733705256332518455595929074682410243607316329908492664607361128703380238681765204727546863186862768874000086492791309577720450996396898823950068085877253970074750400534388368422516774856899491729153878115606280465794656773768550965780711967381959642116918973115081753273743906244748418205439329858512556143515007018614324271717246183294285480897027132033981606329812166954772019001240757887022935819034023488457801766742332405869974758877784990375507585424058996868752065815665016963043313834825834115507378003111777388935901164494393973815791560957657942960514209043053599474505224568633839752525603537701694539167462785747703006773794455973741447146636974007590636765135251743603401756704589083491333322435753831902341980118511941548709050763507106475937531903099057939009691441564246459412820126165060353630823725543198467660343725938315866257286569585371199594330983337797384437865465194774804794958767834651862789101858343598027307894488619657299976197239095793882548035657018914851854093693258726003464817715782528536322193795176176528990485992612117540510966581484721176000462409618513217527033384732869477820524769267564091985457393698007619958952609029689980816263322170206478172414621552812541623975520626262149616908924265193414976460003150405213906898111933642647982046959522514745070999304215202419805195362924771636415643829559028248585642652664576946944854627471096479643840366576499435735475060353667853154137674761242565065680844889459091071399745222787268432548782654084586785341656970429387352421156266676850542788481790706968029889381723205567202509919897920510237476300595978142047536862830863043278654467903201220034231812486386236546251903470831244267793170302129968764154978654745098145006821306351586662108235445214311266273071912957145773523477864880801025215327848752452798331013129513247847658728333180071426625934008739380212991464643041144837333323472015482890033062581363187238364905142193057706008649474029142253939654119429645904724906296593852830101820939977249965242601377518695912739886424031195086018354240483416304949891959997437435491257327334473269220796377881910783897544136620630902330274107518596009653808740131921760376758429638628289168987707165740052814907607770365866166458314528583043474076656645523237890719887343204298387037925691745659708843215462420189669143856090145520267685984824070705212176756108316453569370226024936315540168438363729568008408860826904639041019215107600635731039451207069899330741213276441236598636761321885569714241305346554688077199359724384072490895770690108668696541743179432997064917900233880971427269664148812305684056773277428966127486813414750375927568565223567175025082670382539872694817590586235000059358761584334307820685616600109418530323808470567418930301456236554727969827977373719654499226476535340582163335847929662793703844856256878107617433023323770184845712393176283391040411381418107902102329526348311113805431380794690595533282633479897995196978242293002502425236465533062648425768947899863668572079107324060432233363816061005929725549108890892423621339445765313906937583901033923632588147882019328043785995155281887530023735038416834877845175037825381891771345108155653523942407891337577576289566973255752729510340825385833034136331395283262190294380881389668032605536499578196973580518109597418547018160979859898971678165150317285336840782980516621496754525166628552307738448862714437867361800314283017232521178156826659652195622802923593980042550867882375529818907180709136326199665485923177974677356434264126317612774027133160281249439248963022993054778186977508086307638759645807049546806673357432570680970394096206712980130448521556754285362838032719200070478606665253954281321772924612899288756059461018435577047371434689922151364199841963027256486521075520447776221030840803849748152341873137847068774791616568309032371045462149784049016148919414853622810276263284245423352753735941739866087665863617003734138965496762795747082390085817992407341242277858017807003596405385205316747813294890187457329469075776290115152995361306347185788086711797505117379473435124300613249900048987504179001832495672152958049310686257917968207402798898745606625567233175289931214985245829615696864623929433222379143484985162182790517447240654505486611690150384020475571153084538701895869480422240907869705056928014216335325536042635723263682548288587295380909372830566522249811497702802892475816762260084398370955985855290650383012392333541973461709132814092251374272801547017471119190967571667918452313889234353868098597846352340170177081467939207668585990319040429895871963200886514943189525805844497897721668751119648317189279775887564125719929299233131839877204388134093099052401082083791239800383002696586322662468641662269898408166249684436266517190915264720395672846829057385387654372408613393225782003867870098821282243831375673709007362810289533393184439134695954995244785114931854049547689258844004708795554835178499210678426911767985970519017005310418123474943382448590316080354147011078189837309118642764090538722467921203395856490253438881510542324641138716473297028691664514236714231465790921167631113350858576278187876308624268505917713875411550624515533265073284300641992392974595136178801286149443818195834912218131384689494564055881645147619523369813490515387577341412720272332068616173511232021144186828253331714822360301648368598896624113435246692192661779622706718601133802240239843979193819370319746728730059447308896299877369436338042378606377536361824885242427205313245316894030505901182060096963728393634645538849851630104450935994211209123553114429191259920079663855398282391405672636004532065522128018848541736395573165369303688185050359901132471367340140445305694749448790108353353064976192528947358381839161679167169091469722157142242531261143081783603419805839060057260535367321337256072794532773605333834782478785911806359190582736491825615601542073595149693834471642347791134440537389168514036088204059939261475680191253641884664147349981657767664904487915761890818803321249527984325396012356954121381791112816996495948218356478623313858957537581751608380321498509103498669672261475944241568455117754866428674771586736643993673111021368806800274098138067092972560352702408413164616195615962362193985484270728244100464164626153222317616142426059711887383811594876070288865579698663922850263387403951484156633044347694096181362364450984021609108427717653096117260120327837269151694215215689845051566696651497582508871439551762914926205482899252480960592123548528254900738259207594843711176023189903299837590503904816985008307895177787375024892340353471833908397499197849890942505667885392205254825338468044981152330587318923546020934476047361717291975838168579222291631851732687663821835994749448608116604198239863158063191443191014771846137253634516388716614632733667245712239547471043488538042669535996422227780234584270297669859759092257031209062799295585748736780930862682082594797144402108758186845004576172565612896063166239293836163320374527729432393628229641453790535757749876267191851404846512544651735588219488689695983858265514660753815993958845144617949913897544337870244907389275862725606012610031982501840092005073130046902163029000495358424229916426458088856842259059318810918545023489064568029822252786358864793382805752052408649970155120929205271559188516549975636054604052544865084830900146545687227814013225075645776425626616779539835106810793178298844458438971402464700382132092006079689394848345162599755389136575640356314661180361625897343436682634183165301070806411823409604724661316183601768968349450574523982362125167813125043762349025297379521286575119993876526869807510429423813885127716051736735438619864490847939159985248917752653262636308554053139929402801003003305625443894532149123652974276740186816118549264211673696619948094165172687564232446014349902957214325655398621373469597541859124177527617840304989916684966322535974306687484447994128002380393731083254868687842581033072801690482010362050805091521498114540977538652263877406672170447581597575907544819227845982213324041412669328878606593687519471622363296422151526020789259073084011970537234894671608517017237968075623489916781574628715934175774701750060913926763438248306321233732604992098394521938640390488468024603487399299034975559693539702887588749487351313690073954816582117977151610546532125383532654370466352348727903491321712523499038878511129785746774065936577101005446718253937926629313988643063583655872547139128924946958437964592865878729647714069044569321686030738684171393573698079926129214485203749927392274947087188794804305669016866175460961147291773086529410611998507032597532154710607422148128073503189655253904080934309226221476823723335146673257401073429241907889586686135283780759496990500953113363999945914282174512817671015411780361501124043202020193249699325139413810622335909834410144519050701753460434943077484424476249340769133603457760770463226425209838805387394341321122953679644589016166604757855224774947610026460619836217827244045317251714585766175768161596939983157096141100996826429522333420127789001017560259290254256683706226532361671483550911421741189833922196591725409385289045429292545181186086127294548710718390678479232418258481040617235822793988891706588765219075380316827627409838136361859597186252646419017527441182075327844942221294537042301223358725244786457864747731276677213515962077470405115846529803381930864107252111857512435499408783551699734844981144677240415911294284131174124355977167765941441304230334877036620066783917215979576281288912451922821234282096894183954331270117817792813579978898712575998568980840390687581069187394543625082803867990501152776461252914686601857679030151309012863375015574876889275074070177828698329287189405782553590522272285718897409746634411830259018352540664588647200057771907987020767454372939041816035244933030009240986212545720145354804349278620737787012018116212213086602397190166850545834475530602939211178530925610472285241331661746811789667883778761380026512537138468660501951666587483590057213525964276547008838073599982532993626644280194894644375955530068747776460233170894616249256343342154888407960922143927348713946994988705099985594199720520701328802130129455665074995691639184757309295813753123635653191253446730550790994494076695948039029462407634434128737286815284217758230116440957132074755926696146067883063720290848032395059002109059492084013878631166002225037983734977309311639552351016417681070869945815915504651951564220617653237804411413442794669817323167621741823504409879118696713115336357924195177912002544838176096837854801263185661392756263273407106626079952245123233347759961470742480773376335271599257908798290097458244918258140344644699487390134516961768062168705808635985497679909135899797286655138253534177787188278648433546493167541185836319401054049288449309008144055704726116401677375002746694751717282373545632980533868950638080099463919479662897301239848572168880937013390047643977226116972004221824408131886011289826184219045901984522537796835981305947796909843247215706570452354563910244208898544524689001114791337295547300034559718763344550312996739782660164358483279163314703433693100010285979726088661324492374243026007000542785906051703760196047254990499157790848900057516801763320562871560923781845360203911463439975678596255203024167695599452949739770908500854337310007727165679987512499976499826752216331252435515189220144458495409033639264754658730835152067334866063348648540093705294759719208754993177050384667318878910971581730355243431792839184528289590979436078326511126338452337115429849821081604066841284803047703159862411738384517176556491733481982304111022777679840579500012675893900972086251379071840592072652954645919587731900719137101873956063329944965379910721737102882889891949338899525315864012269398219177259849181515995939708646363689665067002633679028156974525819057965478465562338306593186746853754800712172662674535742698789022692712705109631861810653695571320464950951966930684002035372853104852256976061117722453206375973549267205551115829391913799093825990480932816967192958597588155810327448208096492888758307504843229697768708022146478446446945849814715845266148025300827683498464711323093132666914145670860384942259801434575886898460354578335744858601187544373501550813673306622575806732550147364735423926877411776065171686937500097002194731968328810375684537206373797458242134378642029058445408611079877823099134788716419576389837439239296626154391880532902309087496247035934543636906422681606603198213268224174474183947241799121549600431587045554344695717844958264794555732114157026300608562796754972821233456131501062729329476244032655839550328476737198932525684586119508416234078777464712257098503265739129343359463896902570843242890132285635949159134389240880848493512216221487273573601036884844907220787687012989902090556650729872366127211894523047153865587981538068579294869505059177555702916949420977069449247466299724000199657152861234312847426714038187448162212226340480064787335776312471222792899677967513032494390357322096301698780403163984139030108159259511554764923713508233845890676818741478110781715664993916123816309656439301234789432553794944379594076556776598688465570464521226383485910401282185622509700898827872105480828356393143619368068171682316354506307276100461324718996319443963085483222605346346195385749688602549687862355152115852187016603186588236121441444812913695239103559896568479664976485112561746728748550079594844354530367963467124895094328151542405475892818327935812126205119481671837518735768827496846752588824179093371637993672486020305401445049646501673382831418400117272872205726816095839458898516239306335498468617190507080800284384115366512010677200909289924556221917893302768217281452860058121490797240081941119609506864027380004628877044297077941443558990544699315513813935043083045452031323565915898249646710836667143574959221645710103488499956841007483145037072836023090252355402421645152676873971994511071832822768378949903972846646492448201300227022760097048762811029924587951739083038782585289808107613654825230984468333831354738387496406192464729215468685794720359713451934080918993299177367615016591448892579675090391662652735131479179808605375611782895461017244425004581736562085132280863910135614362904474395723723401470747271482315321291732711836858023649152851335082309535568528447188147621127878029803664436157377989217720866202252889718876883432443414891810576985826530767693808762277999822562810875915448595909406664384893158287196633145706534105521853125939904236555636155212018124586801212472874155127176137108408720865317003247267069141703615882440331839952376695198432307342616987617053142706754853440162932322647547761283151559865257190320464969901062268923795314829629484460848355149473734035264405707981334414948962483161772964816101190811242643653646465640657725401930872619160624755758886094172687751651119708705006863407094879115717567396312950414815077367158603543867455542401226290236553611963648665654799409505492139610565188687458681860161737097925683339334210939797338890091019025465630212342286317762409260147642525341489987009391029623493852552907588643225525940206813550247956288700094693006236728400175016479015051159844458211009944581535343580773606733777826582270592526636929317010520393233873999137946941574822529629642967726662149237182423999812475361535451301797899367658220326226824064192858828127310265152443187965580566371058860043838892005465071527211250380637155937903937622240513680395918162750480773436978273930661097083720806945865911639255408938978784276776180399574507402935165715630114014564519667483430424843476952881332792349586340512655717582441765646462567061096161370738205189664448177806188147563030298450909554410004885782260574469590903989316569235437980848806249810968728984686788894305371170976496608968908837006188639034196529962179311372640992920824493881476917606498356156774628896154648281419128767838378545556774035956221737116389881586904345137173358607769082771232647153211886175993649810920514077544574713209046834598125745016584421090172353091290354296795448765258657328291910069767376636040544612885044389687296557182042080123590166687726270773804111413530087580886866075703261846962361792250738992821718550481813224228428400180464360546938453857361308432671309810285809037572303395895885972911139847277861418470400590759787738915268397652211683133605749922283751410729757686430452367894093679749049177292277066145173472183394270433492511014676864248835365787014856508863563304359333013569338272166242086940008552873306186617542393626116065543941732397409559969365793932906286175490222218960383814227480829191030668855180800534890844640694888519428688608664370306317229062439245879380451268133827811199999598992514883444724887214139628208856882101493437115410279765165069278851974778664418749808064261762978961290208623811362370758718419843901621093219898730368855120192713579582473210062108705281427096701011997319527844607265085763953692714278578005403345896867788316761645708257930702990370501960048783096862994088072883670120312127674455471988115542844353142907920966665721052689776260115671190192533241055960498428379683280135544402181922772587682694531385902678400033180926681435029388739615105248852471061552444883955946785027847749866583158528541255490624541806291585131601502231125679607132727648412515446391498411808822106720884201349416277070224215222299412498150191501824028512094238534958817463440475682506428418727365503804747246506716518751618404425732381796026525807263269281487247240423747289170414950016427434283681334481578994663093362538048828847748762443730066618191342843098569684432210151713557479761695855042049807755180359570732712827254708558197340439635809409072358711558263559483766975267595257196872360460273782136082306930993596680767549981165872994963254920731990605167985434675626326254359109966846222816146715166678959309656370740032714087558379452498790718126943534762068484194603216167416918100098479512762856637971562967026010415259987377091459288400196745310468343579380331574608725629151596509068888731339482831110960541413153453158930959447171335119233118839354481232712789796001603546230778167363112762584982845523722832202468989199385613677025248413939139178980409617219740435577931661738614151907310559273566288271570267374077643641723625444247901151564197320695089756411989516602761519365418164483657254998358271402589553874748449426661715336752834843253404340013684586152127027914533514714954836443762083278746381117401508114014928512345260485236783398687559506442487930548899202612819877642185491164478675068511963555110558514983286847786912213465620809918631720287049165971169790256260845751633412360390916468100545417197431980011855812368199754483333779961958209622741479119857541444838865937111839860380585326864320270410673821970763973568892632923530596495963911394385465073300391629944343588365805072210690976740101741074411604688620679071955856146711535412399662705423627428523041160616083605480316753298417591102129162540251038595322116924231070749707069765919455893161540000868797712685757135589576950596723000378510373095020601117325612791188602568415209788309548030618050896239350674853532091181512622210903362562688146588597589639400048489096684641591045587248727934109917630307223135011609638717170514794285148698977526430626605804636103034153982988316100351343993077231551014842236510815932758480323547382118861441973181651319177009244461391603327204303629126266404242700868660371059531878151826993647551152633384847218087018748463925540078699078540733073570829867819580927562585495511983535617616292483680835401544655266927499125329676525063012080891541547106414525434004311858702203931617082189594178688626070720302100663027512300122810331673290644221073341008240141612546027213072255769441082790507974143719444500085815571231192650106938553401825517938260938365961966032429494593593581185756735476490662959968833901035079204476082425819171127732692663373831024290310514480878931297480807990409422739518014481994553832452730112569059306070975912544192840360914236737447298412930945125757705166392067221492116122278731622485579949490144125768811446296691728891656647847397776536415277840667207831694578305990033311018545781956551800383239524431805591726550212602838102851109003396139706406128507006694242616432974232513792762153495757793662117223944377505609402426895151481844461143219290608904634448790089041357674380086215714488567993668811734055050905807669013998870423202734965667905493886090459509481166342005649126003505128882508259223243276073821410628472291675668821441511725770428830275041304131073784903940156955613746794274048617634292279948481231087102951665791716824044375573404574634472606412435263822910816608205613439171200250861331633446948112675089363508660922599802487303060326960244085426846213447906898694490563255152318563373862936331412414015624026904951693642396939806343207539061294175883882504393316809441505796804345349889773324660528611314578230195158024867326986349715489618028260837557834994808470740477789505869141890601952292551195012849721094612326902801969905848383305747178454294126399773585172993275130165468897190975521896580571124029009129700253893221896966098851117862077989318187588311800208155195145826392557729057216142096364443350278833886335068258390779500769904142762149104171154232934592577104802823071496593330382428849490544419966449172364289561980388618363934002507676188779483419273685862851572314779544386235308682024767338257240699503427292281756924450350313361751433008037115715536558144158489169588862407882913504242735982526145810883071546450851751290405091613637086149300570858953083213740132311727316563380041009771508725643810953264762890460656614609628597836344835697487740280647226122843523689843623615149061129381055279367484596348567437607239636728891744103904721631213591928018644586761825336718904912557683075241783411682601378390657052798938649514323744683432914757039688528023308121545747356807733921707862232922872691996323085228785785646312081567430170805918543577778533671310026545491993726296729822983213086048988422859049545991442105058351454194200276711745083247474821026539071075800359786866274606968189631621408296123845133819279096146905918436698890191728938249543611252399084320005228927846866795627330030670648392066607393165581608317990691722216820300737807663519758759462695940100773806002266695029626347193714398680403716778591173403021467590093451648648647518404024485942242844718109637553014259671279098894935858483567606160813039242569804288540514714008478917175995428122439136311976014414783751236959476592645430464179973885003156408908641560142810211550589866228498952112861906249996003023987260900214439044497272904012944934031317039718531981782591709622162919588868644635412103420201445218374836723058158174553294864781010176260246322401088698520628275987349847485494335530867794720339060992632444176357387307918574726790109316731838501610390734996830445912859688008923916153096806495002633750108442333754681629751381646608491111368900846270188937937435278834024600736397525560957586872412894522501144283762039955189309234428097965158752138722153287119820680332028677394782131334627459319028414211748920571142283176685814536650309302851485152569142647173641492198454212128554769000390743873465826297962816651965286006351920138000160895262704991505305631134823432312639445423138783867862553269283434070595542792720529429228752426263939503560509418988775937296197295497978959535203926748892644471561575134973239369506269670990213712846975662371844823696293652708149214390311016086779378911046701920622722489942463137608995474600375475208966388633401981653246837381653511580448586242986367504174383313935394020220470376699949191658089359740635625819855161667307219233017090927667449739195860506098569604970534177896634455488115562275463849069888504495531174921750629935338607828794385940596079729784675149233997293219945860858099272285812762413397534303564178177604222141163614506317820965696920712043667884655319548585844225775516073942572505625923500224331203666238566013182845921002787663929126840945454366278891475530175517304176938156181353289183901418249648718308279527663334929786955582364568810435716118075432807933578924624985091883327803981698736727419022089844963351800548635397437082158041803682109602618792154073967377487373084288046313172463281859759671207665245471119025516661260160423790498118800882050797843315095863095291931788877511803373120371776521015276479670890977958758354436827895419522952236305523563441057097331897603838137539708104093601795244188595907629848585853659759558619627565796666889755215022249919104179435006360657378355442550620052093412994614598021728826130610751862595590531888260262079602740184478894200205323838579168094871904319133678840495036569095750043515943314622579757693183219737673574801113437183640560568895999042820896989356098317436629314532979865831950516630139416471656759226740841284875383743499355103097035493910054676683397498218211150386367664412321645169479116040849749799872644696272497912331894820008429603629166956650820237931892121040701402824034783447546013749258628717028357194997427207966450210287848333102335989525267634439542348123606353968777934670198950602751078897452770966055318968555558408852048841630431611232101504366794283238797272402825215435117640398395679729558240874880303444215665226486993015532189591527208975713686305135569885628775255148043447747939349825067321869314026534785650417076120244847576963809496880802197940763580069944863933513140535249430483616675885194726643932881027041242214776611991625385620818086280105549690223750033893542267138500032796572181765618092403718029463311912991211762165838193231861734531254017946585797091002977256074610991454013633970431227264863104874411847242136617159829356106872609345053749782141278649724444652205038742504157420620357981297394025505180423483379923057059280327946678117798988976122908626030587203951319052921653979993924745303907665253923186305803493780267721865791228051647757804186127113494469372736662666806440699617899705945300754360484163753717707915462684353228151749797219880633063633636237604912901130719660031954312921499309580365723773256345914444576579116159042443269620560341169123317390028081926923034153737688954682431382189984658682882383684189514571153446807802086808536497414235754167143583744200175868122607522274954026655680887678095197135469999603196964618949476502464380152693771965693599975637342878180938162144762712225233832644373118221253359485020837490527769124846926208120946096046085360000822385588801170814218260138669523683047475224470314292478408566346737102842214632759537384508166662503372734153380130139993975953001837961697897475721971156673549271387171478339001653540286384453090260310666159739474444120599460274243184348983800578187253122609461117347353257245497554976870043713615427651337862329383216345870137245258755794267939781826306103108693971333184687542447469698611240505642136341559947677974994965479468927201544433940013981517407299443297815050251219875877179341181187104075305213752606706204137909082710864997283148773639389988813219893515771758670078062384419787879853653010254492143056353675261853099926457958745828297285634738595008885755869353442614046766744607097705457158725684180398216540449819294796148554859300613169728026804949445302126330268373459186285476347796181833332344147864190208654646436166647483704163903205064366660793885810244010388351490005294195036609003063061252030705772354074457230187719824647417937697690870704633122144090681333962751144672739121490981016137404683047633171636890630804256525456308888883255457609714775446023536966349797506308658813121121016329731086421084552106318410554863824781806168063464474963943963922285938588612792171303212704190637854574838872609375030620475905577521877528525309694023933174162922759371099887040799044093905611572277039732512369897088574111844941310499682371928308934902208909441557320773884228219503947587859250077358155398947655618047385426208171246399718193179692716190601993178269148431583335461535956086045864878461355892446003611258181145951014372259702763142858967380350119266618990204431795278861614325753289967636260268880614340060205446331414357910161423398590737262491810779962155148875401365325271480260982544993154511585010469322952323726706839441083449123070478971250864788623209314166658910320721118872243119432998313688254037516101596756945578784077369391081506956640397178216845008712955037798232516728894104941892183019135037914956622927931718184640837578457358142654256567198362157591977852684794241340896453942175486618474644168624448048734548645826204058931486670421850624915706635462258465859694218382450372745225138213715640865949874362130891268947553620485570928204963107190346117513233679670136532771504537678175036618091158562968451252855324294218496819114522864177621470047434140212308648232573010925113661156226731065636014562905061620211248643353687790055744662751217915685400925914613550575728793886517421454834899188265008078968357307501923107143411952890247292908064587617375616469365031198437719036379317711142598072114540811902767522100571629676174072662820418875576176947982698357842467667907325196970867328751626617899483445154813767885325230383898954858774323737618778155076158850756723145931344574367990327696185739520830264896098875339706447143927498795975004596340653781727041821310099596621059570862221730654799956939851975512893255343579003886857330558037432758619900897149500585342811383939264767372535998378908939168130221667157399688498405807679401063463540686578078866053824791291856963344585039437110970480128174824898169676679639532232997283194513413730168199456618026819211541451161060492430397607904600378092118670399689294890545706720189499656665830353799219974258019127676920636267980547148372447857196426245232631296497931021536450515520448088458285779568869244420527477559515623075746160921110570399714593844689498512625256296419889918662957296434460946138366379704538041634684629409947684922532396983918955822066605892639693942538559082734560830010606253301589337596041643787598098784307545950287802467072351655692309682311507775126556611709154052100068252247559649956826121242890287407413989513472369474731908316875717106144787172448344484066961305780061269688919056842407117692259832696853808866757462400780674317391015546338584950542505562392957454413562548525073843637004408415882206971521741739273879055057203831540126601122314108444798537456472898651492212842005928278836955019245740713314068294360201739374320247066002556309361794197004087421190104364787748884534169765257849867974689317580451154234115281721075968890587426795655562201816004822099671805605270142495644174155938169022950779458775978251902046097039492739777447140191309323750553032745549328375117249116667102180578693845365131275334610327747634961972022375564456044953551415909498872897231099474409098344085033991981063900088019872853579679111489457451476439508903144544784397265278272895642107708671817870287185166466732122614834596147532076737703867543827636688554622183340219061760080466174462434138546203963776641578899845837665061416856747749785481120244998726787395746455056743272247912299996789452216693697149786295968854198883776385924948066411674411224866029941582403424665551604529807978928587663461954387878828596598796365606032477410874410028382710377002814335126855271186772425448759797639050217496181655801131210380839852351454160502842500390098511873371436685029749238374074024175982533223536046578511582874937304125094617311790539686971158655320149750336116752561130201057094557980959481681430410985463290236824228899699683855262579142568912586887719240020066861352804202690685794508882939657238894817646033465824729504118885623169723858823916471364514989663927239104290128862427515693074318448459712190892771947039500236381640206790281645396695154577180275898774488928486941456200858698593946544359081277623800164705630519798381133383166200632518922441488676250418641829895396355584187133254191252287232711285048810055151199237178291085473491926977675316089818860912887592702940302665963120743881715276441617606467702696062195761129857344149641093184440778770791851362629409436058531700633893055665785602600197069158140176555209329955687002867739944632721202977255200033007657856307447628716769566697524697305169262194606019507968791298651413648879038566660554167173969175553831329249342923943915115939398964645036280297999943022749630365553822522330485048071343520763898395649822818164807145560438028380836970712363404763870141097777186972364725329101848735347976947460810995056767385484575062943497693567270230095872428137076518748834720909174325832195393758922830900648786044976677176992938736827995480591097314161088708700350574311746393133099420386770876184289997911307917187557673503128641023533286574298249128599971129261530787638149481651432355454593056501152355277926814398186183672459266892152466663824475858655653344306831075962160429874907800883602747190208955314511782893948891498587234401831435239301156902858323947889118544792702703384428455186779211713605366765281848622070940788516753689510434407587620968496942126612999004932616848614838526056018650717492648093908551928780102505778557565321920767157443000008802088512617881303327397794706067804687168505906219756834343318861526748208507926550876310017370415943939706503957483547786843948795537721890373393366064349421896551154585848477411367259741361238636961320215258245647340057180066824131964602972270814007145233701721626846248478667759853336047577340408633056101747313552563312215264831364141569972401662020479654891778564199120344169878282810263279934318229260969976757627126395624284587794536186738861873170002055145374225169357244738256565303721001957979564533761068713632787321594004234936678875968358771171810580330808983642118873016555721111802210491705934586364436501691813322926316829554891069689769173915825397876759573419959773460051990014225233677721519588117353355308654855530867147848039067456112680901884541822059809769990714513130739209784931558951115749539529705820930108400533952084950609553392169649424984221847821330245301273168406542811916151116048511922568186537425784120360341999531391911286569137484225777803656755984717576386132002874884376333649118630394322334837470737156179666807024319509010931872625626736385489449498743071682426987241263725730800323240851814697747313073906026885339023284568520515658503719180870514088819501683887166340090607689806858911997657476143345592555045282432517151436469839655022223194084155774755364469666601196194237845316160648030416488509736004926126839793342979951658834132903733062593994339593274366946916357899586010628195745765998704781984348364044707864458752261352755795697515360324044873985523637431528796680230746519015852985582908110139133410726760220056065196926023449904270239497758711165835742013597541136635658188614774132893443685046850047732590830019825082601236986311827968028180820493199670950010997426424294042664826096389334631302087090751734833545320180579565415119381101419783167216086591899943410822884141254803177846046624581189769407252240266439323385899697404233877429584793321876305997129947525312877464151554641431761662339027900527868953986546151697701410532889010800248023596353202078164072108021166415707924821014712415098299444063902552139650447230355273320557431664635142452749243180280305348368685888901675063383753395356986563446458336560512133234341577065122265380660054952855877100755393778616300939663101748972602824200262029025953884707885557994802980829271700859364338744511597973801736376744366074853679492860978847398207409875335789252759616254862234421195512642043399180685589904518392087347127638442565574189829541622400705602153746130278719255654052634039876195195246603992966917548036253196209128985838465503745254260669255844557150275076285463897556207861176776265782821245552295700451442897459709883189857156231960010048109155491620453416230309869378016011429784760479757129849000748708307299040001505748823715190241029066481992541638242420357373496797129726009828892631663678089300742316205193288506967039438978670946386734708030803884615294111790252265860862720789215686779551553813870341523146133596495685708040392541668344805901699249644390408336070016964307963175728141619085669862929976291409744790781883927194399899766517136321104040590164656086885766940711276531682076596564655657848634129805791802855819528020209891430850157066011230078356759845079466320234330041386871021254643595826206088523440331955449489437086516065176899332494099733484184124648865709005778478540775597274480764934724316784202372902900960137381272944908913941635400579479320164806316695519384251959320761393366045370334312036449537703123712924827060937882202500424863467964353866464734202745053726778125932688889079551057160348157414428836629305430543297786324265246469490423721823216538844222799150167052507445964437734775472697856213289945599345259401631754062605716491284076770699279360380859450319715148510410047417656577815904905411324090675027150340850676978634963561643842922370248186690052863294712993562723594406600602098850634517396726621993596689151837679789832743908695899576109782423523280776111827519871160387199140004591643313736518918703727734988039230842401880895670318628662250025181261821924602066145936900463072451629202810292987621946624863373265724880094586486327298749701014687413611727077217636000625376750943897562456772860556995117706731952302979317380491527628934106085804605320949476212493711372125828060125119368870655479307210481061495862361164456221610696523917621076796142256852664679023622817616804969066226303213524565909426275791884569856814271410468440350766158330117120109826166657025180331264328974933997827778023455217085735704941907370049153711959999170371831724534028937600816917200309150974709673342679241116049783229674297228143395183429289244354331587120027896829246230619167743011470775817386600417054758533121957398522400783320944606542809908113730795170093559310383415610211514151455908653992421344034286366508208666337108132864302532076904065072961470254799855769075478644719999475632889669331117963770098689316589225972618683111217071771256177251437584501540009280612161335433665935250543695045977574284679212417088954599673056790197553349480526201421673086444091378025515028063741857895037673328243062052506152693646700585093660741472959414721111637239594204983481220954425325129027778644547502066107362528415946487701906261990866980206725565179142759650276863328149253724077151163121328922291159127847249738212306881751092234297837210792798353415424239485995546102715398444634812572346324222266550212174542853691581029247039011939235171016825918316496547411991184803577920171682365183359390446937139209791247057879623393237543427886342649813140340021328898511486197746121377566840778782783290675060052653308233796378342180312899508125762140557268262147823226903721134185808150018743022186956712600367045162577197997521474233520175864047884623420498440320364248477943860530673427446684584554436377710910000044330269166777463179727281277067523795766141093929399970630245439926623514356576078997157507335934773223185177212253723139033839491321015105300343966684868114997816629341955324023510025175770444334084258602742108490839320261629229728369890475140955022711034762247953690974395357016554474769860066810465861561483768067088362972301652825311852090943969057501406130458618811497927944957017907905859668777265655242069177096920773713405392087298716315385782844432552892501978943074155898663504275180214807031943984812515727960557602110880323123101477395692335046117377426416837788084090405693260362419308964866976468904070203567840767079469910125415131774428174784083317893828508916701525766803904587187314119276861465689258645471382729039392016837020334469884677248843076828775711583653216076258472754926115268157550604527309616063241865660251344317281687341608000446267942474182350695136555230816623136483197638385583679441742040160418293840909666818139464862173195825324842445870875053632780196479371506897251279885125377880371298950114741027366541347825867464993336061497711881017184300951060135601151731304071187126755868795238229549458022351354858318364912336658768965741092288682179835471509839915954940361650513333696960427807287254753583445876087469402688548536401858997805338983516276842947245498716073816557053121634515411236251629752987354605774604810518960124210256963093692124574600730804228662324016268891838098098247455121161087192201614366464521740849994631727759327457250376224693946592765318387794864626725456066809839650161177494723483383746798079968211232429424947509870623836077102674798844761619752176763671446161098450322410175161623417863115887715006693718901354278795596490655374481937490483188286214690841732134375110309024810071555924670382488177784016768732727384033090085108462675296450721210816329394032601645245050777632220306239873830527702209831497396603798691137359134997756863322302808783921487371153867347941184102902876557949964950563922469695531767025249177716045479905677158123243085937426050424472887019701124847948771033190801431335574947566106244801453681707080493805778449891420819616013420213361431007791290253734273925941203174905181626401017734356500832976431111549678209215407697947774637102004428248460517855223592415417933747045084973222764079963756303215727896346292111541713354254600107092830014754789623765634656327697028194054196350981906782564356525092469588476897901198176330884675101024100365748826921259783689185289431690308672832724118449651738047836052320092889419514988320419785980839947253428839822662916127457622105424587428263437608163143498057452747201645987541521361474023975300275302975387580037147032743768763314881965729574851880229984809343532119880244465854813375783621722127040936760497865565549206946525405360575198567227967003194500435886042550482206602303817677302943098852663572861683261391342037225676152300054166141584053354621042057640785366356117476714507567814925546974693687637186648782935619404300925557589799209523025085126685695280102436650974000263232169349554177045309527674205625189892301897082593416942402663872029623442297521042926136682421764844308289316110412003871334925964269034250790772074153548971764232963976458239725941624975824266193864097286287219605148359319621894625468937522234543642612348277840072189980589696527841227373943781281182982908917824434729294688586378490845445743680613798075003568213930953023586954650881973095722569644356309949928629637366876634832251095485226420394502363918559930287457182946273249216696739318806757315830863759178659546421341433407209309044905572871937124529832417276252928572604675530388948213964581112740607179776427366838436680382752227731763881853945712168849159437183748869031480858070405041467644958406921339104596951057558899772845181378407735498790959753144019452635518956248384929830062746130052187013500616145691594859878428644970866451880749710758582879483426118990463731207863234073863346308954527721275271994926394444533935906570737816841955365629452451209015654556796534366291471293491131408584553649822530062208627230875840256986042402821518579552421987344516413153459608259881224259948826235572662292769326838792800685538129638107823117315766286004470389529924252118987154608655888148203176418438723144749575296752093886422300341180165072900637303801018619296086751438885955922677239610584009024008955771783813426301429287710640484530840268100933382228301259373467003793145095813124628897293655568452128297933313068834624329618196914862855337747033607178302329334740522752918084007760318016947070268151486808744556678428352179766955263648369746538665417779045765335033362973112434564983552730838366927599622490066001240234468968031335246108225181026701636572840115025183191214914991994347451272703316036434571927400001202264081733476642102352108727946088492190694254812055175477151724615252156994579489842771325086789965555507028206858275667930944791962129596703271256076967665893066368643077607723991874352783946377937864634559334480763024770314286092497440636277164089108818286194765535470182706083218908010020270953984537571660986977342129980831861125446314048866973391297517674331157446143264457798177894905510698494350014095180237912794987778536429437803381664849020530464034345392533928689426136407735132144632259748899184316684290793376861090020130571911419225461680025083963136268635342328822825602543837734636308928617486969521190244318273654603601345876936146017176855936070628367671214121769872795628747467035576962689202147922937590089392776246485752235667033729316837043335171039523490511434975990554346530616168265031425742308050789818574356584670348172718291562856752006319850695371614552395927722582855096660415767002431866760627752590574905610320824933574239772369678784587377540818717175376472088190110108536536865214104868023166103437965575270770007912226916000610164682596473083863376833881945764180588744887233241125338424711847203866977519512334054752121272619244178583634196461805674319973547751070639656144797484930509452073282851271634983173055478310062052488148139804866370881517529178396768444793318202655009452566985838461222467899509443802031670673685187504194268060994747208598506151055061216589124681667655763814218598779774452710102043134357444820680873621574520625113839545782899450615157907098646489496962715020589281489684934677479395429563080671644319195608021530756508890949205710195143565703373362281144823995659450645749380985354168888666945759850018577035121649837507057691878111173072466612537990274616480989905889736798648229919714835043245295844251304553362685258003620645525317710117482817860977385776759285585878079507595144142595019059993472905231666183704087607227472404572682209993966924674776874292164559893789757044163162827697120166316218456175611604527386309626531374929020060094947049633801392636659939269353090008868859669237171256671366234794150424528779107291960908154948963924101445295921816327261131634582909353084322707362558388537146551438152684689419508006954222633747265378675015120511128024855837588203353285980134717972266206412987803816498921709289398395639844204790070695910876847419987810634599725482469533090797078396124963506785205503715732839991999300090499865803742280799787413112803221746782372054402975881175287117623213771378347918239557213833821017482249141870934012815120262494594756724726812837264303125485413110772516054368431845635070711691230513949470066829164627669030041177769364420253805562470024725507325497894305960727710126707526004991580212814906918445727914766510687697176547876855870020007127153174363572931543387953882645574318451829669160818243566295306065806807398085996953787960339371632055509666216314920541139021269053306467693148385837249851703423667533525866569662506282680978639752002607201538803237695078073681624743432687398849706700067074762590423719200172168252422873562494789941049886840373530058391417308653386767522848409379099670840770685925226164485802877135917168212330535891887405908137074370075560155966442584521310621759756597444982902504651710701108775161463798645930774176176218563260199956803706982446992201139069416495252313625077410000403746320004726963394468857891595453934143855711520519791710385975143036016318802755659843042364003111614821024012630262773335836642058786329376853524969050380513796223691647678115760816979618597999885512777061541208246543141671769987377426883787555724117074416928725302262141487865079386879657852634221400541590074294755401661284982477679693080141882525103744159128491690095489828356314867515940966380875486312116276031877535671181949386697306671154045361324741127686353932400754882241125180118559908961103821856357309209435220463129631833433846948059971601313562371922403349053405868827859345153715279904300197662087553965938525742167417949213179820052022312567772008970125345867457830792113412190819596940532910802051803962604042441702285293598097613022241507373662672697026987709224427930056570319905623844949652323011835001023424732609433150974498218627293088349532848026375749169225196554474416175606717313446344287617094700580004912473299474696948261138454977228521486776831183576958748633409858024583550419681367150404159687243650553979420074090896500342425391779505790308578105684610474411594127465179041882344211498409876143027050818792072448714233268434073491558271359890662756895813097420520388638271675073194694316872854171524798150677878974816848571309104090550565232275608440279636177281791005405845467195966480859744954894224238696435172283492896223269586374027087461501769272145017130694472299344855042223897666192328593974907451679051672824241401796507133808125330611765516665296109312237568869202558427943534119080669327134617982792759373284727417724140088943212317730759542706314614728616759506319124362346650114329877827948078699704188470507200023002848073449464660565979891996906044889661462208995981157057224128365716403928563043957624051274219341095589489035658469784570402716185582655680130004273522501171082804373009824562357507631116326217696229403691963690925035970704548254314196198104622935357361246046990905157188553880879924009415167205758280137953846422815702088873677218648169103152263643338495754023987530862536953304749254597960365741922556536060253718906497599530378094535594624564175541268641956328270139285157302895520269709964780597292968794156263682475900738274196114528946720472311272314090799121832392794624202783879731931418457962626285399762015347623167626525967425453196204058755939101483174373486804950695410805072392997317403806512077634509393785131662029780718304461694957043028626590054414660188440982245540719616679153917200489884068971445029536716348888226432205373660229868679510119186333880466564317909115638798112589097291430703260227231375373217827372524640409994907773025951188908060617159256847905773005016222769392378187911727159700977865645606858399524184420355483124205927323054224152986247779443154477894937293735098144267431932219305654623491951905528189345954698754170243767659412961320581240202792321565846501954533400168686785556165695175761669985460271691743761580708846199046371451266939722715306013708029691755507039997894784449271723001739126921616254603986010665397126166471065332151591395986178177345568778698351758078474870052964742447492750052054539921747757669438236431399754168160490712335484366643694298104207937913242909044724839965037906975494246876905826607193601872754910850140361265562811327035617998078697348157848805252756155860796913580884079085889500641925235845106442107063369796866423914876449202701450566573944231706441996661195683901294248901336110551188306140802545853782683015705493554263350035452643118456719048891921685227504604291309678315817644711944856079322775960299870505485428077902371667041347777309074703986899803760710136650206349898972629945072414642433966684721069612530424570390387105133672422384229926010801179840214739674745655717898138233252260054157790190641028273680081503855623355122584076937813271053438448232636007775026046241209698237340796072988985379068551052453041603410075995278808755636044308079411207238547219070063440641017266594934397304856022208265151899012082297896757367352963578235527256754522589341758966580746870185765027029252033611249390460823707675535541981672088063155640409824294865329590085118127770776587720444115192412151979641205514368844453866261725201407816729059729129050377504244067721872070209447203591665658698636146832134116985662533686579335061766618931024310475630929230125247026309850983684268025411386742509174833470847367122559715654270258567735737379439397499090036609541495881522409501202985836075366307070287068042901131620892983002978509774038747635479232393128960198636423252703622281437742137732312437243047137108238045297561573823034342268708830921829900225621479133147404815756409266700641054923250361753688055648013310886545372222075620009225383642307822722169258761883989056359225832409618230054991580650560025514419208626569758637836498442584290202209932476730097299453565550404478812959475891218658838513466466837583938819713125092311752213981263586944173439310476715859637431347132816286768363163806115206958397605298278879588533357342283974869405580911312898970171285307033575179222641937255809494929357351579353019554895474932413803677893222050341081376208738459016510807331553047274036424702985554117929105650013601406392262142886613653195979657675104521733511327067193638399758671714445163782677843592547614320198324645815915403101546008132492618991373452341754673092803714821987397814609127481262789994450618216232911259092670796957556808132852881626093063293257460526562193128208293320722396868225211212454381254238953011106288971810627007364126504194217424113479968481107049720937739300710475474812410628997243372507662004659923141474503262198669163625983250654230716230085126919567102766867498720335036605795699293326409306036764098294603639707332383029041788874610934041870222704001827244575766109403813851667723476755871738141446549126457466895615939090937012811202372664403157039316169472494663228145844654864547198649910648194247314733923997476371123473015806849340177586749707078497673302100017860677847317747763941764603337361516424228176543207684987551887329835610728663358347284185385990258947789581732713973251172676342205518539993946219360352841109291680204643815082947342179015252105439648808633460602218441382230761353848519047023750256525966804287502888446216687463165478790762351590461201751120900949649718369648684241249421571116598508174194133196616720596514772007729166023930988689013928703016567623757416816054651407633880722525144482836840041553342337979754555905213154068214551934817144905982503191379374324792618416897004153285021201169186649524067621893598779306843730479002571960847484838135183001587305190538371395164243121771194372892545111358725871839868134231822072483138227327520359157822385330579609904897097507902553466476906428291697828541465739651920143131049943065828204757353357078540801976437007190312414222317569064613958058181509319148534000736724585903393404399508098567106274875541470036441295823345909668963636929733607299631227813467711855211997899653166667793926736861773681360059478124711655790413366253207850287539384535266544268401395019470255145591494708353649104957792098819325436709642323928468034918434006546344925615111166517168488021332875686186283805509442149167019557912469269575769713179658166463844476725599273137746532830677016480089891628719925182910346115140598271795687755251526837347533459035817595409468967946305327095144278994574705143012187788058264274252586093480100089475056904536525150124387545582626552956046709094721059613656190349448601567374123437260046833723843566230342570748628875701097918265323867520774694405727816961483765578747393176391318181766630683049603662011629822296772899141770944807778981947993872940473965644128473023432049980265432584886573294387665231280758618736471414264964412189887638865095548513589573609760055451838322289297670896660955821736956471148374213954305493959761776957041748772721649458394522111887239466267398485905174040354927465272059151932307619325736861163316803921499945484642883537747340682626546994305354813188406944477518777087656692311921278825518165378083611844022934151882073006772322537541099339823402236293733376245220036757590263135177538070227387269020524841743943136764664418354983776945248926932366199498933556769092574660487163591636409367096630314042171675583248298845208596301844850870811271882729998235955884784378302378640172120487750775017381391190663881575904945998864453045197932693994363838333123648257030797538140549849464138017827166235403494895567356851740695672140140287652276720836313901081796716934245181007754828710309687858427241195674696387754633876309608718238063817111603783738026048026802998690842291017057173266595386734493401884768062647578322926667370005847230720636522767810992692227537968570013825962497059337321430583531334983013802413908728944579388208564457988844023301497473674349688276047044489371645673152733053825494437346076858415705664917983683757324553800310332287983668068555088950493807829441254211710421060165130944617764177896732779727829007945342569040535011192114947413862022033054234834078101087275048169674144281153557390270346023778490575575850513969732371562608413407103001003861430335806822315290271129515289975323606283823573209922706734008621769729983556776362173337560599736980724051668692369557055967087360317725290987879044907140866124765147132419871480697447036399958336545143468141752008465467408145540358684476579937994714717464718503200414704798049479273837908477407618949331414834088641892687489460538720064204699003860935518052137107215329252454729152954237521558236402931092317437413158854488649117992761144586831230051443503829070145320533476726369345306899823102025465042952379148835496730257109618508523635235836344444127803272331046057668685554895350803317099424765558694425364826920518972137425914011253586826474974371561092017436642694116823111655953894599209570378118561538524699326000415980825070814137628796207844825720231597035398550536074161953835238848596498717031956355249927423250728550836686745584809573357211510877569416330011636419686290123850729356450108160844142777525719242216631879194709139199872265273525708953490301693313186596174891225476850296615065329390778923297854462359094309143275504701946893308675942076751161480110535717060175506531338206990430945283412723354961674815023372336366670025437813430390883557570682896653455835545418193161589336141884085188956993498144265658420505934363968909592500448430290051919466766837850579182310375461669417997877459988640226763326192322642595289323374346893751978141865675481359985740330993438063542821920735141078123011581486362701743252116994208666654651204220237144033568886178041500256386710119853911897540839446361227459659362319648897757121571505468170368279748828660136487659417014391661954537157551955807914988454067908315724618263507443100414248917546058218012168259757769314216621083127471606669449548172101165768755899700569596557204272919740213189912475558058001474211877778612472119169741004924152435060333177377557667798448023256541280849087579811961250104219737082724053448112678691359734953840770485145476314669196183755133220725333067653781128648161303460098328011564033888895164098785578279939230691249878101466250004278489408177239174731471449773286285088021594230454086172005736861278384401882678212696223633401290700148645462382906104889855529659118784929663107393788521716928949174773715591449117688779842934261508500465648838042772540902715223810268373402016191963937014500940167348604815469320890561997319153699250573805790675369369061237989496406960388441293093421590879406892218852780234934517469347624589775568506197131916071371566104146696189315040019544539450143101945155719684991539838208325000797964585698081572501883636600470002271538283989468302930486832476568580485981459996959932664153805881182469531619749832381746489678339461707068554582999732657673953755737271313130836392343803150091385404512943227686714341270652762021728177357423498939826622243652394517644160632511604154512686508913577327652730530694535365843278797955233288906598368114233547202510847269090716954218162535879905191168685372235995235224340932437706902653530415186689183718484194978416904138609201577819620486503327134531340885020067131966386932022267687355911974185359280255535082659943224148080131169958494541078920503590726451322044200561584709168458941481961511557996056417137330458010577414165105061602521124421759447508566659868610627251003663534219141587318107833720583747297861766872122429724340040960927982962290807756813823540050297272748302521025548521716927007943436480044768315378140743962658961267210727779184592166311606247764887648354709286821859549087333600047756487968277346710855675823023830112798222674889978018623380401873978844604280757467854374010033828656051859992103334464304377837622308569754812996166610070817114928992819333676287067685438090968795419016744608581678977656364514988281441926205186090644564861347274592861714347584635474633979164966015041207815102988206117773318268145005860859382473942590708524828006070845212823581021842853144598391179670146337836266377539960382507656494244050656254055267648502342385901181742528040966483407162595578523723695173009919047507245461200231088969495289247803656768404350798021815145420778843431115292803171597350478198285208431432517077823144974806787219526391453690136118362961749926057604084575686421716296406911266805560409428054044329009007819138215887449768134828320137114324039900142429398401694111746744481169016287588463848569635828113424331677481185406983904651004194685547060009120792093282487321284494216683840706012108078943107506960766074693899166916725931066232041073331562421005923827421116754894980555357779662903632786843855265394587993932386982876389282233421177754087914598130955241805224413526241096243163628365232416597427588147765115567297442801639678448114247152078835576740631770785784455821096139293245030926625124448122732512960063014561265663992179654248355138624413955163511880288449431046525141096879751753207008221164044310825651741532600962499066510658309632072047773865835052158158859009826576956781173059835107200802152932618512576164892582130314248838500109112947384556697379204115130421217423954526203038221294564652244696856635202946670814525079553181940633744872952231549206827165629396431176268062718972842151855876318380239810661408312932408099903855170777190278747012965296169967530283267007179021340192486598919755508965994461971285205292075714759240931754653046937469342075311331861516691913904177987403438831250921461495457619840395939329522521872454303038222943348606656254177561062482355509695549562994329009427111663119132323982786153319051881332406290458933940287232510389535037119359793650244864156661690722967266640336284861009757540414608210119253332278159180836992002251773024810903573303109312842194510001401382453895126247107319116574932952485789609410066325487622590564648398148466430099582072677546351261860739944460447759485714831896031876022652586164980103295266856984275504490435440197370283011000887988668422690022862153483704202204417146138013930433380042535163212558691033479754582777532076684391423338995565786082948348160463077479077787255671594406804079972037257246822466777305827424773990664567473210823274494627162424924302591073449632240507307457823508804317002917704274581265435727068127173767466584422808096184858739468926402270137156029623956626180433064167919915815625003567924471792477928374292549892998134385440213550953097048846510795228853175450556051077215493770111243180411651230656840071500036418725790620720129077444928966121720600082619936079359340910253431668460315102507899796531790949477630854105715518864612941367808756414573145290882201281200857947137611979206014419215473836568613785972314430397562458366407010662733302082858375714309047907217208077383923853843881316585939940067185465257178821476729035107015280070305424678667582782175409834878193693046500639441525232211284920639464429190005666677983204424947390110371412476725354887162975878832980064282749583797530020100581373874728635983534408701810729068877924962979343413854659258258999461939534451010533913861909171237755808900217787700325669392733371167508183244667739974463470120931749700998303967617184365199357031868003049900504986636245168438251024435191549058868566285999890611887535037448923588751072942113417302428047422190288672341021374036553410837816507506744067086150751407973170068886430673057000052160541949329199796548938214114248684882315630600229670956929157708270074098838056010107145530440863000611015341423998866143628196986480593886174403839203293645542004897066851618196762153063237017216500114143540675036614000708116490245286971495098631171831741466727076839289475441043758080887726776070694560420052726399068868725070217765329670410798263739103966152371819735133808545674971858241034624142657572012528695223486357416165130219415263198150704534350555170594609717413261697999863259501162847312383489383077513179762337436304198337997599222151687820791154295526860052870673341027241685817045556031392569704358299178134158902912537631093856662337021844161580239660280553860862005255823661798633254846016999489960881659511911973856267972682889507713158914326336734313252516529068060722640185633371475764132675221443135796754937838002527861751286487091349095000227872998101840134544768894967910397649085264324721481046507597394210358286588541268814532586558146939721846694152682805418385656927253260162152487706077288798190790721511991341540813981134811235515137698882451993316947383299980100645738950190285116337000558447318539921037782130745690165283921277035856025004939598073087673533785691310533059807505334287219508663360987494916317710628772606249577424993728068668586499084074979378094260290170007058315385045614505832552898153297313435214793366713653085605976253861290506285012601465329916151235824760613683895830752373104821808064000451757160095630205750465871014305003876795703324871188324568557045414985328201936647383259818575578543370684960388156075862050642191000681845965827511927044018961884283305091769855261834648629925517546112478631455706748081487644776002029859716587041721345933429850464782708406043412055160194516765926982874248343182639809579743820852805435438587711529690073480189271289059584058179715241360515780316953978074179121636111025267056401070159936103898266510575556557663178663252498178604882978787768690018563376162808390439673928178450527192656024632906153740879217704110904206750048986036932853546646286368716044414029471322218050842978223670724894958062695256239533265480742701715061029851428751440471159436681102288087736035672477111835129306317769534838977428110428598139915229479169393456587937597596805145681305128024930022239237817024149417020845617394124159142045394353376923408617199903548702771166231153822939167502058779385445560142244894705494829811985389699741602788546283219862502138523786645407262253861794108881922890166408364441013874046797625057360694747231154478761175237439440406104888801408330201788357698614999291476528793407712342263854635996657770058060993884947169269101480011237189823769539062682781797726370176911267672498724364919354294060694387024687005909854535309457253455724215915946869659930610186335904148329094751981532125227056227675109336273974484701638180242178580313058273186038811837245513160431337359558420887474334819383545632499661179170300369317581019097009068817700836465939660681634112531335148058280002634823903087729189944388758047722871105355270922320396349964344921415147019332984706463796587738444862295012216804989756547668374243089650710923925620280551967164282102681743828842660683310845850233164046470010707281302474257065006932784869845274343858832752461077449847403011783066015584217067750616941697930667676282110411232692907930115306416674888282105453279008093146941557002574969087017326691293411617668905025968661526671356878563464816935754991929064070465428193841962850709149520289587092230781322035908074731797752963057979959462317449108851192408524178749218165717278194802503962991872622587381736365861127701341478168704821568816917086888614267585067394173092370641722259401385478984465999036771487307853055558725926550182260096504391098349932413259916306552980539122185866778274759501449322426737680552916839740291692422654830829371380901255152863594642041476160236569935746949567744005629745298001312250330153122200787358914753103301727707742193557252618027487623539323519553487675692259160639825452909010811008264274349267285173863576770255817359151355654366706946975453583785710238294684037609061610059344829103084828775921481980288279786106892293308837146969805131056880595750404369533627999803633441014465403130527011112405144862721415461723003825673113542439111646247241580524613988677054458776543147542596483660623666190751356451291324429375014205422807482082574569751548735010775605349261425422014836800757968936418816604897298514778180485364902474236153590027550331530922097975370682143113941691854047737352634864487784051225864382550029952936983071169169021688222408500140390638569425429464400861854802016296085642224814210486874750131467581784208228803725841601397835993458253701652520818676526047518862455608084773300768787186611846400142419081451331447577581113974799697086904521533069037409245881277751395791692456087253251966850293182557713254317252479657389755996701141523054029113662199865674024388121060629543636022212245981737895759299726342338095666221216956095490812737309456747392282431451117188029423589536934873304872562787028905938868270043101620061250399206210157134991111459493067611377114010956197656872325729192137961887693124396374593526509997674714695797050217719932809398907421810814806794216830925572591270232812320094321111853107550406183636994688044535665159643614472954864730248460885726243802172985041522190419927773404588374438327697376492722415187078384822001804438827160910199472527620582197503653180625539001860316771679809605085786083283897252673381652506337975450484918074127564509185295675088717321018852739655050108247322050250025803000113259612719482239358674224647006307695054733620052297017376026550919625682062724797626353905182786901339140144551598557727502568225816186583614205430106271903025706656148155027636457508726757690361804767218056952816949474857179279145619069031395164321901018341521115226547638051515925922887896234240738738377758631915227541268553775277745850926045912057882226341257636121796778718052137947400027306985751290734393234027764069184545534943664854509854512941690191219499475751989493765062709224751347728362847224544079035154779850019670133165660107144578821464852945393888426080608013870874737786202583728212045670015140065546815587964305012524362822489369861817370509014574168769708535063869150494497052642485763114010520316712438564681548597896582038680872688844585510606671938676368506010886170314894776843825881154582184075265514128460204512592708700996226981813456181461143828506622088002459992104327440664266727526107202433754759317659446566621322467639774703789089047206759624549845153055154643639264981951234896073941401634846949644634167519669500245278222339352726778831930480940205579535220097256678703595481705688556328423920861122083133954778604242966174382494580259793722441851402101885224901947838225456653197858394012335974656612415075252155634599663502161016045336919608630938707502108651505462370195458564466477557772599320343749086360699983771447901803856136346023255774113345000328697396828853891796191016991137048223534897252950099252802846829784517846525655224683727731496278085799877448855082369237454338961202944916076099601621303834647173042731443931283838576533511486572468744944713436592617570515337219712482101938910805888458679576352567704123778824989366122944268583788919865578634843138045828493106850460336478837632938634882571751368315526761171417643034421021007709725799250506564220104071798331299639500038923618017975205874710923307836289551648153139773612972115853976457298927331492044009271088993234675788322884382014711369160713469598164807531838795637195521909089275148243769617232827762797184536883408646470425495652117463057090026789721895293099493703900327310028274459618029567569056882177054533747912770709721791314055845335104598628270622453795198928577122510493660444907325097324652249840010768499268372461502350302069784988116157047841941129341034868409955233685605520363398130398011707910382096248915693733046235395458749317497563519213431356176697869252284289847023521514625963494260478786777423019682644079120895032514351820365308695987686630009032484905553053814161480637944767509983525555175287373568172677585015989795314150584270270036758556473199424367630370641492212960040762575863789183008769277207496793439293356262685251291671224091454861052486269216022285198119501288348386918086786539650623131053592057981523596825164600089416141773493376581056880511728188226794260943223441046723701096144337077401884158402348902473441638341240804415922892002159795763149780235314161942940240223122998182828044780851275838307209757583888691885915317521198587932656964295467179837567981975116275477324787228903513636327061773422724128956212122669095392294439143103096524082328383138936528679212667033213223523202933289183484224193999298955882626009367803387161338272733582910824395859764614858230380225537826588722315062615149623539077829352369053127368581563891516119627143630778855978123717863813302020233151510968697165277751458387618919056079595995463502070969743979348475276246884707166146660652762995613813965691125343036687274131960917080471857313552496642331588506155512398444614668165453948531845435050358176932088485371512067576198304030076739249794767480619620700046766950135612774050735567515033155250512356061479088338261311567990756132612034381549254183221927993038267334117024485440575472862091541988517379491893843320476997435070636420299131072718540299846656410016399074631310542537189893399814054520949747427107133436840006302939858390133891817409362632926104963381556071041810590481744365640730240275045166457191227746311029689248164459780644566193156253393949166903467705693373079427544846013683092737655802241222825359751273317713058509218588970046940807865095993972188266699981252706884722268032532263264168525295811849369015572015307202920183520006625297455691155333755021971074228190068106087588859688332279579437898488085855308518215409242704838017600875483602920984146990622508573652292655083563633189424630185826297338436323117751100402841940938805243454517768269076469821173109297662974748112493029528667948385370732906541074991027233543248719270738375032870725072481531811541424615597136906404598001101358745572348085366891012237989009250807346468549492861418997973246229863451915352601706503121763729937408614947803981704798528816720353990357731512781750725735018926688834286147856390955029221401688335216309954830048529603335893045925969135924198076266082876533037008056185913285226792397247263175349469405765693347042046387951686187750968502090014546558239419642152996924907830829983886432038568109494709804125596100691650022623950057660236305870922173940843588598452136318184878435635689830145169310869881167695047040517061643416923548198235425914261994171887525989362557313206515029388666127676772881441125853782110890598625455246384145012182715070101841234157148140980946540306965243817519744598976663367849642027545572015218336349828468753184119631578105798913810592920809860719991393359079626044829137270587981478780160720041302363797056483139715639013241392749386693568582438386623144084328301262661061281016916136526513283025775889820686995664469503443842130386114408684331227860464601115288344281456664352258673106092627589110778021201336969004978548045666186516993940023629999214243771136507668696694539721753729584641570615109145177802128674414283176171411279755391512330752999261908658117388958103773024194559479166636033228938292568426197611256063580740334147251766980062893309179016074881577236875786366003209761134947483562153910815969502515331585553220893102491632516470611756035984705362035291711459808244935385331671495749716626801064720734162773444865293074524093397585839198750230681287304413195659550062948754917604825812014537033737722551694030708555466041297775627127677092445770315027245150453638684475392521374975196979114738397676339531857019278467955439869506209539211072226347696847302884680314218496962962144253236115463236499401655459974106829553152221583935343184265948571580845194604070317424107497957253626935420870106437800914193311888649685917411080311870246849012302111848706159014554955094194162079540833082446092603805281662326808996172601151998423289672117899204575532066580241582097959626971200333142589795286274742148189553337540976461179157853497211351574804200532958658875486616776047298542501302914756358402453677993814724887206531686670923075613543181218322028585653020198991571138082314983754928729809088135763036974791646348396067927945926752284444104309848191015589185239083784981042185577942646039067129588670124193230036866091612959400636524512711747098095838326252604475078156674274891403997229089065893604963846735122630446686438341680083517103696847831396140585189351230880265959512693039970445410094719132395295055741030866460936069859017623626173480155305558350619685811068574729517975254109564508940606570397052225052969610315811916703874102831974945986801274892621054735103072461041394479928232088465904251279633151582548706216235544541373693311556129118787995687315308554875576664204697320783752009197641594284543665687212276799283620101487419204260797372101592585935204528479369961635116382027559462824088417035016433107380951022316203179234741161686940419866178990838313473460247633953138866818929631147162961689374790962405567274253232644750108361694048890337384813488607157338612446887838713248531884443163371989765049087223080658884751156028733432216109258104525247442958320168124990009405242120356941772031841693235101079659121557947600500909295578428312009876334410668524508065433223651642102974440509415202216965053046659964792247147645061293312268821441256859956195567566883913411259719203437093311172011295540820973425007266326192334214013569842803243416686718066198902026764297351946319323203927323093192221986356104960602080065656548309329342930192239038077072250461660462075379129901721948643535669353569227007846035755770643854463892036390284191113217466099482586768554941070317088975286986699497359069832379803855578388691192874442837081237408030829004957252611802172582146192146020803515845643308466903820148672268102268037927133338319893666362494272027151878398740226971520760066466801573730647226064220340402968851841138751791377456512713807941985612990580297888118258690072947948362349051554072642179909075125457739747700537312530576795430073163276394662394437172233966115930922063185270970684305159180484604606243779468585566670540886444155419885413829228188794693150281603952803077397893709187218469532402959303319648360423431688455893531179217959750109068437165095187537048183414746167777570201153936582993043699221486272309386221567971260672963064258269985586855897721570597581979664211924290617300056139713544367050107270657656527312826243627544717665092545996037214620413506699675897796617432710794212605823490062368369392263601360135326188298645073589408289879871211486062251585228334152133442713530663051514050930620527037254227264476576884881476731339838514290788721581387565906149996417267150991931720377270665651492257520864088667138626924025551951567993005542964029280546918729452161976668800901111145609791866225553809670893010268201654581273221988361893545291316323468644006302491853254288454546603374727678064413121312466773365429554241540326267933778944419439354295360592299945752735674422778034457760626177428897997799717799485911926302324324638278786162373743709881346300901200053003026816905293257022769159556509232253953082989772516786338512449016556823170849468086809719015366955140159299744022839043360283254707974102119509557159013358909373760907422642444355010594961405033480887159109915579741215272451987442223310503573151057832091438154437374104598777835113729325416172419254522013265266510651368103532742964412216003603449571137051788973541125758718618332648099993669968189070944687181059656735238734193391323029567680217622849514983223711342385449771925145688028339873079974793740922794159422621079046907577482045523646681184418252982305637582808588867554506358841962225322688372258368664114922020548137084600916014098068728335455551821005699776641023789579102901852500062402997978263809972506715608291645101256555862153848667306586628573514773893363478278067959650403064785197599987383671187932189721992087702952828558852117009716573615296966713240117745744606913529058578867440109508645910490949521108538580389792713769033847180414509270363426322174934629784303182338784814389949225603713475467455004246913643875362448255819984626309654405093540090086440091393859898724202532074194737968089750486764520087236877800880363425305234951298682467970130952190092843554395749441489160472822373765818987807051344571504979671857646256055820774969173050863122388838254741892996486019794010523610006980662047328792970604608348546158348672223255164138148755784049497236657579926111675767574602566270334044724271501353221888059513337014337913180040992150006987446859073398130798165859241521426455405873565036941043685101340791873025744245271868543512728607073345730282573787132759837972139074144348016157523909758123632582084888306444071416264018506741120422483481986300841131822487373907903213018364068466130388887085819164037527777911672845443201236714709201770829102846378104223263938738995039711090066702690606098883443798615633490693590877149532443704340104783544862082062695724121474175388173508585938588390546573695131587893508286567899865982692600588784914434558021406550260748858510886952772670694036717309057635544945186739030763056331251840385380284098548629512507387173857300133029928716653988000508993179937792577304425081487300367967090212074858760926557993648636241935683367743010400042863846683248745516288993120822522307249084504771065146937653483739601684560208115312355337348850173941992196758629170384734554482243978122783543574259462844726789455029037007372758081791696456726442430066110804677535636632381834513820001377193123964079376556698659247529227558438787786735025154526677500580899742336230756828276597742700027483102068707991774437907578954845000045492998367105609886566638788213733076393407265867392295912909948598401495693709914132800158463975449379924025114141027387519151923916942701977163350201983378177736945185690240365799702052348910121465544710834173181235755073779933676375375901044554673354224366167571458764948301713268082613229961235084293470692106505586550955791752366247555905458607002757284881984759267012843817817498512085996112527513616552064628738853357192645108072112699769028119198744552153113675311381622081749771260484902753649678534396542371661115450222365709130059792896921166841781194983245432121356895307208447374298324388614012205434795908559940115091249364696689685825974792896027687775117609033143812676499335557605090642816502391302650060753464411536297479027583701781501575146331305315065373938975671149911234606867968304607679534868149394852047244585724965444246126064765593577513316328870623922009759302920678802460851320160337398538742378632116758542164924457797222045978498834459860756516804981081905011651706758669690025065933930783336526404842069517363093578878384069792366412508932532669828787058240094929276872793071945096335472493094904262515412932801422126626678772724006482918123471558825995729806947858808950920641057006707940772179134679378968561710432290229270776975747987213904181414419179298198487612738305823618219212331300199701663485769692513790348424681295545787221236177283550653103760914643769116834146020335068278699398001850840109325485482912386375928823999793973511779442723437829983080224348875058708890488081940121456273623291794550615054475152520365598004237347986786126682453450534456865231746715918902652635232711731823478679847717936725623361968769626530342255884406565906975798877851322625477116619051849119907543240939069018843581572781558306260771176051672746117516680505425883253107393530800244955325350855222293472521167255856350266201375817215557414162016504403267082088506629288254640523482357465565577282624583318509552826862105248612240871652500623530372057955482380387413727697764015638817125212417994913811236743039449293199415992204210652691894383592783586423264918804560645988832359744961417522097152694664844635313792955437961641766539154933992795400831202486099838726739923161676656736390183906072786348673296375228627454269585617675662056549136514701243313110787540787569199193763591805917231853370090120665077209023688053596564506939710671900579138691466560467005472898458443414656046502396405415732231063104386052307263078968221277794375961446559220357432890478430052777062870927917632403210229986650032493394289412839121350021167874398566806438992065154543899838397039264147091718143191889117068026805758360292098492618940937500743842353784608558827620406010748918701520904607110423765757556018635532093771533430543082744036060668234944159552780898171112797403051414019061125739934525057445562389236769089704726211714720129990993976317347813875328334959673551489005396720576556910215712346276065056970733437307383257612267646456147686158294220434133153408528054002860145001853390473048248882963585003038989905311282124797932299793468592076557395340723881828212466034110168567428333821203879948286530637629307912158651021692095182915960233156970217532655313822191369159014809072542126588175344850606955726115387167711325262760803510081581894825575472051359136614174063604942711659889761790928201407210059414544927343320759619962300420906963712741495979762456499497741045121259366238309320734268429473286255531556571697227961487232424242615066736981316320576981929733487553943149609200712358708615539760714365360792064075139937167505998652530110759474571032741299002179006054506249600239346114243787210585913595050950070656688093550137698341781685238744098841360938635069919848370109193363659770107080802272533647443893435975827783008600743622362152764326906480169445168423692485771251368995707470863899668479677780924946304494692751871931473641462155201230128870435330004540587203719442439837813625006086930988415572505143098355025275272515212911527248269882702137280668127574260590013150149740639151005763169263713169924209537053957252452216930613099803917852704459899547624313131382996977926407074648857369576888347300786320294099923794799274026354564028873560485147216224251511770036666718122683065069254773637965037998083468461277552968092451741670260172723449643071037638450093075040788929779121056693902741558037154565872417919366095338594960058434685167653019259364026616408283223769443489768756250238506173229315446790584386726106319527283915933448338422920225274542723380904965100651707306998781177721416922483361663438047418054147382417627471925405339708196394069740928284115041787002073958069910025447168855221946777511643653115713061696095425006403536413004522061640743657092039671658940838250640086259724645484652598027288781692611183849851360323737797019426986451892344586886366661594114702520518026375087087446598826341457623303302796094933952827746612606728253929007165677915032734278635299958274414344302790476766442501329860756192822048642710566687191481887159005718897090354199190761907160874411175732147541440504877601574458457922070892166838520248246944680685681274351193677935748714069695770070321940789469808223948954943754361555228657003333184724186421018574303937565765738874893403524539845212290003690484778998689404026478673512042784026698341095349512735122937434242236062461770400024616431176459724730966582887012324399917307850478302789869397376960895886297179637273851091622840986835464138053412129144966641271150693649673589176847174094375863601171990276365202965061836870058928999807581311833561001979633607873591154856681675402316444526255254714108393377570352535946414245800048948467223881143325189812631240270953885705211166304043925823586035601160710207743453281804634554338221667273624495921126753696762294817568032637217828428834568688355055100013083868185312152777394537398176381800278139658488462553400406401868261074079541676053170114635406565205275880586352770312922129788874574694632231139764022537137401779435494879766372749477358697398337281453911099952227823649867276090441368397801913412800819827385784343874624663153448050741038530798705861884018578241386702310149956634275259906565674209507384740386920880662667356563848161911988241908825185678041008744042456333225450923146716974458096610487430018841089997612398481499733610709927290685704654638713019979078586308157781573621592408702279144794594524458299990144201421228556013333958394458669422777241652659150709162692522242678950479565976260947464850618158031391547004596970447276354972056048877634867369881721656715617175496707228264013159031674484054246767316641106268622073791881298701973671602636999183118759945163477714797562022217756362082699357917836227624974184712238758000388281056588200545606461511913430480349570404973283984094701446581349962097602296691952624967555169181957325749547278738975768590438341464417923946317903641253395666496987897589702480629444231704626608445646364875443018275177607190341843513636376680428281155628009043040162782106194276055783510695987196997977462480023955395071601576521313004754834103201704769394871915468007881780526717264697799353678321237603812189515142237535997307454343195474308580280264609894249451171182311271384476459172011274591226939866001183862213344508319994010406096789606587147716624270810826674528720464066775946790639650734993517335068810242639923045138238225340766456386372540975671739574360516661972084049252734366822534450861552121186230587849462588124488699904090384100731822997938656022497926605568398739681232621917869259627697896808951412355370902265537370425900384030682459413665455256297180433059858638548093955750560487243275099581839728751664605415449840089990340360579497023511535151324826342656707780972295324532777941439453806192475044319039153536912153340053251712103568573891729318900964061697148795450671012581865754022503437199916860255427968742733451659517965557389479770610998168796945546564441695781685300497016446485106107589311621328943246031158299239390832454647528322618443084461064822709929309201845250923160417578611699605726109028155142515849629823257225194408454220137498181262774889537137639364591718874829872030324068946024054099571112784528093998208127345838488384228107085453136287548229307431137332524388142748778353967926773676382065258115863274556116772911490473758129743649707070690794498885973600723005222839068096262909489568919906903521440583816203848832990931685893175985821570190233784198632495938023717281877118271395766666982525080747844235728093065271182599821212790235573410235503842166241276695825115659383428851372352546810089410288010757706991249193015834969488668325570236582223324809288931476347814280207154213224918532758524934473780908010033300053095930413146391246428797513768837755225217022416306614356552632464334286890121479567291472405197337233404530265726587496292246087631492251031919263898278516771077567030743705432444708677614465869728515035651800579030807805693471196818710686833122175414860964484538494126507605291339469871499758601494765949918195877115878425213478704162294448842736259455592005576550116783395684902709875489367597927342356666288352597637613228999808944564105398819463049982565731376640608564251571680471821967186526592740082496194373587261411685015401281401255597033067756239252499258760804018160426474055435471506339207522193279083077629409557190468546304467600047872624851958082597015790008218367882945992024555939921102606434684627955928604692532894164558144136401499948068893678559906743325080525450304418604913331373698479922802701065836845271327811292796324861143777811894381878965816193614473209142496972413649363601782652408651072130590418112397821888073709329268507242352250484834616851664931509787755824238589757471867324587926527579757664072345615977428507574527566577494182255796087076305731753975764695452272601130103345813806988549054889895542840725401308240696230457131417208865882741393890595184471533047182071839095691969783753587847894528885990518114857080618155160431554713584660076850004173235625355432134483852470318070787317514431991251514824772197085983123219779582669601276950873353717149243775111967765421108494889773525615957362204283194447977321204594046499909422600082376248559813681115454279313031304322727709371966337356936821990999984654506722375861555532255784131224773408705176818993684930188836686342200375845583987073905945618226221153596038190771314396657743477343848136693383556826332546915338921111972258386374114949136802339750201014526594497417564176136297628620441285782759534044080373915813768484876635465748311874506297205858006695698309370149767272771412322706203757458035612527895044915073351315925283959458912587743743378993172341726434946677574453236606408259796806296784493252712632223492668910222125851126740636407818287505231590909703319080913107619684630510903463748635965609478437090964330866390612279155013303009506826104916004146264707251071414382371759671963243515486262431198769449355067053688556962969048276042758501674750625653154633030893167305581746482581704382673097196409252716954733968984176417382638394179106622351591405153616988717305071454637102733570044434659634512549213757661011440857488153073446148822176332995672097685501468238242247526575986958751018308725737791712239946381701459113811874201390132606920816763979035905587968176133882794273749741642517540899593036776345357531576195125083573800724360057431458810176394956518056241454882784126703850565467015647264707447006812564978981649906729450244722288950281751479291519113464820999054691022363150118628725334190075115264857270517996972657117817782585925193750723425073053436208585904091868356275371389596639500678969573439841836161513997333943584730414455807196918002749615607292971027414129687411772763675899901012856480693859748850597613755623726707165545679026382969628665244178804614491463959074486732839007175099311072475372024529684741707991811564548759649635602497095667220408055315829448208220173413724919348207483679787284647126180187015247346513826608176459377721822403277203570375337587571311167159614567509790614637424216877712238715890358681115643792782432106364664456167583357593809448766704816621798872653502825096197605533405671348950004601477562410676165987500681516687557272412587507434989517393813585592642323564344662170730555235442189524018718983351855845982978809587584815708466497705176115968181328055931297759422990401862622316193049489567210343914977966571908464456988281430370033773256063048355282964408771215510963315589098350460959085976621448186512782422494056733291436895668725936666354666259614527191910455901426778052975316746995183435417437417378183841051819381535409385220577272242890674118978291822717366036017422691238834372414300599001302639671645257396987587937126679451278485674208270937920519576251459341595696490641234304685064453471901360125161510683222062182912614463225342972436562294003221942581885936853850666511356250510465811777391893366980622373356830401284610920902799407352913641195759425405229620173157169197258669153828480269795148710470310966500044383123508589822423232922138054369954618006476781350711893477288119695289205158343651963990985673948260260922238562655934811805115669231528051697961762327963823235639453387987981155862672613958564084332270008868517216058398827709900990565665431261761880841436983269986746000218281957611235121560559123028097073371875757694054664373564876465706397990722983531532177461059021226299581460678744337926979871580400526356946753663845958241750558660047992051769252180528409377854946781201664996044388082613057547622846658095187590714571467254213868821445884343661505123601782020262808398672657551754495872682886758208955279716876200601534135424119502403463166185408842001007744854562129079667383925037916282203188805380871571634045949416087095791352103624713605780425212053003416460191538807046872967707955510135468694418174751356474056920473691390221700477735051441140621532608682761109171507049896876882380628716810125051777198059098465978093966784685379710580514245479942215244782765895776759364646947312046013244401532656743718616417026327705175100247455521367668755288831381901722010304921948928750565294918497048138033882493249812212342937447568500226664874287204729352593995754520413428992585675268007411906189369834735122082793926179463310142178269610181299223462859288525664629422614864177450205596623372997243264939827620702429415507279842535736491649998070259885787186279236493023903686005892639851232094196320386108103535328560896021004716154004916504898187613477024464017949028196465546875524191072358756899376420008591999921162302840351993988577598099998585913085279555627172089607311998946394706207642261416096640769300188404348424622974800362513911030468745235364954628656454507062694408968938935779960899665974036095898097823055674404072132342240207167528345368344105116161920140339137084924568949936286230595316178636290502958241276620609415757048993511374914359369210078437296680012770981862216362554960263483139937015910930886233423308789319695995605951692486609809306629488500901192490749897438653357737013526593076058276264052407222154387026786794962798364927421963834186477486845308321011086713137845528527707224370974157215939519445019839176807460956714211118224385058211966859395369418456398729450698993722083151917528958512904435176836633559515006345060264705776212329651391827245835026866621560851721663395329727574831951997007681635130169102868247795089467593992903163431192759347152065199856773832323952693165630443239944105665796562899405233390201750096871509900621387745132066173739663340212526484850465189543741863315431509671479004741949201949732780814814711896880555892907386213421061170786787292467946999881015018532086945990971964654884658126306374904024499570320372144490064874371549193565045974272070781022276265411580489917941347792987493487627668712809071204575700053133001495859736617081188464631288804392880210761508468718885057217380840773643630751093409422105690976778921028093234461182949370072902958330854039496119007115729981316956920575334370829276706462939047186986064738947385300346784464498557635729562850418814803504827235279889660293183770379160555862860345434080073866387670669825916262899322202348678569652189728465990284411291784545583994421826121863645914919736425104635838485910411956210817433182610080383704065901344625843825342967882554389028848512325394194540323313617494252075637536015062682338049707914451741076163775618395979293852790961638109555955469092985887044472456599174353972341910635188897025886384247053133117113385596520798783528197399159403695537981830971821844284135313968095186204983155739257799655144052406135108349668217619623408244615565604619741553668011536072936868841170521245382393348333858622925345691890184599558838669238960349665821072102776472475203774890254000371213409344123911067060350960146320548567458301176729651662589474226683849296824207801253954866126109431768593304766919225586931387703861343545943571075731067423708247057924100361025550116332281050792308441103500914858880102704033947507863372598974186139295486726077373193735740981539444032775266179310583211946626945986983891575924980645179506475007105860395613715019145183482179402141196510674010706729584026178552064568089983671385927243145997352125274699297050974943882231991459814953440827340142718711113767475537572477490693257578405431607827777313757640023612863576363721265735221077893342854368260353271783183317900684933886469960756091746227838622992204862904722869779795242074381830579287506004453417521829592867068029472601852439181154470471056745958976034317562876523833434421942755988186105885823706405580034341067883332965371921761644950986293855873077093552264188514764216063964766639737537832104806512618092333963466296999835467857230701310255811925972493304700750388173466157199478655985123304567208801954215609170912001481522956991726475878939140812941433259384790922859403388630445060504463800182044180612262518922742939218881908882897973820678047548206625148974608763894644416425554992321410329695667748167919220755863594491077225301758178194406225682797651727347398954471776843544229826392025315743020309619409236778569789150335307984244871979000196084254420227709879302829814143577487399899173471767128662617397613264558097472835602048826817807507008433158595457667564631369856182626704791807665326747764767199168111685459177092622710408843396967616391797036888434275150729643308223579225642330967748372060498140069965667329629421255913190975968871227387314792519149691747467454617876160659564218090443655993331554875555769911241095805814852295903328333717250650188301799989146282461715891339135156053292105961186571459069400265654097782258183033673266530058714856697580666834402614951221693111369075978098477926702753064208247693640640431619544086394120167247786645210439856797809300059304852242331896298904715335511792776524105887423682709973948452843977126691740996165704446841438672717082962150729103640620517674046753984452258080904918983370558915459642263198753313631348449189613022242842348241507387909380003282232408415367178120357660337558113046746944318818836358465526371633553750742399673379746259982587840809651117885946779386101378061226050996482715662162861847044080406421124184510978284298580269405161447740235095214281328980569962793133952158500454000629928958595411401823952465345831842176584542308636852964113362795715367473798035910718641117807644056001248027976737094684336669517190920094820746009087213849511152623386940786721541364507299905453872680049052965066340203211270284439827392169524608734593167837407181288690320057129866640527573708455505419263779474386421177488798857895852455616152817456176265040595809836201898937406091009978675593899469533752592197004464900457831312308466276554645836108148758900532273737648956890193398772510171913473669565112816075493586557283662623118321456493319380889456323396178903816403844954407319276159702345635770579762175889773630353622682797853046688841955335686429834474099190744543636113151160887386509043469283036790299208109528967752028545379749333490874922501434804262547936772292756856391526699465262470964344138154676953200270209658910585565491653698223672255754020549495608920088675035057277002149616754109479597433287017420548034244641606623458323673785264940429967052530497292446755005030617133949983448409637081184837285449486316339503957888014796577792776808658101825373356080085724579137367569271026926424699319188553238428224563799697415328244813238726572175739883129929438661636202398997233088957071753472176369226507366557243640922822748125449332787461143631706994321425259262450455885694023587013930147564263521342952121835318318502626748490581617439757184993996414172588054474513192694697781595276499637708264105133475450961939552279726636273477770209515101249458495932853507031130032581504387374620901937834972637947989230604980150402187359212238676261574833053844658573363217821883823335833747289463385371609411919898168780095102678673053980196813451788359413603062755262573916989438814859172454574035669707107311601990974702813800182189517391277900154058550090042609241241801306649324917306029325694400744177462064260191619249584687514084881076203364408932766886348693224226437236452259643613252200941572572406086017708794097465165403620968607837899996496332712458047552608586756424720064311138709952286575947399335550343568158434701562173675341881583213470056929936948421586413732394565046990793214998772746728976786597411542728448521637343588740518497454571866845682985724149067816474700938492567780691376415917198013597016333892407462271555356773150022324158699899537199680396861699864899537412794102792403017318652839931693815349386838853072743481150134867487370288025468138809132474005382549961015273134730871978488692513547506401313276405266949199620118397157758279115261712460218951307430233383033247640692079857936644573687194448833820093936127293650598343223351563799199404662752874535188074191065098731936730599510158136307565084136157474819301738620519087191900092530185912769760580661769137652060062706463885038843489258348331965901749049318397839991709496655983257631159143440834726819415327856943529133567312020728929621496210478202028330513323542332191461913286249472992620616111284394741500158748485177164586348526431339430994954713356422980852397232567803754614465855241224524994721042683956724725806526481489014239210465422101719861721747280486381643006900111609653649902558389264000423940077952505964498204428568901042093165373902160907348865312596510608904620351011877917718165083870487084756376667093467580797856425969068459517915974783864209391888949242019383906577374882932896767237840203115436197313344792354027050371008615259054854092422027025243394373535317191093714370900548789896778019369053042937594060984462123747552743614884089211428210615359159580879100821482028961037023057611910609058286801170609186405071305609601139854353436889977898439512071464374662659597983578431690227496678865935867730969194619653501894475113664156142670159565145574245930948570906190188563073763684041264928241354587137774198379686177347263140443774021889879356139838806828522591328464358849454114570719402825484787966723399086149343205848147841182660062148162982766751075784257376593304979948057985624036644194766490109067236153289155017490203873517182303850111635475389703989164969768120061679564610744254502265373448424252221714178526380440260114294117270977361038765815414131752864895242323019031036459049603551067134320503633079583730424377052492369162989613773205585480203878052246690026409371794012023299024099136095107102762461894194592678469843615910821133759715774731907786457714329369046022082457011703144382294613328969781560023929722314320824236213561521883516839841842214267352113868537960539878176992690696052521518917095669879366523747296718780869522248540669291391122333920653695412319364148674666583158919584913320812585564697920781940217591809209691616544266073283151280918097044215483605157346037640035947277249044853774130153496462298674378989104603435844780024131469866525300569550434628695478423554983913036548145259522336563194513730524214865252262886353047702938000230140682580982551031118251673071986203530655609259250068518242221312603046532144408690325140584587355642225761940097950279604216161770947147657337337601446820008700165241269505175114066901526266597162231575608039232078517468409918680840030008833873890462131630821208934333173929784157778987342405176678363449470703929340410661410075277491957913922643233325401571575949137161340053208474332115580513824349223181805257631603322582133568509100452625801335527857099919449920026093820598249723195722736679050509621118789840464975020872576884862555706858586468657449685578649974987287532235354459831778733624112830304257033148661958513263140474861519180674829956418188274187696384447715084080663744930136914825050854254713521765328064809370544754278378076507189716532854665522907742465713057187415216059156958446109556368207439024234196088673358118106850771741135590263460798997588829784432186692465695143608253488606203958646589822511309780137603088334182303295547927442740534216817273688651057635001911816127712429632192832206758991752814855850649895390325677488104968096770640584664191136354043224271682192645845486175140148687759427034731309811758226216103198807215555957185144134804709975953097986103952552032641242020953923420838355454464453879514342713547386857024342367604858853667250122401899421143820145210945207651507251901846456652982616282125500930107838833406116720478878962544923784236808623674808962050365089318415014301965587181972808413312056245887742607705668087571874433981893386370128422029710786950908188307689603531887513192431949906387717352903840400768818949281414436816811194859411930913855354736202149981678545737613388339986796614206364608532735754824733088622794909683782480117580386366960331646053580921329851136103534396663841037564196676568784359540372989709763901115648085762437828872747004320050755298820569532722099399805040474668932602132572042286983034798615560118157137637752591853538120873906073094009393345059372406296920303443307782532925380386217205192808932634203276828938851586599670720693094660172629264053230024076094718653044807094240108082198962180991113235181867711866246552648614142321656530242178470502054075569648602040493361247348893770085977919573567594907718754571792326991025032097725102047223410388894988740182274824621016842880462185946965930973049014229018516059104253001412709297650374527551160018321159908151288782288097588671173716180358384216771563454803790064657626017182706509807575900274631684315254553130289477724579978478403463850862524940443008565103120183932023258733703653372797096223820180810426849154970636072570400121644081138714513421293082289391478664556992846078680930814006209380897249531855473706422648083692348619334177786542495514742858391552806192094732242266469870290927707573885096893278234093174205020527669839716663858178640855673054148523954787268074530323648112228121164988853268394524792524255754260564715704322776401474456206431929750432119305398146622218561854534809317883422196131791567656336964208475145381631807863686321379723419302797029203002189496266481874318363863898794871272255830164989313130575307301903083912618340038105315660188848666906333304862089913977763001389116327946465198094306818687691044707593292917772599841184471188104488452339145423287335857814910182849266846093344349648224694745795241268538003873353960194881957867971343826331286144667165218081347212864482186175811419692010526993449359903746241955716595689384404465637871670826342579098535212944149772838629440828322146256149171315974157434557848028033350064945797823607195486705833015643549790475775915585488737017385176646465113883823689865097194369734511420128272317175625325878725549354021659208415961018495235930355822944397735959834904208998880222029255703702373041634729565234787351009433859440779650008797591855752100671586042823886790944163308588807301753719181515401037228354160189617334144926796555497505383492833855692540497777611331075848617141121331342638923654290139697393117116398555850538129111195458916013268895945927169218279880314204348383498478187723174556001566697493356591060839812946015771571864005340236222727793347873193522851844971854747515459991316473531875805598355326376949585818675494540374024093776909301746331775973884311247645045497440172294613023466027232064741319058771158475105451391640573359333830173775843793247812003503120799005913151476873824584413589783319699180569579277101018626516944368972034134746345334451165085349844264929469786083110349479208084239487402282704030687321513512051631070278983551190655342434111814407367228321684240965077758845570682300978471579447286652323120582770073354873253740428284701370269544693174440361931054626338382603330537796095800136344213823770169233101944787423897524163316283075581448335042133076153724399559460631286148172234435611012109120650083728038555558001590076059443030646475167150878141284766303588748229622141648458949630807591716782471902976378516638411002396652636046727053562051396598570457117115463144342441860522314830639456790411527403530691448192423666732730870719463080486706310568145277904994472922798418824605985271212428579845662237975270402164640868215228608665391306053227251241606281356765199630342783268424054634180933810386079875579467718823904359901600757728122263849782254416746160544547853535720491848401978086326380333696481683563816861768531713323138883579401796559288323929292928470149709395644542705371467757578630334320232312554774600014500613807969520560072685600982904480748328269486798512838612053355162686344214140867396186072113241220267129885811859268057519499261374542130983100171299815654466774264051517345702643534865030389079549341513353755196291173526233407261425906490493043396018296888067732196832999645150328561243551109539191726385098145416477302078502455374455736229055262728936568487234624294811089205958112848835536998411853504381377288798130546515473443273199761627635821987745941385116497687349350276450083896413442189300664114117563181990612290637305982485435583784757565256867133225804324233744336519143205008361432357061722112694665026922977572769789525975026740262113884841233866069116582367916911673810703911330439543152429578135372587891653396213116235724868043887781685176003282780262863058013453756007517951516365081081645532357168622763169291105055254757036497788479623968922538792084615241808413116195114585015041079982051018413019210513771719563002765851015464549511630909762859328393452929332674117821588153704534426664797140501923599886834150603829797835628071621883063068335554063559184216425742689160119113368729975803222171563786254232325064997808053421315854350038077872560405007159065070611336547920054292650493922230419496086159160380397302924099086867061811675597768924936524641077011667003222814261825303659480950527903093762718355918262817388018984311723139420423320243123658601402820827559129294602442910553584607522195859566330462428931214337167972621790254028495509120369514365761341294117399373837791605401448699559841070127541061426030804313952995936713028746869800795961127374410935015009197687446036240064903414752920353638094634861675469805291907293111252955044353157622354621695940795745263361353479934059557957529867670927957535230865305553392416525355493815196125168482480736173811428953895509409067060848726964472127191507353923225757588486171848429215837545570725379649682275846430268837009618647968928767888420328214388305547893639141911680344017384326598623514462192387965534382285643939649162367406533321183211589650077678856535027993821206558431049843243844444667276055635843927624206619806003778086631150733312603718768014516584995061192827601999080346185869405597666447097480385934121263478562004341937810147226289077557462468969910096832656147712535761243345820546582486302887773727098982733577837590105114148327651500405083420466367973681229582259785112986326335246407121642624328883531624599490431203062824236198600479067801708112306468533978440786880397805685388566842407203860696389367142602794474720655427656850028975273313174984826318370233711740136236186902803448352185946154660069746595728687836957701318230661885574007155367398387829436205609105645287375873440730357575365563511965759934891954428116266464718947527200231529414035074358195479582382216551199877491173169383054048994587578463705935790375090067340146823677329916099752875853558470228648729869829560951789357310091921197726201154591974068902884872599060881839548616272152684373486048163616639419858298987705759482793915086024989076660883101110302299358951148254712346968931952352095394500817913930492469027037306923889204025792926831128973091836180284895666996501644988674329567751973924089955035124728815595147028992908638224504210839003872141537165967100434875856754344240405554379771538047649803794684431078857382860884693169569067321569702371239626452045195677207551962964342677941883723647389632341402836023871027184773967342679879921178854729042750261408050486013559585053966248693732631583448277022563170482877082947717129756154528841736439042027183306785295124761941142099134043276231323670071527483038606286940289743142659225123571460423241337308028451855723931051715194896482866617592466168070033017033229351709616092591099839654823790521835813056564141858584613028292252749597319121396229934210249873725623062089040709872612664069044520596664650291044899429388564366464573423358167715238866414406771106804043922555496170496896307743790077091968114168733233763861248615478425053344934682424773132932295761864089710702025044168924805638843745895492085406379135641500228119233429548659655942477076369644160958106203935768526805753249352193245629890736211445463027159251673546631608484885844019608173354512282025903633782379144472788757375107721047927111537602457758289304952885544367706480347168761746277023597782754754983648001506906192535099628103899431374932350694763108557048252468181114603909000277596250970503785948790378071334096958039973655509329526957830866252583062831442291428155276328988111030730306976374410062891339934009156845004476237385662167466976849823194830652701574031932509439068002483774552532486691376615476088099872011040553665687355986928870597664738950760509475678314743341083726912386018661647819183512977508644181796480137584140602695407003681982256281283499788054139780858265902549721132416523459909255213675221478055164694575225659490683987773332676733247035953288617344439048212477991071624876113026110943870095595465046619287611093319880872023308500675152017991957385350580419128493083402462363441765473112516026885238851905339966288688207644066720437339851494091369770020946977049552583510530336744093717828815049489496442976047139327432811784767433489292695051183381648111916146041918280902374594684177245916828299462412215156587839969607988206880418058770493566606323800803481825499726284200595330083854576710731122768007854202034678439491481704319317089147338861537292699098767787241384579639927016433673867161662890233196673044368683140788485416712458230969083251533849428703144482406135860918501528938867284188145556447230445267859524771062817827788697308843498043037259023025687838044012313304249750089881318957999166614196706557104324950842447688773573930515116768684444345646639328835290266329693023691328239885024886246343209213384916207552838413459405542336607902166301081436757725760635887814937673748701878134884677123613683047127124638847284515855414975596420985854455951066639195574009552835109963754532815146561027463912908702196174154649425595618683769344369988226739930200282768954724675805839933110958004141296963014632348829294258930040876784823207067727860509549355706548025112935701736657710226639600029763759796814888313672356781429285345392455714801254441388082178269120911261251998953416601212798077611380070542141158572736879367900576845691762056937346916062904005451938776685438399349433502795312428939628002227181528602821182180326811175153026050328985968055135610307500390855010290646707559301908466261084250070683556315927762448691190127037538576324275027888121706628325452107464549857899695117347185622218605217045498495768474473987376605364221494291579469988328182633070091948210185837376411371054197137426362142231863302722810381224797073880289218406443416129782311275739346973756505913838142560900562179731581509488535728441424545463444411854166329305054210615897139914029100183283079371454000592521401294947579928479304110309471699188248440648107514501138065460460222745042425294869091140471364500135686638137282935896251606072258610826010475660538465583945277296444993666203668703161606349794762127412045842195121298883354558476098740347606971434474793263919912854706744894127403573485768283550784166893407430431127172291960857149901991470493220693322242791438183170410300386418828267943495495060304478680217961393633905231869744299864434703963110431692931325522129701915308855017935523816509246020570936670411965268627620209065235644520582443478547095115612006311455029186493538438288603939053497003566579874942492041171843213789172462552999603423018997088987328705285698290489646089059604831196953338857877735601239223477402525261344562149913298078264514521541148140833187297468385750258774256469280623617852778368832456150500506497766162669360119809143394192899978660158560862514476234184745366447044721603967636406399103560678987661872261736791873628360156230258690967932656734268835664050936857421115803959278418925113922206248827538844838890075226156732452404440095924397257158400006983389383258492691973379032654954276070784149766601979572961535227278312385721878956478077837101486788588238800586486541224838301190350625043482585003556720825732954070299130279639534038545254823807567859652239708425365550232543349100888207148191731440949084123361509627421525622192835490384035594027247404789754025246988196245405761303883468089420365434544742859626045440612717863380769096693318764003996257375427971440269484265676474027781133355070961068829043915246290615306940814425481473493835184046350306531371600054000015726128572947553848048332608593235072295234623173157623190859137142283581844846732759867589197513432067576398063566753176332089085415242306903960942014066156509948667571049139263977462551664582857936641711480078048256784418031794548317946768769338529244025071983809800506979659098994357687937251976569726914901454680710743935980921282810983866031023855828427564490362755425828811028238917204658771771267244627171553200875210595294850449848988697328654106668078495004019098963805808687048050923105736899064274061511077344808702917732851782953299727405198071707059220046060053223332828688881634526243770627676534731675562149439518115361633790408482834596065464270316389976064951804367834370480462892330476585816610930690152598568758358361577193454206845709206546275085196388154008878749527747945313555942436952387386737677994078249102362990485210703783457123643465621589216130877200173690260432167609393426310357589237081097450729251716594720349286615956942745613136787536168143086409435790265044118403904824489574738820112634073805922331146632866834610688070065140169536353800630375130339442770192546266791723852695687817755717611599867467280440159154129366763942762182962151283453777082391003476405928908577365166112334108998749729996714273529772572206506890728943660298189334692215841338346073671170846616910879496457962503045087773807912507062228972263295376037327662995857080545661990739135618733784692648482424129553781769204740959767443383383704104329894525925174970559510822426930013956224169621166689083787571178229424846097815931456834913363863855366407896745215139036790564934434613206507205905099386395234922184668060911990341294367781334823001983302504773629883416205225028183114756231875839151707303616298158475632341131791535488795533397933653603008489278207356700187111265390666857659697638493728471731263473331279813407515334831972789713060316334757601313649846399167338625073899897117401345652265815085472729750873038310294960206343515229275263586261047145584336702339946479229626320816732672306764242425191468049735818902921338049419273846868482380911834570090178691449976762229669698004441091139597114794268574877610627961473505925943971517214581351409588502412620642724029709835546792607202988257816827446404560131749697140066202006597586869695206341314355173752804560767548564058195212399565100557461479233114792894312705988240967965105297470479746798541229535352473545331952242319927513099624988590015802409497034566890902025210800991933690492363406603116769639106622955224270044729303831818048464887781458202839527327998114161299089147279375098497269411770788353780555566501310004398710867478460624357887101583580456977724214687087479516097887132678327830870895133495076563460876174487165695047382089734225382329860533557459358421151718889499498467942770041468348323644117903182562709792148693038959865352941963537798223626062327206493233072117793250879384049259778497662955492826280998994650832020329114086812760809100904066013175893304866073937136893228256130797730786198861658937456558975416485834820452902728421660871414866571948680621397487659234219660849972534699466700310851370401213493902188727335949518512517862973034448087827005346186592860751899169089492807307033892463606836812880478836920349208402721548268830440487632948801127802019991858279554489540165121968483189611774310323406829149743921528888638461829823893884067861809702684935082089551763440917868864797864155417517967356356727554521121851515135556424886917959162605551288584374589551878942008750541021769734431879387271572180101173737644614477018489864704160484009123362973538976908227831270834738855551587164201498169354754400731872078636537770160107518470037390687629010558376678253174897087186416572286180361565492836957855110686867271321675865527744500349339684604240343858647347549112388083405681811565697275515412598879663476687590745245052973031894410148218270966467384362049598561541711002478061913257300538140702285300712200909767979347129499956152485864430204405325520745522522671796415633119653276241408528510134451044416714579821766728810070215404723022919937727628332961357777575272258678282090070292176353968328311593162551858732772284910334125780206408427636128921561857747815877719179116225717759866662991268567797001139352922303987440249208012202099158984836930719988495062379617233850943026462776529334401752621938422766671832619949276926925721966790111011533398411734728111650577545615697407621011849086844506511093576853683599477777879791525672038688173619666943595668275379675916902978220974052415960629279318129094988397719433478006343329575263165829742454565150987681749458389168545432593188191193369059767406571667179807152851800882289448261855598960715625025186071220743204728685218383296324801951021331720724318531910232196431486391833362328964562562713880364666356400535640073361595573837791276310705761318072880014330166649575403461182650523692422422888169213299764517164238291903236333262619863956297039209361372844996215840289947699476727334814359597819244147626704416250138801237586176988628274625165407271943270877002350816108612430745511170344619302586895961678658992086057687531458891758083892492860644944111432413082363009699019411825842560794704796129112508089458503792314850350899496729155289539958702512841590747837223263873793393989680354020585365310812505865964517959532515663620517048708184144885302923719580784747908460422918433917106554323349819123929154669691677950299842481672183080560718317373174711100713629383545621041789472383711974567782781846357627324447290949984264304317971556178077443591906817542913690198484834191844083007908514499237785749299600296074054307369922215832748239409650384002769746770444849995703015465887069725588585472289481708962101207461082592484256661928262706237707961999673027784320240963409650058941982646826454983567081050804250677581855943537611852465341126025981559655738967331496802728881658123997182022144252740865040055788137411000712594847896178534398238028382744966232482338643066416611835018257293152047599219092763539782705442265473860803091107225337023476905536565335987241062983502959352304539927596833162634892612951083593441991768823281777568496060257578096560216501912621708392095764277284947828155923209604643986961991251699272737574416470047059418475063328439395685584376648411224577621920448561424189492564093536535422414095615231747003728077735701367416921538352992941247254092827144207861538791721039504968765732948722348711169142660416875489822714155733757512668635783864021821401287371259602250179355521792738758802173644421402119324000885549159142358298345152581768465517268915688414891071242522097406522761916975491998102984315521236425336806277671122816191715202498097088560343560001217146909737571118686035298794757483937259751610187918216532591709486531960551339608543425035891263733617279074638417798661572164083816583232823189026566134525131270109547837279276740967920924911255215047049597683383575215265349904267147490538273047915021836981238222786206969443756253785115324751785801392935688360827966446536750929909337753239448349145747550190537791447469950073103597555222836523089216440526291440974545182252790812261837839063096615290263446637192514702958144800341351077493143289276147669538571509925052735304436615884456386680322210757123575310217159996655074134696018653959428647441325896300716838839632845475240791160716145209095971986055155844904180197477913031247205381761196521092627292609292256212950437593963159816940711926557546669353087204691501354576389604696941933074074907011969631920000554220480620053953298535402852018218715445519957181921673631653747947134757099877811424885527828045130335703749995206980876555946986648496559856472767234548147229671610150487911943231041165012274944484721739828329280476626728215051802321779265160299390728983990914074057810477057207575964356312983829456366826470167841352546883013033831501241878849726791898942691402946303429873041174534698573902212879332717630640392589890683687596572239772622830688264502683950046753404669041493095174352919979814820774410027748706443631252254350660466682308166451939747516561358572430556950072614493710796184953014106550267238403390750051544430141871997408137008191785290969793167194917648596835317783684401067802232755499546581392943352849809889410114224588868112131678684066602132329872331919980140835266675405697413712007576668928259287806822469518936181824173267158342065813249680704904317139490884564520447895543084336015313582702308278861782805747278017642872542654970828754677689281924710065350159585030218275401581983183143147352702534851005461095056565738344390688297496957246899160106717774607257030172278658881247508318441016511327398703244529782090691519872542647922791876881846303401517280023759099488816659583326106001387946179139409052432492779366064469675753112426133954398696647369684476684960732936443194504636963760789558119893946945648768310874904850143135893446742360847630808864577657958502346181236660609823775726106650178803146373719118913363425945036494785191410385026909798050622092856993087060701012945128438183489722364940546210959047358804879777699746343220428424534080481210978183921976096018938359710674060512174571917928315938768082954310632528606537120958818617686966431069306974575655739987540035625518763508317962578359520250407289942210338939259131334764322938171638458525424937690618992929985426725568521479395693267956302666661977587505728275082412156897741961214946824485371389875631601214891293104724085507738099870657248873756192911677287781859909170672793322941651510019761199705235281801191113489740376323728546603571068099123151507616725759072405463470840665840938012172590416639474927309767944051195936724191114734334592265878961101294450321816103581251331207520751873443862676923904282596347839467586873667880282571059461451127757795248424636162352877928068178519406864615676807351259014506022693419402762187683999671153199748680745032483918829315502494108622191748344038918500818836143206555127902094025080262934636109473391878406785968551572709524863658893197256410896506956066519141936288875117442163876157354119961166346512725685079382346193042095692657224883000116924634793980623553918376712625407200276082604709491186155451786802859827846208906604149163349500642859638250753995185869148068511233825270840592810278004442906186588003568252927671353595537021887210624180015924910766113811653793800330255588144549437983050978179405600394803774239258817680769609915796048029834988424861953957923328212562682262030656304544152377736024170679462166281233644757340962554626583228202062107653461723641775634115817944782446870310991211985060379589567632611670816700892506352339723657713924824761272792947367248542051684466079650755016504834254070326649740617569250888450034176748988001494800754048837051688267440191526391627727879194292199202791085740403395668046131096021329289871020971831125351762807766762002486415261834919509155510904302600165493853564563841827129777244489646500778992185877141630802125721309487797376979699648980539296439397579606084224266055689466920858650573792154306459977734035462112817256728532943596180065351983629713426100789529105615752531174814831042263526042644094747667405646510178630928635952394527889009123085147478652170158156902872617560722921764744850546256780218960529188362649324372020701894500066150571266495169670140508104592130139405497734463404566656474124146781864346192527478274830953050089297873155905503880566084188329604628447657834322448883693802718548105147083825541240388636207809747804011257429978736111459421234023093060549168532924081028554053194144096141481333960273065057073360962340238197349392318837028926867104987591592362373883468673255491125781741295433825073108309901190066351508389496552897049655061647385146382900103471725680096266200660258022569827009630825619608148974429714643782200473567476740344592969283853242602269621167156215473434446706015228038401225241592412812997287531757252550448176939530450484437057570292277412351181006554022357605533973060786331039137418273819397295419021547045121409477852333571773032207970683747268082365189903305027734132480840754363313967046714080682843442380554803400261012346045937903523101977807034929763694028609004303218291532903265292077207803018202815678942232375553941436824914925083263803154989206794635986208706412016828787805683881341255847388244626790829381466932996163621628490977745994291121416962918981624683340404697747141864060107853355503796254587841833511942933706981336446486529558364419004576916409963619304448979001851730143116824153193499701634479989963157838902798467644986822102613908234792020684864999275758018951368960599129902403090187642395254986552688147432696103366286587134393631855384160760155909771137207105715713211567407761969605530453218199677980827300029602392381212505525207281676674402796846217712494172350597132543576374328411899327291966164830140606457081172323141492472488479792802147918591519794902658968049379775125198351795852211866155951809911432146662211361870015513408794132945089641590963639744439685033481885583073640598630232973436590002084680813373080129363863783589420984900215364012744149808145842327998359091176687220147718354349108605635262197889130577021731964278032620717339750010446917425578929460070065747918315187662521902293583369126286837378958684183638101546432787279992154691624671937874403281754499438450169498982512549427362089614608109271085963381587367040774620771228597787866487932590725185199680571874509441026155607562858625066738326370858703159661121882813433408188773141098311054105357367700537872147217228846260103089914901451930805770949110545096981794090122632863151879700604081783258308132053617930813226944016539217099392141847511174458360160301929465522809503718399626534408110868425390844388457970328698492091921292617973898775901181880246421183987557067954256225582238178967581694170735970090907702285382684586210699381889207391738020566522709055929108578202976044673894584752631425482830160051580881685494222937631736287765098293968638722855381251824769375920434872202424483273821618897808447098734308220156996584365311929160477025467122903170013130820110033379602840143866167229957019344476696009704693663200957952229994103777791102224490395962502622013388412420166802444252852830580544714010424898501955845129781153532441482245719038523486490052783573694266147589166138326829700347289897830366543746953308920173039227854492298437606469269743651506224593680662075718234694896372006359862124035059681479030749967061112904966330324673047195561295818744134187523241884133925278710188999019158894929905970184206244590121302881135757400579176795039480361886565691978394611405111003678090121557300426873924887770878258131713352635726786115583627977312310201866243302682243947208398631607038487080535958664167358197275829487893109593209668742596843889048845931052359592202165084736623496649393091932794209100502546315216359263375756823835860981195467070061369203418683065414558161975326862610024362360247144705674731530660529107337149187976315690488054325335161754373959817297660164521313403063762184950518002999892983411194252687234332790574515503987305375955393276467038088774283321601021936166693002819147159340683624461020444610139011828442694285306413197753953261430989558739642404810454296053213059396945226777720716201352177498316798372943186537443203212276302849643703205807215711117855159194572756505410168602407915189909972902332924242082903010449849363604949979172119019936435101645298074688979628851030258551819317911584715853150906393079638840691037695923257779037521254628313739629448135584527514643728523117108630514038510823857585043077354098049894288101277204470307462482189726473859386088400359876653599545612576993677157716988735001160498812762853558496590948792567975890458875583398214976524066518715625927021914041900589385660489544947737235217326063456030955676018257666549431189070531412175202680817449649148890685342930895386241052953589682000089678118957500599265128066545432047430484660382175805853813253431572540438295399198077799403772445932358478180579406372400285659907195430761249827329541030116310535525631406095514017419855489884656465429929131456688170859894176045851364753988290568539452039025258704638616881561232468539654030383614902925424877019500128457768232829959599531504864918799362157877941147998537301184143183090705552021500818862239535890460483855878147125226354900969835730632384512792344589730480363264838746184637157694207248109514769137283974615702803139579173274938785275487354364306645858280477007264341909480238397065257354602326776989396343774602694580003954733620462532205001718544833762326776117372216054018031772316001728095865796805367030968605706328151982332961839385662891169094035226553985607907406070780257978207304012388711516566057709871538343025714559507855343021014193755609686036253212057778578197863624870731202267898125378056371573632204468004394401318601833171964106579633119541961525192028630579898986658789996733100279423123221525719488627531930090209725438623243614175302255805639522078831763839248483577297979642911801311548985288802938564924093138201957451962584997425056788868507405116630093455635033973432524115201874096742686915132390837036273832912110284880617893918515215607622296394230690154843082833956621135947697616622891304232052887308971591954097089914025982358982541735129933705300417263817887689125014701664159502353955858098350205745572715048485064274075636817240880639438425303189414282923918116686102025240100153298281472264851034352717474265063755014053856841006783362831534504246566546123350580262723790790302364272878052146150685772529181712987417828358842030220010522301878814759033452759370483630387709559063015444247656783104435215342886234377524603137101691686374796972531956403928051684704341396693335878016690899155015817811033220737981116953018557603061244040873656703054377168904490653765755842121093658013925475328644146469047243469058206078914184897976345674911809491198079028651205282509336567273343446723160162533756530430007946152323703390830862712081858796725333936591253831934193885812252970403464004440312861249276648267135616954053849629083785020386842765389777968373129912022727215885458165780153694605376736716122926043521191235381962335900282826992636066487619929863317921202175692174344900531467422283495113404202264635495407906955608011749648667304603289477262582086458780463569874317478120379592045599074145860975746855171284454004604669580098974115720235358987239614780557214956944104982259783944768065443688085359920484304411179194292184580846179725308374337126383835600395799364960252127213201062266219619808288560901370053191157457775679744009860829514262942018923011956510312739453006555396732361889603230281934265479500418597503325454905321171409612582543656425401436967100438286473625551680139205776120172949966729482624263380578627613844987024357804991083715158217118271849438258629201676100066011607322112200181408926626363981136474783728369794288295202804061922559297596270849389995279604946634196682828935752578826543477104119874031091370008511237737761450474278776235040239631185822082829429227495308042406872957556768286221313546740668737540732114175382657883989031303557190471627637952822153486868110378345383276619273652306718658973755359454196904793075175342522259425378783307606031680689057152062878739767951665186220570838735491410223148734648635905299001800216019621659749539335764696142724207337083266291270681419115845991950065568741969259154865104302410048715650462963389087247423497958443957879016401331782445527245352255847609927565244541124103115520760446295804758229444353711480676833449812900447181450267905430735504799560356711281817175641505790374364266776647233398580120931502443922780214425228301437011011120999886229181814510350882496874169472674022741420553422530148275257010896181898335911249954464181908201748084893337610865272948172514860172029975242173655728178567780766878116106710628637210835943625577364032533207132337126439035785110602054259654325971599540068516040619608705886855271054311002862402431981337406445508646921594394809055547430272984820255323517197440043435500184474449414976581310994772435508194808101278266422328406812361595470739630366616490711640522828590928350174119314061577009481417466517540433140166059289994921856026251724422457792460337875418204244248131768676414626227414684221526790936322389184915406296896024682379547585928023105830957881287778788738496327504323340645926302708426293977827605292561300054742972784524373679443883808212722674057258896960832863345567170132014812350067233612915433930343237810628802656048445074350278200142056055504761744790032287226247969963373813566943510255158251041377321508481688334498083086787913102487513679550608214001484785583616134214512504650403167003934203075210614856747126466505410004126087990714605208785242715589875439414202677167431523442043438912277629972864056365876847521595310761246619443526913036699197423785233110894198119693352392603814198340769555125193632531386480067785086860571248019506306436793091145274879535105586115015566735728437806387913523574083314486694022598236999777067932553031687885467341005883740966758872041865175125010502923276092448063120528990939915452674378672275181655950207455618446023967874551431740458052159753758069660245351456497632814449419460221956936195793438520071154903986171540975340459159054245209197882903732132142467671344780805366763904761399970013905203984208328804281736232575634872656830849158191461336993052009356051866356798452019965983404658343865390942949568805672170236865508492195193416078322146962754400506261177168080578570069329829103968670141058571955676353966612780706325027676322631170286823421563046495954942667509382551164520800706624450705298058751830639957389980904796049911489693893823390000942595007995646288957792514491297719249685556918846038685682608118970214952393875996387978860534762692933566669637029842520984415318571484626629568887032750229882701976370411900525408492332217351294851946578987162957710906202196432341875105739746551343768230154846327543929465494512880131171065085858155071006607909290441672209525223976908668337197897600025414059992424377934274625871228107644206792795983947060275237258305768077654313630222633442386871146267071292983457457817325254325808298466435204436166062934565708045547275000911785990331795759202265100533884719978645342565664293092828399770151605640475609654518286294119025574415128990149581549328730035267885451330977645901294931073642390133432583399685370689914304188812192336110296486409262504879749690115593455034791690528686932612728944234079317933332523811677004068587156333482760634885467235488287655081222975746849299558545754102205631632132822308384978349171576439421746414899920848967849246718347448836739749239428431545710596986697011755431846577380701057137513683000602712459528862182381019315454223698396462715396283915506575121006211618059829550417350175850864544351572724458549517119241585030601612741249823637337229420626398286182648489670712024806210325928562193252448350434831910296268148622839010664882140679632481514699237290839267496902740665130851006797675266622377397886686371149660725905301081654881052600179504238955284746639311715127477005537195447154216556055209200961820022657723855379841412215134656943768800050169804376484619196236557251955870814919897513279701514749966827270322234264354541905004269780229812894610363489848751286476398665094605022827905053458943711710493241640064298981320007653949527737487894285822909403591546760361824232376956517968323047982875741354526616199600286940292538985181116817440916872778463903595034751192245891953283466716854379235424199987808794163537624013966506150651781126573797481101033393805320167342281502585246210886042292840306874780213898705751848421676631151770173968803423812731849407666254932577695835935212144835391721411526334040001304256034299804535509534823374951618306785102992929400626560137836012076719887915627298196853272866816741521647886054631556073783015648000630339095247941569327013284206004480244668950539642862604681488710145715527018122870985491874658866914518872279180283507306289459311208005911421573414606543449884012160708627015310242938510215764118148672858897790067299944216449624979017054624206441957733970368541635375701990536745796568386536457067717338730225643988229835145822457258334073179877419186200591148374802956232823819893500280738311736325660557241705085065151120250291949501030611921521288436759289615809772885806765083108590673402089476444566109826642443642586629835454465315939570978544383808591961494914548907296351864814460094647856304353637298637411342734175516775603934823124156813357132272696648662065585944027155624049835238406876970793024526240604010162807720638120153919893444955841185927951972304757318723941888678603523267405451305151181949384859389964975405122243912939928439572814644613511376464844051917909497063086677407219684805552850664977910324529621206939951391527831875431814219762199205770701866248379339606405880761806220154656294431900153993876766214950788404647000907684451670407873356985653855489755236596255029250580556630661878651577311212965162733760836472644423993567382532278239177190046286833747232528898986242143969418646574579740724748936114548384978794345898683300242017460812060476821142980372847727441229844780720432199237398812806010414656556869573958199225865865799357174248152344850442429524999146048620498059655897744780431534960648260960093707072618537109682070680441629854203491761077537458068708372075059401886369232657770307668081874723378783532435171707227254779771894687561941814072705612896603658487913529293085538658941498023287933373334002093569659556458002715800910280454198131779675811632414324969011012189087520274767429560987574947132788282376931219287116333251273219443285621315311199588307345907075111961676188898396625000373660072350521285869633170745461847310486019437361259490252603237037731465861098351171717090614002416844603155131285822752511834595929124777640345050861270626103503085512890921916704111294432052717978907446826075669275021664969857385156327408619758075084814105881907821649078421358983277329537027573988936369533417355202333317443282346189762355626871073945229295374667288212047339960306783726912067406824177902913020801358573148307218199453763089497500903914536224401927934158698373483759387606290761196331654418458666979827568493878427455187952516493315589556381418456650575466862013701386161969844862174295851257181016982146473417354076388483372467231582179610665099478791970506781432017932334767477464234564908563826200006984519556630820897385724865873685280107181795417439574686393078727033816417540467616269859102422420150079236079869689928493680588281071048938583019746462509489780241709504781290100685096944659272355259474765615577018283089930025666469531321014300648958609765955241048467851857698351701923643127098517769378871355816202455667843965157802499225095972036298591672546960274973288406898373158276034757185703645277416062366037951023453953857210176054679520401926905961110618818058306371810269747603676141496887386860985084984171581337152360181978450551495959853617787810101912547944166426527295467065240942838340899356655592947128384503065245649852456011121618044236088959296524734474141407091322370441516717718690037906260121769406684598019104720655736882769317978417707334143005124757406950630106986802455891130517489966198757498773165680015771137943790872416553528364050634246088107088192669239948163769556085070695095270365342547998934634016699433286290394424844006461491912739736370050833528041998549980428340056502527464972718054815976110063493451436286000449752737625097068570551762770307843046557311891453274394443979052691573644219279219320328342446817328704153636091462677772793862005759882692436195858629164110138374990864316045030281964522741259165280826999305593560506881268055024031750772027122638340856238827355931264988277204492171620294094924162839153546079541417723164665059045951365777440890694980629780647328032681224831170747006950924943732937374649404142123179839726981967994758635778680421300734758566722940364833416392521759446505861316931788375571238473648943075072419938912344036916201643160456300058870685237160727280358803258531728860438926278851844247489980423371642821118972850871684723135969403595718979448066180666535050871075762139552218309952499853724155680463306040221047510208990698750199656620243357266987164318381638148639469424334468449143317390379806099394871054666447727718621670794035004615777947724740332836947687802732612584442937756722677998269818371397171507230353674955475714075954422244660571722529141603975112403346196100659902358228905574346020186401722939498337912950429551677206136269844666888895733420091631741315767526877848701490720880456388463905178635138870450520922598218452672170776742037726743504299239866327818664865476474515604179551502237925437678105440926058896431514671527806095165101359007303981515018133822101903191789673489964916491483343018647987134420538961233655102877605060247936363615725593251289708280941645283832577169392682521481773972177646846428400429607354355881661598615682806266636544771386597436221238519176416301083215246849997045052837742020091160170353325262919198796772881727592625416661371939665416445681962764280383198311193119152397439120736225289793918663719052931769459177457642276148511860436958788478478824869477316197805453454675177361085669327920826924477944172669590491214797846931228311669107373490131553853333561836390798300348134590278338476083770844839677493303117792220731807506604057004069615361530855758987526469280504029348879127498354030074674036517877266827159762426448026170055199349703673927351271829471251400826878676828853415825176992785781209787940720284816905462743985167346615048287102721737662466139443256448410037780539567101885645025168316947915318308754382779877142344024290649979244776766849025265999115861159453529768913160489489935279847031911540415996015682142622749135278297430471442176426410758213784938369289261679897773686413254596585152529544650016920630473495342318438821264968425086816663705829070144236998002093402009357946550541764553827511590568241708226745924726959151027771146404236993916114019371934715289042346467580255601686975916303371468934892062259512583961850039955293619173035969899955900470072702764640767345139424698304563714889712010129085569186729141085544054511901518246063770025727143618832587334385002575407034216620536385552042203920082404250429903672521462819703676859615543296623893436798707825915701734042820154921920927461445532537854372465023011969512027256479743562331388749037864041117863767823686895757218396024688399870088443627889588927663454253892541326459949149294235019067309837046349205281999651553000765641257754019917767117217816717165929688965238850121690068145233234326164760897660503026005322462422675665583741643287843928843690615403813532038944879912765226036105571810130964516517344084515061933664425851537164232794431536246731019289223769497462175987379391518898987907347198056994219923575258941282719506046969705400353739598159299887885576496912707905560390328119718272746128342081104316256352539180230042372950398158412750813076865473845369934946986675146835853169560903405074381200448435328097593032810334373142059723740910086247168702996692366862064667032671071094867341154390306872860914838637843281549187866607091466134642640939797854303842860213965319334092499056145826917704107379699099254322102798887211369759083549040721431230257154690722200473982447919218702037845517868112223891912696139930458563558906025732264908396344791384015638274360741254338272985641874647427744642781380804508742585611358351670378142378879252647098364321955799309936779948622808502328775604914880169090645539557382062839864047691405844798354284565974551122284540055699438194490057996314250944326386355916885356132073256949984160138039744764369196868827000096388494767984740282868504472437193853981181054246513183946130886214445277926303801174655113268124903889103154777098542703340641614560979635322022812278653904468655717681255485270583146929183609992330763224985784505769866535362377380208383780977878557743821779158632465070186181135868930741088796189142815692654664897639564808915495239304039768498998401656432201228636917672747620854241840583061254752696218536412404180228474573997050928815414956342808757856604511077967675900821508794397589890787632381986092473471820954598450526987092565398146451306081887719260502057429240016749871336045013591182705976494500360769156239856538045661254637830235973244063638698758143448316699498907998769086179029452879433218816040125564517189722117042099949772487671318736501769664468313430481322285053746072051195941277677230926816128703544609023873755453098667144970688855922028665713528913638695038452411336540143340809154357434599298859358738751219370814308363808448998535489448006315646440296562526446250785437900243336858535744343981619342014334148276285846078413162750933074534978340294981544096603033016514727187863592276513828649544926364866607284815918723242710327358868366612546422166844225110640305613456043439282460152603934598599942654586584101015714785900900520911500717434448653053110747350657217115290216140517472776724808859095392825600260381062414087827626358190448428887290187373190965299389940546172313733074611431706760212990108279216416513198725922765404004000826215111037364882089022711960538668981144636720114240802730463011372735967190911052717589946741985660084438208129007314926016230732330051985961780744451196135206871460002545534966356513913703449892565164795432625796225287960227551325940523673619798715394480447007574583864767622877773120787381877915817773899182391796104735275134992224936866068372095492262253589821967666220933410244360725461190247238710589555719420220196722556025242342371456436135977074465718822378788315099866607904043470729958478901956157356216123520284708833075934577796907275088927289344897330277204512267559322401423918306217175915533992583767166000231047366952098644365492679858272570197217087661561524336449407861864873666803495573648809908988826007304101887683046673175472753692575498566160297311839407164476962915911402321254752752045816172942543436713869288180941377826079877546766724089040070979775466096039943646289121442500814963785597489888217297812721729186077340524465124278037361024650787563796313896628269175481642223448746815430799785979853182729814389877327854861967013981998581411972552786921788068965405614802642532264116714695795172605782730069128376738855524585939197188944863514977410663891810412181008428763483857566887834147771381598688220349629787714595578367904888209812745796188014753998115650817314799433791407788868772349738343211475922786477527015754260264765660728655845970034609099929203379331839282384692883573783425998690310062584065748902940183370019355998341680359097684301987323601181338306272262425485868076450748582061847302871306292211503357599435308167864748098424170914734786199714682068598708643839068007579979012964056294447834903840521111010320297597283432750030236590951476710029766329711634636106045742779097903131556765901426936163428553685452294642791036096166896381674263452533638432127013600388667688294918544768032564795223882460088956822515775241799672231735528318903275178486455360740998855242230104741850957825171321241760759692274732025846104096126868745591135698023975510838739907311277595939081262386308277002159669349261472051025921807588989683020748316886066005687773053966248836766852288477751796653038618939704512666778426928272555272129209547025661267819303427266045824278136840716760259658077964611695888887623358352190742494580041875897513155302830090228541800699944347464733809614172426087271647612755292745358293963905941012409458678302050147693589148748413742956264118730039072558507447962412528715823997899370469559328052011256651959366802317524893372279195817827650584527959614051013211262281610239044452180374663717361840448014757674458471815031098407096687641059258398371603247680584245091835814342821816786542014001998803114440753271701306971254160524774810682784923170137626441444784034968984793490099643893259261835037179789358524434854481145586355307350438360449727519719155207874595991605327364493126902459831374562723417570769944322417290449736789861198967593444937434273282416011126122485121060106546452863426183644720023390161622926695296369086166998590434044222909460164903018317075646796055100036113263338657279242461072723289377261482184910088925222212017009179949081581591028990710879378488676280110730771114790572093860013873851415967735782322108828641310578739491168482445341317894807899172613498499079783482846612578817685466492903295798474666131826053004131884301706033778332577710200036574529175022712731114680070013520493596258611708548189800146241084730217986611187524506878560910367759010167920661200180826109711397771779540969718210690540185103013541634406894814238020817535145058729617029304207604828348155822117501881811596951898421423208970660771968213525055267441515838999041814677235854526343543732129032189189196031901830430735052043517956015154112611937841724187853233700691280797567742645553594765857802663978768452086968133703449572550797612960090793214887443585158794795631921658872939160327484974208269804693011333110291258783102680416830990813391716747400322867194468964907205018409795654366738599332693856324508289358168022564171400256845132583927044451761868650131340042268231830934449396166948382272996476399399604237089984168143284507419109800185705306171885235283191686055671985263922357601424526954270766975496452628576588501931950729196947133731302331188956404837528987837712026283805248893637388758163087112734600920783099251526172087766119931630826542817570191507355261276424931251223308336356497425890264741810566084856536870343621465066598712290385515942376817748076487031241335614732776210888896281529016781798279626920832389001550771984183395069726811396743992434315009832687489477182083129553967366433381327796263545818069293098058830169789193051980901683385699088722041598427468255734498157243281970088384313487463890889151750454273164820916139378955314699830682562377139804869070656183874586302752905755441960814439890056867253959860496853471284546786152450827513601099813387940914483503494417267878066527748535646861860882772212884248667351022704877754362628373046616669668906093087529849477441281103381624157780089589780138125842111591533206893269867536904129856010338963272839772841099761704651381226275857917560778602213906011042119199018923415570723241494811313753283128112651649288339992691801359671155141748246542677027524810077933680400308674232716639507900925584277076688676349373106734980199597863656656990912028500952925220909177305813368629178144825704017007825523337567580778239854572987500085862092194768136606943841646079752100004036488485493090476545261287303318865389372107236581610008150069924368564119299820921941130741120097484423716997092238964610421618672534467380768780205259736814187391500511459890243881086144680227615158720194429327810577208260815183029165349342668138169721902978187546931672276244713641071675804803272928655934984572109675048511872096767889868656327034335948903719298235354347514924954035301741504035151758426908156702644375475943027744660360613743444997125840478623593295697669813216751621735462362787528592209304317013977163055250884715968825510871813640441985125387621172238151507778468051644212583074861069324388649804820801240692964386669017607084444403802264102838357189282358550589369269537595787361020206863221961192215566615665943284433671594556394187512958778105371142596574833641807060891715674936852475099448613617142123456323792127016619577926829200322534445304855010724710314241013621897269722918782270847370229325436804659311918407541259034857900035873995893980476777409515047011921520650274683902446595368540286014766457052391608490306407181291662676929002178798788813883623794442972041460592096552381583267508927109459889339644884531349710371296467201938316583539278004848835378116507281981290911932215345147422165571595079474811746577736017009043428286576758728694041236772975157401235719704205372126175990693771282671126522918567013368227392773187482791790361069507514612876312323746244212526790352380352381020462907643150889884837691128080158387712674494745628073349124211730614820503352009965800412331952016566945603895527138944511304464912295553909834734812056026079409231589807547813207545376126915062452887457595404299894720199056960875576015774497470954680441707342174624116118719193854516295999402593745118176635668349817266441192205331097005003907556208940878676674269638147007122580792308866155943783991707244888659903548343240779669841504278617000387331433701766145394828301730791176584592505240878918806027260601606915584121289092160608119641529678091391018587674782147318554163883928511339408855822988891126294526808622857534088331626349337668652329468859158631817127364604253874482333116459392920433096095789650649599341949406081061716214535209306372080344744619847442089528592842644807378844267449560781109403808013440944336038483090955479825931752595888570545328092071844888076507049975502040302823206933545416044469523186320198902299590157257972114024726618613482054777289734496761438759631548484060117451364780050584490303199708653046121064204674602083950853862979679497872825469079748200463318909840699184342365990574323661477799757388848837239654924940034529943728629803950313631472009578870687548069978789184360406711469511171087871069541292277595114398379236053445812552437096476703068985020169800662241674424716913324140367555578735371415775284672085137199005669528246676057193186778739426546962515497911493513671963431849281523492427489962540546690016207477328601340743666710810768712267294774694132951507011328836564269930182791695683367427630980276613434026001919954963343417388984295843893527236449578293361292753937403227009079284420300821859495776432998421909147262141809546391181927888668081275250398708892076372297787835737817817736275912088956975510621335439885246408472621562032390539620929729385297282348236125315464582370171629189170918910447158878007627617144579256181507287973172760984064415218416712687629953317111861308613278615238742085387363109866029536656978107638035655933693713732902306176642806750820057248079316241624078906783127479446753462749394867852621146011569142292504253596751890432594873273523651528090091332526961240655180863680705230192879221142887277261275701516831404032765545467299437913428947897939211931843554574780961967593718618559750846628338980015735599066740387670768235697095257533199361013790732627483812233666254217216621203309307337193677157638756527280615411590086121462808348503426416645907400943105504015038426225644818346493230309171560591161435069022270129348785809728679517325118138399493462440797836017098142834982258970380820432155729891067424470353686648874156322128324493983630249138001445405476338036006779000785513065057131138450314989433910748442834334806256002276864310610196066610931157631256040323891030593000359731866481958457096527009469931986284259908927106326162965532483582072684476344757634297372038609629604059633953287720726665110258701052675434968673175086855058582157361001131810739505660372966660083281719449783640201813966574228976167475199398724846291558932554586342848397723772517755190414719005295458239629935605511616062131290537070396058448897964295964158069705285795820811143359212800258235792899931507523222402592909125065773339970179618396206947074457428481087583842533273381264685751317582716023327352619639239036649402811539282313784551675532108784136616466390016532335862095697873784240340629497987924351262049562132902218180505210098868688490574270856992340795950025277040047332431275670631889058839020742036165543385293726385728794607700849073155467134471759434631639989212059789969949918332004050944116853529975852302653926716671728942844418061374491725595385625778832072812571434366503502671577167988685190886368073425023375940742199633610640934246607647237663678536146603436634196588482874098304442723769555376086439589606709868263785004704271819562238329422620243326532313850540204549028025118381481420068346036599425470132841970556753060833480547548136784850730399935106988420104913293805184498902270780532054252512590077189530628959473010608360016209844733989882799541784990617853939314999808389267476906586287384648122486531166549925683340261394361427182548389398490018083074708382274434320503857247863392617855376742399276507503935938484663857951963623858135197797849877344864849889389816282891203060305619166384209611552212101154571023330359091128115160811057634606775033375291948667153914613793153099356950196048388063740343031058110917466862852590639939372194469785608368317472109465599592774788102896899035271063011870105899900517186642260148094845245269992780429549240214242948505130379854225770540868395780174094118106810355551823392340111908199797444275107506955509377422983008688882738702747547528323217472659902950710155757250049606502162682596169479657574863445747297703574369635880707257230661194440751806413183296893940666369816566251450732023996388640137845335988846251780542911445816804737026327168444623174780769826571633849574107379367685544247340223771438577385013448627812327137673884237810294010960674866510096777587771336011933696999427801431962736777278042182555693315389011895213692341777660614216190080418024175151047060322363459693300869880587744064349415034828908998584380583904171713703066063260388645753854116857658282796062628112525198913441365752714459674263838162190528064471740599872602946508164373140268091812167328531443640292570170807563057107053344609932742921859064592308685773068192549347396262978704065598001510527764042518735941339570267646667698446494248382079653076662018120541516093636280557487010813248527754655844672112119944137886790925653096752137981009436774044031620823759390096502803997808832926371867626187712538894899763804345790298571485590684719320654170812100249137069597127729221569003493781600686202725528505827227210398857737349617029470097583960422772197619847149056521825931718957120542976963397955993260214536296620452259833380240514974988324010048799377705430512136534479503580598921593605514201109093156593758987069066781663250206077481261384794063043309324614934460074349602625284109268100310388495654628485119244500219852106322682651134885199765314611448226173535313211216628076308864316539748684879464069660273778097559585506795538188344402525614901825212962083537223461097167921548613456527354401257226185714968241619118101749285191089707179268188098722004876323912278201346817530430774951207643289441550940535209507841158600891243409112217457781804058510629388037299910144611368177061471680487112912156893087154854159070471630544608809352349759930278577379666019201117199031348908861186172759763585111233149818234463298476681021969879291812475518756225237537855283166680720409162254865173718787359255480785252493511009550506270719674005320565654334851495797415698832244778548693735484190687620022333946405796628701894306306301535415785605690193654330915319700505708555921751483761246612801340176708128113861862622930399281232865277434576981989230840184111384443841445364947301669365830022300916023652691528380288969318868188736447608059160581009479839760040497394294545390257002954701518212546392844854020873457061000315350027595323546247599194011621714508060195367406938907144512080826989262509420100697078587293541577717647580056795208536535132520607182635288495147820018953162518006335816101513993260256773776166815160909427834472468613815946423032576934573840342907060048897574450372104204313573716019926425365951854826242687398497579926398664162822234809058294252684286592754140095903493872262798984138518897612736841087704297218907401650931251208323027854540092533993382489628406412714364344911697733002995650227243565833958504577834904870715479929084057917544935464716572297710303635919607413794755595691496740830707579941185652399905099870010339130790378017672700683527548439831751479463135924484743660731806898393659535628831978108782338604884411572913000234442812839361441052160276098064266482595697392475132236401659871621412718196993170511474360081463026048255243114516676340286742122872219175112168582407590497713354349749178922815048168379176633595785160325950110522078677955347933467429355087776074522200692574896043471167361138237872998428936923047808443415760617677797446004042634497465248502756720527608359615878105278130397432066044040007518517999671754088611516481563226233694159287984531371989684763477414932072470578760548538866066446337086806780418787979540980008804314821393172230417819905061957789648943102550038671221155169092532827450827542088386471725360518969400438361101286061121373652091502398786392623956883000823306776864759245447943951372280527782405425511805645876815227952058575577328254920445326897409451822542290359211683516254817330018923738474985801744957716576995993772907043829761506154898352177813548718858111252634288409538522280502457155851638504936696076366792232091971873126390180087905034464874660767956954872700355585698844253144066274422673422929498765124056078147483660194146745886686035809396361136313471662200687547378362599739166253469975171473635620103377778969973463446989721046919863072023222927190711755255658710664117140597037264067310014109618006736425146752677769245633906051968349052086045021840715689816357940791663858840238107520806394581766819661771115660750206301076871728781268062154828185258656607119352951694799297064345872278109921699663539710154738974975160005509145694224292723087946019513829021777063381426494235129847049282834788397335044499574907179813408567951465606234216000817624795942263818718953245324912333438749162216189284177235636415258605736703400063264242563292737174969986066620664766965599776756595192289406560428774156955744027317340115227283178920190772316679424418896225286293204821066760890153611200903546122351780362259097202342272872876554142898179466914432757940404558906494420230186968690695718283938458747178326556604138280663118521951006291831927356449365605994956491412729894660232094493001392902654276430842288053718113468248444407464004168669065131495099754133322898234700468213322633033215642426612322109907879225143825611829931225184328993694085540686891513687472106064934443368985468751700359246145428684816338053724769446968586305031264155389987784971281222247188610442031731795168685410748996088498748790693542994161626360360516138747523265148397101643397367706338437110649199586105602639326907399897743551000215107992225970414050099412311887906298362822276618631681580122448411622720013997851217516704130443742074700650342820053850533727878514395274620774360421285347560009727782614650615796971014558638608126712704383569291237404314980897821716634061046039081142172421594614724639762532977468375941692922141540809680475321101095763490495935223612097028935509757618230220888483026440712921647817281638445315207677674624393869205971163919605575594878977883341606295246394896373919384856359795442879375486472273121590658303105164457552580769389943312181484272616157251897940530048890942366889869889572632285968698475527287515124383324753112734403552298037105125979494824444256710413178496392943202826599896953628461703411057847946202768337766460245115613312339062985741157717811762917050838101751054738275037802823547585510322495637558085429329474234198418222390318060229992496853155262123043246840793553040673095858198773325682960868960970126493756859986549805084542350331724060940356816895871998209817059763060859415406516715586223813606159195381182403121175235067608388009235124915565030480593534016441508334079579649769713532061218559134068555519839288869928395362075751963079444378052604977636643375561794034823398548567948685458300635050046076176777080723838748607608497726445078829655153470629383509254538700494021362300413961900744243916366394109058122412900720805460026422228027708024154564615038879341400449135792694363600381935075919982937958878657351697589846703917786187921464864672553732933626503485703321864891779063577634259215958637500681159892891859594965112478755807423639417885242515519304156374277375045336411654003204806347752024649971385972853970891413299740893284856843814369340353730202616412594582230018698644119785889408517497430587347514610747375565619215773984874467055206020837192890904212342690628808084447176826343044871643262472698676184344939915804463727256164504682787348601167100135324173233719070130298628832518064373128479288512781351898315759637907182179944521923434937318399186532327766561065729688420473652118905898172425672078106933974384331001099685301321167960265680177009580550606949792773290087687610195786934084532826879469162320369361142180136214120617300064425489015715008682885136437966014730747655005059232196068262559211311680458116492191275191003417163953288895793319407939970485778127042315129542792492073814480632222989941887673115951881734449139104083294970274488977225922097177706113965109544022183427970884183890867510543480557674235876917477518767566528285887992100830876257990849849222287683646207463567075761685936877317814740402088930173261737593473827859736400536611333802949586954697552517170483640962148973006882066578712315211477745888938508150568712880190928400732629929951166742755792215181153825030671556912178190536230667466591024825272427464080681623542798917030698615730462751550201473100355645519443981831532850969967448279870844757385460411559093885811049566496640790186146656162186296043581338243548697109002161355183828372492166662920113516827389909598426492057955287692879575131789920591870425352699489134791536486460255001032908346377120367002522326561595030946203975068297915644978045311852553470632257024714867118144793789599806703128311766143182107944727463766703799816468057587875835839042366080084420817396724996456246286715222754822415650485946017309890645264392311926913101161017521712933026290760765361046974988645575087883375488964472928926083040692045649028499545722706216465600049896624188065403985656012980939164951215985706095665005869147424208515950157718504726147252763797970236599212752357770690617635099897942407336629098608209458782390446891747004697367478532118116778906579838552142430737318811100936765591479014304885557022076718339930986140587301342840144530878284302221355373915379540910580321111273849486495500839668102743198915701633183759190572596318967635079087005426577376744929350447882167211539549523255818741186247345400963690694357076201997898693019578961743768664078114823282922599062736678244015167679860883243930372244697050970396761977882141317215189203804520736243853006273944233290580259772426117166383217253450472612063660386819854033242221508737323530561439682847864070048924373157963031244600649523587731205448462393581085614094537309680723962345100135462893223628322295442386578054975142531118401075920057169975522760823730746639141774563025746002028593965984312384148989147180240076820354484880083047379999118575638892801107747414278385070223012940538674812635984918984958933588937965520839829931822747427213210920545501460057681019777399328829125307678530032508616781022098375841319158545548653504105698405588786197755933506003568905255331188323166362560649146130960405622059405515071418354588870020225904169698340720336610163765078514756372227475111132208966613761777032746231229531126306067598702337477670932347213301381264028605206068238613120524205452161227136459240679138905828153263919453893328531084032649289043055274217673611032967668828351508756347419191018364457073106605522356924875218670838468152684499356572466447822279683790264612157293452506273088812343817395707943322895759948332994964432370101831387883840802233671888869634799636172468517574324871823895536154794178399365885980472028103799514904211052766649519968315530805233692953941684534117230519345109155048585283092382425748953246530993971138713962281832264629138475710466102186746017942141612329749317660772558180820882991454963674654425656449359026082253931079310661588556941753018806587166292963561788400090441836907649758515563682595075025913906155831847355591919436821321463576286774026588554277293568429180991818242217696565304024488675827838270320640587700735968806036032908744556547096731888753410973889835795979277745137293306310251619121589397155288981494628735782658392754018994590164380366557330628456635473407826299442174412242466730496600231832364714546670690137668435083862835305685874089334247402683137354017812727989639820741184498102469995182555389078659411197726974579791368671243849711130073298541364541093338445193775665375533024502067845459011313279547541210533642171683066844157680039577652778241851967948345855000270829373578445210036518984237921201617332762512817024250562010572843044700678005768702123671083394620905615937621973976137071949557331230562899585725992728359156783561596592633019233752731609176838798520890417167358061629003341339184270137635653852265539832381288212872526416612259358422320815424287909356120886544436927907054506400809998440008424067793030964569498189143793049415113731067157901209235007337856361231834648768749600864894060210586840341510292046938681949526585046703862662998794039177507421709641316069080961214660921025288782315969277005592400837434692785746150649583146281178774686678094652899715612907720688695424672263090858710911352648583477346435113455803845719457356143678670546997955646629650165679454375246703856026323314059981902783354882514224726642820511111033724562292367006606958391248560733503776843641682960836263749485568325373402735666245857284706609922907859013434636247779294046210257658753652413667381274000837517626577419799910144621392980448710122986383831667711209925769765082265943398891280087513512676808741061047640431867534185338969735205934632822712057140727462065782328094665652185895063808041297078756400396870190897394601291446779263761627651294501780288349146352765226733519633478590364610301656123482820578735103297379460335451288888994275933307867517557539220170001064994243052596805049313089736301923699417882874174293300305766927389161313914419883951811666728487047544738977009013579788469590417725281864909399813419274181385807738356064161053377803029924791182353111130599232757403209656469312846171925292082577993117095921836430964520170178995089539932874604873642965098474616682640859166472335604332648613866656530688262200905721931047595342009913690200832015469513479428554898014864600293175933242113176504019631448383379597184428237187240577749880737703694686643857671334855902592906579587364415916004978723745221848731468131266332255527038301924690697345894773068987742343330727865928653931118645409987265333411524225936064401587714974027341813476152772945504878853504293590426873794194627470118486264216740312242407679507223797295349438404447266278721123313883038935682730801732123718290917455566974906228209547242901975318441985684242099224418657833965262005832746802021109646374973663608053466456913433442450351528102333591451128135157993474994084765175741757793602463882038431300359928177232876272340846511828882290824319961187074433617613319422631774242991533357389629982791311628208905555961869440438175637861492586196233212047839703453020186580905561878417484985565992762839362292026725324034019622380478338069033188268267143134652663269875651627409509961612974093979808505447643373943227525133033627943411130793980619582905590934983397701241533475274630024447350704372692245357997717148884633354899140978685851884531822751205940639108131176877162987104424339057316180127725499173271175824337703582310446154880635728908597898758487142575553985112837438592816500444841549148266352632290977474065993147319278889104003184157609452721408762224387573265861056277920618410921921305700963358657049480892143398944167902368235214864143192244441604252538767388126246929063717368225747499324743432158334315752594538571140668975161589252120444321105187651582054488037085823200401603584453732221342888259729028882179927311704302017066623663626723666690593054546644753181802216803549900916606475936945394071925080565979881952418718667597848921941484377264083703845810736700652884472951528789457575099650945211806406949700729098289236387396626251189956601855130874473772682533321449393353267251595644602167477282888088207219115891692619674850345726216277173191107887296922372386495414121160779760453407477156948297657144091946740281316369474418396263793470135150967476993843228428916087370936082855063657069322998216152175378920629095845855767014638672646944004205943816434820868924639834865361723530366111068429860039908297389185293630283674194518229961888181199631506440846120015885430606085954327145027877308643222049904861734013750195393339092907339072964909879853676550520662791189704921419791629376171574418951905198685116784769793682583654808216745566320757425992836557318955084163692581649662067819096057235792916347405225368121918328401347644803507675415370503047575287355592424407783028392747727357754999125204578247896690244635958385112968322163185753979538379759829828070160456452892575168366191911398804485670534023969121147207628467048163941601214112014794447548452518823428438664831627985295231109726627815677172552387923006709344101697675224690100360504689871969388834896923614361665370811700615365093864745636788490573706633225118140385385367169260013353366862702774964991606558523558219874485138089864288472692156819206838479507795755362164633804281726726076750236224155073539373554178873211401335848879637342884520290643938874741135675639721341479432182907397062494560506329636887811199518245513059353637535899098846308395559785711258739882635658259642709644068759667335833525056141039613702086220451685783418077505297116282716870394409964486982596468415776866308223091380318676685767819615693335458867076273316028174455451584098147321538427060275572995912833773459805900393840476403594462763954133890532478369237445632850746597499097765365637503820272923981358281399867165303966070117310822781980321311398134070713956683021744796404893245663784771522449590950297877752657140718304769879237596810483795447182236689873743340742640000084735615226071320997667622997554027437379667946925869732480435322073139399080885616510787976796600030464284820049388039802015853314191263640052124496226553316241128041846228757992183961088862425629078024031721206519960392649456775680682244632809955654146168396295360277574527766676192473036810690937201517189494734614991318968775172826346562802616433363608028515738955954793211185432698021053974493318019507237707561129703727853572868648057356789978599201842495228099281925949978430729035514193851936591007444946038491429243520867378718409502561680386962230363405317103115871024328976212174232738135705118880562805327285804867205326510610711808638938227860953652855910741366828593838864461864095126949373555673318313634348112002443363820969357392512756979567362492026702441723410053090771153410414425267400235824534517982046959291380207457129864975107603420425009680870257066453579136692370673180300085825772122699821850213092912917778739070212950329454718480769511272329830751492455295009979143172131763606361918333672762135646306921121741424912710912666619789553377152331778365788097650644723395166018663341424567829913291030464896436268183897726024281740113679366521270996442761792603321250426503990338719229014011288010854175997246258687408948882423055620231963468835220670818113709423640957035031918698156822315446166893323413784902288640862850983527858812761857755377356317817651983048812697289347548099221259342889945044415205647675278952511981734412729152781236748189310135783784089453208680405181663976322475984555039574454314321353488495882971588291937578708733973177573367630306912394922126128263671631870405035666489961124296856212642231652669525043696553233429593233835883025750346556148684591644669711593330923654990967432981280403737413854882402852041098686435973386144218816234295667523475662608166916013685371446224901651848149026541459039392055053348262140849543950198268122234098745791939808598600284673381284328833868685336730348081121249933422241355995897915686083293871726113755901403234197014289685338318790346183657122641131535553694669650254421370123162253573937689972179012450199544741080577550425599135688494753263944370031616730105653885085903396478297666883832367396250182140417033974851494257342548305425711744871976512233855399790550128846434782431750100326449473430736903714373681746125346709511774761175207649256540965322012581514334315419602456833623193850803178818425583400387966750911235528878203974447752619187098296181170086373822056106665728831464551585375060220185590998228392954587455118239667607902419993750627020557232658625164455221445527401659208365785118372892395431120957968385228393970914632623537531746902786699718911819672002203344259779062925380479667375491564044863075390003462020456016517126370731780351001412751085325526956650750080995036685152905427936030710381311773976609422060437345528521443197984901715156371046876937405030915366431019731832952847735636459957021478303941170598244141583056165292279331636194355605884130952806252120327634565349583354795950292631737160899804799100925890158657414654515029755459900187036353606806615485308199186587026147517953889397175336452125795578489108282339816737068453090691201484126624825379879468320070421194709911918389293963413913193016108867957706456247505406713910760510790512866781528121625855130919277969055873468305542479415282938127789242972208401076808526827959530133420818029502309807484346721630527622330400711051620130816816137623361685009258666141656669038803498534671843509851061159686404367415527309575037959131444344682639897709538967537828353074972284628263542411586306370670349724337907401318877333325541507358157517255193447017666692474774063417442994843980795884002029354359932451444771573589152560426263179951053031450512291053222713817928781753151631806173080326252864290757612144395815410397232703988469375619490130310537369517763536215225350446420630994360896790093982511523360111360414404505978007101642992721832664041684419755263451851004665091068490840319263700767971419463855371010147790188592739933657449194980033886192105203475779167614848377608586095885787297816601148321226293120473799098294266816044429676803691296372412208238207848440338996407143349195796556682121514126740960201792681481640089665353376265988663227361698408610010502773008539233839461146504079216973441214043214952197656052931840811651349084000272118600512615694496238562548094311474890815154764384472923165521821579812387351748585553782172692523188728862815128572041454563407901478406646949061453457114270294071833728492533336415485757149260053732190110377515020994354802796661304594987272718938375324582429376602507132765748441517776366836287017689791090131085574933090519263489393688453023812788678999189433069872395218919506637217326531011597648525540436762004216206462827742027431658650260673118343772610171275584723124810099953204457723043803147897003992061981824612691178950049278129856718956044511864781651567686309418787769424550349087698674478905309634383136665656949861228470708613735042495219080945117670466251604381323554942574501676836972912307948852014162585571467682956339484629442733911061793721898908007810472251298360796718165473665253374449390785036914133298155964500629961028606667257855583686039566863319773052542898900659729856052108904947477474612268838961476328117713175206464014448279920152043237832054887942200888054511588145670003223341686839517929978418977842821212045184137005279938890300599225333904659899811919386142647119836388503244433321045146958992688846086191524388218475890626125924400293158992474347225074849638524614739725233747167086847782665248465774441089474802231503130319789012145046929775367969758429639744536782458729926971728869840532378469144959365500176790787264915341479520344752703369200407676121698861388687698934516084163273165543430208642356062645951569315107854454745618692688867149486406796760003076097559769481794357276489042051382154051826529416547054528175532497610344491078107992843197365433200286032838223761289787755443350649644083939728526941186378161597534667518248169720361900121061129623764055664756618712863453806449924184522998823612673440034364807140702496849679371110746962150713279889585619083809103444108993624386985624378474895416328108234201932292243835193858868377424927861188502420549099477567573578432289321660524298880792012328926103854247417623642631141562613004533466362194096733179269423878778872547104929006363372948679275132310040447066434987328882443835357610631350256387619507643905387128193685084973880251545258562415363140093017581741946158311141380993343809701606997615889107400754412831434246429255803041720495725871443662635549998621994244292767624123823000310224446940722417717914748806314309191055696539303515339601864920987018058707098276576237118137910048357856271787096288869944211131198372155059410461188164482549354810580710949189450718506467501081284939201847297111405206237349831854083067602126886098135609026271299828891342994871849479050689877076954034552227570150271536711827464092300609183537023131607741474046460890026495976483121118412519107402058140591622462954243135209093998784698285056745235619294272139715815006459799427285722064856329735043827844212914246056395643608497740270706623507406101829750161926961802016826857133869672726907010545927183857946611209342583406051049870755665715521704724071227928609390356317859928528560778944347437931309850356152925576299592565818836014946293234523081669142233698457962211587620124386958742274225008670096513787326798191185741658537568206515676015084169517977927629754108327045307342111773873324163320922676792085746889478386530007896797886069675256454805120741375134235900893352201430676817563990499081173393798539926688530998300742897684371000902781637233562886411889926763754650472752054492740443718373829954182580691613119695983493568505082822079884044931229613631148907723760329759268691951171034684556221142112378714069858743212856851399867938196589940197901307744523282689109548495081459937417482748350701458068775216754471264482221009293634016153277516811285815742365459877884012217640740460298218857753447175817379504751263328521663820624468029604139418712345206288728273502946429413808416342999018929955606854864599552154664359523463903931360673646636450090399376209396370320865140956133580882724799813412015288359590489844064394507995075142514136137053820944556654542323318818479622144738384824678484057754018756986743762601284276771323673021160962629142184104685119693665869916261703728645885577814842289855236433416121371334110422663047888151070457275615396192491743669681019637738935796765452957759952746091162628573936424969225196971657190154151345734374347523920151195661492880888165521176776877674498588231624370020330949031933574611147738610921043225624654036475721467214927432224397337652294576958606406804425205504408157265462665464936006414665190665967594911672720196754925410043267407562839475256758480061663484050820906151671117067160151577666396485027848466536703893260332839834525586026351418307358653184482384151576284447433764992856122918445122912919342585680879381209536866663015823689588867833532883785239355138922703871657206082364413738417931457548092759831523205644851694003490866226111355003522762726445065430710807611700141719652167594038696044601924557717311193691750180739663812789871036926979293862324624543150185974143451073072545580721735939341073795812061970351570932520490729718820769084329952683078662669228595419488690266409078191720775273946521368881441815902346112061653149814545202933193235803144325688936941321153163369181774776635101826056213877188144611213526862236834458503052951629528774516526391319900261525063765254560774968228013931622525245163283750829979434990829924040348442564512241385049150624859697249576786327384842885447916576122633424296481275064947971104834159768880268255226204560088110590719027031341865618371179542735671419115950574764990076862849782788805659661337247776383246487564479951180008012440068523625286682229401541477250506908096963038098487601044659049343787646821752007400190001156110774922721176716256862861627447039618488421966742755998260409800853421975136536407920458817410208906162053834488718095202562777301530535848032941579146442713313913616464634654732070897443464708926740065396431481178692820744448109249602827236759094089888111599514170563569960487910952505096483042199718843207989958564151243338368177639904828919400900041568816700834023461520740344459164447647257297983767189120741010302259877188321006276514482066567711736933154255230385169548250345411542314357554113681070808193747532722620277607744643279858075291148138983687920463842176103013047765904651534916103567925444550064732303028574528961240204636807679311967355123416232138384637632672334365478603895644613905816720751472110377268634299147288934216378766247039090424989319246674703212648320883901004265810373428097733995261645889105607938080211353331176897682056447149433407958492479488879315026335966099224552417201428619523262665805850160597993950951698531154682597268484124019113575624759692079983075341718808630911089561254187423716260412962420581594968669634199269983356594596216731987000312831258310452257038864508878248744571719936906115972746898724589173499093846274820663981381698717815056641379211267138024402130434340899697069707297354029582088636702182389508322714391861320727512344956400297689230252194477632214190394906151589628927149875115507690668431225841269167371361475200919482386575272186185181720300206779708412380597085482945889964964526864022861180541575321906379075993172704791555518298008681833321640835039326769868365864297682512382459082922770245921420677482688003582742570305580754209341112194262314734891522144448216494787479511592630411796737684321702315610301460206874076939458358249038403670506748379949163439347580320686835331664771135069107398317879930815927246388126912283413829064199825462571347344098445124361328359927187974669078896108886467895514610954881523517511934869786966676279944519580705131493605981397800257089749227724450924821790856211014565091778983519585566280798650915722026373751539526008101861942330712985456642704711670565193070368756870909342715278670218919190432964809052641184549870583369555262256475501424984938242065983808166456207608664655416626785828771735746614541887514309705940795031780078290421931965426283895690450422529065236832944987541654293139165796512659206121442483767837523054536907456686632916685806164771066501401215645184755046382452891386284411516878428588342430208390034663181608665806327320326108590475805811919296541591232889119766769278426780025259949189531767818157419475982225901077602007036189546481864920416215852580450745846483690291461121794759170826626121361429721773540230481265622575940214026385471017994404135428695751693070742365878190714004593055999882976768024142492469787417012195030321487157846933183588928325162500416118201614686448923805059379344800105446178754621360827429974332685705912922877840295557982152130998958771634362752688432294195542623217671587428985865884051242400718527430027088252893647452210630774411076538843838993942872016699904478869853857978888797141232410840342950524936930224615639639499875836455145408906311329001105251726115221990769803576502804768759339698163201230543905959086178363988963787099190299978547351218514584637768972025017376579434436671082550210708204026036957984984934388332879409923176378505335790921295083917377750473224511363682931711219906509697734383657221025629064899467730458857593820993170059172736897492685839023939936798924755699645291224856255565743236489319112422767310651400424814062694726109020062801664879196905884558860733482239655517048194469628531032462505781161177923796094086272194980991149905829742024542710074989045154855342414266453361675654358738728015428629348937320275861791041834912167791455386903542294518417559282700258470062886099945592720476264447652301480053042938091214190187580300107799959529402188123385587517318471313172921232838371732789792113969673575406775046544111921173830023308395944226498160238077235533940643060626856818089867552148025186704044277929627163080841053221360632851949686745297935954136246124035324934272365390036605509705960411531810843719630205128599933163714503321283947478192095045513410455987436018305589254139939933105276875487600171941182517446179502411548942676543305943202685691581448624552609382037807392214019237911088369196975994495193328070211799757966358989552122401640614761800036803016717282275063279519341898333962557247674679547262519791032376731038178725093613445819708172784584603997337095187586994537334778187737556272174839888698596790233709034934249830979054059387694390071603327404744279662036604357359181392363391676997042693539662418860742670474152515589993937836686281309484361578532094149131526611252575209996491126787136904594679793998786370999951361309958737864402572158748662903708074018649040656736820291670617006731531362776549950296205978592598193157154155528458429923270757766335016057859607184591052799264102735324063160938503662620808240015041902401128196621413664838724527739485055212978520237774439396166020420811166502589207315008136096682733771685749168062127917923360045467869300486987721708461700695611644509057594971520248190417187405170546764216464079980939021838596494980317367352441075457509160410634494622691923948560697703734529704191923039417132282355900906020278229086441054772112740646488221141339160339381855239151797846006636331531531677389535944165838280601871300646360693825747468330973641478198248031483139505484090434833266205492753665695640369850786783237029115579555271537476050529267482635877465950672288439305499734709830756413692602198394030650943982209041856924586989218010576491565137198801015627618276066564928773667571062463866259895250591572626965313958464957287018191593146359022918384708469163125882087696616617930694114454745773854169426647258337560702300753036482983978475911409097470777959055306480110659552072914587030311980358632988840166034182262589121691888010142921334002570283311426583377389698567641039138089346098426583706588279940043110823149172506882148704726408146043527216231425697105855149984643307278560367325345027193606783881521611240403796893737252386997119966556895090854705206996456206789545266788554678836822118222263862432299455210358746791738191949724462234208895940330887366266074891312239896383826430879168388331080372550641682281097045128614833346838642289606633144072614809740839524917034318778148643620937622985342823250676100426942606496834476388975411090000138401401841940888460833951448221049234013885269311021423871256530988258260623821321842866290600745727869241076756624536830418854093364121704637433120073194504086970218910242108661669611531918332481353283766991006238248522277848639929844185120115318952618761335272879470890424495822823669730315173669192840683183884318802425292066108754212545110135539406615304243299601928354473785158331343894061962128002935904677663632058539762181366317645361512634539078573339672999734066705297404405778226143474664876948572571467470299331157196104007259625400528595784767097836560181256876985655746435197189628085339150157613227767777777340587953447922692717408441334954224833293699823247783712511811328802016304334753714456528567165270768969281902047473147424136331385441615778207278024748360332052477169479969838079851343619317704804338511955647208986341291848229271283105918931172088494727542864370089339004316016169970886609508597027446078238297233094562843967176192062492201037940151808189033884412714001453732955281831522499867274584489123982305976535095059030371985350519168923251603674021452069814946538546104377127150765520826504205908849986567268099376936885478997517018080984408955902992628628465559063950993999095694104945214231339482220249824348125770210763105110802210250921610637566218349816590897277566332646449485426813274104751152151341440627965263473334096982964958863951514008226158026211560473513858013992634903408856880272610793467278875453476003562408863809039709824880895527227680425840196321149520425251559863656035144847438930430497834849461666315130828970582996753105474766236387804498444208379861848141065312203221432219513155177044250787036716757844946285097692954965002577460637756957230625585493386244769451802960978224702244383317900984361351379460536343371564687418900858427626754344508964833376373713382333633652993331756624865008932115716086809416863215554708983741867032890827250596963178800251162991936276100793401373906474360196030452327747684737697427296089736873738846798603809618646987479894354654386042859869991026299572682388748625287526320947377335356507207052298824315484492083123274187005445389951545419183191201263128842181874545488828243147324550638007024593123650960285682726844801059790387191035149286420200096582512661129727189180853543546218054832789981967998939558262878519389542974561098808866485989797660793401005897468160902752074010518919918349455304090324368218495246419630446289291388005297358701686342309262833507854542328695088448701601717143325090049591324557882523473028503599286488017366507844753180231714349681617028097271267820128856176177890416740849650018979986774291517798464066849908469011924139670621276189286710908747724623396988590249775408170535811346591862109542998867208355228693863606056449861053317933508659128519319550170774128635451062146453206218891417651015412028246389077771174783909676131645261293625723008541006486023685771135047771530857405636335568872478978037379892841262886589435016089462116523607824761159949179695717864223661023236582701909484014258265830148493304948803965852216717261353336292366052335912527179105718363662594179978645522052714541394898701256993545405640701445249209037193398331762029810803375436689848275842609892409651197477829040723390527270720868568077842541205557989613969464819557253353367359640589708261411688463926924855266088053803009291988182205486657297429330933307943445350777464889364819337966129815262800295753480260436774376984844377341465522371978642869759889562660114660706762738094208955589688234361943237772160936381498870966627384967010350214025023760728317150040111349515784131969893375398098063257040336139133641723798208428040493786669136421583488459088717005332811054160093743555599236373493715610933587731454798017898214066816009280897479624016730734841857471002993318147170137087517337296737944030128617693324837117874330424282150000511055841162905802025545653678220224086268188425957670686616526752624589451184500736941979064618606234517056012700412375220046049231870638788722436246380197439372785510287442052334545007691459878373882806251604171518736399142552090759218522891897385653438403645623358812041605833409600150322047984616059589168581100904372198009049229592873495904149439818019832948051107338762506216788729453397688100502114414161818841896204593696392086522907438814752418362344285462704868368382781087198884166149012906774012959609765014664730023177856600005407432991532364209195125610330644516475491137213137892345893492221131999944521661154743400765846266589210623236262277763300318229838143932149187443546618535858419879494558858722664710089415826082463220237473914611067300451903537693474291755837425276785565814753868358112524948184798899456532231456508567763975620620456640707058547576877034246613216148412493534322972886128634964910604291470349526278113808719280380949927742205688664976146872178609250318316879858278400569747435833562610460550232436179358943283877933726336907666459015392693069386255796597423810240773391922532744591522894996880759630715710833261461457229224845514006933062471778953061353929403224755263110717589286093402161994535003882607659019164641234148468765470889095127527207251375773879983305756629106679596442989003707985783453954715909743469081949047763747628418863577579131051865827256124417682847554357926204432083515476772819291495941857685241198735491658647640228375835134406252778267106649844166519096840656146440161805218280291645644380360891083840269435907741189674686840854635772763746031621939952234653060277164787669379156139585976848110710609119128346436795415806520840125120941714147912005515486370016468978639240695288712128420431744962326660122448402620999838335898030501303056222824032572189826152046722433497184356885097776840504431988608530011517084621443708311634442080706317150304839815250855764222226919345044138431336687566506416562463947276933042660391215466254451375537388977915932312083862952687565987972983803354395652285636239356336984174034920330996558129961309004891868125814217207508580597463069277692576610962887742392632958167895924989029743248057986646718607427181634986480306462480939664206416736754394814014517226850273119184848166050116922330038139721906484300202340333853655475901336513255337430610599296841562828890765648105418895578788141674586151974288103159405075915113005912358932111707473650467257214997295024153147599389356558238068522083769704877560481893620661950982184956583461528392847265041515555198377863821856939014110907527016134388551404666948070995825928393734161456412580756545966444241248695611394638027802287100286131204710759120485782764568320518373643161378192536883632958602070491969477854787224018380750806929612748740771216907565429469166940548187423749355018412548394240615474610042953135335906678429741146401433402746879224855054629810773749444190651794537548606444827188576526472300929387726485517684646242474942896809712933225682661499648445820420180554062374881142455746526079399574649178799865619483699293033533457537839839219904388140452995584948798337130150805086004416791700913763461593376945730356586441525995947993304116727828387133599446738832671418994408131501662796681399057101256616931134233196853647010364728274577263561388941319943784604701623051942082814324080789158174700207547155492193127606643454352168108926153704192979680928063896785693276216512327489725985941471922764160771609906384873514509369377385110098118158877104011493834717743337271738128813420452085972590733052380762558260753121175716427415842455989867580482904742995003777732935848054414382983624275121044717595891199000848905179369411517174403053778968762876921394583134161369759023104749204589115558255429960774911722257234504668661595020936476630395548550587888108652143642865111827196702097965855962709599520768683265712802092363023727370706808617690516670490167992791745291622033835227339739056219796418267399518681345997572124247574480626242815477860028421049014154772236397403815094158597260496876788430683755076481235860156320115561386258310399100706905575715442154276648471641537838094627454439758291385424732379697149171072688358563450095204298429020801488395275340516523969851634360408914068760031908053087236746387683376841970302231544221220681121352508059570644289060074460483562881659382652829621085191823049170337064740833910882269100202115793107225056827906147938338636261681949507028651283182387432220629842315750007206461659378849825991528916786005021323436616108109985035822562843383285957310417686163093100072879643245263933519558778331454544490991145081921531668003974419552235128447938353820685693765410113938862967750707025053360050349084698902045181185243348576911691460699407004440450686237926891873255044385288867395634043395765489142638090547169504780752622324734022951765113488623232103611969024328702919268841533022226418371392495058595497242490448721330811803452494813215297769780605764236940713544850686892842412115136242798504505497165229101568985658314332134650627670535415122760252308562295838034452160002313093848604689982869689759078259899602139278062862711040178037839078523343599304549044419905184057710184336042657924103973340264765655307730514408952989533512832449314934378708715516609243362058619112717359411854321435104359655224158331576952306037404613972414766492147777727431880191086333945928304765754206242198165716771887281431535075790845083704023038082593585364668715966699181511947710915781961892611359601690291876701779852206462466362011884858721041840977623757292452412546909061470271082514956321462201397771669390143377412349408255353736533200061279311641376975939702330742383321762160216671240027794951871485286526761841421584132442415674811301418439276065565387629509021521876470534631536351346445301623748486124639094891353425466103417503543031027665556431073638285918215185387667514642287033397141035254256408483437415640474280202433486885624617247372811771623631713709739856014312721171050811038198547648183136439269949646820428933193963123873216256548335206178011198115738583088508716918433652052222329575287136348915318309760876617302668279918320137570667947918202657035354958316059637443617518183415543187891192002436315518832437750755638552540268779834304859741644704580630398694378566899524278193831264767921936662094979682985693898062442936978174081390834740955945312855643361038327904244951207377248316375506471623081406475355289289487446189722539323118240559965993689245937519921130092489346727081329239047503743410586138009297399091526370763670161837683301685524792927450396809410346758080726248236367878105788573808287413804027138163256664199138741424636751806123240927140411102200529990908436696846692465681761624505551665491481236025637217435340001465675265275711043469277148744701000862365635786632839453639465321729978712217489953369915040270991045331358461356451600215135465958399216515575825231151420190624750158657773941856776744888107659064516697119879887615497927050540832008520190965738193324291273834688776488181823867392628232104218208954486094034880730931218200353594105082415736984531304968677330263552962020347065009213355523538057978325587060816782645930785953523292099509114301899018967986273254494632939240536878334946826093676878158887038860357896477911659775607553856403019006307214301131202316216654085477069282938182537342247653394164198075765211723892306376078614191922163922199251607518528731653303388685140585381664843249003025775608355581476514886519393328584540466090102326978476277435038589499911270972349439664181674396010017758467674528289970093702277356277715072531201509398406905403038774162305651985824925928146086223593831016610914060476448731955165121301961228066066848110244797072403554036207503073082960645184985952499575737098619363511544781856139964165693310360423196490093490630457988235420756482835120048411781199715161371387957405767188763316356240140600695813957941598483694984901049316305546062469879571029764285389517977849025924130922114920347049946231495200509515943410070595193528719031172622561887460045080374678312557839674915782885142353222870194691868152030570664682135705622936218312510286309802258098768794804842941074884566165763791769653997923131577294099535461311643208011186905773157912180119782213734181690299445330604910987311925158951697419490155422781168658065860484692164882114799608138809812666641305113639328281664949645252798166177591317795974448496484577848145457901557808577151009309769848436265374953282673495705887345825324937628218251295876742041557729446101115337672421437054585610652946430316374992774995342483280421573264654744721615641401313321426070892488143512492585740489304127487505436264343611908882540403384514537095248786583643818914024404790258843093224374718091357574116694461914061450972694917064693352518303227261833031049232464057651867032844415267332334309097444047190644483904169420757792672096412512602954082788779858098847995381614789730691845629833218921752753668489202773317248692588653760165603833397776146925871209099853108437420539286869463625157513469310108739510792490967934388059530458897910731433365706007972722355858059337334428542569140770258435356841117507430324435048813147826850184577272517601926911033459286977726660882304753002406419747901488759443758905407974562761219215708313517008926614174893461276526170325060239364452091321661788211584020275732700574786203554898958055169177254378548252165654070484213788506297209790384550676234270458370084611891696096035226091465385969441074796360321692987850183117824435633785295818130058785036414484628527135638765533369359324572040596251544265596489846509564212747740209792123460377492719742808059406183178157893352763417642582072393403773918087659901381185147410925848857644109017973690244191792956437200997299903033436619755371322482427682841001213490190219564220981197019983505270138952476507224188255283463583750822620898862629255087287904373539277493999822537275762152373101020300452229751442912347864463978565750924243290612150420109666402833033038134475220997632746337724713070009829545891878631812839091246178372410510103778688872146521337893116298669297283338002650642313149557391856980095183073680829705017654691351044763906939820566542684678066676664708042403562294174775094708938721777313689469965555370568160641819902111324981837619898295219823827349919659893543099824634931826677228495176800444355173847304097186961105232217345273616348469162893156990788652875083841472377072853605357637681470235823116643811366133899525833027011818000836683048145349315970541120035157752426108812082822350288605530769801262114950270549734831960106047935102309695743074670913206161718992093866943105022039547938726580935867941140296784534264403945012914904261526513369908220250543737312239578291338305986032154524420095469104373724190967753113399627518140437575351018865113352419776823416170358421766657921300025861768528975568646196377116411753968035949267999602130585902996627762887978318725718467423250708018684016810510410338278997746965014459380978483093511195410188799880610697811557231547868869557538865179576212138623391713362679993746321423979128934707372443869294144046603613417806267914496309803380266028753210712719047697942800061250417840576885164092633003210612506159708256489532884172563489767710690009670705473317845138034350101945826177317222850698943552835570683872413737352039757655984948326113251729599822580657718613544641466869530817821156160827670525825144009291047768097000257763649207733282837273670106166158662775553267664921084681313223448755040506195108815712059217410953180660325596982363076034805473555369828366763622924451453687788963877030642408252827418953628414609946611411444012254101174467579805875089261981028859007962184241680429901844269345369448331263945440502726062795076242178671591033571346156980169253776790742956096728769984581147857099008583577180022931263850700319636116425168392202090290513867620759981022047720492422880970513756461349869376704287632063796229300601523165448835921395234497597479499145570896651831007848358214980718816523488591021164160491501148791515268005517747818190758780001585350339269493390792832995296482708936960216456405039892694372839193237186187003832181548956024023167220528838128700901212426531110664018168465175767321050759090219516431318685043930263569511581287303565521778200702612886804077262144604823024166729442072635236402413930289015683431084777357491384322436023145863528585163659210569410140143196207292346101949781871692620210667414629959898329847236127619848898836226889216666646820388790177582517277752677156050263936167113845642244027416818939804201315386907055243103824953202466296535804242495864342766126913346222180561560809125567990923216395656795193311788684927681607773964934792286784461035824965029751779359320654171932258487893054502464083481883124766823756840522311928466203631820008911357584184852622161646437766068094001651660047874654148905487184091715021016457539224413850153154961106222640682358898739574817276242472610901641845472758301798953877053591146930792330277483462667345886424425551414053805940249157730746333458987287966795586198843611766266903237112773996689326487414619073740968815652658898898992314119309507898748951997253818451276151527457848245515005496477640385345813486212183337510369306004033009333255460131313071674005836696178696036321196355299894361945105865154201529830155983768670336956555920051588675080131328971627191533638553339417292445762472743474994654946634716338360452842446643673057573690976800729469842538434284087081101641941722187160825066959343437461629114710244479340863386700906934064663723538054444149220685808925668599637927726927351135359850199535414144310903656322231584995848110429995751833196440758170989053305882803249121641854340573444775381024502335596280483144919341842200973822677890720623126414429167888588962930434974150063758026250275434871082330037709306496050017035751438788392085380255239314002235836823579736091186387494181828552285725199439047063673086042757243604513093972699790716098653449441146330182683855702339085559555831863497050611865475056311476181986948274234881161657698373144205201430241695950224015508225756755008645630088745006751881980768760073163338192062977383906480375355473203161725256921817924345679128835868544654537959402741499681154705241711147642079495095281032083523513148504081862627978326763458703149068294199534041240725939537414859251791869299506287768376026768183143160791149174548140485368571107958002179408355730968022178187168383095233454528264934547703013665435495134068542397454432526705634840074545972066978441371058423708262868903067694089105257373870884111566978031144932528735915394606494645112731130329756779387546375796140706933967136586785138670827553982707613021284797587275254790611481845398516236192510012593132690511293242573707927770526514399714205707079550547317382964280851473657650171075100927556638806481990431865367404850095002727542501024925387959581820646681405179301334958852135874389383291546396635286922549044349401357429497310181869231654353069997684135042625457428818329705458388900821424212583704997605103927677868497683466135634552784995203471927425668122260943546235018941056021461812279502359615921544486748202409227594899678954344958021007892022655932660181417348053861857810371397660048474738552400702629957980082493608316650406642299963000584110879696634898595792040466368499421206894347145886588001884513633986921615595856277947845083851842268322187219438150058198975039243495980416087612483358458327291987927841447061016808422425351737515277928308255530369728982646956852835667125233722968596628461633118294265664870966795589474177747766543713809049633714069016264493713208513966919789944619555595118026918080545735312869164404303768190854058155306317970242017134531651721439256623025657358121667600299456330422637620607810868811066868414484039100247649685981416403615821125100598697833858300909359889197381822587942049562281295109441994784705198446081778900482107699407757350564371296795749340309142345078268440149967006168993440684908754849000000010067456580406527983990100430615429727897827210959220784407555505376739471774915556360780322276858060827421709256702032638019145615265953795857648802247473083651811288140245193507940221681051566349206974806991547439249232273414518587018362072767068979125149079837492959992067481761280967124442601145507493419391695989314294066880953092108101198272947383604396926633854060488055315990303044463075937190622461616488381399457577135470932666271059536705519801367357278556009406102794966725393084173880913838585786171960324675488656991499341684784773575995335991904169415146575633239079276740621481811862383975574438571516458419612441601590533791727109486448155246600256523304051315386913352832827498673802671320504518021000555955065580617960369371089258689448108250134602498346002496590699535643823302104671800584872402861832651436339283949123067632139622613401414486539680744840602918735276047970688867345334367007823628742854641031510588006619965982906761808744298131870750964798853065851478135359201624900480184465322131508970997292353913659515861614851656638878488110964817771344500509172248774263475253714599506391117191246253685944525257142349764235670951180175081736519370677866772303393778219984058836042143294150051376641525358713054636696058948847295527621913288184424159471180558966015571631190064370741320963265759174835609142034423539218518045364341494870134860025560860370182593599324116529664008075350168386365872202296461575355866886828738013715339484792632203184225215743551432401273674792077238543913922956863671944307151947095118885892556693758691596189706803825441435906773196621803832355020484780058999879991463162506029769806200497871403769388314002588995652919254112906873596790591547305382524464695199437115544174446650704911411382189467289704294996379625089272306932685541844635693309934228818000798761547346067472118375165066454143071774026815321966145146687699109187965760196493211044813746297572339810292243263221801513315061505957850698704328612615701360166413202872442054282970443332646586049575117645506888626920584575125837189778439019128247482801628094923219873039672467114669485354598695240417088896144162023497170506625525477186511552458032806832442530487470761645279702007421037259431828551683051358843376809649011981216998299016644555662497745786495784867976741006054386943077745876508225173307900539162779990712011632899528463988574849103262455406015097429728533148667272627785095830548024789189832985109806052780164653185296684089655835614697140427049631987641215382616659959334976203757239241144528212432540781156781753905094398486372157139593948494507544798084784907266544254919580429877845060344824634835636032557691852236345555171093603232404024763837098610238014414209762026722185554744133848997531891669629843917383144519467751446780211406966441459555445983697791403002012688068673788189294081919375402068164180382977395438823748090528721552951967842326844686469606717815919644095574474154814889626314730294270522427591841695735534322140764393707700099889150869376127518568265877740877909905829303455876563067483241797353743072179700859302421150270775781053347339702392164032934292670844045189230050635281011410208542970947715112656418927927831096746318079913775808632165957506924957503251632419782690012516901883850926726516127477687737450897655121966315499380476179717731223210399025658899582361995189181338891642496357647947142924228533036509775931239311248081411484549252107983555760498261431342595314745121098658629765566145724722568250872434710390185713975692056579116161021036286892738310258777692857338831300364600098717668712886291713082080465584362231564917036564666236992677536173991424063055966605282105140766587079427361489289351035281684207785964292241895587392440428914656196594371963717648144354487086238366825270090100339297979134570364094174287798779836914003065114186617980870263181190799486929071912295057297517419832468703423341726802568110702424301995336735099579700361595362639846926738955115016291825895145326483485820962909111421998989316561417017524116196682931049412087104902524117696729931271724759571679306087367307715111813587957276058539748529824578696086973732731509575151827718566706944588074524365536990998372759651223725886729692733709630141077488295640156074760629474473811276789003470627086774067405725313574498306281103230220338074705967139826277065459501955614974160030694644513878598928136211102261854276932028505890831031411463837744253639989268076912270388180971685691564190712444379896664849215980350570959205197995422436660261459393451434986353781999052957574458095544909962977771579445552475883565512829388987077659815358276506721020542281698789301071992699634267396358662605990231076720044185709213250859385737515464946905331592359894548198956335896786451858754997370344183951167557992814950004555191287509700305801872539498421200277785146183634381648427402580523460346779032931029275170184589584465773788221963880876317951414894293374059380848338191429666830912555646658232728335163118561848780732263836332140766898601736078459637893283997455124326779352988983489197846860725558740793323730941402984275490200761708732750545039429196704983031120576037006500466788606065175266104181456816377983156985373286841612292158675792930076992133987242119754544574224559280589365004175738371157542828796405854332718107272617549140993187103891377407348182950523595241866826504434985567799147656106324836799290302503427475126573102808443810824264784179765988596612303069703773396097318232603378480600354712729482275145650485279234461422401522025720480494869530588474500683439064717182151259155304032969704594792190312572368806297086246566732083525111384323452732833144312877602766944370108340279303579212867884399798772610132183816641548124309727857789456985906044350661614626229522062579177450026541698283910913167048778934152003455711354570032798622989972933411653094844167427870852051450371552489333232286954072710379801935264970120703550368539741230262587861940672381846829944492480144349340376994008213112043590296073994708022524070098154761577175032350545187633026598413925946992984539413703655191375988690458802045931859471576278959211463631564757649812008766632989150662682924385516229733328168354485700590547207738734311968812174117715683858360883893823330238916125563171014214307582306979910951900203312364527803474416798093938251593452082831962057657345051448789139461605562111843052808400163473940883234681025057442928266356293394029568958779963769595316462024585645706216619829445726757116309038072328969430898973497957183240887764534537936324526843872015445523230940812886817636055191462386360673098371975163188171925760278916763759838468216461185490316613814065790212580766678949082646003806236242577047926052487878034151984475051229273033300252602943958959686051156150391849881394746219940578067654397150062984522469045186295554778461615358497178349510708379868852683100448770992661434581271363592897326254634178203126594065709831803180768641944009951064940960894820389254712786649163523139166110002378746939208182259093875899485271156820138648416061423866838941674814943614020986121703241719823931936002922209119745954780591386312121946084290897068679585690200385369987961175807184535620241953329657116070600328999239072475347914913474188242039182396932408641963841392354528373741857834456675264395292967115685331533370643684313252245683114592523138213291513973620567822702234579000877417622796342762511922268166366442720422089770255981935656924968066725857455724320993074062453035163916363077343762302704257746692329079581704419766351462371006893698192964825627033496732822293775510803096035861041311413465412035319343424856492448863688905560194880973047557273197764797927199768355668590785329795563153060342618864042062726227558917565921910278051498445808567983061970040384092498707571857452419333894041215933448915504344143689185509002197581878669947832857938456756642875301948836489657210086899587618850795723981459120845055560802822019539385633789326334552200750293475818481002437829064544537277150754315732236596283042939583475047959917182890971778323165141236111245741559663242513758952366787457017245479969320507610899847207363889186254073643770582627190672043495758530683816721870515298814586764493262208746245654716478722082301720692141517302959340527460159038754898611150543644984509335052431570287875524782195699627973860148153052504183796205994156510958337648230363825405491461150661981328605538038525439682848143245731867620753490722348286710362127928777156750825238210711650812741368992504994221204491703539690949419398234790465140074743822480419530190802024682382564842752128364198450062442857752369812857047335472867541661205577821021714329869362008853723496667193108170023307033886312475460980687964391349924499002220564410646841599215274289951954117283965259757505832149956327880550332681969558729067049840490778796430419997230313665930559148309925525643106831372722767527876093313855996364433789626114882985374183030184904639223637456710026724698645811814697760773265714313208498437628944582954034387371002188708806629875771841255031881793999623018317589548798849172678675597418835671668669620865796891491556281405812561971335481643890155440750764163012464285664679084518824872296525595502799684554181081818920132426002310238258863776660404259581621530152813418099192810076120301910675921254840109728490324244611098243233062459019734859731803444291012539329357427161410506946476311987668837491284186323622994784353777902826333540341611579214097783936438410515205942254574500015888845914467052806637931926337008805465864958412899289930791267887172482868630404043991417700985105998765706176695622364086969758758927828592751131724233786228189042442091484760309105809856206675907269779959928639320403298478860944378081450537981929748396201236316212828342379365682776557111020263162910356661203798855319609324159625053228888175668153271666243149036546017993893419066821550296585950647901671835274639018641730655211671582259760934893857610192301560813497030108396372082394080980280961428086479167122986985568067420267299729031309622791829051477116153937607086283883225270112666729897474650133062366335506949508034985841118772649209315795596570133856351726708292659477115584770719401466593453102659362148316028268847766975879230272646985285513318382787901534013869958073905003941072642640579551163873104432726778606726795329974474926203016372516176560843514670262694963955378521102761129142672168649642442818782546866850996720067199905388591330662305323327390034774250479327497336299087893862275009196587448965739820641333642577044507565021725762688096522412278828411305532023994721031260421560010918035056385663822466498514672602914488398827883320257192968344867851338717851038321464109831644769837025839834201958233001159955402490257969726452613340796857468514847704123962072491750548115438600379895001424072210348962700219639564838107518354611758562137229710659100507085128297261824501341981298509464024281864478671253477456278225773604121358144965311429872460070409914970821470622057746221870142812559034014899878737918378581953957005909224380506558072264976540680412357203842888587132611554346240270645799698811015175455925395460401017429900963578924276158427721055683443849541955185726260642067274701839474869814523404141421653880684120276135891557496170572371846507906769579701387634531733206201110270163805077446124450699128062309527016056715438629115192474257408353265983208490124096676940795790547060850366310253964820214851281471218658759828540901256397487732039655782075257165037140275092773124011805877190324797407829248403453427254933536728463281603717790479790208007587665291791688757752939895409397209747925897097413164984516046985154062562138812564106135811329335812510220812986735219494076083369041793115632187946424622668491121066521423514955116183486969100729530180359294883200974409160485852518124221488304603881088184435909726248621332801946100066565201667804180214927749930661658082524986391952564891339794385205692644343728282161183453760477745155255340318446796324101867669053024445824059330106239641748823936532630256743031650048027588730784039399560438158750433350541902707509570859485193207814379171582079156683484150700097139832584691382462625731001834801589459091786082505976864862734676281281624602392395148209405277468042677122550523910502451633737743133333567388752132641517318339944735127625842117572528752622362980879329841848692131534792384813616808461785054713331342751459928051739519236497362373826092235573190118521379674909581827871353228302288330269638522229420300794503614905048254969590452404394114972120668225225773716723033766952450149309601830262297897482947093319564533594108965262653282172671992832826076571421109841297044810618497889948196488308185826797732485070226550952747526506308122196316516555239092432535508487942347653126186793288259578708422496663682029611481148980218399261275740853443802154375687960272704702278337438412603921285032067557793502429626846605977174629729338787895943070450589907538793469745163691528746143665406395680074145071104520452930517505723393761082985829749369300352744041712471077071825984606338787789018961864301907221541929182658261545477068718799986355995537058140453653180278158719324500447058369706617719089468370141414619997220875350991952154803713474217863730842285204679285972655174501318060087243848124405611481085930999722558504800073898447205843038695478162396259367018387521217703236685576216640981056796859586641372139454091858552460733317995723212190953480462922644961984344641889789023558375265773237849052914723616816333554954704954683670731480236328914884824234901589576634642351503309258131608308174001871988900654958486153642390921276523791970331900149378304161410734929790823766118407549776256275012980381473701386792599002162265942955274673490278085046850966639354618388636780629746632776282941666256524910222856205085797498185324965168327800720658954064887786416241028594949174978229568097721015010125938701631210156362047493896466954794106143549170282511314961708823225459029553446681516143066535556772383760567329867110630962835228981317629110716829398206819584503802283198543661215898864322011590797138832719417180895113046543945900258858902499628404043800803455340485557264065728458123325968195566488397847382512893959245800512082786134802670112477699172931734610073004896915356543345465065724696178280750785424688503504211596713348809356604624998104439614420903376621219940344467974777078922468732089923850521786425044297042115466199361764392013735707726934050884110550388654748838873774062055381632208884770393036014646116618740534681204110813480737498630434852958848793674392371365789250736765253883390297083356732109707045297388251046885583308068256855489735961264115616285403816595984880274149789628103612287670550725890153771937722620377234997399100957914490821289375441673801671472793389884139612751602850688501707910231370135188015177724400713683012713409920503715124894610349411043810642574457252018390238163699831247989547580097975058682161875652232655533027681699455305503480965022246176017478213006073828616168251223141389962062041355394131380661972530272038007910525742482487304204057930360086871415222511851196720815178258803505176516130858319758683144426678718997664227572606899653943918465951060365858701970164991544039892425793624033527988458906062361857369320862433349985184725706631694379294650741877121110604217227852135962124344816792854355278337278198083713512409206526928418637123576997526385378151446160960838247194581663658589372795395268924342674689854156961248402388077902022971560841262293671054703663530158042992112797351990577126453750980868213024287993570608211476294865736070777263437849390786354690589067713098793307010835328182760204088054241859992493784625585042983674211700073465492878970179003758063586132116527571410872559623002357069649838276378419304719481002743221811687145189196753627816246537566809707224979930495121477094779606886892397489809904698214254225755006419043551817112066203361774176789700031670901031300407308241722098482594190238238986264407741783829986451944003108834573473230434154502627274498935783965498370177818464137925753130012204157647020875263452428535492913359548218553357447652119162964214664196801147346760530790209674767556890419866023197580338359030507776084549492348679751700577784731832888457462492322741294549661749385821452183720571718360546626885713862616575587593448466771625168225257721411516082024380977163758806805636819494327601184399896476295460182989244502826927495924836894693566088153757046336123479723764469869669903329050405433767642855019570573013409713015266334456611385715536980626502099996777822254820702690777880965726379497917680257572617664624609083912161424530736538520359509569642599234038356983759495090190641483718646984030608190094558269169660682559719267611610561980930484978231935560814686818686122657441411164097568570746607389562971377054847710852145825860720130595210683952805726464694533962327906779960273809823811832297595436400217931181981129745886438539086811268919579302826447019791822184960045492221692465533977899935133631528310711557436354948967989149824437107605761831528870354500164030326691730738420716607004587729920967665867421394944356881985953798171619564419262290838827352992518549667248662717150438569805636218253408201402756469281845040012835237112817796526675457360362202948000953137474021449949741383571406193124535576051410509018818215078859829941945438409140576803612567081105769398505816719184570941301608841573316721000492705232475137304903162228691984982463760845104571474975925106303953917201870308764656050650752278299939990502111243533787256594983076043764522988485572723203366566578399207148308621891480771164809979706921906773598918424610769911819010722065765555992212034447115826102931104998466870482671826368530350677244069477027677533694586167105226754703399229145580175069923368714440881313302662114390425344762363936264819560940304387576528996503117043907027607343685076199618080686397012429381691589982494466895141838935668809671018914217584064367327138774875385393048006547317792225799657250471445409275375327537228234543792429983025084014253299034584939773607424620268180608568110065999747136879912701873771598731204079066665544936348768441010628936213998190699410009446012139089417978314989178587715051376964006066905449319327664758682418501006463726037958139447090604913412722036172375985644869477875228640626396076852481748297152480618760164596109122534734272300292875429451087422696589058603335817989511768714434381477146777346743265838070163314241290320523807513051101252453795546876112799680112440413033285751364476648041302106237803712500613732460568377475057422654373500330999989408570503001476375477051699521597394792519835855530501157165973917290714452397793226370829471016766428025981124141276316459962925019717342541890384971398636002786192521825716713314380144808812451624795500256472076900310792990868720480212305076869504460855634959235311261108934506479591875347912115473687388933842488232679452716173214896878015116308336365278629690123607433931220210857239536624232732154742297798826815706128379050505978756176721292918258693695829610796909140528546089733979261128809186868590670483703042325206589358042921189075052637965038546666662639587127942928472095920096924272948921478048800190382334403939229240966237967341291519365818336140800996526163214920079450675882608111629608178211390373676813856067479230518719624313212473582216716130841042991206893862774763948130208442694004774859111952714237877173122420323268513423300712155403108319136422659971962732918326547667539187571424891629625307792943574169515313085247598273898152837527839434278672319319476060396603742240854590941967061096555382760062343773525875549236679485933984474986137671918611579779823012770957528682318638652324570429037589364354685466937287449111514354156024296952074105190541536178896660855352516020515325972709052217991828288858253647066516417404024509161499098316709752730513145237412531870842212917461154509750471554259860748108406019004429995204509905665304835679259765436579798064797954742689090141754766983064430691546663132786376785609918393189943138141076081117555057925224057034243040435233486021641415222703056092211811219913985103892569429692668063860567251163066192079402822410827510643358485409505396006211307574067828869136490846389471595383578247971987527429128861844659330249937355495821820665682549364405127841330084835386263968916842700103357188141147675125641828900318736071206449365679475306877458193680132979108358088468691777569836305829878180440037162395294499149724058402945504821218209423080562978008228266915579435485258538928344461103707589068175245405935605239857763188407964555411721801038035857971897145447594266183969012658425138677305756383507224817242012456945654546902657419058526813101985416713146068372533054234025400979555362222815382557791608324802366493025451717427333133578362623416487155267776767188374757388640450616708480470182938414101826106565161378386582841286204522411372099754376295433260272124882866698219011986719974516969315879087974076680362289956517999913113879919898256380399670933548478359153665694317737475237112146518835962428349252113207184262843816394829847464894006057529716226477188886963078941816121409455396689817661022760781532165618274600922765657027001661457202470248337297053271647465248980830032379066182508776196520959810772602480705593694163397852690198534848959774138876220395683110007685340634997711585935811559458244899293299886590862079615272174871930883513847690086992339708953573598523317020056319399014916374680916774281271172849613052214416759120569486246999449671548622441546653029174883807183415752416721418019790967150429608036298154931102802940860401692909539614041115724600205547846687871783700491708903819966684217207165150262713874884765275112584546721285731040008349433707731438374802175993507542358387011159454086017092072624777520536589894074290589045258913338716543003464019449060443862580006378336316830086749771115625521210581422803600508872321203416669523203261396203171564657964350419890159905081736946889551773358282983743086723137563888861733041638263064778814331258118258152645039125702613802419388176257690268976032330474018944132516597175932874304532031975325506351393676579092170995942851005017241111019040649004886870422983430142451933753902877414127667742825480118555325098824693162680329527601942559114634931987249618756095509713299118453782461524821716889627530703085193438865761564687496854713947277863351534617885825941862908828860610724588753718842096423021767019440977867993286657277318884982440884890533788589972554402013781484984751038586858528503610891022848930338745081077855580025986785825433932670320628989857978236354695338835389416142776566953639722036039022813768775771400116025549815553268967903765001172442961868600265512816600261894432463919576783257007115433866065641110281798049122878312220612427230005117061052625231074683147714988449908204602158907097161253276361780358583466604248979956198169724105271799688190315497299417591229435245026760038040922892144035899223187885997779458741702790006766282263231138719859959494909724123470419823937717863425147792080210087652890417810407863684495630134464997306396008627333203546761717398695389554951722590864486468359210547545466399621825496614055182470324160684388992591243305526796628549338745116927686605322250751600082085167118172531068418771502009707728660657432701974486588693763598030644338614130079734282848388884296445817365981615345883054044927027539057538416943815197201680875161924405955332866701510277862935314175082994460332759130096295388181374441647806792170009972407582551533369981123254549384676195079691642446300977571684176537955870384895395412385883320792450774343210619241196022783327688370376862271525401779077404108076211410174794364816814609669087620920306301268802773088084366958021589761547501810467585616115160497419258317202120804125660694053491932722135199395850872330722056688638124394806344672489282853084243145565208049657076364526561512327098194605505952918895029223115842492723028333613926225754322378402660010205467353334464683184518149347589420208583156633229969328424177135607714545476481450094195447997455933452440762289503198723201747171463576283394794840571310519968358497456346546708867982965286073742363112241254085166032876307532445979285535468161851337509343511868552953535694713880631863677816795233023525029727910666967556113793114506202600731773624932765546474842195381165472242667179424217725731401512973777496487591001021841004927304521562859782801883205486978639443983574470153474788243366579955576269591799747383073948746221023819006125762939494042450878416047285359140580268228980120720387763884576980519460866725812009804501563766417821684302177749178241206588389233731904410716242982748269943896678371252152977969215546108155457996160664637857782616000331150818343863822818561713246002863149742116378701341651840515404543047992526917718996648703872088783810895956310040764873433039558491922318608417735418417622971429367800076614768617131910533930773585160663885361715286060306117633769730340886392763724537860017864354374229935777042023511610021439739409159628550535435587365658021492465349412236161203772131826062595392316815178412968130386383426630331513749106849135848208279144556545753034649132514642970283926877934037147746125191838013481637012151232923547560206368110262532210955525599326687922624037380557221702744722067947520195581093221817627861346990311309434415509236547199389466343975881067033418785393487285736244710033216703909769940734776910070539928248569776769580672431411270475928228834148211830146795257041148229129046219930781404392774434141222844939969093386651258088584580812139427192833469679088659287751547068203114897833318349636115210180686683058645089561305968027890692098839093330590337037090196501123316545503635822005366684871861883603021279194885340632338689790449512179153707441238544136917358391487071522525471462224476567332366475151483948085117782142984011871701270835061266611204785273953553599772652118179525122557126809072882892318900538491399866836896834061132845347353163036877999928525737929926259962547099075809764417704047907843348733323973995971117459998190740827179874299559288299389132451821331247822346823246454952172479363274394075331543299542690691495570187156798905974141437962280851400790820544839608621903525888799207658021899371228249825799228283622800745644053553101854640677464518935877272218154608691746043173410541893303210518497987402215668398103327561390161397295053573554766659305678996221776094407478503310793248641214343765602127308267757620041215476741247298214592742980600606452746948783639856818082201865690003106074749622711994817428518524623675696502277680251842057264292159969336079032120577361650065264978516307600424286208401797970004871798213645899034894283376646822052275266843800485492190297240931299447802806316780141099371935846887575614531862845957307655326467059604349402874605913270770045814654996269599578574461406874665838147130732804203287803943236240876595549951819737839834214589856688185663443956408828998763222441992182193843602116742224325847269841695800755940865677912284633619717864825110895751697234592880082796197650213568273546917910390133261651393237437051588937649376784913097642125328609401008478217996821603584527495598740864611671837505540329498152633655208787391121171482903004861811256157755100573103942367978138655934425032402180454827604255332423786423989161849817649334290556403077933242366193907300875364054757534889573957642012231897344524735022058353488714406633604114197262623643203606323529235007807914236817269214527454286274747077926362624252954025722046774676515553264504512510980156702799165057868776444730255327144867025031507071998708233907343844111759416139249134697637502194778687482459161083956342573216353382305579004430650581854547311406233888221506158221345043067434022493857803284562803415776419555753554407568201281317343926992477506059852329200557431325457745986982900473481744989253098334993772760460001527543849355344587542667169386991104776142420336582345362419764464778134961168080227777419030001594074601353127459118711896829408286475518945153358330260709996994097041022788675134997457215755642306312971495933478393352282200482059364192071246279422143506343278237363432476554837867141796472157469490490537549265940951290195441025675496737118480174833992975324360050950597901665378638227433420614778143492283608307837314819791007642426762406498428145861532094465437459514254124694378748738098066508871944177240853014114425716365212741068603677838165643875756799428627795310927907135438676330877816590902232925482633768050832055882874695155309613325854319881985092772006992771147877831172427276985025073741846016327558953452061626086657498025795078043831531941675499261285149250008715708237001302678908383046438656086875292892978491118009885424782325498784520699589245856612577632408669144099119625565631975705039432213983476831640451390649359242316614326522030588046454477360051502904331006376542127324913059833670425864739327200211066594988920352582419646954701301556452996454667459621145075397579406685886481198819191987801918193489345844151487680812780820746686147324340639509911577442291112335035740639788191656195495559588962928296867365941429802891322270603857378841357133554243491273822329155515868942235830887594333340238103314839979923652678063814075685988097251419990622112245932115398956595043524445474213113980128190238102492280697221465412834585200387759832513257642472534871266019246383497549632813541926206616903484996661186349210939533524303095739874748917977445704763970361409363263975628263083301617350787063012418017841963168601206427388564662118490063986591966478339553849292810145956951122437515507287175131465328552806427556379291282013128605715729231497853199458341018189060252714876344124946295052956889193630836260233585369357176069031853113192357941952405968129354186340118778380345380318342152529705130895642573060741035028625706080794176662977009837821786182971315074518803264031063334951790233995705928233846264628866469517867285823641223480488278371149877101648009181713888102189514527971905932870436297571396747540262549508254173488994004082273007766552886276254134758970111748576371403122292145870014606578236049930497342391427147553354959839281628731286029836519588516542942920863349206500032976045229397355061947489959388566009113308344392645345467123412986957656576575122474400361952865424399790514655787400031306623291431056893178082928887545628507293798746514249895819537681643388537736079274226082228526364530628261421678455217162720278128453081242054130309115902649012796270879886266079149769168544315699520472533185776986488480351776031686545057743388159080366601947236973924204939017387345445998309584124950941670046286776135462334266547707208207391581429496735632089345179368837645387845143906472766955042733440180579497276427709359036855271329915949634593205217142950318099762956194003374303869249670294908270428394990689537381187989243771832476607207015906491622605257498186391553763673607143496326480184066883449524366537536536699794850794828019928382393164378748264367289993304624798084479452291775340074126155151678050213321207167635799352070820625106312093909792253182071980314255484617223557090560229514359354675979886675950270000122474149016232514639372585982366758345601606991591129559248107503777212654211310786413494662746305867256755367579363615938412630459433261978860890457866928577402380802703874298521362437793406447508418945563453531136063272691553844572265996586981045191248166842365360901984183276864713509471458855777857943688535112415010323036772763204090600176162850514161019861717699665720468875828631121374432729241170117140916049367546511190735276473812191271120760321275297280311181256081117810541909603525264181670568381548338697080944182088896215531963239911506514223950985747546678873652248386022288463221407253836367119859501303134226879800093093062488709728422052159649123534498507794594432701563033954210280121100307141450400517948706876208159461835114996161694698891562458661419752178850481593482187598284393837974102986506601059471540862058042835442597904017734378613394374569034585785811551510117705517301318642034049468093705979095956422354394766105161354924669571549831450977162682573734973207538272302708595318112001670702020164661058632684253781192130131252691985793423885633907611189942653363455964269942044102719642536429702141822777075891389402709883271402452439677017742369102015958192340163193241297958350201849621540973589812195858157256263809767437844387593882869205616225507221667205901707151007519238533131564371144872498467264295263981737114976951454964559980267405444597338721976903124293273160328647044148400261529401017481484377105898529511106687407166011801181598528017756695631376156134326739803542283665087459905145403838546603297949469902710569294713028343346691840935341077162897359783084371785156248795799285474205545480204390954671268618098986075869685922520505218181958165294113348616531140396765904621198281214029718726523106956556101617370219379374860551629537048088154324386579551810470574907559935485194821383093856312799961191942956619969817863283298334124799018841452699246979674521496420621947908814433279987792004747645484376126455853091854691531683242604746441025788238453191546133982442832655268925535815619068388239162643334531280069275663370243927044941647419766602480292875255052996869350566829768869398744682655764373389761871065741233899251867553231205707873313764602171564345752011774465677149562078510020381293492250459036187871663790671633401150580290413383196498139118001449366344811272706953041842597601165677002542386846414034993522488711001004208479003958831559928932025658718493758771454375346312171322502736730327077356736568422090009854742086296797091181739908838412114839063526268296189843786421612937325072977527622167383785883443850990991889669037085810321366053807406705510444631902884634337434628684723544182202615918807219915651296500517011149935698176006755809763922513299139486235124596526059658366861026364472812997736048811581444791380326880380392352752631476257907697372092484161392528181939370121994085065553597594399969391861081358281781493455749453381683016577638309005958957393693829236036555730856412619959449730538604825581269126324319298329140452628299975009476455811527618552679041905071268486096605217214317707771020485589434838878189251255587192075569162964447182356130081320373715302258945587998534636403218082115123271497511193905388052927200683352849180822398489333909560642394509247761496599998222322154775214331436263090272686199463008300964107931840291189012502036380246876335332492407695049147018056897731972487149290446790272611168077962706652210291052919915374515189919691907798748633548748533410316173336076875700686731704591823160662919427344171004720347839155482096832057946650245135307504111034778105330060826843016767351858698392046236597010161186478469079987149204236121357036026911376838892413434279888862834081552946433564050205690919203082169725552851037891821272123339969893294503563154669211807229409120493001292943521473311994585333495444840063765534469946310753086471266931991944693162121324734730082378714303428099622798119782217571994838580745533109296161263006627441292202882724286552739695712384752473397592805879644516306715340460648811326970468333334935134298846729167911924615411177405628017756090703907707620966434800930072558294631444247126383546901551032525551850206585712390019401687895936461388915988030577647213826272166521822517396010638948537852679333881775086814289712275847455042842072309430573951274265623739751369065158972402113146860490134980539371362184875913560509306082011893169211077904434361142203968983696990539039490500935911117217422736745497824807652259965705229824994608933045821889499832063712313535055977249948066561801263157137505021113755852324480275647399916117528119505066225124210424228458634488049695088635230474391174970197888903637728967530609031201941933560901715845040528553035959424358009087708099800801114389741214384488675513891135997689923108970903126598997291757977702298444467250021298130905678705351739190276391375341631697671177064837254828048781393556354297850245337225385095116247159146431210706274791603609354809140792960350938834978326143622572356682107645612958115888681909445579870345665369812119708889019917746407153778071969496704440916967584567077087184635238606882421352078404437237373244696911059935522580202875743743732904582177401154785299813676210609170413648619554646430903900524403146528931213266099437941122533318826768362451263597596125108237429022697508203563295670862392696373953067225047943740903283903770934649301097103854720219932050069281565571879781727346561953463563954632225917317274698593196185870899014634907260964555132188492931667624127221270206278386037154731805487980186438380511551642284281265943751060288609606596534420241313124396594740294133860229220573384260000572826898631958753808724200838518264216508664510866559640539635178848593789636937947806946519185936025934383712325735583499839806743918112637144374978258876996488731839413828852564086197955862301382988952439963033934334385948541993689164881064961941264024209686650776830482872099103064884537132104544428276210279881965043255084412849691871597195583277889454871213542071831391847439295870289960344715591319886513750422828143703420939406934514513501847558780149296092330814856894100246962107495551029158652929250029000239281006984246561009888185536951839843187568092909884829865388962192829703185701348729674654634700159739339224186256830739596406806099606051846191163069706209516632537831678445172852617849412708810312838566580137539239441445052334276507725234293892857065713828994295329056084252362434665237555009442502792618894576837438918135732051471637210107899794847073138464552344246177010218207384055888280927566491238812472524524428823808171068349299343485203395840536455757734271924170647272534509593560440753640920798060033648496473982900428904406931870990659147745491328649327830883524212511705257390277188126117641341913220807587877066997847245788861398505635196654748582275631108256743853319582259617708941213140808193257690791027669790751161525498409967934297813681684679940832386483634818087091855460857942126769900787970137403495218040900274766887594232972025383084051711066777992808153109192870487515714248046546916269260307156152406112377233506202170317691725443556936637082486710843062586668126403607604186915358300522345547938311940787711748406227723373290196779583856775578188621545674670909685513188908585661885493503318263428512455506251553553863308831721449921606945447911442535118534080091853835839722221832434627084492597559737301120786360638739012416739171541226533653778039160594565668723564379551365151515564582254543990286294772156680479166787692234776554096116993074583821932680847151753554238902378413405268692337913901532455155833495561914257226678971244121288859901247361987167409717547972052549510110913315069248520910134564434796249971248340348612236364815223393309399889070445367386142853194254856823750623545469648490820440963535145181364612011227955868261865372017578302535606677736624185564026541814464569347765615130706433637692350382425546129730372465594205597952331999091846810921332231717065654286238343819814248107807045265307694713083832713220093245931749189083741661790936021276162304986862045200389754696065435849344075117268905462025684799147471517133420457836874329923017234049856871408342658937741641251874757960415348788439881855493729780605032321835800010644384454757656901650434574720234492041044337628232674951508714101804797326923530260081945553316282609364176445509227632828758737149980421165961787403665468379191708597615733152369141689194213651132176962207072605100824719798716788677943651297943437647561951084318871280490959638893297835087036216778490758101396680194313103348778325216082447312716542039779657647153124875453059018050966640500900142421208220102622526729934184052418174942143792669447460105784981148358351893632040794325311495618627356900994152566605050882083536729672738197434150263765466928591226603827712788133326039154489874471716199772946971022055400009589380285610450317837389441918309486871470137958519576265797728784573864409459633396472993875338213677937692637798651787053552563096834951231501151839182747705913441148777633409115460630799107820624602501675018633894229798470414720566799425953066298843048984919614798036172611251134393559777931788995242171493060607216406861019950592517340320181514697248143338253817601849014485003238255117221814611143858293952949911970046976808696409391435676615242894934964734162696021740248213984585060718675542711953809718874765559374296566255230388171976793073042896935414851266539337325803930011338234860259162597504412771666324263706915528035047115220440319870797437303386903121732105678868003196617386172672922094817101986195070970473890305779861982841161208047059702593055025377629389832925026631490048476340740257498867923392974024399503622884359967084299882966134080076267782377293882524159905914684524614388183610345243679016536409191912594818414429907033211933995770234504938055185586076551064704489324728340552174183605780499808681016469684411052680845216501349977235454259020209798355005484614826200526250870928369184115642059439024798746832940331512807105691112598767561885117170634850676919136652073289623529213922516243084730237388524239546369668143603897087236838712472892465008634308455319138897238047920994590775432839682099089719606410379301291615811987898336757205468637603994631445506682754834140837142494191705087881351312906384517576672733684222252677844378885340739272517113914137288369148255624290944333511303782238418110661583115752033376086553350811624440703315133675860284062944742904517393572225207284442904258181265590003701043742668219088473704621752603589689322628029151209004386266019295022981847031615638589402434262397816547458434423427025776041350434635954116920570534922722161476053223435476519927547331246805787323243171708649010692787130253365493337828489206585085221662419006916050488058918122434227111685542674026158024140779981349060776199666174097637740921983646329275085148044187018300239708354734168897454800633129001440434113584542283066908990975414023136733794359869554213539319103482739240190416379242262251523432559128064376489484001405379554291424689223762088315054436492603599333394827126472584101151123781868811504568012639508106358638409034764543346687611008111392652642788119818007187103295399810032791168147808887623983100270187430778021008059283196348806430642011624054705871372785853088865589141747423436365858374666552180867501853554795470500477150788059094402552173283589465084810724015320266892309771060068355861975550676540823055187783071197950651167663400514759752541965575571722680525785877731913879848394118067375780908923832832292955584599154463023296284345831484808990540366770081227151341829826946323119407414453918726233602124544548424513192861950826383476412841447601324938706976743455291089330413289763135153812190210914916543880575875549538366329442371326178758576313145038078893507277330843055855113742388294321234367818014669244447215731895920273152787489849398471394056420887475947047982489499716116073846170640218535106178131513527753289036633341930094829388635847121367638355717602829409645217884060267299458511793479706267290028879154858392714237457930020230401556584208216376907165869497488509328527006192695412579498135587295561871858269933681124115788853136591518757759690272193139114757689519320307343026786975334242003150486068173620853082557660537099312816778012713617655590081370055571051097347634873966584411443424529956867380021260544166098596274387362700287459619381911796415618053706916535408253307914485415054922965067112547131162480937227405876937738372974448049699364577112933862371776035716857403477703188748333517400397408458275114797433939250304814077903971777687833100401626092538710106299622652217384054375460255698646090674870269836761620149453527483260307248836187098342879799339679842273541589940001539373602810224506570261975240163561571850926937637061295779073002358518096214755724033324942357359665765282016021206300577058643722981261922732314364900054218139672843223166267050478049241743103584459536825744052677502508769618388708737380252517335143815908702038686125765049985581029868555868196346131769437385099765824343923155725909139519997387008282475347353362897878227807983887883701367754100833678905384022231756996923029345592711988004937398306166736120546633163021579887602222778859762307443860677694223369306087885185917267355515077903027326301638229512387091127881996843968464474777935987301021340201237498050833086084478568572566215312968995982322753828724843017263310119987849038123494162911798853542387124094787709214483377205266618068174124173973264831708006413079281600536448399719603196770021851604525259651224005624628905166698885550078200256825538343571044286291660435976894698467898278854175168842276540809857415671962878749431396972054642682585498752615567719383930300822539361640419975256203471951077650343079227140492670279836590114695717595033002429665592806423254242945268546943947955230833447969288233435572946419598962415145709044815038007044573345405639196290231235647538708342955895763215081800562899572824920062295308986539652024865905491099389188902798236339451539950260286855714204949802527705423614180204478530309352360397083704882382173186554706939388075508766253533555542440530206783647852377848280183768127277764450257161484908604908036944657370525950074058100053414953908821106746808462405352716800076054099018151462609952193690053424962960037882934552805363147671385443677625679552434273208007239966712509412519597867490402919166817784114231139662686666914261998242959547662318748379978747534431083848848480149326079427876499618166353907683889217644393403662567943308473498230811965225449774522343670837283077833092517095807297323945366353512317611855089260094496591945905135547870914951924122148076293583860576968578301217617267206090080865875635554599089022559433575010981379625585797509233484220064877051827427776232876029908057759122141910816755474369369059846325547768813892625857932708830601823148127490752680681209490616945201088668352397526513077051800916322635551613086475254918317116205935485804620969441882312911603670519988520785557614906461110949637165154439991923199343408618552081811876054303791973308848215185007911859405856813265569079164003635227153750440677871227060177199756191781480886127873935234483155274790830539911634750148365343935631729355206288358966407880330734528411871129776711734363901947281206887491933123114354798271803597953195976162209927760148250528118387235837835530571973304048974322341925383281079546188734429826583161535876591035568315199640978638574582750660137718055806713891078364060518817301694052342517309416248553076398282322734288658629102903555325366415227173516031924491950965452979617696262505032691756854242166600857877341821841910032977318157569240250630828072782703248385805590801864162303163931064265221847573507487573864383788916125576367874471510898984949613489687832859002237538202251933673544923820503276396196654198312431732035363531702552482067544794669961214090040161803797823815964395389469132357393558789392963818571349842594206928870636850700372288845262291210380271896810661825499857780259750366253475532071898496440935090075925115272869780543532886230810022252502949609049865984690542932150132250002103067728001233055699103990897422332461163030640300048267323464362609883051047869969990081909547927654309860860202907532544139895496045332391169959506776789162566480873302351616421021029678403606318543119833809142838798227825168892311189825568714601443757312346211519083713828913305238549507519779177710186729124349564398153435625114851424710743776083022822934548607180610117986129804456191162191031013264651018116753205965916069808318568519064067204460136136621533231071499812680077789869312065063213065222012819424698243232016896829188708233078582636050726714736435635153573862511299872281108764471579681162583347060146049078506509072812823375088304267399852223373719754149207868987236146325070108441258225416986483686347974828206629349227501489651527898219385546174977871488316566111302304965710116513309735553184880353866156566561965613194747642965712190309650152701905492725684516182300289393866514980343542405573904496783863871322644840567060155981673913403671396383148918346064423353763962311479041098846173691576148065928582134056252580154428502627451906755262354020438177512926405184681966659336967806958791162855593022545758070830763246421315489959253547184537387639852809818034555230788551606077563016113320249745235158237295975401388316215590628613329524248159287881637547336105561955568256412761594959379026995767319825734635282620448951834254366951898417009819610910356217417198511177499162968731243311432593072024572644777953332014909236338536949734142047516692881433201536288818936584248398416967638151568044990895569737572716965636271098915528121459656671601399684629052555364952603029065759140318323173470305084671075184693982880983104088336542411600689713557689322265707840639845291166371200085540243611707155665225789932105731828587279863685393542995579115286170144252093818424342929847463089375837639246939576195451019403065432862977930456797065183842448195244173320212696573550899609648421959931149112418551159941715600164560166896039910689614801679721643320715636043533524103138521323028914529813219434533145394933994498425662046043717354979324038628235647896228510626015334180079034730487111802410889357078132536184519530584185389764028750491776880878184508460801964883329452308937801953863454892584392773261133762235851012039671644430179881371423051694975732487277022685836645841491321953483821222369935473575146921300953964826827923088356475461123228773744836722873675491294569301050650965605768068697498968477949147388212710861345536844019677017040103779915089242709868942895398036372445428866562838388857848132684367148953483846808262624872005126354634255341892446897257484376914340092588310322789213503995037276040655600143130106266361049240589356775432431538376584369813921747856739938709740280007142984671753339950949030692771464851780136551548481020285251603040058007027380227794548212072837033708390755637523399745401476027871276522622047261451826946565833759763708150403815824344726734193928057725822037416289364672760317673860004473902495670406643874927775320044772170865955828284839067563242234025553446755843788411013643444115442116372889103465838154827595128042683902617509232280197744963231314719045413014613395157740412215629253084412380729325113439882637400636010851503899268051936995145167431642339153209319261174546391373000699477030347665291827512554104549180071318125243776302389983953735708429606400481026565334901417711975395790643770130153260768739367130398466686207735883692489876604266346463605534710512811453606566837759375915271702640945366901562113021349420116751835367244744379301152589740830197916273609744139635360963170832810117831715506383455013839641679486600417930617074196196044533845880523547388946686135067527715267162533294827154530083109330715608732969946982264730757927087301265843787232772086859492164107828499669767116129887493991819441558856414280857229032919874477414892796568393835544020465109717809862436719943074120814499022392074770764483100887969087144654877336794093899438526607611501179552769666592462647957911208820575746561000730750587409022338784608343651353235484873477084768731985889012419964433125087935011450294880942972660646464561532216120093298364434399332041783816668208070439099870305106006201304380017620998585282785880872546383263611696387757602176812057103700682477462164936042656369161170018925542278472894293730440208101651625609341123170802974881274746239630904098092904343105026391888725729619233088890169902608874849812244758284917276879260550187643617987454914438795676175057244356153308848190458422406559424284175540780628105895902609051121325081515798479237459569521721100360343478134630946365293422148160212865746161436773620912087572129569845234717941118610179678965900041258285246072956618950419552211460406637503503017554422422556757466188283824809749312659877894985114693365010460342329377091968497406924779434829126707665474425271533080138926214042756132526576699486862188337114796161730601477932828514229125982248723301136345639286452864732317426167470514259098987260099914409303187075341110341437209798618956947867139996671443808635631729130823001453860229351002579160247665162072505577738079211934367468424080169209355859969399323474651957958886428976498828748189464698284314723802438532821441925793037505441729453309584719722735399428843722701348266489036518200011934156384764013056991301809498270095903956345006212347594589157315838504874468509873407337569778597286897073812639114678075719835737457106748340676688955345697511977168334041838344960844100858578027729133765579389982164603970660353386375959164970467751418296992535769787267344257504853087865171300157089941381963730562700959468913188634607581833995119563055671581692895264271775940211926547913156626023776521902322697461705377599712577075994018211184101147702928465675895714894638668049429146630111592034842129646199321393024898346209303509486605177129533032903602059045760504922047072207952350963207130372393446677478875580257389063802719218205784060057642604069861403208987613991783872411416203056615015172567518332755072523743785348763308142259275184615795820255327387314249667723472998130238740629542138374991943327549545658164717742495720931875455171234384571762549814951409552749541378867996747812176557350266875167204026624727123298387800782991746221985321933135499358272280098563217402443224961984208375327531865605331389710086349450137287917752177537332093696645054070465976269935919536226851744512712608065177217675531850944264829371798897328617893336289407950043884672147964537302219899620484724021277351276092919668303713725992944640484543394673729417110851854742582667072165225943490005284226974947400903238597722929936239526413477118516117851400017177044780267999789361943184491625264314923981030851410192952453172407994957953172026031366114486994987703834443111530460021151779248481527696464941177017743269482287856975323728787096417834112787129787844648899730039194756969057325283022170385289029697001163204741805505745557074385569486119427622746570349420775235647223069821545075989174033921019164443859569208868743056737212419479654782278758111258862701530695396602920872663971100433682081160688279049330223019538197478926398030197975880473135120096819162606881353075689009089290408579529179927054791564554447591599987681976518024522666072372750995300863204088761287341251611082514048117049162139974555015025674489341575824359328625587489847006207552666342779218573170889431293852634483109392102614685209446461645346250265336169953850612021957626282049178236530640462545037982287150066841774656786900102216276991510684556310433830437456738903467983479001870125935541222059709876807533494732873863530880509485555700544230638718484661421904265903749417820496841832580945176247183596384268003347691889694771275036405212485607336317442797157327597445710820490449527361800263963900645920935029332674759429867986603057894436785543713183290597070840160047077622926524142000488720656966947292997576765678837563582730043779013429723759117087331573535271569943266813651017168891708884556052074938455756119871107535368181248853147005265492281581216143163959727272904428955666656646001765441002147717239807018408811530173038637860942445448691688976895495112886219316063684463412889711551303367944839998984512103247539705791875567653485267978116585335435772040546325100198490204746536785107597647907242732196142750370830076958641182055398164728570741682410463199662813318803995227696229404813479525332657448967480026183013015886957376661206080721088166989132633598005454328738531510838108471677561338521120145121303840065781357599113998554544113535371126713916814690531200601000940402106770657406689438216325854020768268737908554773551525974280510628338552044514004286147828648905660671660715327476466909326966269737488338624695777940857205235853696666303556732575703715095714505688654283082131222848411656571177200228149081545136780849472874849211647430290628168866331959559151426958767995273318468832765133680809453642347799353748297153756797320226705897266885088318056304906176231206986285469903330139014897890465733352255902301734026476650254178762830944802597587735888902222883695524162009350193287775038996619315390660713327162039294516932147081795521679069813425137789865023647516116356706075680520978380985975217618730949987363313895064383823800162517867383714275625480219618920106716784239990057013766096609653179925477613503930750994389141683288416055847414618656813412747296281983867163878772387119282659303255308500659949397623794110632958939088628468165371158108591095352646202056193338672574515164043744013085029852893306073441335427838510618998012649663580298933196451476502726678796576054906628010561777897661707570545585914577573651426341082033845630754187585498510292995604512255623047696939555660552627323608823370606158405208104783704878768852388430622122189970899334120267486751988482856409554325362787560628378924078386880201202477961710544210075083741813097475261742785259552353468411828306752385687971920670953867282442982450078347840159531882680900155831800184587045495662317598035057411566225029186757730733000940292787706670529767114949698115149934207446051748462420331291731254426823013908272612289670484512491079102883536674995224077812527117600616706177311154753176804680073757821379016121202668273359710286404508392207336208470014103382711615199764340234283149480278672563008324169242280371410411742477531279986876110825044451915719572311757075935756070515545561737851565509095453151024300287956017776533736344472167664425607561274528243048226928556228116868087261189291167382563811803421290494205149850624308444120080967554112480614061597754741213611420555543810980615644766490782025749381294328042838612857094233095518341758042661229583814224743628915336023307167722370351821884647768382473652348475859167723351682695669969375301877455693346510786566636723748559206396261999458167880297424065578613362442422702389690075811388996893140475355793724953343609922124813885219389301680768494214041761431177977077607903448710105658485206127681366564188340187868507336861319872858155444197537591627352064331115157882635823377601757142275612579265759564208258399331470342417242763755152801427990313962822463133044984204929277459707218926247198735544036577596176453803828363282937977847167156212074213217733709733398112361431201845945479878944766131910470402029201728858260233422454246188887414943572181950617619681123820478139816676356860665280345387965427330034675479741049396240077920473108803614783752961334092493858846298862460760427318295198172688366693111147879292066982952927579136107549886452467411023088823274429793238847933629597321175551550605120462717119355643633783150566098765898000731784628799439808090780122747127649699983131143308876381519006023494747129323921373762922498106481230149048737381829065383682925882510232367478326593150859052610637590399435186139798284630318503113132181520785051946218943347646195241633334432644836560712534843970252039971010219499992929813685613342151976029871458357570069574681699881951852090281421239321888672867746231746769878746088080923071789277264360088703071562074187331217397128806411821843544463148186548090100006887599769228014486288468602867802291139661326154533073069475945409883236556576910758719009638143866051968266295454832080333375441019370691385310236383351030851282399499171329102381973340720850373097424626881208049596278090617585293703109558558498068708619458397642665530481771499218462198636428153080157433950868208335802365237717102721709373849493977068500965804704198188165255188241458271187490115809941919333774880281792165451118063316461894109976306391839291563697537373416423619892827162130010486706044803945407440157568255964706857631204320730434961402158826316491024315372843410502727464845856907643627418570766017557803398922858616641410085056347959100109842524548947360074606864640772437398386779525516830776819178253992313420829566097516472508689001754027435109741069926232837134602055794336378269329117458180602422207701642813424632639244515367611701811319289890344288643209730806826540103471251557062633913036537875678090557806423256176640295502399722199932177394622110178692599213625729796840206991567554034221908429017745183563645157235270711606931700092378187721924008023006107226197950135188953763710934316759571679785219698518772265141701304394907726974473501970961732435714764636873954099779293323024599983897702055490877570142660548905069926094640092899454336122195052841889306403740146269975052173450235119770186790365255315263471664367695951893053671296944178755066086572614658320387129825272795970239877523453522709508239743016263251768525648392242557136837411502281763811724007704748494018692844938199483032015959627260276157975824436908286944123777657561090847189545208919526403413044197607577240981667758001656813617403988675935725684873448769423657563299920746013614214978250157157844696480322522486928782711473600138940591975916246494181769181355106690732463358073998098591170246188071325977332658336082132873645379400362708444670086288738896534668560502340493951936919853765679890526235278301049974045002878608177361773905487196962422589445671424655508385697269401700858713467365944190017560694144241266304001384122412949632762583863752974250247333221649480439560147773224432985822022573642320053102561069660515811204960348649660951106247817656947291479868486958122267367735242621690103728672849916261907953481168562743312479733570882559079607032581853444936533029412415588055981859952421528806227534850858331456407850940240853972605959413037420872901053237791982816126097678767151938532089303460361873851404856547608961244126788372654368830308447498917179289752441345742668624244409457985516370399510506184834210771469167506518709028710868418258072053286114255276854615192714608731939629465150973553859103718306317889024887215864294908520394799315458189585165116116925685038424226552763558851024541826513342686562739869668463063085436478112185259633677316592192142853948137672266088428083917163510366615722566592317861037264834815924732259948832344873540457366235400587828530291251789792618386524859870937781823254748222425835309345972189001312343262288858176428340112168567735589016793288910432424157090292366132176292057588766552883576476705839662719730658609667527501489885867781723256642884664326756545205209044221631509415363904358153160350815173429322350475377077412501835771796024063883588819021648260169854918909233949560350687430168600671121243037149704398474912998112629032927539670232571493793373751568639500164540763041552298223865746994654069042158061901821754375736114432914892301283949144027782419294999080800584342020590544576655235006065545741517493079936579314553285746720660966728142654057300814668498091370703894713683663562392761522950314561773552209388785545594768651737039832321178225173747202083934913890846793860198833052090107479793222891593314227471695509700523072918273649279471303222935736653519416937254199334572796574173937961310055783308112370700242464885005405579694055761538647403201155234683102649461217047048228610067957608699402429990611488525203389066707608788614969793998486127500827647489895733214194203804050827959936974024007496420167568856990421510198835546882913684884806573435516431888206092081412546253291245390215845450089843557538775638481557981598924422640326900147215328386932685252187433325041502937425273998692042180425452289584099653040710782229144310804073667420639184143792549977163444276137924351471914353246505005432577470679756245518765287773751774020688353895083082852410857005844188759809169950489793152634695314272596219779388302794122422458739200982957281800967172893698647141340850607416138230215355156220480448710723392720213940064968075958472491801176486170670702119042360801682864556472844407961377484523108681708442283511332922346118168867434342838296735782482049854937184770990457419477984666893391338127535247260746820450821331185616490875125385396164618044561635763321359226967876341166441773279066353595975418471104411239099267880399243510047333107907999026771934810908328358848642895455239060438593082845670641224467211461191435220302726042911471943519240773698205858271033391859904197988936539170282557424045675431820385353097480986649008798017828770868328763695697209905904898913299672476321419407444155131231846140653771740003972527145225734191737898747592021112894924453647187301911998144053590574895213984327524939055621920422087225153014818391472534677212033676585234640648252338164397060742546720645760596156348478657149569637316610475626127756749451561802474594884229066894876539225367121641917218110476751749995292664762516340153401225332817658669151774521716298157900850100545691867888657549697665363259460265469990998663627523527794525446727225718104575758110187282096373956895045937758156576185577822762677372637643298596996416747471203880392719833047888053340032887583347857817553067930252641115252651555723610312472825163438145547258967267458389456087960941339852604673061914927236987293545270143850345165183899507261371023646269076789982973082176251553405130741409975049030656100087596266214496305154111222085301332713642312710606380202850730901692899666020947436183569704250507967899871345141271268710471784347121855007964470662645895961445802458387686608485747563933738550319136465637813080616792748570849516725055841233899447137537041495658727051319568752009548092994389754939020866415345931987009041945767075168797530156182235147917342673993621610787139244602544162662390477408908018589524470310967617037995583060293545516942981532656352346828473788941663297870618360014733399626813827327098377183778989083203953287913224617410537255536929353512858265455913675230905410305677575628537152163349177220619519654413110092346626165286993658784009846815470204431047044973274815225251985087379788014658402058176280200979078350807713726890616139182288685965433055630340780222607511152201369558141725131753787129253678632621889528792138950245094474906270820629698883680139256626218619750601628952962014890987028231666973407827797743458288631136456486474389681225921197296928417023560182650973513761840223391965371688854253638766398271734903932265209827292005893364206632462828040807001496854439929094427218365284667019581564940588195650902740016380810732367248700481255036004925616765609298244885404864434912858292502481212647434694201222672350596109620968270217148868814333640280168378104156012015163873699361262620625405174789728561959844018885511430261758966450112898960014375770825793787686169187387620936914265973320146578749304044997788105004091820211359289999280046385984578240240357911840708548388461463766682458047055708191982002475904608019654403088511076353710240076202374343093156230339221061731914025580386338036236222156523646824617246241232357554695390548743257627873416929455063366410301002304802407858096510411051396441700132923348615897387229310724393020834401705460124787775948110199087466369842827684772752756665720475286835485777102871700563194489662442639132874788706589497301751285148353771400313014910942996148336951428998883911395883596409254531900508095154012314376318215103837851313144076171203472214312002660260374966195435922773695039641778848832205940235697087274343284849361034852658484901876354312484823371059313784287653958659406508164763624101430195634364112686832503627420094101965728879322389064573449602896162654985145786646156450817970366816496657100814337027779430974882818846637245740875005526011267959019834933477338246562058318315152905461282432113137929136945334911429088904045703395912459777983237913585650842650521209450475992459272854014308231078886960332082963250886176125471751442032850941199487440979290487084225612336316320131109664559660569266383101919933577824243088407501340322857946229253787009814043947380174619928522859581005849448423989409370285561938896225915790381799456880918800172254270218183872576675517790299719832982276289603097312705428809136954536042477638532603454598235552493102845836614010295634513529253280041481231017606170962790614059306023917730457429471373062815085903917132038052509822295609974084970872785094964771251486724896840136203045122994045764934629274742303496930966294353331041405505083862998104037706330161019468120084420193104925427583237980884659716098755631100625654597171719120508373568709365587650328676401997470369130740028663513699707416852382099184534915458409150855971058930356324801603104056193048446343702545067524369250088797050602226062163132595727448514863942869707044042541863804799001135814119615339234320042013675934189509571453940739895177681494194367193985085990854856811007245459251503593400468174064477674712578446327413967029514305326659218360947139334731084660917718027543101533359548076210767651262387773885415181345932491364332370468863853700828229000326071392186159772899639946303466295601115653719827271881737967729789068532100089444592768304084344853622051158843625254210883953918702029365636869418501450223190212761552492814988751089875003053353852510637134191385936896529780585799654818576979329375270390653845123311955141708246591301232550033795405918425139296452238021411130116005109314492456111100520865288408011357850941190109958629655403857095157275460830308661734363513814939871163626790533970721568236926963559048700212545231629399547342862903606213167590894950464505449122218585308911321950242667132883744283906936100147242071195370397142697171090740662976651529139612779302904295973214582583923383433968097101744839799783651240477756715846909456500303974291133290481640407812282093837556530115712412687452015096952562029664598150140868464268190025140884365995173770281832748144433306304754886248238549047448651790845583199101098087993802071206163362465423179519650505761493106849010513594756775526487502137202232097060350390748035230812043154609414247472238980927127371849363342441188739590876947253003021160751585225750209887431029998236728337427839593960651761211894750245886648748767757013681093074595944885401555533077534337610305661282134502196628635659142439020098365663965397545997336058988024252079941937980381949857962747660459419060128902255088831957790140446577378633939431729823527676178012337956201832334850062124799696717409040629034820488118703167774749484852217209436625834928243325865841682509694199442789840393102973803919892029307571400103455617586543626181302400575781291784589453719557524397709921886500399630520221848531111285126334010089454538679460701964095422404520188545686075053876985171446658585744530225510760470834009438457747338188402259717020144800787339604914129128809190825713235872633659508510269373745211983545523269299332096994087684442689515756803934749064834680761776380516961995398742541933049303137608393618718024379653914359286732402811279726465219688241569323955969708743931918926421052308721517476071322727052546798580748496043894690333071742967285822234734292299311445131323992712999769910101730510602973086264704573074070394138721007676752573452285747486145713245689980279616121347431388070239008663538780639864743401670973907426772971479342883569428406464948574656356427006919458583986687107508089954293711144515135081846693498373061862709255549511535705743441868835214733946393695493241557838869340384546181188549975591248928714487977220050490182043992842194976447395093573314056843033582350896687011163735544283899206520133954706738743097009816513192554089885151867795639192451185160169253882301523133078250140809636285622635700040733758526420929219684407703425670820882874462232914784300966172203373006887963832020932998628353164157777137635758560022602405561313420399684841216086097038463793886944113343821933311596622323422691056953754834373252817740739445239001449476818786860718448176662219036418348764534168458580511423358331511821485603867235886769476485758285944092680231516335888746779530482351302861020616738828068524443469150431984814690159980878664799668350918442758882813940038243851090277314500444762509095704518047494908413546940127423738236871317482495053200718555098104110964245620512836396014952933006697001872424400359102719795523154981404250799079021145057951512133312554360039920220530040092199208882061881210790644641277850642370206774332359234265729363036444331936794074045891875014828689335649711474312362456792454877670363884806023443787291059158728330081664675301921395510829529311134293704756572966059275599567648821432809033838203471747683617855899454267457194012617485547927708184876006136723351718059088933960106074274844542574946306154604185554849258621400543027081103491362457424548902642088784629907807207855877816324219086642454899512526286299834068948698325251533377572130400405595627962159195660786443294353708784649524155163509181789096227975776276527079928551376140744727874149823643884419973070210944877894996483185322467110597859908282033628961967428957446017275474491304080339766251827145575146599305774452703826489086773229852733987883500865880230665640574426620524415627325725948630632108728595995410846751841786388804229240914955977888061636294947438143729219125704672760318577649176275870724522349066266447111610960198795651643273853993233957139710879403181054284786487512986715508937552862807066894324113064187795946879229473370818370753459815194312942480648316391519314152997258620167894042686390966926342034659597114566366687011492395345138026147314117754227353768690171996146878236105852121546284199882433818742825062386552944506700249396046720511652021113287690258449114264688645849182087309627525235383700711291553049731574110434942048258189077325819381767405199372648294944351150816021183856472733029559052540052405426784289594107058549847582536091373284183004310999980537575880452993177338820178730761783673895797122058865718085645183141889782213090110596008738174092504543898498131372288478456877402126344779893462018876194233301633239589549886608578304286322536313276505078662337393118458937848916355045591056321631538543917271753441482842529341726047562095417857862801122085170463345118052879002656739267273218537329933841962971670390608428175299242124092452798493657939738502799746414778419525323708163461284316087149312648273175711690324621125414321959289121609542091286398169307363499208159761953945134418359638018086515542842838746669894481713016737849263200283385341794015948003527523473785389912110428420127457169314146050317750667209991559967529440237689897378003013201970260199940840814162412734121129070267922888010503988914401478743890351326800924796313129299518367011836216685174157839497709572888659414105712212896163166838234622356455275248922975428391213214808985050623088187417124737751227871766401410760970061173157688969739780824749088270116645515803727016913024143638271413914313958191030721072584853184960015785881055213979343995717245327388226772182182608901112642456941721550995863921349965628486765654934599262761428083059173433754427601721770695456619644391982563223280465180361704661586174682190840410736549465126235993294803678796767417502446093963643349499239969825004418770115260794926259549901493491005848951075036857906412812967920954050505864376352922627953440890432794312281156409977160094827092593320165903388006335460557162050860393544371527654737166400645276703639464685711499751824494350803615582200591963982891761759019599367883276877572206779468955023586814106326135069253557999796982610455607206655792645383635877152909032440937892667224089456298923266604286705908302086506430732308609270694031551040090886173786114643739026791049642217286908964581201470919686671957407532825774003131930334079777124033572970832811760896323528090629314754001378614975217008401804892445387162862987943707885022064922191831298544217160044067223870067962087778577307966731365224239749562974137321388693431231412649288975370403914388530941948234725757357508213160697820730456751271819589922578147350156493798521159912201193136337188373432691903873940834740880780861893320334003854142620400217022630614106300192355199312442566877801841404389339443996398386916739726848619365418141181061881907516736974891918430826769961836567230268546937729154932980981189719703915387822328796611830028079251283933133563499094092455641509387462265254351274808889354213090648783413501564082103768352344109013827045128607015647921874910250473435338168772144842675074575387146328452145812221290235373424031690267753359097232387661376081627442128223150041177333702093680011167969799019002242185879881380184176443507615290072580248030717040236509768713818135774669755156820769268544338904364872354584994323156700263670530139382627793345693188961858018141201272005311109127531437643164416274982441930790351515441143942129478699723431658449943724682985831123408915266061285759810960165364223985621624860264654494350368987972783597373676777205112559241424332824946638775159482492544440901652370519108697059802567915720891094150035465276515868104353839104091665384089690327472336532545596769492314629554912410565186527831273145497128633259168847360543201116306149311647501691871044553432101147539612012089600477336578012493272848988160648118340602891094468714565365894871851840942420858734748483546317191290860381431786077375677745306864406160501309573519270547209974094556317451065083784232026292595102716732854972746649592479041414854855321021742682267697140837723061969371659053730827760262457305730036406785665338442699433776236810560372482297782335427641257633619762041584382982883985245940509801990873576174275355942936181005755789124138641440177092280644521576074980456901712745635496695222500099928789797022437475123731362165484040657703086871381069523882998401740734718805485647545306571396368428302224035465689859993066406096009126903931903670928091008300798066024036356604626978912530144466215342581900690789618657899530411464925891112393410818145972898793520600727701027501641956389453086623938563008640792744402867903002928954581172154544542394770514017775624761135523278826716395553480738845631296954276505511479265483045018675244813209283197850218110330575112556635463755788506358801475644609983105292716931569129920148542823778949721808274677228974601495176347784674475806362545631274974440086015217884967952585168094068102516272244724812188761816885836089182568372478075922396057325569600700892706961362095235777640050385172355029600953808993093148956617813997259103158515170940942472239569839199303577208811422046129559806975803860001082188178072625596923795446400558748703017497403292518358445039630820137011735678574478724898969376717386093084739271099669104855118744355764567097969102496563621292580216316869624570322780080980397419902674666718250869911879169706861385970108651684900600534297212761991921432332985300953365349105450398651568452837236071190047908559220509430023193762487433641980851675122831444483384181943948966825373122619889981057645644657323176598003431782061248141582698871309607073602301653958965684122970787938459532734140600345735663991736702241931148747787179295882424615426484402316608561418632575112017294528281891603381941091387241293345337840827502770470797239026052396353262340919259356645301321145894595824062423365300058944974041811002189158388573883227196596518937771394719292680280164462955171178966793234870133038241754630900941746171283920028328849677048438312680075400810863253368735214837984336396308966059021842633276049379880763493055195606400169205957052891847824871585488175825549532471459756366803107415113100715746768563589132253734036466091989738674767298427273129490197599918566481009295399777313156214232623336543014993589469556601727808100267904833875678559278667828064359201876241556100969678960042815971782394665947163404153482875664246218462902836910764995422945394627201497680557604124951577958450287162959550489479363353159674071172287564056634489837243954336954685486142990987484173719026501691038596414658416843125121800047606843277297271540804761751935942409856789429217230413093043414144824621536899776846472846693863560567918249482482652265865296015319130246066720423316989014308542319040420582108554840243882788045154919553408172204032886705360518897297336296682656428828359926804945768652663563462347768425975431397668895313354568998080750781225491613594958620707484150128546602009699271229820527710491326269052537316894235988458905597086595002308557620314622726019373339379337617670473160248282058586129929242565162355257544479201355627326509907827435975337844312518651891823056788744197263817456760355201208124631349104649576647028321218467615343216877331380395957026719409685840132669926325891914319705718414155848660302038452815111781822545222525069532581287672930425211914620680727089743771197219927046780267443614529584417670893915215025794477057316691452600410095869352574672568549893137521476361423483158373780838924572249513721263429609286511108118572969534250620646504985890079734241701506857908934764113709999504455173396711319361087705864202144852333134129434732373864881494366612038861339162398108679850153941397483745211220940889494879084488963334802658950963863277606522570140333927118031727301960790091306839203641386895539046040915088806020437624524352829890689307300718985038987006820682386222657767696916146722793006963154241839790217214368710584275383496726228173624920648493080212202368471068571940902857218086439628225979287086381192427020699767966861133886157162388495148465621173655181273238778020171529863402034435420685856441584012739004591411154374608908817304281211132629613432531539259928581890852015723883131033129464430324368088003979953552010291295670445117548844604867194918276145009187595604024627804936044001280269299272637681455668221678010581224622330862795281176934296719973360881214291743034666301706938030896023560860436008816106174293398269352611584735648636431758467936786521537319436066721734783277937502007018426110564130505844564217814205987269976076551799338124020696560445123596469339134892376434958587172187405783701854451817098619092232055239619555782064166375792195299592902847507210445015752627181092406905124231901764367595468390211372004476422101091801574005329339142927001097595234640867487181611950183833982022502740830300978845614260804749640057985196798769850472024358498414640004358440197678985502655095898541388656632339171929045815817894081189681729816960630252248041947004493610390154807320875501745346034009928662875558623835753792833460779374219452344999441563263276128890948087908198592511473804357776873301783152830446928065963352327613340408944984949292483688782865471211286254671342958577807051853004605615010895247916320854886505596566738834338175629083025633937825609529362838013411730829651441011050095410584463887902447727616888668800389296551978090897184729016423513419110872879914049130502230436077949673662988689504708662278483593549231040269732664390562905408457406246326907983559156240979035179669970959419516875684850469135288631738501063537641411673793588089523389079706264733687403082625283114697611720017040647849290635623598223027691547833272327645979976477040727442772103067888468398720438229232185669871446868871301807476037666111348049054793582781829580773297899514355693715698388257822718734270704100744511073303034837026752352436612758196918660866220782963495176135248872526660253761215530763248622729562303852401649418437885563037850200410634154783096471671436231196072121118922445822214312754315587431504116510356432585898732032874803307520934762466941631418976585807401532520526436785978486566846958150903275267544667191170970405489542303952227315476296766599140077322485662741432709336097130241912627816052487447160860093842978486976226161457433250808346533952019429856711320458271293033541885459735488411224515446809826937868314484668717854149336687450422415365656915145500082770352404970181713360061657386964544531813096215370228964462530003095967863071223714305593856882539730778137307201406634941014988096758171015050798762911568856569961808014114379783469828650213995635972325428550182231555369489528728213787933468869627491142161812025076882318258294735334055716227920087284636695506215795939581315587499162605222769754995112920369857446540185237177928165407229932888962933358639957511885459013169150567193640019126630779422849143445440850481109683048585838580184394227842715372291358499053913418838743944892659876525443905109320505437216762680736325900036668130392504540297881058847142007470783769461058781377650613733548575950579331131323446036398792863467509138300157891439010744464276864913141632528470277402003198793816982451465368998520132833264432260184249013492883366112662706600033209877966411318052557697966775778301009758343378841587689038855863888842233068064851983692256399559039072958707950443098920758759088344258696460485905901736096550625944513887906711676598104891839144283569641858683105522072426560942732631505943013764032799251684175943259562280162391996098912191752766528002264060562869010737274954270975609623624216717608694189209272601680921041660472246138273390448895948579561911700593393299351961979414582121787528043843226443250682026419528209409499864727085104047036245891989710234092190611886232259408415304898476064130919270684853059072202012939089335109398742543775555092265172190659522549707232808006701172164819138417546681244908204775155959061373751348653416561856211639539892749627977000581550033056088792925455822438748600318069574964791844103565819226960643123348690571709646212989596022851546711693524823948580434504479848707998546028525082095902078758936423090387105224353587700732584260184381534974402901693935221255816846121060945271154682099839354893709290340732603648594887832177976688886769702993463543547241323404135985202410310228714006900482079795031901957285838892319441636152740130611608348005419488288314690262839034190731223063552985679601147039012536378840859288480952640535132225212597354296234482007885503087609334535343452872041549794065154583299406416601831306487978568351403316047693085111963881058051096473426879121242194619373335256863960223011914434060732265600643553113073404275179927765490487508557814618934342974440724198389025583227645847261217016471029709003281507848297239946791908917639438823775910467705187073884922792795939502737134375260172877352951082780570730588353920330339639622673677635897993468675962993748286794013281909651160615892521988757446151400898795110823114840843713184618121889990524598715055294524566708111429603140338684344468199559906828024366534927036677708676149650793803912393489430202667428880146880187887140276202048582847976392016578150961753533300248302981617811971299555037562525200799443238064080800454580465538346068396962773731049082254043528161260963459198487265543093258538239154940205523829592097240270567417786597692991691792724486859515818352933665638485731407239772399541621050930856203322587281987391635935892846676604438545036799532026310612984789550617069215561336641422411037165333582700717797027289803689288673753600254679920807004457081086488309321132403837801129529585341862394069895322795106900240467322856571008907709874868565505262972539413268246561383647934749148844612417960898413621106601940389040809233308713913033484262249445137457167155374125718614468306120478666044753822098013656338612138474800991210659227381078731673673091234840407997446919821921423439416005040127504267855682439535775105841205908614673176825959583536079840492176258484986050222824682820496538306755661822499151644077668121942659833548030704336723619099122071656656119589421234349015812213380761832955366204820559407933461323237657131325211594595194543437368621427880126535201757785803526853266712938327947426322331781564813911891225448972919328241882938791719116465437798715081859292320265919117945434904973416231313514058578720348828083670515833603098034951583103233660319086928610671322761649562153226622772675694499613891094190980362675468325248362706180961427291025403483178137857005573685549967355545923432909554558273046567036182925539971799326921181635019562172327902478229253632632788914923979126693447010624213240260208368043433338811798361946757999335625798889347204992262077121470587122848587606030519762441675293089927112044326407393280859895342589745183947693026249239493520413486681600401056496208115987188969011384419431453026068924800590306951828373173041029050532965196548070790624564979547390722919567634596982564439512741975261324854609380885647765571173755302672908057403467312784077494029270453137416186813530540769042198068172105431007932510292055877789826682679638583245849801628224534842864115292944867264055131018541161970169068066709914134948349833231113432107052227011078409559334203343724097041166217905151513071315051612226204354139424355663020535364085738211724455062189907161324532614019151607292212178492640090049199204517036513381710135596057668157546515814862837802083738926399145165766246558224917958882754859270268439061680953769374693070514115539295673530101572133778812557464502212743264499494341112345993941005945699927187053233592422580931919574880058663678890327056836285834777088075567898222011368471533818566117891128509469088487470751045474957622150731063184164355236839680159709015167112077447408581332836209053207421289910329919708433869267799628714591855578455488386039850432618422274084156263388703520112294411293572157591588309036242929071383654719819732146623224320932764473148354747171369981145135309785907473050462717328342205484130904940959922744733522244323929629022662056543381152971190756812220753515172206471671503913866136031961497455692887208044323542353006994353264081361729993624017284702122803040797147020130551120453090085812129953973836461670540788611911165343566282451126141103650598183898575228696650703671981682367668256860988262644063554819107422829972682188829049178389932063206137733001668037770443961406952065646591430438196368094718516587185133401446795898875805029563969888340600231015468325805225395181321721027558000483803873984256907999175325448613743944595114754988902107414992093253754110451971642850103902546391956224814966293699129754644836838624482639477688601205349589829853025579713382300800392602013174814023388304987644554749747428346300538956345666815884901988293838597951478050907412617577954592679601344678985693188738572934726895445539229626509824527085357398821992398022140980337414177626737784378430214091198564648896435885733197521069902789704046300056867953523178213526408111089802802153945725078176976574058113410048206852791506521268532126272148494147922008124148545889056149204524555608873715149827969471681847374780186150486951250217752050930189925651607812109275395097324748214686234932577358707987412390018146184003454073595943624406088882525327543566238581711012694330978110536076234298695204952858251289947254988040368095817869723220712005645983160155103697483870754671262647719974919818745225299326435412289115711577621737382327765280138272607136937084209624637186036812180908928819908418754224550723188436275938463582233549691285840325674966847037440301211700853720560982928174354900240861271636854265596940686972146697976387625658740281086158381683540495559943741888479091854527977159921116691772638299655167588507362253795509307507817866299250398290136765243451150230966730745173945114359714963198932177633425561299198904860561411580492346321302727107272421346830261969105326578904041357902520493405202208744605307584470636099701184085733984559611284577708263650599016616280137388214174234815522074553705208146472155483426894580061509047713951943545620476480528477833643914303066754209159293305696974785279444666157313325878464689112485856485345848551304063840864503635507227801120114193039802503719297210038636729173414286926516897226808247147385021977286248857000930750230562807772892946414067117599178574567204377262513424656747382009495547299386685922903017038745221350184695292966363733313708931448207385337453954669261098843266074132412639252339052142546282687367096082404865541393111885685082012543115619425369436043651813769501015443060721897600672854112507779934477224958431974286553050909985598600689556994497172026511865697177368246186222090013340784751632774089522982049636560692802247510941525579723292249087017374993869919297011748900926147455240950518897655285526631473667396939702259762500778834634694202393816971687375716303154943818652892269341863624239694818384602099204001638120874869955945667450653461541945586835456542399751560225810947394752045551114037774333242955001548533255126400067312125903659555854511342512828382275680472669007001862321135701795779327376110195759610188993388120406859301947873214097015067562908212262494725101033354287327763512097681693648778375151854499886363186951565963580624554483946867382214216864602851850491651072284584143553616979268775571613832500156626856513577820367901287748408503728557217888980210088179623633732414910161116493605821501002280489066763181232359320798510951530758077269686213291787490575782722504173754001366758431887652214487244274593245739451046935239835398981148620669620034566770936060584418368584687271294984072043097750058934252139987551320153217826806612673727276954268431810705174535568562011698305869217199968855516086104044046071007002369283640919759514699483150122371987389429204582468933481459024250472216664568456263524591323597925771250462957877246891467613510542341696846695019638736797631849993574292232924860154050486931629073358574206252563224718845327341874370875488072687449560790906389078517810618857338408060278861805950347151769981344336947375191788479448675403186642363034522743361942232667173551324422983847117005824012755155161777127165893714732272160448781490517297952752203431211762271778916061458685046988754007755073028866227966061031347754158605356391795239025683535249571268004955148190134272333925643460607442791674086437927933220653616131688391668041288696409362210432147855205082302095299310144243383297880598565507727350909695332853546170041757199113175033152621659023365541375665776156907978586650895483331495179031844198950817779241645780283366706575185253470196412138007023824914503699467219582456524127705063801993209151108566880588017062091092268294270398443404645976212816356583499348839479925673850530358737500256630903113673555440195798682979413740766107825734960407001334195514087270046908378266900401853425662960094102298793785903664686248379074432660009028450564378085528642404618862907076762953913066554763127892071641603023530578828768300790486497333689444107474055496793724975676824294289052105557160874918466363001084501477552950184429853661153722870106700922829882685804733691279339952738140893189852985610606154175943389714893480791894615986649426173180207472596413587403163655363646040520401905432908687124248749422304842768603044592907645154375975457013661207080267067177923892055288567896861585363495784962382183732562613058935322715980547367727493310556275019820797661464372607353966725223122200111914889322231659595658798437461208547783801525880797472523790612442579027525565426190620151693166981578722528022999530390249799090416809602671376310522134992458515946711312421288482806885113227811517078108366250617287944886738126970849443439470039404004039911295711523833068067762774252313767906686290685236207403619462321024919295256541263865564396333474572887616445701430734846954548157989558075175715710369807390729196137397983496820889562876951516470590894342196381184068380153563420506673011763246145594433347068647524620485200268129345791906609465577630233731602146598321130482111576451652341323425242311192342257302624750150836610136797914466757517003206484959643841328950359851422830224191146228740391524697848539541103553012009600631978969682116688964559040448043844337563303621266775388550917230731410088524725691450546364303533207421870256799675291046978396578610790936799547043124318468819090737049635293055493275486731181519915806746697515134088805868511380102001018650177914579176062494939161717272551654209378383759028869100352800204650033713664078462149633834221207974409752229619947015179020940015814820585276979648631685019280575828326349909983981134286076940004535442159220278521648724426297932847041943330563183039861449059846061135571343900986891524081151276529563603504285083948091995122839206292750348107797384520178870585859365503392210596419493951166221437390128282811969927811303210180749902629148892753959281545183463735272402540172553460645400787600623875752058510080155399767967431793482252024660706599991720800570689686347857862188773345522998105220547597425142742534328078188687927338011243160978133215002692921145017440798307748882118421790171313434736709828710934896195906702941143816883816919388938826598204378774477392149445116703135567553824576384809796608206573961251222319946404000209573730673755764286296363808147942934490172139415441845127230514182459394571649820834576464820120332556146728722313869665001024192258931357684956573068744219800086493809048283161729674579022825956679283592835832750620232460488062912062175011515928193683641784942318766350268094024010548738238244722916715812782179293042914052665397771124753343015208218126413801438104856714379416074865492288453741308048073814106824562370864131178132828536435989927710903249806426681234732470856021954487881681528349156222670920103411080603244936569759518787313629521589263641131775962635519534550483809889637481552022567732486813281849730508887373065654896446863016844194408301430156601282145709316888291770892924895436640427073538423706010468301344288227292342200518519326644684545614613610313436541036946216973388568068208027703825198739625701485106040906556060648250323195914950504526291105800639491674723522405867222946310119845251966692021073670549066432983596300716269725237423872453513435576883942260816342370949688497402068410603314342522861437806451672435557659638710209084529289734479499619330310870171297081009452061277406492667645072325002859207995446075198826077187327952275129348797790790663381020475764997028195041100561512072757598171213300323711031801195962760106697854902609134873565218313735710235459707628392638084184877696410596728311968376114727005493593498460390536314113723709525883825748079449867424566360407050122677916260951157014208391517416740730749871689557194588868880702924502077779011777561278128987744221381413873659547230121831433050880878309860418960967273853890048311760255148695403249071375454736584856710594774386437239614835021103410973394616808009728345493027612981623897611828419011048564448529225755015090983236967040998134466342685251048144270717867800592421518399669025142165197596710332575451525508302035712104789493300847470558112357533362673934717802433450240939157414633079267718447631983040753930329001099326250898866503409206315388453498009885881187989598687419831101331922864938401450436999023317226680085454962185380793390104502168814293275717499874050733833551112924342471383326259473891528825389173778609938970771871021289703215903893375345041001688273988099560191197994749955547086567248824660626843250794521618593694512517235723314392555452042627608782193057033104921168379510765932381407915115315073458956002048674511462956388809861489820488207531712180795790448829477981141515773889237239230077452879974013087025534277839324439270934331282712368107747564212703259853849028925935116061444796124552221907227761030746172156466979655915326562903886966241226775530638117514865648603479944924033828960652992306015304812455183057330047967678156807433873977008833253699778067813827303756138741263567139244855599127557398494414725342231001711538570392686708795297939669755037117173253128140843532300166761841268126953339324850694289850072385079659903854648851261380728547284278416772907608945038689163513581107799634936926019343743478944939812195080808066091497762018916966000618718358513750896146059554513268890485660926440657856213857474888298752366199911944725714882552286860752142030928961307892815520068658547082314960449309246133450115214506151509893619342715828745413618383088142618442031616972323395400879376397934938878446655151845783793429033731161577638660220547080342326289942767466446870787823890812820774253642316324819803296689682954990923430818384138908585477847228877057954422345924088896226927023457972492634554758510688480270217663337938643249704956715170584084760996340893918473308428611451130159643201403360710693172200998523028773351403595904654914363115949810877728738849076353463119583087743485444658116629233671841637059348425862806817267770558710631255230942329065689419754593498774292773155851216865827299212139460908217623766760527156602996664858533470764070870581975163820777824310271182481832229109597625797456598435327421630947762700522735976086676487541296815143122482411654035191104357449080151080927817941312648166150412339186875292669926662095882376519932791100804212924713338896637084026073491730984426727684034406868240960092209258122959515224730614097914567136561424113160340760909435523181229403745020896278520947208372878028779389689806662805160973803899532915881074916934042068983164939163848294980269125191135960233019488718749058204577405445281826510039095731966370310280937004979514389905046842086954859494068868241396563153868102028519742093536571842481512446429244761016328809787650247679272111791496531319756223861943454463087812930498642559877163339149288353477588533371416923682722984281969911463365947523168365993429725811699951088912585655425729399052066098215275875848379616293965186593634417154742377299674529021902286655506490048952081967381504865876395324264436191182992805612749856884835970775115580367834389082629413997623024102400968791635122191956333279456184218423035382257143230951831164556325985455705791858525319530402821657329507694949983876005507715416560015802399604902679774861252567969696469047129183622668917081548056643469512720689853702883117408268009339479077074575897863828822992113154111574065463969321455280650595453046692633891194645948851598516452426395837764649836898343706974731459029450613859336459203230064152485539948033779185864906276960803768367682505818585473584832193746025357275488458045150623793704017686214998794492096709419582046515230730693842993343214040873140617450347504976975135211835391263310287202687336741069584712716369643053300873193057529778250345088018125522170413249672182159210997033134909832242772303366593349068436928452200112958594716973888675735916730559234236908805197285173743226055000829747550407033042442822134026777465518208916824493716939008773909388041177957647144843300504148132760273025237392275383252337059272131781555383135968703896659173204750398643378919137925134285079015195929482659234278245142572680935810639443969112326067913634881121237069454325356426356915602155301934643149418169035238627052635145485436025917951088119723033833799503867262738124372499469242574190940008912657086524706547011593292745567486132233486408365087318086278201612554811859906675067661751409321603253506002874291175572485750852122405834630135679338800434637524126160270018490353930292022236694079791559120458144400990959377931420990996880581156417411126344065887984025196141970518333601101277473397470583722040223602988587678471823647563525316081135097197468578789783649250814232991654192996619785338975092408051444025689772696909662729139517641199874634829498555341136298575231392340092182055138468320944976285951923371428665269596733798775040527163557156075251380163375151792764718262966640672226975275814426844262664176423445537044745160023310966859666294391118026296955100335080561881179114133761473174681419856602671632069931444147805514474050124083893993660727580511245977565478444577492881531679085547320717128147868091222638852460366603875482790447831587105033168692148904816098870154058253398219452857091732903420204156798864425000253955397684252916220107006721703760936460441137650838937967466031178368941865675390737435572341190708022987375025754771105331803001153482859643098130930357610040533126313610105307668819244921207411436962699767553856268803032194656778197153220891026767761155192877381306626384701580907805403866050706734720592721359673022989735859620331276687677264866120676484882558313299925255331321152480104339512230928385705334550841219453080432967383267546463500948911406206887276443767761803030108582907983072704724960320648798805068436441494867063853100268691112070465015343825382554399493908152165709372949120375296040818937439195806158869661803308456510621656446679303856050627329089803871719903429844586120343579505364382318598505085986789918659012750781829890921155728295153750652195994731183476238915757046850737633655926258524446351817657631015858304113411738156066867572945481309651480965904506211484308719263742955629701401650634179675293569955830045884039078311799753190708309868565335623863706873677895795441368935933692312197133494189802061103914859713015396340544259283255633014603670184613936915235732795914393982351052152179294116575571913235222992996326197727596359618154934683130258783043401854928847778124687761989138838196214189415999064656528171291525592584401018766931799200900291519517974712568777852898687543877954337413456765214496168781840360162523370542572878431148629485041201843231681099045878079764223166139828957333924272479233414452293509690462510785277985705492497989754176888935228510993320531314939637897787954176383012888788952255795167658794101329139218754367880043059360527020151369433841772572843127822328894665538053069705995492243992510877122398289408635852414795036162300790669104875013874012549668222836707286480945159058584545691080154442204376404477193524538134585863021874299410894335369422183726407193122511396393910460150469732566443616191563771618221496466252651392054165682936199917396880483070085590340956952446780374821934596293866606865744068930704375744552193779224036236484462122438869455708763962717673672849065682680186202111220972364055243727649244798516655792933055150181796382041346127555271562777279761900776212278671481170326766574112123358343167438412295769807279384436490474692540211865726385773594392023374348985887992564109659041022098311845638390804412111565048285648308326425114875836514579017032629103992678449470083310808567421458174909043651029273810276537571865317912726862490079763397231805466648555806170274608081371430140873663657083053854708531238106920536758217795797744415210895934388700196223849936847022228738325108664402993673844375553173747884764204114652385171270803196628526029434852821348499612360685921043001500457928234669966005464179067289673892717006225713916268026109757683376344514437787932312897358699931435793489106839770403979807125247862693587913702262995027211136915642207867262718268911754604148538486797073580614748353351153632011085899504453702174147014629107389390274575871452334187990531627239038372233342091949010672925041322006264973583931005301044471964681521481448726441685894716391839172420018859496204671572218170703330632139991323074965225407708958002320281168048945509496810097162809009785094833727379424657740261416296228288341288503121334671251607309613811508130897554015787532916166567826505432085562783506054942247935292840509616373194752471389424309784944501769801437359671506277147958906811036555180181933715798913224935461416378458431235337519165054459390575552474830392232613889458893471343657926172564014173463842750170850367718113523766420392526387454702023337765610282734725633184514493972311160720775770107385404055928660651738701645789657658333439740812374270047501997914308107871411490549797281589261848899648807996262277469910338426899621888969819116924411622287254881930179165915102028657825730553219018125669212042946439711072565179107272353767165733895155915901614141818666070353700917875479220392283808892698149742541190843201148201867801639554824192507653169837194387343999993584478291818618773768841153370083468026737101720233597828039754816849110429077480399196001191712977280873906182398502235997476133072637512042975540960260791811641810241442445143027549179766424229605361467655029844019588630265012032727121496658953025728289026637189013849778388564079998498648709035856527413383077971313825303595181474398615266450230703367004796846710939355998690791034527962034851783732421349132849455270687858169071963446677424260006806863822427371366593100610113533388233433954001157489518848961218249170519321340874756542291856390659129540996165329132216710067689371353849949359789473598029297870114836359569960995740680076848425170809490565737880521562155407877161393836182683984375295457137731269033804877696443787348433893152296660367071984347158791046748399839440564522722748045289654919244700661523624230415032596327387294761237384092211620693901504485301821459714142919160525543882331170455122032767597085937825874624008826908060371077393499873160119252097041846953657680382824014710809015231558362326995202008543897455250663325919456578352844352230153675821356489736279794409858485185393404989400666652811426871005690504919210041917855931510708689134681361829825563880806097453321000036755526073277633663433501443864491758702173448326167773241269694716106565864322631738217761930344582084348979272658717908577760461005918802239912428928813493154600641785271597241049881439764034149669835149957771252239464807251266867669615526187622493354714774749219118119483407012899609434431850390944321677399601607844658514302979619049889957797702929900117890341819093078067864225098654437429764695862023719190073671266086622039932349473947264119340362988442717786805163077624931986126303696597880379764525246890457610275821294185490346989053324090873009426759016391722622493212337402869706102079489879119982700331950978370519163564585445244187849097883266677861436374203469705858027145550403963351128154557490823919390292649593931208992230382996530033846083416095940757588429466302405113352910757405421184190105929946316454645363639690365659002449502533121009827266686791305497920301834289290252970529733753110773914558989694213816741162743080726312013049349917699479558230642979282634919659891748000925933852353832987442525956567326837088845157770003962615840562987036020841186519316324967675314569148457093424550834671961477629602236017191042228881120690121496865468170728812426123379519225680239870104826685329060755329332456768813945648472771793804548582066587432593654663848471524791444498598369201690471768099308509385531897333960155060873220296768909156012504168410287116482086045375500849825537106795302959701641911879106369987914137505850499516049231043891268343315930408917747367640101171385358764946251454190394775542818583932709423560151352171411310183524784626171761574959665985112809921046084283389449558512385136736755575221634804591166312597111031260347838450249309063181993984655238035524987255129841271835427968240010501681680541852054790362860952707811735743731331388932028194028354132314516620081171705613731324441082551451479087122532326347494158716732187287205987782897171823122920157404122979309735927358024144252204884353011737404872474918100910684024833069824448264201621507307611860477258744363694593402130302924814511324200511313052248291413170083650547978206158973230618948796365102575615473294798486731864879534677634575006529553124598187358451092495653493949126004434224256576834380894328089110165850200942843689100599382522300877433451980828349685767120413813089647290976442738380980229573442010149117681706062726758038543407397618786372747042910022837288096323662922060463903700824078388173683126454574714403332391402430604616842556709255676406818951109563766719449912748714733982063147712137644918004804760879526771729264359140826711097508579211113056498244782092057801075110551014982672478898456498362523209211442264506244487080706529415131362343924194376478416422478340851750327821867777503487963674730334961212563179676796648625086390604880549133044192519169968184052236960659334403737742778490319485177617377657835530887404225259916476602756081534547505680631885698870393498922779255526428569255547327037154908953416076849528411951123468177314792778329808382237863980513701017483824175338076966352806229164453407670823685312217384699145718754547174608489717474871422325528049478245963890623638965980009178955282586135807304119953543149667285684792411571068809217382410066008494781968082799066718523859160621119825367814491858423359490582491888054142867678105704110166729415818114874854855382128906082857776751847739198648522395372842091317001581261584240554867676371799997949055935599793679975244653140781319622229499562671805396483972755725930115171100046465349737091348133732059644119799065279557408469468809039619230275569830237742522007922850320831468192108116417981063247335530130032349122450256231361508702556530034198102507457673308820452035137275544657002547808443221821882988191648102036841518698194175005186469640604638478195783049720300405164294389273728198744477884350515900507369659086042623632800739697619374784410390071175086150481398553859040496025052149247065754775150826873478391758379635478984510988014226208835146898200970710704683916747938792696706776013410967119982042222839512442250874849113686283562512389866648308479456829017162249948839203407614531983999558186863747814741532242873486850117394047092444633825403626782707807382709441867998554185927829421526242712380601411176595814567242853902404652154051946269475801968270270590998235855837499069828559318860694683806837079388973981973268713253991773657712785871549470163014024537053886014222961377196290778113660054744138448844617216366422521495655937209099080925747429245633037877017402508353298946033131350503204361940948857399104685123435820898938640428489881571437197422646208219191168052173481385777873817373274669598626182009708046296658874020457859454546773694512421680412998862681302707054033814984512565782816935200334625319562230596712875891433713029209224082119169867306897606225005300151210593222383040777947801816541791158623540997980023471064157035102530489102767312593168310871568787656926411524729049480901430204829867747962136997109642266343625640330236314265653117597390356746916277628078570783835303270264712977865491773340488161848390475455071388375121430053251364759735488467183716140872145851936406462837096022443649062895578757667932912566119847964468255133352863411022136318694515870109314433144100958735489006360746275005616888884441691069281460311105162079977184993618373559829806632944778230701671310013890606616994950065708428971510515834575643304057097727917296456262745586506887531983530777862594752436520714430917772162583241633553457013706210800595598916670466666210557336536879375981386429744796272424650129310390702011548827127642503112260222160863989206095561619535421116917253892115267531664872576023220711169039634825860865831982664762490472988513758272999386248909097917076929650305265917622683887337309586833858062022071470371895653244438104727089176707104150178440145883494363386780801217965193451724548898344223435039984225206173810975870026740624984351505967960452947362353964053053133328567527622653411019283024681112980427024316706554710568706186874413822425666253652719463343327336379515250363700547307563649059455479877506998028656371823593882147495323044558245948369827563326204040370024818688229832934405519862640582723588639168331460005981148719657043819137811520420042903985133132499838305903488148307458146854843694941195031232199379982759531931242994185538130032108007888537031612958889805669793333277714574804408933046880509525164846567005367292844795236963855034707239761354384079977951329514215161377246057556664229627040231115456242620279251742333925811413568211537589499770938931112784703536297984128944982225006368240143377489358718740451571190531674372273635637715561947245427384263628254884435962567778756053364783001227710149338056707870049234867709651578496669745294207636700833600005544608438928738171068091325738735491722418364530013108170630017288953575732401380741043141487883612244900291872625685947883546017283416279403121988787377152323279587884523888268413386775218419920403051391403583880245642662852774376944457162456849071521386212776971329072292283318861213232190505812629808254810582518961804293448191374453487364816738631891355250672573439623885808255777573731113596351693019766249133539592155428816656378320662637333805770595459090721769993216069362095286385916298597526629215708111212745892209742521943145416911118208916087169274054254311239517738531699297406691644835884031358135874916176034770802145190354434394566664598894240621857105851640612891120545551705252994587578747447129093271858472196423502892759410165779728504761673753643541633402143124309755763761483135573871845057842221610435921113007062063412289105228970220203033076528873213914965493449831239153906639398787037585110604145434175421303749743273310596613758158511298901494227155400768659268351303320647880014960453234987317111584351130956332841506591447513536768860717421402720890398334651638859773348639290466551546897374438749029032669642223744376686197151883666574411661354042477498510284398073443225771515810745334482640808786362302367031734043529755988077083588911205664228418856662823876478945194335336266463118931307931205475983819535609439218942770806004355898698572710687345442802279469945220601848268834268897394057473572554738226282636866222012651662526409200169316024745016320791096740293534373379170743618487949927479302833372133792910928752563832968372818125156007300027356582007441816532169813128614085994499529505744306295302790361123029995059220739379058799863342324834441200946329209164837202702241455755426920489803286410562557289960076308390456767437756287107547558035367863172129804557186268851083434640890633899199457839443695917376630281164834182849521553777085650237351315795527910614177856926257465303809334851834276392735730913133915862028760071414853632339872884236110668327824222563333230223623354740572192056439187980328612560645048343788471998834821144685214199870755776543175876491632223678598308787528044806956465714210361534864796082007810906917995341536954925611058365429992277582443319014127519815270889714754151244180416611461256638331173055158758051810137901241138104022435271328884935095987242036587715537958187046441660341844645325124004636416289305027349060337785368725977423869973339116866540888650385146087264093339166384650351554857343531921563415023183882672025734964252722156189468012908535413594681973144001365925911552204171952343818307371657745493018645329951168050306431019502463762429113239153661121192901387904157364871917981991300676389247698464443753708365435882675285796140482087610990368253717794413127995855638435894593181944466451455111255369661678549616351137481887797007779057248991987122012065062364505189458711070137537083502290631929480140184250653530315712702328793901807265165436530665703914804814093007248276603237001209667565792998606669473379885375187169720401601150504696542434642535301993799500482773171450747724870994271971472688206986784465760017472689669426808824125134853134924024562994721609246249588099674782900953574993834747441258294998760306517843792485835972143894710419400313703889751036996432339744539003559323104646613264618256558694884027050620926006072036092016978901314074141680472639403195573374136620128459778807230887742828168200698694973479477441357876203071801334132908669350976048924009118632982724449942695428467822906801333490633127554417697716715927349173566618598258278526275876225060386723232505033794171945459154794423339898879553380823153041271115833347372669340836467893787766547526732221757898428815124476220082170438140669510686918700455404854603042860733731634792367392566503832939864684041722540273328395769285415370310203291850479220785465813206365743066194896001838672205836098720223267429908289189515850515010754215467854958987855721991197039958959387289476327467006053728746846802332641001243315708472510115189562005337403168108393400550605864848948519904007842052704340141345962117134839927652772955808437104794830853088587381571247847478763176568962153932246521662959497517496573629096284514652653929812541140186569154591176307499754043757414916095056762883787998259481254258334413157141420518318161766893576087771033517266551730593669648897807730602561708027250743892132215580115119020346557504022345885619361535448367420177002360648224989186255283609677397600607433469146054727122207870430117137991328740449651962878268881636977627326402160903489511461182721146587848622135524709345992748056044194559085878043168314148157175393672013212911246638431064255904499365525191309139198504757362643255152758210174925221887546403769380203060533791601457377933091260200940156499059962723783038299567562944838001336937179328150862817053315894586021135298352905999277449066186059553120994182422460699153070421953680501605472480355329252010940603457212421299503194956277722832364317431994124583048797214041973736554318176982972829696406292626965474072477296307111482490721446015799504573544414915907551553532733291569328981307066346426060050348512188805712056774503448143231063544070646487302405402823949768494573497457487990668104324139076953251362124869775876665717394440644699513904796429107072522839896453628244068844160900506331301817433742399585289886808351310681704663595101872042086592468906464124495013607365438377114180893422880497229425418765742205884521197761473385013212129508156855166445582767967729247493332202778622073495897113567573176306597276972362137068859449885260074286044442833725328921037050319656550855670356859570627944376865196425097200210027012348531072728226850083722134804275354298869167322031192906572418717391473588948118859134558876934888741284744704204894402016296108483987242753457664690074735678925417609008785002883858508562657829725305832929086941614800239111416532315920386725008292964892716708392571822479083053457156081027131243838722268150175895725345119809864149622144585113079356240421032211795389299994428175090674835304019451647937428405916699476624286625592307437498737489933878807807423350216584433342119398983375967920783269248025888860283141546420836931284386612408708695282500437239386816407431699411522074945056358836642722963646501808692028300155009043574286669854757750406917298060604318514316483010483050265861448908633457659802093125839382059998537097510747806687133784333561718455591453443851070319856446748132438950880340924858044419506816567487779164469972211412120172097881367163603406882457817826828700799657043761680754859331958414355522422400531060870480453471666453652834563589184659456715312692010504628307654847385012329842942582060638247793419747290284141892541827211969494323332778252622112070176270628570350561044133183389661486670799817616011737892412999998347629413654422649146369808785155502024397852999036813861169797213888527209587217827986996712513769155364723384667688600285569896957764536535106226983784750385707183542949186426154665136403902729827852211183495988398358851106651185192402247476150017245001883210628925672712199923658934145203206459126742549888882342102027210509508257925285059157999433667192242598112671315861527007374133342414349610730102550352922498626195792123459847626700073269976855894211991224204809465432664921591507165465863628777372090248372327842230869879733570606395341638941220473346888410654658784970685647956618652393077988213219200599754932219369100171779986615168709459750951403148749406349025670108794714522728373174909573994464077407350322728705826000874520465945224568650317594335236770373170239007677609423432189160911819398852229137340205661404718399079784304733725668535765086053190503308417893762634546286373686740622075630987612374566753495524516697992285243381159981305126528196387695496071609351849800712320055048433039639343165746590275792234002134490155453637552883837142900205923409285020790353180381121817777608895291076703094463163541084360803494955961488950847119833899833424578374916630084794155952736675209727317979478155933430809167611844577112877279602527030000589733214818665017100495067357904030313084500901646392538870927712824223800423357678730334894572297923647197223557114787221054328584356845081535676415577184355287157979612013313876022744255115805718342607447909050923194779513063590407013432169343537869875798618523403889571225362168316232469771438502524007038598286603143953430041380545875758049584084527212079078713820168659292622907177360509767298002837815213320807785944243169034127176416657982584094838128171390016359965516140388646498928486786944745550196732920218498956807424501328968852481773452600624208626678005707630726312681894266832964676428260553107077370790914319710471317217761086749322563225119214504444246074372012582371733039170846849695433031765162552965791409906644519994461636682811872593806172731515108136723294171560308514183220169412643535122194087425802341917017557518320255258628244496641869091149173156337094689157524052777401130577208883080823786223840562886429036845353362981045599276298043551819823376338456444562500341807375079262579868196280336485837531763539416294367838644726500169725416234987229122758783900267474939362062627802690478026504350377353875437443534752087190943037508315345243422104692585686545581506850614613758203725040180267065998381144400536186660765933411060990879763954936963001570916975193266718204362065243854848389026878124650850872929078258905658275826339072840268558715876066752270945732438290997538505288619730658913883867426958218715444816607673305426304852902206155298269524013086268175629449319030495994332703095922753566428840182462956802201801599241810440046710315027624236010383446674563730724106886017536288181131580339047071175343822233986224999498328871030135989463731457669415864830409044946317525044966761573551837992133482339726933662810042873067795765202123684084601886296831802665359192488319961838582597724600024246173147681315583653019581767039504295511284940649980952200422913767422896539525467830311597835829910859376190336914050547484537460924778088687019259902699761151400458670474809991368549942520719558404004230417494159436729050963622743848737457833187049776568106260790305155983733197395162040752954257869186276244272145929121998546620619318856636451112893966285182560506775479284726598029062558890757283892851637622608687069772073594151999432849786132133580601195320402034086385963748278361351883077123369239073649157281481789041477995641352225331222170157203131096220245388949713370619513595167029300811360700550395740560620461168779493701952014091733707639256089760515652132728520911475138114505919654350191857946257361085503924772481843552993282419753430939395454711799910979201092510109314574158246116730652699765567390768276799906396220406015983298565902392207847624817483585669649556276925376610396066752996775095433832523819652992494288950855334423744200274684549440951426400455185181825037058073138066090582548360626618869145604769026015106215486981065087004872919990884115605092487955038515822209454939155480802115466377878469935750953374753932314320923832438845264008565031843715503998944395391374774967077083626794102238234842826235645036173587181599844243010947210012744750109894907038660058337327105552685732192453738262074989486170687628049352004573110143763393446467961620442997822156614766128622111108303326678741758834033106239577017680089882276549679270606947116385957081852342845832805089853225577385410017300815175211565877742372546501132294208893998974875922096365079648905595718957134682599330513367857688929430647883402737414938209139641047689076672013209067226321171424757879006554847365286793429908849887255163277295517338467915746919480807151946099383507416707462791528073668769909754918168718212264380911454839283347449790118560851054260049193238170147033297444918359441670951006927857724437675008869039636970798860742633748592656587979930858088717466189646849010168872040375084941821391863947340621746664849246701147104307999454048782759182597711740922663957976798752965139929148972536298452801973886753839049161231095044677157127987176531510830378376873084241759496119300836459245907862887051733142035560613170078186007790008125360167148483501500398469353619465425746092114463049911767683363008781823109036090453447857500488438630687025681157921117902073200321039525024433631782958835980871192984121250595589134191826960964583188851295606874093974182540158465197722410893963586127771018879019033142239922399784823882728355725240423868803608980505255705468290154093177934684815482502525656369217381662912090269400416301213299692585898480796242593638744733451679888922791018284522115673063468359604267454943883136452868111427969561534318965108687780134281097682210191803144614069707079173365109663596163835661289938128066804939972770834187572762941301754586494069327226174391149368226534725629852615189239074832236859061967123708532571973699334386315901572309331719463452190544754651558591585795459598660873105918904554483944378534300089193362042048438679315603415741802472141482189808013668671116919635729158832316027832666862089381357597656588029058966586794218260145393575925759551492253058757148103441046699027333730711926554517314890819431825094643674591005663510085195196315432802143460642389795159451097036681250297048466212881931395273408081061759558343105070761290667614367083683102075013899041014629059427180488963439785543117610945782905083625027491034093485160779548984851810006776734601228130621998848070291342698456947681460710964297708630997646669037618464955107852863096903178513144029692094359561074011816740080320866712976003022526513933930369845666739593525856194698626188115051091873391481692527025658656581321940330440980934543699200288239739319846721945134730813001319437321732011698063803156187288084890046415517627744334530714310494395230681795236993069600836103902644426329270584426853361201702568792839305941632804548645866147675458253751776674538962158112072966277469435402475755091708814167064779783936959096349145681044226300340988678076729767422041662920754223457813172255951436487493699150051176681344518963686054045664966456631744831419125445437226900206758867045020868343029912358897112038660056553844897865682167539569906069199975556105507844736884509828424282324508491403914874063643725036689809231871426256042140085464410441491222025719332313746893096402617756304224158180725154559289803606433033495943256107808453095578064804799528454049307558456929725523165677255038898587847561511265400036230743074849897042838748640870282550374968217843412958316081657813757348722927520413523172613872527030683796517706147620683465832697782167934214098662944965387460228155463580579219765758192944449340091388407016612443230118576968319868519509678244925197369974977148999010441771592945952562779506458659025968614147049666216143914296789800126923697138523888688088192890731690224818481577953928433654368609365252187700176781575802246132356185971633704912902399365937699004679403978286921021996648574767427656387258421149665071185546340512203738408259809008826775296513405117215568089501249327944874633295227669829483867512350614923059258942008497364185487197703914620032094654275845147248090484855534955577373161733697399781551258173196681756059933337052097744863066786096580115441249633452270041838760133563737735857938792716411045222658018718555144475074827694013339105282175431683153587314363957868267455006319573255738983100210217594029194829162528019920399483922600403524427882249875672224192984879991609588167986026435253657760160909142993085377273168447715451461142756857977254685420896224009560584760915673462880065560550296441599717131875626141633021103798193407826516469409646615195702926542262187479706900058327463779524768546045710135162412484796760955452124309003914433867628093575546492988096703396033540198509575944731271819131682542993181361328207073841793102415937867596869388144843251544362201941177005449679893157251819820700763168140396736956051964524163854594885154611399801713702724224242841709178217270446833989271311769095040894663375241277896432551551549295724510895306941107690487154610628998760959326505971351698458066129662306960654669417153266939858002236875364312821570063082690235510463433255518400588266779829474945488363348866189023864098708626968762052255475860964301053363823412307933741317852230671769022315984460573274209991543646846106730220140315069937902162757130130337423271198800607607368728458856648762752320639791071836207834981564867819314299877841235695617610207772861106696285258778634031423832198766786234540684830506064297155127003219159345994968650659405538560259874557868605674435011407399039625932461552936299256484501824980238272081970237317133530758972609645589699339580387180297314574475239430362719929343718112873084115144563219148000720741548699312596173863497928984791633448796507097048736445642508894382241329439798995595107349830977614475439579723672798364411402748316140200761507915316957713622856558257829098279932680269336704804358195007757426330747636140012523366276585484493484586810658177926849903924538358721591729606215862535876376232390782043205760959697418136937645223621341209572335518852767056426880934566706618536139761203824715076448059390079252529097197930061848074805989182184226825517173486523293978762115759370687983613317729863454475204725364866654962609537054926441855751852054867753837092167063557967483100457096048920383581896185749990564051070293418804165241387939185492777373131183358383974964575259914298768443262917284576887360168941064600604514752533950218973771493520227064856590119707454257011797050650961191381281361707955089267883732421161206328978600858733053687927241559652811641476742544623742285715867695995046243829770580382399982552796560096940884750570276687545937116202680762069190277098213887896889291800681789833040570583588364321578332701142413804249387485088370896283345620254488987629592767186450542691122449502182911662774852921308713553256098137908315168159731576694397246328035848156120400821228272733749042312548626228912447880503513362362239304646443648488001667113393416958772541486527605116590931533250424650508454186964723262851015212602587311497157834774725328701193598900052667050003859065434119226692648971899330069065052713922373602384187211833104185878261027846734058709475203605021033446868825204105407772721142040362102348625676270826616902841950622362174615752976964515069946205794886982772626651351184075810613170340574971180224189184404556044716766052841463189868009082260137979647830840893406668920061533838554879439789329130185269672285880509553776496993614565024256004291403789407283347867557800278353537386007570115284418791729892036212542664377290323847887476761834515220463598202818271243937569976932904566565108564459540068400077789332715670701539049967473452055135719592138345248596564484852567793208495067864161379787240429911777187466124309634040755742029559286956922431199783705575117050573516823884229221341514758623322960669062573312966905906437292892557093148395878763470134109611035475056531361331246419412937157792667847647023000912976265578410404047751746727281494268406239109810882912497771471792049908439015206024602440129907160480938021877069747808745367483643535217712702777865555054059657216247574958182377588609627241842172388374941499126673933974144811261144686254427480891626034131935845367028467677745221369139563862627111560899806092991401166644039837361415264973336113047249942258630599445269733041118550499251869852678718913248031053939558632569979972631877261728668027278756338689663069414763451160473084657608056910039142773115813466719424206660459027771144618799017749283726357254772840673045024770050025748210784813299943809813139378365962880841738489107883635911299153427477494546137695967273171581518826859165540602427948439969826858460094754437363653229701735988209420909704482937916224698605649523749538521592636147687314759575480180715543730498069826587184292278284051725303917289044639886850835819057799588305088452834453591336143774746550071499084581333023285561555506261026684660968247410566460214806097833614010249435967285082146941415990826207969184175997853910602940075676551310247803695541700041285738669335215011874403464794050032125702067578590603069657070351195383833491854091561845349383105498179490823840458791769473524977220121935420008810818354812368046639456990774932173811293950883331535052478238191626804249385459833202645002674063669699576878714868993793418256749838633523654091582194166500076226716801268221346492436224832704217848445504011896005959470722171447612840895463652304046793636448966089601807911447604620870416207840149617365550775096538444774807895362755111119917363449384918227994379602426890973061265085039554040042742203603390925855580736541917310204351243988406264929166456742797051660592075656490955978226145155558471503498394151531966922379215055097121445322205771807849169939391444544936788549158875439316911289392547607720879715375983498181027809564875698706434042390112874217586092401500252899295857899793702312960601856517383290732921246486704433798744216360322969533721878843323537912841124983160343482434179660862225839467563841295275348028928657920286605492763951601207568896148302396251246233155711799352322631010828252586949142929626885761061865650301835723297317480475010095514536985325576780686272083788162165710250446190521551117873145772054966090384672030111414844417757003594644072871945612120375548076242616713410561382781264506331345785589488311650452607339368961778703803549119048171540959141323077829224241088474734768294132638591607826342175795787073205450033740199729888174819513308571685735360475074432338140047065052218587519595520726096312036375177501967732152751724691804737452157298378172758656510032918856544881014049520684557557991027489543069637976824439692739337842493013616970323305004474079898431259356958491154463765172647765221543634548822582297768214971488478952689661207234616059167377000026149074375750343960583847091960000627931223595905459166240305220716546051343697879288620377278272948479282338912874290159123332319136291365440526800060262412344847575729174948094059980618796790145410595712030317599224025520089286643582342460936928922099519212991401998293337518057945645276136928841333921937749457712893729086672500874141845899545416983398931443299030420853434803290529742574680819428238104706957853090246945817839949789027582489951051804069545520541919665533800979906788428700449515321379219964713584638668810807084987105618436376629619473657478558509166913699061283290701517317866197107980321759594652351441145591889478355677869550446304122638940012810071712168091719128827581227804476325072547804793542752871396622852581522507194315940788703711375224668699667878171394057393775901039500228078057588304493190664465930823205013981824573958562838782680001169571957409887111901532543915259636533776415887763312314096786020164819697016879910521498763638806790415930419678007329877805495779185721817247405419311136716998279793692318300618038998854351707286961270218928768256827382598170806258786903376738635308687188133646120580562854285939580208190060090530999582416146898621517429849066826108152706639653315129770548370313743469164647558170981052686724715320349781815845102092276849235871344395609009805367391000147638517806076289301164916691091024213081450344735603188945690468244794324907761465070546160313840872741008506709945573925215899604457266387609894302342790399875438191222929637464749446008601488221758022716764459004827869258184169442527164016509195684856516431338729347719553830727247595744643839835096869884283856076047204961674842513345847594766450843936868861575441225397108171939442431566509613971499058140437754891608725265218384497032472253321527539029847101192223880599093285796018543934353278768424455422579886323037300376723980896578328351339267321850930926256475116318639913811467412291815705054444402869381671008099667665080932085198416557533563664674959729088820882594528628108557184782502359753435997795690457167862439385621761264629665380287798003196464643135936376738227198433855124465572398684330240403558464673130631783598149668894601115946140057190544925334873587530146343179546755594900125941779848013104978562979745246129278172869491409078925512920515423838151129979281911695557782005883525841874493847960737279092980983131998240694493138382474895280417451219069794610910324924093721967586117249437981946205272454481608464485534681324101665547748625686193317978660595848082407423745677689101945036770958960512467728127139168955286371201390048344320594507399239171329422122071246969560472361497635888000851634823835530122821866163981768395378405496717986427873001952680944577774956386519204872318581552912655727319362387036906435165732816487686835906498284836619906372125281246976905850241811556976223561871195758564653354125781310498436311908193857822006530985749750043856048082526603806605459304275091938447443182354292238800250449914594052090482855426509926360535234155730545154254284800605111168284838073723797394014094039305521534756792476230817725719427410703771214402143653379690955655500967328498197128891175395310784038998571670885977443903639136096644299636082029600992564677470471883800675057906933486261193526109548099933697340723150078299576721953966604588868968334157875882644765692954862109243834001705093351693594731123401732917120787466462493008195023981469478928936673375970271208842865810464460009126242658315931629326787385657708987040288214993213733865301129443978962675727698937432578832913023821578348422206863021453909333247353997706064403338727949140020539373315784338290398926792376693447754944962901758209144814996663530371336056200907722216258645978054417593184448909711235509929572765144116604912360194910122009866162316801087159637292534987912334733226501315750761138777331953405865080741510031643596286095850293577316156223383236815260012044049148207663218372345168721212493203481199262414333839357862811673588889790273106631026163697937070921812520638552278239444128290431855291290790679390786502339019353345566855333996305147897854447730143352492846818643423854800761935073046375749247137737251304494153787922978291006508613674270466768692150328100564491207069606829839360269133280510518680483791169484492474756962848261932679108234204471793834799141087020046889325617267133224938989514525828661188578198557423453135156370154166697690492414588559957084801505129733748588505060178216291423997040171477478391628478054335571091743167507362673745516041190292359516221983504680235862369802747925240744842543977734949096927916113376564773973334855523874509502371481996229841613719467357337712389403155708199287860708443850901387068807196942670542842329182519270766089934867269285475528470473062498483194710897723134621825684637030052759219647259279922994672766637445574505181928808800729743942709659837865628872087059507299719842592298292655529051253081668674260508439538744928653204169038806794832453951920291207063076814554646275652829193274069744907935858965957100468113390904072398109815307698615200512028041509564114893097199426169233771146642893531709679043083566049275972004287220838319626936207507692034711772627627855566404773866924104473685524934957746832164527181532453258837485591121539529671435124180957150798534433462522593919440346857244986902280933787022949725343332771931778116073762069529305543257825398834395854588091481438713569123217769982248411035042784614522302185605358256183016931001166667332647495912130905375475889618889484230096241606262474804917111876811393858811001867613289365349062116876132250270327743082555359420103274839974941822111800330547032679635008479789716377821337134398204153129586998372527184592295675714676190114622705915010836303834271358109276437572257685311801240418904202332060272128047845298241823232747537488834169537567044525087890134055657484184147606398384310209168832762623481823656686469338402220522374145313093238120167741915519063524542941757580005032476932035407362728346194576486903489432767946295307453725338033378592438562019821854355517532214234022645097185972047661852766583067085182665299093902200775262220162524328187548566025772532449615020182781607451919341139325574548894009959636825023261626258395801678101096632672228229350229596277101045927690181928177831411789641793689395380996046889541000916416348722558969771829890974455453779913901291624945662687773081677219242145741915197369598298057339361662391371879094295071044986206405115651082418536626124754606521595379288737786963238010262936024283673826153968545151241211956545487288289459595599893725919703626801087444431879925951069533045542207793434410476708083274730229336758056512364182575774475096742548663610626069806762079399195591711785421875603577817861282087251992620333772081674864106532501591574769053874899313023603429657340310488073995829978158606789590688122150027851172335182858172265433407636874791656492731198404981488818510529456601895197085002009218144627925382468180255279304662159292845819827543575545914704938014275369721989630206926038761878828318589734911933352348123591035258584755281821291897467067154694977675700917256382797580597801720920839373252638039242699686139121601870993216567033449204807674404778472115695385366213383507371155233744437245700329850553217473876731261382065058003081064356759848609825529902615072945045157266466172128903588368800251926651482588370153309442233440851683532449837872794356251280510417291050238202111854265332491162456912369109481126443512408949974474275869941692517700181637520107163973947844330796901740766226894372085769342774786730348252248302250152945393971133412588626902972811676771450766981057939620292138285474943616215102647507657431762201436067499407626402290068464807394309203444526420590115537785314264749365939878245160567038567644961074963769046667188520072888201757001515133601632819309733604347794862957824136940895086979552761864500619350151278417659524725322458719099564291339997471979211173967677976997262851775820487986140057252282322569231400504156395057478148413889058812519900649417655350798668440205786158539377082925314604987524601368769218261011070096033298373374506459150074541014648801795582889100062210003030547565696489372823705253476318223030677372800234911101682806191551504865635284711398411162829627249406866796231594752943026865653082034519083991061979210006559120924985428032500998508438759306093696538895893144692123124439660013956647018300894255894562958625248400466858407367439819305810823924320737869561671504193756256299306556047317753418879989132241283993313789535560656351230238200486270882446823259874891294269047819145975935014600466353405315083634570926766088158010326674737891606989453239337307416360336995065881363061440636009286066243943043313196954450204035700028240100435531704030305960502455580557373815302112041259892404425435316726403730052554398183483620581852341013082368751660577124829620888441341500900970122013945615578036345405698091595288200310000196029708493607712614907444561759002370712560868296661208098412244328705823986953181754774344479379883778138979310413526528422755106682047010989982512670033556934333314244370360242977365728157092560381496198364924170813007676503316709445884043781109488698114007183803049353921925135203496487966109091074094599548272190269522598805760990824198733770434167107881773452680549983372848692190661806282070636572820174791911977832302706207402712250139129704531692261820024159678756914215311214895854814818283272621613218152692470649464779968482618755530851545976525854637842173501537847702098904884189061376849307774282975372493916630955632560450177257828420740933661212251685456382734223235272147031899944899804004890759565082892596173598764108969956769404289419982259003009186012476689918084543457503562662708923029130824232799030552853496268820162423979924794291719612342603868680931019584593014060932628211254610596969661756062284900499469874914389945989728911993341472596007906795713342678286803738208344815556887352095726972902072184177203704936849301708921047022905698079030969408928380075611517484683109338229278677512155875474683487691957420875011065411043524995257378486771984025964154248064888471776174611149924291771946068288234346423768700446706861282583814361858086978832293910282529986652084398216039075881097072494993757748815252405002330046872232584234661147023959917929593423227251524805379840478867700736152439224890374226976901653318835714463864160542753874963311430241686854866886821115805087684775959984114698078348377275725626410325843426906803681300033210547135141212842887549015943399269920888021706697251754859371153838330590887003138523755632164051048607974798367292518521041004169431842726401342253794253389665516890176565539994961118916050398663741115994357631367027213875969856064655507132280723332368656730771571666901692993703424236579060017430792310303311723015422028750718998810646121714357522590504189770273621061334223271462328448379068601512667478231198461796954767560579441010291092546078217777463349909684657730652079226817228026980380172894633566644775655046026478712451253438817754645663424802423260321084567719883297178058609709921361278269720161662668227707526129589234434812413352036843208050207553849628284701994735537711751577247973209048507703493465875244469476047914111820984662660481407234585693518426369271097881686725591897603016366265068890159690875400055288083764987441916079510714932268943293373698140478190314818990960993610975077882495483398114380471623553738186752371603040743136050544434727322992025045524811248974047719338194753120416994503742396296678922152774840341949640495115879758484209253895373163581895502048485940727866271351657707056867670396702173025867427954221673141026728560360304708440154312603562594598012662083876616418308505450214832199426314732694900104889457729816241589593925837412474240459840818964690387131865794485295957290114398622461434530217772434105499506502690504248669685655130099375924034834821221746040254429520475766070079402329117605836112257133367162712565100938495874485298920902122279383387538373945846245213622721129055620306357829604254035640451074208724628202354868917427666221929217906551813139420031386389406782457642663483361538538335531687011567473923963030518053268499029437427303026753129680907081269784865420907945365092729105640561517923510336990258632441104124169976289443836199376044047887052912860747912239625947058130130495509416548953238044576519467343329899517999885824728514180980138616483563095839362197030404954265216128905260910356113914773946430764633782408641178176787357399334169870812933907963718316917643742393958815974935151470688505156055726155511770356467021248711489621962063973239099150280482702734725048103105116420169218748952200404750027450936818953813514413511358247142713895763282645452397322897467929161771899754220170561563861450737478370951009552966343950040277756195095860450245851896719102581953072271835084697845310254795011099531506887936166721265807498119742080546324058850925323948699629760987693651424637247171899092120817787641153549700645313590529116677847973776629919769613003808191979931520156659940441242026417020144678022915603472725529444679605157085759874612601974833282565821637543252197241965416270036283315070812809677982076183741497667812060443775303663610469819323880195349554505451531412929361196755840183636427117396927815543226766359313752073430006269503316978020697186545325233401024246007130115737053867010016824216374769352262507739362234647558668152463863183067394752969200118891750695401772705515990212954962404708619141744312512056529985635837200920921732715714069638702384619582537319381335551712673582865009066230594629077194719102287622971088397879039353154067199499309110173125668925088460013952342194408623566630946347575085205226386263328847017573369600920349490360031816860666530022979839482602225851715775287935209749420691001660776689388676841367035562258171714348959614751207937019626794845934586515248109949086944950366755788725622027850672742690878509780988836030295601894556924505173700763632445160542335867046877005614134805696732918224586858174766337839664176051923624043676129998104518677634642669761068222246018532195359324445440636787937938735497243020238220360224629155234770798478908729309780548922958006104772462784242497801114075114506270236881962039897657664777095623979635614155308613320361299614700850407062057760492580308319820101285646938314679581920083679408166161797429344804301813693083336287451364199905916379949614459256321381164262348555080652815817870460320894623711238100221636779677739480617706159666802033114057696454299421905464641126495651759084650030994560569366874430682983741880655316406422556556305758818694849573110497413615711148061578724014789427853934926451567305005986395210618413962226119502411199524224577348134511435391229216613784058182242662123849659662393400749581817223999307054808770560714993223659929049603005112228272131353191641385637172614734211911068415354417122607027899341986450249691434464917777505118648916784782968435029862707017935592801658977677079085846705459640458902361877048360593448719932835767303900674466531769034711156901395191644883487175026375483762952331692807991638871788986140756964375384894575016885032327393281903524570923574664719762347330276912114766979770741325578760507236229789672319649331720606398405002746530894932740074408121400022538125193962209967446103552450387447089685906870170759386485239770638173550422288150865780304222287579127537214551578219020378130695504570019076168484497640049415375975135684522219137789221602122415847177246045659176729846819229601176240634089477806279369170362261859764656719581510572935321057934898589937919785437118971906225726335458144385180535113915417157192486579680621807652558002552004486298819776729802097986230080773722780590519972283360758295112350160393238398383769885145811394686470421605563443060581142175891755029415672809528895360505930519744301723662238229706332233365385197432038298033400674457844451854165788723139188513677900717582653885756329544710726685971505376196862741225474884021921038480269646954676315878172671498165859197471139753371906729174271031401298709513735118625551766081805339506947264883258524037331449805668894361545690007739301680472376280097196407599152713794286612858619193120102462081753176489472856116038350699224974901684776356355038849850841999014126549959529428038075800556999949091154158757717349217229298248497012330874248207324698711284156117190435608884340835049099714900108804999193530721571789066027840774162951258941336619129182142123772247944225891910301373616375175358162349996751353335489440517319153829042224723048984346073001720949659068970818912250024348104745811001789612652345631231984849096642446606939030037734730694903539463871760026702252249210342527657883812018627674415926695393685134040835213910762917652334696200713470147931912582339184039499185961335302345880571540493971614154698714014934513113139192993408430574696433704654442461849919667709968253126444169609049717547267935388086389428348642504076522811342272344824526286767235796519197246112187178732045025170238016058317312590775044687364378102328514761889646688901634380461245504112078312976876161801320889030758665889667186792323205377512127774538595582805995303134130776072834870545080858004999941710740583846662405613310903106832618066258493238800753926662488761724163214837161147559955914892968278829319841113978426342076061847198172156394234791345543055991120739660876398965065724980881837139157234709329654709274961082103417039129674221002399979976702572985312456334162691178024634124306324569320314400067507523790250427764537519507910200700564568001717263624367071083054801030988238643764993503688571984254563342134475899105638078116885314998725333020756797605007878221249989578178389385457243343213548491701718263607016020190733384776875062041834784383226166022183869135730282532360419897682526915472610236338971526087749604182033234620793079696149324958040309568222968682099379851084172484413255669989004992577953971666030371157333874871972598589822950837149482167818707978952761683076822103525172088996681279392953353439999391032146059512040612894478539189428806134198668246298431941770535019471130309129118824451845112059676226807511356138784601832856581121232096786278998060936636571670732884957157919535156580961292690997067484859617428487422347645246977276856526245259461901011439520802942585097890259597247586619922340114005427413530657758385846963996112688937122643382514721628689851619767786335527508295828040329315652251257435758164615618467147734127821763112228233682489998770642708261710544568623891274342452507242179311656742303973797070896463676582699257864179610429856759571770479015036193909034555167719981455147301779726257024742877839020570276383441285365217710321985128395131570039439732485930585230785171909899461263168019563490270570072614148042727706491702504612338701241360878768162024290274817659164977989031987868121621005686845862005580905902506678781096796051384489549579269254452010167144162562863648940366957547678667647871575091309330250038504858269410689374973229697681680308779870019015342336518233615587330237549032198662481185771653282638290782841090477778742109651451000955132053798723682803911266772544927579189410242043691496850769816015955206190625524279753485580895952834150430260101881133912338027429838883589062222489067707616735898288194374802754767092545851737866988813579417245259354885559732914580084349703600139664828867471678121593898524964578729937875400128306190926423683992176335341570113207714139157015778342610408885941059796429474127017280969973044504768808238724319750170362348080087328795986514109095440272694512769244506582076139043310529344580600486843597145811710262424360315018665222418139979574539475375228565841487025034045297100301221373504231116878753550969427641564960359158910270114494066064671697600382306752869262181083701491647235130055119295931535774832119663097585051151628560224543429873955295126899078873496382604885811823335047397289996879984851810073626733782846706437643875205954768377074712942075111928569754328111082180034929674997155000858062514662412039725792161139122939175280055804567052925007593157203599429928195319010822690016642047365523975193092668472291951347796558551916045145636784563509216747809070049958898295766325221789910268433525984628793571012107949295751326711540045620613060143171339119250751385486204506584244007199158663673147731560202278150985280790564346244992483418783674275197578675158757665880761462532311565012854536275259194579387576846236453985768598317133928040116039874395753494977866032959952517975845625414605026718937900435767845051981348696879993406964649669027653923596351194129180265683309060879328113800469757289695689845072160184216769891384634955243126305509000231852913306271889300311611580251472489143485511870963409767037489916223516818575462781296289834998402433274055541548587362266132027908343310270293652901887540677893587232253416940106826123451199674205829353094615504419036637289079961642739613581098940796358209921077171029005378756065842637894720448830795764605614519651888889566792597010171990011351735327270285281615919017107003401749031596150596902668271951682222294364589584528912493458309143942231337418127307246496671553363211174935960314970867750457368208286153258946593926164531739073771834241847151474511323504613245070119311657361025239220545021936926958533734248338612637990415478120621480130211306723922769887798509501967850693495965543487897482722442475103429389749376729122892862425801342308596783605273968363150165388778409840764658345405862252523822537648084742751219407346952277994500581258648276036695005182156592082939702699874117909963723801718841116623027401777218899439335064658167056215200292049935916776597513639257443191790465310919693641725933301223548289248794755553094911801384415183388776741323449860778032747640562493566239729164997347917680702605150814226978352817951213231396689491969297757626897619219267716810939004047172509896510270400694970973135583841274328806818814447685633753774899982469778209786822108921555150774675120822671035759006539502349849450161129348754195714458187851264527084790990477226512512965323955831919255768242734450131041299445105883812338029677343494562317482550243860119751873092828105578293244747426686596622218316028339895109732817638364270846927754689158907497147209900002168529003409969077898508382127948212882834257881384617964269982652541378173411401272027657563681456691786871629551020358312118010575562245179969810532343686337403874682427941992330660126101474932355675128671698880476757340345240379261589757206538276644140243591448375966570055514946711001939830628054237669426184182781590311224909178436154615498910364840469574822053279252692750963181058145383901013531721214826795013968836851300139512246310245330374826811566598251188399870134643669880791628474253228426947080441379705970495270390986176932161838900096239363450336480728358121660736783390153601970535572464564299058806864333796686387332594469073153994385095844700208782183917632033218723279061265118003742045862385255784466201248679568049596072970397193137078985883246128300702052885525594780746421564585095609687989993834458290286341002657251948825144826747690349719580442518778780147176492919929705670541876557866160880278650781294603971034743162119449700828656087138697812958862341060764175561728875461987392412027770954908282267755719233294642635831139364616788621000533190069439212908252999453078905637777705952986924168674312704339744669618828464804971433053422940988214903751875430023382739623158057631732036674590120546730148909308081114305395315207212224910493384820451384991653659448978225770473686367452916258534384291337351979164958424206426817792537470068229855493497241376679004823719823986988819747368992479830016521541142569954006792076655834854075734380452785393416591018233076739855859951410119020057441660408926489240248858744234052235015312689536645294066140432371538870776200529913862764092702821705479233159575709417292511938052090281538838904153719905911091647315766800735523857248998434279507681260408890864267984054857680118618793055455315622205911077313554678476247214182562353412366516821551448538698801178741559109217598381111905727628385072506908609194101524219004318791983285919328011945534194082177815445375320490267107125205829887232013223554899335699770372084857430405975261812408871780836901624964669913601205854390535718538731840636213507122526210291026705100455207090799761916303737611095498718015383273695539367449005383389017218914378891403568432670564378038585523678869524692366223449293349969001376439503780059213395617145599507673738886653885084002287206436116828369384553066032073403492972311977064650524639891378425629253332159638893041813032934881952132399467976245668543623780931542857170614956164264501651855682813768855346286854094720443251239437403950647105843269022721137295157386738355758454406134077910001701403422976794885954473027461166220587841397840501166689575531911597317805808102591150807553757040574890431224836986962040645775994581404728395168739344090661380684450453668777568518723900133635942345468808230315935541326100872412112402184210644842784441419043649336109690467316829152591954072742492641626149646505202268847202003522472944163143434566371337187056519749048443128032498767230014738325368105328685722551056006904268081383731710635517714655609589045393746852310268657794879877030072609762526777676906587413626996300426686644709623386418126598512445350698373764780993529514156793692923563876086993599334972521483921716382480371236195248547504116573719254122734842113324863025429700663774808232575994181772898649903605700839743950982852457845840949651080764903822208659780042106452117639105404056917648995969185693424149218557426393076637989991977635106196512517635575597894054332477320213104103434901706350025399306587248966912668161365182748892410489716557258371099007335816409576050769527214372327366650683115150380214418419473594087650996460404736691575324223760892037138463418698822310363745532985115120525829616072012730037063852115816874271910572148573238849052653845898094176380708957491955586066229271021249483671635201830155532924714632343434264766985024253387001869670061041916163130401004288328657034744073073443591086199025089632663862284167781270117264344512941123419787277608331268860291768876962913670657509532109649259963400454666463954175729547584613759945419011937954679884331147629940397273973272777746947014520134351711838663237919005139929043313258789501219489523017697625512126774527762030794015328547570383195955512766373917283145478618763190325058642941220145121600343478742636109650892881705079013106528271994691622457855199565910642173301682067979001538078601743884638162474403077860365622473996483497386365224386071708605904734994856386863701603347007540114838735654914080295703516356594994280824096309295328148161496133758921797966842177929839313857343793692770956012318748725803825933897318645861403133271042849933175256403068696910129410121289164424272137399182682127085603783733787109968104098377394182840639767539696935306818837422599490985452831771065986686738358604386454238631747695032298720117807558586836496994869080140906750689191320601472460383561033928714866291770324818162367404839338290964384174539185327365830116669403274602998870633572721375528987937765337424751817575585993548538943792777456762803173152597416118486521903994634406542092022457035412512089719716903824362547244173041598255466739687140017907316522651270207628911428971597712163138567355789457003975691661427469923898261541344493118161499559424251945323748478521863105555729254589082706004989495031833931009839094663432828454105993443429528683609346283307972199412413650577304009357170229908626694729479571707279191962098569410788797387116537722426293005159315130462205454026604104774505979406917257443362308390831984482310200498705622840153669147994576203906824808691140793863550209843773242675462273964723207251333113707234133332158794380914462429209698058958269620360012301137494270458041541971107414062230538825504454778148955842913357348229414247554335374950847816529229479964651677827852466162472323658336596992793144498411169963953887139331712871767095344058995510829285740308536098447786655685608142231763572727444034305745793313100331751927390467770902125435180485204471628295520373761051359351373576732945520764899520308085433009439366585174313415414678262614222167278950795738515173225106150789170881856853266107791657747021373415176273082784198023069741752299143287874627154467770244598386700184535105719834780931429162049330485497260599639961703761037119953035090240627628758270352790550124118926894974107653845024624222721268087689364866458556714246955179465271394840458310202672069358605556074069439312509801020169066054625060259521584221534102551029045794300306609814099988776870029833320436067962016173668301076460456103590502575792073826138460399618135384726627291160105821179995304097970752963419994258938206770225490498311907561432641961426603949477307884778265277003119369464287892374809424852137291290539834684590936011126006017998162459296028952201489720114896325655803890428837773405518972948714583045517236159990010715863466332670076949781562000241927344766917265453550672465006669029587254494056576685826668608595318422558790504108252353639115298138150757010689380005106933100900941116666367319408353402147245938236170399869142687829933986067722936176771258587243017429809482349794707684703513796969677837626807048712759726293296681835359677358632134440166688293185768151567922875569810038791965306148261881404448138535796453384629455763236478977717294598730742067509147578588808526369885164150741813112799770011201145952960392512272653309439459796292808945690858689723238964592542275150992808925906041700425752142616938587876495397056539711372381767698774894257167585480760737016381620420544123996949692122388807409536758729380195344861772323720685943826313242580185963012364030410139186343444673222429143678622432282285629182647870000558550567280322218670805910654202539734603674897313721201460325823716144885838574191946710135502706128228146795635075113186958580209396301776785477322141977679033912747183143611038857927048793842552894970270815456611821031121643092838972147369756612082976609081026164061522971328555610821240102665756065079077641086261129005376143929758686148109264012767519985797483825928014381956033921218505436553539165300464048302215496172120936320013529233504663537387682776048231473271057316185888426088504641345450429668783339982758784327611512538088806520473687554093722734502512186405720713280275269551275567933516882426530634188955915626531198636940094361643706653181598991516973296350454759455467368069967384956396810302756773504252739295140644935857792643530337166810787612508041907035946417458303439553660987225805306595369849931511016431002992462111798864813017685309108292336710226979599904086256070213430585188129184328819463561608387900255705754312262183537869923359377578448324955146613006644754228354888093097478470009690159652040561165926016268379870857350875430001019545291155930268071964211051810374784965481203608134831606963937872294212339676696942537229916225539001388774050328601205006610388600923634343828356668785527010214874969228015023274132702518759669163708840485270710345284365071708261179038760334076501314407024393462655038299970858819410390026660299698377097308771396552600704074578103166680242631661033622502564753785010857284374256180532633993019142977646027361608175873216418475446656300634304252153110888264707792201755752135704158952833016809054585405537101506287423356552805252951676076536773740399609454794447441222839000930077800873628041256495215176217553285578257045500624997424740835939579859492427096375499624272674480346447457281346583065847469826193293763869326860796304061413343978248875346078734327025643572747911598598413032573926703941873493266855844649082401003513851393340193300429256400916124968574427158192853358686483528045292014950650902659100256597302039908947542741336810923720996647341430048398912276577161007950442873283403610949833947161503752139550285267978064481051108985339137868317353533034170600839575441070242647793432284372730783727081463095958575959409433378954845926547066593510856285469005187621559625687945434179114627278732185798698151883649891460050048672501696730588254918905865336744881232205647434767736805267253273224358911264920011321329864666473924626809347014452699912811018883253758180774573228162020404762321412770399770193012875449484964250803984086226678621839049510524527101941879692857463371828379880686271568604816781406304385040230058878523524200379843901013752031625382281061693287391897645357809479995294489623116431465626345484327790129468645863422397041521943039629908625879662942188988939845917857691789900292674976581059065022602103962599358579434049956609007313555754171837600465481695069155944363252101390122638940182974058258439945942001053406953636136753748939528793117761343161940040147174343796849024602122031647407412869724743960971097488797208172774915188639389996810248889317606968799453532423131445727863728151670168430821681451167139675926015242724999072321791157700668731342663835694613034045682196938013538876055307054196452217698890981016023325799048962473265431010005672491362316565185141379789843013296343572798901994703888408466444512725119912918021093301396632530085435061144504335772430168315671267411425061194528243599412831177828378845488098083158047085270558637867636559380303356323723110924898672694814838206572292896208956919448297453449692980929101312521925946794111826758966627100619368949628556034324334874303523635980151235258001347669394761965528718327037892558430203434268469433786724421964745945588909919019517307600086807379855836786824409835771036887691682555394450752974666595258956062598701392658812635233418070621617152120650719475136518009492921434547802775088869046554591933464454201306403771786004626793633188182084101609714153236194991860656281057879287659174003241149951057544499892948461861863270479390097980157450389654992367155329311132415802344132886833345091455023061630710111210799961440288001696221856427410042219054069226307126839405782445827054138505033356644322183546344755978404054973603311839580591287046582496390478623258238887493162485577706725894488099978796263353144602979203697485249599375307728620657269127567885423315439419169010038861400598433215476136548038220022578557115029882315306839220632268155825663943186451940466557458795574275285759899739008903412677041554544528291829998475587713132453228065238815656175553770008891710507862849103418861921307457332375334207112660853532746605918466141631563472355489843430000467850766261078647541497126686376856178464026136208968517884937962708476509578488730693627158138367365829423942457260190823003237708947257506071809590710028893052581858321892125298526413834089200586805471096416595137536774492797152460165796782634521908196256527542274886897829479581426345740347771183754562125232263379581667368458459093524637544556746046119550802293726431264571706059481882144681285643551241949217442373523047528333027693220388701190737726207175049560547308099873165295905226815581801613835706611104645335053943422964138272985651683714867053022016300041600924545521759944725761997550917545637953775335022141241012792765088780918535807472814789773749374749262726150294456985781910100587275588370330990634177764635671338210297844486787171582376620833916870248568876743988342005751462761838141337705988487479005158275313880494234451540569914532782249122671626116030881101950245021551489854377672289775091469720094532435706399325135846217289882666058716204421682486581216460681944851488180549734956234785611949633507553808395637302914179709386015536334103448196152878002419516586706470161682631942415272763791007126440576232351750399462921879834377634394750790773652583379421795096333072810912397333006388566279998529171331104327127519135283022096801730137520723595083299613506390897030465698272257640031305513749348022123912297209259964918244228421488510788137548285984956123576172036040418010544724528277251722488531366794465646676672052161256534708319328729398745594980375805013809293657678778997703742791322586431185947068978046823812875501018107775397732458213187322918785429952329103737956890310496392526467754432215078788728570562842106353326572316867445506175399750348331710931350422932991043000639445691522877599428842348907216771284524581420338426895046672023563301161876587253312594673345307010017760883698216112671941379865766852854459743964956818529662043238591170239435828621134635424266768696973546401420453631313655600050843669242855481162067917783237984698501906016828644680383719412639426943617286152454003684126471551692659121861359183861867721889271196639780751362951126683912277393272779073129934716927507518133186206227394191201707744993513282978716502872979853833866633872449242019052749297729939928404281999795365138496688262178241062610806405731887578292057171364719331848915695995244440543721023209564408011701081138665769240497763156386021972429553939646823216294286110361809395219974584300584997975730366386991006080103281132039141774588022936765185238111824476677691230526352751652521149304729015177573197462141014638744450339939746927855718459258122885992538947072761654809712540814793060717596604957859996480288999530331028686360051091514642452291973135050556383591850342111024902938978316926070414850882433590118164752961010478684822139755219973007201535358120510545533787170620817681734723758973442442449731573158247589420308931267912556709704563073690276929647147061908562851687440940667683310370181479755191383019373841208579232670721781909700553673694350341997227379747149655424611002493368357898012326478488344701120288373378817891548009880731006642259439092404636593870857288530371214593276738534169530973246694552285061203210100921015617082703996994308249945532931382704808715349186297715132822367235622214696810281982757395738404248105991447690089016708323712444601273860056686622482146893288859624565087365160607237087687247327205675449620586307349434092347708502439070208863343623786758092812469031543373212190314144873368002358914203690256106451514002767732952457982647292598844508097107029253525841044353880730126613736457671538830451243374781636114153143069909218485708216212780229074608921415667095080453013310692130323314257046231316472698258703281923940841319451304089482962974870023780229136052395980643326152840938306833728704183375941892489423072845038189234595218352261282231448361289366070547466089147625730039252035001759747275545728279268118925653540297816622936348234470467955048694780298300452130763080255697578853539699479741678196260626277653187126703828272254695673872876890698266334533058684148647438908954180623677670951853605479521807403341828344597536674701056834521949439910574963873301122755659250854384969263833075202669577441423525206929296340009790563638767532922769094600416438722343971765448714477265062163957016723641886618187215308712326678052765993499284901267157229965653416002597837688302224679760872716329424832642299442273567331056541792947436842569806639404302781100870220297535099543818701514171325560509504732549176712669695782215131872085108576828337273746533599346319449172634023025461938668646597455568454856320864178573194280032853035869713288798816299779503086357090669945794881899999501068956538001108645092405048684955265251633805949705759963179316838662022349406981100956438933866429965780712279906148501701152597469053894337827589622261816554143033808762874414749423958174112709961823679752867262692717631206270308642496303570724319232891927721150647924973473358377046562130300755078065906508261666420615756367935747574840809607239097869563368066305129853174526113549898435540652522403815650758443641578138694893929309096536028297873399684727832524827008969547933518860163703725106179868261604767070869529292702712956541780218136128913365164404737999622125152730180780493919749168115345014548835809182806698618231030425541410550420435236286703101433532789750859040039641658651393401556966117601749235199929152286937432352630948862104691153493298952469013124559130038810752780513352112649673573893098559285771298324511130142563923205934896491645273255501254486975362905470110040057659930497602535445800289893334646685601679083398322425775657500098503242005703287289256735915889426349741561850705867132747936050183882753835058324657364917472973120314318901548148225029492558241280319649677229865522017446348418130382534712311437850681011603863983177143233300157543876167437448482940966621642283881034977701560907592971266621589757056968830776440109166979420664855614179364922516854142426419043979362302486324944544686940450508822429991474688559744166167606772156601018927613855157593280619765995487415796261373538605201292313064282287739586920189936905121991870464192508518832255739891865067652208374214290331217390295682352912468680083514750698061728131004020838260002470206711796600230374202434180202823391580508707550268915047645794203794245797645090884247071623397846292399220956477177575802059642549980940975456478012653396638579800011301548490905507044156565905080817928444520160273353500426368021412111328828903674760121267275316730918349715888667489743062521872988568783699077543427792750625930973601742613046609026570541751752935966211182574230806210555058017417107924990494781569204017309623228935163222160077561102399525773046559277012944622678206365119336468700793320094825365693819109311482380361708144952102973125795005284444978370150271876505196172255463277177159603815761170234327688390194951069056666339910957590426544919175731500620364458772749298050579530588708759596443523845387881668033221921706381150837526079492206032260877675659684966143818971661726370937951990986740591871562186309860523869574140057911209110110343938596164914641393474092534479520358580044830856394572786948326316742451397000758991203751382410536799987335059938183153487229099408318296383196893275450272881898036156928636727770613148701095470683621952579700788305542398593823462316336597296049104750958129195996121462183739441692784700017438418517669082786822144394294420369555951682164317865482235471272409324752817548702015293278735270289293457826483867510387235924859135657177127914854164401160765693507538012807440883069743204063901920936334331526574384493466829546272269099963579279758155520188500005388584632447836501738807010103196000198399223212756671129708267996719291755854002424860486129192750824589921583702885384789040863028714127845504241501776875315573242815212323043785218978703538421631010946150768889057843157030622630109777179698206508923631036745451300560061844919008374471114977552001493812423904129529166538977311664887195255385035491754841122509720960985604229857054846694215859242531993629434065458795668411889067289858966774593179660838028461135987394476132254488117226429487054299555039111442521972933287423148349040889505218901933725432402651750182880321472492421719147438520310485483136456918528327704267627881783264367956938133399669822348013351987059597457077092333980546966568121464917102046944920516416933227908754759741224296549929159834906804310875336296440993932663361004339024175865214055553481527356168889164333349485546469133910625231989268744498712847804428983126365859276952121784857045512648196987494082086278960257180501672321338578910455088057904599756029200096169455179656320919066110336150659914248034992538777200138657301061923887239895096132969595963399453283624763244220532857727476321531255793439190364914389379933950652461349906343805569695085197829694310028181130178020556214130407167358674052617195969108456833772487149500659675967735141223420437048365781805759142554259159373922727495325785277964350682122334766640599473450885434120441418404465088754748298090839116659034254972320726086053595089303194455563829305360018241988405941986404358431565651333241302868786674110892354086640991253792239238276398191148647500659926830433894210136413151653145909740706591907228257675913525731937465868288608353781196878107430138917479416634832519734150448297773722106821273994832004058395417731987395211390411751487814575746577833943984544208896117997995964947085673716385292376780569638732745140857472270460735520771380654275281206732299307496564745189658385574973419229462268209789747771094671818157411096648510038282968303696347764882655632994676669392116859579874342423405354099969116509438093288442001504476812847046780899118122264202887044372246787361516548361957794032810721977106982090205888969672611967731980148632105652777668315383739263593868805514849043817945570426510341449298344693633434952444540745499494725399690693394321797322862314615803652740896247361130254006002734662218363295758587606052896363869321279898581703522153159693856183475825286136286871350565892024245835165799640413631931326704192211790320188742037359519229175522076860306833565110711167707960228422089726197229038708416696907504447322476521055585058765936695758385833503734813198267073671379368474392167293728505006133171026667269016526893128129798350768095839663996843600783612194968175551061065677941928275195867511160787367375141930829297144312548654761590983956394795874106165760507775695004236512846273261341576045509579226962379863204830507021829606735499295954614743518633387220031687673207865192143001220113096304819360095816377624800473383984464703600715699234884126649055433360128955670622803811323789602910369714431501650061124476014593422095020449831968255732220459793633873403095464500306815858661255005248886853651237193977210196986814236092639505641526432094708157155845449968584557327016626772106801944282823269822858322305496180973217210941870871396352975136751887814929347270128950455728435390892071244524047797592498494270987799858793448221120565956183811561552156307093894738424460723063520931022986158429539283617153019248581084272944320397577398787892115535773150872958071598272276993191964792782094040750238206728342571388962109354679633353037469875912808602866271009895048034555943335041175488845009509096562219085365591113732761058729461700593751189327112774224814574536612479433588790444529153426222574665118337011716469592696046900704872801502521375062440939693268210001718905040924049221053147362656173487838755680134490355592704861484330615730970347829756715982991850007635678839289834784831932814019036882303502790593596675307019839645215232118178928166296772749059305328621528388965290693966444537726506518382268799511578581561729122510408763772035580236393121403522234652686048350542963461905091466384704631689356789583088272616467590934610889438525805231424719238037701191005453388463910284705826165765754465935328632680428817477976606722173103124109492819348865170764750386398057544725727991898755536089700339398700264964444193074532490449737855299216129208274397096435726829610195151125188355898375645334700625735948166929884589560175447988573313842739643661131723664842911011676220114843575932035468159061138438513037561760084612929377703079716894319233106452053262025000356368951477121566733322687317640742758259939267270899519781877722643812035607217798922498056073451511524307763486023258188896231895992539715529688570743752553249112238437949483928885402802280291748888912263345835516912693710294369004993586354865844404160014756450682014288322924069145144826730834249459185280304103892685234867647058782815608748018459327480845610321706756137335654940349139354518681493454322708683128414560389687481615740198647533899578503436526069582646058787629967083213720769787177765789050161582081105493850004440256195351049840339454788726724150033422059805797078203311062400071547667258756671266298994481979698266061108650873404659965152644858818593114929085768585841975647157489281429608949973457589006289754435516823527540718380665304789930059863944511521079084822956220860779961983603410192998722109040766506253506093162577281024442748193961594513261070321442539306508617799011537227745562753972607158494398994706239307811892415970231233237748500964463086779068016941990011629972693500126088404083950047312352931754797726460577480157376215050709782129119932391056845592569918035563456430941329138180749361692619657641423809911993565550004344138875591272724535539160652898604163936305937567015945603888034758504369476096944574620967978708000303428184063962646773803689353061242768652908480262484660778973759531458771641536208363741121515833877479971287356707006152522620532120729683967143958430500161525323835037568330724723708736911633280550949645107868528828360151702152586653155246368038729154127898590736322962000679656487878065644421782456362335368540119321761055447513508662003844893914354166981373975694674356716415880978068186658951197063218031663192781964186113623645167365511986232113836452892517059576266988798666277175021039127144273698923921527338958833409102243224447434607409438966897553077235212814907561617856675516377047831568217775770541201758581526645723253149529005822570211902554804792273376744225547321959637141529550003495374858128920813004842711774351389601735541126341196061586494500760990778915597829934223354791089489921440296607004747986425543207467882252120877187568705325080684151203888216058370246716541176744478972755185532071995048109857968371685766679712927311658140930123884899201944184072922094806576488971739129281278697376606797382736580732377821630963640969415037945311804035082183941296932383116195439220728869536199595775155175609612922454995544460360115802717861759160128864883922697175489296868143594268743987587945089011854112195687833673664047184620453312014271112934115963222785602810410392336317290015105520617586396584068664839113967445208695955611227909928151185973404012662091017505646449738494069532880213701692598348778874821691692687003627194515171755768374071551260863554209671167348515987120753544830278171467860797996661554186391889223141140743164672777261467436853366308272903002845016708503060738065633392117389518801460257836692827904117469783217066979366305833657433494198858208977898317051317408467523444756379312363157720566565714981795568240582661835022341729556989137845925741222091097190551439720571728012574234975790186080806248194478198255810004788126565733144163861396536552090846303633112877812727189081353402307292377618366736427247376246335656036692423501209993218635653334628114149906020997596191728374482307166161797346788402099486292099876003609195633021527226507867722556575689248716908582884024271052815598491438948185299809514719941820858097714520557679913056121829340456099629779854168479244314570797293078858528425854971589049426128870740229703422614781049104115042152850660870086216214064749627245235327926579339096978049058404497930298033655835409732009650986973976696814738708547987049748635843903471395534991610070147484439902930117725559784115326181075442233204453207220946641685360738302087664415427710500923388098087690557102162401382837373051360685514047055448420291105920416802787485693623641481536627603422665024261469057249067754127139346430284800567021845908990742972640613968531764514537360060743719889207872093946859882209529390694807241238665377768496986588178375686597487804045556007479161570883126878595241218617814386309010924792047915296627862288733511544433656458781802396088164987587214616203675257519710696230724141339130488219956020262769201068450058041217196266477105634943967006799855845029310545368565368802511970471853810456675116962622284836666751652972565028691239331824529402316537460792115213898371182118510922838178818166749654850143978284692020871273959115031038817600026729483836152603641115560705812078869760550551561969939901460265032329389170896145441432860355386948199029344130181850347381253089409505825533726996793176708264452980037617979243802268781077669711907278728215064419404726706069645940259919716835922472019866138809493660913957972367473455488475079018877415787972579997578795923109995032347905916232904114970676096007417565066800486165859268722963345641527726022869739085345130541027000827091814369638649603804156561208903030251965759337667878640885840240858150506836162804302080088363054350269860874844434704979890340415319035561036911422035889777876927842252629339705934066099567868791906518915044911725217879644174098547551304057925656365292015569514862216731158929892491501702672759830067575481202086415376888830676947316517147714869350604664124835821091507423156059616379612888292958666269397072086895413706581432104961808731161517067768919440112378192495155559468864016373113042188747932312896447894501407654415912804520550350147742836677409698147115866308155110347433813524243334415763583004531124878562678621233263534878173878827870925881947654613281544653121876976091741859474326733143296219831593954108951326891559794963840001611898309888527898185330248854219104212807281217743254961968795962587671944338668518415909507073499785106760229771154994656084855917423566459805443355191110522180388308154086353048238886788690516519358806050622641522746190501378161994542157074768354041975253244894245641594593832432886331573242787317592656887059019907652795321398455213827947516307302464104363842354652104554852277054827671223982679351114848383320610470864559697723328728022822987010651857019289970794463036149423621809643966283759147001312588598224693499019920187300374014185960113128662578241189544062443576881020017612842111720169362573763990876109892450129082667670694127868050361079377604027621272040251537682785073851653926043958984942235182580230985613148499235920206397715234748606620754139585118129589955229337372332087207250780597216138185231864063405148806304184706968773313332885164890813426190591764067344113028992169500008592669994543881449094179434577627631949015334619630885682389554050375545884922123795614777182540558930054629015194297766898057453244329635133445090436063767383169337890527714869513566432086356437541357488492985349426494664577409204277243920008101137081306774431412324820207286513797088540522231527664259634284703867521598247612426991992824891314575016826630600359232200418244493314320923750403427519119450123513987529974587857054306470823047691143613397627543717478445242518451936401204509196021785667012748239185566063990048385017889189970861974542111446526437971740679129830726394575406954990292752457866848287175980784310379381977137089589413513657565885628542643637276443388773534302128649477938993772317097352634461892560759711958545278438211506186962246073835901189831474939395125314912882074752933059598533321874657196187271918665293582900526014769178422716437547607980456428872284054148237101204585303686398087873360788376539013530600945578258067828714572505944572597420148172894552776356838446558760754532145029753035958486219218092035100606938908269961096998111467675794773296746227381466475507892224627240635332387960202552410453281241620442556361138561372937083222027810561238438659902150246632434171779924305944878244677992797841325840767837648848629939831447859811132706105680224447627788570232803720442799520929021325737562703560192497818618707606749158157310821151671493881198659302103376401283758954241798980348846950825124149447313458481493136215664736261854162641910296947166074655434869181746068217831584896806591266311258889577928240748271501884127685752816708006981286286247442710853597341610350592179728967211960402212819180338629964583551123934940388321836387998527248475307878936644655620035180010498808915553322322841736032809606866058807688590847668692789072317991164843327381993618714525016082967180722668795039826837807363741496402302470855237567911025486785431264865246611035121589133348390377928834671008001257288452979255027007472974200241674507538551599450156583540610265810883337078259890437179925912773302258706098983862062876993214888927695358292595931870884419594224877853019763702659890546962560035602394590477234749295520586120809166629903011670657478045051752696420203442318319475399304696036295981759037484979983285857737825714802507469508346982655850314640266035118479030458521433654703151585495713478871941912611102866217344896377114183004444642668435222272309808906831365220453096033304653628002801545630575754301084479432879037699289585841465541960301651063603125136967251062555012370513909805357179188494881519866443499557414803184094366918527333176596429378121362161385584403165016037914508513459886854430287553897421369365003695337253951311669212667859035194376358569297108261895215606865021358922637176984267115947204704698343114068499557019254034605760988631192132116797662488271022427204963944258053180228969841281622584407752697899564469367371691104225285993941090386602991345379911099544044237457268370021804527700251780962242577587309245404271268769733546815600119830055981688553876784984917749319222137153900158396286045941654118040610613151892674368982307303128986777707818188638095439142625154040111287883452688002851488137450486133398935655872948254120527039695647644214312169459928665007613701975734578890448743679964153046389155069898986624681714207022471833662078962523134585610258885284364825243606407907663877150924479890680613282593358601359506902188742968938929256473225707292297561203362719265091380706235139536702056629726866419439954683787316399129168511552628812184439139392711999159423909699420568616765945445835851163238846503181328736404568925964352693238952414145995768550093587379541111748843379102822009832041938473181256478945151480720459872815187092143695708938886403944499837577283547199988387163996253972922151014027721988148452892176432516247468517831423527865766666288293733440878631874139320749777815954979119095885503881690294562803638180888457455505290731683084328204255279413058268302165810833764366799520518451115442065596885108828232979790078751686088414160970076728045501873655631522046042107446355002683162369068503694609306888048294516647070205403417716193210570907221782932259157581670988368303521685234424224265969871639727135995688013663543964523086197415494062803603265623257088469107580889239739377072297088266878359383640423930900263852275273282735909411884556487344538333058695743094003521567953743702549317940738115622715050467526044992774771766317613428510157735547105171316812476938679598776100007616845543712722773228277992445507277570318314320288523072629963466026764068400447972902359264409697371563579109044290959239591299699458056955966218408600465489641094748158172484940399817773286274269230712633565758571963936047362978748138502972162962332944850989070047837873531677443475171370674514417094356521695083996493422649794152719125994183794488620635139739496620416378545181613192935386359066135829342405299946369094766581254173285705113439585511646922320160289261113161258125742325584048024644790470480637764594490265771566315070496021000383930486571749530190627176354677327481961126294095844567114593212144181321354771426321711235556906542524853791692136649699052937241336377417196389066488851141486454809337716168446018172366669960857956719409185090285599345188232552441377375677094356835070850186481333570758557645323191259581632169269641149190792357438969017538825382210896223718152338303661223888088733881450742832443689914395565932921605262812961347480724461169331245251316511690580270609482298481707220699342410810472848444343039534861174343850606619716218789603164343371969909243816914841317784149771927543038329667555426163071894037590344152316903800918306595164669617295433335555508107986437406051072564030442907327962051149921284557305110866364344060673165702412528964392644039236789444406178644630720808269462908940753728928926239442752590750777351973708846536991136729186132242541775629984516417323364166181292651623030400551146874928416408675249120457053366020242813794428928698501189093122776668408535184287763299871087533306913271689962758358830233488028593837949640762344347590198832194517489892174747637654412747509825405378035997603648003289696609691649725930497979578925559890692938221273696126239819799744152213313924820079881938504157948000773240323641780238444953088273069434162037476782713475813420371097152146139119180209595463775547761075872556665562204633163615433465261380963665295723141785417660690282732039638727706592713069187987035942055629695490596578828184912279968068063293294534202282875878901501189004668066906648935998627338548374443863024878758354122112655370660160116053808485367069031807647406480655101632246143669516846686127881854953241710446598045538260339372020346268882279420486938040375341467048660480501615460204884970994585158953992974649976529447931818266344687772707844057731306814800029155695392494711472976486384348980244316729983326278373546740079918472572834792191727747561929535432369868805543280934644364242186591411232102445051859696543923355521130166010777517959350687558257678819332242804848301409088331924446391058095994065930229507973378548895088959164609994575102851325436562504836390267169668493347671272709095435587331551712460003536445394142203330301666327704157207470541291466768122900530303176573930945670010589836835144058520401392746341933852804904268037624528861007131762590763561807864456025785309498189025663207863323730661264964056033233111781342463457685218776536619686259404021569676863835831618535958814806705095707472003628057254125189168184638769119247123890003548962368295175007714496262089960953330144945459598588970432706294507768613723000211984691975954693248382040281963002140305108196133613233411095426373993457732178088351590515127138919355901885909808228181750244063406957184992887334761391528719971126318376684215753210578704531802371872478948346291775689993035235202230131936693725404065258430628315932935384592090627839706913931911671773584450975325457070556547775419382173959392874404502104319588444534670395389877107649872379720029451794227745170347093892876578956862450893818177455726930104838376359053211923590304537677956126724822477009947589721552882815650319765431441009780162297886246393695035665888627562802651623182638160321027998764318816276776793122189332489667117484849836402529030000193017135120515940058570315206379925226698625712597220720975491038974358735756078991078408997272712097777036566540154863480150453526182452366273354317216521853670961092522789724528225118962083871080534132825368255425052630576122361149458178690158061417849332598766030635969976564616735846776273193739564876734165554784938610685055244056256494091273580727107141180157981957562595993540836440265894839988241099306238302640561543275634507508580205254267420899227328890022354332334530502102677249341394845772443416794592662299972054277612315429688110892645454652079118557297196708156208067774559174273568348785927333711551789325439981345302464955130001018139766725059708159024356238655925593064746058976546425781411525863603919054748742922701829886909796381825163603532698430831127741040757305805992630526801039544503334802325185978735197551650903786017013938649073124743629881188860443036961255627567005484299032032292546742690052954347308750629421439112288184042456507367264845914616584720079089434005163688521285501617897843764800904294497488312517864680191856870661669307852001769230922727920671293955958511515035207185880909392071680984614396274472729895570183724661592335455304944187768531238292158948917971821679562594152501684068247012377415599452493859204513473004513669729673538127214858858222902512654234062310198338356699480291976482778066215845109629420236672374961213393184856107930942899781099081992091668997316247977173660905706513068269719526633429837492812278280610746515796740759012947322776524515022229880815091890038305433254899024654366375535832656506001438155309125552194193379709777450064886493961999683932483840053679558893390094898961325644157436228256243294241606931076347193930317947767566384008787164260644486424743584910447353013985329137737316287960258996521211046996048717019994087014794040261943202389387679260412370929870601543128610312253274886837000983356189249203959935964714117660433495017498573690485501506089808233289854968029676309782101317857380333267536012951409248537086094833041647914086314214386075998251951192170284686067278946678087864375075720667205895703445550705191109957151078331369347583120358661217820668013438349094989871776449342981644869344092195859523198177668433165444794532678740477218895658443572277431557765776850671261390703455214738609054552600324744698534197113022367879570649220944665587657925517427053295922165471032688045943684268766688569350414643874561276079558517960925377920773464566305888764250119902203062907221229397408712917160213041686342340498996111158866012920955602118347159161221640006046109860138928452452567992561636966682115586843133557870029540183145811622783845265060698209427758130774381304985207695114321253762543025795338275630064037995593260504074834911685186310020075174035000352757513648966796914525945917157813611335417564265866788225730996845191693683218781756497871639273968799573521315226390690207024613050846326820895412046261296678042195709393202021689744123750544690534399608370306466515961563254071874374608011828096013149415990705696074256266575291915893907507849227923402260804544798914876001616415339283456377557722994553080718296909017740237299815667043582613223502595530573023222040448532966766837274832458114126491857278876662436320624318282822094312428614984099424865779545090324907990780163621931069048036917837730444148650706688141901513478437130952161200554826874493188260562135800334184204808227309508552268351328036289475634488509627627919607097454446024220154129800375098220507579681422995758922517747626531999640953453205080530439729601121984627003244189310059811487706585161622814210649165968820295134480685084570505743672789574648328083691443085337570983407628735011725261746699291618546537265841754844979529201283098835669659947124798630757519227243502988362860017638560784711713951729863592766283038430583365132359092156021314788549471264201636797168941943346622152221273979653897825649492631200099319649241518089386394632789580717862374567414881584468244516002165093141488751961678883311284980625108615152934144500693653667562910441805012276049521085181183836783394859517083499404955034482070864209966624595245621493456309838044222784336090370955993517005776015417793073409230498724060574050281629893402789841811803917725996318993457768786043741696182866734572411127234779872630695278297120689193893669304331897581658008789670165657522279406860863468083144944680848962760321969711834800467452863356315435159717471641135603590658985713055145483233311885996314723368455330962591156930724433887043646565341429340293702616351043116029667977802281364528298168273883316392986489265001632046417009106742408995848967385577599991608577023447477343634816264499047040604981381057500511003933755755947753601604086885254210356800607691770993578193247259686229513384758339351144883606349786661829478619362719961605969914896594411870702419975191212618781876316991250768476580446523487870845151766704960853319718396310796002343258712024676363651470034708847604668815204657866551467754008003838678088157362325493036075628595309461429504078137626599756753918872286705512383753666655792866960769676534683756092939904183945443780547043227550683501751648793829305253620906709412447041895664873180420897365123321456551135233688588614186937997788991083276819774897941332124642362438027000614986128889634667592215196643913622516948997304632975310982571296730487276213265628884167269414079766399118093725005475774821912508350092668640429679521225620016897129064133903779065967899315729926221339073863811708462820007404873701927032024250036177893934828798392612430717473406426007905534016656711506878454909039421002732006770865928409232979706460465445591315578149914377015526801335965865396772227801150031331920746293481948619299229581701480887419420419862583317597898263109415406637300860841152792669635120983191394416257752029438749439732925816032946803987559738347365685293323996091650358257405100762521079250426898677376667851395472403225980658829785967469747334920339040845608946106963041546208444022999047426635127971722097527401147767764042148862900485024488189953448209201996821372457536460289110047630228848802730196708217416327748469027192532812294552853282232813291278635547122260606346466124784067084829387039573119155685810213307308923113909366919931426818429077689638349552941742548761639462458966288021651712212826902033098533362529986458644921957452901787286898861714925593610559706323972694442265753557790854903574202434506410681546067204917724552914547049826583146217379929148191189110656137243330964312232015610217586955006453877324300246558101246096714709640861509097219048591722305656570656135407297316777367771053915251220012291501141665274716517954718866216734641811085530907422427329635031994050854386697065946528115310970539207404586160174265685496433928912747152109466255043422458037711170136880078866729706720550422525384227751488843533893388449138690245307872584204871333569511848399748044511591551802176866251100712012194573519072432712864744073818906742146664190711339439624595673521900501753535982655757806393481804318042272114264853655139224857832347959247678724951621016080107768540224521916142633269798336801738406138847650116760291980789817596043155983965248382606130930856995708477349531973130666330164325817137797568027363967995709553883798265612947900238653941147848998210302589933154411409457922705850075921240314430342136651451210385624465496238750132558485480886013291912453592643378040706312375812488164203160272504594795977557349595390906269044905451958576167999118924515285705525941965116790165439227029547054346237816243980951930939355943423647042546893465179805493727358779422718932957358763494474292228825839389347459939619193883227277309329797930632224437139876926830023636992607079043062493332685173659341057905973007659547343121442889053591813540255659679591997381455683677690668271730563320364844738321074764298480550254549498464251947868971581569512248858088788243836041026853579665848613986227379549767031644253399500717489887540130663800210915181676493603517963645964555098908573566043540196184486266260860617724341548504247019257851960843255890030505319247303256497860248176454771046202697829395175402785935313267234403430777368246482615188323280895185450990254976816810002557406021176032187129185274112791290667496751295609470066562077637636146732145341195114368012403188670776913210739399464679031585551764762633315118900301570366436376559918942558966299369552227655327242216946834138834084529517575140225535665164139631500425304743999958324069088005199604833986428828913868197178321588164277195157558046232595830489544307469327889808808206148444874739129899001872145734691219711088688238846369851956919326551783370622492257727057462652869763927666942380514551348489372427822767620680312911427280502880580296096614693631549881725488547130960408239579928817109835315720279989601430179006243783732273138188044323057055982263821488750246432123428497308008402765802952701847413898576329897247855711948934758192589466374207473041616566654603927131432864470410320244324095444237619256136140378679800855786164213635869480885715335355709997663393445999334758961833791720888956477040388935653817186250205201076616976603944894383370541287523831208855544197329726312773064133911470844761855849559418344002676806369772050104717684310427494071489823516028519378845395401414402076047690633170294841268999431069671430342491423281001537389550153488596037782990799459291322251977665574427587077133556317827459720538614813564771089693539845824158600881188454557991994230910288241596115637289295812146812896486419768378699734341543602699231555875431384579470323334420216629170813103056009929473730549444375343756631652310897646873722521332892717839583053444876467024760399214806106830982293291826276063450723812467305382199543732726036568042630389140439715258096250132602123168190489092422175196075270657910398744168746305730791818565339785734936293321760509018182057286257997534323340854804398476944503824288237286722042817374932020228176883238764630283267393317774229615191627150577744190055266178309721957467424988351426827305637877524077287150772937066299615601483852176825357772407560523571098428490686913309477397428877086338722766698238219051794617520810376652038420015162063549342523089121220087875754212011958030565698034292036188146591410696066838439599486221844344005295849489812914811346092248108444752482573762733050998553899843414243959472487685468418032045782809103398678585067286288603752074145000629837013709827949284278166910972212008725781966921212003916988830920819781477127592218952972157717096326840600200479744614002295188258973431510170439652543981385656299558248408226523656738388575572071437498642047533737606632030871231431498834528194610777955168890514383562990937418046929498355559665107921304624714300584387285248824080493828431262779766330505934341822750755072514154074958160597966729636325345554368080377289022869476305460159229252659672737367402791276722791288682347888807664627578021753751739137960419167709011306976033455190908329731787998133624130901012256790918844785855063549873379666477338066281010664802814722995223526884091958526683475061542694026740689998313730683388150845546358491135499527172262925023931262592731401396033478638233226434080324077149584338150851369451166360030528835723978476876640708097579757723554969681256329297317181229201555074423380022804461254043280337555370073024324532251081185092049903140918069050904019972690388664366035854448511557185247492841005284038285546204292096763029473933462902885111187125741239139685462076269246645604290347249374138260989726816537814814536112166450619673017211284287420585340196552011712638059893527284437432247947723466312140557736852199472343105196132249002260193416738558014794645524129765642863344563247642004950142763589992983235294531714625084639859129892300711097128076748654777731217000315498633164569139992625924465796891586101403768538815973573882140822708240278145548178642791887438314121075161538575292363022059598113482100379245831491670241041661433534463991314918094460402340454716530088619098941306974888133015439041926180767528752267864613269681608238330847601188749432477898756109929660169210642000435030722332140739885509678705632378785644482929830558078429997577808140771745807269358332351800656389245506625259906456510808106676379268312394839780706015320979241932163574508060998265239508471325331638309012281065174272625897434736698084878104545363325592959214506193842067542960623269924118813981694274249206546005894779237834105084335324575347694926114003660503187799627182373183709366779750565530048663515808592458546978635312883160837723690660412597808313535635450610751309634963213159323160088892090958438053667154252993471827085629238173509539116890660201296248144160822802901062674506426332445094457921452721955701215429106741416279164402166889154999563450541977214642369783181966317171689129702227756701054611424956276530303478033793991754840838339607916161316268147755993611424392126266085560015256135312418951443056500262077976436113132573531693527525566288593278349130629706243192634185284993219954218046934783765341267855812753355156553625932041264765918513529350495001180551033291975742629964519920068965191888639712201491442871838719323510765163196739952692963174162381001826397058085609691386795501879849350373281210461095267194023788363439958454841122838142236839536199011812016170476341322493356356988753197612142210023257756782144087671100214595031459667624326210872571652169250984994796090880874852860826748954838976692763447403991664571620270707417735701627047042819749154200052884230497466427231892972544666054472511050656458917974229298400437190667781767936336532131678987005241488852881306909884006642147419319842959685186901356337010191656226968097649337399344103387586100971031602612374324826220583779315719629272731994272305229661791921046271965393947096250049418321869905987504402390024412624567000416549398428457370274835675825835312002366443085860375496074695793932535352604207457267072499946794774046578699229085930844942484936389231913787222705785096283557130547579490874514456850143643356622899956473310402900382228362996180342397217362773510899801146755301780927102802716044387986795101699661893553742859284500291140022514134087802553967792428223576936496502942736201122215656177771359144948747573949288473743319091518716096630280985105839181242339551739041257270755972123143054733871850022154928348648625255859680161432278782115736921366809860317434236527870097916200328232687188998142379370076005938374632852954251746708936193243591636692748518004119293678237047056518282913553303699702846674145768226217490846220042466455933076563119945212579986690897237435400265170008337865454236357228132650481507403874601573078084957785454106261604370078851677151806568050578634690873508587064383082756060033825704838993030893497395538415443884352078330479192922758548296746886534980900597329234712231892428308435593172341208231734710857323841049570501098236779272885182371762202697590350666159304092779311620203781204375574923194247876275351766480591203369410046701723784312948957314561566112549788823910695543637982466950147922416352497557834835224292300835865312693974510849493926142784606595188249752096508073941670728074413851987334795384579740539152712276415220284324147090315683416404935483291300177576485056404259741799353856824151937367103144678198326701278180040700182617268032375648846751101622769651168357773762925778752420862157979804550766250007047078857063787975782292522235807676228777199396866220801263183243174690708661899268597034242437312096414135704781755476055614942700635050335319987597981734049011688366672987276735250176425059144010868788465783963523579827986129520222840826298484083754481978148900909713677411287533759649311807865686153464890035466802078112382088266447703127218459302630937726885375980785618915439526114795272112659246047758951867605168696453214897242776058101952036474250728046684514385983866738757238365281738558244069394900583817476587167316453270974880218563596334116148970222294530771391491868117976904781779868104466174838038219999343650953996674987775294008184355209386351472189865749196149140861850369001415627460188597702920398933813367074906100038605852778886943284918281014638148949425435146062781342805116844567251404874533647089988749448227004880556961885772642156538757827504028512789282952110575929715599640239046984941503066442492448784714817981594467026939589465800557319614921240457292510852773588130998286505658839316980341196795471061907631550035245287141824866085987490365805052987533867693489812123852547915769175984153457226369815871991531546029897649396619829698700517505169675860444316998098503548621648697372836985004990183853097531116518414335571215466755724399960157327868696347122217903305812872968254909800678016699799664416492464816065250980422211425102841314999455924114841922536902319015761190231722867357366298900104685138100140501620912080638859777579688624005399312581909379548959162928583815886546156525011824060127162665049229213726778248078878882551052843836236305199389247171957532089097061207441281419960094912488590286098358903159141195167168832243630057316631458697340383964875969113390594756342539749127134967590703002248597803043060827587887779135162408030139739925453960638023169544204343548439882284151886581483951083072454997792528422445938641963292616338137200042333632303809737471717733952600681011643523748245790252374639117087786557119529864755003246502324637038804775890526704115794425989505852995593199120464815659415698432749548050599141607665340701058466451739824225753628526317756057690839476005044077863660585969307295481790074706512179760981164575251162233002019262466690731105639251183660113763903944844086438368502563986190760218676030847648799593007078954829602494558194350400734396414637226207581281439999195966090881526478900379670125260108013811292804280404831683348691217817582264495359864607732148540839913363598734500741779573920333671540435956546860285311468098024121137776988570130062977883584715314866719364783368946979236290196423801493788399317601610339512905949390768676081595106823629685933629588616134367407634154548547991419143890339475012626599694023567264254777308802911358551022443749903328044691568969172887463001222868978410357818814325276558627413061382500013359497358034625157692099831079112388927113959309260748776153466612448943760918929006180902039452776797370947854664544265999652588399133053968014757612179130817012267162139048121117952006213877763766520200458567537450045108239168588676690539363956958888518078054346269290111473831131398015186389897059708366535697021622117333133660631551920721541441921058215703745177009936604000962591188819548564668874865765486178382074160342495385970981711251857828038225321265018193470848272520453223496717963364151148576664259377814807488034216847970878239730457672406799003994148695228956321894127915042000911764777316750380641685934980958720499968256180638442615466912561607289776640804782137578441555373338818975923835807704415528103240725867900705178619443930742902127805846235627504125691290604870999230314893239846929828988894480587969542213407634507455492910912305256771226421295315411023645458053435220132029888327677217023731646617313064394738731667142895774588887508287194165228838609139722206232569211127249127952224262668128352335640986041739944192824735438100937022559819468247083000366436366522121996454822135884811589121359327586595531750687174247120308981822513462545890235223824995727162888616014483814824575105970801252485450145504259414312658447938069629984357118720442573740743310437533812689698366279959725082635770615849493743381191222771929818802404116884270156743015748046567721752085183412738425773514240776686919970498318132144809430938299540995413264407268684720917942685743972225297853945236625649794266490925965111367465819314800431940472932918343851962416885879081950758771001845526871738659638206798047660842514725224478644284620485512126831781881962070293323046718409682464421514959836404278532705682059689222326092164559622170470045262844724818080563779104417546955520149886663480576131700311066323749437686420676374951233093605568916611632232855792626585552668220384695351366008223488311278213349517980129233977455192567815306123545464909191284152958212794684791408726640736952387332689057430148950552209060077540805587364074390689388475499768596706905614346495390637993489941027832277011721451750239887316631604155901464507007767632867907298503701558742238604466746817462124736858094106790291583784801783545645324723102064520309651197519800399167075211032337563027463023602611471879070454154884915535234433179884162681183985028255188280806962733492426728529672350074396051533943930895294782178286098525513326090312707740433165263779680356153275479591647472531469856071370962464765547967548209481517432853876502473425708116596666784593868241890198586588150674728992250358266816183858746760505786835523911166803083665437621526426444210882982312596390728861988911028753654176352760711532288719759122652390643959314992910336949545374441360846374536039632191603054555874767123290441014409641106856063355349329620989190015810980840489219774102925487805856434457870298318908663675818232062232685681920507504644356162053104295101517902052991724169150348808489249404745747703061110110059076435475446805286679173409198375145984620514470026746470551004168751430115912640271046393057589801081778158921440042644707789253451705880303816219857656135417428502937561681454889710104624958428718117938376658291443442974570887441644405137351237336914503270380111226509884706930429216883985732991627589925981851105735368000625458007139762899324479888287131725392532451197419071777913286829972456917576271104163368906182281563705714035910260668161978507242474065455496795587334086683167078196526153337068169861475568569301370955520466850082052363633265886610107282912378673228994755893341637839900471149335291396200255744107742361349417806784849085451294199495698560331809796112128949018209925617034148205164916172971097685217135144389393716320718489696780709193963136320037012603383532480409040033924068502751426138104161136132594090493537431239274343495268628077253534670984474491973928874393318130705174629815986163841307334286809790569991699389399988718138776651511957395237991646500871026842575022500541315547187439973200378961691974505702837990979823683447643574225572602657235742519923894230492273472981917492937238669184754414208090984577757662819441987917671900903350463803303356463397649325078063068289417617790314544157483516276573340586229369644169196601377300868334497970475455490211605260908442570150035477693985654845386153852243687879932011579905954662745907713538396156296352085426202804075708393165202902601325748277739652973257912027474868068959569456612831774236782957529743465144103883843135567269124444198153591468400378408985155192052006590727869042344020446360780791105093386866109781656167011678868365500290830722939428122722821855711231882529524429483798404187942349241276643047358352509398752025419306099059254081759134750904191591113303128517127794522781359070078073532040047858103132687335851134439418094855913952730775538952761657054885978613235740125882198492772353120104180842036958320791957801167099705966949614117317206155329840869233506114086000706203588927195946428556013009416751087472546667376077525170122455891417750343044436727863388389866308945068824862523045184897817618291495052281873124177420627935091838339772668107710870589668180716544691256259720539208961310306733724108653834501530576647669288877001388150277553065492659942804776364712517799784758845286693367243974316488571711403071695456151186845870404622936333063057177488712744544713392666014967680179952990860326466631043728925567574470317940380150304272931060631223982081068554255217454148088307909894401423902029595723522285297012220768015305117556370769566180669891854603133157316173066836106461475303103754402492650699586773818027371996265895175719575074262947772221695953912013559148797626591462132843483820149441479335092083220619366500701552278710358645202414562843716236033877545814035197533949223248267290327372672573713150604691494332661067351505866793645069170390196229805194746603343818164074079795361856210842525716485198238068596012336172673606968894634028854240036531927769125054640410414952460173289845965023497781844194994528856380353366665103447026844910188672055499071110076949185336388478109511496185972450202749471133368664654999746692665018342823267060471460789331822083522624147170347081921749502054320697666518731437911887586159542454481860303313898137459929910268952183848430878236143807902660569692171677227703417720369035815725646721357392409783054260260194042075051829273621465497298104760816171350045911715311039587752168282848544039355478959555317988863243694238566303039575711397422279249133849498364050733942849236552529370489241061599298099202645624980438882214615120165037218466953809102211949127651829856217380434579874655449843120959953416084948785460586248501335532041471333794836933217479777409288646173804752834257149560752934678644292095627447754506332504162604280260506623582777768901174921295690557731670979244639078519509491238248382070043990374472749233385621104878490424528428184078118013984126253010112612013641617820058798257128550470728831814722697680268122977989694934629594655859957674140644018847430551819628518901289905568315157761496550893632395153118158833379489810960187379108966570794707575034938226407675202849118387009313556705540683789676747363692780990592728479922984890228456530688791743291831549513930737354893533548522379276937066005840179462353865710645350467881627316298770570292304723640103476368567651174631881032366194171194340078755585321076124967612393441552925909330403135652432676838534348672564402141177105009613408517289336552789684928976254987843866081652739208365685209361091094869158200487810398239290454449490550973055916995642189255490181021231692641492419365916390209714491052971554005079878035777240607872080604833896246693452627904684133629087094178574446002587037428764644962145927189411185086878166390204783353496958968442274797561928379100543024910198456577750725248909790585501213343058778851559134984408203480441132418726420480533834580680723988694277506687135882599424053855636543492096048998561768608811557528041353598798768433378440957733970872907539770710889860648076247146119361848021300280219170689622202501024582678619794540529839268769038001412367627851269625308163412692167452554624174392082802861524929886708194764631009218226238512121960989831461915022899605594930270369554942608530999242235826757781490780954215961376905077809398668005847164291486150833135480232701785302273081296845756536776428780345917026382458350694405672558475104368531747495065498735379549933826148570401771761178673005864341579618137655351039188870485101584191685475715251055446010615104370713954740031293346299794251949410286929915931935094424944560578261244556016950689857526427107112823511722980079053781563224705866243284508973545896270483580833884523283264780545697028448647253553039492925248531202558347657532971259398659990619829899065275943949212790463594350236762682421520364880052422633259275525980239927254293352961012928901887019731657984835250313626535527974604718261327874466046166907996911401305786603173922662019790959279744200182647839702789889185736760183569175262762035641543442031046155670338169591817890518538065765029131356636301536061763337105929351118460100704877988735601059826845429350276841806088970731339999339480651880791976961358510461381109252414695662284198488128989520043310150620922781225595459115183855019207851876135484354748805319760359487637618929126348735326986907237113402646517456003969876168282293444742044085373420518875628827477589722367230110890900048763787307589565853619620030377333749707539198536635284213047742877949635137952416681685099463590001273323690708142765133435263698076802926330663912598222746764406649739046194278237245664273691316624975871182143973249883638898565710064013143256827737089503541333415197656352393256701729539234676349539814476778088059584684235074247382528994088706127335289345234782773310433991076132856459331553653750820615963605448068458492150887039217121538954980143245103295008739279081952714340619949934055373503801612220651331326664429927893569184508173177870114837899632018766068730704954321557172105883077613971810844465516540554169930520496673622257556355022161159120419506160611955329485697879527644870985995000720535955275300619265660805950965743238931861047982731049476885608971974091736443456605170874132105925590966472354648370200904121653645721280967440622928581481416056845058008148361440076659842591895116383011181434315922397354263171844668352379174301440328096644154025710998944538360624051626274828230090634698746061305887813563027616908930606411860641460985978284575856992455824725202625688802644043687335067573126731639699999428137203908195738325995124827793149417524695239004099340382679871146169766257665238369137561708238526040363238968671614861639519635510264877848949584470750050791710754939006904041170263811036170335913206580736714942409229114726936926654767710709608210122149350532017795778174475159479867441514218979988200837387947953601146848710233281175373075724984593721003628842246202297917710334714334763543758995957330771230038248327316746458349254051816344131704864158880400680419029724560200525316738649614096650506434884509593637388467600193697726983522968750319004489995703272138695529335977304462505073859874857783740166105989176946827962770040021821105223100350341006059073714911573976146576489527058064105159500703346865533765751981778745844036390179437078334117462059175356194866160068571256814208240641969585780922269339973794860064724454557034837868366372636594888726738373517041539382306985400312305896304349970771308828193504085299747498569852069572575587137020886561571325641434756239005340140657663305495472636008576030730333307078286474743155908722152803516693440790684963911507703695326730082180742039091454506568472881408630240134678756432953647579796580941432309739570038282291305437536180274119993463855570259374701791165623621574740792411842290159910281164033967497020273838471540708813066514482333955448033039097755105376819598636633645283661206894550421711849169511055359953105150904539867404204101268878064245465870567942382731898756604271413998956948786373424355785282303248917738348251484602435907126605451714423100977643143630715194644572489387465683242972595755663520242945303475851337078894834147490407781673510486532012429869620395841431968272025650344618263340801816809437116963736897878005162495552968271341003592717091882040363539205431269674089682386509425577729710647948076568701825690281475050662303357789874345170504054314353432080207687083521350007975997929964791864622963467808368435898146719725502838372857943741298126301250789747943736980314897297477407832607103723996181866174985165609493845161402519212160847989195390077743950661273366872928732421276168639021070471948270946872023667347965196297374402660824497603834888325758616477849979729849639311830761601136051479000592899146909864852264390911210408527870666802995232184621735920535842930927445377514430508438832467713385338226551425098172838264747139108224422401070464667031586957824845343848765498403122231602810763841615813318157158804396570682648777006894384901275483309037716977122965074383379440035914866298757074352526307910819083726812996993886851376635534029460837694454316179118497046208570587003072653937167631616324689464082527079787725542415479866609831763154453096823205921970582983953754138969719337797406446046079157398115344462250487384961631519312337037343801506038525423963666974268696711827313623538677112112824329152757346552328081008112619322606396253671848161732309968254511387314813829216892205272988721244046626991547992689635101869673914241584154863224454136132759048727680737710194724701731306204276207453122004600461575771761339130560630234427841427662525838987690380478819884189920204040607524401469905414095351009723904296635194066887328803962997192582554380612630714394839871638238006408866055529953002902710817536969865046598748679926620932150344127706267174724652569687898085428389946106718917184791121734013758148390259702401593842991666338149719843409720541790683785882689591868222028116030217733828868526871116983522029325641944634644536503174795626260746537233887544290732945381730560409961768023342559800669042404823172237004102350046283101382848781349105698154805012418854347975557011487275254145763818270163970037076869235612934644186216154464249010838666066339007261732036355446555556805093236088730799338497128099099155133217390495788065827868752703193635205144927993999640653556539980550141328916762167502303478902695470438902134004838864882549161643552936363578207821827961879666250350146976097319705723571264653122947442319371936513732047753339112331713806096699473222041990838269826335469575067400523752632637195778327395397224567181921456426104524656935328148101749217732517479158024741245159827706546643670633910005494478470602818768759952279526896781333125917563411477126402435587611481197955919252304240744636787986835200054566435498511167365572735945366294368752337874541731890090759495780452746257028472031589699432863026580008353416779822540385189795070308793986840152289169379748133902153951842472587406809648559408096208512897573002649285974399872972276263053378654345916389668157489126993479544921465694484736120705496592541589998612799302270563931178200846614903733061282462162674701255206119144898440765105993928778598181587992299861388609363220200309354377959894545331832235168355199812819911046558683143124150393749261379280522087936624758534546055370687336712322044613396352668711108126417745672566839639098815281910721159789872886939886911590784463403825902898428399930280515655824170699031250956201661406936329878198167196620947502290578377337639121728308619858899812232025906863875396638691851415467493946503093378456173599746638091640119835921577293504399110374155908234613407941683874751524593481116295270757925979408176428205133144787416154291825227826431317569784322147652956031470267108566303818813175378413573352337163576746824425461084427863667555986813639080723478798544109710331676872363461236102657229143316258095024308486366776946520244719426991207977205974868655018655479187403763905639045912792501459640568508467536700333548190400135433265084105465002189842131155798810248327897830412450609101637615419000105831743213689374733393010400381814290010696619620397442660397321929465514408079750294976535296469481348910972988125241524256942906702552521876346333945096549512967202167730809262954860272752691405208741293048027595877926145594368080201779425159168545349027921538301452312613767582615004108404882038420032436841503531380871549768724747929995372526611716093537562131806827295380509916253219251778096124505692899958555720723262949523007283599223965416565494053512068467049571816559204125507505215615529284288310341948256803075341401233074965330440686460490442366498393158384689409918828729813371887700047057266464807469169737238357068283158333127001740184004209200049865615163507656382960413578779131742842144991417002959250625288643234777962583859364095316544103246425838393488716593562516402000786447816738267832690217429917671891377984501239385179175623482125174601605403149536907666861001985047732050432811134843941894647743538202019416544174564184978430889573069238605114531037451229684256256665490078394214868313731686130749387919021613776573948028262320112052148963715582832321394344188674992240395912680771362186958213697699065702571086538061472337021559609929851755865004076242461144661777222049478282752060482874318005620742902440185572305627960569604946628522188041316603221358092510212145754317996891563195931897651601959275838506513078167120074384939044344353533932452600036475187086538565052164501370565142093408271826096221683996175321053853611776985037573933648915165895868365708291156921807060571632047819074608961400670363485060553960256923828227027718448604086005959034728382008467781897577571469046560487536364722395093508936997892758502699994739281440824033101460524688752522342693473533613105360336614186032423612435957087835096955159477088840026965315069777294593678952596018496384540626485940701488994396846067861432200714380420365547862586942754996812846687656581204534648250426682789860536165273930757542129178663418934282420813121657133667407560671555822214067165929659563713793918547242120002700755035834050469719344179557391844417692411310658771841771505656387253442529054370394509923324363514119483184367636045347428041510841504865662823877502899060629723458225294317262376013064065577747217493917736594360335767767078177847417571694674020906162234512525743396222717644235269895362872739579325278031488529451285946497407601724180416615719999906956735243780168759442895388092200312896976697063178827526069217708087150172583555193669503236280520349832016999859818995540603266453171088764463422032254337184624564390287846343491702255970048521570405241536150654707373967415397291089504660254118592757811675116843393035414335342531956049125799611536994742504103407281947454822411559658454562460882738170621539067397473668766334890342104091334639841063319244392704428842278012990205950096024496427020169944914425396998023231640755366996286242770028421613799219162231597578671330325264614627985501861283736062218471398060666571068225252123688487512894061755493513104942261684635099935209475930207622720323477794425704159151897382704776460874145149864944647582481082574971581957781952072502388370552448906328615893200701012947140956133707205522350871320088997156708971168089465998204131227285382975349634502752125881300373160242614500004810156737878491839303073713277088380383232821936393467511085574306106927791851058149918331241284475645051291811480231210233609736031929502369900661157754925079975366108639522751756225647317521848181159108365600822769510514818264228187517500683022672887983683613143592527270869505670118780018010424545491262997305378773968602466944103378450670508622720678659804112719830283848143613154652780060959261180011898325017936319781831268488709291689980036408332502860959462969474945513617107215668889793269747715869465115752220424518904634605287765923873300027809568530199227946322855965557647945750859643827321129741616238783783861063831122448913559639823149563380816162006214187255843535685148526786021182023502641412112157908136844275635419095486981586615082119409864081952756042234046167392340795887709385200337439522539350372347934811963365051056551296467709232480573916171454434750955397444127250141188867378713097145949082620544787089414284745485067819746646847089842854777604694831292026841375848801467298742527131045282057246648912000127700541184514936959622498971312643146398954346067290988460746722737758629886921450413960313533207044206854456894277772387906888425322290562484508364681383776687220541039980244040770875255857674138683637542557296842504174459336295827491653106895904754217223124213612191938413096499616669191128810580775493024396060820556726217922460065052721643810281885836371504695712725549008617698020768289399788472831650229629301536212244473157281091859872561287610754719988939146883444407625135934445040758508107686821598920633259187746517956273757575209364482190935780564942057320210478212168775835520684374756183476320643979362103052159001937758099524009802779066409576335424518086444633098896228704983598532521893270834410924361211142272713978053117651430810864153324039244392156796814109962959752214064020175892817158362237658710570841507670840290640440757567695071719923248258333660928677678409349714231906795123157302479087513856030704816181434265651239291414222450978962800574335512526621031750738383900648191437672738886664361126579794541232727328380569290265401132273797029523363388858289598889850168581345887856626869776562071501459646437353026909763604463716787115118637102518641058145210496381391907333947310627088570712982008736244328809574550159043063097238540178247181999190145724369271393477933108781617316890326198334187929738708188609287615750784911821864410174357791013205201071311322897088451237868759669848708951449050111973592672122311098772352946627593550520809608356279792304522748931957226768203601792124533941304353626411953775236895165143839317668355113443699236835235462642657889809925863592158694310155403319342816242552761620092992902812084675053465375631828624126259874830824676704113540862502726251106460356516905957352019328310601068292528187477251225446049778460681128656149576017780030308235736744617831218699801319717531054008347284986246596991859649713405021325607002091831715927524079176036729792012949037973027406902736984890066159153458651030968917126656134372183191727773708592182266339653396480399799400203051066407111844262119120088820387994218877560851438920554150745109035585459459193991971122620589613168839356730223270499176295784292465563282970998337625049559193882819195955840682073407995987305405654381608583877778749145230020774029554059095396507209515244629219627346894435306612688988427399309358384483122432441620291655913179750010051854096790663876188233091787552588965839768819787368127978149310593093956814017847149856099078437073590096349004376217137399965268843173075705785351463149985522012054186816469107351583736158854975685765176194309234768453689303918835512217742485512892992376256681344735992208082831423746762638522594998798001536461154241435306469692676411299373177689207561569647928105342134723761376884308343992601732926178449732607155789274440005387617091654497263606616904889811864598599525283686962077026621542977570976195342905887958214682349268657548295470369873953005408325155132846565268754160447447018912646102674420389117845138248707499651923701291062965488048209721477631719611095595744584772387587021528687150151092262984111431009460736141358693887839681697528064966365971814574908606770498437618232727788747568880476798123951877908102857652077970389976593912716964163815884033276502827254563500386377842155887348893299060233232253036190248137216077875907980624419053959282518431068608870422823745207935802188651422307332968992692550608168144619552900688038753314985335224168386322939529748156008435715288207393081315299729627629255143630810240050572888514319270507726839472848829835552809801308131756504690741911612686419305730374613399726436721957084213368489196575254814926083264856425572820437925441044780543048143771528583104225429827435321596644034460965546233722484583674854878609425178568623600890160044004394756985954129957180751836210617853339282859955913992939601438213487900880138189481909038338872051317427681400737950914956219749583898720311637981030134791301178606045110878550275105816010975080220917103589430863972713476489483856666196262491822695345160149383828947269488232949162453929538696886047542664159516461121535024784188416736704062422901803235325374895353106901099738531389409139165468639204148315553050136212511128831493053982551825652665053247240639455823203319283851986991256469179645363788950022611680717134359121234283372077730894014218128838957003995280556025668546594487073820168121856391988330869035383622521542556054969003595736505118267391375318474877149079763532319384518819638378707162844903850681306085354233746839756287143483829902986013905452426063028434635836182075407903380686825888696430232001995597470854355273810289931497091337833153649176101352261778411528246361595529529205275214412141943398758545664506245760537212638241921093263282005255033275020569959438590925788771502865630878436710502670376764790222884806845127692267836133317144551778318041593194171204412369218181280013098718715724187189180010765609926688769899009367447514149116108607971682645687559015860915057175277018739264392858201395362823811294713387834004140662590477298235554611863001918632102691538174261201019611389770779944303661853491119958107740257279475560078697840335911420372639268277639602181099517268150678086201138221756065267493545708380434680944425625920208595799477449020441358198745979522703499664949331762562742600002925466495308604505790664416446841354980532463706528602582926758856706377930861958954681352790153379276301684772998203164727308365266238468596809575723208032811650767015062805192948508539904655713792334906738067879723365869117095547168120093564430601773423981913238101204230916294359525518114507019711667826335751775358319292309272205027312830546895366403095984305954848282793593986930452985950295023157539523425554681003013970469474716975188258171435391753293610273878249890971318568305487491191490572419927695502029282576594520068507638197006461568590623339181377687036404056079834481452085759089971945036539964437316542608539694743212231184066893729344524962927647558952728434919175589728134590924637727278528915004305890843827095539581328852864122966409214460991490216122602751092352202428982056103957715357462389152455192927457582015333563493579997372637491733618589247663041543586340554767878308604059174804666972144488043019028892844768851126570717313613912510336216535937663245706981782500334933096318433366634583555992788180190254672681905744590596740067901980039591198704793746298130691890382966539218323447076814979186337784174821477109885629484532752205789654453166938549006852665408177950381481142939019385184871801013537327529894177210286607800429661817491006625106051405212773979844907186436466182656236261805104069912757873370678901126945835639380098872557202248351567313186120285223226532195592503456716393978000534662336039948437042013764147152899867096721593785200193917613164799828546809271856406596074399781830905947489090625007762719105076175955604941202958082790292004398366494659677290087165656992894772780594270593579002867866436849938644001349227533729707606428609405959444813025562631271273287180996458470936405778439999812085519112998273901419224883910220910749332980131336294333547448737069565217053856657730182198309488974126765770566126320466904670435468638207864799220653368795148682105126650051593434679855982232913752994916422984260912768228748019132304203398150455815199504789657915052017596219489749521742599952772742924989063266775854383478927533264754485403423135544414939260518360553398188124620305383842991920425790459599456654631726171950721568198068252551283857744332177408170278108829272064819399635123600953867486769126691415271634509946382748810272066914117588237687584643153294005394915745698515880429885232664926266598757630205472843547920542876717364002865307058701119032916269593160409087010078029376048288142644123366723818587292032435071314308241414887841495164082606508527107442115335177859829371034979365761625577722022675914501751559249127740633443662676829051941422305034202935439425481294597888887900569288215142572756704840353389947034035080166227580956812434858210089986314815655155549951334927829772103977633889833031676931032656431493509095869050853826287580767198279287763347496733590116377742009340355221234234328580375206685061567870935566558830543118037996720977290240310192441820774374190497427943750561083926918067202951864730943786127241120018913442475983560756214891761485348773568319297954413775341404627545126724138212065297036669917804336690411806400237085583790254693505103404010624413000388069195839549397140301145207450363069901586033460245593571479461898976148631814556865719471296533848444867958730989388872615690834312561766389037580161950224122260650419432927522891608042108227655775205938338910669013881505545590171907232010684157555568422149757269459709521097203543065932686623201755279881999011202414251009812437962383530426809732631929336429417122918184999391526296515333618605683446133245758929758031477201784678823339293666710593102918720485701914222588389312960839334451159626331585697107517484156058072792609054828935566775524416706837085764649548530752700057428335408158066849992338931180490337529718103322526617127438075356798230362749511469258746527279333227817430242175629353691654863181324913087802682890106999694714505998219445929147914457457187810723115791548532500272387701620525336805457882374825129901371347232446700756932912376951167768144529443373606848480102186534539080922172954830230861417507078551806111523782364166170439147349620506847668845252393812062513530500080378440028215609191618190540066554394692603365637484674458300632521866247219031338865083187511125051538114836006679602512222905290308312541925591494405816144719605254219005817663457969589285120843263404800404879203418593968837413482105204683826446146380037349349108214543914767599018857971275754636498931649099358257659039948663996017333551997732991088725578315824089476727458054907194203160812833701887109371593421878198831891149211487990935542211637738580005727881752530604826798902453048323312077425303586031675794222642656104502779470403339527772908794419642172880683088897722344913392151523315761732113317078649081854657267948284009424927739380415349609477900342763541120320624490842732381930159940810909413896040016536474097327395129274999916133427240147088883765741267666603911807367049307403484911303105113390174828560305291751152689001782960126824764704840021485646659909929014461140539099381729619389711569445210097077416136927941312280164152644901007768002119746526241912072273591171790142036135636355506783675974548140634368117461113822101292422703492248562273457613964245946799990579456532884510927396296373345699973721167270821786588426439703451921385179409750138094707695630071476492173703167174170920341512797119010434620885340090625556354161121245919261381694754804425475317612183394721479873053354713383476723557056053976539872375000057495571166555591246784238164810917891794663502171327942057321802599254060605822098006001648871401883373661028837504265990214837309964478175249124970906771171107949974334683768000579694070426600236525887888528156928840113000902887956518768577585614094681374668955121340457282668926901648246436443949898471271099330000950393835075471065763381152196046614903899637799521327911517652645737961574515456252482528920672512388801702156887643481092431710539432121992585114693027563860043560132413828026048891660291898935370852811467992709904237908990068284215310374504572900307273381072503874642783478399460602465498915793582265959224667642348590246929661628607455516487882532007996182512900670289845482532588356963484651377108446833525164226932987183061136900525467081575572079385173315497510523344233960682354223072815768504801158890851988311855020540247600652370087355309503110000060561017277407939317532071450771485984786356746724742220020770264057059829200762626783327337921944888012288787476149050685690386284137607124901275114713722909382135397279155901361442293224397745505605057154307658965313023260416904990955849291222243454495142189776882551406161606912587038281200478606933515543857832773045765991536345469298928869519554897342446250041633911394255524103701491217209696035907654747291592380652174479843331863055338803176208252285811569699766156782682355493181910251968358127835329782022607842880061335864622966121818374277608428296820345763482312812405041321018813821462348905903541513759015469392373161462702131526562742540512533480400716297333684421018413734334297043256881122244053048020771856690434571063550718786440036443017500720454573714194241067053070066781658638997937464708674974829735004848738178381298585365028127313206663282984203894579045066317335929524765701237442414171719572231082915785572762593885781611827893988315654395780452564864740236481260420970728753872758521649121070537570006221357245988082774824756758230412955562261515437583490862162217940169189756200839137037576519108775218273119336426077390472505780703154736135882005063080588033272406729032523320661696271770554529815974453474645877721284777402549619599859372687108784701247268632507493640788562168254353771710208312482224354482582399241198430412783892755965553657273299618736510516346741306830858737774465336176188958475511512409647558246696153181237577846237601993615525412196429075138389981912306378178329402579710987089484925201081359536123063973715097074494379447682542843559214347403058906634876474950352262779260212682465648917505458680126802142413691423560948882420283431424276096331828745121228276187336376165670817601612082559359779886079274604227885930607847243483597371865570948882165028728057817551813431873141299366024371494622007106820565610881854070722903223167478462914404266099558469034782984453875990738789759902504935882516902073139945870240877804509275942859177447585337638730414813714062851024915754521329032079405604321164638352585923585100685308626166155403058127551072676619366411965708242083466939557769550214689149612149656214291590368568809086754886274407049469295261679329772086976463953782175790929735717458958148812383121618419307395609185726744192232701156818240167481157403357763076078759054559196758850565884101671462582106718847899456839316390331268506122295230206438570160830714617498428186520414363310796307587439803742344414419381446675011798436972520750130349178995586395727067124590733521029013759371095913050046901943535272645711799243680652054745991727147187010564707049657854718068580308220745054666844387789128548310701256412166421425017223842095634718309117010789109911048130460228036877407806674965903592251916333275641704975944430109336304808599701960411896627092787764409263280818667844855241619125812041477010538388923011087789972357091345549434348936722920689849263178405558513494346298488168842120273351919329558321804514530052688776396314982758160503006330617140467826567257178456907927992692091359441493291119243470150045145923488797675358542405319864310102232217202953743723663306650358748754063744946993225261735891380640323303241684846618862903907579851271445370653217238392256990639360722844286021007592813251315249661100585305407184729450593970552763718520100453656951832021454214657110811855150294420351610840264134092037605939294997576765253937785214194067731155065154124188613780078224156727862719718445205714325870148133602696103002220968809167197437564698201282219930916697039854024311692393022966996567828569140174479118478776464541184388941332306006626364274830865120036422402298067385730441981102416592765021116316700444222219255815243988112237586633956856693773660554382149413169198080795144148237916788556420616199585892996698415886660407602437070612417785103115140611246204880900208670533856425056175289107607215949215742868753034465084381042328412124851375474958422577147970121828313127985994875735900580696954275181846657481854830847014906585694986203670901773396349229013850243112501724641630195722200853079668420836644158937186915462257678115265261217303767105237804849920020915374961510827846789473959730169542313140626740863846351281498401075264212604923181535095072100945599006835936985962025889097451807083009501859293951586801388258571924942344470820083940339116933279133906089515950836291175991841390807751570929641044685736960610187576760607042424415262678234681374538683740811926891226422263533617911723081499722586686093908669807830407069707982185255644674702003786306039306170064536088150258855780471821795088490091653752259265790199720666776239135994609444665455495160509665107279566380140654428169256996816673276598040971166484070936958140765426863899582136690569419237306502568662370010876978004406290385120511876814150200972274158431980000252393272623168742297507971572439175376188918100532539460791572300543827163108780361661625820310941462244815116399658308375547270564248094639407184369383650333037560876669137419412937049313564253200673117565668974674918517635952071005900905662147606355287015705447660832825743106022676788549357558182283990118269007118502581760794610870357374778343546726536789616456782032947393688588812871559920967947521033880027566723239502770015734280115694025061068706911100219368466113926789519716878501349385200575057018927619594622197480654392207016593203819124693033305967792310184019956027970238967227373094203491106471323202216451323396727956834717913451157753227253783697387802518932188727584216677016450797042098144320378689720136008228801761800774155174097477425988091909998113599619239188918725388703837941235889350757302032991255296221385659190755319388167835670665241238617666802535094218832260526805772343582006271462907054165215944194654732001581829873136669708280630840402756782869025991669467137436058878145240728107790807563148353664820246219640537965151472903412778852073984406575558530268144679855936119591487011191460473332778015233813210160540905549306680023728363163465179299658735010716136835287060702419130892050875334074480032681281965391255449539702751384931218956391113223733250152028818463326517606139781694759075265613699290064105302401550405773721333465598574950470543080970082297726141536095017157395589440964111065342448697564967654996016176201423651840102804124748115265473153436522897500493280747045608444704377977793946345824108230907163253256812019244612098946204472888824631910708561934265536847303476104649043194452394711195649180705340180810143293517561976742638270340762169235365132795002110251566634286165255253603896170926721984875959848953839681465164739551053628874272164349828578719637450380197160387450579476791400392853743181507718660670233091436624042311989553494660395468710839444894050710794979880882064996545661708874333256312763121412391528349356880488677501717062942147726872898610310564333088091179436351327621003024808543393914618361014412611126039769595909555871310934137545472028627539568565057905937031827251342953679047247248183650456584041177890930285172690316005646388818761419918250841079992685456155605083790107078692711766620746154421210862330551500900815832899625085812275336111169221824387326959333308492849389711684174718939633593597915311078739378538495051320434726561983528996633086761103971600606127729796551624408065143849175224939979808394317000323292530275333078499691592124188833770343519811458502851658232387619943643496211413976814755996528576249646689069079389764631465056876535630953638467085351702306883951563250716767235218609110684946025950650656654292286786413409445477058376684507075801535150661731492363475520574190133937107167523314797133622217040187893008341765597107995666583315134723851518712793087575489371234985413820987203847413305474726125701025385426278878296996866682849766974238239199264290600682816432959931438109680902212496235291319289006439264243210216491615345785774208133694593150594891383899332032073403242465619047758892145011788301988033915840883492168256184881635757295728409924882611784800801894944221020653223165846780887956933619488113138184269647358396358858350681607328519566834461975683834137118336305375684716942020042792984224430360646429076116838176724528330628813722024407630196397697372958594324832661074256076224610105810033965472550225760982833313351360167668646744080765764428657467323393462073214924189780059465036192460753435929562176563640873259595679274271140012138539553111235057754811640059262800772552013948060222903589761785152736743038021879624216012342983091957430137008985115172711669375842368052542984165496211184228528547856371341223518629208719464812895618224482115872138851801394976579022564568502284306604695783784967307842864869135710333886834173399361026828094314642578252444491247766925028689897522133768169244828247675980596055087668109452068264547262392715648832608097053191453527564803887295537241856862798854762927931636917741675085303621806853383746406787651264654154775981238693721465309524972997028263423028174025789866762974700516935561848775777424391193999184972766855154702375220769486459860950568897086374048102214112042966377971085050612056547923996762168417202279300217107477389336227110611662837030524451709072330358466871639022064226959923861165651695502097840599439271531316454098493416551249275033150706257260207224232804001513190547858114662357014595185962649716951704369462008450030994056295311682607377434217461231565297995790416981031257718710428855439248162914426755783755014040081141371249082255852492750010382274150081717895382399054359606799984941528363460042923029003664874263888840006239901000183910440599971491153010954690857314137566763084919040061393785495942367893373177128749849210111209930197160415872597172017816568391713054794808286984970918884612068900299535613753188511420722795067860993864732302447593547663416306190214404364350006469193752307541732090239942440851922983033952602076234389227817722800053458088690325537873051752306616938135229121894037119446869431588689253313767138836547263334033528552585990345457680730863801121795096607785551325104085005537539943971161823687181172183482033641111732842523429937931829505703580078495084255668673818445527985306890496181563703440971533725946335162598664347853547319239412365770360025803863735399448494684316004248712369545623142541277584674755896553794627132613672999684235808423828053334955387348730032864656691081864032467879192989355616316397084567338077166099998484056194408771184753040922660495963850637914184745681225296155327269145782042262972340873248190071559431629177798016779213487256821131500646983324666522505346395439424069903649870243184836696209061689109706720707351481982844812795969919521095077775100511578433850744392694050424528332157671707579870863188246131415615282171001717348514375113586202756593715650053474435665101785154979731177798671859758516452434970212091780219653322850518398562429361779683462668739859266059001805882690664018829715785779483684983802349332559622596566468726790884253305935203003393847231619763215053147227194924371555732938317588415372452797719588767373996484301712888748583605419751909326073773712425508172065305124473607652634170659112827576295979085683474869141532058378102333589194787652181857556016212760934914514355825062969319212747973557644028880646359071523012150945003713979158437553482539972286781277685417867147101323679269665986132164664961036529544576951295201452713726196577729192524569072694633064589461944022498610854559844429121175576368570665062200941592162216819803049197709748332570730543530158733529509352390622695850714621510675946558183177557788712806505955055451559319634241350868417994996936206951166437583834463594551424710232157919639848240021328236167075155397897624429849811716373185327359041540739688213298066345389825185152547002965813596394872755438555321745092207468797776135810613065202289972867924260213513310460976644462896400189233700390029265811995160670381785097352782607978202377553181542745824325120705405208606457283840618957079744584808978990186079929663407962098363712715868677609953967996480339382888311402229683815484903444089847857722229121231857680196308344765978478503525218653341901271471398783979576668361059597072873104472213634523758646642774911997896591004141759442573769191428662114202723204005392498102293707054846663362033229062685261695231222821881674089477059921428304040884681891562996760631217279783696769772114485836543041015430088048315079197290552787051404090480732446295273683455629748322277828193690103297932585085260592305478044057461087363565048918301273205984520266596450768175131930497997929159410632137761239154134652674132166819991632205688687462674655472832119073752284217477761133971710042438167943915541700348239130888797647447029568252245010276618851753316499618139771228343374759780701422135358516383242502672597212944506616792939568308806742509177949018882619304876824152258224866357547282062736445017367807013953451321413114886013277271958512493577012341160452344887919376631459782614708905364798618178498283322921221022456647419104424235092460534798346486549023121055028305040780475269390837131366149947199015409832790791409290875317218826922789271384540806245978516386891048360293493027884919135259007345190915434591372519029790847274227469825229765289196973602699267854025385077896195776418781858733211837992624155281926399894983665366075710043714880254627175215718836181607966355877019331712698001379448281043410836020966532091439885194898744772873530224305893462537784481252741574801324893089138620698969170578326112315758774415977846834644514777942570862923962670591887543683915946319383812375729080620959226177169788161778270292122366555933431741676182780345016849723976192020909929646259086933085878360148453641266336409792134128200592706323712947898918876363349191440593889008340259303082217632324101042876384814747551024119178734483589381208872265466179356886868603101232639081316209663759694655053540923788748101976836698722715958516857028154156863881600427482499152912203808239878973957330949183642021905277144324362771490906169354009804421250481385022705099028120595783867203362532005029435501554183835865767529825485843628566769232221636891925084625124351498678740963645014217104614566411211071835711677041291618786628338201261625458859304721204103913269946761728343632698269321626549655392897126833443571808567801863396508597916003707762691359949142674771459277872646736238936380574095192779174544851207187680801655329693741301398138434469287501164706545097970405353759163812244166641162621791510599322070946010315163954858015461122338857917276918548979720960520141261049028253151841159788163506485823270994286220943278756103595163918263568252635177740550047115288012637815349763879502214807739033702546406119766942171745487446543192022288827733883141879876118514367936298977561371942693000519460022347847300852850568154680275741307661809750745955831180653721446372068919072241000442531444064573729286466607406395233405906847047736501043017537055342859846600449165596745162153092349082694846793149642351478785425741903888603343610162897792499531356104682272989803701838073191644509078530125642358348630484512500361288180360173069545987535578192049950457871979827832909644219616844445692558603245119513126143739015748686949309987860611799162208578154863302205845469753983559104579358810621221911290855742449798325881176099424330550765335180915756023875415175801513155589425178750214343514322989160860968530792267949007442189695078657839959956010163324085875266803633671249693672948180063988747236292034516831992026929709310717830118727453580570241242998805673133134575835589117307984476278840342899560671267510004114037136361518791898268509673959720231183406513807847336419380705849822449214491235238935134244765287279632740791326369214843483681570360084482958123275218813510082532187075891259801632955001101513074453470702567904950833156629887595406226552826038938942884236024624868521650507961753061311262904423259218656464476504657320681652630509126419867894952805938660871571441407477919195443099983841954195701393723040218145670085237638050700735118389913915563805343452923557005601355484070292440445417417709273097818374348529826758593728470085175976372011539697277848582413361213314756407688454274378589375271422420189295395275727445127527749325220283125620768697116997795272227071798257793704957515965309291996937254950289631891841936600715722597182684538166164968742730260091872510757032946218096836354629525787230035318816615992381592081064157354184055405893024287342560068972378913913834784805722537218375629450355651484111791660953847910304471958005069513692213397818576015824308178901882300041502878533546076719340611395386581924095118695802789575472310514213347008410611809139022569524607164247967198117480730887120833845923294383074025775681914052111423358586397208531092757710003871400935458541622985256755055730716702138402987232926049230817877092510587738914629827737317124626108224236263767263115124836926724670643395135085604109029537204659601350411428618017058237800651325364639408437616401974990581393134775578563512774575034953323994758582727189260002939639568739360562359021191901708584365896882167519427548529247921893773454766880766316607561330773300409863172533188481850304075373735867676483327838461288614785279089091253049045197249981837034909365517853284088199851053917021658217142314059718292444183900751349851240983090331600260335285759751197101671636996346737605132231356696315018455920812333401555470884796947753711408798285994132379293132641118975813344734961179077123114669437918192799623906522644350593361901759491000518141914058565806290000319478264514670992572852980543982901112730126589525312395136665253738614477043803689600819341852915262455682212574978757060326311578055552078747617369959362293571156797369656391853007061325897306243498299822495480438075455561060352204270976406599685268891608130116562955489221038900142292399657260013689765084228237425386929110966941404191249956312058366430064086281965073226152820954280149083163323030415618371148989614785234553878528571249839161783388794881195903516025052022862387807593466210750338922469070246068021144094507873199361383450946690923002163681398888720305244298566072074207313998468185578914271120615267135102722936759661155334560027800257454666031540760833178880675009246252242827637360005217156178279598322805685205902158242446087657164016097503468207372696928722932341428564310681879265107554487702484617532018244049159676043633989131715591011638751644636855267524240253108390917205917956473814975460686143014413184221473214794745645873041639985334422401104027915392079663030072985792036505375007974157879419081630959719042765644259242552917991383942255665969595448051098980156793088339086230327796346992982824040773637206615760897498131026946119432182861020788095924734216434666167766390527235451366707507258642629648230537535632289109939412646018282631364925123734880571855425835449135473334132251348469609550843252656465581749842807321143089485313450240266989233240941943526801151816773347537407412998803941488864284882038512122573350608020229578616758661627698076607148781119103607930589289561764165447844561801848809077746255096648533848132169722445527399578946803423254069930027930076560010472696710462295779341719056268222464069652704132183597192893705189314991234406522885401935620723351122805313329466950225699443621959590529517034345168637540489373132828936271951753695218321445146845860927079646804714691047748471174141807847445543285794868974806612670012079676647227450778911620328438210033223809023497765407600039478342073232780773841286712611799552864272395419538879715217639550648639674829570611242009456604077130477510861633456184608636152057314033602903281505687771242690495831886532554803999068652614260341380820490427389502415661842862581964982183559010469539372878334147446790856534364410412226096275632243472239297840536176192012441478740638519184350365687125961728461612375007495253231019520724816552677328503553532086866226180233523874875629560366639409731332931961466523056242564748541050506811749127255356596899768716247623828657066149498094569165292053571202560118078776640893029786326633931304338367637824739499448531225909964968544879749626554355499277153286893888033624133969702412314169692930812529500659074005098518939148857023203797674318457147392165627193034082280026726411585182619805021180972022961084243204556861648516890877023909397833189469929628405643052229755572719528406242104533669666299530244608360437040868496117786117374397234803690028195722800225422109773687178913422264842315354971897490599904770207904396404845915027944810851600769364010787161531147554375104404364998140119374072472122211633955369403205277963910618774226206538169877477167585548021422524996367854555740252169694313498925688457349943241566192126119454520479351420625448038620413135572981791461592513703267026719970590994306837496438005626166020454536855016827188088333515443293553119043585937724441603469379824784563149115275471044321184860012056334946458713185641364314703901235304646527521686203823075175447400924594346261205790424794820426211163943202086210632998145758585181026692834397444815921743003611863849976245133098044711648398993793085975119218040771197769533148991100482508756091957904198958882177558733210862023491250150775055005648579465906534379189769926992076265495806246764466529633591048032426858258550816078754656039057199636002520992964626580899557111134952589842650959711854402276545168979415544211844647898015993745200698586184350890930846876648077164736036750143533832817000129190988935022077803159495740866217316074960457507898467785788415633926919343138471860603814589803830755822828545851727332099943797397957879136542455261368544089520624314819199452954518123060732381275984651717746395776335616285740957419882953025843556813562011919011575408165766831282403540616911456150283035199984856803439012327320079914942825339932539662091352363409549969723908264014686834814364005051154477877722432819494670244401593939551279794683252245235865873807929135638168502390216951156178969036564052870191605393227916226905400029854896416284887114683861156490486186224873303119122589601894812620213665308054919888294346917961715179619540962685063473930517063858822940379597340988226346882091497933961218397801047962278617997652352350694611293135438939206471166197851693583048926220232041783731500557288680181524064957331978903163347510059490169508226764890589965089196290664981499636179653385292947856564366751143357990785843316598182713486713049740316771819562289123013581396755918677021122656982248292061966444384239209771601065555902558161782388584407817406383421992399074903041012009318482527440524769519027572173421381852263068376586205812525284212607658272485849307393221959979649332196497671397877327866467009944474789093949100932031642476665946358914415728014278884636638295191441213081080891559999633321049507751117665440236918862675035783307576558379072883362844744752993439954563250301614172032632303374079211400323626454045539127799881327103864071272066011861712000548514277213248485356598603350187759687950257797101366842293514587726424100947416394726517083249985604786020317535037063333761156239816004709512420704686534154077888878435604083965873147566632540064652875008224074961382390281467148249804046825835829853668543180516467117040211073526665301487152618241794711789895256886118100214983774255222365521273044467938501373037834695452087396249996948190170396952484578566361472851870624008394751122609883810048707697639185397078326069568322913172600115134730894267109999086353844683611322662831268414590574813179822826365697784103799844903386697558982636235595445324765355189867526403499118018025649103800275819304509503787539334301678337929310026689989609226756418186771362558432085526477050769077469307001588033859687769137522430423249485984906863997828282719122997542276506204266393986629055465188889940300569353775486287199167186383772499770609108780120272296732200857083019589282762707321385045614937802582889052820955350686756126558261660287334460359039186074393443123519182110081267281291918606567303198879319311277714864042701948386181786659987811985984232999187912824626543381925004543087755425898781139939143723803498756257501026451529167393863692194950699399117927158204410036887303095579696018545736955891440289801785642237423151870037438398265113833180905286511263164235328891001223831999762488010385132213414154790508284614000748785125640231611314734120347710622434800721310069193413021721053020008907351475806568352303170410593095657757417069994822223491022170087399707217581414342516680570577812622453108790218871532956145252834500022178015302358574125653789980149038824235583085635180931171516937420140912856240971468947605034144789710996342190396952476371299014059564932074099947781296615238321197993505462500914583578478676430510445721718046295669727019872239336239611158470574838682169909667476596339178134386846987970716296223702644609528347666469685818003973440252779048552324994220534476325890245337244122894966497154553211835231098181664700776982684873227148733083161015959917228431881481112104109192636792752448360607985225843936579532401102876822882299042144016238129567105995262001128046665063504797047726082898976413443862388253473567483118765633305589266928286505957369947524880028769333624972138065578823242804321311664299449850519854308674315386466341038326976992134950833078269572331259957739688725250547642430299919952792402015865881466653925061510917324355732254246703544960591094242891343038337365340194482233821945248648735056864756859700210615519292545630737047669076629867000547604134928809869852879393207304689662106665009208836086540802358541584486708309021589291593474743952391134425843212536389682087331228228029431275572134348693746026361506122362370516547603489181174300931129293129631247805427725025965532756287266689355496407895204765505903051950967248361679388244987850172246723348805494664903394174038825222409681197490804050206583951183106777291488079351466199216244009997679110781083681316005212448829048071361413289965266421991540174721416020645724251599674194853294044705174000132642588956078341210071943907721579688320488651801906416337539847463241796644730477485410677687836464797717852566199190322084410593890141685348825329564018039547204435516523508672257157926661543959234980864441341715772592649836685187263403158417665245844048291670996942938053149146975887220676723248273281559730752860112682321575583068162210320731904444828793193265271561877780111882610930141834393845577290024435771787115572691848055364840282208599557769758046490582329063942870954720532959290934830097124550051708520981299145168525310110867931413059157157661948899684467510093780681674632141820090585793445973868505510342660754197435330046509385321227035818330952652672342099529551150728605313823888438724801190422277928892667807716948901370356735235964215305295933015588133977683906406518294354221645978164655265545214433692861870548848524968467451882830444849122863335552614387001994068386520175070472217673591165647958092316444723895573000663067412121507107064930440351384474293411638925449540232818622980947742491351209155527524351486902962985167440941956710026184977215431805081178961197919486853102100307460985805142665952217278616025318618160553554539785426596832014505222964119298238287000597173993085319473051027709912811590116042388797726949279007160898289134837212131699656221787069937767339960560736121835377857206791521949417561753705662919872401105021243845800802352745781524326081680510612274732135652470822261287395019731595375084438150944613173218614192112329808181481802958022819030532635494906605984670432489111726131294272004295446285178298801311931088411238972326345514668596940426372369520235149206147587780982321310344154554570257872145556887562766902078990545912819137291038706540407732356260165820229033205961926263158470768544645739298525034784602575006932126953489728706588799498264972133118658120094907314032875590879786505067471737070836082682981706568612784262753371875487717252023621695114066674257529351195724087530584604519980558603418363916190173483434222722507886321949371064864923446239502384981491240855841142678730237785571322394698146584977902490601841770842336079344060790788865677751662537678961834642094960960557672818071199027938913435126123554773456064422244742999512332399606843506324050657427846868943069761716332049176465613573759530754312129376081498630160305671009955224871334212163111524088265314348113392009859605083871868412171542349210955246219444450741104397199932934380000523533529561692898865743858141196496961418756803307829699731252299046927756046165145430600625954697965822088572367673161049963491653472234904568423358656686329518038318668341399407129549271379115183427863639125564269938344680571180672321881964802851942160881929420264866640657748585761310215144942502582598146844290884237071719847773482369745546942659806807401384542504324314098303851378503899803603189760601003994959500463664957629392939427833547972411810003229918455113973279254420427676829116486147324257120404119148505879737473162835816407042021413190871664532449162943605004092689619151729587579438630862656608880205347275646689464644005649853396809854805205947283690345959451644736516326892336670743568884886668574688675796342101977756362126912339481378471747476976627087363179096507279071259228681549067153157018671691425458781750191202345771647719564104847691125671652539802770601406530598948411795368072454544220129664900899041349501830513638447590305574092721307447448773032643463140295236170280301481045729936858160428578985220667891456898060986546666126582669474089765636434814141052732746104626354556400788915768533350261718310432480400606086612700714919320049642895930125046266962952301594942692606320233885819673766748387787142946693755379957549359416546955012144128888560628920907132538315625913489413851909668730310715415486984606620811065307114925815860963051683022271108882966709041461687966165912543190182623085113691004981910410248587997933520783537059058135614744646323136064149792720983808228327785382381127280249323687115066999790891580839333189184582026010613641211970129139275831099687911421613093604041978806772652206462773594940244463182584728947511990137561992542047970357884704574717365560751257267860834121160560948834186487030818817765223437224315491325038846253268393973649939903988655773506986916904774017206413025668668524984858586724928014363586164869105286062914338672128016480272676251602289820604600133597883023198230670597256048677488147607710480944315910184786466834798838272278275041877647121753603910679219663478981385984376543503892838175463894085006277014876088675995125494010247669047604607268761825172285361353377689146935666896456859090880519255386723065779827666022120767868558909974280029579790956307155726790883985035445063895201076776389074122061451349993478774365400300723836963406696610128562251596386366895797914594694367123634391138725065703882729833154493225923934964432831475310620565163238769177227341202826839160861786279115203758457112635311147611828334101908457156823303568751869959747853968606511206321556912287064086394508191323970738871138913048966667369659460328400820038061518503391429808806789274085474778720481107914398476345838223084921428393638061020250277106467749601937697306303743491337579186911255061051343985060550597234182699169847690044450105111818514094812114673660451311774378510100644100221973759545000855494501838215478539842455733212579973746438049426572970125618349734712212331370715570007110750063749802588304214977946827218833420036397882272526980819586221125768556696663647340479600014463661444945457102087968018490500303445503912061358900450933318633392666162455881679052311554801118409534341914099566113093011027227902812405581645529067903350580378625917219985036146475309176900820715291743732557043856885671293216979550173272204257268485768227091539780368628112299952210543120504001006678545399178713045729119139435026122491139215624979882173798655822392401776767453348858401670458532069099806453867326401456330818223882210781281099928622413721296013685029516878247948177841390241451863227347786700656043092203326135090369372584800120908366656118623650916574370979049207872363382498077776030925108922914586583491166548182363108108509132490885715029841142940290576567430099567117845193318366323340149601825507595013252459095508274635288194091550518113381883548928675832263908404423227637779898311619406652668744570327333007793327438237610380153580368054992866921413997683354348538115992195407276470347839319942114586979498890405188932446910193127455749605273779209951424881561027876612248577057371083720724788086613943818295411997551977305444754608114833882388027607482147196787347323733635710914931434690420761879530762554564692564640909609320676539695202881148525255037634431738859999491478280052871548602314271755053349326453031726690785901690472122326710747130089364294298948598356357236707017182449266735131133862286597720374107070648891896727234697215283451863652721869999515542213811448375796087582149905030769977503135150151226891782953619141205168173076993839072244708273933631013997824794050530062067327375525284481530378570555777153604387915829968765684818529810495219682442041494285506962201923651066823779652856815082239976604008475566138579048200088498301117586153333934436992502101592209106376243748496162541296211617191440577496703011626194525914151614591178382409842209692332034871488424645650874425235237607131229229265433934493171186025484480019678126359715575888208538944116424416089230468248440593400609185853097541032675848000259109124146303880699500104397340578767664724009257259920101363253788307599073024838781253897776434136317153691253811615606284090621735027194869710286378339594186414911884136582475596433928262127900245174903922693291650664042756428846506180220348470675890088647171979068433013886656201612876465445865566469594965519687454300417231169669194138384382299462308323081670014682857147841763722724283527121492749702000375351458127297932859146527798571563583453592616199629019343226939848507359517349315183510774085442964542591169248555379367325096971888735470159786610817807867475958537007701408514074526907107332046669592476855302954441701840132645343232060749231702616788370317327695538811992528081726081741343099871346013930652746847462544752222727343071363354003794262765765384823467743996882306945825350177689696193310489992873185657280150402696684172255630877209728329412206062335026449335003968406597316469796140773396735682010547631202405492635392220042733802978418233058670213989729329725563322883130185526043205754140346786355624929972634521824719535340796893621774533139226199457854734119569401370008333157564548776761997548015759084019030972919153612430946925636209137785406380645088519506613740622496780134206029735985654223130576105474704572021405544046583042119159489014103942546171896639191158494974286234378147281709074616790703756454447358648395711487522051545892341227770860562734033293200531279680012679551946381353768822006682045055591639093134825195554012483590745531485165687790133707258254460967033163280520530236947470976089082615019144928274150508636169012799799859010954929716559402108201416277585197971290683416961215825452786712527247978157943036748145087579529359324059469615141883170089588016160891122038212865988242361699902635705282653006718054934372408904711370198677278708114396289752839234718284595673444607612324720840243910270524472076673352094310930946742769122293870264282823395611012424266601764016931001990471012552654517218895456686408825725136639847812745773018791842717198727313448000730801427040527216573382249505561026326143099337580043123507072327081791771983957647321438476639350010314660154113580058873550947978157221416076217280346130892151485952871785374194307707026349547988704070540942028556815839735480801935504486625925794391837781304306506383432459577940778845917005759916803574740704484945839918197975080725802606668769739506847896931640354936961971896158722320741696062469637381499318780088138405537541187558754331264727774745432585663547891741720506215619888224807816309732111823724712252239356589241338811068932276098894937358360873798469156155576788645363556193276448813876615778710453152643444355206545656842565028402682978855077317344821332480718041417542821341961432126639545435934088957340681471227724702061912018243603620578688638983280827134536359385285619480209955647743845959281621216025509986354602921937754712340100955334870215122213042592679635548448078769652084873946749175089223500833701531043211176806715221468970004649109480887377554169265384117636704537582832268437648923266324642028765688850574195655116896077644992413480496676741437935430093141198960796225752015753827621569462997573546008666180423152080624446861926805741570948913779111918503680948501353402083424197628389418006102327650885246808717812583018599315438454536518629164881332447447331447825834542543544284910447261674178348022357954988472030454381979928480840343596947910135924814957493955076658558620444825192291683991625821491771223340746670932793099751714667693785027088544474154805044609616014596950248843691979999569883385098242781976318581661657124159167188587474802049448631819528261901741426451966454285092516115820543364369164018346071545127281131042489723798295495511021193946290351105393314006558485426451951936658105495353101874752932330330314728104027716969320483150576734204736665926111807380044044361738287939823853969077548677769070403440464141515669277932092242702166468225311543709688117114687990710741485994178259985814395351608420824210100462604060319123991395508497965546210923104634524816565949044419678521795623697802590566632276345294200461841213035466053219856160915735528185449216145265669580798385664909251849890664438494884266472784495708867176808180950327327269540758098048394904619915658849790386853404295379713711104656280058333883414827850129938351545189198374147372004344294177820688807142200758241739723148410727976366636538635118522621689448913398515939160727713725919481631155499749359800317834216922067829532833874265980306942544734986208236581652760580796423068998090795701191827289018374197063213749798818202829284886372043562692634560945982811231385469994733557287039569814420728932140775247114914947545765187032552661035096957240900531445444531746073899873952311362770935089582719130399334491451259565087819557202944322753089902092586368414087048209609241313801680294382931375008941270153005014186900220586127028369260535728605135913646426850402406753490204550637970973964546427200433913454491880597861065069545758899643441006179016634497183904477932574126879759382285093931639785749507777004265439558823475275006359669416561454765967500924714444024819000260124038037398603663045338068569760088625340881312066168217861093935260042784922448946094859499301110396189820923688410078310267257155367020016505022749643992721901256367904266582038434738197662485885024675265214515837066405869881989693716598807161661987923235456416010377421287568751244592965205660375530958555370906830101881158800026217988790552284943418950055566778024039097721055895412525339539257826113950370819530892460348667831520204956046755034610911677186082272890950834714250595497965438637045102645410934756012620470352250981681748048970042971437865197282610274237351711665850984804401476180920106776610317034804290928659441949076168771483647548942638148580389431151946316860573655142502859885845757020173808936720955218750785255093278802733634380472617549070465248992666207595627815181133685458349644507198466690167263533276136230149146477593085369216372885952514001388361144198297176941960479162506504145675422629689450846759237497806154509837594614919073480022829846288304786584202567462407481959992785189059859629620082140194745885889341295926615932919991011279951784420437353189794984088790819478014851688410963405620401752492650172217273699569444080921765049935901354061544976199165277246475296304609036761377540764919612219065219449009091742155578565647629950582843470787939623379521688834996379763678059649061140657322254563773755885204085122161410436935362157439477245269878108947256140029934211872611300735765383255927674499078693816181559509129578336080288366026214301634253408951335916616946480128347869864810464084485468273849040589995213049880798569805334446344596489212662783278227435221464841606786574684466169275285993729702780925449354359970025646987275979721591880191492007676085683896750463423858161624841844755467524380032700923259633853159292167291596928562881796982022069144652912718211237545754093670177374889475639105148301626184024496258118287643696119832325300302819205281441838497622755591158044006372048353036711401840138761941575930033576726293069942419591488145754250364245318990502913905066797997900025534046689510553996898532598904024135522203336935406790637645849168434586988246487915327541349348507298464797902511088835849857504952298396676471397929172338928531094524695482991986750756507087190599253497379184007574873955195377031563224079762789283104837868257384637412075412549344025334255550482906377265704403589564407621078647179183710265116463355932867084471105408393305528904842541012150142056168069914605702844196504502998312929298722357742278448850698747440354209117902385884982494413273027548342616897430375127319969587688493493698889218030001869059026485767653034328743091127992863096683067034845355787492104638250138211814679323686796057989081582604504644487402099896504170073741990474443352644951499414174920833439618573844894242544060293226411573565023062860641655084563286821743874046331026639904827026237184638161317635892181072434888375881628551946768954989828137293008249358467095442502091773072788561981987326910831407299365696653028570559974405695465040124269760607229868727222466597786345555863672880467013727795446356978107425552261136093829340336949251047264066606711248284358755289656317556792235557736982893136077980544997166839625863385033719441725710314249084278526693202038329433897437202093340933866404998760473237118458652439639465725945833581912242191433746142596243317004403935994501325722723520571762597259204276280848624946796415179907063352666560646369556363470803818295246402840415016823273569700272052145944752366914291835392722271626233350332369387973770619558090571767845892142617222209394057677799995581114813096048218620384809124200140883907338138216483364907712673800814297437062387049057236644182538976172212319398150334571239293711357238850580003007089552401883576496626702411043992070792662268860230002143365834059263687469449098806029727785105700125783504096495626027980782575588548142548736861151046296710511727603939167341729539634641472766312939245759383628743304856964925193920885039696380822936677062270567050847463389361332097747359292958576018645744734480772795655287650406951349249254005621497097870380493449627773719315235811710970605270316996343155203775594830042691473079955870787903921229803039200072113436637727816442149063320220108102546357710216477330346950813034263417048270559505419724902191702412072183361846595766579970241365585274216396920019804048600639114405260279359790310347669715263217472649021304250972234808486511518745894985833167331474574791818998330608785750680512123217625208049928045616429846218110444894944414868177514150323891847858711404037079651813626264444021421853434436051290110156605676335669636748777432450490918393949107353629157308919296165423506912241057117294890524299442642316337459681885102601328891146298421452187126827620529428149802363148749791536436174759728015592923933849048096932199848624329254481644119368133681232254605396905440868544090256754319681244886783896205493333606206189515576750184391960900168865557371051197247246242283379598670346274544787297108876769597459019757428933531045567587021039266912252177119153289470551104967812301784386702801978148848992268012892077988633368032299812050587296252841336726765270374363593214704748075248303513228583681361252511817077626860430026560224405796898013613807735635783433966581663461455075497634697329783270634803856194755662268697368226579573574184885990552429033256759135424311576900375602231878281683516418587810612079757006906705604880699069740392117315142482931531434825828498726478675723983550126476485364691243453428343553460254497390683893275355589797967967180043790665324458576738164940499009375660443227505269319829556741928086958870394166757457337607181481757129972875392748932618360368835119337366130184413458040356776064623757994152676221772723987875225668046061805361785057867660420797286070313035546002804975551166863145085924263743915708650333376507568593197579256207570404145590449541793951232588923096493344281227956671227138642327943207468338476050668738735600802925740059847563723385029241048527629036117531105999897797926783303557537571011863563313149508995189833452406811651026607731300250064033186881062549157312643383377951477464282709930312348862839906225008575173509033569828864294845913559430307082114438777757813776692015698837815232730638718718277930663295343381895694851541919470784195227846107320664826842158476011912255442713256732617226449062920159699731524594226522715401048006722810174266662953032196428469643628547409613740863609055615554857040722315329030751651689284287158134812749707947884609617662201906488195515653530420533577073424378159192416098964525685231175521051778834370051068321760857812562084860126938568295770857551507071815902512317417990809841377338310888252990148413697755389410971810934391212998377166132742769385907556688356274062296019904190840883355572423236299081175174147035011098206254941261480714857394215629545242740611064426899962166067239924450116041055014938493178555868061310134054954982102477990562398183861847930078167498873358485851428506641582680460309101658466492379560867848543943103615146946021983514475039916678344141396056969152722830657131646190455673203353434854175345722012816496241609899903674770190149204355814183456656915795117642372222765869185661052126520829821145323466837147009554213682640245113306551972367002403963303465758867879591883166581140644374929639270107547229494642718381453727947281279017924449544965740000281853548999571752297574585034631724463161409907498653239803163987970444249372582975009825014648274838511605005001413290094198752145243234904657046132497518080246383485701427859312840984818395998644783224057106592221860825476423137696270383227939738025939128347503434800167705674070438464491901409599626654087173744160322999995549928857924954848436694747677268102420971239628524741170614649025644274298864279351404502203145817301383335784178166344845351575469867287478541338335922195589845381644713332612961299155851767626068235678290521202107332231815880511570989362272809552078185926756291991178384069171888124975635641772974811911411486207559054274842874956451310366229676942081840246728398813421637060705891152301397836399358201831297940713713631367686208236168713949815691396813062111488320986514428727101378182811509471028663461812967573612145085596426452473484106736716903111713395863338466569949749054281863969207141980343569741363524029193790845513230940519961936637862552830287191251075588805234287384706755994344022656670552867851884915575889329393955766526849018625171829707351841905857092195580254885080111774728421651136728124984649065310375017229599881597291643828945419430261927432440809086359840965137949124025257083953753655371770011830434864526758708968804378657107765292451478932634446399948999605272637589318809256567877611612091390497000910185089784674484028466806918796578216840176346480953242325831885747549205212097874234963901480180035511118758309169858528706706296386387607191364258614527779005365293847415351242758452719641115228138004881632142322993252848089713343016253989094071899025863970606422835580222402261009606003942564068683642339523257897478227472881371536347948539948389952616429587429609377860269046150460539151258968824023500453677660241311813458380054777756347516380501366245666687875763276782551316146032818106476129638103631178462945319717683955315446012956857749492627354762276619808852661054619762544492302565105943752309368227862687527922276198576700537901474234580476325371520801614132633549228778262095239160413540154588733562735421992312253702570792200964808940174539739650459711411077171582935974607409272775014053293347373664688862168689367039123440216313092675321769377008247446660882245427155602536554720783670361998415249633754983537062580654167665491417837632649327451108605138351915450524719608051145211613111435024716360364409282801095010218189718831512109194160808693445308217630097693067729351818351961559635894642517084141714135599265186112141996220446335482966861241309331168895573226293132992469587910363742946585159755981502707833355559523348486943127352048865455347881324696248759292432767137508344454825103975297605973388812735291078712347117132824111489354198020758581331110181500408172652691446226272252404756630411818211806622194045238479584180385341341750207315444788251769202222955275313251934500939259558611258928254743690835428706830441742592190239995864545890447791061646646448900032565723169714710745807341803989222056046037044408447930399186673930234270668882807053777400086796480045570603117286483403151390304192520018150225301475687277066746644238067105170487285731967692791801228221667986560571043860036299004177677005372817314627647484488180711603333194778693234580100502091765435356387206710560819860837920419762089985376067268584457987650024022992955321623670417868214728210666074919083580945738355872927956756766845305814045809295243094498013694903950290728627302343116834279591314504266454248893427802003066341273123720004757343216722474812640607038969646169967804668528842426878424816956468025369593675636339050679837777187193279584139815773970398211540575490152033496784005684514463567541554768401873804892143370181628747468348541127114456468758807262179412320971513808530492767618748314196269010872435575529885391854627947696388426420097990534699638039310090472240465124925239934404891351164549887512184483989869226339336566191577106150013214562621316741043610560857598111015876229985096501138605729207101013053189573499332199917134592139482044988540572446127129969911047901252369233857490377836482985376260374891393653651684539293208458726438682665900304850022468491444262793474999333860028289960587515949950797380672862362910850568267920473443960188827602220534679722520436613968768572252226722325235992000625307691458609529322507064704794021794343598667867385440715392644422153601879374920916896881069736241664325121860868290495037191568539516333021454544684106391952355824310834613418206369750742810323364987954889730437274591756150165999121261653095330940140091157111787344659294977278343044663785686324641359444223675791595436497793991267424280684304617759240896398566369971826685836495982173233274688146455030558326916245882619722799307429879201406226253662866788960310068055982705306572508276561560845588538605563637822299830364944440271040236343511005722983701883128237765771998666595283812391866962499330759456806104555987503805454868525171424991067881640834111079126390486105553897576706066748499984099933474159769804178926536171939866194669495526491408138878180330868708878649132999731811263511174817815245198293763710820176646147775724472680460619636927200281463667509417943305022262616878903726180142436109884576517925943748540629253953276739509872013013836285694841895515670751021111192436750016006861027920651212917404584272941798589386905823748014102091939026409367767201023395118998036507047959004562067719967441987129540597790553746606075245255773397769174547839719034428503260523974616893697589242411504715333979747238993728861828976222947787113126571984299927817116016432074140962741539251140954873469597987898558666983043734173134938665150947035738601826249517830675095615219864543650986635823959620249484738027530976052315019317433863509765487870779307997077223058989511507138016085232858431089583905407607058751233676523650385366850965842315537963869578336055564872661569162891696629863133820254445811149759696086647631792541460086929945742760053404962238662967903411351806027249629536896500369632161818801772442963447107444834516013031617782740804697534443281205449111972548316152615043046816355111238545354365065171980914067484134490153142972528899556741340833571948330021656944110270167330841849231089108400121799816645554682712391183644714594042751329868418202269613095242397268196787645288365654361804514059937158935893884482622424584333147077400637444601507258383601624411544299440140282403485424788261803001144320342334774215267761887544900246731120952163744391772917774823323465596426986401837423734631192208300847487873434215415499417070314894464108145921555219267666594892813086109279393033271456849422698122851651833302610442580906235865170946868452799749682871397996895315846155871512727838976999221625942788060086334832758513388438824566072448002684499858848750510173891404125358084469109691530195688816259640663995177470161478692604696813211060988780728590648598104704054848464102845517175869255123354874106070266585234892359972684269198757284913380644118100991786650174200719895532536012479434334124934566960134478288318091204109604377155907851627897860066344737477777685320864539438912238419494109026098432939172973495119903804514543644536970977492121338222732030981096115214249037830505934525440008148708670614757584346803253684928434269853176936663845594285110589336368089311838265863783184388646508141773044007837237632247046238095164794788658982882687136972449410063160979983312421259898754746344611141243080000978007707487171741319881050478435047660426103399151130608627550827560637008808361092410758664710401751899451255374651362593748357096087242751816232733432556315372298642963986604807123496316769626920477208656782998652392875532239041656075065433077630405776572170247123926192916922112796578169773451230328675720395559446479570360306172017174091967216226350143607985272373573727497580588347488228822611199133523246679679767850290099379308318556034944611915060838242196796231229847428572147144814589394581120899602501816378294327807302193187914142105326907457071665778609748533333361551392122684791528184976702600639742674935632512057975386974465570498372648189920035739923273420929330895603830101686548230745937653405949780792720664682547572008937801643408480557140284315559744586291333932007043151315801145466012608489657656427369735842482955953553045457185303563065509007080591831011773760460458008588127473706832972473631434095187506059936706057127930308235196161825673538713217522093924616353265968883738914836643396611550659040599266421379756693610540515805601835637495307297312814576669986427302002654161040866125709959359458011997443007079539708152991193175138849647213113132051374436958781996213539238061576001076873579841616422026720466521721710860315844403772027974068653950904345945402889796170257165519754073038195914605263992567605577783113520352818510604828603648077118599569810601074689267008002092115175344931432030714729311457062379936557725737787353207865353005416277710954927931312013718035404734152711490418386725154529783781831711621941644207016595536822177607517907278356890730974055686845055040768136476750943644382205441342305412134443284473618790833022583117605603143643451106159096941985671438507076601825998982797203024535485148598965515310991982688091635110372102445737864715666550831708918088114498413634079155091358017981167230885500405713699640817556672475366911603734526631030803651131607888585869538762309161956922840265599655675572269246898313221393243086100021943730502875753153215273066570916932598910310579390878306870472249673574082247981261854467085813643508882317525786973464913572170883766838569762989493183061917632321630596428882314309955530576946760037599390397200126737118548149457167933340790437841432520339824956774519429011890595241457657649904548887906201618587757575134239101409226951479429706556005952794125179252748369506312055401390832461386952852829720973702694851715241993149758147107806111284273272692947096940290206666542169581489730674470894287343908202260116848904560968652443461004430898959921277062431112061964059061057548199086571968749677445414353612792724169054408121983854352483188889710978303689816423339266572130995202895002094171442316261808466369701705801464070531494625877356597716968120615872615941738292264599715063046541165400211811470000683974006267003356109713012497218742000078043845712501253724251868843040897592906639123768783355711484085992328272570472946059186630643560134373504132432514039802632707822041367048093723032170657290394664625048705927591217143410150109193508048285927107711105142621766017175494285396227150539101229980792400470226917126322291690014357933426510209228435797428581287222477551928611561218801643044929083623209399569378207684739862023734636533690468972625803524743073127242297667238144134951618766617477936339599225929661647086134772265444093425650909805436497520293286584135625956795312871757271500520559181302284464251058127103480139588738961748028171915521228874631439509233663905189321440631866352240532753635687574509389763160593856093974473551182273991859164927711720311661066811362691449706399709778777864870575014093097703335803477708673802725703015821652205625399280162200057323117734658329746583213911218643536006692625111773256358561685921911212272414802235269663982417059233638525519822203326945372366913498982177380803854808705686564393708089890116868353252511670447948073119929839541003229598798256273047642676264176761514204218696291633151501976117409027652812356760513510280492848689314243099493114853103063092983689401029679692120594337541691857374886955371163447888004413087446544163429938503896918107311189688282567055380084044829184878709151071585411525511087390472348300476899452686174884714512066401938821306421941462950437300217445781511822536232433053377305226968972475817614040835317128503725797963276743682936493663540775332522563810485325531733923655288976743159307262654016123684258861047519408555169419072457678295306604823525152341613055168644323130942873794332291059364032137354959266908286927136641169968485823500257894207659451631047646771967439089139313485667074411277251254351678778039973057657521516335076914096784579003861933531455258298253816475239117131786241948798359684706424117867484064747452704667942800540760328763792946313187770818708638470369746420383209433086266383523415354178218034031812640886862760267446275941381426094477064214972467515378982735287438509827748115960641052222046746331258940612898261029831028101185027011253107555651050141613476111791785770131379708493980975779189247594449424628235792446070091510504798513018875533888495078203944314574568408417531032047739626994516703902370419944161024748596632658066720754275043698400779115957766564927357190176522557979942473129659444356310580441696443154165952391957747681942171788682682361787025132936140341939857659905433643834245215187094300176192766302881654306497937678928309817000590367701822081224387568249473605721491580334591693119620330254226360179221324789315333374336836770220980661188288832421145698572024640674698201887269477805849128263510382975108388362171354536188400942305715944371389423393568941448111605045764148174817975530545611052626388137624913911692961219440313168071101979476786302136479772106520057461030387143279130371322235926895715759702773241204065793706632498675947950240115454503255267094040616582769766921149484074034407997552391995010122246415935069198448019153456792071825155667221946478498648729287935327579250085283120252138237494446103266316282578484542044262129185200486638728544973635752742148133970705135968604618495919648885293103070527074825510686094165902398489442765363875462299036221817627263936016233261320713897367986420107946824693712214679852238632837608376943403382998077827271103594521307479274927969111093121674879131904314365194473861948154248466158117645846002696396853026127772562829354633561078175214562616601066379831583732147788516551646735778180150473940196130076100560780091841576677028832495059070035237708933656744854611558207679053877121022207910524127644329259966619634653612488924054457568359864567825820161033758096746479675455251125457975979913164972814014881428510773773601528754381550597684159760513844124028504966153332501398953222661433412259536111681471717386022709531521342048323044067293822304010264874249320533870826934612007464328566190211302758127347850935780779627919398486224406440315920379268158391122831951633815762869456187699332019953180629134941572422355463848842881865137162314701545682899665217341054807913681169453947352881214948352874944962242218197141722745189715584336045974305492888782559143614410813631035487423646212137631927834179829758832844066154131069228307729762333096824617034851376655748245075466552688934331330148526349740331499365833394467602885566510772362181289729625647492117981266863726171676276975202759828911535710479776596393243661876138765375185799869382653199562010594810879844663382477487005287122977693137804067162849657255111570691271542574618406755639838856829269171426234729498724404785458973007450485860480728351404547692713196012704329305778941674441230720003819403840395627993452107765595156026206648750016822378066735853883705304256249050581621673411743094295667017199733141409295152149596720707620010110227888752661000811012936251339097524880771228578366583291661937783801178531486106926858979260802459615757615789806003828308003127500416196411114017605084382691473470640400377803478069408479276161537958886924573637172168749999638637936031031278608135681761685313122105966010435798038456588587578788002331722960546642624643838413220084116420781459015159764418975430116054452585060614403360755346877283784688108333071593134761283455153259844733044161407246662710991377303899827437228138689914880897085552912735028733542015504626821854178957768289600792441035696146020438885490944302224059473635222198873728282233622885629145063814358693343171614167874330310868557503321666197614632850414120842803517488885997045005973967147793074550938757904627004409059484563227606271764426158694584529155957905052224107560200458508481186867628247042839443059808580853061000387734867670255254350931931746344142942533457630324668967442110771501859978212833784518028467278619563654018341184072288839949137870843008582139198368408560528862561843246837324205635617319475478168485894868409806628637450032908484168628374950212487871390782804813838300202636308961904434916121456348904995274385290533040526544279454211398796921313911906315914513397323350431614771340304735979930511291462400203798047625412840798778760749840882993731471604085299726090112388992181054812092845332278926508631840366184532624500592672509180079875379208279858858398651591609376479754740829001342539219818679023678691673273326770128959595693647597629465252142919889651367862352737712084830330817756864814386172036760345432854051020363185135966265099769289876067626673781406031585123653115757538067981061533810650151122566068854025161045458199118954688260462039302882993705877750061847150585308587704866229233672478114411312276107334322137909320716165293026673776294027845974777274962586547187680913726997297543636967258373488796670461172705768042544954483418426121081112884232394492229467596490652760766144626339082924366147214772915934359893446881924917945083489385392688847115714265683503294788976661986696729382058163099327816876700483939078470597371725627001965402083870282940819446591854012829910497044910738252530709744166719914757555129515122830398893092602063982038310077892309174562038021769064634336176018375135856122944910502984415939535369578893941419209588370025464808418282409439339137844074126948875879453808431094246804830406282243819684258620613287618926343014613026096700225158500609645248831415055504092970368666223456804309015894480277775222526295029474889746828228749780491713805350846869639409722661860478873034634747738601472980525581582317235085119741378769028200176556925148304499475115682541546825464877967949482130342859266853597001626308642038131608207513518363237691670523857363238043226657761528014203028938539222884149541559727336481737560943393718690607117024201476591463788700603962936943466892662637430293679469703626823684451800894814201585585623986720860291482078693104297948692478985554101965421837343343740322651980611967098159035557958686788374637121547734296885888681756013192816317612590821827052326053099436491501507579024458967616130735998486803447549828560877091691647190757139421610924454445159370658698114461462961223933812223639946927024959482546585834095539484545342999607723557351814108113634958942116212503886792152579517883855325554921182236469623611238523710540642573442498484368178053182808048324757295029761615622587981414126219500236162740583902178011870721687191075952199931690275284256020995310377159718516610285211032909891052787978046276086151017101460524621762296867974781130558230636034568045811597885740572021597701581215529141444471533903456429353287201553713793396350711823819423544290961757283205767404305490188336717387515867938372219777884277272905836018764254756151867306273313273725630980103255117259995930212060314649422731113915884021963962468344078716310002541405911379279736973966466698350485644484661104807170245465176969903425141954489475569013590218265459467612597088933070206267956053616320849835197684639617672329768390663827318905781531943497594647147532959389567697339744628673709914995618319039467228405547260425299413787202073014481453134669274874598014731398152887466171225113538191840029914426196293357518978875404741809787934447540841149003929549280211357136441791653219815959403713502393062531117846029880911978717145561697883624639767731127611101336163212619078318444363250935018783301524560465535347160096849854568797782149888572939298476047222265893457782715277162524012077008832677446285709752486627363821759119261773324064664764668004207545253191669210452387719793116673646015131365245868937568555923615458110780427919301252494247122421711679443146634533480170259954980777650707916460269663995590982436420515027626191576998890123865791016602053430827216810226213603442868451809317301720017277952527051876048977105063245819699173786303185322632802908346128281171182231896698788287928984601218059352233180747875049222579313793065766874153433510587382520496841859035984756097524152315242756403013280387586768832554885919684250308890246923074626991883381880923914608248735593179475175689342883038932408205876872368157991069442803915208686739622653904602882871132961896183026977113160412767815450066198050382405656409486016416195972087760467415493118145411331240485930450245689319875245379892811942197044662701108692664647482422735246721721794822210182911327660923949595208612648016564506678672710354130073445478697907441163454343948546708949731559531463205739823505541320781450702292195355457946120500119598633708182870798464047834466662599040903945280927703755068594973035860590189024974124728749314963437014419989951229016688365333228150792520631692795233147437514290575827142104132871083683363467153046529285805580257232229621686553239793289986046572470204180230065509130201143890366946751696145990641446712090448337493978236503152497947399788141843687049319114794079739254518472402131741932599179248972565038783150424922169571021086684637965704394106382920116668507240388219824049559515061995825616585501384354589598731086402276822079331121092339501470908014515502838218113063215338941434676851815985510841762293006629606777216946549142996436810657555652534196810888361829131030546107894117326196080513433948835825097048138440091497366954391581250874617996908623501807035124233046032571921792068692823368635679916539611370839989748741091085610515559817836122564930029258594872555319106147845738301750744202841692028804048947076313402775789281023633901161441506939156864922562311628649053300199455631365979212102038774039701379600777049887881189227827535048529202861621795385348533119314064218543578238560091937801409834111501444692015621265495718489397391489487411970593284754147615686115939812746409135022003870218255024777020805666282278624438499861671858351001938823907484432113089467540656553032228266045771965607351747217530911065841581594014116967798811854636074319307061209145169286693735431584201264374818451308202597283102675736032427269706018466165739907615296722437678880052411238295353814385867641838916084834814517144696320951455356279411711653012689664076467934982865125928198589243957329490630685609206907338311317547931871397852221921599191531743215954610066731344162848501526398497397619419811064402089861985437253082141736701712159946951023809364381384412700474922103122507178164075190739600187302848398159987727768719175451176399220242785914482837563201180213173869342387120655469219046675977736392865638086406211518963790942304074128440459743311510552968206593015857240059188381389560838521354153027657618774070396754953625957411684179936077909973093402221547617179489496586039562474370438400813565380908813396448726215976366107305184332589927723177701475137892985117318130543597725064867936926392378687599937999510177833508054389888119739419222889095716228260617063037407650091372068790019370888699902142424202608854605544806845462699050623977283219010478390454839743239042233931129770137030271810429249973159595177942775322901742714375343462605764536132244868518927860568532363116637876153463112879940724853240532943853246228813541949764451040647578656581328295333403190840453166166234722835524291544511912933701698894872142887418177096470105054996185664233483472561911777612099077497462555758505073072742032737708780748542082728169847096697972567116114788057712063678677860688183214175067653172776178012870043923538125701994326215580030932786391080311065070883833723138549054393717655977609980721060034674525088193383008778196449642764557451316923736374643511843788665602106409392118577919662858650138208054814765627695517389479405666627250807778585704808584173598529513164241719797894206999738074824226222711220028367506345919088260279480431031173209087268505384060422359958993233813474350259922107909017164833576999229487585699551341760921748964803433753202874293868035252885590569404091338646509259024627443779532890970220566995592742434320215546011664595090452169447855639609513489596101893211777152918898434556586506394271143868649472249126397144334572331081455738343627310113581498973890543532461092024339102293480674336733946526916384464872827870353976241381855987867662659535352374354746501338658672780886257307367713239004821729281169761679852340104751338109773918535903625959678280514413859641106196641721409346219886026664668116451901592581101206111839479154337469525958710082697304018658086933606793171405991923370210333042129835076249727017350837999183120777634777267513937374725179785593703333031953573152562312358814921294278596569608803720649683275434538538151198571942315294440026886709569916413125279399456140388201793152179138719140409847572660316323123559237601636913606579892324498002070585138930407408326707000754705542207628814399417484328565699394151654468622688443423842598762849781825347121121651701929745928456379675919887198765445140878507213022942316328404411745215154888238410430943049796397115716854275870196185498014928733927464145475776299255449891386632520478928124088915284126313665895891030406051460560471571171340692320544571175322755906183361305893789498642534367564129370890414759214583658743181605524365979640843534073671360663790457730384212270416373339544047783499156722161284336889170790649286932393045348132427710753839620983465301127588502734807061847644420861615813596902202039973969984336807903337145101375657375848122337644739625506951087051124562445766283887035080897436852590053037813159960108459448423420954123642334850249729210646853978639791374862269159051805057649133812453115269777989247006758147171931200859993171294012914304878742669643334151987284689693124821856673121382127491503808464717286252692211820213178587405470834431638123804468460108783846754504552296901192306162864387943710465635634461425026704544381043826989104748468886359675361614654433506625297021294516090447160092089034860238854405461240563611175271584979330843512326126851115078701438130988927942405742471695430571136437743612640386097836344891896214577212168318308918267548765811021910626739179348653289977346354911703275974062982616029738771519421959899983388373429239463709165951134708964126579013230623381647347084591278092827992840745650069192975704092880105702476065637925661174655748814712623739841362379726925988753288963722861114906598512867285814068709228052298241998138756581603832044741447830130890423395830457727612470451363740770240159462540103398310136137219502000407144142227809692218872940634046890354848110989338888440103206340404182652925287106499541342515550708243166874539626758974684381035674261607656117630475417949424756014050290148169011220823954222104978090026519740883609848142965174204492799049636830050135369821406463904975540789502543110782126098760899883296669782694173588056711300842821380518252937230253313635656623219493460310879612123196045280486948987093054152510419686436116352011064677263701288414991345937743488039134043566666393042775389196827645536616053404286614798866037503146501493767690971324092993714410705767735448604751252830533535412110378560031074697496073103361294997436202368817573068394457721358767206496049909821958408710069726933163464027413509087378931781583612886238010520874794867234267750757998812939717490748039118373232531454409493461599140237747120596014272818068748939657423808931662741549636369751092179756256913370945291904029863467022869202699696637447863006701296616667842824014344426203540204095907234752244438224123758197341352551889073477854687487748507683610519618269571256072682538925265125237715676938130806884711192440059542100200525662489878553484636991939273791636418135824708853466136472635821170420350440953227362867201669396322219886739217065026969338002107140808520948165978030412273801048860165000062339219175951609267556721611556915766117221384657997932729495393747323849910348970793001776358214707936569100519813992477826833478595041852568243044065098339978900382442919568313117311100024120774700340153520622746026358716786585272434382772520162921750425436669586909009914904596473236455698970778109549750190636844146681673886584177606394557054310443072852426179918709934706126513589772765020693769191107706702578028396885327745306551725409640381065891541691475529798918078694098934446030700792804338047036813477812120717733407219041596609160551085222251342995348980015791426195450059309862676982891222385525524449533052565246113681187956791241234937784546418436080706598363894852894529293700677935920113116322187695476545948690813592223736192199001115110349468408999424483130826506870252251502566281227616750851269187335659855731011162012038581058330370849027557080052903865636350337390766295300540927877649995856220731232640523989185346726452897756055558978561843624034495552225340672797421422132625343647831021939972511954504562208359250802116019323388560840132597084355617728676218400925367958473752585459987660573999476042712187537030433872101386525283459315639674483267555822176755499354373252777805073367280976436783620221478599657988690369777378388885588224107066428004572963580716658558081840947490438787235885571321425168209737754529259699116532616912803083866448946868664861539293765254477156598496094113238977985914086137851100383013462156497441343159930155992922770350934865849786161166175477952214571443494090136799753594368306328693800755120549199540917299477624380751080855922232116896516671009768887634869422538590903491131441165483044713291426621893731840072289394767264032257235228440899295463249168811856628156145923805467350316491091489691143833921188212122809077532158176981834995499018269671820488955751459634439346833211969383709863961999475719051757436460445213775212209248633598492157912931887973427620669618690924149123020114336932881606234493535251088368960249773561953081912200401926714809454212902397514027163551002171048771005554312978266407445499959826652171696635771211188446014764753726314787950228919138601180535843695713941009286634439270543429566427520932177601004706875649518759187188962078584053122726799930594884747681865419878753529737803046323660521037698826221477940393613721734315187915104423590490536963317777101995180053569121898227182633452785692029145291704209143091912984701095900677889616030003973282485039880252583306201709344684746601807062356604961100767749443304184136025652823562881232115329586224854609913859518192225315728040808168516612990163443459997666963985104024690069422029869930393715712963152143383854017911813024586610271394583229120823050035527288363971564947895260111376645044186442315050891085848656979215611699592012423854020279631148512973763267425650560892928141274732930785337479040113513347405844305189251048250954728663762855068014842790354578942801863001731871495378070676907588881919677541292794269480201158531311681423837106558875027258483187129332318062001840698045549684184893260101488389623660643069485666036160556602078604329044412482804814874945293187024580029210821215259673399265629763396798088916182414490691757102642504746945359272946496343075338899801713402378765463049394179110834223492112559313148253804194654763420252445649766490657778737757461389245950566425429115548089773680407663930063941937463206679166177150558397780941830398827707331482208623778672651960000980655740851752016054587762549154826703859782803210748559999155278155058330263272085152532128660327946225666539866272579351895627912623782401316198223381307571809540776588468733208766869891555487563193091848485547777122415136313815970608467273883781764302046417834299137769316582557727501299470736860352529268600634140596242690507256196242200721627495391536782454010331362758870648194420674151875939797229166056059481438453024369387080767521328788925761883445571468891860516511802596004921836340586527499959384730445948010943742193549912695987354119605546924976226347408294232317884058624560757974355351293466484351764385276602547236720280033953264164376133645468799624556256902309080286582741891646425327882129294501144795053793505078893192818669639283269365748894687289445329663487091329627075146655527954935708150431753377893764980022461967125650440723795584085443286537555140035403164457202684593035471545131787852682252172943469064662986838356842468746267093151007799122108570460126581858729864522112210744442132405253071901572055106503343392886118616284252171664781221318160991549321231446222615297834936865241467524117664370625148729423035146054500495399349303732023508640883785157217297481302807913306909026926684507548566265304488329718578304075390439844390770069295226556678737037068627436967788719973091661500906653018613007266097919182989133209670973067130307034360192461436177875928030833797073966730257171148861460728987109005903520605285168106944714978654372494745920889513076649141378207893193366717758119781934723407506152929566776575438378129734722066970119090147112558781969102837924879017041438066290066359865036523323501221998040450744961948986362919438197151002278828396914138040547006307932675185282488725051876540147097854773536402326397759230040703673348258569004989560309905869072951317927323909866456897622003126546226566738488446313146604246159820752249995055566953730855723174302416158042448487921115890998676074532916743540091010315182961668344205332674765958656241455304174567367364840086574657829903092381875304386321097998326467010502097740545695330857651316080081222812801719833153223413704646198084705451984165524409311593173854376782266168849097769723279808690214951485772872562608484852748386764521458029136894051927569058269303104699777513889365503173503812719972687795006356102162334053259452645018308553215280238564056590378918259094812846507457244760130236415183284964622772457253367298346082867346820905463032765640157722895246327750590009867453805169584955180339607145536752428999738136057728258750566536901960614961942749283428825122737925538042215253293383878025428145091428669595967173832021550358442844674552778937233504010251688728228260843941457626076046445962300930509220494634700706161859674222567077190496792822028444041508435339324461670499862035282781471507756787188582138390254335721663646056611428509924207912235041814740405583292438860024140379252625668242012007713522117892451554965964156449881686544214878535114221489692300574123088467479681045076500879651715222303593519806059464488053432495389036385108353954510636621147051543619286903056988964206096108996986942593918250255038555487434020284817164336745652541491102158464842278624475105778518624225377178083134969329719774479490849750931096748208394422843537886385099742239106987980684357622437719460930888938046794378585392079989824697276676913324161359921706812613178424808739083946503645597113998306805545117658520498277564378293583742189338221268562833463618000695290743908271092291612587708796601682718063349458125158987779399788110399305345339663541622770301115498115235887467464221336151036914705789524006536265498283788654559780779796536489910373957530963992079371874388537071403892371199370116880472135610969806539991193756657234611869972428022878455580428464349473022273744907658863030209727792623894431922899623110134989093628746757622496692671103970741487327292662727213717173218346394354846114803851204037178400172205319093993783275742255097532074395649752127677235605392540634740182740723881275647466310660639386101306882684160658113446177738482723989406412789775587333248978832549605469976245871953746231695391945545074946179395372640535310869651357212706536977546814522147396938290406821773796300960433502407413104609288272386110497323773796616383903672945051727222122565767867095452776008043709649586817743888729898795776370940218056367430186934918656892557178901207025594489793258685242543735788828666251813601781533642011070385761861042354040058741209352118806692055062216919343117524231323363238640197679237887071280302646143250706988048005584200002048552408650215158574193524716089626446297295439634287552638622708347330102122137132402534900536049832517358209362433104680164945138344769651743701652106414402286190801937354414332436744027491786889618930577075030123310836270554224044421912263898130557244547050622972848732480980823367379675064002812743776091259313619914529421379796215046970469466888075971734903994777764590571270275266634350066126457793363061619422099916736638687320201206748192046703311343999931143368015926126410235582528402677208099170960163595122704977669237987201122992663181350125836268871586030060603415622652371531125231187302238190273132597475385717031553490679041354735572448112229535898896564885816726515713416197837261238044448118832469460143023299912220547614140793239263618175955053283120126757260288199109793019657418606770056938920651317794700988672766927895660235078133101548001682091226652714561785224943579364679118869606474550835806225949064801626605694066786143892656706809831693036431025398310589402383388410586617231476181056403944522968978795310778189852328563991411022127189032234529886770899434063836757422134316364254798540029931768727277673011720333119176251559389368276208437763553935732563137473865836323136046240997886078863133132326395718538386538343848988378167456209273358194602283100920838141976613257072833619354902746315064857104609580262170173040757324412361624234111199928546448806465047175776460793962911367043537230555966958916842521080804719978689930458639766795150909562929188983883894905103113168909433270228229642869320839256297878674643589218546411505122643494523780273086584861865943091048025504698353115762792482601237230141521547694005934317511983540643801984145761756436427362220445633739247741581582903445511563877559814436769021935369370374212805130246236980410591072002510054034489084696236431162942746297081276598245265812797872717194560529984394005845630027512449586526387179234438389821917753080065600564585354148293349964608084506109692841320599075907832821033986195450014040099556375747478380654972368671918035355491804104531357837480761370488015448110278104365376342292615515491272144728223640843645934067392999089153862464496024987921339001200259614199039775088853914593811627023368559990617675822285883374499760402695421255055858604573162697146101201559309917567574508627773543978154776624966086182735518519278535589589172178179369593356166498947948545561922636883237758825145487487225935368713626381845704432979226688682493277577775935896016283101764766108880784642913930164899253826197722494076907541626453249315018024720846361010538872186988215756534157431653009643330667492756793788535701973362839604131820126044927116962993275715694174583677499172996514074723093753127045400367372040391740612812465507123997112874695807646185962105955171685593708602218993977963538870299221040335838292326004659926565661975919600831689021016490168095237355728488656726241683187840776746203290803054416822096024702436608678757623868524690704015429243130794722173916267187564456021332414894159559490673947279264988991799733622466827845232444916073710927162560619688709937491815856507504014156008534602970719018460185158491252142433553811220551823469626413598279654058840857013286487384586075930775365810405217855549605881286954909773777466435291688850094992187729744902828742770065921184573206924708543797175570274609727131275107975519344250657645912153991290399667578278610653570923746195836448503502996002090411868803795272168605753636411124746362322171860373347691605412231445930544382084597023188165520425342751543666461666661262245326128074892917839588246231565004212725672062329726810482565914671742142583495705957395082622233760925612937536523449527628737540533646599098724669813582616688106592654765949193775883408163163320075660864988732639385820206614187371848234775294333078014422514394928349978215463586144647740908713254366302833009147686289339373927163152676345481488883480811069058204457843295176609267555449083112883272085691976792799020066472743821985234037423273422028624227941482881375983532872105844706573205516300668434397385527122787546879694503581970028833038078491168516826316693337090386767394221287866421673622549585468714383559129054117447862286716730439927163866643282727078269107724715143332946385890981516866733592247791543229163111204960595747864731912972089772932640515203073155149346391043138635308359706112879862748357188988652702091430068291405014393317912165013514849081895895702585031425870317900849837437190946881136658132887432591976368205146248854238952981345546582157022583745633305003304237244529694175347639359900114397338040269055237990990110821006102197784873813975816025618576246972153063487714830162974108693782894109000815807082617706402494750340889634083601109472634506211441531620401336583816111522078269431962437137766736988129754334704703526358498331147163505850450437445213758285249594876496704389191026725576151388237813566667498359934232345224404142451377379031146451147469743105827074457222746400058632895022512763588386070102416860263213088840858499856268825321828660957282253422671578744864455828989419721743860819487810872055640547662085650115398990006578164126451391832474649828363877950453014668719711809083861128558291927121169627442921761411687381136865281213022822601131823424828323361903322238152035994644442327133910069328429057313280243706386655320793269597659976035837086148290937973504655792990980819405817004995297567388817683617006309967986393124410115316639304212992647357726397999876898586833180917019865776539086224243866434447880037185063402882851494927176269295207574733472669225764030111213920311323789445657204721981366715470055155771368651977237604771324053100173751737340627074776184714643686401637856020554481390213553546264427345170662882819762522036403641136839344927119515902143916593410432105752916589861565281154649772008575711278296418029794990894630094457072014493799333162475561078461631848127490563309908604506749540246324287324228292201988866681600270951390609506215247130767299596428623616308883552261367264071783789788520779928051547029925662892964644911720272335120358431515105887280210607425036286017417802416731334579995122081777132000204247289846907894870384245053157072740600881990252475834985582035893102837863748976981027019051041785106791797059738944160277105622544197243693304100105467266686815950441367925864955597338182655505213396889193459141848966365989570702834624390968448637570566908529975844447639213589441239676851423988744211202756723483846987002911441445874132840296746985210084018512775102829211970444366274923491887048903266570699990830329276479360637959492425309988248737043234615954350088707071367690054520609426418591799434640802313530595271047966076714146520379226516754022505913839116426157051419214161964816369189669450768517562740244744412662059274180822988727036546796313215414240022366304914373211385247398413379985135102056442816890683738501164722500616194085253696013708682864462345614049832436411719726827083348428356240103219532026838989394125256110642413606620990820985208799275326138723809649322305939721676559493453031793725659106158653697644934644253592769536610305201536330556520195358540741029608742487271413856160855185483368701299943695555229656607569133787252773767608097890327385853942276446260617320368848980168661758022223182258055715466783352207993036426273367690798967784334771400263748301438781166191775340035898403626819504628036464648619277657504750717910568669957196222956703549281017458332134348968130921048899284940884212957442274328546848866955329715154098053409109351757258643855120466879925115412375851676219792052780010552629844409858328187914635943866175397800683034694982919285080763806874189674847565873743104706431917055049201359107383687929986312195484319302123847915751278604395199724439709170543931424038508717801989855546466524856403231661290147124396366169609827178413118296876821929485912140713026748442666050173083866864242969224854408743098392118358239991913053430125628800443277130486326983787341590662938195241412525948683431552398434726044333131379927075959700270949783452990224366542116030538774896773434230064173698978003168987933911741892551580909443534274688068266224847818281130336745544645172920349720823075265505561073008805791364269200332961971472597201076030631553597819334133349229513426876472525579565584089339084897779062551282313900377814264685247873596348262271021802033739785159605432466186937424444386952496186531107132158268016751706422419076071878327593182347610704863999036076617328818687147800777469036508587297442461850566397561737886823245760159281219815417293991756587987393501674988472131788992637782725857509263095951296163799744960701292843593161412143123244430444435935874854357052418628924198263559926789410040123021554410390054974743023736945500227906378392452000742029857636115291921811938192531996919528310198309186557756564489444360721133552705100059287915946060046342441060396696326009362452366962179336860557316618705631443019532532597932013424474574430374685192884067287600708167683496042251995037479031910835733309006797155104839191003119195482248630148159602373303844570811086727953634297165095205995058632518478699148248476547284564018158297860599475152174793428584597672531992499906599605833542260902803019780532434552782279515365912426679970120211496470055136154561189394110483699835797816029194502847624122324382907372776863574170853138146731954992410851810046538353615456457357109883075737586377581268530440150158862802333467155305240541195009331951543941363072348539367750455959114684483688591138943299085411328294314411112726640093210657293815225655203677931261112070976039935278453131953027665961714356100210429158386757119864142435385602149223889008675450987139238282523283398474799508357380579169179463199426761996563191860489522578720998713685288461627288310287393182195584994023573407780324830609551394471163698962178085771173624754021088550210989698936977282368861663119377008341179094180173046730586422223842461948834640927017120428558702604884723163544904214977656593395447013140391118032838019331562292142992105735883598252333494260103666175224695067289412343815421045983146957445116686517837861068933074649259630420715167445028670841666204150474167241219320945950741602776890561399311123784876365118181954135773598780967204199358149952262874927769441462276798595476301439246373982234222438993572420028812693720991317434385121118035538458971032534864295088805566492298172395051467923789631662529181535357992003846001245842747942113008992843953750528242437262090718180156911881725571453613631607729021121949995492915521867833356824666308311001362931499058528621132643039607234537694829107209660027247209843312439458060367120982777514903451182320203146304871719440978373636811939172840447045381699101427353360521771764058852754733398600804611174719923744210992311464562169948306919548285582936679802757931622013103805109025757847040555629241869722857104500767741739156104997855730830705878581073910380259361258895308248144731384587250175601850981079355250570063304691898295919392795866283839724519130940443038411182646297157864649853063012395773512942247596900441860788737701607199108411760714456773304545273730540223467988696737852886207113828512950257511690953394618468777407271095556623240147802267752049732009964129677088199068824864038268773332649232033798802634985357574138490288188809824748635922599127862190816618955509070305346715407963493646665635761093466013808200036588983243519390522263227504665548700318914530513831234837807379557783403104076411712176532694343789404797226856819793368962237806205273461620168549500022660017521969621253748522151366731558724237550050621985982587343514788235016465459030472225108844557755039200578285498989183779292572169055840777017890212607510790969954777905345493426890567188792839870936971847141660063322415109983235571639527733867956558982820396210208922630392927568609978786093838214974576038168862592812115826631853226847139298189296211106217827306782460861955853653182713014357342398321003230445613561706837818636951365270883102192003088347027429407928264872403942276766792170601179643266431071346034068378993633574798866644478302936440087959046950755125425076966697456834368743323048258009269485940274128219171583218997832647064060392647303442188189620699136260904522544174899986463486437129946931960328238202695973717557276969193487115820668083267534173932718770690687779256303213903002657322867737330699400089846291843925896591635627809999820712491273611510789583439989264401826428648486062735183332952298753598064798053586098442388731683675674744177860440290416931792596878469888053067492859508717889366652657949515245565922115851579994365160778397270156121392568298344474253197173601459610309078358078976814506140787565180633946815119839603200885334977994897292530108639294295644904353614100097850886031411697844108760094315411541760433266550592155623739938658553715046330301840755987768056159999884652499904465850431943050231540191141340346337903838126416084357963849405635170372991609096782019886887769762552975676407033266726703134148161243733723827343862353714186848323704623701659733946781957387264105903214721072901630915512585289144520606345956760717887036451883670938393574831614518324104076788071173267467909995028117279496280268675060288918804883506578721950904343430446398379380486223959027650029014236740690147999143072805792104340449712462395151836782275306149053900412353285062786770662691599968881223201966168574070916244141431270198163650890841449383563041145363291056287305138036644591133413028827444123067472007229257245068484193802525907774373860959237183070901439690466541449216659478368396104766128631301628113773837206197347549165223822191729090336193508154377318770204450694479545143746698802654469729075201617626830627315543653403407210019557750612758205099044521206021106160311133854953359970687953149411413868781862869418568221550641081351099737804207612654526896001070326637199545077809199850892678041266347810732247563251113437946575972108888270009083182963193507007509273321803568786701187905547358978434933708636745002552759254420028539109384719358630656891293558562586125989677456889785495175880245835520121689080007144598853669375300202831538948315175741325057778319748111766059841707975947695959222400369380582771467723898518786038293204080888130404842827976998004164876566738998550643488790951741735779608473490679664177469320286928860232405733237255733523091670628471389382408975402979910058599043243414724319178186875556207898384257749957948593441561741202821571972994460121944820728002426243768811408849552831611255855869031893174648370819475501322955069942608431273010228959766285965351144559348414089317222741274769561752592227932270025890570465648018509658768707857739076484412159524003054218456087141453978063865267904943977004577405104650011925693013594117707314227931425572962408585874569240114224662603210480718948773443586091928997690444686514468391271478736208056941049196558327882843897592422700273135635934571692009463500578770525878941719528039732730777253278959298933374894893151607308479586976779627875784724483758432923178710666764407855008818684067014453996771501045100079078226925764203068226846531212971340784146241132852013477577451620320613053259675706552369124194915143879607301988098241711438767292587990268357770129542187879283729792921688223425781660892105065228995467977892156734271923621303507155015831976379173251260102403513521433647176634128896625171536392748757307049111136511914727273406120860671856596939720450426442974017962112925784370536914165201726215828265386469604205852446017808794722724540063380435105019554109140515601991583693070468608553469715188808487635033090200378432822470312111037374152742579513766628645881913785302590789475390229763412744924200290139616094624655102097318610511676798914681524905909680629779184543344272190600745872691430687469381736194536740597657023054640145221316178337651663589923363173435620982446491891955904379122362069232534579145840847724532713605278351548709748309703267321631639669850225574241383375156746092581840938068420202140004754073725332476603816526872627213979023913354871635291176211149663346534505661457573273409310424466413681696430576352151181680877973783843051070594023886362060521267524820234642405189963313986303928156874411182696901455751133922412641779201507576487447563413198288717910247806133174359639034412515339411651516238795910957412580139210276036450436864313064741410482423993787599624951608025199061949693304327382945652978512758700906208505878638105036997882790000357764933405508776342054102751580571784027406770983848219051023240857046334780847051684838088525728525020764320462163119033733567794097919567174075420829280912340032719015824269198183191027239834615502551915614530040257455950780414121269162554549979084474087659762606783688792438037733345210473044992818454680173040475321156700489348498549249012255969821842911261050261289039855966947743036855260418141807422644361937640899115858068426833462169585445736869550580577581306038833668366944919544761387811227234600254851656070002546030042241399070340180646327101996386573174853906446672330490782180134090576954601634941075970545600193615043368186469400287461580762528502215546485607280776747743513183668273171136263725034902214391565025792548251660162487163242711707901577327060987739253999854508040307775078071743711187075055958084491374701585144540908194921941510692230843862126981054431023541898847457159268775298333561720624461845527284109528678481501016448289555451178505116880247502552746959546406310980675617281055881321427865090583160142246110741091821547612658386998902957317644662062825281962485850331317240458289081765585397270241910742110450406519562763423229504918560007334756537836588713910423033926348246477955488496105559298820329152827370023364379227921156777064911408049476875582174922226536356808602938631820336795292999516232000607623994983643819974135491439597767662250454270400247724046375731449182981105687798207415564291508904705141578524541849594868641850366557511952645902547980243917639374737422507874471959828142897471416965244795041414712985129566741175295109552946725215972857490270907114167733591018136201043420046012008393990206965970894947510415068513801366060573530623582163414960311743798957923287616866401070570676306112232940390789818927936343196674545583305612900214249568822866688710528370948991009746511269012314798921697405039286054263585452661487283875452301421163722722840833789529481810688401017586079106339768945806197174468576194193704089075001062167850933903697372978409084298094756064031116432749465133795499409678413780659672526530648889680723647710914905252750397011290758309463340508408720046794855510845544770609682209668824877264264182084150833342008859672297792164061126453214107507952630163511726753872484462369054820468520870294161620319143264545257345808241019538651871575421783102642361841159532998531457066649574086436101202456981406111151272411780309461177698861176440436315232006736256006199083796480381104730155830557148771281369465946657545504522675057095936338308178174929456471781960838762892666391905280673825485668486392918545678675796599512977747504514721611981314692867201411988152272321537814372627160300053903930791580254677157254957391504171344363023621209670960924821500541848153212607063078825074116498109254778904509981411583087588548977364015791456256585934835510476912944319054647514215141267456939830174839696609955772316463986933616267300276422297109352791400939122907309024870824969951250385493262155371858448556449011579440702478927737530153252429858230760077815089683251352319845188406498932144743270865411640170731242190590537746197652204814979088980257841799551831383156187739364737009266835873009411199263938280557437719108367475785780472209853054661409991210139345818883673783627479490947851163365869050761938091243821818087700974540979958980295536949786737000637705054552248877450819156290114170798993401671328929357884646534866051573261721993526994443315431388140570519998841231663752839885574541292632752508205495491786311658742326594705057221313430083260223108409137499539274233525102706332475934640985522105133044742264189971308193070288756830826762958603158143942040855148681661537390420028210280419608786224303773131254271390264377805418710459139662911842477392557169864658977342298636837212048562029807483302349801978529811198180523076788887266847673024790783451882557316958827493187027593414717293745084172192708078750530717014441869331445256091808689486277410705706968340119837574520564140905594588596137396137396879546103260408393665233537378377241918483229805820100690277672788522912084278856495124946861502444104738832080536612489247719297766289551652372583285977667693560747434082712511894168402370299465949510329109606143630451504248952506317409932461847171436763046162345101958907001831417884282685403975282924097596766939974848394357869540175291360313038152009812082814014835444812311512616614366393378155837338074786133809263518918094187293824395613171933397049691591763159713653963323756577905031764642687078371308242236905660435190981944099539667877041075171685399084507647286455475986646115389505138814096044381659565306087629502666782988239235734810825607327550044375299118652273093630679174380586787050082006105096297876564874248922092302449603144876858911878999114578760106194927439280908237925556401242152351588474869863305425096635884183278233844467699548851604497081490811073242618229298529775726621935639372596842427357444519126775203856473524414969143380346804954820320015520050833839962042950761842968636363071429486266047558360424033857709374637264543410477604594267738644268684284353802845603189827442919317380969249265943911514585371433319476825645160231355561098594863410316375498370488963231173764678853555375511017660361296820647078418084156183355772264600385237367821315482031782488730071871748803265194077141314244782055895697786995927780597026961219742111500498770081242810206777524556300217266598143608325361467836003638731369527126116801050381898362534177043804384825865271701131107047552778995403176762381290745462683666729009937248528187996563131418006369029540987997000234355211046574033024914821500626676686942384341124344551010547399036297385766271547070445944875218548603926713101819182956613270348999584222474719662332912143596353850642143928107472683843409621934189954761989051660375626819369751947064785580711530318159668330993832721120231992379190565929603124612408903503893465746976842247386267834729925952927588154310697068375581605002175250341240087125121780883107267519697613267118790746404329743109455059915337245382283200848841360386463637863254872323803220162884789849159442688736740940700172184271294133547698837580421572944462048376402393898254729526408403061454406418447119386158275447385309307605786447836576014069170527875687339336042418179265675173213667054997214413347325585720304375962291458040806186160300535707400391172364962485930661291370600453041134167829286773816483658874919958141834196631167225796786106694423596989047159223200611418590540935840349032672745832790512100732327458729236769825170799052186806596359315931100451949766723625947931206377715598932304620609279431758179723563285134750029197682380200265609453658795457723912460797553153677016644017012905782427070534782281900014597346431147944296532632869481123532344299062068045692148899472958558517216694001712359653746451110807363817197620570110641420027960333764818947549566072762667585980540822409819412724614778865036936344003155944168723490051064733670390173177744453156768412253225854471583979739248300445748579356357166831721430404115206754295906915280227614459290258540698637145743548656926147479449653941105838170822019690141346253720048593182941098048620739464649990232648581142715655678461718215712546950384865658749194802476877924654719957584471680588157678802401020162297393109511479129844750703354119048661680255140839476578242895326754546243402610638668925935767464148371965907325554447092438399284549661311535649419213768122053392710497348132561416405426975388061765919166004873403821477523186183260319789018257575360107197066415804993076619941078056461989834890492680266914449657611374391643267405192477946487912900103665366778741333886341762478018370254921870728231960785617432990999420107201727286977269825853958389158601508729682959695884564692441488250700687957963779543287926324394922795276037000656297226451585468542088251399137986112174203878969897046751287324291772042801453824387009865259890087257922674875115707592148877928976696999682000562917580636958066374442798054642536572462031196932587534811833008935113459135013425860346996847477842314391776507828230725544261521259721945300911216629299894651207381340268494776492975339359785208525258784907315098663420453176316415516031630356950071296200999621586488345698455790798845989670348740521936227726431469625712069428006884805708531233574481910303769692089118698407097355519910856165451781722077922013969477753333081168563835047178589719540302443875003073008950076360999273609354560826444812835388017809332321798351742248609015300530210639982186119912507947404759997321493918210477691903555350374476088063250720490562710455665095732307736025269954159505454735352891848646972213217748026455200317996410527756173639218043003162337890811848831415491962876961024164796903481859280848197018772201103626621071150251105425441411151320404653568106438069382807930302987489452896769608616558180732177000160777869132413019122829814485694212635098903201966783170083068741591450359163534639566567121108435822623918785864931930309376572103731446057871322140369387935177660705423990959247685721304600228023037164913100055396826910555343920026266395645208655668307373287896481976037817703516668730689997195137043700175675600182782355082566730982822949439508898070105055096509915333626197576310264408411179721412882436773127329345020966745391565195514976684188902036729566044061067243584108361210654118946918013325427956031561762536190537920671074594384960329701312386890739088102475203933430863252776238860931503934393983996625796107976301336447859000008420163794576265550926191364001750799094589186364194477422907397994337124960854400074823262217838636248613245134679650815040245861199818746441658050201808489842860962888180610419807431211830668126481854028882568835120869976900823556256368225153316563274695968945400016850901638034228227808236600195831561929359813386930420913988454616185584001176470337170113142435054538774909349036043391564817144329877961569704775608816879915891776052666677837889748088836591334448692884267121672582918862283826823091874305026406827108058623428138407089464143111351588593767274695061001869277805129728715568439512513208936590861386575932614752071598333763151913969666098494414791327722345174195191042455046249256984349551782250645648786350994114627176604679059120928507166465799868764485479368139456568928287183503652684614995389683390803594382282812148778815314606754231628026339993375149119648496814143375142328256311424881973545063348910185862680558583663585810336649742491788764094428809522923521108714260116739589575447497494247004996126755565350553926201990842265420169826073653018388082675817282352687294175484290499338485110092929897466697822883473894864152226564107385384698469742888454831137681587109924173909428804229831499220604586667111236892189889244826535886784190648774027510354448452210770210595180316132509454884195464420324636247197496753649005628287477231002360980383774628029444080114939741008757849063949148765059129133592415237194075707593819107743208888251672427276512286161095436401765238501544420835512162358716278858839171264522870015779740819642383898733407353742932540691511714575790825037807369266382023513741478242803635410777620745184000951709689512029669057177798692509259840905176056093901377339385908471789671276046174863606856487441293108353603925505423026316605673921014920649468877833373586420666849996398071361242686504861662829009303596344014882215716522004252687552584855789173003255951154687908544335436998728759238111906536468469176803489761448878934900998443507579151099108827822735205609382575666198424645893857955861578401097283963244386219776711624169558130684689025955041069060696318445181090210677048462219816793723204181520782748491975692348640282823689367248427775073635139010616040562058475448125238325213391912339016711732253948738683412060752407457055267123250834977945994594754417205029641939194681769721423065538886144836388867977474316658370284252734488019123434114855703211717883052016464583517803201728193837429588994839817067909152481668827159277967125318150754962038356605545042388176416634458255418958443657226861342838946280482457230317426619197466939459813219730384762822321122703195175089876121888362331311920459028088314787504397725256294221397731760933222260988611289366710826637161762267360464563450383738387762320047649507126811403095198766477586675215793886508174774001877751497841525626792413716887311356760637635157861521733818790729914579369787259906769865005902922402236211646833745891370706833497298857656525104771986331670547937382137270624110533545182155801346417165473512006234614048889120062117322093440367549845250080783843106777913788340487888163914697614302672888099882652457623370901129057405592569312234809941881684702430388711000309089444974663722815973090619069590743149535665660895443147918968943885406638127897704560621332581462918974862721440049417564553398148517940033714085586049822191850389902711264781212290045835553163243192996343830014960436711584249711115939503714028359843175990880384658144093168603463926630175962959872781979545168302004438115981284311506886529484819601595259762622078368782765840773582324264973629567941386812510442723595088249306702297891256210967290608516933137775556993415235096035618194026144910711885291491624089954819962499961323752699820768651678349525953084368768780858892362621330254638793041092337997507710647166129418396701421350984263348525398157722473646605930690579623351163520298057620036149867782798386564373977169894345403160106830104399246116963536488133645309494958452500205534712962727869147396699201698208850585877739617544310273029063282244482781713021231315918252502842074726486364493994466373969196944039567420060190522466951305422756966083172015494024262998384587844301092415631942169313115881096806902072022875229538673072503341675886745764577773139519465009899450184891317628499580211508483622017675184725447441103302830187619434718556762872171995468178312440482720187107700729620590142416368820030789101181501756803999043869810413941709777862076577083340766661379130410975349850008065544862695405367297001207188300792262966193829595875573395132238027724625715479803910333141724236160136188207603023725681092965895524364851256062467078947855434520768449882716534957273892949959292323762086495561027811990030392303556059660579041946891633593975009399117940834979113836101346239280094180987793909583398601559657533885244187159973119285979223720895237586545794390728730101069771828184165977494526075398340477340412432987853327697292659126157954857294604335241632648598235817361358233338172300598739456315097256226056121484329307212477400795916149354081556792021679703956333973611835082260197838154995020532922318741936585730073646415583474287674153227799571939794260767650745222306051514898910408807123892696543394010863826648731873703860343199956660387971746578731244608552438643254873129509351416552314779231088602024502548980669930089994577813596553055309057317765460805435132151651243623717732346634034314223405589867013099362920106531184984238255599799642604514829397534082028727335631345513732396848353526709411555889322196110208476226082640073682476543894233383256534775905845464615565375420380942214606198102671555393376078030783854827596465716523219154028299243138957107714954397824831916991325857407247855434769230501091366947943783667718958054274395217657478074133241152870553786908292139765766997456728251176679044783321083756412073995103059405785991734738729824130351284964239288834908840311382084002379805190124074574077523330747315922084356767113422446895676812122460420718413085220573338787437813859600715946194553751987204265488099069840213361990668493113868269216167278202950422511050146018372815016054599963239055839752305150272783300658018366551930587232509559504129396826674142976664901599858914275145294888471367090059906021984851412523591129117882408498619459624602145563826032148221316615961296571392013298291960172772859605186256658734633373312307081858496503648908536773188523629773937304977693014277032236836456079708584458056881966165886403757399904597474612832166650007130142721878218593954776293701923406175091546537770315009621092689510061215297361763825486131469958298012439319862403356691717415293916217731049298861463555752790332147777657590549871729877216800713092043671148924636633652001418745070722520703877541870163158818461865885024695309185813272158433164708564642867253629337256397791885720896429916575144947138895188165151346331965720609083941282102457675542903782831270734298103481622656950593097002751468243790089881635435943779261472585992192116710462596131931204923833076836813581000717095715215758481579906878135050403702896952291478225896291104426795230295920841018720836122579264693232101483379461974143542290308405130870793393717448093920109249487611032608170747032923370839489162432540215294464705399594206415476293755891901012519918268010822125809429490549014361975575325346586772026918756102098334508122952494422795501857505664081361346882325715214011913463807123014967070212001073348157939901226073181241343541667430158779792636265221144398697894996779395018086080627911719454783188380231721214580673357077246541073960800631319650921423698824935006062990878868306555594385024133713394476171766711384678096181548887292637343933225513866729860559550661773524813095396055045192332931043759639640069429284931196582853509730408526350468135223611378313918261410262940317498247385487309392883082375811533568972534955477491460618402910149615130843418535766355165110125032668392707864331557014031574343478906029566353094220055449706829449363225532457087297933743102800484416641509048046996003577531968997190981810934825766477370210768289420892388550975473652964494750484241033188961672669218597694495151913293543745322085468595573809144661660857527142564857281491097430108328233518646700035071119039816447424668996646797915975256269665530409292778960627008547311550695968110866370747365400471237780031489847965027849382387378367079278604314505233829022677119483110619252555038368939204441850976943182262684870992602987360336389192962742799963550374107628941558965927741807651424779313708815716246248987328085777240278744077466984290091210470824457329593087206785148542853286466555512066172001156534318871259673970590342474047242595067377556343416910340817135459952476163895621690639070904076138628251547370185628131073562736518411729818437584279119476833612921806211015452941511874387763965229853340111228485457684249631393441983787365320947146506422342082761215605989184375809042695446013456468915411255530498844515709267772743970161141080874667128558450638539309843680876281726565713104234105292236518000025845786645172276166428382550100584151446653186010535206532916578088149900310574273504099952556596450141745110322616502054315387509488695786950500554997576536686187564322632346188830911835413594446616160056310127374500938800994183040340553052283062424572846864637005657954060035955437382786911611170768185788950311080514240543807675279421636302394873202919708455968043535896776988198370996086628425745577272809253354480220458054368783232374479447781380457187429020733501107490408183555593234861516363843466975904917009191332696227845697597864675217160700446424253344598712066553894738204032414220485708360210841871144888565272117568335922393578953419807310365728907652855090511409752326773855541262996211099717957893646725503068482482202587507244475312588760597848847301331449777169420221439783148929694288351996548731366762142685333801588017724095321053963160568102792375408965899709838140700016470809911180891001709784470573967938949629316055905546956161807728695397958759486059430762504870753876767156855722250332834314990216929253263589817887946315781182606464468664112624110447038987841123074902027847303921467329795958007212045672833253433122743890883783333313447093730268919996316050230626649122502008577575098947943886237357967838553412171674352835867858127632384967668478552485797516994537164355948840572098268851798855875669558957660295096932474760300227048158391893922841920348033091714992095909104180174108193582824499278362779486233524628182186357786394151509664641228831230891589874375752432682851127136684186181569507113239688329661792030129371646566001110020474788050712418994875016480774770836868894785999932308631598411569908416353058173552720002374424903985755843231939845377949929458111079697508914582440442313842765051042918228468116359514553234901751974401855017738722066058396301916120639280203993668142414571087650041525348450154866223612746950870275621409259282430913403309408971147115637552636570989222896495455948909284595231324320227397931725154406288438175387027042857431741590531285341013226708902820671532022811349847625380602495264488371691052590161992992382007022924083150785509486886119885955517832365629154957141267405269242630558619024549630651233897912702197479064357457194810641758120571445276818803077579568439674096318719017801400784084832232618969031231473269640985507204632412126042695295190410637743382376996975179062344894418867987835158026634561730054334038490417957003216580685010303183493392529095862406583248920265342555669040291644451256490445993535940947690457381507997130821387317811666364139342246003741024871685146669226605208125391895158470628357024848133265120447420606589734322011268621472947370140409835719614817452870977263774466084663986901081724698072853581702653511818449593638127956584881729542752755102645059649005426024348046841031491097614199238449620312805318070580900020042468872607627105954448940064653300553551772337465575850611753491811383418858507221831116562158049789433977092781383890170735279294514613644112980621257925881357552476520103390110616851991837518420719022386353223377033740405183180768894013515460716619175021525740086026200719100204335283559962531969576149553480825432460093498113504445138429241615504591031284389869059340148715360015467670180535096095249940235308931760623596730683296755800749242925316866935419969650006305165869285881208489808972964637728851094083441335058480779789015493130394030150855318680100217256892670018075059516676991861745504636116552804394875857384214355823018780445915771764788303366158049310128064425858180061211343434568242492257126289644575239316784669920616318683629349817828002872493490535420079911224210208273440032932613718423675908828230374728722748156554160505884911974831847757443041963863094888106477047769405339488034165390072395466975872835628471976364612248513801294600791422619830335156564708312288315602045975238831087491272036125938104669741157762914329949875758673647129504997039387765548998198267249687316204371217885832032632668147009835699052254895572491729407077697501403620345400099625543352192149052073745048209734005285955194217943567677515222451037934250927074149577536017222784529695627167021969020762902218010489809846978441548625668672919500478767085033709016240434303637806196849986131812096069496455564384732158816198978051541877387095831592012151135763699058832884780815061873631317831208012900263967268639418804474190563673719017363842767152981019989299001375161049684155260946574650100478814837253769437510207216152524417576518131361522587019138433640194552391034209796183743154789122023548427394208690523365312819093591102263918656566409220072844646924087718478207766537219148321727846714704326527591426865538802329687957637747739856592848155349377852871962233846158369515812003172595318488550305585272105290628626591311079135974143420777507500195200648259121550545919268684604470829386255894177487375995549055978087914475869083243073581035684196579280441044950306525332645095349446924343153452860743405147760127130351994254876070134362672416268060970975537351856087006475667335797446881984417971044972724550668945723935631596886288403425165106068594089415944974125374100896929496190972260859344381983751224127531343733691703032937610936398980120806354003733024285583439718934227474745063640710094637855652306585123948862109496726347533760610377321852481087655613640405455210363978862683728197063596035334991461383324747629466473534567294783409503640185163791830349378541703610119916082162592076198759030097358208279373629177940665486889486522572793787669597526476008957414312367535239940338767730746976798346299617674140185374529709294438531760321025768853975203197336077084502564634640879267114115847038924488642292632276928239781305771874851746891617878737121041239987178867734847220941460141642096668510758973507219259256999870899863571943867274647030178986532148301804413529332607719295050983638537107679632859872947316801827007947060249880639443646258252438037530782993556247994496688424719965599859765828401782435905198659078645038357774429162489790764270932630815150306516463781689372866149724070857925992620056644318405457900490339571517326472706965493984780779793694113624538347203456551865426972039014128603337194689408739380712567344937435006559781269957861674154785018427983874554307615601454640158509303197115522167575432697648585139258762173426521407061907955550775001057231651539295634525157607583921240968237011666692107599708897880615973364337944703906232583892911503065038732616049884080487133826098328737691942286029504749059601716024348249200292933301836138191640618339060603315478498476545455895837432827698016793397980182626256864442613697523118608702397134951113359799216806081724614253154952148192215427946698315251084269380560732424684935055603009168813894998596438214879621210416110019504265610270504952917630034210468876016577619556382050441618519530753352738831588762148360495852319670073582060174941251189079003913917972822146957878206291275235261058016131484822043860600981677024084224703627864736938322640238249584657128278888243937079702803232299908175619585849595546107192830831498612695599253355670682378555680828401755465308864080594785794717684684876184712369122321129617113337359557733077213933943607322181042801615368525005950554057044676578152164315290159870558492310961168323376679010156957400060425501329159500816168818341747204280429273239913491102983494927450212441498321715264896238907321212687450470421950726284572990124842258016167524210676618380141988890451811554906437349781726161453210331490706927424955128882325427232204777381086325477568570011224238143908225821478070355010549558777281025341445687373038982145148991389112207662468001842281913094454868930130109602051766945786724531422523238968256146479333820227441084104963270670791130089131319353157837537854399746549857601056686090506831198533775926500196937823752778695888067510320491620619445006248795240424014048228787697472560572763892984676819170071337660452720709691862948775527125640348346278902619071362227328440608630302068184857528339094644875095811493499490552366623087559945619797605414388216959891789528742694226294685796719729775489142312761398218051061109710174346752171764602771799496307094044125986763636128978728376878564570253726454551330804151166063512933552747483679243203395616316298979443340562362431283606963072119766935440933716364939373016774847113031864722742072762010557159990381428269526626258355723509942856555061589301707120343971255796906167479483969254414832880834058816965462740178994158361311345565905691537819255678998610088858735163050029769649940470511891872651640778306131035741801812595569950460830880378412457127193950770927086184833861656862596207392378764702729172468503984785145884683316703201867154362211189440689174591946380304175513103192551378648009955305286988457132252628081136427665777876865933390391000529485865029448867182521348133661415560159316141832110988705650318476139965526575172985767913859539646948153387232388795966955939707391835635060888075094811079010930829065692735299876553082027169516669938673571943758519696402478581464530866533610665018241414948748877264528600375974746015906637077799913356574555678063379644645848618903736329482093519383385732386976640221324826356498826169287951838042576129984200999578243112759144078670418374463357049675350674192935521453981549630426300915920782803305209632354925433691948134924919435169297594726688559812893076530332850725677748952463152812360936390684358385901762417377480203126422909140263989311759004885939563773604988872454162028531519317651629362169254000560213300558274190861077031870928708271059213922413646791711380851216758797255386101695678532115021548664005898055054867094088422762799402584712280035556076111627754264336852111347155492068099644096747231580820032766320717884688420675688702672096077605074605009236997018064852007970217361483865713139734323410341913644821459630280671791379361919550972464042734691630377677710652513948054572155938763352132355904630247583980391370069192151950030047726328101390463526870245630105779353533214381773082104909609512097400632396368790966748389491299295348493730337385766900523697200530136116143574546111779358027727025209690790844298068381611520541137070392502704304009087678639790745195624243852258032085211993818191477143268618544546856834192862683476250102367800109645399850998172776918958791575855384097368993520112739392086826522255703037497493436109123141945716585698787390197808144828412459464531991415229129090083872703607767531858308889456906800108384242893757656257957601858440725915230645649302521350326808830804754706225516930777656553879563957715843576455657714109535047549685011680462611325114609105257762636089377289972910530659578930127304761639026087413335328186287023106475723524467233914200578713956184156438524854538335522755264932577156133120597690275163321219205045249199515989460863437503033975126109241133500037028558409059685844683408891017624580392692927747889399364570384245639746756140381457913299334263849781406653664454690505252146172852120135276540548035396842119843833545408595104872746390058765519957481575592897468214261602868750244463961604347839944149873382574260256024768870870655446042504370974903908051719584660628499489833823401301486929637603431342049541298249517970342499914406294983703837019214854565869195596007043038642749811872559866002277504365644123709987269737762046360736857122523516464937714977138597953262663442361225107176481545600290519240182157905902935071357537263597493551965701955458484883196774404687968301736235086504677015335461090956327470766982319969010868222549523791039560639475437617749663515861642862793734107664857621579352155898450592354922416869733998674227472852219215253867889897474839806387704602594858282735565534172257543988281131374393629650073825514989923636265245885183629751384786928399531897163779048835266199675375063306133022723366267318663023890000819310769479746508353655847378920929149681490637134865754255514101402935778167024943995610064205293208885469007575272022341799998805499865402875200199155787808363936776208181530681609111563224955651848767437713039438572023940702653712357672025289709575585399019660517158089568424917580421550080657698575030234449490664378687496382356085077925013808365558941345185195941655861148647257663386304889429025085230809086034697119765448444295908123360381292047136393513300135899543171973479618447673861063751937474062132513955132578261400045124005011222739626229834645406676164259679693165252869035815186211028358328173786634666972827987597434380997925489723831911877102401621540129957397173648330749704880500201954623715666345956146280332001005965535864888768675234025506728965746037039923492354444649382399293440649501786675871608638164687030899044299775192489105257754596636814516499837269307940199714531568277319062572266289312978680407240995301263625636051138331450844820013859396540187493278315074471482915954633142971792869166302916810561448727943532157708390578275779221900630389692022893570717609260828895509362781776509473219446960477988980838524019118900017994602428779401756049397625379982904331827390190973192784855835881736291646199408266412894024323341602167371576538578371026399833661513947659873464573994355190749424703690794454399506144408575675418541011389865380397563952039231938361932133823330045995865793049255135856233130089165804413424253762000486280252878074800672757982996868731591809146837989422560222985423099164274293528924407351842518875435885862752160799804777398204453439676893121281246800371161459599246278343007303096324939663597786644277844961963616888958240757016114437801198961137885107697184197975849874263361159560669140526677986973002657660751236948533572066197426611496877182636045018861453935005415815343610394885812019577504348889285729922660774085190668319704868978159386793720219951346401762730071793005696938219539849414008907459110445634629652985035567175657190020943926813819146521351312817427206963585683962695866232078524161143992876675404875475589964514155924190488267651051388974152864079875174154185906442087877767576122405013661021779539441227682383206417284631601644541366440970037547527808688140041198389901561813347670835888809575690854137621070613868447106414936107654139606083445718281005473185474287366201588894008634236854829156064958086936772665554942473736443041717867464560317191730624468397201692356539705325579323588974919817743111064258747566177769544171500587966052053858634970546352920518723350346221796323089827599771066522004177963003715792037337960826391853580291721138297643813395041249205851614002973365374835353061576961268184415907849211449003653470822258573289924907657786779918282511017885060295662799460702648604680870347627677948032749505414506247229989709840083026566173429185504870473874232021353575467548925266630273662030687551737774307730996607186623310134202695966983954772661201749399970692417533662008062532606940272657569780816888732583903257751182215094675696489486053242960972092206439612593634901932462124728387406950499459332221945088630262752143526656551868056675585181670133193123161365115970228898515993149986892980981000997472478860891288152555644599422738921648098158189962176925388231878342970081933366332330736054847410410121762152020346471366479467213177798392215357731178368237176286398071309073641175808049613664590345529251199613873717370539254791587998740857434401578115635972447467981034147851097807510703704585814314158816539697373864007527145894649671863822160350326207504487693256041549103483386039945037606301282131178349658464961952540537126886963120054464327224820096983319095528831648564619955515580291111055295798483476420811958711480016242872529623370605766824957954448027780950205020771805586667565048245076318554083048936025969448831109224639411785413205464672606257010279786472485697906290778119142630023236529889192215439555295018519340864867833243601470807489781253881430726167227998286097826230166508996103375553585668838413926352746344679315488239119470853276820853498683878310282080641238624821670285986162520469203166853492471970432070538296086762372948578923026842175803930304875699240907448894472753897895579150990392989924696713665669217842932637497067349095241929828193063080998946109028857154100803918275655990999949514260849835801380719658905982010051425444653931796437148675398130887006502265196649569525218984657543262191014283700138754053704811730573850450748701320477980761499165264037565306614023912587454971798805090892047164724800381563622842083714564438937144440979477579634394057469544537883935684749306865848656508117993156570538829286516289419870484714349323872787006291316874134923380729077460559115575340935736895055677712589037599819424702161713875294583575549301024005526245975837918464048590809857781477982718948876229464740765227261090690045116366848297204590672449953194865970162413480807995405358923989907866898014511121035606515298148411963524781494196353225046155601831549158908316017974037140514738412295774416611023204499309828110132659437256766665973941408518262446202586122718682896864820431666080739861300689195828259611802816111521891204285156674636420030977822315147669612706511531130723826773557548395069861954904145614952926864535899610911372817735588354971833181684130247061264061575653651615087457252806596046820217245090407705493040865507938215908216453451595814278296505556096351214087249877776238567695613358589817207899441041664559593561909656102943583577122154542674693172938532235724503990589846990539225388925551608783165737202969027620446580019112704416129867323812857159777868714973730061600317218717693199824570917074529752138688766227994075154918622901476013977135293249561287802216536932826937832321139654168869419624924984495790454383396197827173108651771453174431123316860206265386898400629189052629770340857629071086254988424513673476427624414654411717676191026435509674250494509727101845969380105558747552087904137423705759777879642012150184198498314462568066004569628731373944857637633703665840716305045004278899943542757121299419646780194344152402171281064298831130900541670821315683892173327119881591742318796422025839622327895297273588671066260944061165717081596893103217588155193632600471440989340492284720204464925872902652655613060808964191695184613196380567631133932890836236227721800850386844886220128533974532917402855437676701987695994983730699494250140255541740558920196289263547435159465610696311529015712971172090899896178409476835436805002540580286553058218459179984779460571292383568902104863135601950935455793605202045807574277424924370345891122118425863362363151685692357848156166166267678927403040035223417154533875900837678678514636046306582544867379529180838822572709586299147564626579148719924875723991100030212285664754422819578499920032366381996559470703105898733585240797477336259262623628595157594503478143089065643143117586026712409111715044597339513167691871016480159334339766925415493209347978891220331901077687322383599347152721103617952196709667474609837809755950702119777958035027028936826870177920405887848718558469241985962494472918479133460592411979982584141867522425385750586424426155635689081635645865479360697728795124410906520633605255189580016080554654248837127545785601554602068265382163833428727361144785328579689856619631890863783147960510308547639543611942935574376620769582051775775018196978555583370624402677381068609666784250481634667149931832849444567844315265657154615667191261468418254027119196287489083136571178399249292483277566553036957532878187616373514080293457833741473800962898618955112897484472477911663116523313653949191967419697120852249780187428469108505616942274008970886709465572054737930521256154367254302628327342320434813477749346276351486043848113472170913505763961671841075967223318763726594268506868922486335828486733717751292333583802439721942719459006155174360273681775950438943064251345069216308309153779244080039098204144942093924540175578803519297610518483314829406034068814386335626754572248116345657961990905072769244543963719193660794818054010801234340569866607257495786853972000429571151435177172630733318286612471313942123182460184861157695134426613146426117466849197256504160042994132254969859649179172964485353092240506737118636472388179395296218314942485392629686977263397424137808579927300907555101480741145856881071686877288938094705848152515143585287447253684857497199248585541605418432248317922985592831014139957837842039188922088906131893143619155933481526311949388676869130586429751410307345547379904629946453346864376971363001492714759049454472617063104624169479086430453096254809030878021149509430326806376526729377788996785705970189626063588563284347267735987507376935307157446412246507391358646659271207679917017222787527973016501994195938608869467164797762107683694979744866633793549107158177121577880276223136154966857550904869108309678792943939045438116884720008868255083402790210269291028920655294680608887524099214828012262010312416578845881659371189396725955391669947269961942100567970474411855738734920435040337663889699767945070426470284787875785536365585456597023003843384441285637982006680874047706637479018802846219369072578436695651957625989459974914355932376112905728633710140002633738482182602681817735045370186713844208534539537858442707863241891661197089401695716993245464491035041665020924354028829432507825730015134122209732076131075277824448072061372417827378708682745187636101960662982250782832385774258550559223051205426808234873781520813208905272569733387322314154228224900950435689788745979125363800534707001249655401921883086722903812215172370693497602929574387010391254866183145157358754319984726511623628384451312538592306637046979255505054949917284167034994901102558194360948492009005340458059389999277673117946099303876338948944686292118762655816865336247237234499029252616511108188131352752785560661798138585289592162061881097834775029099384167755546037208525997348596176324882020549485748292298560131165565808143385655681334827665629868288348379069560522654985029054054852593547957536978674040812159825246473311468192286040147787865996562658230701047608496765818060989779734264216337807478546099013571931285994522682615522989229203855125762413045648196351109770945966210869565161692253793788008018215615262807726378608193989850700697630555924717038732830183304309929771154693694987785221670296800295848403310710006218890269794925170181018369505171543086024071743799142464363075902768326150488149456217630707194368408271757725562977952687929918464419763260484130992882291508502627792568474394053434441599208396074280092898068653782181114246384528555631371879327148252732993340844244970138017867305540697718420870521274705836919678555072755942469342428345074214099353232629751794560340363255183357369827115082625618293244586768946035502246275923723120704174789213715225959359578191280784122230635925341996966609018354120595011447254731920206891090546531016232997218606043790625331810745947113799781572898618428641884852262551817410423262358456166491316627854353780710953537097008862461780966362047877796792638946361276884270006416392258663353936109555105362162652877026058064549124558536571211135755990465994735295923608836614823176408757711390608970226218043455689604792778202391602796827666134928174308339336365415426795201679043753560511847861879786478257763114060452776101080775345595538223405043943975806157881353602968772478610426563573033528572460109424936524193817844580148403283026863194084007069281239870806820673244894882638087673360816168017607311679971304946260466301640196448308858284954662884083380885735515694746608315457179346013502225064924832738461208885768361143061462416149153465437667974836041653218859935832331697901380702331368736495923248665292820336000576635903762070461614690403675234230102599124037829686162520637341879695990161254888749642195310053108650327299339194182968617887745331233755476615074634851138373240126099999170717854769947728393406756247959035176093398802415534478608433277220394566846958411043284864639916219421792743997678540566746610756279078535145853028042606120032279608463941459483244592293565913615664396723400532094133825402194958404066009969030679390409330685510575541811079861807501477977599516119021220880252973914392506640711551132892559806412651696999385201784078696022826752228947667333225197011392715355687660681440730360720201011558215160574364982317709266446356869419585869668955226845432200042100101267509299947669672684586619293778545539302264652010764470279220961743820312749492874816861131456924885662377085991077394916922740743765825659378756659859650276443233112411354361984838066456516064221750544403193731898815640376529238538707153230191080327663031809266773461690715878809408184368689694761903998485284932172851732014824733296088791357702315664061369705898157605250920150627880429779016977092125360429678502127867714148539987326870966008331372590759959704603809555848637909631738476747369170967353475404655618150594685855486965303656050940717585550891857305235415823144178761783534954373929506321305768806517957318587751823178107303494709885769894336223258373778569060115109734426755086241565640486564143092173623437251764912633038154158942167678596487003907226173406832768121712868049980650653943246890648670763631839477617916118752588593870247056455368260198783876320464578881501946901520529465348137632111747279142325567276384643330183153995773320755969618069847077876488027513479297088935030485462135386859184011533339391660904818129221730232736883808326525636360585938072790316711009687076691973314950445170002270244860440299420969894427945177040493419183652041823007978969004823215704493043686154072773705074247593710627213606921032582707378909390584063347311462540100228987541662870238904535459527464360607940941137430972733783837849647439354636338696072298620509114547661002421926521980596974912884457411061913373515262701825345791659486849432051136591724704665458247836112044111457818406860930868015836708669984243782676102854598398399858320497856598553268727012927101415993043766707758363296248179314662862155750708695076895602401562864363858601575730068351382054573813565120642827229838851679353827539020215107051716372410395191181937027523774864519670421760794765281130530896690816821225847422669931434404368033267309520391803001311642475985164181333185220336080468878390005771521543160662096607887359189195247114711653784320542520948283834651272963994471157393415727767934490629108714177441235949952595096150230346731928943607275355119309485176717408125527150614209194525046748518420552566822365155759831378149117691147676753381271423297925142767555243184306813404141289367681678492820994180066910788099221312953313139463070469681434255595576531692507050486768843858542195350217810400674311452950470559843011580823300174067926835338170153545290916065478015670107499646735041753998246484669843918196966364619988053892435615304151270947954044177583176040479995528653320844141927523838854722052825858352686238605129960465561291986801106248470004825624906818361826460235660887104393979469473026825510525473852992938963164624413006250299489464672679060059528506887988452353195401855193676370022542358403955911694365216171684614783030091381786430419944252030182870120509281572421623761459943181621733006114602139448075791815996906041095282135549763180407892773986531544223678511249749636650165035309403764444701539191111309767367694838244854488008037185932162014655182303500196755408200494237748178480298557203616911705079644857764115144347866516278198238422209532438314819868575866582811068208110819880032366474247357406723574800464327482406123976433921395248530941515056740101396532163760684010610433985125377864809033793113693533090161309698562703755190108076867564250930766578283342186238461201467554427438643536260682303362516804147808516567139256452086429839930201531416001466574678980300611333154289856083707390360353239398700749068527884849667645669460808072675350158620247576408543375310129344085117912629498299444671654757829818976379329098226837500190160369802430249028509520447150842605924782207966227798074787253555768158843155822672155284412593745368314373966595199354562899955528002456252932362071340363884172580547062908200217703012058773002909592455959457235776912125779923824688950661397169054362830993435828606144668938385884991141633439956999993414026723378109149393200322465486355925300687789395118798292147004405169082749676729178389148552794247717245343202281916094010073688857665744934368498545839819615601311968150933457489061950754716442581394929351899964150044150733630297916107823355289342314261109531864477701949169127907735161468371042036027959797665400386036373786503189394080609887997975646731759019550103870904531913289608397257188835811697087135060452647317047007957898045005142466045208377570099143972553836958086529500170814927256071107450129023395602390591128064499487893610954405004505208583586999574040457617365002431040697191837268854980648143768911979064340634094880653908277297437967730821652648973989589918529461339646740293623774770200362919249454455370115397716219216148267409819370813361735627498001690158214613947939556946646804749428412827215297094390988200957391454331512913807303589905188718795200534365315082980074112895186021416259029036133723307545494141978338257108209500607147171559749030009271057590399772990343877980614475424191811471209024795357514950508195597599422635288781920982228830167900875781239713729086621719222604851174225116349015212973240233953677853844263667514309029201445697457111238831463332686513619410999108328359969990781826248217945367445030870219139792887442007994570948691202557799307451857570664703939216825812136862849889252005132057426173480633291256308974071669919071583139314153485091473309605696759390941737353655407882523294242217904315437325066963114530312547059869484676594721074366925822342861928867534984490484939399492633963843707036460894482283689960970803273192553475477861581004957185181223734367684351866417638414059031900542368643394173800568787821351083304533432908576103002665692765376352708730078136336663450041460227143719592432981265882938509515879997125948455838844289311179141764229074692786583245223186436130169868945860772730971125288170965798190316344283046045034602382288354590336552158668550103507401502655822232044904770770148382057022916310227254492612077949117579831515862349496258763035405190134496797039889213820916605435835027376281122436119108383517611505789427369414890287175065710165959744295403304384695687026323959548954741775618780282019619483924485556642767162382122933338865345955663849825815486092414574429156475626806577961872170606696376816324693923873580223520459103722263201244592523580926496578572357871739208340284651948466392576139573777539785488519604934486307086234121963691678795485534081519540732020402858116322061840640843452221915568528421174919686698802011077689640541781846640330341316006237909875270426871457115803989327202444140223521771858360975054232643208012513164313000124524956926019419808629357726410677608607311862879793033004217327430365947667688991891776659123781168172350083869266159455302843044501722600977052237270583184067101948833853599425139877274490002857644879821615945131799704975460110503079911896848261778907269404048880982787732560890331195035841720281489668294174581665700801384638206370856901599019578683175084567774227006270013938816048188565084139851435186185519667051971564229982769033148223893927756554644112869813095284995385168740044723622123661803193288272882477802922374750107951069195755515785616295066133627111333417169838567034796048941821941110869519071143955431549017870220112121879322727349825772417202117373852534879384611074863865357763215611927445229852069742020067584109998156610426494329665859386678719269372082963316522801472091950760558847856286984911210061619340613016898928297107609641251327739860445584311338641494070885667240914979299072634199975994489100767111984891037876978535988681979970929604300524055382688916762344188299480632743628999949591730446990703379538569797349639748052728071715593356039422276010581052230692272670047746518822776536478084037545545081830451878885895398589338126127811212445745929927201931125265132637441230810689528288811352369896599793038179839420981720285921121198802477473474405170677481243315120125646052648434447752032772786535861286554328880613616545366055508356733153857924507072298960518037781855287146731946069423185701300896188921394790426289550510262575355463426685701465665472103608095175450889524879288444357872646486771298388774499089393842056185177550736627318701883466687825718536223434710692399237637294281906647197743833689256124789048240057830055088448910221364898648467753076046032821815763601597057530686780716403726387998406858293226043896609247542867128559875276561345190553395593352206749471842798060727872271685422921927971284933671552958323936879410964253383315585411386385157162953131517186541177371768025856514063831112096475503259458870590768503390072404478896436826954492474353917814914121774231478457778981552301308916821470038158131410675560809902701447814970085824286952198243827575678309997287537996725370371403553366374512441432198153891731533682820837158030702899866788207547997744474272374264263329586709738934339951662441299965984966318975144822207828885716656635188553113048443304723052004704868758877531437621882173593075157801604014900927000036871053304809977613327322229352674529946613677754972609763320073319989322311817920229595596120860627215599568442478196387733790333717386608813888067290339550010385223099194848942521489489576300753501906240488170042641847739222557837517879089630211276769284294022441934043961465648100170712592234414729447941269943511461640975520914379351384605034375815921765427523421070416682548434491929239353548183069290701794388711445927573064248965976510618263926296984451802909879674041419684100412003255133578694665768041751922754923988733390616352095886673008726720619722519519909100359729933255764449235357303209229531747726381193333688244356167566674009753722693726763121637124051286304495973728727430612148602305256545886664372067288247092696452921726099326930674330220967427321822785806101997576298847974552418386608194956713825293025422614119898422153563973127932735036476436037523323089066927395348852545733596968718303715482765663828718048994553860565678149184450590224290771283579840669025403453749215160206607642871233883665231478489360586399485917803299478359378463970163717259285258606880948205238752635283027605931173942050979782275888929482366534064618541315021146901872846386860381661846749908417934756746138295495180780480690670107949186597606455055726519938818681245149454247865115938784871376743806767723540095786720002952398884599527665891272078343561128738683312831118350761809863755691351416087176280440721390857197534507214717154443932382604887589980584620517858357962683548033176316078956546618820441352852696856306104010977568404838654632645275873228236848507521738272318434063431275802422763371272556867544035314253063126925453612198525058864677507829759878240463447319133366645311361282781400640054200935053554906488915319624231612737233829864214960508455868176974741062806158637318298938552448432594700365722018974905552747953629183750777047753447868482438548134088040814153314107498141043170105349207593292397130098639978664612217308096195570384453967305932661919834234791356751363682845408219602918741796160374972918338025943766687287673070327197422523857979956477651970103594253836168035476275534315202092247985639308620564719705116861083596578092463742912823691598841477750442260593936012203392287044557786390743550226875713253521965916257600737109551920778614854511409041772036479016279554019808650266404918536740078542973776260650765355571569034963821710857365978970068411280050648994482379977517247124443229897892507392521283750532727285454807793141905263387436319412081309704263224148240447350001686478309654186516601442758769104137187008336237803674637599689788355129952816845266129803252485433237670450138231986034782071861257932635740658551576404275448519877800119008118509459625649860409886310186900639159135640394265579123578350537118442192056324544355614726308780916277662739658875101398318196006241170152211073978280068991219503542145539563138379525777267296887014089918661287934799886589481514918947740083227752739495276478488810183029038752106495443209843863103424649849245379918614740485392994157736529453324262428940388995709065671427407318153997774639344959234019144018004830675933795799871386890584944281637133693748040017341306457667450328119835916947011624356291773357771680731915549221635237015561853590285425615662785927412532537449717410924788965467777696883310561953093735833025869919339038401579045273889354264173417054386915090994315658971266649035663163414504425192840027016088246134723282875275521384515358698256915675007758067739391307388050316781301617487259987097917340686343377982938529379026487954187433267805772582532707575940405808673827993419374358251204891170785411200718430231453406663002886460474129290595801397763409357499695129679033157048397415821319898522686093267702410157604696136182524875960761265707560697883003684089744783221391935098280611771408673322856249544915612484989346553490151201851926218079023002215623655813357215416932946124585085485778479793360444519919191992394082372036841381072305138827569701023573546428957747906578072868966743664566513406395667180335922217140850123021335904045215299385594737033462684668368737874017978635841456292504315522084234535034096101570183999081085149517812981231451143286017174293918217898490401313733784460412321010933075106844379956924325826696428537295032285352481706691700174808268435644356210258876756835615050734709182236195521001006701280638023266233517510365687631037083513463777936038981470193284712164513277943880943103606444874488091959415769010089810458152893170961262387184906032165480614108689183301588750253099289542658459653397591972306053853783744970357238504451567960944079712781046371714314522589497462626033514619801567938730563288983422835419570796231693154248504153391387319925812441496507015566508853760339055207129188097660049864589667573225198492961057721418012469095234421924785384901871700995635479772509764264748940539320393360343641297759996617494630159783936263759230215444251906248558051532960785631287349222140788229784283272654065568335206774539808361544908852107073340447922387306638813845941002524238141310131014648322269089601574403144345314525707393741413115202939068521985278983852709330834975522905226291604153206200033712093590139041964177854556946454389261364809889060218481528476295847442192257549411943003254803064139366656350479324230284954871257284810228085699915446584494583039753645339100595903473054849494453708977555949187266901050817965954585812579447387992639694813793988135658893975495449295650415426990263858958565537593736107202945390266112520086624110185189075218520083674711642982180971208336637988284080208933453651735371689011676654130081155939986456857212485697511234264115961704087208766810706004847595072672667436396824598680911843927547003840428330715941956276955168630819693169804692129536548383064299712520633445966100106750979482558152348869464052455956352914697552747649959608552238085237037159155332760408127187525445684033086644344837798260239740956514162410723914179909441418392247131161262644838614874665465712610006313892078895454548843744619804704334329161307635994001947195859998780015641050970157567057826494432354926073637633885442581518011020437554220835395323851296229548187063047081384775398796346308270955987409990238676308035816669741002439140192095294198270099924171169962901658525871217597379926697444657224337001321738969284402419420841941347175290996080080816786892339509717936501354186822585702983518300748175011591896345173995242731487879846820856269222514505667570446327930481255708108118621510571982350228691639760481708424390137777472464503230564583133688508063568281631416316430524532454411845657236280309731936833455829296783277281630849039762681019597578885158278976496385485996804855099402531191744718192690491941102566914988868323501326068180939674359270304947894442296694154211451191775551775903073704296787269341103492114290739567620232079841441745737482061416834609912261163954634512782306123489227069986472439745481026806568343777674678195647254563576966042396021421215449171165051857925183655116328513068314252786844001324523008258065913920917733131284644736371045224955574721214179827767961904462873741590716965292311397376927201997607261516423097176398167642750929773680660734077640449931109624410896844924148098930335405126747225523161314461804378000596074494372435731600381019894144389011618881122633612260262130653003219227106254220272954040572273870761161401547652005212119440115221389396617770378134869579410178545777121570112589220325791664656850159286295928166378658014525910904696947002477246402015771288196985399072161372033751616983195261983994571361688498233266581306763760613292351509696217181840431042607006429165499035346582958457127070237582522656774644137203659234234845345359619566568567577158222305782193142734414835227372384781082246427792345344315856551245721115339071387167579814442091653666615505472942445538893978226786080556410845455386059527198960566659028703448259522908462057624373024483861324002283151484462119938400444207597688667763143221932186496690100863807612870953876637713082477452751108969807292624546871249409135246230461312239590114336138739877940516643746920097205042380772763249281932345080701088200675451101814217477118165967691113670096336399921563230915617863539445591458162884795586864693703861568315589185672233002121321658461445689031635437889403117623818941066026589252043246859957868927975488668779812848786303130565510417089793086659084100170169640266542678540834204636629808867225963913306480999867208972928288466653736597147004743999982589133205917998525712196066231781012920746621472149605869409086336581281122729373414987126261449200780744252999138763527716610788785038211028914264490993058622598849084516581292789572257366888001375721993678808762561443245267386934520930842196672600297191100855831458960844152519839223105480886096384745349659434841703826698167751486160222077753561321495482723352849899156557736351055999726136348521543007150439421590037679612044646176341985607916707489146960620769870283465147178495691720510208621279535208812616946547782537990982698514259482889938992380796010381593473368361167109245015299030875935119494193025325273687960328842917141753895204498850099245692760943758135110642729103850615493530772193257377592588894935555990059575904542251783955617322669829633963452783353506055436914235496922354695616772012457829951376497191543827041985387015933633686203989569074863764632081100535798159547823718381310547601487301670920063351128571247633739710696775341934633394954416865935229819320501841903805716871433489823918882461187087853489870107904180756099528561839236099131398970525135370901755720644762961037202932959893676283231086312807732648856163684793212657005319286102330426986818820346030699995816021435018981780889169384985218814693058372318530159520448178218071759912540682762490283168459760956997993117449295669821639322834176253479278485409269149446593083371817144549579652862038679888140458182853148130509246429145946990492679762458714201321285197251192796877294330682482421377525964949194541815255987142415808967528840329094738557606545838149943515393748003849106405383674886926934981247844218480744266018344764040559603911411611712147611222520256148494741944149496507804069388481609407943874683977424234268822410515938117971563921576511694988021185599143729398139309231804656732930053124834739459764047663026297127918876266939431466888799344219026944391265228369141149856276318146773691768938476768842600131478786272032036105971398583109934050299296849336198711717088821709513901249390386571270953250437981598360000250995630352326263826054248548336767617412789563924634377921682497517375157441668287562772924355841055222252205964202803130743366000055056925209614234156414501018928212775869050057415927605372774067709725852299890827838650284981771323930997788047926930655283730976974156329800351022802189029509914221219792260727553015638231698127319020472667292810910317205597244396065182382923064812370888662463453551959539376081247521755550437154208529619819626310367987113734778150006220982230972278457594401871365598633202820295514462902562315095506729169840453639090421075964289769175746663159076808199241259029623977130741675226305454346413721838586466127385266460240474404588640881186451079115129550491561206493649690281112989645296863486210916335098595924292321570328034848558287136372635443720979730106870383561782341510476389970559019597100567661680581945246361213422997132555250926608586620212948854617121165845800150145152869429296581798367644022427199662199251916893204002860563260610377290881245696521119159454825125528211326585197584245554224756313542378042112263964240987374021983855839818876923783125067246520758225446902105957431303738947849462442940800067947140942303990413329981644779702174076950234164819568067946154729059195559661434542655248848271672349580241319882167923515360485792057276219690742662043047246063058757364454737208107239163625950145044866694936837051753153760509946876620690304068278387762764923879695917875556327969790660030833143738736520600431435804613973081346743332455076083618564011368583578017424551272318186285940214552481619479832023851929306360387451002112731276346994431523893383206075975757951986494525285442396750228219659088186053228478401450518843549364826542386928959745402021740186881556109595431182796040212126108468932114109509605800626498338886461600882744852313693754556515619322822442408087433931547727283542308076749572396252472954798434600661316185897644785299680950592885851450944849898403244958274599721193998332629759063630528652104345960143370355497370280289619622714982060640148004638472740223009455012765982607741874775018077326967282515214561964262344289414449794383466623718098901271258808416518959264529663623756764936068830252311672384036972228511433376943038589761557631928163787495064644609972445194393415262751817608290438854516860481204606327980327225311007274015057797488563296138025638415328849670813136126954242685433768660426861300824777576832927191166144545767899998441445414798478942763715613791981655593465251094777174135370285354356031588942792285647848280093553364546328958796446562678276353185537463938728440333181677775355706648030420816677159951632619869857347493268872582415678549795300809568684964095717292242703811879390325286772159086700158828421840895919345912019105130562629192372875025869312839350198210412799208359050538930217056106434679463821516340658794685358842172780597873178341521810438190047050864576317444462558627350321976244048065963170930816513194225874369119895073149018812772935720451844014410499606046437433929658282084431052784242025099332418508822042522064718024766880386867378118158358914835596210097731673487546850935044064241769221931761136140115420331956603370030368887398635042282690703147840028835829059198934581164688362984572646605711362769536644653787820751626039241723738468239036487290119292147578587680116930683111088305695256048234183187409877517462212735649649936559068472302108755594450074500974786504689739493523542538299177392762799655926240145866060808543663220413469397680200643272127559363654240355585601852128047501414008940675657725185269909827212229358534210013998571024651663350839871180242117950209449628589388496687350127140089071831011409283419794143404119126899852892118444261610531421578922307933504446886227237986665604139540122829013135620620735895741527072829906896907664696020462097411538144042927211933086238578897954548623092115116310321312947333156663324948222386637917209378034998155914161505951051630167975550970650816222629993692223584532202556671461110143558178788540255694350597563747522691860161203794634519926747234587784500189999032972970495459842024982352413238723822705962694310923898068544191941932547605906961000745131935699007455249232109857027199423631642281147413552018245004725047931569923036196038760814409356480059509338070795172391755384242173690307244471699768640911671034545902692443348573673094852179685598156080657575329952561245099299565618929910795069843383172157043891215253419047002599095063471035859524583279515326998299491294630283370292487832132055892122515172942037300503247415992052925387019118014521537879024497402452948814290302170468555536990560874201837220645352766532450649985945794164035154087954867253730237214098962935364884171359374569425891692795281141860137372021475763941711050796302726942400255911407804081840982362444517291575226857927568846652071321832043977351271566525498785489623809226987375930552755815672051554416951561613365002422430704503054437682125357900759506127293528354410409479976948923882872847239084539839154113801662893429667734260725308432693082623315438782704982857762213642116020522708781370907933481532916383812682117504177891300860078804816403911872730340137647730997960723928516297390247260686354640704395172550125953390000102250641072457612286906014005742088136878246602705377728199914238336596873633962975354734946963124361395910884501096556000815407176851222928036365147310417800832559662792164895146251331787273028066262023112069683098380850471446045206001063121452087512304647866421832841736204853653537811917987297345080501219294420603953674167659755197945648289313786519997811892059369466702364046416241243874800221477245390996097067111333646910111112488144519000317523785326759724858998368909292229030307831461733836425397603583431420380050830965446420223970552848171005876739220904310257165715702698220827953541674433123452719395935876465293924224297425440388834630861662882576995928098378943010922161637389947174013284778080535667219004590212842788164945408294089780539803566631709638314192702596502626567997904976484195120426996566561993633306349409482106237876507148128962946294422569501085816958216366544761197052489250167081062255936259472398080129501509767959981018691105683815590867827998610726903872606551194973342478218986258426775780757404135926175528789139817936661022078066329614594976255950076603871036064314191262901293129395738390685781498342364449476110485111634850424989249129840316101182791824243574565638884411772795621683975159810380775184561953055060964893088101779562997281124140365582808889188518392204566844244574219990935589192456788590309121092098705957701090848911478444219763954116019850928512078886360635971349114414473148239939186947780889326680156417578582865445657115266691372095762636609249474061165092444960435784156993661959763416644535999877243409692701541225669099891253708119220811659045004514790530618855139274014297245764825669643028290921968703489910789509561966819573680082257233158619399765725819695551243458784643974146334360832942056049449569368111420434973736220547032901934436913397212194548678017403289752437306723014785905058017811620044134289798924813718332911793861473174688453452873076912598411525825379992693268424884723952340433153684689213493702051784813072656487814760411456681253483063551821283759968609896974316626693658465562994237825788284271113336494991376524379140115465571400612957266765558549297813102700128574324236396276406349531571192535891654004025851635312734334626292589117508715857427855982396408061193818210080847444489275148817535079790662916815380118279635287448137970557474243832254775757748569505888325491206062837088406504265798928085821103240455931940545570716492716284620263634133959900918670887030821873214237382158866145920779610361198608007723988235094580950204730711094264118406412363960541441837250328181476353993762408961515170044846942511500196375306309756290773281867058637534156972785939128573069073222278039369557138160465748720422312118445353824572699867091897371665998071580277018521107287808154992671860946359608669912296960359910440564190088017747152238073725428352817708506610004200007433264135858647116258770454020164744052133793937538460190305350109028233931667783835870755630981412121957623851683514209933124895488501535166320515095885280655473247095366638237899372165196308987842126817871021017632398943320273897020056436669904533664621495367325983731550679414964584090588338648418824301005936849620524961271598237902312718788087008064561934078970472651720365437571387285233388770054366672460019510886330142222231303254853186597568629819357622023314341118557095966869782030109424675665291335824575032818802316601237706666668832035539140029222827603085175732840965413742388219680276668395386437443787728226532895126020523651298373585175936054434410979709168573668095464415919694279277031154888171036883220033414025703337008930541407080151971442276636967351112636689151781684401168716387450483028121955292485781605605225996711334260522839445742764334187859120985420804732780860494731809821906018583663604306313531636124187661506525669863881175424550710421206097637185596238445896470752057659261355851023564265324701772765082541051750911410091047440849383079108332136523555646164001959651653423815363405843562823784610414046104949862971299687089092820715695097512413184363559482174012055727515600071620793360274914142885263492935535653182478510181394876985975969178938987993984009355267688500827930771415520323248033912332449495237543492088172680901396109465622258439298749369780816022551313394689756965170438521447557403297247194272302421554675769968366734073731667663819917026988247563312080538394763835543283681792947093427563331261171870867525883358572215320048603637327356778102665369601997537741069099332376649971062869338350114273211184175212663622644495751442279595191608042934403283639865367998676883766432361437180096645856484435259691214616394934856954352357138364357421622848466338865519289081306748978185406060441585879969805442584227879326551108819719616426942649220955379344617488035780847841018202181062869140120981116320474063392123477938809904087585478249519059734170440118184624327768890398589754629380324657444855521861062095031374751643421355975514652971872102627857806557684470893800978747794156502532944699007635024729124699647183150776739046295258530052184043215114031251334807882476704619295216022237680935320244765634286265097267334232926024499155767443103794721719706619155034249716590502775662676369870862043422717250254318016710375146874097239587386704818229589229430024378847968155640646520542654740490197689525176363992901696043617158432193367041555716127578598930914688013797466622958354860975017951674737008083287550959546764982581472374116150093257165973977499332870397102489690015168216377865408915180770455948760570176866824469307849019298709809800040798110948665094776455968562222741845301109982012478335508776118391711838847415080186781181501449113764666271004895192246336062721291459656042702339466812610492914549819377423190914543512325607512191345559514536270481512195000523416530993470413038194785159179273368081037195541618224189635796683052971201428674945421999202621946835011961046381331291809989706217742809300890817785967168799578376548646889679668363816160302846773060092739255726505902409225639303955056709913780991800927571702512478741291321363216456520469044913412260633073388480068081066188092283663437837008249475338640292403199347139681301323872717185035862702092178453592897399496745124972763595791648821075918498112949101711374792456048806131721570366727037899505710351278893701307697386524071127316621475144872939443502273174196099400240755332112711978325773757901694195176396523828978214957460786347760052921035509609833915658712972470365718552063644682560917725069260235128344916406841562246698264554962895832957017705230949920395345935607458162998580391628160049972070592884782852295922516410446130668817680202619615917105867365811307425656283407151129839210902165422714442457467130089227584865626221911423376362860529085907040315653776699236403787297092358445147498464177446917311546088810917735841003313648476711265803192769699070537608505859488506954292318566993356482187907131090831653184378008787787882072912189027908395903606405463973678361836896915796866874216792641534953198150853497623899757756113767680823674012619022849771560946124371179167934497095200519927951850541625785370469227969727424318875416043520458205533113330180925872922803367717137602691026036692671472317449864286128023919263522149623269814990534241118892252139619558137901130776534017018174172026203846411916561287251961899953791914342828524176854849359449214327950987343478828738325353576898839276729160927291498703985345805816323687787511702138632360109102353539185455097524688407702767212228020965513213274798885317130539553878116603290965849488070876383870938342105260058538041638636543289235757968532243810870614575140730150955257851283622532311868212339354220550049149595562059790467536141718544583555137066009901267130397510415152761274107117209672428986675934364666722425669332087369245636272528533403036051007402513473108497935163425243285444682063971158201427179434834316712418156396408914477588339349585094379048743596766155334198238097042939283195778249386517154404016436505716004376627355955203848936800445772260997458113764641626082654548212983244470578521277799548841936422139654973259248607475997245249657586970309167626996991337134400472544083745800242346323969317425458066175864035902414175353189945215444104483411308430558512436445629850388474215317455586704584955794851397170696586840758875079421040138585214754186732450530438756045622299588537837501653324968932850960078465126690857052875318922496969114500113825900969344025545473327656422388310521367942495913224886924017686114161243525981746600268393166817710098081476555481235780749483830259534798838651187113297427634524120595957684750588038988903523018699136555635918952296581097796237559248112342299840318359940110484714313435187802508726895946674796860912092914030749389143053104037009157456647010458558639109404917220872335123053931207898525588640061060471017578300447523406658846899180539036476534965690750937402723381079782452389257905037321848622879728120683518700073967061922763637666509384552810485377484596763658175468117118546690938946305629704129609945351784675287525924834312338622575855253090107904714424070930172664005716584851259781082447662802247718037099026432397784134923519159081077179936680108930710825658560504687980027280202154181536384630644125155492571789094100775406564772073452436224363456705994705898969879269758707078332253464309614761617137920108035449792824301259078659120879141951218412011808073093509685178765039449533554229961997589545144898822203558410602571062478830088165436595620452906079971120986651194890227565061558387217836927976889640447639767979028000485938855722330290339832356256838510820097525498802759995763193013584676449969625586205493584505720344618462399964128830410814588794287901037187983357382869874288589398003822095151161382793698483583778948412072289277480123292357016786746983625771524656028906569156828681786699017907319974841858585299080097780532571786522693017108165961896995175857959456633252518368477565675250697456256507163073823728016181889675422664394322200806582392062782098071833246498802585660542725861288390643872542702828897348945800249822401768264128562646144083459870963879659027689023225423950514625348474709139775689409856702709253954876636548813515878165790464480200655603603768842345558256131047582038239180337363572557032625173692622947065742285309361977327210283790542010391673282276561129825560017299504199045404327685632911955969623939578093213908234341489553708759043787494300243774274924767855580244234888177387596017190681391307646468230274437046521740242901355967812667022055103662079046210970698273379067108082963734290335675881839874714469707111288606379380129609077705857594674975778572862566723069246545046840745865669019838476119465860165583967700903300736129040565903208449542107047670072115844948291603764954778662308812144323077210501884435461366929324171081695948069638185691771212630022611143788342021055354330358431945260033379738752430055995521866611550602078448340113071950748055859513444465002907971459816234014954437027701014103924266527406558505315865914363590539414398215016507351146241525490513596083878681336760373330262729449615439071980289452939706475781040730629359278045947864804291727674735721863570975877240768232420467171718509025649461089769685063779235147409028715705954884913085935871055322047804679053663993846538513797925625385936732641797144895687312993208751049253829467485726359821671467081275601194458532217020635010023728453690411662913942000943787698342975614620718440486939071086275010592656835087534784481483957491400941428466941471054153837742674765311727304042183093019857154526617796720441675174974026941104193051499314898115226654275615632914395931638840100762790085393527771087960439061948392132953177062230419556181552819790549832725025820910239850542214533543067525574512273899209869498417036765250847430959935796823907008037132679931898175261692876757934901365585871705668293598158519983517094076717523976502190705451728856937415465734379438853956177130558118598681851292635772524274244258092714157863570508089755806563995633677817313789178176534653080274264648602619678843212501479892230100472308163040473703560782492818280080760446438170601254358488325954872346079952788230083651473389698239642290976990870725883785502220469013808024067443200079023703623269148454729167773400195199478470315921264078832165629162893830883895924488862158328250635510569779122224936339739525308085822975978360263755223954973623674645603155515938825379151995376803637843244478811784221398518391456031506087879733131745978645598497382415479366556403270058924714651265959982558511938571014621592534881666189808631224517190526541752966081760360797764306200430125381902872379918985322893829800529733299831014363925888497918362266639710528954597760671819762044821908299047892954801151188900380533032340017334740876833253121931868514349724282523366069133946684368459377295111503310540905874104218807058149927239320016251299401910972500162222079605986874011774557320632880527292626461595572656218796726999538265062133415964785493100301632579138302031770908698284758070579082513591263655268320122415672869909597568969515357621074511744993452028041587665594792007396689483205114276872601203478431421325823951505956827504441248788509591102027761875305208759977995455971530630686985346238577690672268008790423261809388622811165254020541800121090855598199776815846035711683303600484763018784227959907908418199547001575139676920737376941814213583594705448688214126416092931916813682985754935958311891098760953402514281075130613443880122743548537293357874791735828359287442806566832293028115755424234786843391250343800396405388136766136076089943621472474199088227714259515245542900524907702369454225800852679114513645433612636487444404492344826868681218113427636148824507203443320540245545737520773120578606026827546310628823532408822565016946410083329888909805451852258039884557516251885824799900551795984197893750952944767384453007288151911373664278759687037444626662865418401970405458435393399476272127320481232270663931169448259448024577962554394796827998077638304039675693398306024767663814614292635795005882811726996050914086459596577428062603575198280062338936833883876662413885002703898899324753945772238253199051618623972133117607549178907633526954728031722946868799495112930761552010268954584599052729493796038936424825620341686789108850393394373698351540580128385519296243994700096935845476875008172889213017584965077480783534288717534394692551613893054461852776831023825228661865602604895739473112491329618787338044187458999029817302954013360744793843494556633160981807683837330567519499797981731254714872050951879487916004473588307649544498377626600502098674644914791589959884586575652080250553442075213309928558078080222786469507586407251265053832287045756276889315964634112850751147542718929466581661593328059931700923402824244330912384165971625384985773672616158813571359978587017660980068227572957022780310448502842821407307534995821468613266889967548645370019201980405368705267024862678507891238305687085211310572254761930410843483066884489431345303607919191178108519576507938309968894080316634641145360119162177159184567119453537720284833936434791507394994626049735017441410933567343631104274761327532735198232963818580797583929192538956731754571552993655785946382476071177053197704764321745977598198054818267646040514195626577462048710312373654064767754909819659051434734369239113992985044704261408166248603448382573998138067725525078136449211098506621104999750860856499629135178891991981173958966042472030984594189321876441564102735166207612367014203563596095791696764004471357458673040885176320083502947353977516764788170855098562498994971298221778936599430352267059609596108127096008262802431717824969090274489353712569357366458587698875218445330073495620309440494443172886989503923042061550207654380223265645197659951251107062366827919799980524868005160328432744390238532890738029160715586084611050127842540609479723941021485862530555125868785995677497716674641852508165814289007351848857649332225379947255985499134276144663859450192472484862336119317349632802835899528257320937971996629146577332248632175760172159282136229056380712691969759362439750597258929092751232050033817749728570906719633901029204967458412748883804865435055647159702576329237306781532222509244184732137071758569320686288759381052217110555700930372769836589867360324383079124585364301307796843658885931674867911682522290752486443946061454773187959723865990410923648172739260604845023695151184146163480773308396527536442897376450490876904917109960937624546149257837866392624414362995218064887035142810882506465581318342089868702709824114698154711323420321362424853311357819114464003670908120987371696228979724525342849126172133122394674576104227881356323658063679811567121469855536981453410507105368126726863535305430994957976679116334104732009686470305835410948627455987940703216390598534956128900839529421773338742921211944946669048565188606529975171794379624614719400353022283675720067528709578189668001305018029639138190460825884774512566389334597269825358879433838968510123691720763686821097700087754619986352634033845146128538782772538591248419988865680701113796282181546415265824555477612133055631674833395958511587440564286576625875835354940220592276632971407850894538450972652571518304009005215026616484414823281179813415011547773579948477196897006552304202907552010120937354896582317355223331624558153710790461127802832344002061501488108320650652129368860355094382814396957093305522601138761492855667394064211723571657978838339605610244103830706146361340139041931162913163981053829948332207149538151987867214504041024071807246189126377674564745509461532539662604088127440115557271659003869670150293476767795061811087625238461167094254244070036170336605156662832551702876296941398825752734238637114505248546279822502345147796487630575286268809524972759185089112466590318747085432192692049860920677362604679545422858002395191859933884084870465937311435580469221022818411318930893567445694424131834847128975940668865626324535044583450183653105595253043688014551895187647296423764390777796708699315802664087600674967385080728819758927490535767294671638485611257177968885706498368458494860567777070182022068703429120057184397815382428364006175385181275943957300702894224091471435457910354195797262820444995749509634554177366495619973683727031889678496240981606422441929480992665256381120938058776455846248154538370592304595006051717676914357943777851854747719224597585443856824137741909098592680746616443546649971854663725716375135133034640911941465144064686054750986691345451007015395302580118077432238054508346975273685523992795595403005965171330450317464925325875543450080852011050385053064837816014892376768327176869519433974852985641804449778730403435905952385410857584297102298014528832293873621230890313659582249922751017262176046104193532369153626075666961941941530935648774494078119967689884956203982957183475266951105739976094616876675649294975002395738433021947364087506423699319454720112495548542757998157324857321737416893063281711809714849245085865012416276544113933604136234336522874492829624911032538805582036152327914339328633402394842212517996354614721733780526963203928969529299392768836975128441850034698522560439209698423558536719005920787042442606015366204252380453708593589181130850551324656994681537822698090848360310226565074364009567700848188871638057764513195234173011831565174520741099029413203282737775026634154514817438167472198462879097758966572451600206652493843125543991370851393525199156291538739878283384901320250696240670344187049360418650065394348830246109094950341062804903380020104946490433599847200514725279963602338108234258195750582792331046302438623316978533654237127961413595373942507835952664722909285169286504606934726833695605626569875422855462999766065675177207512099258085570935912443149763459479228770140555072717902663733327004990740700168249402529275680532898042486345574543406319659644242901285744802956129847530284072496822977619608621103016627177034074153443640588741923179809227851540449564449027025265371300426019179860103396102898412078349321264028507065877716032046861236833542162941118805890558718641297453180048390019506946509391179965833127787590138910061852483930996285553778227903745904393789832911529525399493135897912564973207161866805290956501121027017954180611071527724213249942876862204912727280997893014192278084074263853756661327892405975776636587449822027296480976238029056924972262045918368866184460977759178090768296870801418412674726337493175223905839485897525545643937935894318847299807394775562912968529021382764751354865063964653877256089976699932788065105771729049446974052730647077466479978296403430183961482215857956472438778161977272946458455791657136681499269431678491909422730765670060398690836026699316967305305826538470779412392363769500478883821325551136188360518124822628319440866292084720419935900808584023205234379144605085713668786396841316482782158754707568717662688350407258592592622771255132916443196863718708553275826013736927463814214648592636902741054097318865272707686267445034763990740688874412580864646014444336963324294389765270138508621877462595788088343433868897448658779865011823548760375967625781635911194534070518355615302405834008506914709016147137781305242156363666805954196750778878965204674246040344902410908282640236379588826547111626348152101795769566867266775326465231847288538064805950889144788748922743617307902619156309454520000325084756427349725864260112507139214427334509340907674695327000879906756801799575559331511750050259417993973423742429362865851109750232071662143308838450198685258625452226662391322019211052591518939218835415103852708675302879242668452200883152260908557123029074545020710223905134985846170812987870844133685636517288392693557638440193114478620713896516417340959772136498992503774030493743518198149799796440174826248706354071932753263840629078904281114142954888906147495286209471326595262844396255976066245643344440224012673186029226463220783293453926343990577122876224333613565612533354946656948885594346910185752883430148867226464437924695657040332691569101582575547470999626399163245995680238649620957280901778532729492562216562725684513158548208012642740696225363452933801118265107892068122046583351994524292613926136723298455828870605846366508351015388392009902713961936839098928217903474791818085675947989509449734682861807877557310204969589634632782705558172663574636981618225774678619424647208565785120627963420091933730633951931263987007988878522535992254680681794373915643729688892121016975191636066485484415061503359751918480529937454607449125893838511693170409962819787281864500740212709465062321959735171391374387678340720744464700792031099910910004840702544511731665357954308103342237333174878047238861325173528078720870081548777111799682184097065203179572900993560246594477081078195184600718398980027248003056775942752370528064434716407408971080336825416341193871857545196386625216220642094899222656107843175940798047301384265945684724022972262568106119200658391328420343197424875553348995012303344891629449514086561744938213825388898925826415961816183319250118094887098056473525840698678275848151769742791380744817235272798058916905522807174576252599149685612726458626868154723228705908204236633487322620005290412268144888388215184424994288035254057045427948664886572113129736444456506402559656505941273477644503631433205132178057248773406861353338232781778405273839979597904047279258692599388221304859325110794184036064228447678636375480860258609596205555079703303177866629707456463992943937379127204718829993230911782139997411294764684628177491387146228013838039103080131428632093618021511843418849222288231530507413077318367295979186562401307989977272437707111622745764298938358332467948352385586724823672110852403199766775296156777114210885623994775406538201669844936417955519103188183143741483479653303045815554082814996362976963209980887901310984636829084437208804882748623373916279666334043419573110549319148673852569663579482869470375462219758433375681513050986918526167012314991889282157953798559325475418099975107953822876416414715959619639735113898338159163303977106290812936941972403101498546088253095914407082634705542285328856014560108214912622084680138471377811973586969807062503630283391248270045466879615324701154004685775119710729742678463724633203708417311197382987134726521742791621159625510944403957162812579659791953192211260883630536842861594131598359723796974443769002496683534841737712888494621421126182553289940370334024213684934239118868771093989916491769702971857933403303695590386678235684120955195949470985327842268906929865687472300654312417654689611126976381171516779115641061038341222619274412433231659873329942980669613835135573207985647517638910514934402129137751733882588245634902936541907759763520088811225630958796888562474090477224124504524974983873939369740823185701030646478105033273731376723941730512105941099328935641584789416020926173647880924383914097411635146931682856918883697905740322823243276507676947427565627916754205807190480940030942961892161973795753482965897759344398776741851978842240512511355646986936428312548496636118114866862379318114987055299628415126790179581596634335316514390830776535134298341288034813394719777260443400873192067237898332908568512020016300338195672527284361205878978353732469617289995866057800416855761501011471909415129056056063506687488658833506646491859623085211419200960957091236694631973090954082318101127838410041552226954526415775599978993399293661858975159530517261300984084636694759789410197014817145657612645256500744468030786732013578061912047968368429204245511800561751217993689692730878076446231661042528176978499001154398068926957449384845260527618310834527190014124932853153934495499440115283808286467674905960573266018107202438230236883423040184541164798031550876675771063750375537375889118691603568899818314673359853468448984651989567507473242075589978398628018490430099660632240877685313798970627515486530313090754089650473125736129517038825800201401766340062426776440027343008787536394443230156813954193386976081365504987939356857438957524278540496279318190137822590052065752637082797448152391927151800440981599704955108495600132753880092817514243996322907562124143254316861242136723734460101007388139239147221013420428634736590067304815838891153308679328666633539466474587885442697055235289680939282849117509339809365920645606394819794105008812098316961140916684165648008895092557053500501106222314981833851827425879252198722508839540539451326076115931264738514593299189482515913010750371469198489080770335666255380902386688057551990840505937957532653000929950450516649934030147143827947804120700489198210054010589451443762410215076319857900178434062185003693467813556630801727665956656809088755855179863551736745165910687293039570467094106085700995901819995673243885147112890564627876248199126093089800980613781470562839365125447364085020176653856180025454021855167273624761301465017578522217399410643396073265903363711567162079970636637587135660950146653311993078287538787210802161163306167109175946579803544183750982323486191179565799572640077249494006645112096188224955073037544536105931588818151412868888484560019436558157593326635435773054095829208408214286449533731646807353590689359479908159244606325245010989038811471806487531643138231001876408895405431558300328405586706762693320060281324431308144511825686261210734725043308065187408019654205597401966231435958564068610335104222668886889765539276101061423610268043901211926126584254211422492253416702913403018282637121545194893472996091881896377102583097557669216110580520497454950890440068231645017532887253725500105184356716530860864727355029413911861003466333115205652221386016966279596603124551132217895243367574908521274037423510943239651550546762130448146613263622584895722968020056497392071360765603458530857457983625792700889432505404285870745376883248909353741491750453458351519667320262097475549433142801617568978033947503259062840124114014740370866007847771431452811686316769947892504634530172192762338382917978442729005085977219566744697305974288674930938044001769196432706227999494929399384260773028145473762045386924966452028684301583379241251061726804277555843195805391382881379262102978249663533415366601949121473937865600095976729216566459695560436217010930619575726987425142252745367070187114384472276039770231724801845257321451102701964378477998196731431663875748029908881268478741051004279406627157470241488691781037954219418343498196978960151649718525196951548871813660341055177323258794385057441497778875868853724470428850821131256941152240786958582589082989129864870480064890764154651009825805684951963487108447337204577460672298776197178552566146816779997935013516665169504838086720252414675682622635749043568717229242497278180348684161664173838020996216138988986848169208036506336250135895055252819139614183230392058154392694919742222858237707417368154383162466999571263480744659930023476191246742787598553314312673663886074240034740853339525967242674709015506310766949645451046911408224205729262060800572235232922420976878193248614094744701774956401726709228614448175608278581797306455128659540892885559291101521809309543217277171660676007314272525206503596567378547903448904317526408023079418371086450369693734600639315661452020866962223197163791366603881473807550411469713303582579124538060891788401447606867163416388336520698984432169818683647937814934501620352402116400698652316241529358315096685111309028365630005084199765182528985614092360240351269858413167658789149934182413345293975720535516121977413001218246239890005496337743356155968349755223339282502042648488994819574478712020534845803792634549193907784802665009326643841124370290946829581611420276107990401184925487959153282569603888180100349257328401542201091400313391679169553869325381151269068565098334030727853002104933105601765489933527937676096054030427230398289169892482322344906044840673227787180894797100207322865978976151907612594616815783760649373136391851544585841008525187609108614473334579941543342567700771479941880789912440656106591613347144236388823475690030389736059066002800823692551557135103742428420734494554365559336772661739605317909491051722207695317161033415320585080003825673566530179540600815151899949239656977111615954491237721880864251321609124411378799004584176583154140398483885187458812341355654176911054834328539224308281952841304605780666794744582201494846188187195945151786191088310635557018646424000651690518888008423324850126320624824067504369496921165875593974179168248458929569609322451993409615841535582038867572986878766066534487930615840206250835985832162617161176196751070311978872491960939874470803411304364777025552690391634299063069633199939796006673883514550805306510095434842750518468124542707302839604957293279350084699133271754622110762594759212030345067605399508953903499306932390713057049147671725852339629940934281749227055317911483078448312426893948372884671931137164682350687265668277411983358190229369883011608157427991057749577567357382370602586446461653490102116285580314019602648987928771793371200446673225891851407089639009226537161814706400035731622330666637676277196842145708522933331777934857664539738289463370337999040128517479471490697056318815410954042311718204116885116857311378690744574451263643756323565589913220282981357175692539629622395477520784183986909000648398119921109652217828063106185071021761552581897335635097423647108318287904875623895678053817692939235560341049673235611961595528970633962010333784900245370719118980684263796327662389148927488903113191955898948344812332463565295688692047112610645827724496289303067438466319643250113436500395782290705118799138005774250728544963228324568947313555675932271223796366402530642377755649530960427092257154905017736037453273482361292657673510286195418304727071148433038312725665195894838700403739208729184541926908169100533928964075902602875789792773277585801726249088168803209082770407477990369318150631694631995638181286690614935554343224771656164090726965118686078838837398856170286088757140315639207559518837121743906332910750132909202604261468033138148004760792758102519412784740954971217595072952008348380046236754754329525151909888721009756803047217451267979105448670744634215024567137927197252647992522423767128358354833766537025494835321015005169822354583845055077650963520230633129396034421212292662026082100156918870947301171263947813741997278430842365748789662365001598325259227721765958215106442333428289849672844745367668063781333463233640653974403125423858507399117558440317542658937979585416747136804922666949649292349081413600499179072300751912895934098213589725769582798087101531826963196092086568400256462196586376757849789203391766370456775764136503497494465908458993325553978975689225053402851637319999445555116481592751612058766922720961924525175337063242731280144854047461764778240169774911669881359590286195272952036846963180082537083115713426668923828370231883199708356675250796094883997047283494285559543881777125693971230114860942362097364517924303225424967264895391340057012049843635017591199826782143849922572518545534229099150920070226625321140094326873567301480147903785940055836191117754933445426153459583354685073873447550043014789162234101365830347992195267577603068265514654650252876948861865015646361077824141735761516101701280132498555416800554828564406967018147097421545425299865736393884917768821858367706443959948818791587339857888436383138349403353818994666871835672001435377469773838918004515497062267485043149394196343354253942271913010167615956813907660427823871926927518994881962122649574360192315298384449331702243568752304538097874790491249561103699727121178965859472432083310765222377703777201796146962814739207129425967816035924607292970627651614743768425049559666268744030304640200136328543734332299789503004002899277575886254878555451995979082264290652997486500687595490069722694334349836911228910065379732466921562499199904441510535071079114402079626054676148098078823572135851976207380376230294153980881328664295247891654195946274513234899797448833852039275378756849096082849548128172816120213386906213384159796485415780424771360859343147488320226424007718028871182474681512305781805986441491908374888078069766237252588546843838727463451188570191159175995008058081488643789457327907487535038331561067777245072361505300872023157158474264743158279736134218182748463543364177114437199002262010116258187355870337217043406504542262001048148316200819117383965892585764792614640291059803734325008696785766008594898137005893221700714998235762974756921119853620231284085614270216092352860274403538917723700953324036092344773902000776310552780622959806578696877039670993762151871387258841123959522689888276314372386352993055372245869632609037835331475057860575643687972110154525285104240515360668488198045644937205162844776921790653841768829927686024510141748772400600199349541218521184206667328886033958159935687497897898556619409722265300505032807894139735714374900889652862142332093220078441857800139840201250288145373311255770651522420593560152589957108270726793163387226104284828119434689189012152153193947266530517812158414893951187184675001758274817564180408656160767206966227648205854059907856311721620677718269992651999795849275472295798295428419601899275042828953912226960167537312532517756455763314129971164065014442676337699135617184844559957030109733595798430808009875271335950011575028905030947811203478950217684852386426686349102562932697604641632283747620217650150319853141132772101491638055672332745174995910445513377143763083307482580340883216199666787883578263615612318993590481462048813055653508475599646694165039885244791337272838801778760091074152331922555877267983897110745741577179664911247670622091433481854073487588697392881024242134522372673749254113089953507063030038222922901268488607083183180927708429128423747859452417440782521773673512958693283081416599593778342764748204201899161197044463080056364942724246474267839710976276395307029040667383986080279720420756173912731968166201128053097518481683736803901329872821365728837211320694593583388082305275289011774482398302780054666263705596283918785463661018081717951172107071775601656853329202281299318222233616239850679575222748084844172910331046889371204205009233851370264585757537324682306657788671525895756916695953860318568768564531751913393379235366004987979333635628732059505192429352108356208857113964647181280331834961256334611257377708630918654844265090131578709215511266250942994133685723564711896171133320804429082117726915290178954451471396043732367189703162155292725995436708267176719471086945464631387957430578888515891863859089599149914164578761721593664654608252113166700702811595598017514728569902450177280542237027804644488599530211326708702083333823705263622307441557148044986831716409615516005470995385065937014101271025360385915618824957266752871348819354655913513781355816625152258837054946179811365619086147156621468010190576276051322124478763281410944831937747685690474267869371414431433152170661924095665255791118611198503312333790287125660114732671068125542424613248980975702516223296116580025320568369017185685753800326343925668028139619076057865390028973948065678153708834242564910986063387471695059002619412324499933181712970847273150030832589155113944935332195055437709813837060405071553844457820151343637826411782306744631285863178448193791396034762101548743701311982927038997552865739280122574309080622014230784840551384830617296502029184934995929862408176187924955502585405580281371445260652181598273800830686663922374959858075492483719776526859895614742652746620331630923219050663318292935945923549010401396616404131502369178612860380283754390740379512806674892490507771785003077102833724834749378282228789696891783186949523775841004050853913670506000413883912351133549691299325502744873060401722668882875798465228524732229436209176248166112898186941684256911620531012175312842844281217861274860364525751901711946516968842713169810280112917616973346157850585867878551936309695144055609588384536329845593335117815234449665882129080563346105601083336727213719873455872845524083475563822233823376093623862662382417746206180736684686706223092024979273687238434314822697390079185131139026760457561280267076318592131087907754690254010488720906803016426362895438028524750314627781199315244869032723504426375736654750958916205481983817235975014105631347221827225817728982895228739250351490648968123517692640431888267319257121613183530308958407857386375225627451224723057286925830280274388943447806789247450612090666959668291909599126599746267264120708777262193001910263953286462864707566088932504409339434367534857923435027731542083179547504445276488620738649632491323479077028576858201426788455273116043268975703191215588557360470203534315891690398787388904613485224848259702320057343688979712286434407364902946893149783001917578738302986876666721794354441214570572381979610864048408197680302453101350306933332580660356705996624116702022611298858429756959941955564290767541868908803692415334163493767404502136108803120624791828712653220492708854875982325493310127327878507207986146564318918363384413667505170626641544528958758952902514742179853237528621817405383377224639085644151056127499720318905825579816481901479662794621424393642907047093312523541020733554039503467114011406609145962925609840128962414007037568405231680756827679651359430177906279623998640433508473353719828488814486736646918747090313062190011351678294417287147164453158094068508523821331332387362548630825176733261004241215568601778657801167432331468183604621249265044098731044676353859385235808183756122393039446613383674866132374257435819361710267477568120699933225592024122832868144946464957695346115340530977528494238003000980347175941192401400751188554320436876948658195726326282444625124528747192504598783293133823486188483091719444422011580392130885695586015029910071423637408237080195689258799306273917200235249276712305160450525406973626696026400332777653119359868114404933075908665101995946211081168962871707750930664130337391729432113385132636015704082041354040303388277111486392420610683911993897998582662921440516348653658103607302491796122907596694364881069165757749303527367377459918582280514096101867241016182908166745094482747745019915669657259145943498326900356955411895936808213778969600353932572634384795985676618306828770605387222808662639724907908198745647134915255220256185449387016307880651648134489622012646882148900878706225372167102782964561117394363715639948487819053282358217520220221767423661190347869498685224495977541129957097838042220013850903717987883381476441184111979015615508388086887334773973870940380173957466887189938522044839531811805687640175149774205611506954461284774817770748867912764105197040523392322091884328995655216831089553773181782366380833371968443568593874012264241634467492930106383737417258166508762930375307727166959622189393012269794302434007733970172014454833662557102824498630342576533144415690251346753758739867952407172184492433940354157525811024188474398480222489384605392116108273353920099168258210190671086855584275136874528290996276799649114172607291876389459134174300884252910562739107198844610633101986227990788267626350991571980978979394830588436298305677808445833742653973305606401442331431279400396171399052909262953355889787339971909747352823075082907845505382885163278808512014387125969819526557761254340991546532260446581834964278237461873976079893448017662098304161977770407489790478170748133315801503276243737563633120806170560681765054001565924272799029616425191512070438919395543168812598437096530090690088522030054874105637678449840267892426257221636369072357578912907697483418953708386298384906133388131016928622871810927687641124785135014918616652310547674481737599021703570425574387228751295392254749754559291674975290934163275033601076598993805820796370295866676116870689981819818127715540683244449115120027125326906129150039656249594628497857272739620471496176084967840395900665405946783222142009841414693480767390595157579498744164263105636463561512956193048075341854880896888876162367466984303763202604350026071551454330650688813084897658585502908134520661609805969028401598121152431097004270358203514628386479897696622201210178875167896243287607293104969383094095801477206264607210667694887274945096219111722947922232160120398529263506786197981844857176017963146227606806442065706626735462584705022218806632731942858487350194597305493580787708610289842059055781353155547150462102012490878401609157480320524514825022089992823778013318999807384576652584070419007586342694741313891349637107098729477735738587083212857766387191201123587568314608095645968869925567496434941724397148582101412648769625449608982322259570063092750883067064223817001380151038360206429471555727216929859472797383235356898228087919581203038529133409284559649086356430360863147231035042887768625405812552506569561374079589487084195650142508616397513458155544397903738058019118718160924728053313151364025418955803831901651217425350047180105677665553139727592332629723814616355505651881176183179666371217089396640543526949527944111312427887174014113435082280431382331852175820579694047180090890732808299668558849070592780290367251477752056831317389018484600934449249750578465147698701941094328627209040404867770264306229266755998648501300510346203077175990396124390986640615629318002941467819207775010407562849347189327899273056340704977656864674522897454604471774719789352915313982892638406218310894843151777581287833962875842582312920461193763421354097203371909537005071479926773209791075990691183445436912084952978872920107527871157953377540726203340889945277736487954058055654736565553001130391936399099203565138322031867709373073837589850760051356497523116867003516974794002344078616579854817230708056943834044677496599115460708216518381831379026703627126436480801664521210236702365621086961318509470699702559087288469491677843803116922321832602622024748706273959222587015369566552432160227984743445316766433310831936378059436524905307996443120710592431351303984498514478535593129565864298956009066219381175025449222725658827776441043381757536178035501880875688003120757130902222523069677741143151604704808250296352704806106046733873333544045714692914483980525142191873115319200549200497417430354021186688949593999167236417056950536688524270006632545455048255800849001844645164423472853859819173154408224438853151834043010671506065832045995376582987415101367235148956778945511447130798080793593433431808717575121411766630183358402190147035843361062818966554549229644072463553055171352456420475982587616991089606183408763289295749421208107267835329096545191490755212435408066722524030061635517908428700646411271271744007236232729306482889127163343912642635896351165189180538467352518394498638759859421793684792145312370224765955875074706268544858089214362086860236188733378327288726186266764726202619611808184374611653422872214601133864537284923725566275279035454738579281852427315536569164425144690169849579943625709678627092550067506941807466485742938301858560218155316581503667656121936138028763025947965595580256227596387793974704612092762678363601261572445791825389394421727839838044796132575732471092786374101624092291323131631857635871800350523933485424304417724065191323404253683008877316032216290796538933728730815959307586661062331825589050598649170674531810843472612551690629269063123574179903229398945309362103477224429622538572448456493105847279989233190832759969486856187265322746068799001139088576083881929982864773210131240583798338482050537651777422344525617546278361456986383388238152491801652763808037003046585020789851011000391099625463918241873151891791922157664081024028684658829817759062598599693882365970613041994583354183539251647680816812956093037139553380711253521053800656424613848673669421002800108383972296475126129165136836640042947285644215900213667995959616254094677279486005944780518304849831615295687300783196497033936926736021006647641378160289787895689197355231386580139543673631632917829446461491624229936247797086680467895114253031415899264053219211273336988184708883355269109259551554412496315039657201251086320702215393420157128756766443507543809764386114083681458194611070104354935906661581573878479675150744309866932515867541718189266494253323645776040316342698628492697795188965390128070982230349756443441751451452820424510325326405263786414819495667950490035592153535627426604051285480920812893964569304797816394290777639621225290268528270593555337870032454345259445533904850466081025241970961402257105820861543715935303535477332983309048339340983333105912030821914627830349122292735226566779056842853738531164300592976815991427948419594902150882351978252339985135575162817412153770082082767650162210655600440957974246139612140641218298312803450932364180188240373671868698623011072629128530669790199224469075117431665241418671070801115150135551125158871274574827260246767503821687475663793865069713365142431515234434566381956345771956323099441555259849622022856429938658122841960816460687035305003338080897027787506834348200336093459092999136893993242906475287067573360780946849343357901003523676100591714649063678204499965132956569275818880269554277993175037630945953675996073966999278395065212638966879193456337283371708560913187294228826274326859342863720590611706500071245827889659104188933910296277590581522360700746036004566202443906764644881765374695015514706111241263189661041237557528404991012474001134995369674305731441239660103686576364658765714491045300822557169579649369590538173611685995311732080124390426891380350662913571471462725250859339188512138878880518759531666825984398742983031691296187107229796839369401860664765086781740404556342538730645768530162159597109666585282269797631289194545053973310561961387350702777911574460216030512950934955610696553649919530879555523273114247750223669476295988038851423039583414396874361133671329045894412887232697708453530569712296760661867529608660736460847275417417081194146514660247856653520425347209917951559071201846932229540818539629675188129163232511093518460295764592378410664607938058331168840374194087772347739007505227490516641420750992964003398917980933802145581933839159016585255018768235267280155244086003129908980574154598588533772733268890135385160545771212320465590605479663999557313576785002590669955265474867991334987070125742627177161019518790127865615570446939774746921068764289334011172762071398771637432741425769667098257491825246650717046950309608185722764520860988528938581640558535246330117882428404946496166141024928560431237847523418451256950614070193980304880213631505621443056389755556166288462890510014490667635132503007907808554146065973206123340955148219633008877925085592054655843349715822513628229537529830145064152695027359873823066802645288739359269466953305584405959632285281697086556431047494090498487201367264366451219395952432116066925083702778777948908630401731504088173378084322019041703719362440120415877428501543416055312243201344804333123278144210816284925964499222183028706343156328044843348875075625932536127156653625410684810790476147809577671178872834091458859605770735742764747001394629412534011214012364902170964500746274527722421345873022925371874343923077990775211062490161271180510977672568006954736184533904435703786214400694810831057253714578604833837171486506559451798537352307383332281681170073151829681869293998179817972308299314769505545560429677027996477486416108172273109673264244657919743012050631280795243681046070653231568929234122569219847234935792493366596658731425382871024669879288283305592586820746213976258109024252820306387997794516251059680034044047833062018132339411996902858965490732212142218657247640669087227697011364136377376600233667352702004288197596266059062669492373774071726846586681610114224625357196132696868718630798058311811306293367230255535404757657299532384681291949338556403297375202479521512082585516012066537677389134979371069825258980206660477095546239700705866200595523944734275764351053451691023725656558636059936426571891978816924609508863996312465037593853699157814149556639144098111705863736752601701146689584420444429680917737643647033337108272913575063017911652440507268970563478680430600922847483563398139692382512069295655161135892797464006637654947159879010927807109613143883788005708297691145882564025975008181275721941695919185922600536598711961681130051634131073038962500314225777058180966831634343806056065940636498105699529829921688569243456984022966896539545724277167123084771458194754273233648862476903944610716501584291018618515782581338151050657793751225264348278521941540449288703542378311747886967727400503926657448305649923462466863362987330175236885866047033255416750696367670747489050534855072034966480147621939069764634387571569780214969691097747961407508915152278829691741221208795685853061249541697699838290269440825371017669023260580796287746252838710168869045639383063798700542399276850426798810041516120660719353352808063100214367497621136353562299560698522160992404792117027784809491090589976893454652255196848508282388033606371587048661858422403311188905056684140415536623852314006151898728560870266630034084559442184118976885630594573090498754304730817587329429316882487245712840168539123778036134998425764537959732314162045696368095275925758844103548688280064417827405286665619897124113123521290153961171577017709898727531087977580283294467595730238034460542825958648511316957795046010737388840350656040549253398315907616922084285623007749233040522566168170461670697414881341900562696255717919839864105741599125748530184451679398757644842754510305963342305787210031263197768936297847917547460481953482713904686785380795380705928235635283361439402365454785895790886934793281710360622354547730750804314995769659797234953081305178410056292425433247571779171449060408881696728856963275268458654166766474920971146239452494726050641356523836931510567358348065391060652088548330402637494408239594305189489018598069308403412848404911067830256474482235180396579410220326576450507903194766839764240321862880258718396008729927129823597676597231442126194424434086324416725978376092180191931721620805706320162122865069016584277158231644699112900951541451305531840370965627628219091989532657347956320074938542567609646775891894216648994130374685691028818847800653466312488730633461185565549474348095863288723464110383739868262029320242827689397790853277934321910587991457738200977505024722790727756288649585154881069627488979147284412365309117931657726358051141805270248739094143290382872605160951854673975257599179289131045438653215766054302471054266584403268721585682584403232427690641165978255562547403366309706744887673445603603327515427639123342862503070790730360841076598008700624135074283393011556232687317340737494157867026720261044793339044410128333583636002293732216417010482780876289989269769534141939527704604212065564127712462461244148533069779258011530856764595948054397499902505357268917127704708318547288569974571295728384444589983570221764539881487870068913924376113623607015003325607821896207066233751324943793008682778662415160339299065765867298427297938649956105853577647492893358001562582438315149495406462039381245048698885719156303741040929827143709441992378958400113403866442629286622115939418769094942569409348838603700205606094633222507892312970439867325691174314561497262111123221496712452404397910260986026652051751597606027682509724774140166388533068935757965704423484539477837744151627463144029996512136974506876302683220810788307747502322307989136748275071707491320690387671339101583842733319491674677833156632116851451968543233921249464763805790305288876062859587818689583251183573193937297374121781514636932281512025358239065954893950691865307326101190875747655131398878138357946730686871144717341185472692334945773852104327988014663241351264649466509051731549339879856647762295952291146760056611257679279293528404157742486381540123376891428711565011646103519018657125192226707882122435999104343339267023041050216817879574308682086812227649786521521872391093078498339604504244983410737059798630789770473012500727701184774615514059241661233781307563317863108510256452282991002725249869419325552627655807916996647353399647354973705410289313734559972533489789712461423271675540007351347675901009808461799433598071451293100061859221741184541951486407221646255103839360469074946822100099885093279027787955205046477515079988939167094904911855466025464020891181569694558918967949049932989707591489909210298852643188874541279150820015510127189867569683336394947676972696747457374801493513241608757027502535954847935836329929702111851618003144359270758061908395544260697835451197553397058841001572478944067241122177420120323886115992155999219419908319628518958508317217730872684951017071104212159456248322827476917823639098037557166262226502648105092488239148490501894415271736748602900133769793470577059683432287080743787897803616718081389251133774521042981044734212802277036506370815705304659123224642487429487130064303508251972220107247518122498127049059480424702686467371733454103672017177264765198282629058694769011535292504443064328405891405587940813356680507009353357814237171941552386655125206632996050839729285874012599909982972634098061912502429032657118899525515923080913249414557236299060928361402752921035130250000938750760887717669666298472855572739413305583469883306419729097052413083334630069916965531544177841644935203174366270719767329875903244657258950972107815624211920502778129071629517505394736517525261795148379154409776636876700575654241143202700856883847743926738531461368610402387456605991430413109495879279430263798302643323393223805731092691075486695870665816689642597834294004172578917861088950820109871739706834611031146789925942178970219483472959838331686139947070859907283680486572129826719930355066135129045427217333556362968865968603814894895493024455045892747365280629553847948933922909607972938956848159271891033672685175953913275088284542351981581083417582372211573983133954631652934174560145021718224781648831319180585991259158077890536512590898088754010837212748452164064605978930912190175554597161285018569955090178996026940052186781851829347200427818968697089333369842351520234116684863585719346342422703327672391188962943885896769018208613000696969333798253551080007775925861790602074334263041757640587758339646885733652549242109083369808922639053423182620549912094110304923884019609847742065646111694300877267346415611991948116289488324787952731849570274310482878466297848749597595935844354101364573429278673782272822326472497481755748450380524091330107145561906669154573717520401151269682124226876649923789454630967504574725938201375649890260324493445403378560436515951916427214539436556130381357814752517670993359961029016007955270706904065513984451544490076717464783203109576601231541328003473015043223472756240965507661619149492379217084539044754172851014961841705286001708538542931941470875080746118780596098273616939120351904770265978169252331123075900512318811374019479089392900420143141400996099668283816545339577784882107197250899101385850591918968475389482450438852999954146623503404805571402409746139430203587928273603144963851533949068551522151670107989552849853956112029401543071246582816685420381834778113269404199689254735464291465919637322174544839714122274413133225611651181599362531868204493937311771119166216293885108232113691430054144413507360444351879340737200644884901515907405606251972501833054978771890026332579413893322906410997623237338321423991191589972336173229112860085411740076342732640130021210746697696229181191424035664233892840387679502256849582378484372881956483104959848450793272879491084106755255487557229461222835086532365030456364061855993997519211689177760171066556901908397319164738325549167180240652584823273480374025160172260113808707188318162195245880733452607077116839376292036951700126268764802695365114731115004595925157047646240421703534709951502456909526365993719953053473024697723891945002015975427465555525569333750471798019940120545907331584983190795185085856198222787642984401890137188023880112264024842851505955048103206381209938426191594113646001405123564091049087507197217335495768982428185593744458860875063603910711368826442506522853117682854774886859679603071962659976964776252076268916029811628108864890500440479433210005196240198131092670645082176385584788973872213160798025729470086228134198699048422307049064837514069308614636969062149664692132113759623590888020733282354027258856273391048280731939694216663959202037630847165673250116420554318316278800268035927774057749790012622571746311792473262310756195915050750729282349267306164538042919502510071952692721863552277584035898253824076725134849681551588793886139360187220343970419542302015760154570692726988094185369047242594834563948660374198695637576836115960811434852765974462067101034495204971408768462304198345877176734374071983800940753494738110350121035206514463889652585573862500322951683373248492047946295290165328916173487245842332541266531741805091898492577579753609452186421145917178780258060177506410720163556761927739688681277322030391430381450832314117817300170731187674415311830594653586596507843700010213125477444650560607993974488789213104857861240667400980847351597316826233151292166301233554537265966532350826416351551414378698187223797712673864970827463008505235505045243924434857184116423308626787500940684848894894118318479422298343760890672212400730305778596780572529672213951750720629277149774177525224763613756257792398802541976774559713890671993613412051000353443002562446475357877891100639291796260452370869082737235626647731579259138606250194585129463971173562476010299950105146873153217551428881486125746287365933307036964987891187356575728775690747680407328351881079350790778994983316385601282734058467292457231254630306275357043819002197026604115456647708696160158473683161581595631972345382284754884337461477794591977534870152633924803098868208427744594252019072446735133657728749382026274639590137727487896794674005662931940252185377643536397118258153324484542228726225994931749322667454620372129816964091624039438291030921349389232645211103502615903770907109113720063592581614999062517293075425917932626198397371793206743264836186609806292384527834107556271170654845675876825381609322763701732741626233110888808335244318713812890490565000051044943373282225687798968285734828816475396206856364689209575821495242464256095737414063444842326785918729415187361828048750012071023647145901897281223910809488081486961554094344941509441018709888997687081504094015275862193228705044751899493932473244041184683168347589849129874759976071833584313048019286202813251488160684924834114235733731858288950954603545038541724060550353436637576525750047152746168420892765136948403602477806563671426456656826702065979516761452756978007591088371551116060899707503136910194520377554228357474866555718019253667096038867419412433336862719493797713478503038761626280751368323632754418552593484097810200645164449148370515877478604775627440169005042897005913749158081540183167887871792083906918312079470563910891485780030964579645589024482145515875268775336442974934095074695533253151786008982413261615722536601433307987999830922442776271502147989075511430310475386062786660959050248501104757030546110893273612502428983517020607839154243766370717882382229712673765491027526992290204761871680378081337511990352332756117896565889578422585988699680151359613999895566325740939004441457560098860251939627287371025397236923734859452106739815440208389680094850158532147188715434812115609538326698090241768946401637531606179993605329744017829155595832770255619702402550480573126790430552806621782487630961533543953810842771142447277808204240244655687432408088491172296027425603176691820477094826553105951239972390510066477291791316443445422656935928953303802385788979649719848248107649905871770149873584386873263066209683665205846421280663074820208387480570043934497366717804753776973341431519587956322035115294817974590851641663718843504484989692085838672961582161907806366359549708456984621205326853898560353664454574529269306290091525548287108521188507099199017725647872940314659616074572071026058669446706361907333300294054015802598203411134181833590745881471213794002432325783156224390075497072963778265306493690734358490245092968659835522230919367249296663640157871508946154981187352699249941386945813556530271061759802186565659019256713296289744679496111136162925984736176812809078554730852935176785493201757208512238351331098869782985949156624426148115276337959244840666531293157505967370480556024577885399465556115007963548420620655015326560280084303680450936764239094145982315266398377545808082609917481175250157697394009630031387680888389903538681062165952937220561427061750687899518636198851148382455857419597909476522563671318496136165342648732928638028375899461789407668407787753206813620457630025083555569890823997999548136229497108629971449161337434995167728706667092762857750318348859346034536613738206909949113550879474722882466239443272598620917117974855658067507049076970243242606448862080032282827922533522166232606262411465450515929282257009518297585894794630685411579027349800249126685052091192102316354403932219586961750284702376798156408145205619958423033901312172457849387369383601044560852557054797916459436067172955305787452540116131695574610681299399819605519026872584142256992537259682276117080591103420273670150719444632862034238436783639809979830633337782621858711674103332768634676014799584403946788699925761388327583164011971413991950754178799687013479233865201943876107824894113936116706554324141210291067147358379685779865098174091434812595272579789214457768881914589491207707993771027610513395318142158357849075863265148041779995785121555588299599432401903005348059786507028511879919461013372342921482708804801836652151699461454507126107947700853063649852815965069525143893830723774927505796021491707493735589138826391479044528321063461546751235163405077794914381802294011589485966737930679926072488613564405516916696148731325748078673764532070467003905350436624678565041459469619675946090993216063958282206211656301254585512834171296847604979568571170273193588096503973320129264412777017683112548452993906030537890761700280867956380098199538832015506986872195244738351524382752324789020679107701981288635586086479313193249144232408843559679755271857207559235465872336731351629522489346463998310752635060798286091852477355360942646868936921489936440467682908331408788236606301075348898867991233796950337732208222052511016716230647342003927702423864370216727987787177978008810704766512782100746536440984112889547956356928930832408025309179791156847291007724962445266489522444349973402434452556730134529148401533551418792952443953995360339793624114405712354754200916131212541002925144678402488077747531285506011319616704409630058383965656691681489496587588580192951281735955673060235662299004222549279582729007261591970491262731931537167842374105625345544010654780401381834026281622133547157536546227537469071327116495890229801152210802485974077875847351985460518459965836753733960878717887183967017853662496004192847493615595857923254500320873082056992244791557007353254967356284766941083617223417842377426034675857488698183522171189315974154279498290810001786143293772864902849277170186497337275878961345379682347621084808953242802437945306296813832731928682345117094973790794007417382140167843624752727155448042137841233813018047492826499994054106248863733933812425826427799736844302774681584245451687214283526101182624703987037285463633836306621458251703027050803790521908643512017593007278533411868939057641045979730269434882386810121967790279984723121639757028560138733673202428177054578365923968982038460163062043208931311090606843001088369151854820895918760987422307933975205082011166822013515128220685132398819071436726448312132929606585783854227997108411676911641883572849630930448211951140455489895013607954607898561809463395085755205847878583326213353425077052608430465461214439683184482315989926192939973321833988219969989633776858665766174950822168474806171940025313367378985132584982855348578443947098786353914400142016182697974456597212169702281768841413919016447954753268175916171745893076004481795441400219449758620562676938697789898997898996324735801472674646445348632552270649286394216425818372340193348151722856846602271668577894520646165118769328017033438418921400813628834840340470044283252611762159584238049284039123810580135251494198367121214763901305814479905994184161808707226978263991219915471003446439199769871970623655244038351383932809974578679248570716655473053811660449488204253145724919676853658437639887525320473201406905552377900667242055415927325225513878507158240716490848557613451748395409300944999830910177774977989497276536443018677713574118338001249322794264053073689903936481059639392434907950211533981716662639092608002341768692602119154005391583866477082395224130167496590341806359960760484811369111302027128759344868444886570931945928193594639970065237192008945002263569887219053366951700289921393454915452387054841758971215347349372324262725709957151798846348884123740438606459883256302357911193526454931914676415737846726145867486592074473737396143945393299501110557899398987149220575784624749396875637630646173161828963520537366431689233783819514408954754786828723399396277951163686118013496904019823914188637469466097135875062873073560643326175941383274230690748645269988439744132955462667435395183001748441929099538196634963904452054095683683138768330393450242374667890141433423503615746849488358286400143157681906174000353084648530874107668244347683557035893055419627300195814346862231402760043242762254951236969393284128645614301828525869113803374140692878934950547939346540850577775778471057061809393763739867099790809108384578264376959575804019961605148536082621029763137419215488142790731369262863250643057121564600371688960860592728973069348020952354983607213342808753629227814304169552763986537584818850035915651142330873737437805056823292552560339222709969721818137088309322163641504025191315462529292292279316304228580396813487336828907714129889849349499086975316973153015765078383370916673184914777227981982449818248278679310466902176834826518695462991952156655992774669114561235350034198602007073178585047448316726001899293275746750331113460388950938864224605134603390143515096546395072245787288987089725187972491048006966764605665267994345931465293752998307374389371646308669307249321845353463782997908129802871494055658431283891745132132168368650573456936900865049743687627736127421439414996177081370856393328514633167077741759388332907693975238827598870622931139951382049341919470082465787089767675671047686248282451909524591578473645512026377272638006851687460868869313076195854386008113941792797916541027024628265899060576970942453610661293525031575723095316356728476869980845454780722701954479254833403675005863101092991805333438620584120475839143294124554551653285452902021700094508465391820162106925452406688548218981928350945785567589269760482309408072095087226128739876024883997870998267292595513987160226934216017233832980953570225184894697862327453585809256687041303603020216683901564235197430412261368956674158244267284601860774745325875807966952137224905574772596241413947004267011372804499149532028809676000196487238280625921623561653671857841057033157012249971432647274229588466283661449850222682246397165256985135888108260212603651417370696596445702837480678730154281032885226595971190058264441853170948516393636173515981969056592299477395712969093659155470922544392699780513398448969431274441119531358285311758244012747848372810283852374674542284156479006116701020808521300383347372433879165524059329454766377333425615766532622265681430039965427653535363069629058988165471581979701970067332323685311094443961431697980821181732459232491066412439724736591994410579525432485562311230240103332203307473095426797253080801574540749234097209103557246725769256655618867918854614102059380719036583650113185988688549161263918703875655336990412365930184462519772962923650622513334475028794648984272941275182975902393457041296078816739208688507789927494977231136116026717399720826046183860336352634384524778406506700869378076148250843637745954209680630702511369613132399136590621283813246707965775406704969118784869927352122354048915571242968807577361970877015167414549694815847328728331500700111972228103198093682659875005343133166982260402959483562183403653643977704554867188909206271223986723704307720705620576708568751384036739262897330013288350924716432321158778309423272287996279872319107485235673559383682748111888755657646353287958135493507335113374421836159437431245911529175715187049384017369924055674062589197285669980471413053693903141129697491216813993491277598343351345927810837829143760811214906656135168771699068177530562078195224246627979314579897481534970161575403603081830351804610657231367308182150052063016707575606371839793012024247159994590260816081547477182376411825994804648532849948550461566008688251877760158878500197376690955425081893740013876095735561717818480780215813256082894643000726025732193880063321816361648149762179612446772470956882073992826340192486321651486823100511187773277902000830045491045094706703550222644207218811068540319909511773025913059130250770091323572043815507565699748485778615863803592019351786549007477892399320507642102635207783024351561007416409782713680190493553776006128822878734650864115921892491380487979339925309693847785447405292106572311746610811727925195177154045637581337425184441503097000071180657926406480722258769694881889029354833140633192134047185200655893488930330452830078419483249040387629432950488824243550322006056361093143429987445713435350917151671647598302500154620013595752059778365331347664664229666302809652506613623232567898582175424703688110171241524251814273165291832077632597558178350399346973701279546342297308295132216107005648586396937196668404215638564896933945564367495073478597619498595762878601784305232295257987850048359643758448869629340755579755955350366981225767466933567884062536104585267909143904118920411109173184697332207955793797972892207220391393971552086254557395805235879759963474580061617158331503708509555846186317797456739722590591832474544577473683222144888354645193944928295049532048295944666293377580517136791786651540952535080543700967687279817741755796277307959796524129789809725585379936561772101211904557064036922891131457166268549366298707636067404523065667246354651009597096054854233061976939693183208217576281497001017060294394140789112880855351665146850373989835103114653494834953222971355705448412019650233583174577786746774255110614447637355735449513085469803954125612420516393057611067297916062212727447296760983272216440071247983038818264027843421702136843147067210789779327220864936635290580797546181698224250230607714304035879364586851041983022423750075666812614150892166269519938651205582187365570141267790202669894484127978398357207218215729525077262694091637122587231718814128384766533947046988629829023277094020112241641960074822713462489529527756452319315931686490555975756097129181236155638657579844966361018814360493611993709092143576752406356174734642497863725776251454503103920901808043965800263575803936349312623545125288351431421802659584219386982769661849249671377738400548694671747908849030001658309123780915532533267718985955750528052631771024642430039599487538062980200237625329938905809942731167263339313613312980362586040032584155225079982348892550689258567989601967452538678265963310647797706492284189476215729931470357612289347520379370912888977804866832426778401468893590573793013910841161564344672555576005471840021241477989630430535859701835858661835858130967845534550319518503714326834333861497935971375300402980347225391696143955347845281726979575490823967393476246819597580312896944298999405771152302978928981438982644971141906967302165525928522141650097053251174968462619080750100237356160014898931116144614638892103557357781493125054804372944980412167545196067534255436732977468797278517127908922200412842738564583450783513203819315757509335301839161434129459908389831025737828409504798928976852902024090109985786233888574089764567709344292765941429637059463632209605614690045369443545404585687241207228907644449498758923537977854385146919606560437755171067706496785549204590977230612017581494267261234256497982526441344496170646142040817040226397761160249698001383531049442698841340790134348112649422660448069617421077595227856988512160941140420275226509234965937834303328557713930715814108825832240313229738161675553048290920869911801375591496214532018990757657843789560679031331972385649118801955116598755239080224232116333685811823653503291987696295121800417274158141346297398358682880455565472988709192911923026027905263781264338630442018285048963432082062081151530228844710159230571975557351429367703879069044792291402584354833328706674221356944619912706249540275003065524756988939059735186990935926819777490709995209352493765199359997580884902775708188231684009436570584912978831435684494554333153584920320877284201073224510178862401292997734163769186810135011507921854017314013784390986335324720866435066651155652038019604391786446715854929936276804305231725043905803927743936695343983856391496774142381310971143592842241154506181564350990538711944847563621597771302825054173553079380830714375523019391044856782607662956758018269800243701876513046653679370271152489717590641062707548361251780970757165549405948841231573456867966339061286636196830437269484659586515211381520593462430192912110613089089053375141601546309789346417297488071981619338248217875417232184408401397171508949365084620945371078778584233661514647356637751696953972164415859585291411264217970759868183851859209752639314616227599963644964235359610741864880720320720956713407722167716547465830833744895828553148326867791640493202390694366308067682270882644693676272198599555596414081712991586391804011994515115245251564473284989864800010373622515551529145766581950784401696779867417778026660993206278032258407438456371522796253265579519029939748573421223386370489026219177793320171809922758898911488364177489252582680184928120089881470622189705333640979913544045196585968006080710853127960964998854949509763890679058015925661541408932477202801898345565207301513981390053016644994909684019192335146580477874099794059826370571640325993396804255769650609072591065930800732941579526263274895715527603483198134796598099358601796792145682111016019433590042198373438954417431770969294462701003687713354347654922508773251295909656915860045239456776662465860063660456711530467729284906952575567132474532913245787504271838658926188274148343403033223866648368916030934603256034450662739251354636541406775327704569613712377396623302575413375856524813273366080377865565882362327183570729482048861822883507173673997071229823191699331467697994285523209310654335106333823321889389843302783752713666898598329735236911606548025411044854224370490222163985060815255199188734830095705190763878448830402890846294454701445169014490684779809510997100908889839695546896224936704865674894018238246193454767053646699915497841395118887877717407121602199257116839835863035454022846405703357353808845101410966841389160590661845870085240884026792817571311397434673939581633979075377513776659924228001287490561087428682989075791066223527469370600042365635181094647050230452651047115573767861939014700538262461139261276806642771244309985169503334346072821660238666480413728282635848396782873148314455396353760738399630528484748672304417600305692009976232804047473020546635452675896546958995900002771440783882042811884885497686360690581811346004299422927836111609210334357499122368940210214145135253428803833835864672683273921089274827304515461658960089703260089847666425066493494269431844344862801317190648855672595331322390655650302080524366553694406259589925859240681683960386174123807253831107057339742917226747836447506046640222017916828123594194205326566691830368853225262996154215066299403550176030066802601419161945537934181706753157928591419163114780636239128027469502116493979341617472701872761315336375174095536383412145101754419146327009940519428035142860932426402511948912099208250683829482991476733625343312875366562713231968943810896342913284435610224730497796971408451318379244764852026303976733613207905451864511450082751305001512161813097506084184712142659278733459557366363795054841946539819014954267639425019615903530330743550739620547120683653425783525828955398540338264711580970850213416268936696265494112309652585361190906358880351698260164343465437077555746419835700158729888186155152320498469420140833910901577327124974768424056171208102020036412537770793766512853323021434733454439224883228338958693125671650190606910932870950848410429738325941969987360462836715341351134833425489534593255238487633548614647138408600904404216537064082576706012242552534029771756866998520977526711646835250154474360016503372038731666978364150607128406505232536874067730009769132067034628807560494517797656775051253898599814054654707501407979472299707511565942405012185032618608615472331802475702027435947133621199688934915704650528767779673243817367395812824225813047485838338449980199548121938801168857995589037552502783049505400256916785417835160724971174431303881171450835076236089960402445547026023933664599094054539320625601914367734182680431291255556360560330482854411120776178806183490952320615848124887565571168271920640137691152182043762885851392427407615555097146445079713490333073893758607181205666302901632753764394292040610084634375135126820249112444123101555863744113442015517208044220972116453330789814996522576560908201320216906894462151129308198712366786889670001103336179195655199936508182837524076235792454869389541656108247045860593632957677044039091650480599839431252061544159326094370141814416025394446540348141134155002588983225103984858691676313228062587399654351576040014344923595125730405995944458697994345702135567050522482308258235236843758114064338442661021883297215025944538597342981851829409764452969996085761182295513074264396096120531594508657964086863742484820608913055010017397542242484495041150498404936249794418701202754288082324626585600342325173965876185670195874158597071389603973867028736969484723232555901405188871881938441973320819939376564537268797278474897394960183266466155185386256024769657511689559329493519532210313587230391903018122597150922981692140200039207613967394319924185761389119099082808706339931741673218183218266232344901095826187221869598944947441328399855786594969942951448779683137470490458455660976028146101884774925226334676850134380751474890482656880305280615548424979046893278686690781256182474648230590193889399720807834628158159943531546277750709901707568139884350897161326190671356322958185729912969004720289303804789479005664095078675983875788550073226281419845149777010036980416645850986369533263255144968680238562412669433890050221039740595070349500840044099241140149017403342244425205347869453757355999497149503237958243302128143368784302756236879825747278218296702597342350081279281357429496507979300472706811080686434094791107027252869780341207410853982542533819910727780488999827650892893869074267614906000692523298336128790545586877838275852920680968642145419649166893368192902737898702035978628816688052284791484004938375987564180737004595548494310191815076798274225178922193969983437252354286298083242367856387949954368184123489404365086443644437353849080269227571642569491286690786364763256749535935987116218445762426340404525901429735275784285307095936677881028501021807703980350013938598601301582881371186127641936569721636218611437241399441360954308831450438714670488335456781074057354448503936260558783580109560341692737123108670704858589919288949606959551705794577180236206615457185855109765262356657771302093906788546615490527816795356796399326773602094356168649508738933120811763355127976981838316638368563638423198288947140713820790777784875029495807423351667416077529153186049918182758882835003341038955129685029949321284836381923737132928451115403489838679901434562481992423739376050132066346331650186854179844260448710906652367216867274012232474926561625043106000743776134276483210492342657759335114293382855344338949386260090161862870692877186084072284980960340987450836532674845309722475860270731351768326035747733054377331742712632724466127058004696675573021174212338771434526684487661268891589683571240212310529176748172009808789868881009360838823062908143801483371084295768074420365040427687399113201924138363322940798738783708357276795509960996563275213488688355757014949531559741067897552724034229703609822985895634198522256492634579409143633285206126122103225761175108746831192148524199050027515270950201817237637001694944074825853245582525081088816219557923279328542124615795298905966276196962223283147639952087792860420799886354340696409759782318851637003305082130871304513042020347988795148366064809331317975904918126292949167018714424669387924963802476162467661997997692217770183972015140335452742123190136115083451130142796564863581677889908335672873005400110659050417654104542821780423565470610643620479738566235530644871347413881715834579133190958422585447477886028526950590168771649191554449470387583590163090288774989485681696928898132142244116563139690196382804348976513633567075926509814334357898918749433735256181355319396329421482716903856444504941819728560445802382898977893846558741982245559503898685607932952275414145479494150061696014659173765049638308604342781232232945533654320123351957845966116756683134072407805372620176655776844527277399895298711225940354136690481939851232764529379943501215921061902931940305836647171476922232931785050532496364597090873022900269666802845695412451828351598168534667377543407949988188939771950477399246862327148170070715536077883002503914302517674450430892817455647319250280206130389880420203145272564163839458145138113651423319958669931973466207880311715934371659509863933514112745977631623929731963932865504323690975764115066525903294743127672268647299457065799608831061619406488185325032330660220271775496350923584877521657966049451408601536099309336807439722575717948662122882285773132480728277641473503322396183529060954325505074785418954396181285345555387889182864480042480923486729999072353184630989871350903178423074912604938642334356411507855302085534317246791527598520342938424714731182323616653701527902632578735601696967668166420622479646170038395517670807143625088224636067023845382110944740862113193393742373034816993284959639862668738647027251558779548609876496062524753452194308266470398358232618193535534060425212737968193767413515075410189695016102564010558945727531156255970319781285142992910857437213003014944363834454156777918140113876440068751604734141925147068419117461109341300850554665236132520068970818668694299823630970418902588810160404014543011678613783022938451863432285605172639828612175565113778179047125230032194513045988611205799404932013006872520729543670324339682031158796474592009246659355565310762782148780499405239012913430674704492509004824406076830188149565875134529384769797561333912160483696303191056188621942734479715626252970168281728085554961312856917911713407410969476314932271687949430376191111103697074799063411865342379001066071574091295445257761057846330676005790256409224527972300804361652996444107448377175365671198118142010839744486742486516650502089300475761898714344083473852150943653569287083502139346524151545436065517018746829326336494061262202096574007738647469640206240156289659654360471062215993233485417844192327346920524693097322565341503169404411689379344210758298365974057996142849091831557768492716711913979097825474928206771009039038694609335584212454449094890641340764322549697395815032500749760125909160010983372298200437026660146202773519017314084122917775451282014815170028012796090128971932429718082777099073945872390874327023603594045940992913747981331639722782647546293458373966815748926784210413094257949826303026637469730059098401262929969092725106555685383209888896749362435444399334129989804620988300939486135565698187168373216044889709016204642121489889746707388117393232369932972328803158709375703993584216650113200523061302671966578705547995974093215026143602909078417491838307931313562197806942615066945630893567867504159398184226365802517514659357386098739612648993573280167685645671121997659070652473400775217699451752101407364043046665615977040101477253793753154122827815696765784374227018148571819252819691069942610303011838945102870967502808777281632886333387002521089321594097898295664239347701849791226151411636397136757736544729539117166308434205193911352948182913863405197720911733199851259267021254452598220463204528129988983366374637100149374104498318676460410674003851701163240512232206050994595490561622043710438972140591594615590495316211700025799497480951608274772389165417841527099780044407466824954674712056455728169099062813123995595886723494589198561914852271826258868268004295443888837903099955436823431468249385233811897826577643305178307909828445398573449465776982337236945210905365803633357726509857634812732944393956779132192173666337566207736929727142455647447074900162654621694844952501311852893423391804849029284831184725405579887592908271357077654514265493714032126768587945709452283848877265056803221571281857771496526337992267176102976542252656987706219753000695739669478981266364661709581676850200544200438503803103976597126040856518161968318529851722195224970958519136469954172374800464764374669778710614337935427324623218071330322748152130700605894299917093869225909886973112329854357471438414488445824620873288659274218456835734384089810025644669935555850603760756285500287220240132514806855420245332647117985138122129760880499022386057874093953465973458161658607303156583646115051834541428647252522914636655026142211350593328150747408649150185501690521122263757808357327683357263360075686274979754158563685456597761236483306302461478948124472097121018584085084710336105889395626250466391765837863366699456252089027902725970139680480196320067766206270739098655816620310604126853627178661265939800388491690855628143995283699111830527498457787210201112110713528231605910157820801693904792245344683054546571417287181306239531591580685728710987058005507803514512301163225755035746202171012730309353986045295339301188364382550080912453428978602988424661402394274331340074516411643894135185902461042952068571041307135543974591979264246666634590768930357580408128561716382436585432827153420496219167541813285996483330628258422265228958329816011828591149597510181095458261910112816546757319888677819680516657621387159514017609026118814384291546592470200859192938827744118442889202261017503396275252277364362169445773800454518753183282085051529450314064249539142695921748234736263143792625060616388461879960543221301887818914585773055760572810689308798617330630604326002136725168517279881518573046735956955069198013089451247385804745309556742091250349217636991028292868316148052947769451531410495806512865951402403278089768515016728691633067493302824267116483044217839094980486102884601102373363786737211887048025690886659994934213136331217470977875436234883771590564838130809391127712914644437749472262753591934047571264083886055070459951419923886535354043102354330715609212891812472795883238640608382583101970389485503847704922872581190402720929488941079327320255062607243846664897097177442002344149384164850827263847078101834567133615282022500296422425354096345470561815367607691235193347213351175207415642155133013285297967140985228876184276559976884054100785545912212043968081646292354714170475079915868387080731413335455596177773216708169747444581642895464683058224758761978621047863573690054175319237075296043900960113550706411323365513127041471555333576432921753181340976058860916436827840704210401789138159782222199672941367426156746940082943532788831632461123307723481854907789578414562547356568368109168401093485879698918260264215782904262326796009280838238659813128578800371142028119944288749409358596202185201354201776459082524661700097741355831407411212783627641121662470703130602930758370876457104752553341121041188810180747332727342092649160683671600908491138223201024911594804220837684545208874012152996273216813008307719650353270525233632390925074537758425420495389006901623088306761370052018831074298544322830384950408168962036238720712374649161251472415300584153872145537469626319222752992901338518608557844300828739139953596533144977915788614982641376734788293600333421628903042529386709562650766176518689526790775035558390436950711343202204187417196261149270013145781641057306603560296506308145559108327186836939940579908650154490385433281573622681842750262885282992085824283082325207248234288593061640349682513074911285738894806608645450056407034751497392959482512031390684312951737458030487706829969243029279145035847969892464062298077040322433888285883019821382025425342670414966387656727523158431727840976004284930104159569537767652456866796077320545547196258926291476425001557541218446671988614713470180653587473896408947362068855677041611232710724795777418968839104963684074902726831837523764926058992079201582527501999535274396271941248247265113850231472812568601524213225500250166309048558339351434150326891882470718680772206297947973198635366913871604940073250416730045411893786739598055692493686578137129196939874259898447796420858687982737426152724664582113789095080498204941879400240513464855959597989119812285714454768803783554146766591534753099182259644936184432793931006519131889167781727969741700468504720113334550889469508409358352941669603995095560648753848002578107842610492492857336907744538503299089572162323640069254755035898979326987361654607854105661058067570078221735390295892119764207384328157964538193158480815520287364110125468118597175142042316480693110543980062882154491756097817727432979191872953206438531724917285670230786240149011471187995275664858422466964198297934240823738921076397335020215590160443098658101468570739369507416038757840294606514606702525528502945776125839096819475913794137237164722831972115890025133503013375261803982145419667250456548044565818744417849389808536145338260924852500412095241392172230615602807003552458392277772825019225664056715538583425798284116828412517489420987495434686926225630887406849615445792819208410001388748790405197768318094993311994301521144441833733773944029107898801717004460888406122110855779577234857202415512738662357026560234136242560531036548921646621897362805132710328367408662988277640377946891094429210384330720255978653552070658338330557238403547214175572260679105772483445237443795567094335772426427224966008634807409322703556716341567181341541506175530825380035480064269137559165506470412144265772998552201876959581191336055995748778665392662644822930273373853664107585310949259392419568650576136564338593034744295274149270611224371217880336236828809331364782776058485457950139834795552744722414415053365636683877561982889316197806908945824761945927264819530790656304920506564146302381968308296127192387692043027909017444820218756601361254195863589298422613448306025186748225839680028163152244261334609696043105930328061532744071565763002480570865091244297820925065615978996998537711683998575247140750428039711245329400299174230784870175222861603984327294963457294781583515531164221395592518444645904751894904328331111372318973232138285943976689716511527841167486917602366256761679924700612195745835519212382728790580989355560290411720742170097776391712293910909004541105630902514324524815797988968748353157806138736538529769023264817205285293995353944780516362977362769382153860262827500879863689133747063657675193089165531169715379389409443409645821114927552298874448514896970529376679931630398360696827555679035622346635957870324390309349388155723434239934140646919318714137261594862498079955150496785555069732377013793504015756494345252755604909399915766309501400561246454963280555416431577400798043827466402520184175595108952613152749109084347870290657251522359453588326367123810227182493379072416531087191632182464036507641443432151272944764621621529926419727320090415428163259362366960145675700799810002603296539425962666115212911727352092540479024699343544214770301449123370341876269499983701754140722067496922611750724607604761114538627461157466811515689305201111928645583012067712643031315101391595109598595785242607752763274934119011289179025128541610271285524978140129171992081150490090020226386552235091304830242738663363915825323221236360032356920114373710664654523061904786521435286753715555174785463566801044307823495511024622793051706171143416832184205577143544534356464502072812899915824611961055821015510688083889471656379080934835518573007473162906337438734389731356022808734269126120304514929135005248408766168981795637447298181419536310390975801397320566256201754496292672023551637944712638213029361228557240389599494034116036636419617018053574203353746732727616461915232439797283426384789167705055200272349932129399914694253669721787844759298017010153122645075195333053976361381128636968721866631365528505116289060186915684163999032123851300656523285721625149731328524102226937942846327291494077369634178632087594688892456440781380349620691754383745033090980786678884536319990642470383518242639368764487367184231313436214052044179647293366820380127497865539147132018196427094987539297366976386817359632216641444931281518598406145601513824681018907937172546167362109492135953470006274605302065332640724684949044965119649001605456794456585449032518306239147147879955384418452057069170722657744101219319313568295982844581084458179638014164926503428157274758673304734488861253844321392417741430257659123846354503637542894767647334615237981665823227865112873894216489750894834223718477065080726401138167354095853238677715532402346446101634966536429242772898976923841635475826434870248564542039233446258596754542165664685784037718663170455439427674045228280190348793015060041326950618273979439307704389780900172713152578570334361431084721081792607883825356047165693514098354623351084482799270154811896399582669112044819205998321638192948615453761686325018968850361354840709967366897294639785736972374812990558776287097935463351229205573877356528359554267503057103391175714132474315042927674952769020045441925363001170909174249068921729750394039094405882419818900045830207533399553066059068017459451085939521788649289229689373280937334971942199291433049543730153105854081896304662384412155646886550278715396140801975320797365627545122259458044982588542506152561507056052638755773621259254946237751908364084017704895353505765737815242921662381319243998390559638829899701647114033160280299879680343104834056996025826928272019957171391641413922351551522935653769491442417418285718276618764819906794476104415044905684551982787277116972982264075092335583399219138901990927806037517185544039526301434422251715419733156296073777340171070376138951908388989735244598088094677069605674689505995622320923412805142267989397836214894376956223619432121077661066816934256677273504762650891234739681431086669906089586643724824410422428546366022736652594845317928788893668525204713322797739893350848540192891661762411088432385909658538938358142749144349786912378965313443710893793944049397810337203266591572402402279738475112286440468710898437584350881332817867512119435030029305033755493152670591877400212964738353109399166019548605431550628494673180775946541690732910919597039038886542023687251768887406555405493656903419847303818345205236227461032958329269560070489279687741688114555603148572087858770535254178668385806486188307661878012630508272803844099102925271502310770391764788455602694700153736044570817402892558941325595503546040789657626319818148051690910459648258982554551901366009266584717744176393780819262370035670847781485745175606501581472347128323143297428224883985664260007583783992616363501400297548740079223254843716467806733510275414079544119136186137081965381959828362099730641625376840400482732580750666902620674083657935016159460074144794368511463934672691023073773923127064738489309022465467753687009699195574357660153653762429128979910476473725648500252620140498587879353778739099974242044671298900305109451087950724451036579469703378564148168957022271886048224276122996511770451954988257746334324544889348671268851396601990735661560182379116983928836923286223505880418461352811975007364832482588707176882347639957593002075652365568398797118367955054522208099672565318129030094065501646896941253367643553052444811840752879375787976398030237790514308765834344339923298637360849737269427204305578239170382163628557645999923616858819256002783460150586444734680136233234679085316441509867833403545890825914896691148508742645991881475743018629831881423600719274740740279049178210083379488460658817148714619667083414648627738058228730031715247295846352901807222997857139730154853783105422781937433982622348857890883320365242655697121239559131883673327932287741397096868552842519915375360111749055081061544397192202660981680277039959287551351696438296724592189349225789588789309543163676658215014108353313223974313324289658662193483129966110139968901682699664943963741468503065296719636324519389615096553959786697631520279224359399114593053604488560022521456855790687345226997185899624355589065023897080749381278094704456364397788906748261337709511909360510986822875888409762097490504863814002086929843112410268277077336881993111546047299936077666889023350586625454020787369915007742508594690249772866912106193315052037838692039456032622508196927724184763024012102285523675039141368321477870783796271382956388289442147262858676944292429371975397543901191685353256192111457566298633247934681970828762144440993836589832427481885877973437433996258269526696818069217638188038800718328838915419309768417003184478454669883281510348281656306924502275699707428057253181747736585332055857655551710587783020506599611844830356186113539235224371467914153088220567376273665775469000543468408440854877504479321309797149213285262487139022219131963065806920714541596376133140118980828498854558173340564044259218560229993768285414912160088981165197752190191754891674154047090730292152534441863208161438033315011216262896451611994949682773231410686726536723934509409017638852291181327934167959384781246403612625720123087803016251114643551961025587071840794903707368966368700450837045155928901225114488352063207805110203665017939401246315573301833056708827138897295592484689883357133365899343963954219398980645508616131291716295349674779483175449619628478708025067319370347514723300818067440313786716914481545936284077590671687377155337034260060097321852382284136530337817977231101880878989816232234331325660767655929079115356405007233827014168606765626198351766304691388129012759919629939573857758590287841248788331656163047233579067857043296337522780624672239918388130070379963405704400813718933867149240645016471032585170022389940816425843361225774764074154084206164931959691139408074793834610890546127391208126089181298710874545227035354117162564760120698495300090008936487623678160897434116508832961647685719349561320682320214301258658692560045261844465378494066923719240368503674753769725464702686049805208288936924709525179035473598478193756086549481217958382724814605588657847643251999974398588511008152560848198560539938269229643259551021991352310521398963475122816351537202078761672323351564483066863968308532742396150638306477092865808047304313467300052289254936602675779838800832560152129105756524720014957927535053693236239958577317005587760764270039461803680374658712290325081322394206513371058601008546332867113377902758490418435471416283162499571172934904102023664470166301103593572114536228150087101740843052816144148233880551014786037514863429842393433197950525873945955730701257797944104669899706783699272641520092285311511792444383322364008850700797635471802627773083792720466435477225855800748090332328823910918977824266521447573825949006311859094365492674398315222770732393426165603461424958845746635536386761511997057710117718693995795127077326967488071392491884464313130342279257951640879286247335691678980289876090896032332024716542561714708744377980003829907979823074907435303129587022844648038017533787451930147786577412165683689771367322654771058424328495662471400892510098079984651471581834092093269016927850269726383323720791284706423030926823379511962975598146215176425087157316405219144665331383073332466228698530559432578477950849168361110060723946680651708432441918506028497114320978215572392888323517074242800481182518701453234620826913020986294509911072664666951026892563821991384500911036816589016404051001287664509360433778253819967562468193021821980368902417275890459790628158933207213502016444906163314315756161840904021432360663984329627313087564776561450612564238673266234722296229067667626852643676076473423042148587708432473296466460360674021240222857159186267686504162611339949625367800502422665051796509076384115435752430635711131139664070857523281544300323121330372974756364682695766347216310941819215697937485669070216383983980641010052312019194203312541561775111528117801605673537387936240076791397982988501163352233677043102152556738366887513154646966874189817163260966170018003666148876539931230887379840013074030740720003358802238047863219559829118422432094427953782065905943843692974557878903447984445770661234022374294086188122089939065301407551151814421023847950548817618081690153007229545079712744849980790630969163803150021573038406011997615184949085298828711497098828236003663979999999096104398880960353325890464453864912689026423455494912075176028714985316926005474725736632166826490939089893223045849798177593609682858689351162761901450438247296984709969762678450061050402162836173492155579354908211627522045353555258375780715000744712538315613029625359008353289143134417782894802087361998065038352455610601369342558117199565219599804493860466960632128963360201868186647685134928284163682763681628545027297052063407765038489698203478100256995137921537528219301597253970161993785969148665496376412814961332740078885081863374067793735683116009332955839491421829830156239532463298427050657206680847489912635185876238504827880792783232284470517534288345686131207880561193673704872415323429094233832430908559598576473001633347857864555650605879644210005657988319614410983999028700780434212337580889894076518370356716977472134306171522304835752115859722839979389487715099766648783032328490948160883178475659963923772756945832667924036720580676982866579684496597992350068340431442871100064441047280037346831570204882430574186282491407384842329183766614902486638705967750994232485166590493021679105365400210349276617897599239196899096810857610075239339569778085617130907808219900165048107376293115870840041872225017604831992102871588993012607611996008899572028941301488340761799695578712333942550488747859426248159640229567053194242090983038204763477876310074493071777660777029406381866673153997987436117231762568413702351229370923172722447891953111496331633172649968631950086252999944246084673243076734129473366272827359217350800609518787655389924401882022089744061922788942922910521642672977960396889078856592681321273469160487572559704176653481843073608666940511808038775171913522508546898742997848055848392955141114333767987944994130711278321367887845107372932604697681654973549030605251868715582810514395216994186236303101160188089311646980087349290714177492718022393769863540999698973410782353577631765180813190097424483940473876695577040084197832366506067224190225530211674290660014247319109814744639283120337855913999984720892701248499047361567095034451220884962382389457982712600797510789442469158694035721173922921811922458219880957774354183037362429000077763433408780447928530554748054823093243412555518223319844832225705878372400195117771805083210012107617168258092711295070428714109631706376098701367460751778233426037300491701739199512016181849302996341218975999254531231424876970911849164706947701208988018667037635776687377869743698889994081001131268358772364182324665654057915078122991190945977855031965790775950922256324618579105038665434242418885046524688222606539271691410749670697421078949990450154115475987750555393777888212016885514652970814066612162278907301776017672086486855852688740574227657440683926032374123091927211280654114822194189222941057213174903983093464216277487669420030183299894258358386990811284339046519534626210673492187689367454104558044571442291907682765036182818729356283723151145618908130771421620454689437178629987316255463463172889311626860921656455923957773764901806576663183978735370881550652373225720867534479513916337472773585345403561425794153613782126361539761019338520373166820715822134757301965250457301368664535591258502220268128014087910362354027623335084938278373011995869424015543570034558089018888435338271849824712969098611219635194483026199945970005761048335827690671282827229222077897050594444418156405542924813644591666143619575653137217554950295372850165492724340369517995051332892220319060812767367807217960813688935217189384705535115761538733599548761266844236830625667242719138118653211159773122149739170925826320358760549887517814166837887584938795298232894590170142852952881662486232025379864425743367356956169518873424454781404003848887568351659130526566579737237800784602291967960771347719449956733970674435255153476747580636644567374198867012963041434210479901053207989970822975515129390170674085611443235780109893320205629954490551425035660833608555496604746720294104056067682665654660648121277872856939901079117798640411334121874229672397832411830830610818531471469114545052163109343887562327422243966680200887967259538249769821167961311951534286840932155303394392410542836772775119054004945577043119824551588874943892180037554788187088974676715300575898516452436969427726208566329352442915433916223252407602298104000498189777060751783277149850437192348723607298165080262643250524188387960255055391445634359490487634916905631567644119132297517690124716199297979590172928114304295123634793428169904208981074411518176696987872698676228252550350795714622066879361315305668865764623675593719120821698039942050079690148267848740371954982223337229087044002212074234009524656221981866025411316127353290455179641758936592839680604534585337111618395911996769626294697937349758284045517853228893229369576917863183591599911244558119703024776612493834922598460100323657405340516799311820890191826338671368507415262859648189418129487721189330433012831154457987615630879308142906139405046271046992545668666195185757252097690000011614015837466967886108214405555893636410093072485259355589817506841243427430828532922550049123323653705870025980982176061394342090151770715685147923321315644762241449853192516030518291995006167010616554019702128455337006142220438617865181424502667496017595716289760840204921593068655347015471029464813015182203319955280944708838221567441725240836643743771225402829035565938341554288206992526215579758435881415928307262839930850785815369202982742022321174962557055853552665996825387758216931509358890504025413883152472743979063380213049227333928984320533478375058936670510449644729617636089941250910999626537150581736355692608276538012414641326816719995512155823804307617963908669131855476700712558278557150581596085735040242833636212670592315305190890154341987566204102282008203776998946353963478752684598496998632631493318687281782408390001557083686056905157827000021794376459552781494233295649151137325521768533444665292565940091309584692066391249433827949254868246217114821477046135278690326394389661771169758280890412628864724597342893504317197007883526592367872693759783490972344177067945549002600817383505663149446516372918875264827327450734828390795728194116742452891185915303299764658657978526731981180264426982714565273156282037728821527269153724954323084496831238539878161422484247469253193278890798106297203691896172613325315878109345113779393738285314347577551525946115395725816379844969184580764568313122939364347114896539143035127501463619687296683071706469643035135559127281994866248398739858686266169375863390701475698676527262863430862190978826314549673324672943159007581881521350269825777379663438933561545443352334712218668517923692352599347954200036949378419657503941579154757510864011846391923004517992137836977042352829699894604181658977431821286123464016136298884428476528022574791793292059697687776349137851115766345451455802309748128349994107701973127324807968576042227556097184808520911755002008217115864941021077144410783875911830016678789713251308139020299730049383299772933778640197908971788212180486984017132637484633508457552055287747751283236521955706734966132534285128172086919970233222007517403258927019681342379308552194346058390250763770351255505026247123177710893229565723247685789779181889085702822771225718762848626804414816739435536656819145228990882267319380834108181960506878633299200002412613006368259361071280421600641553619116240455492877154358063958240865020498449910750148419298358156514261774828770492627386099431695951824976931223952785002440016223480317420851677785124591399188327887104297208251569242145029023325742211983226660954531835519881000988146835969771191823905886571604707699082935524861379754008702129370179978851704838304441366015539821984318872186387977893377473667519593251167877976910847905877094711996382854600709502527709667408710039791339453676750774436171648074032247936579876711814333573998651157874679376225794659263057403621777082702648610062995101299778187041753878537809238717639498861211956143039649780215905982159830687852562137636455970405348459072763934996808314386341690332205006701208146976164372898270640424037576950515640968891565371355401995392979369148610027871369774410903067256325977559051573339015355570769432027007615537075726166918809214132098991495195555634999163388387213408288917555308950442862720341953402147775398935555506212246149968767918378267468011825065719016394414938631169447462386414078044552498457720807361405578243637473285404164965487087647739894459615829927573419857136118909766482463164218657665864706569297973467657408987471946809028154726414820922534285343443290088547985343366537257338741502641278330797159383914241507487654006533860427906616694507894784530715494144240637465551463729619887781862109020630111827054992587710727550211817835346447331361626018045254254490433031703940311208387048976453722390267799003866361686376439592989523874627396007293029734007643327097854128979387613216028266515075677354133428142726847411063551921343668648152698838135698250465013092229739288766473940067363122928929080240283781893778149780539595808916648048683621462838145217715351390249251727863026795153062080058252476559449144017770875069361667243548667668233525307996314981940648352172408993079469690507934157996165356984237098468553018663621356761717886517298221686592848857656323613223821719583646395315220452588405900964331371376164025127110947890293001104195474802705424099621484943751623487746619226470524927054639125896742771481038038424221393731660408397001904525516383260752770539300701425552792745629723683577161233961157679333216028926137362407571523171973260709839450268470071775964479948815678943278014412552294023793662056784170401827219759361217556785361562387485751484768773524221206860018341208327864540861647957516154735321769462610783020381051145439656286037996327034032792581517767055308745510654033818533244919410120428326651947236997594092547182469205306938934093469478218190538424558520790076258297163353638929076496952634396392691415142278446744454030436782092325145010051312069325164653267708151744928849883374332744077490658276262193008473850576840140453427320693960405849294635077715429694888957581377879114060449599980672581750438763345635166372831340987937382121257122254245850802440780673760243621711695457523671377434425105591703143300312823459892031848771724660408030017094189131147216176143973138275539778165880575271646105243639742692818286548802636261906494906753016685429351076898315685066634551645456469970465912013867573931664993840399927226975803352123483321641704802516588836437037201615439645244887100721038662262634223780078661386572199561859472530251090251256018902009290465255541366253653663668480346791752749436117864930324756536653778952116881967812601221100842638114040924283678906296601106854756128710581656747904391250040341826897761492769388049258924795699456986124360854218160387875440168046014183017302293660471621764097033189415303570067305628288418177690592236030312791058194705480103382952059295680342690336760649062634665862440999679235452757104213690402130863055931720340248938563565952706246615288348172371149114079466719114901795027322171847917263127976685256373025402655227522520332866951543534542164793515525620385845521220056745468858521828163086644662835706401675365686810866618622296630959623803931523749784311228567918525743967529034560502599859401478864605483838418822056536216879435692857715574686282524986060735063229135114963748497357542526601137820313616035548392608825217877335638186356497339584320654871009564048423086811166078688698444558835749284767266425499543072509011015751756689748662145372801193626833572123454342016606123296668712713913212438433507804610797779628468464712176759435990174617032813602116866992211228503643189720442535691039821035176748310186476515019848647007238002304803551515480360907123480800570330607000132333284925703932701584847857168615205983020225628622644998721231330039476864398387491359975090169928010811995198036063613576982814679170501949847447548855202850910968565283301690204650773346238457919079544980389404814535230254515582473806859370770757688260561187861283276976336857872237931919204193379682127913699095572290723977357125141895330382440159387385661297538202743012776249828796147061029412032506913467659621690550582351665827124124375178838103303396680679510162269694457332844618725314286244631495154880211425032469227812062512785394903855808527308576885198306906503969395654329891903924949330890645352202571949917802180815585993101323455279012838493924449494512657526507100334305711213632893194620135203910376665096693025616699394877850853642388070076495430501892309745248870596371539479564674312839596198950456558006624395240580534595052859001506339021908678893474189126892385465460273131552430908565247498596071103233586551221518959430967122981832143663526890342018110444035309698338496630556756790350306356534484976910405602523278556366942800922029084644064207185763614336869091086811849948237038779398379268300249545233961493776744244038517228113341007321633046184286705670685477978534616743624612872235447493764782043653145224098530518472631283308053526546356508546559918517140252729433364168356059548498899005978132699556634844044407158040507172491220089519595674453387868279975883179562356391713736730064430357741022422928804936259276635265322523471274605890984407596719936465788662426301225553782205185554925092976964411516626116351300524830072436123487492401913946060137535994939033298892530854491829782022835181043500158023168398559130905497620582520016241004346774477364318025511982107999155472517230888169066579822353929665644133737141398974813151181918351949556172232645385810976105575194433072077102149508105882356703104835339031816473038631112501796301893331718173032828003578711600243707198354737262499175407189404816378642984916788868622563736771567245549244888135009030846488743481472507766366478724536597679829865557141055705502506314937433416274782669406997027089867491808569829988408323874053813937583702844236364278086521057770463961074333210589041815199984021375006057901623750585196297272817763391131259339485390892245910213983506419344557248340586216951932100041366007138610398129657272982932185098102060885037219997136622185059358742724814806884609039585326351767770073424630509826413328808476171690787541567075380216295883541747167722291735680193870320252474690843956303049137182617669238602279669213539269030715796839481077428505417274951750670100545780996573425442823124996557872067986431822375970776045669918481293166686365159448334789682265133399872370018017637694124167598563838431011275652441945835285465588793935023198946786887952113589251119369751455298984922975062974336337988984109452540612327576215871229919443231293241431045338722884869756292226522323931142900285663822622642850875711984073060705467231370692665636001771134665282495657248604190714149037001360269776589410498638315053074012492843797888402214736117271367647332423405858601616901491361222930294190505501844338309203106271670277244699646792872744223184125655019143717115966531420794194707344998144754647389753690239948518515187405361936518030381164286853034670164956075917876534201066093312349981514321592080099774384206409489127174085522444303745378466626041394010560123249646894504598085472506728870393674659007582987783020945706746509483996827550629923591282715165759902180855753779295961269327976341059215901165148377639605446850928663035250970016653825564426004643321047822889888729034461585510105466272983000363998179446274067178252122997307894167239829614049320566850293864577427253121658652663499091850119672211704159484252223754102713856942643391519643312921171476549680059385399481732224518460987289241794008839440204775209201594761025005588806548734045793782079531403274639521087863468227125941292687608266680814833610961239171617783591860395790764278633973624571450317506114181029635038841431260632800058045540833288859715764646565814030520532282634424378930534403954088067698280197929789731458059516076278058227064737817422075082852653160446734995840070951821009300630073997371084589472456550990972760221758435753425906304079382679543357253106784652917705280733384933041606017497632439312916682269466905367543026802984012593960358422211751350222241027768086945340732916861200579591315316720878542492710631627062793660951216663636669976846408737388724804661104224120446733816484211080174789242490043566757601637183088792822429646120588616164259704622528961039763085806505353771019570516040170559027760461695041796149753758037223954564732147450160508874912151995455945037475832278447100844705561870827696737340847396954691541476486480750819780318208668723312979589107961513994747386003066471193496521430280156298653748202575620511334016219212331753506379658772942800746012448307089633681503814861519235588856930172874020604925669241062400231362961170429750696351644532654298405848096641158932374354221918078657462979717701139477817883941206686992447375834571460424812943726405414343850668031312195390455372307039735208654677488775687019628751389563513578538780236572464265292078449797437250482432087178912260023902750840843779849877245170930687642676667646856801167719571241247986773687787749950299182307591301164710063618873200815482899242526722534717327463220432418442254556774259165796072284660114893791105812448980102288695669613629375167105976381254395733414670772098155929254472978413528802188825301116916744631021458689408751896114441271219489925692623996042385334662606689771776687059274148469039676539356210702864009504979500305143768326561886818986707936767575456560746487471219423371910124969318905062024770693770378950957257295035508384235487232856461429090754038872549603786263032723144208585991797885793182156493797561154426811246982458617389769195768868499220825874194692279012761921385587852530530700621656581695381261318944229996055878612327127150798329001953084101359854963861420703427057588098600609975034169468175069666390533441078094191583105286733718399310319428471462653201432208505606443231692228505047353112992349520708761862420564231174029105900974322780706081110993095712188207558741911860519195604779368393781438994627812086679499397792628412675605959700676011776275981638900982201685460138316369129383049533257030174494639625855697501726985376784621012142054286018950824823088262992148036285790256641411510684935398579368401333500068329210977252017162533698615813504735530526560015708582545861556102750616306678278776759404209353369112825103819374574781326926384765879176664829306606509832773707493952543648566163339629749414056018145044878136476440654945702302118833800296073500527473953577932114235824922626601394369446001439908224336158205337292643185759654401334151702785011556862865946714297606607246802990485054719702438006528335235325555930160549125493271281445780963923853411575921613148656835211907061550014806579970490452391982315766066852256724736313092960598005167753227460466267685260729779185902324497982015995410467810216954433643763596301816766060647294347158536713929574334639422388061411691048550960030293760886267758482711956419947096135383031039453558158083423817682850806231602009167310072723773364881215812296175299137964925778259453089929906185885428940824579502232541603367379241643003251940036678921801143932734327194288991016038565409423152448285698507712461948164125580867232848860593748815548665662394820261334440170011692754805383554589659261966712547243301822603854555393904989326310411763422463632808186151628428884249591704588344392289626304038647847501683085669695596876351795656811179120523115629953994598538409654865544533890727564300306476489084078540990404253367152069067062781963828189298830117360897667876997009634758209074994611860736608164650047257033832199340755353951612604179996795494695333621656734598963907159145847827803279110417674391113459479810995726936023610702705320159766932349172219495747029547958151269986531270499182116737924501220297063611765018204693553004646118359625396496959195933165306209692763344749989238271441027271371626094077565368305714239897094246554959828090098736047948002405876295860534563774672589176289786398172532751426885548361854005031565321444549574927798621787030368097886192784503691951632900777979520749508819800464036929605274314032940800921273288328599646946924936429752253882688279625815551809548869921363782081393800153044988185959161235185109256653960020678360038348597260801863359510718724590975800228138120240974684617487980518540389374257153949274234006658455374250731535900680853316549097214161458262949448768810230900293899886239556029709432491627024327744983338993232585013038497102655206126257672009409866851747573963198304638272774781450594826034803577136393006948627088308806268428680764684918125902197635184951566460216741948943702468449431184472945071117629840277303049761566728115534344410346876393628924811100806247926338574245431719153718594944268150007442572924903017724348468995356576157654783403672269589149451852535114799578711869136797526416723302412002884181434553222749053195611417912667532724516758575667228254477954834496624275757446454025721756544633088857538815507053080585324690939917634663266083258598412751447104265731172427853105404179827068293826250415719113788852489816823059738211893085436456947147940784155414469254877779808086825957473850182616920714217431942233570516657883844557956051276030951539543936966777816506678256914760261805327217000642323087682495507899910047430030778819571714126503413315141362723703231819937149829466505076976127706754132153021051945638468246414986961277948327857026262054624906751806121599199150117207058194160735801381107226105132418715554022258318299917604315144800753007738994403001406012113042834819984132124705504985970703069285570330431368910527827529720218816438502742664560352064064023827338884470206168395437889630703070695034121687948978691330393834087236262432067890726140153308453115172345492323789801502258864195950476397295764376609664598701506610522654027890200557261267595975599337611368473495147219624986394156132160671455750473002435841523785940263230816945670960545290142225564397365770288196280986898225108843402196172169971396138961732414844638313918578560944722859289237489155645974422709665702761881705035420895587464600547556293401219506053873573088368147383051665965722729766007518866805841055929273639755702427688659351785899373773919427459300212552788102834947322955209751344316472135100403975846056440762003560686351872249262830861475168205671189349494999936296572353330397067463210094409284601847001720212623445883524751726092227301197544093088756036827043979177497764054149465655496876204025259394952129702753048464218891210855121225675444414577824308394411859479187810046737297930497055543163802055441797262154996267441699922491561137562424208206820181705824345741133664218894730580652221311171155259072185788599331707454810122776186030641682243230275664394739919586107170095602912993812423087600579915801531244822889795795237544806810029245463296432896228295843433334020680712716219873132530171921127978712989169116025924980307097479733680144129756635077011779821005437673350420547821868013435256691104816132870338493483735887507576185824335047888472740933568909647132518579127110870850807631749153193629727481040690593898869691190877512675828640846224787296523578784056472177300664054337709530646622090637916613362762499729211321839960462683796095323892195817359323334432009364309002277031551634231189484825652133374226749062694311855977733771339909716688068925319427684419560855161887862983397458149370771302287592717461126710749855546299710924462242535527164971499153097178528547513584324767489274280681110366605753219316790042785457493419374320189988822453652995987204387058744949497864978967078686971194838863004932260421400139120434550208471592357488648494186381089905112840527543668438236380719102353286005125740182196679140031325884309757833834398034051994011235920999364566453926200830757017741872213146697083534475783039571060137884647488137120156631158209717572054238107460399724657659010696328510772454360975386351388391742148814976846953793635075777585906152802415430992226899042410694474037907685193704823844107541531481229111750203610818617892782770744430032941779571820472534799021250069344368628875230083361266472980210038616563379954821519114837274432630608722749885664720889855165499696171017592508764664068486867999130662747098105121604964497585996164218763012762714367762440098521064563578489754079530078419684862567694713864355303802239763373448752431029610187547740519953377702421411683693824201529646538200070287970021043477701983162275900579896312343368066783900026958823719801764407357130150025358712766406149483281678299972958478302417014353424845578957802618757155731774122958880965476826242900295441935974600647342998316440657195552970055221778465344437073912132713717044209489194100359997661917790181735170471804129834431009133030476592654321562625983040961062486956436007307537859001925613326955066100949678447374029895167504652849540099993185063036154752211544295387712811551974385187088198175197802988232743769231617793040695244626057830566872817968171542533822131869353919958003963528031322165122838639482879395928523388754951700444704236052507866086894174464381132457742687282274962404282079127515934438217023878098936034395001932102321356891472216202876077745825284375709244260074468493976316563105191448494068165302749601563291589275416239024083514153876379026145965405734807095453500527481671371452505485292261110159740576064686698390637543751476055320994442180982914651136380037427209068743535587622975088349307787326164390906872353948666259984814991391313169731154324631243868125495321906726112572615393427193202859991061677919895247002676191642133812419473826885219531791049838760194688638853722533549350239146969042494299872591929886544595525486783355731192691842606819791124118462201839935855629302326902200031835582429074123958789930587464421385814786940135013899815273704423047207396919476438427126081593268574107318946969806043408661757762076544888560914877194371206096484568275326132462470528571913248128819915958874780737872925858983912494893441212191312375090211293415777191176641536091924677421773319277183249819910019304581068194811554248211156859230857641715013059943101336145775280099977821512757140453431159386614185658698301593918315153927064677961264716454089524958589212789931612914493707301063976539838407623205130180225986333076046526562330645456774341126991849610659801429302935409452678080889554790777209464929845506943604982813568407950793938383750008939916035202705364446397497052599905277624655216286175967660640025048062555961250600136490427524365147596948353001490466029266053196657712030150386162338719519613425516528425067871027790432442548398493132790691767038036074695773547746945259021860714151252549976256056945666324164830055942515971997750800335733362784073025940749157944641929648737546071562301496888300214195987092542011651775725830989540462202040249891871724481221871374591800368049274248458771353306489590353856874922391844586333600196896383094153704117571361651757654451146556144817778041531434187362742226878507916767428716961176124648967129259133130790337310888875805594576469887098679118379498386771718074963596653942852923634454954570973338256275779834559347884236235536957302997022972804736458830659939953812127899041619223144273502738383951046972349380406392784808511623801125328888829937490531273435675437040500192539076377954434429811148840873199736086205114161589065582809993914707272042892781377968426328846514753955714811332449460304204916632634194868864910968033200907403580189023684595990128161929909383852753767269686541501553820208569920839423831315532733792059700592851064484629112204888206235648336870201198671601495867874615313477173451720953309449107299458349135087927470219997081076447938236807162785175347807170948312706947231151927652560675369492663478877991886283581241195338346913567075455096159668430340077335584887089386470909306617223860045736201484375819220857204847238445580590228886420179263146747383095137841104715828924676474512636758539197836937944020183618432087008736019101856748210997437597754612404842902507346016868293421629483319228842800121649702490137795939388415758272158834218286942964292583147970523970926541747625139749097735567976074560713055608366987754663211837688427455655071476111623378877414088261956946735215146268427577518549948599659816349665444631306563165284795329834661285938354643983631386421469917790605463381559903756741439171908953321847589065366388332225533600405849252327609688820100611941009941668036768670880172483576088385293572767845558236447500622848867988991197581747485481276946688748976708949287763749111677840437361836857413661535441033024417009238442544350704404916706975997302093002754135195347953406320160839171029606755376550861075850942390013861464163379533181782250177376420674341710951204283348945964269953519999069074432047818340623678151719330860406637131223323149011195199562678451221951334266986266216795899579612843788522896737599476936861816417513763203026567774155497712309554632074233712696950544208654685244033181784478651297325439184010951504439658160649410115610821884482390658143562242410858390725806965606372749913870362745560284325052749120816307498678934426163332776128177696143913870815828652909451816994602224368579552559818823704435053403906085523875070939348507486265775975238285688741937033183346071806085764034148463159501031411694338211769568035022548027027404239529945557887861177740982064284985771698425281543607437720828271307563698100896476474755245826180921240127303931257459421004748400885476541571144535217432849479872404148003904820540902748955568583995549279686912622993905119903612821960353984979535374436835657381449370616667391708455947833201236257690113096200250217673922986994592068933888587464592468572951311477197096781565718354931770622689702839202419816388431610239362468341960808115004453573444231636633734034930624637283728397721601355380995927273153214972764995137394449526549567019609036139544944849447933513692962174482012681288601495897272746151833891820227993766892571748768569837904990588670736830783352171212600981645935452707678170053243594201789073793207179777349552204415694741611273711295202283073087923858830236177966858110950899175741373723660057788639650545654626580526881296888988770103290140516201867881109755368862023110919410346567607037787919471051546106119795940565623468152427123473296814021895965804774770847403889117039277359735457858322145231855614727641148241558328812035973923344562703270424810744200542646999489516435079109915704690452426645050290867959305722140538969615837054386163388334940292934496184292818180433113365120293478794747808726850053380044723037400288855124488342559186037603045962410504653421255730586217932648604453847191123827673186217369329201948381768055648715328520308914659707276225100775411439366980207687716215096869320988833307568675198634490610279830974805370950912674957118150373034121046362141235277551284413006245863271282281900062923392066427575463709143774442012171697590665795627130513841050899280813042335037313650288994031579434478576131315890341074177480524278008758599765125082882828489680997633477040014801815933865645064707845125640063426048390295371371680000562347937070201377358559133525637281457024951085710862257133639619612897484506953430554827615434858182652671062122572271914747753170359728934245262911454087253163807183702574086163770053763923962396695947798175191835583091238235047760639834020172503022399793216698597037259123934444695439813737806249889162469996462364865303951980059001913977036091439167164472406162685952250503078621099183778264114964292451607490047376197059395088686415106187647734677110520723826264294863099241022108144760836327634876172305393299928351147789533140013137552063877634660502036827569103555601562742802430562198279756166250295725294485812746850005269756072107809787748460417166534419883501740968914602266311108715343762918547443924155107352586979610658963635651568868228309212249668227705556484871555963908910869105788244417016405734672822239740723494426211991929022679787132846879553859623444840074003958070175754641598689304125560501357311294383800629879682716196211710456702702664588570189251705058970113497023681118967154077895578214133278989605579314808860989826150117727179332086563864267321052427953365285115723367987878226911506860016912276243335550453893505176454804150995682857808212530497468882556609321898647375934018870827389404136147351684489449645096944932759948858973014547762786315619792640023697488554739609636674414837590787288352421967093568985762717839402747262247070314312135436643029382803721155063793419737410738687612334530073168287342795169377278137283916792901208404991418029178917391520854445514543768358693598518720096879556894362125157121364176034153322491411578826571381112178248758165238909414107962305411488356145792757643330342981342101131936168450969005718497400473188568477996353168638736709499970662057171652384397796407286485173851814234856909383830445411789344946611831009797084424126001258981705028687298716352956897190077409874420879658773889266655100716564480406622247505255928017139713836699012059264146123291783977218532237262968728394102826604316996039677242747425681571896960792353733480973145264971257918742109746004940224879707220194881434086532410555332404430786798038778603665164892071190530758833255722927267116772526424741466500439365554358935088103729731048004127404472447422869073780106608760552263116706751331063652184715036962033117305616184890590964927830704778447585115656247939434919082454840082028133616067695616686474586186796919125493875485526341748838289112355031584941631509237361092824849442238635351123503662039550240371455763667044018517562142033564633210385434048961634726624133009308679633775706002459612355201185301025147660106442443932283848518003624713716989311635847269837090890366418703003010213303429135828886312476407847155772795045197772174822554444878826095604186124250438260604362848311238660238809747585116945086599459206689826856739627680307122607972114264663409192685246520905648099581673125429336400467114932798260728405703556839709643872798010065875876249592502978533428448865995789588478648660530795092172468717891745126328577572004693035983944294731211900708265152813365797880775481476661392850051057877757158119373316725939659224027311240873359594034581154793634898094055916248334853694542728908210858321216821008612268786619748104899833574444646961433551823530992506569709796599020339338325318039291684344418029568647096542350133333277013476437017568595526676488738637875618943399192471590738511470644113778560104221709191811989417513787652518713284461568049770472416933963219202160476918463824896186607962267549307839797588608480562253768511271386044000699126509738205857543741866198270259230272046001474739184441469254520028081870318013006633102589842606500704967200974500641349923428070379662799520735768593613953917201565628094850527939652384112181292010112155145326882834615512643582288480969642434924167116033784514034960855446835837822598939136104872142671905606364952629797132568077327711303220058568424796566688375458694552988766358786506758521793741689417536216608585872118562944139237854483382040211713722742037316472446625948460232680475372497195376492916950471444534681731172174106126478356615046050472825622970903725809349835117951052590848514314303481455960242311207940096900553087617212712364087688212737444539285774938485337628377206520404778013732749802721733957731244710969422629403629733904085894881315389121873019325455192804019663194465787108962399376622072832205658557757281166067508649850939452197308808354292397069009126878081128758456064746640477819433429871494710230844665287681204642373903250495679235733010544072932616511200212128781446566952679610402712982212344649655455790663738080525109837833495911225470649942540904642315043465534307936821130495648719521380337778094047227818910820513210889865565271348434920172477738595707086146116235290759447926228604856483550263265832743915982273610415250293518728910379731323143985997670379097659986806513830541696525642345455066313586673766975029052090755582925057125701182488023001868648757998560045316014941932340532565393540945921886282886612627073551145424613396979298269875496520921990535660503731754948877311805540469009979092106522009776627053004402359099888221786560572289628967919389375248657092504856329994939093490212401668218806922171009390803092765418509326853796950818338108392912417547759571432357958652459838348202651802495420682407777684089060041994271578927129727791994667294968093867494139892205697146471601710562973539969984351512289587956297581849469010058294704207515679334208049861901157456838102101015921188673287421576451087080076052152768222891507172399624796371108597996188287633606852014372482356118287012140772932200984356273284362802944193653284506531526695988909434883550063008961178238275110628349770350562066645156253592879783653398382465388097117244437793208851373359994521037368533200797005410206647137278626945378529646478959428557820073563141536918515730482438385758225262524911534991259578924553885754875050566304165063270714891993013670549610109755616975339471837134050114618567762739056202122577483836259034922867374446838190525480956690956714253421558049630457271869461493499890735187766753882438803100037749297949859539171572503844101547875107575883481862977140685735551544226660932624011327083216427347567084239600951410309800408187825639270124779530912318133376959331406548863594323478583058420130630973156415065368045630332301402858757889069902575623026931897456080619501057617528127275424200689869691336116848645845557180725059494348076044644767267066370809547395953199581691914053208044841864312367597802523672223258871688321283983347041923506194097238436358471063017265162760199293597062932184972257620580297118203068258575362346839145325808326122468934512132757508244548039989805984480353267863783189536727461846175466634538168275241973228675258746640589403393563735002160476578277506010514381885001750661939856901612410846506160035480555609430033070347564310315894586190504972412800536181388434192195952078298855090896714975424895504781650626304016479062504830633284059973277234877025580871151449919050432252080794591962041309111389457021701583568887910265969262077984002458230513068475227406164082477294575460873537060804936060758669096961965686290892654041567748742622097804725480242717124126798179875588843079697056496347089733545589246678108413210043083657295337420685375433747780173167379723197974050353522925782796437883012665688738346647667966885341122066856430511001921979901369441195744748734174983628407157173379501959555470705049574721755543601764200454500304467995108278304468285360631021050401603603873705155466076236070425798226698718125456787254736558858406116516548829032857819781335991629239794299570564748298351675620748706449576554292290321701571642929230554485313997637658253026272210655646137313529657221163446366295314360838691444578670944393193602915515377906460900835439493395250444198613771969766177376919964624767084393729196568684458646060060328718022579528180918860446170448990433007173096640848819318029953091471884209134496092082559900393780975394009305999501531832139310397454292319767098150225646098923992144169355091199845143299619256743183785258185265407177696086026570869756682964343102840261362264733360288909954510199756775325017537943070087122645722459741015830657874739264977801061579271582085768132655148658030542775632747100104010695957600767610083386318340084370751303293997524306377577941873001000084170571839867709283318934897342126847974466463248553322399575577741392453876971353252920842716745751547766771405603272656958837386791582569087603979477364713778715865360623586679017358868183570667902082866282491089951291194555664679893923027831807194641296441625971193085939919696662944555664312127473209207402646751462728909866268941746218547865699391579550826674379874860445078496380044403851391465084397763570975311094256835726063932380810868314909254376128332069935983896213455943110274451016610027394477406133676604158212667515754090978518190365901866597520016260353194903029151759964597057665509491044024142107510120030377642916134419680129630783992138600795224489165269015534269723324435576955151239117011112799441846110208660232385077291977683035962247041471667567831006290742525886139287352401962257122836678725351716251820372665457082951107234688972266551620036356912794702216395694743088000237223187160768248840488529761745556516531916548911721870034852900165584705943500726147161381274707061660660095504061416780836148169839220701359119025421314715389925914412907477989609223421707482240993744367112902417806403970923405941615138725690121796233773131347155992056459108470279963349524074477736475711981404313349183670740549960401515245892784584276407055222396341708195314576834774875014617601812030522441388532795097063083643726690104438651762321119129218331335180064169075068072496806363609522044019437722076645338074404330754502256472881409897474648302891676605396052881035712282810679544997435624478823188426216530891916881416377603925334682539528910540502627671357426155955879502825095379075652416756885716102410027072413799717251868722239003719802968175219913659714060094235905026235471213425393317638161882307326481108706818285512403526356101890509284525926905802278918185863452277292872529812664487223735006288452671564975592142405080999611920909129235522233364947954657282809673638379914861886233751691849117612030799974564773413153903348609979279527610766809669067541827513632808545660845431272302403842011349477964894814524430622339568414883453978710120773063538327268444656445220643847010693223276513577360007339763391310568311897878740162499820225473987254544727233611326712496344977539540075670155205486263697479407812161289419364243660883185452540685745393649377404553444885230275086583974260425890735119349177010815589274088235113319636738542244463347287935619419255816411759337403966862540121055513149738385558967974792343822888929088317563895108820510168647920731994850628664991932621284009271457926142586770818801882122106058719139633028523701362447433049212173382148006044327591354442382101054497059113338169660740835952039838378661813541790064427558124403210335959147943348569162766384476898968381372210495593418218138717137526327734237391328197168809506409042446641551987878051698133006623262784486703860884381861278425383822370457949779395379174617393308207064553637778393438719053521230488474093151624126103792351219170074293494162302175766000979538540997335910014417889552936226820625218253824305352364778930712356459869559136391621259182923081735897464831064868465847396432025768613743099530440084009493979009157180709652063116059743563009286556750432003420704140958119779095724142243662158624357926018993663552225317361522901824364483215516759629313866605316492359173631989566742615961845662715239763894361823017411111415609524547235824551002670574296266683408584724963319854379848955119751671979913275799185870266260722337759783129345893967505262455604721015461767107619368762814584993845379029780444608821978097504937902376751530943680398209421506884337920466524792443834427186918942224429725505080175826489248739380893528889755463352261703731908409819271538058884951967255011335892987999987327291054111966123944309750932340566663112972988074431626053577190951707747405836827489389844720464497411823027912812602916438209052100379582648609369366262080204793567390946787221906516529101235488867657806400959416677576951071475946269687229536781164595408447740140476172935423430491419304493973302575039495431989810943842769075826575358530292822809367519854519176926933940023777764392669450442027046031451651473435584220284020722737211481736137445706864032918524283965257192262930289947157456857604146707966144646322984141299681990884903474293355955585005474354497456573035818182178051467240264405336057433594928972848343563800329463017860236493658201793118646319813166248101663276860908881816939405487493844177614243571973210158570038640676980750071586675396056137319112598505666660087999758125167051304467483672107152552325097484431393332020378619311255752153099968203914801838451597038522727457780049240651540751776347053372959838975587991446299522965675041691466991804141449492374463197062440760082984764071726056963985984269504609208932250487912608885143998185009166060141574906902432977156784486751985713386529654369257393601363351491374203764297914411923724439780058839392116335943418465831997214009602832464825571582666843685728105375090368346771375553204966838981017090737545753536833464328865966534072989880735718431328775595711311512918015007010678964369087383016425366722155180498341740351107369712515150841128357999964388288827912695846570148118199208216739768903364882902025355453604768379521770202037764617672927407282000570861730987858078932120432108067864445822133756215456526990345742421732839103524702504901383054445078023990955900890835966417687407048944232957649447511149536307978099475872377350848056154576014172492341302327777682929228278250223368214075612204777105911526502374590585548553545709402677981046131578544620334880007875396118392684745865929534080287740779368802269788295704537063807440079518290596525225766949361072735680913722105646545403658849595804288693909180453017288919850220224370283101841310596225494772836496670070949298184674946169851887577062226057807642384175964136932853144442580402239692971138131660768610312587434621573525182320685153386900736200281053697562360586925514598354511335863821041085212051431680106669577781435501947077626313684429656125487154696828578755215589574036608635248801362145923255731272220776438186118410580722805929533772630255364779142434185935713784226722954896004961051943651308160641989503398180880463591870179423917088791872772487004988576276038311534905795161997145478993578138462466903370161837342751641694552018421111290598999216941247794947791420442273891207580375546100131282943122009557472098837114557420234843087230940578589130438588643259511211775666643894686726854273088901509669656968534217419034403821978287598285394722878847837100258100593989820264622630432754796610821295923136348382687136207798955157878421272452342384508541194016059398313423656647790861395752410321276879806331967434652298437457182685167050037739735426543626918413006191472776567262312582663890751224678442469086920758274865032080197520763601269097129257817146571874548649066111910643684635987985584245447788427993224338345384345320400947438979454441436195558511495065716236934263620232789258564463958365730307824649841334513993434544434212562289812096006254964260396748584088130570267760989856568305171878558579607338552289458957836694703919103165233741811021932652143092701024305273502741384052930896402300822591695096503233586744398500419305746141044821496839727374840729033500454545985498938385444542623803370835914149940645354041187387892523644458885413341594795567106788907468057967743460946470176180979200357924598871054644448764272602506037564166046395227520721015293742160780845330213505212294673132727180214174461471522657335041396809507466802077211631944495989233108155015734805928179348785774572965964900767268265139920872558531903779838451185366461313345326713222984583347954566017902380721188469152802126901908021282689850311995333853095254405740120799504994672851548920126314408122502649221647596527504660510733994204094260863927802848611752895042804727025985027619633284675403363789702319825940355261288004548605628888565237190587100457643867318479431664618357965937770069433359556882215282349901965602018719308570896354960542461626956566036667705969315466380399930904846141368001109014606558788089976448825402863187699479717195242606125992246093385771194512055726372482199933987889094364531313235207704401988220796767387187681161754280601884605203843449565692794715958856225844532984764637198305525604732795480870853776370441540670456667185986604551370653757631033329500156039707685973456505853898563439376355998265114704700821361174777523519460378819304476358558522503737648943369130808624941458252676967106926094461721179122277508585211914041436215660431614400873168435960787531166181132491635502307512919886062969717856994057115815284760514984358676140612800198054176203089235406531707560611059708369896762006969767727353405536125495690320296306622197284986547169185128908822215252745959639882536826101395301758069912718882858140869754060339687867218167573650531982847389532230774271689481836687188285100363080601105088819205824954465032052952107992800122039508984214522922650627741519383230394018399191465648360365668090021496663880215485437011449600689286124506115069236572516719337977722856537867463130513154837888525040067154363728518812377990957714241182021178309132310837535649594686436230935766055684748639514778264110406445735819281402451195283983325706054559554449267613320269378453505342638001117144061417671414276166173539547198413687417342225528011574184685411391453495101497555053421796313979369350699061910103253953032121884183829151771812965370900287308154317971618077674490820223758189609321948219844492027821412818852309905206816593795010801708610383372160239779558061242687664526781672278034591198838322663023707319698922212031198215237539989252417198788437716719250527521754314900498386981540827507713186350670718058623435607905377624179268802667090824826462776357653158743122340890824649406089666848898652720052738731402755289316909139209476630095942177021977710588010168776799078106501107007154149596998993611291201251992531793017823528390252152039509072308861079573733605198584118090031621491107693079604335959045715320115913044512494643125981126487619854992947990758377782462827074491729411683380946327388666995696645490259546138479700446579311608550223736183444622040184024465139385258297824286727660682703362464581489086331606369750720702095191804748846507685871355394239845668151349336355200702264392589564468552590272047782605049225154600686770344662061446880252461251739868864002225346865873500511347599562036255181126202034143126367093202181906325166178633714498514197454747255062647789929299755109305608297886099822542319243554431129202853490385602388600945668773382309738254832314063002269625823921972791428046866850031105390369820197246420889009271765449634803657609511798425297217134355127917690611759848934108608080516676984267811303806856914715573122887904623996524629674287886615044403176595540572957401917330275719347531444830758954109560035152439880666895545122920567501263534935710583571814832528686497926516106825243044373128450073166749593209591052447864560285096308214991636610947552205714403775095959509386566004553009787705714576292048863280854043281509473710576433185232822529017044169447529293097322837543589169975347553357235643969571957878398878769218691564961526234913008492016484911493893092242261937112291506799940831204911221241115807160016472110431096534720478214360535213150221945282109635059824451429507901401776778032780233718199334333660410220457515259928691788140536511019495842570950525183780332427292514474615368395699955409669026151831520217870175196716535943548578893769049075638632367490535138299272684574771597733356858952418131459008233281362754081264459250138044460289815479391996916454835322957446726761342066353972844467236555853417940903718482297061893782927783981555181852350070429538738987516775775014533007006179141401723228127659433562684328892747961844762411801255047369213871759394021247522484312278377736663652464239264140019328861476496322890861105111592965689723074782907075592059517820630837613207913582914741461409484937239406566570410263062072493670459295753134938748553365201838721185910302072124000181367725807623547476379754931420245256351670103876200443789958961366304610301153046772725767443888206645792598244972465807368044242320682480022310118366551808932132947234696001801120809738446569845423560410088617650749177443450867782988733245336874975951290761240497448632935953507226860177690387029278135453667350480467452122631826166957391425712781214541066557636107578012072246440973877196112266156553173149243630951009131133135280137749819849953755469592279232508541406193256271464762071163466541853532682834898055729449230113853808858021845006641494793611467527787901691253174393854508401473790461586514774339434728455633470825565045951624519596531186180515939954282110874298615947036058005959484616698220605181209390777524036822023155101998514957849281936791387402611258954930051293286785932950804903789829050807932887170522865354166277687429236145645313427779667553717531529583595860221187617297600550528740506648468016803111795131398648858019095007406684529833512725583781296204947144870243398985369686735633061455021313262590151509231548354199473623280097135038372829811611397176735578900652396884276908134822758338195120249991866902241883864870675179073077044715682446170428667322055928937806545741604761381979508266367095555832308184960073510332098126883720222709703314666565666043874397229126205867782434686859887333899417514351130735752527543463226253120591934552421065638243988459996114856527786781894399229573273219895031399131164345921260076055655224060111858562648022983458504670217521951363997607718922887507399647577733950761562028564500553098054330539969571957301231377697865927337053375872630610664886806158467306680257815742403821907600984206375959906922209489350684825919875976000374187870156234990874130228137945131809526139821506804443045687337798753166965494447666968891044716946253380749071728815136882738218636029068096842350298893835307196204350011009193317967396066407502788739676973953178024356421911994602863319543527493901368453182971778784356219889543168599866096518077602956176799158842112169797686467029486614816807926476746987104139715052233775435247901981300002834384572190900171822220942287576216219191960821866325684240867111739968092443372593683961406884383119484550707975062677857521938670254596911358757292683172187950571354354313204616393518234642127793022399224542075961884496689245593095603686984540963552184232768413474222981918730089979748314111300401304097890681726135482918365336993466382773516578658264570150171758839541110586300956223655062618401453009572504176104173794346667975131227545972517001439642806802733247197280988579310518536405702163530619574181509595080573656509715769170121181594833554393769605087301539083667546226220122923185261957076485925516094765663957642983915852069872934269273845157144059911003807033232644647156215646400148679767066350818503276790957149277538178580452356466241905418767624810928647912565022201044687059891054500067851864816047592018028997929819964846599877954322209955617097243877536748995073330659760401043698282046023217620300257956705114789877828062188787394331481676430812896520908381091710063383537884953137564502501353478243098197958987904122317256339666123672864383467511814060115747861367719682540805797593602425064422449944313133433518758370038162821640199143290786834044771116599174268737675041754802908082492312205115005442643799932397736852678527412632211665118290877649442586701891456010037769274776782140725548184957958381691479600658166822299454801358654824263243456399581705083860680622523372241905594860348735719877867258830477748300540571052865185316139060142527885880618042349291794871881269129548553998090346145859218226817495540431933074121456710548390554755940726436139507746851389329750925001429291902643396529759220639376448625857025938199360902516323140802361593860764491979353070189152587585294453759561157168488894645707604957380970901639842709753867619253711810148205368423990168293766435816802634411986681446767262177917801217430848112222020237017137750936855855801674147951362715688260381228024993158998036137837441426063405950366958074627436615630102673338265789617047664506589289340817809013234418125557440183996263830649762299165225734560082216400665954761154846006778836178857011438174500014639261616561513019839462459263302592282053733160843872634726339019538669031508435679770309633969597680824805842347607484594401454255924213538095464824227989504753865180460970110974580771392728683195891019430654226034094985187025338812916715693014430744245009842327916034039204253082148091026522586897665499852232070681096921210180893052210422433925351462557243658106140113540343655601404154288732902053149286663022917307502382507196827330209440451257993341225364103822123604574960767202892787284964325297860061355213408750912387510091799266536560712448759423123152743736035530302011711423680863326610378080563928319283746108371250992106496973597679387687282237382597225185980138410475880838463843534815213090955941059238773617733328259553385859928565696379532930071769034632206880122236783477997332253390737286169551029303973937698695637435545383841976423767157647660123627731650201602740569893341197318823123688766007308824316127315792668237303082597134296525224683082528617262027114567979485008166050055093333916161008007341229617506923807663368809365684176948225151667492636911072234369826445471050729120550647720801803568757558552211481270604977697655523733394863154747037345284142043058460260563524174292841348503453129595639546337304655800316645738686315044992161694233586438867773160906450476897433902699494397353423077358741684153766728045015930479927360519834038934291435984033303347480857157311420887781239086717657033543947667638068083753451116776341745909032855663664530732130135657282841137965363754402195329519018841095811299619574887531321545260764557743782736917224714480805752850422399273790637019808721799653080599243215428188758270176752705622795451969988136652703932335725380637070290045015857668634018810033057973476006378315861252070497783281385264677440235961339292435988338740391687986319419533257811518259237536153205213953576708210885143356738084277665548946921654309870020666296227854670349152574143290110284230687475266671275959446597966555462982788175961161710909674604556088975551096924114133439793666522684572289129730793164270163776332194601793908643249760417304289551777421221648516237182144084389898300497125250947574873607395257769283695341456953425881838262201078455105760235497941623694359905109110146121648457630241730102139904648587042711609855159195461851473016454698697758925602319666520399606123043938388168389361464991591555197583936943732312533451171905283351580784979876920807564406894700786737513697189934477474546275869362072761583750493019319874680540206885492446132174743795419501869735454198497736275059393267926323599757324621823909851374702009920113887693775143849325214533970972130815242801022509328459472563192591371839362859577782487022444889265006617571583414704466604581943643614467726275892901099209295095211924955256717293025264195405609857133521168554994796260147736157283287829227227633585885290331471859472147524293062007145052566747724485079344466072793203796788534034697755376060364732345080521423485726989085457681531411191469544430875450076387391102888374599274783549562274147165605740570141229069420758692552991729278302788369543767176781245257114590303333194433356030151903934792004041953765402756603759086065013030311863509138884373276995168004666621196792911323750846000503141538291481102239164245036316443926039332472449245593220207065581223956843834591364004117687571334686389825785388824447720636148534083294516915665876043668213468829390437490233304519572473430878747399194757522182510857932953021242990491454270007648735370207613602724136354170468927973847278874020593841342988937978248351793426617988685097247726566657170875655637560455306872453199253287802150062088585383285730648225333806338420856557373269972762911159828508634301385724331144013433577086599086432190918893755708128488247868018165247463371549859613224592568572319481653948899908282029683792077939397412501904447515470037055024862371686045847776360437547763311013607374008644683086781379382851181263739925777859926781177690903819399636436502729896707212254529132694454636499576329357057186105561866419058764432702234919697331779236262030651379731098627068221532693126045636621296332909263043030370916353489420693499344634444839083274923213757413536266028640220042871315324453861270661664437341720181688892368500690983943319678959916475786480789103076644953203617055402822483523043401544346635425113815274667459519739411465597882231707752195738155183650161900293121056967496314456561088660782640278660636688182205917194528050951132227452821247682909385398545773925707882121411959778593247498064395032561457964340585201717645796919345690441562778941302733532654777251688409794313237333152517150078452528550977005524010249272899029355385853210645767503750116908645931520302621100044425426497203922623604070248958851782650065734094501584492397136522665069857230524279154798010206733076425414263698377323572065169178527032997878505389356136770834213339197832599740918318388168932999231606948917010375715381522797257501726542678602030669533265250779194796460953768345086190379348239169511223748434849768174725497438617454040599836521821447387280445109719675240689907568784786582888737994963724581548872716527460795030074243613382675573685270680418843480747227784218929329891736657466235875833113682551912926549235385265371629933032796142091688282582650426019011338105493420943443503231455415870038432768102588451528325225992625189822075280333122732789363026131341412556636287136033246692740081705535452550366362447788352516315146201994822246766133231421918031274164113995150753689204216388646548377360246475679867141479024978199784102115963282878214951561588156629644958941828497663894090433759684430442593970957469775286398845073874146318864246699373556305754283526855163507517043715535931226809057029508079787208673225629966459157553050476852749949815716659870086354471662012389714452561743858141077346916212163386850397629134245573120117530749188287385890039350237069686383492141573693296419662718863032065220661006638847727688202946052857690051394210525655319796568499982366686548953592891645852783657870811158543828872415904086758053687437216146116164692521406509103688957718815866120075380316814985611476185190378417564673120418670097261843093879704283700063015922068655667666683803002164104080326065199080429883591726259351611699254283561621582543707204034975278129654255646385566610140725308161979242677330636602982841064708548328801772487899763532236554215624942227476115591683452615658693897430789248394998843179430943834261376975395309776964880781866301514128857912558828142825287524053703775482865949482868407262263366194431666626917600074931228216302032941926980931913489451455028758915404755630590172629162888031404833721424605216999902543421089980553114792029440608933047531892373484541900589823227751848989583634510258988571768157273041193659957291364838654655956011720957038775131865506281465758396968867951982563352368662673417337147759992098787526580713204981180947366554825769292315345264992393558036023641687798641264542936782078209286063252772209114126776416922436043723049098267947565586078181129089052908902312244610816650623386573480656138182197647708463886771801467873679914814047298477374039973321117367004851012222029077782148670896214997278968189504898560033406533874299932955326111660155141796194070449093270393205048302353588700036640989556269691779146512519120863358525663214863310489974101058803708100171552115135774065377346884102188976747512585060811972955214090384458316777424613814833135221520358332898895992434463022405093877105417010795999933397164635360557616722982332851643209422587919145126234698114531877323486727738262992218060598755801587496343849785680692095157239297734647677840699802127890167334254247679844857848868902550930516545150413236212929405748750401198356740363395241198545011516137936318181709728180023728538811279653027549172379732036752557044165683158235425192566860607352700285995464557719516653936613935766456039935091458523340996715646658258458345556403639440962552501135509630369189025860182611002043670940520687067169354628574485029358307493710838305781622988954231963893491055000983130021669780170873565541081268849789155088297451158629649920736949315916142186007354455053367845177637195963318830481212284911489206558269279473089836833108424900273954503764543635329799163919852641845840272578434207148710036369975897587447316394140239020902675764371947308730716320261504120499145167391113874057802997305179142933384714952763984317596343627786115152651472175775145428977591015127811147117653814355045660605148685341299209987321429155468457416374413385877643678715461251700661575772985449750189021422603411650583126787669998598263952017103996613296046592632417086936249214233663458979949632046039280763226895098670336717085462030146816373675514994057939661773287600761636016743987316214416370369580786875960946065895291222091667740797662112790174018900887914155760862571547985157362498730481293895998666518034255030850546782616444598489392794654357378051097667890904394261156487973992876515644854303116516277415357602775727450555783993734660003515059143704968550579007581979284003121782922503094705328855325724521600370638209729453154173313956588481663750048205931798070670025341757383979700688111483100627980087335315875897688718064824338113808684827676248022637924346370954861994520152807825527519224128868780673948287671688496889715263887731014436919404965976782121517764613938410362667398497896242822755075357537573870038943043098009433521604720974797743966601949237673512692930388260516893136653067317047507708595965131759318224724929599272492452317958740777063132653330906647869246168663712718286689843429783460847964552391195339617216912751618488615828921249501908747327412789557798223552107532665151729642918057640592850037648078740245455440613441739214573115285527612202857116007269700470368379937456046757885768845142271693947413683774995972347646057899010332838609056330052210595305259971872217677123586489785320861554308972211263770504021109952288822247811902824028388940405508785699122500095951851912615358041932126948299936250659915030334541446659989220130732315793621954406920398587400453543514085565916195243373208170219873596586902546865044221290029747959186328812813248401330247978984006793913025782211278501002554653663189047253355871605437761681077574464131653851508179266581624172451290430901014683614417907815296027841508667788652929308989350914928483556577841808707603417332147585073482760472267651036809338086926627459602260057691754566502253689154797658184654439719195486315273239434999273879436938495890215558253220800966420210444295561509659169109984052465031338594258606480506679042108287108119868884892073986529516588181388137243687734716224113084439315147506568914136635283577292692626974631726277675512991316008209141719256396928351538807359547902178310013356238048193684816327461604620506982966818923072079807517477606043743881409127515482509067593532891059648636414765658472818163368451368171145789542135410633906031096137968320679427272938099177180055647190698993751056670997517599898481384357043119486272915958567928088303788035156807329125021973500947614084506078719589698862878846548571402637853386985667461399945854636476455235016620325002805104050210827591977602730864409000978789646551716131508953224309766485568786910078888204817817977742762872550704909527965572659782672451811708721719943487310903001877141161200555695287308785733050119240565610735991917481872128946080010872635578208043551070178905617210520441720879316121736330615141035145550120793669739099422916962329498544762632153376523903468584992388075929371364696216438261321937119300465351902951886142553499417160169719177682792186890242261911884218461479903316219259545869798676829689132764627248937006261228439708670544992390886032470712707912599462911167545614412648862690634326281634867620259744464079415415565245170825753043072174199184804966890859410251550877282346983800601615822259712221003106658952003857206515122461083894697209532719638017041702394357285166243009612954989012548170859056969443949489533484375274959991332686164415376764354479197306137511347821127980013420486226626929759943969769797804396267236063412868391849528615456597680922023189014068652118624204977675539161049044098974509345030147427643073697151853181742059272016401804565502030383282591078485535707899161456624124099006728934383168441593752602879869021905198803645064516554746706767443396534826132344233845673863096612319061016635977101270754722279987296540642771181091351153626488637114821055009287858357693799439893373712801373552319905775339066650373785910356550367465251023457350250063132484548963904057123166346654632546694949875764873302927560323471415141608648748871261514388528014707897048868547257856642322090673162511560297978697893482187947879281787744725694057034325185536025473508307589897350408385966225105279150349980041856673530686539628851156926179791871109359495867020326532096933171556019702765345175747233728142256070055599106118566725303318094957882625400067588127057384233183069352076833787478006253092452550507603477929312062297818032742117493209274571189028326013710636577825051227437068824734484993200760264236978930228981086960511716944816121075063733464906838893968699498563703579377843896515817381151470496491193906237133599176582995698016601675245833023722419278449042799815796542799791433858382527825105413630363909686122949802424226900974403217896864813255850428017790214548279774095254588064575948097866592817535248672867204946153822199169222386601808340349310150553012063283499456808126673876336742675793559410298608620604278390786627173301130355558523284208259824871548382586726076696291382937344140675978382293942420575404049899256071011667936476597271737899654351116737150997461372856125444832571847222108298134373438577951882969233894941864466182052482265148576664430387926016085841957068139320764909670245275789825243553768157217117490065619807828503711041409382332204448748265431602059416177202206173018093111846110343377538115288959366529964644497204157719257946521242772459351691222233543097057831858564768625692761319835626051627342105511297727005650920698139913532420518921260123512100219098976118099824844435326483332471565108592485413243144714664879696553402899735551337829623861909463364746719982073126014497081731617836247391125632377322556607034669395057937369330039693444939679847487714064510117351749183196546564920323899425919859751003279767492098991710395625711332339222921895994128946228945056984450556630583161892115206266488944743979350329308890041571519057315700575907211540139329462054279750656889444923405009743193330662901098341535689776378405798965877796967304050317936993409453594745977250944506159600227298732849400904692482126309845651046686344780237622696117248179170055159064034738352930176074687633271876200369612841556532592728595826482229957841819305290005471527287225481450344281392594747607655039790765005241896252827468618825190976424854415321010740031779796718153326179003107059045340711840296210246640696457306226602389299297443552247508903101186210733099090693378666819507164512857988583999555930168477432053146018045671486336956880731579870571945408598132302565917907926446583536950613829228450744830803574748684594512369896443109089229571919032817636924893293476538339816850824498971459752896427881752482694486482730298884456610404065507750621004378637763068216113982165368111186284543013882575224923607370651468443495317869268239296642337766989403042797620212117312542037838832377910940415079185723270093851380534242177610327351177974530299457822166502975916175880912563761159782013179432693880458319457817470860723954747393879100992855638882512211061490049419940183334854216043919549259995843671345206969173358322769158305117810393491928904570650560900999704474560237136129689017056966894389614791784435795566937106469091752501287915439667821649862498413011873390752150698236523888538065770048070083094132911462053651134807756059488417544824359284227122168003282483033847241760046178350148189623396616322471117202991243844779272427593419299373116231531616413402403172492679110436331477527907124072651197054390744889420890813511457367507520476850958917032072779218521340757749363456962973133958571534658738383752625354619714048426350306117129193138553958321569690212456904767763764762179685757731026371557893241767103399837211902389076487265542538420210521818398492149135355552081609318262026139736358194868011072568360893407235606134987143419305515057498464939126212278942886061466700404233522030772387394076936179429253108496166582234516798429736478647633241338195072850175668754235733711943112378286562997234293768629845570491275026400771999708689317008434381730571478257603159914238849963158266786232304823633178000623119142014461397750250978039417208675908612027422391609785138898985212708213503050050793426951768302621157323291733784280152706312032816479097287729740517811149110779720741653436592616044400970803247979133419281109825143168164993786759069390329879353106445888769780773249825639958878649481628927509942751722940056913726625344739356963009086807507400283966762940137479946058991765445893767441430841629294938514268016980492256717563158248010485536367258337952144382293744259648529241714190825714758334553209360391064885471309460238413213882751119389452678605994160519694894473511455925023181771734958318194768757477124884211294406787091332710576608786663052677202259171498060241210074813609551796683269717718326390257133223834005631334781913559235619232696969676481434802486099420377645749315190753712859920449874360137675530046754290247356332338313722211855544201804521387407986268044747249971248970801250931058557618116273443098325114310151208025344622165304885711560873741141222865052247935639477222575872150477527081149648057638843251008670477291491445988580698995606275506143461395947328059640666926432856598020037116746880818964287787566491670133883950595790334039285361358579277526689519921165197290365797256566172381296906484222107128628710123461533306202438013837685147740193049998117111482655419328527575962170894607639025985471942051547088124897058109191978192381006219292513957059969395574973399319548975430848298974206817487720594612675668384680568145058303523180012539912457024835199861972552123668149365045889708174258397172655323728353619116488144480237344591287160805581301370194660345425212199203198276289949095787608443599189303478154310961833337449979990235951123426984701389659333040717349968766671054701622215444054985783981849817344637429243825099665873101045599645259880518931202744849696604371425045627368554432623802430011964660586048494420338750670159503192740381576114492130437394743842563564284539981404509810281386523612910168720192482838885977341729338373656794111990903819155970691425771405235635047465403456060914728986068455466432944208428069814823080412538227151475725241027298306088233384464636973249405740511284268353500351764265609101023905030209787433011441323132623418507203277506839682745816465975994031473508503412011186507109449140148719869500436245643749951382105098584300287428169914852372577364284720388142569705448229621141353683811967212055837880685432261529209624753935150906821179952698150020498885180945194801023939496104150251351380047745452859825619238962085300303172841206384310953952351620263883519039254874993784678263065780099690652730095797494653374094542070306572465223023186265823830443361598950315123895542962400871283333940778370667487055776565172916258887193375832161093843656384448471118873798774667648441578386055786717670757699510664190138475269798299819081761453649597378326511289547414230144877222801822814731785679848035086020129830346642563701397553750268032810684475721047504974159182366584295407199178581290657148987100374004637782232981733774564308606890593283717580076433661862730285790580146944030031994331131078012867511749028784583034178849125476940538106820953461072853553717309439241182609690137397429550307179784365723234671411677694979796638856925670265888854446072371225711704877809044187475086056749159693839208398169780772104532631980181516028320890269655259890030420714409996301870653602282004476440235842269014327525581074760111706405686305282865817475375451697238490432107763508758350135599928637892608087592557670576179111947601141021104611948376438076631025385007930673638448692986684861016461798752103183445603540328740125005788445568702987778566778788515091181602276926776657711225769040856851539770046401420304732908094948757478737941551226679407184285077121591450695618289896821327001138052193932272237128883248042443185787927792033779817382511143795559377009851271194974019639698631411415203392561970376831552879027034850212218481553149875197432685666491033725770081380514155646915780656878875804532908575051696334044329729685253108023821950277557525385748373994183406924158331669095110512375838301563205534192063931982875647158216374861535557754851058501313111536349466552846235296806749510247458825678245761345829384669805058132190491198203318321206210513748772438862105193576224892540188296850981262327391953258057294637698097876927993151816551471285954846419514723256408329263391701247418404795571520591953914202207133725683642575229447537310286720575603358181810404905531491351163182462602104193701728651578659847107914599770819834701354329623571437814363865439212837288410438991559428384700648988019044418390994346981105264808010446596197919880855151869963710137346682964906069116609129662236404948063285612034418799526595981874709144021852742856717459147196834596720859301364253223678444767341214372384833292915929291801703818582442364744933394882749742397355669841632334962133997273992659853803985314211041146561562632609682160777575468775410091189235641555941694399029194075386621273479605273415757387504199627374187843807677270780764597147006004763610586088285122172080841611953115917757228875680824836886513987089990555161417772921348352734841154268603259735276871221276029882213015708213918829797019971744932380298820231360116601325146933445309354310770860247872556560891057156581440180063651634241885874781652413310228919933883440645723955921351914806215806306396746420281351802019593325326171520898654166139525853340213498461992178198316717994250677100532115337041717699207587563357364731628086990404948646002505459919350952013682203855343027551965092830042488136423596811712173407351306828988438431389485312276936433894764017844163375914672326706484476084502416305123543388403049805029358366912802542993263560154227522917932850443003130673252842066549870158922109892403375002121572267377046208141868173332713495170810903716003299106193100592325845041462488737346946470865490461428266428875821540910804878651137215528907667843084161652381409834827542461700799426483118682940909218399677606947744085456776642871585796453400619196379757784667638319771161385002065743301394776749608999804511033807822890605181156096968507892947263150836667413938958424015168857759388872265379238683710391639675472663027318776618262831174528955107466850536039255336960436577573473408318591712709060078252935715037281756078329876709376373666338739372099226805529787324827966203250005256058577401887564406621063770398634570091201940092763865190957374743848980342245117243882640399782512713213975829208695474229476197359794898970892072430790719549239512920993502533281533548050588612694879999730155170619873628275618582137740014903681183444320242228881475177663381702095484711968752312524202847866591828078827806669323926244744630757582447369218986800216397196898986987229419055814667440097415156903150585013882726714066169748887189417932723940862194066797134230507558847657715976488796142863644091973841992821014633210376896961602570948196150941418231382391043156089751614785198901706286241334358774624048681145105059288771503994660122164397149766212265058012189871884182986163331449402609463415088867229213459985527442891246475317425318097905237420377823679610210938804150828467927530022546155455374758378483635127005935586796881208760358723428008123830263108543830072149243441258203004700901447029764043907885445232628115785873643289854044025782828901193283246447954603125086470090452815535179445660792532500388706821037563130232401244740531338072804165689506297092024949020517510821492267026017860909272819582284556975344042993252574335530301418351476637141557609189507285558785313336484118476255507259237307175638815800069885655329650050745147480882687071889174805335858925465000730285419459381028212933162437820865049572064116424282217958197999526543889262910586858879060341165637274721037660681018087795804101664986079305453372759655544167670758935943565694828842870127465568923258475432043532706031887272798775989020299294353582559480405863106490502117407654801107796168328075939504650945619688891208739157456055884719658417527892494288117464894920411865099740570147149134493484739417000506657930943674536389472182232581065529449323785644410290152201473787504427295675024128328128519679568313105073575290682353204330241689705369012002008452620149946138530182298847624161742220668928737858829844353409913546393761647550523339259568075119097710263053020989140632740656462635189383991521718120033269889539919198169228223903385668576477527795806080956521885526054891579510774475185198651572304366108703489767497201548186721162638194906057721047316210007407114145563109689390613440103835710144867812574755392868096349127476118248409400987117060465979905525891337133906301262966462241034786510440464687021113455112461513420706301516513908142643311709383289182503380950835449996605997007933896305361084446213114944887521465977207454689134127898125146145863614090706069551991522397368130178166013057622394916088825318511534247656049428507199401220065286188617834735038481280659533844899243936131320122008052260293680210711698618009015618004875386057057973252342027893335166328759297275281717964812962118054434667679361977214600259598120933995119286622153096449669213374956076671781024097525376090795343466277968075958843337276480344181509782958909450978098266215392030000250018117931856327560828861717895354579619243496686421201613626536154718998815427382679317295901394524982093344852608745497817296779579839393917611766406408957671723934830331099419265489097191026880050437130425425037239141502663720875577168239820130261791376102345918381109793483561375729168812081942763640210827191204664221263984624050362813375157198872901864913876600455679462410174992031701041297919070205423887946934601031086060996998090023636520824332418744255414107187657844687849486182579470177424987370065465578120042137357081301236519843215057882268889784277509416760048436320964911810684796312968283222087198206729789006614446309944616888843258724687678761332132268777938872780152551574865127606255093238095001486978512507953709432104807583465179291878648078586391520904065930966441347494005063754907863791489405842975946316061141602819727457244714238220207868426983808151077851287115723915767707111906968919878695435881852909681356629046057371218632334423756383078534777728160496478608050657395801490809427077622781265061456235992987547205784842083875199425360522327841108108998332984530531528946015535953637630328948025171367093569764343463081997837973790381956088728370047122978445665486456444201297485597425745656784025904203121754796013746564740734575654534575018907528385908530008620241793614113887752764435460724598845098157145989112232772058562394322473529613194586700756554056258776743183779719131640709457580491103054347885515632771540468936235504376664564368427626821644612759870547180762081637135113840807123281594353605488371510752487900143800893949263861472067222170929509798411720780279606297529998715512146917999807917052214372703511609469928999990726167343627321185399760011978786363968333005827534811658446361523280682341427687718230020539462937399742899907582577293750923073557684835326451000026684655400687614497580535668677064924017490942734177864744140782366133090227437976838612719246366023904849289171261485550936189238239590001742187293738627085524603235991098278169085338042174314873714605242908531158267617784615376089009983581052539484288870543460323457638173408515373538633165982208599539343809226101983579272906408053528026057089127263129763619257334226071452317014500519706064452490599962295764237466666030901933872162779814302703580638541963532409715255638852670064198127503335994179699006435838614353328879800157330698685362643450244509891442229822026270113031671211560502159989274310784884633405307665055787524100618030940821515320679067737752142397869158936530795587965406397289704485824909860072922133736332979470907141692815765894909307769867321266767805330487984632669493005329549894869580766172633321156305148365839960287643768897344061490968542753277973937176247134550003962254018840058553570850968538483088529921752349702730332366289126818057575202115469004956728285282645632225623311904773254380040590102521779625349009477611801825416729059805971329813523239080248162297099296072616554225639509011604923327822028921164306441254005039405724790772229039455478584409057110571870098786288598489499861442805800127996386054655055108036989349829254868011678456605931881656415660836527201112728851844712306815937324634309333921217304137201610926714682252450676837483227729819219005286302763220927572109622885435464146947170847394624230391447092737693686707320874048563296012482243589677869111887814145647277043256424801919229471921356182347213913456485843086102618450643492575847781581483428335702687371192736111437825019173866143644132411837971395123239288993400087720896280262726246041195114078464400875711706047276314587832376657374253503462831868261040766118772079135675228188297639097169342660570647565592954941684023148624757234416286535504363619886747928886293793066059122854408348961985311863029427044977392040053177040265173752139292395923341480520686589761529859966963579345510712672980482370356888630664398399241971481503954337507310273108530871136204358841894206796232067924268630334260221924177582567989082337885871607641322912735207179274607345578858402720197879103989200158845297786438192792910320708084758600622584065079668331532955595901661740711985969234460210540011097810781781562417034916830766263463970253312068329220120409238265894817329119567438819827505421568664832564221046810462962442701030824378402183370168819857306795400690809826115021760310337276746018095960661898137798315101037337738772305220029709815923642701768977755530704083943420887209091763981082017364991531331288052272111616100793225286391086720000631785056726393253853378598751194112476164239340497823458466750441190433793691129142770743016860287297893446057290196670180254650189566252448729008387101736708417878120148362451774702987239841017760364316467885520296042748529732597405252194754826473825986888218548997337025675375686430613726181526586524046945880495746693075828356736939882452650692762629256712252907070901175787295224060035075888936859188949020992247528666818386843338297237336890953287016414150102680341148548304064369138584583416927115374006772373402363096294146292703584368386939644051156370551275575346858766710270383930123205961342236589080921287207433339685100065756069480260290672350269746704790387835568060930595661436331351608951086144446455442146696319028984903569594165277785299057237740460130407807825856377922576886195643737527621031377949389652093697204082588822303720450079030668433536770117223186892830309373142523169498545195963767162855755463618167566677272122037767108046569995107744091565762011100366076058803532375152169668298072470826206364938039611913118543007868476049135964766880703360819899963522505529367155267911563698814286664520275126539644792230397472281753595898010669688361625095804329573177439630420171369188491151706870166890616762978938489110734900218096960268913749216377530530190757868382186120965816440537538094534165908067610114086486818073701231266603731281792393533094367461291216457499121130515680376533401498283757094339005168822861049063849401665916947634823953923817727226553875943192703736031553610963647744286364914330019781130527200853193857891832357499155992952896941295466634218921393413827235733483032008812124770536293435066744322533119091689148270406671716732056858536794926199649346361622965102153119410720099607364545631973624693270179469469259946970265367691650310342179839847119178252713826882751102590514621644137041070157434009790213230045376789881305283741497754801020287401468514171608870505521135342933448282993585470428273002762502776922563419315301547526292436458402153582337248276555453644930537447219256986923994052684988518509664184230181451910228087344625868329981333940729135784725741201008519176664714637613409210878329914963751943547704810721398935552017137239022182317444351084655406624323100816640606976571310785751923624211870758391987647813984155035025935188267712188381005968815005444007333310143515474582261608808439629936981782278711430449579358383171812559203485602300446739302202942415785549218693786097931237245013684646185795700846086423283427344456114836309537177103680526113925716921440394334342226628083626924310555324038634146889111151296127825394959480686722003693534896481529239529143519575990323663054460780531440713117802428518616331865531102114990910961535582096212405459481631719763210508630335801899475295564629501068880276237320809499446853150498123643202720091499754797271228488650762255940215380581908361702896980247809184436802366901313094352330641054519372306422312160399568265942154564839672139481247138794119140341895696805181375344124769418593308630432288204790062594871212961951764691578215645876334264434505847395796469158027406475729624793498085120075738940799979925381792514535784275838225553235397771411114132850067552533690248415418261663116871072826210527621988195271602813017667081886257653254264599177261011087651820392518971730713321015023184963503860641285030378968264960270400715990375693073266903719956299711545875128316336840254154843377575657165180529370811839427899542464070990283964297846969309041475909517228445813739590800258635638427679591737060059992344975554811390075083670228270240734185492634796400041058729961889513571623432136258308631362520311613091933790075340864979102223013399898709633535961261171343453826936481729020062035821164146713672328811745332278286839127657274030582707796660779019527777708593033952003619073781592257376625944319780134336361532049931523945996937205588983027628239017130291006541782714039671287068019793987514186450158626171658845437804240344323637431721541028805768494772128248496336468412949304124110725633700610574372396347380820582092607823712955000649013070064080203470459057432100505576981728774038362833757883055662625731105656469304616127076108560960108830345523816406668412615953978515227673423366939072049144780229945243461110392619573045342042985727848976583776254403505084079965777823979625623069327477404246762309608635711538365691148493920322198654856755356055836961002144493415405464914746143399948326567543408672667215530510728632582677754769265071500847244240914163894976242025421796757326059099615987205060582526095356714146382992891428798105654239663517457700321545095601981395905068774094321061219330839350531501592774536036631877410385304377468613334898558749925658955882302492596033148109956805960046931075164274824068797685599785184139658166907523900816109778584849477869817074863539851473253036167361349111308950231034236897763988284191410302955549192821351045048514667876385418765843875495100356795842774258973871554551328177608041227940537451532123260844356159636780078056906203151816598272769991857442199644104896489033188058491575082896996296885190441870859067628560651329809368042599580967269985394464691689155139060228376488986972632577796683952840832285239556953335352008415840521379061491402070658771954851596734003275336585369840827047184287391945989038904432529732215508614381904015086111830805946961056565484438712681304638194144105353412644788069729706655718715195351000780767340278545529182483361870598085285083522135358502982133881096303816216112298694560397157894381876335737938352636346750081592827042489276049603318177152885626791080950187285853244370875687393493455383125758652680945951525107947216119169039943766722948658694048153550665042810262448666317068212866713370270354651570151297183720274771103888409963998915860803403521296852329066751608582691230710502960146270871005226412771146378393773663244156896870242330925939839229769520531469058933946067025422947934833200437995544043247756173525589040443300043659384243394100463232505318236193827876397690062641612010524059211516156742440694670761746086654557190078379318573283782772466927444106732351009136985572824159027127025425228560036116898312361827590784605174565518829527620252706626249095933427536657281961269671333012569441778192319500200942055679650970312977248404936403454003446826219626488179371097072044623879541111456094252065783167217353064534727623188504382776979928798877748790893975280653434720238310244770808692228392031532156316355073857828751612343306065051668159966693343360895597190451938725435749269381997922682716520189591379371512772643304664218365698466680785484607364673476201173810582744299058527054547556015544960251401785240605853791500438531652064171921226467360960763168908384560932740406269155302429989342209933805948241101032147546332049225546560434499334116038180025842565800333366470092539807523477289569253184524724722207466976085171483721988710918628734145860130395872572798751701912710322144887716713436432300714822996775806670738417245054812471233257985285911595573780037997035621131299793922707785400886711530559084623073796305317823570841208982838733170017462513664956469297565351651926431659623767634561608060176436989099524986337546036230255726729195688087869813414634420798478450164392939465032987599247159954158134510399754619409452592169074933280181694306055414671212631581185363920519860863468216822837844173396875807344059548187386465609657623451842397494367853136703251180811473702554091405911816812614564604937098427734309448420666289941908815968581137187285983236350534356900214645774079036108979017760516037550842771066515322672869112257635006125971712199933261274505001934311875162919263425193191715816307318950129513052721352616243655627994186040419963003422518041732200019925688737373021865783796426034390153800416747955798023726897410927645196737287763485303383792117887644867960021601478465328227657663947183987505217094503667922939669423273116225045328174364668273862769080508654467322199628175629341697063020840535005570226328245665360640876930987399262470855760029693489572020298868409360319560976479983348835983180800360517487690851775101188766883357412095824100088309393527371892585328958988764428868373062499638461700841527863087269534058254085856247011679822372780913118131407071002509033983686413621427619685850753317682168094411475870550519928595889252120327808542331148830037642405230402109080056826612058796875300942988012257912760791322897437731218673584042043489323766357947249109963036798559641301394377252697182187747835275958695638103652486353178075342571503548675706949322576628941722450814746815127807644523671615178454150238964635070184321073185706706299496398323896467148137897873730551962932835238213776320863318796509002156584868022846042952440371257651403509386896818141819658117681528882781245651105332034641991729707398136295959095317734596667035871677619874283528754971363766611113251200462207866808515655783078167774697809704500602780833381555177204744877790253135706629932268242797905632398286247512920204099363193442661765818795671999210531207122571920431929408696803380212383409694740656666847479400238416997038012321484138556788368821960743288255922450625659705463563387783544823888318835356759912787085490697909918248986769433950152139457869640535242522230858409307211811433234577421536234141747885809569754566309370488142369210730900184366555817233555301367243585003225887852140180428157520191056381752577439275168610240534719409389272541579865624887814717449149380171219155409116849861644353390483181588726099590886896227637538033841673037409632162500644993459940663574390340941785866407215536032833796110816751736077312699808220528889553437640438345771105289280863365987467931107238150333965838025055862545460589720992502834349355466848025012324950956526920869444633304173499473159850369201342742758577484859429026319252369120735097462870491755092339499357350912035730486439548710918308797881993893881278835822651783929888354563196963030599743734097815109784684705562104469453312671464823992221713016696745496799410373927326581765393730516509583826197907452737124626279868644428715688363846649505940583515861117289863082334941229004158212557917813769004833287169108511487107331614284326133812300807082878063411977097402988989864325958971782623930932585936794607141147997641385958473449855338947666878394947390664317560925358922453285305449777565968747771724754872783186360622732889711747500226267538313129650458922904291395386688710025411447000732496766404184289220386587738819721189112140228930145259102139415107853850385002763661539952234436026707466252208445563710439299497054283352727504139745579712306785676259125439842707030528320877322192345164259727702891577348815838056533765607710798311324253525128828468066293105639856670560877525681819404687526582812774392640580831735327729472402582158187650035160319389345307190945062363758687324155534592360187945347479135151863603599504459512633361711841181734741880106392077438346865977867122150219296658934071942289625074560195685334089910086394398013757649934757669513134119444796974776665439913066694763616660183955556451705723432012664569596354181165355515939098987795244917775377921395925018064417630558956158735334156103657774872220043537495393774049335095477777820023360502881485636557437161512653691479569970208688766069244928908377208967207152590017565620740560630063319450383667155276459869442603488360685750536164373373240236397740822903955416765207874855195112099523725462146905975100886973868604150748174968057805866939485833456518476446365949937359727762673906918374605266260984568659665606669062925330433237001764771433537422673585726323942747049801027131680690633015300092605728227996148307955120063630546291702605485779892746494714100333347282732240567093099640188774940772828989621121723817661807204894361677546076035886634951573335975781112445500871359814996758350024917300409840762442271057799683037322957827842936707652771172061400300997089635387620805593805528648542787752717018563405644690776137472680689852503673582922424299440633042519537489243775893573753950595210369691411448554642320931487267407883043924968416125300394150397505665479621948627442778191908231169292152740002166971177421895930862271718045046101783703213998199933397366891022579327620124667834106939818349988751950598398440469602739725610014837093910181068263264104219340330910798880287586998483958053361207199980104583617934128178130001933883219015377447140804543797606161034644878656698326344732135633413090404818700685883171460282414519067923832181709834890127337004110667193659049655973346114907473600673611560757293448567862502369524930401547288396994827656377177877499340306107424804892393156621281686671278103755954676002713287455842260655787345234332530080903321122313321620662756931987807846036273595614176797004957636408164058975719199105373886872979086296491516538253505418369317216282439475666860192980708103249856813083425236912820464681803344364878909100458411276115824549962847448732412023811630303082742796708606828563287199869067698718717556116830720864216417495305079669289895330163692448470600829789045458386442813103852445410682585069011505479281758134755722302008658258964449576204061505928674119693294281862227666105021101437566848246622640690040595574356191105240136239571974124084754010355179285668396376715850310044085625847057914835633603571602353964927632699986441008932324967585726696558491224429400676334074975670794742573305954457242137581594667972915341576988106822627308444005146099373977060754032594943548831569173023655735978458427529202389490939160983431210213505937943416759092662856689603221829953813462989309210818779380819838800495423623543881069825225058758624146760393993222927448589047390390423420259282834026179046100190909885668205436309704522068836642749262837193841829933793101193598831777939579189854098262267760854948327238786286984664797314978095956963653406925377268227597331453539212138003486607226430049731183770040156620079097398228600098988692179272560823677282872422675006010021857381015043560892815436510786829097635446197160458816638655648383323878284143230367166229958052013331186702596327687208122811905954439777947153278651869425898035155627281483676940860848143345098958935487203747383625397688498579011842961565931011073321181820374462417361262582590307503537179632086649469107480599264260105016296291916674236633943863177039300803865129267732598831880461250272038153760700497023674499489757249478526476724934917637103800558039332903648576128269392697255614425311403927436631970655516471406566273824970515623285647791879015739722119719591610409230576134818359178692685107691751693600060161363949757979393948003972058363051543355992225199875830564690984091219020360741047410619342007310202821291453294215928386866142084098482279583236002290545865859878294709060737336132476370069331106247342980393595929382864443931690845237500163373396481545971797895320478918270987596635604537459318622939926379139036664034299416422198199650289168935630920950709761020675014765413802396106417222215588313111544419028944227512513569619000296993513868621547935366192600227099549177501335560956455428749611077518340661223036790055357798194686691552693034084313549679789981136050132204621511028198491361615141538730884301336208383145184608080208359020472448877352444344753237410834003441722721671753775814379749009155014936863582794098143172776165694581980986307018630933774407132538069953697581314864720616847760931152830616998460905232240288124013161722656176904401144789028648102753267145584904552144296936150883585806411432198867082882614152348623170174436958322745765770728558164780848513757530491118975533003927787504432204136484461946022297393159957479175726344557176304641601109841439550879610619998925267357264648191132320669574537892244922034271207577406081283347753028017676514079995969868542848574082924604843643429498645090684581764383864494367062825689447658290747977211655968507563284934521388142497544251389361018179969606512125346063448677335696088024074820473520437934096154495899386184973181327248333406547964744364429854046601372115495380333098812690692208577311743374962091399338391420433618517621387679378159077602614157251087204454009000173670631964973425064651985374256844774290759883424420351359886249250551959389562919952798940732814948393196416246153207994011951347127706102052351039035817868937743254093118835265266538952483085457418519891306272122913881981854603243253728589087823609273624665705790049895279568448826240140267710808900743202001702115620286264443166027920291190112864906185053239925645050888173657105163144202336628095764035238167573234905009850086153072698495114580004251090754793702037763324548208991617513110748775439320102327842929702655972885819334692627086399464140848042437288321233642841595189021472147808578382136558676506503125861294587429590014799217917483407555567815599297454228025811141760686980814177168798939161020351355454239633765752592190423837145137568908663559162685734730898697432590716783855684312418795721597619447511613068001573196447615281966465428978416533873864960938364152625925499639930554952035205581687314726254829832503193025502133779279864010910049348296707968283114164908371046311045100308393786820327514998576660712693724664981170318881217936673630794698394341565792157018546938141099338879994651600389788105246126280578030507777327830445712968926918773224895715788356208671417788695506180802919623354757202326279121578832279468257690661949317453611661215715944698102360720070819004646556598040634206614542427580567590909823486777251898601207024136794829759280472493216876332863680430141907163115517048102616711859469303860631833269604966660582981023447678167007262772316636894132242644617570360002532647948565455575249221069185875463214704862585028630367453229358902083376827604871133441626849091601804281723881920037378353953616657081525231843894910191621924476129492680782997059371139477528277572239972343897752768851978833240101600920191407346836427482295865105623351354476149300553473113490708186102106689031165006783728630417977298729266976049802798160997259029625907563034061282306270555725287386742725907193639253348679012550217866089657529163667085795344524935375604572170874100127620882970987292220904904320059685191311641633517764173360669778939833982539591390786774617142665245684655639906265140341375161203218296510677969068472844576960840152239414905543594996993545855236690573358439399102079358270994554694733098970975794173915742796363934542224630761216628054973909970648072539460966566554095715781737141086017317295651299114286964416541574431176810036141447282992214745896726657254666282186400030466623711109170686300128766102904018786545046796315324042707504968961728927616704994713158789869970440139271350235566690361263531810711667665580611825589627381582227880073529709627817731338421116455938830755458918117146438861420398229039432489950382875852971574694320908855870698800035946109259248560246172238701299460272596002034900627733077033049253945224028750246008929255420251731466638040407464536245566545862096654146669248003280943519456733476850099555320399811912091104984419137952339747281306953562679805796189064049058978311234058543270788250304736453623382830608194287350185010237945214941869398996132788350411667722507255824746986515237831838916901262787417188336900851249853390128457397170242387239276141597891788384128666107497015870025866320466153785335542917217747124011376117962160989583809361750209450522904304621995035069595062367202302357627839399527174496903438596433784071096705063163355476483360488898017203232428271391830483125354398314078656948659406943368816204642271130832220186992090000870241128152021989978795617865120513989214403988943106125430056752061581885133708493361441744556385569250572523765581703123430033367061950905440210635208976171892779158864975440727197141720535502044322074418562236469141216592789064436891385890249830829678440255123867878563663174329053817368305290850488452245245542294337250332553707781291895924752926177474181898512827293651607394018950452362208666886629896764004515416046623249708683040202558491243088842095843855864393933081472628430509162771328090305739944224824998547166590485630061699359266862116292004685646171683955448302053838266285339415340393817539920292766749704225896672073953150345655625764178260471534093883146021130804133679938155022711675651319136983980855315869943603396493889893576235046924490285183913911682183108261401043553791475561758906846133923852808371547472898464854023094688715941885420954603884402164390770183236917310527024390978327675971461641459125641161815218158180070828141678263761254722595980399155485147637111098013725854670868053534333636337636711334026542874204945335087020630192543389584860356708346277636866555792619714806671639616622051036881010984473516000175196512137811643344713030767729573774217089506967395699710355371367510370149356503384374485326161332137140399381261830737939825469568010628269673751418055208640409843025892279684377876057868799119150624352915825694731125488304310405959448728504437956504607354918282344883956673404001683051515597196848903053620514545184834430954616853175934743721071110575121055847869994598943812167896210105148914838233006239955729417841210638980772026339708096817303307401911569755324506462268866460126183522752925605487458571456096726563819391812684620166202647207729569640807344918749659141673950292133518279743954521593761231748118620921079497688869628949265536671190148955081637847158399243653035514571692690312599188884832622814855672568992493704920350906689461626099509945698501455430173751948401737025260220503474098167105820685833005761518645734043365135252677637956774791326009958285977728677156815571835041847747807154510065518171941343231753939601638509839601113759893954004421602245375996238212668280107932565662497094850081106646717796623485015190178156684914350158136898757266638417770974668823846961272879458503160771084046037730136052613823685453620529117006992469574419379898255928637965027689471224914637086196342891875392784906546770843380826134209061440884014129130365481553932110768935244025060030572129672625262789580163324016235799793735389066968485507579684150771608495489245433233863930251949071051417041057483445620885158947271320565528002931318312267862070041414887266548888760313451112902680102732005851895329669485987886214838368714179878854637061497058698314980004401196680206654299526458316557346919243250910473486805006671950976462324064216416908625359337248511364054332673759400799169399566421674917270544508579290759332730251038623864271526162316739037452357620919991616293222623621203610974611306468108809300788757672263633241427224459404646154368574064419721799849007059677891714763098649443429409606593697303817625924309753751748505906222553262007519998457244435694115990863304695095896540639054112429846273679083406740001476227628050013573765188861414365770383309364258927695087593432242471594692866717689307331732312418509811450938324390076314274012214560941661557251296863751827509928412219173124403803856770505434834152894162585583280194628909874241667736755669935216898712933479472220961778451847865433424166433593830935380997400676706494009710446669253094588022895721690786511472062572632434162826805953672468285100163876624413757916741900789293880942920930615595956966830809400856716717572411543962068642253434095772820779207359139679896352437146624233881556497531476472061320913037209053988598752820068120387487807639206956633244703630302428192950579708580634611223561638688922154038892801937302172768668877300799383249193399252072871446575399865237338384481496991909390416764901183758534029079088936471850600083415902820181829486147743306165978956357374956777807027169184087577448159620490001420318911501881168686707129096897351392445583964012839524642881302014491047110279505507203647715038716840063486534842202660268353849106944407615591268779642004139314514290637159044967558896317185832755702879517165118781205394983288986882787715939277170306189348480068979405291581769534345369049501645074529778659827775104021604780859234031220136996656867509312817635837526865334293165446924678517175752202196669965013635075257846815499223001006948590838368054586179478569762927503158310420933041178416460084433267619183941798509925660338119386688676350944017734002325883772321558632992193842144597428489259718825237872225278119452929649186636065590693655923329844755883547267678172296801211069124755597062862939719743914259123084123993379580543970778387825407682698066025954337668850308474387579195067502140642573251838754351125019325887111461444214314963974154680405791822879423220581867384071747508349642258184553540936207525778592267146485649149011083435504014210934858019570754917531536633834977585398073694055083347558298435696156626524209100003386316724160392468342931093570648478049586053891569326579845091568729415011953974746992348787467764437561410385307007531510096318604458158605200198470341388543859689604345926917907833851517342995720729621709208115194133078393374028215418510263895623108423203774413789965478103416568607980198365259821374730140776257021153972651979169278706250156292258218565877024190740320263326708158458934063101620308723287047737263918757616796284677780214520704902842073785546029849272508967477239515460341238656939686464411272795936312460355672826723498506300156183272275331565333308420146818088980835127523139235521290336904476438776619402086466776302035049316151955333494053027499980727215981847706567810457010275975104036732602001970424543674919912165973537792834985365616980597363287357834780682250060246163082848522154760379423745529690636784234097239226401745902079374076071754655648179318384751936484981656085366125049496491590663303864411304710337791860607801510899219629940683852613704999079833951593288952141176405729725589040275848184752715387783163352919641211260070584449324039049026081977299683072071700205942949164322885346713759342765111514793157860089025142130414852129277099801029384516224336330453122313537326073942963808017942901240625743863443961058294295479064997868118320296258045450190027321610328766718384920298566915210632601981257808955011370101479552076529596640204954778501753142672809438829539483199987285062623899619786046408881179635124255839788214865336586411507261600141605629767409728782335284158068612779475555497478534988794047068353922923476706101743777499787763869750608851266384167404443183063148791693936499976625900891266706820680572127235690180232717183620608203642773688954327324779284529150269240396799054611662261408813570898742347519060718974903797194300498035446587515732896392468590616494995819817505323513568031472669879035549888017865498956658420398619495455466656423953634432353856454591076109471763071132935405102093896447339476068753102257510696217547978428854024587061626309933905331518993656827487565705682860876088999249557907081159337915481045297869248481167377394430018140880979772636763287519876929660145334713446650431128927403287363397606080759045806730401610193657240356372155129873389179119530611887731653590803208973500912099006599837421233162633024634830694620028605976359891873453918517647262238973994640881473529881300390824069890232389882997710256706660524373640581900393253536574623628563898637143394805449649675520710672996254370474242465408650146273098344806921593617902953243501084689511477417215452518433589187057856093910898116839551533166346661675745605434361131638159048814261372491955562351783832711078662491886559817934727722379247821316957130327011599010243145943199017950765867071080684572513644468508412185956720147403227724568947929546152152156333296378578326106531483136033587604014434502901309387284261427410430160075280792389134442334240605231267221276691326367529284111592169863791860125314175852043668230463384703666908154657098578492782461133213103798071860368586720494799301682261034169269141898956511044841418344310629993599695099146846180677855957548724266705970306905022735749728280969945302345344990767465728082520601733025677256875337769854525997210134224969738430280096735429936406147843127477327999250057479137617328709429080012786774177401689007331179235059804845148679283297335277283812337178950417361927111322904395303457155753174361543135648275445177106741303822525919388042445546003603525109080801851633993008273219979167643975335711761520143366860826715591116311972431919329318496676601459942418565427170964058165463767503221140409415166340091077039957373059468335659226311070046445845600442841802156278344771252599865337848909976407148169769354983237202052943128974399910464589602460513438013012040434044620835786236111772695136314985064246326175466671384681406328464004840369356720667741641889418757030667129766638529443198633670059246447984372510520113644242537120884998610048999529043290316610038882975072215456729845465710926276588035952960600708659030971354274482832666197368809286799352092163934357998196028283747108790835767819714745629954709815797060586005783154553765952981005153110276246379107398955309052381143455985825073610110022618809194076226407118949809703432791373113951112453564743346158090636917662193044290377200495575748106756920705392770067668113096228848832605571909436579302794282931474463514508668000029537477842388056645449879539568390238306864559235002285074188095433141644619398001442669115801726797076557430930635152352921610382394871589380436757321984441207051629600989334244014232939433734013488264343510115535863840081511791503954434477765319651319544314731993670800267451608190099367196124840185359341963415194604121051252685802660811902441549550175492235148062248922234054574326331786345350226210262889826480014632678618288574793862226748758634510295387114875208514709186715250483983331677139621083962168733811507546743426015180831775086127013716691512991050333557711347570603054706228004488937210537465813510848287000745405023863395879108470322501260595343918182326368226713408140027251335933384767999003870211809439750957296319435911721075992202215421104589690127724451009578656036737150266207523443425241395978972860583492935591521342457412702157372944404343826129551862991668352994517951622833348346840028686238365079226678059886914569780689613306418525160653758949411989475095988734126658542072568319627649170232040167917119152638291052961036873502396953205629732767458629183987911945642133800167319304805879670316030696960772453120176426965464035543286505748458580597490614503818083897847538283985272336765543592873746659486752062027945500282010095848785956451760597675700554098484940558235268372834130751068755721259183635050238928529228584062267264670013211833055645304912036192240179417221697348007125604660292890902505545285249471287733037918658441529335029804851758664824880922919827583452171130146553051110702696604117626777886465661599745394636645072122563928767739548427988452043079910478415635204904007343431671587856142174662305393292348049179091894523124316909451383589637654436158613252820938455274169244660519152319580013399653603401304499082656985630068917477904363286534081555284814025874552241682620452192238769885589966745320433145035806750698874110274417600807279458234283378847634904762347585300096182955289330826767264000248354628798157313173814865533984445051829752884051072996079343774845214632741228803798969202039651103990496794861244366860552304754137924500422935570581191665636337442622433908490114351133763267136216622423821979243595909143968055711397761451345833504814238823619933022377101990792717503669119561244532664611008601962462593277777752611133481336314306621910448269278660613111917718541498923083628568852179833494086257667634719210105404090648093489347660530680874941723544590964107782332139733516075222751210811246077940682545715633092322001848260146312517278865815389898830988991458922557110014040742524711904390492318123203970492943230861533907012329221152423317058220404768450823386091975357756963234794688843843227341945405896915203261951818904640191037460624493080764752917011362264129257586030384301605553985459242384965236816556180178369562222808443216423002467579917924934299736238003006938593126825470989048692168137199418798020165190232683229801878642590996294364873560520537025322191103763049385784341381606720431271731556477103465715560980854085385934192276481089488744090243640635572054900273727285030538846171368014839200683449795176772152820998399957795618527465881312710136851464364364279918461130540995947799777827809778876298177957025729221198286075345449756788226170237560178972864451797934400221917443017665908927608317729403193017628179673915468111219350476159666096012835294985121746506775438707275224629828670666639781588326488269773831738489003523237589307509458840674263500125302508739954478281476828707035160881815502053206365538276479330391747359640566153997173428814015707807205336584751070621875310139543982976351784704739941529623313517051432251747425499211535341829087707334833795883502615968680167700908133823469223216794560936528647473566035144788653042667681846251130563612304939068340415156492365772276521397732067451383894811445747543816567578299836911524029550538135747943175389840008507721546587337546328395909909645671144616722416925281664872409497943336848671603768079887258354353738205063987984115361413052170046592428410094263586358076576719292193091863270853570051750510494815448066173402943412257976702209999839524681137754000456098654357937346307892800651827735275066982824834663099850305227530640158486505694458693060974961610959840633971014441281719029315124115048855173052282353200353481297730047600712719514233617254979747786597696134564124989170819783369437904120776479283378823752429277337698876373616213412167825384573740463324975440989952298681046825113558364560621362171943903409147347480373516331081007091507359418976224707308377942112428460348744299085423995520118723023733657274245466272832045284980004811244469594448202292887466179197318411082716681397537151857570168103814728534544332012458785788872323504840383326251044260345175888546238742575894530582681592634576199832872449081382577235512386115359880439865817513917663977377440333145277996665324947605345188976030849432803424804728826930391474517599009849497516767549914810167689670666498155106968111756364761362884326907854758078059301266090355342359620458435493575163069542317970243979371412982877068336525242015301136048145196572365094870846910547516760577231793073844825887107749872153437316030942067375596084995371270475711571863582605282840033204129020172147045263403913102217862313910688556662805870542938355293811609001045699771650757025955108979965817985805887337866810321273498329540722753570454271482662363489357039604157622616970908972256295089254127736631753521665567825172917684448743961890398673045103882244882912817340496895200923557627181859386162320536194735521724786722189794364129959402733302849764603824243739742891245394727608170728211073591187815093025371032184977144253177593847665945639436815250392762713554404904332508617229610980031066837589987533397679502711363389659074847362814463614750284125045697568647800114696016249288819069278458158943321810677611299430705296074697780388337915019591601931836573160167739755031811089591952325067226656088251449363574921272276942743251218510538110406482352424189769342358318326269706708452405694005308004396146076628918043850428581254819223909312677434786904591962485403031617953929418502486215365268592334918392976969218901166199971789359087063384251407515800765220587625517610648868262716924898618629746251961207612039049187680201424486872225257850818590490637652602206618260729698050697071555546975646424278470141283577322588800295326215907304588074296607043575668342748608883659052744933205323032176319431650495516900819102943678760162666041216544593795785302698916517726451341372004777432432413508927423438745771312228549517180008763220919838352922073330442123650908162644874249390385191403762161586311220191780847742019572185779377294543325641662540637224263282461924236632008200710016786699253810506657428392178674405080086235520755782520778563236795554393265569138838076075009835800224268628013372871880537581593843642170510782340920977253341114789884539412927865752109954076639650180364402841418643758334405985879019706999320421022435147854172662458541468737777952513055248622411415551541406620786010366907867828358783549066111734687408223354395890814640295522619203133858214746052306257096797284347510560451606498942785513643268236667003497789043378093584720410651565014738421769707384704614587672196842814818781958192507500565311828330170301870329090496766757139712233544176672943715171224088531567669557701506783162852380179465485867135869590649157814507724046402224522869285396479365890750452666678317705392231743284436300458490800230798611185450977940643220213643097973843672132978687605202363487673384761600628796887397067274824976701478217878187665143216000314861162566139181089713404508044489588663080185666330198401830574278233597399620415338790639205590977784297377303354205342290429384975361613463764636851236281141547768141797933374121344314693522637317542361907496274486488008575562660875963629606567731756963100871122168416273562920850806543372574796149556696286446459422941560896936970682401044578064063130589838490671778648620762117653811837174536615359434956667672970057021262520606207792095368753395601392766361547278973801193967124054072749567978474430423354085186455444582936218084396314255037128392163048556948091937371966340459288267182153540688035420526916935328486487412842689724837536765983562517424987136642198513728925760992292284282411289509867337259154956071120818815502874811451951312002459674732192552405395429184434888891752978641136505012421244041013156917835063334138688951350486466883828973259957312869898192289564631804145604324950410041180620260824675923443045700420649730014210752454572583278665269138657094867969809134739295208611101490038616145822252295951096714070263695823029936334648567214601613030136443929243907711461683016466402218594016185825075572223337265355341306392847075313211342142304928913049501242138619806145273531138221187300643294664920580316798291716500186722478195308152269703922021848829250785978653435355176329260960399062660074374379912569807822326729279208276015364264834569478420102618195052238249472542605388751330690492952549174044767317800014455756276989339570993817712320432639310495121525888099011994109883070189493328149392914277043628939135974304147237476433378376086299051871353232638226742870442330280741933055378253433833569243711085216429512991768582730176455641649769088795024082669642994570098153508496376189039555534863226794946332008638254916703238358572519424065573578508460094916870172884528218073031695489070341965143547272927995562150161369371868863865086614954003969902820065419700651284750271691393728922741033389639580542473249797739583398060101385217005723486162235819253229435040820286988869362115796011880544045679667587442093212538591033947200597644324137758135459102252208900633992200658984259462611238406797896258833440218928985744008249519049728019307751408328866954335566977236043580520661267792383746982345685627471289789008263017217385766076845065796273641949961846996580026011068808465937902649089723335589976906760715247445145667760362409236112599539460126669302202054133213667361412756059697226226130589094834681587142818322601211001736944920074785122736670975820463178338620160359887931141751921528302031948702685923844860147205266138938886055997252023716564354659607791511406984281600860504861243919402589256067189629392992872589285763744811798945516274589873138192737661723790341334732064831326523226331610858230871648642927093767673366229478518372737870128459205147158541469171595184332580078983530843885780966650296759233760919678399675768169940600788407114437730125374935136055003283290511573742120324706784757317091860272654808485161063537012836315160675217188681198498607547884303253347568260272852485916625088895516595863030322524465212493900840211945825694350790273860626515364032347155107367494494576009900323805535262900302733215563843793374333811404923443279745846482669261230600575824661522161555058531130636184445548097821523634295378111303737739330139121838393472161863162513827177900479168472325242428335566662400495801546051268127309351720870163835578732698365624938227857227782184696967560898798842179456939725680537108435302502986449270027729812557189997145378192613230228523136237156325293708544845740548279721315435663258902075701393831806798946691296330418590136608035033190190059161021218525950801685849981004868925056029358972854513739544999622041628749929049250148719184090951924674682752237360226881229734717202438168647171152551465466025170938015579648220950402377919049210362423439586246873982508451099040571591332340338415040824118327271162380815529942624448541646850217363215877082085757808655130855053648021689769647133769334556406692001205844137135568365473745539688422234635394961399615160336798250673949193251918912688574454402752760645201387970964671953478836995915606809620947172868353057021415991540124134373787040217635125092817444771647937774195457029162594864909864070635694760204194131662500454218024265033343368755811050620867172085280419042206207570329196932950464881466328970832648827190823839864694965852886783144356979188366026174310703493918527567555151385147301114171967146870690133038837946686560567889213434208464515162347333741668290648727538837852455577198570451281839487537691631819737974951052727592357956320992698888230572846981659745540070833490196609235410656031228061273159877521248200139715258362324530215090718787978963383819113139098309369620863184860146519140995876000227157098390554308371714556029240542434010657975980169446677892779992632827697352015419971553684197401564771869123722728864885461002360305086379128364922021053822922597590583782054273631927967958891041648947963760995220727141160037036719822916797970343403921396888478042081180705353095322817062514843964124639009051987529841250835883329410049983818908683751885178729007110587551465451564174589428254851107791969339807277279790670024513133074761812856052008500625821416221685010762778089212369722780785833086840306042951827955843204445445735714183117067763846139707014808743078994824248086451374868555214424260068027052186194567444939906416009762381799254527584381598988262362539600868843565074239533529731509785497611665184416429999451844235493563600785069223391809212197471703037853993980065823229794395059707557630597040195061796701324924320149655503198152094900229278799370298591181132103861246911810609999607675759162005903405880378413104341986585229234316178337889428781702922617563256561120853629409723762709630837250180379187749094199737459609244301701276376428556703784513472568667200498492455214502253197806448086551560965629698196730804720399431951034263171183653027545919351462695387746663140871356818262935144399063121226635106033820814464247483232799538397838192151857781878636652660844936642134567764989208066504613853953414541956247377450134783883132314998130747467127522293172171406117724335609102507572090733542635083870249743970085924903732870340525668535516754152382977046751045826554100291599971962365072419930838163906935565371562929446158186726302551966980921101949616045223994358071852679870711625767027034145094708167002572786350651228735529848549026275603619578150923381773766400945090812879935139093137324871229742383355286214541274862666094808080816052497835049326624668540484312028917004353733542752239674102861713642204181454334837127818043871430827118190326124876141091740753925766775470037922264856702978724745825409704732834640537593146504717800747176524156440133266881763482982776808090717763258669184912980721757385599748665356275216993863138519118460979744596089401882401113651278905042867519324771138136236521591043756294828982672337698767188410987761953088560850334464536879227538238982205005864298007350748100897529462949505306087204327619529100255954112044199302846699715281209121557294415218718871069297272252685880336716682244795710769815246665677582897716700098097943593493177440754894187091860969373130118075899241382784977433651271375767327128996678986704170510878437837704126522206748905029862994651818307566540689959838641294633937812425555766149038677469450917423358692260339404122571148579079626499216536754426950783751163609508468304097733221797497990244067017239569044075609784135113977169833072754812231439196745321506591084826547463417868147799984777157547517892861782991268874760459155833953977685878592238637281766412986606735830713414641122627676139403425985840994083925318513589382398752926290462929828874925396580466789182124857569204284415591767868146013015793581062766292040199157568133156826450404086343833692219256993025437569282186794279442410668424992438886393382004058007025292200651424650678878152112692531342975169156269266049434781298751501225885717038805824592558573716986203803902588877526644339819848188117958381103795119426654516178355179087859361751199436285385708074705661331466615881756660872644223978112136057683055944354033666755838785985283015740031687855052971138164405698013474733196032284653001232605140670400620708575976698159957849880747075126519197668429439209438412173020690539079619173250987082058812180569275242167499865307589940515773997452724801388103564601575402396315798570024948250729854216654371453501727136248135049313520901151544062701453445202199678540852367478101153034561689556253996562936880381299085915407224349913388185198578179782532305306924856111657642701438676703541233546562639685097695004114494507615668609930581605749084827769000047124505515759668400092235387505266367499605675437615223922797608663629203038990878558124038314121904443585708003800990355101645751216137822200682762163387772023367062494253418256066328533743998852250205524454895031804643197054912568237118732149113461218619048020338985531871107558334954774613764027481030926130980721763957332991934898137029107472593008944921349320937279746783347045741374346614839348129045441221836277824787667101192117355950781011820620297815097865234972737459111048991726892966763373983543741654196958121611125641419186309656466242516971896316222357549683078325894775031560814958670524538352806475348217774549393336141468581212008525509210285609546323390650271200452249704680652705207098106890118973385312500404991113081858387118868403485538878625509043418866031631613360805774464366909411510081885921076313143424409042207965027139693587335348847325197716297987025734640007687828788973239586785205924286678424136457003042799811731343003878729478891997696082939080235509496082830261861077729407237538508981775647929606627108292095204562340178679052073372457024102981056340110008728166513981997051389997239716049995826825889781427452077463324565451222380760245326479501302664232245005185211562925783756035134654743347406690630882170386248994585751721465744749269864771153702460394575153829418871050872801811337019263178927347997927529843307676825442130555926015390709385842671850652973232978967778145210363057250264912713240294325648413346925751290475297203854806447143368638143884734539533361499319249361475921172674057188553276801155623600860314901979122041212599687809819521075952295386933918885739034452792478719888676041960845668687702310950384487836226687677120109025460195140239264195848357958426039627066080183011014883366463605099691633260155068136948239233696009214452953852290655637924437565858676849425164777585883784264629129527867282178828599283282188651650396329468880638899788092323975003048326884903245726089399685327351151011574650463017856735506230286106224155306209893155025116095035610214382676089777013596467086105789756927643373697981189621932410975250599663695585147717943333827734992038560901179507259660267900524339076727189553866987374730698838964675590578395275459427131717542516529518223275992575431333494981812745776516591340211468047969500532088008176176008645748457717324967213713424159765482184127159721478675897605918311191782003825531721540797658470979271388248075961147294907886579571448683599104347619190641039096252317763062187525856731668709182076459242966556698084544758058503793817231871103233474853363699630652847363274422551346681787537530028682276720973682524156906323127932726247199152289465763515318448656290667349351501642593404773539535307827922972930889634515966112415045675550622560078694137588375197019246067504099724441968942764263985169144344665932052317690671480719952635369540744712063409255546950219239013698184257674802525823326096824016297718790765127380173310285907306525340622171067131422202495558837990454685062878215505948735464631489375656282821499985016283895313825389885317060978237639619696179848169382419731423080809793917225379162712273531222668539735840520030421926872918280366033451588186146249923625771254416146843303844576598929116623112082384987815416789210743457332972793993613897724941782019353549895817822533298770455815325746387146161228311387431849121745276001626111060342196470716469211308916006539308184400196354712268476307792152685641359037009208201714029401765372954727938111995826735233769879594756984735664693367754863937464859000984803599271881221829454776022336082538316690742019392786631102027316499147885420391349092020350096669947320932486464987976303591405631976734042745223579801002736854591083023733046379434468878841984387868536032009331664196861758699173991326719927383286078190141231542899284280716513398741589343970806757154432784839609194456457531573870279218386304234130936660047429522461309741384435331048935161122248765611591813748054567918321468740585077225955709604288084509159197109957446833527255357429548483958758289898354174904254240785678282092897651487617966266511001517680699088525041904314855641254683313117988870766971802359022373473071111776839580912727943474809651619931803914449044107132505535551884870525469463991405972007361526886803319307271555155604400869925540063966544132540571882459705483469856525524424044257175844604363610718617241353037055978619083968735591900514905710020184364526670390851397921461651613928765248691498639865833306243650892984839419280650330662470949412620454633981394216228005205806773703699535473153075830096485352392472802499219056260663485705636448953643611948341575255155606950693290244282207396939076367559322409854761910341366887188189828807255557976249666825978330054127554102715579100460757174326265243115343961767362320882391800153391990551942974373241787923498110864389641878312227001332941270026984523341679925169632957700414112077500719543760359656713334579848059885879578623534072868252961956395543484217519570346473008349059438716422070360292739965744640896889902590861020274644356405683728353732630428165383978245804252547982433038493728536685671791811954349637187644472859936641647259919152663349106492258238928815442813535842104405705168415845253301946175651747016546087652706508174173108331004677278613292356156162557856450560100822722851770518933300036543369409990673184055674131764304403035912465185159117135228274106606474376726508005715367085834588092182497531994705248622708980617021508393265716806959695837279985848760409239631928559396400672569431111264241114286149682761965466981967925803634272076151017459962723916474161886804972213315008112403170019420250691067400120762397186759796000495822991450355442945523344199600602413719667576828795721256290344119363986535678604992139496605868897823613989290413259677290003499905084989909572937434688625864680200903547150263914772466796302097316919263553006166180519778280665483159932009723053269597169494236355051524595031996407455660027689275478235310695628755230007668379695505694201255886607071636711159066364222113772288285140753357798869008719649643364712918225020486589743891354372038443692344499647334892877178217301039395878471423332649181826833292878850452255597556759326630516764111653451370414119812764608330688355249939061453796133128212420435112661277403916358934984545462168271509062496650236262693732922781756399740870998550104401248057129192281911038222615233746160313573783987611272154277023765010090805020951760529956272283529381335320234327893386939164134878918707341714530663162629299986595156083453062508734392692748507840009041998741270065110871421180957808789570883368292915484215631369438285999780945522410762663577714124040201023762242236987596124527042410652163407177703815838378416647056333444346660334707970084962903765189070229771682457777150752958739108601947639325122906151732215849249707411675473064440216650566058897082722845785215338624554632525492066238469423328465359990003046943055635542244407014282306632025555710554977912135564401628260016322006332603062888214118822591301245333617096974875157352517425267697195070259592318926913179958272966413762457187336862310658033590907724878891663233737587038363495342706703503412022019150997098920203234373258401042983419310255781324665886635117834537210047067496767045115426319844580347955757455553406034560822880578920757432224130498929612694145693617708395953559137165618967849127909078298838225473839298859607082431102283188612952470563974099303644831817161094406801351213427097318330147135087696769302596111915312226043040304448043606996238918351263345759678667235097467462473605860808094304647001849136480377301619853772658926925405075623525654807829490716233629469358811796180833022571330559490043066557084188946004073331848913008669219003276665707114494547260124775745055943201797452593484853204600062444062077416454817883068150832712505551536974737535362703354458689454463334565834415613994711775954196664584884634333537002996261994012560473190621284087542529388393542213003545259799774167017211186946462289516303962026846990126466525548887153112597744348574154928391914415498412810151105419394141804643577429578752746594819013230354547173467623480535189751020203534700522828749752049766287712692490150583475750104149851221985909828392597645123848845627416692143422309422878346775503289263540902323840390812359016681345982543875664639865440935093136164345660227845706118560552985080763355009184574995888988035629568198386019162791224057437210447200455233734357291722123960450438837295376916220005657939798169736799604576507363505931737209912300011229362530178474460611198115378244214819536907152216610845619379295919346093369458392221367939449958796908575549164270998754359319505025967339074930977606970414222530574173852476799162340414460601428458006200000415701923514161682920203085496915855486583134132895344062814066931866845750521030255850970067994860679051898686250949356072998607281603573343668893800904115820459640687696211320333323222616990774162002286550002578445222438298597522380322870782862452358643047921159347496105320874227187941342376093704567963157056734997573788861522919907467691741126140013843704533338200086383797416829019613925540133370482067332962761133618248135162403641792729870607832042808442589761673303890092742933331696254607689834690469984255820723018478350447842902973982897302393358504254922157694062450351777046396422610971341169931927333167866738106628554057104673424719162417480452975524880717111749511323766147500635968770024410623923904905665247820449053772890884647140479123823250542859011092010948039397705802139309970889914233177351873343534490247877769478103353917973382296473790626276863310047051479874565184988936106726326019341131904794562320569486514804442752303082506985384139806149588988256433630677666310022249861461179021891593991216533681470409634866203619346325999045719189416303811731049655965548224977522706670296370271370136512622477484126026227102251682696300495206210375435680798599613712829147413974088424682957625766597867952409073188529803856836836660123940408096719136046456682784218586738107493827823554028939134778242196099388906657017156965236327337997812361772239148743066350041412388755226854837075844105835517556758640318397250525070207717952111376631889412668470668969228462792718607950942533094404861473679029242149430249851081076313509811934130713520813412961088811959947157313788701968009448741949856547966533058521707551265496227316361489746513103636674372761519012581424823681889615067596701348503213044955476926075402866090507035319808727862890314016387880934711663843710533043621756551736977775427248181971965781060865662991304669927670185035913444921102863979452792406958230182105318543954773752529686328615841907511888435877552695293524911654231728763340206579894995667241866969929625580644005531794753465699288474235767327789699956056076426333961480014688959327522386086625806475158392283864526556323578925409466315957945980798409707280943562902975763141609858362070734702367761910496310729538586451658591954053312398814619615232006584117456481953600077843896748103308123967516439931616027435842302706402113912224100911851481098338600355771875848778414047240847329129242146577419978778780712995371898625867737476551551179230619714092338111400503689837830329264756011805223082187203661584996830275407957066208888289878999195342459111612548274027273591900872112309925084249659882897675491777358668618793625510757588213814142987895616800088123009948092809197384483912308906803323376351809299012596896968742224626793486857312680237155476016759149731557398984229541697919673844688011345971879905413259789975203280887759715241886346710651213909367065516472622489738443588839095767542739573042720020925631933929884237188397891776791161347032464217668467342157752117993030199995709392067324027486039218712870379554161519007740591661616353897218715234189085507435900852620535538877451678310813090982031356784253198216577798371815001737211128412039227188799907103166356145062459359254035392573517693692813937726655857977739601857998631291423564460370277367377167518718755639248997181778714026541413458701886868438190028313871929456949977587697416677509692251219953397656011529508361857075092627280143546542359610533117329217685071502071134121749804755853374027494546563229098622187830461633241380504411801993166779462898976796481285600421465384660985418948148959635156035756511135885775711577083754762775409992321430854962564531880054730178294009336209182209556271332570201109985487467883733741604485829528115715599757972542005491688173097210212273399503090117936880245685430549365590850774310037371253822560403063056326862285475181433330976325082696773970744789267394173377230050344379327751028216274048444223853696468619364208229152044831712827914436604891735775173815935263415271349553087708588305138081716606756904149585750905226581087252424290405250383072649004939490038339715797568964603923545560162417433242032257302468185087755179139359699429327535902936705797790062352347792242475112703822097180353281362387045261434435479575204527785484038708816425038058621674546932769653710031656808218601325065336687224477621864255561707592964990716286583987414913760933870592554218092173152043292039197409517633815254660546820797306492359735575421229142727810793829953861496183914489393347043922009302542452321178934307485544772036934068914077975116119377018605594515005982938268919007685921107910879272826462251386903366524697849623449215717574342392760367079906989448219291364543478367288393839592032504010980144535274321467868333751422134936246041940035606611319322225243848031344811829465764959242794012214370258814670032488091135722020837951466279131648805868789992604091407864260203507967306273495743907629693640158682655833689364370662231823034107013212999958413520504841850698817447670200230881278880916292311807006922511188601153392523435148632850678299887972767261331855996433838030696906948688346005869950796868341530699412264045614473635273734301286468407041908593858290344081436308240315729408868086826028806435091410291078051159248848118882384301801657109482859068218055815133047556255559734040306984743895774839488253355616706292987452973570680594257935104670824694681370718746771847240247833503018971633821466046675040493472998715086380195661188489443610857528225159440644701338347379938356268429862738723063826571049203925121167056073565633138773322187331063902424268584414913603158265258575568499518172794804635961056992138170659263904246652254133897252540053541022173996887134000639869440789177904763587485879739874918472811957290095909784339245696240062387143090966699327749895590807306417656222376694443679467288585743257125347286318070707045956482853526775334226189254579410357935372283900558553026541029660567608357192505925613298510905127233368812067916542480625508389878692796344340554359700891744025942804890325533651989034614638845591042352393232463373433716710401310178669558654081394086920055567502102698918255499362428543387863593151891645701920017878729835438332659232929051123795837958515377654033239263415421444677682627464698011960165352958488927227209789249011192949270711091684011177983739709477147021907610028507088596583325795330015742544552932088215247817372197872347125946726819908990641240858145934882146888878406988861524767100490843776569767339742469930549960342486297013362055987507738827163195079980835117020693188662366160004878759912334767557115648353774254048047453594293822910440076650567710669622558561411231371448016182833445459240970696337199479877511365032498923467075903339432353120993969291850786020343734675977204549362286458515777483233243486818547439558901189264811279557862887581089787238301743489020344532244094027673833083634804679712880953692743129840574327225240356061347741037424731070304238438175021104849315839846152463084376915685442644044827170315004598774948205857971483285042517402232825892861580950647513024285055269446436141714245903766157902687214863345845947647884176018806670284030549167980225255735072196934601581868220457452193885802753423347417072490569147752494793980883407051978979277820506033403874065428584984381653229988838491026862896719972199337323940608080408816115285359490050702388392731046539265056016369351312963451613175184346602321151355184408519699244795077920039093103612824706097893673468382381472205766937308421745356644542878495735855881313705976525742409574770151696466954855068712469772020276186400492428142224748646931917858047462077400617218267675988279459594472694682754039464633125363411942165162147371608902497106733938071412999702758761544766933244525801631662518700488336206494326552317949470946922686345146060714951618043109875824089193662262106122284283320305289298848046370368877510647856879640749646270948580890981239927470029422183926441592373205001551171071278161029895268074145905193334551445537409440032546651815514727165428329136501659314667916625005977855033321805851699134291315976951548749040111280921408431524402652079210466872112438102562093786153337213477581069112227131174820204665998746214936355893058377111351057613713628322088420036695519158866099346305418554427989995968893937153230606310527633158655251124428524699038161065085225541433611641553112717141200971119472621651015202496175807933473965052344564011714544991814339662790514181673776092760278683864466501881504491764553577922871389724688417592183035493951927661151536446514715667185129735533168352638713003350340956888641170388889219831904529288995223362797001570599007160806763308372493540324224256066982992414121372029467848194101392495252928439708437943366052966921057008033783587658331288598849146539812194488414778471092037900570566127134817375000535940246271226005967527612527499544068155087871671989241056609228824285619188808645452284092795486062610299495108081352656987979730589290567842373148343325678869953984030401794435575914028599749460150567827021494959960038362843901081287191877380043510814205808771035585986456662301160485932811855549586599394040137316208364417114583762733311456856727528697926333787756960137200501870868560553302885037417223411989902493938548660148955465048461567205084005489160681594554339177437498658703210030365423374335392908598211785776134602481346645412562517110337934344007105030636183657364911070899203981646456310229771718481349962991470545916060180896005001200612221955042718500759611355102202339476617698796517618262873368218709031990684913323547514981792436351461548340335164546256601901818520010141776241634573554895059230859001999324029497433640160094790349214776826371587718060392741495492819954690610759896542446579024834054016112830443386526353731268970988017348391563809974584246139997385052048019226235736337898287898743526964320148894282415625867370905315992556834537554086460378646621771207879713619107661556766048942361276354305961645888317764769654259144362963912802937292927346063842518225560422677866943940992250147201335251772295475001900042334675005282531397350059786669325814638881473771606248689221352467282050297992266029064958847472114329924894645954053325414694523278412347885167179769010303975776733759372272628622263841641282828111572482478935894072881018567547175857867507280761696240083564470749139999001912651557380122662405813310176985653399883023266935328887126384506842666110416088134453742607162597402226931326369973558642711008347609878392636115937107580366905587245899727486683884953653016128799171433906090230140270863445194392452268729105787184943565213871968796908950722970221669259936942753502812638471427809880220272865417448254885133965894671724458663191768382380707386312626675136164082608650675045680140714084462457168651121886744809049851136597981960978648263758651143372331407848582565996976822530343970673426679158731387110685833641351640202551855528730103163959758127319304933887276541181528396411699648184797280402590455702058019041486483467397765047295962074085626832671387674281236178112897651339079410031475228094189989379532593362745252710692432541204914897299205023227878385960110925926395988981056840205706777489563950049212363404991528982151019774125838493009294977436377728609728989736083868286426068326724180277657457484197022407679696513927066755847275934598390429270362067030422362455537061242708600365492906090636792520399313694837454680594155492683711419746049225829100511778971921444686931489086856552145416246886229878551223735459070331819910465737733918268784695601320554544492845815456920410227122298835838742449961397074819933082121829833283415165265018449427973899578130784952862387179607335864608749985470976998007302107291022383217163751096112038305342274338064973501643283859000481622531200093785687841379860021523157844060892851387430069866462561880245385636843698247674159377833936416032280261295952720721985540194217356958253538954856456428401455800527147738488072309217896979139859072724014481526965636066399356262396939740565055770711229649056410848745136814640821209672870188043492163255248940700610501426298112693815310579647056922158213105115234001035859654427693386081148975259986131903670336278815941666049529644562465593584923797800241243595501895225691585783184001230061748965449626032253347335310649589472005832615155497523634076991649034280604344588671508386675018862150139508696373264369756177361924430874520149033060656682049691288302665061269814923395609649337310704360388427719179500693436905710868372914502366796170664639579907997538722017189860570927189493086934394040877185016550052042163771522884833910751008555540368317746695048163449242436250525505010156127375394446687988755466588482425874518852950892082172872982023791150554014136694804286445024791016521473564508621033820089180845836809317019847415318252409545099905055593951231000847589364567773222439184656335235430643219540112766785618557886694969020460217394241870576113483361871275313683803887966986154694406187534037717640343832597772813233094218515720971277738675720477163038241261221937269435370465035636491909658820743234300953785741819422510032350595963082562320356997668287290953273473324086310533198746660543437158020175671538550898962983258719211934014566149186890362815379230129730666355295983419480815186679303200522341989414993410122854925287991526486039403256569644102857055820756738513400198224381234775227377195175415666083078858561983733155869121492740437525064313305495255526818320099885771218925489217266019320503399594228756537887620691395644696415935730097239547077831005706483595024227488603099054456512115866736257717648254730257496265922176420678679114993309315584972525729751118891199267831860812615480379772755099307140357312369001669415848049439828005942970573408796517824161815417037025784955388219357388652251272597918405519546826225902175838747396581618730368088589274710522603511173048248528404009775693017681917887109313992578517796056489390882535896449209125373393641432283867700741601477539026779879276331678957896678291761233773866589960220922368007162321425881986373252495899045841039174434467551793337240088994438084092687274609196600340637206225556041046073867536533425795077884289881561607123509733992403631313201777069716350569830668631659272458825781774374146303556264202224800761370714739482527873286508382608896202016511297436975217056937089266074222726274376426309404430001857227723599056900636484879548740825251100329503137320897285098918121405133440219369906683883113218338517427505429630162100476259843092418569573206985232753672370388954149386592114060862468760757705981609444520746293158507827755813272592671670089557242490310081509584554042131833414522497011373955727809635288417030553607578142148561388400239139996324827113277348437945654146293182998929238257593051251127902472999933501279640846322038529694927889561863775692348843948991904330592273302582874625890990105972953306559773929024629224256393125087340894770633513826966000809433498422967071189853370888275953841261857469643235058277799923574911868129656743556019523037059529947741363229866700797248706231838363597809930962060639942888148234204880124712547169168687357743369119033054234334252522493450455539453043691726564790313890021446862458232260722640649088033560627773476483032321603223398625873599506944195980807810915789003501400429583685905926785671764663066674311966237983498599928315608141158495632508640083775826552612514161159829436570715701648885499329888027541193560198036362910871261188915079770507234020681671481600123804429726846495041510409887519284715931673613859180469560299798409714051374364591893942802989336272565903845701942231939299158540321137153483741045437900923767487558690472012064055289157622201373005536765267252964691896215958248990479032728851285275801027962087894751875201922732394767277344886923961338793686145084693964859445193988783306088317300286349391935539097704162254939295833473383111656829124187214092618680391198362644502135129485493092855865329951843112317355912693099999440115753966236131073488708977942206481375351921871477501658234210011520947633557632710995564471099082844897417193033076213986375822126149756236688511047834955340630471135564274447782759311824156126594500442380321951313373799520381547569924442532642987697999374746495750740695414627712494627499402529579318659236375097564938139633074545090156881595736048331795833373643179314794640870308612868654219542326419035353003803217416803156217294517344818978415550959350623706870684475077906883504373716930776279778797090246794385317518982326185343810571305179746193730597680723772481067346475269626437214169243728849200243091503079354177028325112100643382162045405650213989085297876348481900273553423260927393633412747829087069231812110267065911706873413601139755497118176692170594112895463104965983255648203318538894872149343712295559378416559141433027310100552699182480961540262472370303711889559000014262396809944431663904174483537346356489440649653740997712547190696457209629650096584363190292151349511059892904199186750386653128105020335616347043043403303358961231392980256933798262408346880826095266085373942786100348371042178914283608442379940945556901470048194280162145040174964995142162620259357551331844819518095628780317304822146302586285189608664829801179110433097133785015720440379100944000852212214261652931713023075757718990527228433078201118213735595323557209370373810083066487878723672515374406572458726121251426403794339131302138085510298559278982127995831935605695886202090703447917312677967381747646084321816175124461143661334091427084802917122614417691476128732527395514049426596689154782910843508396201697467469002554827741317004906543945554982463685519455045760862682025689012880185192104179196486450443586302544482221183383156981897522002217121139869953306812921979494016597088818309675835609797330977898261742241139439973685223329609549093648025991629805696066773590997003525482944537933265970155937018226401191384191244203609573999769257087906014154143436024552870820743197934935919239155461303029214976087286446294559445260647460345269633518305920897939029629889862301445628078167843425706525073083296779053614159277204267709665062036947984489662193518197950632064528416467648905646414323542480965224008940883819471485242638223835159691651135527117657551891394511385105906623603708305794669096240395959044706065750455716132181191330032276053969788104400946938158028284070571533384553639327052010152767302501265939246856887278796455825618512404298692451454816575261480704867326416180716590235411954030656089850116073278040523710542538751039912304845006199711423476312538028259763576722784638796901523162621156040854664357440134490744384673869429217090761825350783975106650742711947483546451234168610101311928520681528661005172899792075429049070229600999434799584851500845742601676157576910745691868475774397760382052082796742285969281728019835891301338373414445463384994833704167905447057510857502588959660948331471209267403011696264111849115273042650090911620724474733908855116847937121574272831121279667726529536016586485124432068031521449945007316592885008000969105973719293574985291880820548878725194538025343971002021900644217950208336973179772949278688375217633773205712319818923521901571301460555387117137572866049801107021432031362185685829647698574506003229370675486532675500994153771372943646794765308232949557560939043763871496725864134838325281157225833407932502843334508299193431225068983248308868606235173219614527489781746101381482360258155074479315054354891982015185854481303453424805513275973501402616046030914516370125427839815026390167589513855838709923886064745245737763831783553268537026726516395931544532835761254855306339443613698584945425616913400414337705947402284737275012859861804764849662480581425737266368972288247543806164624102941034315764504575923310104689543370013387918119575488895584710469439126309222312855625329967282218279265694164939453437540603641150454752567936211051858514867286259155475997508924500057781633441788293167324453096996260468458953556474339064911824243627790779648864894075569806955460266389097159819388618667842139374666694618110461531410503173855215606912284313804541325590624595610714974497936453332251721164510434209697145353449817641385092975981458711889940148966070243346670132993554845068865636439157347139620956768785432697447819130096056115377484252825037261413490871460266935199355852933853977321815387206699354533694253527160408411759568904126332500766757699503143963752803464627213887856193785059538452668235997936834925322322055148162993961110427995019300534624546003936123626735072537862359993350854508630748871813547294976681363607850308876750005364097888839616004086089244259332620738305371501614275523118882067332256028266582701231103550432011309675327584251282811291780669471780228228964394101339304143329772655485616704371271637662228579916885071605910404069336852416513576378743300710323022979538984818324080071866770728499376882349596604550207124553017688559683321013166042994246758667684029996463300009194903764488848036763243829706049551849943279508260994179593821798296063833606261344491347025935745089326946282417941538807562303126412977129025370572518670219202821970125234510309507687027219954165953905259322961312415270603705998618941339171499722016234945308046224958667499292069030472241479572893221959450829009344130047503024897736510485054010016380082070708497864731691619372426081457757101610972428764829782210518073824459367625410213751701522978717476799140395721092390571635732914525138063088803000979080700348081554785147626581539716192155107527799746306285072676443650613022523450011548359023531242669039602121563442401662984981378536518643620209870660422287512446439827330328883813549391521680396359882264334143319743782262612213214020055524119202836339185431625283143348279360171595151410116978648775643518393339836338211887511546205270339909392181963391837389261547451029597526477871339936708115672754530888244219330799456734227702683118347393801401657069367519063402098341677038074542020066428301601228045658959174309043988462799259292194888044444340728153305464263096120001467730593944989147059124735903752135280545382649948349143219428625760681428992529231426932310197335286421220916619412049567387470719937395606635019825595365491245624103987161855974616651625220885460772710097124428238803207421030970870531443785125100483001213495025320023648881574782156745936227566040685917004842517180620622533901426319978340291609575119758062193210274689241636272443939125342731116059572809015409231276841097753828008952523895952505151953073318441077464503385233344189793713446928858665930933782633757199616515683198454952640226935965059080982336184693649881626066160706347076559507868818587276993660859992333245125578754447403158416798382288330525211151592625774780443659959277396823267196243365658163463940714566929092944479629830314609186744468190241264950919584605724990146429726029977858942730314867210805707609419931361365022938002219404491941807985507017006335201161921844009678623320278136700993947341995308714573498653755932983574133275423221129078099001804388990693648109748646050062067143165071427758829788262772206205108790489875815439221181647081194798602502627338033337253875994970081529456137429288417409462716378324324342982600472846576295664581395577201527528833544032365344024278554310117193099012630904217096681907294609281313757421419577571381142081039069549137094474088533817939622302245502804455918648924430957928531267085624550794960203055815734076882920976511740610538224018528246150830460858071371482043512635859423006084341728926264300985004545942841857698653597289071907206513488596616916570375143039084752881909914572951747837591548078241781223743097226327263461605244376567031291492268352881638969097757358872370927436714526351582412603444748557506412530243272874239610868676985640095182656127926337765064238536636813538138403599917497518280895642947203915948050035908043482659988084586394264301026268211696085991594408406638667463140572772249966091594597708163102024391338599629066061355325818144200627948725020129979465182296281367418825957993236678237835707911671080438797504337312538371347174980321772694369152250723711155477732132958386541744584782069680685028749075834813505893252787218927857117454831701130078336602253732437720631046170607376333864289064249426565557371110835504204326860121099638761191963338355921090088660697023155158620089916577834694057211696287023686219280640800992173642601457644097101360957252404949245330011544181671484516600921511680388478344946569995622826421306449426104636771851004427089827009444559484785257664178742075251158393790099201896578703807401129915151277238692287557788527184141667960070431164026559040950438418945295907587454373412076411367012781170888688830861857926001520300993191181263542060274403337889727774780101603967315718703598772826254554596920077790454004696508788120920128550916361909738133944025207371583780364004751923558251654952344138136708750539093038084013674606842157656776003539206940092951047435342410835081699319462207508388277327971273794241250955212950253210423225696552553676752784667434813400407620087295616964528083769807213024628715532470423897565948902491414842739568449585071817021494567431017720320926762079002978530282739286294714127088681895726653588158172851490027476060506990637906425949805313100277697652056857944538794560330499325665772421372013463953230125908373262149223146193636088830957020035468254451345214892475950554030139840636108745454393562975443154424733421179757574524337494107156491509024832045670010442704862788380811985032798340202728746817872642031999646385399281413930056876515541158879776719448751500291296103994394667758449327617645663526765599242340995574817966942235076179142864862733273756080743089048451393605759488789307238547047571679943103758041655675522729395310400084276319086288489809408301420938277472548143559279522925242622130877249195964476772676503911747952554045763497329666643110447939222135848998118437759445576638711457745975885756052434469918174166242085277489543617434661503426686938582192263677250457954855027941460344845095241798407823919088410352143915179375003017531393331382600545609319417497582671030042356372168966165807822073241841592093413315070257321201955541480620683825145023251853045945992076371870548306001823789685584715571049954675154363788643522224580015163943762669469359535078038707944848627779626193477965763158904768707920545485291001375125195350904662251823313147118702224338476136130138779163603401711776153137949477858881594203994235025573915202804620969610337775865505730605065061007280932481586714845057624105657076826815036095460422778554881504660801475564920954570469986785421156277129227389495565638077509045677635483585357203000728795064547763626792315193123082535835725562589307081889023658748044443652943016708424831123697282594399999531038105560469891693251876453596404099722865927985101021016890026268992188279776443246632964665154618889875365691993349680335984871125375040718486594305949346600499958669048032166652988515088385712377737394045223261195019641094572877414327222979583146964216744185837383216037666071559972501583189634034846507126275907377222668113508212609405686910371865315273052682548548589984473090542110307475275264913742364209005225188976484014797243696778134643869531901069208968473185040198103026208425233502261901097482161706942669446358464647856311266140829390511804789452292617004900335570091373408132846318520549372714323049781455300335864623376125667552143073355741120268960454995748834267191466578333363507037880132820813215615279943178680259845751141705868609186640472230570236643894123922811980054327182867781259301256263923390189311663630558417658774942857295863351267971689539793422093342826392478399307249260179008000891482288258409705479852961824991472180744924830531410418483956778513959112330343121187289203958868585251934328024992047440252915946838807112544449898221715152952290841795565406874016940681804136047249283193609978147551113597708251697678396592743867665686655908467170940242713424525072405889388827207592874336894360036525595775246672984484606533483209378630632793644873132318266334223270074521304613453301578110198518588511066150901834565241815752761586995345715751769343596572418170662529691010244975283196208140961769545684016567122991686915240781172068201877804197609622514427625945302385168987286117380914008899735794023409916584055624412659661783939569577354802239168727345844964161447857858968692519093649862215532082822275552105517484574896598062537909897567519128125680312733416112927787877582765360671873585204194530417166396427624622883065344957318583145786393107038007723587119119827288934632630455131087028508507362069160035875705977427285431688535343960381429991476440591469668475150152861559696319034650580468434702297726560562172198885363525496716088373596749190196618904743796095214323249354903369490627880593871023823882665757672300099730878482495495593177050622218712081308766101258710050638574522252165560023050504519423970130958236631998744793582351991902422120337623163006449237478441504833299939989094618373868230643705925186090941988999500100622785306229903003458766465284104446498852937101000392883981987194553307957361254639671097135395266989523293497481132430114048663232324740678478669404970491272335073406654877419330085847720834210244301911587213797934864401148529252309284231322879693529181707333450870113281706468816891486885309197551085614649961996080042464792288525032496041413072488226067594930410513617445242070250362992691179271979171063152310848994210340323733579216802045379096243435965763096979923843253015701468528384701743755937363078839979757977085302950651279450403997200767931411942663176929889895082287860801111807608166511776127729578910114261850715835626165283637019297281847373570578834482492387927966246406531625662435531137533591025491838293051872358510753075339352348250268466189003993126659941990649505797329487074384866650247703492319945349290119996147545364967053250432357767969447561548929693481778338059983919627050112578660784999390487247960903722631181935799578287470849774155169219377274909217860432813407130752003636777418629333928787359504662137782937158484326476184336336536084202296359272201983052056887308571716110703226737385620871238876077526644009566956252961143994662721833405937527376826639139863773483452396481140857755578494301714080784074429339088852666210431799128627452262376203554926120724222964688915792231681738082127587968481363761095488070622084339650684580241313672131789854064358649196668339738805703279408533007129034942071337390395280900365982111360010523970681176143058486549456168159508896650187528294238942178330537238122917484368488332992533856941388633128788453361087931759123539195729756898917165538033053768421612995500849403091733605427452567323176361931020242653616027246178064166065684808768932282797354865860601573431059400469731928154914920199450392585199180488622763435780355554287979493821053107179809442540073738953725904910544742469232047909954022041422598624843063287218249295742473478916907128486485929228632807418718191986129086734142417877941389477990506797913426685734080470755899984257088005607209560807562650034765182222283693375420103482238692630170080122629316130295588151824176678315231201125127552261877414578692549772440007877290536280557613756105585743047628230520646013093209674541628215352704776599850129959800635190253456989260963564281300392248186608455329487251237215895920476636321362806551028618061707743982322408631386544927457095684987632457326574952178706899892789547721922258382761236770168484285261611211036120849855010610695925845136877317516788557228154152344805692391204341267515147854082531687197109888243465406240746225550783273585782288745790749081772364939274569823216787919409683346457879256043367263764360151767055273486074263119134503250382197264150078408639520544164510091819135668931624675810655275376650806049229018559565907410320122489491918357293219554536788938283227001409621643718361034933025841275992139498015508434066844744674031780617874652404200924163708117861492166114721510052230168249926583031403619001451295478711270144536418584367317598620414157357856837075501563563221998766531975849171128046030467545093827173925809784299881227578461680507921987371869292362216353615275287404753236113010150446369523044747495514476253232333093751979124811173607202596872610355303655321876263487586828062570141615712041769055066991313258074298065060547000536709708651188155648693210060253397107453291555855494350725352930744367303015014479926950058867619540059151972306111039899914202631071115810398468428474761392017366906762089796860359184943747531135065385769537676908714234636746850428743864744366135834624844119524604723346847078211488445491343221965257693110101461469344174899360741457897655019332135194410437947797414263824578786122183127042345918660969711389344395302412329080856761456204479844280782747353322576696907999570431365631119708118961034138671621746400781662940919074897087586336543223067050272038673318006641011471638763871320138319949111292816873896612175583259729821772624063847297127440547706643223438943291638501188467335772180510435748977223736867097881813097091611007513971539776420744409026215614347447023398957057794615639408654153574515370714049325942988464467659003812110954997687376666157801111848011825058639245051468940794723386572999623274151838398170684047344019071899813120959474284390840722784235016452478370719467481375732182192541903595676702688110529323518235364347167567546122676410674579086159690513674434670771320530531212937560996910803431967420268195636185806252756841824467183844123095573462636184723455536417816480135817966765992930320996001027429008398285045144050804049544191181386440305935118941628707679146377489824803064441886919665458030637825866671115431830125630215681632291652310890877070346408123482581246711036107240775806689430105832521413931675122715721658304892658394341180532192119551540003194126186884571421371112771976882630957581068293489065481061355096106000219218230088347890387792536915122509616416001370471342700344240402184242879136476609321102459132044738331016795166830661250065682114918212993661924395530929906686883741961565691487412921113436318195849832432423930536410267313310823399420846139792712042218737925149707498737073927210353657558659717805445426595620917485717593989632985662193616371914849225793428859197638962175382976017131770490349513576831858711051123828175534211694441730642117965538141894839949454858776186038843179041664472345062444752640163531317701523388143753479985809467436988164149982529001469389575494597125646788261971784107489474548679334623265556027016266751605878019307914542608921123784996976583506571765356726692459560820947572865562667636146758642700034460409987035928007518160262427508389400895108464905802209176418742691694749048340210994540055868189511997879198116501603658312754038399153038963974680869911538112727228239401051727368688175776896657449060872103359143480239457052555957556252991706716792888524707077113722730971193058757942941287449451008952608043765627464764314937574779617377772502625209022187095711346225452937702074618239856721760997025190083636552147363531693591116321342255610339344238050392692923256844292071096798688977373675289633040247127980867436707363906680866695318060532256047195546044433072869419162031708771795572148799907657036231163212593018191032226063339371553614238702276411303995062825874910195748338848741739868025746238574877588199947382582173425360833857237863279885475027765640970984250911459257428230382383899367019321753893295147304904804065173845868050596558935577379867021270186574200192834035957228476880310905350375532484921394579091065595264028246855781524068857158374927528250039731934716560265295335123222149388489276959702207176733215251498827813460456653629532301494519533027520065770555941133278627758584128847901690659331285516331428141367213978717833995859976207871405061260090234198977950950180597030831752842457303079910613475767011192977340577563538501955434717514540041442292917064756573990166032312084626920035930847234172135574201845177986420050849613433985169544815948087815906032066476441939634672477673218072690807038546935585645539477838893735558262126624956708808466193491181365937622236041321777275916788323455543115648817237394551888266292723313893359046158583255908624599749701917332896979365932588128101584078129642636706676072611002150806953005888744099476996959568349661356370429376281817193270187641340387678049015650038501554917854406207100034958367955376663670209072025103410426752938538417756198734663499155092831307210298496880951362904780344371394730192464542133752747724335704374010318082637369628933723592574423423872775782249043023800898956147340492366200402194571935228332241002937957387711225160506930585331293063042412133482423960212124995319596651337174775605360881507543959560359405914616331395673612123613808349581911626351268893106554385757837649751256503449278396441929319981370798954908656403526193696821379559616603744353317762676927072119620095077345513319422218811154548532066951139995225853924993833976672268477820022547513149933658606622115671110742093467852745032006351952918050092640435014367164807424704320842407609494369678578803482739500523821636538896643467564478164506676083277715254341035731195711495105196372836054371094873402739304390765426704018216378030297008441224403677227772538921217566790902909042459575677376415766168784426399953862204071342967884257490688983193783058719460062155987923904074031364654958351142931484647097580942615996418455388304779120842086466364066499793582170202541972214466235913024952169420446254216983908578577860092109952980838548278428756081814654337330172280217781900318473015129954137784680476726546949482315541547247226647168386921039616820995729657630183508263887016806897043321670706510273103341837170479943989877734388321628700814183624404553475590625828097847601356677453916635802078210776321760572982571470997103452281468860747607551530797213774509782128370592895128056528275598115359374834666810941745461387463135585635826522420847484066008945469672951999004440204308163349795542373874272580230406500616208717957376213275086373876917136629988009424607866975135263236851939716380578411445001412408326178949531472873636245150338375807497351557698887622563383343605986050589954009913911942949757765080158580438635016030181987492889373901075261403752742671145405656042259723057809412273085006714778413104078790992983838892256227087180507453620894616192246369934839875285048980457657686409150132824599022989611509561888592498429862756714522474942837282229208880394262233973783508272574478421385052194272572987344458022682091206485816977144032842674022944977370093543006664005216636741340429533998405683659326276364186741506804464797004836505736341479754692938549578582582685997309905096880372248678381406168520748741203909249480892436620342508850905393677053525175294443074419040762324091226260081319302549046873368019442155063272268726468851720363364733452500876926780275967758433413610630428180337193628332806963691971805540554688303472611313253388066423791175395971571612336366175011809162259743017734788421345091062396645924777865115284845081399868651598881915923393295730856857123196128985289552219318369813827291401231750293616618437372249757267153628844958530546858552583735366544404800927272216452421399243511554046046288322849509825103335172648350650981604917245307082288139650698933722369764535721657309317242883548080802896245313680491441900250859806002430479976247690675035257848736518605014603403490462089363379924955151796996954545756201301870798086712391202499834745171272654152794234866531530987563586882140400197470755300692586968082376507841879714537495105316626602233245861999994031337559564258722781873251019797349544077847453664839334423784740649012145640344868249337160728627656944976946132200896152457005836731604099595723210549839902305820496115261926014183628991616810664967106766501275849997921364067398278740624745954126154990560042955121582215934655098668257759482699532229341228134615524550083871433866952605077230594202068752686084084633780933455340771482935616444540863812635264780485238429747034729346748570687644863651660547852198213805508764626296934363348576861970527134595659638437465527076049935215902127231983566098032998358404096561116636991203260863690513676209666239691510102380033888746289903801075288923358171716979486890732661884373665407873590814803552876572141268436788841396263492568149661697486003402255669407111026021190755654535643850760125722451049105397782100939720389207969053923341834463781145248227274226640108064384054850668533461821938500883764185336843375609517206347313883046257688399921652318072224181408029226018758224150097516531235797970986546488183010937660330911264700100621889384894843660672943099877031768242020865876253608495535568581930979467796750702714533866136535407089450747611441573480415402139164453437029003628044630617980541515253956698401309362999966370963743618983437836908752442461773761629242097711398028478622264204583500553136410730457794629826500692071145450764162712931385475157813566222686593631973318760076128404187444952484615069217210994779390613848986068920192162967913867608519777180214099628610770220656356058672912438455066687068063635217886646631583653126488836805004820795306860043761978842147832182236195462695028341906471438309927795375680913566592455579206416746319925776910891967031863058944279307673754779072513943264332983269735872601205597777585525487494401135515571140602813349175238176491672559042961807919425641720971238162237314815644476796506926267039233518851030898580512269435025364829918026856324184230442691076817045080734284811696044748800349185767153029036779326582778024922027249104232338778907608215558140148180225305199224687284334976769626674322300868214681601543885670729432238549470632972873271378871434337574787583492973346078535333119800991361557722843320558639762494405484371107299741983913261199986198026342242415599856444139623918302417393934727193203595453629080283201787044468894989272155028488840014688326018705167157255663274944712168702433494252010717544222951191625955446413397477483842397097364698319866194656402225619811991072400993884561950389145980072268744532787065727108441940677833348962863032760345331583740571749315427351217505149310315215120626919274420862979146842062728013575843841665979180507025457490514900936902568435063532155585457978656610341376264338218613610277107511059489346916126254094903438097947729952385437076666597403517933727151992542054126394665986969080371049151823655088886566385129046287957329816704692378012075350075141446624229391350691462940850317614219387900228148731317989744521220783255005596438873615789086255361443254162906609176164187443445528168778399254406058654390721874038520038051783459066821175277715874188202377663130274705031068430390141883738948780290046701484386286769896227137658289535147666812919942853325356600456931494276083684829666144636928708178337331380337011226087982551717581002019908983684548349481304935847686457323957106873082049877248163759178736131530135835368341831172893571532870670845787251577691678577082440418071686706127564322656239418222296307793639362411615796800932231903463571123307097711960373394609842552827436313479861107625051144112900250132836074274457742809613712074381240775094410115948210887148867616921187502410365749714658354837623089509577096205889647388082656256486852757564184998280579464450217386848573873631711002508552691749231909734899090966104708263916960449617570633940476493765074842135570100714321383986140171632273920817352389932714322367679774389201380509700581217119819701665849102785161335277654966971745700737470710990865071598229215856777574378059862767111106367802932007531205800605492917201753044184968421067840255301148833112650449244866456322145862765960126495735180799985578024950689315076522659304446878879427670712133640852427033751825086993336238682103166947233010370013423037603742317349982821468578382818323109730157553435824696164613743547049922158374036185815489384245447861522532957692156962860033994561526504644747451235795128357490945986564163942371520379440181748500081606120599450729564105788397561849093300779497353879218583723262945176417090168834328691261469051762929395881920122355027332072923199726688058254922392018589536359724693251559576496648820767236533586561571500602888485804744913866953360139272463109266711582847531908048207676232173563698322464710880596210821189192015004371573422757907255613677468982937016702965475318950102661880138399267752510722155372061031572798476287229298133247426470064490653328314219963776466392642393366364472635649091728874522137990926544705878552777835277840518007237863613224016649175646374953099177923064770797452152457413333592237042606553952714948662402914612565478090658280238892701143284176660061126909640242650478003243231954331356515413740725909358355269966479386775977373100751389632753736174236839509708712384784560660790980596615882333880971989382128104821477003178337675660511709086660110226924093230710721575130712856633906311501491983713645650205024319101243967038736286731226867710376573640429384268169790371418473748028256595445266473535305998415299051775982011635471581200030323332231926201081034970770128380746837050624804352592068082045594265071888107439956760726261564289549338275291764489323928914378319230394968410101287848603979481673074005336115698807597427742500842067392235133904993725784911973212317220549467008876031705110681843716029563158072944637235361881589949024937612581975249606145106279099727532009385671522139697747016933242331543336904998436628880572503528406950201006767824286890565383625093467730128687536661499725905654684274749126691056425087620094853721832818265051821178465741304914781428195801930552861091374406054720508802334396598413660944046249535567156078914407750539556518155930628303956164791597558146918781051249756297627648429177495170321987011968756007713775857090641881737468964446015083930353496493639727404478458272364341389961238907173647565941307029770626045150316790273309682750253816856210429935541320770795931744501245692840672515789182214188607236354936796228204951000357963915107665165606403735750096256586212438129863508213750778372872209524981423076134995003705742181264933295243058071045838194433224082654162658648429646879566630546782344792420149043872538984919327645648524641691985712224138970921699579525366774854450235057934203701338837907535581258040346918677375884702738197248074965141127913723957972983545680485844416498054564187318749269222993936736841539539864419421683352088107160244327317446567760538160461541937106532117638754255650581115186478853164608647137853760946449794453676436287589429520741187430604089094208073997061450216913223216304674296427512415556409251558980972755057561741534906630087844374585573055092625281894442068120632173905360462920677462793882767641496385677587592497211570047885667570237317590622087326584145776434009794168072930815717081171382596094546837722242285645703585029526873379148878797914073723598187731870430650692131657605966231971374946047861515681148897765196759236260267365559064673745004518169788889768659740269271369123356738780826145905785195736653348065920259806328155626095348250722669635530818415059140216338222906598370096216867564795769178541540909614895444923374494070486462126185979130954016375717581171064596205940175355907824796549417346882240235944890706645245774449504123155876118110342274997230734450302481835454239221780836848299824545265019768545838346208942179212529963310239660835456922794559507813683737233035358431524537322383954035149425595301634954768041665128558284289172042145352305127408032375263996049604956441397776408826532471160110927452365636492338556061239336074659790125013790238038324258887103697311546288808184633036826427823998815554998339993410214048692574569012105792279168734010849447475266213731462694078167235897063385798932133931017246527441718586101861465172471421397545145692325227508880331536413032766785048593483477594774970607931686184974188309043725840482326691669414397796146371017269575555396663426643534632177378745167977073712381848990873030097402426607627572648021184541882731291241068627947350447140889526514230068109039791913124787252797941084669452334240520369867048351699151305668370570186223481151873855101297060420726844817038089882730588570589888924762029930430250491282163520960111834127097815338078273998645403932472699748794510254404528503010010915740983137145717975793087462057570305286543229922203388471603727706340459266969538992792767683731072423393703225554794523117689908774682715847058982017031245603765369508024098255491063178935010851275497461271248868525702519701448235213802209736188001056716176540941601688469317105248589578174962600721688143738765961363142722930089402866403858107487956079833761908817197914868733625760649660109953376229472646603447524689931360791061207468141258788056313756508191540831183709288649672034669510305299825100077520631197185986403597609059931947138412064882227541319625937056006648607410148848507945476695501190160919238840139860444586455390241480098458388540219106644763849779632453324041108487971411060551748173626562923944389892932134003138087645681329557805254714601792763350631984662479395577448728279238431296548286893253948163258311367865061217929972452482346586129969756276060552805144876700414922265025500310960829926270038730198224400589020291483530971145345791832996332912177240605164779058990745759477399203626617234836006041874609889084986192631280471327195215575766507365830576289800118166537447523569889327076321720699809030111002050001407056521413023246009990016186219359614833226708789170211898855211646449110347317229635639166400134339665987586374363455122697564022134791529307121071014959308797924276460746363751321235630363787101209137275260635838861888319395997226130179658485722855404185022398366313957532531591762951656067670223890672639868275590429461097433817592858739586536402561964144406255914661491687719138075054657224800368187480818717965733931266226589246849357990637779091337107342532770748780277256912641378292299167152904283197084429258352600331547151991696652331288671336508909714951214883234544005299508514496388984260570999790138056429975876306762723997384576508731465415126817745549227861759994994138529683855343647038919649885957499396348392843510661671043448681436073894069966582190732819051749712499911704476280693588407994866933625380027617175992255349580109081985304328492600857174731312137222546671297670858093378736354242424325464652997495425298557289273865926318664269710596382523129370951583019481735740310317581484822926743532455156787316707609576906465525071356184529852463330606310358971577971805198869026092771074328529416362108143706396370705996245024679296678141897287906308393787348078561488720136239818180500784948146366963792627358893862383651874413130126391677198250929161578595809505568184719275603178807232497517319877835417921162716009737748730398913179495349455205251656999704901237526756584127392867309715907962479296266541266639316687093199642486857208163726749265712299559901883896026925469734757192139269579444559558208651762933691716046558854376351030020634474482098074321880992204995953652154498684512327623920983647559896338242219623815092545894067006087069932345842328176655619308749533008554290565981153270492189559223066855410097813887087278761023640738657738512138066347357693532154744449583554899429305807790039245811230469565016471605748388514819898483394112936930797246560085126496783542308726239259831863980556711801516757485003220565008500083116125398616014467379489002421995463135361442454849539943450486809981570643261014078413803037475735572168759638766524579986968976800561684041584476431822524034612424682305652112266238776808958149376904961286074244254176276675183230022048340273808964315181218415345522955437498232536553663252014067062713431521146306644094115455643994386261162871419405889750702890586101138452457368771982192129916851656062619746180781241306470294555461561028607900374255477457831170866372803898774352006316814477193496432337028644769043371970118383417614771430709006152347244802869371313529070980754368007216808227614565461095535836489379229469079396019675061055236182535665687371895961962223372102508278186802536184975074002976534173012275743392960904694244068722881884354973230346847705184502606837525607851759969458976864276099302176955053426162666585746000874296982285202265060566370083727277369468702785519898831514639493658694759540717832623176597185224672528901797816442880005665101914139440981202060156247639766490579411065633278549112457681903894093048681079905325818452748173007982886595576101056423051237615277523390024714694138448763111303274997110079943670908742180109800925343108189575582801768664595495848688238196184114094770971078667542612489882673733483964887145971504578023093923082599268682621122255434370632779653547917837941270486942078469808679016843449951330808960552263354983931608874153406735123614576269124160742590397932543900347480250193039107439718221253601669998369020792942852249282035082732578430916039527385708559481568141847831649756691482745209551043318469509592699173051416649222886131783672043791800416165653950010656856930620293222282419203119070254752676187563165924207838269922410635117444304358725259494336834530245077156754267105155785584437467468262934171487156242247168375871402113785607511897901932546693467618278428147064574017936857678553056820146355337557257454187507513734652271275661036742655908131310676761313361637130643092928153339363624239527988560563040684200434809176327668863366352253062682507730593450870382070700893535293575585306301070257516376542205945821026061104565106153878581562151726827580004194823918768780111761845707363772995699328673619221307324726871824808933091511625298576636903092929142945461716858612532764811206940496957314282769743212185553622071279672091358235639446847892022384071297692019121819623824194449887622212500394556254640282575043427959387209548665161144355618305398452270560515071318920136749479314748564430239142484153183944468653137688781628085656513023028200855246655598898367608998896880709682384224269173254112129394578753001129734084738499379800153332267324181559016070462651010807619462900133872585908983464445756839699166473446049561130380140299869223599226672092503113650719485396513018849405808282457833948607100209364159390127500116661156133172470484220619289229747462916125792887142196517965228628807352376255557073149212419134263098573993189049204149511776609005204234139789574131799284816654891786796131282688742849920811088521384642228084245661555474156336543371736923253752737238676528005262970928553095839317995093798303547815167006088240821951785032310571593851455587045379361158061371498470709671948988863450199892079769002272078748156807680913281885483384100742595133469296143209593080539482270140671984993587469796652874416055360113978460581125315829398716114129125078359770231997815439493860730463843891783530734181125730167538269814600530160218745181066907421194402585156437804721117976090621619478063665542808010018206394809090965210666498902589707507072878321399190391521439913988167105219901147693009763285604306500230085465747661642778237325705465258870647897610998777744621958321965298312048003494878935418193922141078076442673587962753802608220484975131521674485683804102442040650052613913745201857981738069055181411605185774147585159641117663645398350761376342962606117587575502660700666039587040443051800608022260630158786271226285283684366601651265061712085154369275731875672301400932431445514105127784523829376164059099650633869008952275051034010116988405344837435109301039573093614302320761333170707602853651726683531719525296215637349408712911290578741506706939373860623983122841064844736982301412625187043540099463530915374031269258881534835068267508130195185759894379297156663792144994480930990130724457372610371818894042617977990743924942433119110400344538616018733854346502642990866067056080650863813326060603380829827220972263636914292277367387935042446632713009033939441059575441149974570195214809838869207691814068018806623549207158373929753983446605349136338942136256688638160238015767939690681466091713953409872716589939591672028648065711104913688235077424409247023863042068704430375839679800427812134565552478437066513323286011709529673641375718428672668601873382889629002639349307655678882890085692202785825146620239492756183919935212730498522012252132036163729717871586479012146075907844208182898070825883095137219341819686912519087505953810072092844845556918057095933456872500374935173191214801071793215228393325745651737099757234327254783197693365471618242948054302348525179348551452521835523996492555952178464471035608916533582630367834240545751198504471501494778590868863268645080360469849840622843372123762941414188309930875779983250399431072740875903996198104069449143825974559162378940185448233476846918400295453450290803292879820911903925787379949386160231619160094724363590709545996756632464629582236462545143458909754140580938894890180146409229768327903895859591262544358893926530570440079662211010905845174559513778682612508461143210486441196951168871875952628289535142932951308019944088324885073203806546521063557144603304770504050168518141927088401835645340442118862020850671597769984909825993333701615693969252405907409545320094112658280810990918352384272537676901599678133256379730425877945191641353831768535830476004771497159978976793170411927308016999540406361186694320769214147923156664748112424258417654921012866654825332615204504021349458121819233900118151531191566895239377380891568224796306922088886234100565647558330387994477198025194932814727119665813990369177697766758100444659377455547357344207495226240626036705934938796445892384532873743328448851802514604022027751774503943045221352287217528902993980755247878876549298086986176322024255945091020876943042359726465017535163476634148593548817146112998046553266898812212163900459419529275820022061382438905366708957117029255658735094867193168422735780040627600266709809733247486927686810936148098470551025385162032495813380556285249601165310888310591861364242612217325733476753411687902195286804576512357373626218834243516849676168925599445074382086293200904779898366603532914269784755740575785236705765256806798575345264243195845296638042226097785468118289777217827052491047786293677836347758962238733006070494465861859603985285357179327487848699849611476970092290967291545127353666029246046408301347591030263949340963818417822781879050704465074120012897579558614823191289881730177921153001205835186195033312213518764349295535671183017705010959241295806113463046650737358754482495021062880141547581901859726963701464828793641479178706009707117930612751764668394242309755283303340312410303660166968290567178950378448301415418228264165712171056743888806384131170611829775167050886114400487942474650618817011771069033529184137762120328019306802874638858699731836861568320936154021519743271242296949596761743204559216841051404490737648404702228531511455888345829420358007165520910173197215161654810838829498457624105700865055113630976581687155369462737771861044880082502713359898432097370452484702815127164936049227013477635350512354733697577496665345650985986401447027609997660800250223071545703783189675284561750884665092511928017019031315590681469322108976890209288238488088134606815537206524000674024840584059637725844728938360655464240796175074763821942729635295996005164183937370328384478180294128571221245607800875913940568626313482617699203967166458863349870894291140528075593459211201774129701120807155223259957941753362330310147392727737100233604823569709434630770678611118894650889998735164810188342709656966509896191417990401160161741639169431872931462211195104836998509934654538026178235526484620155434071445996610520134990879059411232793439300888174346602955358379877338916000265290849829969787690667446907709661648972989381674295958880675259288403164815786141468659345109805209489731741018735440959307962385199415948873131403392496199683907473054425254899765598505087217285507125327746038953793633686842985461311162341400915193869675331435307413454159503667545950845551376980464061545301643291297592377837242754923976746767672729111025217948536888038931191282632311509461557241730313620251281313509683528612237109036764597752395849401507247561608684753395882297454411685468438773713726660040350014536471309941163491682877673974051023306200164801945147860532629214508101593977234758264372728896162251612401488355703882958912993328126915142730150025307590644887280765529403231593019543041824078510553380364396077123794021530857744615827368637437211451387275284840735072541944774086344665909558350653629809674613630990644185829939407580411583519872012480950889316942704756973927218410071936152444542704471515928346921020261981228221087755462115762293291056234482555977075338090080460005997748470865534314583224936622712235780232036610950775048694114852235633926665772076897771841962738583422351655088365258178310746692706040043316253353944182986089927937881335777343477965923537661526108169910691116197760903609411127916437823331381692232072408887145579472190944480906020084269553950328050797769906213436273733958375156830850460984639659885231386662759867476746682749850619551523397801946954846291801037189804296124135446114416855533070851545844289508426012571459494313680154156049487281732001794366293851330023454656801524096876950684528843392651701160950120333025106052947946696411098338623270336792149524593603962585889936146814019989107114220016222202333642889073721394342317275101702373239021071287227635539987737800151967709008754670076443928452922958422465230455595036467261828109561015748284173436785382339355825770216459183471311414235025769273174193244325495743039347340483611263808866463661507562251660012932941997138347829783505530060497505173821011778811822176552241130950799786774321111744344075873644284971609488555408359453121442079428380275428206949954170720176282459651853828105803794141040123324324484768622228358019225676214412953390197117825021261349759884885428417559012535638273275653437386112615227233182096661422587452465207956637472495497404593257539313625961803494111049778442304688442370590907768022551549882754423826211840998455730481092722393254108968388451262872156609436711825555671878463125977091475555002753784762251313483961191713337161959975506055163187638796674803363156551113004535170655489065590401109431937927724666453722060697544213557710637914060695327527238389464906927412388710446800688323927597572580517688638743554043029574081093264773511922733636545153612830345783157646228409780352180812203569095615937452887106638631707050749607906964349643740966434794020227990845613150480640930115504370965593483253087560726134360108745496732620090033438638936057130339911408826389081799144804822354811582442098324265635866131650925820133007986631610735786067707434171559321098004054550128084169692863464710870685156061366148229906933606020955773812998194885012276564515828161107611436332087204350780810163731133250969211192989068579401461446616522940037803528270464189678236546569879759388016948305528984885749408591720555715519901701482924828919010195772193662650295310359843712963532301017373044653027431470046002484259990640621167882093884119529830430609440924100564794924315543838789388262866761264571595018991419962171958634506987575450316031970587160555411726443957006508375541770034581843810242466965226063166992401305479979247137838398930895087954900252353207927463319199162055121954955550632634915022336965150417121259823164661700364794710771082453070693488866070925241000252528777426744214045543054751158648331714676675354148081543943132039935116091322261276081295989633531669195423979281708842048806626776245028495428697661898888770564926875193828903636559895012544031160493525014215059054577839555449248086639060199394541774930565484304443229799640844582566073549368809012464065935595657982958201978864314187915755380669439408949612111753886962407967676118149031493300990214302682451946504227116732106987455397862046835662818849889217306296893886863482531261437900838727231902415060386595362952838143487222905358065453471349896442212075672669612861701563477431253018093482147846252945328708668084480704027366089945320877072541618649321107073124716986021887202346000148111736041727766771165457905731255628178017813617128203080321808728380893742731623162737505915293041492159506300997194078713000445026406851693929222978860507424029096572657359206646193552127155694565483074675722918122476639265269127005081327251182535767617955346227154171477739506003095979409196985366573188823655326502239951880547908350880942784120292238578031785069126497743409418761239377656365772522880028115475653258520029593114124967904136775081215906646821729024683961692968971019843973764411202787667824808964732438075247390536250822195393498022954791759832144593112514544554680861916126525996931618426932970761558476654435645295229855409520316868383613187322720008550140238623591737599016558997864648405740169262181476546534846081830478936509355004941352150555760688620884432531326657899114491585103540167987079669119211743534649903772292208623057639564385206027175102930241657536652501728320314295513197417237246726799324132117895139378673173138224903489060258508272293419659239843048523297695687005106354721018111612130113377078678336499555712116417472186397378979309825549098921776150132877241664887067683571266685899015481078741716084166405596925826192347113964567639328540540200008015842664929080048936123623457697170292671943678500873454639131869626914620707078577026733337722855297005599447585877202242137167040288750222584757310355775854506589516523494637226949147576032407213238129671832798152628131584359844902300122832100813049201530193125013892831369332662555609166984022640825486006532497196265391759373821294539126310649169734539010222764325363716751186328462918954700092577676169143128337622937813118846501910199307885088920621531553395190058389519023423402377815897861201682957921072746797096158759088091402177531446863778682789541325236436686307751853221683368978942805017202001667737392072778737178287549944466747053116927784780401247965563078399882565544899755256700509806444304549445191007656418093256753371659807136689979281057027709606501006441230963844506132103992132508788082166134467922253970399068707836283426798694068638642576211943699424292966701672293770747581469224854067418369802781099740207778799861093194305851353070341851666701779518700968039502032934308035448977064156090140345401275250630135896167266729031413658639720894943087301071389647433186030034840984569228221284366381465544090186414861238738114578987631253980454939551168556886582509175620883396407986175631125865842235825421890503546040455547141883495047189243605294577084736282344273289193653931722660792643199021189546434810442491865657856631217593520089702422488675336258422895647023836194774692127067175580699189712398385381703541434000639663273086050911554766511552061340532577777335564655154070931765008703950151988826998838972060392471451048869148182665546197823055663980842761294712419958226634189011731668601716420871859008611605945450916501135990074998754597917135681985250804076688552322049220749245466284222394374039647513971350125497816781400393241369244790069866307115807614797474679398714215042731263819654990857979516221130275686111888818503268037528732206181030370574259148549616771015186067289447547836853044753446461142300053998342117289353340504325620673104648506461544337368620217706334919712184084545636660105919620803631239009596554543106780718495159561231669477931237337351863144230948326762467476788124158448791114448358065041213036623721373490462603573459150019181987037084370103805200634131308288400332338762839356609674802989211940846354562036301903320719242031416300020363986950743424039408883098827179539549168552732657877717819733845987407313810679775086250314727484228397544724653940994750852584318503245972395815634239064302375816899206953038203635444675750460426879243406280310730576106572182526151546844603386867749402344836038723173809439232591488700039831663620148677717475649167167212023671015508843640874683601051804625164788257461771210026292657562973937766362789434362067288548490449701442123394555004391087774644776381678915406072894475332822866681741717399367959525515908343706709035440239221802978119044674293621664154456018585115622575711785110098256320270180472718986740058285027743764090752355296346341160597946752187579991562977024539475672331265067240877814642849784381068324698713888324661316947595532340750048593151567779000842506772911141509104835645056491797159663609966745242591201097345216392834040556445874535493779902710897752987943969504610009948107996066323670794974056483214827870132365004430197667310378948836096414772665042167113265902700266083731392539436828163385608336660241178473979742536143325975615750386778855140179240767963478735548610779804165933293277578324906115510651368987292393464092871175345471480057621424448073244790997753260924816582907097181315709473437431501695021133029031027295237363171934173214882528160832057357083159776125337767534181651736323803800257174315057631972184818624384729627580148128713990777358102080824389480656742441463166998391785820427452265605757946767627066071009682200897687537069350855377192664448805938589622629736825631431065346444485755912485698872157144786669637184816969196175616106823535416858128482107187326843066047127896271025695546925051577458418329396386830108846273179883871285387671304417948404796907217726139238035838221023232230363811737979092420795162000479641619687541697670031237453154591616456880880276897845015165760916492227003327911897203947109837862662355587420342928239334702996661718958949155923826562814343914700008484918432266023025255340318784923293090687187990535101074887038776984472305649469287537212846193956712032658027752720422387959530015621919823059878266990856039271807476449342617157178762106172096675215751527436294861441433262216743524920535284854096757040566811604375909674043010265488966061062439314553515050044203810037711616332029838112066742715769442008788306946797245195069548626468358724684253962845278658424157899741591001672743026443913138835134795803732676201813707789964252933162118798282285656328999051727418384612526892480053967443523957382617967159406014515268497906447271743449799751370847299129115081667525345874911329759429546762992679561296912608434073970983967883641611753378295645358684886423751772039390655248145288268303219505273360288940018551366469306041964688913074046752258694572398609375363034756028317627849687060578141344319912475013510234335671005194528795622909994992074419335322311972700141316134534686866146696428554863626093609105428089994643428223829552425218737439163097116284825428722315132067589697009356620208552076372094516705929636038093449260559740725910736409668701870900077447362297502128171592819060586987411474812755091937700859810862862670263172487394818032436050289844235423309491409587370755470786894538533611892933553748979417974321978359008100024305710578196571515212368271915894217068360419629709744723112590737373156137330830747266563074610871489940750063477893610179470583880134401772404013290706710347612440851187289269779738209231553916067449666636157969907922182265466677963337956564016088363915911921319547224931683258229296941671029164884104896348063655549599590305189396286555090844608798411072651027096432005380497911390442077825455137206630832936081061018646446849117280554239675405965639709403333023026265480099398259065636972637878885797653607851389873651852710261660324338665305913327801296800342735936539048162448743124121801929292198666847738313791323077054219909042004558312305927682049381794283071972484735317563709122312261788550184160541773284469654001810539336754229359627925311340270117921858257180499091797673675097558305066644394717456100623470051773760769978972975560832165310427491737401354105169640101784810243637452004544430728876875206987913646464493497355313088538396374891544123478809257863378552478108889430931094109828835123272631685586599862883636716398231122027019216225224290879318029293320119164090883603202153735391267761413522554157471321309691850020942041635607112187453743297998876979681468111128696635281930879525675345030205051841809808844498539169103164824223988019565588921124189300170009631282418678102208874385995759150898209653027289245004084055110574702393861737065282047530261091715252921822389857916616971819473255612518506696806821229688754495383418359287337426788647676981688836556511293634283115306520197300941789689987232226431527019159361620875563426430397997100338668694689962396820852813717003031889343896608639188872799017089893773436492156411879835629951063705777319556643382194826078311441301289231738469323339094729685332826947779098030248050742474690596787730733254781770583498604885756799798115146856852627679774911471185736779510313755724661130054134696786625658696478770813055238026189567803796211030996904598161348524111856438966560716356771661341263672425032799576142611766532798605323445404358914540028363563398321962277947159497477680911082808941307995689004961338362430098946098199967886751696389009079736532566120633708298370560557161309912776292149191456265617506862398886660932139750834593196996488894515182988896665252278652075570587677305308857111860897442285927218233891348642363398395010363322747229031770744103638506448840929466852985623521581151528100094977115097908099726562481212142292167730417676807779029952946893363477970606967931661915007773304424311476922133793958427109345569196326803160490993153158693395516766217771618209384642343543894173919552378053473371970962880540586089346844261021419171478827346502797311007423856095454510728741013680947336369095121745288282128135579285078616139937455332056402604486133935647004045048589941546808120552830913885759038621873253353856111310788601496611126091806091473983860953286038462708435617223121707529204912075505348613420965371749519334878038799624373343878579745223512923622076500075771128353971461213383159159686272429698715759415651298158356151880076467757098284722611315803605100132265923299301088072369992345577554219426459407593352814104436660331335751140495563272921159623975610016583254455576748268745933151324012432982432803652356908606639450248198827604424788496475094224578909196157573136191401178160414175617540205630863968623683712872005072425821268089375715894001536180033241605685132342344237772375180602568975278205482965695487618286284924380940862689179204041959023029639563569396646693721263358799813260164067267841466224060537120793789586489735290789964647563637243463878060066793688699459288060495528757745417971961360374657977356641817709953064154137531623299218352693406444205323739928586139969004584821409735144781616426556602433074099188887876866177077369031018535029155294832156821812084003071933181679196123142194083757753221041288281649158634125657985342909087902813568187137685372547849903870965024881536514310575213814004853577260303921396271589012800043542785061676734134267338898694792650284612503927464066328689036755813657386086195732471855206358234471056778838791826212331229838682018234270884894198541016476571393417254384635447294704263986404026840376097226310261476887629713381572096834603953073824297171912403639631484292947466776445621195012873696294908393977258750609082407699402728588759866159553543595843147260311666808115163331102212007347041968260936403919648686093607970441427924893192370414492722660294954634610304216618409088745263043899717018132307721453984933568753869258233691039984796490955398617353918386186176947435914917075430556162446731085937839972207790419663933617068523610265540288293629983461098446327257699467979867376836047284475562787008197852563974086721984157910475401046441654888090113331121323839098760468604290217695869647251997225131586325563077864369566803633137802485531293654646414804739012288995993132947726243488302788022015210733042777269099432275796074095427344884210548001372539873253889382932326348370202579376748388381706268465548828563641608567364517366207443763326053342173579843896803489775008266669854213734239905884570938514976813433427811847540903497871603585099547177947744643028364671191408108945495221735179024022480465995021144698136111927422964238199488366966894088872399072676667069305652856011029027456573213704434323805386385293035735057083214243414727574187590748061621383339231776198879820502058228265671647408118360547473360610960026509173250281369336610729765400424174882674717916875461143874930559405464056795732644069923490821039003042315671083034375457237721693534972025384861282774064438600330802738442294622453813590611836853551870433324496355571080292230201606129656632377453858723144447072424495122147921650216199289987347145586106937414062336122185588518091412068325618222558157102286929703561334936300735519659137799566991849211570347628073955655314535565268319166744102204430975825816438015040844020318805227750755766601212947271557471798609204578391431498317867022516754832080751204466781483531858104712899984494582708279880831974012156564215996682758869824809898381252595386896796883255699335389697707676963605301792626734163863691135824644331771618272061782435622480904677601785180523822164492013680278283055597938080166615279238026928226883544138719570732224871540959983587340929110513283915030031221625762028644499443045744022444262952708381606580724669858534262387596035434535404708409358180929271693933248568899477523331819811090070625701562711588021040172867734005238555837988229491725109098481565374290496927710733630686519147870973530623205879949734215088114779155192918524364622045835777351979751626141758956166194726022465568105235402216589729677200410402110351952590005801919015495773394259621879926888916175448817373130529831082992604641037877861310173330138266648343805544346062947243256216153036247389921418319338347010550136947298819890313977089253777413449976188753635663032153898709092936714170982678997991913147505852642634465418174196249365301875145066351451870170126027125588042763146517684914841165632906158195761344616624908193535964189057698950837274949899145030919513386486901006675055695398661688022926526890793513762272089931837119341009533139007003719235013418660308455673021717365858686428023539373727110905070926418693383361989768190852317000714287669351559307388622096674609450428080878777583531022306592814533450201142832723072947786571456505464165714874581299200029695993491323660352372018713752925820958032144108480417915294551147428881616106205536721233027049079063651203080093184344063976873673295502829340643544104913925659625895951251051429577823932275000440101687349126906588619759943855583326397401853900587388747320471150312447984804120164574953517829175282486634569259493828088627451773298404960319364400317950914769172542375981102399816860509602189747796576582499374722252281869171086759471925942100601734766994074742180224012059072499064505503031484313715776257411032536679585261078723740922116092310593297751328218387934488293548720425480000190116146643399682446615845722571624322998815484975674236491081075671484712323038007022960292026087198089298601830625552000329866232603977399582748063724773215241800283822436976564774739759332807171694837384710717105908281942958451346191941296121850681615233220777256815902145863248933794809223647588224317092563237131162532430856898165056207201030370305613517124036844624187318287701765065957612033558677780967119392123054610875585016317311984027162477673650729952624579783062090044992479590078014782817233389376084273830120215115840827234599617417560177104445432497667217827982909489454727059195883383617113719695851006322880571288926845227748091171509367140154577157649834367828146165514266207870238177863874072387680002195014234725768125164070294066071789206844636452609546068600443361853908483918205129454739573554644081517607619669946723194148527118191655845567696472976158902555327766304877974311391700047294408246665468955164633008398908871712769798880088010210882841278333413097546537818136439190910191021348176467919079677099276232987783462521300516200185873640447563526283233225238515158449902662714491491245195071635697578682536139282925078015144244906316033165165555145211251029791910104958824127375622300626806628101850058878688046939817638596432593715716914709697693143953953406631729742108132388041051396055285122238131163427145562761480196634910632690159188111599405214609082983607049674199335705226911961911462873645795160699320338536002112884845167656061301333199109724501427457780969803931223351426429076067916375541971474112958863758140117018095368874821589858874389322941212817184681057338032403272014021940182122018898808481278479564396701438757188352090660431015378791900143536792034321777913548489343171905300968100765759003495646731408450416616576279837024338147313912781171682004661781706306213471048255623117961306171218921994253515547286949465964816146298176732166348477984263375992884114819544876980014433511640557447771986155889803934396944622630129134565401431930177777634202447266277039305979496401755246066976106048901332141061513253901310213675576208300181011019557191974700427398583813631600978095038578632303957908816884512478412100962023082388493722998431856372029679844081675191030868341135048275750514066795081722611882276196199472950070304883310607033435214104251989696361338806850197240667023984493664394682113485803717332425575675380208471909405990400293664446952680038268375272828314284083073661995937945246416140935936621512941940721149447961791143585147589859788326232107518789864023524545709362335501537400232593613385456205116736375599807731341996563272122473876784340613249797248949353280685755918219773939040733142851736495057679931212307672185966043309198127336788756768653734020558054763745516418998902360757486466255261791289158164605090643002224308478113331153636764745524806383185323233823800003017810601421110420339270738329461267605300132356955386901916088400644499510710266535437096470556102907317504525447158284617585905667094577254187910468086301104036902713891262214401941810048869734570792667677969107143990299626973252074007706568778758749819082036645987102452125661031308011479317719618390302391257144151626363912258548529557789346572400908066575149090031979353847301583918378689515188080161576069334489348167897958180914433924618372084833064009573909624183533012006626950440190629364699909621763875909953449075409031288819658774084930215390116731537025216750147619210744415345940713024561384259243770779801878830191837627633296118192444984168370143571432504166182662461144630509120808047916047885268841530421231629739381745360074474208254012915860858516842608532192735671972579985773215567779889005649941258514275256587411915134087496009465572305431205981330361212031429502275811844591983829246989466428188809447567274325552866917991582165675889031409595587626096017870549605271014018901518601827909144563203835191764614282088796604563139460966390190249850731842718924370887803978067803893415285094362116419674989858631042270352675601409934212422627044122742851662133109968776823734192748807599733748129164205509366990435781806451151885425781602105070570000173289784186144504449319801959750920144843359940545042485107631540871091604784360217509236483316998632588768927478928171033631333835933139825571398658975946636932137736184416026298520778860077376940354288681061536402597964926827145807491015584150357435762312339379636639592322467556174580279575466136777678033207419834825390606641443599274101592479208887005309145933357353395006477777173561103359348000501298389248579915004290775882719507175891317083986211958002545874163670049083220784946209308296466465073597514590182118366898257431850218101204864493876121871644744142739747998780319657020389489371966717861422082818854650403458498003496274303599102577618271585835969287633590689445951175267938172829452469103894239038838574166630975881125085345736489789215513502987352991563108827593976740276296626008867783476545057734725332617871391064235696484140215890567503838799178298155803399321367607581492623293051144965588311133595600934317158903112981257100962246313693604430307403533986575602383259310566160431573016200053861751939641215698109164312433628176457030578723712772175804038354243718418928830449763572570873520247279001827031828839940631196338311714166726234833358571681267966854832357259342873745103054685282945628748510036769080062600281160833753394942560346378311238389888191152728927750308322939673470770523009168729913223057253352586391385391344934188490235841323099676212819849276086907741974592635654238918879258011097141339413003367184422555336062757122308966563101130980936675367841846605528187821625896534732079119249525020936970071268996694105354674859409808075150257916484198832024326049808815621169140085390838298728237840395399646916885202922691863036308125772417566108094378033254950131516392693492853370866964806552633412410380397976322995764409254119112331813738987792748542223770057415449785715641184680304312732060765408942180669841883639352338861108950073259251094578872147211172841793288512656513795490972325536715482365643677541130030570720505263792476750848837923261370388846836987238374963925056876575354599235378941077366357821679590299035134200166326798838758747397887245321027429015868834934014003797089840003434519798426987467207698220495420016738122616737178968635310973987021250481743595703440873909600157195986803369113845318450053779512129722084290961853751927738730064292858598685641082763791287750751227643182766449925538842953043119963373938495056680906569517851717227436794982967398970973105855826551496528234821914923478835345135881268400646818903131405860267441040714808147470741643845906453830846735832936736351735222415668405322214941163383831061796303317429960101749856149612226633370414182923906594338129714194554669314420060230470432221220479253513211524128705806593310764857126949947362348413201855909165862419688342214363706650488216468511687187465316771659094067159127277620356370388762348592516904832837373753670266928377042994806426038596408809789479919708073035241830620043339918004418316047634590460076960043095131504623703969562797237875071152020996385065881610078286654996160552462364317832656281153086264846868119275288009952900362495649136490825674486098911145862961125943274920565363971755354038777607169050770475414507850006097558118548847316476551358072366543301265919398224919094229571486283000301003368022084055764914327556699892709061034012398657890458666988319893963532873065280423721873467282087684200636248145410976082602156848218461972281659177271202967921667103598000567076143781572188370531784567361898058533671021422627653131167033194065591737296741523887315848250908955703272639431556076770166947615709580789816518077828933014895656896692963147451954549052918854447003146225799090989446832755795093306002295714880393513661425374803760797746705855415060758755004026743007033407197045867001911966794662306329519668469917041636496185720564011826273297587280802722644140322136988617044824156210433096084226971726942906341500534330447852840115600706801931592072468542417898778252105151410164230555878234452986011629592309830560253592026840754517064568270971293152284125914614164965635541777088574092666568604342241084467461220411227708274711185247522565148643103861661268394377972447742246171846163419913452463094558135763800181993335166063438756203318722100133093560432759398736939327467273185896435207955025227739782030337690067157579411414436803043092595515045563382625529155418149116381017940545583481768950189908251937157121090537490181269313106234610691791399837286922252718531293381201499418196880436469282047189271980364519698915082631132174049631956644989019643513193482958540083847732582419759510226460490393112839656305115578067100872785498825360402967313619797976992120972809450211649284266039147553083294501626407647334662417994254136062588731952712152040090321288237434964836276434147883240576096104949023979064320580181390790957747719256671076699021660509713868422231676088466820665543178034035848305617619722934297779331284614083854051908671584464444042913147955512255225070158886121784358116799455466993419343815255588057243677002757416802670595634203227614517364179199581029163876330499312773678160703956584675357780888498482644519861938977023651903111980651830833103613310606925212547715532063607727577005426720116613603876710896179303418727653275579135030579752101237569113542501442525608883752519035193991716769709528066026856047581175354082590650224758840415939553750797750050661166642214046154692062340331547077199364846704397257286231654951516718823404959289172640106263100765948176428831989531159128773142749157600106079618613222047233901947910281774682697318231900606627815911279367495467999562960862526508061501322606424110308115746188717828656070396864534293476444333677344427092332841951657488628459476455785197239683935093880808112213000177049924379086405059344790488892937456373917412515409223585209612174871746995516646172163318918390348949554696290344725909882009447553306448893931055350072718525478339608105406066178699279465454573593404871622758827307885501185751159538852604768927979923835401511183686088426463349626228810030367623604140008911932725138608971873090950922637552571563551561065386821561986484165620747026414536173276679215076445190981716144886218816023589348131602357109889386810401010366429667190498018209392981937249957564892347338122533455450599445237870218574532638248179353613176357698102745376960196918320254906777477565633038054900701553089016572210238587590845761830812636758989838546457567157393508801781492045793529149214116833665161313179009766998330049841275440328669624566286123318249565957696541094431759675014448753347980128894767001084690792959114403886027601059690813797145005794865708164389124571293324875168585859130242982684600229319322377153104691192634861397915213931666912843962104021436364780811063102807315271165312017144510251432677814058735296440185393527688519737571678602713998263123307243442454366129041870031903267765240392359845384158986516276294529898009024077699539801058481591304150533219463953264874723926579227237385861380256993033409161489722956690330057683503001261504098660417351760139417051498732565832120548384251166303999591996976696161781784616610385565993219152978595124657915089786328783786721520213613837803477362546431219163168680118014261415088256214685612024952598707479775161704678268303944289548269830888691120156403214225578170726663855267076034241827982672810869306761649376206955817024895457586739507845113330233043188500375227092553105967996434955494058568185520511807808258477498988344750844249503037649184765387309796591530827782262039986888684041797029465843469350867967645128769933170795474907579800200658902593028251716821611278500804770655426536646415863016097688741091635485070144594261775695518557766553249033739165184269123618372150855746895144628336514532212218293674379956776538111516328393149872985865527831311166958736407485255454653122196467111502411759809321612288777405788291648528393927270274850485729626496008959423550159525130819578084554385128819983054128055291715432419971439406094180440048899949497571292739848289393843130744361351684338030444452382372458013381080565957205290413447032431790039420439539538070662037058882562510234671289195794377385352407595543643406955319206956581590598829116376397696837386891357797162721533222237240032856083608540906215244269337915994079705450913630692164910422627442370330209561403433305052553553753235195380714978215703034576459450280609259065505886981827254690541962825306419772820606414418958398848610575545319098904855808738007296883550243797698889570355328511185756022143319936921259087450794279044361199637888715979416086078177870848187092165477710834477678562704166094292229211948020351207988744398699195879621237499506943010819749804626624784289322921012280305249511091345223820719454503845483259837353320242920760937974604417712769408457394052790015435760425461336000609728276596117871506057645949134737307969960869072174427947740866042447503549914406958943996232872129063968653347525791509140829900552898403998088993030229427784489547708337489567455992127054894591515775397056129445806703108477626076801025295498494706358470111133353194852175614779327476098154102994360554376810155156365045947209165669623434844593421633360249190842393742432138978202558171723906376924259641393108468781441113209159479667691674767808645490330079998552027515335427264857480087423958041669760010404759128285703217994133355483324918578929925208441072660350910351098149663633129808907098882849253658081179551200398061282368132376310445728757393621593261991983066689286764655822413032145233164646820063463122206160690467198059536186180060999926617317317929660144776903458261817962601994158330249546562762163049042381701799713051394891424830188739898417271819881760965408760204726053039288617257306112550934921209118485149194667024213542852374226792455057841520794799718774888525950452015250926303340487888646935602264086072687153500968057672084598722770741330120386043232676461582538721959839110765118547189127109402001836817178483341734202060914754882223486374831705416222579500818530731339401371719705712250950430420310982294511999535084962652897924003591303993831910226895445050251048083147408925539379929850360184610157661953708505591625609670515580108663346623099528989882741598418475246545338778169162512853058507302933608983448216605523907400143539905686111762597494100557516543102043397511387960855357351892693735322367495319342824171684171083112287368982536631867454289566036377115280293541965057549757383782195892634122003346146047303100441356160577750127579745844169518911347520338572676527680877304927144221072465527373837149847571887086962044546689266604290703377931129170427259939365560698396584552018216582681264010414202787063010676467712825243410155909546338912639612224842554132913072919790079590875832095782568565053230129184265079952376144102233707974317326605182749978222198108476483363433239385297302509960076894053438741927942495621854429886261904230762423847271709048394652067439931817112542255172394952824938479920564067815103410997952147973067580103380051062174366988739980751138421773374987244879033682515815094492464158041680406168426064229045825184747038374258966975760161987591330201549575278713193498840135911343381707360157538411099144974459352815361696276567384035458915994783396046846092981073905360837703690385199609587020246482855503801074384148759080900207551615461163056884206495028427467829741962512805041157821089654542615699061693400230057623266147550326076425748371228390036790767439747766758717435356067749323073578192489724427792296656633138802023104146558584736843844037301481660092216970238244194012523878598315719837605409814058530314572707197939373637881559282022266407401977442955854729491164537537060010257885721079403596901811133028941294738866241916718982060992820776752154130349423241939111932823605799960059192519370704473545255783874374966585903916058890068160134115922131613450004404493399162660255664997921947967354012172110065944605159604498458118538557626539089083083771569942786032384329853107808384291802939361876479614867730035887163182517454799508261653332973740660793851646667374856481149841452640625021369622681305151985156128841896002946152749524826440691285295688182295522422406435728813008868149645121037394701872428586854762016315508247112626934837828442237937998702294086976866765921827771732248156894247409526931823450440502836513459769604459827553348568915705287068706511596617173218591603555129277965015295875599999744917686882667500828212538128409813482156750813753538872179219762372207225573792203140154879052310712650120993159702508952338638512104275609064265373900842891094538943409953198738675730001140836172029555726929538392972408265382869252188563436658459554445776535447081891264779337375277616903330565039993680591290366056314585034443660394345717885001055173807936322797781610907593257386939293907328930056440263115625177263555549283271002941392463542391871988036901533385048115816830146552493323190415298951379736638951844474939371493706007827386676326883065643832401196694298584184524796289487608416931156090911877859514405100911641361768784098711864890293744264264317139225465635022757797962083847829000969671061887592893326000706202239043756039179971186595349032758452911905904615017401298730016803671757474287242179822479471105851235179795550512817793399083492577363526544764356100006703331553451673708871996446474594352565942706671172997698885467160519306542148071905014048925993619121445322105504665308710802044330272467023436540409236555968332548322989372264533821391165826681747053510785926002703495059011920175300041282278346597871937260189486438408124853655844711989155651341082526424468763136222784583192181409299897825297986313516635282076264266267582979321539840832120495328469766104140104424405683167802740911238706616676645952585752251229680148755889583429339330072140624411166842823966038762892720618065737416143992434913260265529862183526877178163894590277209380728178369572112015823267331078922005828886777215560463709859413135782726746624559060117088841911820982461071980354783753153378324020969291223627016339733885617280590595930633315667643333048393539333130720451535306960911953433042618964704372508434940292133595380984813181618903772538592168567875444280414830632926901614410753963330661804756154597070091015669008433203362398083578148201174465962762439972798740482340845615088280074957699077228499366618733993559734159128323415062076054286721046865631243321747826537346933632406472184072145188004153448886817396326265693609028486490087559359124933338426527618386876078876096847143698591550402929369158896993159071245677678444355252322081092744336804784858742818378447454595519209411678319688339614464368851490337656218393066707308021465181981281211460785098966485867973199780046037296778821346252749232087139652873538801442114114929982134489180466255072927994056750086214131100633125433199143575891457425262909961386603828298440220486347210990747557590756603975649317960892709770196309006275110351398194567998908513177588129306484592318945821765245732459216378518278929951154920088223152540650707282117357773621098411159565379866594328812542271278179146027820990610390294491953960976765370723588449666475475871908800131717088819729651793489400546656857463595963460512650924260895435024264856854862843700033452186287398277465723158955759857930431475088200243178590403089107937004576758114113052389587222961231061599702281902725118598946181381303772822765565538155215029498730543429817781846402299162252909170282609043644822769181119166835342796836489027537760745595630256947850498648013371498184582566020754772962354966126817924191449399359437783599635517435463452116842266095215965399951159269758746758993347933430591110243330150617567787907637369247855882781103422941925044503078850002262997441204044394730529119104932438399224124913473297601115327486223917992207766156153436761964172597607110209329965437537109378033050449813232860453262330020546874448137659100399481462166605837536363697004830205666187748175727221490375414745489691107574423861821164967866166826284865099941006180046228179514006337881115023460940036467142911099679383761920926561940872778027392281864078337383057252825979844662623471211389532730017485463818000555380323110273644021871365890947328469105611948811825204028202869429128148052566731862941788181606415904750046765019190031399895662957180143826696811104760669770220901993468278022621701965092889928072257072658968011797509584702909080853216007977035276782796280882725312592284252174929716264941470286473275197229420769435778426993480885806425327656633566543820172686822638802365016611904496805348786622715152284515721459724224930690769453166708404181919024488431140811080628762378001101821497407580385485413232489517715682163848696553956250399408206313398713694185999608674237118738790090433330844662623549320134654605823965656527502138539353845795168992694550356377513191518267425312432834084641674493265515566084341542737549645365148229122087652018596404463214967344514157745478798837348775920249266303433011610112749166122461324876674140263468062279617241038318208159514640289142156461099475376369230452133683899578062484738874934619950903682198045957283675156632511981512370536383432181259455246882350011221940980755080978824312238169740078044487175777808793342843779124017980924663478610237210606311415756040629135185516041114815296738092411906859743425848402085141652771479162720664768629796508552711485764572255300613528538865887924405895474579979348813431316199901127015817799241137767055910843381866886749273060451864006242418086249593949277199904351758019144288474219916644293575442395701974535017268802928010260510560039081140025087446760227384742937493803617055677972044867921920020957787634333120924795454530810842113611966893450436334211003651291950861710234608145629587921180901697838228116729743841362521576328786716400403625329002785262660728649396145855520984593277578488229355279383212499250453658360055729378347928986105558549793564923777257429516752747270454961291452067518667361511152371252076881775445201535629615742943345348943392842823903620094948556633760364212032016688652541373615389505439997976261399789491034462751287821021501250038141411745176027703791149614051106475929448192389248301502226326855981774141282363858199392311932798766002337281988966661430372917176313490801467155552368128987158523584142945372721274614823081994561147798916353368098046035327530115454117372568475197551853980779511130422027733085714786357114000084764980561438733508765955261782608787095921164547605852007422629603450420900850257005358572263774030309557914119687689390552850954561386272720807201296314359623432311316797198204394858647442689548956684752525295863177200908491513921780566275090886156957951633727667295142069921921176750294982854552978778303943719485883664012675244404879321721056969691515770110598258035350260124307868245142916377807941362906375640874262841638396194628109291892642214685923422309130886828201313241308304830900382510170163881735881000981184754928872886241427594802269038685130313218867155722401503124308870923693631033122947681369085652293207144053778358743803258839273633673732563579712405476710526096262352343213842614770877118837744547648113749055985735253031068045600392322236437355036510303642025774702989018636805833675578298356998724083614335427871600599293329598783298918449496046083706210988166007695198849970147031505809006154772742440410006640940723761945736800896536870150819079958947296563064501790585050558354265771192398326925416902479918998415242171765755465646066028700396506612298193844998827079027717827310032096104543183764661909037330900510748108585114867698019262171294886222070283921339292385160179080768390860867331898971988929360929752674434881014978767019187370000347457182904099997586579213283161361987986517058803349927526186224079941071248357068546751955995315550174440009110689349669550624565969124946945569309181370847577355691344209609640896459928670382577344508080233996212921492715638011844383735373062901263692011768341053958083153546478163718999563165432469049385237610054139452366642617203256383934636097106217059451278781071845728996080090642983457960914570523658644293051090954866481612355776967131827200458357268033392348015911967832019930279215052897848752896137841678339919436272704401013302053067519027481536576543252586847866169004918453611164783388844097447457958109542989465630336346379279962494710712181057358224421860929771034964367114731145627230788381320639828257603668456388376535227002444437200323087428889563803538575649342831320968561066682385236505320832196612557312319354424909663507962057483831988212250119247351658482904120170808427467859669101596572101165936386810888924547120022273721176399779693495703472560337756410598819712069734639077459524864176371936101881887414558207726279925725343232437841828340179535205002132371248762928467558091356950024950051455958610480774231657262951117654251778650876958002542134699415770883969125080844228848967679267001676877255620737159579792091585181523470472628410458417425506967145303206630930734721474324903130803075636430754538373104402504941651700750620502510724554008460198337681976602243875933245709708205482711791841482728086036237619618779116465027952075057633195041526782061776568250938019322348744090111346467227557938368716732626514560814951007552171000360901852681770354379164913646478384579109688224300730779717027369677798013616672808986477940947718207262624261925680111049529923927258283419381662785412487493971645714468882542879616745249430055305631933184935989787329521192031400303390580881048510699593298398751925542339250403200339443167529373742376752918120379579828519638830924688322474976472610689311389841663424111452815709359092915315002810479828806769375944490132186260200240980557678439155952135162245102029016984459950302542744677532866794360177526540870736060866120139101708272107654753954171617550634093959764312310118664646539348316511041636430977448708493969480202370527108063897537927704529740169357264155677972192941224061161136636980347652150587479303673510119287140222466771007623902909422580527642232804573940297638769453069483647764410744077569604055350847388441082028082576405811853120143139573203818260718188597818193110853004299214792902906613978240017777817207758687736168361893541190658618207664204846232924264556956033897645791265188959859763280056009551830015102037632191227189341197014560087394589872441378284974074973298895967881318742157833919017392761916176124610644785404219624558050470370299871211407428479026694662079639967312107566541013372084393443830631975021578624074281865530785583027017235555784785915048094715608919736732013862173754600463360286910206106415969699370131721924446140908361707915659579281691522587328400061578311603766595490090470921309985349080182719092438380007900636054800966395253359156905371659861769181997248047805246719291178795203446760835592012826809465613036600796681994046090880671652127217386641764431745033463328159866372293838013741957880128374057677508663491985961959203997000389971068964828898382551243365682050787191925257586517485249567446756103884587558370230539356010315232311915100019363640017351840106616049467605594572354059463323750987260361166481524172251380999870894646371014331089467988619900418773025267040638172282145296175816178165967073154561563521388763953586290937748071803161597497901215722621445739488219919184014573859373302837191241391600490774708954914786797147321927767121997025965732387427567896877895215249070548911715031017901509227473018579930168899646563499419327702974760667815723877840973676965925922574119695457824968940806270671718251476879327434896194265121126794171201438814794469725506400970089612968404623081644489726892242706498830136803796330514837787633854623316711503873653279574157372950092666893223096555816887580778338660694552136811484662055724571260441970863665538611980411069243755388755996153580587217139709994731424727918501212324307012209015762052170195862892927155182927832013855220880558050194567674330515686729010780171841317380340239999194554074515701316577486266602698897794507258748545152609837451150584799034170864770500203932859877095688272005441296293243415238215187227427190102665019434154754067273778463734645770945943482895388556636777113257734579741198933759671337626670025535531503808313634497711724848136488225963727106233076747235452259647984488803794773661483057945503678232041956803533348522609006752439400433353096703611313387056047010540495130075049562363796519361494817682730603050563764446415533006942948931467396745878396646789722392421332214887526754122637993315149206714710759117023600811067106854261545658168504198462987808731766386508228732150654837453048427562460525754605766530653973616216046793772889314989432840172674273498368749803921930998531576705632232780638662750326869357664617653558144095918785780346401605222201836383838697271976086484641734469522489883387884332625760388556496198097628193528147911116221440542979090605553552912592841283629315185301202146955392728683568118154135546465489987112333844765402637875580380075700581563447477724145475213621661714577513916108393381293900969094796814545277827263906149811440359173011038966259650013391598393443278420990199063229574617380159228276510096039373239405234638487358772202211150789083800101364762654078486080699427464838699814792464011413384323988568734003166980609614341466511282236257518106671256883216786096768735385185165538393953720661353879037182725928497372843102871430674107170056278503689657018091674841941759107846018360475776298096604875252230251688782967388423131740118672369180517168125627415967609459195258273467085449360467846152466859043461229498446728841757050929528072770428416535433369306055044939966974779349776550847300013846757578659619876346601559137512793152885432387114942404290910136342029799975184506375329003481190008028474509708490055545543351590644906496733108466658013249326496243702763880354686108528046971411007928495659831979538883538868744495715619878464860815519089188710850021495375079683557737248053108796955170774937572574181886900792999275316625598615834212421309790179867274011353033696942095841498847389424501969059484597557813382175310963596449268905711112897272000068791428848922356287920051343841678410651361320679660725999997411758549335957749179248598684582733787531319491548759025693862780143208106474020122511219652981092855032190099226173985794311986097722982834801280555993969580404270710565006003880920305963230148718213143306060121934588398265145084924673159387368262672160266907902785018233366174087148122277946629985060126206855710575271833074276711808700175719591470137457662319209730395073208737656664663145089157512751202780128805146523279822830371543049428094861821025365970685067676601966483733254211228975377237676968123963570791507321245520836127799384394505314155104301764508551864394007483502378277940646831949355075650876369987974569632371368819138290852630644271825388445766489643371079273214557316945306984313917515130412037851405973150693210612692053737718221277526500725165331850264189468834580923114669914561331987861007607052381829896250081245121656012958675057823943553310212688283173843950722111869949933830343828345063717048721181213427832104610833521853337645598720809738983356417765987416710689092349554038019700229965936451177833314163362521071327525543213109987630379211351957684239785433771680941247648709330440729898725252518705597777893769115499607295070018289584097711179917407535114161584497870384906091526988761255967929223444418209298001016746595705917085282965936384869302594019113956649242529165002830166655620377942660141976008722041167092118962113857020677437893234099727253642321998353041765106811276597318555528333917770654576513385496531250533017505385412371742114855093266381670352578778269446011391874939874122307711185747721648639824423448470830488235295923542224119781157286385321297349255487997883747733076983261393708030853167395562403610162309955746697761357828985823222802356259994773570199059901809336686135336735998549145945030296855778995396167174848320100413238305122097525720730518316397656193583341919250632210751648501474443393561418950919022456334388486204693559350007433969295317776107016476748649711930184278136624818289961034519316171887913481028513354862445126459091020970533142530658013751123424321810675645387492086836630633482529788642970400397056811806655248643534877771124635631853369543711594529380092896161779690820376450255953114214607021585543963617158198346880721179577058415363921124451445479459944008658518809645030764307416705930011743221663048351267314118647904900666974919327215650530767211082416856601497085162635603442814565034425145141023434051397656493605536012774899509913042943254965408968911921676549242105382062940113242440139179540863739292366151175120062915240417170666803125204766789922047158457859438407541314099791390571603262171685209567970569308349217158682075096946403431016762133514680380615953417385221190250299139963152912860982874018383765354093084832465825960394623811494615944528864117451680098951583388894741105637757864358506666786652577824844261803439017225488907796451507104185385662730290110866979778444288835562117842038257612122680222901981909990267656375768184974872094026818702195135530004547390151660109263324493679841681865211099171567025011946707751475277628652244507364794765847996428535142403458971381850385943897177063341670176116076369999270749923684065532294303016997753854730654235844633807290445408699128504824677691830330490069505713186163975536626013458108420599119938759772523816341486894049425270245568799566906837627872476969657947235420360016026312155891018171275620576827837671242679643517032349781705443578582592305703034046785895267725767959982272096972534116144680386951834952590080315104075379916678573724213287257698956446782820643118938467961267169524716220104285185103704467418855526238172292065735877212213400369698636151253832601480962167996101007689524516023743955824421553619519732744479851001373958726840174642861511955093063827748883009397385983850431568282614968170600223497496240556702599095334792265471805923100750633410468268823201986610912606848958298607061181274188121070157564552711493709964550563579668247301593723060343347653575898398270579635118275947810607769408875781899230787928916236035075209288869378881267838391334659135659220577259548145039688985135266683688759965412470018931179785851832015523048545579896770662652565699925259816798989389577296192544933606755780994149559185511383131068642860565412204502648358198903891434021295692033766123808848940861243968736636680114414636983618734665108960950611402146617188505889710565766956765391780552379968489886528333022866792632122312452222281026234556751194401547680664547231709213697458254460787192095644515334805879905065152221400810487943246275057398093115100457650029478820437411952410114877252168380265303456540675830120366188735301250126605829526036073292079797704863955162699358845031343362914483426831764065108228537681726223395995817135541252598759323935576860656700727534280472324000570872282938882953852244227234981869570163271304601449188325728587650968409403422995454966318341803426181431168217824370316099836049469890187014515272138094246740174695433607728920661961832420650902294953461581531095206637199418625997667941008433070944122811106392482219220916249042279890464458311894843903099674511300593173345385503610686517867628058994127812637060941411772095915286160872700525829087366054808852188419380345568435520368783082022360553445712933873480199678476680126707040439967946842799603319658507770407309130318770824488473188380897519101169904612550321969426006670013157729388298614558693869265408505861519633289477349971488531649536330198950483077095549563861895058382466161419260855068043730140057245906998736560107363796854908671160954784987447305313694766301400672364405248022184095484158714441130359315590980828640219768019451387967733338316064226224203021171430358214417449287855913742720346616131714459826689009071265072968855291294495982696457268940169654779905672370792738474472818804334986385307790845426424393029060432099013699798598674248744479406040903453087869209711118997448286232098640006801217554917964675835068821958824921715072310338218057696559490661261382187414012178196720457555105233823248495897076302069420064723676176390912075819939430991631673188285884018591245354409405597146396971667997308461659553082719144457263150875011791517332855245675282211759338315109297183412569362942089302045253129374952190870681030137799288451631035738999001730205517748145770284360059710993464016444532483965279529717404692277925109159387840340309576565702885643729636667200706214088809366556041818529798811969973328529174837127969789163998760887245209141170605337250455957388604573551197669469655409059852749786985679155001667483898379372196323336100725191718815877882497063211748377184310602896646893673415787626990600933932710119463099643915323734345151116416073438913817663038361781349517575332054550313708668556413607091363090654589616263352213785872207013155480500265134190685516530849774183064025790011936308866034410645408827124792207533786818241955525774450479929869582946339335922019005784813959983247384701378438116534765699457729219768533168785483730847880527127599617258676596776242174156857551539609424325026544207283928208849122985279019712112618648714791946947131488896334189380594663890938404357890742798781796571908424014071511905549236480341111882791563004037363750774782576776391883958470864045822614197833074953205057122713868376474070070774690330272598552589078137095998456516706884509708011516493163350649513577453615319865835721998987467515558805744432559337280992278648035271962723308741845682713223474117512963201865542541153572347750470590238493783997977063489458781917477309495300615286025242962567434029491729041309309693321432422313301881819733773923805155657458613423553185310588509177765073570227088327230816413380357663230008367127517912604717120482775197209874227655798111865615419389359946605407026782498284747822164187871003680082797023592463660487028955986041233657148781228198397556930500751002673966161471089883170172212070429012078509776147929872207144737462628482497997748864851295843865275990071521381330621843043699181689440745315265112069549975849684975568595587947796610363820669232674680225734393706680231709428983685467406767400367967757522896184106875854227945255167667647658473796032626998103158041806312836663896071460978130374852432830569023258127571108823967544739446786310317916736635149756353820546355024329109123079044845415960121860436065370045187268607380342980223237823438614032114235173232364891922162973632666062491757757363927607200739585367415252120141127256987884206714723071674620304365203853796488619428180201586393723626957472676985706106894981451657219596831649614114659509220452163369579690110801685445046773292983791275977942732123925450855617875808253275255793276480014144040812421024157133799380327632389289010851240315549406761282671567002312728844580446971441672223307928010391540058848053313060323117607417447657064632416907247206472054948623455252156932662492709818932817243758171081914025247871547489265746111132461705456597988391279886956312630703760380616543752974395870131715428584091671261961868888126178935032618757160854251369599687525931928152468281434473873088314352723237920180675399775081752613658788339730477211804623468805682180667322207111484658930805866059308898114838971758233846530606981156073440811359458719087241215873830208622086237409464051647493182057843819768751304360896780557555702878580900758025053764530945133871168602873578228935119868249763307961506688745525191493377791739896985337594405380107818937926701004964404951974839201648494428307835209361478738562591596892437343378528938304489475066836019356287406708022020945423037145526384084700891498922098573342643570947986039309359727755687803691074656662130509638596319687548886836311016472355459683536703442701728417835028616436908041983709277778987864240265250986754422551151497506485817076247020283640665950113901663237413764466506837364872632822388697005788000955268724155519333053932840512647281260133459873514556541453071743862048300472228507930388279880141298552849550010508546762748163518940188708217753841962700160247430016627169527863895710037203166897206948670965633941613784512859830591985061981166643843265253375755544478734490125532463920664471361401832571377346431545822097673551274089651468792854107674618950496475566571986684900609741763426676605269355279738504609065002094217012562670173491535446331594183618365810775582170156023031509993011356396600435605177119237987979053710917377035370293175172292791386011733460322225000218726728627267480307639930112717567373862490138027090714158023957270304945774943161696941440464282627032543352006097671705359971915207242529801562243580786265281141780131222468713429799392629588140006132247476478878395556072545323775312023479631740012824475472265168124511651082410325723039486755085634185671130762721265716211580359812803308564900835803260362849680890169912398863339003768707606439617532262572843113704414719735393206929702990890563904131183394435211852068914841149263949311924104701901970295995285518086881457151824042360309338831198659052670126845972660045765163185085726672505692334205552392234849621245578400957496355645459078338590833181362174366815396179145701848179524736397311131711756456755048495201662579662584041952568466481724040321732668228105998198681464423954815772368664728057983907933957744529134490950141590317487011785407538048018460261949975898480446183509057111113117905289366469979699550210460437740502262428001571579083207577565261413935657422152753431453958189373318664151828039436365861108845774372801280937018755966241584853587318958387901497598374362790677895435449511396936312251430524259958808009848928771796620654892622655749011045214310279531038620946561958709080597137057111340708260360103221823614119802815423019835927132491506404566004149684872900604630593594348951552413041698667378568799879013005406432533468101174050908134657223276202316925097093574137155105490572357208464835028012842828276871374645169964229243448969367139479533878224947488632714521714725957480852639289876291228601707054517357144829978000940668621761663150903506729013104025160145070494851483497495786505510838831431344819248072991585854675988621273389573327144212902881282125722855491929729875840250955848881920806674279939465307017017898959866830986807266826120901089540356716036835809013693721162420824646549522327604938231659747537815577859905590590099057316822587359517435569303124039111820772699117841778508414984191087767825349593539567692828343395545172586028894179463422965152698446673480066480876337431811983628541644523966808388431862846231129605586180448238140728470659968979440833830771930175907203117388511901930152285449785550644013116321205919242472930811031493371237499581396657562416192807099555243501180385220864421948748131186579769322711472592973928003760826862015192781360937042880368420687843692077895367141679699972024421999213186907029697651955894170388553060007461793746973639062674698260581015692296313086205451095730813127200396609622523287041183594990312948486458999655211320369787135370717003757665828951871526866714986812748349777912629446452923988047136792117123224703615438802247482896564966376410232038406979577693471396822210766413127694322856307831447303391352319296358156216425758043724931532972002637975344654742114563397044667379061339819998244180351941924564631494682175010156065701071183718138194410701132390917973806079305727678086042488105700630770285482171937849934894438865320744449288850793863600378002481120888604101861968135510112223723878383939580051904154107338754408510127031924794685558088883620814025471353007239069106414890058396575812696148175519732593649224855163409206317507129183984554279976172088589633891658900193980624042892421323147014574631597673589831468088357751273808765590237880718536956469321030001413034229875455005328093554867136490867268805056813723102750699711476170569345607311380554692477985679777242017877525059644503920038123027409865701556603430788734585449825413651541203183049020151775136564466846069259478069802231639240634667095453243484588887852080911269313290171322019525550931399948063203304195941425084654395555768972368310551417071874902569781584311918309698252016821757636762585337998261564141906003759379935682533188415032029129134417210142687075672963422311739795250986492028879985575543210477448177903079823513965877202782321463992983129782133613265438327556946709897470776377153039499126886237335179868737068578186161369849148057519096368693993469674846028995211768144710931681110256585714217680977037818837619219243909352749604037136928038257655730891436856149680428413477398687217865611361411368265662401009006466934362432843250911674009283331494256076225863980964861809730660909649475546391387649108928562346839316622613273840949490880843949515049251176297973640291746068044399953232526589766184463943417140916032454733232314238105410318255415052826227786248771114506058398556130664821004347211733756336702364689411999374187478061388043826853943704132347434656197637650637498420498946200226991242800537779447654237805999340037643490505529611148363927989855879965613339133653587726313810349986896092230415174599093202263651676069285836882009406354771369747684810346506287974344964243017116575656156072877912553933364453811122747361723946963908816060971212671780760769467844094911907808219516439785411212499812038210459466677075881763302972079164500777206577019053833131190734535346784224210864150844365890177314151039154712729216517263371639550348160707543144736148405107205818636080956955530301732411491410124161691059466577405130256418133505984682487272432899388326735410275891193298157007590034665926485889753675420018433016634326000279334643370577669299987595428379864173096066508278796981935539394451451887348174777462010536168609133847218273064850853819460545839737126441863381486712708868466422264314742909720794373317317498459771209285545943242565326867707220913105727219872445482228956297658351144986900594861394732286394634411592620369983226180001856107778738928461853317290772182724435457520023947540748873672521860790146228160850911945673290514471905483619283617280036383044431284242356917951310759100598433172493663491123330807711915220617074320433537914218754622310754475706793654821531455928505289065973269980084681846216947802406500177104576831717817878858703242713009518571488577169116517499770037972895486407424617162334439056807812832620957641207715734346125736782080487162728439878003637586228876610557861832238681252537861570240503124903435321893722151986043148147660839405240484705171569010106975860837014114930621980485392135974029586027883310560564984362435676208964719884794114333067288939806475463969840799808546290418345491353758679283827292310329051072246656173856409562290217388055361263256994356450668836467016362712113502349379904297596906086291174553014830109572298426740071576584062079678629820140612142196529199528015985830316538226115863230665270723716071473823253026647933159868404305231319384983664024093443242241047951091976002432080221542627272014711935692480954323413126576961218900889136212957318263295645251598276790097479699562418580689710424380115411251461882669398217962043748927748482328653868707883697630098805198554202532899713978884315644663588384692336828431576174163804384822985897513748077838953008313242042553644474183104451432963706761746656203187648104791241810962989145099278965701671583226884704814411647515579434682732418659980161034870391573658308453048391282953951430228993287528591647279985920013974102046415198983615650558689994434114674880881337172321857812682650718485603934109099082891807722274164503756372362177762020697215387352210596934570760906915532132018062388285568120084931173735209795621654673174668398971011740524321502263547030304801728690634453708579425213418413099291378718652921416426415965975991088635187301250236077042866591164629445856137896109878531823129976553528042581726016723248436132036416982612575305590093332241964447531423695434539475213612602301741169960780191958920653932792542788904308248267672151637216976666971366581883388280435190846353732767970041623720129733603498879166092297066183789440297116975991109866592879780692570438094888958792458159102052905304312816681476382564982316442910503130942126019818425728297314066747185374063297745382741627613074031759480431061981351397971929668194596779942700902612918730380888950211186042788390911380924527504415508307896875793465673852102893566845553241192117882460654542873429256868802064387137258665334259685867158628071534111186227225721567932157193970560586100487002698358151355890244017437939663344336569835445462027253733674729428705648114339460727528033982891845708555481531226163578594283785248270341405809225704581982471811863035817275306321200160425692807505719366381994233280291909163121864099203943967381261473243987890368495367800588798254530575880089326046263444896742902501333445379965838359757188286309005412166556717928252609822698806464310301988401559491623569664711473403655167225093308583505967735347220450312329166436920881489521732040395721683503347314250928552560406107534232015354662064593779632224904689776126833780356855385850868504658407908556412082371525871800882314216900773101264730114218734517529883533164136592572063261899964287997097356057539365771655986054887144907514601101100828990429722171290092262097918387194554648873868510726174540802302603978277820563808572474838307652178005122794519957349422519929936691883225089248425457081793516680157290544917392627508998010048444127285039275551790505042728070190447211055565174107999282517871668285080892164048039505638519110582340226155564745679624869248547361681448651404348397487085422691831589697509668431490274131300556501292786267693447605532215018264324163602701524480271121218334225148933561238121114827523818746108351672347024943005205215994793934383869581154656638787842674385814260038272806753598492638272331969502950450350098295567359279725822019327597160773503637174024338643532768565961295245326361992844414170958319518732465537018413403901309357032808167552580047770945946605296259696448080096935265642088331311682658098681428188624300840140894528175338698593816250855842816398858636425670185135854359680584581970264181692509893203109081785965543596945166263975128382898775019928895449757028282182950804819429852864922454546847241462644758017982511225878987886601125175187292676540594531038693817648760167579315064679639123781273083051879848194715887156325867019851157282909733541484647156554710163170928733713387989486656581756305010039044096870026641376488885879792575880271100807925643908496057952610802524083780788072587507838842436355575263627656430589210356685548649627281731497610085604477119380578350461718069345039588224588639316354276414365815998895457621791514901826833789849879844984068998251187377481042084266972066198327487108976152386439376222061891968092376014113399967777253731320138363017393424285061874492515762070533829647744365989818921623552730611861055840905511797521655663354206611301372236644860322307783588526182966756818417062392823267385675313559564893630770110122031753802415496716756253521744006074471630068164888522221033993153419323969717431429674754333874794070063182159491588726997459809879515409129862125849773622244971600983633501642102563550432699850987809694867547125540856997755973980479042429538646380382314126141278283393180319317552064883106279705354547120050317353376271328652372814773231474624025453787438063395685316862121273365534135604301068748666757776699149649950819508886353472883582972112876737744886267618947429849404503712600483872878538212559559939401959109211734209393506282231701491572199638460019648262936897538138949131325092535778330917265591543169482093348880521679528359462826614520253607141631234714405742398318250820194522707296808878644948045433919825600014042048586034518623798020373075559804578496298175750626850465861533043374582441350494135627167125278432606950833776950739861576891920701943790074727888908505090686788292769758154083337863397783238790889157287329673923093466917636787534474514953754182254100702812904393559532699491055593521373634194587162942349775902462224432116249443672935252296180906150817581303156942100532905055637366378393588826757331468444103783200149268620677372064330939169856691516321107903039599542621715235694005956207488736991552153748774298089467233465858243506182778808505116703479570217617965892040537596420706275314349186612590599428733426268290801768933804270827868122588351936652190780988159051282324714237639865985868946619807428179155794216977697773247885582016025462482434994950655887578548148713683971664305582812045255152619140018146054607521121714690858719001819831380899619288804393506422707522920374049131597733372065962157621382161805201004402469199506519100876878720122759227789453347212599387807176211433611013744119598226014725449458202591067738193239483216532982068260459202204193321147468653262028833528658003577900760442368181056552380921588024699095843761079543993529376772330264706974827782446064157587169494350366840588217728148439128741130939434184828415110371700781397495303444337756102612844822644021945186959366055750872713830686424249921020003070673968747887294820456489805616201536813408341981651014826009762206551308743277346330146081440064522145862356181121723303901132380658491253855725303757769539473524917997804436922941119849450612016905502260065584063687705454694425421608513224716613454603766145387263736759572962546733565599712989156646414601702039628870502531452390901321730941944173013524963570321289180041064334961261556048666546821451091044521900267677833266566365324595545435595121719121974733980066258200844806264782483754251885659434083976241684480235970386231112798318505039973181052595796415073834186971623001166950124389122013542633130117561119407571993909812318771462805182584654925588105669901839979729122752063341953511321060808024715973113293914997601194706888871579188959648716765601647780935001825704765766179075844681124743716727338048464634782421243171832090068908382802031087200991136754815422182831829757533739184920419706286203767974562808797537209488925253247214700350201699655172832978738280336775637229290570550740993754042322679809184788999460957071868254641515667908699229414389872966273659537935661171492232811815679929498172226085678069182398353318535652198152474812236645095659324878075764503492286232240330777168495706561585448270374280815549681011660411820795614021133019188758620893954464612354078191664545865956578785383088711546779802863010296136107553100049448421045578682936644316732886569903663706142330937202920960837027467098107680273377396706958069415344732479338946582879331472110352408708001405395377294013368081562921081427532041882165410981192847348598107902356834677539546549420855305703786908532927257945757163238819770911003042167819168290354249915851308328627988910901382763328155339079141440073014827091500444517285073691247389215811458139347650304447311193251341821791096313321526225146924209722411618764358304784451270942579791518274023776009836092206354427990672284626071451385370944068465775223426574135402655992396066128036849897878064956948970562221345186311723389368048000684286523975264345216493739108041152877545139898045742894552651165793453163567159574088718342955658596372465668791731847369222849223522878171347817335987844102775367183156620885801982808988168611046108652982571321766154925286692365887061188312939402064783807117131752395555093686397812324954254291443037904710793479349282574683404513049638463790668394148905662221681166434795151238443248071199551052599874305306741804751928082291674758561354972937631136641405770474825187983588146961280462646080007697986826071999229785175984501819265648816329623986431125963883537336192513103879131413101509882259439780747412455900050813653718659665229920425449715922881479886414750279046669529798273679868889887926671287724610221381622441016462916168535555223036621335754841402478687474832438499862833283337001919149219590562270037739873895697285757604995794093406602634377540231021091589326331718634111907680412558117266759876489045041568222259608438130068000601569838050639913429594437832968787316057534696740617331130727551952370292008054662995408823902634992633023159663659459875759836147677115315484227717140563393977863156727667209454793108619266251578084335471225115376648180602595692597590059798058771905126927129629105933998897922952228951667245543287022377467606280671838707276268847313011879041602287490058598469976604865489272024105697806823209406860599545909808722480560936238716476667686925066290249067455932976498668353358076244282583690916431807783061935951201243465888599966223369272028309153377554956146088537491265838474356123409169419329209157570663487422937154343922939991447004622036086689841113226562071088533649364658030248986162358688522953030380368176615126002828583308971432259385697618685131196282963452608514767461865775465825428215091813868818087644693131595916909909482146587787229033303436459853854764708213068644041406120977799314873406239147220018715676316233838633528239009444757475555167925112435881082306435979272478766225320824876786714676285729612487693779948835919921765041863080458557809721440007328682703474684542692029814309075286782790054401315736515598297880496161604736497741898826718253882211899170305845587575840613446343325890285288684912597691709538267906110267902966805858373056528927485251153374116840397903682305580945960247927850898207448744648224323102082931213942658806921744378930737138047197142098331706675449306009394592316910673898622484688213604983069400863744874839210298243631461665724532376149577851236013450957744885021919599836107777130484830752500990250499706188213066019251164497366055639477607223545922234140433425528653056462212342891548082924359355081482516207059490400036186237621131193210568758001595417231010145668494142240210122123401804855476129561863275961570479854285376661187142069188565710065468743671738239680495523408291955190943632301477254260697987404465541258388897343034517707420080821263662994760672205391469268823587373426907729333449215152496230215495452630652853703439784077577222114327889980821069526075556137077716309069420843913118967039298159429127097409133823454903899823565435352969374842676241807052429434277546392098106198644749581686119654014087918757519332952166957837724980115581260678417140163259787568091827289477186718674947601744831526107367467327766013009960655892774922412188000876632488115079124505278694096837703581971668796307536964340158643742283398496112378328528154023145206411811743665399336048048192112002568705752168611110162713540639042321494285532433041527588252336152486575068211696673806856520441027639835466568572883640010917504608386215598404283331250313174098352971677720967891314289384220711526419881522330820784298569021925026144064557514004920181734248612983330318123145667822479301912236884239293854461396679098105168636960693640954770890657339907549208388296717146408416036501573229715729473480417794854146977617328946446817440065937800505140064496083730410326211187025928252399891566060650261573487073626675011171180562108003803043509057157611902837288042447003999342497522417216917553127357293905092105890788734317843587761439677299149219354016089469302175080723141306211245141000249538824666790332350027210532218491752415468251674851662694471210084382085312738595437584360701797528066202899291718961387019024192197663859236068191412949324864517573268952005038611466378577572742165726874288152947604693910321579432444181314353202002566497679452272241550265291553729802289269866559095282741474653724803123541209069440614742724680525792889436831355549799369654153997241456498690738580578245763996962527284358798268918146716146231115363949896002030826694325274870709749542065849636476360122819716647480794281671008889061485085225877900269138119000046387930289766506049467895645603876393203192689915659998658841184246765181358399905121639462930791075893928814255836740925615708051575348312449098226761449604815878160862822911377584397927640641295364779243728641964174904578298161679452984331726923019470559239666538951879938472539998570103208102571972473415172668838152008441952625225866205378316424717987562842650714567116458437063117664444510166340841323553469427812134081559342352679987955650477091561443564480465682664400022858786664892104184573886211606103376636829860711008291105881491101925350276759479265990925304086187623763544255051127830622797383339460412080187317602858312875157145200556307670128586949595986016353076977982678831177413790537662953221065907426498067484993677343156484693264417135889614473552926913781615406826498758262904749985087040385976288488509966920091846175745377419229712100639843300296153833453536208642167782619073008337183638739301210230909085544607380078802287251405266671856692139930905426301851153983811982793529686777199378310863598375205130852838879420707272182497784455219359872150926810778356064891193221319077446130873718382285644746867653675201874250963376072180036253743113085866124732906015676127656736941834880777809309190835875505786261893951050874892643052201741374799761680604164460189505801125576843631162269888223944311734550717516600802806974758830584262538736781493746292768030380026901522583307068831543955614908186859558444812550146659669689667303950516815343591496032276607128569053251252142838671900932100077773451338774543709718111278461376482465740395766206130652182210661079615988682018910169201142967892895995546950263091140980644313156573427055224563917168390669696465427807084553008737504659370762706110029697615950835045943009946097502629577943002969861273032305152099979545093721652417445902245608402472562404044155126334612571452323003389959493589204302024228862399430726903829829936562026344165519043793971191098230136769238918193499991424140164576661393772363983713727420389844001975210457665444419725200862642393078485087639986964173025118050608094035272229354307079131415008358437909770871933184112031326574893698210293177455502186848275401583152338739484804600605801399155834117820347499711481199489502700189260014629317102564381366380284500839703129576737826405815569916010524314873180500386147675170220527656514542064304828269187760867425719556700573457216014839425039455787906944740710238047629834354648872523541407757953759571996549520301551770052253045888927432980103081466395228487287752650282364576544429966886624011917762209402540062194986402741922980543965254788211248834022766014185221219470554667044082376351843313415013207548007679836405576189837670368865318515971172449191009827360596303005797679062788466823093478773092467513543824556434756304862568286884578672713383641992625763009538392856327532902323359487200416443478418104586497363958668758067670852613643267947929660838897314320384687562727320878775672952007136151019347652085364210979511607263500629580871438394044313203135222662829648263087506218660593554165505818453729012599189193320276668815512731774042939587592671141618158718484259757289205348558152324034812192013509549599237228707503321506880412705445417272212037472603046058937205615557180355086222696760549134025984987842580008963760612772001717239510622082692853262609897849819240698132719663029971957080251067107457498147143889151201669079537717973474726972701891201687537398612453668993613225734801895311956811578118923271875194989034951701743951671104753807795966998880435396867767679223941663284557848945356405275412532164038258276049107550952032104379267932295577259974849771857844542633659884117332874973381834224238191144776564752461388449760233441800161564903572032582886629862761795689355456622176085482518680286516487025496149859765885887127928250145074045723034738022015195136327417109848677160625859206153222720024985176069563581694888825316330140379377658661543355728363644030198661567775921801912848617261185337994591626582722498359747956717260833420526206778495363605179802373706670728417973215601293408331333168707318045454133604765942718011899598911303782734370433034976654813056256705727887503375047853979505436259740492919820194303848345209576544267089478306908112429591339764280543167391731356310268803431744469669489290477114816778629283187504130927133941287486545208317438059833192115456593652827217054193991903784199067515905787810627624308225457874006546709925175062120335246073185042790076625603951048549831430932812239727532514840233096504664709769887127017327941071850783045049332073506016971394028507575625897664364398027686424899059433950397948356544444396654499119020182707432187848627237963551329028240465687724805870936522747967538566028071227259617158574556350380884910043012844938726483880780825620304931506493280200573508303880891009666856919033001694834291617669465165877501324041927918563224755571967847809902190830822586889639400338321751153071193258982010196465905027178299475130105984174826892081812439132750538529921307481544981944616904385581060082629159723414734443040233605095559008571650869113080064087858419290898835806878412123627240853298824456310572229949680224000025551818054315321628738673366017468787239086912475918077815752198070446551721601820837640191006872374403285557328988650364246116159392341128363109692016631862624030050866076114237975118598424937324164721985417043042176059871979242335740539993669316624824018004838108737758624443144844924086961171002545686728890270372199905238532913444944808911215549784406520630143829334637516498479641128386815973591079436108354992375207521447891565416472924798703954277948457091869585854749960847256684835665023820349399770617642393731071725389398885915164893975474763687203931417178090783842995909417177663783670531886856198304772468759762168840567584146532327303815352078834724605895514710406946424389372426526396298524473390972494172787749819292631077374491935848160894389458060918225825645167993442840858435268127287240234646694762426068080493873223530286489227848404945456986619410012172582999953455909600813562921867505563015847171801180924391297226508864762379690846276209485002126448114565353166137462904205374602433128065442297626646516786344372945935484071949443326832943433448985610080031150515698170489169562154937188580292878065081334569168453889850961735584176822737556173344278807424848919063963324151800278982603700684453275004233985003253164155131541890804255507710079334386073035408792215384924913317641052279443823233683555586374439657111695266407257439171980596833144217231761318956229251980542937043195441459222523059815726001164697853089494109440194602373015310868187946683244090153810053977228192131291308706307877743037444994478102468615679243448180215261242008543372295771761679931076745708284492580023256260372794064231265828644284342430398633685581826527801072490673805261459653124295323863585259761254845968970835083179856860611622484226915451181746127545433534503167382209429850930243448376510818260083156438445433548023711496187499255481031028336444661283086479065599204547983190834772590727743691081943459473265418364399317439686808522603402005148487725495694290794417099982875670983640057591509708094896042300260189249473240940597771269993614828640891086650608627381855109783094198245478923115431052814935176061640975596550484011789118822239382316905383104179841384637300607487086416375978416434916735063533174253770793580588594791289791049781632030439353029918119030931022324541513385255785939304129543101350682992280614153827564791617626147332947877691506505074549405005251274243758807339502327075423823395656159371394807547920065508012479489424758991710417729276119884165950691970793404683177972409051008249016751054537087295617839440783523974070456503240013800261041073127705797370232801188461828184691614851203527179326699022740017234665338707628852013024016878378892143034401975243269812601999360111887854339836421851338068759663599628482550626451708565668053012556370971894498084280796927564528577479710154209945768722433789698034018694531117507466188621046023476074646513691914939815673622964303357816000863868785444037766117543078792801949475562914560694992332059506269940423687057602067708324967924882677768385207552145447132218064199256466339465935001639487905576150039516313060377199949099832759658654468230574909249950571741996664085600759428851822738122948091863907646247504764858213686744505990950050599700037739553233815184805206487017508393504661114901255352935699973730907047565057099117766347126812097044826296474907853081944016861082044546212383308653248674779575673577924208126561985148132698791507845002089600237198579498149623601878473940900728492765317985030967652245040513192346531023349442950542093847316093723199214303053018198160145856065473759820478350552316296832798820476988856174687668977969450367005577774660295421101014950954188156778612280477034201857013253775384456522589895750735331651215158859383875584135736856574195556042498197745499858392728149788691956382333354416586510254975045953367428506919999936390444783623819181731662698606894447846524941672213926295095592538290196046831204607047677333757948471930501264720772094578839611926877566916299008655663704427332333939879661193026428713601865211293808119728578717787123164805516190603118077724006390746592868090677440090584424399627488245551787189768586969904378173929960487466283948743548205554192487475543367308763759605660881217719628710272918819705796162824668900698656686356719321581190056591376050363621924205249991389657139138001675639241974729006760255457095045483759866999851838014639397717705545756314815602987484743035326600055771259649923189766690308899153087655193891678308891612166194548457909591462215681454819736738404071073255446262219757694759476857209526445427298656524511953184270841014445825058101102773866286805401049881036656676948336630515673395512921108652428069086530383154212266826055850455198478980007459368815563557127810386058349980017424214327833957955166642358805581159218765609388160948380752830366468661502829137132097912218910657815890216832130963640680730870997387848559643900203691379033241785705875002254664176226428614309715978603383552646354478112090002982972727871107221239000671656622764743710906345439783957605549609072314020995208460576478581225593496623430458308572231006015009631831592464625018023627496244892524739380998230980647694269816724644140228732818520886976913661832246243416489934123824813382844512765409510251392307800542774174772260306726818039165789545989155896725339091042395253356549642577335151347871017291212852182455427184221016506045338663670971088016381827172651955502364398162156228886768895955063144965103476972280727733198044268045067183383406079073806282085630707911035819564839593174958714132633795504164761494126590274287786966840850114868041526833792949014004233758878950923202870668004104079850076437352622746100694683953670389391328048523480177073662856102267499598018283675677849435032216666640652583575785188012222698302014365134851424790831172561588934520036103367911778012262287814104970789916644802100734654478462350020767952213217041981362561735116476858116853012779326870803058469028555768977173382980042557210986195562754443122862340186069394022006283645071710632116132509495397969871180589182820889184903195579341682584389400440131601627811969146616719309618533609327413914983432929616432622020792923571345425495887381721278813736032203306747814253166497156839575185938614855115210461517919944055706076373416736443478733647422423384137191471030291282701777618346732991598468717582008494381607490853981826359969940166258660210043117494022911650601387224666366278735950483146263761549995393247879699011830429257149025969942134802130600935800137897160224161832816141287594306850780604785653675849051914498306917453559119008550725669216216800013620978757501496447960080379210325844085577219333131631094222326152011048232510999538071562709051060118211747635068092783501906973532500842167652770197207725028532937065451223800032352220186219064043749963646920922512476118969234330628294166881883444106222152275891981532436139072351967855008566932737404894427303516817413492858058800596061758289082478577584785254197811144262720978379657912256747319494729606201633186855056316276931505700700215033531726996061930294991085629464279693046189659666772474065175666623313933223841079280214584146200542918335603790047562857559966457048964387887866160910016710397180612239083480807026887309883825744841007053197279245613903861768799966688708110228973518453263190326012897454952868420831942018089049934610792949412002984776432185399652573756473122668616072142852347772290542554646845039083998020017862156674295187944771052330272354652868218206865353639405256610038302492425291734253631226840076938938306294771616307545492419904832272228589501296550972251519100111348625210114701278432333501216331042256402492544022810774252308095186448962629450463209382627445948912709062013281169678379077946789560233595595116690009791650598812738255571373541614826164926771295485331774994789938983428927741395637572868462082448645357377516579043530201370387991954749778170797242620393607456078246233128959939473221852762548993443158877529294221316260249067892396735029293387944538032056074673814597106200790046713801309337122421463337762113522324018726514355203787127158817332438701784394460001103641284117230512290934315756281030941255465927494128421257590959265981007974304699900201029845579331072292008923702201819898198530547273864977022875657654188398660440488985398210064012408609520948141462804703572738695501386695628600096798552656012489623450827061713063014391683748405641154656888991246295433587289769286212534418561001435240670665372129698603856519649040062936631690902185619566943864506619505335206841412487498684008611188176141463626925240417704789459740060831281333226746395756753842500565293046685466552922355640374761241431157922365844831203573091406981711431717292084517032998280722892849457751771273772100457338981304762978584704470335879059005559069370653300340894929460625322472593899196710528110279294547553289260110542416593503067093791552981815421779732813438586818033376455198136363290700033044513082360036326368319510330796645496907632787789215119656684793918661080073330822272016161316984450900138672391401445915728618809870968426788216836203010166451586439701926759669154081906294974909519896870964400962700274575307643842415284766279205841192906800372801708426278962019356256576189611838736384779387871089862163378460500319477026737922671510820526845025653233422664884551983384772434786979677993214445905660856150501437293922286160069559313167383873293674755119756663215233678052066675083998670684285665781723191150791611034300105807168941493654668636989739367976572931675538499727470198760428012962089862107471834570347339570823198266327471813892251857792433685711457503441107623168081074892802770489875945330770118654858384391582122263279674648150858881427609357223543770765339306743460901941006545331709384044992596745162164267069038064140827791415581024370253736696068450014133235333959312537313445709811540670404819994603690044981717897197831049529019416993519522998998540927366806944346165537847337027132418850704650143455627097684199511741466428206861225944781409477784513703461123346989383480742367434054533866704578017842131320048939778669614147560835218062695391917606186513197012251164601012798383276124256760565769699115974669521413022182973314201779625448963242238954760308938676607919543861680972349831769807844395004796040819397331634742992558134687362559180408611311267030799788933681259700842015399160898466392977902679709922087262207442240498123902008815472107464724661356473339523442156579068478406710046591922578798636192184624969560984690804932928091320621188430320251236015417606579632376893131621838814730297069911786832151321436942931574783108136734019608014784238007198766231785685808456507118047698895253791389862023752180917859315354396628433168789539139013718739143762621044602266652460689311665307142491787614832059429212176730766855157635586858639627584947376203554560006216172643022601473909746445174900582435495323953116203274734235146521649018022603695412832919017931408480162120310255419577544738576687389738966313110329479417846103656661450557970823735518625520052720096288839678210397581765011464921378688800734250410736928249796568005676375661053658132990663975389123981425414746668835666737084237475088670568266924896400588559781248954186317352677593735827834034499733612847388373092213094442303721353215359326812215210201143192765819070276682224538999980636724354700697236895278814461111044538127154599617030328088311721307840109181780942305321864902992524774793959460698891556571225458762297773593055104746902223811473123217266976599131696510350190240226724907995496638799953023951018481274447646266446517956304693827332846256649210725793274285046685145066893707186055854486794973253461468658677478873806736991690182841864634115847159900505376905372815973087381441471633768460328595851959603436244447888540628350574863276547434665877788842229772199571563285769158756879882688443097972326462822575609017001487185312104929112126698804757391484753206988599965740942175376325415159501641144131303342281440134010594067476315402436069843722561936571563583017725160310799784199248308977262432089343821535565170516418617593773417794300382211733275768111317371062655993142987249699586105442767191910145818821791744439268318713165469016838982686154505457112644259014601594647781099969307933797802262901712785880955916272288257063484241190483073241420083917556106312403242853608090643298298966745332641353453042378670164542821706490232149738620729442419842480171018258296941544526852019916198036656327792484218353990407338564607440474458092685928595848093399233609448331232652344610920204504171970183013972995173162981998445208734788723525136536322327460479944628762325157293922384147172709840545014459207231948520487508995577167997159049107636409061392069543495199118389888153810837588751021950191015717692036491086132345415102301315497678177555794376107488921564010981211015915362836419216027568266303906382409033438100009199747560391490088876859691130540697342905358604852440766465239384876187552239470562512735555797447723977485804408003136394205011102022290368902577018635213178339711567135161267951722005649955972363834656803642955470291706666621234254141640163441037481697618715163855436806202824428117462637015983165455093632050181960301690849108947173828828952803846952157814643795201522217206957457864873218171446607554054639738345177463105166039460654310903747464103738602504393454980870633204945562351526229293218807074768393940599624874092235377194889726017239384547112187973996733602991391023971016635037897230784985350361783096710442461966504848273337281735741305828614949025750593969955860923376449488444618487909181643781010447597244359447732129994028817979901750475591229172846544002158068467857808393462079459724103655823701603848144001990035976143543989929823687265564271520765755206900011333700756991472281212377401022292567713582220279482103891836433447650894762779649370393028120107829603686264667662297997452013802502407579938006207664271347973014612724025248501551033289210608245877871709629045529274981825113318279658627870486037188309910683412788138761681485771637750689831017043232019886537521941543262384267174633749142254460490135383035010689012694529671338978126488244868926760853290345156200024069325030253091224926900767059623429232878234698483106880659530794348563108853895129851994968382739833036677828216040398726367214614325735689139675124512343778647393172080736488001697202904225544975823123385892169038782286994566930937961555123945147804536689118873068398049385841827345076608024224828902786180878497716470706937018351153257516521930828754022153111332877091511624122999885363533192174892527718184230372770261179308887170704157804401783911576780257283751695161660474183821883002485079846047458913815466538726776632831225312402932763166314080465085575836328824842549028239198618380968380180343370677643963610926906922586357166170639740869411273028575598850614174416344570266821115175451931140531550278732007590776651624157977085617110283941611169954190067424364188219906973226243571238591334431727860780529074387416555175188990163321635859925686056437409116808715250538916437537806007149568299111175421132966494949455800580541488583950089625933715188902098643716615164224201614451191954730604185910550842161840896935148515522200172277732722755055853842768053558658119532912313558767617734206723815196364103291016418633009666319689167457484938590239637178417116573307212827177688231862426865969719272372100647901960674809251430245429137570668694931096646858091882843361695081302004867291930381068050466158178884640521784741280541150068899558692091231948018604543106316871540236674910795882078517773238705422308616283651439379225103491890960180602896566857511213169344579430907770475170067044532768022270337428663091399191027569248779808286273149054007095389815974166137096362592269859173450378260585446563907400365928735519148546684724180081594355765308063875924886737457373425214278351765791904424468522413795105611484907203692489736553157060841801140461648072625850757096487977147310828241691352185356768620719133324170634652281363662571037709851245596341850158716785494052563367861617045801094514906135006833851816663752423087973521024486397941548250419947707140569317571463096627753704880479079412227042371845437875312026370025578625216939045199167741930338802259598498465678651107903314514347748799547472744157831988163334017849811007077655647825756365231747416616680121984499310560572711797892907050014414229160264662377384670055164498650649394583691983739769599232999043004452752587584282121838612438407305097778917448634837002579507112791853279899201760524403138443734431389523660831542726224305814950121449245453463793264661583980977567092505925411696796522611158310994523064085546371321979553638860351570597669678230258113164073252950897676626205003230101180901308173222687201896029881753332274937631930710380493369141398148308497120571266324573179474246710553071532815507879282840324316517316715587615769752567153401666473092136028719791726232916192484963928800178905281287295399479057043996250930635642383219075304144936618049515292102257086007298488899890783005508065932189118744269753175512887398947286823200115234497113882062778276321913360067091812125866374219211987579220235462647965514820668942247191643838068636068173095389036816299413845404427261657608478427126912049460610051097476846409458152526054759319144846152958314607682996492105732080273110630909302284264650672083472723074536094752078726798258889614467862782367715625852136954950439711970015473538246445776131263460443270721310446422108510980603416482699568654336920465368534910503739406691063240241075603759717774519280527256748925518388767362877732887700332891419714082155705994328187163956750703238068631176251660987774338427391557225527230794087498358344138736525354599090476628927053272596030504601129587251786750004655106519317052126844159214894636208536152943332995276173473940854786221814049044374139839033317096275572986946271242576590578595439557781209443429643723427707775662965569649322905343917610618316077196845433177283490438865268840054454022382120098965838339745874611916567315117079140060526793388719627004155017024595934727856570119877018285704127424390339175035115210536197642169942231855228619468353944586065841527612381312029713406145846804742730203389215941792409930304669246578330475300149296453037212364700078412374301689879778318677193190608195571817343739855392240864955667168466266611026394702515931808388926110691681672468015891264410394074542917814828952630629115633800756895272527703607066819258448892387211910942015854326752627087096022130169993938761802596243192831819117805381148010172473857106972227196355342980061028726741768268139375512830515385666623706200276348561554763419938386772415188545136877098616610305505988014752973383785239496532605511712516781642831649913942277257352719024828188951259921570804239805891449730151720153411220119502295189427217686925660311248045716342786775842909790972860115446773654756248852356305510422933510418027760733985457623640947245805543359371869060948070154787665506628238109762636730856276130826691922406075686690964510184275919501819936853481401365847943045518304835697951728590050411114337738181173484781102626028283180598254112314631172547838652588200382443270204636844863939753780013089776519386616749340074034333938713895537793607926384296671006473451796794717570422012631890753986046967059196860739693076657086040346318424383261744884727813004540803881251432205718164132057811000328573104690951411578528147231693337790237575447284457246357447731303542991771643274178689133662628839936997454718595367833793205595490250411174011545976429601265676703496644057071991945528692384967316072660858808625717401674192362244028858136351572890686221248286448158589031356484641507637730855122133437107161144220988439559990129959578385898826697244384423330350821651595936610535510057338690081471863339334022417827771851318991478288226059657691716389995367138091855650547819487321801589678939012297859842907143948857249983200801540330298500861289591930673994258352875040248653637481774028896592878123594852799865808098706056268153903533862739843816051830149199125173120718348151896052462872541396836021753424258513138221716020964073880784468807789377109535055153062427206735075098431026514619721044918674283879530424785624143574711291022030426264175086741838182679639227720797065071902342521561357389658713725463116164210214726597576878409344438244607154776903661939465876384249605749890208793890986804341364048326344683217746954926598821220212831743051470621650466533695967676093124782135561567374062315539222219395150800109639182801872991799023839696731684690159655930738017839133990410035485355497225617053756611483699887694825762159470172762588091094963459999068399730814915304683662429554218387134841588408743486796795719894947064079418130488341901002826359838728874549838344141090292292418220395948516456319302457695992168316430734354198048821500114232510797772209047308365636735276046246378772996099660956585334310124060935489927570729887376704382012830155823168505154485205677647954019704167445721790932710131856946719022859356644027775512093376400407781528761409117883328595693347347135700031067256431486724573774368483505278266975541206841687379263308104756750793219212674173847524794601226849033968815254199789338317488999787555980328382874640925033685733697119606233152729908938188484086917398350196569421935406860652774225482206916218010492721480490127968700909108099601518151380440352618021449321586231061655581794402783719440915397324538410777007377676272740833049163684566018992164864516248493678613846738938478337000580840348053194656986513826268759814845068707740865216213421617039395100305911808642866948045858970685153208523964438577811553354492858525340351337760381334657776322335569428863692416707415200568912994183005222369825992771002174791432673387524316537098770454381855779921773359193089338659093744754525843508919874955845944349544615581494357119173184551491873703152928204124248783623872247088805359088583329178056263445770597182480089575949951421973890742438831475794850234440802194064586051326680099980962672585881532228491975744983955240447239963768667169289714896804560815935089278557978828061514819566239521633137706653540665174633649761066989252124316097461327751807686536824453548323861965631996105865088297087471235208178093859269297268073174393658475743695378974230680286355275554342758283552855813815429466849575598348219319317548558345267544478630002252652674239081602941179766844907198651750687629957290587126814391817227493686895573212462111179192280653408604680393697541576655201374365954237781289539003462394315777291545045757294298352179633727345258171747029428603283862078247436451330274038126456751955068798735177210646935733034739405946964589603535578184520815398459454824607815136023314972252013387889314579067980599406298604942810351515414605843406159455897093546621677794678807721874024681240766206340585281690827757214200146277422931451005630063099875732893258978278449686413243234996696673870665852212715126194605334864702352621465206168485364409411839084521366423301069483793086234539278228439942675239246636536678055716911298344645730001124824940646039662686571512626452179804355210982234005070814550706913177185664441169576004952094496920990306833092136243141874017536086648703504025908041173702326828185366319799187321639830176403516527530364015544786727195425162797974505952402471368110931783627937501880952405924785866337312904549628788329674138747148779405637955401691472737182169462006689672997124508546707020986955331467174705563752576052971947633171227959214269859255420200009264252849247930886336119406357674529364199932005089566160260785069829515952256541731924917403964774126612486453395594459386991505945935049823280698968113849028830529090331846840421582908437842628320598162607978404503276650043677986756521239149440202172279016424788873556451625637918359105471379840042720009805089775664443163581028207246680719175394696685332462019718885284346742892593324779217730545919260821054270822377230136762587858814317925791236337765912972587401463097341952442728564518039674220298626562041320517991819317197473381393711699232731456109420290423937582647593901020049854251671758010368293395619758246049669936525268921261333819930746171481625376090035030333837654244909829902515893768416361448735944517491714045320903373880936776316272161940661300712564616116159518733417795051756529550986717792807034627357453023961866764880292959883328514930374785518275669614829186430328117966916249911943938379252363666101875569684017038977862475314659788692665670163714558287103182537790670736413847165071140802912006418905229991000672510701294464936215866243314504105439516197929028147896720979695820006654854150005361785773740928620520771212807000485858521010643302121167106016752176074948766253528804184576654948256242034870446825165084323465926838208090944200557307815289542071202063346366451842785782964080418267184380109458147540438444966690723236220568204274304317086046451836569376159303151292540177478640203829406844744716144640669675343127514321091498265509096186623451510319028952423130317264476956034876984268227224864762238513654765840775523983700168819728234816408264061970467227745958686824118085727928330190371271068239491352511832126790416552942231039051611337172093003245968771430270629625687708569505811924637171397730313423023038130532697640157490717338729606750119682421014190664952097342766950133906817533215137193536142528154156068113194924205350130651267215243172530094883448369905163046013464475029288457124510742382564305900565592350374132418020835662858526592176121606904148605234177884963061152140072414203841758290748874954738710521165970920521606173470812574412527121186348572045839388179147177916668448963100522852942887295415813008928483344806285180665044291695324831439720329055236189242917995344017073452390734985964934851121535308658992106881394043202173894936820161282061510419392308082365622082297099606155517463775283548700703858587338196865175385909748565607442030838442278949163411242795526181222808548042234081344497159908554434062165147106490611593877428398288395379680945823686651127521462771473167079817609004042893440756807072690441011579930941941077741718728393550887198555807853162417616660186449470924492786561857807970692568090148317861944647612125748126995869154715431572037728358436574951289597802827343876265079123210554691074477828773232886553513349954727047434202772911101698178695704404980644333819617028686718616364853924600962123459746482330917362540429020994856055185162417439177786757207016031044214800053153189178519505402873104548560018015981331686009390155023821476698202454783195013578138419570151227604213664865935696801357024296189488974507964887327683940057295787588800296231485680462427806946503394506865112060254767605478331087231431705746002226810991973306889117150839742018521148406400145098753708261960644621806281101206733616520898491075825810514294140784576327145465349956826374746592227654506414689192411014690399021843309104935340831413435128626934030984429403661170108977054450443029522494233091545238334723036550678735680037734042608228491802212902387381231127527952868613811408112640979551259341372035719783148227375474958681057588479100671787184671985165980935325057530023023145939026607030563803871392052783002029084135337539647247010453985057884521999885879883991795927586007286675671364125467941709680691327265842780605063872803907440238615295230048281922690100179218466887176824374534766321776511700512364120266224361323801310485980929011163333617027926313710005662378721172991166833075359647498969428872079123778077616638519616995357732718262894661564983345857788758910254741470024162497283245639080160724544222488526336767056870082979360072672744210713277351288686533621932904259390130758104249854408330272987859949591271299921515193467281254530575187331599752995468591181608483159722240809262491666599939348475559850541098860599314024523970533511599890442839574067583987620188444832952945353319925880557057039577826927981032703379398524562217852444600325916751061750430891992842347556264581591282832187830094408384893458826402360580457836831893682015482313722912204554052412387497955152275647502003380581494805532646318535865618525104530786504272069271265058888495208401876573564034489187831592521043648338940215722842482247466535186793211736055035723992339970426257404660816858086045496862027165119227430201586846686300381701101535448278943367916439695716614511660993720164934299453469360595910701746237230258172425135003651313397895146754869154053956197694844972297267299775686723832768406866781653978623045496091160302001073707003363972460103362473335765682318886193184712604926722509935645047967259974649997472335732821215925778799688421850433818396481291321370116772055310718927882160608989102428750138705206040600097435817425035379505205435801551631349122204562500524669626077468941119186199842651155648017576629845684211703941045890104099417590232700456902330347238037963821074758428342333193329333453548858083527387035529558031828850641742460519076363171612822511409560620497365077687631998067779817726560812801035199448100645490707014694620244495125912555281301481342761669983976514955507306027905604701898549001336744953581089810254140365927818693863675301595666527249992551542950826517942512427573497609807235699912281135942541439492213872208148378913746923525480953808726126833972765440520742559318121933454798851370826060453492537761159688386568673406869567312051985707595187662650030580235605333749403770064976440085750367720124524682206708876326737032400256082906128396322258296588358653513123279967564933635752110397814254163318582764878321339169586941419087367380554045956823272943217963210395143490214835251648872619229413334075643914683383672334890382296108263184587935872949772689706536264437273328521105379759715324277759672479528739156077044918841888695791117568218773558521521808808998618076680580884283071379369871199246050819381681127274729284257991145859505405558779527388003731968617237950970506359862518587260477500488487457939771375450959405671697290572895216002954641040452301383846031346548842030868671972017291201171922407376050852684860527616357024259022994334078589005401640356869305396007440883978136692401094963197405643378342605377686789646802937995167311282458685688475549594168106683100639405904116211954203230876756443844373490958734457159795668971063991582262465480882523480756624121708484140824626508606715662486507606131950275789012817796141711933515229599268933299021894231799972731143544112271504471017180564979809343911326592897641024238384865071723902883773276523400212526349269213225047134381591142835518601033615913833399569255387724759841371402425707064302381502066626540251107279883674408728269975142973704273074001667503892503985414417069074094412988120654078670815524766797281397075546813785590524370842296641748083358580315815049214507269994216853998507945313400669428084881144541159340498997174518036511924299586980016315501209555851882475715204756392796305321778086176893815131026643440277292477325694518799578718722078828282493305982143788056185002141228347102093216019764195187325360620526451115511188289821724655796448893680987587410139025904930583517680057179506956145483228181063517883281365169997122754509417356790644735753687344180365855391399586063590411804893086836169439764399370368056677185325954474921854349978495993006100586335875012437878150652592862612774924909922924496176677930760956066981950347268637853801255218437619610619838015613934903233205877343536485162164762899725163532734389718000319078713382675815795323126357323338224390146593320631861264630806902795630483404249726921057596910663004751440286717433066656777286415126729428731682049980622431835348337011173693191493680370316507804910208612180000609622902744032575732471652632737663938526794974156143805179620524554169817118384257856534916147492297913469426840557869431868968166428549946076786720755308042691003765122872446509278371165648561459943746871232887470088355115367275745773028163061919906887502762028726094639314413335801373805393703130001465988228927865966979531354801877963081185166310082510156358271467083334929013873575714233113095492027821487860483208513868371748187799281787854873507767721835239838029742501174633728968200360396285027597274142336419274958987109904143830701228302720947587417356983350548347213681690663595709143878836475615631161514828589324211981313387205896172553536529010215183247581241096166272382842848946257061766006036458577391732359907624793445651222441967034637253524878107414591343813945163731018365786448709848080730710746777722137454535602988157790027769431536362488020638844456911928880577223386938121757569088217882389065905044242611649733231808924264145449875542603449960480162570395474410300487075319350541825404895976092406397723575273515349418792683744333732436456885564809101282457922901013715793929789801799260488535399668304828951996818037277176765750245716613137471267675530014090070732094809306890576725631485591891926854799509254370691291251329987640945867587287514736728461662568469601821426397683376891378570200270167141358192135523133074852546740737221257490563970452808482204187731440652557827541555878261128921593237129543836012453368717191849307754012829816832983509211737195510937236084033245853316962792646626229804591147109290803293252969400035488674635968667652234377830765711520031761281752747236427372812236091851502464571896668420281514539299643147349900698944702359874143612133669298827673676425912446951578400023769222500079334522860642270885616732516952517008551892742522401606123762242996896343603836320333658834222246979762138598839924906315734383270801353003422746446111119174223436150133660720691395701182113493542294822598599215641706726321593232007659260074854931593674590356747700650305692634889859358193224516261671745161868502246192724774468894643218486069880182602593239464314257291106124550960774758401954189777102814335843076354908138931838995328284221709751728535682199698745347606771464355717154493431565419950275051423579402514468489214316573406793071022380748558847606080590000738172849047108590115883394380810096403316603608925717079178230347613455480610450496385311771438752941473398827045462547821197093683497931639442551993319976506857506989151433178507444913054432954994662550113569404397729129460727631946964873597145145031263128361692235168072496867730926958127310493231981011106085165022359364073496290126399306615544253068532611510040929668192858596936454518553405520323444431877903619754038580337601953786802443503264160887740662481844335682662530276131997167630498816594076360633494126560862475072140558633209927250644322943770559004181467655459863951537508407622907423527341615968772997508084582256925165795046303854313585862365306804016987947802048776926488028059435198650123724623542093179798341375689884188615897176504493140535044651250265310264306480749162278901463929210776871803107084029921661451634098129056314055350932349004273406514005602899828930012382430711441779102028119951912017522893771205095032218011590650442219310109307671775703856377726372350261221654038731908592592765889199523964752415451233385326209829597296304524409840988471171157280397216732821543238086949841732475433978444541902048248122901750274968349209183952279564302385803357952412375070309820421775832928482628484319903346724713624779156626389873485547822935376389802929035736279581076869958336573964488110681148870899247376684532254923261149377952520289272278533862751086240667302107720147055833668008747687787487343119438798205826034465003250423378720860690285582323977264266458889695855739567790064251804874216564772982947907400452411915928558754709845543513420909726730847674904723988373952455726399338210071368897188140229818230165195672504627244041082101136040067648985305487368545708118595761567770203835317859327103626975119422500275501175833717394940219951606843737157721450414110678585398723833196329757580655284844102392548263718236456237685360640685743406273077764835189243985932054601023008079519322815303885114592050814539925764575449657499444586056006640166757376388709899980582266276082920231663324047584868233543036351003069153579714811286291679990602211733909628857347121238795415976113826592665488987361931772583774532400701521986806001509381019261659658614061624837333364216437985311342416847278206470471500193871460065906165711475244811671998525746513726697317934924899332037190437444912439994399929441219944163291482060978367327615719296531797660766072989993954625459949060275198476899441565033151280576314494279627376524458039713058558183055832801869058738221720783053654349958578699755012210059905204695215281403936081759241467344481024749541739226900176559089183445840950994060898830044277186212539696334898213276133669526704469206477403385988487767918279902876175358895596534859253164714914195488298167349049370284194939131596373987352606147082955749059012124369770507308343782484365164654543657862989885399815510090867387039989483554183936735047591108561976594724264914322062496058762720411142184841539782211004706993822063816324512686302341050744917773385745567125199562160101045364461499971504138381081262083465254816124003488236198833786682871710816450388769105138217912845215547218388389660512427997907060584290530652583274239612539101832472189163269721598666746059757377534783233105097238508840145316375129780311440474706235526217285485012644589827047223892115737981685770104790763828861183514391014761033236604112746218463980960923381340426654019800975383866303906791682264230725393376304123322843174012698729103387261290025395741053645195254625287375689865159624496118977006269187830498822733510024919883518030618900372833708935880212826816967672119802926893992785784832360874208711029289058928898349348275853730396358842109645818153941479862521238898031645376307704631750801493979867721536391652520518261176870218081277072832667280437786456694523595935777073185213234329038183359732209881559817425129664283370452049333208285081542339902800532981859614121708232056819515007117052465097368867492463572943348272454839781294900709777615202088985010557551769656165545510891614901834198651664675787884597947335706630973518343934626986708808497552150303968022511844066231691650356402830879354981232772671962317839488832452537237076766809045819053746184553860708881887608143849985497386981663357166714521616335866445977328534484710665024737365999654918041873699913972760943442932658742110641973921926789742079934864955588199260870070783986064066490504057272340408943845809686513963924419061367911246590591842519034539377852290829130383385929595666390214336756055021940093710713423559801135946151079997292545168106349251448178823907948051496811618048952797575813009102977556782954851485958260772504343326207351267174561701697821292840079123931829644412641291754904232247272514194002975392599185242167877409885844111409652504487280017003749432130851856785709442389381031891853708078675774505184787432526393809640516941435099602029023901861148890261470881798197563994809791297508806700707485480692824972038065374133837997609039985111333490297628499190335780908480686802190688430362392433326841940442783829817402192570431749958571923092703170562333642514835443474343895599131100828450231572419732863059637779224964295283334055267388940703867468447968274309319727672830153597433637099583435613161070360460387296408964458032663994647915170017608029825651985265570121775813448918882722877099491521147131506945231590793620080655518489794965529101965238658769795596777579643957875699241198849551726015487347286933345992407471288623434398077926230169155102127658559368926795773172132995622383666064652410546092309407444301342759114682389829922474162069406709994919625833917101943202090291822715706100008996626007398258743977484723704299722169958736861557910787897943668579963300872695253688668792641562465647368781034606345776661021829093447341176869957408930549467060421348165316421109713311122867185987904845586047423477356895099796081587367995128697427285594266044274544047542331805605952276955708799388532400229770664352766907623121745765138542163802398647611089180068583404985514313073580647788287904217363461968376084995250900386282963952958794866189158571163708627780555210635590229085540489132860681088728063781331048726253312889200844945118211777145660960789175519478820895029587447362003196910737617379866810585883560057131768058107337859408351522258635172606622808953573656713233188595391768704281558452765178447349619391325840986936828618492393176765466744618594748183905154978459103937440152946192821778693489651775741230697282124739406399178434088114423554410075566897815145090244141720940699274671772541887754146464363173150847405520559111729449798867450109128285475143495510372942039544716115797794297650782707310664412307749845643837662916919336316698519575203676322982747101898489270882053179001075428627891943612054366108593044991178156871852914064227143486599649197937620454868805956648191531035843992785184715948860249522266809226444642804083953802252367453845253062075402035956966157025174445154738726461806137460903091352330895550094440082559501891292818521723823858382078955379126568311009876691545827405881942393616456536682089148635355902807484956284810388840304472733306509570176338446208113299329712989498295088048757295356524471416282853754231599895353379505349442959484483072989630960724512718647707221209424020987641138973506215913278908120746172303531173885952720658842060500000997172695896132732694683631192969208803335661557258619269831194100236897795469784192561631824787129337954435110127901470463020787694957019477495124011418006153765452918737253833333376073823061910078104964399665093566028554420375133045074140976653008253012559551525077695040351306518745739310334951973359977049575664483034850679087128177428323396031652084065514848785959462254886958968228227567568419253268538812443724804745971733986599591919618162780397701379853153479035744948788995086614579146581383753835812734142846755619840700265781722938315431693457712258057795348065349192855912209078757608044545031844871816371331953152656103556181407778108523865940594607118098515771399784341338874607936528179106906815004378828400727700941716659177044723981299947279013351049236153912982323962072771383270465016690173694885995008842511317874423581363208234658345100248108602494740017140321870969488425134290416519270386889985919473062012081918847474401354483133151149294330899695881703292378793705501850456503594136503857716098827397354597021987053497488130647826059480922408040633890835668268994949793093135927672361597683846377688718886188806055811207223332946572222521256902209695395052292788525518352580030962889907417063353998806683206744884148182625510697834117889230531800334086123913301022094762189995869983329281114237386728494673352959437038242533426216401697021933245817479704650591118815073299681903221152639712781386152802776750881664787849926519499636204356123304064360052557183066831671771950335052387120787547890124645653737670118422007276154726264821123153174769075601926553754387367025033330728340173456414086678339694940161625369355649657958296800768319089333247436578621896176671691157771152322225362065456384405252617880765541939949549513407701203731189101257148130608417185656578901283923889966548248357194117360784441914238329899789551778240577175128731464425037952376239647621262289924746483956532040625905174218401919494875401375633087601775841555791649729571849566892506231987752253730624102685602028819016461697695061579069197505511879565692712290164760258803576570835815096454161328630180624770438775085861713004778597222475712761172808006697077958721903417257811255408434001422310652674800694815958394674751219456239694200450900209715377752804405420900235173139240355793246958001065137343500775420899791902588577843535935999858988299011970038808661566644011430873722930575846058845961331844885657556380491533249870701220605299382018079048663821109226008396966068319887931880810168127411278380376678074114476526342344349492047006620024284905569393870814105959052174517045557690527037584113770366734113224766253316394836877206357849200360198172062379827962734004388584737395421795631016007354523524481063606038773555727321218608194222147055096952769438178015534181110180916821796687836761869488732982850486725596948426835958667679187826968071555842685730914675573003036283297085567241003021657167493475353089676405584634052767382075595931864333657621532174892072371243456838732167514999921876192954658591923602164639402149459733692277266597672688866246236909467324306107762989920461743891260677038870619626737328601840646895143433371087073837323208293915610863421902529730778372074714224728279552555278045786663507115926044427679121497956524330763520069245617160620100092782293979821009240167628652812110561411973084740342012216769420592389022731513028344626424245600042742046263470590923717062284990469544114934354726210857785211713983555963649423425979054572774609408521414275617995232163326665702056244891141451104699360756818872573717222587717298742870434305460595354241620283829444127956087420747011427270973449700207098445443739899551594791867429855321548380472122185096124301061585254295794329699973887515153624625026990077450014663994362864377345562264576132171750345410861210623470712773802984111091479750296382028186041343221047854623754759602296764498915348531134248672076637707471735280944301495193132170616697172767985224147153386913447298209730180040217788585439825899191753677251921194224983583068782111022083359561510966781325428209949971926176659317349716566640433762477135723978523297068333711371886293573003481210780981673555439928125314424634249281413629317905250793726889193877970274976344218806253662969983947018461490534677218745033426791665732509332847143917362804705358877077313790864913527156792606844074184790038611746762829008988898304025000087624011622890953398728923299867176180254980529797696190253135788553301023965934260163058544914140976536830348393495616480474302299767164795327139259766052970071428989484549184382226517754435098129903550419664223372080412367161929533278974368337371011221552762371736261285648145296243409656004916019331353175647059498178763080661651668518392143142353681976555415408362353342617193909248223409303188608997374978715796774597539927750909876959795267714214222004792385410371803478025235282434095866934465225551252871715601993679378515793316133775289174761364258553903988384902857787091203586040779736097601393414780256774322758870272776254610835707012172399940965592714216483675791069305847372584642671555134349249898948465538306143468161103260330471370117117223356618503277607417999018252283634069357781742358391774559066807948706195532954697634333529662286898296226194597877054287843758536584859720262823313976779506962563729244683230013906759769419117463991989083598441187863650075720294144818088652475245637634573394282868668956629261183998674138163366981070701039333299190492073933375483476540590252379834258340312676444739562808134480503102855854239886056283801032425900598466284193519120995996732794152894501642046626466553643775670247200268234743270377380702870138507530687181634200349071109824296367956545247513070160982915158983559601073815400107709356695512625865493663688144549755593404664733863932484197601475218958312317617627586142400038680636197435234757395452980915725588062827916481217097596123593788184136391549642615954445391602704527213229614401409926450527247017437619863994332078581998823169218886711190647159095896841723830619817866534221639774597525240237498128849350411464631057888503162180462122054835537425015600865045627973244124752977699029477225244765476310758298944319089329876032628051061461023780645202044450382834635068474583336809493540597571268202543776885424763352264399794011532035446361137347968234338279067651679444201093802174204702298205216803522570899830717479131890465752337214716658301163615293236817440804795224393303992851691548326497395411870992111141105487773605795214366835797404803018577713503442527147951503547922865059376956002049756052639644566491026010220231720329549899239184091845046777409303001324357461031447053464348697260779659974411011990663030178270741066260139904556257790877563398806260365823773346159516930573034077906623456089522812684818185212578886637597834015981203767380924121434936918650425764238217574277898248230145634435643973055134662247299105597713680486302067187919443020242081915703564804134470719525452060894914960919517991199243777605405074753312869070970235581263924776097360303661098597311803775668254344258321062023808653987831811785366829284263366773279772416162164213664884035154624923774172216152812904159609623537524970806722879196226266386092983075180088969979292779748156199922222307560776744048690036044042112472570302784401637344845715995806592298514892258265555744658050166373177171078333939661262406648223250820176705632778816698145200980462728374988561929790451164867671907135317605500472981557652054982840596410646746303642019670784765040092648316711765075446446154428699260188468291188679229634972087149881524842902445736918581569214299716872044984706845847704017943711293548451622415752329216545102329351658224120795618655719617630370250118361522594191696233087559719283916838033911318768449538699425312945469274346894707373691851614520077382163329423264726669957719899606751697501743201403722156826366832115557878630172323560047978254776742368224053707201403332024413675122359181620956148086428012558654615736434586120747571464148308460275763088941978619856260691800706749366349484981407543659472081434055700408807547281882205783290682231744548096040154148234160195674709326647602794286059241334334768473379762469664130447394536398919101485410655226294974330113592287219211333005395926411345734562597673721453480121727292371423306548661788501204266909454267348568392231766630030101964304208832703891755274953037340337981945899030725970457348367258309397920856048067040120709716828610240926000398078734070704303154163090084990756061958309363784654436919749789737867333756851178578103268220924206595435476262044315407393550592259983460447658354576427372378485887828444621253273478190236419403750992796563116972659696818094298624649402522359583805299264370300613161546912854126097481888182756597501313872298901967039191091298661209454655365342925420202697074074128779474714958301305107119553792694027404363993065298472443680377203288351655302414727867328602959516891712108707003835216674251437291474789074999235870249742605540201647990359391979562304822738511742440068144436434623378145990949884153317611523619811443337799584663918665784800635292429987100142053664357855982799616234922557162715553923436032589526760523271568905258697970029622937425863550786929356009045256441415574846555166929129708636123048362596357668470884511958163332981318254373639391299750391024322251979697081897829654966981696598645413513049497751668649347275791842950905859676737433519474064911826918095236975992240868185302023672363682546296204638579778506167977004005236853287597371195887371625925729845392907924238451020269724375482085204229219358790198956206954557337079878743747168293704157743092865000706652754351981709146921302763932634747833359095759443386047643495846442837539139212636163917720826786755710225503061508306072537064256527746874951983638517838515791416423455350944353382926388156667489435689369484121308568281351771881480569663673101408774684796137711074208383145525251826957018974174501206295864314854349309261345678854607474225317201694629184627839712942610951667445206156745225227915286453210321685874228850623972554177561779354685989933218374129644521300591161962208485675993520009559954107296549809883523839912873292645186944641458103308198461422963766779022583434232592441756132808328965245821144406508218350113849524989186129983943958977273984954052793835717104647583055828126305055852477788785077647187133132870640002789846586244229615370147285066716063401009843121425686585226244464305842201310950888658226200506656727421914646910355246730979011461128166999755784547322830329023238274143659510552763124540804454311319750723638849009961325918695370457140578678320414489685461631504521537373636590636866379570220875438925616730680104929292378720389252907726013387121734978792123518258087333028994444773490813133813997481538232205356766389273289084652657164131416531477546248306702260182001791451015640625810321220061402630541150007103094483488380995456024527266860274665366465111154445680099706910382375434210899751350880481157620013496653924869846336397830936040048703090421677122775071158295642984401538127171085682136094461333158632220885353345601769626867454124012945854597075007581423670282345548677604330845927811137266919150499922214949661946712086742814258356035557181709801528824339244708827229227218361691191232558076983863193914036874130381497382662157174584546378864920414878811964152459985747081736778971283537315116606637469772958143631865580213713887023680556927497607264680963920935870774980641723381759474952243696736125502155237145884792649633094633837192881334001513894404821861251201765192776999333854092165138168217696388083340671728803292651696004870010239281582102514276912772515659144533767847662962053790798598579207755561910066513635507243476490179743194057090479228545196642403281075486092106118510304373428261062630408183614253844423818271537564124120693015487624954981581279572831363992891277948575742288113533430354159635159299096118208176894032093389845230641531700332784316292090798689637161328125891821200037780474505863425109308438975492027587620099635662945655155574723125311999680721694491001601298637169278828304563207592924637568082847382632838161897238627242693836126529630387339450776906479901800025079293656764562912915102282538131844746785639562590061689481605485294401526135567634590167783271414472596731562063678341815237441544356083315317289671270741472836569506461237744331780788632221104991165443783674507711568264229416571858489010424210932933837155070350071022805033680218549789788681048402607230581982089030912452676959249684624121947670548484947045851465188614470739512508071245201937777436196576336491858581654845558784770625400204356336856924569348150568272354111424878012535259617714579342208108191200094650470430503520240055607118919133483293225002605184657121839639496728189201640723212225579529442085921404018724526622099748010717276128293499447672627919987703039284498623070443238032903324492723266047259877572778186133535800087550432113607724592762199355114924446473982212130495488361209230550762695947730457812794220890681475474050414816807277911299330693561148651208885756793394776584073670485431719212512065373162905420021729244388492093464114089995771004239998797595117036644777935727007312864693218915842983142285781953528044940817338040099116435061170380103801203613371692292160439727379742482015904638652053262909156115685214851869590321618566702474698444006469741721418415449840751545574720282337097966573263177301253293462040804188926661861718533991307151113372982323797904393414835450016439080520653332822383613383301785371615495996040835302509140878515532229028545262993035243840213313430771935430969160831768517700869712122420448692054256316183358467455334616611514528378834921828100980035045578094674968473003922937505481369854781938618287622789026535086714555594928589686476520020037034623762566300993395887711713489602155007985700667242140153313662072839248936533798384514450304825469357450692775158536117154532272820537757464997478794898220824904086341373043317222935969066463637434297626708818531586663564150353447965392137176914167188190161470524318933283801905445613851774628604175427121489451921344749203049783114136058544821675785901664170970901834421564389882715569417028466449969548086676034909867320099279740454736926045221587634456457590715001209825603891401864670770506380563159982250026188970796306783087326315207538716121983555205583599817273818584852274795125316527561011762911831181442319974569024720289972110462464901668967373078391422726581472760813227925696895410620894716304291694784574522707253638543877502198471451584074729470398616347256318783364231211977604178538081509431166778411427214148095209174126962870883980863209869861170146748671868944594967467987606697073532880221392261588623263925790860949378274650344704093954219349354239597259916950870046470392572030358595490633111491290097923486560622249002039821998043608809067642474924635720320505126916434034093978295419366804958404854727300913029652188776736307678532682104181402735643592395094395188561187299294883929024508712560388944570613425863414105043070401585359651316576729583360084620199817004216419834079695044732017787908154439832258841108154926005361371501275509180340134580523223386862332170132086987300987964446130395041361838031257599255106703166596184140995148939086564046848887825208437083087665259851371902093833032607676510100626476525758423229501554148300970207749382772601308329040836468299204235709591171359255187653604905076457057531434084255358181920672658771524950380705849275083212447191340424899199472733548742218363869501866402962877902559451672406657886286990527305756133951279782147233515590384168732999544090473010409878015783298982145684261983023983243019988943113290202832170040209294857696963567068784936228954653618790320334499277857308058955739587273882156802772110321583732645711484844301605607927602564017787898676099554268992492189594672261568231991407147294334192740739349785523481929464345214154161026676190105217682772572671618058017803670197217500999281790032881932403673531906834201969637402685129030315643335646015915953980205093144773950620384269898464999605632873712504016098204248161693174473714237577748885656445111941212506164632987086675633707082370506819566355388151623485647874576372362216801465942919530905327044383612099413228803389635701698819523015928074669224698910956082224019928373474897318152353201123483048705958827155186010430026995557124885533431859868889028699448446077257994238291845252195712470911920173254577128807230394753681273760137202704002283489004410933184537465957144405322089473049270953531003725693318586972050094413788139540879651665471481297290335117324698885553379814322464321344909249192975219909529185518796178545387180547480729102454788714273667127873922515950802875998011896667530160662110621308877965236804377963315601527747954275609043081451787771570474088921689631696617826530956082874071295178329879591687833579712413104904146574856618559286122542468176326514289095967258601809776243329798702065782544255995349071294548525111968949316378207828244863346737863451960634209992010768767601770718822471831738092110838108987606968764328577040803451915535359581855593902662888995976388731164927004424390411463719119803179704983818065901095968711057413766929862406458043265209175488676145345997140439738301789132279652601153933783840550066686821142774442869953570756742643504696348065653445137584342927346067706188732581573615948830370086953671611828403054908536494948455901836219569019005796846734285847565680423367785334790120845785188285400558494023655479640432003041863925418321883985308772030953518578664221813213917050812947098535211984260677111111104487871594491337564059624496384219539048109723030693877572436574311830510435924468285611948338859880304713395993731952455797152651873333757983966245235353966715340757313982038673627072436925437640226159666116046363565891376285631859372096752641281516660290665787655396197739613563497607594516719145459851364285875558189374254590400362125839224439604300577724961315572175546997154388156249522430288202161934207800613028749243623463451260000244476540208104509170206379856650967262637036232780261058397037196977496366418168132985170672034121642557052110943487579112987609079745391119877210634591549322938129071842683039077762457212076366678652558258862641463600793396546779336165545671599922577022084073291660863484813012495122091904720723390205788353671755177290025093896499867723811272739251390056168446974053455761331656455372586806698314792253922018534147940798769592416843471198825886040306246334181535171413357603895528250740868794498910626778748814149301737165252513752093601353655577342778309785277794571343836441111914620584802771349316942066884870766529176527168883094964571738918530088968843695935448816888012473278350908092707749762849709183791701218264452093045691533958280526021926170028795689733647411647885788175774009351179191702554813290663844093775582432027284372864393053743559385247169687786868453472978592102351151397480325389564878783403020278967911773945815693458461247304737588370626157876962315240382691539607873151679104433912567971783093530886469272197432161090251749038356759196963095834460658469627331574931562624019537884007189988370013965377048340273996534608886083103948510390682204967823239822968697865043925091057166962738481772027935492025072057302319817049190486703050972125078011890897792950579543434105693619008080349605937824662566917791242719985751946411862023059414520629128857838309711131907496785758384613270820518971297734922741716838514699475380673162252304192616921097091594755002575350222751040455063973391472355874952153800713361568853108024958280389585949826513801392924695629669455052304907188945472284759721438616257272698305937535967040290542226709621641755182288003070705998113660260786798383863655024580186510585736186376119117729130997046969433207753088166247708122641516329158732794546319308055090195377286101151481140982154490411653893388339390867932427756090176408920828848131913617774733845942856762975891151441853982117891347681499082457325175621657803552706321055948694416414744934089859409847312140202155041551617711426269675979047878834312880903469292992579455176740540108789812109032868659815269868575058596974621871511243237380158358268329133543047763645040983090862809145408971828107244325045399675756441097700594496898843183552274232917271566488118593346642256907655584030769413706361066707509376924425398961928085337837451837417184278715325288187860521634568355775430439213228913173991858264894524004840368434630391238275601379334928594333061689744961738189255085854740490860117226404573158175095174344263283537238493857353739786841940412172216784077968044927909171672252213198999560043854747337303663916312822214439203905908004413941889872226320248350872617470747001504732733944381297987341491168006890663082079782641362984802989044825177691681109345771311745267173151901348088560745664351159575978726617135465438635896622155795472676058299164964941881061354397972433751449309581418368661631797031940546645323296656590843617587291785854624647660101067074758763233648758228744643514271014949479724445669415458200353882858818470463609591811102155226541119115250008915444510021386227518785530607447062685096912588887278978903990437427895892131656633241748438280041697340443463878897036619016189378201398589296930503649943464958530192709002414277639500380790015527617697568087786931544747610015989772469852386199294349215703386287193624696183035769732972086529621402971077597153106712306959288099578478887440531640339973761368042980949248389327478317711239068149559114533893669003711571121921040737929008483273893441963139377234954160128972700606462345643995427404902265999839216811583021767572798120523867417885873279668587471189188877808567629045350304015931608969620144985992196219991838976842779032301854801633522337117718207764863467631603181590169540805024348465911838846430855294077421391032240146704741129930539327441635927244516224696686747548986894548324674336418951830359429064753622815885094272092927525449032562773056547036245780009730681449340745313929774265754328292119383523546201816701172403673625178584041874414619542583366186960621331982106676529332139392873599557437173664365856452871664821207327173307022752582663611869213451162609581079141722764053900862315627728548973010563874741543121384528116427290376598963066723097204346854060883352268286925421451738723764404112949029002230617782898687401091366119893371041044465144621912752689330133277952314158520614972439103840818620410482381999127494192300007709281572853597012583768312284637837416596836105127830868236846278088170726268432272735120584044477503698442571450059416608490807716928430244211278885690045950939737046189184893217445166104317673914613314579655162198818608069582516721498219470931475315892212480765280775109505427152473705196583079704038719089242490467835357292190156416940468855895356146169922595171002955568617495922020494063849226871818200015531505810003277078964220992605414965646196613223402747934737942348420036492857874533569895437527411841681110574754598985526247773571225015773098937433631220400291437679328802195912075918294454081923262173014491563882587650090994993104615601771946441206407590270923772046070595530483456672693903553649330587183892048907114869991141379196689000453271352974224111623178244851103372180135069973990636891740590493742738961404697671406684306184848837909172030336529834824996769870412912447684151538398723828324633961951335878413247608989758474601469846871632244680981903944459203152771212837243158187412761020799039900834504658769000308423989609629405982093673169152748226031172237058725839752753316551746873421455415309294079339805879302812883640214188869292857732972324514742745799683721731706841593661130171300399666916315444574568925908229209620757407710107181902370041950546049627876592597349393029062650396086795348410459108772259639779411870598502557577009452045705800173672202558965731373239867001265668914509640788384657334841290152531446952051222390676228789582292039397083086344907437101856936931512276863514343437671672228812388829771596044048237429240218860239901671238326347364718698875797093970284195061958102992182548740402722468279889778189412547489778384130622280499770420740482485298227213859263317346126179749600991432690536000581781542695596714949836607392350440999719754070235445164729171965861563744103701869258678891693597394457009786017103565472455930158258408816897463172800629785661436319890895771980221930268914120805058438447978694351144668803337604744858052065145221676827330703462701865792925100744544603095575837732194471508399594567444367235838662196920942683560724402992663287764335348624564537047882702158782879776891635737228560985414618559897110700475686280742662581890608531493302472359075549461714987855118077586131832979417629930837936105603621113973950788900624687343035694890178423418214470831855311891111653001916404371969150171996087216461655493479735491576249241344094621541047689726785362669317572137565568813767372972843236976870616819896758031336057974200788942164536868469341949853515429105770707814844659869855680489848219547950820165789003062338669037427519528679609875531044487425256658911757727881904051602642268538362116775192744481704068441277076921137655586039771148446185601779572193926654325576913415021208574201291573712189651635381187150806761565228364119620492585107060399588950508163016513360740266057166589781807816543347690517541355384945045993495104707511781092172808208996628602180639940124798612295207754119858606695862816103955622789041690472693039020644801548006573101850698725447585346171853039080191694298404060441950058771867268136467159643063232107343850156208617354606056146025272078023065539641443064811263098944890733356970541263591559804650441262253157359110381605761376152183548285567254586760125519099102482605174883508261783587445444436795704745689793460007895859696435836490635710649822467761473244632415156171668544905877295147912929564798202415444935919481134316747350375339037189858925251451062961052532578046727398645469153471756448657387448926479820229324758017810569772649721538976151180534983651452182493461002979070367640506701632457273534969494429841828482616059155291403339800429053632514838979986047155998984779225486787210943237194650830491913293998968332952834606910872250894496860379150226456422569052135272011959402534982445313663270291853431837207411668159774549961546673084318311084561240498199610425891825151540637486008585017677662907216238845398585923094410892630655806435013850316267585601427342922597741422880570374279399116418570084110664712892907970782408652795421617073196857225797255276017863408063158143971724599954603655415778311053790012168163640542333151331264258735175348563293613827288923267649871672264044869432249468204337927981852622635218255071479597417878707932727368307238807811955557035578488979229329310186215631866036691590444322392946010519198429643298946959771374649532576594636840708955548662751091861191638824630410885729259832039596951084146807773941642543101641831543410950092952946855374754754935710407797648440802298866850176988504425913470728482790880141201703786479355006817224836483256232693804730995137520633769366629255716198491118131961255103018498426535047246326312558515650686377505929019603014734492821560330616180780240665362031910686053612206277454866709691725742863274148504616722794657893517421283403333436395189008679447790326531915098864163620121486440878918280257839053078988570173890410959780825978879137950141303546918026209864575308638944017656069819180947895153701081318421937634545612992938959907512855058660783251366768980293955644788723118588907624810670593159671476880277251062625335666139512340319982843181627950102753790736873700393701890113556148988356946810281542836653012392043898714315233971981004145011050157121245030166000745717683038410070195398976070667979301687685047492002055870065940042326878186412189037548917541078872379538790259958517096104844623370918098335152506768352082228073677222518936028614290527589797674035819277611785600973512001159711771029556358811842603459850474193379741654692771751369670015810759299128254654441848325127425903884574091289459929916929747510513517555745840583801397408388455559671405808650783714160583482040421506439383680067929463894242444957836915405855025187190700268436793421928766189028481991862338694421509498746690560726344414928554790783629170955170857625671591372580939412510716625032170799260243096359668931912319685442157186588754606857671375744075390259896559381138026052397909633767046188703857457057432378850584172493528780047571504939762132777491295294787297852482965248234495794791390267825707035800318194925457217037075056979509687970333047446726623774072326620320643928740944378696823688053939219044924570588321512021447425108857226577734314538307226753620164324942578586371735935505446656594648282478243552855712043609925811497174142745451898166683723194038996907986928839368798470628796309397310518450974637768114289366985650614920233812319164303542866684309791239576592979451003691364315965392761479601827166242624351713583445432149500335410006370590566356084975817117736204458911843415004283908218497718542589742394099637970155764691658189157224329907458243788260515257475664011161204493030720580692481586382655847555407517552021043714660097542040603139547797181622065149785482042402921761443446652137452631876797190429100120883062576906357874712614590529998094835222915577087342303309853270013447469597950927560033122210187992061603216083801560161762772360503775594684553630562780445455026988921393064943496492045088601606175655711667177243185697969331017267528496609189642122172444491557856142831442546745090897580072933244605017526558529994817944001734841878354758118978990040447785062079008290446895107372667087903519730085894831659087766186723998558719172920199296102307406666759464077068987838051958707965460004858603302898592681183655737109038749739957091491120534807458287010250506018983726196158246343071126527481433796067314827285250392085265344028304328385696117176169854655136560746919842069407741388038284677375746267428127164699699568475801383291636735744777615650906082596311170333909231219121038238884777392649769444484920346204255245031383374733227617808646291294449538764834866341954207668608388119567363755511901930541430182928716155753832337402583621740737647899198648099855376794848597723339487794728929141980465438166004099352924065692070546905434920577824024335051507250004964657644707557526221243172281340213122563251694810855278404898417828397693712490956615594784632612668821890345105704547172053575292305022549907773411502051935063337696959243551564721484165177913800814571584846872248006948726976208904502118137709939780622796325545735571662879892478839248925918734967355460925178552214777078778313228513511445008927871623604709436570012962767410807921391358110459154772344039691389549269778838241871699939011278802005006241053230268418334763463741131062304626567689501763324369988091988738885580597917153321632872876027451118774129066656114228319263653000520441722011340376584199105506836292939244146701081241116630684738274208854927078111734656692968548093820144595788190011098397339868214725453405060123073429099866455126095673793521095408067950415227043421512102042503360139278713822598434681470065589368579290417582874880233205266554890305738629696972110969118959501200227512711333667219585109751317172402726898829272525255261923089027536115065696528433922561458972805524727359832225142518004485248581276698643174614577357381965681074689084216218304718377275411323366779329668135800425197154721116929192507734076524733710731676372996252860825395738013765543262084759013252566489737060597412680918590118312764845863772393765649616914942001373294758084565920404148415667404752138647595303099352617735223023807678900294088906641275911361336964303778443449911555813812636403563865773536574601670686393499419201826345143765776442188408930460657157190548235425053735715393027841017770058224401255532139999608465223413099190149830707890307538522854790284006974039550209229964912369164488700832965119738320223142612459486924256541148415645771273175175636166557254063086167154202667530197093259651428501021548449869612090720518859148977580620036580462962337236252905295385645032989341321539219648080786770475133014558691998296645820256310243628265907039922724401928903317264075222719952992639361295684104924460152727581434564661242455403691516010089561425601278059977740004436139583324175099678798655384232271864948463098759799421375830219297126680222584701602044659904502965706695015566280051372365669964704919285294709683015171119987475366532868151282569463109620948896283087918068640530881556747743874975887352928535301464288263721775678794425099294429532392402093134239193570415863919832086847620296014477956306082755797894684353092168209439708209282558873373306067716319352459121526450676690975873807047907825176528836800785952136329350770586096699924617131652702365080904663617251049198126049199951545171749098681629177529975035519804067819123884992701399194851617196772426870033744242902732672539077990081744640069793454187306172180195660011081731969649263904040812034520753203170130726265538824217221943788785773710809120566510293747059075664986715352943946438909074118661440101367239010777553161543184589019648732078354796065171005777833264800534302179500157906992701989365542812610464373960743671736460603074009339910604301229316794992086624077429269662476373239138865734403119356599084583980748737573145187206442040954215085242266055720381635800034328513144523486619351511310593834466561588280081726566857110566802326980015042366497235967497320088114299697718624667815157462308586873941048428565102016082622313414889138381712426863556418933192681203383094950047278580478557105187509621138729343416299912201322179988511185071498815799963241512319740987611602795864406036446220512617553210507008236938299860281142397797239524534959438775579040825560834296839935468163403310232231062537029630984251121655753543218667047218307833950042303990785968162207494551140588358053698339033271347403599711085960351861532848629934065644367312082922101422178150415933901726128232247749108536803904224892927865129998403519338576583200968228314956980403210942175722919457261747425937116722111878509339585819504486054500490595781811003583041875009344540788461514683126521351874958504979207343265453566822801551420483833080933916866798379455752392220603944267559439760891569145965823106827702402575862904355820379854537721787869800058943246772266532984817751136122650727862851710306892245015476176293508307006383198469755267120442149138511180859519050122097513127652322834860339731526284122256265679332765302298200101574823632351746415275374038823554220159205789848679015279575170750551460836580102107763580621720282700653137748320449179962138939028237905279165712544900199910416281650482124501155223020649400160333682432967878216577051477764768944969169424400785836329078703753505839060435222355429108295419816146880652481564071189667488579590825399686893390011503322442344372240992003705261088742329759560286964878671341651667469567682644613642731987865638963384542555750536394591041990207134516993193083061838711002679507039885983484240565503650557779736050255828031169811181533215819585727501856202330412279441776011201922887882979609852744024503448441079330316773746623059055700278071910596356469670403395057493199712204969054795222995590917127962426278566657135227653015316756276622519051178787225044288308249642818609477324115929416998901911506775761999931038730231193892833700121859169755944090533417169092973811983043671914471121655864987565079486581086807077251629870014307021741895511064456384150527799649587653795307329421102032510462592322517759424144897947186034911060027490321476197046126373588708323123749844307453225699271194839931864356660189620394245241305988119466403648010562928004973919697373788970513983810687476844822884344355630648287136861795126110767981368440780075051533311094316770909722152742248353589186159223364466547469164417654425786614473590241089087352317630117239461306387735349767647889633871825297373744400160599427948281640021751684429175842131088298181136446506592714242755599908859765361428329933417686119030301627986064955753349990972340712332432951304359042707131684521199780382538004253254419855742936126485880639969392843570221775044537016519902139734119258108505257775805612393578483600441663324459162894241587269861584294706782852183252657334598399393875376651878806206674493441534587375488447772827674341711869570581687151701521263579194879288938011758605380325442397206904620632851382467536425125708611884184392096221350603108599714745462424377637597851965829708823075657903376911406294355553418279401826807979292962432848607366462162074988797725140326515593907743169744111865125797381882000887791439677334662970741707946325190692621934040194438554117621050482107883515918731227578918631330773440684176883402784302436151980960040427306775056643475890543403255816472130679068900972769271485327837684517716104366581933161156401495549734592053328979887272591344220977728880905773378722060192638750725344501434041798212467943337300370533832943545012114723318999728845526673024067013034556237561679575163896734875799679129693989538066890623243942380015152312922339603580009694637188971528168108250069607853495806467718810788858319929901032521453953439485838174051897267987111271523246829528791110217419385398482526768709043894324187835054155085168501547099776065145449209994914271990377942481509350993367047683245854347704464351196813357955101812629220538149344964920719798367668184137546652119778310996632257626704714141566225233677862072837803930834477749136773147974714734369215233593090423198500508756559254985030744444631930669973446630171319818841282761455186966816522108091083004755267871498157452854707623461967660336872097074517547815232956282809253019418270198120776904646758534987225815282730179715185607435633645870851373617467289434184189016387035602850559156491756951063138863417849163219246257819162009434706286136484282526706261923992811143518105902775528317568864377089821751665768688549733780685887766066980952639995445979452665181373208086603832783709142226991693563597702065551468477503779876211912791102460256524573210656269176676625259611981642260581518737645706291617157373370380069341621402824847104464264939151707183515110298105640230469027811374702313888978639411279749622948251714081855707413841267542112918364815318873566911958385057008433521347953871581729822932125914124931618467904029684141166896262567999279210963051124109217608726393747673971520285464753959796580048656866567869950171260037649528978997307766514539909375539204993710454408727522073963435951927420411086743272090970180152652342664403896616882953717370343622193894945110819569652470975996401345765670607332871882752589139806816479270976046420696535994101266618785486994824691457850510547747629198777159389648090060944165477685791600101538280131394557465017092314229829669897522405955442367803808703201660874938806893056529119477264905097720479049926977133782147903613990498486248705961109947205377728118767633611177901473450546811498512435780663954116979110004327781516668459101522950316872194103903279243054064549899977964999367924671736075607787702451624145102569616005122106414830540976735781244354531103769715442139544178227137631967794537466407128541170336708596271442322452142424272472880536045071494495463878899275241898182181676821196626649349539266705907720811216682375023316842449619562725630773981142270148744696229645062882206202211518188976982088014065815946105598467017949077732671248061441126612190843661273328916888755031072083187345746630863627842309381833289719397142028733979129756235385483505631574006337552067187015159688892909139133419725553785319378870574908619137654057243717914562177231576524474919889067950717158171052408748308951284743225895544984303176185419445630704574264500041170403649976781611459215421868577089853957923000239736516491070761204692426345153330897871675224365215798127529911080055422441880065614193800683032302019443862006694446523224635037609147202528176663057238850318326523797471262221317665329415919991880603843095715436579081674215123102912155773325540251313355083101123360842831707892341871049394401663552862877560038580495841039975961161322539365310681332608011235555185001868481025120463438492227319828886166988065345568669274701519558675893550267393477523305368388733885249366100097975704002171814470023347108705705855817916058012502497203514744791403434946969079947100912953887557849077230212129832676715654995776894620120578004476819840837816237471179316106964917514404884296522725191651346571515329550733902452761488065741022040957305594512335959776192462779910198186841807082910497249627237432489589141334481566215845981875379455990136545934583783968756829573505946368594425572871325863488903854048585175323761882983109235719934359218050936218926016330638540976560472665055200759582206363561499204756147137578799683901604837522823553878207587822883426904508591434234041542149269552899694809565154517818870017742748270740551039008241377213243731861892886537578840192165227896571704602726778065251151360930675189225799670048159010980041744702579978503410287539429776969405690146142896646332859132783851644020827762671347618474725979641302562485899258144791628873969057671263072348090480397810025777717217581701521103895787917059677096026469716364708663606531701526830717912576546472991928398173803910786320765624034231139945253508251122911086929512771551176047138119681350913888016148218076846458516213954489700154957397887976310494069443056617593158786048273820291814547033331526047762252745048417272715971319875872558700939340904200170374108546235360858875474255616344081654794350140875301812767556765908916658587677167260246968068041615914850363707771552047640732013419917218732765500484879713048783529260242083139309736859905595571076851258140681138433852425152572434812149674165692499080813629598444053989103389479284393527042674270000545145242196360783564870376072922495261107922616393166195233512529999297206712276167044994316297971866393071748261832036973147782574856829151835663569002918247867830580407216244566244252696536667776513260085027075725388365168757494221384063252162879139232594755255813601134855665315833268418873802137877611070094609585119250411042975148584114390541718640831449847695283495637900896624852845788255599302184587793097119141746253352952969800040034165718116319345879255956990947833434058815761889255949759622697768765188169305435825978847554846431460072358424668030985267496843775264809661835271846542021679306936763443698235977130529225650661543464577905508739264449997523486145152416618393265215663370559873588023726035508586119819669964687871778138178737156683204833603828312408026795166632662297105523986163223566928366263709399246491247019048300962071802900711650463955822390869516409688063360492289195874256975154568312458174072273755806878455348271674437410923376955265300643263225141147087490262136543444136536101929163632243282367904750824419083026834839482706512096660171652612488255916563252684438315690105781836484701852800540263015033338720516985328724972861683945723533422029825488314917262359570986103347914285692405110772426693990002344203351589744241172104177810357942299503895163831722569558043850214538545200311275369474744767923960746472636303618619082135430680073884184259743346819646033668674401437130286131036370512548086300030551875705902128750232867516824153393298471369070757815613274034193875901497079819151245181463736436644870541742381452653054998444129745972243413436547314561190802956891572720438816002601521869260553769297403812268965310635676358175931084883754731477806398578363896069167795685762378997753742152802207935101541896997771567798457908980335721263067598018998282094284159955238213348636169605250211909334918660921810579734136005153607274366368546226482823870624790146232859123147865984021762147241706808943479959859109225788843619913645900853811834513574308010650563156964349222097629231220217299608871030883915392549329781088633442204580784858314914199673216596965789754742386103611360778444365208762917955463193460081751278982924729928160596746383566833093424946331792471493426246481434496754527201360192400323187170260390925141460906503122408918237926402399259431123983975565147247227674042577514657779300422565277113983925894424660236138823009149838062597769859727624776164902709785176570352078315494595639066062800813615112214700392437038535201987013226717516600073928493256098881885821051260599694573621937475565503590249981282896199956579761110016284876354388786086322021376567181521379889013798573324368737808215794719249481775195896240323002272861402612328040204610242882643635755311757396025700724305086244039108656334856539918252909720799184582973414810910428807628053025159461387701478756215071935917703049719348288751909244556620611308903105492303068208553727093734141451772678151744546241746231111691112277669995831815087704168409693790293699910676322258151208611713685341916206341086239148475893335210129511209108059093755260137139257478656814680003607378287362121216189599401120074670339976309246673058189321773923873187092367772181698608567199246421089727349137128607331578707177938639471613641347431465041653444360341566224856013914892797943737512848633489764931387012667321530271889212816001780896356623504862475863213734277914710028905699868475020783951392758355216397009601659992434019003231443861025518604642617102411813894382678035446158541125830805544476763418894009182604564465723122810979655480702795939647559590780668448267004463522326378918838048666534703192206835553974595975775814348570953799359952380223331368500850060373987899732935710958769149845161612310521836490248840641483231826917411588463921077473538451403200163270808979284924977229798311386712520914419464160098712167026256454769381428165337587862713927503842469458889910899463073238413788007238640658560329398220715606027489604993081238672010446228972782307264860170656831126476308230181827076580122836231617035292701354155607737666480444612914377451815066870579570798280878559189106419684353624719835493919502228671501714376446760620097234520061052831799131693875007855797574625385795298330747646476741087439490226067926969651153719664747374688036613010451638751434943111345021901682172538789588132733364878264677496071961963103410147091378385138756527714461149931777885692753431227583103888423894230207746417467685906326849942539940424595685455823045416858100705956997717338668104649145376584073782159977692138375477816941251579739097418912832921227306109584257915569810203175382398419888973875193012563116769128519435696167183328622236034001969388835736804896422426448474165889104521626680746490397440247277832201049255110691915866804184964756182519163694843837413267547634736898512114626907244049623986651531112477663220528504688257826823558956248068922050397761314711004840268954885723364900969369084204099330723335968648774006326592008909132886191155897439425559571759997874170267382482636995649276240373056332909104287391853977673344523949654759408627287982611296056074929705305286821492018192194110096576302515496550864046723624604567017993590678946288916066862887959405926498846290634172125823761506228809668395247514882446857590080531676254498865753593563643104463464686430043677132970720873030108690920162049710376688976324541602026102755973788236535526620455851773711694634351560294133186933868440398915612606758667222434771870090338191688832829551977437832410523411922865517680365621155109693855481300986612068421157198682567088132275153636121342052271520764669022792149547258879380992411855974141813197684961337833717098172984763422733420856663777315463452557553026887760449925823734746352223001794356437498338869972762880444284610197055739019098034595622720500637511347584373916226850358723967896010357632714164414566714291930251532824521878068287350630477884850465387594911629625622272027263956585477415412001474889202468015535195031864212616755547781798119337836954260023893570646668170247801601280232250760753355587314810219034033402516323998639231233894899267372737073736408684398913283764704668173022054038495877937771362163187642857399715871876558799232199683667060676178981846608410290798629722562712553813890399836554015061994355326271121611779584072704919559579433344246121228750442227098435697235104391583164808449882702135150994325069272968332254135257070809525823322216843551671060954186840742864382615311909174280935115526061448967576081177541515943199232919479814985196110741617164973071017322680022418861359848909408423800060475149126182868890465803417909811766735099294318332595458132390701348941826138382989878455018338120775993866804817185779306829546132011586009153185687537987949200616433380726540636578912525546806875968035270213859720733716485522574486207610867989622420773193929156022743920849630048076529790048896174153947727276009749105828331899073296636967294902149750028341923648512158280031472267405343595948437820031316902361315201717206138895355753254092634959925652733679901087479835314157971408852443113093083451864346648367426281844281359867366236596722004180320877684106971743912795450877885459287463930390185205194053411958075277710867357153651860837987510246343585697591354267892755300414256437985488731544598481239679642263222651953820265251357472089180849434495418942920918997981902263323537899578520826401265150254255114439211917759684059713772066723400143511768758265931025045749425628661386019902757778872683712705280632127499222680771478944526066500918485780461838189873139323675713238343071939668930854190743084938092124328431620264727100606234743775134672311727354683187674076925643505856777839344228118303625613031096375693088298109823975456341489975736938766116631771561422641757849487959403239728361048638374879196861072656094950970246696132809742768308951356007729085565123396816868810126877249683125261586730519900850214385245775786266401214297100824038898180136809121610843863881282894699074065360846766014588000854887086791380580576091933486344984655504996900119696044327598976136680323278009880442700656979977008367804601145908317109151773319722586993603284986149700773723379918727066067918196082092161725534500046696725385575422552555508094929158483263819894595316573178086908507217885259561543282385879175614298540969485487954322397905706502530924325219119953984067816974419069643754899894904154393961236434499154033639900419748392228919822357646970691415384840376292368283363102184174583632805574820336822732304761175788932823511943764762533402301113611134278837266523902929417986142011998474678282673589823120912954531105300649946140925317355679222454150649256798663668873684880262453988586493080866110363686301767988178822510899764482679495379487227269712014539304584425878351476524705725326993857869468260242391394681300976039227578960103361266399797799436127407021608571018213068889493893212860326648538327221420808206281734376639279242734307300752268663360700439513894662601107554765732298245066691342151029492520250500387681424073943995194122575786927922519512927089186985005855993884174911417354590193100120037333124557942924223586916152289570265026328751620948683386327506152536170190631114499816875078038085097898345670233290964555399536985424915741346913829412182080354856109222554880384242695370557292606423093681138613434257243612888343781252304988714625030891482754884449312687023391134085982932368819541257373646612852338420439874181398362694737042445078147192904662310441760260038058345639214190860489745033679465577956760682978604210570828084056043091466521243309848467728356973360979118385999319958823818707628041173259296823170354347649379812050777681801419817586772898474913393960966776500353671766367932019722735295798894750414122242866549168745025640823258442669967605197645065951359102240595111760237915307394309008136926978315710826133021102579822872123809439612154317493095161485134298369914575738521258459519798975242642313608407290147761106065474582401100113254118890124577233439860542242448869425196415625026689351096519366923726596454626726505470001994388595926714988133369628180206629143083720532383401420384037145627253722156550269461781687489986941481012622483192412060928537456321860790937796526720818691945055161883354286826935911640108303869371953007873805198003168922215526762475712226310888467726467119155365205349038577293302746480436449523589272052697312506281898992818829174963711429133634439564203729557696438417883610247620305943401015811821419653392820049584925581142718124383211452948185058364962757935733445969043872686473183348450706868719982777581640563855891402027928346388406392058472294124674733846450474405808520571869334629734604275254581813528434272192628393609911689203495647653051193611261510434953751023257955967694638594595842727146567087805551505587736304685966346236159334962214658625408175736065940524720067730864854107745357708159732462434564092926211275571487682901859564359534122022669636282692253562510245001593570207368683170836801879314746913635501103882110838497231165745452783916284126222106350913548184947799858615451425612921104373253112965486789284804517413309392484318238458806139391671656483421705716657789420443288313924994253474085776429435940802533661498013701791831762124669466579223176547725524455872935626461228894664518713408083265783078457102721334501866738012107110848508325300277582219235372442946197712192029653010228062237831197934082985964349288844083918160493328297366759164561742092896795282222511514045868355541052912238643364797108386954146238646464854176997364862671990028897311539518044790153805038472651900920137926008513299821356223686874688002027320603408178777102180679411297177262572867758200445840409412400132794509354094685208117289164662175086068974217302757874756368676746553278922484694366582826697261287174976511724349010866343449480799024236697607579308033761343795342466903052476628976912357720497220758905454849201100856034175175640419189857777518660266674686456016976237162029647505828355320787184095453031390290837033689912920399787359538050408101168903348299717383488509418309763155785058277186606441564348310232184395105304680702388456134040519619802096780487524011963099589720904395359000761264755023979723640445545615520034546939312360440635275382909645570703340488060654727977314291163547413297651059329977980730085407982121690103310621385832285390503866753800743260437888109377849228469190765737495392184626449944027873494702050519021305625098431407971480044638014730960764156547172803170473750780788227083955106816305771790472634278758042591430621650343175139330890461059598104484100202704967296346393657780665246425476489860709263480706474889242083831352606898891469976981407625924102449831067681564384532949981478029795936199722072573487881113032102530613965667796153235131105120936565627831320775111354022966107399350248034397434378603660845579601475450493775470975380211183369843953384471175067745166565305966206268797911201989984747934311117175162829703848118344802810333512625528108049914651300457370824896986843141968635888644165930165992743572934147577404927910500694421151470764077087265577087447715621762223037230471263700368401907619651290394445912686764630090474138387145166148884007936140887069349825318572756011518191544269741323275807873675700123563175412242163302029935568010896602277380850472237480766471512624073100277166721234141242633731736427100214928424240694369321401877879585163638617697129503303157301405363024628005739968715039154530673789677614313470601987707691258031270497585194860721707999380624830147783328770407023876865462608901229383073743172554565016450153410974440318743739107567645991360262231833246589444898765902300000605556339931036593952071180836383400073727571669547180997218101359724488397922854907359852476232909518653014766523098567840437617765794692930507836169441367109774741010276445995534836441261862399066278938442932820165964311955284258338607910592915215563238274500406760220098494487188259695396628380066998142017490825581005607752723286227519340037462618496697896402111859041749318468974115907998506297861949011276513455353128763952461133932956506361746775869777087587055849778011281264435026141199573960197261640632446359651864341323221740263604508923557851744730253448641499752738031631088834093832197700649406276523678564289234098274759768748349075271088147580032002190527160316882227181096408512429172985438642060161619307598711556945067453147776620351718929236017371488104504133150151743019057654710122811673826592433781644092415254893947578007671206163249165089316114066319716449612111901323398290496603597324593460032481875007364532222172673175691730912591841486132714544549473943276169244620244307883292810341156816474834770818393275773049925758268186776978087559897281734040984578630289387985618521663407908950029782888037391992747138933245474168113387989229052533309529988221779550141448562475586236733735855138266297904643002799020638132313433175624051254079953798504975370046960998137083563567982291020894195092687180613576141470002855745065849410371017587740415872507831091740491407848608664826397546111695427698344759296417500702319927522748992447314781176837744224672265296528454733068512697887589057575489650486507340901940351611717202561095838539117615025540800588385494726591998596340733358458957747301938201587869650206439743390287509551868369572053832201987805976874982313675528528312021761089203367922117337251444746904308345535383090016237574777889580027629739851147037396046514763233156552498150535218434481820526768334590647980484372597937081939005740085713498365007283997541301844336779135548089989293223871171135287020131561696925159390531871779348735061868098467238405539991312507554179348929806094100707348764921624258383836630992034344683743295544275920262987519755726150386058493051761489616731651825570775215978142589019659261486314292766792899614402004978791145629164030055382591937531496588148368611030333391438455825383651447761169992640096802093997835494257873125892365306830254063406627171967596548586054373147328041017954838427919185945627135986663954653675733333879002078927995511283914632772463742132953686072310231702651075612736768953732581746738234175116941652339551021611860664279818250973142509352772353898164202502585649778144043497822305222581462973839370619747640291885165265836758825632452195573409576227933828574506818152681788452143585627731472586283268249427156963391237177061286270808056576128146694166888279958852334970102760996399252572500085800839836515984410759798782916877881238768197632838550108650447025621385929267843942561739873050838340295487048781140707021904250126334503605883267295734888092027013559197124595141854944400080526720301396452799559006496932774010088884804056781833659166207825708988363291261237404960709088384555677464257294500009140764054017091663178202116242660957546147465468029810855614293646722047265778912779814709323479407116037467579665331520719445633656726922877283763590934055095824418671366951388067991383583462483450970189546163935494161909644217858536518871247982117549763811205793844259745798223537529978212507710973050504441193290209113192185590383139227973856553622728979491723611028959089677850794905997969207067037348500510917127774967487678524011052659442780080417983081314039371891588406524105484010490089317921770168751331190424531926097482514713205445375302241001353542618344419481574530446116109088684726596133089493758573617433054508357152661953841292407149405554835539742453531757691984471422555499656177937777413785610325163764129783452677649446373112993069219965974468412200754848738766782977950954194097686354103846902768654068613495429505396446954864494745321873462897593788457935078109901411195900833790905005165650950294069525453626554709893916337798104147439512503484866929684753462045606511339542887048018531796696016751005204015427006356798710736787348003001784660448609791052212525505178902472961405474233302815240982855758705938833651214785926835192578231975162633482665849241751957000810100772272157109153029050240930953626799768133575271217711197761248685719188114646263319989690264916524457037904973010035784412629830364701745500416104751510348315423681910201797221865509240411540948258223497832256989128484994611557185327392352648022547040435029989324561574069165864727454533277481588265574021009081714558867786341892762657277463744291430362123329393601669015695439374952446019716466109025451585899657673149050610204304468436967667774006121597873557062090840784962818847612837639359601639555619574827537247166985342262541367368482598749922859133739656803754798210965817826056754663020223892791878604407263510422908566599176295360889577357029968938264144030409381524880923955564695333240986930120297971443941399067268544548229775020278456045597242275016501107807815340516523732615400296611721555223313932122121390724493660284058034654993411788552689750751371388347072229728547372689652770693513450533164680044064953870597419876098208111673033709292553213276018292469783521528144571346336744752091000453678936489177787475682936137767607985759383636789502651193619653895299146657642011157922699464792509345828078831691002415173593425992960492950803065117525444281079433082138534394733940177160151942157376408555413021426557578764342579385824519383481456438941331037386871795618705975391608496810401284412438552442324640924969276034253604381068772478965246968824832624403228225870607637731694474126270283387827667736207403509369805880091537575215797552524772936595446565196641316959293828815876723465489099936050278323020608322608932308338249150709623092990167980590191451195470537964320668568645748984307879700655869873359199258811816599371713312584132282520414434654344871401993147746301037828797378942001641526806142760710397329289932484837230055650505883052596401124734554588403029709395986338018515925802894509386452326050648048511910827931678353909343854591220191855674957467341814124405117435102322855073775921213036370325675868666556343536507811633753205273973244187781586617388986182697846500558229557247356243073271115205152032292628092824660974797959117269813323334471258091166930044938881143439971931882849325200788018113802247197048312236242704051478965861989253671948193684609454945148647544049281697227284874967214819439760729468291328523208603193296561826578831081050734055544746647016385750543431252420539910323990770495773347936416659192809791299361415504932899414855405687457778080869558461218022553861752640273490975905444712462452253987001911462875385203736699453730875368044618339532614066649482838768188224081947280603021695057483750591426201618398377634773209762099468097423664546159811874758257488588041494338064245161147392677765826519355138433381497462121954349023050438411500806152748615302267489036105416854609268280390985137466559244633321510116072530973722824499339491106075534545513762459081930628703023249826927206663875377979694263841820937854873363490197818538041569280752392166960031666304400834451299446458752822788255492645937053748883671690512615710457576263328025922455341977410391652944794093903230286257400025445058891062158159752223534829323480182656629346098592589327566396514525938603392989243074761539629967153835283892616198213196909392086196325051232640005838461964276135395553481422955034761737867119692228039207001546800102930759306387744464767384390873409076613291305375259575203218295879786291672273356256638486417258169798127793078622022937421945622779310218900230366202225879713195857433234625509003648520172518382196471299660554898274546604421850409590532316703825597278637879191818585835386088290630745714729827076949271305939083793585220779060089608183009068224829292736526421723276462388677793289929911451437068125874230453527151843826607466226354981159554671866355239793731000464301152214854717167647550237212731419358516844981438974005896201133776656054039375471892215070861885421502878987574415380627519725329433847126352490349859803712745352299057474611177131856730795415204862422461438482953532926019803887237595273786805068819952314061298465340514695743549299968463240418189978998760516290135652164235883597597123981074183648500353940936979435782863009891863690280686598765633452404249952907927640081740940862582675392067855070907233307248959730062342715422902890197119601882024702997837434298417465300046033160786527768178891165618419133748720375371105474519016957346682000235510459627532893866125648789674801312218173591147068560553115930428656528095439147226621095690666669485527429801105982396160504483105538460342248074701851291085230634913005857898820089049957569084397573166449705862012194330883315106387034041884835198547171883679658244779188561454468498103497330868783804680461501371989303445272881295466827694122141324844708409138868286982424666674001307223243591962073897209443020159554001907811679504881804814200029408152691513429596927545062906057924103263922190964219215790311192676180362938177236170311147542103096744380608781546995532562846842467739980479639045908364394672757036486571862051536090225635973420383824775481784472609836604108535981451768126880415339057211879133685599953264644636614720597199641676028781221626174169844224507337708019031639661411641390832820107658254365131604110091512370169066805937438255489783259899899305252579036304392981734928462364029514374785649764330307225087085809463618629254404019764951584618060034853571504081765398309704876480233293578331580540443489419178803580062167021016480120091807752296994437525627123306373969429541001553251597457297069081298632229118704433957821077506736495555917843627993194007534414237492192124636708940506549050525491937463034435492519625598094211125460020724139352286756770793870795574146072038178539111067729527944444826452400444730844553902586201974897186787385270918955058456123269698852889645468875928600711306835329538339922865076961957116249911723736106960695576418724389754748665964480465800260735684054103098561758048267221367661823460266311150096906511658396782550108085016562870236775379015459231736218773871664942521001791210778953333537093747116054802676591516697569438772378503247736745367461333078524563293454782209654074642599715793654662241103411612942897451681501584913668853469722620946945883296128187950545002944435648221441781699966968827220395367802094857870326522368406925888859316736013517140220444735022149049432544090607363312096817003104949042619214652539888651282785377068925983618704345908809371484119334395098798012534447923852689138227252361923360914976977698906664480363855872545613342685359492184674865515365225187190063311668440038680573453203978439006285108672476240063399753660880034574290265614998810388252613151525239048294966702039066691599082565682233162399920835649166287983185186024892582795811697934571945510945906776694727334668859182283316641124759298116729503235186694474278060344761776011468406848181425955335559563520684319439984482347192342482959991123012314685186671045534391080014301371024511902313362334960054385034591222510493882182466057734239470030527926877418625616931429689404064397102002497572388089439054430337386144736738979120395320899747328022253312093613525541632208898342476167115098559095688918469435148524920804688603578923678889920966585515467749355631420865206699905501297245146150800375624643431504745109131535396576477200378165740160367589010836626053419490550512393619877740081373577136897917303990457934444849331310469501644945060579108588039318705178350991685835267626257031839985429518120445052452324757591444928530451433908118222023899083243269364426071160377230455029644718234580751682288829106474806918695351910348057195292282307456777736935489873920894692704452150124619564504470372503395266417237646584122000283567571429921831179127174051176829646739183266646000448006760311919007239733995453639770569815319086717225290127041678563345186345877064823638536020479406877792379852819387940621891883499708959000472805948645084671878284340328832342129107433384911801743461459421770221077396621129054043805713110932113447250258083862376225840839450787320544518494969416675925292159793774406792609503795097029429963147631972810941608674003685497636837267643863425361767474473475328918621297040225042518553959461684954712398134603321398543239684711427310701808832917038857886343770193996331026338107130695726909303329083797921124499977121622051816853282652330617576822675923231999861282339138044999115698184701895675541803298822953851360430661930058020614971538032883651500285368508372564097800484236432071069632090862367282676286162372968171060201880069470011251790341687739137933229794929173216467778485643118760945713569141293067682667558835345875726501938216225762012170733892283657195218517740572851060265314612766029346931233797042693170073012420736857898248104436123380612591073479597017360485026925991261579859078145342769124276960479454540990160204823608052213855474549900241627427294338599238973158175949337490634963838692118208010162127481196013080756300647585805982156002425925827951282010319139570038583465870696889032632558761323379919105927830230515703790300217009088436866980333144875117439730730014450733247987226783502377422581829055778663808395917382734650729806666305120202579731049075194998453210163405926221298723901957111210376088398948006853429827521851359939861228567245770823558548944121001160827620631430401639465807489536953410977022227878283513604647111664367096817755221906668101510668566383317926516382726682893331894655021188725109412700815814600466681872813371303991538562045711068466090264179221230317702214571594197570114640034300199922809569986256594906462044513029633454274971093525124866528544189983609730296774112630627245291365264915906417853232650528040178588732867624932573513115047332277570795734478331706044641509365707713723067391821536525080535078048122185734858946487185329756698576974759915934580311139312820983351782771097944835375720126196426316433859132235068136675870925959192016422192562076319295938299624134498873451958566963949908920809429639369816187765825661373312347937723629143420491841158798263822767775179947039049329607425745889831709593486498581550349641800789862948643741610678088243393592045891469277170907699787809247107055172581223311036017025033100373311195361173489502132531965951349586190153541551863555585976437985451409429670625308615749798122068906983916501693153177279464022131391543357437515363855823581057813879573607238729256609874965051351786815909339939314561547538067964787993319807703348922695276035586088738590574775441554119749073304648281668961925601209133607363318518705200774349038006986719812554452917257843718543489630249489847542770363492591491220971818083825159381155762056850023039932876188498899293804819394185768004463933704854248221085331338242329220062945866981189183754568796170693702270270976630225823421818802436016178315305975908390430326273655093294621575675263962222489474592776832551048557370421363284918691075517473279705511950147586639416629131870856503218393765054350276667354582261939043242816595313370076178590892926898253342712771211167033357449197616334224355367767075898700576257052801167966869781494345243349823346718864844874220657375404023301162270018820079287846091165519861171659301328686729151228559796582019147412132581612049873393648283312874492236142166191145198008159460622739043677065047005942542359726518907443722904074447538956507345145240080420140262306644865893308442223306077338100934537137226693110706720954965843548307861453403407327537406051454242657850789464722267211644953692645814958225429929251041490564245570042596060243895667467567507064415362874799361925837874862595442312205519412743595237437032368094094976571731314954955150396447536225748192057360156844042147885241641350876737369207140730083071010617654030454349848917682157327980524052205311641290154264403512732462144898714226138573346059483059392100515830606944971866219576042965909173864526480898890905377675552262402356209045913384310489908609390173319337670229571249755297299576869336014636870291644888821145899881332206077560497623252877422777784646741302066350292477079118470459155139249441890810833576811619496499707619051350830393375065999697516647977454810375909966139096076071911403773580446146138490451708702233554665898259244706271607258109329014933884245933909189763404880924228463272561679347863607281456418260032118469177763003946146822048354331557960433439993041744297831178134238228967067529127143790066497462071035960042581154969742777663325096801841333276590677610962981861444025744900842525407269262444824449619905517635721818566234183920482621429140037914949017421320386589291752655141075459957168374784018339145972393141886255410319871894064252235132238724623142479760498428808724554007168608025178899572737128041738287028800202173274571804565274311337653163773296222950493350267757251234555614058610760224813310377396727751404600151892344495888551289021691571552696573113492472497902070220827601571436157488943785488534367903650486730894983315945714644393106814893694739422414167190403531959239009942847830776585678891360670008280090944397527238584490581450007617099287187856175523051298912144126135229890840440614320828936251347060757915341454229929457348945184903409774591995457852423811351928640401496388840960233128575350675791549660290987448718032183047895289780698652914597401406283478342429048008392039499477410829425518655685763426092596841841506554813556148292050107088799282864401322806360287163660538684397427627884787403685114401613085839489936390114535390227222490499960562878842718381168465071021264276655375358374063089373423429096070989424663804463635214087609507555475840771440121576272860041510130723426138430286443871239977626071455661418976748300917578376255459163245988190517127720721411626211516579109363840963616017678204564497120419036742278453175724822768624614853696315081992124263355581161563090702344179872433670964923489868373990598400004178011500130295058238467926263121977028118535150968766285183427944288735034132804565204939145753494810476502956505772678011947085002697070924413904602736416595011612157705299380580665560797687663352471941037310217395338912689397528843687333245802364741227336881711213916673660028128970235738120233532551014374090108556935252232936293412415477564504530986425467136380408952777078013070812173171414112330887234381987700552415749902055497942449694556837780943633469058257976472182180571085121574428151038436706033217101691038503002184147020502980844994455571829573348961170693418640610450461106099687386543154756241549436451089840060673830372105396805237451579307236072017728095173439540591719703396737034680200382119187286186957813364584768390241774240359993519960627926995828034959806782040241064023533801210466731522923467652221639258843036814714356251111701418020617190056721491563981661730848969625805148745236197803516824176512892094345433472911481305259273812650245696490968610346585288954914050038539397979041569975339621001891598542598165121699138815263216090023212402875574721136588133318382424296236979200728881794061167713354202623534005104671152053868550923214699042313329089539120415834072846880745539590788748092590756786144900640659777818987911674248436006151409991356866312796643751682572219908632620461588470028174980753445503915885976612363542358053196155851903895079589170846991606016063927177157652172375036543309883294301559141421783142279410049394727232411776189609439952125017404705159759351891136706036571230735889313609058598915214476149797221303763326679328422421597422569619329064595420060742764616089157832299546648276362717808735429699113764509114045725693205428921003140170347885858743547700392380784644349479360503709267336642817905743990543691273665334417844798944060719147546993609927583724153517561302391641558169869548742336450296241731152779844937385473725711845911812206869160845831035946578588536973153879971322455312227228017075438020716139417140494422341122104389128906326016641687429643293205147631346486438682136746925907350651993419685256878338316000623002700391122579878582330117729444464586315523656825753537625654460199389317563524705873981374495358575442361497068749778337298106048467834751207450658792907534918493414159225132650430334693955408521159276362760941624225157142173633515365625741706537610131871196941302649626657647019505648424224342667301733468127158630105555030204321916444967609718319924489362466525287988586572083286941654913789043691213926391126282734457689667343795559392627540526976882516666220001289897911021268605043921153376072255740758377653342585421786322308637600302075654586176659707510345685060499859642826052052042372424780679984195203336172788831082401672930060627442922072448731899595386317769942666526330943940726959691468655353476630377962842256421624400845193952470037210620763877826678749772185313195673676940204936094784551749722377097306634250871394270034021294267889114834257132554114668098328501413505922552756749456079668910020576832028977396412239238233433071432707518919623731383919978526533504969786024378857112914440324284305172687398419450890561990431686062468912305974375578029665129061497452618900388825708469284979665366166210997852468149726137285297115942691870663657311054933914820830194133840728772814682389016977427181724075366366886002612981038532002104150671526570653000013467288200690045176726590563930082645579288628223787114666790598695053635357616580752629505046916830092995613398118976179359719637748833940215113970860283192702716683441224432226133200522561831966288689683691026193779407236616084558166268937738329954277759628915145533304128886843910194347303973017249287498161135671559371101310718949300193244743518970830377189056244333120165579671906472139231531885261263723227380589130853855938235568439279979879776876931520290885166638301706352733025022238522637024524620257766061211902936038692550615169069881718231267490475371122748241045726387777335429956629038932717223456833928731700219523529947107173517641396744890220195946333496616885314576388323844422727283232113821050644312627225056971554229312860434037004774913025658807003034865880821772763508416003167708470598436457017479918723001514064264655146408128854962956382328896387045268889234225931604993352385785360864578016492637989570530924795275731278451955159435560831198141698471016380407567227425448330111604513071876687480414208517931884089641998710318222062580399620297146419249399941009540093689083351363420550693732271907269470939936740410873987852054362148469444164614096578330598118957163668434737185152643284553264158399622789789108616596845566722809953399973087170053276299924434789965306215964439182917029230124091606816274976151320825543749787207616228127436278444104427978068582529466187600149538352780052454343713725238661105711897140046177297343966527196432959724329570085317414184554817446378177605995906307282656678173313342544193314185450527165518503055332842939115864526181510264986262065624892845710760361678698460524423947841479692754933075574348496656969169005675264943037606418754470008384521367880027602973663198665122968342496225754559027106141538838709560000497451188108114765647796153504041021585624152178962133091599984054285565074958502962637722221414370834944537643347878951129319142209630288973048776384447887709112417510955133208868647910849124132298472264800072755066466532217989275041634865315365800752802371928397204947008159670419047442192919271849231389540710571384203314606665137688057814480136298685395172458688989571132502109493482465715715078294738799334862893020473056263252931290564844176200253437713549400346643797784114355552865797498258960628399062139476145467533459970140422488961788543760596480640058343142042477265312264413817811515546009917224886121268726709437865369750846771887987512297289241968900254575327256819656699360608036373944838284282671055088752184773237261058044702155473283801030741011668608114206783956265081191380183598612363536703863271895089097199904299993579323334321285248810515887993938038929897975760431071093467969613405211159986613324786606919117228572246328781586430652813450519110781752290279892731943404491393871138335167551272356687060222014413208395200072251941215721398374638877557532859219344472250749980865326984472927746973821925401428525194888451158650424728801849606791009345201229355127583899486387722590629556943316374542804796579079757898467128249316541648885648518766672618944678409078463825443701765569533920175132278120418039026510614352593396525703415109099068987833422575698607695613533945469010657639514436292311077157808255802959121806044759651848368354793803225613378987943654837387248204368708953305528491882160684882286587923075355487319586555622693957102601631272254525914810866068609352521932774782591155684544285138232401477255454204699947976681718946591172883713132942386890451231838848178771254784201315989168647867258297153493801089089959915384591011515128685904401726090595032718512138993642526596403987128384009205670102024869073894138437013675696292795190188466596929805692534186792312003076230523493511267446648688903811928832337001632829542798358938867934719943089817720661612782112111713410468588630744168502072288837982413316940912866635085005271879219976036283004629870977146889042984245116681882240017484466937019394820984698568502489385191499685434163336852219560078368271508738226262355182020439112551761815072460442081294401114544439370271574114529091580132633046487420687797878910406305330528395286507037398655406504222571043554793562256703601191521982229523173787764558358285836664259673255007267952564515550417798011806188335423264758804358002482513194129229604483261720879469958857300203053288799671315221046360190546898038199693238676163289002144035984232403894889022180330985039196878383704941999226476253762425474180175728090289242803784081378573910387131522911354033891514733211624188716032835057278710088457213555802513017787190440243819107538247462987515880860038673037834088579661010248435022986003655390321562965138314455170910418555685617467983226900189136624678227614598203863119370565655128030127259498973833607979744727305730882658021135488476229430270028100533637221461192496103476017056690431054824066181193772130265084807659507693704579671417714011139883323272513773707533558465043682675143292987073390026557178347295988135178026636482041308917559704230777212593103005430163649892396532662849725586595480487783150964964247499711957983282744405290398704933535793883727943926823057430210068076316806678747375677136675601980040967282776725280526601680531916779438619957239123015100734158616760901125553229111470619425887862862950807648562461841319560342124774194887726429510156195739334685723280907696874529162235321616306312225497399027592607324648329050975040814375924444775862962375500849451104684707942098415571693006827354005114788502281259946885832251094197025048421739411429633083270888888896065544214463022566103255322386993453101007016251960446051890421663456722890735056401114652814300516549778201484275838419600419791058527293289321903385839581368528412482716381914480025767373037327142962172742276536482209463629200288981859121111194868388310042841293648238365579337870755609881883035640647278813595471098234856619782564826903973813879735029517436243786769969927893920586850552831556022801461233160584747862100241757104153602320966459562972978296882104234297200760319647505983924318454628561284449412876976700762561711736849049456203668329763070364838736799852461767429947939425024355517468138440261613074747261022091617947748321979443171988185657360032925255739623113633722936059459497322929687303466869978943547935137000011534501496023316476647875897220736152305421698757031315059251766407538307033172369169442454844546955914779010767510472307224359423851352514671427968389081609025088504189068117509915018196526376475336037687208554497724010076596826295072535891558077807260740923856742576374686526967466336017103391738223608043732212325559084491364585483815387497650000032763943221858750951863201654883170429864858890635083308515057361354903338019019217586301510639729041253378017729416324975111463900597187705251197766938963637934605063269695436310844515386477448101889391495407626947016267907365769305788844440234412143054493036031228597175043529812329760708066797400580868328439077489684212969918201759722627218703193623821346329677933348566596007682727587867570735437609142966491781364306102469232119016803000851801306573598589025158324821226510999266441672125260355964549537691268056239337884082897737730296160940395446417124170948368175249400911322534183598749920497626738638060835990928935458164371571489658458519828940394932064739969294588622493631650019414084822979182340551558745918970331127091789422085354425695366183038226834251695570320002079325827217038116933827611871590016042172070561682232876228273055023398349629314958881120037069479710614677159744912081189281643146863104893791678140242901181201878397669076951998720701345724319591173597570816727262843131341450825878738999115939766806116845316912071741702367628841938386664904710899561652895500016182787873641073085679468334335993330820052833421940477385220798181304529185531622825887456917249427987876357121984926440875186921225171993001542223974528728421695716784370374102717663080001126383294879318637893936535543621331533355542338976155106449676996384322773715299936723473933419409018683852335055813284478253840747454983049645524329268368065871886965703865908628115367860217753980291100579279402091790388100496909957862570341942809391521003312012994756949024611021385303825422917738698110570728012407741222896057923009477567324432323124115640589815928877227460647173384913758165114633603906771368898801299972739954502790464003276233137040660754342104481427964416454553167254337835258038264789727822300975157086411803141507963131497571764301454110326050675527233836215802542872964682981840711749854124350557045557927173092449567461481750551430649377512784019040048520834904771376745309525305502074635469015041344698720166207709836594957603513615994374948898863513181400095916735824316660538513752319652312008934899834175815865000691425257658354324681830022906848742988515012021077683887639571177362804860801497509537676228540317132363532447569841354533340551227674983038412153167017397122285623527807770463737872959693318684403640715238417509535493215824818541974029887487522460865834615986819846464964912319024341302221165159792663742224079348949083142271037784707990751674142820719577313958399988694591971931887085812300557216533571288498150862343814534054142184831545549969873249504296496922240299516795607987183124099471392895585730299287039615074133093179136622545304192086353534737473530430209834771578274947735558450672075670888404274114361309673208204690185062632372831275335895150435955960566674316847281504750205915559772860414544412323535916282533783550232935377219839715542998484765329701308826238147676089604909569388845730702405998557539697271042568294136810713861548928399862464396101039938643119662112659591422373501513463294255440097144123428412117185866353172545872202929139982748455428065611135018579892922257577500480462475432825267064490240021885910367229314224955449874612706131351356025744230758755711430068596282567633384383153978990888033817483177100245361069901236078142488427977934889211824140452547911181428824629539412849067138676622091354086553223990529690762797468121337613365387219018635067286118015932828098324341309308976465072074129853139003778044953336811310886912516766004493318431110657646895645082258330678966109347557251145246887534384829116380514689519754434677961453442052636934207741680875976364226369458176304307927075378744993387587165940599183071206024027257056962871415845915416940658044262966511993638707954851053602219769228084440100139439827535571108681078365408764856786182623926785557608506872573723592173948174700693218787723368852379114553797428581514387281116623778042785325443094192107402141212332184299920423849480757637642010533155475779157426129941361133566372601501192116938808710261694157111850021419145346278902315849240294863176224302650282996403278504522630744116152184631699069190221943103273379481683241879520775981492641691241370621445738587060434339159506067133353382970187837009632154531113176411455248079683030932068540254390022546877768139549793334978000443772496971150449301815870785841522046150677504744977806022085896294633386493195749673989691921455539033601858406817616012248345668720641619801530743718017205125530603073657673993406095239732989717150606877644831808111586475556799650637590147982394916999850134535917897383027093662653671493455782434515420980679591978821833054903286285232760010092635644266353650728825271648820033494416048854311961505752650147587982363771036456225115186233591747042742966916076279315338719711859744183244505889744097450322113279207789519821817325880538840073902698086926592852816932782604057837309411556978351572349077664807910395278679897030574113430679745098443195419711769662365643030601275767625421609622777889021035818476743123502325187291019011757470722423974373006975994797668935784336683152042286784848278090357688261192179403349170547474378916168091032301222188404920903017083579358918847250209117694541095375443525573897440620476966889287243774182902471295300332290289054601714376440482991192320379904727682114407712943254069044177984984778761614921951518901658750380900299216512772417799406584388051079926271228910674501705777404939916842631637455920468927395630398090833587808872683503938932774812829978023573259272564568674016184597763968571673571719837525232453145738695465244634728949951203849013129465468505115924567450465481517834459411813488489447506712376155881787822936068873447132040667568431651135730227122240407151943987034406810534657837832681747214220827373794838726661968155290583488357017275351378331970655514710983111605531631755562107307660228997602952479245861548294211458753922450410252558624918724698945767678557700539208843147747466927915073487743659049854676509703918446386687855819332104593489709887377157452070262602915618479085916991789694778993170789256443683391983080305655144939338174823645941283169872348499383145817444811651897757706169133827488031769389309529781882683736922016177250646330705534660832981897337164644300927863737509915288916898705308198364927165908048363563365255742086514946656855080163554150019367546874861523193299097276304690376881090467692552735327728295977798193907464674378017892345365891141742593697107447284878515419456674503139188756533076468139568077730020811325428163181079024847849121857142188124300871081787421001023995287070382893884156336958936483574500291530119173970299551592851447171774827394027221351683185174876927598711165069824548756514549755401345161254402558180511655082601507531200685452148276234128687313478508688442584139205502826291999208110118211560810620113604803786632181872781510645541463458536374001371438534443556915919739531160183816914819652293736786027553958766164784748329481979244745914628691305708981972715171738112516464250177660714895654761555090564163910493703107286754838128324679189878149765201261416112249491919404409750540986663431614166163096815292217913588182227177331488165654998758932434779516994651742344751486247056420311516284791589043398555590169559318219817268294302285173742896573556533484320909658573005032503121385443585693342857220779906272459634391362517904884954325616919814216789042307477034333268739442597714051019640644841807632124582454813548901247145500189406696827996995553398499881787782925701183776256381788619257191100090733987636488899128790178339196362610705882887256573721573196465789865583740871766948059973562070870668717102506394326311205727094325944187759194031671024492701410788136858126973343233632719109151828351977900351652481796056994625963716984054182409882363923626356425313985099574893579781368090145455094443919364366548921452596384432440633026212306038839737427377717448222204152273609595068385061303935595187889862627234409426926629448337996512281923193766504364752594214568539741025034864212994637280738066506739380198041744194733304034651981109498618112008599403064190033875443633703164021210091524117816189718768493201760940172092148034556272519905054735969922064510028857799398061546894654445044037772235147262726542833317389318782970379839376351442575302044379333278657139445386215226734010853372957249309845516707477349760967508438644424032634842729460366836756691148493689691934635551594508113340068216551265018710320048875231605460253777994438842970547758399613395396737342350548823051176177870801709394307025451229734047738761856046644917936679063713170136856907170314524161341498358800160152110047123250361298562416887242722598316936853239475164920444702566257436165592912926868779093422695180469644637071998031488449326342675269961819839686295184509413716393456557213146549451692339364040102508108636860978804747693568891937424927360509180003509761602218254212793572955607819170260051692586872098418871564221833228707316107523381195954400538932537275031856376095347833835267633119440761439222877722066955029690685013108388681924398916469538997698178138709453644629012042471713779464158166689533751797903854409186529639447208029807379799429110141972009177074912497687037972549529062040489429967835403170307449603844039263588156257983833551281915088332564938794935460540771557634499931559886094013649829876148738722706049229340089528390256935032950571310314860054072347234290153238705245799730403231754490243202482221003104063553474154645917431678843680094891793009885228439479328360496106653195752584384346710870406767788102930483214828500108443166095022183934337371886417962519188477135085857965934163999806669408284293730710225175384091342367555268055920443570035400104556256883750043273502048128246460013400823844964522868905579527907748438795210488383908227840511496785841674277622538407079798234802290694691996743686188146169529226452430395208119641535527533011767753750478271062570625574790041095364709412493478552644960471710179012221061827387908337729470612697735543857498914852758980973588095210931071267006042851790484870750615169210935268604439235464260469308583665740306113582716030690035752962574117606843372678700757418000578892955656398509385168248474103578565540141068821711067805508485027387567653779854981407856810473477528972200027936705487045198002062466158936014434003895058835649426127597587435455764535839406865918131374392230546731609926507346761754680548008108914332060692907391453208630495147427767335094990181753145028326407140918795322845158775906298280733242510809350895039529005303802351012797699099376623788627579968062230321711501397151779292116348800750961935920948713185749250625168409319744396407039246529866828746830550578158867007581229441678752929503231188590889770211109151584579799179437960486764345249044226330478231587585345262370521985308678349513419496772447260685519282013664500818233218783337999962793195796425649697709052991231238109658307476159857200297129242878353338291724168589336008387597593943792863453318983887848812213774335780056951656332368258688663423321546796304114138807731945693207176261676550524373055582772366155059686259114490450264547494347768750902473082435580662997258391452537571558857528533446468284015796848675986969950376196712328592317668827608141070699122526904971555315044081066309070734115652543472534508495902162625680262923104505551606159250061047099560887852209469527775028368340850317735781214597351895985647157312174531515528037043906298769337812858216031768920674156534857362380984425485394839706393268538112389575141268283057013881730167484560257845623538335118750364212760890779434964533018644250359491579887459783791713910900807369787583581714069570091944481573871362312390446539316624282192281536488533303593796967036390814779796868708089761175977696909720257391835523235282698121849381335096705779763659677651620583798101161650008093007031048916214700274127907200118290578260985471405453953937627031068509890281436536407908090083988648341083999614395171839166932135134234963953131288520774786786776569051797757965925516072092055469116051466733744869428158754452875784825307959125662581375029775337845059741044034921073169818318221317974249498109966520507902996694755477112307254717984384089666099267173526438670363482226936385462192105186448000019858711076456149671431321671304651107407044725725712427420045775545571929520998955156178758048322627600828558849514933280314472749157757975803985024843360560226569769436718190099413756095529862854230492104060425925765569306388901328032946274570449480004355225472665940276288778902422029646335022400405426304547355921146058565884629195344009411675891478173744211034713188831039807320168474761084205384034534782094113672733202711645174593967984704826878859391043946623848632092471300905571803002400725082971076132042803613269491230533455714717375841934752515783472944409117841293905232879130519347436394337972674335169879309551925181714195422893270670993945502955752968902421345127445140781676100111195246234283081604815910240492786686625375708590769547217135057658513133303942515553647062966147743032869050648172086489456147905235740417768155240153308992433976999416132515761725833792161592327402571347994183730638560538110357763956371428678894838422711223414476371392333129162938353910977776287337053166052329970302616475667185360316498800465358524518966526981489288387166504036649453364342224557404210679382015974875234407046283277976545280255042762693077939421794494764779127458977303326784117981447151140004800963964822784925615719971309337186654133509758210211386063861201877940739585132553531326382555800018954504199996372993065729892477458290100831788261908590363686665352728344494057577865215030151934017052292949967209957589067383543013102443998051603995981562638609801885565444224369595061634772356598625949777340140376642666990276646491266788298113983071036378636565903025922124003711263587855652114410468025065747993424420283691095286716301267038428102325299269993789471097751264395207672464667831280802473108962537672765292603635184914663521844678388196005884306307913379296408548405877100482061421229843363682886919913707267729212570992997350167239828266249253805090214612596003717138770333988220689890608915084063814350536313038256306840530487876936193786624735568719449566853437095824253324336767046621088043674908147282327926229202680014879582249374253111888728353400084785514343674838109230397126603691253591700143087111195553348054825918852558848478246857575477549847520546682927986559889492621554609056140068068435976467262271885083084992918552448334102287877260333331546596182219899035370435658060197788680369246241628350098657478025618100427185235534538382319563379377339569331647477290913025917574583211873168334166440508091990113185232690072609288016606956904311604386851841392562034674944791110609341672474877479311137573146046798146222232648178666582012394609405280728757552881280221255716755416478424446168137386373277393670173582432788921881477448702416733214902060593546046356874218344898191180831593954359774906720002178456990508558272525953909966333813311325691095138193053992550064144322536220539467972646365641305237460970323981506071399825926718733412651824240583498343422923071070780258290314776271972273716639751106281646997257499734152789171305321812616021352386269744987728808069604540260516459400584140610051602327904282247777979356275032995770777825713902296458332886219208522605012098154539117883322236139793916763030716783863698838939161864722448492126152633278093105964380921840305868185997291030663014474692290658879280935498953428513812664604794585640691570818097464729768174724190553078095220224237373606230635366800405483078205248703543742739811314006248462231457522632890282198164183064335625169702860245146096476375072940989532780219189611781057623962727783594391364124619176603304560482082301747131311879807818381949530964341213956793340221312123692306357848382203515685897229765836330806528205977059797805281811568806820854641269065021489287338651445229853684091877354106437356706599312484902243885177072954261690195557964888124377997243081895296513661194126626383433793573325900771354462657748101266948665405253911672024462762684885571455184188658718648239238505965499885095744126845038058140320554788667120513184030099089278347401526713602183277046337865403360207590444367803842767821855816369144326025928339395831637046382220006560027672929935395889206462451322781397551869853250291104651085506469682403612156783398230485506833032888312250584236208895499452143009873422466536059795348396913872519571347051005762577807626671513390210971747959989439588129598948886268900138882372935322595153273584568186507425021430344413200736330392873160038177193343083006734359151004780501952092364858372227129986222349378851739259773547058360326241425004300125465897108378272048238696894049159336980438841294747816076271572992818574878494395744274046041435894531547114730516702640362973756588777761879572618950279162643678092066642548201323324555905612008567587554149356100389899999347599114927788428726126695881031825763811001658948469665633786208849228209090996022768166307841976696544049317130453210736364214316342253948303978662126442169273569363932762856179744407990433254053062876136392203040383697282862298993010617505768226596352231334253786620822617602255302054708249748743606267145648500674767475856683537644012326304529943723248284675103966173216687923291792810685285907310743649789702606807843072109900173673644249380475312501233124001835273522616594936528052479703784343473263154655295329685989928501965388861959817711940049739513239470444317509420333527910250640097041045399682744596321400755936614074093429201241952530907742146279043822339238348648160342613099108110462866500979453700399856876378258318182863172264744811476380108211078675368245801940915407813948330383357642559956254501897118044575621929410671282561737331079766961298897349175843773761638767893186805160446827116930018932880918033494536653724097376354709117733409509564286666381603556767981623624944495532701639677895087586220471603435265006507064409773778340847393613691400440265079597000859287223844283818335345952102042195743024189264133297337111363931303396375570425818035237740861494718339580064700139339294533677823341735871540239887862576039431568016539360029723536089688190456038240409442906660189132934282826808332586863959593375540497482404620929219030449770343513172569672898943083045165431134472886505177776631581224466413578910660834534454175004843886478063173218142493688961660144803553470768995094288654816361653078590193540295760225368307356776195870993493746761352578793912957166963738068915133754827465071714720290389532873840082210837113183847538639175482222012592803495133022249794338348495781843107176459504699261865265843697026720175394792689770986367210682247285298870152692809670406702207149870483908285233056760872203470617568544585643762463538771978513809042889527166506445893662525489817878761980067884659158661917820159313759232179527749431187588102776509365999745688021381734213116124083078461787833891744561562643530983995870292157091305603261641696663738183326579230815844529393883455545438064912816108607064254940924662143803317279618678838984241165714891848735449544874375765116320521439978983149224018425005278313200825009524119497894340094917364833665864726055364069227739690725719099846372107441564318592904061143814802652628959801931252469537043354331825015588168539849473804410446948932372156302358061661605734720871454965404822601743281934432995152731102397165398669218905641913552086764438443884062900956862822326302926403980385230700453917175811679324715948507142023551604207873056373743368482704191445409323524253886779325223960945930444264335996763666109149102471440585234178318224702103661770151686071774256107609179026066671195473016672583379928206159276342195453081149896353670509519056950832468425096373130544925019880944164380869057167324503968153901836862537964422300785827655203559208317640020920828125136199043128207019826066376964175873652926545302824229199937268822768788765107617159225952490117034246183688435399967290515527314252196565193895715842646619837111222659936348329817902617581292668094766583815716683636594111174661313877645173086266504181357315365222145794399325239258328555406559075989418617693404165256731704236231478003805236251008262421017460322170701872888812079131206609373038353080078773194594449868687523256383600478218125737505625345545703530993332091615862402699549602798479811688519830034930656615811053277691401752437776219025009726049494189044714254173409469174745436604645656927672488608325553816987478841218516207354411536315408422163914684208615647003035507440545301741696993848699967956229158560506820784560919280788876259584900771891193056391645706128771482006642820331667403553536138808631875659438006733290121955823380222705497055382354402114133430246253266689882701543963071635038393157362401814943299228793665043575931179237534466397867652650674581465280199091062352038128881031823456367160744768465569036296187265590009456318307764726417051088320677183408011680825172314021738083928037777950770720060192464223493998224036302931778612614126320390545268787674774101526170813766266490295670568654986193044894982203335703050455731639890401105714860705272082129268202430507373705166994706695920321656873031827967880378530310405726618901509575299491187035692056463667193016852502571003016510897201563107780635660423293671081647856791248188623155180333171386146308657604364718046529737361938539210174019006617581136249601231728789412058718547189081218278386411901509795639651048192972172392120987786450813544853918985136383918408752312001034780610332299462054228388108892152303705418512630947799151971016208082364517836877352433431586701379657111162345394499523633166528245486992593606185286990167943071881002071058441243439749140006570552830562585437564961331515504795174904743757254480524170735958325925583327004537860671067848777523532150997825987035982825145248670736879798811570615614633907495749986678989920836565346042639204757264756768217767551646179284111113461631173509567047970516109943232806228009733097021040774046425138860354298861013088481705991986507926809347086038473863558791728217517467855899320032326072588670628804976429048913885887318302602534110976261565329291556901520307976586561355933631795520414603637862208323989524487328366135517817263606606575360045590960377224116979359766220426473285242427219868949297264949303883911534826965555326399604845478017891260362844815948952620622928438114544212337111099087172920336450200180814785927710749745288203242717864751765269727266784589009600073151345359090491823597127667521869749827224282318011022618664833748360854817719329597723176529413444871436790760925027014846068353699522057354094377597678067580641731424621900154355446751739456574319073891372618443730644639464143967419248172554964336160117604349629513410105840816171579279085987339267076579253185397392908550463782082185634081884614396885271264808659168013597773311966944434893820890572946590799420976049434071781913659319582895135852798896808222214354944371158020985400858699883513861575354442759678850399154360997104845951118599112354090510749189076779888507636427363770041922691309428401441802690457391661005636218654441557086822109083970302685449748607830564064820731842144612467281878431839199924594448773979412651792939948928908245298992507940852380704803262777690982674734563870477535853038395662737488156806078560040046996285086464595111512797540130972105305081365024137759207466430282353457722187922625496487577055442178492198996688000644204726103851372128651863417901520351786759076936458518559909162892361735760251093555765624391838926527952375517633817369292256183638615319981929648011848933928634763507112090035969935671940906733945732226400512310236082000983048951125084737874192150646092338874744107598124051348282706872077273051424699838928577107326210404539240515669727962894643070140299397556511507424935429892813447868844912983240419233106800926496528314656148381624310720951018941413257627216574824883461226334686002478134405291264372858851146445870883337437116464053871577190994657688683357041724989884957504284173010627806488214913144003574361778190895988454229835475317092790322482035940180401596147294571931924070173800729144347223034283682571812670002268587546449497693083785930312387452490168598889378067914511359114689327335030882335581142316410324697458487835243878504809048063969599060468604828113352345501722072145215855248696108494838370539553157686845464406394873102715239603696650324279374680844172052049873619355222331329566070317450643941180637087971986596680554802161943129337635264250822767607583097702235037145462216496377432284958041856497920810130932821060175826771605905852096177335905285691467118536372323500833351520271592779999347686207643664223899523669168157622107305296710063205416840734782040433944258559511178934901986412563936941230227760024167928324994256881685728384654035144329341779306356212313823505720150669953181060999612530672314934927499660585948274351113935183634514305770393600060846355068126198485842901218438309652641932533182344463907260168932812411809957750711591593613476898163426794478075403090719884623936881401584967238291729766208020548849963990072660231636692648947253995693169560169741231873401510434548802248159280543098442067343981998737290749865826876890317641466125129077967933383910223009898513732125578397428642516865613488929710709867048303868475366943346449470755446615644974580551662383101352968097517143205449928063211261612482144111918095638291292471339264111836983823365930392510030476297218698486803924005245006200628897002040966892590267227825610836420059476151782466593021300179037236002430189410267093454138774927179447559752982332704257692274266852383440005311936851281808845819192212530985982968618271984492983374006902201490274831270844736215388002721029615368325972808329669977944778146412711386333154622369100560850149952062934986246025910968243073974187914152055539175279996918914146303856850837397951199934920290286831437071103137146558276498738013893153281125676073478160990105013519058450989343729687254024160734467056728409914921874120645984267871075337117216808831588692935110578705755272634959191852400546694190173428036167302020054078232721038773685192002394937563751129573382503489867619807160198860113144834526500619630488168503213754046788729787733382007663750938059637394927485155559339008340665190027239128724174363915752039786378714500851748190201654536472029315285666205472092994097804909504518052427664707742936091585110165445693557310286816270376716487029472451276245163284634382436619984257898475481421971913637888542774778788842221233591801594948147075688899497358187694038147119964949784367326045814402600766609158192204366216856861882149835192607523736122672609531728878558625192271982077528111814822727446935268294680902045250099794682786610047988159438077810048663306518055210909625648138453089541728428646137753684927769370186807951614642915983082603033998877332609684210683532446958664411140486919418517014449631842117560362087253666798757762108161392757220696959453967480811036683146329285633038132876160689874391285366144627715017532704307608991372853970527454790702412991213819536663225895584976376362300172458236012026826311349423057337530739467206408500847790978959534884810666489039545872564395197564842617471195155933469905557900995114714911087164648784521860934350972674708835938950470237790240096174116011735005491853808542206932201702511927300367714107351879099187011610912651479619767871749791322075081863288150091232743933632950212945755525661342597557330277010406390582021357520237474977939220337062789269224737799584137729683539482124741566787073091575825027102247432979765038394030028233213112628479648486905119339512506670788532892225990846477111431746146746149672671426447631925485312300578702276953811720949779721303303974141164045402798243967551666882325739137281039316156941222416699985226728907047277830491615687744524066436196747293389018036330263510601939312790633530350540045880219963609891370914392436775400336265016459528589735075830429821393076154519317150385002119290135583811578191768847614299692357958057766705944242253437251445900576724446482535575252384099054595488169762363335863408352790476965612702030926048019086431580056366895171124319759831121562957914144500110900225172838399255329781854007484135845628346058175682590506404128673040652769004536090984389783719689842725061438708122565389928135108047868956773815790683413954145199305912821952318745910523627332782098624016063443466829680904039661602754304908548002684219273637972058393455161999833924746113755332192873695330211611991565643925378788797223524575208115456480209912082125816826664688275069089215472542167454401152830774083087227659261004075718792454885621076192421820860821055494966919279888029918885024644003966414273967040709530940936074658667661014646630156438575395764588446386507487753961707632672682153133338455410658145933864931883746690109384657507102012462358604436342613080029738975205570583224417684304676017191609121493994489680474119153608906938305809957880520695596634760649149014109178238815890127342667060546948947794915794695762450657480837393865717773274180202015996824232565562343138281631192668694886623527466254176833374829971781642176209611945597078151839673025064995663681917247717197605842413227928946710850246670244142156491632776720207021736359026891296128988168791481134604906037494289327107199708196506136371570734547141073742614210736751070566647156042662215587594403728721401705217052893154649706904035211950637729645031044987135815964153185547045124567516053551797234419906538686510694290250851025346372747590115456830075635304604477839673594583628853712589738606460728562776041878055218071281407379121584447525175220177740568475423121712378900122086146904512480072526487461877786751049388672900387336295412899236217726111865199744450076888408451917556923939348310569841785810363497964646919641622969579637745024643495162037398962192941971540613810966207056456453364949841726135677469006175029974264793723635397884394856999898039061924348613454481413790526960673287861249064150786038032608611588386719554284016329418655066260904617646767211686278995915375328833996851610734779090449202977289369035162655658204921540189439546615971989164107451431921338562289072180179201234214648242697799735783943886842387347618769845967367589955075099195231288059950999268880227003916100716773669911380639811395412308242333749047707192223492699336445525927590797986522333507342116983636816405857019236222252730455997855625454835986649634916519129704138132938163924607471260791634938060634995511086482747934256256528044666006925277741358499049599635726370044661633475181878587838792813920873451113642936913528286816218738191380656053466983410746825553824931071608092648125110258607569342017017643749016899206076825881297647684633151417516979079487245956661796990987218492170721136930799611936075644393353390423678338402740970006284656802804756349259582424856111395267896069811348132705098502207181063308671029704867743321118889493416795829737801413929479041184547609840363226113630140457956679800217432490557792383602901719630619915229159130645240969646098003868386986814163394172127869620445762247270790107911899346460901574300982867470899236090577305419582949225608617427955164586216874200359884066352507133861878091253052596313418056591971664522433971844224499910467442052574709561037203159488570355334967446408583623374985368049782375174308347215192141696551664393861367706974642130742226500634261068401093427314170931318594425686314898930020934178184193828587195546832558740778557644003685920358989487615178481819123818200242881078724975242629452463641910871588204898631328088234559554274421334588795645742401203225975668634786233929431099985553185090075197633621280933115504148926450971372995301153724327183366972350205989860708043249841459739497705354526901575825649945108831211133089092503109493171590981389017301851691094478904396307896388999194344149990755368368120234185437816137127668337243770051286089238435926408589975340351414987345400683748749065710321112767204062650716252925856385567992779277760373575882134577498562069235615836317831416038876578317960540230410179264641722819258442017032938939309750708555072151543352611277302240000869704586912641578454440843674993474159965763368111337494175858932955481963338702741147537848524348058704088488993048359479939802002540934484902460632033900786984624473670502935420311561504579439528826793219079888165970353511932295595036759246890476419544374188317396622847257093454292980248046769615367707111779192314388913793216099495777140489325228061807684101811820735671051509408723155598852832222845720460302113117541431858314526299676098608743854660513729782950252093821841033050173475341848753034849026370844945649414060802798443511305772454600269372676892878950972753672425270834819147000057509732520912836008033996258479323748865604315513606098666280469299987966785450972993727167068781504225623719891725943857590335256235176487489513454337856329892693331888083701260436742043377234490329436533759298268241235824775883330848820399239805091446689281468164723687228482294399127543104700110150004643354001976177766873351380276684485669891295840941013755033506270407808980001730342908585648548601332299208634945362372234018438580066260142127813045907982539663090772664583132672126792001010484250875038162569335262753699485387547614958088571242636559419538027381970771183383576839143360094205981326868134064602145242498820096934920392399805794824052173629132581638819557165100104266633178453545214733927156282926676608897253793094774431023914436993230722951560263077804426906025528451789556436404958586664641956032390413515554444545455084065288990433480052651126560761652619871148820071322149993870271625923922063121012290194865285562479488190783484372355639942207991060227400884175682187083431291695042363403230396569073655782179359851664958001694357751557689100089657320878798952641467086072109856753371057635812321504503682772563508565096708337984982020295659153676812410039772817121767164242449728810383173203149449084069514325650092975932144651419382495997378164930584176587955013010212143633325743910420846024271327899135047620791048369738150392998667723682625676724827814399727915794525529249889114719921293332475854274105614282499190208283317103281739957941128202816519306615319709023252606844776690413534988125673916905220165076354340136056965513102190986815770912264228196282651274737203555159467631338262878127778521386188708141894201908684693980832236196410950656173481218649454690591074476501088123038844599366890492195586466943260352193985704187740718105372788451973682966994461946777439523614108866129275655127959758419820002627289376622857946472045213236936139578727824015744643663333618580486934302006464288539270768492392187688701271117522442256403473314686757042174879234574745128670594688024230510115298634270072633786238907911555128917790563012208782644299599673889841147654807268767712628778116237488433000087546297597483313316713705809355103553350127145181426114252564109094228637081296044432874589411824312334997484192125188483939482715874772310205882186942791505207804447279285846814809337609360288205532747701621163115114346970757119145792136927531356187195311240112006652068325403643188578481928108975920778775149324062598299868471531653743827324571816774114817292758543233456755158038785213383532649775594157572519640615577846718817608452367265799842341825691661699541548346574660426631689893722380324441528483541086763436310483761033811511393601034312036103488473607362971211830611616761267116982224338378959736029523231077665314730503591531381626034668102387578005747194269143357575317771922885241521940821706101491273669856310986196005021598767218689862868207112795495677313540460074022544270366387153523262627795385649192133275448536650333674021995496411853330641644251129991662905804623815118477157801551256835291126428841716036380048217436747809353185073286042698255742518526708297610388130932531738603584284339521150277931550984980681944382819480418500917327195519877662181958010160655639661811366898919048532052854860451125846991736994057170051748745110420643273057962313304804669177500547086500845444984298658347997625896076992297116779619153497591294051657125416739130770370749325210137049043793566978617362126806924535029573581240786822321531185353309509058392817374436654335559745293051192354570882055016680493032122744732591584945379908108811854964098389886592685290126754850675592210725326409634660407068202195012721019695247824470211766783800430134886076123852000796439910713920857873925995641127334097699626054663370217442383080763119744238695442393803237857899927569213842058688788580454164965370730957874234542993432954860596743598791797255263733402017770762327475219798934301540581932119416582165880805717806875431163127500233803722905697488697490372077688610682983885732745278964939388168561934244452979259206175103131164529904388317321875300729984116822551952833047497501422664830115973345865451877484686674484654459484989540906496110701458360200671474056269110099674206723367890232545888014737277710825745136093690639571788707528650481486718951153944592719345594331625187110926919163827800715597713037141772156811661420657307517808830852560279577587995544494201096353009412173605488188473812229568961774591440571777770655892129467127973513207611603883699740683020921908237066234226503991133746399379490178219758160561183515895607820754225547375110597393993393117241393757089973418891428831439429911274005546104456017143910707348777836102160174287861532573206134115166828102525653849752497433875609352833586594384898664270367082971089451581022939466429596962510093540631715991781066075582156332430762652508537492969548543319235613633634543156410527639028418822999863615287578198498912266353283047766922001990168862185273620178040989117462890155125953691858154935062924741699026539831686877105666169186801370576873699293578472364435435104979506826915278395241305060880674575600580305669647911566089117711759093907240064933516656378177765951358640346567300242317796008927485411891864617308369755579922849053926227288761409254002623798124988116892909299179476676929682073682575325620873372758836079092481806036239569217649163227191617793303844787733668970483310210715117759951688201166200219039688158722763067534465458318619107385128523439940500380289894373662721223649508739643742567743513141848709162790673017131557413091938057976672553540778362632386665838661205175535836704857146971928323111153140943747461610831720060143075848721872151193286796903627729260350387744240006534389077679639858689405278530583465499414881879788828243581603139170044312284930273480439172011461722504635153972063274984444678655376542798940586545054757051002941473726589882291080124125998683558760035865973033852221537317372346386785240251927081391814697996739575574605402544979006309592317271773950235923904399652277816663617199347275260465135264122516356440616018121444023800231910198662552071469771534005366646932241618090969567990010660799406764949103114444481003447511015097853517045070503116250937431453008527631945708897728307617232351972245796902245041379618214262871749815748087597473250733354259938994020242688670403145430453998731568175247733394795092831624716599742959033217028252732902860347676288830234033630055709193154872569077722470275763328826228942203043936135581727488051711820166657066244013856274629489268557510969551945401258790861146923341723094183105292328996865018758927336028514306151183185195584394094519034802038325802277900772770717773182321728378873143120270268534797754713628950694245094096307729477784446966999638674561575358435794935612044343744264171506645811487745465570444964222107811196872003215702636566139809340582431524757771630472506386473359348876089226174158879834284952883879605557849939768793690837352614226291633178049340897117796731221477687145810559049366322729455368010772139376922284786879171522685046216352185187601100225451145539681462186839339480069985801533233337242771319738941079095572761776477993632866388160745021885792980727658388691872726169510561570723480732792126518466606480153043004099639761883231344883529539831500530325728131706763067401614453242380235292138705730009798912075612156240692792913238160721795123307192641269778355488960656353196641305754725561974168154349360908373427190011866552214665566580784113852006512403598773821474069335834720128774576615826788965276692303673705855392514100848710555609675289918967215411196128354542790105372091931356298446375762805307350323714665032832500201069020668876295669605279264639729829661746564786227168703283881864166546326560585583761006211030922903931927560070164460948921026839843198298153701189956837256542071108440492396428527150700432486765695750376500312535061950319333920498537084636273890326175557583029881034501534271114971296299479405385130473261533243672435987628519433443767473948876115295290117833723573897270214590241332198000283925150041977577009103114328122203821715450226374168596231808695598751101905959842374844427324907627372034110891787612937285709699114191068311121092494840800902224659823126471652984052108946406328669895106232598724622535901594093290004725299734959387247813413769266128397259214342188244302737157753677544320976830202728922599227849801493224086197768754864785140250152188715664651476816737102342368071318896947611003997168246077405632761710020426624781850790244318742551416364942269683742009966140565222641640651236533798194468428779314022384835233030233833233778183026098738316399534600722483169965638965120563696235443612725381756206523838572357093079153588795976644693167273926810603008965018498756748196367201287680765504150915954770032727139505747653039398913433424215098220473012841211281098914205573459875382883063329838180594659117053334579026348214533045814624219902412503445316482845309598969726754443257441084707050463721073746559960702549245398580178587444693671404752947855447023061000845691834923479181176553078823243535676237906097580209040189581073983028809540667918531054656314590113010710853903268988440815485779627505152271074865715319528169233656098239412614625483876023807798409574666521510841343527147607232767654350903932827611907193434386884861352916000212173941867852648334781936158300058021085837585818146738399616336144944982911175251200412965541028902182160324916894630965969520165741780724928802027066372483814979638429827568930287681135989701070267264398036593756663640624395068246650784129558337446278389739493930020091586438852398780812648109301800646994504007086347995134476934676583549168616965079268124757801811456857465391926321111737872760198331834935849239513559557410066126110086360809736249684115022100657861462904916244792026240746725434396242480705460367923331305326561621595516538202063094737199932375579290854959220865472473115456970862040094163664099329568659692505696902059149789269607957541593069622743505976069638556402918159809963066761281948246431233294452503833008352569672081333717129330831596966372727380920293861358153605640227016134122393284038500504352089134166310132575704939352765122183669535502370025982150686987557242354933030615639041578924639196728709786354667431106115824848773509971596733202323734688508681159186086856832084368953357751443873031810581423744261079051528864004096722628240797576063004636899327175347203977880253921879037541633969475400158316724656800578514233901278484118022513474743832003900541026568595956605707356370906347861849861952281239165556884316883906049607312808452964436288861126614899964462621731990103736485597171934771082723896043785140385451601273831486502377956015672614711063771581035373700557737134615371990200852588454179832441080736703825504451050139416744136192020518186672836770789102606928719536095185151315108880670116484579484950845414624259034207928385442063123712786379927053113439098607967488837499943615008741066155440009200705058185639700169258545026943718668494454057800112233029452690839802708556133414268272570300923043789501368028570704299306787440934720412554863999610453797389179544072497851148021953708341565696189367179604931922057402767806977943905624027943449271705026135962956437645435602204750261368271288756510096363537888573004893257983998535621080412124503033392784551926205417892416801889402266035288453534348166175373813823068445963054319560787744993086180631409212861275640733576583552384035298113977428951608583817761844114298705578275946980870892441256395869490251727481360341530976980734674496747363969691658519327443150932921430648033862578657430771524273129502069569734110794850621652032617162105060546312895120148068584853315857957769585445542697737742321123537821609396256033187976036040108945666547674632371671287200928190467114133688086130179572959185014785791454795403911218152200469028645242786438019179258227757687044668812496235057625933305596534529952071023234601988220149919522447051864676657395011607854159208200496340292354619949888017031396687419007302355478977410040154265891500612767712572983901231524525896881713215199158583353204870244111494726621697598681842869483646955239605402099076737206389403079748206256885734042877223111460664077776813423128716019849373698638644052814031825207044917946219787252223527021288710353768539797744578995095577908088846027771105398106191158398578891426879629406515043522623959156144822203760909010890606864786605832844061813237333084292854695545393407233373657544502847522896752212033711482866930591676938980909546258955272939331069188340283818973339280037507025448024361868031441931057736020530585799474473427931510937426379015237588272531925286343929089233930299518314810394441288274627553705927329357980262571466136898967070694448467019446715923617108960493395616164106725289254591312079882479649282818135295586065822268276333006830205266611212174685792594231401098691208864742379661130196948910537607239601204406561693185885255333217262795243087474494512258469206633981613074337547912718020747623321856915082963545803164136236715390620774654289571617347012247103702858657705845999477094480143402529639432551525221844976336447109454204338495297319511992161883055182076592968286996987001284003193474412350704611308815372349237453565678791999551946486750638235006506433068141134332547015283353820092662216558843473197630516428690219964452518408334848618387115200002921388242093765074923422312223003864111573819261569817953312098891750741222786287009177736453493998868798466603689099851113485981587302931144604773887387177082031945542601263455044860712860287643687628551542071093171841972709145448499076963868299081723070169530293971540550497987690521594925582402954315769981552680092016137224715097839628129207443543861501918427486836342577402122943784743451942803263104537347097245364705893662390380688318498205378268976869123571218044477312336176160416678537225683663954175482507349686452852948840593427550793039603061730676290496686338254479601941372116810058502175701357078910867473943801724749891979254084427154740478936098199597302289700883704515226705686230086023044882920173986324038179922991243684469642830954876778123920020922580459338443436265570756870991141744763587982914704772190049609616992721546800028404749378421896277190170195240214535628912706902654845467525758084344463391034488050578130529727397702941163759945652519097076309632527661537731207631258459016990872556373236535877641464184571018647998503093768863409769475519754380388803718536863695368037768259590366955676243995558223195688430062080716258274053024390527508143072659546798829187921815152041005291416524667652218961357714492203031080236221372952567200988026777862918487012584810216480766587907144768816530896209642450674709623128849623959379131517933169388585265297421755334107718381853268169032842997455264150180476466862441933614608165636003523363005590239374343682861785371676954675676662902461282417471699150701540747767753175102245313815459352373271791437365303203996994258642392135302621604253640165055564605487848025930285167089650797240973999562863533324057799213240776144647390258598033118854508474113821570488370904316260284813036229988779410350966391424259344147690493765510747273890415761632547159279568951075405983154595023093630572681228993142573100110972163963327762773168380205621029547109579306527450454470577439102679980702577412014002921425120163459449044025026353850141107613242076891119309852795401283335048235330652160910880507189932693374970099357977807923149199366890664915632405018135208188232527601767145140456727506935841716079463525331095756624241984129984541618106002912621003333573795847654259769182465611951159897005883765610587458892158786744263924802863315994862128397263635630505831096993651906952471465460806304678538904670559387112846583923539607869972440336840647085990560808137070411026466028134615985079211343553821302456776548949609269317095494604542644075825000891432590125096478526228955709131075915724995637246957268450120146788794352090880516357689935418125298937077879210152728017741764376619430321400793478443325822598467710020918718108614334153989403127287539935159647292495284590649224142898185749137353382142881664050906040788845955702512638812327799959792928740335154386867362983561238344319187005817788475597406800498202592630582119223706374308095767087168766268715952230276293330675023618873178399683210408235682559739909400178567631110567904608192226279074271121755740046883419558108077977875718297962735989499146016961949465830964986745726665134446034732826393424312376525385149492338873137989072885261817447645991421340077841593349452873620253071246109864954156840941717867301726531108515479683978959406722226269962556580660430983652147338370417035226156388298056055613463334173587836329904671167693232463891660898709315553002393200402729133854818360151470184212109907071461360040743310390359881684261566641470957649529107020659749938776398447367434111720313462562934128565824091711778681663114079445979493470204361555483063242936081832317687905590672894594295113721632462269380846480858941318323898150214926108505393407013685062952371566136673052357258243748890089522236132752005010793257435622443089021193567238645368251724715713460258692313727275026117320267915138991141389904470234246637567303870536831426309203725622570480214871530622671519554937442405070681772986366378433346706154222044099702006898769201427358544187474868859178425486658451770659070732337600054319271752969149959058588196883816424622202151828226936434335341366267821735862954757344794958429927644142835905678658750758363900120184328906301476916737208479295909504982007516601265653815887610290328619382640808212533428122764679713940315979429925814576646942988121140951680513957107541456500683552613058160855340202738766823023392038325728435908934765426223460316991855299485276735562599212405878999752448349846815539943040751259930175544466242232490368746411984824888442030562487506138117647835871777322126551527225651033659628317301888448356352339535171030764452801582113157705007632418648634721022092188943366091772672718545489146128107234804496954036891327520066903293766179054722195179187090844655439168238614819588582012543849050970656996839312485944478173683145491155583300780485573356166827010230361873730454176752932464127636696238495217845429224583143756203408754231248668978525953496972387006008380209188712038832223689004297736560851801021206767590191137887756621968035065801807018393459506807426129029486582789095955667232569860338907612532531928484053024450846473173465243101926146204637775450302620908903346091128143041969010600728718321799054367024884972378669040379501871263972752222378718989277594963612181315587318709363457554892253366317387405889967185303695202023950927959331691996446226774518521894774423195905635539455357073381885874039376283560959007817409147979682885875822609374911178890125245287726469884014060558211147511509209370545566882728754683476140878866642341184505259636568458144990245914028040993745157715665975834592929339376560286699878883841525359278296230508096214278439304815076255515056586365503018093058199609204303514640703802574840776106630441272254046536827917390954422692580079748571391390160820320842453626264914664190127059727059445823320709827304628779728013116035907726267749002214089191665847875863875241548470710247042493035737504771683442681661514717183418316515841239208860654243846248758251316536277325636921255906392775965139678831443469391179477460925139235128437652798270627613365979599115029494050948082855072593647361515040792673354239311483180031009938274859805877317701577380093207927895426740786143760485341891487840823273463969920817736949166042401537003923361710913301160632307139471264533093722345396826275295436199837980778466334045883990602126667691645037956744233894888217790730024910207198184616401377480295166362908204910727219991987352781035072939646232617687441256767733310219479505379116403194322077959907330388300388746812738924913245620404626203465775211417630244616452358303810241468379630206927190948608051252397945080431986138519826753713983491731601022835198207877610907782384375850591061995940957579161287710138249443307525259207337288722614279938565496123803510876585864149437363414134052981187788407927132881676965644208565924711884012892093326533016483167181443109619320894585194800452399577922111971791628925866391323692331467007372609008971526252351330985544333732036370126726017427042021063349702157383345766894584802567179793403876988154068712861162993462360785385147913090014774068755996863268777766038678468360832432748477509521061938773240618300702622649316719110388822101512585411449691128522656450011196923985826511056356343201307637677226412861274803141714611789813391658442920774102381950016013601255458869993936912903902159560949144966340354267798136210564040250531781305716156844251015492287480849541078289759549427921481038210913905289270816207645515002610473059849556442987371076190203116289046854856598727141185393606520042506615193939146788444580387724364278930471607817257767345848001369386481694540049057160927871071399564754508836390283519123930842950322672464867691977915021748015507523785723110069350861199628680176483705596404996887951272435387216820239080474308734324566019705183249591446940839179681632297443101139043691548370839739491894383506739521503751519408149957237933625646268420190207677568162648850927628639727813079122843505789200471788945572476378423230087681100278174822184901481878979048134788816945725880551117131625936595462805405107571505448096169386953441927689484784359935401331759260391565526325925993307627434953673252930206644677326401856912319789603524769787126436458729093783033471485182163570181330385559350794498499324348982232695830716636691803497010990292797776385490210212509548967283818013926676217172933209827293660300493784938670567273657937524106956561482274812192186101643584382680138427693406071339970168759094272106369832185217583404008716428452582657493248924718544836624608048793143249310520535487082035997422675979809390510176480040955841393355551557967593244412060430129467452996755113449715204703056265667722372063837598040933520211645220211328140136018472420735637087814153932404761521732255697871772697943491565251797353254735859234020513886695832342810153207143422891920549762427532622565743200127180709436892655835189082894397476329510303369352707895040501380018925271886454088568861463979141677276047194242821594358040388232403325370336557243381982769035009885061182344807501158369489733173654381641150652225390681990361937565465804775442436206072945527451295851648225632783521316717052728812427801418473969625138248141153326592308044234368978818444766193347760700155769711674655580409540050208815012207654576918855351243817687525160265072883671861017814418485984230399770075654080489047753995257507173034019501716314766404118340990679466305121504379040201478875386601959726608769535804105083648667868649888211937597749647878887039963367628535801235766990378733348734862443433225905207546924052450284827257217704087926049897740635128440252562289708106881592073487275617303705130758204210127093571032854517806971004874934978712248593616284697214258131687163053951325581742094922628382602696199976768085099194440858365009247667905904805683476716235132159386059264643001440921257840269736442466548977358108469065504821246786653336558595298304047693683628762994028226970400282708481385256170229051915643002864196257075740965243019693697102442549722397086084047806519092586442612078306905372518899113603831931877708795372047504957272156878469186814903642513501693868232742113032218766533640378983730580972193499234141922027950384216999705122762601284028119950139015013427726400261520818630498803153763124179356184537432120271617813506629462611903040619012886648436340173465367587582405938141430739548056968363788955578047567325127740227296279960145725502093494956407408574979501587755041134055960574594811358665124466667316348008454745683923684976004851953675824570565507013977036632780263850087840493249500605245913160914632572038102488135202709635841858485724173044870278123093426386810404979356471693796712669567823186193066624092878883103791037197948290795397585993344575984253677300437195550006270627633218015399323473036061637820245117246050318508676117559783293915914836275772071200168611839688939498279928675398738898889224877631748487790653300146310098007489882600863631022270768708234858796046672162063420815050283616184879465162658356620785540032520441505478003172696130727452482583851608957862081531940430467431236134406903700186570427936393285958482267590300400992857305547148780736476842351854097957289727327937686226897557857107203554745790587637245043378992979642494067823011548255879492166749328382718911984819030216556893135983772731918055679717095422247898952383184965922333881767428464194318853207931117595701417227450728593024475326699053241534175825489062858421845743520927562475968709297872275904384037160909595632472685188660324256939485905745667659147481041923346634282193887617839283678596970704059046088322136801517525475614254265298423095211408264068724960512620528646067345635331421370087867146213270279872510295287145358214034488290011583989374257372586446678225016263142681079606779645607591122155773059672534936977639913074085671917274573651249981072206003285651521844561622934393677253530865924764152479995065824214540332337196673391196641644713474642212503469745627995575889292237050975615719686068336965315392628737850655295801802164084959831253667896155166230169959909150688693275465914461012990674380578259184354699573979145595054594582177643190573366334043714411091633799912788941685852042526303020938071685575854141137996650484837572865885383761393754389427342253874389799084704969025363442670544476954751817038228060692607502427397354716481558116575380853851005154447120592644515659672504775863999731238770620704622251356331976505794321801871643126639987911647550628660524785265868288960178511728073374833536440305662894756700020178500198889914959887152078874050670316499880753654653169629085458399804092103125922218367440281183985885846738879586039865888605340169115780087637638806647613995220966102630930490823748098361285546018951450498150469467601352584837406199124351552739656136596738311457923003514874149182626827569279905594349613433567534406658397800106793405483516188731668996085385282699886619158988388651305188042649952983421766745415347366487460192210933480336417254791442892035090478668270744132171882892719677530128902528942586217524491437191589109863538910434509110000705845166378839111122950096847118781479776825748710036891936811533126983299134061511952017559608910631068237403508917825211672643089557888188666962382667161467946805407106115758139258503456782335893049321871451251225494795919104044195060874534782626656173771771030608303211772740958598859283550207613420429159958506964161118754798475472525973430380038908680501707493847463716061918359808549780458875567012610566676751091840480746992840378532911603385375713319049942140109527530322749571634506389927523635733624734159694090260883967442023559515888686446547871717325662587360952144199652518534230632369034928781233376974101756626138434954605169939836343751156025062489400049670727944333080662024606996222866678107720392063154579503227605398276147775626105401712836637667032504189323867480070558298357948379341764979234017739986323696555831149993156245031983795666807232818591294470397949897348598484900034262737367992032112100243630210070890964809724059087212597647394228279557658761723727288799073502044502295746874456522370070207820035101439056348786703275103242761170744130429116302141364866106457254407778256653332293786214788503936610955943706631344870742762218691985286429960465011369853480416845888668247821967356806674202069331978842486711029993380037970642179985394152042127258413979907587680967536846028942924097836161644607909714667766788131401593944665647748596008735127829777806947642941044304475613488601693787434769115368438158739908770608727036726297724120031808341327028149363033834755421415810189324453969487447907947374885995370463544800062335780950955190637112230292565595994908341728215765834834316435802139363932710066692141877029542003459312135743031688212028424350497927114146822338427688830262245320872863190489228496241187153198707895564006285497676934306374505014526558924921003796447009500131096528285682786926378647269699226589667138319550061257093123910542845164676356191628406945694113980420699099650137817588508753027284272852403620793577230969203363031517025152640867191043987993832591171895899761751608885196040248807262266407414693080323035042926471628411086570634433614255045219965178729092628914193273272802304553991270923249961613172254704389513996895047887732470086738588836654006150544384266036028383881415502119411602847192052031509359990905398960236369907070373619670744587285212636736307720668489065623032267909098799617444529748955107134747086913834102525993609174982236106355466614869608796617551424221684010744733214408296352513890022571842130555894096751550664561772185932840036605397440528603663014296756922107748233334988623035297038691095002545609487860870084944339633998831370976603754816652578445763739344907744904646109973768226778538602444799675395838139098017909957341386879523431126376113861070732754331591724740159917953866596583540122502772198147253982103875436451660108013060554187310425639169430937536826842893091811173123575606570645843409371333149443628854750858421694131493417504876119093959643346344542178451012058771651444382082856696205878093156606510849141030862000067887776255064662356268364436676551315489628193090249447571135394366087087873741228472905828490036820170154896828363963248792147888292899874777302552230856183594031999052129617619842371984036577015249161672012059285085562073595351040078187811651201066715208171874345558217921345592424532353597505264752215878109545613653765789619401684342370712196471535959583167882589915343555816972538129015445481114798807958581566583415352494649819354268688715433758550457557948150126022383377748196357271609667799695043345192214877534852504162106655479382614160682301242405231081244975204749495567177021072486685983025920187128310714316901037155075419187084047434541614221591614385597282144254212771661868800892091931077223257920705916146978023319581411576607829321475991349573887036672685121072239475903189450175220840645403665920293471658761009826609796887452487875272343846538227638940511938253754087986052153781012388844531815787194177804325006926110936915981998325844300832438893078572360728593643822996596167425396450112964532380116553078669672511552060400095780360216026060897111749648348062001336736572888789477379836938130666808528677999745560260712627511424772929388426165830719421068310684168116102478598905786696146232152349908172821384733186491112046248456523736426185345743595025927715202982282466064169395910561422972795339334636653627415266201864070446560212946939644634971002217094744996139663502403947483664002574130572483364722631975928006941189577549275336567394126690482379656821549703310402428632975350718911315951554092253219253539183329097660158259810293067154158616492148948743979264137818442879391726124454852814524046409145646805090874139234465593624614494679310157031777924639592351860506076937410590570596249906421775232731821780407375067709488493617460774878938020304193612673227991860519335983035359181335456980280946412651216856413455790721199924295173256307611391777531105606145247742556076287510657656808122704218353932998123158118703166284528214040327723871982781842783433185816293175794275456387689519068942953631761532716393489816727318999109207125766896630566934831911890862491870724195553853641940514926100033402647362245514904718552263537449341248620224424802403724045503285033277491178710942692158584154992855325513777008549300185007451961919614651332565637318334436028782487571824953869640936081808179914328719067533964792833814349681763308470269585445419392312847201706434743636306721196198227045790113796823309091452143333281560003756888235186586952575168067769951302083903620351418830536069398425130657242868211327637146874425255203014012541520603775159873831383990339029914224692838980801805937166459512184076652498744905357128395927224109366495768298742953532943122711428852133260769005103446557122292165392459465232238505884083343959684740290706888136167343634105802754515368077416010018613446659312737407740800483188850831670958102096370897300449588558327725644386810129021291891086793788237699888776919408149231186840592244682037418553194485222275292217810480636629331464704962849740769618876951046866943095664827334178771728209258534523992217223887906476375875590234694890391288810149776474311014706998181632105352770641394226137101635322079764938032211363255039358467058778165131139063225897979155007470055092703435322230856855187909990987463776753092043438012038849998129685616003662581809225852791176484406147173203588996653000120763950565814862118055385736941480076373257333500468515351643311734941499007661285829520886843833977289039915422538483753591126310021287716415084654327734569347953527178661341595665916491239601206481315677140434506640022072794201345304680747862556272897112505295475232327372309066986844140875124924152067224946345407642293280177681409301289711252192814271720330846358030029971241592466436785044632796363191440797562567824010339533309539775536842065628281341497272882454780233996175952609248340510498076037502323926199318727322499980540268453923235090274261213884256351374064728249702954304898021989283990581924195810017873201902656972760228355713236482788956950790453357532312919804225094853536107440336463646762208505262536080691920595533706075375860804669116161802806307517273614927028832193621914207961345496842486063095122027895268616206441585889393388876333193496269082400723342844592519040562845376610925167795457619406480958405750493891586452532571967624880426069239460781972152163199874247389936737798234637334353799555524858092841335095216654272329586335912783163134242527429185373672780337467440663960277238863564094251764568272453931903421018018269494670545197968173132173922595135770156682570637969984175226051792985564763956911036024172746162951665642583849788871731455875196065755233290371579030790120282135134473017578879316796676534814483020979426326553890810524235598419291508007755880778752357920817218285553232646839786098518557872649201344591948464347175993001146695863090951663142367736196602457759922826554287322622946613935069680678580680905356798345944752991857651234212558618692620333444157013181396240140679271102967637020440823084059286994342363942074532564073619828456994911221549060323410678418218772740287982632759296828979585697175136011259569862797189467378008032290507965614765179306988986278316631903601129729248781955586851261459185039374885960774956641560558894891483132045208981184074938172190649663288110556507396691455675802162932393292885579491635993326570196609229105586569352705032800303894610114823977792146954042292436491954554055194145135006395588681906950290392435450245658466085718897803547685070432600282798462248013000663734144249206932656387035045646450503802466686649642771257039370102246970202727308340438357840014739724062313088194573137322117783771525048993849249260176984134875528613704341218882902021356602321080755324227016244323048289714304118995097627918069709524396090512563202973729103383060905982139884453041716750712814750262296148576982570202318666875658189929141928023331462245111064646217729543391022486804045788905568111606324866332236858304389078672109741702200311231629435182617808527131067709513649108550544665364885789043516791709006924105617420735089320417882089037113218236766270582490646324603165011688168486620674480491978918786617927144408584094606353131420912944892730267589242578320466166540407425817587053001433386564079163948221268860075649048501533946206500091284322350125596467709652976734835548623634208756899676514435812005916907482669092493824075654105560315062652428395012835677080314662541436352454799568622647838120546198599604662150945083701267929667595204858428999835100013768069620804846333890612403098443409644160831319564300805662429784790741524100163888910479495033887488830126157115134850290582310978406077103166720331910967288246777702828475626068524604956585833724843519558193055525935887765807881283272186700747307230385436949010661520289530344680909732337064872177945050566584780641463067968078371423908184694283326318811898836755175665545355169502309462751212990286225756793368582543435602600550971588051199186783539216617712137354426741796690322211398821219831545206708813034192674875426297956372166489049862218491754319440152450138373836364117201518941344381888518457361054378978772392449223010321294908209630123022544130013737407028981651229039761969087687952689477535048523523771669535335725487588551531181515936717882160063739584668820691538501011960091456176932205336316731987543441896108453206048417422765645679377204231824369694930019568205336801664738575270108163404397635977049817560681932702197887190934990721951978002808267245625181975030650059782774216522458069690163919728643277540850117888764822224468884634784375259387910418474793093932630299897132700535648371124116386157698837730226190660882826557732138890061658067372139710486931380055162187148356706407952446809307429330866824992058815753783795371009152393335404422487078873027413627817473993418222089129517886774548734820340529805151248787817014017779050761963254327624965751381981159301305991858863340921158426023120949191489383675866555956524859611422868274424561185802463042683914097687124914190246722529310607076509764772863313208887918458944173850576934280057658462053059074807989947270723960910754908638087470682729301529648773204379279023852359278967223205138837027323476821255379968337422329098855107672121035635658590868847834590410580858113065711932769101246342764407447781586823248454745550541362918902180815350805933877689589678358642220609631055883260483678913999216382790915568689289394785343120545245055399239750212732428338879612793644264998424213701524888629936504317204092800231123082062214263080502728234813125379324217697727128871566647872324661670927726617824359316011712702902366133853946438862769336660363318403846284317086479365450125780187584353606720798944497085017142106405829022123562382972104256352954219367892478963703950344767748549097748251405976173885871771997165233564463015833341586905015540249490983306643231012134955654747784680799225393435460268352218105233420061457980149950612425655445897911052578741063783295960658431807858074565652125916342288327696459950923369598284498545368223258720046557848243905974056748279320193485183647285030901296435630530453745593946074231424444776570094746413933274548474523159215270856146047922992529420372510310964781872339517697523767983840034091727581662432989195276176187146549721749199398166026883697093278303520550154608450823753714308770466305500516879189132755348866466858880356613759168550426978887418874185500598698194792895260450326537327368856390944958767708402834535612707221474838113982723876970313034094733835476496590065892084887439997851293021451354307734738955980426150266885439133776003758420971523610992289733312441837608180704047500145360326086802091358834777166260823811748335287549793244309516530401642396112322081848407753672742934578418811034377171274712759266807261299976318533976547986261155488866407583409824525850144674352509963557072574847563220499857769457774327419813672970465326432739997566778356549967517163020207649121006653219101095819945296025647975827398396827432259337064746273288782335060910594617246469751333974691403319182929316514519964238211717924272787905402266859072742650581967310241191335269738046573025702581096409616332475371482284771423626713819732943831836102172452601845580170471585623904770601518594036601317467363293207127597644858040663079971867600479477493072313339332387142936609211776200858952368759163696426654753158093809747459528179929697622769979899233502058915305166389808526454387334433317749014091139318326002616042295047821239469598809780051179383138526861958131557284086751034505636327473743316910904920084253893248602009673085784670294288767403024884980899072190409181056183853217703869946161295942972382464593970667798380813108889896708989137942187319351256896809293190351790419780627074897331618549458596711992290560360422631585425028777356932621422380551253325793641820488609773775193130023593816044813260300331015085138095454363991128105397573583606001838498285354008940273146966694562388919391791675547678940448113797433654862829116759624591378958536456954353548992037464388522390031221354306517048214536972407318944760104495813519071711560121684248671894351587336545894645233244018296320025642736246862395448339287795916373063290044082606185497709167304299155656675753274819133955169317154261672113719019896471084144704407626637061855470370321368725081394192769517341391961547771845193398065870135317404301265510633728298798135191738067423779645034789622295619885906279277668043575771179553199974162110031442781689691083242288506228896717880758790441745217211068690850649866908419519119115682980364551122401335957824187402891150658455926144544944590466764404734033432673841964903695711298235936259358774564770428278349005190253785340954316794784152121158196326647362996821632402127680298091495502245044899177376566427463154045148069298923939764559738207826746632840489066717233459837241535308121898348636752492949651671983886698130824023436002614094799868138125397190972936855508296949147914880933867141388431813154899519231957248340136687562845117414102905736891229667889568600306314131331639114474464509130220957307381819415624217406544956567149268641554619647425657983804098990629686152352971889562491357849928506849481259154699832709008391113693822126011419397702975644028195096235089194333747556748367202189573147715456207287441129359483602472010089710952742219366948491300918218840976657652127016415570833002454139428568427528377989561524410971440952951002974398470347414888978883413133214423247834160858200034553178439955313883499085961270418953911518444578827272198226341750946139217666044192913844812063130107702658581706838138310931405348292490494400893981817106238303372579679917842259778558549078197732784075221760934942568907561080468335752988937003218338490835163264758571518569520454228129252887941688138962409854643920651712074010118298276004634726181859474423642643938142681490929935435372704620440565161874410178085658973534935635164907762952063257826762076785655595689427405921993475090109322558187213469481935462925527936005728902406017590713299067805359257133320536128524047033500356625591043345697971540014782305805476647665807712760419188010970031326906705451029296409908229817719318475085693043086939099175420143652607516972249572273185035235640975877304500661461753853833520628973202981997310849656742871522999623290771554437326430509535562346151583709043578629116480565382434153175591122711925297380695260722665549248641343019057485407586769283295357493558410074719968743629026145933787472366826633970275650300986086201830977261317487686732313067475470804700968355547564779606939483544104663880297859259559845206443937889329693744407422956487534508683718996579922711734243490076170380162899663716489372526532916119713695824269262109724845802199860397690558045465670254697194466998082743290085585803857452776114783254580055028431525292527383724791473722314003895399979772673298464822701701954858111801664749577589192013324421997426435211610625080114658215801545785545104359474904113522562036680242130150135310489573334243143525270578773166282340816153742073833521086470048235794620434351849743205401315634347995801354650116309856203193762624664222360937564458556318099877140062796572566310014505020109347959158444612394662713638779663781435799647062793264065100708371367301060674648351583451320258022669532310372573882859147094190598033829336953798055061631456665357815560050807826053785976797529052904889313288404436223434997605205895832271722666083377610410439312083311991861478594342912555544323238405608117749467545203251692626584057372232989487840114429651084078941416271064130763150050538055621104761778465553369318587835834036916646841086591547671534430957599074171435654777220950742158315416397319034295175201017859260298935663183200407560774930272840454068116974160007222512671527889172792205468733628627310417403878787829548436347455890481200826218456972419888713722049980539520068255517329645266329113961708549524479060011699113051835977822120937010729892205796616613453904209184344555949648563206520065552916572372672078474604328634628156280835571878825325545890492824872590615803914636608492131360969605005113947406285212894769331875158194271613173998960328831790210836312735891871538074817110403847760026920130450977063671016106552745441579855632411138892953183768265437102363628314688923148040645306977978207126435669018757785472424230451647743010553302204867819382022723465501239770419119567397531241007993373545998413025119282644139440067865461517517873413941359942976549075036672414550464654217963044268688218518580363783415279440057376575220566702680258288208968945921545608508787002336640550531081024744345949380319427818156033772370126716786246902387265684278104684999947608569304468279350255678877705188285261982587426198907201296225874634158413206003831912079142544447289704031880760891234821380303043755671119615847392314642544151509369522378716853541277618366639313093815943713098459549212987924120429390426792252861383386000958545952003380386213068452529181709403118404550997320781187818826092647314847044647715280827401985809515420185233661332749294175387003478975549315344753021019558737874161885302017186775467476670757185134381425115063410220084333306171855116059878266431526851370452907388784845978020521869653222323550399280987985676071785742750524268125784974147345551037093732132061392218761947748078855017766307133815494679323193005740889769897282790876164355834681469081923085341377675389203942814745920436822913329858665928058407417331249647667796627342407529024300280668274530843256037728304514168099796464426039528589754162858048747906815255644754629624800768101460603396920875927253012675021720079684442492337225883155792252697017532050480366510082558543816274400467249504237099994305726526355231374233041780995953942208936845959578300416836587490508955843690448099691970123880845450363830522372343437557686494025315764675592003377338139326665242299924251123357547449553775065353824563089772834736919134981536070427354655533783441758480372463502787080517768052074593509280823633031842521012129614511637948703701974037371455891394612720794330198874967639203561425833489027979084071799852277988951892503192391323405592226168579528370958077875923641851668336784574665309244686470040683376134946797947651579000390146930208295677870122600534519268493349506858297142073561005978132797694595012292299967276279865612227724162275351951605634413313442281070562293462791017066879936480236159228717979998970962850207181351792606261590133158796170121636594163561057972616745637690941567069492765746510888175219059880787300146412758152276192750724264239332043686725550050015117377046081382164619444329046208327714137335205912182804983576575421582053475749626170078416319211463941074385419085544663791603831094091018821835742607097744734997351127575187373633322328150135486915895159746081061490988169684723595859833053100219396565050550680694056552275358911098900138694360601463005831727449615863540936917101542652470138570169607915158177381092167245462673818524294177121345713897287354321312201274050697650032049966491691762596773445220786543198213441198602231710709184045309895139516754098573028248030614962448894479347182545751527770467743928703706074338985054579717125612118344408774934148518122107822886711432610847436298635797917534720585281574655899332269242433896741166634178515690401229761292357849425612237250556968937153674723377056681725299525670341693940293953935292218436242366300971970748439878830581354191943317014854759558582247497432537944710703707648490078376426101747186365426218166838712620029908018871391504524554117692634627891314767376394410885867554440395050759650502086716428613960101010903103561263039731974045928998967657699739026980948021159053348236407260413202678848266094718486718383474003556538389411842681988329042212000794770186256650673230521723376433441863656820978075453682441180510507898351946848182954034674598746557031991078450153175108202863385227854447740310699070575412701283125796984304967746017171528702895328472170595488027232050772970872545716021997077814889013601834529119440072503108946942965655109925555954878127729800943019661347320274502994111422782150124056529721869219404947023501036556210321801688212489742879490466155768166198286510619383882431314583476298255656613102129019811372112444826195122129886471119211898264550918398301712597700870955273938881564093471882786797561391256500092052997813040299929074437581006698295080386277776458420183501923711429397605366240599176020842057367152950552040985835765651332477519064296053177199361463722845093026602130996443019776779910179925387919892715900606722331384935875387905817433497444235495249687463685316276549863124586486595091030810837412944416212796863854197325365122640313014139378752601023393839443708852078567627492683975166239274568855580110584514085964563039961611306690183414692855962211295157917687399791091933319239138111423293851450151650555808858670353014837998981629649443274892762016521210841845865528202703950814747282983254060064981328561700065827403537805692529813363546796373658792184995203803512424235373148499932927146804333348872559454881781238183962371832832582521812541233024772980024355900669884549064350453792469435741729707937608835041281735462625883346747918956100960578179716237381964693808764376962233072541193454449829933999612879159871336028245535125507184614518109937168609968411605778089325046453458714012564377508167544995611243443781097532754905527640438864119665130599156065471607866531135583341483904380092547816317923799009516936843600831341041988308527683842563388573878637647165542270611966985659343174460039820497080206934495312439868251945161620797788684923078145561025420392690094968734477591616964823633226213532245240457316496960155025037581346592370040362799176629853773683744987054032876970473519159803671302364513986765573030625369166416072091330656847951465508669733841624951023017325275642744505934216589497754282019105253254822092194832620540586566119780115306804772903778023543545652373339626869661451756537258024187435469830072882682202468733783622184793401487147377460611951070950029913819152592538175283913147343317796976133531604716105233136289370513656237960669402021063151047594447201027623595917643486159155616383921586410693312727220864200420325964059546990330920169415001339805322938902338421922267092084186922726380899288234517362682886361999673480979260956529195781651521302478564332285830757609139717398929359491541993557938884983235702960882297666736227842426028144428391176523031648059686590844397195542382136328653851537957642310110653962462668643853275188351180524039219250875649043604517096510724967552383241832660422044169220139065259600415146517397094893448732986394216565824878950922196683136921489584930822212507063629708967645713370558952180533755244516116404539212270592998868254263025476051048688278181065667279892475157765715383578990545116393948430079339807547127426602717372367447454619264802497804839164272819438453344408794532986885208151869524781229283428917727645825816554493514596857915281903286714828506802585594632507480362886661023155085472521255726803815582223317972586799377509715151362816088489699929491172459168571089280315585427207439947778314236576045746199071160878661547858012775910264784489421333769992260087519055032884286885788230446644725492204673250144176381297300013608500028712621048268540042304267178709980189122703592858127800330608064263745614217908032925522509286515057917460956102350922025372237208612747305326304631729817532290193542930408445435325561337727228242685001700869968127645149805635073268335497681359734758408456655394074768752782010782890123856182047021942921080321377493669831296379210009863121999853311016717794610623551224353346181688207104943928653796559504802522054229307889239274145130847140170086316064028776157371349987736675785384535056051974269798097064694964071692502931447724480805242482992804092242594589438440379216280762813586933542326746230382454865727110384625835918587965304451522598450930286401992756284270444973418167941831333543031259258650616969538818452279380825766375295905136625422583461910607722133242016083789416518353242252979387205753573138505406418872807367961023438450180249469941365940243240049536168113652870486892548503990689815596154458476116789415414326402791150680619486574563246681741633075585451255410794346879897430731013884202055914915771989325426909127384142985006913234277081220680937628722798626902508736486479589092861829391566463263301985662471635254584383992446531902146052000634552620303986183662291545125836506202992281153908417444724710686706827025197215042393365124361068237706737485581730457948918165406138021391525404012342901287691799488588401799614460172782207601507402797857755351136430914087412951712408818128588358466493678691538425484209450969173262254188536663884093980066336689478503245988057559442368172558262275764576783232847068862294054021449058916551240851293810245463099808314695414645059242824145890490463149269945594258481072661904655091321444144712393159698490648735845503808637869290273736243220385391754111883649933360020841428976471774535381580996875638365571163834699318798486561813546023275963247062454100938749100714853396256187777798260693877273951471454932202012322254271254480228076912994411548849818840579406478641948079916180943507189552214203928923565605021082697873633514556410767641848079613903190174807543273670893710870199568247735166176114145132005417553978994989173820156406554113471058578421618152018853717731693895275402670655698466800172650198418287770809787152414111410586216421458807446746639522267125706457749573205228815887981979105635500368296220477530654662844690796326518737013767589262201290293548310652997585845979310644660783186799875155330850806563622278926816406468693470516008988838522113827655316947256954883065901387944886382856614565429806616116421634170927640487556233914279580497776702801376703363534768127705389206230321118218894352697556736375980821482872346127514905176851435495732203742792530520268489609214248384604730130111059617110761476120134026399095351734532598502944727122397970245632293481523365345911295622165249754008056315803382614789940138148691884139910993187673359398669626138961427609980990444471834950509679442769938387738982540817283956408251278231101339843091555086835523703996529344388364434042985764740798893179581248134866160276131364205624643607316041742007829160679344253595914240705403020244755921607918838673481675820738349610882222691119165718400063867022605721897986765929302538548743829403981260108023392069382209757706197236236600787224343781911430786009076691991199992763779709876181413899713995974105966389816998788847846163582228113331004059603141292758585113699572160477668460419910745931208274918700483546593471474899076175565769802257161911265540016178158363311645842057917522590562904071488235661286740199037467897635891209781563537067289437638290566442733142421812585405853516590711489614755909755403543029203217198607329639957203491484540914862448352787011863755841571749004852809770640786666073619297568635473396630558554407613885266138392661946289117976092220616234686738663137630831087406134512559549072844558264023496161462750686477977931549805707240677930934968181811522095777495764968481485007072834744713670544072367379539472767363229183528471993028190760411771471638487574106013771698800216549481525120571573817706340215375705513268802306274487227802767601029400681719567653152547890274608389249698591067998617846373883570095576537900013348114739686954613198155179710461137140617575723357323868821610112042084393110379253586628757373955634761140881568300186717031666521650660289861870254414580716124009682128697516089848891916717526641842517976852565906093222458478351461935916565594295639021452330335858451616166772461589310673341251372434726148681185500492978640881921000255263240172254736728000980736957567699296291531832611611913898573152077626282663309063090346926161846485684448547689963562712409949266633001249350479466240026668983040666375587243622204693882647737746419792993027973082338064939579189046289269278683802790867547591822250675637726358750480969401761004300363889584682261715311969068908631385923696023295775063674534436391642348883583868033115823162156588782976994228634074125512921977717012984992896524004534019830857009303298001347100488183388575229655033224370216789847176491299052192938134263168798213115741653781495146258588609761829850825259190449609066223884435213780275201303543167690116462048870262842164345248091807984541279180662561417686242800773895024071663116421922012458999216050619795842228792409644089726257485419477438345418811175403657074177379521005290414551816968476067074898063244240533113388587688871055523794500868587198621000423945538520590551263690656743128934134707384344031401491525014499104964370840470125332275336905132361936519910354994404302265878466099484890152917728348204780367978473874771862673325620949959757870621728116292525506359729499575632551596355765385708259591929310365902867004250265236113255330899046974455911529421895710350128703715887442744978749429522992087728860791139669512653953516272471248322366432294451833627688227080034184306987425510743298157388599917757504120575728071532277794486668025293719772677650982341882938818805060642860198070499760375111031727981388184476517734137016891855471741582713082966546600210222443132541905365905304889646282297087115058114303070963845231419048995049845230467072819914373426829739067778354419752056036833144832810287487057122557554358012910924835791755234668525706474957881790801287532650980413310090692359610914968417353018425636206377247997812820080891951988476703588493810380489349943133930081941549961718953717027645768454244238613453422429770381118681463150652756808020121799492707160491442329438396460503748493146436592148443812101876549359160276433712407563832877999830371718377884160734321695329585579381083896024090713290777394012514610019780467912839683033602086103466174227674553912377397965661230360041960376047512996503883582428552465855586294491464765692151464426585371890961774585602037525132929372113663666194538249688866477982278695330488371773214795880273973013766397943959205398898941712211880779454792098591824368599877770789464138444616011905526886132595207185792287100973847488709166958107988526028874595353568794512877034022123825723053324489652840364745476266487699530729460316735423051493808762036158784702629156102404002959421213778315134797912474310440547621722798318395312868309526561408318076668726432156275122386111600769632967864001271164918245539546031251270932761694874135668576072400268849596411386431016941907702744462261045060024524979741482728499453480989103107631997094053897106341969032373553935552888842679238769483747318701127654102921325539495928663332427451976733818503232271880974670136717295822033773375864095503648114231768675533696057384616615662475047577603871160844330920270586635540928855319298601597380548332864066212195178505485732841420830946300341372117377194154247463757026242560583837897317553672388520810182980824533347112875462856823194066818903151220622518813995024090076043810481113411795936541292356432869608952141642022095777885351868388016725716576639686368798337048244837272615774343479478195451329701654314769930141656812333618620354762538643779496490865462678104807296276571234914458576103840212772849090291778888228670326445169764100011723515418786067319925907664119235845743751244258222785333638929917639245126048394023299863182306862962796808194563516236203051201844462193978772145670850722653442618265046117828842083339823576033731785668681036159138551069182112037277480796247897406823809609331853232735638391588629297726616560947968215933280140045828251797431158455958190227398347712128318556446492837113624941631231769508801474958744620318195884788390576024531618945210620811199452024723863148489769554543465907958434351391260109600304491510929660782173155520362505926951468539265397657860296261757897943099948884250479240268631438076454186058147499894339103750035466332876203282805703455519351859478423666993977089521087801920158142525964098159828835234473150093010053736949438282074857513539176213969370129798730309900345620114540933441570395281252275982391917149770495052407631939683211741551808235485532894841916928335370940935533539956262364393765636713512920585431815139737153988707606146288526160953700260934973622905269648412692603508691368320130198136328115991964719223562667673146774954157435390120772983764941308833988604127853641165857356020049961847089213500750408553032557838214055986095058555813299047148046333449710925605320031362980701861971929906959150785439098156768562842583153456607450938958063706610008247600553154272971690552149398135446821161846878426885557318277692901574577282574976961225640805643773200259225353204344093742302385033941200642994964486627411563858706298667127525520385950484758531300571809236596973613347453570529850880060960533393865297827318901913933471541198897083739099102631465518179178560062785098360629062736229110005727777492854524632845387948369800031947236339088364309583140032166887226771993857029672136674003773204898146845522130517014642826521384633907498488247461886528385063915886145025303985371619170076533971781036065575910416898724621424047773472000309357005548967052238113686462886987878458993083343057355186345315122011944541541955605481529479301107483493642548869679435339039855489007808105328750156062392277927684365798163842144967493634773546470448855656123188320865242297912105193732496416447837233014973282076334558311603097763186080133143128880597584519251291985601876713730984423935395545899885790700646765053541312699086020142979603244246285635724813061088326785928367792559245773454007178207861079504872940208129612594333561655514713555894328348306966350455804583761691152279002120816867402267076014050475701916766725711323481289696493828004699902617550524696690013021745222398133080354219697924032262035867187141262716875529242118096125016182824223345211452769873553013171073080206994633915488443129419409525496542899985777271744352444993496972380428792262139712950230024074272500388833444073565100202448360967204595791675922093482895032705658695273201961640278496456882176398968480176805408957403919092408708884722133163077836631438557838691501441510310869123292120804908099288110155850149228857714730182790050554773865711476596843369359798930760438757373345250990240517417743603745218882397831978661104663738995581688598533076017582112596255413460605906369734745810929200758126069997531698752593671094178362352250171150192322010016610515767375720522615722111060557437326671643574576175991279002431340196547853274876317302165509817355068861771397364187748817902271148851500562731966692650829011816482374503017168545471208934875546559470047843331705352387263975789069917203551378990952265170344572050220615889849768890137450475798299522279616472423502823102254960066660075196241263395307053461014613748091857076225451451050381030059141497173524077586759459136710925153780947194572953794930649955022021696617661357150031308534061343217123551081780419647541653726391558508959524066977267691971560565300437470365223059328682258155960917010872010593110490210489982291162246055410927231665339596177939308283579523944599386568560102428018205044050984248693694175587498221962762903215018467235075698548137065929089186165335663306260398040649273662738473480427395401804970410756133485576312849235948343807757645171172734832864308405702968500780239835093167769759511230617917954420645345052555022458137773091492335626463053395154485393798717520233341603954729728295229587607245977269447525191094991369294067174970660385601695112207986675441986227311546377468610016041480211141689866320601344065243136653354656651778801097922700877186103610404345122926035750218074442418079196170776907632895413923417274224423381679413303653117688741572499732134316802175234447840950239903218132487905901901921753519969563979806043416735114234429450117671737544750661477501063955992369462069085540747576640593328778109774767187260999892320653417508290315781928878347842904130884068365068578203952311216198428869380716533281290422034233408441822087423499608817658081725196360718045176850358333175865050971595605954595141124867212327220173780837944418479024497975153125259034348004973346346605438307782434338201251496720359884994766958853994689583585464863356940644358975463539639046228888806304074591640222037903709149913152846840679713962790965058319334961272973027478582467416105422356457929791679115666978097248794426154514310384818556368801264676742674574565182449149745614935370386153807996878125407258987641660908372695008609711281549474946340774725181140785287416989409955916502515214866773400727183805844485045770356063977759342611292976451726856088888729169955559799915454626597376257734929270506841909983413423288174867673119264722128681654214299131802558970359823289172471382910433413779958809838558570965990313577388032845183455306774429268573161982272353880078748661317657924021883561389469232940604322781965214452735867815403773225985851157286714568807791282661658854921571109164727955602517550230261431799715693827454889249600420484901036270092388697401607247458922447423124873019079720097967619490666921867908165692666757611903428579238769574648536279616621747644323620603833984390412260275522767879637982526496475029609662543782927480636541062058820049328882018316834383416205021553862479022932392737914550521683498001034122078138223280677874337189668985327105586682403416688605570717020566331864998495104805761376332435421569292345317325849364427038425105216867502822558010143931209903084361931610324401923210522402236469306238845466970517427256433381100074304643710306041807183221457733070870617882986105080983973887769284023397419037323737592098922998473780329657406766123632821202697740320251969211642278451352338153967626215627758161772256766617379484574265739963094078963607624326534849324754984504226821399956985319802027488104325163116819731929208618096000828713411195479589154564490066431611203105096791077023621954875480971545745302110183920842740960564027180052576587292576217161281929227856739928463161907427877497572599933112887941261265944062147099586407524500651748360295115411207880924567484009660036240795673571819369878955657030003234448954708738411293589607315111119831095092987733759103899914895391947400417234839017085372848870386663253649577254158358022074412969378014524416268171283968910331782031211249915386116855362064448625772628785307321955925269876218388377100955292296074362100926627596271221422133588436635349827254714500094539450053917605563608804799113723714560051704324392053849300032161611281817126821412292376062004890349566297496952600528994218166603501841738766873394950811406782161352196178401368575238218540610644081835850975576239061329085881787962785294156102225807212417047785392796270036627218749600579348967796773020350358520297136962326814023926346692236018747524345966099516305470708441337383473570091450317624009065324626727691220093311054544231396779717898505694630231420159922911309513530518042257188740059367858555069943972452742401330598077760736633449687359621271530891701512193382707926881863498194319872958594962655730087089458058732942000431959006615037042062760073358784343398339178402661338060987477796725353784488364554820643266721445309442913296532035073600485401851634184797938509688390263090846498045745896377447911074316434855145386217032635350133192509136233771503683864406811669458644593868269059521339409919181730002903662923618745035958599697782469711254006880258191068057154156780617651201589878244022515231175048121514215618050409086417733538063287732342033109047245931969154281326814548968448079391886039810321866546570764829447964081063699450594488185149995108362235709153879410629572509376734770601785850870566139616669800669696460194975583815720421922532530024231558116563655724553094626942678698750734152146416569535877723958001104764276986988148626653514874948367902566609313789429751030704626080891526671819643121138669758554208186264477407755047649013940050698298915940265327594498379376433805827684626291118734111730276242015558894569330099259223989446773775525242747865507616624897108063872689052468271913329362793208967283225915855129233628684579390410083695102430244566303110400445142677293417300523533924135156792734962133609706907013912358564029131965207073385429936300532512713284437113493789534570505496920574854767531052012767601145011755877240623394085999996696987220656448016634773316334353790789103210522829689869060960667279255242330762111750502453591255901786521989546078431497720909238323223550730621588028219476926782604153204954291223741766849087079544871926232666942854156761826918483776743537768642544850740043652861594224520819425182786077852387366073745680658860683035042047963602184310957339197660277876789372285017365175165370849524937390077768335649660118535644580226155177359952402109880330116134028054867883552990122061161859021418145325974295081661659793082637545087580258808880475423181060163624088297125969817644803993231708666623042986040419886538137557759216981291663713486846133634137559802361685414242710071310086112172588235858278811170864166767089662597258994617281221938240827003877687914360793751682843279726879314412741751859369545908882445501022181110598438927241698118395513378566524135088406551938235731694354481277137471487115670123174312677110415856604491967918305343635325421168635796731999975366018646599858584005849014943280129104630888919024340218913685743383562886529983608743657756322983902381059747938696500651928463081416254432700621466709706494052098697224662972967413281208378661165191348687773923713677494351415427493253587844815346423858976604062483631735464482910374302051483247448660620491653264485117101755347449989101167077457288031362223284316418004268850801457533780251409211493422896748352969149745466166500839580528776419977743742060341654035542879337264548000632883984623136326095641930617824140504873348837053454824236270989230327433576845705224556902202327613747083874123868018578529029025045485208540048033755636538280515132652831751270481477174613968989429453565155645888709789735562749889036191333457495142903641188534903112615851676451125512805912879741314119579257639723688839361563960752334284582958073533658462175777800611270322970721159948102377335301678894809560334365973450807571994871193940920388229559362850175482554109568178154894108930941028929505121065762650902116902451465041438079334004002933609322864717611501022862114518751209913188268611515853211235166290520690243820705499358040652659912277508625076081512106447573476564002700730854339738953769340778396048972578997723650514883571851768629872191413594541675622493631454786427817797768978933520436329620682115119515366220060396515683746761848455997759657122181899360568083534255128752819100956099316235354659332768148898095045446930261691271912365342003336267963887911275396824663792845896809582818279959731855756134863672813015920248661024896679501247978821252423943883524168002148098348943143038561366191576045954154516712665391963816000333216960718488419398222705297526809439211377892673120312314741116576108273673375377610094520864781930376218632228298520682320701067485162460320667476829867685443977842241754715852487970605595540160869443110611532410832643321943786571009237767747775357441230655777953594896249610487206206971771766486518353181518291801054972836071826030700979140675483795034390337011946832425119893543480428357301156394023079616180511274632402851306325602487035678117062925921716100701695958764671763948181888622319014524037631616997564699578593260144771728513068305351820495974593295809738543043479909021224243131441334184474334277313563593726600678155025144325061652054890357910790854485387189331546754271691597982455778779964945503815329716504888967922819149568685134800707815175291364546055468594439420111522452965927923749205020942177928047152411905814783098285685563141559155728059958847913725362192477552457959469166177453613932808238583336106765635109478869542591540813139619981952350618966395422699227260637351900552979367778943477601443428030195789567184615425417933737792998013848258931098420980704129826880621922174641177273529846465163800789957118240380481058448655748160200714830918124673126132306854963917636729723641869514940718975981952083132139687873217093244828372294218557904411657949605138016796071923910903341920132398680255756332741489505455760688142799826302337897559764607899377844834654870752237225875694626322807041773064402619153744504305660180670725853713618658668355183805302262401162570707428194649465419012289397829885723064419718408704400562631393268775725844806998925676444992507524665130442277060829371200322395238114932814240815676811991127920772002360007715594821819290007326137758518280578459973389562335485360891219759686999691449450387137902763615567933212097093810757392287683590999840654367531190051627193294104197231402762039495448355884003196246170574272107786929064951666597773607378374724512720113118679984718784003809398421839729211867407189505342733971569832144709796637876817793067615448869194093256261599371450862691983631191375903589168499389744642480066516574785732555324775657223583804050619098095502633776107435870068922409338437863965509261417575968867465822163097725276396715025717477491008929889993700183628086010354666652262702443410094260578449409621982119317787116719144517971684023962632698554008344789356649408765909487440978150940972090852989463764995088707852708754553664489986720693123034533887889096409351199701669869767820618623939423231672593098179171983179513108827397730706259481939280867623069883103972302611147774244868312711403517877037031376365623618746842287062628927145563102341909221841145207112016700293701060824105812684227558031330715482333957221231824244631070984517046164941180678780114180688208572979190614556170638077014887302570878155419357406050180185575675088455125946592366430564699190781776042003844905360348700027535271047220685908369158575499823925603025849967150500569021606159629517692221547460907009682409919325732026115877395639171992212459039006964489731752869601108294749842349467660786487656010856995460908350044110281244799249981613667032459920042948276615783473735554993425942573028669037539510104171689228579798598303616381463335313980470670229119404392377859843072249144615626715695772254659935266478939038905906733910206509376924052922602999137898131358707020318806459829473301815415620257836593360606634788682318058547733717701167319592188838716656358456716692928104075489090674885138660225598888196832399532494860128478258042363192915373836141352266986019451103648703466000578248603830087196092439800481989146126341613867646059508870812635404144352257372452665201310870051359852459133427032357735488366533171356475688158608750363851189285682909218359522620535232062617215156566423288857109024888113571987412359619518143933669223846742856267309494168550459715218466841534298185630710435556063123204067774228365868647964477656183628462074550121220175788464973913343182671600247278304183589664418876679593867959240222775416708967731477889573501735370186484707759023158122097816663922674210780424243930251131230434562839707241897200352758453137448405668543034198849110325435657194646337021985287616081508939381048804372844685785666493800950324486717066656014491375603457142087352709447136892204354824307066991856072262734469106957733014795157334644837054074957184601858187456782337750466758749798788432087530628882730658413942420208928579315199865045680189182183062449218947969036201203957322017198363522632630944938588945945164640140767216316894680296208001941600711668967190046248035706867441319751097865217109926225848478667140040109985489474941740206647126135251257819200408933637436488845667673339279852275406257507897277636243969435067830782177580041347277203502149600060112093859387392759503015486785023455147259640740079129190369348304020889190249744323627523367944585965445313828102580168086851515303995828920191810069315288944590514512945227936257389552250748494838548404714525201770569472444305420771844416316006725456330968112755364075747506185772084406577825252781998620255546125690471336262781773546269210471805936801134258405864153876750369649395698292796174909180032648589861612975459666301061301409813895772052561385425812429577892762509213359998822505848330496513785791576478451348186259287823436724590022328449596903346875012014388283131083337556673471092387858368705107945651866849677139006638514243094245185384032203627855279956721961986898411925798405817871268830339135871501260034624869293430142411703770486672017958825155894213096527167594864546178079056225326286568977503707365871793645048279012026279990109871246309606603773242246799691365459857238317979522921902220889638009778612122529649380536396248609289095512732244663442801254976647174745806775165671418973887397971489077294744250414179440760487621782958797384256960385839061865257367069741494495346448533344357792472121532741188465748035876761241106893074451782295439448200138608679325328293465677828491572208329880972294801196054595972086895065386135112291432619111536832170983029749453038693665560069497042757688850026599953812879253003617688332630992857673489367478725327640030942119100918275635682467460930139251270450881069471915117154541562540009957854040239066567176654679580838653050392325114386126311491202220663680842127209937765601356303865162255706347536308321191629577279366241814768703127911482694995796934872978241644497845579967147280574635478394284125459863951142715501203244971049298502366275163495241041549615922399615941046486135165620391044991955828028514773011440919798934956981055886647932999858547928546011787256007576914222536263589290730363109646856548103486184428531413889443072824506875357594437273812009498561561066155090447169120677636743837553853523441643451510922975075140996766509647429480669336031242238604760794878941172559514017968392367401867409767338309429002428383148160247902809914965010571759838174184176232243881546373541067119467069413589292262233806337122101523545327300930547187271036916967083906165030679514076314991817244956357593457097675210627806855300631623902927068870953940412733457307340054178630809943758724372307112969677524823725559749196805490535302488077221860104170794018748825230692603054558790063991724208551453077415699185453205017106964878950225129771612465496115504762216905456424123133154584830254966351140766225066207495287849026064995971734560962307634961692270161722235144096420204595553857077156339547007170303525999006406959907145415796221125969138294333697861037476778450897569356478279787779942292777941980091855360577804310864251257979227957393421197946179500940499496790374764082820026665861088069538305257928786299448814650320294624420968482185513355907630803233881111504797285617047279621903156148884251977383945198092352331924032894808015692513187162007401666210251675571774431235529282081769959171398423038639320335888251588935442485061649662694921642312268832569148722739609031390145892017772253139481391110556385841165957469268140216815875673761767640854427404744892147847310823252118370956513276863588219955698105983790546301930232039767414579766900134266827609547948627544633237169705211050351219960989587062239173965128462792531030433815142144618953456828123584502586429391376754542641415102225306578805069354881350308132257174633011097178536590885274999594267533267311924933557958740027489730930089573428194069464140180171734606997539887628486362006673349266138514367717731633729516718880403283978756905853689389803049868667280461126486732133861795283687295887669642181691597729440489293039605032631081577850581608831691960665643688733073151271039951154245517181554541827624558289876908889645447691322138981032752594454357066606242701303885728495284716744605772735134084229121564292247302396946374518942615355378928803001321133206041205026160970839057717574553505581402564120728098997731167214348080597351086328478169464710598718666434893703466764216112986477875377566884242980121685122522143593369330373300184057866333558639243515594619233210384143696687104980662309551560029898959622200786637944265596124300832509789037843467577512568443508845111538153944288862955147717992869118190202451583107928720666881328510279897573839158801717917745753654321533983660016528071819123653213599212839136474653624097262995848276183259160278923689035802660763404760164598401472825811311580873359830561861687100714554704897888408424328208513979437933137241752215832861017927136326780704590590858083179459027812431701023890267333114494296799345331726182212541338595893637014813821998946485689159552786812420015096298585041428657860980347486284533567588417467511964327519452451780125705616610669330363359322270665026053261699289172844239414629294480099853617551004779526366033340933356432582576332496447872744306144673169628449863527410022479898684811223702006002926269039852532025142553725584079811428135799070507790532290373960555955138046211181180514621559248758914928711971954268502077703943023254619519651876703870083265201741076538891774862994525038640777699992133580289400119789240369162165526679363151112059645038211152123928972344926905686042787890180330317403747823604710760765213950775858820027934071805066920296705029560016486934727595894994510672176419621611621668416295078417051683122793142735818606857298981427470652466237757535328244490956711363389993064599553227112288689630811493004510436855844980487436678832666313329055650417374086393848018997059534902478685642353676131154506337129661786033871043316320011737057641345984212173193655242789168752405023818716310585464910356645559807123311109849647019364065811831505025145636071717652451916363379479016521706002155403387741165789304527888797234027768562836904790007115032872097025227466038180069283937287089668162010469969948586588613258856475897942015721615866582926949770464250369974769775304708764494310081542831993025495388427963842614299288597019984848661813864004175879233338588670964585002820553618106176163332909143569252925735820026715835359995943266546394574450679962341418224901524798346161390347828632766138878134071539294528986106323803150320037569472314866363585860587750100458564962874038426746421966831058404915297457811847641525119996918962740910242509533006059115828841420001367679525725719999731351851394653343323920123023602439183588050022289717078277420849395257509889732722591990701594837765605562267206609413723412325899325968041090267157645526449119618218457233021677980179267937030378392222856008578818887874017321105496143717038006001828876566382393064619836610240405231883362526372537948255783757250348707951107815905150687194793430154349789663224300892346878271279821241352098247943695371209679990702182068842368409482016871309046296971577624564074221442205629296132195614579962866758587256015941713937259955116692440416714050415461999848161576162031545519383899823301270560810630249743312624301087652157301710746559791752038443088144512665236711303814521190041580701081904982299471490926468574826308813447896361281731878722751768553039636088420115541607695070375753609980021993612717952305842644860539522297285001523266791085326143906784506822664943827871294172888101587562041806587495149371167780895026875139212953634706143332801596023623714421598043347076498635837397313046836161747992880139242125451222287795272150154872606957890485489173392880920911581835653896399267069438393616615092368083573483696787076119181034032547490365820792100475116668697717887168904604354597718238837110852417399744636569699690214169264146229132468831659157869853852267025742312414235043310655746576467868445650786095706167511137787946974235537646057596122399099901285188490084753042356718608216516816434828482615871990934434823200661394051097463382041776076892401807461332865211364732031119755049847160602400840345225372013685877675069457173919598385954176170799576002391350997559696095313666613093497373576563819077664351623680157936468118549848293398288507846254639515806358442693038946521646841146003681397898852314445233024530465986922234644117378066176721162045747542344797398519464420219359795783664792772657653661448936399354070825176905558330622828438986375860126232570494893939405441510787651685844096657051725439108254707006858208856690648550596901426164174108172659099464974717303497168049333655567978206797252752741203903901701129181157527414789055843632423408477798533158017999578399063418668552737909961374160740685183521200454476558159110869300198973987140991280619619185371128510451871359473986508450025498736854832194629671875590038877727692909587488864682242504221171865910841542450507527097050402111726559636043138302404160431895857671457266888358509350952685863474212862604668975452392395085654240074411084002729519742850978327362523326959220725752416046054906460144680935375643648397324977685108488212367853964505857585793545868254407540024286319727721602495001397239175134944514534893105903888967334061987756942579557744360124842221130698323843412412965143932655763256234782409957555220940069904398941449492324065108902811104523717022427244191676569768969993603438432579124874125759411227179049134352076248291964503448769311873752623884070097629912353433226415377221418118607190206108648529268262545786964778915624927106635339356128903462747053772404802698719825292024272258410156152491358381363003599059936222270640978723803757568598598000150383277627716345416198236279205011060193610428755566802835314673291377691572468634917272703047770283358628791891880643969764577211046497661697864437801592556690969893736488881961136557405733446051281656420465386979083254658681150200236761428118628913350500825241168102416581063479362331466823019342169048204681083932208304807986986413823432427360995721228331480718988745894638359587020657881870906300636830763309450372934311423173045465590436338311451442407570998924314892253390485062874462313499246604160027410034232193884141075871567265865486591434954374566516878427585918403238759823472057796931300047812960555529105287435128212793405083628548980345854554417457591572426665827088166928507984389573606619743855280569474315356366784795300833003417395795550924798937299576309861624068123335255192036304301367332793570731488288987606055550717175232632407908515666920383882689573032486004221459826009172705287230049237367634702241165991108204650760986813062668924282087368291323588730203946601655148082288221707309642869440457681247898673978964173863046796472497974097710069827977995622857047563036655637307590222628040048497843502823671274940302332179711835097735876400077059248211692581738766206371013127596389997007815259457233467177930814657509814686282567214760305220036080237836200313771585682625023530679684972872773966114523587340517943778926605738515126064520218242628781683773822518308672443048092361576304406294140173031624413954818954432842610381346530592087487747912640491621153851260085152689316613043483877945309214866372315343929247303082524655623345746973778320849323586513403462380828279531733845810719469219191223700246100982357544523165260229845061137909483280585022254351996533520048664578926190828358332473445162327682826814429200528036385094324710126530234894528694800176234940569361071522202438320739509934613921436069063670019125791395339894434955213705566122384780921580348469174185080228761621038665845858822316380503346842849476260019826629614690325658102086106023606599972457558157390266085820876980834581696565730148171719975760389051111030707688323878037075209003948613764770287099075463485442137818634868901204365935122112110923945016792235681575767138214381390518810654013233147949075683648591296868267756300543251866270140416541841914813064134745468867342859249773688518636917940091077662991433822341455313549864588639722121988398214091565546792282837708056595084045652408894276674941241479019093373564112482759744546624835863586062704922003370422526600564307487860776815830293957297692005167264286071021569649272039746359911473918509089200649032102771918911303343473778039756635017896659229329273662466758190118961025414740797528397909016472313846136916099979468656195121657781427023961683842403723077274734457374241327067677476288835382195187325376258478130381468186996419682280168701329566871742595712286101914420771447941403702855921508894378117247948955326388561037174143698555442443910706051525295554703564217868868460551246067438945206015417311304269243362857398903238345588074308283876616998959344486699051990921928259920098808961195345046365971902051072328282769798820391513994117947944779208812643045252715086201714570165983740242785088023263306461276090911325116599679214558006919823068895705387181904465284979461917274369813103706516914922186901002383723727881266171142770809650824240828148569203823949452441239157070610271921910229125768894439631696422341231920262881858767223089794250836602750393758956273745296362107106875393881851639273060644115810420080276962786405290620644004534959273025998931844536734083891129492190596973336528000811067100393483227078976986273140581019585207039093698017760474542575457699749607791999209002573355581386495135397977573998868620338174446341838082058827574916748822277080672842842846164016877801977270093903907621896823920431359287387045461525203142540497508883374014805405964122679596622732740447061203096378907066111774331073042516096402265258502562091814604010357394532041267326147796607982960287408447846274325943725583928597048748230586560861029188684826051877326833323973084025345933181734829987834947785708791365717362297918708919601702215286670437892197131233725095851074992095478960648353025330327247836602875275327389518541067780806565638379895792297410120571596045740235143485870384081312843050209617586770919898620538516760798036003061792094006927855338863741281073719396135583874819225902495558923215600811682878396698104209400114393386437930468660324457277147361878752678636408405951148662938918599790904694310666017492934304977387817672456727594634676318093487466558859350954108033582354933769492283443691016165755934473275261075572073203974861528600449202963011108589227053921021677331298676043246238656706835447498007448613467190810894069415786701211766665635373021826139939823948409228179654206516888121145225418928464517114374754477431417549575392444887149589684694227614134300384749366306051857447464852549256260223508622889206546616738780487670226110026175916517759307192064180497697232766874849027011217706161331574938557516026755197396128534482712144930980944241729768402471385621596257097113652190254685310192927626262963256182201010245176147565471298358593890078981558502632219457460461699603283480839079746546364224907972948057284172494941906508128402742268960852612913021509193026870096881013501687414293321974382683775760919527206288767543609954155498048569775075754101524902491748963753585367544556065426185351707359509374791310081695900945465278506067682185898940342535840541983552064110811612571347399121734898059970730913138635471586804587176253061607146913709268912613843181284955011169889996751857823688529143975498233798494527197778325839721081175161956015921028021805691729019278671562165055509375948531745622398750583679921971543327849650028495683257374152162546103775360653186014397885090072284776071821522699732313462456406087586736394877875275663996643489512365393246497014714363824141077419895033169760932552250520716493894745472028778976875755777814398817427365742624956995940367394153817929981236262115222492142422870358173878734880626082488843864755512888785785306327530357260875644138950243037216256308969699417877991066810397550643368747537161311951923197935592100092281174081271501465000327292733927010072297758974139248928744238276433788126740387773962164432564936838139177398433160019876675784958656394226307884658665604455786471757516645975205018222283756259631921807866094930131096771523198945270169152653763790256901263933734147183774420952547618358505414303315511739782103368431459542531236841669475886679653901306057660448587442686703910272285781639513479123417055574659313531299079534323370089683058121071617163581582545669761284678330602300974019057006077695689314449438194564159188894194061235474741150448264404428939146282664005611303407687966340151146745432194824408204533911361193434540827632426923990678356019425065605157259556732321364695968401727560276260047889722916705667959431002821371142220964528733502162278508505687462833015178115322608130655014525984316631263026447943704821801587003040119043475252376259074129446927525054648904807196363210244091253878458556762072229450039994077706528557469725034669729501407578544973240542414837353601740315580916400865573956022565143956566385554719619045995275138404386188681877525733408089673286069339999338370671254362555065770876929925031626961191407563997256673063512789207328662269245992757454793103896683110758583099781853206863184294694294809229807037811064470691550793713046864282551430352035911088067179671374512169626394384838217668264935731029314870390305981555172916794718458981130809016124568986310553811203080596560960843305551807892221644455317872934537159691390275440941471081278534319331115162221805352633982111420734748836480102607142888698254403445272165144774467037401659749559448515131112427309355685874597268178390481174374436335766191894272210837542140453896953560873122156117606655399304480541849894543736050921182176028231003143218568615944200334824972977277412155236193923256384170414014754302706286718544497434206351318100726184421745387610451433473453658690804427496631451225645099402929089691661795707466549992342565563057023026581965482781487955459751088023257256104036519917998602973227731552655863190927184151816797175815972152793668472339936532657964771825365061312606782995268540412380005720149293287285438475446957737970309800636726389425585020347101575064735679227275023809302992234621040102106733005671446760968529600580364376346974282421939369562972307347657514078227561788783332299481362273313286683578184952334676922302874225508002829635500345180409621671065910566962084457369037463605636348981061440336605280300117246929743373519361864391888635538113175826644274255457236692727863822560469374662848695364056187650118303850940126359335407725795641885946364168893693707269668198014918241603705990786130446895554660474039302958985794127940703083637624545992768122359203342807629655471797332206089838309443152468382802512449902347049743715919732056599533431382336932624068717359236024433607415400512837118758077554906829526050728519862085079930831030754872168072605974107236308629286435557402424656511486133477698002020143073369455488184271523159929250245739060048930607885442082051041387876127136960367715716080916043182700242526309750507427908095491492013430532805547579522706008302782750973156844061498382829151621068028065624098435899767010586976288175045043495209090243329027778815117649054704050763391571764087685624189825101543016916420735309445963455836298933639616196590660768110392921011367020822609927015971215864989518309460666914936425646942500485012740825183431810244150110965494321304727605348379102597178802855499767480765488750342320215643466480558735924584058197656072292805544172436024209236140315733922530376983455461397712470014569012215863631206301480181467193694231676414038625658122865683517389048322145248883927756618865186842815370137590338596902242785594873877596954844318592211873746533769669573253694113782565159652099244019849415725582567147369152505073908058555915475771687838756934607147825348369462757210193406253453983555836892876688076589479113542195997740434618766457790343438268254619447157237661962485948793024394159947450371018971709734209333433422827277675421692059976022830548793150450138492572582159582264957466779460339982498156237425604056216749895081857862221407887260873449355263068048505329701987959312388060507920992149184069538186476193412525189900837180385417127943417528929218896411477517202792496046029137396580945436300621281012176846640262360422819309784334985523147307792088491001820971317822255946930353443630700482990943773215067090543029300742347323538639625525348591318859975111343121398606999469560943737618401143837347008445320889382916170080719505237528798346616246471266701680362901938973142078443932981957280061210462862236196999896771440360362654670161574229909795243894036426951702715476832804733825611269206211479435399617379124708653158123316752412598632786923077390407675497296119976201598434932906933220229473360032509823671201507145379047066950038998249922379062923971174980925668073021882344885964002180491238864966564867127776667877130592224694225610048269777300987009114954648382666383637301991882972535884061168149689500110773297068998442741690359300916680275877369211544546069801494476778597882665357932097007155413055516881125319953396553733304707732279136735408684772172324357325845537267270402936881604309999916383150399990427485138366038809718464676878678165014826893846414837217596269391931685544136623457705417053483456668326259074877382492674316959304421002549910869093773296430802212102727579070796687755218741897036789641981449520706165548462933998265875377527672540023852594378036087359656421573482300786590266905987120939383669201392329146217103761584448424682685841596058415584312258485574472474458505571287309912443449129058275902506781712610259831090953834937939740457813542550831162171068045917541876547708839365401197361084232157910408642391699420073548902048383646067380359588294107882038463918669374526296728193788418058862010060345252043665520492277932837489960038979489737746942292861692205595900357120428822308793458210060929094206073583695286324002609512872162681345408099353046250900665547316300792676911270369987981733170779246728258503844868388769408687051668261913841502865806182892486963798615573879245893457993846492151129534676397303464232880700871414111893247222408904022734450861734206211642855664176773083321295710645409971170714451293184994103383404290063498507814529955012510836352352092722029895830579822264542847333905554686101041921360589077668024055856717543775556733708404602018460107165476277056050175385807856041941339738960086446001548427498458396024044397333879377349232709207734170795455130124107759841119992902520700535367781100871936990565245850268023476102483086322287206828293887669180283765582144587189254705829434316163502788317698280944460792417417675362835094971583007265294024218406530722231882679908985854120528072104611108032923679551756700976420772047681643323124989536410397605905901705046217214997794440397519636985028441094970323286719455036363844672672779784246722748679577232021568850901579170214832318692547118518068650685388192376202896065987155695499832428403362726526288723027655562187368672519222615862146790440077911631456511482450968987061322487729676373329332705158495014844258551163183121665032358420321403568017468992868175314968356361546104038948394373618688033412773194675742115221243251442445602722253713316379984748441139912947042422557254384118408692145421915004939462640303188996621198629064761527327292203201664661100406670298886211895078444661504752464586958922168988565124059873909723186731999596640942732185362026209565503387704186222482526650165403875038489691286784427801165701878695667439922703193570292382044992747232695102800772602133433901480963053825291023785122163176484827227786837649378837647890073486467129515454836733939594811484539901735861127870850263857172276192802703452578590057636894735841908433111774020228170641800545809327854168395056050530177123399132896715112535899972603088473712229283313121712050675638219682431751410492077062102035477937046448214827400836985262598147534917593857500224822827254639332766363015227047205871732775249952115273951748143860497296532681515772948894388058761713972319993097776668172867004904243150284059151074962994690046614782725762635435435524357397289585868931351721535829944391346434419304014222436091670784968470901748819437861825475964131621510726351474742476708610711906792601624859351274733540485136221576729083600907159688667354194804904546846495390848978269994454503493957549084854565257544965631530799729840182629571016013900280147515799624798629614890985446085241969817831436867704687812764092168912255941995966514305255528424043533084352885366301151686522497985873186430397967358882538233101388771672056707386106547182038323467517094313635792143294655174467542062507489160411589325096368489739719925000281874100961086781712269808532009446939814134115843363838239218974043761331019454643744234297658051008191747150812794832584670919691246649257865272092289937444121247122162331881266560249882499356414990778503932119188069904310531792899277271104052263807236857138102944617718931372934819299900010097088622306091289117422749734427170220630788787708485977312043876717653565001079818875353335832214249680088365895781456381991356874341859323730514430356843093648998291938947014963658179047699994681914252982133137004506015222608327233321913554658397967344626627248318452799019719442330014187538063349600054375297079361424480518699966358431838986400167867872412718998071592897021981708398315369330123187951519960472629487231050549824639655035244854057516352895644434406302539665992986015923910858047661096086391581716524141253890244689774694768823013301750775716130658102868035900718616133684800483062554526133375406136799709860183404891784870539169895666897529169606536655015717034326847301218338020063541021777780472614612673528682404638837704403479929948425636267105346401235500221828480905554460624974130551504404584637167255565192978326996832786614668051148381704218360603182865702136061853206715663147537419118761396573271227905873134533240193500886547144255864439332201887942735415634290654455095972285806511324973144624440504515203404727397952815900310711903455213762203236963762469850929780834850047240389232505873318243929446478954748477250857643160747883211293203019545869891554219156036790718765351048921355693026931336307712819496785250458058189810810400194760944783687457638998449172663773728047429010244709841625395478768382369937844458145146652229492094551352967295048147139001699079468069067374925994817472052026649294102694815936434343711300244974888961247619256237078464617862700283627849754205155170550822621549698672469083976979342339092921744482858211762228578534485567160902426927240668567958881313568286384456290837703606056845765424496270758815747051327674133961645145582242247196629159860450596940619470281658505550324527824584772853557452720401224547176028928883123211499626691283881184906885530989945538322958019268526914445244193273069156601194408120964176301032266886411276363207670642675550673114958217682276087174545458304454581274287452250867684417255217766001054179644906302098091926308776299953683563225980825665771516962713390447090659387010385633364463364831447680002939687130665671155086934143184913669679398129377220584510883098896193784335911052976206806092485880001337677501257867704486276404313522158911304790492203577410015046109755703298719981141281823612434576979537732333439861086115527969876755650490753759593549472579635895970823686916313133707126643393846191329433306206963905264593883010883201983268820272442558620044921162942331997909874088107649358757956275695056079945787747518436045636592386374686284171563652508830170382817783667089870802064251932441857061533695187226868799969411320390001450241150277933551986511166560097929224456580898780998656861958134479015624692140482824611733054921173045819077964129704487856876356648082811207612526841361797951090758526014995545756420923140633197443814888512406038885159081672474160445501308991586956429616426843452449660375459263597645155003820265161034420224057971275274136717539568687037366665252274567633278379864183944767374581975974355956067049210643366959142975296916604491509512270015098906880954069854231397157371002336297424274920748355019597908205367835513930032639631692766147626410880649570060968512354012757659677758940696999896872214663832019407482885208008082336819948039324598795463720162232404825808540572344560771134749467998816448960278701009734962895961481606900734607184911149565712649713229102391174461835434743571530308330830776918957885661383513265614732313172577473685284063530135951406879139205951804011560573292281782479041131197613528254504123473829570310896388318703041602791616424845868841511630486325239080496786671082217385464759271998298242804402990200827875190730881280347725867931131963037934922119003030101502595747094301668523530679549538340768604553598326703030220565187672657767254759557022069176684209488782891773177135343092559192120033138926520878303364141333928405249168851757982835039057084199896700486452494581257980893822804639378659654870671791073153019068611530290499376172077516519575651758487430275277290377194623481066650101198687889428277356273919211418535373383503820316268988669139505122390008990223633817530633781426448686994981867173507140969817236564977165756468940874815211184359093678909565298188624699300607188086239608481397799074680268778200781926963476989965175006530199543846887498652761090658260672202928881213813343765491998018521826932872091404462635915449589108922801613232193709764351733706915970029865262917233822803599244264408561910853545357819118362623397623964508827189248266211716303912653367743506674034264758506181939014835386775566109186311085741560056224882986990910934731105082261132528386568681601817029759555291664967746824377220150052222709312676873237073925643204138172882151462967789726039993006371722070989092424634887364007409880510333283498799148502536518016950011367403476379643333223095406191253706749735381498348524129751732412096170759436232351957734389266582112114827028220927270783147677494968440638938135872194038004274343637996473838980176844216584320175942449140255424124711856133494125372476760234994613871872102470498253013136063540477678974005131945979050899148669249942218559315909884401955936814993690535533871670892187813207093131916180186282439044943007260290820861442916296320158146404272026200890909879650982572868830286457296035187098202960129663668410802459259039289593030414657766543097718496454494895299289277240902254074438617429680992696699364951821907997291113139565641539462166939093107817612517374226058024164338895272593643971371857066768342831449560253699188566744766822406672490051938672089792241875890013398201425872156002868280782949569544040194653396462729512996985462903460128140199960078673247279501372906700519055846416588804002733655625362197434418231857477328814584961564935729545387728929255930369140519962591008127003868265096364415334997410536400647338142543398619898362099081748635385722477068039457848639487651407633472634127132272474070867881296222724770399193201396460409060758531499748650755782371091453830985767054955906524721422680731928666603646340194134908176380278474591998873062196608765293384227298522155455191884844607827002424620325430360926433915680939132263332864116342548340292501705491075627607095661790971019335843896327830425102666657152753091842858020822818517901925845847542586221828723779675210296408344694163635411859908940653033638037990346677590525324902742991960630317151099787173614769222414092182320965199445920688535463033098605362382130342957916411526933143516920572862702268819299960969743218980147411673458891042948022664917255981120756045438019596535911308557214776756221648770860011696234534639853559724340280196971507647633402582082240687183732481653544888495724713740840694400183805499704795682686465995297851966193991269217846909017082952058245070573099737433545400849158262888965072170593782883639452896125383413089962039020461682631564617009551171422732739338953666952527738784611558082928247557780756511799944482803581661010615880589317784460768325664009696178688166189511427902233993311448365367080627177717713819609752541450180438233728107392523302843298843791314554743052561384215240669464828026896571824426817738119747127468181374355006596491474136937712279146506049153731230728161746057799434012126748846464069871520193517631278155264700217715793938915566284511036771064134610550096918121507066821869256696653150967103329237252012223765921709992765853314019367940109668457159414266840114806172987632053922567853850035640438559486734627259577832494647643047864651018987919737392161048889764344561692803171532556570762434094806804971841427836956143772003577289445131079002926697297054381862103872966523679862692323527972297674185519400908320330068479410051186675979091229854399441211436831251505869154455229933811985993645103221386397711780323561048305669128919679170286479441377125507366277556951227530557676363971819354506928102754553806484491356880692296269301294192175170254366361110778376395971666477028486489331376203246700313901095768122399727385705349908115479633439439802420993390592351334622494991481856627436055807437157403300595025807879979808451716134020165884798646332262186828053641977558902584621224130466940570901394232147744903768857252791677895089193888196197948406449731685520906421609671175115859282703495513324326425096696181567764136408920622659812145713140495375360793946610520535862285339346985290583787837534157287227914497580473284049013712453987864293695053059659920957936393478450918715678217713412200949529048972522765369394019226309396829061620285579242184031882630599767245981619495919593391346412324055826773523574036088424932103370298508153212693465748270429737368550652278245616744084132685287108501300042731640507805231622556184808264097228566625593975448528693361889778851815865433004228126842409679557872766011570402073291848238164160773282883956860443861644010336858114851133337127807913678197003464664338836738728372809072006527853652351109836475105838909071127639686791512582041523134725910877185926635275426305204332392668781668018437581293491038854031374365066481049078115957294093969314959149119102650724200619789431027560863161415891348741473452012644721012692144453190005001011322030781427228935890950793807740213290463132158298804542590496710646017415858376763477410582791367777718806986674758140360777878601658681285753308569740481978139553813533413178583898644854849517284060301185837158384252826254011753018026653917128754253756238562254498431375937528786064842333698920864972397725381052533376634871435890404767660441499232599901590485182562356296587687662423253115971729601669869978643916514120498950080548536079842003185512941743071836643851366381183871811761982914752783247767412007470342998193478176624216100789401754711677135003821627226703464019485167058654576316306497186320579355286195494132233695612908094585994987170523154235184104074300226520889004128534164093898602298906413166449407611537913625472646501895796727045720772429419709730231825336640458148025893938294857340323391502501366270686357661543487554902764165076769661558009471894369138802580625851674477989847141090356257564433958976335876342017714074247360747973166859315905418358826435613088069713214981507357884997681883176799304251784696170898292916734875888767812128151368394553200909088570684984194821472535542176412431721012897815634878762089985283240657586242547760067786434733126084760668031780676483877350260849820216016008580013250037664177052432282178009428919251762924173883333482955364253496674025161385458364677915882373314968238104126616872710195741772445886644029551248312674890492244760647373979456232334948514972403529784175005662105771578900141618142611543754875501468336207503167052141864824576628009734144794952139412224972913514931844881437229819604945445916222127805644903075162945473910284542996012280103178760266708174504969857379823239314016502987272800706714913620693307030971797083940887939285799365244410346076900828788172713545434731135473305393736316679360767706323532837564215325321477318273782150331960616311483716875999724398483312288751454195273031731242043663105198618170655125687509710254944845915117229919372887148950523443228640636536461241072240806548292938861185073873022357794948166837326260964760056401921981332930690335845155430070959538425672820822709123948423324368380068537011725215445814856277507761461303418832905727177650925655747180334946685912057918866117216116074312955270614296732389777151416274162826501598274764600036979897071684690234997239363839544013343875569476398255962583672001597519867637647914709797708747136101651200367701249206774983416168190232868530946234202284677419290058788627748228153764998988456484048417013830620863477104229353310902156601372447947872570699719710301051821266282185880751055996973896365237081734240465513287170477016889310065414777691286441794642493698610270330146801654987868116118441732832154155260208339345956723769467927975636205333496780043970018135092687090074993034650313708145311386369359715482419515479368073604734712794986923975373718400972263216458918295542457757922399485639307236006151416865731553455287183134347940987328146502035746401787852357402884257698543801986978447876655005269815354400677066456587498019405875797974527400849171542207436230415072735482018366171661441189667835987633900665663542303838414503485546058626307766746733039674806522990770113551432253627367814064592801136195082140019581470643757420452576050169341901913399152660291498558561377811089806066168078991604770883514894286440885412799935794103727965206083580948497894423601165522567720844110323899917052655756940978794764448522969487756559411682438318113453716714206263395507501673763916633125107102297076869879884027613515933486326217041599684495365125378144393591607749923713506155974930845340550392294265385022424813386433222069758812872035542411510459598837625275640705173052586946185699274383737861297726389047367465214950729808400411626573556280185175065289862783008796253097583421160956342952894193523759730746339910654238917861158107359386498256092135319458887503843715774636705229038442999774835765865584471320535586597379123427229938725610520494169169404915445216277104868901957610996179683813134298681720696037262262338825449768937172162339915065295303028181708489121860250988591290166484483409972260554882372312052176285825144376384579447886699155868330047787287226791049338776375572585360379585951734932924407761210824183409184630775130314284664338435857365987636936471000847651732109838844602380314528486565993500984230213477418306791596148720812332116322186175487059047933283444701005354017589628543687155009717897154121207037626873877426546330878070831179925486616255620527458717226560440587942309006636501593306175322521201015790258995623352037270646813987280466733144515819584592278987170207568661124847071362324350671332367678339482136521682279879232364427386200727818657516903983626625113172791645281335433386321354647574180529393945456366187126202286974878441661216350867075103896227214651054529995053397655151490050694012200856473724939105486025632630011068831002801056750211398353190773095179542833072852188622653501995602819708015341207919787374381212099880551222776885759291409970098136472663920514001193372965819966424972951320796973111873293853133215630146742963251781021900087347577503555731713192785676435032432804336701700647212146753044904530569802576586535878653617233008948756494888241212764868458974222681952445863802687718113178273391958764886040427152459131725317875528308740200894866954001007004861304307668763329692801344946422947063967088475449808847246853634931884712465035371232311857684454709122932932922728362391711714242792825309906389883495294656530348179918421158650647439170192059758985056832584335717335029021845954563733210063882180864445323563410138130773146949253334649955303880031720726107822041093669666692768356895533026218493420370690899483216657550360338306815378395725386999705889989724636203439673109645285406768925546812683502262069252705124581141386540432100880993994333917219440209416303102331054251951717176443764667805626793265536452988065399939690482834216239766919102709192069043479003811129849517579254594597661577352083530216035532847203822170718447725874194838767536302621729780859888545080524713372726583938718176928158124638152374140198917349035673622995532046245426493002317323569084339939248368768883945047296018175198623189127017615096132839399353039070170754854873151978373516744471917206299295046501314507491939370757557872624426408242758976301250199762792550573778181846017735557351711571689519430614173241941124232135040897612176343576419940723556921169643939047401755929918412746212225250986002347370676043517172814558384790550290422450591840643628244859221742372375755540366034875526145162475782113072471082985394634124062349209953814209293821720475826150971756647137861564985751599423292366212185744082591716110928954178783773058730187381988981318493391088145080608528300728355661251380544915320335334171788166688672774021976153406793596661739826442522712690052760197048498974907126493975291727996949586335201182759016068237039411420829464874379172968848946140325336756767357068085860074100487947633955157129682281627277217161044599725562682187263113789556485967413964822751230982769044582021907037912175586858785700192716403681797520648550240051933221411092639787785565796796757710346802857754588406303023406175755199583598435962132458158062628858518597821369239568394080431028996452849615736891639110208419712411789022052091768783666949034119369591838398005496027947493649390241409454362571797943618492963504244599746004088642972582072907567231856720563157968494818015793682210768667441470734786980436430836949046094801526320644836528353291310531846828748289931703307926849972687320038078185181230585880258764823324429503019297710461092043513610304056950161085530960394341092730787844657609041819226677045317086838914472605475140103308380929883253995956690674108114103643812217061460136510566137274666781905636010442836280676278722725237025953244394621600102608664105987224170778195786424887578792669804531183660528058570587275807511867110732383294774832036497357712622207091117677758499632588999905609267148638212093222958718582768777326891887293047392859146562854965419378532335621616216722763602876208724287192878008698385586813899266741995459795396846632382446440323570658158230275333706539924573037400177139628204813824676511333277423681150821079659147876372157226502855867868035680684148863948616414556851710014170576644253315039445769778459560502929096411878155505309426477878019589694664802829466958081356699364014953273969543904422127204883869797690886059496573603216354595820366961183983844149596349182222729590246363696950251788423057836179659353788621634714577123623597317168385970947700914360386972706950801749666216683606592107602194605769022571495947403886690176136465229747051015016728988705734649700650829462637829231907127673895204948669667914508166794355402567512179626090754542271984233808770541188937269149410504349174005565966268076563365318886638511437338009207048543728967745764927353435928069243891041645890875605897375161271870432955125476697628915449401320656453955182767062288637327032706404721644664710005793436516911154092671852329081276796543923816217838653806854689859203903447280176430935936881795581955792630361975199264945880593301841039022639499361261253274478344709420412213198880435426052324650625642802921848111629640863671751072026174818273399592896091169292851862334568029449243202342014837768853324793550216819349961925336946438076896651468201031976118616399494792508492814182970271885202861670122726015807442139634614157671666483823911643353948222102594101889751757846068084393514270289077161519997328020177637627177038873633283978426891820593638997703633366361162027814728068534335441375123279422962267954200323229880769848057394656461363271941504520376689774968475769440560059680456784015656990161204569243289104851354402997416335627123171473361951936125961048604698820503140327972966543898991014449804228337531609063906015180991475684057947112897666832386072765913008778345106669447850265486812364053563253022520028146231665598044578088955012638252212972709795649235610494049492307521156242732867206444708369049839755609247614071337298473209020754041156629950934442145399303458283578894618493589541210935222184658792455345444823321638310644774367637956878104920370440944344656621990667875555470030623551471855194674329022024116992656301805767102941511151919499688107974625829078891166425153766585751507654217991510085670228039363494490559836405299890962183084525687389753431444117127316525217789368686781070335169427825582153709614034138649432250931396436677690653404507959250067514387112446240483096489726725691217705087083348977429376434264801581304772245198803098011902435345395568980534863191171722328592113159012223200371517571870116011630378166801894024948670761328581714253163205260468414912001663327687749852589003269428743683703533367645963097022386117161658852141753328730770535652836203551472521739734617230946255065095144971602183089898174118988462259603266482849058548260440459558367548382307596411149438121947233133810878412110062987186217581425633790353178370380527155371251735764635082526263761111476704472088808804454605157359761717743946661770057258978106834519708599542696310556162550778318041073771413281611749121442132480294183632382790006879430934925164419953933037073155470557171320931826603744839265415906077267820342255791413264585499449197695657556683663831322287261992536551153794253209800856759774670979170764291436231583886692020873066020990073293854644049047208372958632969583724462513532562685592918395196781732889897356001403983525136771764560610854507440180557121344756847804810224088506463767694738089913032229727391562160734363612170376191520753212946205105945952847707427019022808109423299587938482479753769491533570223139732436698097282036307053050361381452240502914689590008556058419851552621664874830130289459580602298512178382710116783618051125254360289081044346659533649081330838692631749634631240134419185811742375987743974601435854563665896892089507763496163082925930079539050593213138642863290874543664292803537253855589615305773814831685912173460591933241075002843347752180164843187523775411734105444523322200774473296397746390591255307257665612676713351192390828740127981335572992499844327129227521736852616785243413633124459582391930922240263734550586385308947299391156404025323843542369259053228971377455255697753940308389426030277107356501969829807557952460438315036636271918553915130454518656694519038213685080006768487106445001080534417783577792328590982469517587287294969215179541475906025333597489099916614410560593484213565341379296864273476002242488391765299913199112574430519372944947443762560828843038179847734221567912997114507952582683523851772130135500236106426588466551297615939812336141322290805599550821637443968166493878649950671885301403630307593050123370213101243690806390743212174686858735476972918784045901310993728711456544710832116846423396165922330852359172314433746111459994467657291922403825187928501474475109533510361988119010694851423865986380483647171074891831935449453388353038549676663262529121822413927053075470709062861681243759771341912888163923362357996282306452401004074936198888085641971180212527729212933425619797568327238568773089140162158160811283737726709802286415188830705104259745664140008250310634662386758181041710358367353565473537153938351618359540212896690123880028946973771900171709682580669095947858626583278435300607933936989801947323973829667348725662727882871500122573157414109119198194898761754017986353210686856383402737555643562652420470849636155701197687009888179260059788773921232930350874989160352451254770502080368856514415578206823822484021253156235804279046481118076353598211124715622878975157843754003085686226433032474965487381974449864511885745440484607395445126192430424498257635635442438913628833668179314286492259073179583138319329100009392918500012789777826795771545709522074855903242279045116398678601574420732741341534042161988624035805170014100954279825688909556174898566195535044437274312733528910599584453052748675073421258905385201611184248313921844695062524755756576466258886282307303004508697659764763968715063257957778924416031334363242844692454492308986831035725153195409173449356056794589609812969152471265960578713273186062566886476810901398782007346095002642197473034994076194703918669968031003007579953814407691555541919302073594452729415261191785513482056109545040454347117671305826462625744018290868508620557423874961998165317188713127635658800519600013886255805842557441588267450305047870006447317052516629235601257786359675519770783020136425585297480229278436965285099312650365801887397553482584271870335164203785809148583442166730290076055123869331245018242584195900103506364187853483977117807410862590228198044087549571375436014559785913958079231225890068621345394819376275620447934651931820334587744316454202413054569070717750296778486942844056963596523374925269371065222744764760273513274013379653508949644281256512717358705414132373497617656428505359910811988185688683681255260958048705084821810646525929626503411248125984752592622206465777504709437711296391580169966396329389390298991079410333796027455602528799433165526171689593089658390734610362630490830092340919196828761334939583411806531688418839776136734401157632471012999480348850666023812626286698727655405227231026161266528020743335689593251951005535990738499869106549191165879332868055126525348609264517339249666327127102356270485635428999036639883796346188926553367086946069737859510033881384158955695485869653354146396577151506460256460372124698940907299387802002786883307013265443096852492399291312210585124441386827347990957647691359599260866352319781522198929178234094725812780166197424823898229518992844995032622745378105076832593747950935128062593239078129295118236378208519647936419095181971518744348902581846115346023363489798290312639970832646635443739724649583063739122250690899384833288036615920572227675197703015404773106964123341182756715339687982673964514643440272666101287924226336506737115117511138128849543567772267298734962590939084808426007705823714730845134626709047520490100486473233610306000561042627636079369760101452179731745466307189817498613672796775111623797127519377332129205369980544460275228276295601705724161119810557181294679523241788614555837871535535412634775942235615062571439464643185305496231175420503055534678383936041847511420384252784902508825818668352680883944922895992805791412652507208529891616421734108945071741854671920113791211735658104888114772486126480080551428861432667186024822994941095369300980827107347676560465343140790313000877770720756964018613621501502044345403688928975448335052203369157445376675708141789659695348165369041835789723306842623726193921952794526008550981212240707137989347708544623269927884588202385408128684320485737110676727421766941190196733878286493347634682872208960708294023512434570266138260216894419092578340232266437627949863238896592309309861713124992282972391445656901697627050408245790570527629855604548275969444918955195685756336728373692072097669623583077529655761611220471277243513444438842454705727801305208392313917943457454637439888018812027318443031251626484601659357568754651480917434532410133153611872216632528648834478733867346310918047163506109269376232213277578222825085084131457332743299049574589993145172389780817459182623352787095315847903829348090928066445929765513001789597567450275137765715426943707694264892975482107770362175390880730636349094453871095390792540584087900127268595586248594502666097746065701859997816615965535392942194247501844372235436433590690758406634108026668472216399234574015252448981200817289272042022111377317211984440607352885713554935131381961217568392197411902529735253048631816041506747910136091067195778181538155484337788472848000090383334535806202419896841311668650764523632368904970630487320626553788627479835097164957629577032692444368068916620892767418020533952075300255588047977925782204705991789222844401831463029333958823726059206847717245022844074156214585461490087436034525649000149416544119863176317798848915902560795659360961913086704899530047940030430349986869947424653271448318554656954303115848314803243518854645986035894597139901548763787189706098290454788847786857926689067992936291306333212787715375377467643762674027960695136121403953862732997156289681285624902594745553137672173364415785202809517086246966738258600847811479704934205851336324998835629025729607296129351506303455164093420222105465178384354936571133481716433397735582615587383820452854174473717934437137852230439588838058982143043634678599005404712928595353607511328843259264309007408638193525902338639454567192186712835701040139919175745376253282462494211068316797828252373824919420982507477249363530904029998531898684120882422127009264362378954926900607717431320365681621604948048312261728837592372576566678783746674391076859237370453174876818080728714086319411982251370263999114142211326479180094589957766790960133167983583825023654380685320342892025001479522871778829621665775102723234535929583733423018467333384492569324655864894519092303863347187677061537685390872350929518736150126247835511460289284234879702364100776052822542865464305455178371419558769159430915785209534644984727551353261303454085747212192979334219081118896396237532298179320545316475168725155932622765010704581225218669124572551126456059228834064906654286195884134206128641187148159769449584548447545062941980575133626976327520361485960029677629832187842110337896307515568459783122826711381966481817196793511094309005235520324370189978650025710284888836793691492270866464858232886332163676699841353161892931707016102246176624307645084670306765361360671455622986800677645827695942483703009095466218382143719966078646917680745375919983018735703794046500360551837920630805935414462153317122124610490923551453329393673269037304060027339937994402567754492094571340590592468157376445794372359821321810861544091018864996481095069028969449664367504115348558580790674156581312913187179326786485995772849115569186166558030492802309776531253681864223377545795979565522426684266164590127244412944352184790896773518086372417389719679749068986509742543441577527159910001903019467410112608374417626789164222978899952312083372166022728043511963014567119799638789925883737318239207254923081270685771576205371272775848143645504230054634605216544672674082969415913669271063583637078068529913285239574441178164597875253964635275706883464376175008968620966406218715357863317280387633009844869843318997777879853887654452762715410125049386991778963385869421538926536184539085769343764199551368779454031022119728067733141287917085857491151895932023296081080542605487004534987232580687171513717678121634368019409097249799548451510075886323586713198059068036765446171096576559134079484980610331002457602682020451220295971241402000233677620563210274992634717972452336017186189635180395970533401502811213677062769901893968062192083390647667646717071400744024019249955815622274952647924635668550324961042368089806485703143713298742481488438610781794712636707747102500107135943212935906919247047734053797837577124410033740881968981308876140429656298622556678751393718141535532122508980827513753749011391467987616237980304919803094164315516831364275602637056092702360791046234524266432710557270138399940958860364171641891989898636095321088722296023785357170902687054271301758596671478893512084501787054074595218438212569819539519427809065012961931832848910566321521471916463454644388264041734407029163467453800795062745425487053133215169266827996664069203811896893737031111394472260215370881805623929275503254293999046744473727785760792304159526093109969148889600523137005733203815244468750362689050291553524308705672887716462205453022467407093376078744104753335932081335830577182047935516802302617844974763263597951086912220429085421111300780335531656069675536014583055713895678785926402726994514731434336068841687158637889624348815840475696542848962516760488726336652711637965728211407530864244400615938638727151044301692426692644175160788521049598712826670578669680672611635445589106002608176339217197516275342868928584073035117168099776867993707921501983884438681727959586457158198110545936257603741274381780022018937219907656844359820698864211230312092117713711089646462531961179600061947193561717996261202077972516264193033385643524989621971780518715213923033163567681262093837206077668099537469305877214514452740483022618837796485163037277679629250875424543942471374087667751725127028420642949011596893782640878330162119103038481437661066575717588647417422148291001997999483955027895671874970542824530546192883672141724860434150457159866733594020749566284377207822259540757094121602424564123684724861544808758406745336894591351555421100277098205932907192917859835151002440354239793994058148888755132323741538975394283849892659858720280342225366954267064721207470168153492637252931928022664148912760258834301002277229301060199032415680235803069892832231481056519306362130291875256703161473123829073761697645758108802814961355553119266374283005503096360012109862535458775765827031586110673037711847173174629064868047387533927656325217865746322255640259648618270589713686427482160762892926258711395900895190519032788600369491157580595915183332654880719306576305637302311001952349241359110476362381701133211641863675952698331694111676279073294926834189143714864757446798506342053475597261969439223147844866637880898917734662883171187140696016960346603094377964775640644286235916576303361667371001167048193883442275829491526405938707081532396972129264074967406117187506461322067652404119993232447821343687423497490898300076811721505820005385021038375610078279190755327590389560528258707996550375730229592333991655152546600630548835113268931015538862863843269267517184525072782409802132865380083352262394970696027549134713475535693356430996184029893917655068792777837001053492826357774330563380902214191090544340698196852509934858665781182831707645721639134517660808414980038797017764152293255995694386859395081255044347669913272122296220250149737830190332556205219387808894370968848013694378591829587085219194505511283314757797689699652628140232531563525807373661875961280643819584300421312098751847931159444058718034932173166493850008255815540843263726509258045671940839794161529438551030498869799834323578953560398248255083284662708890851917301018416287035296594874748872280109237792245674357229387648014150876970394268394487780767445629123184803540274805984760862132993631227618436020482482830387724244506618365488302907101706779277348072425424656147933270470394683625463984433542977497032449068306359501804172767756261722951621118409964804618688141736757460636314829769378177117760598783662329430888779687697493392041861797333845342236592594421551815223322431914088548839921971984733968705047035088211202591720348775488442595911966615063276648584292601714414694849390494524533868767014018708576068446579195945887968766879762759227791883505994319077455155200994684091648390661114157312565055723539509150966115954081222298919082900089470312432020214004052215197249085609700646806366753525568319979784381288490488804799904165497605947152802330479261526152321056645275310794345008988651066443412827796917123663780387213888911796506101247357624439315115577175682371360052829838310182380194630924701590290005393574277351319498234408156068770656593867516319874867637784713368092504109574911054120683436564160391182068086725829395899401893335687142739787853439109920553289640677089270373454418895286846401440912807842456596085394296698920599325355944567460560213533898602335214061552933035594281785743477544269848161160914206968803875365132410264093136294322921190469358029390053585128720797674961452022697617834421619699247799838259322032983188813106422327546520861340325567378626077675648340370842483428445342547256898256859360620539522112890394379474033560515329064647025093620484941877279682309849914609671631256888076910785078263460479391187803386559408484741773644899217421393213805391082153968165903090662111053462129494306152393763273486198678577803753495401789692193092772231903554814580886309141482606736246180021129674201573479691352524958147672379104831432925132733748707485427698305957582598634998326178764868043501497093456399425121503973795198239145471797973528206037349897627097411933292523308455935526626692278734939303977923059599270016348255518478117623969493403265268765388602050555712069364546609420529750902553957559487663507671381001395994682870960709361246129596392788338406241312432570168779058445040168104174882113088732498459669754086177544647608760379215272512939299319966058869285623208961055925342667629863257845029242119325080065723314866768606814015374194968829162613863792289040814759483494737878185574452562846861459817828466723354782139950112392972866097668866666240902156036891958561314845274368267688309546995064711008210265706597990451365764993323508119378298654524853545766959753139516112226883348214628127757123996247993764868566760063050281814275357842895874321206327097245647460942490759361540190290459760244805623073753303372616886795611804761549107299377652257829596273386822998856182768586325924278585179454278047019394602399469606248613716504589778378338204769048681048159394906026676198121488864156646529303342037876489282427850185929344889062556550796106850466126419027355115833945021418586609339767194660000083232355161936900127244267679408870750348837998238195394347906067604310766792514355348622002354747538483598037281117414554152243218416881818984363526335218039420135159829250091784381491814511059361358142491234169846275793570959591165958023307103414633678007014253681609553625301395292406244249281175982661522942884920893747321583308719437995208030377434408951510875837958090516669651276176315792077751420203050661783928675965542041209176019086916121986749007363373742861944124161480534655624977122646255982848581040774243025971939768532714936334408539864442122325918268950837370318058870052535178704121528108541708214414355049462638797011399224385903536323874044845954117069474567720316994004317974500399511041646371898328569536908768672912952387449309845842609988855193649376682131836444196405687846746802148328043226404232507097361300777887382637179084465546930561303006970318956904186451420073168956576709679242130882262939040379130826023150519727234498841688314469398900727319532924513611476965469064396871598398099055633461849451327765902218567416265045896351614651992140064517673674656180501459157733120263389051864098267570959353415402253952821395593595646746133869449256991995403032432960532854790808823463468217179143173792193269721895830392124639615793550345148930426375780333513968415301504651634425810987379835580074193530399913621113652523869824464971253811843227816978886037703570951890388143253865517126842023846091351674402816826482664088914938648704423395863351090708035046869397479651513705600371683333643778037514970990997191801502244337993099625448301513878051918201268161504892495908034365209149317064255612966932251468009958527149828883729487487766449178290141247264727044593995523435131059568556575178023147299822097784535068829789357412129247240613809794615712104671292957675341827984099632933937559115845583782989949460860375617166734829602173723982519348432881836539600390596134497440553432622938162291344481352724029563577049848431023840076289576403300564697983531535889575648140127347933778367983649616886711890717380341051890613705556320840929868516907185009043872533877873644964458740551528814222106776959932511574300977150510293924451113313706953992089309396842956426450073632378479398742355377918653450596784425595301959930954040887538460513681281029346436927073822222403324791587407133486261362228309899481380509432688213402549280209066012180640923316710366089829533485377882929132456679281404165936638690486878108756319287507749223282294915640149199313526691277678110881207282218618256295097871207414341831182898030665306379192062238990246281128226202608726913572979357973837763398037846269449447734797181294737464247902783818570313437072429242638770808369904686379267783110961894820793387141306773436939337782123133963813104815948828476850649645591206795678149051477260512271531081801525215937115063300328404590214306094760266123012762373782900984653649525927831041510725953029128300687816086170692896453392013162107738724209640754041484591517620041144527535650722472395206928549950282344517404742663624368282404085293292093367740198460847265671300340376412096413618465211162241780392235295055941885662890637796262626147357045191538177639969121227282719401049797484325903087544253219207324042276931521206443040151799029744652780463511367840651127642627048516502494666789386216696564917370842915795413796199984193559673849902965446246993101160618252744275911278485181996562953262825741485963507616030148099010777214642280310835374288792474431796600834659030836759625573220554170678548869915239687002464850886546131455415609662006649394807944855995648694319016796828611130722852919370360570079516606766539344771677566537929353912958959630104490039729521310285941188936757726679907994786815114665291182030867234257432537553475173497272173836035722131229735067863349586875609345637150260616893436439008857056998355308621499550042670799179994449219345690251777749813617913180631880445449175091941983452496326374303994385397953470380925149849220101606184042808504374028358159808810799436122513334549845253596197455030778770471105645010899443061269615686376015623474344494587845432885595791545983714630349978072382330631651058136000169457674623884492137473432714126666730722812628102366289001998079174445284469585339682275899032060652379564019348987714161520819509132480861432731184909573224158727888351983475034042763678271847494904936388048045184888777977757054052726371439285556815768812963993967046224754950830589424442408420489720248744534602271919984585280758102485826342630748644926120761754521072971716728882890399794730514602900826985450272861003374135516532989831717279452452399326893828609461343025551381187596902429358113602981381226985289677047740921992608883113670128642609003738859661792464396459702299327026150273021652950225377284999064110795797173811964309998355901518034706915478992525086778399864193608607624758300210410520266648529366557456289224793348362227128121325173781879284910798425816216882048203965414606590236163976909894645344986350544548221031469864781930284500492115057792549580427272983470520070746362714127670844632277311183636792004976638859126779729203030522772587179930093745011055569942955499152878330195449369269132543283280804375079315054547337858633314960746220806417199639832747509889449782069186433736575535261550902112166069015390932602404532372025913317765757890172643262732626567142934986779911374793639128008726505724486856982949862243764060945032098021223794670617542303617736671792486644024126609123134773310140797177894035312365377038047260017262873871243876075288318578521577608154796235712339711356183261625520883651614336012566818872258751723436405515887364758617648809848084032714378984138520865025098671299009149482885789485488099752355777345964056317032965207042494135083246205878685274336738747900409354116673739794969285691493472632641679682564083523659576168532932557300168207763013974946034735799126654849604890857337137582723137128817128322258401120087433750959682655109491965533254548913852982967825285797369857894282236247593815542824356337408808922617932638131042488194174268836379794374643292185564274937789083872679636691861389143054008338527490888022859206160227168882386497578636656872644271008174537845386528860731584324724084322755131902505437786458107171303262527468549354147074035548350218876662880186058871601907449686046197251801226867142726500882536832226727393725500343305793638545613200516933458996909395222644869702723000163135345583984020808448802814805560104430945572490649299482499678360071440479539494843736102602951888096923655272641120214883164461941241059372730074540004844804205325531101468249795743208455899580593999091276643044235964289332125956440928101857278881393886620468967282667571448078901158005899493896093348657158195719748531320781300774251879311381325102102215770321322683581677625880877608922014503357864272160161498418975196888285119406002212187980977924791961501357421144484442527161274453686136140090064465112158042947904904416756591274826842543795707074662799478961089463950303401696757727517080407727637561419789047697797289425896578667954689714690072650078499811999234884703141618940076544496386985304110679515705712127251195036094715067474037401078861787580237502338753915918061596193279012584125782052647969334333993269648015130986837621935960277280531701425757728864419158234798051483994956781562543326932758383194294796586500595522785268355439505256949506348023201648263379896888733466704117881505788551522818765660025169212350459822199501780452244307395443913587704934862557572075300843034947003213391767963123231916664057162838903021033938584156942439921693275283011785133603083605245979808398821849527542900022383255763973910091414852408664631216986935595545352223249229410192971466939669572044101922598566902574326853190054182168234970533333989554967107974331708869509815787320221311847680354293955031769956986305252425577918925056289718441133737101496731557801994704863379049634930440978687048751777738932748348696863217524864444291644821234245850104017751327743133129164766075473913662604399876825111197158314304520407688681250187398949083009262873967109581841754258919322565478342681405494948129611013669478125725361596934168782720495628328510191252881744763727906014550975456641021426977372858599905628298498127240660083167390484022376428485733175567708248992445043584148374380720142049006901891423579486625258455862969381153867105999772983984087986659192689728875972405730296224170810871634021529794319442209033043172199107132900677361473352866612795893656812428545610803340951437696377013770962773407201441978585384738454441717203438360909641699267778438335535597976925216765292338622439732387223037391288103869631580991989706949996442096834059264920901177037309736212779055656063801231652955443144346822413785847025552666410669733045499887993373185672923906174408040949576243768506573582166722806979385917381040672024493568945585114670892313040249389927783607063014204866351808973607228798105876852475995876310243803964725676951275726419589346278618166659933322669784677267427395264819717894849133233287681207957316971526785137557083561965390416486528690238365248867875969615476217326410071278496994013742938395107031015909570040493189944672556584717293430606447839304467216874474516584454964672673952988849130770260464083104770509163983636442223136289228874198762076426870823922864349318989373230518217568649862071616257767879367948066104821597759803245146586864010108100406633437759374330288361166520698923428802993497849277550536751923170549605742582124987843504992407051782359172944405196035495806717856592117634054775003010159226572172553009339112789648041944403384730770534718252637890416913785755100654541980484772399393327719666350382088724500702838622295270669069460564643446966478934779739929875110217916013922974437941694388987644438609833157321711958335770840843638905144672148237338302097694690225349381931075115007544531393368590935616578155068727663602043197305994557144082195011552469107132518430265803149516695231362885841211179119398038329695994312679243412618938131230640033809080994463342681258797633860362809061847545599409788260278700320961234053163578717140294532887240599003874665293422503750025083260617776798117832519016693196984410103433694352506216365206846824086534290776963537472601268541373697978590078542633455867090384512562772687292202614484940599374119421848811117364289682447428893526929421493246932754884680990700682946535670911576204945926178004957935400523265870969742516443820509485324939833865989319304723958786518157638324856407360791621606151895651581466477691464346311890800321028198700706255593369171574768142425110306590005794658230342564515046955746384742054672096159886335656511078504763594126740552825812169838099797317110705240931835184495700038117714236238404808467534465183601298095954948585939829729091977932786074615623489880621978255043982948347201807717938139234563874882120156112741007012265032276317776659143446571091756321288332221571116936311584440744216012854634905741015510883852220453100106427466713117896312143391266139900910793689613871361959035603943204566549104099457533135064961447841315556738693309321164079405003265061765753078552153156602184503200454244240008653109889253096538943279559743325756068401307200639617857487939236202266929418224139693479246348426478504789694407756015176552477290792124011020793301988740316064109768580791696585269672350154017379296232084781501831481044834565415710091701257996725053815272922025054619375990484780926568790328030346227026980885317137428389766387075616490329085745287050225719905465720209280391751935290653225743082519454040585999183633233489632423136879889471182704839473160318427572972729993452138077598588870198506558293396911230313620002862825781368815745920256626038300697775094722579080811101427791780302573163966139786377755966135674292351273974100163949661880383399311984584472017644146256303124474435232865101525327642893876441857555891307751523644835940079321226769826943530782530969873066385871536445472854911635035762406430344582357907424519946285842054218051258680296774953809714574195685908455368350551739522903604572156252340972500125222377773838408678154146744158924242500561025370343254083466246311428721131815790394562897860364835733800124135434231536060808830884418942507892284225845790722389397573364031726623010896756138863619331243457394235640830439638475794419973792889455160390872929124587117984383790943426895207793958701564639379723095633875757525350591419441487781574751848560451568424799945409642695585674937001554239747618878205843344331280650396707302751294613689905453947580331157486260736845557328986639473870285590975004827419441381746562902043746405427946931362905772997023843159588130939524018219456026589125824119617880952595361494796379969660464232350712154470172625200748215991551328787046225943806874006908721587072419471362718102229196727380905822952927462790028797051788342707663516314010059154748876699702095250934194148241629542729211726910585251695904023939523567426852021079836913156753943755851890853550989658216303377151568655206565316811229851795908144919034854417617089426887376669086800319348434343123857860931543549112062684399719248718983055083285079200834936098512002339846186523340771601887540661295413890842826106437957806749974495289834855590021056449519810996939196444013255129569660688971296268166921869655661479244092544902091376946147371294103876535863731206991161025017320957197371565617372321508110398835498569051378511999786799608615034807462173617301408887268076331043504506068665937246300871167060255140407752744469766104167087215297720680937741001753245690636240172688564181898442862554086022152305526642684212153078715064423762151108017913280176621767754433173396719033247122030370641220333459380231086582747604133276815063001701418082847832026505269841413824635775520384911824630088678188750926065927992604648948268631591891783460813543923601185411003415026586203028245337649801017470862946150794113544716069459363065558249973992922527333712532954371580593863751564973037200251753880155232162233574244586569848594974327232646911395785758692357317946190472202586335111832282656537650115706038589759015284890629247608345179070668651145509653141654517768160989631268439520532351766517765987306392087192759995818111094599262686482836901799923474204888671222150241381805153265851867195980652981084185688238164432699152481800791982219597972876452008958148193718987479591538796943795620735378999249594375355421086848908940896212420503144158298245653382479988652205357524637239534507075929916262746204554880998810054758582994606169874757347878392804378314886031716417289511720793389048393198153164210221801712352325683603314214922658621000600962576917951853714775170141837166056051186151195794576213889214955021748532469198857798873027409727928507290726660229707201159851684032940842788601940358378558817945807602161490345209439737500934745609130544245569780503618169542312231496060290412484991300944962524457967168097989178210530893344998957926741993467552474063186256533299127757628069132421662322354766181490290190247191547273307129778526665442544176841856922725350055179228625291711867764297800195645862117468523572595917502971317674997713970046655012447099694466899200722798743988791563452773441871522064817310000931261698190259353870653883702985477575663291705757599262995442767924912804463146920478516079013623443293095541552524607691851459263361860531475167118317827130990728984760704382387736618775778395191210880777814919582996131054091971279314373191307700710288259678501727619827857266492881299358848526941568396494562997637158690830112143863925534043974728314328533746751367732573612988823668259910348798313970606127762190053124148270253517507088632179959783630911521450769458308197343912934358529138698290753594709549807963320735587130534893574097262831575026473630274774569035728742742652146981752445406741267987753311648432930454691179643643339641996196671398945257874436589619035286131108166840566693359581432509950910690102172220648914947788884935654441497278097082083315059209868911893091385585159788990685892432081121353724645211151276825079827366544709000375177056928916393573145319973062499575976629446623676766583219483514213047443626734444493499640629007459991696274711659046789129492746469140660747947587119973723454859133924582541817396091712278770157550412200342855579056668213961245541706966010433070062275452122918064609502925320920611439578111120744471909855007117629246156300432653997650054954714575121428030000538882953745342110601989410222381153170082667547669982014311758484208292399969863596057309138123544668230457207614441892332582532455119119413860761974664459930931714372354513161068320330859996379181078097957818933761984252160531847985397065237450331808664131950356573383834005018143325491645806459774324582231916651211587751093249725539284807624512395752844569759235824361737722059837088377337722506648593188738555873624796158369741046215304818496947445438278731799104925413064890668510034032244961837930716087108192133067716269236096382624128009696943635414350203980677748566767409468904306290388973221192675332440420801423619110855585602431225170733640683985117879212429467796948332089180462636829704460068725254591074833455093126734230758741848243897041946307944471164879884033911209851012967714930977014922231482744760288809612998478910780111822081728413710992729261155710226549546450883484848457336697508406833418287732934339014141100288903246365149991097459399369361854166081177172354449483155754762035656018448438705174731351396748989952670533064691254164291729179987523038767981200393460882047011580027832775176160215336862382673501869854325960528310826552419503491540323868308289569195948852597623445958607377217407622830992092291330508738471041789952378072214389249366774472042164386213323382514374320461009636926744678521757244204962827691752349475566737269403335338378451762003987018284741521066275632793277569705109293821438878751931289984251764704672503109643710120198263867446643861541322584258625818711144279169006607461441551218268981405769567069163734418328273015634379539211354544823219645802634488635369141044271555096300006353439336629290878654241722760027837400662406200763192102894913428620537657985146502235192212742309754470380875276444990058092635905578987790465480618221431927395654834001424026630546593785435470717296720892178080993510626528782102708385563490404077149798808692353569460736615461228554757319604095097636216498798615947010749021240948511970306921979886676017811786280815583271608613147217850336064385608040939816325247485326504590441785371310024967208364199264500529747267591367069812735381455038061866276674647510932340591324182038799122809674773050673977779331433191008857304013504640924761388359460688735418454464614646732066814808488481861507972990732121865194923844782453268128018992514089440781658241693566658375269626096069526410535898296123990781809480888058015012266956124407033041852971126134955073451542845523264525665060497408766871800424601377686360322455918604791697017998582241473637582784292718988244140001639402955151811081732071333662376027425514790500255625567369097790809079782159737123977941868543270899716608934887188302037034792848261353641782557404232415080772760287924333235892138128353550186098717908296792370796699631094935683522101670089381206904779670869646362952763213973850726090348695096738615432266170132306383140452683942741371479556858803666299872624250320941551098328923424103046649703144594681244192804411697559476397584927852132394218905944680244680559905110602780977426398641192011488365773544256647166706468191291446995468679650543976062580572608476529885208246366045268948089706166873217865639356427631365079440909156653843445073073551497796000500636504339196080033026107705618270115619516958759696879958791193896633639058238999765725511650281771775827724452060654243610996016084913418395817139422921660650008087579115153864370005750175340835562236723667663860336761186472721291537973628927415636845308436619508564480619601875055985138127657575951120703986381941491110972018186840128338962730296192086318365059580888978021202660121137911856640487099224712094750997297263614821457444776288042964304484652628834542871441291813256111086517813439249452729521079249482282957818767987039422659792454226393833155061223240229735756634980621032947368389969105955015044540633744110976476578643911934635818027595243524173668841104945997765191841502490405815741647642625164065230589717864274869726118669562476266026605042729255543091630478989741105502536045703698713958215098705246361552292218967178900135656878576064394764425867605460429350398996193581581256917340567147654257913070559758858576440779296797441621757464865910917451099849904650362063398536458057983729337601574105192447435904455643968864011207629640109377151596650884954228395647721532047352682325793217390892378178090119216852832640349548016650924196159230888927046955634375457700839579135108571914098249995439695415855439389461878736399109280734782433107394440142358796881252004760769776070004535416373689433887756892671082430691094376486549164290836263871382663234248634482587755359116276154652220449963752857757774541679169924019112596847850596004587115621903653161114255913609969715872975903207503203412296874071373123571147691399063193656467388282787821562267670071825358062872875422096027323787640923971411497427090875843026535936693926953238771870045880023021771704030474797236214471775641836366954493815075699144466368417782126473252349913124772764999480332554856151580271493560128155706069793679687604372796953629230795427631357194673920521530581882872482501782663248641615055855155170651563045403648595570139788097665137004060780875062462341407301761725506340657894852752543556997167013659317385447929906889283468896102793408283215730705867573888357129229001491387383759596764687392457960452421154805700537156014126948512335038714579904993859208469071308799308412798608654256026370696947041312200446649299660509589244227238911294846786398088261029885352130625155494032431673347043528708435422047328823462497633151920353905195535277024218498238552812184406931707721975107614735189861733176162018273752524920366843753507693492943524192272228698254594626907106549475039570399142581030094562037074290099011392814852767512532891185812776232794776162672308904421632752629946769179519346077179041277465666919995162652763679202901854408065024964947171980584709272383057354352463839315090338634962597592467077528018774504167542028123328425733026066485454832174704702176682202130890914443139885594102475221664743541906457407526391397859522793077153914492483129678273245246961591858187492735539951031031700972820029868016281328318421729796579665731433680821703472474465256691316112949853068245586725417763985728479251862488399012151115328534096778126831815920265468273442694281247264707080815657683141349191422529055339317073041209712694567898483677506616099964764427709688158593569615169163405962537915479169586990063903620350015547218515092603218317405691854960852419877142698595102526858736138814681946759554577533540818536104169079767328170164792019375006479619138772366331293327424850546139185153402402219440721394106779890315613462200589701089369237189986844872552394230101090917412173749315234626192347615692798942155277544645684510661669241403721078117214716749979269287327353598158833380577577699716243998554254925930710825244880457134802108329690657808508408743792536267812545541647016161979843539404867667850737091861916055257181555969366643369462463155923773588420344482944350665125177985535695196025920813504498650923628717744866218397422514845774039290165369488593435593432737083605343346152721135449177626153624348968089284076029550607430637893391147637057690841467569235018202508824209437977449929236757820956207685160941439366385820099078105691674186188304938830282990225931697074826470846048877444373599875911065760391709586616381464630720318155236512816307243670487175982994364448506327874990982294456624379169180545420749271629376998914053700988644932793622543602447914666271200604680625690344041061353586232875403945869098145622530657026294228526893474588704394756374527379339434543808036918773713494552162352818796152239675707329733519987291362237759628894379748007127646962438572029550219118015054130499021994334414245547215158087133684859858640477813271859049117251182986997185883268193458515188582705448640839220069599975046634769661629558278233970510662874557027796179925887405614034519241972301303699538951974720385529284294497496341364469270131004500184618507738002427046295151358843035584652835173448815043843919817733814136657329898297352390660908523261414641741172770867143340666409560905639427277453645689009505716887401156803147924680863691071755223925328142874303688647768890502653486306910811459298644076909752707016395272294601203795204702996457583934458999434933399071100051398074019082248133484133107049049270167896980767593475397781073698375202024917652570509554916981821036782669751504830113241174001085651254230353320579134432047343276269942902033197137423227456636667954746261056957346749887885794691731706215143355754542671747243703217514163364732836273741516487004617081303469078261959515521622894961194869720264026303828242257092861863345910261475798423886041708331340346873270791131802947905314579973658170425499071038643788741958048904461501441554190510974493150691119840381180661270795100395799729293668299433003763666148529014885363625947737136431065317318983383892987721619934783612865078770766910230103993883593341800324320319852127814793864255935882300169187491287782310828453671598209403318788697770265542921352374283295456105381609334461215056871914903311979084846872286951182335757351864219484310565693040551292985290014453131856166320508648748322642026600413958952572377317663316259648109267904122206001744810789155551493573904010355775109063784343832493956586709430832351425790603205647968170875818820787488313417402170568598961756376840124046035229673630151951597572964559877555525741917651416061385911697802001315838360783928047941459751853591943164231950972069053796544660368817773074208528015500424342450760290201004466089566851340443434209148316138239634460560824112005974086102425634697434911496449165489609872293471956005909813545030823051266843029130271649993327025436295853203145752143701325062205892976571736389332899637136517524473834323254465281902439621270823901997837697849426597826326954242200045357539660680201994194997040833739341465270067971264904601070817031560707543176504968896345553447870371041572926984647763358468886941566565279879905748233222577194371414830908738556593800248544684293989510720935329887797892829250355053797474002307156778624995157291109714370156667881346575429632639854632225286000885998435262542088289442488162821303984354079672115003600733768854941924900445947702132832019610522081607443080496213515904088237375385773600383165695003046797917839261264925264338759024466151336210771586290428126259694817645278186324868602666876123407000129611010926513061796322188206337368961911605284746460039042089788367713595659278184560947020205701786316837336289914487804538053506067927307954340288578703109782567033926828796726752287791226862967032304065879259886475762881572834584881326169296174675314633869838599202125034407376968477657116467632445827700976090771232852454307020815545621073329608901801143945614251174254836650586930236746529047103254439581253084416898085934222617613070473529421344168940546688999079764465264006918071574062050495673026852769231417934328257903960329638831913768627021416442379288550567832525473396828459959392397262131989928747286944629811765746950206223932861651311368989239032487753521496032059346245878699796049712145515077244102718630951466859945941938395737190059136958998904857446674453168808020909271677363770354975868728084201852555541236113397101134694749012574772095081133828552238726580233665131930243840196929632838846613415301007242389496008184984359370365754740628948378482371578680182406186215451664547701586043061013671794096841985821570414936216389599339277577416948146481421870210532242525804600376388426516124645934510638000630379241098436499425499622561124888278473305853641422695262269841501599210239010913557628392254858294234414531831163552924126217317856514111638322036849712360518069061372204673518258124843724483392203292757867521437583987071334317095350706958434559437363520648154865583424011700498606369688080013768677680613536494335135929261768279350210549408327240928142076063447974779263145116084963837813473754463482333777759815947728632647941445668585517217401406380183256733546235214635981080027001706771817422896570418291679983790959218894543154952717409126604240827871660624602608206129940554694484343256123391401163548390600857235790489429382483787058085804061894520375302976599301997512148903826584640876137377748448724394629818036569872171439998282426939748008371002539009518077290939229132828644622687152810846048531340018215088528518490484101832527159385432393688764766589561837107769689164400219550428249155381553451973070277071197297035528560052195115903190976349268847241051030694337968156761020767185272495703630224419795786961243573986377370436459271450824042409658855558000497036181390324890339135255095824797626499082027885837648139370926003966842415611714797456253024994386548099955061422152275298736061771848195728809276889693360972790559255423454828747600897160885728696100999890750003866880147341825111331242725597385629416678471727464592020854345572977262375994632492252775329532337248589725213394083263356883029002678265290672560697455938398543016044482451386304319933105412718103982489867939959694450723413224345486358385378711072300172759913591179011624152734445084421159447965534862393035968764295862832976563799022669490585301767554235608484700856192760006367156837159233285688868194091588441449544897373843034797928543354230237294334937557191975413300785410385450183064733069747051100202930982593151764596416859377979795325106429169089594125722981394472633062191420360663098183874810541227505560004319641205159033871020231684943512387157073135739689249389395758816508462855606798713277145355192751250968476169965476773394340218642650504024664555779725562847327978680237914486954865650264076744220979430703286058837949961721356387861294205448217580642886496142806527850873506023766988532486233293976197572377022562023635036038979111977786382928358387439588422623566793543389905430584265024418997974973685927622767569191895453580600678172217697056222472096653381900485024658152249390367565068139366652992438327591372011221697831629053239776883689164780340980162921114257184131959212053073356217355749159909183850351481226002455892420072047735711381487050482834249733314118801651885390208294736374877547032686377554913277169451972030042334007623122441810204566667216374992911432146532707728577863435001218512081280840430079852472362598547446260250268323674869960318569871671225216692437424189735640018382478401897456367742620974551983046479730561218566971228810819017184285695074923141310789171697500088219559163428689071422469583234223704859922533025131775275332194113292532368859494220757649388053400142276855853839226435237293728511335737697093589946771783563852865781593656980565018550538373559224732636428511989490793634018387507691647499051847471977925439408904890145068385389851210809204031520416332185524318331801989115092088393250948892216573450113526606338486438913398249717504401718622265959160248175679019727215148716824026580390082360183099477512291157653429516886822973583366630226647466870120985627919740721119874237173874272287982893135854098285110654874531314742416545826350874863679722561893018341034791924672949782364379399945204513223657184989694336709163463613573016843288698215104718715084755162061450621571810732010893737523869138767271453439313429537108410666167263774709507333638919330851425754063712568926227461244237112712138280455481990352623354519620463702180574129423975741352291390683464181633150610897204309209714585558811950442125225751918374261345734330124230677450641486536699633857731353220179847793972966264372119463115852671730073548247119627902273877893848885733251925329885922489497015211097307350011140381347564319208217410168576604788533811123433146223778113284080271243216519532173838110321609255399543096060046323085886247101125008741108066723521467442727855385631276748184731633776691165292309003544466444249009677498590489330209210892638650100169490647131408253535588158736412025242533358741318447510871483081172181225312978157900887552042851790759932413105703442502576339902849640365721758112498102003335613683557695710815425122392107854390195716521398483406456718485388818150443407161661010562249150426503861763351455120592247501736269289612646181888174271385030175000304652095708272265906053157480510129020159115633654595262710338039869523745443494607930770774514901213723383492782505900235334266358058958228003493332207416073553150054783599095162698353441633189677402003070731019400088078297598890483636326780148147321835435619837357869483297422670612749793571657400678414806206899980836505881123741433841742624576385992866165113776512053255398035802544259493202957533396835661772524883168781290536406226750405013477482648777671800626529481431274646865902538141764702919501325648606684940709970309068618602503919800748369972536571480261811234967130936218928448113348503137620842426755238448781264355938110171254854719624105739632742110711054820970683702560906584846306460560227826340568536767657439448683384081250348057060930074716753341062792725199206767305798657976516354347607650633165151121766250330626062084892410692470733006169564932288115072554302000194895197173110476493996202034413508055341134642333366984292829384438364601787694531359858009281391290098659481746142549899707294999620706755073805665096679934302799075494920976049270801817147685217577083923367424993541494113701464134294259510327186706845717800219431833654923714706009672908778896622801552203226002427841984997607782769779212786171092636207693032506536238526173159287385653151596221689883447477341350541642662493245600676097796520669510665000906079657886130158690827472753960354102641820888417269556573305913145225336960039840853116658992440525236987841517026591184659507885362591043648309215818277197653106760510849779365028068081869442105834393501750862876778574687947452087929456625766999969445139013621533082344667728586942701280724243577408985689454316624867124990762092795307916994646670111248449409468547374394739158297973397071352763171598813883440080696850871720227397662974772864894690063019461030882886192942271627575621334940047966528961495264943738410459887349172981128072615775498813244368395490649235671030604665012587594483004414061851176478862058231778953998710445233739819189916663068273553414233879851547919330015141836646104770367786455584970899495329324186631191272981927578737598615916196354396438190593143919555305229883739227833761678031959758327430954015580536030250310918022199209410545861692897775644905714493564437594024863689305334231913777155793352126036507819596083338090983032623343717683096260141090862218761730031296157406929413079630890898755899464612860227992116679283278759764687155183051606085661040524972876841527971068035827029506367101054801620412168173801772291363026798579572855986990835408854729081487609520526081581965695188647987911541916740208165111800949072574791614897714522739613797532283263264476703560008829828335797293489000156984658387693542305101548231964671003844616153719356367529926696067802723854468535702848902290282803622489653979078552768373473904310422859940773037676341710674840188199900197358746399537073115735724803936779903433158630179046755866225037863850809818641484248545215192826920422378640936151096963704877890087990932809750783408095609860657146975463231364197807787340143721796952753429041062418913267772969223304319879186379175798811679227144609604463021185136211040938440686968778587644850542576435204838702421428207274947130725936309397671296344834077081019468701964403772984333952701976518832410668603465515573650098183183732893201441750937180961766277075911518579201597530533203560865754530378690819186551700014308957053522457192599346458707057136009457558375051003852345356897458256541018367546086589513925827903281668421711237479936165090281405647540582339528160330704840071521378689445599749974972412037241646844735545636723370778425137606888824805685368977102270753563651167199644468630502827502557127433710111411531178117683211948161900830788978431618568629344829408845326878494414192292517800807654167222765968979029322882020531313838050088377624068014235273838381197135316304969254217823925436928163561841000340998359385659247127190684072806771497293419123692769570159594401700776226591092069168277152860124989738754328954931338315253178813731064396395782048434854349453449661100338644981260725209622096964090102482338885152000826553251796185324752842834467569967199384258664693388875128248639428607693160754394063189824097626402133686683649186296271920222890201868770758767356575771866222889118029213184856377832534409125016173708023222901213750773456990958236281416891453109361559395514907490879496697298187303020101250135640857923496713146841301680205717266357084394890293132026375089453119791993554987286448271889797696836056044045768008598210816159375149794106588665909927113780278076963407962668234615631733023726733772528549638757258964869717771096459912510509514214223922673438786480144943653051073005083030052226908118152024243558307320936275011453496908865680082868605875257522266027201942847033037922082315831842534667847626014491701236635122413506987700034119508139090257017100715661560603083552845243683534079027714970750552232057361021962151861958531286120557616937038478510653964270997032206155552216755195940472636955310191920398865540300124632864585488864528730227609491825070760579272656005299519342948819563481972275839457156931457406670190309653342946873368979432063929860263173364366751766488893685616205378329563163635030665751497077065406248113885803063720027831488629922476100204394894796048484307221265772448104576573826392054293692696433608799188022862194411823285501936978720380167657657938659077301608918141689128151155737024665970870964123176764927603138652446692931394036936218147154069773700765644676510651889548621812882058103213521266323681953732773372102458763057393010793762194798215710582452580918140217937282390865005719404021141296114434773526651322537259859561458638578787812144970026912596871148457128658720760962865958852663326128543092448657396449963992527796827076172210507823776820695147336732149538941602748828239727969910516492761918420436464473733170855451002277786221925217548351395785153627909602579956455250127341494795277300677062559599549210673832133179689174981933505946006998220760593876302078864698912126928979108892119338076411800552115791483297941914154213946842785831276835670812929814354159793575272407139806329103873024490865775569557987599232655022016910466708879352684107583182665822285094170883071787434857009840527361570282022238835795784344967952890596716954029976694755526078125980424260462808055223056334689868569990217580663100682749572349002676360006020195059371741764753077512449981967641972700523692472718545095814899785242074787350201232228941010416262125879778306907215980498775416163018964080739501258920523382524145752932803567534868176588881568371818152165074096049259012800099297222359031469915079265972875882577056637631500462253005518982479481354242404031305134188802318756427434691358970737024017514779452451918259145904169047719563858849702532397696301415860909857473581804005131223987643193457982673975462657880042320221354711895794604928973214937028314827530604549114107649511003164218003841787158851402843933087132494260814825775538452918594489943892070433665139353965646168009307017876283139333698628885420950947372196576459830299017171244469293391951289688264577781442335371985485067769133570197532271741273391586526526597379296780104688297895360340688049846731216479366006134205147994525955343617548738162345151094955230086928641890941471675430568649205880811162448624860103512724281747607895260407549339786025785667123339450405608615310940424492142577344728651695205123018822388643710360341070110109077520770372107410786935746116596677596601636051876681888444254904819406727145762175732324306433185250687584267241360559745052093447394433442173678311834444318380688146714142310547336241543279977790841103191610882017260929678990914843837667345408588260242743710523569160031893001872921194045752142203691574052486571518430799584783356487781953514435059017013031069111907202961446406004977027604970150916856604710798981261537826922859435049541368078154632305189825515191268972734345504062095934205485448858660104685921503270626357311212170335194867459579602772348304619807532074751221744712177207321882836756709586832457709179102161524342977373972829180012683317508046211717685434858968199779789488322195394018053893133308626791970534980227975903071802952822244401362253958593643509007722547329760718679027330288824269333567806740922170515523920143392805811595977390872313586322862899229501961683977989445956297198811461957504355441326214973539595320775358496568646004319503999031569699554246975622110075868456274919982420636585867291904497207059729402404815306600563357504818905382014005266072206561106323780694365629376990257314833778739465978468047844789443823489469568808241413360620405691467844737359458245825064637601092430768510051334530812236382484609459604670566583785970579864077839107507423701086393137682717745090755460453703593617409075754505751644825806021599401159685876688298239531466693369771187391828152161503864370839780052097274110877462710784100951418088299931590232601340298689022270126171123836940317686064960139342717934718853025690095605903910905206428356849075382084826522901301150564046566500857149858179069961888326526458750726960722991198270993485881805365960924647906229754237626777702059427255809432295230541629657993250100266078115728363869461737611052028269619589143031333246260441959788445632359748198777213561770288655134562249505366037519955802407146128099114300525078872759860898482382987619165544198932742222597203341780303485221841773334789230553232218836383339217383649759106057594072606649904267123869848735545174540786663246115889987021829176182532176798279813037201278451768268621772846647180948085737513544186411322391716739149906831353208521931073720480748322613552539369717060199525194376154432536331040365725181238726580961149612238804434608260181592903303453204674894143779637557583998121751462177124814553837606486045204721143731752978079598688535304761464419598499533968220175872832809046273852722345306649993354783066868171612626587722515208033926510149306803105466932688293118622371591771717214600996802356985846109114129348159206327697717460207498907940069276365898983260689170040132133662778929109382655663996172221622345842583804990625875455183106005400779092731587558870656172304777595814844100282510814758718165004584602134255723795459901274094305848492104309093356987890905422427364027283415545561783323111535836889996768313017559173021431670552205086841211605360041819045635060595195481364388586333009602243803014826414052189369334449459977144717789360099904992370157769985190896346444383496736479893015996637479808703163343689639621609182718108238898916566021084143725455572706609113918017059264708234982735357851268838461408588613082357243509948475048632338298580840983550091151326650567512111588055506411155446712701165046473114288392386073795438197382927610217555593195998045554845992024196255749051613980745561638016052245433278095862778061355130256327433773409241307733263932521946787714296516364995007293292654538131684229273131770047399144336481726607179452555014040562665229407376996055826580444354725320346477105940890798411591454509190321460053216425561752002117901459149026820867223720948582181575390394470069858032490074750077431962377774171537333858175333962608051952802802343856217835549205638533416405104701532285196476897258577507753235332344691804703573121050485054300125441171380482060634448603605823103107387448040307854342783304879636946745362131984246157916276923650802179501083092347337546548396511052691786249826952206016798737693786253548164483740975075577439316623175214495494496241783468216120534331049850167375122548854852872936081855933467374479042917556902005852274167668430994045464268446196243887420135399709673077989933325055134592485560408437204922315626690669526587948803860790491867586207798602239305530670725269582509494721012495479844768148899972361254308954483085278015147447702266717052442799070674703927679936227578918605445838126350367361259981006713724547260616058936089611045325321032884046852697117232009127864237033913249085397177160094423881341694313258776993360758690125283921209939568944962374654531612432708904149927241154606643610228726083445187849328601054545375312884379538855295601455931562845679555989688573512383868976440635432570222828818628337853132732284891966685273452214343751871133315922730100179925440335105972636587471706454795546557087611509313747753637370500624981171923721483728257165427779145140657474250993163958982814915192639241907767852843006123753163042118365602192527415537606000608842073157137971507325122900013118957188116061129830751923915940008984131025825697275498279725663469334381897971323223637614309621387508819588180338993592458800810708073593081636010509768961375652669826640617004525714081814811061951685183972216204659565711786875854890861146872427520294791167845324901731389051101586221352796269373074414611190113058839123390228349229417013505853361647762428682700849664153997169659572919097437385501131707102944398727173966682234672853708236615676714798627378763228055677275785817277005260402769711875410040657431494990704608084764193794442736268252163221600459848109828247130027004453459988818297816744994267090881403896759556370444146475954106420586035548898456265549107645901485355026141962649041541302956252845933594319834476175078244776012444994885443860010488824997371054676156872039918694877130203966235378390821896282660592576607011362216615589729257792302501907654341861778431945745119269261851441495886459200590197873275344684131974580020756118215961480153390836677683145334952948472067644796177867716060334433938481485250380697143905669814659651387907618813510605480474461374018918043328476377459141358640025159867094598490722811187294627113675727128064952360059653997649870693378639735113144231326351025327976631034861167835144886341679590993960116657657455981580018888688607171399549175105908167846815909705258997416969083064349039412962120573896596227623621368747963896872951071181491025804531385727271434908871935522618828426129329802367190452577240882224581036964757894175713640359545792113399618472440261693954768354999449561835411522666347565361423929262992317088957151318933925623783693006620712233543189414386137436489328925362394461369915357990146479740339868286122099966414737828846007956073454581600160784473809563547470025513490525418497578749681703195295037793418405949267221574332510182165034066520599361607606444956077880739644930196911395631558839793451967348714790074408635163756350682323697201990172887288916780851636738592859432574767925134937143136952264785587848283414393279511615870699241960548429090357180754374737117661906367385424369727634881659685086536717779735179882535293954376763071679723717007704598813124075632049226652950170159142833746735051637249557794226966925624465130663896354996229387311414219081110148355680137729666513711289996412420999800319359218006454240047232071200407120316035435790870395842563734408484332161749858985697125026660823361141106591277160348908181405215036263043265731121785985957694778938339876064258854448151679973841729891032015163550477834019715516560836426546148592010783414022176966304963033438076561982989575658608074663502206098187157705425992344572225021052362949525256854394789384235650267505267210721121425210500434634374573767316116856466484553250233915911480819209647191471789213987892631458243481549663550863193876961765114145123478853901690833021337924633404268017003881996345073132798734087830601215768083951430050676071640564609234572341500718235747712594317266271747746575414508988469703911845334638600036943326554090712299993190843964952839342571587303306758102425003465945562626666178136593235495031909156334210594324419267125761857776813388497690394262291263829162485904654544948153945706263304358387672171166166616560873045374133623401357437049910949255931750957563990507475915413782755674341715017864761222619859685237558075498702263091138679381762800425255410668213270092494272843878718889637541984605394157141250756267253863861849171059340431182200062489742833186154170323725341796640785561513131509291398308934174989607318626536347639397382246608693745414508589244641807428032895751663896642286047936187614684296607123812530317576163043993623132669637950990682741030876349206003250289805477958728813833771641051716566903523909771972245679886440778524383436005189387878191651217004033845722490649621653678448737270445591257031713701256585179560855280660171431373603851369113866898481181013359534762464844168210275738422593336697156249764278034719949601538093874286557815047326935679929927847174001146780907082520755970965126390532114633036085924759247098205616156943750092020061309462610933073515104551050482296348234403326795983090461035371677741179332412554998226512019553628331573110092144053740698248792308610893092855513312464840970916200291807456680815628326698297221545067474092152502168941874490665919058906402625908789705772290269889960057389291977811329942385061524293730832909010074682990055787666557066733807446397468693701836092018088986490258241568285754979702239062343981887932747467371034676618693093997383927395745049416308223988921730810066935057075015520172013655948986158793029979433340393155683264441031586865096012485411094193216895282266611509093617575008219019737021950481934077955666095437714772078528213021443912782874281684013660013010847999339378347055323053230751796897212002978279221987107516706003549170045864756923419251829303011327639156813582196713624222118860846215699297276369107824303726611889932586943718430907029603960495779695093948557826530548547573635514151379661180978631798207490338169324764663615547062258845641377146653249757657615398157988401853689446380733947655965732416232028973006820932158058992699339936477760616924733172899221739304637123964692593896271909847839652133009624873399118477131762141733384812712787386679948076101900486684407694881339459403460815667111307777912869505882149719470511711096506754884479976901473643373841185880351859631454408876023017689752686404823521295679115184560648957794465861013307467795762743209092158437402905899008698366145840735874127486606207757043049370094332100795121775640354863879399036409633685114787252368258328669000496964099357883193757729827026943627693455397155962293631936259913481465483311213088866596307427568020630679297070538198581889754139808316262267117811475417123828259192081914812004461887166990589338328573176202091225503167556509539153904781265432825741586560766801033485249495973481442691116419090090930274204380889990233281886435103658640883300436516917272825295259126148646254178350891361864782378554447703790848442651736850952696716019411760487309696238651683980685981745668659841550410095139266807191443827801081095533223328808834109357843765419852108907409271341699272080990272326513817849142059062704276782395407144169842269566721732024841079328186731064228556162274647168184610440806919302415897449982594179602061160036774564852826080561108561834585443983878036966600148893097613776374040531466192910284968475938215245998115219952772391082406409178564805822903537613107046653525940997637498744974233560876994403458253268660657137690428406609774625231520772338697587276177921616629940676084178187046384610339391676664326337113938491823813882243102949502206288332387493716677369626977663537958841242576214682681346551448277440107150096101765741622003381717979406177053630815805610817211863748533323870774526638638147918705275690744090119578459509327148511220264081008344836208347573450051495500341540975048282672917946471153091558051477978630707764905626364318222617845614317321140453226914331000376654402600969484633712339001714266631458551610483778423137957644531683992719974152357372921164576260806851833884750886934733213661531783105827074873416692907260865183362589671250873376207983953355714802400937626577803698520510315975242735448623987850833247394914108461802329120976479593946612958215300749301883231030602442771619416790812602837711203629754987129043703497315796558819673896450618034825885325260448124630662126334449743830556190068184094283666991896512117616876615113118812964019036096394331009185438017747521517305694245430932686287458423873269518069096446791314974065282776011210872389265551778437171551271496311962213201222997334573741546436706918393248091320036556089225739563074809604358456933803885723301839381028706785042665922343302319869619854815805015565738492731279490113277413269719474161939178132584541074908617964682055602797031231902289569710539747552218987519210402430925135569747178219265998608449371226965572726124499179239530351340207811707190317606224862962770300706245708891019883304280222688300371970709063114179275885521296646860078598420241687863256742948238649194699367251527113546060031115228884758190588569124998739200173011449001311312502192373538881097936784305162175512860592032543835532419641115083507727782403852589753025748214449257865146317179344835196823033030660272561524453321139355892137666462566431186271857039506888766565782046248380690975076560918814915239722874687019670941292989512616874277777068546586842167759179719508711043140420632879088425881488755542385297643631163655566780342400288571763166961044876591346708077433042460813518280258973488641304925859574760758665805454960803960524454939996215476403573422701712232377205580606029424866230805714593784341071409496171912850522357962928594887683369027680074141380380911582682818692906882932803447921736173499062766493972836376912897588629211501296700598319078462219827104989762569709388571198004710801635312037866115251988291308572890338621511698507502598322581763147496153548164954462992958797350099409143248995125775455458487244769955420643251542918319944031674656271769355873240741933869018666391668971862612995998808391973890968015797627056293207173334201164623900191923853497895009526301097592117513578380204220445512654570918558540390085883707797773575072114682729124955593599029506994271185831198546136727308422780568024048627951448670104903456391160753920335874236185565271327733189109707173729967459421620218037811302069677645858093663668088479476312475999756197481033209047115302615526146282118589774538962311113497703268366053634749054963228626059123145764268125053946495142862952666755590774795649775714180156124675171675653736602180479773650209145359805149619070148912785518850347375287564070240605909832434761936205855944972585000697805557322304580640760755007841947760755845972229137771465893163835743745309666618675900826187249948076145672880535286300903100469803327326695765200769841251621573395390331817661593893884733684563313919001600765564973059993700472514519925388675133545886454476099747435401020188524139640722068662638948330780215927649732850061332185211252307563659023803431445517128273912087894569142184271750202875164680996248287017228032914769272878535687302026246585904013657342231943593325327608986362149882836327714212631738921221233618620046160796557867984631318929619315960371752460999800599421814255163695059460873067460991091772077351272290831397410674931427343239453832944107116222684246626419733829861049270958523502647798104143139875297491373457565328238399228240878262268722833750845738367676969894996757179318301233994966313919306619433366368198921337445423964718207149389231867415518031772952394044388225791765133131424248362475690487244160487172619530285778230474769043357396051526681126706951521612503449014855200968498195857687627105635744365046684193194213020463712447641705456104607315737258892891396508927824077938004194877347337346164123445657322240242916229651604704913199204949847842626761822122214722597472857807216113583694216381422965234167888387577448700985901151065885048797118520980269167164670902557192439916831282563496197592909981811231443431464898386695528345851483730448752544991875084994857972837373943758450693306191119876640881809470454543785766624161408252503640134942515387399242633407195609769230077482932665412800554991195951234210018873142381524288025864412518435660403418217766727379802992429319599415954050450454072461442450703548511605921775358817663065337125749071779709294776867767077379126031488269066654259675994212361964429045883401321042461546578790573886063780237257537779425052526241761305020040594978779302040436449826841498435255785625460989077767478847154995949465549344180893158598665109666268133456238720026586330544376737323500382289309016694072478954295081943559123306751725092801697447167317394176205037769861494321624792077276515140115208729195936431689631192866729924014508826287590116162959681845344734297571797441359152287684839635703923473279438772775916462853796913273553553470667360694764012104857787849053961088588830683743587798671916877007823686775657197008635997974203487150028119816065984517625268615571846693036468693928871355955556037893444582612271574125860484967990124443315406668101135386534660139712351203356035893773847304643800359907978044547531817699889181400912595739013010592426651742303301578534222949111846070479510348823829089519502404144194876231649989247625309855035892184988133879740277133948561743513957827840067185819555102611515104947867925963446116545519526927212272435342719023857830799990612719338340372120760155175921443932155570238685018494013205190219106637994799194594710106286191203401511014240086530593800588759591581953136725338181077255310341136525545491045385982791623862865824162856711942368969564137023788383122346234893760446727699696258421857310255968494003953366897402853151048337469129466866134135720522804528918609187507116843130235049428842301220915769466618203731743424224865449021769897213411367043271705450023318049090999050836847171472925214747004462903984114701649696117890890677246781323890320162337257502844339771130992463576559333219427171355599251942753162325691088379072502832084798109029991468239245068145359015147135186548436056414892994828771933504837578049725025403799296623827931689130260462570767826336750298422468430512897487490912205353341431923520147571448858344798073607402281466362459506774448898790626833597810255493476171381778052568198254859182124100127996739878781591306156487510147398531999495177543315974188108511563393441569759021755330720757774128277361086227095503488769481233265645821540064206909590817071723264358753334700903161362675132855590738853758330990041987793840640966681674388248011840724257681456603666517843442659115909278438827235600545300502098928845603659307153413999773871334429138644110756836154887893375951317431647240867340219910315011628954072858678942442255402153567297983571982772531522331148154490672671664470791367380360297557730869818131284010244781785277421869546519405111932359244400558726068234561994871217621851963177644575188911428921681142877558204220707519317414496090881318574484442192359556178811106924057068965678410706498172061064261091320301192068818563358578242818154762423465736508275474958408399470755768669880784681022100962129030043002969806704865739123926194595020574798025852376825993551745943974941502942881187144651696365072771098607832546245781822489577538319307989736784221433338820668880212379276861941448469122543182345625558333994791359955745185595836396059685173998750978221957459219391992430746907492470687663719843797156783262794135872141258591459003379770188673333518107847431829024338769313826930359711992989230909128417220980830777299265043305416521079017937114920814988825319837272887685391870541413916779756400892970313717841761015824236460236405559544789690857771534178267429124727180009974923618012848885286568522211129203411785206822736423077155106979717500054930488961920333544705069347518445461386927246156072887170385832646227234949059633073313614602846060757694170419391518658030603266378335489060806006893676739394225286039856308750509533801988065146110974914667567469738059159210265721291008496413363275075516077185514117478980996344674553978123467486907447981417414762219980811934367058199219664745583243715333799778396311669581349816470122984775822156265882683144769488178690313028289896573692335929589468706773760361823311888905928075052808507551234772056547149153250224613766364812947161227031837648451268572551044840877960574176119354999075695272648750448700111921084221215993404499176436712304534377777303385658264413836919322041395855432671754497163656827510595218078835452004014530305566638514634016380974091113320152450608354694102946615299156459755618264135832451217616511373724754387081081356212215161309504560638176418667367719312406337080564581803748732298674514229811593079666920001061103750187691182672457083930132895333361777195458845597822757245274991626873991988600814096199179666134770519042953971777464972399466066411399402862528295917002424285458554103155533445082578148162712908906555427947982119599630959513607368091378035532769680074951710243573833073820043257281551514514308791409938231636011589371483212598276962380250806000701475851265651760815355252123626930218664251330742405897008246829695326369967521984420260309473077834137701917592130323638696140805729909664489081840265950894502352654416840736732293960935371528407703806922420926087578633957357285013462197596448046293139081880049840268638293620557311527939585760752315401205481635631780509129918938914639817996276121570887113397638842291045190402388591160106924147358442504145682907785627055248225791801937501035684064311983010154413258614683293043142152281599970434454175612978205124005412819148618332701283142292225611187793196650511411571909224330794571868039086848230052703145972387743212060146671724629759526476954377970650798722023105699232796093023035820420338514462903856649409746349183973029414696949140193336331700941266010081637359253269970415217097481671877231753429442088129984521552077245950368791546740178380303825485006957353340202178989608532572287718531383190167785320393932516310199723698503894507391466322471213002398226864582706958093062250559189249386782691236593868935807837737545676060892562123146406057484275004275729772844764113278403719082227726503536597112086915986844436723819329852215781384285806170247728605592887461405311735945177880063127094941893160633170168933714187792800794547922246446915626136298647460080031659542739522394006798771590267620244837539192905321739781756074980791699119422657892235327441341297516390873179499563275110640062840084110194433963643123440653511134029273154917989105492173638424655290256650969081900351664477317302687869503380303302898679463175367609392445371967993064526518308505275423692567376608930396446727033590351855521984200966582570571580798968919071586452873663478587062238118593213954033212411412324472446651540622025543140491412213805757686384645590082454833148647610168601459471622197700795527017579635619774908618119061310211243455320896414212470651925912506249622784451027398198352006337114161278885357290878144173132521400627774709687854146166119161940448048735299707411464812146583137431474207158325265930390166722193149005889907964436230271449660743759693562097513422335499626621840495592351129777323216548003546756179720994682371487797857769739132452875597265922936858097124242898978119561053678314863144278877309777065937141702288792712624984662599199031971801581808194658840066824323186520476845978461831040727370877746006245112417587523027108426390674369006398724958821655596559556722676596986986190558123591800253358594077380295853304202921788766686141656451143968773312969670705966435572915039321699278056941031208294787410863366577306284070842130488199690654563818148490782103891181004165952684958950255838627404325323444303225352464710693418473032665815844638352031285691664753571136243017050625936614880946471748949006745411530755366844115939732132899997678526583975139798670052991044304153743955679916523460867410785547244246385774520922619004508049818796052045247802695515705885896205661605231004386232909667450605296313919782892538292291817409900109327606133725659322434879827137326862939748220595091452119180229034942118285339216096851779929202103009384244037133608449546044531519643093823227191905817879898859384770038776402137874290115131113131714934548532328170445768061548139387923287269733766360069986921154667700047558944761637394635731020612915487853238773026226725345145842061739999970873684300513989864396064127357314288798840049495006194252461428712479951689108821515862257465805814980285069535009447754706729251803484275776429673859983466776097862284929748390274056128757863426607968268055488670950147014768438572116125747451489314888359295174402352938974139879355883611561169246233298646969476669509962209610060072059493510979276108675475227680959186061540742541302330760856242711266552176244672151890036729069565051355776316987595172991636054210110593323125835407664905232794428884288150120097700978277630215268935208145937066068239232952755502662425651367759699927886900706982042931021191546463055857711775344013859021290384723703205336229260208647127219808328163998952898845498690821887790933663290592338454788137390307566594524799395132020013442979204552098492139284665727153809701476494459261468541918066202802409571397372460896603252284643646848030601740817306628259961413539980333297200261940288155292372221848477524143508889088303699663389776938524138735596857943849038752174748470625190802879484288502124587327443090634460260269956537824254403981168719608165220191047757478349147651912937079488920995068811201686538864597703153762359184420735100022151632801977532017471672422637598479655449110278095293419864421366402371009313243621998753789107790467929399216051235406738512359262715140775228585228121385623739053434620572691245894555835470675618511406583390113505060856942012691596951027231536999889520053183595389362517738080279233570084504303436146339180840997835311551033713031013065231846297843127628545524934781500860286346229454587637548552056109986875198102690089862884548408604145776927413296120928237326345426767398869685574355866745171636372548893621168626007259730681484848522322922316753705747607210147897974501848273526656653207460511466319091291088125836392064289364402635431303396756674968434449197622108236930829885098270814888563524859118332568149294300750352262413686287965772796118276341666395839684162816927064547088155843544658753597702255176066216956412943422560168927715523355659947561224133624052797853020808938757674445839489801586877042092934932258294974436548974753105535933847534674734821702590123511416778712681498238045568861120698661531285227727798897439202009435850502495881693643683415430241451574989956780230636255862729041028555200419487679984380829061149701107843983627238410027403203376792507259624455028985628581494530675809184140176645435593685891675919554982184718400125927244667958137048414087857144642846673641979123442133459896454518831219293684390605055811791941722352214532410133671496800169495870593464259441464154205759699070004008598241646277416329463302251862381869488199107620125905946206318217650807682931192884361191772495754036742922706516969961621436008433117906971712297773783691783245689424736836906573364616923085203549829438304978201888160743193554804059940654743177586811846273877010588836156602507169193272698394514416321986598534040353073787093967499661131654732088085850403915239315403938452678391081441663206848300766436470987802574815602198825345213725540053612363662338669538517712464927570200125199465030446406136345761909037935219645265657441269603371303259687429265543402550797416650168108953459685331772460168130333435534967115643069370361230370711358205241672707676109788552193631388789598436420800527176274804739176890166247114256466733318605676084073790276706301431215116669223430178421702574075168933804412934187340672975799168394641964863081203766452288302631199616981789063506943016835435029807256933559391986374272765954498253523895702191263119022444789672683123398504171763539899529628925480509472432986902563421321867354949302392329243411045554241111546016378055783724198347806822847110294698747801381646656569952514282472575609829703233278704822155422500255697121651536192035602859969933956615862648467645138506873435120417657612562779062313273543451033100202511505913731974760139239354187166957749980274991828795222231408824157872359869663050858079216245908735094548022628199889351311633154582213646847419556488749067933538005934717242473585930307755627853696996235543670008928580920264179589748746405851306061812325014898045447584131041568400641947833413498267237252526212645882465665598488480703984305511992391563106366617457844515238038604206430751568027037820609221052149415946900097582153078856313022377096179560591460755051482473610019515084723791675986285175358180856261954971630688264215884626962192349424605847517561913962292887250711700788560377261885678415236288172180907318156117515225228345690179086456374633385249441866540822733139772748704313842507689480407735609651383442550999264743592750185850496750122528816698392027938318309347074940637399592182723025379565970393786624592958536572704175200864964046405504053885869459258269836223902632998301315057994693438868448282512510634255384784226694984084673733085897605919247617734704340327581933246020583745832197945242146867852213664127495155902125783477818433380325439946824872330500767639466298486695413017900870211291406355286933128420945325197031229383753937222827448578774236827305323762049597583283628215980327547175312188055544443522401864743957793173198487834283851402464810146450598632507713840747694197975469702585491504711177828593960997549465001696355022290458806888353925964640998578234942482413155699946175558124775828473485730414945993154199875316342212974107216354603418439857353094498471117033054852486900927628467535883693594035870397181015852919470671927778077772207350853887054504859699654019372295131779983687755402814025760813069880389777159899409390563878314521076678415200544348727589667758724910170914958747454119902301308187952111825064606572906379587045669740591874647591406838832068885660597489634673781003708615477942261992191425097140641461779196994016258134499516599664775663976117210713665669830762849107864179474089133453224071776901991132961354618086674400981606060283160466132245361272355770005231580853018456972743452740422561411881931436963360822668650161309880616956986141281650032121365668182546263948637342896208371202896729537234643276096361037146861945750453308897889808614376838707800657898989228132397131920939956112871801928624543501471648823946907714386749508598810105400337524200870584118660124008702366479125774188221455780844264419714670544980420748316444985115462531102262865584146802337752671579574310378535826035601164657645362572504100205472326427431079789666933781526290187340344836584473717080628972842129888597126775937233415638326679524542560368514098075156297201164094316518408984348964424166827285488003337399690916892349518049073940167943772184701655306986048676659112566724572064563596764630595039816618164570060737536829092028118449290858610519335628590929962656491702857492565692963783519845382922061447396375864073624412491983781497951460436288388228160567972194076880407149178833774662550384938797077835838587145519710696693041117311116457663780601949821782153214438196681274288212447277304485375374720380041661328907977241772155592536971730315237597131550681833139689160713891845179948119572933177545167954146242034229140909358253980830891007582703903395239064698239417595801697250339320394251846402996602245232864062622844239193993699853732346068821512432528945000021063540024847767600521813854433918254402537657382957860150124108381059202018786302399360893793033954328834828077842169655524241197793938835017623730382867243544785052296017058474420994058469747247646765614703397398916752677147962923117435798598796966429969175766792510942587258024140917892572273887181819059102209507900914263548263862655312885487481194981475759632636050879247667002080290029715122763463428628554074907625925072505979058145405898400744744363818707023437473206110192985230208504499943561928802670859111620852033703191086801186958820249196306106860139929585141295391019269880474118119788045242364573161249323888389121402392409071239962583701689947131595822509631233972570664137162772482078434427095557434047540682799085041277187334901998795940006155974182344981276999748864168855561411275190824343258948268170645075345296335086646692055102575874549678371274820305043763579254600171747446136395666902448583960759727123423495958633611239861060510146506191041924820500582426816864479901200961088868504090575036404384761432429046230067956796170536606416431204946716043784645307730995725019530639916310620556785348874026154646161141509037100539160445679166898794622148711782666507243057895690219836047835745674193584902044894666644052257805293342884351657733750935163676160964628027939685840829518177419993681866172684640331825118345931202996185531263429810950879945424923602981776116961899861557569598473312347458359678994733106804255354917279414433966364322917355301643992729472825468941336606362239055570189928845605128967965343771367586591004206371669545663768670610165874327148633481069333740836702907329599935883374019964663330708879544241759909648951050700973673814317306587727648211191705428355441044877072859599633917799084462595424042889366942300908997935709128916598931972862067326424886433839893094879927493907764353985708136465364619406345330508042070617631129450170364562065342346439510333145862113930085286324794810745748611469065146321295346999451133739445914066279548608298904854472157854966174510008937140205910747970509210589608183738455672528350507552109221026501834465681043639579016097361149544074015037743259690113151067331636264584205485318866425725443886908021742996683918484665085051643173630971478164994293023552239359856851521486794948956777043967864452570423459651559923276628862801149827880539955741086537832096475831141822847409710581054647712369135970320283104377793459222780905170127656005256685223900507590592023808251751133533932851882801157361119399285616858606385235768579084643485604483990973588097334191278425934311039393857307037392760946770521583024031747168063892589519622683229382288031747122986371134183783539390971572371893937764852888272506451565870772073630696568579849536274155659983536259923915381641699252172930456214037287363576931681725250785871376250111760087934336073518556554784438472139740942921603495137209631073499008993522847512177083629390619148578139837974518781560352226612570326640163558511438428238896456621015358121907381776178932910912357286275696744785061073080281330221906937956701965926860015442746184694030461515946775636653427143147831576493223602798805287519300940920145849914929806848697168994467935311486854144717681008110047531035360257826722892241061923692377060919102003689878597349227023596466072507283574674422758844214622673803632061275510162783676454172480507171102089060859537051167311301692902979354562181001303256156874205339199852140880719704359327745442238679234288109503759007359793879083775822068065208605551487254957216778608466450612596876030245419888182917564637253907411162529063241118610372185299534451323716716746781005414645935298574594526952528353128273711886782697207611232838549782460618195162804744087935838864797595385282520282845914932027758219091816407890503909380158746627698325475156160715784073994570438414687951511835839883078016353331439327388529124089564202701880356179835365434324173245508639672888093505633772145418513499562871176796242378975950710502389356943590013583333223373765623175926139950706273519924777300696737195121788553309135504225276948254263890950809410767482992649793995039872673891057009272067486245212028360059779158179599156983989952483374063250089061005526956701463117479677467607620739144384497876613811674511846239922496472412086279904416595171586871708249888457572228334061240069123245372388098478580566992774071544119147648640991491099711740345187833302573132099748649312732256096293215608327523386969388773271891779700132370100322610875164402897826962303938164789726555961636117810539841735409233027874415843830789824527763154087502448400555877018482020770247106845372706016427686472983356446787337968617887052733468690575850734012316830144117116478876158065103963120703630192916157122195695364637494761688616207463900287237018501350490260817949124541510756280113777522009253703880190328420730718567075060994712966964836724950422467325219028694584905431248047381086611481536083984775596027968480190512655802150546177505665303436978450418492987085341161492543324955644065797997779017686062902346663611105038002227862012752681670974363876654259876803234267220007323469141984902088223251350805477021735524211958944157127290687937243106766132538354704983303442724657532206086131476929918500506362983851972528395233254908277946811238202433700583183204083272672003145655549641451915206285710453352907006015430109132539867773845910534233399751500704183734807108361126378893017386337486043779264387929749559830156662300433072700523066528112576719710820141064407314727339072072554392704850749366383078061077050400589376345376963758763835838851681078669557991615992695742488405094150335298011910387709114852746361551089706110356592283080719671581667360201591192448517405367146260895406230134759050650130131198747826392655078538472131525086814050380796433522488232667302861655335102873564322349957952190578484748872032759253201140868747240236689711332491354895004522536031754069432933511694664255181558203538707828748495034090823037577835426358455741747385861136280150709850093349467432124746248842621245459166576235814286219268774496276682777364628173333277119186454002042257806873985133871837699525641442101556431416782679895690805433025712566905868314762394495261604352511982457500708164450033202601909534171808511553974777575578822732957892311537263382502333929082377468446939045375669206026755909681880034222373452550655636412188665183720400764848354671706743170756502008955189957838397717910938658529084188493252541654075663718992380606480689088529587499092662506254984159447847258533962086997896883553529460042000054019114352577410175396854294080366543536448604476891328717551131394994623887778581905066907566093329474510943563746094087935661565152207128754454380526373711326720410545217298562620200462058570180641120081907184057861236407582806172378593228403039287885867471751992066085677376747184114654596612553075399138912420543898918561241331465770096567674961293945987293994154193467441898037121734082584752154004472253092180566640589639266583404522230274046142248504771622573932773737231822076540746310092241594033987212357451973755260293413848674285173017766109473118938412379795436235859788731020422671601467586387859040523496529593838760064175948922752740718590118431922399753076181578070395187003207884936861251760777903803102042667419644041455013083701310832423836757651962839130696900997098725721473875459617349277341288390776599910869473109063423243345271170254761139211688447949626024483476435169608040694955054715876780297512864355957695606680304757779326636170437833029701175422965574054580887017713680632903267742287528537717686564041562733367287697063017886250003974865389260975853842929462755637575670615786227395329269468768405604979752515241371434017898389123631042907435729537402405788641682151315802026545972730366101775730163793763484476698417988241318270787336529242564194592250925366452012107641640694195584584065509587746354887362270666482631086303629626157290582400899353512303229966580514464321890615190003532676139708397412284840935929646947105886722517873569012706031166768962105486556512653331696934174801021553026198973355946856800547399976197016262519494694437254057420130929753170802723931205992831426641161586137617305018548456775456258904438713470142492701294114394061395791477789047640260290273524693670994474042359885205241479509821405220250901148150716023360082600207430703433608187127446590399143631963154536620672582152871167190367191470079761352656355695807055176710020132388407666783975743727933933032869949987527943452289040325176553143040567284574815929954795762426627458341879501385670798048236193516687484852044627931804235645721444406719666113628952258837247520849622100692238659563816953261452921295953214131218162242979074728982872147304142539638102170061230556965545387328528453650194488429670817579889756791672142002588521232033685570810801001632905584133290465099434025418963871056896170407926689709686408367760639123970599507220141146278265347145928598545907886208109220972023275856699373143531402905017922781379506214932845801885973212785318144250751882578789883695088199169892632210130421552358597153704728971906371935450909812177839713251200985455041805598481529278849065173324432758214342496629049017565580627816141227208266272361295906249524407815794147303257504513292968142069176799053241889962842575726440359250362293705061743250176275543984419585248485096872911545908240335037711800578042445604463224720493193360596647523748956835899261196143812113469592956791167555480127583965104475599201403489407811293287279115840433490796553080023961846584469329328471927334243736415861878274005542715101731214740838239481973053944572531731596543464295508905434949376403881654443202442678464304812377649806511254877133712720445523197362606648388110572501822187011060714323267722080622867588782286472344777979747456095957440491086812931609457817917453546581903308992047249942108001498882931498769684934119622226003157091852659571814474200852023468280213136982915201172277967722136978074543183662585160775018003616964760194692167638849598906422759212067583546590210243194982023942499241228890976556380274786022691947305666811672043023122683970728640953577009664015478728878811774406030578302290677202219456431026101065919376764078556812665236043987252243169465226545572282803659277603389250268155807010875544458061458160814013473420422144365392445841319675233508368349580151557679707882461870685209366565486642016967495593881646422593801302745420078090490018425063588730179067915063606313346626071675744100978661612935852876984079023789511276928363131548191174010854395965116784613093478471914991473939882461057463997592477414007806415477316150527920127593149280502442512969188226562280372882533355883049797488546158603693562135984954793362659287113504239506608026514690278219794059587739407366773213938941046141615703899718138360679877928196655350297939059725427378353825730913037131728227260087625756772849428120767851125768328626454830318867888177942306803717736769834602811384180422261597176374334486859900103587303678665547685699528427405610566339570854805504474582088228258800145900079162957375074869073819978053627311799227666737674840265368405899016468361689021705402114494573781849708688537441709080002378596566625005837632129586446668635990497785702554480446997415731839722304823586515254107869898354884112861560406841942962591431678857183065097932473527299336246242701285557460058470668107075197629246188360697068064661380443840320613601454729082940024519648940197086270935256863931063391695754827754160598877106261669244841368797736518100522559572075462643088703437853731534473325733537460795465946338077223880116547355850428821645568439711433882224732881375164432020805557205166844571642879545933305795447352982251445959071803485698966874134633304736110606282975667536282883122790384114683026369949484928905639388273508127366360521743347659121524521050510582963233069753907287323952113092890414261539401682948277862432458853122092176994709298891159087952697360278039166618046742514747696432186386563599027694874177406020559267090263645334765124935695452886248658711001550150135573208841582012356515025570071727259378591377057319267018366048687523507636019166054422980610180533263927253324677009184297792820212912454748888098500134782919983974928018747326125320937009011195320238632411902051902806279039677856512253054354785818635119029635558210120476890409679086236924082632371493984279604785998175167957951106440020343451756909875821933827584806695854618635331269029532753750922102743702950025145282698913928169309541306795955749618090870163875104475018759319101979795101988326150155702889402935443802180265660602625872042674260654524454800481805079774115358441245549563390777713198799427310346047371950014596740724199184661916841784632073131965048280505195590600025886783896766445293037162052771974238747402813267492640790628405118835380653197405349515947923523470132260480088799315751247473028964982395766232104393891995988955819377257777797234178812445407453575076858265331994822437696724148844037311086355425920856756456433190108820231700759869101647435887937701661639738988014666335057416155548497738321192542217170480816880453580994686892449718961211392576935760303478078736695771556949937608433742042809460382365089680559376342944998046033920415283753127951859934289154674314862656430685206103202728957943399234172587601241721805045771385478172839028915138209467774747460550204596459382833156954568701758031485650467726008568642716890552130166790483634392203387317660455159411653566223234336019574360526014866689084571041543929590945554406053271913390753625601874427112146029883050796933573857748304802453070424351851347129464415543759851732355075008227113065636097586190728801566361338096094046320753803843417752580810190232040144288606317948621205075816683025733976486782263596476917384309519195757555873167365167381012592839674959096840696782461579315739661970730326531252806064230327130521192684923076493173660876043783864958326639655210132427439361277911139713253005245986198766574423935893576727568680624420083685772428859338800585606087256406757649960670967378650364646339188510109226478839766384010131746731688550605100847231089324247999377144076211295987925651861204196784992110523317884926909263456756735428730475556808030109232646311474497797873731643518707962972388183785649538898779525443292227568861439734496213670138674313148082509697046172668236653082457617287587208563201306053125951360776249163036542020691618224749384909030906497668870622275406816055919467214524558795580676109854429997775136067040645686644448019613955790604509027375993612621825915637627986435628139469769543931656011672610682396235355585610050561286047503902487657887121649611830809912808239381342765859624665366866862393390837426606593439799260445606725202044037376495950620859234016339314597672527956821868902554937415479892428548468900073165346505521775835529941556076686546071890503334841686893455518097754696905815242787918312290511900614936167346516261123169550340241624275978492507025586273065522483496074643970729285809364416048022118037674692328545944004089625268145162221267868193559148341644622643423853781340748246018180596616737838156903285859956294166436509311913779895001851073297117082776933480416345985304054159379200328550629631247420643068761792667844980993866727906973660137109652808623702065949030780428588784199219318293865952872147919853907654287456609890489160534803311123117244923056134196181697113366058615851346659271893784023507823902531732191006590626316276123229107478740274191636334992145785169697153734571433744462881295058456680316399353179935877542242717007919208953377241085766362894382979837869504040981660313396309265143382273864206773413754757259146784250431765899463656116999553119105151148232720434221360473683717508506991719415351472138402433043196485088912414269954236255519544764284020366360603469921721372952077124466679859215069896548461753903458653164381567107690663587573695500335485312206408229082416921546932433732202824111840156317282218373032063313396376123203176810179968190262465465962597473261341273166881392765327795633561088247405593870571899581375695596598360943537315311373406460132408446709686675549233047753598935231503803779709386537825157274205895738976614704654133421167209480995692666155432132344497710091940051170469276161116238660229217068902013597671712716330176448730750614350311875515610824626165467974137867544955032125987500908809518852459622234060098580205074591768612964166204371650970135304791203465152277803000722947028195130752863838121314308967591814535879349409762992999514992145707211879185892015106720409285392568120750537725505795655481867178100943504558835192235539649158117942486518942659501632699376406642700647770380522551476102760294264071845463786095981747586474979704366430832975055102978081205828720291377623473485731759082108271477810390984433160226310980090385065890600607218448036428740374180551538803053197148910252869734178820397266371917163472791991235724193186994175923033949223324494143456488367413647565702069751049965243403166736858071515914642504079559334385897141858742374862025418864556964910695763018816013907733124391311975819416204566399461689561496395601698369364331102704673719079169821497422453711582886219732133734319506815207324402515861151154191219386664165880031359440699924328115136410024118450467619878542804782734962408752213892722991553863360085576229205538512262375782156555647354061976527701833836039241592986044544519772499840414162512596180946908470691964125955193161825860224810637865638682801146961203098444200804683534321143280053899269232653883565097025926617567848941014302298202680334915856684337445975937605315427283493012349172988835229413044414552170187975198619476719895464082807379216068107209786787942069281154234224894933927525551273135611677320722173191980466722717830981257494638079614942534134335436707244431044946331062776788960943553713391726161057683001975397621145368348425802967515255980314766587113576221739956364002756854117999044021578800613682881250120663070497270602107095415829478304874833901952621905845510216951649235121937675815282702275604401723160806786422312845251618443108972247962178040371164814176357442466482825315985066588055944068300377395736447298962911171008753875620261470173661466640774772999798655114221208950377212987776213594188149038509386350561248993711373937277133054823765408679577769137856745968468267350568514112246558216546806237392523642002949409254649653633809275437815109550580741169675085929521247335723799450548740394039100927412144458121606280236514316704291029595346318233007908810156485629131843095895097764306984725993001677706380530835623887702486213896359431037592335167775118008103492494650737245390148776046554979648352436713027387139072075306047578134833699198789231024669496078042082864983668570971260769767887125273695717064257636177984547047042360629264666017819419660920719599147165620526995513042111822701242280576662823624453560713030373193851864933601239965409067934649661278606898732313662471824063218233520203449644276214842336067200143835833576692625037922197821673170362039865451549694189488264820691234575094595591499930810010964485750855880227836877127242046909158541014449151058161763968842289767376723054193611182933869740689158268451977510304512613536274997823793010069695720879374698563950014795490036022692190757882768034454625381998172818157407558737206062146860289410124020685124079052108246429190448960151581852462839606679627965253442948245177833356817101302155045118919174948920872664138683757887510747754579667861958345591018065394249117055981148841464973988288597160017337699722192420130174705151747388267428941027968050180879881432434335329045750098832613325468294085706882280789132056059277927215590797913251018656315760283653105321254636787461077238557510719785997472384915411453958291635589889388634679475693806738247579635163125428339195347472451266467852461221465488199154499767142017429863193131936967946113705932658472675408371309804770338999350991360344800094581962223863940171740777123389996527584022148481379080165236710636406333914751806829910536493197814674513751983271519253535608939893976905241625155877048194339869975729533024047001237231369953952379204509902118109622089029484528826433146318718090880744443236180188159192293453943465520276060640477024945909999725662112897501709022764208520545953568049733950994052239734923485455732965442703044620480621010936130509856524507521385497542601208289758076304676035354192654011696616810988315252276286812260917783853043134895063990730805182150339697004520903604783193092531383651424266646175131792816962518606807195813335701382229630521082314232918859669878400294643246231742520344746102087886418589379789558814837215364068591829439877163983925968581806175469989043768542942174083217027347438034732434180337083994276334067385891950221552080505614800344489238039926031107207680138927330261274058591496115341394123376291910744988169208006694862598781133554227747661674060246544076086445619882125908681634926703740719385267725803894990304689997995421746904978485004246301372187932449820829835772469167522984834224955891309841140867253044397171512507751923413797714288558336189035025494414735204797730658140658868157171774042655563107712638166387216638976543678185823177326810222392193904912609403058783753285270530901965915527659502961715152789217519736051323234511262444707604546613910715999674739870063309512257630448487507262453869230957023983949799112976791823810595270787665858710812902127400587458543092591676492622539379394340815226314624296110915030146709942747020582755390046997507496429590483503439500551853597186918620867517424976991786142326126297715114209021143172616863869209626996780877339739625645220413722300480815650150638595143636067268686988686096071546635244764585705882011567183238726791151957990482488477087454219604699855690236575587098087672966590074216353292372881664666511879286634094221474627016558200762015662015013134587517236215389435121790045238201254290955864579490519217854546814527271400551338840911307711541315833958964352996600608060738083113965493413793160562099896361785448865070654610724872750724860588759181967244174110380034899149291347153473951606988522010419115595579915927524749000352668172416741043789522313402481623701026749934869893457641729799932616629856664151823286791358728416602167960601602831872022906054955953483921173920332827411795806166576055067186622482915203524158208753530856615409075443946503195047417145865865117813981081623582761641645353732135210305889340915423247321315743403655483043072594437583325224210150832215823149760247634510449097681254189868723246291891567701973608669867029916465070245840445308505586678168612845982245926655051718705213448379449858026874375717554558460092876743564297683398278616543424610910324481406667840526646572951486527492479771728817641602834279575636325167361120199615611770784923935829182509531714620535232675919947740199575319802753122294030352402363927070940202803129172520687317077830203208505871890048478038606581630182769863234517820040220556842452969397770822299577985856438350012903168467768924432493527326196735349645509967268061394117237928502551224097537876548524674670619799558171174164469878962158504701282087028305877462174115443928217359958184695826243837798148493562887687034708201206726310852327605245888707012309620782580515276142689057790068605283134220635825238521611387887309866203800068216055828904545677990169867613420411283438195807216496362358388406167567246796114247505831768604163484515782386959145743273054177816561000666328592605844784553271688426115277304876632448008372446317895261732675062161580382614442830775354898826076638917252337830405501826102838130651615243740396399873209830245736015013253190572111309590600727469398424957950475587076726005339003105395173851816412005230083389384520258166059122983477921869496490182286348907763300818741992005425736734160731089717015243398377161456215783839860142235556623464249145074113129062188788708015422289683013850290390692643415342214006731951981611630257370662188795297575672996171736416578448259374825181774803548252744574109444806460849616499344079055767379910607692539219772466861090546432990627301348035066681863867517065741162063525516928012268395483706041746115213973594158355946062866662767218520466908343910997994918249786530082278121743085078599365522539177234857637125396490073483193204034744365534933611323673628752159422958332487477951268904248612158116589275255507804277109132556275976911729903936855887098266586820822223973932348091374750226883054370987412004781415839201257219618716879670308833844950192141874626377242289944423867298671032333316453046827660073271745328942738168903170528069650631812888554036233015638057507715023976444695568292730383631528932741910889038013856715323441375817549132255994498531055034829143540306883635763674664677693641729890782481001362830362095185339913855146164312387428252667607053512447553334123405635717719476202614355401079803732758682719155894481469044304485216557389093794713634246289612398326240638397874658897876778314630007366741958448289264458534378782502918218737392120318448205705345119032662732051311183176390873988609592601506883827446290005309285508568340248393900793678347492473066106339778162875725192448319104875206957178052925932498226932082294814560189668823646690339326571430016931051228366994755485785467049706870836740468080140969036771646122003163633667352645743066331048060889017817284304506869376615569606999748351283692722174973298593390810388570995489761789273843897831008285949630316507100438052575698517615485501616729540526349376582043090728719151825026312648038838699821869781757782654167872658209046423122316512735792248826989515863335353429181700833454360254024973261711117566520036297400437370528620058378414305453128666942945402652191301977894097146491109402722661224662362046634149759569332881712165932681278191364630659583800245471850962888173233652754686906179459973679725547434578441242667294286308506707220848399665809983950225292572822752385604384961556717819919949267997061093590556353582425644249800078128435654343310595695142269155905937882996018866617517649071633543505882797797262622355221860066334557254693842436279433615487030497279243860637071867271998706915769098947048015992952997380388214103243938105991987260765608526674325073915669438537437975416159568646295408738710474284726720939115606693482193836994489434373752184688802200964053387924116627737528768073689861856037166450423321983770917124687451389404965037614073201343027550553395903335928880230240245631420523875082428632301408613807696188283179615333508772157448728006020640427102331036467399318724189778151925683425203468164054557837923475843765007368697013286558868563936687123697606044341370154288409918784213558097398878457089563482151830197767502331644298141366502489468507695454046655155844158325745528655961538671528079325680683380440150213750927532143784153745324830834965473997167336229359162972928208481191835903038948333142490900812059149541877537005365123196693122252649157500031244076868275538650077930237644217837451344920848619801671703811536378017612735709194466048980354186943964340520410005428008086768022075440289490287493337599036366744159103426732456563505965234729457833369962302037261749514106685947802832006902177847807519036519609359785498864584668335028413869355607852614740769728118263868106049510696239768555988395803867585328365245510426158412171166192546970548910973965673942705302737259799668659016477369103601338513019021641348494392860168373656630368926741497355968037011257496611172926826988858015302378083609167381048783278405061087893028769906073361735403490955258909050001911992671765492293631330829293304421062368260767058954437335550257366433303915186158389615869068419122950968894545382802569217973340306061329022779431062463410591344514109652402936313100354668817675604224856982205365559768006517686262098964664626950972753384217100409697735503389141930766195616781683270478568415804855244317168659792268977219720962058864033713785644777060516801585430347444010952306450326824100198935934798771424946086224829330167556663952539409059589133909354241878438090738077144081396638410379438190272223210801669168103738202164752012417754116541050804873266856515076431103881145032290664293974545728572106052489974312604528934468463710830594283630485206591007434531055946797044959752004785003681140043524514101800532256348034522935090399830065579213525050909304986057938606196248550708607064454257188895379511735083805864031509475985806571530476278573003148887731320688444433559820505717279498755866683506299343198826695758365444404938939481705053181639815237568689616060329888824893731474346276119027424085121150288519388682849856501560392970304173213131621909234894172272434449433186119692328039695359376586399017743422362887972969408184904803802376654760041634674331453235823718653798302153382504735494392132585592047607333007594590612604247814550176909285603697886880242488128219355068156531471737834361333390354924992170059975392299881175146840496236365740903223659507838076361481836875948864911255388357674963829491003987715578561080688971974188671217647178613612384120884389802515043673485362209850564918505259451354222213860553796172352150519809257977759611715523501650658138949767571122849815241633909087654398671733294444464587084624291557897958011175409524726453659843121900829853001234901396055114172860235577297228938906502754934899591311665487629377801190012590094394389702657932785436046300796309354832965372853002970045711793091472264743427539026423250081889749241222226306454437018637196318277707373615021725229921837601281362274548826905499399518372723707692982140914407433074266402321845695617779672786938071497999755753318074348293298128861057678362810278662793938752040328154454124216102705930657575741025214000214303466933095047871564265558153017854376448155327652087717113881872465622666509866729099721246778798554257458243301358434853669247055350637706669177769088716110844346671501599494184742773948167399742711038208800348053614791261110658367856597777749776706140980460033220024257928684170294554196344212714432806584311004899246325547047612916991190701257987579676668845604740771387183147060520559260248863917474879025355054900626678745614619419020765603443855551142825206597158720733360441623695232213680426049579097879633024990961139920381076889826235232719588337734068287037465651631059811058428932465997736579599462076245305006626403584197675047123597935971137328882804164146505493436148031060506544572734978493811364226248846470626963009985331395088441685855760455770674166014074522262144480538024715877125986266147748947029917174678594440251897060170245944898226750364514070753708988545754893474754244483007711952207604171304982039615675347184691002291532426953755142375901066428438885055328853979085986981607785547262150239411793000153702123762885744495415829459971307519167809267551484341535979459170156819784574612870830323742671534191524027695928146817607101679531324575245826221568740832748004787067809906320279314837610128610613403928472914097498914188671517171129014706962745378805031969059360778592623242485583878017654649224588718050963791834009519200126805071588879798278294833101873200435917818839891147324990829139250855577418289805727717235362154476507914136740015964721549874696366031310077952400564315282083738195761072620895037505431889074716545049742458219403468734458388023744505644309462619510311654266480891116860429280530798313371734574790040702325671818042259096341343931900540975703496588211724127686420939428346153147149027056580940081865403160727101425360592307397814535099242129978039542666988039678434475388856808603898975610661419570449973027411080170687528561537065304231138406948455098715093780933979024439796649607396256570517958805764838639130105916976350740427340376179212958588111669385522691701247842743462775330835501397319288171959302901571746866945459959285937299399778460105630506051444732503797802862320488439025688233293376505118146150235059421875075069322905810720625853646008533297340310670097961282583541351904979303597171446396393232232082522408170704552647146301154558989187454608213569569825567501208964245060114541056487362021532469427439516896679084634500846984059145553319219377594974355786671781161715425262043830432037335473060589571387700945757632547992086898515179890745587261902870918862259543605261894475892083051135582525556066484174063364907469083065791337483392540852495246852093240034997559852852641584983628151539204046796368260183443983527140299706376700045182338269403500755190250238295800892905488844454437678203706113679612816568544732879244294700108872051799892211088515202953567365680406100959322140648086568374177986187886469148555605658373737968851368974305726975560540055700728991752540806203013438488868011349022359097485731185512263604320311541401976030777505888679547136866564201708436061026672731498885954397449480754784558100182731931632488412804488722296956798550154648557804867365352279028369979180848672306496222100452708576833503521206968480181713761632997561738425160340472537100056351640342162492027179668249264589309601826450269231022665705416414753472034155491377042150576445280780903524839362109303102288096238486877923145240841637271180953058890040688437667814314989142998936212785452601431404390484993880155633605951311673189113276577788136469070847036863411196323063886507480852125682842257852524030869937032556920939608185874141812304841532040492023498900273244759302032379479077644475239844551467304403210968985244961967143433964895893190552338498188527468449248363146342500064216306286868588482745331866992673473064273503636400285602221896635011429182634319974163253372368798553451111253055262391040826399709345081466725213811059130472100524281898862653316946933195167529620930675229159071599989846179288059262000848638138811280944056488021060488658551918467023654217617835051817213207646197155683761688428558909724071305187768197648409929299840192324646617638342697078114535517227150237158492035179368175223948578120341947481027899404127797560554936912525226575396365924331547306955812768357504170838688437320283294949859035321837379974664552568449686832942863724086082073553050317911018102737689333303425497986650670029373487484840473624922550925275236998878519466268040716481600784044638510554862653856604719072567866558909272450048108463164498070068076765323398029065990387621526464866860820152637573160441107769446441635110245590163490054686816193920586396339445981205304151923475252427984843865210876349353365623032663895232846321198943575096593721275874033894218152302901988033232519587667689849882642020169647847111751594397362245532687602444964607588769013014879638768152617214354886027979995833805070284495759496653150611171945911537874185995052465766733593918770781525002556846758994054003946707546189737757052980626588353605611710108434155518157243200941853345062706917638086287073782386958698057600057495211914517416647257650846718013265084234228281022521967113615581858338887415569921239796922719885147378525225979085933733549207275722646289470960881165033604702052194815080221807857825787737131239959787348989617535605397644340666226839278165794382139942001861685195160889832235760239094848298748635038738212923973316300742418301815488232898885120752031801017981926750565100682255953572193558832214343339568093203926165335706083214829457510488061733899680008770296039131290505239267854079641432383999672788094924997674008434788888270148675427637190346806433492332728494028096873018779001610994728181687592919031580264000982699679679223930226846060635800887494970608951543113141468993153588787953439666467229696721468618676058791215535292368531089861068212380998971522359758020569980279689762149107879358914613043632708640246984891955070722903802602856439634198395014071410427140975203173308056768940619002791016939744581539041501281049214425715334451392397077445715548435674309612382031110030846838618154886275693398186014047229350398574038381245886045964252255217862196650234345826311222711491159488725229079818652868546112950514880944530613471741952838276133802429047272153893239995733490561823380738082640939870912536558416031074703028723086078635381116652863435820236335149039516357976664323286769000546942246079673906221634824353409744525075765119376412678416321187857900232772727613386131103639407502598080610436250306300476835303087711794161214975664998273840712850495132694132192550489137033089107810482032135521288236134155288953186415664275619246254877909610067419667061305823158846861522293436052825560272905710599947467543735480543750183270076625694745868924334086732111016962158145443987388015505373682879237974649369502202647878409058153480721322106289878365092570092659864576564082064571105773763122218744364034977613421496724159759215986604263321658027785078324074905425876793610368761106119214855109986349672273923269654997181777406704337684346309599245725382659075685221726762357057736098855888207204069309544098363874492192499678390086633296482942183941473157904268884220853765755403694422270895889074690578038347035181296672713484828261972656403147880343907991295984214357792538710686852709450045108554824443904668607858147829288713964142829917972268916477722626825069071308916414840279640602274455636135843437394534314491916072617372207357245553670337513554059697431376616571221948652976098718590825948839447393398396384568376916635058925913368166390672626354314048010586462733257538106591406610715002373280539021352285051938532681146717127437173523281386357401987119630939358882885309304491077111031091275887552365198215324038730187210144170155269921632825889191910883254472683316877881097139064216804932727057447588694898171291232877350059229951529394188474191513270856784871221988628063487661209030720225202502346877407927482364319999619831991764647663239624313504430581672815605427345141148856709375550924340666314089429635485721786184525037411395869184728137820413426989330863431354653105561354753924181119015463925831874327078892806689657848347519645493516259781232688919913783959680031854453297991892786863782130949024833641856705845375961173580745307613822935656883770751180639947669277394369768469037464048814208287422867158931605842501226386407059452251292720485836529693764587670690254229590516781304672759760427655870869005276609536331230135377718540322707879770995256129421916913905875523930913235719219517955846915711561406708805754132172112049620985390336169665782212998132875734939799846068888401064352064758184371223363997745578828135701477863183150590268256513077941150123286754448095886355217309188391535652333484493503987416907094263877399992768526273208765671199601419216260694993054152314165219641921067598741817538850056213487252167934030623778618016357291669390144144778969533618614327968782538037382578354072175125872414233352123389177586904703562799546467124397680964734187239423588793963904245329553101591472971335760720828004326592999128996033028102938087306708519622438188337175097093046453113225265333883781176582496520002784893783042650710192142503182918285646341148222501270121474958863122776868907153688656203340855100867746688154430836990178805564260576576984149426295081014331429259857625877810057602544732171918739631686888989754644131339110694412346973932863672990380172324234278893867955986010365960906099344990103865970414378913729119776009482922770090298115673200348726823928975950989321319357842131168636891208162350896518581651412024546976360630691534490738412132452145110659572955933232159353187265727774937084451081360449526732050871816767983869997178657920806897672254839937024734542954761109799875518721146946529735600519295543260389526512511042709293281725366287657245353862157338665756568681339741410089332315008162082660226490367919505172937998098085013492786698466464369327851436347481814902186823239845158422879611356846443906556450663901273671199765840702453278774431071658787514925456854731515060750102363783958804831601695745977028727306266735027829418729857182693350257450441913291351646302363324147722584502077372726725672110444386284743926970612593410231399208330444181451124255005820801037763881695536535578909272335093152773305000365184028802804709512002415493023781679287146416552550505678851920871457784527009008136430374793108795457000712270224539991597522347745794485449434420014646032662650707497097489143295370154944911816418562040608732324671439849945617149681236325543536009715377054319252907690978696931583267305611507917305906223035025797921836243979403128434573433894628829925780764563530639241178452498454665812117347361349590172067875508505196857521035532103331958944994401118671111344885307828858110995774348817124878999310742760822522747451186032285761762960318989164073259182197082160280657240876514275064397015410883981784216868103728136784301187907944572988127010508498495272575274375618784698979153150088655999912116515599202997405398716548149508956596495954154397061119034382060099613351040898743744116595836746499975067147294831455885585327683574243038289386732306733527489177732458211422642432250914030029152923155206886727848117036018370585684535147792074365878935171304919401669196085069200121606805180827263666948913730770831696262716409938516190197130658705364941484932222244012548717512692346099037196807295445655640188836835636639701623604642332370227502686860018135957620719426682831366502693183018236385447052109988898287374695436871531354575707766074213880642821130641901832831958223077045200702127187378720064588645666993452306929186889345053103615000015631147171248238958281970736344408646919584281413908373309678479678956962583952566784809910537944544087947211653422808439430091098882127820337300663521066459156458992362392144706725461468992620575852649292302238648966039707760472292502039689310964966090162701416927301399484310969128369683210852074149090533860950835972884009860297534076261620146814390246723462976375166699162699940337068492196485645488941638326937894436100333977669897218804678186888155273678463753514762281667080339172780450179564333127375290340605225637320945445089140994191899152787224659325147580641584460064695664061917361075901645185978662693765310585045215822304119442952633312228562284984105546513809644190853166185551907835776675310375436302500674915497797540603024898258467494424802367134604977630814071592009439765211265863530025822693099983587555655736817769263824073886585117322041198210389654715926040668337653149787185398505345355340652508207932606304611388286997348907059150488279423094562670754074264175972154500101653148021358744269920216559409367643382042509195286374960246549551172561739046986717128656065607432755808804696928554931409954540097441974478024328189684114074651067752833082987083323078309483538825566709007061486648831251890179444563762329006464836700915350776151699181021910470807915247762053159270338095200159237456940294219731276602966636307552789985525310365863462866682212712032182259451706780827186435313773887888974711107110454382963773222407365553488602971240679503010885373040795654952899836410012251531826902589501729224110892142589566939301229813479725756928216866433897415121667746914540578911039211356903139481323374371874801066209850928903184865178676920063182388645171644637418419779235191595244037381005057300213490669297413972047842995898157774971720044430832130903271825557288777668465914938999115389889690699897377082642065297682813920005681202998706268568718799080684888389777325526551441183033721448472579953783793637342121721987920921651891223599858508239821751822446644029621247311940091288594287781020902866832797687229461418993374626438018122442558588507077019749650652295899238471263099674217501885252974590244110107246891712619821313287202143049006619858726006903736230631385545390097971298943401081689729620165596002095831174306420252483250112206881772510285074922548034808144963366772864706475326451700102070680596097739207581863093561114771223158893231040404605175703294975388663356618570405183541491094109852359233009393632370805601669472208209600926588116812268592192142467839327699307916415308787184624153757376097932920428368634195066624377460603039544159487078353848784600456983903947257679235741670124691156485498602626323761935554023331982223396784217907560648732014304695258746013452851079637397074222444715420508881000512083131775945917902539385294854426249519341718145595548005565822983409878391030447239313929022576267474350936726550305697301027403898604615453585971954690115666016187358563192185191711931743244852387026441577537528347405735645181037566118401596883809715787833587853544731047745098201671453085246291616678018862160359302433538421650440181389525263866760025922004837691154645719313353391621064028362186360728550949259536643205368646883074854093925576169396164224035074673595296387631302272493959919211737682766291849081977054227220278022917205785348205251644053704168232479518470775188350438852840291012263585615756569440372794075565208826288459823051930548573734125871655771932997592702355243893683405324288038531753854181452676097730702182574507544503817973622694778346739478067060489292730834556902942421145427088269699707011220612224367865560291298072260910703016897307333924651507280346036694750768969978091800931456121156845418069954346027581973315487422234420622517388450531679483242790238246829026874883816502666121085531780340348046920816272192887333539046313848192523821197203917040061903993711625369863762926827577271651363038808615428920157090945721524984228611997962171981715926559280415292015949341194046861613531270908466520086133358935800332345649501647971867770914669059217987703732527309642880025808141089771652352615988802580222567272773284662746217527429048234341091688909238885247169154722326805146661840802843662361410899568762423117137483606428469867060652606285116372893804637699182345934157992430073397286649736677388345409321221545094731167496757690178286225261120969217448693058924726424818990790257965774919610965321032125700502604716091242828823972462724520436587079786219084522036300898678656401441597268919858528340950347248944118148930257735236879122139012441910526168043483735306700027646664538052934443619573029526924163743010389871797224767892634803858864893858799635786732892249888544702689817973902161783584576132195313861468161019698750082196159057516685071629822053487326532594722897285277396196493291237183601928014943807926677362580315805425863527641204126672603061230587843050265446329941202452800636119123590754694052043902092293782727632492546749719287397198609115204618946617122937469295045249878117344915220751558569166795251123377638965475627898092530023926088249154971767794800076143281434157726926894953648824415901390117638153292526021499024063048995919195225532188958224932393765060893736196111390291048418953728968916370077421534846008279925607973119116277872796686388633578706989169873607704286120695009461467121629539024790534777588841415074702037980166267416448804739227609764720879330778898070362128069237667063058747343729345117144570211554439304085610667878100173207354425864075726129879452878195613401344984681773607937420084412014785004696528144625447160271356946056957309919979283631631870997405168162544294739461249943245931745934909487186751192482174866931442869949231761003197729473403191376319051722111344163032536042668987043393053210623962992914082112558807296462627369020680609935299228804526279078171855161317096161347846423900773573720266502060208605934417715710493477577382147865435900086595964172026712932330221225271122481344071541349291522265104003893947301989013151414231403729716556489328857569090186089472625884721883800961308203808556463257658309036378744387020998210110021785226636902742974474009270887787902722409435314208532718617177163151842102145081456563576809921087553685280891917979108697259090623409916043489476371353410489160022328563978726139250248905279768719822247259186556409905225709835716592112831400085746683565239533276123936799782232288937631884782601152804168886851197190096149749234772116965096729216786266603444989653600816933550693201151004902024793097455888204394431155338949309723802094360777146278389150555400734957316182762909820313824961540562325106318054206223048274167821825009024127871571231862570713337632358107393831531449732059365659229992547659598385406592477494704363479939095373890264393700665674556282052010464694885498143558814946251918295291296392101136668901581720432282694641372243503301042847512741003655111834101420355852178199768446565256345156191772830781146412319370189235288097580895664247411323065160907905277305693399127427781181425647098747441185052944356617370062083982245064145321857195579162575223209446733818225109676508726230708257263138894547906912990023881482391655288035433032906295842375722492989379616410850420573475132913705571010704154397677363754489308149323711295421332341872489720034238642414767881437168049035193492303456259275676057283102626427737582383982776154148989209599869126878750176593526769107398317130628013564965045298127493606928994541691169824906687186874063107257124262056021664398950289639671003568618188764207136429976038930363796161663590473374525300055498771766924311438081062477494574396052035996556605518392936212762579219201526781315587769484551992384582913858432514016465848402427829298993813353969130603261046092063947102613204271513202732083858954099122304497557825799425949557359570547154357627465890581142706603757175030687159027668894633571413197538606633837870464237414578843713722435248592489793603407595807680531829838882706367350817288353968321772507226772709452097734138975127241787405658933069404134634405998175317688049201967156999462797120769642540409977191667084120930471398282884481533875457613597250657716293071223914922216485493879026694845912588492481305081330560967997959899181434324542442899543267069569025626884969167656192572265921362577081380482639627411859218764038325458286565805740346476140481999379722684096648767166612490620681864681146028826715821860731680619624027996104361454807319570457708741012750536677671410945633936216962933460619516111196043516835102736010670029913478461870171524168232934598529052596566471283058437388612155107155264307337006925630412913499162266421777847169294831677963327192163336072989696342644663973443528635452705851151782191317036797121772599159370219356732244154065376424501093209046574819573138884266758638065347450829298798365533225052867015756365702632452684908383085953619001236178827887253282669728466691217755538995472058620000538853470584383134241502056858030037392718606827206661102370651099660227183175387708376108407852870493333168105107506187184560778592299931800945909696901907383424544187272380149658121828544027920256533691469490445388914810151271020513058186350859202429933191104852841080521966040595108438544842771049027024965919828574387091823036696336800417561822278136838866071813219057102251731591525820067624912820180383818246316029748986967283913070036443262295804887957841223996520145563996204454530763512148683303546454597501425745166780858623928452755432009129537807129584333162777841832680737503021459743755984576217770568564694638977553037303845129476545457196233344376095129660458968548616988926241605292622938361128397169320600275342516335642174857382702553484958157263680486374307276246940658278566188960601373890693298545011470299985867641894415047523505960475522709130328037408900414332650035651671739592529565632722897794650466180108142113757405634405280231254008064983402587503024366583330654451778344637998594998096974252735339458358966746424548694193496139499009072915787340736633092608012256327457360392514378495899645581515985348776976838587756944799952414087325746879060488963092339028487255133391682143228246428769930075315215457926102462249036328709530166700858033816975080594948195276942527124464244595579207376956944135115336103816595198248622878790442419156011598735069969060376619004513359120986964624986389340466400586093761760733395361102308327255352135566494177170090977540884292814870096512854791483973218093245042674216510671203070080913137928002914553049899573072651281790116068463079643603788869355117462839356106860148032793939223282199979641148821901440464710302611310339232904057159234457377008834726956591340776438717394326773427155688817425783185194660326249928686913598898265115098677620087200953499148374922985723457493533254978484223754389765026849880327826551312355019998745155082160024055174066052343822649617289928546583188731817375213321888610272292263081682832914568540451603138507424982427447320397963481412942893177573936681394557943692213838261961640053600399033249618120010202805499088714238090299298781761494591482053087721097096770216726237544418455659132568010322341201170058251725015845867106119753449225938239560058469026827954318991209233185232592700670033059857636584271098309875932915822015125904966382041455777705656080599711031507931291731981566334258578946568255136676160946022919269205957818581901582776284660500033507154941251625531801233279341306086817443316814657391931142507828281479806724690993704947828372002704745931553044166086953904693421169344497951565141904102191539797370859618090332542742283903008522229016630189773835908701659648776912522492648100976808576615162780929457447979736079794888069410821851491545622104964469854113869804209408027213766057401817669339676285197458515543056895548542964957192320345832745367610097151126906893973447220932098771894626707482130795460988336668538343662436472204898768402922547256338523129326455634008616442258404967540987521722650440965379331992358000149449678611761429369546477253303038797807061486347434833629868080661845897664946056056604229837971942124339939527415639119255008035744002455962619695323504210114961127593583301266350251633277115646867720926383105775609770120059576402346122047217668548730537771724043848060604901924128366888286423091414707338022472350265699446938788083793320427975037017612824120904679346913278763025778910379516178852070924014313422900126716723029334902952367868712288588780944235955047093840364876635165079031657238052920557967124293664127463767430711205674143015405084239618925406098250589876414177364932849209606361844194156521566637119865485552666639076128376116035994541192966372562602094740257717062314128454591452433658991967768377555387477863334383220062896084557595501525002479893682296093280656747550665521405234029625609223460684599941295457176632686299020793405846993537415659103358575091282686362980620214682881448507435721955425051416404802450713288816236431259382895992471650884455782184093351601860477484466275244681845507297815811714585840624488726814200647681658048946754805122943807822514128405815576474850444902652047649970591874783450077356022149207067286797772265970952449523268666966507607979543795704614944210282874693730697558770939137812995823892446243408166814034810818620962942312754460813502994236526456475725415359619406986678878261404628664088053070313457742048064607440892967373507905604281457716485321525893888107973923290814513597494761360292855802321798588601778115694167098411454315215346148196749385290722213244473053121872812865457558032706379361420050905924200182081273308749910873991475306047028491035332999211622246813187126005880942014810285392240147797374784322394734896111375029237497943102983851480912536092998067953420533953215220956171731189618403126950700037488679609171071077025706753228017173905592627698697479938959003918488574957178183228965100720749666282736618382793579484548364518612605089518969623444635573119465228620272656334974377522130002056257894463893243092243856312250229444222537114097174947103392122226346000865520901394328469394514459423045864858564289127653146024562395225280375017215147924231357039050822015759988056120243035562441815604508818611909421315752476944064928054954340872399319213938254015876223800082828898524000852663972706146870840502862377274921167159975591225795847946032295821659768342351622598507400563089054885613500522713352427626293211158314468771904755955411145097476571817459740449093205627120249810378320225813178680187225502102318281623578093356414792798501933290720114863034213266057574138009071266581762065209516464608414093878031293636492717946809407784966579838548939169001950922272698668159699951645486657332244673134122831488628113376144278259416812462487330907902938871784143286605359883273955462611388327924860014793796817710949347401684106802370947209296399903936781089305698478868504978540889546962576490605877223277808735026814745477991386386969603755636457073066213958989154029336022582197477952543628223066519992869896280027304257790049715179331836814548075485989882158696571347432638541484560769812334980418343343578806340675778052719447625222683096836932282319723239715180824744545456706715958490249340662413632790294662837421004329801367431357950719660849876881011665565163495351401136154717314531249131681006060755115926697483874485008175301727177007998808693158409133447428096820543196296529530316144895791674445421553591477717907065430979241903626385600578090622468308125891344188696622881518655713900724886877123221911994726307755899412765079303938680863907330122746939415106173614009706593416149725783037290375255098889390724585935334841763359823988113452096494062261620943677166853110084731015081772354295803468985873390586324852205462641696123239303131019921884650200120409245067951091208981827223207078372345416548219219601762838602783212666454723316942864352693557585376167645997383501940640482747125625743171116576371924364340180192289338953479677083850402476366511030253336140163419710823869999582344762654344894250598890824681391950990041636541086531483782109738373294541041031707772826588883717750187579657344578757741616834097845887436468494908858223486693621823692322668182990435905517014706093900427534415817758824924702409153343090641813141340440766780212013936010501093890988714341065964941909905853118549798677679059011229528913134815983066629663327903856061525546216972027352850416240549524446841926172173163436919647164643071794126009066823070350302816008398726228332995766108150373263384472837949485798239298519266014574969976121694883538121647042076633612186394400869421436694034298327940582178495440915438867145819519847844536284105591653518326943987207879838426195826333544336695153112340652700538554682723927897747699214337684975604525222622815967052723495442546461272994523344570001139584094296569112421308688193362305223412437537945812687878714349324710181087793288922955074732242118886305135080644147950058363937207139673696884781659441463395278796318943677478639691354386126105875256095384034679759842154276046101359421672947447143337524802555823814831663434097801946480945690313912829755892822300326517250399187987841933142133610119566368616629884368812939096953357263401210217203372419756374255341455104763134599486137462852269196784679017902842301640156797918725747485146522081587749581312440145414797966182666849587201472997287109323576417407982637130505561592882001776747905265097434893259335310767377742425224960510418031952907792167598941927073485705209962184697902410275724830391447352755657488751100018774949807309836093487090745926170431575696973616045388736006688290773969976244014919892871032397003842480603840562527437348661140333234510043086890045107485514775021017535448437251172984498909404640976871681281553607298418354327111328957774525624082567512060617610704983560584545661279735057875445486444403504751295462246372261219926230996401814912642050833347186960943501258564675236924982048540629570273375426072833863214899424885486768733761132353622015431668646827208172244769995277063472517467928753641922657900276428543015604891375384369833590074413427907912533838039852131174973922770876851749905952598198680189685084942096238577259841524227121027758527101609149527155884965092232131538780805341989691060887424198111504624850846952175930642004538194654056280226554332253041690117700851502514247139051666747364134233737076531587202764548959722913569153794762967956454978836451064036456250996010468438184568105759648011713728356700215427746919399522462729467315302618558223549520045919163512214903808057488092188301325259330427333696822566191457200829014560108084354190030265360234668537107111193455575326331663809533484426383271169161930574238857249802273004113591217767584886307472446334519058770054282407297334340179919950492446333711147270217377381741516418283060646830650834305024187548707583316255821799587139753555067303883883978759245723933656197310652891814478030075175003848952533317206542576114309163303670334655316016633154259186511485078783588033022816883425479872528624487906703187524021482274712713028295600455340112598457242952064040987774771627491198305681126857317732546741905904561942738183589838214688925189012701045532326921144638600670480505261184755963341537034739100802406170511769040380301861198579558568993056660240622934840927187899728837744791525469882746678353848444028887237107745629653941632257445036810340669973281355701491250747135977823212054202990148610162573267720694383883986124269379766611155657473647807904776015607590040376324502041975540683946665718992298546566528591269741574209447722417384907277042069652615687680962800224506841407763727526951964586797519244078875914867424275773081684328995093744903807832374007436227858341717967486193609413030783584126362021712342822283312260218906152817346719338750072262928373959747950160995710148990617668598929952351952119036948672483607135154456137792918091231050184476081766766343522073523226642457598595885177369264885489928101431630428773632822041480188319139321353298748338115235471022531267804653862621902757418579252602698669863984826164027695794626253007213943332993632354553029262614211927672400660407171468020946002797406072501707613775110450337039679798191795178041693254239266252223274456991829612948513707108756971914541052465115674217819461734967653396185971212442714521345374805834781231275430764693211930154379334848296008345221650081113432814716266086005306878223761982928830378846108181541210012942851208360642759014646618457127863526762097824120176708779319261784944202289782989546404888824687237756714611284010212894928623024070243979054960033376966614428638214157102844586972583392063798780014220865216064037889068891390231763320906759706409932738660826859254080618382795329210009383779293591355638879903927939846445070116414225949799635728466564421002651162347473061418656163871854463410104702606670553360082262662416366581325053933458068800493247510046721733011623187843379753021693334996362151642145081737071134320739967893871189282445139757353033342635313732458912168669582808743955765273581097877497148950998538141596667522704483204172160306527977060725833061391246846218263724700094873680905172463365821198033422795534278153693318740014316973277623921853687861077550796737370245325980093430072008509364932368503143361064462602207944518378911707119010149005219863335776035413947895063395675867856590505462120239378405145175203314868102129664472783022251618575964800926728703201497813977847725795739812290540223216749351070016397935421901166814011342062638834293962336299161110420510513842884713358202623697698790737597817492024262557212026668905468489624613062842320713561833029705854791026216028187649826396013133807377883860291838203635028331814752807577124529467601983202862028501383455630039581663582868326099485235830759067740053170491054555859095613930558308580891602840005710845522801090852038165414107503553885464156359438273014777723041031082360722528323979206693429455738289541814376157086712303365874892038442518583200446285726509395046777935656365830358223558077369945579904164291257827548227885888102060879079798897602619216848922453561280873640016010095586534393976205543244448271713890938082869530551898871330204814313571314267433337666558377931961154214572478250559374611328928939400738909590170806232763933547538495902835454979192187757763784314922532456583554618243558384315899154849567003369498052760519700083308714646154482620428208666606783734329061001270127881150053069718540269061097889703113190986535837333152724627037383823534809230975086517200491215309962159187402647399615431489180737352620075462922608458823585208965703507124761934214348096600814127570326211242166753584466160390322024789500632929241876356838031559933887340977775471232847599663048690831961172813122137627800783730523944962122164096648126679419062549321876779098035273512667722394496886593196405866811248262157954634184981311289867751441576530682166488099702025633319067498515635203911220009645625755401240542145766908206900190449697408152938466252811206469265001784880062146842223307232613911787572029270849272491913629522549449165976069712923452672270216116970859156251220277507634354706257614912769889707798327768514453513641031943460271275972300816570239311425967176259872663839805657890552582944026503809616857236539885414423166428008970499551855838120332017202237859436445689744137698108236188243964651843645996181917395009580592725343175069202315161370143707426164193178614162030649646377977474966617391174428852163557572210299593841491014315619242094240909997190872585065625169897131018453656283579432493299152972565709459600274597302030918712762594083801007411307427547552970968746774718404302945291276657071868170777857737754676094409859397380276908241496245708496418754677614832708080872136321990900656240937389206379235997796555848762025447253149027011847789405105130021171788178130098180301856312500570987044834866796348327461573778589336650256407827644442575248553749383267122071863666822787973768853974401997751251667395876970325480902501434242086721942204532667668835424765671035350882889190885276643087573678446525542692794126082022118980214477528802365363330204711546340577849081730536841481735460635981941558589488636957664361903395086747937591564756731792621629600181910742912088547786976846434705300835193303784654772470183434256819634134142525678096780713675216447628390613261144307780890124439014289166965467436636520359170054341853649412237726208327095853390462949879233872581276303554341311246039077710849122134179021938485163538752343037184828100817764854516814039052007259726664113240767710556739993490134741543301470369804738230402002378830276931748153010612395610888557091580647873681412080832947960394411291187909944663080992188515801091967937819312928427384482827599443601613049960128842328217703565079028803616928501386506044330324555586718087779587743238802463723862125937334155813011644227914797457521631540956095420550668764683220707110780400402116112606619349814177758735402898517155884684991640128766148496982089804567600393800145459102656819487889465970495568805787005667219522236187613078045122618405048861873964373384864442346543487465228556871159267087730226820277312956391159259208349858263874635770392400261485767610783579039670907043214505597784029937394394636340883897825282841975189716320582618916067939196831398903845851881824443169718170895397235035914920924813632560826770970796827888142197028687320529288610426536308086051070905891161724392434475718261243485403714976517448850319654306856291206057411734598825813658967294546190851813895751507909360360482672523145244091383897351331188544102504496263459216862585211227116607122728359034475560950996857801879117284552781169362139367940149519329523714624217477527575674903363004006753929846956543252302359032971892814834801392602704288950526863961075124940132975817192481465422314491212042692619753548178294497633592416705866415125502982391841407953934067207151194061911407675028601707010848928120106220617242999560571043933348302527757949706733331687288560570706435581031092543700219333800853950845616904258749660244470516051860012360065053566410650392433627916544774077862269972231921206247804287855397305036800887359087259681719115612184568752803843458756067234188379516948257302525351978400811592596892557233120514659902942823802225737309715779262360796863084288643616624016042217922311143565942923698297580716465776783410168772820937472816040073151110731697364571005502729512485678517757299749550451392313166339316885972962598515922549937333102309266880669297206000818411587865098841723582082848036507280314496872470930469650278769466218054094861602545516218333050953110343527948636729280712996186487061646408294510959025658656248879828232821494905019980364516810440412684273475257832162961788967849393138809655476991766666319835690023589801766320088950329832966206601454033683723713350909580536821229985215150222635221372132894675853963792329894489292325894595699190778428765065206681206552804951151566069200718036964362721048005856595049383358390386738047727843357396960224154409070052793654997952656530841391218892039748790958978639992903156196620924185783736837552048146609491328097597944376846948853903466096996261086558057891784478468057217505233800841035506515924167640367833600389337110480267845385572916952333321197037012899123851217899786435859522453986510137850832480431575559297031803521910728939966433670676074974518919737174706078202830660903534571121142775612454937805166849798715966266597028247328818673066800617770879679610139313526663961482525179824722307582637466751099957015246929727364573320672006525662749905161496801101703744421833328335549087920723495099409876310770022791756504649055856046549392766915589891573030754534568473527379796992255230601162485614717949880801550582345786962228090998839619474831920992513374481579544823822862751991557060118651263867322953380975998435246358287625415833772829823698743952799115982883456743378600163491956740520232763137798241164660127209925820324935409810808019916390340122766981739603513951204863270273547460428177703473335959182689953166665216673561468276178535867587492941095686215316674749990420408978640024902385849945120285935107053617433468846261235613290571902871924405304899894161457920060207660511762254352881585630899227482858536346879838301431677540283758887877830207003402786752035308503418396348949165627176050159117040103085066884452517519409821716881403513102463193827703599888447283666537952481917641825213460066751831188135168037388207794667089198879004999986038218412997813031730647608642513738298536974369327224642099559264278736135285804251772234639988273827334043322935833286703199331034750621462755381614049533537512580746986891353582813407474735549595018278600158398774972742257501289516039877929836372085716216551415599246635032823972049753135865006634539037333362345632099800428279026470868527910049879198821128753188777087406252300559258027650500020579163145718448545412393805566536748124129426037303560237486466917215229063135736113792475571804197864142050662770071072625837033611756573055825426474376428023464622919804970532551038737576449562773253001609709303752259415224260371703004641568333466669278241066358369293942725997950878436109368485956547005738477736186362151832228038226302503781760907805413348705269975297210041640397020129354280447609243914213042664945590793900035822038443984074195457111403338369922291102806286762901326430735081697353617975992741195406700130679623934613124512413944764697460191030838883314902939661028773601328707992509299376461835962426144415452041488770897671574039541617142415998945071908127474457671757031802543801985972413083737100201274706530661442598302695119645674027436038978934993672761167575428780582146777239864875519084925408921530328501977684646841204265091569848325264721035595962716733569506024143400310385248066991131896548978011666095968462430969763713569617304055895734271641598001171241003553156616923588018832002946621591369330169827175112314998655211792463087765121232913879975163515381464312028268010001602393489120902403119941628386565275160016421328757324487916361524052001940732974604244856291607029273693446268864396780889817509977385586875488342736707235346433378532237206304787947260858638933737557757842684907931102718788126567689990948053802699082528504282024626513639908122312172044519136504683506421914495844353330066706883276093686704864172622082043836506839640870044358539592016409074241710530914628891514824857978800144369900171766489111194562471538264638854097714140676433462050537487910206065594255605616914070166134903169058226126819592097224778851171171519284099249418854337973717164736350720905723780167252388725095669644732160383293041872619329481980080024557529848298906648642102698487488049116582042084534372385054702865648111102004141741639701701327948821839496230936454819450126707790676858136253909960180068705859674097795970212482311266274109106170755103477850784780890294902724436534295225605029966942704484476025728158233932549134958286174158363860152920653613592015561850201253525123955205085013787266038656494158979146615372925254249701598640442704371460135180723579699622290825178852428969565814014810172555004849463402246672179406426277829454757762248422589831096123628065820540088838794582401572902369130452799888707012650972809569617851645369557122214023796264416912286081261030806370861497584986878654244919058870775969589093590958887907927935472317547821063763070732476982903660735015752992130689246397158809859228138400953491390395095696631677510558342442346498587119442386863070398918999638262781977313327497043966463956062822090597794454423051206025368857139238174775860804933761590443980353373503420770589472774772562931006702997257952543440652924558300006227257337607572176255002842192218734043240300639804485096253444794338874365399939037930839122167150538395978910682436635190768625361151996461484856981908592009671014933242439830803060362144496814792876886330043412708679429647803891817402268204967110505037496521762634169692661709302776431048351110636973180465941872123262337800711114231742526282141368051629087755359704044855598157872002768145164767005758074998474649541816362756241478253906190921823611810971277141451947155563403769982324648216215827552998173350058727017933405698756762625132390817650160225956451449746434568939046242272052307640325839159797045603357636732292208602244785291710851310574172567975429044630436419609462818623634823260007281310637468196703305127208615541588215870568342257323677681216040636251123159178867814986125472011168956997828765684208452165846083588145691730115777683001692410924556633743469049033768955431821729520203644515002536347927352628380130984185420575318078071636864471677918367518301353075068511857091517532504797145201232542560477594592214718429686103986904090056769135121032638928161702601245525342291593509513203377165140900904735221926170476868182045100973035542107466883431081066179972905267576542984329833803857867949118260237519036239847263395142832265364539350134013643823032175271240784961592739755892752134167091341016814659554464602468127372778511134317941393597440025276678691927939543418073650340034285218369394238446032271617525003973984293209638553051344984961737407769551439120662023955032358503450844824753891837478948547029760242055048877963592219036601303243294205241909496087371814535576346710495728905605951233337137043752865945761773086223209224346163271232299206172889815245567279833135582427965451888342604760722756925243957302647925064296384023211600601590923928152800992247966284497151359650289061753821020295244798713818832777217191274485174863062334636396507440968784678819750118653623221320770199427613303109083783358128796203310406068452986897535522992381388955341009517414899603247346540331503737277186971310119743433497765095422024530454396568829414670414866503879804199265689824595582547516968127076337706356215513992736270554329926348250699966772788457672345335445820772320421514694314389899621964135562860392277905082724120469498694369413604183890950551439692249330415997810851943216509652316846038261627713185151229090466322555140304973594113363381635472890155037203422879866031004605312107619483461615295058742364622280882997981549245901875132641084369386404992470093571314990685135364958165610381409735234752881311622439396140659883174055262110637683059576907659485751471964088231449410915655449788769185268889288424636085836256865537753602370692986316154334259374892500039453695803495840783721213377512396566519416719749999712871626645817002075060495547107282259368404992058527978125316473587294604336378943636166367410353113156907651441215742546300448588137862806091363842479057568299619905956203230415305990390607750202118524234099934867558708900888530543430886004481125759989737394456318381141481487557888554974681090036293745832191774633056043879614802959358736319181209104005012346185463904430591947636745673231210840673043634231988986966784285435601104311462462173124336649138799961760153226519042376953993301756781214528794669400163941675063926792839422350046967607900678950544454518729119227867782536804218606975577110845569163501380587253153012530222050060330189736201981605608488223276431085807466754564618451669857010456817745212223777318645476200239385775001934796721763806089662287910732296539634386790427857422480157235316722927184622659269383740989819589715521879499111674426103892496856187912400820172851433067178317994901021362467827691314046982163152610300988460231298412534957787067423484357230745385960509178522226031254503092504511960844915539907601397210379431935295924456825596385915615909122983055548549020949081630899378966091486622973831409730175183662206298448412114715135352720513124617507198258228998097538239485037526866583207076904757755968459382142820501909222569849560018658327489654909456164447280899310857929229446987756365009665230678367277920769824963594817533210853972542676717092357560788947982493350229531753301209315503247357628562615722483540984795537661667713916418977593889762770184219307093053580709062907161882937739348728007675359030238912236120256816367235223873894408930829227620624152123806810342267691897924928341353413464014684840128772002618781111580677958934887235043504952440594541973451144107561055415555417335690526648914235032519579053564384709182260174968789665840668925913280178466946144345262210796551443937220987124443126068107769957743980959893806228305880862877509290755229386151623054213039310157364131631647517955186582475489902569617615831406387811726294069173806858413242887559746298098484937372914369035129111729408508941148965713463766104690446376219671936752683406093067761820436556849729583443860285811656447393729794176824495201354144538872012497369337052733804931677605552130625663187026175742765826348662289662148273401771392938390270139351418913153530144342266197699310975813210149862782286993116993143117196352269419362305539118670825688960021299827816870302615273274093735968249010623312955474291101747936361272988501975815040454607510399157800099897502416439226887622678197500700139981881389163596622562633259484308430298566434455378881003465740751382547496988324515893834162936389363985495272418288774096323406002066778512832075500242575661891236876827037609939467925736778070638994451248944825379497786538303677245830153078741428406589853598630505878689554695541563753324087376000802281834574289444019654613517713060721429568048829606172674786848397743363148890955620934923318540484116129442624289939897726825471316563688941540309105198488546296553018926783190298315483271608916332211150225177225931501367193568151132186430693982465134504556235137890051454006897102459218483510526765806947726375768117830172093099962652228604408517809756692568936178214499176729061566941926534459638148829131765274179937588985430928679974058304251823921489134724546840897708683349779111016439997342061332296178600929474685025660854205580541303755751722470520317890047335193198965933535332499987891614153854966758762899102531937392456184068019109486424098223148574224547030857169554756363937587675622659950791504619698107755599864331075964547525566094734724375911850888389018289392055580596877147714391734899554566457689428936044982071209569779855350051581860232229168749971920773720739728803693565311081847044703857247094762091302825905726705360757676831967057670066947053278330749316994861764283699420937264487445512636827327107520884663508250436178293174059838963614019927326286907287951023528070787732960685464334748324653681978963753791530888472775637501100869759800091326162419682986256668303160097602752775685845712980524852264016561078358882687881000646980776704035167242688395210248561041097956066498543362087915528521515568321414618953003538550984486945559266528062499620765461439601712237441507411331481743830814772613520749907972010586325313756947712388278745908436705706596618658950322091290040892694518535472403610240256528181264382905082230082291694619309550717655935051386637891723745467264883776790127260499292039816397228642309004577684491880532470695299862834302469412955486046149426821473057814791873988609215823363358799200202381459563607774582088450479876403596074874661978533680202450545012388911129732924866481724245390532598802640762548493170396556848403131351728567438075268831942498652659001502819958895761093105741570157244352407961219655100861652303340318791561680320461751773697650221563979842740987407964706333208067037634471361060123268071241619891296687221230521873148671608718851553511206055188670269115494178977611076145610669923407792753829619947217903486142433150345725104677215464842548089943907597811469154029080401994120170258947501360485709422929719804731445048030124024970548954966726694094624120436941204636593149311335542040827306246860014929676356898256471253798386842950311016222403659076752014114059170939836127524216059808066406136573669420716244280794806645249136671753273455711112947725158536312160880011206660371393752978371733862736408483925697516744834617718844648969576051303190200411470466850886212728941099237526575660713590252086966486718582624213593302746268265878374622199588279230806013031495878676567893326392828626885028283833297385731234545615146520287739794555675636974062377379537108585120687963185853553060939176840139190698895577805119080707912940617421764012410492077660686647334226318471461263549461778674141895822220968797679613113532724294764210223107988940379954760878006919907710330850352731980259293335191901501368857033476099231382745793598733319756929245587316394875887923071084784218963005415654978524727343319579149895108135305518909636437166890027680212895702490991861560407795107460810765639836534313484303398437022617882193250796442911522258078246541700668557203929135476477141803521613405753878410959414501419466908032631663468142802157396984740889794273349362977572847679908881670505398687708654956350155196922884324894847327531148065426553591385574944993889649357855291112303799760510038515004847709059543494296270465659797457426999921377683185863045643439962442466011530340699120059298807049346878111270231911478870078971601367656749994858352004126533275609761613792849743753853789116804542835502399972252546806493497793498118621421121060041341099385670275743873985832499033659763099412811615003415481525090101498977568594876415318846322561806352511934180291376846021644307959279465972604831116760007289179456218546358842221401146433293910846742568477968723118721286148220993462937662067513410777182070669868827528772967365697298517534612443384153412627756504237765883333801577256701214900626616481831265335792007713272110601509867652468987353189380430114051436881483955652134240236901340182167356798062840870949913028527239551701953014089870142206203318458075445163640143939883512686171609539529181268658724280652102001026844001970083682488821659887196441476605347882181581379236868649124326727652578435741023967260258356004703992326540140052737208249748649865421487595515861714484122485856199061707498907845250157040273238962888839123149425062685703192029671014695724806087696365353328097476143901236402133915002391146395622345587155212273423819757131777820954096150412674311205825458023763517248653088793977506647708138244849030411204206671888361625761555838659904348225897479324862524951010685145915802490155034743562778849214170788779337669660524850337608254042307513400788846368626399977415527565566667100386177331576055473646237275637184930174411283169150901486684703229452495757654399835532861902047426899124321973488870598142498605632837778054074035037253172967326852312518005853370279421352819325389934116294261691273162129716394648112539089281430914477505235846360933128305784975486947612066701142929085153952440258756407745164057924208568918287036025359754564378587229700407167343709732518041415555317984885683873303146528203575578518172169464185760448936482365730488268117716331460778505397115909731367790407054105852466645980211641369658257667595214036718699866872468953831084647845159585302170482779703667541245152006660011019211371540296562591827120490699001481797902086849002605489911000566822388466267567500389868882201743165706469068113262001063639571083478246195432801462469769138850478652117844726987060298546786533783530629319330092390485809131738966545300733782604097956956207610240951252348773222782308695597274586832860218742981355464735799888927241423201681248613533972854122258845957443136369853824042620220689062760843869450364931756605821515728162155837475022264518025897168933083520888946544693013064744280248666989202632279441169396500343334765672153462505854418016580369822975629239686571646664867213762923106124388599906003955003105634565150203043334292559074187887972917938716812330518996639298361574529717529591756709837420580388366899671421826880156012328755029751427530430387782083333831548910837726591908414589495383487791854456385692598529331498141253059544916757946637988626624189868214131019436085483380081417016938640525228881822528026872352407792478498733185527932656816756691750394098289754083102131636740923864072692753352659340793912653886530537009592768312727130962311377512855518152294376501304981972505458549769949305793532796459141707633606216212401494255434978984221126601969379542760707533593173681834616977550264886426343550315173291456809343792537784792607850208481030888088496333732220729920881949944111533259331101333613591686303110632764342065223705806671825484371806061132361891871379919617405296995023372180616412095053771972355256393356285245560819484331418130264301125523358401184185352314607014483276271335302203873569061653531140918995900635909399455657100352635321760510662409686203576317429483797962864799390168690118882451476483622967590421170005738119249157646794017192473996119387974558841888004861424181450802543180316977055345202817535713010623947699309586147073967677733832031608553493737930943078388559393882705938092078572149247595910167231524134188850678205994920009101297155001577434184024872969311065426607880878260102970209754464160604514293379383062252769112586901794004833667557022634609724312473001864551357100131164061465717458010452689168123050571895022775927311481549682899695522720464964100876811672129070981517201286196076685498973123832038919648879047970828383391207892513765667742342040457200208699910956860809033436929185279279673399275204157381044087257490455362745221145747321169159847924193306422773299076751176047906020339788373023899990481897951104725432546851821400271070070974260085022062277238121961063585594508350314142778890363913432385833035989339913080264785341518207703642647875506130797556062471105701693332300686627719636099716588106620577218352218262626200976497541289590747334378832442648504494557750576537820415819632175866602940075224912676889637321384825157686356602609038033216344395095058765171522157853386953444761504938006806445987133830375871328512371956969743586202044504574205433822018402244016227440559660824693252884204554505625557107989297065901061760533744865473305309517790207650209093736346618448258333403490587601565922946026049025291788394885871574265956527876590710079071784309464342680831373709365408002965177066918078193444975506951226482205854386337239550413190682214676286335963934792953190212993878460408738592620380814897564904366747328781025018732192331536931002751974208765815540572971468467395718913234438560014395068435663077430002374676510941611157724128116789577934268099801446046296509545623868761376917946407920009210425512392015676147309952962577454439565400169325482745879008603388802957908060620654541895360743701244528163196385973657934735524183436274049161302073104827639547561197370908513248611378190523151479575471780127028958583512071901278096662895670593643744445099887604695506794226312274244339110849866442808838049803600449193895331091368775959091787623318575395485162889718680649400215640615235614994995939386500219939731192514782115857709349940473257370203447603859783139175826331596280267791097119065889125187002883988580060144725281462183009524485322183408710831694684100434784216341231109910558282613972199334101663433683958704181292930882758215132887720061701625874004703605199917608876176039565800367519377956055849346344418516724536086110243353056866356753730269024888337894843799254892870831172591995811408335790669377082085966878363125492680719925482955978544325762320654449194751212740978728288542739240728227068911345816807428291298990156421444608772244481051202098938065798294659119426258018269690323002294643630777338298787651535953424688269996035160117176323367347357509773829687064384404787788592249598249560717431244075897506755695551493899438121821183551135491659141048614710062779645634420419863445533341938202190230518332137389955465246462397017568165656058855017792906199941049151814178813264271609738882235001440488192516722728105428194860545900205326257572979764682144020688490757165351098379594887511819146209834977871220576623408028000116397712567483047114368272561958256880305745171428769312560410603199229525090462842741845755889729443948734205427539327193616395807941110443110481812006638751922395031973550118709178993595041775407386135448746634915493323049411614410915952422778757275230329063340371325172555746819776967347751854327336869904480805528698569282107316900020121079733218231259279488731735495138083628554693048067086151869927918737415830471344733754821637141100932890026349254204299449803126125534153492639273183645970046031068745189445154788054454000351139684796313368606765650083058799409847033251044195477750081763873385903530759746510125562542666037539341936806770446523567880886036001407806798090533283991052489055392531562627909952891402810001570388533863018014008527650046789721597409043179352670293062211917869106985035569378910704730939257805072512572200006737607576402478844576010399554299849598715138565080449483735503815125851081678400696287543126250882953973948244210374083923513438742416368023424675041256077025724252728392073021052905836328891120637047397829361675657790409484442253354501058289130133905469731207897669421231795371506968081058556883510956040700948569137764373989570345791588790532896935867896019635094467396350294895519890003281375224761453615075380624780839604668696488498707468161873329286044175202647798504885513596045338462931901596291865445714600415154611058862524521655551341906107453579293158802107404062192346174975622077142775800388814414864511069647921845303143387372469716585370925541746695167477301923057307686122657597124118221427211197145793511420838579932174615055257480113136905122406097871064732818135998265375629867554155813380446471135954363315253303516981108217256297953111378830172450282324845564525956255627271645110565447392422951551672422827722668758135624184814068397141373862964203437366832645633285357990734587430680750699991730809291085412782724114860578494561201163727066193509355787045496535167821430863146490313448715838619226449387566727903135318878665920237414631566075255510792285648450910593147549484827607074210955566754265676802244748385702955366892908705355708789236349808390781882127753226468751347175976730073860741507310859094239066852778417967454516121359003165585539574354671361868128247300498679429730533993678366260363488376362283032682705272808043291033809746273755236926736042914625155230037027174092704649220975861363551605494342277383493226288586300010493123713351001291938118715730029597968187052663008524608926845112826732791529821615217820664528064582656281883244160662119630117080474877693474835684647026996195092101394088692464937760271456572374682735612739887726389068961986557700704475934810276158391014268698707791877051011292629489371051328814125537846104106248102800899394373684579059641407454859908127128869692887207937529190828157833588240517682433568940306889634257998591381701637942824445804528452221207536285283151358183787185225729931291912671784205082305662842559166837653848934833153561212920986419959810067287157031935786284395501998382797303741882208018927252776944953798549333079395515714794688942320780987784987980661510313936055188237318848218016958102727728313054700749854068360070976043803163597743421968068903611217296157832960495021513310301323238071521840898503230003287844923788780004989239255488966453030422154392568748274851597569027040984077569768659074854446392824427343672885868269957070396484528104565953490413429903364629983423704843706005872612985052845528344009529128282799416768786511768551904719636978636452013526186521581032447383434764373433626381166862089841760481726313313469982157727245179486711223351846061337848183008735829102351741393177912078547474539282463644557152050617329885230478390961088557013429771435773686180817515348498222878975447420699385685782531077456136643690494956611766992266816299646110927401241599427181374690080260313039447333097901924197680522149898358627118062011116049713929049063114941860978654676428983110035744064634098168134429193607893907624783818572255482995850165824841638525520490536885043927552776569832955978130930598108398667385239478854479933781659402890662553157915499599406847488401954803022287022951418268674704862089411171980392535636576964056515557031656158007484007239270195546877919595160016325548694624136515697551890621861203776301114549491633724240588805327474627797967063959306734136371885842514661731877166559195445612279225397434846723295903856904491212226447052372542624844900966334761907514980012876702823527313043999104072157835407758537096161001638454993716640662752230009370663977307730746683007625818806460841024817651886043882881169941067870378101693991506176828406089294804595480196747281797179503660105674168719059143494737270887847286295288355763854106851529293125051636864829533020806703300248184102580129442528935610188304544602425558773144629864936491588112540131047618741213425210964277350669163627622026472903525626295621942072125738221317959242456960857961777221298001836431488611455676079067950015809555410057811417666673693012684231431188817955692322459361896694862642581348314692577552314305529577774460891328738627162966547883913927547060489456116900329510548375953615790342441351540833498200419824363730522898807830058101375006818246082516419683337004615664383180862412369967941290527959536512964461566025441289590564735595454657906634832217398181379544819887755077253856407975316583550555060351379156215264147907870537336572624457963854746697284008673049564971986136763239136696797925045761035225986058842873320276065158496154359342340228313743210510779439102368563621635758148204811490725974201365388682593449367191018376726074534516385849117147122091859193607249296985059723872725968253090696987580176700114124917455974643707230432184180930194627791282584836051287361641812942520477411134048912104488575282835324165940529208925817602298710215693871957690337706070733642340303798840755878054850354504441862971282423596028874609318227529683826065556897888543860494691356654718291066283803313187812780992607918251262364140953070009322657844696200078006855804772360977708035120976302133088689328842019219920281351857844338799348557566603459762701529206778352293043639643301867578738016712757194598313665054026972700686812458845121934795210046918341595280727668012357613431540621610180474998879328216943190202084226140146711975085951224704422886299120904623828541155955203761718028460537389594730269736479075430993637583961762454776872718139008994520092624860160517035380707544915370348970814714361697571416108326061218141065556863745306452309886177687422936363453012509320954498660234773687333766117330551049737615523411727555219427829233809220836237471616615682152908381713193670482655525696132550922395612525103306722512914959628935421102968180130654091198153644528606603951216193323735539794644106601141597401795531098537978240828845591033409445671545709448085285532971713580867803582174393135317525498041899436432381003558830819380186605702144252188790351881170453870726029715316968304968779468364540784281764745767660955351590952304173496918897799754839951787811132299478540981880803776666162240647758976479192775720620349556605392226796120810730067610696402695732708535927149106796732175757507693859346446515547954997357387192518690452634175006574525110239553991493125659531459605651778016544856494839083965094621309023162820878461403397245136638187425574505046814081774934826251960686567863047413080034466269292396793288778281589322594398976852039778054931070715166599972843287279587450754017142376793058271953557465310462629329599746129900519774651637721815169234298865459162423477596065707159133188548488243799381495485548011402315700639718479420012011499006559534649472032428222536519474303629181365838700213231978572277657275414316779766000733551513627772322273713086360117366089398291272207151310417038664680252613174575607840065234993642920210662976420731214308175978236868666464938802674679739302953578221335631420696322413882204320458360919163166121404152491768069850470190120914242838268756103802040544593054599441451216556482925725741012911000753748905857682151484129190821879124474152954148936769950995610660948533784007814095862024764529161534045794387505814711158544764247333580144757032817701493757703894729905210777662756741436786703407412442318113938292484187148700851475499718897535315831346436944843891043157934964149026687840426359399476717737152054085783947062283938109082352771101967732417887233592902323085125715924581479917414910537855308371450280378238876274712478238810857633216329041159289351889266923418890233501235841661821830956079157659186977598073405944197737320999366882156327786331342823985356214270107569666940693699878620531271219703623460572098398301409152216815377985849094435663104637660210965040563343021371433948874528600060588466819396478748718445599120187713139283574862788339539737125767960492276340528180367502854000222659879843286437887378831315861257618796583305307083050845619742845992500267605283354701450531340934336242120595000599569942958181235870362901419919407887711034910138225819534335048958692522305160498628739573624158602762703007574501115121523932857906331487967211810680534336071612540206750629631664757917190199697072997972895158606505131259078610083044036253419355355593601836996703092555355848198118465008660868519056896304800929363881334717987125238534356528758566601724971663385278646974427588305960939447687235415809725098641912196687267845116278209471566935351116360413070069440627936696812402025356880942575583602782196024802212117159283193728537757007257486237396325868927188680482632137220260471671876408223600670213619873946588179279349031539196936192694108935446150473826005160821800775190101088255337565257391571244439155554578888593805012616572968829939557393502944661300569138107492337936156442279973769012067807646759362450694246047662965668667164053188786952533824581567434336121946317833034830435291835835658495469681036053305254433853043088941869523011792547433009346392676297064951942441653907559948000382811448720545341448072459990552507301923322139377777908706851406508536125351788412643982995208126650597823984857907653269330911842894255402412531100271425012622080362428021525150355797337088803524494498724098263546801359886292512061561134507448771041132678035040424210611807201235362731828737162004089743433528511075101777357930683109780050827118805731179045919455038711548101870729527004579366841964818303124546768234323675029397769896896684586021234831241938016438292793889960664455035326801219018917829377258152523641424804399737572266276452897330053721503406431554692474324690143384604285902267095253789405082777113255652275298495127513963446373993494683432223635284383141661779154009054402126623403663860385439723322154477214288186324148077501325470948190154608405444804334874867083173015643610982382027498489357714192833495577204809787043925106947399723423126195722235261819039517637247426642101186731215520955560653260787954539593597813335997581992752914621935483288975981222538829294487795213904433290343970188695515624869735461353037177419890087851151237492529135555996974763539098479619349839799800746587246173048135474584155778848736004716727917352673163596524841325704017380262421794895356323478068030568031341136427374602296955674100773118933417877844457003273369098648182470903203983991441888823982034759725183391792556595901943363437344794337103920230865358466232427983977023660735481122608999587896011155433873723868854955019670055659488603161482846586497402480716413528345644018007772564749184580496957362119030448079659666259445526407141470992951161746462172012729612765892741061028960647258303423004634485068348284166213471821252766453745590206252542748109599064746308179112240936261170747313253428315205915440441459785893110258196138697935742423238536237951145473110642715446165815847195256001827356580515636564597622348844556178968117603007496697566715081365118621935582980325777276570558239334430035763685561537016268561138304580078807258553022054144742506695687112497960476147912154319079677912658283273063521197771649195389754208596213460564630852823787579194213432396446771402240713320911337750654416528209610535381116663833599447316661562735906978732270259760059725060722182683799579916305514101945331658743487689542002273671854829679247736789949402992036921561645981712905193517426645156103416853133924173542107305147459639413820449625967245691472281100772491989900836651251559013965404407075515114131183844075808891761279864500892255276312975210575398608631200240784775086703398977904989431167959699176556965513138818944056790619490200533374805008430246957226047777060277258650374474688153210198218417589137463580713930571828644973089172742795904561278935651831382674695695459061072410013905139468350642611456960919125587861179571702363550790294630017742128974243956521243692145369553208538304815664339714389053614032901848382766679762063787953399810680954437198435631461884157756744826569242521347042678489211613664527283411529152349487482768937962277138890470097431257796992666662233257804861442365988804348331754138768066722130913181040621103750699797867894724200735400703075890554158460483607893669864643473836766478503022874086719130288292231580976961174986113122502326829924208646579343180245877415142139714890812896890661607595290502598004406493807641543824965701119470527494019594149083374452847407334545250725491858076009003107757685247515157277886921243085182788999404942194336260246692771356048377896233775263009300617558373646715420810409917355052762936616384998695698241077775511023604139345965566621635522052869585161861997151949164588488917501225875270602816285601288482224984168228832638682771290061484258832629333569432302490725393249968989987211963624767821674075186545866162144499091142175976890313893338995149291402027584727951433924069514549146869561606147134846731903804969666757090441221774887706629300796508749456007974364224239037693412968051887622067627920219775999727952429585967215617451930522850860030006848652409771216943995144287517264927577089471734117301004896402256270092851375070335420150270413330639317098153557040674865985980986246696758673848411410750167312839692486439807515547023510441314250322925064765711634644636813337993661674887578365272391757861187792825072521014056873353258725326161685959427572281866753217791182305270558867902427336726339913476945115394675385994282950415868729548434776388474131338979938965003881032364864471293471125625068592182532301022057918935873242883063582823632893597302891367668419876804604429584931599349863580530196299059721386588910531928249187174970451244749038954952825284410564334809497798807396576551697504876372358538842266571789475578453130444790415291454513590828818759997347122563350946596892959922623802813523252449249018768927211005591496926515913038671096226478289221675165485495898356800492940414088951931751493954286674456221114816943706333888572891600616110652313119589644597813781933149693746522197048690214825649158496160931445019557150982119814578721032452798634070072448033469754615238893231662779438217895818672863253045537248379948427877932274941811407435530118721060868516448851691621793210373259553173766587963786674541241806303055308252039572762374076165793135262721135209590833932784128853353058218417883555913183104023998581560962078827984982094051153203402335761193520795897516219510977758179917524468057998292442631913501638052406907435268031222345923041467414084927692081128900219206839767330676153901309390527327573745688741897653527361485295819582228747070029153986064705561042822477993123106148392745000352779340313745375408330947576576060757651530694876848248100807943776906528228542775252190650054621003227386238176396511763581607354898218194992474977080377475260987390877312069281607307990630039738450234516823154091354994226148509236117601220076763112627832102071562130563320834659237786849789587191839702221830980774851002594117751953239439405416769028531446220691107757818527885868070493376681954962130478375824318909938758641259747344040198614145811759538491052577515200270504783767568040247994385452419875600838289750869073381772088295108915809188824603841604458300626241770149885925782443221697847374341426432071804326280662094990427054054588773542642142929216425066802067054638968024866116022550295109512428074352166092313144344675151983845644814397876093901104984746425514211612451052665899392814477843445293376079141970910749855777124086746312944247810894781074757408917388606067113298857786314175435696216272968907960920492067340439471635483075378703222663617548578892739631115084864577192342356694255920871736612089829919786192776599478650657624322410224789385348274978356787172339655980520529915840054840272513724855672824043637190800786933844108329355948189281606929864895786938816229159163312522037565584908169318949741350746613192972187817972414578012987253648791437064244136491011582223547235745576937163114553326733200108890104506282260390538228305169179618043349122273102869953576164690294967884243893647819652195322979517783525760218875086785557698049651637775981295332378953052229585040778165431885984676126330836918631017671422900525369939775969648950667949739576127566542364091006842994500358922078284836246154116892404638941011359010778488855842463713662116092670697215134878059898635080316997342947249814423984027379586269187809823500439408045672187944876915654714376772381061015385759118155549895583254521450398378247481382872971628656656647509744965091573398654317019610369128780841110937869457814406959404162748797357381755061306186836479180333000608177646410629576881089431843436628690960295023047038962642508858413114189083398768756328304779053859046946047660733996459021123527114109407007491733649980930881618590200000540641533942150765384008020027115783461469712513881419706142177259566852028171754519096694861862447481046792157108391092340182844884833167903818250872704858056796748706131945619955453587175070342877952656215274244317903335413744904846267219375570909791778114141249916332839527079419867738644098994336704009072969880151681222150733620336875440257648581772202491736005788378946226599662476784624291577740535135432057076197077087338472755562801826916704699677591754566257716184654332747483249499800496481278612681556753725664944051653264680432762414428994589713796152128358218951763584369422998667158351907573698094889606797951500038882593587883916095225356958453888868215745387208715709020581857513307341805171278060623786589047901660050211298380066448840578800339427313343249290237847533539423542759225824419435106001385997108995250875628836100052579139961559577821574479992986907768561722777148453656413867573261087289962174631709025561181207032573117360247661680576303137391706396746211116044859792480580726929014179976519160002992704060777532051021808136003379132240533344729205394880155248128927323715149824089600157207557568320391677478454486314912983652195643678814647188874120131882412079666356375588612950524212623700907321988222202002072942534042983017555823084702667898493824229229760984444817973855776098536511174270517059902809508657841861739239295357591230160092432068127456809844915037114670190589494413810169984673004016043804390705689685980642409008760136160100513801792530920031253994454398870558484555976910034717031269972085691481778078640744432618056935439378556701455025793644483359651503222028770132253326062264614697460929309824006013075698000759020174608886644978113838510469854524134988308824092084146374866100693288860234235112938863951344720712784847974600982767098997016922641961592208302420584926773115717145692135402596139198490769077919063236320482178806079955538815160965692262380876977522016913505746124303751047142441273624795757560285556274963413351299007942749131082727082195818325128089658130712514481505444819293012295641219670825489270858316369735080214339680393785737538790678472772980482445242184660379166858624894398141904843845146870161707481401110524349416717478757036856483283603471235438396062492791460701706558378406968424027195279600687573720197950850235221155972223475517178482371117484797939452505105106444135167824303913912918070230066840183442111017475503282314482720575775345808579901145667544028826890824414202431828365761063991031800159660406382213990557376697108361655803059170755919402199285722707943785793891634641820938458631436072970810156700723342382111515411899482958139727405832021583919204801168081773591282194199440862730202093144956674293899840000091287957873835145753903282416874173180173603535168726855095819798604495740485462716473179433747251297268413809273913899904767036082787664413278698706566725334843834273335481500565168529718233481082925388520449296749398200756831388686514012446732376243526000784147476399480152890278681461985117109199115783096952067086257664548924872574789461427386115450927960925664139247746842359851084878564091248223976686683471994205758405811326276246698283769730343018760775382950084587230488101758227160918549549203744117969930872953947269476586442105613717668508776108996876354444974554278998499565011547881644073422813664897724393506922083446004392262565688390932796000614845411807671189541080900252686299720990902477264381915317000498841968042983343206946613534085563243004577117303674389032636649235929827647717091226411136883595650818739313393703988470518502641169398709815999423446323140347333997229991232337806639107528104179057430150646900162374346989627166936426316225542223491625338039964705236400718633030834160455730542391245378866646222764919365819603289579340863210191045890745766909137323773731661134738527588877135016014787858459985388231953973813660799373855481470890281323393887374085270415761299122154351185397836744956583941969108843782001331788538692884421108218081090023091661409164028341823645425347543995611611475349575302115796896159727737983451014792460920325642360335041582019316070257195532718504414576888310062630376267128289555676119769238217148892243352981784910198566764138939355400331609420106650287011589871881092917107536781287769610683398470340242381550858142561863717061367125102006254208212082805255624460030379651442637687716606957783549254831922833469800646256725966804205032402844421146009086634635871844450682238401084516557305622393551981802641268551197069584593612562805296954592407213254586927219040159768260990010343992758793523786746083386631263730122772766807047512423209194090624839451114779806167745469583158301679938784459493805015366917289718908677068091805269098229351678002667425842052342192281332282059214495955398963706446758538610021579822759500199833776199906047052954377265823345767745885161257077043902776224897885064543894431411659569183851904084771875273587010794549298527090137082109961201971069182579650095373922409807383436082146537450409359633821537527792796673644560350842502260747381262326121400116455195035436062555708475836493870620588519430666574632223964902762168881845948128703223413953111150265969579493138114486084371384955319166385125535918795136025054895236396868906813250380306396125638377526768673253432015435202629643143055566399564086825122089726639949434564793116132250219206130297562515421989816022317897798528217106631965631492649002360751128809511703912741200878399965280641567204662702381812074840603968653870064993412895637272727261885735329309644444186273754817461836207141461278278732064407201732044626087317336186551930977647476446665801972226962149010415073982130166166481051540329618991875244299555136181601329408956956617057778714929357049912898082042491063043696788399645765664454203913153178262342520599318920052943516550305593781169309849277720413876350724434572479102033236341767792397576392173760522424024249391722726387921677682783446366569810465822591871183104200163467899403221451325915316269928198475762738364218427046992099190957352984461925177022938710049358708548824500227371463094186660917543835461381143633838328539234322188308107666744451356140001808972162835009619293816859824270696308376696187203590836716018657539873319830290006852802829096683591139771965117389514434645678599526313169312449753136640604511875863972099561154340194446951411554287148278859544250632586325909338557451042845803454582283663969313467369123625403733620491096389262828627082956205800922484999636181719649475693088404703165309204864538839443290983330262871691474742235043687346444273792064665577487055859379339136794922363540522446533020165591076883118131761409782835541627837203329134037526524190310427566711300492092600146955702315201466538516962038337437711941165951994982577359611562358629043039171576249909528360646674501541399683980464975452851021806546186315787580275868867377353791891007516649874368525490961468022502371129231357046320863677776877164293013752071287953494054529747091538177051891639643609340895428229418279479141746805418291050505417901977595277493953160611457579621154186376204140341087753584239460859712415446044281517519824819997724130147871718923901322453148541243597983184897148820012023357218967393566642275890652401626456695221610528490786634455700878754372490580180034478622158281184653295617808058333079464865779151421528785909594412052448248657189471097562851830693706720290698657139948621929329932328665251769228905094813849299313267146379850942247838425168900210484406042473190559128325469614991437330239213528796000376616821389476722643016021443166319587857855053444394849242635437221610613148985908664471095816431648435844447405923743666199281123718121038791094541713397408886895732376745060332334070320601508814057734956622793190989648757935193431997474480062098082047507798023528126527549986993834900832983253787143789843176115888544948743409036084891668996747368882898635790116735735314617946382490459168364062754557121703377381643646371638752972399583564386792330042640825409783725027196655612337187978861548802583936137899073614987564373924589536314195555818246261073538187264544418365242565065608351893507747917677612525376114118815188572077733171766926754365754266959040813094998193470986316449258200370255283557749020453854634384736322410755153757916192834270462759102734308380155445161667377868584718815710030991584102332568336437272667184159174244380794277485278674303825475248219229721061400856080083911670071656174086143887014867798849224851153123551161450556198086302558784997541268921733822727990042950825939327032714038196848903510050909470355404331433020812685620932057064278353468123058667294221699661405548875747708133156051488886307517644657341159311718775197747099696697878812334380872896394795778508757794188960719402667501753681554401962140419204161470127179716514750705376549445669273950730086026966725272693916816468871936016467417399823185935427563599196302641675743451627877404995802021597337553975969811954149218192251267887779017902488590087398476966787138047433449196059406874820217515564095760184390720478500696370207252998476073469357992404441272786179367184201467488974836738319734004799133527287082366503479641948437752475892038497088256994813786028792426673354837398247167467114377631607675396976385988239270866626228236024232254893850116039877263103166054298118393621146358518674649802825171690834849953401792802699298669200049844175449435452675616569045163691649614567814060034078706807180378846661943001238628667610120359744380629996019898937048779209510813061663399447906790024971573300784073184899074968805379924044537686217387774134258757594503591902684647103327724274016310641873492554878628703858793391328768806919789631632404658402677476137247996562528277955309992105930126409670369661570503894836191137967383011257995820495344697805919441777050748224110545954820705825705705140858148002325331440983963999378342475598373549443953398188608845838513421819251181227165190330221075287421768171833728676389196795232436960769315515090397633915430516073021745738210752028999519170471102161128677673269064254734783682645798334184830801166096108362534671065559091034258430949780381993914934312200179739150425155729163332957864651712999805173583191119256239478656474760813817789461785910812697940924943855220057710354007128914076053583726487867084068719295980724069895391973269679499025084915271008512274681301001518195983006209887560214084842932094346539208719889810308376322499998641765941065212290949266898913262131005060095397470337194516368786172828649170505985532179372488603665500602137062112410860059071342470316454123685921025072300791928993329259968565354848627201684156502667430170321048115620600355930246178494453263077533303120438604320711427912105010904206628127247051058931501348476695579875706562726964358296626425411097290880492621027905369782638672105939798298590648833032133539323653516334932260522607811557294800515234946561803000724456029365651170541046927237438501003311722551119710405411644872895888672359639727747128617250634862485168449868527860842787564769362271501995406373274140292215819985426322814677683368518681381186578675666283424210672606510214899845059669166721340136387821971415148453383702789190869933844628755132557869437615711418707423042921837884820876377006031337593488018502698895870731186616677561250669084841701045111487474421448475158456801210015242892609422573705318189701024959666744659118513064114335867307586009462306099338012333014012887929473087867216651060543254949290743219203816609992848894960972198522946762582202281060350634886891161680152045818428317485814783485411961180558358303657386748085434447770115792335446455826195957348814433522836876062634365062425579160325411878098651953466289777520786269378569245855849316049265625979879036847046912653768520411450088202454211047160975013659723684341794234776735086264975774719735068728403302962103966406427900157106316018159972275305300181887773093532910128417849641154657634901343581225277853069621496575725139859186465074773648675914095744012218472851441032411141074406985416409095319402985243697215768271748919770006791709474707143212829003776312286131854254270149797832557388462531080354614040057207553272957710954227543337714502955881751017249167328627857160819647118053274545226764465721301858833182037986685588816283889045459175276080974337092310641374625749552027381480227096398079079789601449868469519003925662440506334736937346450844367465104304569843182166368697636807379940745427967971224982321469178009906986380942326629764107718333193734934598966210561584653450490153009546713601204198414409479488651778741218889756480105978216838965576594179115873514306782380235883588592758609446918581879943872732851084319471909443265141152863135835530935054910174226688732615780053167082549794689151199853542733431920063449328632630097457656322852152706159532494348253525277932858697317152802836563928713161144242465825545875069426349589691304744489767789361341342245193173049954626658171099484942280663132279811050474499849325718388440898228830858736170271062877734753183919727309729969174198652487333022168022289606339101705390500387336918595390383047373404497376746399619623646143588168928856102139473136673726004659555514281729009483089263739919320000025455651905944922649368274535732428363753970903396181714866453124806569028206507104787625828245756672798717574430746420995693909163252339736305692483447918950940145115526936500035337531167033502363684052364687874416061644675743766501586618670596549154050797654420693581094370841351249730986898671665034580384818015661162919136793971913963964464552350429698700849891914739683117365173299906723658664156467246621085060491689777713419716871347642561146407275555847246735192036822917641777181810755747038474131643407229777616942138913952259665492872161223866919326957013678201707048608580673131404056310728232756517817725392357419118901334065060887366300598434017030007739051647385961139051971694011741004656155148890757942286693500052880102671055299139102588737749026309003702596411963260259441234687498541140129362339580326768269855660783001751836836231204154678582856456548097399184710076074440298263543507327807900088756729731420513356623965621566247214325929412452628717340272228818016881757180391312823897129996798491265348154731701892355287030220256724363474614946363826964242304047112312993077688834015103681849713419509272138221347648957932764311970314784143943834066748627993732844735076423392433075567460311182415870003595184227870744379643207639900263410753043192247307246253642898320820656485965802976807110665066384239208301287833374625111454246816076322536791356354500446835026941716855889943034802819391144884494745218414706511314637629517883394000944031653133439456624347170863116712373590313026362324416536874687689598352658156471948150030410184208045696887396839370889406447839317785234453524279781293707337773117014665535750010255112786857715267961194704998467128304815619486319347725601864635823997249706012379525161937048530178483033266003532961966316086635540185920644822808105990531601188644365338835518999084206897320812788427228181172885664322449547920689496003121680196451192375651916583051759732830570852011886674348579654992734962181695381629814983269195805167648097540601231204669309104135040549095961795850183132866312512903964069365560256972139018425242901229926702512035874957632814154834346859607524650950667600645364155736463225318354563679215423370011792063473496820847264396109027481342747047712488426763244849321087270135633346663437893843496830387900672050047111441645206328185016631373272292614031124323164076211767450055001440605705075270461910052699173087405252975967258301965063622652606052301503504727989142670608591775733177597729694941879278364458991421063429032847291564525183957225646145398730379973540647429056870042069675555135239345227683280659345150813069824492900446728292154783089809966114694150246794062852030768825436905249263223192013546200762162904679528576910042325010274283795317230957471028455655643954143218808076804103888516387525193046423154279865307577473359952213525777002029586601096682004409348769542925891806293361488465274048197730586059172431318959231148058130977734918692265844452734914429243778386640246458556990949177559596454077990510452707016634074381207647428548806568662562376118111807032146166106017425207330777829027047376199589756934614861608540791207740819362512724397486958818152087060853659648254599650863902327537322050892843755852223931071467546403414457439213461625971138788192453385056472896963628567089391073826525564881790639403980242691428722655879910529368400805817929083266769824525465991133901190185043106285395486768350549019393663359471986515527422174294392082277442994839712677369601983671439325171822669925976015406215571753108221622700257556481260681817665816005403454389208805312278892041733533135322617739520926906294385119936019833798756235986097103557498968597484665323270753248205363488242462916791830486977561665734266855629341314146999698988823498842215769098883969801933013088513645696805865894283993815603517775332714800265150094060892719090157522264076028516403628424028208738100903014373211273468167081314471929266547551549836395683332062553326143181782768651048436671396457490576488168772315798961679983038819198741863268406727261958436134232583674605490564972771107963481366239020914217785533508420179102114590620541073031582550029656774197390158931915003288017043876482765524305476441414766691402922235528577328062842206099111348785746455249540768958049261415037936300774232548460933418008723218931682131904910132596719077218836888782527630191890077346729853180048845197755870907680957596573658974227184205077462481098377171337548080775830876562397170207401263212334343928500803762603977078377165508770605772196479629651851695160616455139823178262039276213382831673455286476245933722677367538927771766182890841650330852535952871957989819459309498057550045422790675732609610727231450536045853961989574605047474985229293767009297094159802837793096481951466510684522099098257268524625650080937121530626347133942836533806556856625866777740143501728145743471706685613066569241517883434403770608664215509105353274748291885923831321032879909998121146500970672006951360507060511982545739830528901381173883386971424451222142619464345888216563549202988252419342116237923927491879654909163930827982801646577867314719456543684987988588288006589621720679683896324453619773323026207624566301622954893878615779498024252643167501085611042871491796773667556645523450217393707915294593390118827686274394387732531285142315873123302955561547270182214017072773012618412401950378793730646062722219777020086652882164695567726525743098440735622024246465336417819524511599409021298196972903427615564349445405781814484268821574368348394471537945209253620191544509019721229422958880412257014626113513056843694693581421019623304289908828444468935316270595667615491997554367629030679944878664908338512084840109843621806977621076839355184729672744684068048530863979197792982727817954149638905303696976286274896104705117342465903828191860412881635739956632086270632957855605310045532997570748011740788485512818213560595411404751062270206664553901448221097617945291601744570178028739522732711291982330440472795093117121957886649593427441399441456958891085192959421430104994798196414168715219284177878096007414555145049212558295001739714606642345111313407136614849044205336593295495433289407443934893480325513766590290534951453766430677555227465359762744726316084663723782649783363535093013301923760062052686965662620369433153550060531313669106831489520822545440263295083411544835181277040515951874180618399824532155650033015912773381230939911782564536315695794696040318597380524100316204369713405250312111810598538714988591375410340158987093110073170294289044735155690895903138376191509727789690853621481419826674238199716683941547535104709462724897204236906917993353015631896990381430325117772195493303416636289328858695426916535298243060869107031291459026385034614616291090539198074556401555451493769312908387304838718677076261398831333344947206654042239038426863657166647286809627740673967847876723340889041444196629870148159820937962975201644687428689512643913832534042190449063241714589461036713616830412094938710548578164873500772951565031282962648642515442360695592597791473065711992131476816401885118641516832106472052014833276153501500179055814546631630396478801664446893537686863641737979261498732371971965602847299696603678383983886534388384074882703520677345283696261984537945905116475820874384470153260045285056833866089543714673801565210642510983530894601245971759470967208283154214999198355541214291428232205853063554856800059732013100564914674287083212087938948096936636655545767602624119211665679439959549550379940662152491079427811936871242659569287893165698724249908382363009134058881493584196042081452220928776015830299924060558536352417394491220504559819569201605275332162850562071997694917883882637625853279609575211704829488960561235499603759011906386212458433919767960921606396064205244895487063582013702023748276264300913496079864350000514968148308417085293670128220672961792444654993571550546331701370804595465206443115948064175715984842814002957259135115064376681442338781651461071186869675132211128521604243595724530690852067648658153572173353344085707138368478020887886668482001979110977783831845931324756646801973052633468744203366290600943803160699277406495223457682523622077476914656853678304493539004826036924033301845793928546886649769519888353754203169674352993713751023453043910405065425977409952626835111012423450597755732244834264092587398198685457868214835813412771698322481277660415476273765822481292827167331246397808294696921858209846153158244010283802792594807208308981128110501145799962323546229824208866014406300912483870154566672211023184072620967188403065236683791075974785691000485027613117802611375060231294747055510039484378644880317994454420548658562780300428602814298358383897820885669326483409993585195749330114868922469134359876575983376925559887777766338942609333363881383785823453106127675501151030090122039262026599090236661504929441347823421793597839410204599362631532950063452001526933611556827004209846204826142442207200052967395162974835437158736141747627500999982491220484155501344815857095056403483757951801510535681908089899377738216795776108421527026385150842745359768100833203301708396874279045273710541105383349730349475180255178194682509820460718961537185002226981573316351835924713804718484106322800924589709221502275245942962797615719902427825370387861466444433085105434245887779994402112678841223226928840329530523865526654306126632325167660626029227912970481060788721488945040206711079001484723922561044903793951470389602210213690163117924118816348908422462446064883046389589254382706328581557114290036011616644751546255322570518141978816238932748808314364774615568352544319734463273771559147444065170690536522461307393239411400088496801419324778369976959275329271177244979216971449566756579073869808362142521843497731501115281233570672881851303638485119037413137472137808698106834962644771549578288794870855862164145425606383606875799645242712474491887026284506340814077014480212304704936136458714676770680415687325982085828881297680816645606739741023353577240458446450981842167306970168991227180719843309201138122165272040053067370946302773629842326256197744170885406894344380576075491306037729935731421324133255468596638686571435201389077871926863866991622069386401222564949784565193585586697258508295979815415712490896150848514754489367887767121674861010544261373123746702999751130805150308679789561095499590689811659345811478497078531043295357259105928309384726141709599333496853090714605882112703820039883340269003251021287331780590371675419654242836673913653184022214726845594205128635149330989049858257715819364955657062228855367258893711098320537743752170940424344722080633826449165290701134894129276573458489587832856246115140617140399971585335175414288034035073788291206292721421808457061839369843215514769615670053019021587372254276328318088992650788191809920296406417537164815426318739177382172849131236417603120399185006228266198170903075451165251137658118081296468576725350187959873660151510239045363677646202220938085296218035962929910778983955829262079415126052690076593232904950645969517550971027230687106597609532447105535005392450165084198219217982624127893652714388263406894841156788319436365100488988673669101112584984647478627941769705534742539127144422249871271737766373192140685324198245740218409896869756570000648227704870579471030250769654810371238500886576349867656102097556374593668848370667183371330542056448818501980533601409885836170428836359827786061191494143105608947975143699678783913365547215401273343006322187747565517882750696603132151273944355069080015439528100677790580698928543754798503993766419798545261858750327374013463020299185707971038457676411587471014454444540615996199851226037167690666652387116188321264223920329890524797146115434345164285800312034430815891068609874088140839934572162549515168353416434777956443878196391820975095641310507609045466813819821264552802116814890998114314989868399370320603238955604261197977821422192304898588508265735838311723376952217421000076161792541419288567742464026974343652198802574490503941041426188899286638609320316262778711257220247601081163526710755751235011620574047631199301390697078578603933867800076329698986717073783659641787482182182534690085792351859613891770536681583804031891160881941455445719229333198957148603576012577060110108779196689476927425323375379848676667173538216657332350440817158293560375974600610530306929341544819474425358479602756133969222353095860909013460066029552766950374491877353808673069666893122806840978991442888192627500431516959259883310642137975661608374226599386757705275578697057672780283293792535318990373982894711882324196931113586332945505398518723664111898575837324713804503604064022224637885001683819039496100061400598530649186443780130452115076833340099571017641041880203187030357991861896905513800904262459211675887669750980555125010504938341779156905264791239046044768875635926674592948404578591036552848277956108573410945528682125258539149107963459864651536437950421970660718455915741885106624367496720196589949104337605152412135239306788425532689636198600403115757340986507919835911901025705230418078120401354817419826942757300105858609022798712259996237297992737290787456710822290513701943475924569158668996455330115528217444989999767761107366728891654945422656519364454590843158479987249424143225649971153815286085760094703502457363245540463817612497139202785867434977419245185522937317239354493514566948221153946465257581278226792412367460721769470022292296199988031360936219935331868326153060539185702472431715333300274522188766467012381524960316180312697626895584496810916941922398593160816951193948209504689075468074409527074389751144125984376387958157358983833575668453980938048607117073221367180039200072647713879386505075275600609290021090864635269792701278520853619163351584649510298445283117066818448163016715716316375009045243394778203721882749232458985056894288296475423342348692764539903073601454020166175660990864156491753693278304552414913847365160620721933561906126693357252800025904159539358902545174846373702609260121002144968662695504254848651575944141423935776923217201684039723751352457073937655947566861979390089903049894991557226837649593561496161865183267088286191282942804314750549399161442829165868454936440998117797958364105090989770976084180343309492400267907120643899818264638796360419540047417824507015717468430358172276574798881254727824739314126316413669395994405269299707615566085163570729046539714584183612955809973703973926590188639337896364669900677865674048719636821286411474022825238233383022990239382732724496435302577849047329616151008683686909595177754691731438597303086124920220428336522914338549534736804335445241886301531852787001919319688809057838399245894128005985002553296558356305547217445235990848503755481922376442210939106793709276588203721243890422110283677522245922937225678078790044836603980822304825951153732976182365008879452385426724393118595724747077296647977764522843340554681768387264952765306668565157524061966902854622843187848668637419301495218800743215561944154353519600761918273033860836753510429006058719729110141369189993082721332853794417371205110522310422774334268586513516863099509257624770661860891038076008385398890426992949945171104305852079474858710875485949126043053382521372317487842449945908172017383203513325195104011510553463894072529823613948445726298318733584062884935581260953353485882408829868578225354352305025277458941165350787916009832058369161893327022945259270099015137079144453129262292829141530423802150462449501034095498075505173070292707849680192413776770506614043929551095549393406758148287863056776951268186841840244115394930035790879895663756060109144390452556428085856996185297007605297881521591414182648448063654302629848166164082740999135931243900124688356340229318873111982669910808550531124875450112912136756994883547336272454315727494957498616115214993273371114238129552580896527881163897361327253896159846141807863439245606605303316968001431784096317529742701595015793974095694555774860024165367633661145643151243291401285296955074931294917236161999357548110426592480385198621313549646819133526567078910965853300810503697080868847494604868712995902284680021858559081198416670987509973160261547074045893738248476355561758700010393325828117828607218353748020276232582423595091885947257964544296281633056767398511526389378649380481736078966810583841499867800904768112210398117940396974086468080657781880288238717637668533787686352673357895045670823209681403488293460388973497916136411639161848019631633758676621615846294348619682645510705433635517379289348178458751003253018211945831874778836020503028348878635746411988315994051577151918757804840599229797683465847813666415057611214100546834198108652666021621699580849894211399805405190833276258767942471639263430630645082098903099494252508093955922195180978895523987303059029034184077736728734023207608402975762851673512270759945304950366098710690747465650267652163892546578037689444198796172846506016862737578099757372346553291215181532075037522512207321975589153264862739499482375080156396702104734641472908212844783707352247612515873125409637025475054199056164297175228493635782745741976437769229929251818707589595091197960231750736358333978289347376027101256819940715533825662182880314247680646222818569416127958312263197530594078797311848455769144267209284099782661925813594123043726140307665442279092086706527981267524168567413661976001085777629632113749857582160694228319371938467066987963507431788236564858200716007705673827567778435668632924277393705367924331469010391079316904417941100470868546084762611758011772329148960488916908324527916540024713500576280355583406761556368814464672595692745075762139809265369005111364306980229273932434321299946670511349415959679733668869893190781025466229229317792544197912889374036307168332609396224181162073302306287666370337890879478108401024345563030428388092816396465427679408162434205228992912419625692308564084895998145069143302196033466260996728991976304715666071416700825549946278536696212372178618280023610186909582865056439601491210857870796013121104753909602047875169758473680658509500170707792208721727669443566418542597954921056951719129576449020017898829816166875249774469315682782609793224142827594029049760694963635602169617589443032592400131366034080814883701160046431148120298835980622327231741804534215140959845038443314840112576766510700526599923026745604113088065527609499755062594804527518630622649873058763521138976617027431276234388569646412664062550027267606135944791137723934438293260417201242031958583083645277397651081982542931758904373297322559725542927469707262153650996808624940732971260208635770172307663050338387319129456965098196826413863498881609845284726858410795844982881758574820354697358961699345323687881716621365859925869345037215829429452390877784861528487577893616444559651707242440412283617211843127658771956900587622714608627820675446523615508646408819795494298082434141687035405715981005433856178534803836953872671431986562028127465977386780396237537421981563424356245143962722412848904928119662217849239273023797856901216246542811497720463307706289647600825629685729803971663757543768401134925014652192306792969114426181292590230091543710783983971010939397530293028805428238527023737732483126892027429895749494156204132380501466478607870322601787224936763129074792451746571769376495045685712715907424069739689452727671778082918974614521342977578082650658582950266699192626689514535796713948515116940296020351951309075896851171301343775682802426815039017054202301588898289197302104020495895199773836212619504264592317060060043445585982156022426753281151634812312691403335061744455544298176383587549143320141476845166463184158004122790768121400385650721842009909666328577874025976049767516224278466776334831172669192625240330745331050013858296041874169510182010667210780525423282086982246680793431255798612447574883636369168454568802308160784725442109881266820653552284228776866834324113463036138633172123898665549292671513864047571738540421082547642460233643851581366046444597922305689306977979741441382619635888695807874238702827898330907295745143518834210718033031073965467620771109023931768473939666640769519043187861333198691387104894945872213933549309955432476214504591243783013848063598651791233070039794502965951766536395875086563071910364916238323602340987359216152257614677854623415198795698337043712721422256252029331758202421477810161882147563366425766419291751917725402236476063610384989949522294496853705416928696402392968318578141843639367228869686026859831057783159719085093825524547172121226962683320230455666100772267731926538199091028210092056005426659561498102470687741557218765547503728257335624051490540640876469986943330649281080380354515789637557827712399889629527369321719777794650650714562861797649321061683608815738677794549506104743591639055798803318486066344936003187097501515669458654082119490729876685134285254603838972066606101680284132486418214917808613151003859384418448137489387802022579452505273977868638552979684549226769660490675726740345683501061862135513287034775666721590227523983807617029362976614853843749206894486666665349273572090017142736363521235820943107747834516888735415623774526945980818851577779497584720343411343702922629235203762077953204379412231268000381765281527387488701560158952693100523635163686303790106062631027284018008127550976155837551284388287512056037117713789157300179812141872832381449676579435045793127574040786672856559269512651130713589323557376416754121485873961439808210513446048251639521939180709104556858493831215955063604482854434635511490177492746463559358747915228002641901870080795131094524358955407914096289582893348017628770230919605286395014742443570148312083254524798274063625655774261160234092868888452493001342645369780415852667442843980547976927927482776685183915527062175413456211813859518241013675039804076776478305104405588667759941458234252106733656318676125789698592001807213063084870393624801375499412352749515438830580051181995665061706602829415811775986985029238833781688360237452168464930964147077243911032091171652430244285711123410969107643229966021629432740816382043015289446863708606748451180419571963053864647062172431878802452284664381202019502976132174785292704833180699237775862024336831025482459536658492634438933207223444010406690627365410621284566624789439954721995155173812214778082274774448853642345241754132651057808570192241931178227340140856337305980550909297455534355962332691318989802154440451934775880680697893887650830839908906742576973549697657020986159090567747981744476480656258999292710275210041631235571158122112899737867216225030100480104585146370845134710064500701332944805071057738005057610810981217707192689644028170340553364460056910931825540808778863985438818041176909768122061749821363731019683367394236526104615666505697485363352849436070465147450494759142852441165080849505149204081178284725955606748015425892096901844685823659718070314217625303134174197966559397087874664925840463983662685874022210668463137074440254270566119198524078700526260324733165560847999371844531030775645144322837229855313404224112513701905831782621906328573529358805965154817503452542495427738831348720594758104777156408507317987082128650920179359001654990689567427778166873767444603942339748053246150827608184118227675018342437379958050972598677118270340561348313412427299579017196356344506066907169982170926441914539240118931447348591415109572248460242984879580568405568201504381300909388997057941896823069684738303904539191701363710029423926712306190637790747797002271187984825637537335221772517126721242284395619850858472736542771570846656140796308937272684872541907102997204529820321969800874635587800540150866288635684035187078933863721569305423838411109758867931771937020342975122296186098391697295619017179297340043638918197154164193186275455580761400189626543252889356139650412218346415582067990650129035299515306708116189379559480897134862297350969516899560006023091521485602835954166393441194234272127089154312415115072623227082831001689510479579943460395927771440261604505256227266716115764411857388409018151018506101419251284797342280228959814640078521087979027479548959647027649355581724769221161790275280155479179612637028531976443427083211737517939987995381941772990948571754119937055517340178066595194867403801856935720937991808750087191012097753261774415977636411458648036011609746349013379725034397697484196429039857065635248761858005637188523780493951014842382570972860288346785064680047809918073130923304157954126956374266141811229356977040567102443860736645576257695993950474465395783703258050251111853711207564517204070415210623570830995084905802685915030770758309715967666454107172033402976814955360434070316131875389444021880690371932102117102997868825500753126874682028734647174181616196476574132536553605609381346128259006546995932448521526578601332953346398585776740411735107484061701470855576305171333147090573587695885404012231840969441756098167659037283590888419564285258009779783250542398404362936107540478491693654138068755014147059474579267250238801787634370303891213098751067844464083273526874169244344547128727496217267539057149468021379973113542062959524773357693314035788804951327320016719198914585564027155956012578886423022168238435409905435984462296223524983316480311240596128814904473755561221310951042216649727253163280441020280401932257257142610261721897583012833261595951566869761929657204466807026919531881385747477091342642771818720840952564376749518818062226063324471730023954995821291506591679386886589238196636895484714010070723137031050183633802470007063391043314989059353985626466021434389230746774052130151736985193911389845505641833328206827012503398899881394859952114018447260188458516512148680101358858415740019929137569997987733215219375985363324980647584287280107615610726274382004283339044849476324558699808313035960748460340313629151465486333719973854954286160185664085134366717212435508271693536806004144137216499124278231906420692314523591747724738079921430944466506748600152832502627901338191664656898607664907263673578338825991999972221963264111351280484432988977523725355672824233009192311755200992906966149281388040085818530932272977728368433363647711838727958583141324015585240651842230099590373325151694753995345681692169904732146347461304980088885873555320667434329173099838237966590410017565921523292410035594516831924218853717256212073663472627290079955169963394561080323870948653269932818495826884068614161145266592185433678916954985211149317993573761111555591073104516044364164418896081592324765967027048293403529593712283783475501822998605506702846199332688266736797735471833505496423578571712174643876730740712264710633965376544088357647426775481082266789251447951115347488783584186219889681690190300168567453571169924438055081330838547188659624322589454042115796167140808045167155922589252970883573833432734344804816084267529302791609611425465987976678781136740221555453961235345956791256118518026968420652313063984092927323238910516130147203973019547730170678804966130401373271618218204024630990727822491642639716089770734655066461014904599966391927805773265887636126980504721077301443174458235392729173658435978367541924889858897830540121436409281345598344076683592752374356506541527562478277569995171467271017711237657784156144625871424316971710643038186120024633222564691945078782031003815457066548301503339680124868205269326443443865764185700302331770824618637796521866153881170660394295503929794676183862710568714777819700057643082221294573928200523859797766107074321293426190151099483508455532103410396579504068723872432006114135329914844253702203986818725523240033821970511968087153680335036997078911374945748633922187702230304496765605957167550403570681860554734135454734313621940490794427447333640300625521885528774140741029800637680281002708882954235201506777388015407056566103595976521572646354290757751549023231968756681467232931603335624852254409093282836506446088006881690076277814054027972035486781938980451523485392051569348264627728359795753514293439534319872850946800050482650860251339522129494113731980703541804000758823427421149319169236381401509955017407530499237430456138114307243431177874080109236414611578959114987715911824682327275183386515231592161005670859370642503420022112470108801524395995234367831905543805065963959482553350613613086048361225556538727821772581870250425298808124377898833496819675129864857062957732891287077791758491895223762065622314893350575665707607235123547671649910302754083839816912458995992607423574559352175443513525622898548340618461684078980257150146507429127638763108804339100366319736827342466761235377801025734271508904617472823389134559817873610127700774838215628426743638900879636674172073054966083928084092897481994595569104247440014358523918756541169217837244047156577882642152252693073372613741169838146390220439701640765867424410407404961543931505070097872290960619438357443134625625885684491653748518457100177982862085208889686533271700455306182749107397292442326625857794222764904545133329491831010374038285083926498476777987032944852036415151181543714251205566709980446192107611774095673769775246872914637059336678283245989538637349780850327189463993176116186123044579140409685817467409206311018360621041284363395307311304990344311863715947885765147016216912546732012813770666964619647246125476571058399940334956037702277570441777093275791861362415004896600448699585365139355389474264622325595388346183873315342301712826457595552278004070743547089656078800018716481468445089932734210640599056992237653548185366830931364186410904074827848208209156258270296090202317992199404788273493792283638238193577372198464316972331613986085535946428370208436841497770150211172695158261120517986816105237238717427780051903397158948949721772760713148505304343787074359177258349471123039362331467290708462365299076331616608087529884757453141301993560626643018589187199188162618297083368671260561845069926214157967555874044756359425345231585268146977761898137900056745921595020140257291996633217646651785250830807692038493515790987169670349084935668610260022356946219688843543628792872261021936229120530936775177634784213830534917090153954251850465711779115246001901613958466402755396225673195484232307116742917078862394189835987561652884538365460947241621512801816993700931500981959905207471302813416871847842659860213600352310267104419978413877376453165766060308631021476950528362106899562088633756823190063327067023754266523689245333161588567746680326113598009463785023273967599232131112373214504071309360597375172349592297387382048689494246385539019058667623603138448442403653008033759364420904142428742512761314755026223085352730175868133769028006828925819307632009754497912729844841084482884418281398085025442073723731520719668955135516535671785836098883825557500769457302835199685100526357292702275482016420749027969435857668544705441100495276438901670338421794977506471754179236384034539158432495435366868686181080313195587374391426116735854937633010577047355844059835729720585615543857687708215618813857695556481046485689268974350112709853152100434304905455200185480800471019143598746075726076520052183435234639504915636996423198382871222679765997503879472010055754166310999818690806356815638737195906799699923304208782508397477806052280348442521359492123610353845614553443969271925024298197181871070423110073493226260760552115688836572431599757959316423619407285389523796517015680030263674204849319040978602467885466999849761381821024470728617473883950723669885732572505592660424307329452248250244196272765544442322026426894761745339170369682159949147515023843595213881749986864665515633184010406979378982581904169920017552647991653863507747098160493190571242171343625199981382813505790238451978764001600423842840960331584986233315958666035626182718332796075272670529888488060828663312871595351172424141809385916928425886639891415219420647887790048531684925221582741388510519341013615048014341503465622651611532645861380310240144337223475330190627243111829492559926026356209673953203841100391047809417718671470565541554403934985018209945512773707526813626801345273646579614657747700612633725206431178053264460423811560324341088096666264189734963360908999492838076242081115220418605313039355655459387172316916807336422587180992464321257539203962567965008357202909778223542965002460395944380075852265668420910657295721688859968691520454163019236815345626151506756009472429824047313301501711943805600660107546181516147960774805320727196581497289843069023574373237700366818847237763294641398981876730781838745908025955752899813111060907894902209119460250609277986293842049572194221373855530036634246980561531885968332323306522671658487741561674023046954019426765019834754566737577366509539219134644311317414316674813132917844765643488387299853192136722148382948841629633403762860084161632286047668002773873442494329281159083864818024926973032363375812373894028932674823403789684405655751051860522446224168490466864036149291331337981337255865843653063089116460497391528639312309619433932825626418515285637913590700999762664037632936223033796005340117944471584960410869333358827154385446277142551899948427990925915781671070591939578563644418486743999030964539673630988798587750897774648060447402821723562742251166534144852006434549008928605581440444087514144675889533977291943249967542731539282171560697030161739834996366987073398987456791936229980382182720031537753242867029686710895442265781166735317560249264164805062142611008095544665845413453353471491660658064903318202848607396079779656938279177773794872965730595781117726884307804840233728323181501227043515549191126168266590948538157738668149958708005958952056639325721709149305846673510813536663244163088350545494080770008307630847834740130169393402706174966261010020614982630139402644676281486541634823830596061942189697508949001531337763438801498948971406884340625207463442907084604045404514518870076341581620900716181322240434477552740009071741977562592416413709897972680458155888936115018417225297693344195447717532876589213178830881207192973595457987176170044944968759535327119633807742971842594749979954780051599802347302318542850355946488078600616485034979827287695516873514163396746881173204592928973101938857877359527510744267824215896965759426274252318779168206993135655357503064491570273227704343953123346548273098644548040669494107339691730537246114050857161277264557045313146209070590924207867646844637482466285031603252164515653999079555864419981935691009654826527956716483594328886305346540409680985306293862448387855627251116150178302239749125294234969289082214121494927802431934778571028155129300247348291915812335509088856312657111752966229573685585075107497564361854478664914463028415721166574928770731845835495273427969631950940439756193698899661063970749518758251947239651212983799848693175155108667599427484258645654226541804175658128191578001196298194456124216861855658340960705991858302379714243543401087833266927243658962405123119510799435303954490241494622555956879836142752084828652396696149563202610329885155756059762925070953669781339195992334306829755861606122310943215299354231867670264337667297315780358419928486748331648469264341510952638946836016333252297925186317961775281576064814429823054002311614265828227192873121072537051356500142499371237085082531961859963276293886898878375506185643218746317790619698925727905683923302171362957105151153542464983471883197666315629196266721040954322099640658778833634937870037863411641482820320350143307334459919822275044755087441721097675990809002146714772325235031088559035008894652425476003058981373188181467046255360272837245687224225012805755938206874627737255271869803685811506390620534486125513571383305345640784024682879212127270638933674261180854249920091692148093342435999352572283895263237287635795539393718848919970329893659611418910408767197221503151146213754115251060775889182359554478506731418723362847490491905108579242653129821682411351871154643422564477149921129184554420364986934805981868801173487915366180857129846502494852978338072819793017226055377905641482087187905848597127541292576207244014883180917586624105633169756247801240203698505732081607441786590109982345466182949252261003933572032555654163424664270897639472037480745184036563419479115650292171465641663409124439981846466251582974739805905938342872610793321820558345583187080538511953640979893250580184490265363263645385986320596922558903524432072415154347104143888431897743408936115523875116910207392713388679877640445101918201379999525510011174213178736267333812024403339968083453308732591457529240316144616924391760658120542055651659119093424371145831085317750471481553999821746414488321204880340771800916474672510796081770704213446056754007713446206189700287156076226971917468436056051701248662271896376200028007041407038042469345106462409327327542073904078863466583333374136805609505038114918476297677113049766865124436906098827884199380140685284331148657964650641881981520481286341792008074556809217513174519158941834288095779028233455186688930534266162310123558955616959220396717233323196938515803236563089078288360859583263641136996537093322121427195709862506416719249946169819560712869940823378489230650655534707135373094908012694377176522788553408644354361904258529280777963461932966275646337736611840307443859030415235847771285386887060458253413621692603332597726159882434055606399095436516236932978442170362412599111249034465802657078293704906353607207083864541687590050513714646662749460414831869017031690387045704459679982435910520261092120222760957146442649579595747705292030154027310720526469171489201232160060998797825713701214924668598687762011541745668415542464964193015761432941818219051688816959763577536197134284169919366794028610642601049036534125042756333323329649609520156396925736712592018281857032109343617133105372253780723060327566979020236904227471717092046610676572469423438562887172421126290495399342851261803365173820621768348184251340206311971244679458302988023038623885494534670390923953591879725861414107481736028931544800498899541010276504684942764088626247346132157148937798795891186505450546281802335177813882552495448195501685781888600470990715642481415760243587470868468526176904621340662912045277567324703317428903091792489945459292091791320241184557154055224700476573998883397280237410523448206708854513050481625605539468122476935789112302132438416070172523023313998880792993591059080515250141497057490300724477877488159982601479557292850328070080172602078269499225308686813783015234310568880030255100093897676128604560434712705753723959873187371721581126372224215482951050026818447728605105870498956646311341326114741950689122523859868493362905647694157562205855142066620666730526890967474218164913708563802754478037315172259303360860879134259551953096201791309518012240785110679815001473284601779469925781525806975003991996889761649503756101448876510495172460494494514052897325002024601503768135430661626044070295842875539820865731127544864961346153323406772949683312182990653670699901380584501530826089143664954741728231591106350924903304387942705504222085826446451486919386799905307065423188865355314356489227476714401280601385909340420909923481843131010433665717641437016573659262948281850511706547352674907833061565151046843488035017398031227617177653245158884574023888223930154282317425881724488082271001693993525856233672616181105651810219365171737334426649985045905560908495265752224820118249289451575574592038894319432023389748852898635510238135521808572569307191783388191823255154881344590595246405106214240869334174773595749779345122047278595002980372714722840917525179138567399398769692825192867026071224838642957701413206465721456735277111444824254676983042923615037191155433373514433474124071750630616742476320159440194011970378876877566179073444255600053463341797801099524255843836625489632526993333905143524385899160736868936657417450413953430082328558284967012505464941182821042330503684866358006181465314363522992393763377036335177048981680198720787015693854002624804779266627118770380454028842126055166420280478483247191664519706474033380835839248192708887619148774113984484303913382384088338439166108519146458106592542032768220592297954697055467213753058436503951560799596069397120910005927511976980784348637865424114151083784282131712526333057580607058548232638773869066078159652715373119762646403322917813651413318577799166502768102043816794280211720385841461349518890914403864512665778827383203614172543806874621146095665958019357963324831389367884024246107301060343990208346516564137197567397699350810551507494494432546835748909456120522628582014115795105162247425848023110926639820031720713587728691989148451025740207345640433500709741197270693087028496707280075326351982137402311894002258457665683085053465207765386388449014666014882287643212312443082002591577548810727017525242415676652948057727035283084774622208033798305466016051310005160592284733796871246554549155131458329262813543482582861459868243435304859270896898095245681489894347160471861177550913064241618098827720940505494796640615129816259200819873205377860850238643492844162805356001712362855399806474874756654504061566405453635159531434911799835364301102269553130742157209669907970224843753909887118857903079936559234272521510026694731094026387985847847650944593411781855604406214535348686641874096034158032496781250527578543818899317836452193379406059434694955064420148314876288145575849153282909799094632867770580529095620161637900896131775861268497916321573665042471561101018179835307925927950791258654936013253977332178558846592704667046831686839516246542638631138038608496743477695650953684749718137894029303238470948400271402565846989191958669814338311896664300599794261246988830261979835340290748714744099247633438482739604470986040769934299844453285490110671970785163425035259747294318781429320802927384641713491931399555449607057081117134643043126240967205122053805310450526464096705283855050574683025613211964308054287969276548861053097591618678156280451871666101291054368131530650205154805906358024674941562583700020447344202090116113999450255610707219598537659790694786803444911206566999941760818978106142552574617223002657500227891756565605314333968193797186067745131935439639277035100777709481759366722194168594115538933667137952920213013913667624524737299093960838376621967401371871666718211895591822356157996319170003084557164515820595832072812562341479932942358535861371630059046673656095868392513552439722511954986111636685727093927571922975882700673860431130550294785390783128104401141179262255590812150939040647813816192923224623049306332660843255448178070882365105634396463801191580627861305714972609114182670212603324478707382346781000177004026457811775701037540093581496765456274060550764502275344734953000099878603087209791274404898745533132479881034780066537592350646146060257672449151502150739655378649612610800210722996790176049021477159641163670464910649940810893803374116823785013189303014823734633106757148454781800520933541015263498444263828858931396632412852192270855506513295850231665958483019427896787364932145354234095593807066836617567342424726781792005075226821373650506847083376313090087369503385178964112363731442361953579846266546176211220958634989188576415735357822945296715974830499350274480474889500817753403095252646985876659545973909442304984168178245058016052268371785616082114678535852495923492636191204985415127304510974349457162265289791814646121694087707987874996525530527464331752855420614240399462989994868608272338596194956001652259605493291598371982978056048492226971824212347831646598137548791044097443228022582948509773246247588239494081483449667894364972834487280936575374140974502379158319040270925475158266203558974705016775069144285444529060150116381580449252741277504472013532333223307071878874395674966938155789461318812653662565597269622498124427108748325348550846644030146563804023679409426164622192322172276859754017410898814821437033708027160807184791588789563640062847587303612533400824833409387054738221951322763457794274431366859278926768173325610600839529589312152216711784659827645904702934859818483296763107225593370984941504749103495989647360684287372069513766915491394173475851381046612838756569689141229366963403795750617323869372722556668142542611384006671155217784730566737892706669684304938334732072433368787238991810701560718723241838484837307835173765603268285650808808995160111544680853367748890460613001597278492722492798957775971624188438580724104968002739673961362121341494047667287953494012408473224755680582749790797339911807159873202919331916829473804650004229744237311953185727651508988298447889920520553499184308995343465326699156442362221269683070676919673648047933908544332466886756213545765951874510155025491246651958689107887967812693387111111516435539935630215810537138079329150290827685149563150195502863888345203443691529127069513740065683950447536747280374194376791639368306258110031060251486831638971581384652135886924424670438491250248050749851876838959234716944810425334693413978446156417114095209134761160603443849550934230442771650308631394755804386335056246886410806708043019063733866070497271577126197935014976508603885721221501114415083546691482163185878817455308139782883271913605385211615463738342192786611807156129374172301815340587437924129415008421871003559149524281830924556999525625951359003393144009245168909926618045389265644669805397708961914076146970891883050423011550406666353091194469827162323776238760417511543470353335558788166823054444338785816541443307187627554091316798964348915599124617855959888722473863171928064871603003099129710711114127353564045820749929769376328032017255001298459450641016374311581906539491601217393545197515491490816738544790922600189866307590752102815249247945515274349935210413393588196856470788361906582736581610270934834579842398184533254016017413461534601924803749431961831299667522387449700778873314928651208730335175668118789478923320840752368833911573290522435370206438697771232871104226823603125708632327234153693767991459989069877065601821717555161159223049705972561575998246499785530112662015997749289737169860216065319736135696394688707088899443493329584814464110929115035449995523109379332909984014344854789266126201181362353550931834217514209663083276990654497948362022625766635503227938551137726737076559751687672094328789637481081474176734456852694795762704758562020123814896390674325228533951144804134537681035601955549210039181068885419095924373809367032877428238434468964453902415319320862293547959095314663085111471916395523684533904819314458775139104480305277195411350755591555835198137578965951690178551807867944319508860013654048797095915130947535909681197460998638870907384292411917056939200746673453809761865457233312560682906658081670628621897222844173769826157563586268569561051057043002578273738729931786913983288042713122400686964831450969090194023367971889886154915219044653468909960643902261684501378120664974209211541876664492674742896900946871344797107271784803913549365126619693587581494764584841593385933170824011370969496272864401353582585999663084481313658335148760079896487786683257034235027024307833066530538442068119847089677530187524384983197311630245475334914372708464377288260746920993875321190778982795577180340979896661194018316208853589731856324790121169538974538016877058242561404487156514423700787244232775568512172656176903140859607673872298447360323762135452658205260662672910872760622737652754565495213371524471680331392540196626535766777127130317492112583323751816958078931060761609204928446746172654288913029007334029352199427505930596804498331250225293318402826218314399449715896813694786106160883776419478658814541756288277977981825890144284362408145221944515770258281435872051045261740583037115783635751346355066551686824293247652802861151497672684359275461580831785388546322050682995951765436036605704678420402100758289139470895297089005698333866097589445310166267341588268068535252270859721624353342465567558655408427690915830199504547326013191361163042086508025173358832210080434689568532068991031672574162565016949726386282439120065478439885826491861298687592883588091427030308982382454203065260555031648191678507714113516340720209028691636401502547418682186432353791101058835061907571978198415524214478736261326140894995258295956637569800088178271495336710396930933750107913859627225183947949882244875523140761804662628996184893699680011642884646638695010176117746317815291882790110913280367255678350709205139227069033682345591405083466583816194337382320715928347472654880795824942275764683519297749367779301837645015663976535383359186468636521597064843932314348188845135118747169101723455086807768743634720548135543194567457022049963755398627226220082161491947858073023103183873723211629611784601971480341724695376943510259845959139110583858891198727568909525606806801415036687561072610683509003818669845726808781353732216024209487441283811094495539765978246694714297840354516965768118977320341939014288036951068194503820332639684091602213758678120863352532658501872658855720970229368125391924918642133694410492493323983129479043235157604028345553975767432995291152437902607367331375741111194823119312906050103033748190729125534755152605200228996371822157380659933330633620510842875088518741049983924478862835302463503813525942332228444787760670073189575048289653557026181320065329028611564492380865039778078266176601899726472363386454116239602822139356816641829228611344043835415434626128118003364608074108713932139398478934487953692827062179172159508292096605895424699495776783853518137306766381782775490171720595439492390998714326281252418266844961166856271777281765461631388302136466000194678127503602029933337691297836623524791431776696126282415917195527020647364628175514539673833340188135027938245183012593254312367021924566375355967709283574635535098883399728899680094830452684342344878056482622971908322426127996589661066038808078806384611974153309493317828352476248908762130813960826703561830294911636948704980222381157927892412870807343042569333249004527544071226257860357643137736564263261751943684970722076468510905084691251875053761280443211394271754937168243355588574668141920068213698640811497816232100296141481838812175160935385670167409813488644567986880097755939618657739950782565885042002979954140941006080939952493753219904105458004087356765114849868621346184376882809941866333791236566500167371622177117922144034060278595370181846579600368354199908287758974359690706343819702751234231006613157455445628538544495370000797236764566469278144874518370220554363608726941267179149442962166350010842429092526604726954114993212217121245054439382624312704676556493895328939187504037929278568674413858945107658595176182455275276755102878508078225981917836041970647933196456426564451086638645467094563520254494956746589181209482132119137743669680584262098925770126470414130956575872556021201635109443813015167346218692310814234458224070146387471464323673411786953081479051945059731299630130384458246840171253310914134682658910601064184591138333807993435591552522070707105698468677221082465269808892497314459355772087384338489441508154653310361139619635005518374790383666439655674405806514804767038018927712072976514079991986596724139666743137270950125816929022011073586354070796269330606741993944993703123918522430304889653615816992412388259043004203065541634525507963965928807759701681913777968336514542063602488698906304155121296859222756769866856474248465698412240292076409073690191707639441518983494775846465990177774894187627312257662149828373479505316353368056246512544836760068660272721854461143783419038534538526711836329420851473631624154650976229069088863913582344430108971974191078450088960660631136584567446629793260797493804089706933574904635861032109097758781110369237271931309886249694320070103601579578870032300621932484665687712386451785900576028061877023363440624278557731742990698122934570477747695965521156036048837223495073531116040217390779805226119906333378438332416907595748861108870348093576633903907813452259679166834456170812869316679294287368238256302771788298625216555849740651264713512505302424415257051453789838026307587531305649705810026233098798098812985185434590238728093508257510167269903117376708426380891424332319971845074985240280783035021115736325259551555389556614347474998414845578857111604940771733999905675658865457026765050235921173456184625461472920325010163018758603212672366325089374999467483566213990714082978755516129114184623714300299492981544037299017587803256666787156183072835786982298607474749405383610614834105017947117153601894946490447858886789282054993321624055451100542929694402958580335611207080429448720028586242547110167170775187132971734299704240414398993447073912675316087634997465399587196441759914204270005733534301518382783538390950567507925282355122175033988654989712006844063318291034949722653962304619423109545355743123714715179664723891070661438256774124611636006777587120165291911052276287490672480075517129236543735049131370734255133936156184529537379520970913115820258849045176555760258314126791277440513340694790651199441472872674518124941194830855460900623631780229601907200893676502025845817568042470590250356043043642882463615727208380688828760175465461879232846853595926424240773385093772806583124386814257955854036171234128091735743245207159485459152915165169612411359249280679723654862048187994030915910276696187899772412296375237868713415014078539336124267108687480830264537467928196371335999386653946113702094921818096695821926875723484958078612170116321951141008948322012610444905748311797700706333246738351696962118079496298398608620937043405747935795983167824229820456176056461261018485254961651149929318712450471887297026978919011231771902157442624320602966709902537194909080443352580264595264338728366948932463530409379031965705125756455222886636292874964152130280588036687857296379403068250775528890398829941693781870468289157863065272326301449922852000485316430200801396243768372173360284421779377136831515981947000550460204734617621433082451923410358576485991234943782485234320483519730354999429340194798144756365812417124328256578534868075851923724829720153130539754747211858113325720170219797779214967943584907340209421097613206148332044916742840700130656593705111954310870589381247911123720729692474945868486823431348496063775070065442162289402134123962429060138843464710107546841414640263931271322921927587333883323365104354071701272794903811435972993704806217540943716021843855763575941930762549414871492442995756012718116811498069172513476099654468100800474023555739310868335112956356849859818131878332870234464341871787971966420330215967218161313186913185326626157735753841966351929417879803756159300945388804888013238961822153128692306907743987491877624051176157708310938101462100915545662413725931575134591952005814670435329784458155926606282809253285332522952583692302060114812084873562538205512826026223610458597164554894098190768096291814274391493959635118081033596000131640545663801707080872295771704861371650955502012425633874185532714621551335767423371434748741613799233794640281836180515046062173642660291420812670602795887813650561998102616434343651931104573072517255107395588398365354251190464213492255174689498213507085482900978175747604660475338855966592129609660002997448187915741584262293407377955096995298666978444512252683603495984695737705329677929087202067623877308349095657784525420616935825558995622771458556750960775800450975616090961907938104240740351054441591872013599844736840605436260569704237931131633251773184298152721582335908810922560566845192517684726458751902915064767977119950848673753716972608831484785887777576299834384169214534694692406397883650846311761364002159833187351532562626698834853530408316192832747753320635842845996450927553933132418323826559361435485628823564276220748472599324395055317179070372911608538482243198961083480192849926034981207112105328523524637746392443069966006459604371774523511349904245536303454555202084916150732101013814784221942374814293570882424139531168506882231353494141280167040584786139707165788030004912157235401386887556347484410921121226552819942031297866201184792149494049395327866392596878691961479014650757737274338893838226773918816009138614347714788015262026831324460745674850980592581758939026123999570619570276680722116083363945039820082474550212852732386994942248205589493560867535529485002603798740223382054476523529546292817150931217651712693456700337982038520283197376829852666140841334760160118671346595747140470199544820828266496915412536049171465958206720880623508063309729560802439668545746952207157059615790181839403671379222286357019919914147233934265546896751696994237552080929122411673294512651882457472363219742929119135361865118227051785505592715849045272980007875993259556369985198887817257128375260414291653523323828147655358343121382764765454992119556684975697039144489398170336408892332762931908003358097460833198782372981445136339101511588211777455557468345492604287128001971534390266586023087172198400589865470102671281357496375878598137859498322717244756372804774208090523009800983580967576386915525098272052987769381045857476665665069598228949964146534928989879809040601566954953776838740618269042857295994292291320007326271442979805303345172640621261186036483419086389285126230433677611967359400676687873686190799986011828494850214641082036170014064909393720757868045565106840297124903962511553816526730765561255011537015931016399173432019107955853381708734776453483419643782465269777625289049804418126888720681300513996901496597218468863932373974351518177479227890658453526336180945281859347569041826933365524465454900906212710110833959476857017745719352837260524943568907322505498125071966041417072066543345194543874857540489206083420330106834559742851346579615905883711018028843950289265723661964854412115442495557287361442554356417540703489861311969767461421052038908268107919406745065421783431001310861565454330348231199776046816895880900087630122729864338871907792517921158009230648997041975819672389079977384835586745020243742701547895433568524338442775477089777419316070184137421051252445197565057541683921406261929083458480742622357400177175918208594578424302566818580831184028753662835129676569919506887421453932397932762510837997886712927736199969330577963270513601226467179156995880345974695607367454932454282459495049546790966954804953452843148516724837308884207309570401570101439635860733964473217708575356819132612533664945143424213286912542075980057182200603658896938246364193238599189167513857502671267914348363050839012859419428536520699763397099858437528206579334932261870513964716278011445646578969397084207956321116656903414686699560723710227047773720174351056727828104222826464654195949668475533216831651314302976478390806698961544843360376886758390238628008074966867378242550041831410756596678305024772684173620798121258816411857304062041729102753794871721593610794196997850059397258788603586393951487917360740704651129447502146203740838654597763281466115605293035748328565656344378156976025165974867968003659159028654893005988320423739336983398149696467547913175062737981322469789291878366899020592605118559094835923408708444781865653852960780044753677761487449139735710173260819044751834138722116238149102292870662043130248638856705609506765627692269971157697493289727506274109238387541931326608843565826244988773431312874770496931775547965520374001818035148096627987896807642700320824771691774465254353051547612370935531387294993739544088809209357345537016019287245483555392511057530849632620719306286058333924186952863880772449590637502522391596327035613975509663970574215050208048084171541046985646646651399809154273639633990921265129627154284977400747157914654541019752109580402800169842793046968569750713922326716956960166230007897673133400100237120904347144840380711421613644747957584927094034080570806849484840362339163262877883244250356836763248902637020014096746418587054347518534398464045612987384530287330368340480987944323308520326680228019395523560762410154255541963897710118896518071188651507979054916234543904120792984104440380425247460339571520139943391797940805117827348900820709193197772849170945092313164089235849829868150740103554200154808798616076541179320621334709203599031920554173241323934056883498782763956919823785518758278606931692754134472293476603042075772009261260857242279681864843959513499949560637028667593659146979034355424123310891149773994879435894080948592251516728216691323127474710739493392189600406073438509835118592085820745405950326147851238663646212109203805628427204410890938035648188272578222220317491757191700342287187617164203622462763392107269143977657630003587960501307090842931853180684296407712159113845161937162874672102191069521958815548300819714507073236824749089251223983795602644638621235184161115731593539654374091279893104040987581057676381729710372284128961491074735152527821215579061271498491298389500980585528881286586551843770490513526249797987999608132452209189451518234411465240053348480918596583096901046396135543151709426179334406019460456401590504996393066051938343477570118477883764533952341509128729853731507729324352026445429670296871374224999457294227140248401123334457648917091116474860970100943945851643315581419238433246467633602695357504213172283099243798688693520383023874814699963499557521638568886349998561813252452047947060457000923921558526538604805639690898459977885706063933698851331489058305626066406180822121609107476504896424353825577285114162863425414765100593934228418258194638348470288140199059733977107790004299827928354844351931122204445243350358131702155567947010630919230342373896516359896770810985132958435704236928645131072185307397152780199186222651780886932181132651610704926421033571947835825545173894045781872975190896638756279444676671937944821544076951324730253874779417536823080346805734510603284125256586652632054491165489788220105221845548978452163973708438768357848895325125477792975824577609831018981243800904089967555438338047182666537051641194378276841454892868885111531724102989460174028691154797421384221074584955026115211536902839049554316808002525916055333263115491569321289005613391297019516369331380945470889063891587965334711769186385548646808622238329984262745694834556327603381111149977217009068689365991792063584537246057448001454631363828155920592898196877972457532927451577037781537039050838139157009535068897425170068455337997866668890079341256806437742479534936741748739163865052562327915032817762324210002974846509305899759972865913225782697757202069284872045876575239346018031862313690026866002136576444937252718760009538604215854475608014439729357561299338942061558252094925446345429674408361719289913402146605421033893834253667460410555140472966247232484469155342088111778263577208416805157730635302486555964070868354571545764672860225794671668069953738496628848754872774113472002754025627318159119383591152087829898004430741788956698684951209656757287022777792904281729259776041682991277272121118111410898230443599065809083461987256399112142054111274342872862181609675016614568082054592485102026061922832495495245836021735920964228655552841713756494628401691248019118912138172222045162392846613349517738006139202206100898609964045386160507796956088263875669797658705621176932006771186062451810437561366800160706731105266476990475760156439956318337423399325905999418286129092494322015519183562604976724433879420929248098636708711234810143773245353263420360176158162299178999788042742573880391982726010982998949318980574093424897500048505510347918147895102960916017064398987788660957992202902680330081230266599937970145690730333554441414824323937926452652313596754307077276867529513499450286576267036903572452139087318359606886201433321645588037442837121736960021039883230972046837536985782000640550040277579420695799958719487790410400105094807824193488523486973407379744979433576176147870344385660166905163077401323545675352422682308999971212128799864979521515723326381357888782540128286204429993562319307052000626896625691773716824994589229089304245464147640821130893600002820735454580754898845523145653358168103252936045753241837570129639377056459645990498924624449912417053162949662985600707635352764337266207392441597685700065641135792790145905611124180078663144203485532149078023930477259832181814252451938005335187098231977923462909588327587889730777489532422332819054821476052683428422274330706964123930923830202001707997350160068849845678600372559919066997459988180656426937629944665546586201248103562040882046000313568192806763522172058700120848684396453574717385379181390903865132381259922155216815049250611269178554040894130941470225659708996732026632945468491593860434422624538438207379634249055312342411125412351363105911779725492218469068866871404529339032171501806058733788390428049065651358361848425279103067403807661158716862607069915914440028705752024203218363611279428788294226171751090914384788731548824816864357671796649248614978734023666804362933852288496377426156953901573106420456156696071930775623052411091701584834959001569514587477147892836853080428647536825063777027226031335192338138096464412292239468407853041825533550051156647239182681394833024734800610629897035351189537184922268475301512989140376597327251611746842620592804253399709650965779218973161577607254178004950059227062416663831695019183099870786636081631123161967525375195485326955859769817996021094061785830605930915632404334982875287471747018110886477961301190139132457677349793990199881852120243998085819955972325273435906221361709581334362440767615231696026580687751216721598663206115245827190371015620714667377699953703018692677860471395049314726386023909263200765198700252708566805371476973890446227300952797919257988002900030038564860587980424594258600312214014980120958814763174812637432299264015326648111371704123113696907458805214799969641511523066557047141812533645563073112487566784006896189908715758582644912986302946842769535768971498163744011207373968268224230766375832046789505150364780922409981740410587959411433006123037611960068242279912777695708142532054758114048670459718241354420976014656715593766190862218166308185648095904121048872092651845702862295690008022700888982260739273183462832630780252897228494343784354091086096828467519835191704424564546981563315952073670325830076993107914422057846382633871752044857337594903632273096550205615573645734377543058343746670786730519340541156274449147237234309625425288846738329145909787271652591339824964729797182020442148464983900403696252083049495841632705135508879818236058215690840073571291798478028610137888288736894324841308141101618614200196349863593719769558829240248731612160077086064878919017464565946614485959996507567948815502337221754543653584373844417095862426482814699757808458097167148682153059491643569907572481501994946442877528892058913730630441455098809672726850039793863401269767007775708981318818022970440861701172089283992841958353879569828394764325228701831789263359711271904792512571399568443865677501702449884515628059887143346133517344838567475819944477741529703555688136495421355229334680791662836089043340419200267788366658999833038397868537372764247384298701505070965239085621499445861959921293085358601236764572206868463975071327518581045451587838636274785375958411478137295460142384708673004278355931726579004200672794920771797528798626838841743498433884079323478898916851181066509760025239592592144875104411102189794657261525412142876738664286822018363137980113896838610173063169937493843871902862192865560568824784496455218425985280341628880288775664488857754129266846944972989289464173710253651740256691389135481979415777568838945746022479661018948220400232411779338574488086370215657810614040855247012400890105839066847856847137736909948560210531601425965109199897960773973931106773983080386757130126198946775583260671280921154155401306865106236948820320202096395125528761008990328083400665509421065400588146764844787017611201109647107855966810265802339467589703767007812472845630027676822228890013865584932373641424593376897622942068904785765100005658983179344857460586790532339172041722254029065330508135367137752893151137564082752593244961124145661821878395106665821630797252462500720545687972432311227242705982492655970664628424203151004839397928071750597215518722388180811711107011130356407230813364771101616197096313632732028478734698085035275174382093731767911751970887795857183472719482127586067884434799475399204349119373364816730323805912291840257485314884547441081549761896990675575549575109845496972682575978656363073003907632469304278728805379554950232999910642032336849176868142031536277012866147045618639478883916188290462629848311723040831632210860082572000911908204856303222423561116720762743864387153548362572954006350678028200852112361159941805191968885748378305936607268327176627915598609140685877135284075393024579925002028737069746143923050316508537664556207664842210186744503349924164637307820026482693394581120873428201898520260873684072330659998990354776063659256362111091201282011982676840393291952400007125019835883364582868586122866751354545206250119996462574629176950311255788502070917556067950687772831885788754476893206947348453210318846829175961129738312894744241255159463459088071258100523426574682822567346671503042331090833660243732354654450995073553180428168484990221665316294952536416215040034264240671284473727523117846882722096683456150711206863045542035344403865504314714011067489389006296125630270250929667521183983226146272089844793730925878771871945750163647259098674455599537688263474538014546522912317045653722137101274348564003456808852902996477907533616854871723202582955310198389938473574050071660135264755302178573118392489077313461045872160907240171849313233229144707423605604298025480559586140256158260637893423092463835105402597912213609851600866434860951048767949249608172206167963470695438359359708491783083100037077381270951125562762474585015442108363001423305625861548307179141915974029329726957455659166086621135034704584368684033195067188763997044432037850048316493820377190534338763253648430682297084033363022021393902652109427334924447834299873741411740422744720337804872011385515437741067432428648652072466485290560848425518131883600374288132349803711094874824776094266657514073249852720859687890785959796063085047837675514304295939670449938631243787151959074926739340461928429477619865466945972704468366904937511059096711976223636388974416902753052600978470177693324455155931762844778296658010432582479508858728346173249080226727158329557240831891798096285899250716009179896560164273623551456586871608734183074854712040317471492784986518854041753418524367022472234825179340967470124249234361289541377426339804172905356307935521143222473211076230979117786359214514437769115491897015990857547489750583523931356450320584951667638733295839676275196555313035614949109277292889728449486631263491301043739393433401614643175575690888704007209391437055832430790865299315556272060173149520516509505214116908254613306631450134493076045391819065292671475664300533503459515644667243997556344874514343939684749142240327893742318907484537111936604085287979971271337591060748344445277259042221926021820161470738947763816974457950761244483489199432881820757050528577290152493608720402536676034878758225621525667544605263737657561695123670345712804755757506638405089571134426948756031376695798099320232616195210175386725731937667229393942074874561720254752292496568338872631068467125377755516671003472373407703298893174026969238679173147593584224411601590433636972807541217382025593190602801957594294377513677739497810223096934248827886064167291629222933482350275650141982975627594491058311008080225587800229764556290489655816473018701516671300752963324412123345900528918262967495564836721384169227833078382710490269243379340815521371896887047763543744022373617139697193771984793336526225971266376688405909197123553682561557513385590632207861383869668425110250497771728912035363071428674811683721042952066367237947246244736821174567917026121229617655579766460381759611557801789876039339544015572123591939279375908693741365930996862665900139907266114353166756849750356773979556473698371456346804879554225542018746067433070859866803283719371901174198736748487839083203620545093498664590082852833186867020852592874893957572935423921789545121189456063607917894568683301346512420785630162655873975502825680424099756370321820766470232793321040168086095790181310579454911913672523462695985401496937111807730175720312146070320010369657057211549734595281727253226286794027775859506499091942558550597108651442776367858204929281867938135627943941812444859173019495488508406131826583685131118870332071675703239204333461524709325046286854655276753755218730748888779125917857924230886578452066812334730663386340718713830829446792535441647642493058485761686539762662849502615643925385211035381463783143592193495089772049217768655075607931690171636670299906693246418464324941079272466253774948507742533847236803705803890256087305545839352734728310198651461029173700260938892878117560996409287432619469546913513433180097812420206283188857224759384686111440432383679293605673299460238163925163470036342801393410635247201997138626879268957240306506269782391740849742277844661071451366764987813219062763428641969454045191054711075283426694601249462420617065277413576575828304747708285767571796012136723194993661730362338406662687757541017335272773430531517913445290682974450431836117069708058384134382436337074467646782272705404443508401532610600314296861879071522548084091519466777619855089872664869810197006501090226353055645480111719927306553084017064229118829675377467298714774216993864434201667199196788884767740314395036455997719185808038711713031050279419980794947029589366129262032690694496709064672789712935767323981148493198953433409352709828469257933049742495523714657290804075719818282901744718357185844665560554574674785378785198805569197064793129921406968078290531756896710300888736321081916118433322960134167862523350314148016979494597224862305206628257838835727397928404434529210420096199132531460653713265153145861722293128500692064063463349891754031803538611856212851850891536789962351032726198430282559790133690786973168045812385954863751589164466457615454114287672280098269342733872101224491708783438508055104121924475498463144946900612747124620772103143550660480346958263761536635548322917501609078443289034624644992519056462003641420314165573597888180696244432832101236271857578472529290390252645807865463370227349234377690256305448594302302746063374872535504630564013158997587411243465521181066712406589605542007285272711044990146447970100569352878965757768619528918120281560123987000116208953453449267722379377574218381190321771707082930150365406554798164469179196216662095743521899199642303485211832383204583850221145100265007829439247636008880002094896678513941778268781575862463211806807119233473554217264861934962573674256824050250911538883922058840779942677482107497864013690243556097340418833776713374945971415476988133963215599601575603115254940881506534381224990311553857716239988388331851073337474369329061129749327301339699794150768638757171219798807868036969089061138069292886237569536431940475358310668921005881586196073100613735163384474018230695438425913066118710400556449459071666633325082892704292530814593975441209013128548271655213920110003508305452320102693758458624414247598716718477039998067716822167531432825648696883052944150320241802624537224990454716087886014808380705978912722333658222424572439880777376155983066738717576720935580782173557928277465456529527440927819621870965532126756076211623030930685016703471686429891963421246669863599836673849604331286602969225414730017110153272326536763997490326308389605785989852245262129617139181017852948312772298139809035826456718485312437900164754357050105039087048961184045747503077272871644652893381739578533236195163074204253684387004153651196917640095388636489721964812683391004505719414394596292672361460441486293085879923760337967680476006877303066626156006352321635043356760982318959133447854154114592098627613900372601012696963127309585599770442200594730136251860244909253037434811272187438798119945131381384383901112570733650671432678674260328381680697453925234252879004282100943389511482820600365557211255961754076397815723699927439191456154370069955078522415955241141599557383185897303025250705943493349926419729879753594664701987796913907537670738159900076872615890473568885413860593734368393698055964828589541749760412726791792722174309630529084095098235750572180027503677769822631119764726205757231878663446570636017857332469365484631627950341562182247013384493766157384074540307030073258405913633986053661673700538549274615475782110207391152982511934184634095310864735109850977552941673036241182654985400337663861460621231520152231405381415130258502587711731010107735721976592543027681800194099782672270023045832593700424918349989883867545040764449780013718050798203342220407897186748742813368822900707884220825310569476028835564831030566714550331581682827400356656830823417513339269079376331378898476709353174754895975298474814503923690421737293973478471792039908353108427303686890163461797120235583307973984132218722412934130879242349533244429171474059006882108995378367542072528153229242715337744434988361003333596420173803710923060313379323157504528909150517841956407727120144733506836915657050965667719976971614232483921764475292164236989110795191131025770788811598535873031908798225088919378857613629876389617031187079116759915138344022908295329009304408951449086154231260748646879501051316304077397649034386353736716066409653600367826473494410574042609059749782809337524704651013014324032961470919691105430852583384344118940327275260004139875728169100868524964910640658949163563229283948087764939944079585861423687299464137646736794363600640187351495719698844019212498298386111897775522594611267203572199062841507597089066726880696551398650372308659385429211827189435368614271480906768409224109145623685544303254082501624148352723192350705324825587255130754172388201528507524472529105124532253121697226884745147116239211171991196838327977026990776417700442113009484707116078719302971534629582217420197504052826348478289222966363038608045377614248926947459265955766291618560605858849179343814399400040605667707867213509045448019267704824953936929161829940759640372619349316745219630282891494638525191422786347898223803466087262512978814306846932666391027621974992269421484001143432834650914778325324526027344046720339132884551291142531668046382916400329561048281666264718544545828778678638771046944788629352186092331639201667440036181936823511591933593340211827829528150239235082381130685223473053892448721562661769203579498166426995240033356897974123185966717131407912999868678669712102940033823178820294741360164112496861321144673120220714674461772902835396440822367285138215464129121751367704661564188890097600018574672756460314537937768023158729551249088856482009469864452601025421011938493444510775301352845113167082925438019816062261434847898832227239861356315926451514140740400966456152583214555366071055367782396231259762522264615479944045762033100938161775350126078138431163801510600967505912117407372594191304510803995084797783910798820555806816054304413592897045566731094749989777588498783437654064763431126256994219861100739751517416807143988658320138601737476449344771253962554459384240286253783216294167245810644689605333416250577379649869698869524711525049399349460273933723244223753726004340927001401893279082939516902907754456075573676854804839364986582163808426578704097368545049901541670788422769774689132048571968071063343846333256782609607575860185490504862341773629696560857576761469120706041488973162638003000593294902787393090330501049878321350434347509469788034020677406092972510981632565838159459619040429196308298788094945595267228010668677120734019291355706397515282332393689447643050649682144900842074431028154935966937562936373683256369076617568840391602213043186303764081468417046755076144893706826881088786489659237924170428837467589993207295225117431049524543005730844662826669636202302638762425754382361069352876011526033950227826825458858696792929860318183359893723304825715666185501227711098407913281987632703938100803970706557725604915545642598238388208483939188854935320697734551011932068328326088713633773125754948431912708967758449278563512416053808556897767384584589372700550400840731189921358941085721364264478359464798348594771163569321447212395208185680409543986425915698056192773726009202194050298435581712734774052607262182813988779273021904866187549559269936131621148437785041363919948026898678890804543602071877526818731308952076537853703270561608848822042131545596746312776153229171537774604923571618216034460702233036241982271263196636085376405895281795335567130275776705086132639618268918274570644360496347593466799288311578318533180468334495743725398947265835131260654821756761972338994610149605458892838907595999696385951842887551694710708243390357587065228335533570177691182287062401712000835082178459240323736645809966413866345322733901382477299470454673910600854388506165925771639914544387244292623116446062334693751883370394269200480705609645226177627582699500926951652494365455725753370353989613169769670804095499778852092366533719513039348701267272450367830567983142386809300754326501692859548855617901456754655579044193028511393668290257451931004210952263758868115487361934380815351256519653781451975911939140328224306909710863991532967425484425875569588680639926786562669881087607714002992895731550025918463785486976023596870275730545879605928288830697747659158481627567296075017825660515575531644933331186922181733811907196017157762414358925579768702129789752365538342470340654361093243790841803608770069617382767345321771665980145547055682624230835755090266046896042736886256952898522833590004022310014732584451177275427555206937098350605947081807595935302880493291831882638973599056789501419417074050599882914320767116438221246898806199803170439875132078327925358504941285211234758291001618666761590871849235670293771755972323393787837881418687630581874260439819024391909318293400208573817849789398154494612902270110432258013706560613199379301323555555198918622703056602018312181981662750292311343370738359903917588953860609434199132951918802947639787527278468451084374834859330523107711392117029199418941965596949546402898407767483716831737695469386501558266013489433148563941008682669126397630723495113562486885391753180222299764974190649214192243068076244622460709680428506793605664740039149319677164514320376161042547401119438559800071945779607961785558563643685037462698984802670733670384496446639361136429865569525311452882700056281178097357154077156797281797453286798278978257810318706127944501203043458884696001058713274843646726041327196002460051519910188941117343174041690433028100729044764316782025707296546686447175950391976209128849479179574171513079539609895798217437690214800902520248291653847856778677493031044703272184371148639155121202756234432376958531946261544515214540121341869838450386204198950980970063831558964089013813517174458941189398891047212035603593892241745895719915025885721537171830522786689566692258916275804070966978370410742544238574556292326755177032733479094552584278682464797172840767237016982236673634713860311517127956332997552646281760715528393733934717632615430220704900459710847769047845357767767061326051569670156216863649822781152078318475615960861701253676581285377739069593790126576815592798577859561024942438403776905948150975211244356071708289736556657727856588576954018397984090858205806301855525404523605669622979823029037955125388592523652362203972966764458503429221862180648212570266143591300382304480664978974369041122871043735195487782537226607614684429839088714978290944542836557804875631179841133576958733986940528910578574970719822299755387211909379719733988205193860322360688585111105487179289369786984218968271751814338490184508936983583469015862508919482042782295308120893262223873336885596399811872720552982928339825203709700485199337341542186582759360648422440558915514448015744630374502198014625286556297101213234662666605273973464469692223407170549298366624797867758747070028753262198929919245402631651813768857224656014009685113556347045408251280777975668241642047362030736028700352736510478411048136553294428737579484255631964976246193348250024861193597721456242997416671128621799245956209544670168309841271968967510395071144189126891683917171732159113767899669741137148947772493160966008750651620756721767525951120969202127013087560717123618394070015116385693377769556461992129153304856606271869422283733063098887747453133430515093884061642507035047788177149457906503645162442483077370899892301979649082046883474338930290456846656703460772097148008361197550881695361804265374317125243326120527437862715275521129872001178700171266845638151153700099727769743516678411465821095804904507002583691627871548908986027415741755339666941689736041488545103110171703661915047731662747419861094586418781616281782903525684604183010800579935625251848452914194586288173687464754929819206246158392815712805255436515783704853337427714623656338824096730684132176888735634497336846595086241369703305397626509682006404390159879084871967791035127396092850276563046814097572330168750570510802059305478062730712805336859122886480473873140494483624946267043203772331209169541372021927971293015164935863741019310199692914756287216329620803634727815426590684848863888418075118514634297870085755760772899763531316751704145351553306336156759772640310150432152078196489157839011778278276074644133237554208930142953725026655036026561642042280944765499856189644696543415442178569598292167313547774020401687777609975003153454549416079996957492579637820170096943761309153866259207340722927676207916438597859817742724255044457517554126528109971962471458970000740870749941549882954988114178352938180390289885963236093551343767788857084363068272599790413285240335857751519495840518623314571415524373668159000137235737334874561461188163536664498928357228496856927900955566528723058851427131172655406393941741816128429755009434444530264932182922266396466006789232762593273604106800796233583327610745399110450326207505747342382715342458146310316068890304732576396091880319453326538207769213693562965369515344422560011684091379963593385389037123298708966670316171856785063645293144302022773149808726065058449938282168560515040507402486556694355803051187953089748425565394892634200753292293230630795346517561027697863389180657757423842750198682775674682732904367206720016161351111792817954309875927677604983381245307233676474197502732715855699787415151095434105984817528758878236457859669346717428585810602664143841202244708377353376519496155614877268484094795673940062273892884721297260722515020282107958321671065991673021544923233570623917006212837753608072858569575751198229311273802182987920848972168553405566538252926153346376547720633868681633947698118907505587896843045988087368662297720901754108618636129417232738071984283381156577992859689473340160181789358672797283498564555390446153689637656644371207909058441827917550513821014962593639715639245780758646615368472409291506501403074678336623188473276678405827375687556785701151132881856919323745723325565631706381335647894405650174380274935973246891728889388546058519304046378077160339518731269683305834992835208057593064551166998397580561104652538976469665890120294933554767651127028272729157864298102950607250176520112847301509181481637916894332407218118077762362602041052313191287932233349438736034297209284398941951566095025859445689029986889022501774743044976003706094093973612867866394472843165926706481831722951692599102975423425486782644567269162356402703974237500164116825668727340632352753063750475129085675648152445448031610009728562046353711181034643224589615360806339342766074152770571414926000457603288556407465048253177067123461050769533509526955495462721320891113025081666802789041131839478243080296507782197539198756236942113622150823975939924246715165836549106246793315378242633357860327980840535809595595208614231838522689085726927756321361798654470692541217484558518863903663717882895745520356127636611810088064686468901120323721722383566532658548202596450740696249957925382264123447749229144012594479825051857963123805214888279605175275149922245839399755369675563135078247130478917400844464900417075182378738142053187452393545341336850906426202639058834012620349304803079799898183268184894778034240953463523485453303355312835745210459851771986580863912340812154162216981002574525672276902482961928901540881236605395327058258462110698601583201149375126850674594887501476592308370483867283527549444468161980651001505146714849955042286778092105679665368012122073504402065874456099327141382632735670864228110954742299980187951383351961871042234462096036142636404657695580586704018912849814633385203848085817757157557526055340635747972933709947404651304716837417309954575481320146801339352117630608025039704018920713495499727942960310690382390748905581613735852824262520170240506662374491476343719765928793086928363100775085376376253652629775908593785045863117357382769334895826205362230673026578937252238804225181298380605520641801361032964050985905566315043145795861085598632338389202370419882687308650240416353383023035169977283653567334002957856193280760833769710079483846212325329616581831415421136619119191334625232477868322700231698968245020974726672900603871280348186135669118978749383164164831039329002715733094587878338732713491343488179060047146930549586981822913708994537244249539108593229226603575445181556859402251667273960861079650273686336342877515503480312819314742449511699331301700020232850800405257147411076849617663998901099714732558270817334432495743802434227606454501767780350155375823903072002894954324763883432981670881823021136706039981767999220983987566105022577770136745746386222015174802149337535223854266361943811776279889223709365154733059354446482579695354565032960807458567731886699919692311863531794713183599731088819462789691152679404518629379736268741462096001646913195192261110875928149433699105222616789494522901710227250941829923879869637071768751119368084541364411272023180309821661506955801094417784227748452575193270607161116189214996647554572733771691489644527426583376145576256631201108784306281731833835775276022009927156453164102575084813344728244037902425502654502657617086542944646939500643942695244342942631871001902655416942723536609938713406042011475901655766808286900424145269547029709064506257710227482963162560580558670212625613498062476315319336170633457943723120416554374975173246952319159264943066520365893842791306600325012969661263767751323009780751643130106691323340789107467508266041943573514077121087545027149132421357945465338886961618634408196285170186175207786732130544048752102362711556017681747824495432814178585069461887762676148823585906511280347942908857718663476984674514690594737344185716996678181255679445290556233431474696524581322798966473939325582538873632615262152890501073250050981043827200016705082231808096302232342456490153873323026990922178639873170079085577392268534179249736885149732070418037926217724342871974781887057162089638632555928831946737952026388927299214788292739912249518503863921991599092212354481474965644879615356381190902785274330633617374333911270627774914350596358566786787990569502534092650581186229180341493162165902287241521881290612841388515850372194522484655653702789020895334830834967883727894844475811031076888275978948302680119241723445745726210250686487483505021940394658076258994315187825088932102226219759763285049793341039755752124523551926756869362448808711290183492458101616950912691803627893629831835322880305061571182720204124965211352604646559121647584820633942211301846117866259479372785547265967725300133411041474229294323072733212814878666685212292713429002381951722436008728001485558564244992072133158615648506805569932008148908317252312105619552458721217867402451289990568076457933470763996481696063860763556803895785642146309657508618266310108246888453408112712374836518040884173188220400774889621398903511464549764367298848821185243687247308191766088770388366427058216214778967992130518527412818218329969493084268267181932718311080706533920075233409970700434434734279671468495647041327338501916523081756749832721460497702414366110119576862403077384285115044499093952303327759900622481873074936531100867216650621931817377570029383860933479742353513882997098340555572823439446951659022084142088513824583899235212527925364937856344338535148230598157556959701875188858855239716596230926936810998884843689729869851535757817629652837304324623230981019294945539581094253955990601033957753302391602307159611052167577884807943211296457825694173109070033954007819218555789639321536553783023398250747451940314354431236999835591179955592574324287302624073784325654153501820155737300272885370482468757471958954027067143834987127226426369699443053839358425570148887800176414162828295020025027992540409871131847776550775427105078812097455908221702836802059503220086130937041419658799340536648939226386784972818516491586348539329887330172688045559383817193875899450031821163606808363549158436445145643855717467583092318434626395448410095123581592306518418946202375152411938768313541299212656672095867942995022175875822446125072517066396947446620453548939263473830109166810693546954720799961354966332219254374894205035706652503584686505284150474919363955643108566260259568926020350114508399202444601347631958760080332897837218829226785159931614111921192989492222490927137933781044021788822322688626493733493591240658329950686643738293103400468222058917673899446795209463689949518182013292383456285239127658703125195131451652887210136202989283899722439366428540982643499981981385525476575173301595550547819233461619911429660719707035227485899799904399804852129830533678340501348529783134912069095754328449765819226502454321267097857082014600381128220991956111436169573546948326868897873818298522294972399575268628539618641486118276512199342048470119713838604247076641058974216557780975100677467501685098230302573703559283164711218551221679585545122843625118365435124377501633318557774662981529573805305954917403349177098223249338580731038686120828982522069826006071777834807059855369878280791541750290295648633899234008109198327600913148161274021186492659516329370694976895811944959892601044516119206082874968874070394988870243327775473281045098523502642831841910705093528683755723098753664087460408462811212470483578627303899538260064020564005606007353143962249172401719457527948698514311563021927516049934499240179435619182033388986268210580534731302573912300156623432873779299661021740408837905801617342351228472277464445034758113930611597571122477771586387352041259765004441763684921724965609146428463555592216254192399304612665170513471772606473053331816804503717843078891612448866002426058122642746900157312573751324943292058743310343141486267649432401768654035299991730270876636883986255297733327479690370886137365262887821175125361446438812525502682047016017843183104279047800828781560991833867279121860145282073065505702741239059727749580750218916725201187029873491277348684202034648757521726244069322040240031736913209704899491698265293243764668021567113983049796984117700395888753683134627132930162711540896226798570632783841775072221734347174181551282845621919822840603614072353592526140409614822811148786144350301140168667845339079366994428840872959221846531771087731920770158789936518768358510996254821015909512293941589627355361807759758835506147419942251775987832113547833154900725085883904910394108527460893392918396461385523804750321525959233485203122254071731418170183953167243661394918977847283332336654661093887345936740832780055805476420238720867293230599577278262242298497522872718926785732489237457121622591741152229762721056889550272827969626699267198154490795911336387889759525273391063369348062254950956206945833469355995718784872407151317553873847877872712949119214478890184996481221413750974436995194945644564933189898185268287731084170567031597402249056941030696870716340260430852879377677527166092371064798186108910856213341988896662589715812371015191387954253858579380074932909339688339380891087077127125402330313456234555300133512558533034768007937461508485389232613525176322850706366786330082585058234528948801171679379167061762251698951066442326260887327040288934101219082768580604385181322685708684980056482283378750788823842503776262311299783447223704590867413476085529274477791617163190669725285261240985456088371486868889448130833514593100737171031710275132671995273518427812615928029665066025395352005972639700402635231649338147168149062700769636464846114455997831389196717077967329512475820178342902351185631074965970565654917806953525556310248927703820769891104108802889804467383037375449201051847801234759506380808167633286205105661523826665717852983477481784023749769272849511293432880186338407834620805836370143679612300007914019379414662771104823644880427599740965602666410813557781938855701953241922802406314271343006805577686460922702730610356301201670093017475282090679698598876647478565610075308532063354350410520785024359277514770320010526438028833572250297615940601493786168312815416503460432730323797158027950472254599411229171942492070686776598697403292101407134979954946820006212491598761182898903656245086117872973771883696070259775713807153093862567378351003015019271408994499816325098881296199172974415237861327425991247016504774173476920780493818268152600585732515106780690704840007627156800510974638433491568124116102658822882984989725248180944898420142221670343828988561041763871072621314271105202103815966641078007441815183033390144854988609229874785724487849300501917863832691859628741828230313093844724263907752433156429608867657582922088746126537314963075750246705911308340405051530370599619909077722049290475019104577823726771115807357080812839431180570639900706550939357425502513632673424986830807427219616905259683345466040714225751041045836254986552213445783250174479198094554933243605252313319272271813019872435224834185293813950195306556429477696578075990579428141536798166221218857409043104359638317733049265341175286301460564019007481998912536418714602991575662287166219639298218491055164413325355877641776615915075878132354901650782289590108024519144977912333497091076446545117520118184293643598581655766897073568610816594538059966928315285029325876797549652539758606197271200130440364765431798031774131056544429614610605643276203447863017762844270218473446668154764365122856057010846483753684496922352611117573099612255348563323883058539189692388722720620957260959379057353495270706578658553448647086321861196659827448195573678610708630214118685730893741753464088079143652892908442127218116386260663996659855171921533910523101334242126639737622002534763372846162296295191656769594142455450774072472295352802610963046243363354382102954516081626119754813113071975703023676159653589548525095019025662809981687619828543706142282665885532709627855567140012477534421483578682565729501834375739395488239592872671449322771096443448388339951070874266007667580659116634829668500304131071519602530956387845796398184852922828248684638909378717728688256264339335047583356058407837212543090495851536938622546420056378453557175408872778951817005956785509802562480104482403658453815680123857851027094166101171565443418408231288128977553380478088873078805936349626817896903716868545279251517681993404829940667957088114850083205598557988528900025810700530723519010538793016866325189758922192246338068959411117566734748562807529450591439652546088695152237773167555101112387681653610465780006703110168686600428336218116525844628644938176902103843741106705362300300033142458795445115291436882080707043511737115648363608132061108199995851938877242851044579656209689911587429295696933090808537434156171627382238487860766483936813410082473550803312150440246101872082683413541310359781656536195730390405831106630912589105435244735049311185949545928248359891466705307948018391358684159478388115831945491500515590817513141725454821617022347797336908063759124138657723738730863868918101446053665742594784014036132493251633735757034412121959407191452496845071230871972447249113162532011033027366127135407193099978035735236430209888220628396081018187932040542669602331991562550359850497231413739101385755139956880636992033284097828844011903873621250312409786697644349725831871159660487142039061002812380277212366730578315415881447982793342972839078271840570621609521421897193613191306413932387872726156099006571413683183840128372124799003070329468345836296126423738574027130488583525071902285936791514427357025511572615675325059295967262712485147885778189828872228756624339738799986315329306038260383347446910672022722513836470083353811945163679349541899591200279554483102869884308433709408741314147044529376646988865612672047140534132977029041841686833081857045584384817832674177818643903853622426246495797825729310897338577849475355019138113803038322454913474035162834854687871765717280764591588442550501877856207277316052630879452147915527349667464563842212757602321567538879980299458790465256825628125362659727661954510280954074382517527770954819608377633638261171764734181377965871260433350312637131972727441280007027894018458443083151729460863560477100505078400598466972203859156977919111296200677486065328839813259106954527961072259216984377222872144277987029046306154408847340832445912320534887080013766335001102852696432147352621105398335481640758788587590167677331411198941080280620479174018606352160757443760162876997148264660816211151259701975107843059278066451949392716432931393122885065393566696072100295959689307608545151553563064924053125522057099130157597986920335414120153272161206714298141817080979543705280264258001471707306192116972843170502056804308535478371806101872275733986060630617507646639319962736085946764795215071696546676863475012100895203278258049111455040641479018628500438888975633071479741460724094726838752561825348169102273489784466786585464423299007460522487789719550926020320032860586650832844410981859850827223334979278658523216681290236009622455030470290530819158975560012811342193943722639806278239242525144302616028097547921509435105651164452840933591566027986375999478214808704009958473911536941528310823837631173912016824839051540215998823035286113422175037116663469936517620691493037450815133454564991296051581809103566382460120620570590204544738418279829603214164737004306857891022196766663851038324209467076684930763002224303024877763191746919734833453913457324156700636391056155871760550426027512795657280708114961000599559831128302023013194728240076127870315383670226732645584677633311567293446080630869457348566853384702881374624131855680189154109679831303787034002584959392643892407987102886751582351456175118803706242017365968757320774298673571571507929808241385146708706415882925118077187925141061128393488502752991886409547337628635552442641397524061144201950437343225529597557185255929559945015005708377525092692140692346970323461948930583360720766593948122854682291429929980814169899816615899510383978316997479083708066613802539467173247173544618603343126762275244141302957797528987583756129801834501136674874037500302567603778646600459693415551284677341238718631615723882612083340523479245731625140406511874306250746820482162626976536900562897926759147455324995683615179611945244370622208764604897837855826644094585656921564903225675076062780546988544424178369453928568070878642127214500715392440244288224806882697825342946792843850373122437348556979426939937080772232147076440792303502997893919561597699123646516055675457590222046335831907193907286357989793796016748381643216804950802532962764029446795634839571493143240072496608119817074750275973623688400401993617902783350015433019013273756165101013524463545040715419814836681342850726900217929933540589184328077764039897561841585424899847506329510958719466805222816858648452457859368044010252213206875530012405629084347015535813142007077478324115822116998236878789248203675295743345334878395195133256509676011343572906092321241898023787490233200883735933988671532423815762232176888091761851174142323451118511981958951188520237423046439983670852724935325007833783279559308556867954997227225515091946077991682516399643797981584283436550745360720224613299031493180987554913565356404782660402165464795167991133228624491764706158985274590978191419385348593627883098048228808937689625760730544205841150366365001827440799918728418831425548797655482982856015189252394087425676481787675925959913544980145819066211614244867322152233629802858154698551624923969349927317542262133468756941943122828475496639948778934738990803139002587923039655519842815837708824173615098293604266171910124487658022381804617074320438286710507733233289183135558736152886027633225560939630773796582213775008875253468739386442224092923536578054926424220677095430775469676030350944159469839526871501281413430175789154010882049057375915162122521665296217746732901653073333884285809981406421286766558108112935731757150225037329426758800418735091927811814498010355751756085037655218843299720827046734161964174512880905364467757507900509035441029591962344396799502787625169482718645418147400076554421360384971870396305969760908247047823834751343884313948028832536136221964984333006844041767821666895627924024488030679025512485169661558098628005632617322172371077415170751017082964325738245526870825376215170940908006540670255434859752851262482038074251184630565874098394902057402660144932007924965903528528246472282497250805506380521075072808510469405200154094566723965204259045224398733957744967511301900713181021258103926144751155431188466270776084932370882258548455085965993082825212683131742675283749232429624917128768689570955769108161031167297686395914157762982008071864174166799763603714490039361787300361909831694981745199875121200871261682048287935022840198433458487011239427515028341011990807698634957497042666200822610269476223627884247092840631985768792807275428881555856341671211174470476315845425766310337576552303557471749484591871924961450545381147640038073074352621044853009748877931954409538865472220558372350512515701108675577998033857768227728592358730761429517402573895278573339665710213964154859259856421367752331481677129012167086778687481449246412362904164777383366384326163171535068242284268446533831184010907596327033757539990387776503211347103242259754179191717488511732208949161286615365160149972695618821142811213259865023118522028262329794012093937052414446499259862053246803441366671654338440543761953568619150702711964738902172582596898668038334403302575584712906991440567948710550137695613894788303104796825228479957190527676090781751880453320070979068655590018775659708930634141929304639482142815448452056294890175134449407973352132460765369528526548846920194512830599428055308210691842178466243201644706151711937694985532591287080653120373244989946685359065593719005351979031286824641834868828740257581462172341758855810631262977166996959522268347990053902687081737913774666493928978324766800920623318042162819824979195880842907640743193321123875392420991475913901947774741904694421140535123370992066577645715068391271414246171199038862580485256275413485808433629942073939360684992455667009860943891274339625807574996479681046041510358253840081311468838069031836389485473826763030473151628851841880123197845860910760527080652674936359536504945660933064657601788860378428882913242248574148692666121833948411816277322591885565702633125138216929262039900995871182352658663832577155593687810732874455183787645339860073422916997508772470933009215659119778669541538277015425115046239502709561846593345125369271554883109818352912996468422367098752881553748752428406942317285549443733994647501308789598271548506818218609796683812670567076623875071792316294887817522305681174260247647029919673226913461286844941618061055492095644773269001912421209013460584799066944200447772535689876296616000851819030162017004689860812372403762529059774054678792416686779852509919772161621316336523808725787356461433763345362950514880644881072910061076766102219211375603746273275927351696407944039994517673529996071882232393627494910353388279967225692603470939334888797572807972360331694978275361794570167975826699870551734510398029657136675994267708642413282581514251900361535794762254535698943580792960790954894602017564087273234018484665447835053082564619635431405505729021390229269196522426377113325601840174618405874317738086749769070600690229002285577088565126683249299813374469278843574364538363991988808456742527961885990191109949815208382435154921968032116102064543588218247766692655844747328054586462959394953719515151011636302005173310526739865385223410435740118809865240810518408958508257790581623836114805999654140221336697888683720173832696523723164592547739586967339860332811645821473129779231329394101479209698041029447038399066422802851396781162275675691312470116953263988676318071422602711660324087006617494322308780497544312242667612004583194730969955444131368234190370882172296597191481241488147848546818263332078684424784669449134236179682659306745433595715810602624147009619803888870442676938448990693733069850696387597422968754396551378563589466952576111846058393549642879518097510617535653941409611265740931794054727177671718045202065032616412342463213542074822311675023158201433231554923514942072335266542555442256053300208668151096750657611619415879212007839389165304493475913347667995408685974468874673366227908414845085639692648002200610981931578127615799844160190217459535691585950058804761157662669381451354627376476702805847587585607891501860218251111966346033548702118164573277357486187478561414350287072653544913585596737080671390498970308216005322728529467306279051058768960713404920514738725663597321246896187028838657841489561422108703977899087732356662131299556625125521726036732029771487334429288806677990961391220777523979792813482150283580270968904408310019266396007564656756168952063957668301777872908244198534804253908271123774909013590345761997979604550467457350393432063004826365375144487201328539070496227286081002828119322606529616524600891365336009225903998091110847799543122809600029555420754667276944986824833700642925865782636267463189542879052502666189217397861512484339541197428025533871239877253637083496964896638546994707974253515963161197431700088259441545401260611855697472848451233286651414494796550672836492952254556455210631086741327472349326834217788892816461944416074900543811671016551227657060089344702540346829895261368437531313541153966621358723621455062741007946126799390913714131843170312822408320001886879745342567405634864327042611812934791626597749459551635816238672677187982700059019282044861355588841472269978229443717306541095950285592115824527269470618497961247111744099367850355171092737837925791342795883214444159798218407109099138510283539646742485833679550935788911959871822873691494204585472119994699180520923985451718272177583065236243690597449009587950796476048091275484470314008211547319094714468581408318943000309982152616688403605008460523310195662482565244419085344755235368829039283667884676564336318349164255321055342349690565871431298608851395300511410130665554157603660012218803804554847856091177984996174070870026843096322859227862441077890661577254906074435650325044183288840095174667532623509261645364873538064774338998250244549855639591272066887877854026054833515404621020922804705253377817239549319251827905003672862085743427436183210834266344115087668197492067174267568571802932996529589883373084401677866203767438618459205159723615572767485544545885580125373493111632101565750274076479591485789143598366925121295808588993235471411455091538647659661588003415079331386109799131983014795213811502225289900360307960848245054111361057870381868751017747274916494230640765599111407453028475096473895289866411862793289638436774770201365431346412652297343763049170883195250639054096132760461636075911306678176194913857069879129953861974877244222935533198003275707734480163490523977330450665849925764540617356645441078284649097800554708208140041350897932956006399733094429072548026516163441346724467033359683692983804278163762095125201323328049350212309081068725243368772447557953041736375480542685370276773407808257096266070296013267724092411216204494576400343318978406661200155895386893808509200942716824656645971061316998276803771630771630698183308517357547056258468285696641445324354115861357464067968155198819424000833397876675780626922926686528564340415620833040597979717611469941084131296833920628919319281469656592452504778491256450551877824982366439984725718929072787317275421537305795633446131837043310522791764800311775178867992926183354415425891369996993669918310413441468199218989367360645718712026988231801319657019360081809176521974629757588293154808307773676968915571219406232890578873935222359259146335494860258455192810899568752800950698775291302559093039369535937962471308038575888356232148752321439670447000858166387699149607142673820378881531211477335764037780437972871810611497865242670890338019377260794765221762547596289045783124826657567307609716881404840732474173186120030088701722329815586238894992664360862534143144735543390420446111880687323830424740170483496432530360163677350951103038818711454194513386431464080638090285317492710470627018697307802349071485842658053228332697617153909810496097771702459033197943669865239153304368657038469932012288512097160727020183352994666691193952753472051572186113413673972992876804201081309825289629373506213780051810885495507098557553546907954695403780711745885119410401437188450753986515025342327989362910433235338395792726580277946799684422594438254874902818556989937668636503970702370854761902984107921272266061052819689669740669843406976397573701051377548931866171485702747883382033040587872710255331607428169006678612759008291483571006582385381533316363460486503562677457545909632340785419129991062361496758218619281346221034584470517688047607904896593747970410011234023372009272612471262069306003951766918600930888834538490698684371399664633567623097711393383385373835394785320058178323317491637888348204272257237445366040495161014953491674013383199705402288573774635178154643081616541243255463413023796106105669405492736082513484568069844609702359664247361630760562515537340358871318813998928796136447128730146200625331984456091682169816006990806507227645835401014660524079409178636338483696300272001375160262767646892099360315495936557566605449317806822367093577903781488976139345523305651696586071849175150384534991888824520103460875365774279435952358164345042091169601662218302562611555711767981127952978958289612528492977339091288342287813911897606246613612769723914484101845084552273990480815768540900979746266582396451562961234614806863811694080129549156839736730755164494917575417874809752451529167322129714360641759504176055051660425082875068190741842086032782191752258959685625762777728744261998569071255579765449189273181185534136156805806852461893381412017340367062461025173520373932833968470878406313962281295319729537117537467741089971517983186005342695978607807703192034934470211344942558275207254501202504203719682864525676100118392048671276107522596169772768398493198558766398681444014461007634616139220039729255522584331012655962812907243098135150330499119578524710097306130516468348922420774053747866894155461159583385821675023570426486360729038830519965296946025354327409078915388841584975322103409518831182346638554816473236367808169990643373123549852918086418350393437149896782435613809937878965074254669041313697117583719488932651643933830936024364529197615535600307692547438048536852324179156139309094513406568562745547083058479369109825865255472579541915510711666652417857622369073158724307260459112359902526818408067619965508791675132915677567252468353917787683550130686609511377013894038296584780346099880650690582355887117215912298149336971647128077293398991475340146382913598829914152605565259150967649497420140875548488356097105111633378689666241727503956572301587395471884731794233018123760280761845047259996818040909970878310080048679403235419218844320624157016397459623390378786998399783597744273473335161241114582945369359707776017542322806205831892829155288608454881105469670476831283428389284792890204308822410570780873450101569396193468645240926584936796456331808567642315251789955493288898190710587631696317990682219151606614944504037630806040016262344846445650010103285957458928624554499849773475788057178900286471689101125256581949799619657637560023461536225970027447442492562410824551486660067314176269130373236296215946194715246551387992307251521228267142624330482381574703451240544358923048693173035819036620061828321228409937336296187491362616751662958313030843427836442791632639986188459783539098609631699919342057311941057682546300656028156687427606051398757504174741149986772879453101760586117578820486935161124693813197566930226707258187406291290169372068593961862785855887835877130572180652042132266755230086716027004011338108187163667272326575571905779919398935710431110318596400746006384707780566847495922225301060346983468014575665476178088796669103518794946857786729712068314984770765177628962062133998240311391508694879726643679643660740676684247049861701375481098462687043927086602650934851646670592256658064529590560362156530503162207983395208657914107194628884769780021259697725216333033619445244415573369292873294215977078167630287094407572631602571111633409583838568386791938985541028589137611976873556471488363222791330397897705836174198813462998534195957508333228114853859292333254981868707059142520779739753454711158363296440878471297851103257793180874932315463666578189498498599703311763966783209804211579115734212047995292807735558934609341573460689914054531230202320271908811157686602429600562497404231629694338217560360150017053750359045056369287780720559937635820895783377426591502390863783644189874127472017187405480434355526385291018026890349253056785113161575173727565805015510970757359469521471776442613077229452484813123245614166747352434199654171736998288164506722214816692463779238768253898527726956316640537717232362479503589692387217853646541996393205551798520507578463811457711144023569816277861094757842395563519894674044505472871256508120450071371161331612248538138055212157216232444667238291427063269150714984445306763115626514211632240466192278444694837535017304864779679786323216558154165925282279968856496680321426509752516817820135223057191566722975547539400815955062267355806876466258414864467868941368200667568438736549389519208637090013466864069699641291390498442600999504256493502582088500864141333055351832528244554552510985369399867814718598071054277918768148072788351121667247881376939045296837826149210322415817448178382874311016650238784187680506722850043801237744523012838339420408441664186193348634197248329134616332128738301365701963432620210195309349473510099001934613485352379636154112495959251194284038546195000328170056490679877170691008417440290053831641296521222571795100514902279263867275979379874629701170028526796398682873519425404204235946985333885507852806235741942570210008043508221183793891303571904620635832128178741035453535139070853449898147924939979949984341222683340223846877086375681753111156008511278968394837064399609595970078435018568872579353266523589711932810877592116003344966486353166096293805777881496608312886185337981245450016601771859780577613529400736006206313987243325232813134013157637023055526296550319637709223589036319360411347114274909055100330148315198861606967713546433592496775607564964269279723074787291814501026170713004732696412594078907198279798526936214182785921746754134751438562101982785741302913688961143955418228373203575713562434327325431824665607407831397776878519388337902277776235170838908499631217464472058329561799192600641381783955140881039999113703013951472065446208285786690536529061381417675148016163009818198076269139976197183860886007778766701048706855528484859656856455349974805467103704915168060170795793452703480498129982079032984254539084054191484398666628466470961245957128608180541786925698551125098523651964651388697471130060608301537615002074778443712352503378143517915286964444429237452868764763655501401276434765491368396437186524468102033417782112992733044424748204302200852974940398328361354354768589688373667279528416066849093235362591041424198452894414034559258167588520683904611933651758792966185281605640978885364206819420701134461877803179183268701600069921746249852018950225451249144043213969261932419410700715046720438838787249190438838350321826821294168342653656653933493613098350575518247818244322150819804914332348042276576452626709502224065405736034836088595009547497478849905498512134135819800319804795124063723452842570443533860279240075788705793900456210454302820215535678134904292528214862118957629341909178936853244533047252660807519129312596854608459780671589519043987618546264607344311490844026804388526483525152304706809582550866024468417827292311907665581781001429270807004522857997017170504042665611738367957689767429279164076389329964018933828151319062033161771659387052430820612021290884092017897297326252975442411793755299127477042222554940790895930687532655380589538744745195560534530375657181390185521237647745790523610287098954224827801631187008021502212958893649647232153296222255276720567787559705599399284148671164477358341405535637697528664588598062622435225448772402113842270792208384255953847747998067926422092353757140542471964814023718624303810927464872864944284975856886128652500537759897971528186265589417454977887655219661921135614314505468234639666761431403049604445066304955447656915969375871567554279404860912775090049904154003868200886358819848300247300530694922495371867425977171590586220173435808896415364344196605965911405721593459415601260912772977645289446504596029764229487027762329377178129366402139564737436181276625613376213189457823157204613655856976370139472253261504101198687258700244131185593710188965839680397577768150710116674398225330185487739501711389777600164435239201952610265552928500960393278445467120958344837464675052208927414982371131182915213590153222258611666371745563135065627901926843850291916400310600597913965000953303217401786386802157977914147498919616805035594510726705187714309222173697931404591532128592440575208384872818646974376504480518348853617395833355860921420752390893118685223572689022846055419891835614815615467802831522145041465010930084291468647157669617608940303836414407444228106922005957184677737495423997893100063660376810926288064694043730085404541833174228370037810926567254095193195213298724561242620827758194391687579375714995960024209233401907953100863227366340436988277690530244270618599547968958302290175222827780649715911447464189426926742204217969969694712760512579260583328387417660983946291859346247882615216216618936318425593694974645778869426454441943659364194795709799237760558624673102264171746355074875565840853279617610206775047249477474925089528950113877077043648785308185256494683470053386510874731201143436585827201690394831896266190345851654656685970779011360699904590747596810023595852191038576961022425402092671826544280780163120591694311473134096831937429236685183297633586464140826604408563943663850754582875660261174363462848506610877758560162119362355144057711747152286405373860690612535193552259863520968654879647934964330889560372329870640288360168118664778341926112280638551137413565376400543331201723559225589384492899701387202414053677751852793691852357531941622687972297016044958934192679843521126690044436041267815700791134858515634370256978004002533147149771062894190602455762631202213620068767267402691442094983714498102297893362973782029311541835686580750751721315204375661702884706907706828719021418298926850253117363367652325589009117761870018010342224552215449775899427095057178280410736979141787753873027735943924525755688553643956898027415721721817039427987533290222619924432959950282026184618905427069301196488059078118864112815130218451238738168069758595423284217473323512347687705871624013471992294410045647762909067308193736524831923032400340804103291882611878673724228044138707314530563474688662579137937825514065785526184959078273401485570574248552386962450429507836725624407821005589412058300669249213464805591724803260745668802625971493839872319627612254588453650975736112005696870063667794264836961623930917388703034069902523012446187558881835366775321540663560821344020728679348826239644728719021238619096281128304109168230759365498733418193664281300047516273771961960813883874964184890966137252156339498635932333307034212125156569927962457921963248264075017658981441012155089858516276215661293901482149875996848361936731066053251520884790080328927969522652754940638004341661567976507579483377367608900859253812207065271920827224564544399410457852498201556987928481095014082499956608689418869377870996753622603879334617048756312007337675052401209377664709408812942463432165806203742631739620233894195602899384690862374112797969393629502043742288456383760154221592418474935920662226068749662118495865815313046561344309602362693439207135892368982602933283046687483972244853761994599458628729922831292300063574804066383163037086276146577992908951684229062366696112632529241953466345376218482018406277306275355595368518949181968340663263815653665328037331413889646259222127168769800449217070496958102741282906199119300865565728337893565068389872264165191037400246452626803064704351139644567313052989608437022839265905723151245190063256338942175321323618795109023800340131045915166136697405622997873233312338961826766187328206058111984298860648041117933590747233742401668431502427380007100310711273975731466890396814430966319672837989514927414614101311036884048885213050401600438037769191471548817661127815212641098879843576796146324554648272866476898331695017391901627064453500563973107263715473281830555908861255344331012614095656856241652482575481765351605443463138975760579088550301633906663594957155373047804756974406091955621013925043339877002012056737503987311778562837005689879144346768988608698031621116994076480560180483296036167384670614579195934313262892702422463369584510279403765679730468246072440452791277330346242026118365964580607777212603813431020369650621839952524343455993626300848899171206714014001682229554646280944042253662094237095102742121770771050915521906099239291262868513224437927269094497576641283332934603694984632204732039729254991820764804889950655384105096909089602112913609015845841616407801493435611114180938120427299814365449442080368766892765310852073999916350366923316550347778676776817233627814130451737879543613030736041509200965153239620137089408679702527892586414119923410806533759439982444945516142557934074872480184602880115395744721674453994392144201559778622021307630858463123006423941232528290526205576748672468742054776007196785655670795498261672578239793087286294910497031040347333747384952087879448468979084231546907461892003545947409351164777425011807017504080380736500181443304050398161133131664718131149083343615237732394679836716314832633780370494180338686842021770700742206317242947935513130485349868615389448386757344612363997053902486685565929397422027822306170669856945165171568083900140737931560795555824929978115713618913540162982724540617274468232442927210636407256020627952881785309460035528288036969918994953274210622281086997709004030395470117764719111552072995371580416871617793494980122575825374559444687259361334436657164650491484708983008775254030204310462706199136692216319439252033784730448113648929578811559443300060179126546455778257993256375731498434191850034200710026809611296089551985289805228669518804805737641122722870950087795004811233221510217688033297466689812925915510595445259434485244178934456762051496594668538259331088780650736457173731976441437469415410814834778866314320590738479214527436829908422585019734236793302715534110702903518581504008988152650453888750352436104585455594945454151128403284522325089734845521302781208178209528289829667800578397527890212489888073262677028958961599830562622034044406826301137454319719308410827316126793891662141506251483263759516630653763856625923050481963287226692172087464587196897762224447075230649386494993446037748491531401444017880199440796905079454499843763433177409580035117516104635692929742837311456974351796364414374299947866696216208276448064181406378344857950490888463317714800941775608631707526154443747795896912367995514583679100573096152670819944522546231331510499744041598686992308798718643602881894113673437767310217393584858775108242115799038236638481162603739505935748565816392545630661394482879166465986835865342947492153390704884210392400825624331959461092088857156822449955380146978032862140616758093711079505943355832235570629332581431772743851615636052533570505067811840703746494611232289242641155070790797119181987116431263192996742592419687096727071363807426057633315638933129915038188838228522828041642891715924838931569817457912406719713358991876191168560131685241693246955873411790775227885319869949687533009619728459084624838217687272613399211295806402370299761241468560450040544074952223157974091706157755669906008872984471407305696393073114975586369199986898649760579206206707526170856787077773620291106063200544380055419444558528839954880027983415624086197045510647953548695283361961785599644875883730556830297038409619545291080680372058038343187450354167594902556159266701479798981649811602098262042413746680791508406466426748060747312799588240633255493650584894988881114487099366059381621483105254721379540821298871379321183517330658147909462006499022568162457559043939676069003057756185183612054923115168121807872523716978971624008329237080019999686130080472482355344251855337031604829032860908265826359473838661946819293446366117118504155473266490916416195964929070453461488483573409326630857197611908903384757076862815963793038465077294388697979413445967045300390827646469318384547925291854523429551769764499157416209456270019663585101547006346160666424189183155498108855157835162904348516686672386350624220141546070172803688565004536670537124946385454086589065354105840396500644136922134159925486742635847906753255931981505815793261905204809184644289740440342319103772956934434910418968510561061137978979377596949899401947865774968337932940441319638934824302551635890698938846811924429978079593391139372460572534833493003479837075304499354744706179819901481714890053915179785264346451536449542101372072555970720260378896653573306673621983651540555590326051493367057425072538257993271902958346809892796410139583306998702980883622942747385136454574575577449231232523545995746380332128701171881966639031896073673288878419148166233232649565815277843535705197398127056044984057788860655790618325854788209114799236925694607944352737317080760387687623678745072000242977268627346875346961919015282866496122991696439967682211148744424022594751974722807068771816005829952543536020769268269800882406326510581644758791961982591546870646524688153783381656493038732321891042213921080539075302066194684951560011205825187179681249063733381714361889568562722690124910768026161364545651046701276839755558683055566823298273446773797160541159540434539261472554743310742498648782622463033037758642154113587048934822254558345923059133436773115398267408858241550879218894467506229460261520680700779390473812368710578583608433672773826030308092050662902562357095019720845454165548281150645896010080054248533251819226463993514930398750642364349689137531320764780646584829180389499345360487716882040409111591294687256968667820543000397414227802774851175560922771135667831082951003328804151718077395959267204462891242723674325544182973319898438313405580586843065833968128262071062968261206349243671139889362432624153418895971605039811085731360409189840504379495442562444353311951202964754985803001368504803856172534210557061563568973275069810665125802217390256954917698691442917096827773782113540147852324836097486066579594883862562357544473461436721811516710385738230112274522573333565552727128929310690929093893884926964998538524556180240740189487242678741464291781473655491113783894358085719444272278918674232207295427114188392783495520982064390410044069654918393344637158971617288674282154133147983872170534586982668639787470857784587771917771073729450879036646229995031899731439236747078323262104125092156359148130445144353366125765251889110549264944576629401270291981741471239499798697269929574914277039910315564088492134531075538023723996598331751047821062066773280081302982885655908214048930757822503690175516676525661132870714022780916261522051819430470747663943499896110206862765220488368817305233418978617671542326035196157552613532140129042407942239456157067607225315665740370578553077421957550023608734252965379951938717889653083183988006679932756452580114250320984276165892403296172040018883994193100018401196706690432323624463233476934757486243296212717755918445939230427875959045948830393121454751753136747318617249817075947187380216160291563352112966987093085169875704556675447155333206778266763191352550091543070887432515194388776994961260133547198831876482267193311262929693600156969471336193463746478130093937554065583660484688439977780139693866148086507726939056497792053595589257975427969304597998347123362710595651117049478017927571179852826769525575574002923695108580816551312763066633418844209932152158240808979035716842741446685555051588399735252333446850668004000756768484693407504177122349268562942336389132721092494145175398222868780011674061630811142076450090324704354616971029932499356250364734781954554659370115591123373052779650826100939795522869189658813957048087772420820834194130978076950428297020771324055857608382249362834991264070048112842859086144836168072293402832550870344189003816847150495279454215999607318621727661557022976152636954672776042190981276291434355145681934251380352054162252769279293328838287693976666184573406959812523363365893531129103751783781825832407510869017584766110598185512774468632486218034562084171975798758551628660564367609209809200718692759866415978831512127225774399614707973008195444310170879377274079626187917279537840717246406104777655763300861838953262648067367626654847386774051850076707941107081766327040788253967096609392750317483557133115248281096349310478038484372924332842634307523971243802159331068321056639301267108100127738051352502625907768020074176393603609805923970777265925863211809087360378236630302181662972682178251697150302645819292127220851442295385450923928284497257435364331879062826916752945669960643738091165448496789959356746489250721585395247738161689152107873477229653044650814905742944323679507946110177231200437235416142879184018312187361942734012256975102872349328493345389643700804664500533479434897869285211147094449870365496483867449970084725404867926891509913974658120363120201766549270941083223562876710750885643690931229849935664150593042434166069192686611324277903359049194410926577509740422218442102454685762855741475570962720528048985792041337428997971061728730425606504030324680809025318082121693867022270446760380990718167408298106470291701358591501104034607231231244559272038080159809549802571479654206672078845628511900678409708063208466020975757283139541161740436228062259984765802171852372871960422519399604669962495253313557661355795255347193822183998313619803605708881919330185910029859264205992462725706378065886909582705476566096105987217866290838451857040927016836938040111145359247139849952443908791236783125818282955339189063376982228305361897646582013242287907677729482359850037553885249416596866407959071272046960348032152060405756180032039164810855732983828872201485148011636876806329756424305289276197080948107089474352227010525974692503122402031281776203573998243193089425539290704599244271653971686700244101988554063513246993698228796072945578533003579960840531896546825393096776517850900565583585171144249483352287090097539480739740716899140984317307267611712607681863362082888221414549219511591636466371818776642366596457998463539871605846328647517969375710422960471636562750104558274551972860558218355855108470876203591650933455973705533814872920694250878411223928054850586703384760925603821944872192709722407602082126575430137421884509861952733723708434567505993176700714079927466711040849172963109080811955858009829090258940535700471869852354900210252641522348473035502058930878142308499635896154675136448807886512098286370362142296150294743372068260340001393153026179534856078789922450902368429353636404161854281378685960735836968684372323942835385939261292513255450098104755649993094036394923906724459590188753219090705294928179226214840676432378196282144758872305004973491014868544367424294954905431808243234224133191370323628373760105103016626507865053375785921734770077769755572917706038579195338893137326543324870611683731946618519595896516533879306138836855476571026272703651575751093095631259075350192032421514461448733711334181680403324129851938765600794919267543793600698903508574028040182865800684769809703922887672457809066429135665814940430074436810163119859156123124387795930102071336990494182232668885965846305771968056815518804646863111790994970900137844916430138472109935020978326960351975994231075425773160211074176174041271768809109411524945304217047574493232400806572367135601456213863205174587851085435972285729157563061021088711513199676961019186116091513934947661997089026908440860532658816788314024563375390193203643166959158516224904644400074433196844044805241958819141889076871692035924818798629361853249076293257381597244748890466119159164581383812983523841574783245668694513196142115203588319388463392923054556551038379565169792834836154444713628911675698537863613972488321343686751929799352748082069615767016867849685689798707439602476799017160271263225755717142645742974220485467961498517965399080873128680028018744756789059475587924639080798322214319076562589111638506814215626104972172198812235288093299851663746609750463862322826701270559538310135957388840350876089409067201389816869129159990431155258820951156886234611821719923328874872421348131244506418832914613321601836100190575605541485371077593022714984800468222782720314339583246500053442781498101623220581445545345018063667256763361679067574338359209846651169730125061568216988018460659514138532682930499525426372734291643815502982001276676868158741480000605214490375296430136140158489561788176093927634305496322509572368913977005838663114270061488392726044856360458060230341095768318192790655693479890453844996095487347793691147648616728033966052046002964866552703862958048947388830846521217997609672242066521930828695667514500963647632183460047141979334511119851402202752356033548143984569555001238509571329097268528103049505816577626199208474951785340838005025862878095210690280926872116736782294570444309272545851321926266138270493228620418108487880579774950473828249401014995511691872472535117613708520295426050055156236303422997938341937309706134200725464276929366728779241317807332015716924799839685198557622814302980045578825072667618635102782204292320839059617241886335010240492601307189009228910086164412980757997390057271951897483487268209237095331112317936306196912473237572018203866667140548670985399902787291016002996129545173386689035893388250799317873336848183279845276095025142995972175567786128958049931390249761737441735070161487140702897149962340180285438828925878135354323571231086919586361583154366416952181642766733390955381742193854992032880630724759968500193400836503401151649227480004642245298318688668409101736872473108896293754158951096846796763746210148967647641644414084872342281486069029324349056153284006600386245376814236747820852861908858242191713324868392258098429414197847524670361422920390834674491468305454642990584504622855363792311805288060483180633512936132161485322439132931759670647119027198451872212984591681203758299376556820677615689162234023638108126958005035566286069107573088280970328196983612871663544761000200860338383612525547581067557677244948084546793700706447954690516034771956385280458687738555348989440868489699429238223430813812361363701043355419510883102852511501943005643200932678135679540731194605035296392536381347495022856178505209657072603540009672027351876076452649617020605342558901141442199690913491942591120104081212957681267213543753957962084259717019772212479305551011819855862880838824234041760574761831188462014281966096609413442953697013129393306922375872504842725834363828915955065851404538387394654050368735809989781883994475283155067562520680554795087326089524882830199648960647701408181623631766232824133678665351658481866787067624026404166139317975398939520616483286126418492408794270278021430210482969367594682678926318785875941959961408080624448188989343420624294808742702494167498801381058727505352207381825377391702002329133168923051687052594879626488743558200270486380688778344341992512552001112512516699012008388452438396658781329472280295787579832301327331816034897381094962782392301986246557306936540459075538664248138069147477150757766013409427110811955228873404640701065559039669191584207169295795612963704756479506224726913747398663924131726495140161470474995459341394401490981415519730351887568844881566181455098263113845612168330280505929826402328852895592289598830030680185578623304618326899704270614320462320938602919300045706360403716715095524194288140060193021825456022613898283014009997418137488324828786257112474099652725506937179789855075346927028311785514367128059765648907748535340310829736335932966944391637585496607750162125606135857262827528107903934864266821298185902939490409335997068060253154659440511789209011540874840028822201994080434802774663079177756002331679585162213418390902893899166917443692979251529285846192673504561746374045147348367616976967502704510930500012002939066055281420890142176952605866359971089974696857946560404621650371593123710969161325087257787509532493676116946853561594148749185787143397854050815086775058761941807045718986780319184022611379029115825595716171647602491541734685105032440665797357291925219839965881690533913703404595537768471278528047964978335157588511938901633109653829423658800517725663414201593375751311341471391260916857206407203587349138988789800578950447081075907522599180328190232091927397048397648477252103891401347614032346478794640990294677653120396566480019009164380358015456517665821641532346417855051767215789581998330038519583340424477329108214435868698016398705800394324340330826452925481054440673975125556578063509587626059922719166690169025038277505867141375595193999174956564164128396235102140743429168105931425599145202891314689746076312750716906112585459505262889598199744343429674764358178178276857932760311333116673413568012244817644726025423278392871939806724027011284189294835417848444247360089715823326460106455615044961228937612705503192408762284394434069158339127905721846379625493984095732409034535964967853083579752986160334663265067633146505055201942930323452674365681771927160948328649559863702778877228034335990365221971099623352910849847309555494789071555736119309946270708966832484816903429399165392248583946669718471571931746257305457453084798405168958755652005990301141743069656492966297068997556441733672180925929078678484754286568625868189281768322966507080231483140619160822209727482782810296263860182577544984214915296387692422657425735294651047131959088417797141277600423954512997965036838494758314296505142038675332295471227578902974991728725663757585582748527897392677803938191555882662482697208529259601941165766117058038884304971304705141470969484818847375503143516263984699641834199696832594688513604444966573763109693182007938632640061567232479493069742628438010948716870152730267011134431162489995163342313884094832843683373394925575347032979217555436959030309234381586543218366610667204350114288045719213668129649068268794231176924605199918718416159331887600597859568722005915787346958760405900199299110803965725717142866962877476750704427173331127237454006563646691417888017912242648022753567460188233970472909564740120480364593958388537775572929080269547757848542318829018355103303286658630567598375426047775708455048283170427934182570836694144831939295056299369331079794550214773282298703031722526147504849965070023808993812021560891196230671288508893828730163603494646587614240426136820198185818512910360438547047915050445676381018139639192009812406281043050352833965953289898179813255475247320500734705386250267833653331239994002132462740600872191598587677322439566768717846779424579750195011831256348721869370296733789102478904840430504101121943988937103624050731390463803054873931308554003329988805271065581997614506336420343681966426835319359893973369324971012498802726478985446363827474127477984198056871169392219386778873453356418685455728404527991262120120687460318564633074673745529200020468425346351195159770997207504110042340224867587692478922173029227545362875241012888775453967934143188572269643688920290978925710409196054979715939013333099689979688112181894999183487908987459140308874666091158338908900786893497260286114527006614118566913502973825734853834770396414138857750077930035546392710546374587823528197871466804951693056076600101795767339634828811382218725793909422174318438408637652664466446731008090148362002367413037766532835964722709401116202615059955493761774854056149301961828146894441062067675748046362625056819936583509240023216240708765531989568060033403055304993784101143625983630199876531813969944898327816065098414632942779923191474230828691558262539128365428935813507897661773903268311420121689301009757613272452724580506814903117386212872265412354797445880890255028524639267939219560719381168833105112221445689915688653041099966713433654123819204871567827128516815831090755922723835462913206238780211542984096102268030566097644128786183415585216933420264346914148496885626110639651104281530019357904727926482404050527270375143829953828134859337687019279206417871609325678889556467805525001620503621346720412412945461231833386361470977874364508279857832765158175800312664435101100909252088026797129221682640002119749504528402916220829473104058982370915501978408779818104539509968507874337788234024390362006768065055655457462982943344723642508652095427137923881186200641617282766002283381681386294710417141104342481201106346333904729895115460239189402950868678412838693451177247126269107869294989049227523853008099527833457733043184545676054472707175356138391208663691073090794273951115504043569081959355071306510692553358186624821211648898637288088372145190209376288069687833484826204755828602649233202473347088297787922963980279673121068171665066317099736482740340361417290884948210422928577190011993323066942278306871553914801338686473921164423816279527622698970351622678278319777247883086234183617570205779338808375572541237857525315978613535785997620795935933670274396854882662339179586756359748990459809402587321595123769568940567115843797373962780204993722000751563978868596928238497572377193388190505918426241277374109687698331507215846266698668683864059192478975048950154388295331911099094368602803363972438687765789694404966300981630164564335921771939265521447332080701943243516433770623101342495390311350726029450191211812563699019006230901091854246231697738288545747661111048663778978297595804172142188400629780582852817598055267348104045134163218002060571876909854474540432487012246301130705345242987778674118069395935212419074675778413352921207547020555705736436112989234483715629408196877996934266241099386818909039825308348292391673036733483511096941038562623421975924483937089850114471619631732544178806642904858612622795795891667561128000820776395803450715889441450478490219590464315287493911669626893796296085878799000849031455708443366633552714057607274601601039103121731014074126422102210147695146935300234634399913604569157516078289756573272379424582866760328640000618962235382930091980949090103272991259853971625018517050137552896204766688080986144162801217047773370363274765310898268191000962380184184564571847320982398841939299208827301982337787265300024747401661115618413394107055549529481958280806775520777188642879933417301441354909446206469817049387163527186090403566402659622380394342263253679013236741785918894217518152093824122218167879755360836947402836227105777715691716429103131298205921823132173583806075717914940629016437304393292785259378698270331550454981723641636402213621631351648038748754448944900043200399602434780692123733929472004265009445796847129424912923321945634809497505462276337874816056228695996143776954210966190135571791363617799813929333536332031950271413499419846596128931981650402473086102239912858287379293669368749114234248872236783981493444882288924164168179654721223385595338556791167135392712532622949830365401977321521042835187144710642401044732904118923237288212640494744456162706305392641906617499271438052233881093478233694349744712645510722707468507128800144310368946544677689126410333858255235373075644863468484583487441953623388723245159902881033797625261792243823386995507319649379220186849648067021328435688481891154518501927991535814550957823504680098074866389043406129572316181404742909438728583207428559092816121256021157783598380815066184944072537291361185337280852031286376292431530233250984418842536830286456381205551600021961477539200281580245066968759111427848054905211168546651036724232951573461371805298884985631338780329126228101548024862606087457854856996473122634450761410600202367247119323238045278665782691933423787312051723537559220574101720106900699794898185499098910781243013202384557580054893630200937726895843214414939191313849053418738018703841058002485172227297394426920190853210964035519681170226390300089124780780186265341527740464153141493392493639407152406695761779364423965604184638612709881358317034955546031547330837502999000184478607855269741603745061285042746783103182191151052121042261779881296027329193885420729884657237633262741558602970581972298007109096758194834009413979190742119261834023253408501487747503597311865025913435580385592494857946814612063043809311648749822773160598395570749630991214062043628962941498231548250769406449321030179187242584195598922537294102782782431927034025455295151115058312294293018160265401930063950042698104573488267214612417261904427270429735919070453227467612254681250677924256750337809922771477726199579502935771091659504076373455707710948119673516333183759420166298011922678567002222618251797049993683930373409096165100404027913373133253846575181734205641053576848910018641818869853623134770012452431816302937837473589542326557623229812860288765991771630941620556193904182851041684667809146581605776236957096540424702829136334243696093494815885183845903618965355387506501754660184699673499986354287227286766186136969687567415243138815803653991642361441545928712956428757328430009851695379531494182840507910050101087129397086202271495806155001402454726438102742328597885691334503634605312349611028106667950885833157137609129190180302535989686083264227543426689241142353166032707150438269055096157923744596796648937583884346159405254157526885947643129782119512403067285236003655817289126771359596225297738144687858671600519596330111867300406975232498147378038033015124634183992942170287872742734567824023302802855603001949119534275765746640339525622581527360520910248957811390039627156989002150909665721602412044398838788970356920893453138686162897670909154891050099577602147059671641357386032235047968437057254434838680661377867487263366195915340592662836429141866679155728908551399233938788041313703754345571864066018043862027570579103254474942668212791842443526346884820685637669666650094189235222687353651320076033579391270185566964103904717271651559590842184935430427096579055265486825138236417886454563825603809320717307858323921061673933993858985256610212211366278659366069350838922606308685318664417356613189817941929173142399633277838324459585997523678515246985888945037881978290477035176205356567993180963775804448514794394973701843829304771858402040391043389718565661028733450225133265023223423817738350061686119535985945601626912858763319545086138821079784201346648293601714085346903339777346531243351013260569001875856390922239540581616008384557164578723026140078655468764475263683068538482491416702786072399457320104530007240205022277289903851066922756993707883864556009232186405371138800213316434479548982789501675954715901634889878509848778232420779619362026374328295345736989160276967996742290741822751324088781801650287686368746897595649566473302165646508034383695396547420794296649087034738657689210831677941714891623986271261169037831430811677002578467824485825154255531193474733107614276975351723553020139319558242891567018251602634788724693264173953529893108059550307856872467264288321140396173195816493102109369791321123321071842005208823179027281117176658320028708846449191183710085578296524438933065912836480711341763353805073238140940271529952306790847763225281038132877686028137260492092045876752560891660221297442025029966851622034408767371795920525330155628181658162762384822066086895172329702767591998150356493489212794445392373924748826278069598636767131072082931443173922429358143462743096569185509327569025490356510806070888238185427381891790615919856446512291495161454351247283201411697823025823256277905400984463629364401143877625460498549972057552950757580275324210669371754987604796662442752473943166180219465502266068444532931430152238256434408022146588352607602602395507383735070465224064147232769359237467581531132379384561376470215142997238519580432783833909883178404132946898775070996567555843821564140208430118827212355479815723548138864451796476992083481175359438481119910879890900180370836822928304575803387091098921677286210766253765238367911429229256084846321024466006792830151992961862776851096944904942820139792869523638714943267407196996489155269513845562606222661308279366576438708307786388629528076649263862733313694965018034227144070774582887742128893671863742015130950015671941577723307254149448857252740715047018530901891481935713603902954864126819904520300852455539147210432889463323745328116885119613476474186733896793827973023065842941238195349569471548900709686769497957131133975112459215061075459231967899877462185471038456826036946033309842180547524800931806016338215031875799643009069239149072148768894759772365527373946052686381607323246342805966394135806963162651651600601258041773823471734636548471703811277070810138862767926432864890031621863749001711026567106770539329050918153261201374370634907672454063799543815439769791662091001900434625156047734773491328254829672594689189813487862353521799234152304956055671094723416364888056618762669233199191622080377282496207749932320850514138455341147628674915757065439502914804547161539362214057670422656670611497449979116490360131385611706167444334433840560482804912238347532526109768988583581363881961861326675004619901797089415634021867162490642178334963416780166370819583585223036286733182761142499894847137997068987958276753806921836470842968759967290798953303330207782296148655957119684425438780848732820368789671280193429522561830011041568962124250879454929790717142264218111937040902878020685612414745719319173139292902700902858891074417620888828524465962431356381599345908532680767904378698173179893587135891874392922274855507468650772816837519364315590401365312989514642336381733284178369684940070877804613593402280613852942469082092278596287040728393827041642214650342337200064124769035850916262309536046715593865247550284947627286173562222555648734109826914959281537835070494625958759579844063411383133845382217356795211121329558299351500496179177239342909205838215948894008715932739741448638672642169887479296467632164763543257256749681759340588385262024795821457533376092338363633726130386627004984641459215065836420262593079843413817980490346876111156419827766664732978651319942863373160497776354748266732105778135304334393517574387499889961382422510811660088267956966471934000157361043117576002307616570367158832278736696543507237466464857039270587442303822109986686799181398082848171044606012903566526264024656393682035966742434255251325460966260564577469325747705890323850255528668884742779635785830345944169036283260038851195490566225267825735039646967577660731473413867909601974138324060497455483688611500871307130250908009531515435120266262608710747576647566484056702457523049989905315195772745903245126588173606320365066062227527573055609160857950527056508005529896274828064993543681717250852378499804744143253274673900315903337085183456705782509586935003918155887512880379771217280269593354699590639928449606395284696985943907076744094567084151628448984389837418661627825049169746467683391468667751743988116032276110330235192732756423589400021801820537287669035446567980230035520627490416601191888253011138857697215154195362125718418605296832775718455439483616516598818645415439478302309995572706434271269987184723255277486364436855375524198959154513231339851039073487598829900567418057252598239233410911502305091908020945485906391461617307738316982117548642718665693202807967311670310726760964651704696900131493114188490160398530790263070334338943467874826478675908826291796532998080724228420082983540510958605126148741697901881284075617874486319043923815657412800188870365955011581427931790464594521333246715722886267256084866091688705851265501851488737297233807640915263101077016467153348975796156662478242765820381913641790465071855892189965706096045336204555418064941709708180938688152598568340583629741265951206665538208416433932036338943767929166965529157917988204030617435714604783075175803763614372492454545946064793060469573144138988252638021329512806303212007613922530289256622060275253316471337656125283518202008962580158790103930841200899041538842926564202973277432665281248544087136802620664758755501575387898455735350482275541008480274880019090402893508660865882281943448048287667586100313637553338799344853247619271119129310112540809494251206468730449047314990214970697233727238962515670162868761799784887706393950758889310673113037904587200477316444336810068257112424410090804785446819985466652929671674861884773663218332600616301942082830710268229259396432040313825660261859105304923473634296585753984597056151841334502332221187527384171291397622291416865828248395181277924329311130293730647638353976617697084950773924743308420029113665758305524307711639018053249373606204149953610593997716430280882213684423368796882680039305888876656270236941021469304801305520764466071632280807879920206865557247945820630498856811064107502787260299467306134247826196495789374843362466712381150206942773031108831840860406251424121650799804504939905559112763905156742939311242679716974531296237951994485128243654047637463871758687512722157969162566266492993630523623598256268494308375143663229755530079640307835483413846302373549777578940629493057791627179286727262820244117550229444703083700760155456869262081617451729194227124657291417827033523621391409661050706417551908173106921670797404451099213603251875058964028852557544334383824403289389680814276716659294289655628971318692379309594148031323637943084314510494120575733530398364793925014158395626133836846625050359339725056463779453562671272238350679008776896712657853196578877069473687921798856338940697361459011468451315054727818116553921744556139053001351848732644888510082935157813986652145774750851761674967534488129974105886454555189466693730512758636963852572964284843315570796910067040048723131453852359834973330120763482867782581751215569849625269756635242004566102531387978304362986290209866842693244668088870074549517478454834671982747620408915008927400589004327816416522532955802533438409892781051868480513746553648611646444415808252441881104697870755599921226693587231654860141802826805710127693672844369535078386970523941146086267898473198105361825950584314389808378111520272053464497266355178545543766308671790883626597456708975226423699177494523999583352214612232342606147289473547797149532265468446698462378420432329018118165481163777650003657800139700028448999034085301790227017193020399610530871651462007797120793359574242507706002252262114315003506336075254589775612312569489505024259890556892769241996302036711755194722867345628129208906134434297723396600088879544649904311928695855540315272808060973854418370655905856234068885234403681613524840333900215589285497113993970095761274114376854868831535305097472805627674113541548651142339503529768602036467954911269493127751197650305559211954102026035439427564632944893012026094205357143868776872782811848276544243889821369840877311028219453500068821091149079185437646232684721525392913923702896466515353711986784334165636040559628817929125588387506549617017800006809996744397672881742074758863090712225246321343532402238877388681134090819418092736112734628795746060752855110561203389076545480350913541536681080425178582830207831766828972283900192593144608695445620057140666021297988966968060621725424483108949011677253585797746480639081182576722635059840977620481233623342855908155829281264528600255708676831610398035946383455355075265878204299217011234784694427576411043343892620096122468754535231939790121696564552247322211767609682437595058263615754123368169332094899193082100391284601762061074883699387498912470262046282524191264194903731337891671168534117594636405752249707217426615390500384894042736637515833024881547124315486952124064462030955463669896837511907797307885800914406283568383549245597672158309645169315821304106698087356801595648875485501781992407688410106749668030061693811313582639412471371034387281596009127259745795959518054624264559037450087660972899882605705336846688975262908506553140183238036028041511817617242962882112723589669772266151472639426141022937441909945486184866335798834690077449960831053153186902782298185566199280044598877060701163658091534107522028943041941410507058642755722287560390258780590711229252551391462190915240410489782319323390194910236039348944294179873186993805293534126124323155960333965335371144233875175703666051803700324281062711025904313593210384560548431220837696552171024588709608944360918696656934513133412496769190101308002728664145657539523547176559748410257274385137417884478092929019800340136355029712579957028250776484975351902012805267203415445518272637618623778732496945892279645523224242575390363138769544174650388983953409643658776442047564594429260523968587547736567313280471084326383804631196618455102329799264111524903828930966572071552627157597290285023405529344685147135934899929229424786327084083927464197270788239926838893139445003000325920743831924358422162526912676930060419212563034863151059108499878637998279763214058860191717035837902269921508129967484487394551211694583122801097607276667480518621236545199150964994881898354668308398124243957315700915826371380978367687073316354704191936414402915641657968121698938782528026196085953614503925905736977523561109477171713390879603549463928187338883642781139048492492138534875405585532093010288972328957474816112303836905693775985405698724726197189930390925445948547663494797315874818508167556407293086360193804716874248940313709437149602315873997392975550021228869968829950606284266988132452836369741019153346109784522435607237055469795073872405780696867029318410137021589298978404870241442094140252387533450008560911486934408831894802528209135995252333700623332139577591251394708821437729348013061587803572726773338936679532668364058698876266770566827853481341272112760078008987855605072605241034729971268786500570477521668648636592470859851161638881052354183937635055709169596237175280016559428197359716377793331321971089672896658841720094076971411304225231268091636163996155066180768509473471052375885860890579408898398717579952212063601072180437047328116163060443484487798540429246344849571909333599921632747050194609684020795061892859228399268536798640600358069031588312446605181199728140918046742121118665831559817460941904521178091098404384727402589893890418620271118144233171270158238479655037621453767590537664522310954866828152304619468766520787275312577338842620420759804635682485193853303514038113715709164361092382690828533255705118295353939287170649136871242644576581006002730412815241471660082691557893623929840446350194050300358416768612506918953714238467106963340424293632978156849906225571647171865520320266658687439121562591202622499083988960871129026365297848012231378128308773419358667965263153648697804789655199911602030007879618098127151542752536332645876477244767372926759889676888421335685752186754944878934694475781823128941171731430831152498807009935943439317766662300711523126454131803357707284937092830287463918016497327120216452792830646262202112140026041689952860680561230400303917297613698668316106765729606107646139758884269927988358774574755931401071501283907587130138228667386482439203315405762788492959424553217052288859980548662088943510644651363907157323781882156713660191375076886523933708429986890924494101647225866026961051408810449585804927613507820428297608653027160746941179184497910570168229753207073052530227645766599889703981728821852238910606859320311525974852139604531062519106489400214518413333853661548249579433785322983774903226509244809308415699770539652540712315828656635122895691865313531155851703916022633562700078966954378188529859177995800479832733390104561230597042188489211480140852226415081567834407119217212626251266169822399921908744366189878376227789452202266386489262445054095414170501304968272738895879713011625088439916314032437803686677327898483723442094227844379077206695350935782238590929419923637073087033784316260405636457966542845171797077895941942064584135793875194368886774322691059985143933588909485819869495902521357604038523896234025901506382842847168303263134145443771881683878756978605251568400126387016615543871246219692750712862710691508960237363058320080449103969249932287205174589791086378104493216280748855198453648967190051051718444045179184219027247631070566867420220804155881874386128216448318984579434612130499219144519582828394600646750908192881961528172126744813214572740961087553484773074575054600070858442514902512263286912178104122949124213788562824890226839588204056348656652796081128671106012036703357950943709933871312687152043434129196351214960932089793270695329871627116028262407023987675695124761572648551250706666951670043080669011259053353542284114073733410756780979023065235000245594512288383057028915809519690766454304460766120238423398314773820456358047002712310593311816089219896842181396439161879451244038384203841263228906622773233455739302549504132728200235610038910767132759008019882144541999032378070634448916393674430961811375431481202031016104580910808526672562711899661800231225017962788326941973715143867863861480365100300739597492849019043075024300414550996638839998794743771741816547058719085079079483834851630953663192316367253872515978839423961930158542866951170714584235455099951803220942479318166161934951872394046691578240856412617864934671516680229133452856192611990843273389276477189669538624704608371964299137105001414408069097813537904712760655224631941994079660035328904612578781451985772815230090271613930605146123565210110642630447132637002708993811273944649848474120588317194963976412166748698312757482043759083508261764645137388638361667277662121857251104386787367250688122467818471943324308293665461431309677563733204141407357772965558629833153458580522622086212195011421429796693838072113902493320362535830196035240227579977495168016968020797182681651670779477667820204069976491273860607983474767091805448704755575980727474895910995842156177269851261087587563340194807816684388919025845701636614080287982485450056516835082472261193383373712999451089508520384807621151101736795913117636409833899894260085919143209713072310162267979198668072146705670073897707342371276823180198676095653399384720020058276370832690713108659646125476075476977616737393206321596681136773070543555540559789988009962138340877316512789559181051673070886801093753080353692122757015212244175744221298992389986040386309086871866084147950497893169531940053194242540049607777098737654641100578819219234372000062019898835905153313421913615446924054846009441396911721389137453489759176672759770785569350413983295765731452854521972222007865402244985850449821406030526999355611215366185376649765717827609829132459356927491049844117458699615135391503888016502903356677474619134220510173467043331451934610351452930127141996313626283767405444891849559041235757662788420937555305051755460995451814701085924552269294257552951547570067701009119552395630383828714906423892111165329110013002746317293522637833579687038575530825867641265507308670687280317151265577001063086122717098520430226316500488914540443628709816365900684804559398133432796028307697849561016411981169549810911307174958230026272737081645662764341408751924280398186296531560216122620709512469538782444267390455026510747035906649078278681260903000256062245719808828355934929525105981138737937435733282827442054207092526927599563543756352110349034419403457148285434748387368456942745996181175854998313148363703548200542523372004293976306755128146881845982971055852192618086979045631621262236360471599255423597373876113359770238022054576903287559925601316000881275582270812027216094299460507162301054811386505443661446180172380753062786677835075680819473959056105002047721449330800687274854972167507121860672317637623560460824730744878961827128257671971746434226363080699992051188554530776129051625041501005550999135359071318391459729564537584906628987550517354017894329683868321761452808524907391570478446770474592199227556737501201595852310467333946368944936798569925240340882509867350550908048201739791916514914857093596486136238821135546105427598613305111502674144930942794713640122690995743944503470272155633490704291167953015321360266786457273552296011516716449424902294306596708216541465558347296462014674807244018997916791379627358047754322850867304088130577862043642501038029274560367011272887309994449799507933638562329245504127632121347661856842645612410190822096288553241760966479322629755826718488620601807847722076476730459434438435115185402100768526049209147629949380512900481741968374406822407238549371746025605242159898290024450922996392149520398316203603189741497326817567581914833391336709602029998436638772800565508994319162782061487220313070871116537897827842382993689772383084212651974799209439186912149455097388211739217759110449927837382677890900887686096785462278071369537106665465092669499528104248055936752579953480134993689940996150016986130181545267581121237342752553576213345568418478974628849957731259592970243953526922605973259460036239547860840778615994035951470750020553448235177698552198822889587601805804667483776662403181157808756173331103744047881408631171381324352581362989815460602801416084691338477532932812092028209791317338018372844183520639505988624449269451189483311957714963147477638616173489443689746273782546374122997259727251764932157077003099169175947356209942799789501465489506105116486483791682455795008818212526109939603978121451701025815632159215361197380190242938281986453834408789714002714279777106923807620621186731557617800763055837784915991998527278817487586312720185693666375230725547201758778457197539943020129975482771395759059452020645015395488476570208790812580916724136384397442190591229475249003336278553579251680909345323711759411348060671864134893319595279278348326284810771125230190200594371252722108221589484277465517534965372079687789447730372986730487978262339502849126547979396011122918819912072573581717818498692084383367907961776957670533910793180825300269872109549821637852160211701058465211579880367843091766046489275771984212580740278757246166755951330065689428718826523387947209077858893617374641675830931599792914395934482255146556508414894074819115239375666961753785830870565715561181701630114775532010132457784877580487404654772240998958403709358526113076626663614597527586997470859883545071507882171938908826532390186201775790215606946518132484835274404830462610679654018836105911860462090772404162121799175803002288236515703898130808159472498005333919205181788408043780789486830925183923128618644659800770902185150895370550192808324451458919552514579223420440703130931585389421294530065550114023348470514356649450986817056652051180980201833943618303950581374299144472861882723475328625507649133707029196159855539056246083109691761961132542442663641124848382883306586619428716962998514765418923543857627648035097481759343812918640970201058118984862158752387692681432959134179293093613689608162406751309353602142458017233715001218424311628891850427821449930195917902887018060148416374095966805763281652770678457913033892729542994879764781765228879787376797552345279871565314342968206074793486271284239264080167866180891494355159634570514932143612601074069323805372882749489941535759651800890453673148182979525109779741735392614717803964230138736596399664233737816815461518176870081352157994868671886108843702809363696112104179055400685625123818335473818774502182077138808022259481329567907449916644601161594434368381347759935056498936740816572815184500416022284682848874072753843153012569666218394278031716485174839350082075259965059821564228255172717200697642126851293526814584647884438320109057374470786059958602690290857553699841844597811052638867346720642532193035017394126635932324043019026633645036621642066052595960715167751218870142065748693206659248153642318952721115891081984935119955460961065148574178638360592406622595106682795194372981705786320948533891001849598589833858635617185820193636418477898414385157323783776221315443806674482157678469695739018646713398013105568391222579671758949540264652584050607243076398234311321409146451835745460238515588610108645452970656785842935330636396031704327248612434784322197472778288427681431002568283513328392670504784980588352301093026947038416707299056050957556392051230276887949529583951198828962893712482082592883207612036422636622772496115283585653339347090305619402778926001490331390381124375925471217388905583537557714336791180772429292518058381080062632198434278634996264550329332593182744305733603089639631567972342245933148710318749932394559942872089712574901743577486278000781995111709129644028913342276573257377947092643589993447213208812038276718837282992875151911658322204103810673163618346877496844283249595695590168795137251107506376808540618524232365051866429566899692074505754744002425504111742615921485438522885833359177970562458234351849063319910759043470571513739045445828646621727692883205058452937259097035729844703355970597332313823877155038448679656905267294662104613527788533687974553558749436993557387418763774213522009686434030737873177799619103835395997380087110303292682607765430237038696984811111367004524485926378506404097709493499509384690270298077308547854004009643524202278598887280180108509446633664938575881940686025519516462956709654676942189692195190650053478141783098233778170228947786051739660545941775100205990842536089990834012064892418938733821598058450448698441161414903999525095794087590798958055665373944862205801752692562487401896278574686502619717731972769382696880353799364539152359415875195611200399860740021669328541458077495697209911693993147544106802131161714148459293264873101537412983392975172545667198642282199246944163930510582551001600564778799434327247415686833780313245165601363217473366465383157035437197050466285323931816774576903827142934642281366715115284486226982808304193661891774118599826559003911227793236762726180789322187189754764799739291489431069057233330499735770500129598094203139418048756341096038907477576916856548640516946239880807240823394958924590874541609908074833211271316100462915929733388322292315715654301691479464896936492236939956402833330047307190331898912215562884763181714108168710230867916137406117805542452273139486444030525086703009994598070029794625559104741491750437620308494643223143648874823570620685036517947149176830306030938055501562580791235836336668624888652049740725488310046223766580800984146762161657977129768758005636702688774033352912609990630167052861629637907256516169384032059425229890480745082352417203118654051693336022543411800083916822130765923352656179883721308622063035711379894553330759814049954391778381548098798322370102787425373345232017502581046701749466884583772850809209521524573763018092001561861480677678876304794763898928841810701985265688116119875941233689434652459550214810259155237760539836817558440414340222269950719367778617828396369706501322599404688997817357185123945314541801373653721666790436841831529384012386337841744240827272287405807647993595979530082300795183109821508551446184963179107039500408049954185235529414716628401317646025056048796472778302456405797015019537298406703644809285762289129970904573509227573644053995242880286518478308492915120727538865721884784515808363592694931593745719790162626241263866105693362596850823808496526121786772116341687379871706072466478749957545661457330440781654679303092972292453351679533429024224866593451957862848134122618240308696713113055276272907159263071170024025855408708052690045225530418921927357036104973016573542060790582868437613759270399103358572016178718036147730725603682531924193794597803635465385057973785161486808441148022174781586742247117344729909398434396072000134842022505358445641279388244081382789166895822963509198169316359994275886697322219014689938367104638212596172728561684363234301378352207208546416955436179123428496815948202834689827743512629442804501042031796073582722142348453073350232253358264191843351439451528574425547822906845266567238494917753945180438366372234900761289227393741518208591656730842767925517960285941099111454532302644153725366450086273732215099940364193229546392839492113604929693376375274159296535520219481928116399472024454094731177776968734498419524822582658944641434835423727697255538939897052654869823740726420339489471604559278194398637513919425853129054615165410416388409051629331026695092258169306011683089957785186269961622526553980174757812579824391446516501169980906830831559863274323620055115807013776650255499975995957217198431274975128905509673289770144983387082755908863937480359303832109588126088837505083039034957181226593747041699015798599020163877699888777738697280074404327488777633254110728944636359869007263125416421574336522312856224301029422320095066333787563044113021858495546305461650564231889510519513977961413308614459636374000499472171763334520508243503748121437374128864485566478147777135648013870743928742664496793722774912875583170787507148681736643110772536261476412200248260207576374396380620128359154908989596852929741305096969281868504131018871710271098441723742985398518499704413372500990277565962388703436391903429512101031269458860535545414889882057492466565587411851820920346582743683734050484589912324743860994761236584904586430491223865442903454273970685555463571831656105636831789693158540469109943303421513115011001296463026269449284601703263880686623855431854798591060628304476546710993605631084970465538113114781134183850068889526999911274847865664913245602999391134986883019256424334254588811323129928194329351545881049096678259790206637788077971918477948513388578762984530269474469315885926080567721504293604681779851394133067162631541504137890247737882820034682021020049291503385063741370357476262689973690760262008628261526688004947303353679574222652735891844028958608848516599900890350887234206267351779157636746198503104434267939575289278266291002569778318041872909193033505558563879470384785342176971752564462926686997864864084862582303172262691581560612185970948497254922667704129137905715948937995280104476395003503464403167870442565426066479179706506477649288920413594738296731743606583246086050189196813417106681739085428502328029860162128417610938059544323603891476865735840840332251729579271444780356388761673714501723313873514366035517422928314558196282301881369449673492856005543452517242100968948087429466640485781207761525427073497297323363093776067558640696866667789689132037521989707796432748759150069102792682378974602419205433585029800776845947814098059788122829321098322571064185803026166835175306624416380101830325377264575468834242619006504603387702789817871593773850981617175041002072366888118557515960706828718385978992978266108349859845719557986667513230201363045479728803530956279464555484272227245940469087246381169976340795851053698985912968860210549835271607510493864079677193664538163961852981313905223661607467625801720854305751650369817323058334059955150485152973905393464551162767726576479204359236553726850987547141057254618614989029491409811855805946647021173792165988166297472203638996152798231964827190654481885092857108395096884409181527815056665768059984463819929637007100128857238735865649018702160724761763807185421545856556569328806723465728186245882358636066038113531447182251590349658204490239799962553273413277952827802678597714928487638073051293197742100480691812595286847274224764527889702826268555332525674000255931829462479118325465690019747953144163952058202214256634126780386617293905356731567702688669011322280183252288181250200893847837321022898589387383193105692749767719557286393585766988781963156482134050263147698945850127798575298796581081065022205185180256125860595632659747025332808938515143777030681963685074608058564340381659439477877866367017524799691215910299748677265317895952748685632024316225609139928001182762966668585246688241935273165471333967955096722573133120957336372917619216654963589932874574138553292144033213146610567159473258079791398016766995631468520042135327104932409479502939275169023285573301125429434948441955267875558259927894991661192216558428092922224156685057621891948480541415414476247984585222312665608190025734089448971521602139018555677030746104292424561473342639420105790359581686903984270820449806202586140039263829173953699501529036289889822680786827895059357715741968384777777921465002590890523598507510060239859691857833923006772189506555425969477248367789505527314433541814226338742878989105112525778725253503884297864843119293472075370537143402918258292457232946601870976392445897388544713493168565068186692745624034679444976260501657124311911831170449429636471526515560512933856227776659859227331825778201691682542093575857730962505323736137105760155552774646900059630911679708549609814675462130826732480965115415950993713016151351053517681430497563861861452247072275904591491381876859272299591393795474226055138743215844329760123518192328177288918231200936515311909088067195249499512101250949404166930359875186453959845465398534512418252527039948115740048119899639108791911692823132471695119820658564147094424428835824017568218075076740968485085274585397258383003606971162776487946226645002161336052848452972230806185575216729921358728129993751450471407431256147492473421123302097639152948828037947578856954463382703120557760807326445768384687036232146527027571294577523719467935101569267464300776892074802025681688553713727444600253280854404336380337701526083697513405580696033100452066743416784994998260187792379983262829926179014079368802689860113225188219316079224081579965024089400429087528653043239904819954815858344417290564336052612843698200056660029305765076680189623509248873246758725802689996318682839485552313513400989088692246880292319497295198123436098536887530382956102299576352525514105377239214344153879970742763287700409325376134165485932392577540903525086515781029504872362561736955545583021304190812733624425465170742718844439543103582554537406691038265977667181356848953004289717354149263185714167269613232092387552784084273249483779250268775115060131263524646054081639245936233541061831842716124697125864804206763597500177494780569354341591836815311943172039564648347136908770561472345800127640449604090077000666445944776612281558470186244645882647333731329202886089970999436355178434152241851936567246855054190961947115155953487435974669935458050488857796977465578189457625265396172558122392901897841355896223389971070180451246462726905229960201819960497530778284442528565460918457360245154697801996636647721649488052070313423543985585572711545380335186376875916532301143171660752587587845162058481844445196810889158073736280165729356035186884979687819596982284786124362966456905403712029573334068028381339958614516652268159693740525145514054563822761582079278915796748197595577071979491522501657342181897011669343397943655263346383079339258898933977931460143151196032912899871092866802838114825305416327244524052277555447051388907810603957804943139011079879266325543380122310320191121287439662178984985367199464104748709128554915027870691212352178034287467813525643849115502254859219880860370749737228091755811593687006546962278796029990325806410255138728946057649395119200328923118972295491072833436271696524209603931081512680372630268765764494914719550001385234610268813123631060674607285994984812795247786481400706983599011166172333165665941201066803602549012674296009243728729919344496688382646990203883641529084906943729964990796819151277866191943969518576971595224164139110265212843937647588501069478536813604295398137010735381085309860576979992962442188075122433403219122632556285834327935544625681168097991125612305640566149232611236257982282433384868241040646251765108129692598003459694582955387830179461386574294965513220223003330520305598556037332459838807067321021588289925842766998487269850423468504115817253091723768428882491168215584836958254228457291190004003734939381970827324386017409153957231444769117762020820031731065749645406278186742863953289076101118554353187762566439300722362556852301990557411581351067050048600632450477478129961265204180379643855820283113803275347255571439846390428368212099278635972112074510337286265238559849888395593487224555981228333617433391319115785761938808273133551397019451670193362139916298109624921797695717528042394114382558007154425820822156320111431063850395113445581404139715699765743073078380455361489256977304534702935531690523929280896000651739374941547670783150705643170533011416746968502810487674642186137410691710744847061524988361066312739866524801348258720921582086696806487359526239459646007822768281657189405089713478956272974780533087473525693980645496079172004784837868037837521218180922871104259925996276689091962372959819859767413640292456221236929289173163919550331873779251081043302713378275098494497709030940316757355788448599184965471812074350382903419302332469602378816735379129882117598759983935211186130186179794705481930970567006277504612390452795810970598337124965822175405208205770757716755759067424845064685715074693815834250398255693808225838110962043283101333582852707406211901043960621816564750027135244550930911690893090340258520479238174204337591878643382503188141048766199628823045429449265642101216098778533844765902421900606651242348295165858386880934733170553402481038940252876332410024538005727794300907347287151211680914594008977600180511431938131721678652632215183852927899021756972594665502340791566504058757290768284095366346983795199447772549383512026183884226119825505546769441688687729784611154886536394610720541357086374229548993517892276421359428160658699712781608709623305088992281390153209013093894106683576591446090162574707587277055067684651799940831105132193566739606576688170928509817234545775430395883814131779442931669341162281000705929673079120841307744519676576252932089544466962959079636578076217676162726948315363074702753115150316686345274369866849180450512472507302023369782332965806933545813096220698063991130999229227772321376238308543716848530704779929450659844805806864304658681828109815812413276984460577596513591663135154023414688682884767808121163514139234134670815499169670374437184294315161319291599784275186581458910969502879060330291822243363710125082331073158140703176319615962383898418621812198123975698764999145126965092055690033442472610246038538412635389555927007330269820894962375222208335842030749173702635448908819902283506634897831196128695625571091294997653562391740050868437742613256426323146443229463154518866845703630613697646708099286813788667168575745137665219293248270185230781989422951748938092259730432699172487583538852744539123517257240920380113883334355379304924451650149311658238605928108911383460728079476988128962578883806516997350403014974981833261508925059143667722425968116988709410736405871117270787787386534020108716942570366205850151906666492319475545819245249014527967790695379924720164998982412505241157415666025551886975857402139307268706553806015212429371873823672836209212247551472016864166235090148737468144311680856835751885681604634513468491296712100977334831705838171552412407590604344975926207679435210751790715887784761808638136278025331353959199291538543546321777577242149885279159021564226894560593559568042503018688006629395952165257611026949112657772248065898784687473168597186400933887931465371435878298100345822741934115500157382816768732405717761409842424378492707807708236790787576119006774747013459797954143923202252787127480740323737019192128877744953593560899774486436479708343179852504814395519760679369353713674299344954983673509978690170181273195372704768820727953869951281748920455643784952190859335080961009608947116169961897986077607496207858886187415029168100599576551954475130604185401138628161874995993220820830913857543653800261920214972432336562716660082610905809091493523608030665768046155290153064368925481459687372705772988784258336674727535539140493547548848525899210709102116579118081363742486436782480395564056224996263128815596904110864718843712418645725326061900574610319571718595134347179179583764081201002815294339731233447585425144805117940800537865728518749465286445974162137471024832706163249923930946789478495480940107927840424259978642507713976954655333187755753213458313021197145093824893501593712677335529548690562341660504723775141801002760949931467475869786288805393625850703051446364598909929735516067523096831959461647947359551605493534643693557352512597183070287270188447899077234002039987030111643459841245019118602095834370241596191208634736697111629730770176543358890652934682435760112229112547258562385799115975228263556295552248913398193890623750220841930549517709564935187291002333854130924542010897483795974783907234857448129692953929366618805241452334255091482639273192575780246429305814279484248489377239099786523813997627156233109609034840789496845934679258604730669073266355859054799958221271355138986525603349830221743964519247262561757838622072159682305370401106367924690078842742433302837342753940291895290524699572687359513841469290060596370102046003029808034910281740404762920274241764966451358851810301224604069734425367767782629406471955017558103667162632849273918052775007638412227203952472301574007592310805084338512059975597069216466950671823754614143804761753390864889585853389873193941858089240013025560858805316405782784797029573840521034974262647904274667026915235795274360529254036247990722080078162015916360825440879119883975718855018609805517575459699899468342115697911499290657207474675483772167970170688501902058007385389115618765556552021642971137623330591292506381846322281281573077768807554859585820880691368499688661180308815735007678108884905751579166882301814861158624184718806394761962029263519552494273393746754253350310114154643425713194285889468394864454509498518563003485654222052577610858735334364972228600164583855482385859236600399764392334718748288941140422287417298659219582900949920225084674487201920359387012579885454289252299217749257810129279425668265950040570208145408886420289776174992110437808150509369139227385544582137949793160576734806286360803658066281113371215002709096215309501072356608146771822053696635364362370881586024568688373856990632729614211094978446333295917673191701458400903541002354155620739487269031997689517426950533058785156103526460894733164716332584370636899246304778091935635828874401926300420559584242707923413043515256950709312745404124204398266917790882512524167562459639916942257029512712098576800103523635817883240538902781343422871726711151039949937985534393983097401775067773964932126822784787812233374043495181996771917084693905413194492313066420918323658926023107228019380507304864103097224148626837477747391427855305172836819090960743777840031724180561789437154153682269757432063478089804994483597716622215775153948527680884256314633549805984314281499062606993379510113849262409312980656789359269511417576694952942259885046813461670531289657486340603070317100024709983024953416360844087616786647060547553266264786153658677388121589989310349673364594171868034843991702283972511937296268670342906453890896446965791847216303200693411204708574276527872153656990233805350188649060529009792946246987620013025037240145716924647336851218287205165630740667006571909317768000409521268683658928177940790237204795518036708127473555564048811177713850969428825499610918141609453641176600630726914755765228465103016444055896662409990703979277845343968778551086896160554868838504661181281683218771818180243056496318145868785386059310338073684291346500018242642255674871458271074649324755233463561358779468393328538190425497127660876278826282415474033459826661848424701047881150658980548071227616998868350901634970769464804361622825722697346407061395365566593609872055769438042909239705759320865859235222604992728540826312035755977437360005041316137051537519732211377524754007450028893670732303185819759747698440034092157985984939447226059978434016155860791882908673364413019456497639312529755240397036300582772397942015191499671411273317366766722829037005912736795915841641314214328255528070077571773933619349506841159658434401280176338141980423335159828778377305431267874455340871904217996419928738318499283425836528285311076404427431880760832411025765938011283856125329578569616598808670602090354470555846769142758673592197989966045430328429330139673384064926466134567035112191040930347238261588389048321496573365138295973293630781543757264300494760341054458182014925165868125754448912795256000159859114572178747841961130829471407014290045904991430377313391149239088027745202938630150197686337338845457217268903615991842684978085707982525325901408404229308612110162036536824925445393443601395427831247222978284068265832057514049035218243723030576920745049610540332014121795080288054200169425501138892007791403219543704887764057909519540689544092971174130004062359440378618428000292346571878927456372833275174569999681104819936347985285102375705866810490156011849510739447935090181480863142289786545797605059058855079006171589403846368048949995495016841474214223288056240069740476193114567158195353898593120470410291043534135539420634781316268334608902221713174458700720114283545850835549644351444672756069996015177946008178735829469588499857307482820971415331867282666955003720097655102059115819151315238695262681224859825060148525947559681058439820857423216157467572861933262485611689465597407555035505230868293516961414224869900264420993954101981173786331590948758704996090885756550809727992718974472605678416471411629849041643956552589776105724370841445409627004646302473393176649850872020002471435230524125800671268096487798276920968120084578074078600333141973219568817859124901841120928727813459959663994346128165597328448446829366344964302999703028901109599756148688728307904774285658235747167076515989654528473875217479639162373870796812032020434839996428855919316369014296422371146867658560212608214050607590866015836809751994554102411393926758493225863112453652536756360836215477275983526884887079134278101797135600646706779367790857433411193469014593479077219057425299002339833205575599805360779369155022235635430571136174188772655804064950817451787855799630473358332896733433745690815993273383561562630969788484858648245285560140393399425353982142982818309485142584544303336430455913475546590083553737212446168200340476007549758429085621670436967346311345293327563277570395800019526074539206399642535749379274753354041185111000893773047390087886586104407848572460952591587359341253075674922845799277787234273108468558739853092934191921530328341216581523982958540741190756257743859932488126641633986049062595943745101552780021421304550976248924985001407607803410412718820678494933595709371993631004074678531433773916198979408047172776892545427529632347261746760322675705971196422155489147310616390390135786313635882282217977161525567276794507408607556643037305407495145870988792806553560697243349204203651440158975260819302047990772825174790356296180676143439298098732209996862285783719617792300945361979136516026647228880871986473106828170176712190943979143517310339231082061258639040727509684236601504075818213289271748383450156322771945731303624985670586642502558534263076986955001345371671872396200824664875192411302241464697984387931234301132671960429177371791890796183314391896624962394287232236792545722036304441728560008716925453603098826461779678818686585508354730408850971879760173183629636844571424605510234192444945031289725758273221140936597497854349427118079576965654956137217880626628229720034540488114611380161474533714865671023019599692168507104707184966097110342117615324980226838741888919980364465156456085535444188736443736897416841078070275457945319971576707124012000609684058582841069182928002984959715681481832157420246470817008641752537712321128218226542568823449083342323856591633103724243583199340507248871971964191186671231039990992323175041909636971727613626852264160480176799605262849901127213050488968664823950246030378217627650867568335880921951173606149515799103653217190595029588562688047673897866929070421995999675606443191131338959668490720860217567668143275055561884272741477892904209357805937187814620588089571213026269326642563537880720531087988773975880912390633783606849034843575362125371032588943785692109021982139303990193246820647097368229153986390490878401032216694203672410248624792107351503897647220807965975193458038377055647817762315953166183218471645721658215127813748169662114936471921996129373798944465315849502154215107956749761115242527323869790587606493208866422733790579649289259411975150370223453689302071880521538952014860639068822425048494279266372340395707550431967221092253524355883392835570969830581950409196706686676879360880692603109232941937012556162141589964999292676599365766866629208349565825138671332879545641900869630605771783918289464882028514556373644607737222400311403759124495697014803882887457583392176304195410308750581722766437418489490326476377821173147354104457754256178150075023143765761787820907838932536359207696426402437310234407679464493225857246917557820500917359617580219435694605919813500766832929192087711063982540304588702354293037164005722630723732258998530165743155637977687089558248088289324495649745949347508549246575174721311026446535576098320122362068334447985090527294530576123872787910891119799041654182205982365967436435313405084313380561656055108557686817117757927894359443747722488751768118287763969974803822469671927554738425297054327035703146891188181495306525989549858934951286042464850925115905636475441168109895314474959112494122780687219126079929777240054950172879642492076363369191205723377383317565916354067822953189815789433493939796512951490058302723901467212633523511828899651848647204716055093306754434302951518029468828164571180032484713802342898484059557996958756934632541523797712476722093872191531753336477247404268346315206763449231051735128946281010797871441421796144993065012587630884140061890251380965683757443447157939983713793627516252874065863151515875061356789130290340923900095994253378138293329528188672383584750635712642796205690551001104577831325403838271757731381419604844446636051047773385555291010815888567229289404430066409920208423740656136866548986540045124534500397378526500154655415318578262418065386247755761996506117903207827119115278664082371186240804940207057753708114168411126059079481023396170902962755074419600919851949367195881680583320354030784699101623864171661928324017021436316064487545116745808134609725345717270175187037071741952666155062617310846839564974323355092894943681633310760018952869660730148039479443073967815361628811645037207566447686095556665342216824137138317433927535761264209592437739264471048646895073564242399217198881482235217145553362104794027411151432166495636664466434323781539410578958136100681627407615212052105235745296687458485628555959294745873567248163174420143955089639201523308174340418496179503437041136560870213187544905565387880114938276261211390954709925124017205640846872359103624767479502374467593684972487720780399165872431966876131005147749679917886338715448888621917023513646446508193812849915618216651482882092631507115616164821667755836601659886508955926492059666792791549138167407370337063961454911774783441354748735271881292746808153238035126803735593322833053780025292117151732115322016618276877855942645692053262492768350892288816496760398063507102557554465712161821111866117970183638225317662944483811135363075636444877608938633979085760954575131071317552896053880882497962671885112493568070128049324761140456319174461378881318937695821078350911037968044579684934374655680718397040539900137256647538050715919961800197087071444019631027352359605445161963133283530862809191176855515593663444049931946785642856490377181194968648037309504703192549064705005145756939974971598214329999164559270346220806831964982733282377530201168596610372803217386807771782299034457759021014170168502067887316839381264365938740951137549480387399887569399648363311437066960793524634658634253927517097580812036653077492176593715477843393552393475594074997289330031192833332150921235856194997411601718445423200972121800266198835587597243004473760496764639580286310252663887632217862213392373656724313002198884080726431928516757475539970371075048297570681187141548154314317861070912874492491758647867225794832615305055944884167768620648499281856627517042233595789995961660690374319856748186045394460828962336740777047861550204133607290374568768352503973874869777708476583625945762700236894709487431672523552374651038006802639767869031334385970305711831434870471606997655091084210068706621227386653508866404056108967703216286556869496484142835912475856139006535283562202116383804924884407664805648352544750834941562011105832841669558377450391783099013265355847211230642858471437181544646189371004607342365752706621807342085650184460897768741769708841884550586868832481933134882409772532130665902539871449611147674139375440187198169618565231089411839303924193791821060048786882955220200733722709823692713052090699029847507263408616057741899372036687104739664203199573356409871661641262375056658476478943442204737764596598201163774293267069724751066425338400357270759557338729242636177869660243527090856450423565706156514062733794124943799427281838169655122057864451815141735491513855423990519463551584407921902349844878036630594662775243926772682050104702035595652872967925522251542320084572545780820129185422788960649395976695909457799468649747794614316009647716041773192441973990953013056043492964108642881250128535060517491758522121160949046058941305164340939509782151110817852250094631970446923054859510596964840645080839674031837591588022737185763049303613265308329326438903609752889247122511240547284350182418802378357270358163581132888876017744179245607240308435055786378578891231101973722245082857603906932565021890592004332346573861753694078783257913749967486793833238019588952128243659855622096222459345117590310098653730063150591917053951943818714737797516012225230240989664679783520978422431115533881914773968261298645944200667302106380714624388928142871554776339977033448422968107788198940712230771653440086600876326801722516196781776749701681359067280083823142171179948440284244262397946893701649564217523126516498726168963418982499399456624944117393667672623871634224668656018731728219246729185088059513943692280387326957495247482148721103223532470280723662262223628477792549806558196656035200745331350100582143418185859323126978676234105972613753353869242757179468098635723302755974086585157575062208391464870563748307961328762896807106064620822139096987593960259141882505809500356151103848891520118315246239028669142758034855126756432428061134500430523521671825226992336746400901496767719490499599793212836642402834747937505124305697593788495214612535242254234031273639850195870408962031569194602791039283061527054314608421077274316264137412193633444069052579558748069796536422154123039997033034143840076870155237304196148005624553104428531256806672666527552812677784558850976692242884529073621784504882362218754050257574152697947985562562383931642919803881877112668444286794204108820788428845971220784247612198001679862953691365162045002654734876101640792209584921157974437756430475288620868103707109710566104293377133449346977296133634274959626686066758602525780049388061318491195993681957402288755194068300543600950030109289971140468382921636018867031652134186245516896906973511859638162503121208878349939461928259159349130888871582729596103639595502319576835182145987334262341088576184289696028377526990540169845960716163605887866059995612291254752503249957238692587990265374429945545750639661161704376619444269077859484555052414198252615863015284467975646645190333244058383329332374468119764997377266285159150790397274100116338927197279686071788100840245669250621846122384662023157224357600399092364829113288327823440935729753407148730616369702309661306544353918605368019278142521865392130649353459220728695327940289867287852760538197200276814127834956969291294776550024082908100313038235230654455842451679143735413058569446279729708870823863988088352931691811274300085457359152753534191429965102518413068985476377874932956508223793325020787022203499996009839822930630949369998738519949782449031278320900216249710552936466488173150883842651238000995143067001672999827425275448566440445886266346542178329742531103062803101398975015450272692226744397705092737444191885766539548585491499707947621175402960088941871691052588694833577598473954019240261813082572748892585735239227632491979137034709518343092635941193159409587076222234110623382812905218178931659643491705014180976842872534480605455444164643849455604187411728412730195688013631642606426983306630491864785909028221973678987619045930951390051584407652820024202450223333473051109790348814438460372852494867028537477465202157377447386959642420948706171645832442148539403859470591352427004404531590939003752974640435317417435415301350346130325269957043692441479660147155687719993945227997152317764189475516306913595003201824580696864663363311997344093113520841448775086339305160013945149861352828654638660485262487719666393414788162906245083922742640161601134048538499171225727287373831546050390979777020570798674274947685856329684097644471284593629789434496031874967225168296519894744295586771978525440579508065187015171057043458537672833227353397959950943724072950584976882668096402759366147538850610239891337143600777453586691528992788890918119185317385423106497259902171616555677831009256564906398972795375393929371517350732473012816206916901944348687411682691283260911771703127276929866819672550363640159901250041735339130755178045596188739970905545552318104872843055924971808732259964716862871478308062556167135177026789787315943063415170737405373403633960449477593303154998796509976351092102519411816234301480565148413116714283419299510650175262854557553463960826841963557880127869217752539414255063360024648416207934417015868935560130524496894570328407590124170476421007965477446859320502603522137166021242386743553663519974896569804529895891570937543797292430555889441793099619525007851844723580701912388608271770248593400483930073348337211500648917068744643577852411523767819519559984081676774049011906019255320738877178268565942580562216107199012725529344864590195336916917184736465337356464420172349142256436389480129221416158737331529471846871123889956339921085759235008017758418751309795769275595518725129369577237328180214642250259633500457008192102736252780114091853720891819512828230725782420778269015500788449566861901340422706202576510965948704414986830264551023325247875319906807364405795505699995304131738620025004927860866942264479646173784220069312556376577964404906139979753541038707618018387143984607525857816403652143639425494198314477547603679184416102961362006504957850565953723450341347427241671864245486738135738636063554760853765838159210590528778106293235646098917112019464339656663677245165070538163458444404538608943497785894552946281113974386599972627178809787313720398677974588176747810377230922688100583373906249571852442940827438413184793044429501565285285692079809805741894719261802828839990335754015403643311773888246273965498022510756172999176785669925602693087476660496588063218207519463839083268435854532733167137938950070378974743866281404040561829900993320643196826514209033075510090213359711293128593526969775191721649121736424435542190931261503731217436790224862126696248400017195056030617013311132739171507323903637650341640263253848579743668136232256656095795054403766154398312409695173552631005912177622311716229836271206523050439338864760211773255971506112693882048505005475962672309116493309809931305691872721262151085343844712731047005218494834498127920929738247447550112945071938270349121766911559098239946603163938843537573886602050327865828523466162303217070026613164151649342621488991932133796943193353252679106822607357909624394529224483206168926029719948474508272272153675726553279131783546926104933409103532460236877357058881656356881181596547439485946195999440872517631369099342883371208252118906673077003904460030672062374504228001173941853711551136071974504093169861791856895268761431243397003470869806584367114980591010561783488322343621397498186332258358992308885759348999407009756625462322131928765093434193241280967705906442304480002495510314138089610283302218417141349989131292409781406183563874305987083412989993575732725939857383794921240792631442906081692640161355054178253868305791656074926766993912805276517621527447824990855311758172928923655020380790571341946123314412753426377330760341906120312719524174781381808787033083965464348228843695258935523865328024786722511607781964804126223827065050907189607664961977636353925012370320791322681315961442939408136940455755826616644836282062438418454354672735330554114478384401517235092849399508916786289058718693304106253393211462116751799624287833262656551514082176932755351846916454995939370339747028656845179593923071998786079079234068064819975842145511084122937055615370249323289307218935777428208764441951592773937807526714158541683902120780228755292634935370734525635917567947430947031859900345575320842557394354952158488734877052948826046895546258710957869650613748195298897626532700503073295474117887367779574486357868629313621542120846599738205429309221454697682927236636586409791319870581865317213043030263956648499605108061357834597317840543894178430330123829328731437472391178642789303759622285657703079969950756394459355072694282621420593588614662440035146197677589778811418191430414265251996880963624385238338736128577357921339531001858438246710109854622054434584964648260580977350377344448768709192668921305151045885003124384815433230250402418407830054317104844893110713055157478310149570072487214724864556372930933849986965808282133001948157562392268510742707480378416670526330898622589644286379374771254336892837521861533111150082373261080694895248884689488389920606419335701638392221981209748065176963330517352048948610073704945114608063169880793812465530888466427479705164173414858425850459362280757763211139723267539980675191866984559837108525413447320177829679158978777984129283136356377496377763975017900241767034870706424500445316177195259562622858420331401727203690004002122740094066074792195479536974599276445976800603864818932097900890591732401160639571345797476821292239414391594225244642857939068427872553302754224917938570280164556696302090713887521201658729258053893984969817342597980773386520430497350203822949411704290369234760659667815648310763927348319324248134003771628566749978585009081098740294162177733335186502648155068065053962218876515280816980435930650327141987241462197585748826222931860711436113330622324206714327822281750074005723120517065123611616392395065591024491606645142713734924380501918548460320939967646940461037367629656312917024382639452950255706924844391355082563839061232014621499568959298934761386684631416494325349998000273129756729394542654837113401810821713728857568875816058772586054492196023953468874713691380349308107102122978621784663840763020400182446402123447450670056001406072339859971942495948025350869031013423351873867623811993925463254428977688781189394333541507783415310623787627308817207943768628374811848145821264089962049106533888946528972537840157165186523668450723895378641064657075141237901032620811436694521201931899707876897427845368548017831220080867495735843433462548352766523252775146257254656262940177657035682282834829753052166795660355965341673936773644911220716033076942971104622124862510081472598105905678728463253385791735859127569130064467859401573164267931045621997054576160508681455629132091735310638405378420170829357192465761806870305008634294567442700218921606442151508011028576137742103722034763707862836800576359777386984197847829247752676791826423756504402873496277885373839595805669435975762408915491462356193067529905862603442209945884327991656806931358915734071775535322618701615811799083754413097704976552038960168854637131344433474845917934579241399927222438218723644793548368721649190966331808843004909737854560940984969102515604472076394256037879575902083376242871695770707033235416049284472252042233294187076866202337786578258173158497448953303585454729290369894700945724698562140371837046987309911871191231225238374172335500993327976349091170388528089708272260953458139750459397839391228704424293626583175173450320261378556257322966354856604213687484775172127206964074371082223284419311356653527132714839039937402066043547019163754533815623350812604278812456357723951203782164691212680369845496599757367233289080892619768793112613176827277867085810308206342768558990570625120352518976728676057409416383396336332994076656558047215785231163865358166022347178267069142428447183495678697752975968040500260868179947739757506735881298463664734736566044730063398569562850185021368049642496040877868935788904408420390825357147346985518641563783668750547528982023339867791167512073647969525058272341546716480420160358589319895229890307442285392082699200391125036672436230142547826521269256167182195494452973811805200707497174908942363978235927557876843177637442450686857563378126506010721858326995576506906778868371950654939922113372655035175748343219368545092001463814944654922896857941703400273998058038889316745139497553143871356756764270064146661028898825782646614067662923603296540926701385867717160297071323078681911008600959869539512369107534021592648814001534659640171083099894867140406402369325744937788164527301245228909490082679601036681967004530584906059655864628975041316764452282507438633190243120681710227048083190969499465160215103153449175532771674314550205904965495089734264433657476612931543351634086414190545122936484852688214968740637674261630771707969650916002488695548937269578142930265175891162560072185038442482570869464190352646778895740469224245238132008425260109500578329273183675926189719682837264451658163051885996225953626168037683935427115818906789712883814672042296227057459487634591326707992850099737230014318580433294037203165399151918737945951293816540275095553455734165743557513359176149357919262225348275529801228231452570061911546705014236545159693192406377634344403692714802978435501685000154233057301208660751855286834223935237089912688326756572459077183340323634137283232112676183951449071299653706171902509016779383771021594571756569165132255570199894974563318540753521695341885156138036448209467970017085094891486296818435041329007615420814433031048264874373867816547819364390956239723087302779673478121309397790035092941758741307734559700031036127803157101657338167870624754127676143919187707317511102187561170571807772210889380823731336117511527397699810888286267090051821711212367310202221530221878558354674001141240541866358462800972217235903958916000255392596810247416209820918950609104430330311983226349495932832184818773629168380488974371712340182697601985088019216599415248128788498719818903900923028701187608367996215098485141878474500680585111040506112282076440862358451701963833378352102116730967103186420908112920721903884694101136219544173213744221405335231464169503655713503196036225094670631524535322958743118690777642522741138093211684779576251536657349084316561307631176042892478766106303422723292747208264275250596158397607321907294009086568540555019704723363609152866678766232886592200849895763888043708421559664347490379051491198918593814594648034192059676846051696030882232839166629875714360782239587941084670308313503315758479655218519102032426464301258979184699466029142496291858000420317199569933776165891363763425747374109797940486630875764174622564484554230475077865770099268816298336603139669066546126247644498949713629402435637249475647512712230769697779633487647072308926055644773767225816332227071537486066746997765997797252125417331872152692963840534534945694731655660937246281817670166445974187665095672694383414071090114229199378322482377578636252727910446096118120870517309712811267200008029448860625582999438151758224122119130021428004754754457890274653305876723072770391778586987261412243961511503231605985595601025408339367791364396699694882184066181408018683075526038730433870199530862937724258817927589544546337312877584569651079468692594378712098308313881977212908904586612122148484711780892525936267121449983621951440276818698070075879416998149074911976761360323244475394968119709424798015096901457324105553461904416800796880463382261386527540004105954114748118762205882561770037541224589308572425165718701369659425163133798268681279435279433128748780196412598254335393270886627741141148790103709747430094346474787417737751672750706029914158197597521137938966945658360151726088092321499974702418834875023506786848465145223414389882930310789542245162326544395303208792234487365239149658799844558809389932826339655351200046219010403878351299105264118729053423337032471428695372434537812616925185345737231379523898617683097051119471510718446233797710060881557311181884797324967087544100732201965585334705283832054100405401043886835143406609201100132952940855432951837024570645916451906087548648711494192068625242812963651803242865918218360224465011869473691952488362555203933258872255459676095352327480258732632385470159441398031361837335194941176058133693434935623840615577958677759854273125142400967268218022157569409397718358592231114784958422162075236024591958871886060445213573198259603535829076038288686893289055543949738512472213535232679658185599312762056715261638587203116879690174562723545139546104735171743718745757742181481534926536184424900759995115542313861008734278608502596890273255146554116924764110722809929524364732849629999181190713155727819306442486262256549241185840786585636664671987564102571117698955064371478500120777770953517416098964768672200550038823818131537004019497636463991993072470959979430748063907168881470069165976868271919509533076496361657152772209640721324200958000788632249372056770557968834749708865270238991778361059282902966612748077107742565540756678979939271081416492225840190873791555854730545989833065825717447370111310823154560464308720963847659562707069912676443155490909906311016013685368804595075984797097674843926520765737783715351753890822477917351602189718877317939101540158049785072563908299130880487022454104323355726708643422087702168225597313200986045756231729138874825141745906207297045078248793817335347402727405881240366612403297328988889758788461302224618207416701981449300368551125036189874736122452940495289257079035420659573955705723725372841098250498200589117414067520913690677038989704925097347826041164624810273214796773082372276049289636082493720070935824384376738210443699894435150111794326588550708838899489457228884946868887801767438696545835215136324344627601685818607389689531863971730621179945865216455862959617804148224450156735458387773535750037003917501913638230179347291787686546346940403365057483213849994997034058085120981103399455583234928106197597253929742506039036816650055044899951934596321995089500299428443788980421308180372220733042378208295717041944102703982932509360304733043369031406204659914912543037658867363832487604996783436372785900911523297627663719492250357430716504856198579061605340450231612828739538561193598211048134364937819901061226419598276207653792062600364359060625916055600062763053763914700526443923653955050890791087223995145726574103479275038404868494598415989020416614015157739933534170339055156486552857562564840008112390917010709471335853358841161639153312999594475765975868421281517079389852773369411530928333674082335224127401748231195386324663921351747418318981828527658482430584508125215686810746526662660061929319414122421492001461849929397926609921654495127645932250730559473531535472279161192321832177171385699205288440567162909311825653124993771775567241668243138987541125993031337826977745261162857696403569805464958470156443490300382982688148760308884249676246353001533349150864432743398647459427541194536422422878760805572236953097152827532646762994714466662324599527281794742990865179847485364265284059001002063044403909153081891534570630822344331672545467441904381583515465383677290433641066021355759487752683112941206962635976321183265143383473564783374815186467349931280607790285520179597906964973660912067012267788968770714184220949217654096178408825138313366566202777056826306193634603390424375286202947747490937468141176666251892339500653167605299393665376847472663614879193839487760226490189212365234654588759806302465463287675511207589087209141989585135159026311360292744799763242530699504098463632814267654557176483093251399147037262028123139695061842336391410823092588910429554001899911380160177046331684536687502042466847569203772508402328796347532061707433713040174796614552320830731678184651335420670798027671664962620593948038230017105645394042186828962561509225783537762088026008279253683784988950720545373095775591456521706115350929161112378763663564468578686334014905638395326681612356431273416706029294324876572545244660840871458898338648294334598245958292056286735654422873558816344114282930916228960059941652637032102069445283212657448233555570176669967008563833458783251794577429015579603527281882553356303562744802566264378900461029805368470926518673041451091973263222299393226125043755172493365208079697520955795674080607795862607368727142544607271220971220810904623010515242534679606975464687439973209271294511792664295984294664474332045271674123879370933783268698079982561126098079239623790779410339476916165956167541555530768062070970566974123311490146894610857833252780783464720057371685507121829519412360436412112747508328442280607342122820951191697480495604289565829175595647234058143617095053700281219125058718353506432861525732055584609579213174126496897575498733128670490449252610571821031102358134093206214699135070313829463730222111677476233539623531686661668596700207291686907050034620242457170535407498654166884272235896967873151789108126016982598593194565475732463449636833921458568197481696236532417025030513995557448163861837557673269933398606993759687050452841659151401192564326828194719929236702152700580467180110930960248120612387274398982137065831749452110921468442220429108037356192241630162248104074988112233178992757283693001697956121976401193648322716972872734085805962861001301216892596863058353829713426889559737974877178754462312778675861088452176840738259204335994561414608369134449028241713690723983073632078806277689087099084066515180798611134723697406966385335222732887941355867948042330973627078349261463365645938684285110362026028582593159320809824551080543576106922826787334248673658196278763910163749782570533955590720183954204504302966406596871648570027183216639376577299635822550480523233089134233816168994542300806401931328188896635660322323235948274618520264628824784004466946829127042275879321543399582415031802545515351503642255782422371699760413836665470798557883833628111555822398574638551650963815191468490173729589780318144086666642078958984477620994913194162363272797601635502016065767554673462040960834551174875609031268378075700054526559808066720140881478792506448528194223973917183610883647793373413151176745569090390136135407189308579378097063341516942957050838303907218987203776127957271833650900608702219506545723935274105052479645121860491008765026322433165233704719619835975578640850720434869603224019994744767431552347121980272903174569789050981102821050242572245905470657128397208254322944766457709024935522307882921244088334283970148869561943825061541296892708268010451789395681432344525927574838182390792401220344760246064503024024372275336380578635512402843333679069125049870096048160330056322778193472340894921744778046654555252576633393019947109677963579379522783415955944151815498266037877624412052345262115454668805775741471978380054217517083673109300211565739143710387306954997430571560300271197460984194157276204511041295997352561297842443250798733771662251406853931770014917851434182891937707515731117534202921046901249552399390377848859249439709528842709076667402350705820403725868668488167701267700019738822525636146954420928541251373209020180747027697857891697468047740963918493179219393939274152267440653332581435344929823086215240182071660205889458032870435551990613008625106114881349171954840168366135882076612333231093814893520528165885985759428824518986792264496469055758553735108448041977345742370829562651389301893596533117848183577179301751493674297857115318110011567424964893920777387118460390886650062412312674410848553123758936663536638124263166144812589537315158483861498499567812127069772028957741769425800190243649304680048117731453257121734136658347193649273415866569286331696545331748917453441545047913724613231945952868149583111586554081294350351519495553102657829255467400474684401215679147264978507616316817471782971784819945519401625942283642945362101569939135367750229314242503777951313285117297498853228660515475026320958086801197226704538124379760396639086048115056603333972944495897659220298402375057548224467373705763139227377088653026121127649226190580882117024883812931343275523287461939532853007526870839822553001885656658845109866287700926430474332135545170320287654224122682625608372696053830402028258424911809950116327730416530953493034038195356380089402610482540541443823270691255010841070880497494957468175609577653543660661721558388675016944449389714474427485484029773742915648028015412490853389095524217181130867742803381911756335056999376528343621356122325248793955150801857287241419768203622999175302038575050474293811547194479473039129389335796442822669332224368096702139165496507410060287656961506092134469549490792606114036333502634730404346901421047743810358235297123740910378584551766277017846069640927339569653552157529386985512951183659169867453923758657763521227760390441942767413295797937021969319153103020622320473379486081178061362326012802503414295950788680186838982332651380754510814102728570624765155829882303310999796159888661041506261492214839957512884204780237872990356694882998872372306695315670096543646037905973544714503119739507836637120447856938851480813920954132607927333631370808739986272452286493253853818517375332432310181495187728563575266457665398105723717635470732017562174402263661088388661947892427400543626788671230497406544932993246832392097440244948586407368910857210427187914729418890815506503381364969805442185316719835497221927255667462730299854934996896726508383416738693533030897766666264964001632961063472008071408794150300905347032590901240230164900771933978984769552375165362454477276458425379521896784695327879772003214716572670905430501968655238968877456529475847163461965528454308731549507557579311641881891591269689532230290173541000645403709535987521413846257184026515637957575666184615443316858530107052293876194829527589378744673412292092779653361031152992933040671454741744426442984586386294182277806064798657943353497015665468360525639748053997857930123802588615222629465138294228758711363988415545869759888059691314864423696173550034815409397145153870621794770899531090526203080397649571722338839818096508219872970370425465523126172938918943926847240286469640587277282829319162992696777087459775048444344878837964064077270012820026624425822897109924670351710074585380899742580003019787934198733758982277141918076976824954778611069970701609233937141377390723716204787814675202454267570570581498667811998338470182242217349929424068692295112659125265333262827470352276752661175086565795975893087954667117096842043634191757321673750360923877412987018823726524770125128392934005367862343014182161562997031532607770930089047098037544257872547728207594208659016154468158393914753333255169194555358240473382735427524039044546464649173753096823094314975070963402827200689764571305243657022142256031557471215277762862574193638892491495118906294052837622657865884903209295053439159076985077966121360024757572424656949856759442061113455146704914626626848910584769071422559588757684934146810317336558843506280662818365281659104778958599614177130618045441873038529048245537228351277491322884329877401247483372945151573660044480736212209186543194779323232462563424372093277423011954856581959778842593457713333543002630707871169051885650165734296946308246598555180961818817212420645221333222340366134955406868757053742067595162177559307733758272426004559961281286993518525846832734656319851015650737822874659091500374181607502251976818422640550925720479291394603363202851237295987214657851272900451511054480724104766362269818586876748740777776846280637449820054446111413018157445081714964588677882594370101052162181771301652234313406840762135748521473011123746833096526394682652082693941051204438861587771532894571449952923889119862002618602598884428491544540136563151261050584677875818873945618741629521716488107141062165109935057224659272614614007706452403998684955821264737253211717502469409382243885225536700173776720361732769965802951106196294657328801875505736181539225104529253807408487468832280250985623453684391237237039643560446240165496156434797683820142157714630379651564412793880855343544987812455234266092614446898079553486125237749520874825192816495821893659414818038009297134277216983526087692115749871574512808169715615287582852923712261271942510330855331774439679303338087406493376617706192337643220717250765831787880710159994568968608730846322721749412393464908363861293793155127952868610476164787352501742204607204425287622303012577276676199611684208471484618563606050944227355643496359840650698278602217761472083285164101360125130217282288563238480072746039744630875330204619853217798522156639617893652368359048296505906110537106304512232596508139834286554243432269471104820186012989483253277775563915469466056279473693897497744130458476011383164438541835761127281044640682661841134427357217013730897217765675322317341905531324423479670926819811190472937095549551203080790793216971749635557784155150217993379131940210215700679634927448450116618865874572169085918469761087276658150872600369702755486077687720536431011210842097516829199230180622725227080981488954023457297276747969509033377358289312458442828326252550746643731502979100593130783549419143991522323523371016780681968033739581367002931163929574625749117427542694236955433876228220860625171500589662333411674092975398647148492645432955688423593598497212179101818393846241688267762948318641538954711993562719467047689011138740902079794189399400336560780773885423023074856236865393104632111514889346165874205436658820150429573771353143018753820288801119267186737742876197725749579019077009714960010240525926680286531263093684936104728149999700788933738292272059348279710233009309127526580102504821401622540153929444316909327452074721176293129913079982040758976426529851857070275171573212228183933887385886349012390491508996187735003361201439496205856278768167485277992417947242401518362909747502184436244597217607675843273333242220942794238879505197709668967471527660001705168056815637701163670819650793672040863220126006736773213402515929868785560109363330604783183896828763844762085821742463341579785461607217638917605892869567819153481682926653807698896580054768919664245756274948654132212738025475565966865597702092919966198602060253697677696139521682297620310196460254283341493419576077264372330503750058759770510497548241874294758523861879188932463355622572674016825568254682134309334135673899609455266900015865698585500857630420188425791604676328249696365981969046498001391996227093028494031990687855110991643983081662928524747287854250271391079573604048396475162889671017288318567180491782891520681927798757951805055491465510322870817661055735461805016162943959096184473218215653667483033292264663819889973517133674969433856057521713471101327471734623186064950827577292660024047901372342234858010033895624149784746574433421420552289785244633330137965713032092863002249556551816930581867916803549270541814088107924643128944861118520879046394007739999683840116913288546035299693352261017801433442453552355815528064586718065857061783751679557406145610239631790817151188378476444956750121267600318708395810467036761908862324279667244464834483249013996285557159484849716356124615270541041977465695420180764226970262355608100318424173530692699798280954060887303548850328492887614143695646664556517741901564718807504066809895326616588225263796903970747929960307558397031524895424486886930593376963953873320462474355599123060789889749856638516581685217350630787058913556721791613349447727439865148697290063294863251838755422521831012506563768774795072421077389351006992884184575639993727335403191897564779443839208649558583703177873320396246512825356649909904427843562064421865314946618829423244296028417014474797895683118500642536061406422343613802730529318306012590731493484876816838207185580820975754190834805900726465887562535008715998550988050327508658369488207417376929355888030218671197599741912745794553114630953832282393344040073690750897348559772340845417179416200438363848334827216843070651514350880140578421318550488270174229298703864493425317844665611367875134234640148250413674050383563583672442778384211503435845439889634076511831590014049359194718907595810421784957635509738338568479818364251699679934426680785706316574187207699698530402626376823386667340224952888493841582932937586861957750391417244274557517623204406927889847868860449241322627239536982318456643950428968329111827267332744369534211909483553141609381033474235793305239422656940656012926843325249262679649654207122350104761622131585180490718270417442567962097633715776075111030422006356337406233100854440493850134570361006676858366215748371560006784930437027931308206006470650061650730391344536756302162171950180014118061697978879108565364167085323401312555647444486763114139273059006552734486546138178978832152977122181299153237080257531065455946620854345916734459074756889185981733844890614048342048884734133357053944836884342191930254384494787582962518535827912221238250295604845408399212373005135304190625208629286520170582782480003277497021311677747219045447181266180177764883087286906390482299885390728158275342019543684094930359473027601905440253998211479826129976809876297990131350721404159172846152671320595039343082982121643385568953582032240787979995866482568715058950274486274718433977055214840203318502416697971212039682874564789287968536146058792918516167770286773855298847663695146524186719046175374308530638639535221030186416955279950050095994479199591222097895234557520874273488208171907665024283376572899849791123910376205634901885503459877776812264084842126484500642152192105168921832685951437643281331870799149412400984159985384510968102967299062047695661000127985220460911714207624162322248340956090029523848596835643819352197614001760965950517496973444553919186425445623599041172174317311912335764439490945303400557527958113841358847651798665080283989859837398985596744008063144914104832199145977529586481486438598893015072407418599996351001492603851207707842592154767109221930792627328661025763305823268254794751260688362189073367376790230313064399653610046867954022909765413346373829194124535857703954553350330978237786627750853243700273086918917507564899060246263372010346829600982057106223447874760685404806517815472094955288682248979230878350936050730353681309081832944513201221987450820467718081099530947139723639135902099541936377215371032187969884517689839893327179320501941374661643087200608547428276543317850963186445832786710935481375115264923847956074975438226771703883318141118370668760995085430507951430513780404190354650078012879286479489975554283315857537252820372573969269983002970958667144952812582484002080983288194335322564481029861820021276165980705359725849397996582635110138367132807451657405583113410301198969980582339800387896625601795164419951200056820655578546090449645321414795558148278177977947549718387729285667378467213989235235425018484558845237422466424025359314965747305326151761562980488878668758156435140993873093129756315742493766699783097973446342949720829849996351075537286244977630274793641197479794539753249705380358335194644908071888493513155062195199218463078796240224527839210581619471377020070607991808577318218626026487500452770291881755199165042046502222382770385969782318673111197499851612124661425262502380965079103800272471965107794851927391005191393900741982395488461060968483006308702336064764155915843910054009260721969983556999006831879932252445327800058742114267208079981569906841337434295013468266947022579714031770913245867399974075688004206396187487836531010499922288110015521869050496152896448313367034459668364852194967224231630868430229656180857638279012369196751653931389462630467205554949308050083466973575629075090945220036199768035692547772343380540162825005329987503986068685433345728455788269612351544935468687636479201783055345006854196569345817311849384822839355259778760018129475385623148150957293267165233214778563898378760433016604881437329190677903351214609351451035879678946778669592790994210000022430233247362441586573034267998870983639854833900504510051762671028494690087821664516054211804801858387723697143751325657923182239364702082792001354728658133775502821445516895049286122144022348584049522494110777748075103297130339117961155498187882210380215519000650482899855520053380612339113343005041072153281731907413249010078144350052250053675481345130205935585742375506270263083964598136041119117996705594192245588174830262901614462631766222748425902078279012570175057303572452183867807060291569284955084382548330223713458656791508904391239148353748005673565609863143276683119816303345942144490662603927975356822755663985193381539932095129574803022800412451427167582370863806264251230200114351417898227566122536161777689880810737527258998944315450293221298922492423219202966913977986211291764155035752929421590906425346152815282849346848424583908223228359809152093889583986206484531573603043174813645340495416123662378543272890074164613613333626086834987871394032442902958589208853061539796022864058168377870610739928290485122134405966038217443203034312442820379390885605316057610252168863877043411495759320211189049625311893686310717233116039062255818756326046877506608651403030225932964794629697341897809514269563614045849629920459194033316655301010840955678756406506824016849086365898502597799194012016455685907966840237265038578380676989281537441721341993978455421670128399747607784170655004728631528667008405122399818558550379405840546380835612686146943164655937930787280396144981598085313430514263343657556305716910287643893449039769275200682189134759095624302555267171030688345075625002197672200914502907278087708062436041337875237862091800026955458002940374227375858658351344382619880766839974476933691846336531101965944821217556446100873957375103613776543888557754737373744989735171101576239239519620556677392894178232318597548383412611941815863791392529502634003785847245002558380728712599144221894366537962603595110369991769446593954656773543002796433921713054296954282488799527330972462730236496299077319550361154469533331453633800822547129678239483075244233230500407466998538308261292397639731207388660533831169178801467479786944381734972377076736056548962606206648022839363441637890868981341916807703405994158388781555115429154446432030660671157094455535225975682381573059974602582444472646222237766070107255979576488978811288636639569847733147730560908196034912456016207837916720289070396077326758717129983909365472940726119774524879886001812295840187809337720472804594501325570287313845896377617178193473798779490581141062487387673314433576296995801568299955102006927215482913535992426340357018564513209615253492101513173641891013527796709555945995707790122559262622930281514102878326141980998393742818947485291627864828015748989393457552556040638063719257631327091730439122350489426306885434656741198893120142123804475559185228373384831677992646875923918800651814742661250807745314271224017069947393217317973545048274881832928975729740780838774723083541409542045916645955483710210614582209572084163184074185473884684171641701564487810847380062752453428153328110013544665168027292112603513291436473514893612988517183399980496005304636356555956253435196359337796059460483646505100844415726483375112461569535871567770128767074466143597591570949115072586980535145395237068946035375047565918818606750686593804371429080757197633356183150179269258592413403247709530437962186579686760174386153758769912582480572481047281453130903180051030133422203953493699329581518140786730871207287992160233612657872529355977739178871842696804049359678075095508749374333367219926918462287657836752128621363293010539144429305243619252917524574234166114311720713692863811583670461496637298232228143673850758121106221133581092778308522676649159132015580718149325425150468825943648798676372696821607335908007036386009245328929550299489198912252684523435179625334856126907735951299143258545823715902297254215798610830578080288257901521135531192974644543015157081802278361459862690063835177097874156661656531021595383252332720389429349985690735071624881236633490808249826602692741878575327714456374683059124300072546476093766385684638730709171566828569360199493032074768126298438037581242842881472203661850909534057730097056320692809290768156917297078506893320800284653112946487450506862985652889045904510361302126044165553652742156466872516720213155883300113591424825085603863125379238813124239927102928206207248480903634293875774885985912690103814203916084807644656256136887130810382083308689454724425491067955965719030498857963894162561266393315330583604346946245711647644889543540800122639796081666272547101971466653555113776676631420706912270340724478238229811503039288662807736944719622628358416475654512799857164285485278572231077711882787704101830380150338922874928621886710912145031193797528690549852848180708820939107408925208380229474405536038276900879013558705767770779474100947653825110084968734127269674713808476286509777918939548574811932945586112917728217901277364970072202022818071545708049624166930741530381966756583177074242364180142234824464394353424798198214227705159181382874828339401445359032028433457550440657672299400992920891330882964610646624458168763000097508337810641382116602320030939568331094666351199672038010387470595466356761157344522394458809973226988011996317092542839765649252792159600643262527002458342501784627218656093777225072547487061187005227266259023479324750733143165731744201334126678482176207932720975191499136887968117012019122517809450399306947633499669121539901768829475796281920262422487201798608965863665787498399818050805968255965875496006075579150124516963421956196423002324187063581042629520723430657790839701054941033927883458269332650078770036000657139623158358939229909084174373529577700541388654695152436781191541307562390451881638542405317873040643157432325528986717916461139093189734435447683774027603948854332905695119987129232435343063648372981548432005119433963784679618866618812316808362213957261476257252959707582932350001740921351160705264022813961921029356033172180577626613159132678011215887740578544400495896423527063068675827413466901795290147449087826685272611921601023730184715499875895046370244194581710527238713461640951971204536570733489393636622833332949358981350491588203446093838308403239862045193284368555217037761116088944025721573722535040640548187446340167753279574353547594532115786027463259292928385930393325266625087155547469810319767022996569854968422412678405950057962185781611332097495169122524194225412038055333533065426547611539815622561838638662605085793493533348851947890641114695209363177966533540890733022631753965613018980233813638897578163404122515516861311409462405726575267143526419166091471601159412788794378146506431525999782247570112453142386017434938136392707946909099808964571984734490547571356607168074269505493922949380306049432219353381275392641249384730793895504587519154404284229940016788586968492364444628226534808666621450399233242964165507463193361407438259414525822597452271218193946540321675212764748366031253536261574849123367146041018754627677120318071470332941614365975066959779394739010801872978004857282140200626465028075228521869413634690688986275656931451257016109211313428206137354147072228942084308275120544012702128728952590869649518978859413470815050121075421593715758755579523895125834324173892317984297523990590236445272247442100791318792305727313621906359280248978442705186119293900237539771607277225239695999904353788900399539782443743686841562800479935925349179820653384220794146023114474442367172319316156494800968624494384995699067102743586825556569704506509177037408596946111883873434140483838857332999717449401323368096958819523744990051251090875825953006862636894711175166537247190275880790345586556711650547703845378329961720351761929887355233071441979800686400837609100544572546223938412371104551143404089986938659786945777505195057826631105652996107404871749196433415863347691156886723117630819144551870569574156132188460338490199565545053477496624619353855882934104191283015503795000439016164923198783643950960608101979552773292766164688789183688214606557794398915750548800929026028776556337603633440067197668880916940955080978169902294156712705986392756574950202371935443170812359057196542851482554349222332085239115349667748843337196186475760408649025754456966830519251475705353640391239783067424038268763693072723986340651048262813240543344680592884867656879823517005912386890247247030483710133612946498998560970825570578864676062598149922283340811923784026794081288650481066787303653299890121299938248136046965716478285110371813776367316999604351804950697402300610250641703728294317177429042664230644730918158872839934802662345761243218989764574168997446570843954404800576115423385614275529976197565952773433318856093083524607495081046486772110396435013107669992113786020168950928143883748576549416305167444365134453096148038619893112466449478228138499392930762630491950492997994109561377087119635298996486432928506803438397532650535217669234029634387774328019969701273816120327759970661456366616734305673006743119128821827683767121238042078344162020941632073151296933101125947382988403536346267723186364719799791122434315936972175049638298316148086691135011949581019845652688855307035412477584274198639914758191372170193662040553924466763658934780807475337992926955793396902369543601241154314236301304754309895245063938882262643012338851400083553755573865342419308883227753501719257437218574973592328536550244973771818038942861655365996336891719877103464020113766616489041959668334176353654175471955142172454458976213289530686553976833155908727498533601369566571000778304902626848549594383103148812334831387831274675945222298524858793346123582723622625093146806926875609593051435077348442800830643762858780945488344573507586325852408131969403350360524309038809739823318897548187498104738524863576329815686542120241845571503475186608672666743412050031490366347322881362427833069023424593995578508457803217864465797914670001806930993372425719864761478266627012053178149887037128258058873376005415460175358490768436395171787834277535379992451548874293787004469618476835768907674686481159980775700145579191312591537348096206678367402901656790894567606772966631264994290541599801566361906056018624085324764607439240909732003865069804404881598365765281186456197253208174641683680438805504134890694507959584245124882211140196346474029522838701275945692812257870475767324744362866002896905959495101176355702523452235158020707564281016107059233061798839080226043301978532147002514790188060164436502017912094885090907939527851272403408182630363091737773330104809899048638712173871787900065496319326914680028563071965773985315448593012741005745215955989837954525520585336259550046285938143248088448393620264507011516772558300157499873992613836832141049137689843756668413178829012761575179046275754028812724501511744695106042132862826824988614581870741441641711567479602005688877404539180548273534601654483354544497766078175839666439227084538677889805896948001613890080378133782332890890660520965249548998958843542285796299851363220365480080485640647983605697847892080162959411496819868582388531475458394329906090423916181344432324685061025905304031969490447961274115520906666297901842145003820084982308765017909314432596708530999983115927515054936730379934634846861831632955965672045735857521836200753420552413702231012997924767422065513069351444501409120944507029591258203881664936227132597140049741756591335357902754797072172698186356494604007355697347720927081947063288037051539854381571519298744029022878355548264014476661685610122364847146481552862518577884901757812630441880261910817164242847063693518326141957515384395988312186625589808032185785568540191969707355922305261055089331001547607712538755821773529241223376558904299778936119896203392898371560912786197040972434060711716876638940898065991689950366148040205152734142550792773591088885725335870609914807046156635490374012793932024936060208274630479505815022342454986703311380644538472775243766446040043251065930050273721932579603391423843550603631954068760314603930900844033574885148559606304211666111677099267663687918279989103101977192393252230582790740152194649435422875582037922523539842198171138674792437083732928947901196373924159225423493328282341577879446179029287622990200718561753878054865700490951014781580958710690395382405958158793632178592273421870042611913600695823139954893970412877217164216027104553522556309659370683475960268582278250126927171868625414589856536396579367864810887335825770332734809667505577613063610898082590570819198625138559722913111167368957946971475695278619670571186178887596295388120260916569398884826218487918454119745395652366580746963139222644340924935979628059685447196987035977234467694459867447548296469773400445602038176389937123854753709503755608123893508769771738769535468829130679978409745708616772202256456212095956610705325136293521573622601963337907265238007286050697684975108099391611283037613021726220435167703233698810389244108839816684148435601286173056007161884662853318388686360093473794987957432704035154148927521282366118216728909978640871527837535548942648188463974719209248618502546592603031315469842174382452064929453355082291030604783575156594258777067364616303109295450963030352344253636056660349767940295164202812193547446632315329669720968315575854510080307268709544175112176735137682539570045090567274159901966818259819625717318002571924490317316860271172318128461627393364004650099947972252615264199753520265316173736421251574007653120433602580948293597886468048075939378254275136260431324380300657747298691053870695284480405988288180700202090812456102304632291132125163677069547660030019755506980997578526640885527663828934263806812143245733651549137291913360732097359797336041187942964827573612860222694884039584350778219654490501073130157695759841490592887051081522336380867803579178025898660253360003825829509239828005672821455816526172930838485820050645290548359140521208484914584360303881758746998614384014805086115460417353603751141151642135320098270489935636517813786841120719706885752349949950116095273887134596785296413085271355514316178191343697629346649892433119436590538895155308028483387930690528518498070536164655449321776080099578970135866938745574173880652911090376215450871331412230105061608213596241557530260751481336227562210442612613028423890212752001679189309320289414563372756366253177800955002887298625782172622024643866415617610291967446043391687709809499300400703168881616399167381027245241112928132736136019361124846209860559486556433105003759755156054957814692102719625314668595427898203892238524601568207053794724330977398705984240956115489436728551583939157460128223775953966848694372368073951720892465705926669876592152492387220204760594807861219765107038354530224259752425435448371808116039622788337027647712847426415086991133491192988513769921987353075092996109513849920480823192182990851036134406733812745076391001222262280092685526316789789247105767102067853475252065809857562529624035824091784608069466849928579655004478739756476975631175755991377427188401171816014871124694845850449881245959743703925799982263246978387861821242598135715455610339456254739326402322000921975882569676435298230513020617050515613322797473222529626889191162993067310075552705364875666273482065294337872887836578432888996187331437336679047352975669479943666482238521602406284052684953420215330586602650210073097531131354250524909615845013705031216148575033647755539799422422544084848890813448084549446914834862109102513237350589944348931587844076534902457995977943961271000356966885089172698799506643884866036913282673622434963318491267855971074905672573931857273305397765084811900263347410413430220153832697825292755776725229285905369869119791734280794175089359324076940167101825998482687294909672173557104625416613207626457274981040668668495559708584927061987903484304274681612637231724972760292156501722505632180259219833620834035570531194412542417138644416582534079847478760065386218294122499320965841271751782951999806662857693923598279850863051965733864881609405750032638334505025718237468701486083183530038648186194513764332673006169288189092120426340540106256828311507450649024468370441216668727203311369946857717614967613235485462783644365958713516465166853601585116052803578604977698969917619674287430970238604429621118245727520210006751609434175520295873977557796688285182518529526126343944146341735240648582132835046968776635217313250800243472749210756099015095354974137215145848159832014415544800740570579491775958584862776575771075743374207776038377113858685518910592473315260728783335419570741921896474165439932288727379044068765958631028208196535073010286902050130218838442452245163234095784272858688394507708585719050743950812190333755251346180420940339938161515613753496269392039905532408750592934772485708065596294128954664552774516299592272023730928606358238568443111630915749506776002271056172736144420005814274553517588859832496875614233060216455170579319226290926301969273920286691464142346230664080964502769508379724821540943111455532853852254692969528094101355987007071629752124015580798460814463401997109708942288485738670841942478873180299066620129843287267152320538928118954688248194415735561342433401223756556726311574280658136774421607896182713292873731258778578754457012397152422951874636299872131378053557609864983438348761407439957097241705408818355297297518999491712863446833261669421260794388264860850201258139398413867956492627495273843288747761219865064097514950329961763234701945098188788419044488100210225932047303363938394232362623931903535310897617948800208625199902409350623733254155405107603797459887905061276958161657717845937229324612983208709532216690681064863905861439614927597188895014572063508909304117928707728092272328966515015755095378515790406703612809066590383621122077580953957668325897799168834347173273107487789046450646462760073699677120140963103197603052579180952326313091656433257682829769250611646295320897020618614647524588626780637895036981820411279050242626088524902909398779442800008026527776276135522322904646921806382692809842040586379418651126812988910217833332592536266360208924937741849672719691867933703963530238411235547119034721458084865294942680081685868181277777409079389857978054824289844335187776256595528978485884873723183640114593610767735314203047775632869836769918348272602771908931766951599834198639646962381505784894023264035275267254861909474880068557581158149542698416549850418091826634106458696337233975956209237103497126369367325021404182584659857964312071353579895546408274699108063333805708740497362160892513979346168749630077466963902848429200479506675496945145350621696029401022157635400321346110157843622987550387979622308568182595650547683870107481423678241794398508697746789323767867894151682780433161196596502228142549283587816817319954459448081465049005442490038444370240514865857223510505219078426022281721188381982402441401572406849032412173244558238540376079948004163221036237309005835128273216371311451132512101741185282199425919378204913303032298413024050959316174378394128949941336388102521887948152416466511470771425507822786474792726882009972266095906882804180453518969053581704098574422730041612722348794232336976393810012646936091406844142237752541283897275654238413676244280106024945478044586375196053638428958838345565120446356423948701994731276099835671508193677419930092401084382359632529585882370737949983352769621022377364783934024495690792367647942917762324433474942548734635087469882266288845675123816722931773487316861450212022325244573059499216067449597704144221342189262456591320147430372780701421006471622264366310186029413372027616662647364451140658559826843310152989629222971102682772427140909932879602785221620398482368100966668772970269684379425884481102433249699920670330801199799566152037383597684528401799919436100633697189889356522509909284687475808600420999902050509357535345967673727260060114108146628458216427181497624845482990089808206993687747104957737210399655772525660597111465921910874461428945700601835671339974283434097176503515237465912221556164409273371449503586703403608601147488525777267814168247257502002168200709824278098293746072749794044442736656764707166230005337381789001589203282044858864239799006601231799514139970446431293088274001650136505250139223315450650554815713475882268540931492073670366807142048085538007776466432918748412735493142297237423426028412071534163211009784953139945632806129191625529296971777015612644994830902216210651116975994520711192077706278795153065191313277976503456989442805990786212796291770556535768955574356008373278761498279271970975923990164665505587607062439701619147123512659852692869879971760856911558815200609443990678681101649682710064448052503323170020617380945138097933210809955031541177370215037134026112102010278098559834104634702760237883894750233925741574454217150312492601677783814112462349156437438677178160503747516474187161305252770043575887097652414327125015521014721027698141634324597759815092782673828558064954014608541748515024111773321974992530773412479780498352393922080944575370120368806253356579818138031986551885153545903431024099432556934716143041724402746899409616785797985556451097206461339516938987786945330326079585405375159587422429281743504943662049207509267623904608202419658154423311011266248067837164279190311834691587246286054137105789968827934905672022379346708519903348460116954812438243543280072849590170260326917625756579399786181973118555656941060417379199896806386019781578326243064207568820145971676448743177645226535215537545623606879096924081471247750574977606654004375329430315121080362914197126775021285903532388940251698740843072278136614650794508199712427415722313730489214641843128147053712059526958902146289983408207510757157606406968272308847393064159506429231979208243692989313696433792843642729291183813321405599310991936254365421786711313493050376382171039698275759365013715307580470599500374103152298098595528132680799752188161605311091282614236559363684602272121022015318912202230954234905166549335648398198733924727347743349932837933753503978718074628477309065386922921008723467502531864773689747034920887725542447034875776836028841601131437436954196760846259356518012387569598714479339418714429744815289077238614067832574639086124622884257612968607049974988208664541084983240981772221532095638977453682078322865624895539254069293790401040939271012181186004468882986390789555611908722955541768371761977023405397360339134736808987527524461830199009878963540347940834974243006471591187266830346048557640410805163957730065349503241402699083575355973003402361297157623849248707519756376084506205301619039967033389505435280710676300081882991409607350355321145199144146531371911963682271757128438440754189992550953201115183934665027614399622440450892847282964275348774127123411961790128462016942733080240774053590672223700557383075272331526883012409554876296983991232151645241846115666742128834859668517351080194229598172098215931232611052996744837526036526312956116057873046783981035141540202287296065608347185682304309489302532688798743179683446250031753569223660393895598174018739696725502993529225380312697911596749730092332247758426049886057129007511781624420701170742206260021109020014415550435986806820310227071736954666078020441216540379358939105523580187260964296316188805770097907685575852845318261048988015121682517934732997739870848236645868396987132221648277116418041013116571283589923123251170340470577687150675037685646781461404303565710450244089456886391570416829510608650628893309183347241534382472769579271878690636272184546919262554131551452498959918033423324655590581870166273646407899933342713868688707538359207086400723011016629168393493757594733666173960364397863075249072028710294073273404756039194158805793342138993017110908035248310017303290977350256910294892125242306761519646050428924764431282794482302848848688022100056019905193445234134105550150697778412494530891757615861772447608297011784814820252045944360942819776113155163628900212446183814628406758345609474227190118766589908517583489366939879043787157907446282270955372894735486474241873634983140341018402200323229627522491106108953971359599966527328109717300459587541319593778666864883898825136383773659829909323568958037647121606928026286366980762705979788434671672721222748949294923467764471114969402795477410275300227730455153594092801991200074307054342093036816018943619681537685213147690251891228942549293587611404773846041280597313087964362260915643291113530911034062490364774641755959835401331990395000842064201840252212714560580554987302131810801129308068629899871289339676404725818859340304003958646097701370296688751907867726052034966371643129773804019068342357048880975083703197973443094744522803210935963185859614707502657599880242048595416491269288849995310454665373880357210636744287558147141711739702526889992915892741828213479963011981617997963975541388046756270090497724014336927994423568538564906343131653879083690866711756228139650025050073220558547950293493055449490211129464896560978880269160333325393797817151763367676548684646057636024586976226897904720158116342403048368881413860659552164972905211189769685277041254434852576348163413661658086793324285570328553522899481260841505973672143272334650928936189435389420125408900012918460495983827986545713969617562055815480322039099278072635976667054577720368410604674607299999545672433940670130770127126859250343376961703287962107937064326804311763827276067606131828617934481664773329376279298627447627188240893072814981923823005509773920472037082469379919061118243418642264443891516089438353465896210279443052578536573652115930228677299756254604349141970016193577649781633356885961367843588862573664959388749815155369835249771028764677049094236038007803528185395274857689246038827647134207501420912425955882990718460420178836910430632548995758326587545276705829180423267207089853250620497997805052237133248977363019295833061583840891724647812902937326991396290090700543244646670223774673306441292934187274541675471999705736574564337590640808275204598973934333298494316788299785705968892556196856576445524590991816317800153400013291451283933907587641138307643390624334368005824050451945586753546811689981313080182168053024836261797610748131872614092735393016215347256595496547758223209532213058450283010883438815187401939117324941472455184494126732438494248492666026863967293603697909573953182986091009767141195774575387229687306739682753166269595481961716232225560631878697012897038527396935274616045290774440315430713832396363979156037184301974343018543469766083438736488391643735940534420120385744885682632799618123061661598580448697038438410598397663820651974894851203891670701992341529720388607287286613374401191844297424866501156526240212985218685613420392921013791640409575044424441732714519455114724569482510137659730967775853406497942892687538169662024048847023947059260887726498014868835486767101881594198514408614619203055794735468695079539338992455122258993426276298919636678966247979038174690365747682634822146094281766265885625380182904955484021361322948469552289317479774045546867873241155087504686874372563640723936634007415852587898963180920530903677047506128802386365768917410149814112190216421691051336423434151331834554341621202701226003687941135863451668065822054381855138826265713524274182278218475399546213185572101282110069028555731336292479399316956389456593679955078314078473393434740121813877624906445850455656114096403944423641588246446745786725308289332015959798180086536665853632823041783536730350808620419865027422170578043149843163796493013375620125868284980191781090981026228743691296869363452427292728178952358355585342755624454221188133320802032063368068131222571330795259211573955897933521224667702805308559653548622345564952684500864832743294784262405027275418685026608783838405934425786891574611939782880178251374014809883230195839539772172964423788658368916261079413717682962129265113736737321768796895932331941504874953572161438170743543649207724044962981978280361925675596622982341863845405265960549083290378160000508105434490871309026812129604082337143101882727916550591064298839966513633016505025207833370436969807767568903814935496006923242502432671895044682473117589235295103003730437766628179088871244628151468102613473306058585697948726892203981134116945257801938626697177196376445744253160886046178651207222103433714747715226478520462352747075805311411131239880976116188668551093372246772775213211842770148199401880718092837024619006403657970045140641084767824961706101278803008558468940230093509368779378646710305839521785337067515087588818828683113912402963735982408041912770403126206456428372141103606122315128905823167766500584748541809470683742568945874264633820184635772069439207328715183926661019980040072179082277023038552556164490921801901733868393466109331962751077710931982747690292690184540144630806535634296808094853057545752266630264145419418286406170973131349431433686232071522580413430859390115508484432031323897268452105423442063369806364772618856947158726654549011434506948413741277990316471436690065663906432582397720646814792067124686935929725232108538359795323762974026239664578497503258780123598772088182964640581924569452151180132955423053955552286141619656688842631753165483345953626450356798140764767925670954986105742690504586666978152655198445336548346625461568540312654672101567329295819895428204892045728061233052523881541483656385550942545743742550415445034335629858723100705350779431468605123931383010655095795035968536300750513430563860700549782373984331098979702299360570651583883722252793946753992557761458591349771399691530710506740069598330052283362248520807263868034597498976479190600402149634529780356788283371290831562482393486479117242354407297422505062248549946026515875768765358492757116455181339078679532007521738249933613801945331131492566002522532041310385659385442757558023955012870199943041953844376664168822009790861492053923527012237476446171034907168007743493975662430316654593556235804721586951814034460694124504845849393170757273083759924898631906882728094758749949276687401347401332839564452072237779984384217968375432553893705515223623967950468062963611401142943985813162931113336753054552161363711394201161273867728491691285513396526361836988122169394320377415763601157068388041478772534869277182287214677487771746332848831571975954508047976555165532767308103695949929983533409394558175953156943194640732425424745534732423308897481782438449524432437476539428548477947397514504001242556357843742329838336066235907391183848997273695532977954925294033451217483784414801813075831485107147094568759186988648234676628197983682314499749474149895491184375826435707836416860626136957364652884728579603775539914793360662471179731207671978493156100066736158601906238802043952175778467763925155157053337824157164518738907218726759920954191519443112929362119867915862573407466415198064707638423246273360384900738132700500922961017339263958449670457303191272601610327719389036332429097877468830298705881776554477140920421984494289587616033854479989423651333056062353286957127837565717915424550804608525116052668827140474112326591770923476001709327032471187922657385457470199667263607412700723328553372099234367281878468842672335274057738412456623944847524048102024152479286202665082778487168690612949196835861215413871110134275258064632639044974417386970824826801102570703272182298981745428834784982555546321355307615750932493393831628386501654401942555254271821769979899140470972245737204362033230590964177823916775506356408541691519664036083734957863819454353982344725342883400136862577306833431272249854554076489619725944664730139784446883717562264823513081484981240477700514373495801078151530638506421004580572499754078736351724582531813737119020270947556715955202955766887547800280289804565238752304281995577441018675179611953901945793765600448297976697085465108119461386697218391552922473577884337874408085278153532893162782744601110375488326311753770263272242169912975721818650747337082097465090190192767711067822669628563659028439642192704618800485486032251800641829654323652409091770957586492876592834413843213305958197174821730479057231778010413428983159545728693155654702972763942605631865270811184208849148877926887881827666114046104658455295677453271623850674365489296383642809004191306556829887335275991374084982463693355665122740916394836599237695205165378218529723192590005850400148613117216231523615268047344337232676737975489650944840754513718806688060525757352353469137851836405049417402177501640327913661582917491306679100306029410067130039497623452683883359006163087809607425638356612160936352844260281379962228594237737040294277376726167504427518227241788699636438778193687680396584379684073911633612681795544335021513353131709049167518173085913036534860676965230494097363643988801801051502700806529946621553450546187233814483934075862822193835083127516731678572221238802166098453407630164682882935525218436603813085512708241277091854527685977207221053897324820130561643314068123988553770366752639282882496863723464232393200575380469472395611540054025378620632121930706305046121337931223919400455019933123105074011618578404982133491054618995760191821160557333912742516671040011160947984320796171641506977308127417499735071003059858344333881913939062363709318990447260331223717013381105034790989445327516754591683892724594515399623148791683167029913367507031985470787131623854495243560624896979476213771636831924863299636636058944536678944321222056908190581325656969912099702265071722836706582862156216582804854795310135079564625332880165639032142226252934920058008872557454191438995535026838229804672970220576221119953728352365540990806669723558671515697321813062160825160110713123390291719596097554574389649614652904586658567134680722130081400791003103313935554940246699709462391009246058361491168161804137102842500073438855458132756601759779467312360343006188524070317456966572450879685439049137769984241075875939480153144837560823120933862519675829648838914304001192816560892594041128942581955303651968531089368577768929628923240347530602288132665691855793659997049708738580119457839973717619442102443582950200022827410768414492330879903746258231619260560606941310230264971312309689002463935103995664072403481076663003215733454107610338357470301788528234117166814800191384153970325304780602553765204022849241470913450254753610644067720293930353412981675667696376491288408305267591234498386565851104532144818556743169694317876407396664726801827990984719245198783582543281035027626565704063705483455015474938888417552311050955904652615006425565528344161967899340876978165441912324586012624239484784635711518428882963474728319074498690287699637392527561831273758838323971650037592835500870128410533227477955483117701660035165941975587531808255727557681728781256627604803543315364251009906481592818399649592315928358542570900936455200819104613025312978332266669400982598618539295903453438426080802276958640242705500835323940260065018304665104284627311415237613756996713237393955996969010758200335310261468799643263422359818986885085326117182706135984670898253694724022571232844296600226928239039799120810706040657050692360605596679528347243874054127127443648065931825003026169301045125053541057574365757192150272485593211772002387967085910405088319296314547536724630128602977537776550379074377015133173812089341032159850170738825228595461724345816277115427832268642919791815900652794696861188957244694857985831018934641161924682803098634883504054610063793012244204023230242345124153931752730537794026040864310659514776913483551969578605453103967655833227988733710093489760067232155189942584642738006420755033625171823705443987274717158595267250071429875291386274793533183366066818266786868125931458112055951758240520356716504440007111841832811661462503060524716888749339841400049458688038088187254674942843964548345760074378885690094690882013767056492399421771932027250941874293432211734322227026893228557196232569936263822055692130341796735592700669207841220546693004438937870991395905320814634796992058163914787874805577273817177194847395347971823289964837230618811799252961608797303936459500253820698370836941549542962251008923507391038162520358591809130697312459053649565999008790847151165718437958368191760484785037562096788458721648556375379591180363307112692687845967625886277330020592476473174271744873084880888781183450090613269107107812090908014032378415082671416191448281707244602954908063083970970385292039581859950299736702318946371018011750961054457444530386131227671623544159221185753792510306438918141196446184538575669204423025317317873730380802133923433201190148948435950532607440274065393388800918193856502798943704360124579627234614216207867150377176458298183231730170824230158516246857853424193415632474004373425246436461500960813399568577964767048852340665792134981728068641517832340862285408851171798459041837707799264755503739346291172088609893391492546392012068517774920600897807027435539537592806080333106911811298821545091159212507811804075410077640689957160488734882067385143231999596769920352417667503634618353435722133388767561527613135455922475180264906090660446961625442366645024010416125431537880943073415150258265213549575955873526518686962774252280245952208439618861413625747540365660792868905139574266532212253986549353457126616521062178828724486033045861790618620120129907768103902377431061236361158832764811983524941231451741745617035763572146220079494172045371389909691052932672977198160837308662528206811348736330358418595934609487506956921984859774071532448688788436156873636017708600928666957002359175492941020388288465766127920424164211524146110077665854406609275487495798715046757813951167719537927772241632699916016343350527806062518512167158966571451107811163667137741820928165122251693471926622031072010643641582662858182499027640538634284875162992754958137583290691436985192342095604323334160327427787718271892662129579795668266298322298019730181139158096799602889985970445403725296480915053784363144458311719666490656792531737061950669472810373640100894061762717347401278096269973431504072101697748944258790039126551122805944277220272935851644506098621228741207745820419335210084476376116676991060799973389060832483397360857487585047437053441020408244987467066635199562163702802554092045082110440753719719404882914519084304142716299940207846894839073398188457238069786707634810820515214231070896306950118301465058188280076329489886955647772425027132618263624686565565564218394826563979961472963059732017011578960377461989552084687456989768700239222054862431677477093780246768997884734553875813503689754774121140746594170179272845268855935846602688341338810087430917814561998996128645780980741709034617847759347529403982241662182935060275173300535861632451864987434885554632186576982065450569949848959860124685177362034796530090552922837378666495034492145124441458247502033234127964375692880999334142530969927876843483564297531432696676951096190782492976396216392081137287881613691552494488253554864407004208833487163375119778182018427685861871527641863972873051540128047264596901956814456677512957468822358392204200266529558043275830939168803615962699114165452768901198141259270925116920689607820442634326880559270306313176374938422080355336485494579164388421920642677071355234727190227426213545379725951581471334628759127770365372791122834096373259981454254387729751578982681896186584059270494017305089111060959782597623780534673951872798182530365818374950570296985664918294930792924753077544727656037883076321350869053899707292476545442220810981443197798641477177467571566173190392868647530409556600337679495184489610455610853817393819401688020667807098413036994322162325579311864263146739597259494243323933669229713141322774880292260615136500909468310538516668538540659491844898593776552709616686300963222979379588600355967666413769745823537896581438524308486427925088788403333564749488299641995985781813702229670433619339139948638474799467249631126163467111418828999195822715672609474210663950367369533604816094296119307175125258363627438809006731652595918186741219340483378305341048410037232072394607012664948533007091071606572024465562582485095180535081038908160132190426984474637898847712475633397057001310094013437258104784058202419187101045841220042710290015129073335084823417387940552205703285431860665008315813938468085699710760034390264119080238805981266204180809633283838380482721123250982525950314147650912838148631595412957420126313578548614517176416994014960858025661286277621341432987332894310706563660025191322837560550840235950734325822631486324302428036838598717552573098871633426034309436842524809939738155653693362509524686017198520795457292650141889979577769969071350495693670309394201102687614922659511888843616670038057151407453843842951273707850391784860462442848540855551286847150712571965288639025242691663020115132301286515230024841009869332064088265319436588137063181561449588615391359899853860574675262610915074842337380917710161629596553365821832211259795169300823927876735394095428319001999603080837813105307964604387669399670718011867420603621501625988015106279801725345008314936718189181191451632885504340656860894844014526252219985395849766945744639715686008452872142872094798742777609153332696781375477476100188551507638647228878874681242336976457656794322237143016258580851469259031250844045526956461459254217795685621920129806654809795787731788929934557672747223297140149511493207202586814175895986255194395891729737593599511653767347655832410034422884707473544877295207133854408681386296203798412781520811886295852498441895143987754952871668024637217216419354716763350580528569695278020624730674076574043986971816220249527062095494831398455333170424624257604689809463422833769755842418806987062114195340170991921318114569340545193264843481703133330535444008762118783452056115037898008070379283049740267282913156671853068434111074577353954406510003939855568136729463837278684275847892665200862169298698314292032250952794044553058988795872015698701086603007593014833296337656765816150187664109630451429398128765394505639800595133424054774122919825913097366423466847705879781549968540234492106100380045031591954343793420130447518591915711804974695008312372211697741979142677068212410740017714056056591729699731138373895942085875359017592395261702707246221017970371787030074866056700779482388677375398824943773767799240256172139955933851088599933511034712219768825110529833640065932961851913690850923235927488842804399763060141144303728766555634836134383139655985084507570036079565702058274117155496939138778387557366165677111795264230626080214786310122412764376526019761802217462904058346064988305956638943031844399288496274417321780819256754232104711542746360524365144885011658106127940729367343621203542746980051996588194644979381188488159725290249456238361309656112599068924694970334025942557453346591330494095676559379793584467904589707972705688821622390861728317426970311481022039917175090833622401122899277881422535851732459915876333454481753391878590639132400844235190362667834907849219151128730914311039952109207081134339223818093661937645987717183411840187270930885957440641439905518799585764295072093392963655217749945199342273929145122166916975494852740202380292747370887070533464509101542848762262980956816100253164579048982087450940022163342366610643727314251630500489129689417503098589461446784354496387406990489725342126235957635408965810000695240021271970722532234635677647472939568129305625262792071888726816788755656282528280761483797244906238803283577398552896854471208985224091665183981623646936650565106750558063939999893838145231919141336422145452491112185880861837175364560033332477783143743487101005272871810783218654566715677211478360111758639673795487416209437357844881988203809544503340293913443462767978419654503306692353431002560997445098534302510067407641817699316228638657156997444959322049250711925307367357197614840381492488781672503894567371141418000908804206137476276618900113505145055020010321815224836648126174666944945512025620961151136019474809657390173804008731278761833493068387482467018304904539428922040365205819989721593498902988618075489495198182232539326122096361460191408079153801065479595844883060778809402536466452651842156872829139334381341994374583895398789718803327893847480039945085286100246545946371808274302317387797344253378840580180062036885445333950141831628929556508811360124135128147749376576976742535280576042010918198928900869268256208875277234653016961111031402778931312091686824996498635491343530524222728377854273996764345434236190401235162969037718730973496459441324626278464533723054766231309083425154773232682307347440593918033816219702005456413048935413246314201232387471953970192809259618917714520465285261816549831395303620733377006497905957157488461689996781969700548727583327065773976835990306794276725416392139862924868186648380167776589921519908155328889918099461827591868353709345073634092028210048884719223127052544303058536734859708860787849601042087705625802769835304060142961154235071467222099155165527280145203143219089078729105864190450948885564756689122459740719993577533115874703709422284084121773673687660135735919542443772640510739472396934388902700054967289653993124151454579904968021244088264586118961053968783750410724636488800668585648092302949562882933619639461303809018928966014252640549544142349500099036524948662384072411869406523300440382926189352570680558234300797018847713600304898903091436016103246221023031255285823562760497892485570433361994521553282312051196406173623594647979416587815183838787689728915875774291001806326317933064136322820056844479562942375430391039568836486790946029617538493341194216106795085230211069025552635637527746746849253564897039857033142021545383884800142554139518436702477136771328775473223452962948172555511208476009205786816428235560127312510686058686925397085042295104112908277138699537712538720869970490461515598025444255270097715648881384980912984807394425967800168291301906154952357579970298197641416143963385228996318886479249097459043021104174882595505701982919368387205397138098103705800487544856029028488052224906414043659736632005716763786462263104171981608284516021342495845553033507635905877693074673479753155165942990317711192692695050676354117457042114808802648249314143103140886846733950878945904127942072571444893908633660517442180130936795837275402465885454074521951019814621298198473617616217108317105210124827796477865180510168379018889747079062378649499381334691604861549225217551069396992220527562367915430925917173382209716906165539369728250965036481672409429505276307670644484232418779752675062214115906625029428887617383979429788365855017172499554704930133865015678303312233300822548857301401816974608649396452809620366498839439239736214670849210085090591103815236770554486165457019702437103680050897921633052089171632369451065172799612717576782177993263866741942542628223905412416192094577916919755925893088446287612415552437466837698301023556000402856900977547959964268023636631682617719496307201967165195589342129882112349289071304093397113695221223235822739857663579055937007920892949415960831257249601965354430784881576600010276686108332663608109094928026230642820696602272702379810938175484542477833177481865750122785195940813957149721768810433793465510530609790615751432650590275433599473463147411419101459987098874674745699578270370244126783449778671355813814069253539437429029505038582720430706502358428730333938546482685395033182951973122131568753987765738722388707298760450059241048784029105163632486220971153702510548673598166783676101977312787791701993746113540155867772673382454848109518201938453501776774723119756374079211955437925863362975944867543252155016374570680198999291325567928834602715901475958678270930764987982367592320622070277674762967030911767963725251949607495866383575666487870128669142886117998099419223458158329817328489171225260476683404106730302086718672853076348705709507844213695631740983569201314691001137591808562705780232859519032012860587586337108980918064503219298266000717271127986766503565353632836541239497015275283072505938555681889141582059152769454597352853661228088771584051645504833166826596653737519110310739266557170575713534617401631866264299859748775451923901567594814475660448063424971478261441547657435563150970807464615191284224459880358948637771026066010924144901091838555857818522291632809636843913329808453053645986333430737079459002030765639367127641371596754637467914573282147135037722646485213199277349636133165247189213863823575082162564237724117945823354707619506255474242471537247448357558288589138231212322833996340012236726292480993681808369519882086491025386106416439544375612769808371169356359850688667169104368014631238015007133690739523074123630926344938174926262804547070878760426408255340730058673381079322018477548496030305047516407428944059597648097523654597233335066048995468604886158120282058723893487726812269360329996994516417524068685771836901518819047670348957759429386288669557280215960648231998523968041552376483372425366993851424576401040954098969715224072133410165056130624135798505688079448507273194104812144569933792994183948825702836128815733178022422463728203354561642921191977017463211773379510975283946105520243554444041813386155936620399269956867828791006347815263158842374811771850379218333912904638449764314727400421893629744989032203651698230149023057296676023132894011695843264017603458914245170891653197186578533527627796322745941038026570986906739122363444506572992939527845343214351162718154826614339335245025374888907007010540783583325277032629831396452560598110051630243439295950598306007418474222235120386264386633769586959725738878708337314828400185108737903176125965786053325074891153580373777206594905126266425100164485454734391808506174472418486154051708638198795469684327387759691452147945735574000531387371409040345053409850363823232631017982355697294145743205285833109952732259419006640616691879706221600027872205839185968243711664913620652950074658566096575673060200280042047158198474044738026667148795363024572189571280637160815553644128456395458176945253769618347490878998872734026012213101478821138437091449785433332518635182003130230090185893292779597929994375897533481437063161083591091277258499041466755302151435106174152751727058436009746431981888934363818404781339801058343236582795745240615841005237059077002431754784056899514839995626403352152643300301918739868875981349128810023593425522920062003616548239861405169012326752388865792242393379237597532373116492790359101368499669231490546928704900418132950875049277185325016899311403609371206604294079150596301095851249755254344860843522298179317081250391669124179727583601557597715091829761756421486233604255170621903356575525888621335591925261459802870006796189523003404831034394290560480760787800618208924280821227771226519191765553547167090566035589042643721481852833728296471420168580173473273552256205680783169737557769951157558319654708209337855881874462086512514207864918236643383083186375901077082718978357162265484841780774338296256386624068834107894015512587631077055319337451242682891354219269854733396979311314160994915760587789193450908289403077597877508462634787371086863147176762143648058286836432441949811046020528795558287376466952615258225006062496716683932647256423671236620093266453921562992889155011349901146357578517980367338418832302169215258958916287874573115837925402567760814936900453993277704072766962040540997889869935734491058628196553162602229049493046404969800713594226031407225950993024691258799420277669515886584154611298795367644246628328306855456395401977315064627200232568743349492351588626123482234112565748753725767022217894181309949797181932366212959633987928641016735887537964804482862949579657205779977057797497679076005370538119491401440843578296128244537541431587708625060346206859770009360826509158496903135731600512866576246094035017829701742374652388761894208179771012167492593756063854616791726944860929746770836419383315518355330234708452978666022863261574856370757487801205865480885741648284411625040554257104065770680837120111660714578494348462495442220798847333724358590693733530846517978303479587913054507738600167682837514434850908222276212915371243036463739646454626963171699136509419417983238256191230000916324601482799009369315364851331594285119664002597257067167934410513357191820321056597099932724398029548942205527719785967938808424322693305197192513326295110343190706732762470614055825211879974227820046860087291461474678200413283508075172900454305284471946514751592100392612134144939258565651665661175124737848215343094477271123646657453827650770172675339937346494001137123994981696086711171200295991455905842591111898405591458637611351988020792394956916644715933999826444579097430480057917746158192738234065430126841732764969995571782376699598610649787984185946027346164909596053092805851135352985037525258165686161323649538680659234626367168313422457172101662216347027739650808708062306421921213316803790753450085698533501220457984412300159332273580289390008175850375265292633951864208063369479031936603315965193715950409067056993334145988686585853586351892341938416224250610298208091581004278808056303715263716783062467291445837322590530129055500609318293772643575143263754349044527315434837350926513683307519439792540262940693221709653109158260767026618927194313124359774782620076191578479825672208950294579425504722547989715890141169055054529493775098280842350467308328810734677555390665331747760760386998502449523928079347556775636973529370668847015544635313049630768066409524507713208020545348758127788587779824006682837019537879244227621794618694650923012457541069636195488851907554632993138329719037528590149357698864858767326362460298927795695592916119393063457266444753070027554897139713011890486361088408163096389458883171641783534895730084250958171384809924413775781805776924382291033391498087100327884250773369684363638820687356116347927299756298475377591292161333235011181342212363672312263366472167871123982031318892726906090376078569295498114244908076672530149024496835408614029391760331093262666389379526621965896467601744514419914019806499655830924829312449836143239160280475196174041299762418532852200098836633059370361505151940881322797781463197075195644910048289369041841443626846206653253886001445912853373357713270130517051362131421148417223441425879236427950454973433225309345290466479661277070829765110915295602698515893164966504525061421690027032428540500086664503446179639238121527643288315023517739997987149689917406046516910279706430767608060403174176394487089807068006197354014983933798995245505532345452740002955896385292711045997922472835881213854127452976365986082465536506855688218611069247045732549034593038012432280477654146032177240237373277650497605631168101575980118804402479844899175114464371434873380045451721647445035657800317061982482066706896464550360722821088444176759534646402668773184696070337373234756873371851124550403119424152477142573380357872975341082475640667475314834796887785574435109521365152120075167604566447978705198433627106013027200815978542398536640801950908954638054810128131865588901737214067061512720625055893445138457438272851188793474647930183737958429260457057206988830953479652983648229464658241656591199707941556179464896868733459006006118829409368029486323579973103593040491873514111793654788473108535545226492474639671453144560283541727798300530872461836630108599427712528352942847398399242872938750430813002243152273768053195544351491059985839184372467296230404855387091273958541659930831225786750545434273672494475847648103038474931625662613613884109625881021080565382708198994194523452760641424469530455534940231388910068817458785006223239069796517472942284420305338399520251938556057911043782369000612891817667934050726641559931099558286565868061422319903819159956714945755772336845630387350779525735884378345658007864215679595678967279747099838237742663775211263996743074825505773370924533784867518706874353391008026835679404635456429045419883644394429182121704332526154577190029410073909567780553140774826767211052900446810205330058442812099632939501881370140486372921343499847669706142505227319910598544823768832739867657488272102901149756014931199462836037977401246944604940302971321877813939226629248226322259307022820631958619790859743701627899979516837292298047033566702390156612028090386161665956168219022904178958734369268587609140675465178641563388807872202916751649363504714727443735112560763356901777808907591964248427753718723982047876671766444544813290537685699719253514054265330643545089300688278478831383799968301198606620542263357160658201288190803789167826584433350151503990805809724436922909714747921318181784811778268207292485372728912148959954142753297822715646037612890753847851242469059079574470000206425869826063908939028372240803063411767241189663442746098965245726854278645144133843254018142722339729944706189640547926438895242098758059785222750974378238931592390604302400724084821634859467472779700671384675912355079180871054391411394121790407825174070229995097081023764783622936233071555391520422355384144939469557324582408141142156220745158973970143628224349772834115556129830509860526308255816439316410761578807159571597795175948816419015581040633982041420083402477699642033811697922445259030044238685091557404216855598102917693591262457165169996676176270336519820522443955327178603104103336020034695552474390083204746777028679097400417523487743407746449773909726100832101660735785946965210808146434867935102672521966295269045147408686168878051940714759752131676765962815275343688983200757727985338585329905331047016935943203333377056045091273736254067388620865157913188664236594011747057289474673679444481974177821475950690964376223421461758455340563822380760963883874911200896786235688903379460892645842048433911388412989560856113431384109029425503804690811289387546718517057591299220638287600574508428227332625263884755235130124549607903387468085724987541445604467709571369931714908429954091871024327335915429901661593347812426428692886424443487399736321188606121669147332769373314053294494201480145225964148598830629790833688868744199356128907313484449912875376567746719337567784473485781537614715646373375015188589085256372234014931659712696529291238756022390378218743162151897401122861682011651413834173082426836198100015950736867726765250638700494679279827860274868265424529841147469453398727196367792083862095868228208962296031104204730475433350480708923384928325104076441776672685564125264828391859387660312271179099648976215989765341580067288581643805301880236187901660627703323049648426217274139023667298670533326531582829739569045681605094167227855391840964334051769201451279336645569581694668418488975187358446371041940935909881597230715064322781187169288367869783852537074352186140329383652648681665097290887186037365049544891114092638209336313180172013940560376433600653000999262778217821889323291515970396398053744251026844002435114408690009289664348722916846256847823975616361570329648440503592638682455621039729371776403795224199483807748265732348479403616597943894763596416357682949787980790902419872985336711982688404751458867089988078839582435590443276760206286407403212321647775339475476625915889436857507785177793451771097524352124164710938011118969623605409125848224363353217825391858981444996651123296450726463200279044665129286264354294299184525240607171686906832475069186144613481014801991942674572625152794291790252106837463977467697289850555089132424450988474292537834648306283626910220284505257175666193667450696558698365519061668725133447913718087229940104611465586248375841030262961919629334800991737163775186030693106814916105212383696617968825511011498350240462095683020934074356054396882047857888735706082473834686704028907838239278605203879176645235265628906659572407725857647489002042321631886136168024788823020692708720369879636086196161268368990376696862089521436330309738924336085872379625179771939423484377823532681366717226610461252652026411827540803626910004107762363617557697385734568720896116629487446047817529412357837454734725911199378431329481711597236198356934428256981759661350641142258230056569496060347900588590802077936106140712051535459840763757729554946532244735617315475444603017997425945695963680176586081845504284228935755043215438574542638942079942310161816593667831828366414138725034008319104601940528929217511897424498178625935080694990409698521975953716842312713654356807502665424578061267123248080283045649252000968399705820205779150401384742524215794820660186745038938341299688583241347935055455804082204591995888111076387810112347392042184062984948306346796667637219751814551708466790772158150725879042721606878377927133569704761935562151117347408883472675670954414621193515291706996828801166448679096334271244949014931214817849673471819216587006167830049467802532541253689116400190105509678733202878682468348417580858741614766386095881033474019768210945016506270142269175494176478156418504948701345240353419622955515446904171205399690181694841997235839760646163905810590452823576971000106630535034674046281414919663099460774337649368149694623214694249860493506696760531773957858028155116914685531556974111818258760493815861092776928178180749461259341400117853018831479752441965724586438928967949194395391240953820363206571247763934683889239458334882501042532024772041565618918008486294526107502987462241925063257371779460985840179218916978526206141710914560626116768991466584288747956541023870093771236264316658930518922480466737515580396975736376173429449860871096463098758128038077768578729121841405417212578256327502772611482300085314700109194894812556598794841006386498497764075124853225798395212689763890969389787507526486725243917006899543584178145952870834195146209956803289468165415399504729668934442414292598888207026508949912783636943017218641469982455947541909107528269111366059978029714650223642739206309174633933468864584690037252692552587218726959367783020024071071141685799850945876603077415060558707453396799025917680269166999763141611210812684366977205552066314106092898712974529658193292503407012426419600658929125137241905219638465195912150768030587662397676583921644352988813890485753984824109963703839804682704540747603635631915083630898864236692543113548225564665421839551163299147984703646668591644612485334424735031784696461654811493710672960159501002758837713038440698995869123203420559877343632861793560348573788529358903589238158107997922320899231186488549115430573302508689507206280332240125629925778243019177689705135834334737210184273390105290574854842211835427803772567660904579498584124800334805286474915440055939772697784556416005143073165333317733979577590584946465245074484137164948720280341139768709310682532380931767036750360561645526466548143515486643384043719521252361802393043718095389504778711167516680611510343465001063436585139742060128002935771325780173536706015298404775574644496830641630351157122401596047536925843577770131321501459822243057925473344618704593291181676170387154393145235145849552617806030226254786919908763851392472406010875950583490010153909620519961874008000944864985973711371850900826431502870034757933997482813807525842749955211929953846177791994333091681509267173032819211341763290454923038439323720117742894805173242814593243750576954253026959455837740822267532871171355826662395025690290118115761337608592098360731510994500951397962999124616947532110106913186091429308281760458670786510629313128812587931222538172222007103411910369804469530387464747355523073822051712923133145975919705622769007762893454435505915662258238513551561157161299838375707617038304774062096675392186759447014831407968614819868628868714543693640261162219637030473234225233573580750067928933127460277300936636831887014505952970264671286343023020053365708336616113803465223843581365843106177645295503553265813610556716604360511768115667643731473178121733104869528733388810128151487393727881939551940217305049455668542657181293924774205637058462166890741417909493855892079261887153127249087075506039000055738089187970615404951042492795159836477020796872904267245882088609100641249986205570530414093154572691880708240554443343326132208795276453519521684879038094715364939500188397691749943742245848675914375202934409417985030519258145859148437038036961088112501640793442448838803125802822935677691645603605505827814283701382899671120858685369599783599171813488593936142159113258196039406725768077439711775556339176368923151024650135618160869063369613454131280105853249308282271733077008693495539681121159235273110917007507163303608137244559768569196151414609104326860718561604406474888553491810060853983804626479290168187383396312965083289584810257869659168538941479018999797823168857351752871476658603156772849784676797868518194821153283148075636255367778344868605608450425359408495479525046746714190970214080848764856514057702367488641935939708771127763079546786613752185364945370708827816216399028281491253607921845108571470686660141416871219967836876931163616248590421408394370373209975955241897672998100415545323298404355523294045965921830707277566788891241279022344255500201861477428411147014825618308679359379529990220058744786977166777473634476359075654513097818726899009891904809398543871934192507046893251943529402462486397493950068138510063005335184552289140499023767458144878009845265584928959431875210900117000527835647806943892574054248756164091277605998271837046990578800653369681789717730248583702069411144363666262518687865603006867901423502057278931862437858440645690063500229960421710742608749107184625007593699276083551920063215970808446564995084150366598148130027557626930127461984895695157693875270075397591657316586750418982815504532779335737274822895205985635624349476725871397161055572952004646117182699481408885990332597559536885606873918426609059756713979813964524756609370736321359237823345139090555497282096177993831399889716405984782826772309252756624129442336425468764049706873924494034157001405800680164138382532997058474736506936377693441033830548658442674525074517602000578075676624480167100322620564377209427352318327078551788007862751814115126687472166433289612169081389469994959675078134103162217156538270318917373164968357848696790916651277021093958735882592333941435463687340668627729733246345323840354822842124371463991588085240719719371287158936165177954545323240024342946998140318715792085749894116967549951854109924915203656209423100008562907407534959203406471004374639137473365052207452109906816994525559742552456124258494615189083410501436193324030438825220617547686612886045660573583703072914650535583569476239930868608894694444360306105731065172000873340959083177499040639877903805954149771346347915581068732458460154540598706335390686953843777419206733831128241678159691167875989126688129408142005090851342149520105997719699360412115033382363076747458553431326196486958024965087560520905698296788232939563710130247343748426093386441408658035283616464356683667566349022567960688286188999719050611739459221874730131828182075055555269116534201791690072910128535139129089840898343940974071220345009343628524483379108811468114919119782122431449834591426641113130219625983895146396377973146209668203963779602740718953984098707877444058699383226849266469599195558782273637223170224694774991256436258295445490971829537133617163110580197702789310998069660209324714143239235763164840308418834180939123442293579969748874127105932482766025037042003926614237915777826991630929448487644867902429008274045176272265732034449879224344993398459419046211266374463671377610685754382109496398772437553014475438397369339981955871217508236243167913983874323736467412630307485942209158660128803500488086599214117420487253918054391095601350515750063089036499603949021058421173563071489950138683916604015936461778564226453582150495810909205402616882243373115640011268731397042542106650667694859695510503806630777954966799770020584754549175872637036175415476566790755127987511976291426119566606787049563146970807159756081293060330823137634306823148669451209104779428517550063521519238061985618924431738867878119663593772409756537030359006339800304095221065084059257478485416061942746731095316406618013993310389674545052391888237464226196739287697549339093369667090549604725565352910787777885419959152420721292405744581821755291319055398422213665726286425997279726495095602383386875035691938841200514606285706283695195091442301446181163793923829596772250877642613505864066754242996268714895189927700745745946220608801961740291142418307678983393574082237235086196044352151974049181295948017150748106737592046989929155277436169831061535412246466915730059652614945909949555383954851385627170275410269203888581962021571433193662927346149828145698786341421022499507089965785632504088947618438585526682667538543341169138873624963265084805231337708065751945948063701787372947433871420526567586063281531759772560536974969337773405235230099479364655917628515158376541444696998568606282322448772481649229936849654613080115135982412584954355602079260044135638809161720655896100497375198337261587921681797972588952086630599392926765180640660173749708825114944654265114224514337242298734543540036183662450050043978266203786627070989395712556125496626650640442420676470825801854613229597771999477146079018568597311791651293126610667639620861671077247328268327520766931707075072783371668368387776497658651752937185419838608191724789427306344155589652107753735162539984401299954512395444071799537947519301058909595432176969356471949066702172761389899692805990463027434174066415540148585336701685026113796002842393579986350862879084044810531793286562652409091051662424875392879290886823244755725107866612672026633112752687836039354426381775395231888071197449378018705586782811329539351672158750635913631820866248208158298047206454990037783108231439586834748365253994918345240918000150350149688601996089437638917143422367045558921500083552377255949627739558059395193689736979435716670770873189008577450798460710895959792705999082453719909126135618874517417160795643660683403018837643920358138680802463535009765457891059204567659906147158502605547806989310640836566081568024386503388727682920833398553565262952433444199268515542493674498547888458698929168033123645415502701970920279857026124079654837344067929270517865815454119991048081028823714324686959430048702680743203628368930603259613166255274480835013626395708769852466807021827942894611300087488695050757059591945042782509436080330430718890652046126348740164410521599684129822123026903550219088024970334983506317598340934651640591918377022565792360691746482222827006125248112435118160028178497976411165436587685133492540978554292134107790568906125504601085344651477565215275239667124843939671732840457859171130218790466637751206752992012389256643624471791581272379562684858328955294185593210203659404838910186806435191047927869460883671655406378868792663487765361602810565991270183660618994579827444188016875184837820024188650116232352013053762903630387323446953100664186367059731323730288282517031768490948513498118617482422533515872309727107660934406225591631654024291869324627854182322786260133558477405411967602909603799600469911835752831715608780759868158371132134573782367085686503682088674053782536968651390521716782959180110216267885628609568595249179192474249370793079421197225684231096505585158682229781685973628509344199858631583896409684748862233071508379840121921607202434374392989383017206262959338970066581550620040460154859569097734964636907475639427399385315694708909288634867942362374248186037928704989734681557844127020850915825188138851419828875135451639050119653417203539201623659269399351607700489341668411017539007338633099955292632592170180310066388958386027930829696532811869822228995189494171512094334702926175305405829601919358453984812778626252042643621467165675367067570521114551508730364617728483726248645728874005582673168239542683796259955651210917142564755106270495333875910520299351674397126041419202919718712510342678966424584324462855961646430107997348033357753483033295709191019833932873279476262851699823947195639281316108238729368526829644876062959468632849936854150593026205486145082656408659285826030429975202918917066317200143853767744428904439017803731439964229764634173351429703965421397732505596113603162384957120819629709576834802838573308425943569186003073373960788090819720964596723012514417361687497771655038727564848149502262764180023948913681440238409497385543649183772771907179865606823349370178408735880036925250662776228222800080715522696486165104273065092585398894728838492586438933555050229152069708003866373235296547740685631702234782657032468344625207036403417677712907650792458685690562098676987013562451711748051634559480133172068957501978852664411534191006891845388191965332289514926157184483937576204292149641834021407583759084357700748752946843217833722007829228992965370134450793536143590768850461068471502243706673017427077243261258679181255308895960501761711468372261127578922158460560597967826663218779679972887479855667078959054086845993081122786149037280708034599108107963407909504991038653998259550145881582574038069653334537385779876374039830743947189216251195965482505881179659225044071732915590728039781483119376211090007606236932164351306053714487429422829305230918985914880384392479976937044971998542521720115957096596235389302039707068973443115592989522219342389002598191168788337561898561862773979494016253754673478880243633274654739317443884750163961863017514809230519074445824399323358062414896935947920719712747623569251404263672432421622139791324344267158950408763640391848982159953695274540329559824180021077321822244481216872064385422834966250172274960885503596041161189092671252145087872801747468883138880093662365424505276524843104599603229596118575514300942414658642132102147489847633657846636794541854904414354797592426747599158040845123807283634044605511416855888975353942599591993228472631881108816152438190474873880712949468228000408540192966916218600661189681775034286336059352522752050258800233022910201823937805725536476316598401798645579835130450877399557904355217153627639141852794306072561488576829136545514172942070738573459480132696615336958214114441405746666611256139516460058372906413714628794000074502186058716349522278418339214260398846014620712604473473832936231813011869428060258551864108339390819436667693662899270773520129531225821958311261111215316153321477235668225611431179067569840714686810807711222597733438587629516573899032491014783064350322090967882740544571484754566694530805795836719063205566517194260230892457993277673120365588525909207827001955951683090511645518554353201606853520082846497341439766352628343685570854009493181481743543372469954760285834092693076908679490474147167397647169911024451909040597620239676649377675566991482344112953301951118018554362070332530985351196962294409113256019954921421896650055070488483717577729145564534289490466765580451554293835603007391533862206142518173482734943384789391917212410449396985462981417570289127541751000935945091917250193950978737811776720066353232799010642362421448273873084952727505853024516296968692315754178575581548074284716579648671854929465403864018200259274668030787970574467964201240123769778839126939717837516762548519476048016633446697213549830626347110002911137773017922076589968637326243291873222059296720725334581817084529452892367215608972242597857927266673414884352317104128841906861352270884911738844142484609964080111632973459997002714434470761886549770247040820936300246628540880122077090754587262862181084059430098422332693735534720439195579321028075660485463896754829407937298361159994703373494174354617558226642847906457591808863639756024309334034127567329084425990289894964593031265391097306973923213051318880038864722245439977693206612044149722531745310855331945363316545650590911387200248865463050542873992454172977633838629855101319267184578485807273904877317303479565005410029596470033708066598077887457987200260139496203557696193222980966889445629150965799161796621123066241225002306959378452162682853569408687641296986749287493012333394476282538688293019242031385882679514846667007468237804177382187830139531118125639099316504334627536204080612217585668872490578241050471594294653186344398048223963224547097042166088493914129527772869093783991653598704670083238580333632615570550202740388672100607070482268210519039346071223037912535232998585504402725429442579980700591776419792996536078256277841764918231691011116776807169804221751883059460002194876690909993082101069220406312131696885719417209317955137624497070559999557749678229037172099230683743075459453640776691948510650937828033965513115557404020186032180564216550590876466809502561106795239991947421763257285694925914568759524219356635164395895138948046526161273921730070256748279687603177695749116331557239837948616330553016924987755970735416971905731344166246161766332325070882557005517156814331146312781733266341896118165776891370691719828133933725362620597491206580713634604725588215005563841677976350608064422062866356492074447894179362571943744353220783973930031347839144429840079665023268655350009415916557142356970820217370430969837179901568115318982154440545099319206879038562990657016454559212795710899160084485648178359701722783579125615955832687615709467893086835274696670901781451681206960210406256519729165637830005149097265749615727185249083591866383388928374773929519939063306106109597088642588823348460715654422154781534504448071445058950010154950608516911353948944671027053611432581308288689358856565085902043885722275408949740827359500586253453801335084171363895274167128979611500808729210597443957658129938912379890979971389933960087343086525721554556431686912492024841907520181287422430794372547496841309144533715365741614757985434977632656296333081095069071531578101481158907544554517018902905269773174726391374473886072767590624575455902851190512392715382500111386168800463365289399594678673273784625755449059136090752869298873550387313256041644320608383231533044184800699360616286689954893815754453080679497376398365700645484963408507464619826114764585243112094227119451199703245221511257630110401738558129770194078481587634575176189174911633237707715297706691858778147176771391986422679347898563690417457093266881869213827873373649801321825480813747913452885222529921439904808490575816960467153778784605366479759131637348508512956051795614418143393374730146640454934366130096890586556696719754533354009904058999138014283170986397771814179933734462420663143268440555575948332615900328724536423888012267108009111249724217301050120896975924758467959428226212060440132562429829612595481901928590226761408376456691839378411289084512407783436924057674590336321318493819990522244524947061359305439281182667818916435864648205370838227293839513376594699859889638858148368329972736400878259805037173386827874222252519338819989733731767954825904107974371099384389372968175896775406181407348853324230570428711945413451185357053728405712023174954725862947832865543651535913333771043521381013305249008332433564542564224226454084732038949106718668187795404309449104527239616957632584423585299468428637218570858213612827294135240007177506714641656089056758766363727235056016712176162159359129913927027975131197268314103496829679747839434243833766463298931943094636805887709537990203506293799162533195910078209742336126146933650218922137351205160676734632013651844615149829237212137430785674522993187256729344786175009203076775596672880870657467100418897343461675635669571512301428352493022295002401949406872789027373022616913679194716209584751253485920382285615521384325425732568799522295470436070854070754351114857944433113192669985835883767492485984685477860891916145253077033942261612672013422983081129858433986578223860010278303848791347371176515240308792137667430031429538568414676246530787863706447039766847047278253798040060597016225330420112178786377360268498633602495261215783519026421192763989602481526299936819784725289568399633238913166655183795023168150529400928234326007691544189420795080267386235105780620975651566277564490116977138948158496491769961693886340500602092380272584530706695003426022307252298250034834563009377774026923748165312926553838058857843296163285698419985253072585582382918097061037113432711621081069931948130827102773096890550471089454351172856761772956833504689131141902531950567870052313878572850350909402293059643272835729920907397620002703322516509115111095097209846265707562820376944905684478556888013790473790691999077343403217221112085839091138322302147363803042789100747674073522653285626280447361315874641745082733611453428149251545688084757807531391951496886998876520217998834681197837691340218415754586852569073831033108913229727430798087526909787158808847624545556792955183864395832281316267719846959821326693702770272258471409850378443635185961398675791893663084336755548888188805648099926272200480102606483820410668044716378852362452885669162924968844391807349436614790617090060358416683445655478473026933443403428393815318513033044114227132818634774478535032898874718332666783450009074819734159974934122075047573220689697160112574235500752043828513206336787181449104644646701313292930640693907963086599439307525440957165194974136384834540043363881612432508924694048866362063250380850960094533027835551281685931410671210011522270035423318885410815716815327591916692399564465687803044880143889562735900232570792905951836805125264386648531643826300957102979750207472254368199984494716301537144899919465767293018904730392470588974215841479051812280826613471894595295358415510247245498015180622559918382606617433781721803287261087935710376151267479505064635533331952912857393091431194379394079960513843923975010890540618919494003902000854154623097380999512678791924317786830752938783245680229568475646799384287733635258728681645853797573611416288803362274794083842757694810160356688372366686179115097711474812423471828317136112666832920829932605767590724374305352117874132469522845888187465582362016613778160781194390255876593847795505816704424940363207459456482468949308062011370194193302996227383596692183493005715041144507711153823218710452854261306758570450140381793901057474854770525138162907251622334437312527418730496407769494777195088722499497174540785990210256184145847813207966121569048930540987672010502555610751926323911787194328597619963461458024678091476769796270154464393399062798922492755905915332056345996632076578239129537416715731756702777930271388642504795038273711137667353111449911977178050515092489307729106698280902982047500079810555914046714096388682345050927178004390339296537330181597442050778848652626503665229889402394793546843732311345577750504992451780087678352492153870340578386105350146493000633377788112471998573680397184318835858025568844706818982234494586409618330455903151649090604415724554201523142875986314315924738369489936933732747039150776779210435981006258845370339798482497321350468025899838040328225285871765090369070759161395791991716192646920151554029322108840762154053530603696530591569884093165891439300473072848399967343759662347733071665870146562584237078206451766134189224164270729617890191441165420854232997589066190266473147177028867691474056274394512891229005704444007169712545656153298899327818504953744806270958831254352561315497973578099772178772173165737895479488400911341556622273034258932546259736359091253704305750668001169750760590957457693128138022070578089476236598691762562449014985631602911586637551254272369828814353524906334100999399603153407148311667758747595649003843205893170987352701568410365248679955048946435150254783693910928721546760644854759710298954572073212098401008175297861436810463658799902151883975495791830336502578444975634829211626200390884612060622733383060331132216180773209652366343450867868454768581436657524567480020722641294613615967732569987779146780543162623569145449496162505856221531472613011543034085295822393020699950189011220087734797141812000260998085440999593593559726856323120393356600597849756974594025300854903871988559230115640862588215086053578627959693832799701379137082801939031194511881373758854505539549493360264854888123793725422434009656693219996211831092792016416532685853625866542458709015623028861734454386394382815863015715761802508056737933522608502401673542423827449931819874719047511820248607369074831072645479488718053249441622397627701878172283174967290603113781849765141395600575962226796056118538144484129182241755745022736828807477920498770350836164284179087341650199878494915247617968662248481710157134891389959014031497623822819333681642971387479267910426626280753281213956127368830106200087427768603369677310257478654800945022259238374398724338492737643943899282676794458074216047358320006934064987859354117851682363867188493009839532757402727526085886937370939036041631162936899886018620487598047395009020705024832427965988936844334490065003776137888262065227564021308339079029800912753674167154503005771671103132222243812342548815206035965676719191806602455477786792247731721733455118276359666727273426616129934322333299508637702635899247017637310693512252956149528152198223742211527254573100810407914794904879870337313653891119894171697832504324099056977816328956084483951618823497681101076314652778860240009885680106670839939797731373284941743420627238827097273473642317548531330726688858939911370430833030265554277107092962514814269030047597811881111839221031321782726603361818625481196125224809591249509280970704338498236414455475280638870533854055539024690034029658114242307799180603057799134207030354784625393043420646729670543714374625957984753366875390096024692719670543713232539939517288574762974354303178770575357148498866164347218551143819374263978126479757650736615436614531862370729046009337819180832305059566379647518504257307415599690596916675024613613892002468023211027339586464226888034013719349170319387917924192853997343173233414761601889676348854076479544402832093683972677037049845609597036442231758231511119317836224748152505191002660720031350153743889763888444377076599154781800672731496753398327348438795326677106970232285859268494380775228883118275153191660623708600878448533909015464671766980656108382700575371326860581927412037865330979045123423431323549880155468362727309068423899087487199491304323706963075344116066897016704733579907427288751943942482204364977920550350147728450325463871886316439263026396652960304765670659455805272935249056995676249840110999512849219325781905269181401019044695793664887351102412109552675137699028444933563757848712919733770257033561390921336215175552712482151684223676648507725817470917492263802538549849624986699794870205587150722807357002866696548858072846148268523152443694140346434887561987789402624252930840609161425994963437526792154483188918597621775490183089218403437139923981555550237216468856362943329593527426102154208364063179775220035914837353643000381484010887570376743450731901036697608391863297942336688669711800503167466717161330911460823198108918798411281632043597683585622625177562935464235983868998730286654055819975078280130529386451502981010185430316414191352759562045691845897157374377613801966925365614284479169441575701027253716767241945866051726836186511261551726023472302967937007937588686040240335919168043590167910627335195133355757684309783959491334961330883753577350421046394764884349387864475500203754328957631396844001986336553944334344261080248519167189142085212601978814342354881350925773688715287393394342298163548918158615798967448693564495146712782309554756235991110226443703886983320223687860428702897705749402777477612165815426360201378897982136372700536363163288183394932932934648081788524752123029607388355856651411585366779731051611779906310028880634076832619734987772027649331017911004850033202164661498089071826708745506474869525913850682292788058882891338771271774534312548794632806907035771739237001551129838828861712288652986099704210935933352909975582055519631790807459455171678117347121646694455585792746380306196933180906224580264396004157007268212222799919122273634255296677802218470200513096535177387281067259709969728854963007071511410054611259712331899201312721096723390242018092048146609577418308537832853215710672991660967210123724620851783052882132502238567622525169896133926045015477496825466237303707541638679378773419862394231473947007836411104030930230549431286644930930153295611134050039480177423410628451150874149224882898133073515910578271614231172907893506148543456391104651470971173796915676289414835393408075640801306946213168405342576255787991767576459936243505326881776014847631077104429331312521848170752047194843502012650195402471501476423641931431717022975015994300048614016241580642154236654589691422951464842410326897846833482864321164124665859496616782345291858978678313744555354558721036320651417379703843572567134475097670087824804833667538158312037295805770667449222179540158851879629811898971237731097149995017569205120039651242196096475386088693738842150122327226317623658864948240330286563589799317735061463815293151776991924714670759756628634706921521242986108975286139216135237540548766024666770437195303172973529876263134692711286321871588530299278176041236302823019166640414791195207165727048764076643729288465726673773448831090379501801010107725457444120141709417282569958260959406356772087929749010504145801777468698876299259079692279258503008936070754728000881062119787066994679030834324910116005157816902494926166135588785453585795685332177340300675433256954639082573737205885049731205907621759028911005377396528558678978794432862591125116303179389653078652685785662894286866702368170543600144548271353157968592901823512473720422963339732314329081937508583594403361042572418208453814881898777690498507428758153700844186704045451997319844415846417646008111360869583963921863719080076498045995185586163892162087345966274453614002694804172963634831013895283569774758176343019314627554576580239760100184812745013205603083385661789785708494489841207807297548493330271747463857751190905387058323763885252458196114244598301778402972184579266918666495803154513060424389975041161807566533448156634983603026367521778659387381742479338068342261050537295291273690726936742461805835871077260600661372266993831512238241619650631009486326839039152224281939254211819670202326504402925702622448010702416884422289316036124456282048000409589408041548328133635877517775835197770131073109655947701810188692221623461928720563250444409942405579879743153210660904647555126841274424065663572971595419919902516224582606915305189298864186931117447219164620189100388265679141679142356492457468181451673299824473683785556827925578750069598638114546687156868485628544383314190455740879520893648676491333062991096239386241650923604298281253500000423467880077554723574720316751887608993700736661395353858031976148674979059878078190802945697619013173430827881226736814385155951031721534804008282622047751181038002806886701053273778975611111419907607459415409177536480978814254946147587906033018776863504701472140237582221555980491587345815441852123988600963093313033653016203965551312653062297929338659234692566295299580376708402346416553156810118878952034861811681623874835797266529839259098849286534864357868438042464102430987334642921215329577172249424081615293696742078865863197890971512334225833833641595353988777534128059457866210924523134210623883359230932482536055187714365648200981900548618384738222495102652958425474791072121269729807105241449735361057051567029459387185195760359720619271821233678581015284225242251442120175605950274984066910468759670731228438751763863909762702390896329875985160547676191518885610145733511644764665782138727521601620484334284907169780098613005091704666533667130457284758094568184140510412811563924853752440283148150971780151661575938135725038225988725593709277057098836897343969927534820929309650336601981814330174069505264674241031780602832334749214336914890320168488435389436496548920416242599984834341251124602746631629565250313828213992453184529058444959437974590451969970413242495698247029825567840829077622114256776984289527402905377873097020591926202614328925203579407289124812142233930177926033533774562637318909030875012081947771675662082419961132314545288531274828060444382922712273284406060111221945989252101804959590470645806335341376188720806901652273246091444141786640982921856348961051060527395833236738913115488938323576731058020932301063948449263815988220030996871548557636468646045337962183882377699222976320696530333436899956837771696099939586622493017142130885323512959529360578721006515156591264025363383502322919901124023123715410528894865359036199445172500409189242714412964698837514502732827895848638855908629311047599667938237037375061892673545743943544588627080578605877751534847028377661406330555723606710261002281473117794520379072449040236026227724678278874945345880358917146948041847902381899017612987561272141951152325146043021733474915913151744884454011633668897124052686517131120510916143896235817368074775801900908953079652306376635679532173770781071327206811148634756409594071865741363936788950941832302129194784471982494833927293112336644849124034489066340266761379645739668359073195262132972353038553863715968876222957526890877334864372822986965896265157855890406583112519949645005924471537586189833122598869798879961277217622029434218864506691183880787131377793662967809944655937976063363313323940388015398419964478881397733351822910594311717878275116536391406062074394531917318826653037977479545963029158160971802111507232828226967020386134479620511943412577051984882400764409825078374873055983631563519529025206315226863958777132747165915854248538561688669430309328366426303253291766848409294864475752155058158497190074465982772760790010990234932321945744069888906801257407631780972489758286424525920088869458938094408396056216008795788902333529868154287590327575380873741161014016495518573197223924805826626797150116428421980361925893722329068317940653436920093255324019105311414266508570922855809821370527812434290053458853194422366475971806173869060385053091878773783505969201488498293784111681051509756616533269069123678454200627022727276067479111972774011181536890794014513059526850359845615335747422306182427964234288565898357337743135912191520695591118124960133143408701671330112294037212056294924536678500211465605009226598810975001824496589462151300910735058477263493827544815995969703479611086021962472252006357610254200502668430941834585197207925494686954697523193522216902977023631376693732815754962615857370384384801520979107035725165549679208232241364520701928499639056013604874068074396224608069023672612829678546667208190011808073952734183555399881083938612100673616139972389068745515436247353967267586608239504590019614962349725288845852986207005646685322374517050399779700990016745778423456710836020869662194578724957414929644334845262905066283366946543963635366433578183955092909507510717827445415758326306483936012359524423187559124038187425958423723733180021044997956639602551988047885262237019770634421716756478871946027679458863039424561149637539884166339051402965679420550253565286646502513461523848443974605201487313229950520062638207454160538106680727021282454036405327127151955373618642108719247073749459381797738138109764655532691891389936564048414497584552510781279134832731043478161457252104867207086159211501213757840097040473737762562038414758512640286878048362323836900907004185652295823182382290194688471990735075693712462813397872228159172411483370994787172141605931178627559216914037720275224677814297666309513696384831532586167914172692927825592512531360955330095090668530472296125669497174011794328727462348389864794224252160638463152548919950153709761620217347721192946294174895507740093282120607229035363106136156454147581296311588854781128198820442405286148507073677397619805517074454679666669882063686731360719463595621010949540574101659217424797396818898244479401507195429588514496712187231879627144961372505408823532576797512659637419932959570579078263997437093210356703281368588273396485272377485863261793329401063242832233423190406670295133800775136221803648252528048770488745075919062874863928511359880415533526388101338065701589786591532796390001844838842033476988807976049215181499076081959992317764185366301934092858434608205533343269573776049235609604570631677885805854032558699723784628145443239201775438934349131113214444159466202184353460256077282608059321816190558567845348438625927163338882270034438397794091157179670335114778460842364523291131356888211877768293125955710480016618452221024475764864342803784952778777700602378995359917333567377588163035683200284265977457054996092819606804797446687822287925619406839404632726303481888388480540846239297208687229560178529502210097842727455206810544150900035950613649718290635216942450518482615095680020821595696357007702486872538616064760435529139228981757508268468161403898195179709092461659684948263311228025442145435598831519777050010275127487272605798535722720101654058485418782065255229755235197850726459562926100948426038044604146313519344915616739008460977752049878296957264837941551791753125631098642556222594241351805070845504342800562689847502105556840004802562821038586021654565152499040916049973422637718241862100564401062013867552634520431489471025030547604937844740089656700553783477554255980890503832780728326835027515491151772999175634381442205189093722682542697440879297977950242266633380536489436002368447256108342634644732886618325529209193381488330882436592911858498343019120542540249791447483483072484120270052004919610888798825757105076794710819802108415230443604869507239507375977240042363051106658023300023836234924780536677005386596683529113916098757500145168204258050134079222954427540583430257246534223997141806458824089641015203576266538498832934427847856691168070450274480312791732807253886392327264766776130289564150514767139126915383869641018945380813898789395892205196142018556086054161142991419746503475579402186905303473280148872847475772786903347954782044284966206418805971833200313500467131959430506066869670262599728766070647839416940607546156872864664870523347948464580395103223240062437364160909883075530240451726792399398847701130608289047670533417661128011693382956794550735580537188931286572182654779724683702830570938733527442816886787907745627625711127864696529021367781279647136669612074008257813574312838573984146933847212018568294289678390445273664557498482910573653048973668039419743722300981705122214476924701545190921347726938091673231171725716277291006634053973606897289979041810879112347053909299917622052266483488516191645177059983447373443721569437297754904353346856807075282960575647225769328418383034588499976043347331125544364610512660453219039283278436653090899898147804855160680130333997869235686191092328762336254895108012061973898126982117613249415759788453378677225685151206657705846753326986988937184853354884983944398913130295640679112902988636552683449891890581830012381840328314174115750901434136725922561013334542012879979633270821845553767627769009564372556244343126949495930117244792368045310004847235862772587763848129238665909988377379982588487529498193829277999512933721658794866198433130524535315600564190936096190962911232743265379261959498760301019936846501780841134290071762470270427405181213810078531511174672057998005113956734332814702876046704509331260631693562800765498830891740297045762070209741002671369963700770478977312177747943117877579140886025240933053662691794213172501264693857258661310421423908395030102708828921988002586553497215866556473249045619473629313231864721716643671855216049158466422905236888053826613276484926653271501515085841696073247178001888461595088823585088980378063816684580062869561458288810633473245596353316092398950864394517923710082685832893252840146030871521258683630650744711592658623920289003552786157300256784867703116820761267713039304792647525761864039384337152066179159688603919593619841699623089563964544546306823656090604542117573406888898442352173919301939597196361669224722684728873455746478337408168958016570818854119633846323113461055661208432075250140464259982973834457659281094760101142691666021783995392098602374670373327702594819318342144031765404640595985787432392338556717406718622709269077458217547766974073763643369530767026576878357602962921100610475168504050542615372327139036982894167223285185724213944473002189678527846284066639327875750092340940242625168780431742953636249465159223573978218609055160750025740297513470875601265641553971610516887407083193316609378940232243319658516786983392241226172771536765838034406323528525170543762978964231997505314902437934326182922482574343468053969375984784310076171539238129059744224901365621268904615543533645745697019227675704286346887465741336576103448052371362521701480254335997611501570361452939638371800476679445362645489060338517001589239703636753151151927929407035727547923160659701904527163853493494674821209748011449820331548130555495976239779412324653378864936262911009079431765077710151795424021409765977235371389361963662929559913403318050534813354130409032216188455455391928518902487517252674110670637020513779616535033538122317875393129619290395590824924268739710504266439610408653644590984412525341606285807861938606241617837382383192203051795744423337930716454103112361770539674644167057578556555721259865122543945407500168547617238252736096837367489925892498179309367734936635518979672927654860478251999456270815298066434273361442101312144488621155403508602141366192912386474228192460711818859261787409104872308592402652314224121654514232573667080380910840293937393011001641097431810970294603524924268869010107753393874956878858963413334578401864855499189831729898627362702339286253306613504419069362340730697367818389448178930620604759190203658837990194060168620071709007876455823852393120153446326537468894412744778309765014517215416828791850015790958031809244491974262063809086812143107627347833636892204936990909817448093536322925462495449039066332575446892832526894311520519736201246264727966282248637935192974090561490905679192469264854463640850912096889568085363160310774829215676788149991614098317487039732499900898361438740872523604814845674627449957129498440269290026455818247382445692074752846745668917367715702131768941363239268144447341500394929436469355365249514398930217169894562343812228558774386626894128366714662604749155857728634496784968023003790083201075503754922043531111115809699650488989559598577317390308336236336838938940794699256581453500945771084496041416157135451925844394168715230646035412120745724308742450743500825472389175841853495834030130860535258111668562107293837055940443283128418816153669943923204696371168221296008075616653949157061121224680156841896910489591131988710940572289861554402301279776640326812962152187379042517006543616096397168809295722303338758909782616627907734469835665663382455233525461367128774010478374805052135814985787898556584135540941423648822477907458540862559931372598848751611430849690047206892511690806631948581484141762851280830865222954456564013193195871147621705568602456374757841143389265973236708864569982798144987703773196574818219119765826857540248368148528816989453032407385202731996185882106895882104083277103892335229659853686443042347438959659026969355831935256404009151646910627782482898083998743864986425466034464494028890192465137966969340597655914101383221853762137207185082797465926421974966006210495097536315537222526135253965954010063217622882831613577886055940876669013809810297372224285331047064466472955324298225079409403252525252384521814193040017573942710428382354126627089665146531431055707832550330864586627901541754533851111615054963095317268589772171775666097055606973728785076454215640504955145517703847430165183283576243367355645389616601197902116170144872082067695396357297610887608459102242030147537475982335421767792897055640138288380336453136922512572723237964748581701193478420014390138091989787029845148205081211686577319560128068153048347195973791847807164978529511520360310072931999304069752949098442451953696740606229260632993674305013996707342463451699770653339417087412677308118820011381151322317936072449810598272200310787330405064892870916991528995090501959923246306657991992310629337436084864302728225855453594398593613587875624036316960780801847521309362786323289590178612479240905337861134393809424198542954815913762953198051384248724236397794272050345895545387722720549882376814532535952912337822747173022323361350278852574913322747333004758518820089218957989545295768485354964145924552843007416235560500135486410219489501098769740807168022961353872303341951231984379138113917227364911363293476953125668507586559598355489333897909167246493681060161725336132092538811618532119481819791298682558349394704214483713509590450116747551305199837145793802366006190755143120612760721408934261085663945707952834587318725540533471933123573325714309974246227752040064540168449092054627894488530522281230715813634965922851158529121921120922428273176964953655619898741998359860490967045502266519702180551018690592118617192833981795941360705535376892095195617519840520598362557380891646003234490408368816390158222229855455955953612757123802015052034652227901972939717139740219234791713510489375681513865291171458196398405088340484926856772515442074428860635141030548308033058246969907852475522180983440539505256558833527608143177858059785007061933277247531999633186105020236189292459652211758445199548312635166379720550192158950258243382340962949514170161144886954862819597892628541771239266284542473516406822965498039662566165736955446080012723281237931726184592017708491627352945933325555614282448534193610275784899161703376176972671888336664827353835021940014358090279247492087946736200110535636000114231139318274484170534885698405941209924882599893563904265782308462167580016102365396031459524990836614266579081801879163476313660706148299225651868040213054631706445022333534038071569233352194474830848246267739736810314118325309032043326219595763106928010496512771353334512393545021288632083223434734114699703574594528483627770585968696040392307794026255190158482847589003200808702006631997779538763400595359704963343280230620773498578890900013666481481415524013026254371666855369851423991278693462890350106618482124069317567966824298732351618541985973349883212431652930446884436439175616904257854947626298483473455830193430149412011411673143792276007421054930804939942310919399262731101330404619751458207681993167982330612709051773077048251410579648226562124039772749126135023203124744081806538607835187487642065620897420766228335462224194356742683262425189544284393480316329613590659669709556592543764976273325653315192852836306328734793972371865031195809910813800221066263497406015373102866260999793310773303856883981357811060865446193195722370581114504823153494365460262859178451544132202841595365758098318444634404796131098016586426263261617057047715772345157447949621758423915723998481065503844262954192234910133750032304955176597125739172738921641425243538067686899164759059761504256186025214577535618714426166182460494513428212186525226706052671245927661684602410525150921266155009590722595185935675930755887124189775022474552800952763173575302599469256692786823789266453920109736324367467551970867171226581535788548147099404353071704498609496712898015885253246353326529345840283212522668762773729667334339512917704993628709523104852960389221599290995770673482170513238130896455576587850314211315835938621294849472425983678271234237887197542174550598635365989810848990153757320141506468411630603515908431946008780113280662973764613479077890167283602432008451486334457653539197768632121783578288319427888328883371071012450806864551344693707333532963289677711602484165617115763410308538587606018004141552474004931249237476313170915091087137607131992522452588906027427933506470380077200930955409244910519483827020856476525963671934792336043658397222278044163869225793027463140073304937018037682965160554583314479745377769973816812798031290292035322928245729676071357852957900758326704415953127650074390004866320294528087684844376388950936793555315714406937051674961404599846858608210718865581314673043226752267144298885246569078686928622790672310558832883930093110884473262150327069560219042663902059573870150747775044455292933071563560568123482092608874211065767133225073153248126382685317485368062280054443777367641271481943095847623861807663927142829613441098114723475523071709800859660055784576715125723926216139568124669624883203459734452819980029206502881851809921088015351565278572237117450131109391966872192245614134855233634205413234498697192098442358161460116312891858615211874626355148083476582083047123136064553134102543262235848288263959279837352439646170200588380854820847603645465471266180112897392772356952246023118829766038890228346255094724583780213102506143091279736543483034248504209435540280724043922871284653549677402680845175793723733621484202868902929336843031487310457627570751941389115823384675569410946491496656902044868514785160305105446116317986436580693797445550446242080560963335159016252517088749345297576238374949992215911784165976841992134103001693360656276977502309040588228768403983659046837136730134189749788811762826718836992691349648849736708313605285716126623280920297778236888535470104056279146915228436650150795420608211605898926203807909844642784278057418822058618266343218388901616317573215432488663483194450303251898886715775615088851603855561474116333167609046902991886753729101752545390977326235590209704701970323910051619190234220941072414471350622816313785692711098057352573371055368019001739509665070886926442658983590568652250828327711577762766148538982320399351516970671121227100173902650549985014443210632630395163732278977923669732214795518136747176495147762544538898343737779438951378043638011617045553477371895901443132010491039837982215822613640908563572613989650227783704051926330764941113269321098660067818848399173003574053150783825948887285422322183635266688499638008567024575361277333398922843820148790317424755561752315318118198603149355920218925998774285646474977549254633083382216887669723725711291290437600355444126613043464758707873915546087104491546365858562793112054295818522974000201765965032006819962480216212524952218484734096576472963524249935567735621007676580293852575279106478341858611780369649170458864561700748872815855400782123780452683769199950533149658350446727045432303883631427715529315835048204973087313454987574277079187821232941950664805165010676524888994549772012489692642365013767184491246086540162693230552016113093717352659751782072792731357823105359900725835096372509740008936495245551755167405680433717888900139569158835452109139811634466921575566487443725279763841922871693969653199596665528550118267027746879241666727966208319315196209129122216669732211627634175016714586897807611393876783326305315865534114180924190287079863601684148573068975620402271611954884019881561468179768829616940507807240943357059688817087478953971401813198371348587068717796790773513551435071374285367845567274508826409104716419199352095873825704813215945207262139186204879195748555475011288249368599795926337428462012889394666616181615363535770376407908093543890815946354653953736714193940040116278835840277477878146627257501120314143990391361112605304753626659712628457671306969279928532822012952719465769801034815643223392718658563137866582965986413097483355605992142181561268365481951751821654337925346431669690314989679063666923168930569873999987045082763170561916574222121987854273489862937145868887518432742472859139368264969365468811410352155311938934679937487951334205273349755079796555978165096703400270619714503572874287014167703302363616439624714080456505266393150318880094201606671099646382364265419114400071273672096152422666009414704694777198707585687360986535038821959267641899350904650086803762141570245011811799033542234751866492893033741309729414025983489568159470104139490291456118854387499905074051209576693211055959678184904308450628944086477035044712303271009271285501284761052512971975939108620902058587579606581759090766539674907344547591380642872474742109067620123318340136289272016793527931418324071980266219044636753959733345184494117529877265987517587341499708182786138983860926007891091374169786885531882589633901231106749076787854763016566041456712453661967984180563824287560986116314699672961061124517572326595919490595098851967370288393508245003654713099694058616466752533189195951556243617248139650528836549986669536211247745630707801074565126934043819481794404001511926597414040206986864356597013609432330796325868926177685419827469290043140338275524771135327223265404022944504360911112580070344521116364213203141030851450916323762199516554795493826394629528554523916739695900677235068549884759083910817420441350093587892869763256376422210578407878201125742195688115739447852428364824809546891740053915981506734235770920657640509787879898540410078151251338747593585200820317112687062131601798055017867419665113134003053486330272924882075770866232571648222498690997291008712629033296752640791583034086070886072346102676774306064721146581512474077607427776957481278696388145178235765295466761139302957393017871103651223580005106830675790135119869447269625748977100306224892529840245042500332917650777085122917403133821139332594468631027831839816618956261509618678685498404303905933391906169666629171010010268490862254252108342022627205602090068004716606629927435249936536041592484398266545563847177455371598217885860258697340783544517380290095832394757308186883682069576734776189833701389308426831386090282857733053237410418709510716452837867642120545650046966194171830867190420460144531599487427008907393228599845945109398881158094940610230129550486393321869001521070249998566648351405309382974358241613325922356900443680169085938635462437267004190429204473718110704309157277206736487455070328833967174665059562224136626172369408586649449520145354601615120149772438076462374078781911128752060671235852769686021208219652627779913099031731358289134374509391057308793828812737440853739936192260303680329120233488282757841310440604798132136333238627792948775570579255786200286155334753032526832064826988643283210814044245109301257200709772842002635903269639693156194223808824876218051557573383165963636235968584980503192328035189798048848925905844396977289300536097854358030204369570664543489138646558517232066366005024405464089501789091302638240656274277712313619530010132453279892881768320933232750942077286084894603898400705995308596119386198372321667470415186056017028463362601428349354601978613769854166865294250196405374408098866738366320838128072340638944386714725363077526984587777541332216515006295243921997099883481394852172717087671956482674830907525278580083484653102457023982915438004639909552351093752185848610247315288081451839602588628796955313257375868223900673249058535255592625857830682231118552690231216734980946148028563370699791609701389039578517043374222477394857421013741361637519432401797905319843281090184799063048549385675729392907554718792845282995695249513923198504278482947235553314040179525032371405202787332635230867444085325923216405395954637288644000968735504200428671476239444727731257439643967843199632921286166305644602647762660358783408842167580561087328002148039293538035667261258006536479687381507144330679955311684987492550482484355367278860674664299401642491265829810530325876340862736356496247838836784713295040472121481155942344435017124257468185227243855988593194984711263768939852309550844300557959508027025329551657708057847137694637609259304182507495581350893533499317617325699327646910938989606473921548936989666052083935789417526130937888728247559393517632090684795464281534562120986471402575153910238164468144768571293948601966819842512743222861871494603018782888407903277589697270674230586531036137623131961137035297255593469871896226998542126436451604268328590886669536474106438439457827297220589362580505705294014879535675667324734019071736480401889627122144328577410496130813030478500768685616177736164034993976683732537467237546336273811727005664396375878364087249279308277736162495532499001211415568080961848495213478667549354405860323517425932142954853889284279112910105317867152829681336843113386205508661518224134592074379606422312603953428509548276740607390318823962138847942556555873339756779658701825294764428455883456380263508371592892390287383754697754453185122512490600833833553029336478574118138819455597607046575413657922906157947906035131614855324416880064033194517858286464946990904862001966616031069524922420592168284443077608402906022279537346716084033877364015208057930200169253543065759294214466729661423875654630019956040012208399604328465029131789560377871212275238201801991506518866836061817630970132921165538868183078972909473299807678048618733518001331748965948086541405096907973597242917880362270621090810136448827031016916118995875697858760561654360250647864832226900884796493342209685448405229781314260060201323872575301864854333968579411791762649530338972177403332024673003988823724078345516167612690824872779406826773983522782516234452712451345916541665186656473596357473545270052532422370873116751130887772047244859890488021521515696861789555214968605961858493207689856558961189361816607825374692701909118735403944031421500198287940057973070435974342193103129016040898323854929887669014937180126904686315794224582402238568000040969342831299282708483156288457560961153636453522785483571930631951139079426005916976312044374242879587182271550875879666118670764008957815699363442866958765351028312982103858255805653541316338135533374962810548136696917639924073397703470510387472391128627414740734767931038598514918677226306569165658831980562437719846797559603558562852736253977815298650433656614900074871195397220854385563878806956889306699616414265623461019601840838815976254637082357945052221222846745758508265528095280831603777438653946031830400865585399917193269593535198843347565681829332973829383121602221836950532878960944839460041163341029466081588169981036185230777210917936953744844258181113401994690212153759103925549134138188919947484078472896645788683145163238142407973244837256882832112946702564545708622505232198459645851543646309507373787129534225570585614740698489148528066183196162501403953463736228218399075732641812838400325032094176329658555425833702607185293604486635158690091273102419355918007628003206109301458320859251316137612235548765033906800925429619727463563854165576430827176360639352013727312564966896083880901703141339458827440663365045693119764125342671586244510024401463873544521063510721364129308214942830504239410392159821635088958465480829533418035591522590078996173082873730032659061741034841525549430171520822209306427209664272518935510728870446002693689414060938828062725386469911604931184388754955521984700203517196502456911342464501858949830843115092563145957918985659362898361424238852500271298220231957620049175176809063663140070450611121875138692621808192175295557342649990550728588923204881389195542989511033844988861349455862841035225985145982535221617307343751843515535091914040917498840548612211279368279398955755967277553073219838962778334033552009563298367709860450630761485631819718287512305744335487657742538712035029260367923183176073224472049716213564764298915402675851993114110990575079096470981693589774437592056370938080599662736933267643187670711155778029198203506365871830403377625408840241731288300966293376531609582709404224407692305155081449036288163269657223106728278272615616246483594876864889289850108329656064577405263534245806420218903780058611445544868219940186552879253097438127367960457178750470272295948210292679238985103022918923855666035087645631992894039983451344303901304773588829118059641424264576116054588865114313455017221129327282197909013324592450272447197217151821502311476949385806139404928036189090228566145697098657689126397061817106348742416625439853913750140460795363098279625223463234210408606818798910133665514092322533972254013440603908215924959421121372584428859363595709323667297031287391875930705785877690733129483472109353447133010081146102870813650548228150328584142297118487709449644097329337798146627398736883009966196264784116249960766005415371539390794455151453714347808862172453688193132355239068180920541190052658950625467579741013204537964080274400614030376977970541229373665655883065848084992088680989331357487656553053052148135625213142133076923996297499727570076584416097729678363698581279778061927347476308671400445895133954507322182593374440097036647921189927407963623403857481059159397982075149418933396599777629872861765726700084559751625800775984095908373656764341875733376830235627114005799391025727352896820467792172173359449253467894292838849031334146362132957204043532129719699036579769843562686859867284650649155106721728754037823991952051182075063191303025712946149534602929808125831493096122646669451934174221380781773912725555206273369947327871614500473271039693485477869223378558519654913550879409766132861214393036758922434425288192337845421253317930076356779942215214577446616807338386799938375151878619997699116874798466685307264397760177610526256736964592349294825882179819149110298185683282081220963010764407555506453302313304090755426167428773610781762655952564646016577293349891085618379345378772568655315551312246168269152230676199228624246381464150657523433370568198790285986787688033030118591441465051907398147339513578910419269871702097973261307873293972818319512490171357469604683476876009026441679695624210794061214491256133383146412210056829833701391527854416623408249040703925326222420238677588029827467137281566978696346301991090546824081291518885528823853910173531102877504749795352718376618089131822019353383148613426400143520724530906328668399507788262579240547646083252306432904685789712655297659627450899156455488360673978327199543744538081300586517864848608822587217859224562266556517424823536185904415444791390760470160007482948764973563540473500403803142642425503642345146009541579599584947816620028621263172265047545729712970336712418756516013312713534405336098317870157819434593660112839186816076527161137101790235163628753442250914688590638722977070204506954758620981405856523749047461052801412777988641488507850795141866090886013348373544727406616774985158178213906315874064888324152257554752588904376965291046615221689866324890091477752672904239991165716229393937661580073744482546511983659296223909779648207559021350444587878272816292996298230701812459326592487476907911868244324249463782904683354501086486881244324635974559725874457874846174949385378078511492304450142634012092690229709990026842082504836847455411733575614074731642090789881736268819380993534503003365694888413905336564324028901035565486057172876046074388684701538413157113844166847860083292030344788061396572944739180747378403840226936789043142523795862968861998688214964478171698178686255739105762407287314507763092090356999242883109624481380715159873302555394106155401369627085636551868624120808967543947347430202678844609576150216198219662294156290692082567401984315524951239597243169355965750639559663475449817172589242787436363060081059595977095511706822769131809764781983358331323655357399809132264264851965344325139056295031572072443046418263111275382020705928026722208169604067914607688245967418335752318872846266425461251967081652566679125066386779866651489825465840641899167476166511535154971314194326106193853923281230385931862182699201797771441236841664061387084996637822647223828413517742092739442421379644742881563013044570257958777049210612417523721164004729514681503096293425620014597978048543845964038474900181960137286616610674258402571918063935083092710549457740578013493436079870240964503626112920348968937179330508562931905470436442003435009659539533819527239864542649610428752095420868875937773117640800293611979136126101537049499993894522339801379941471904843934551848258154394641584011691443895979720476413631670837990400331737856853090568841428048894514894549013901040238880085330245951542739341760186296777017413653561199772557440076707772854790626263122359042292069713892012430382039089194565223314781050319649823365838927841493910391061328342734272081390385542629085785249844352494663272881631934351510914522471137078186403861304942868527276112279145797304977906214232972383457213775864811775817550826929923397328012867397988579720664351681299844220754748430412812307990636824661239892286463702625961172561454451512107378328135708094618859047708043247950940908355252267700445660441164545537570536381430373004906605822026526196188484387644421322461402037813761140421842463627254373103506778604323436234160652929595726625876288507449612648666131151999471155477901666268646553948753278391944670303569708783425367934410957270691029882980860734349238975420151879320399490774662501151337097507792530972886148517521462422130852278619624180499760913096572773370585309417761579701165456344399083209884533252118256434374574995751269680567566853973324061755353407422120281366596917009692876415254802422635082615475966886416642213502741539743859670242306160205676949462150977258601084411258457865929412624397885946036474320585881117235701254216944405297877952622779346416208029002626199660599408180158449833697151951114033836085965822151261212645501024015556293135270703736227041237201178501843497815705765361867795286429254255154423147861256816952719143049125431113410202569779615259972465533228875797384267713452540396404413903370625323243550326157860234601677096280487620951000111898324333965509871607806708892380201605219462343241463704192810092281656734975267471919374620635313868243819422599488544687969166642244498383293211726276312115691781230649786123813141570403259614079682829145431223889532491337411001834034067073852176124873902410132386667783051769611502896932382853932585679716788538314164882096557935695597921216681471884079977482543304168591625030645679528927471528205554218849071024356132655837795801493641550020404983430122582544907340162445590489244970834064091621317472396709283331086003663751031244328030110514689947040007282838082570557191983766986355837421934029024834476858749924889086645105308154396334995451303977299622859830987716887189135036916447717253213077363709008928625341751136266348357509322031770386178905696352550381478322280413523606141667963002582176077031861042545076466054158911973496367410527137459536181699702064232848106733991577459193939071785211798350930160677338259610120860931054480366840542430391353325381190801951791612244800654825886208585901910659963529521206559161429330166864237695735857406777436083333770126277370757014885978457969489351804681936242544794033648480958165845288002296869886544346815238567983531460268845527880197616706170661056990276013867149724361113745042410703698337378554372101749728711612299800713674946189802284682740865822173388333458079753573325574031118594264800905511276143701377349912591121872441548667094495783698316273245734706932591283398051865579441964413555570524985216379316862286657595399531961932559261550776418989219091146087324134030583763575147933423008075062444795725927173843026264190206647067075474266887256190325018321601671362464623426757512861896596813475262092343406702901374561654832386252583328750099042567261308599981194289263705929874702122327616156090895930856901792722970461547986808072193255597536841776475940725152402177122866812960847984377046053920031265568589298753796116190037109278679363901734645860512184845162442547195635134624255764126699149110765325121693739910687938804728204450082714656096765141296104062300634782070285289962355431537044807388851940964436898730186147120719561864632850014529840382845188728014024731375543993599818279463301328648225257951678218174471844203853241137143494267846333924984115167284293260717211212937784281251786659116603122365263634810421441840746782418417330571885280605361267090592849464778187321444207361774855522596056822561620158718008375575351002533163670138741599089988236807156286323953608826482036311117908532707380406871435247516705537624608259356808462411221747497490753683011486792311302256748276596254022059162820954304401578599385976314190561501752598980231308149813050879079875442986744276762909444768036786495982080907069103231800868916839289513974816580935828842150354346799116836957060947995092670651902807049224859075553004242301307231502875399014708894661339257050873194404163821571696383345980862019916764952495207210413404566363187807394673290820294572477881829458237717845575437156531043020031637679070877459924415002773889306037898880007211323015094575583318526060018361346418504847260249594029253051078561244121030671688913756921362551612799166207486527772743447502919691710062985268582871500987844936352341124697118273901405282098351541422388136532882652273667499365242375998646864841974536722051281137815994984228675828934743057753209068100412820602755929701127726241771296221587457681458003399980572489707848058908792210560466830097237543332366561675800050704195619203366634127300897579446636667591419043955604712829522551415492358553775486677079680038344872820898339942402613626106519609641941154898759050370986329214116898043548223121526857038477941756075374394179752442838897157924161903298391734920410489517714222463224606958674325844326288642434226706046187895628723952495908081603845635261585790728072732696261770411089855363352714532374751057207808932960052442507873128055165136660891843905791462269620638206694783813018401303286313041083584264365467988686415937959861801895268839170130436758278533314618815000472979115393002318829866126488472293174318715779823147835078739927306936799351855899528606155098034612430957979117762888228507414467603776348065274998860451700060117452029270244007097577417715494319228795289107868804651349732321682917705113396031449914568488990714735272028130331743517090566860344125537979324454810657720230062262675071369271499557494324585827707770502727868316292067981049266184384017662373870856386903481594890709101832372572302009007166817030719551494884147510476773435564647882961277537796101791538256856304259727403497877833689853646604166669896369457611289052863366945349934542021706935115214074800075994090660003557477827890071099590380603510436681521688030954550087592601459841325913614280843700278006116179164289806039836395184361003491633199504528765461617433322148084200975107763516425557517831163288568635819503859823684487349588068016083808126288314726913964776222589930861226784454263929398566104562377569905162705827829345853428043429527706440111706191740386406277238642816885379124792576240734553261090528534000438043765021854486396420065440697276803426393163489329500854897652566589925859112494851394978868522852945891860806806089417463765904383690040687224822645533067130642746704037189019572544511510819982706325960159057680199430252430831512543078135989060170764714347512978812540229785322325969349988801168541012301384054589839453834059623146766561095452555066908979441432375799493340296283861443522035149388947384544666229101913350819184648532128101368801958728936252890283794177121279956155446384058463206359341003842132108265105410532511922423707769927695650180945548377150968675164513794087584640338384909670799322015127823111931191308575721448768487261502823952237104555233301401157704370027672071777697585072558054743676671738007510731925012861108847835137087630036395330800735691375954970683974605281197301762401456702215293314178303996856801762710429122535231146913603649837401082502554307059005842315159079432580819454159345629131563720454177493029676312446114505108034635472082776392983915203440441178846626788172061511346226657816075531932417702494479604711638695199032282515924113296133202249015670580623465753032430557537162847009002158632144184537150854691126748218777036292677252702672024510653830359480258846732631524942742076664395102184335644950570345486697977445879872516745365502705710261994176648239891375269778728823033104941773471158328197349427400813489328573052610348594849134541151194237317225487751111704548501370244214714358663925011492114775497464764568233734239609053287426258058424928497275035428037309730817966844839488475194717180560101597355629599091975065020461553504094528862283371948705282750460618162433804662667462837463154462972097917420550584293976427375693436779976303914197558693626589126193087766919730435876450295072102097544318367736985846456681817961698421314960257770224078907700918424436195846678993828201102970151511677772456960786140751468014421072017623262587414631606518640904589337615549555308955539201043982071786473644317115569520999676798348069965004761688520845193691675920721856335544296023375466624498781411945220870119534513591985229745063315366727297799539726740129966805999825293232152894284654753370603444274405659249373100387463390845525385123419891464507756814461681726175415609941782751556955483374883662426694481307331241844366646136755033786652745264383803195570380107646880356076975609921890927031330134918167907999741311998844091630863096280904657677677034807217999417343429734039547279992379059670026807472620997355264197091817372104252342288941271813454466258369695837594596669538506946495807437948299452196678702495680250872333701770951678894789773753412500010247797650126580032038870822223719057654650759713626124394801854823560197726678165047297552753698543052787522937708168940132260873796313718952527747583195789771444647225744040595435766855967312100831861918687865548475834212562123215785293940479114404735167998112481326718116250632216349274623121468051349036974610730735597933507936924986063196812094717429091897864527872991924406341705927202159461860171605474203343122532953677492431155692199128777238963982319665229128302260371485485033598397822204516645350722775883213124020359126572549105354336940122080774833959975030351189848553094512963526905919133972276910458724792529974736514899247937345115678903518118598579782517214091542329586944801390812422413930667801484762008987814436601587259328896489179941853502889803571065470809172590467057530601158393213545414862200741300581671196480989605906076478935986973762139075120789970371726050243689150904376826863811972313556724988374542434697880559745704581243641579344051039912476383845580058219288406465260889982863075376221531947622995847310620457027836240781353723851582069336777788361144960081958726650925561223306810564980228960934518365007542235786895838371611735924452653676913198187346421605921417132310240513473424543410066324545127571929063925468220575032848490764276419196890545591891995113284830283026706043039102357497819873409116558291779890623950846485731289534555024014777610599827112246058745051313763129812117368255374662627350003061012499616773016453214266587985672430294029564871315561707447420258257626760225660791657108501346403239074656781196166868934672524419754850894620408736311752998295346410146770515940772541355684263376326545988367754360555804871989556778835461630456307357176071497216670355840291290453102634605952001313071908113985423427158806883021934441347246241413170303140068636424810499758141285094521583868600015977123089909409050003997029089125834871288213845402411567512044507772278744587031868282157859945535466838632961467975576098082452129406520176029726739336666638273298492481476768381184710054682562237506860133819602676710996617789558567208633013696890814078498045132566342155758620990927644464046060267520061654516769449790546248238049176949877545958763404374659550404624571833674026994126722564641523641176212627242206475789975553358151755336193994897864307943082578995170991697235445265025698654148110948095423008657001828473688778411693204094474713420054041415567576327535677443703786737012915457334985484107338951545193639290130645294436104821567685117191798214764840143481122739283191822726501296283129087090256444776433677870821031586963420094620102314939110905937256811896483655483712817925802460424706756761677764430759634329699616903944795744668587240129618905943954674124942052611587908009418796890159737404534059044276948334367249235788079069500102930861431639879716260971900580741460015524577497608706411893164150786538098873735497733998430470435347764907379552619977686618661001736388203298089767970257025775497000196751566701654805982475784364179283260512809784019387250165204298267275483954752183178001222779108171394037148177692154667104429964796072450830130146265810099187043752165632504645957053283174562613707857091008358862560873407102636072482295853032303005482975517703174030887425057166360112700761391228234993333989519449934093081486962684046310666685909408824356929402796086143898151266528856181857982560350763695054060385976821184676067990930856380825956187474632869708022880375326822380638995012778257728981648159184521645622381073585082026603516174454734361377624496859658137341320684376846154235455910711556590833343752942688228891022494272539865315562598782494760892718978261605649487700752412437717584206195257005171448163497857615053006962965535938666475683148479419701541389334034741374591445060662695880062247804459763627559910102225894422288311231498996523678219929313592940645943153798253015449535357766834679104453050964873090486501916812661222493965447370179015055529537785682106063513684264919814721723279124911809320854933817139963434877375684694311540287703672465558979806289828025726981476331232575482492447847762936249135338811025901600946830924264113124828666712309736291016574496845566201221474115070614073002996862961356940988503575837596489971389064141105239648723065474676790979760331864936398993696163521852758104512498494147899912506795785223488554268701532341614624884471714992852510289936483737149286283968548524975182645372898606723416359818462546215267211128421151742486412689915736996819440113412583542209420763232327979386516324597637523098430242630737544100355993152036556768670868529247914311781939287226774925589747644355037075412011848039143630152724808099053643932152960840006540165836716580053758634112709569761036147700929168271665785237551885858103985122251480603730158770536174569461750765192217061899924544611683540536863157164152938393386073548482935346146965831039043937851196606055855664291922282528042876157684815492318287225035220991816866452836418700385532481462929535030584444701777914220943888628647800902534213283872143335680520582796327404473843677237010702435958910156478946155308836488813891922643856012363456592511857536714443305331466871190414309430530393497870349922877618547828239582725041002580245733349715874212668760420128686390146774381896853179570758049312198227930696148907195060496764854877096005494949849407128802439641694841206627378626599853311783457454792995443265226589231715588357191109258543809784999222418855947896987225469936363172243108208505351107382754638368086748608226410460906991655415397109379058065756750776462156187837569942961166217263147319640863516316958803648366375724726453780900556059212001245494453223458496374343104337712802335348873206956744161480185886630687514333087408714819338887198925450935174521718976260369114839517914723184039721583869865458658926328719826196003176134074419329403922738265113696800016742982023772798614308119777638928979388728916501483245669399871008851593593173238089737793923806044439868052275113109851089679896161428803540144583569470041052307143699314493437843919669008434118873591030518174766205746778900274765314182577715179397158822006939038756795431542638345459356140788792124132972312469970041219320097642414835605616116363592369902643363765275174038433828871154398398688289886263677428939448625319834691258749174582034904095430582603088324733574447261197243665120976171521326943558581635559719042582203586837721122907226547248921678963597139456796689514268790971646900209785668171569238658715255060427128165392294017715262831981823462347929624826298167877853336696073118436490697289433747788608920976614221777699116500347343538886060367640364660586041431153962715263821737199977472041178999549808473507995367349812321516137713483426505256889285454868130582954961460590302697061265398724370304402279241049679395388110677184922554629204449351216425074804793866780100833722622844077393698280072139726408786130568135712222221309903491906988078159682668962521711619088866745363863215151086876909963906676388959286465018663281452803721778529966437710293987520027753646419898094095879289178089284872903435043471797369483222191999387517103113962423711928556572880125612092127276056154591618107587954988138753423648217114463846798846323857873969848440288329197074997061374205145903876449455222540994068765402083529954219081993342821322196946253113281244264393038911486765820417837428934236621250739623014362239576090510942530893731707136153873830392181710775036159519206218572693042396303907652357630672760459673535326040802718604933780742026649258175486953538179596908014219742063104514214053324603805790985622035666958251247388107731919022209620363177363634383337646677175365119425701744990064090511365108449702351198545245109874863805294173939337349252099025028255852331599824293032406982473425944867220459734373279722236392180275409820716471556589904458822374733778758848658820060878737392401980365700852951442120177035732523087153215937939455060539058322554169438811212760020977943438957522491397411978608598917517578549202460214295719919569080056503497009213301768510914280235825698244977848918609571310777813528880460896559608885250372825303934262698740529802193731333795241956596064611779726127320378551524198617651891021014374657497724259484151818066784871545791307467055225385631034308981148690522186771391899462438818593836278118806426577360442870536465183828153683068340203532232342127169118727171599452993212441045122517142277340606674355900677182061421280614325199611839676788483225675354576831643074839060030360800078974843497596036604320672973208665152973519901323595882814403983634547244954474664073108858233425453056464544915568733424088332834486550971721489171322512052259409886416225617303409933201878165449431121943363043628228688783991727160728896616577601159797997863497960605895922617894252236382944275635456637500982378144897704192060550624114294399593502025093166712332217371204777093268813393509211186181146835776420310879381086211286875316435986609063140130189222562406932403547923812431429054998721602007031544231747812696223155280867284652247572060591949045758057162145053685161607581642956275836955469059345563796521193663541512319929342998670604046864883833509329152901009228260732623986117187587827665477702678585975045053451148576580194650469818208189448764786749225591289214755184476616149949409874443873492723524858854042185360902180681534320300091260943844070614247596888435632171689460863706102656974269551588359297991901346123444889780577521822627284132953613623432427843482146108857412258019526158092353393145820812796477818553531387095810503188236757322324831786227547104058346812102672570604349202632231494878648739371589983174363178999999923193882409550335015874481898034644459375078753490551782721890628835299429054557072908448909216483664997624504193799455776843304490246144419814187389590966713676065859945814108504042012943896053200541379676265374326904026471421600038299304255953061598249494735429891023085863696262027966863133794763118164223144034825425070250139374005038883778982500399927236499296813137355587185409201126280751581152925232576562562864687607165532970746019863536276149256558470654967731152730264725349206880858682374143623291574877985901698151289156957830453750174509094420019223131746015386861993534671785863414209497319063784629450034859108686836030413939769903319679109628003031163536711428574548854523625654086722921661890159518149804401091497503473425404219777855479659923174763073926342010783693489736480262896984909374092498988251534807230678552512053122455005122329633195194291745322760914005599918948328954900264861744133721260859005779049386188714053971672170286851593266814440736790598314078878311859411811416793724679023687651780618643558741300753016279725266809678695064747494636071679517374898022959757783540672462961683728124197160585033264865922824798276983632926895977844085913208531260533271624865639889086339165741714579490111062410175948678655061328810768127244369650349430687621436146920953654051735740882198021071955352479207151106234513236564052159005835685433027960276886116390869231483639200161802670883286322128213648670172547558867284370318828985166708626096416206443401811704448387802894804448950912189334056264854922905123433613378698023738614280335894070229532947853842894428174165239030658118336091627947403134869149626558628090046100048226695248847297731211973812026331987806440976979656482606878416066973134532561977950814045512696271336519800521258774196535684682288898534919710931931945527989298912011819644542826078763631675253652007262600242481051488571843647091108375525849042541732000483877904279785992081375683965872710196637730469684661034197337724708679787288844991543702202129096733823863505487965341869922137443900491559415537844825600319436673480807448844472120929048976222970008469519677325445288491697636028151947903307288015815274725955644391121916410301238196342628882661950004615530511138182038415974402637331366111300268769559501241685871829017351049345144792487613633618530598373201185299243207901878314785605005232407711234760458012003680574469932027995652558281686167129444077111819167280168935436451514949035060099528420366709612533126844848042837501225435188250571989017302679782894482609627911567592052862369444503768349135497000089122994105823331793960742248284728384416660439602743810875838175693334603808675099553083331491368260435992947771425810500684861126008944080521100555177611051639005400860320948450096409036872443936805890400252647694992848944660406395351325501397781145968447989263694186277781077556141026894920294606329094832358846006198246337847932562193864961872872709777771268226426786604605035208058103048068636446080894996360230907374279260427160151070496743062020833352168209799803618014841531350506449645999337703442446428033708018782036448627676558969119448836239878334922806075104952085744576825152473270436152708955890953970415035242646122892944043371835532774954877199900229670114665813660658324666218755930038034995654882802400605969011094115078628893616883353269374680315217412594304781097627763578302229541416354232161555851573109822232804829675406141992529741871068240443289870737445915155005655287643864782789402074048111930943464323644464856315243067671885283886533004054269169045459987052909035000028382097976236145824848065141519872084764906382158601131611911252966955695015738021158175642499135956713081116199970587361846846414389814185851906279334757942285529291006205557736570739099501884347630442369660122916793485571402099750644353841340331654984081334123077251170091824457959756816465616890655870280685352093951833324839954011771491820956785719338029289501420719537039330548066618118599724999917637916906115438247621273588459036490626504886359195953225845473096051056026980031979296074087521257105568410530659250427143060831716616912832961070578674936283331532746042868716738794601141483906711974584784335071059241089323437165917877496463327408935085019184588228838671473505275021135418995430406077225235534321680368163847012961885165713825048994260323953014123813156615748900458738301498423448819458745551374237691301031068242998691678390912300755642656421033648581535577765952043371064134979889904852513873898410516882057666768660632304652592883993635757807014561419434101447600186881289021382127149585847873323208957534825392678208637322998435344050320569715135579542955099157905497152714534149460269463550738915148166923992091642948156431333948537269383441368550806260120051575281794778133688073245584676698176137207427563875893684208735645707314516342113932465235349766799483423301123722381723927457810335918787199549037997661520149917358952016787614378247607424620902342710271690882237850641765697220813784276995749143444523471860638552512544696746120200419968242869378170851704603369739372141879058945912637190641739561841845909740987042361726638020933075107100855549737989444030371890898495709654687948670058915518822917268765441121378210633577727300481886939876231719405703403483276795673269421992192324408045059823108236191144323985763396702808577138801737987275316770345335907639946081083420119551456611178264397783840341403809863899529330359220977834806867211037733245287368041312100095434273087971306640718472514205570097650028024445159461978299705952071116305098775529636529342590043101420299201123168075112203565284710474086344271490220616501464074169381310747652911049156621998803478296306898624260208417078982678385641905064593330132250152592565413864480172708886887316996178567884850143202186767310397099982865662246383061393173648025154545658282003022204035935936648159315544029188581129041382388764391401535639008715357024087165322471674716265774000842283711152454022746252546973648159728322557356594526864291438246423871664139211725303121319251821114726831952227984553130821452305831929180502746855762867752826662450925450358088889632792938144118902691974981054438273894995653465434182897272072204808754318750695387719307381724118777882426107000279104481591902494949970217829833766000555781097939448165281765441719265773627574911842787812004307616310500749791509690467451608212345686268726364112670429696922049354408915538345295288565651566684752527843868779798016552990371357178255439333056281928874049425013615659030676934933559086314906132749227540949045327419064302420585257612103203567281348831229884980961504138951283241092060356312854446483812428982394291672636559749178037728434323706338206164521313320561480706896912649468128157840311247965875638581088274090726637778264034282422453457668907487978136944691806360397296319504553919884492567262198570011602709321475122453000315887357415083312504356245856996734961028859855220286864292183350399013642548351517950037572973744684466795715810196887978286120124838910721734357506361876853599706290803822935594753094335273951117623048013474122862830970996133154220768034803195973924971276755050559513193061511719018820596910904405595441595079162552434387874322379302346199436993108560384525389731000661441255135778743739756152568012853016531574823862076383774337508107251834038802886821822955283296626324366259885034777980323638724073646814024005717456490533797257576751731001414500291334226483562025465575162718971075812873459025201882703477744467606004426092621548237011456203321601605863768983922786926336866358141746038533932732784229605035977422419535825390455610045368645328288683828432081534006751515639906391074768104684404836453654559294030924683806031945997306528098152248852605118772862793892667106237519988268251322996551921127726812975175770032180585883081979459699340132416742941673081648129219130393628676428010296320919466077620477352383616504775994829164216366866268337596322155930269225046279295844657437418495428242221755300594282782881163883016622350187105249110902410135397837202103505338027490940849694526261786750635522186672683075601270826953068532329324943132924767040948358523379331257210145862644801519935078797523016604830722617427099642701418683080280881930212245388360050535710071378891261070679708422366329931104512561772177962968262636141190751893226795883455231701255424389467134894967251004557332107990812605185605088545852239019446109245189501151658507115217880739306905102686898250280627558037855939093467684788904602528593217853288361921784498161833962688988717565486248259239192077221407909349243743036429431160155907657036874522006212477531750431605797898102924331048738745601808276653017574751006091465525840381710867518524308565103797795172015235059625671673743001710281262815140312299508998620777696448672326365600097513335430683509474175377671733446195612819015716018805807631537152521576036422429300533900229215158399316418872518137768959511725582720082207989465943185000236759509905756055435947586913168127485849950902902045403365650893704619933571298643385869744721432829197936216230967358527921622669399353988789450768221469527864627375918976717477764759958292287659127569882938616816896609547537815034739348725433791266873398399076864592745489531749011057881122631251182227897227331574529563880333539168134801217035558420479855445376239619011503751902094270309958808054391471294694309488282824426220457752573560818348919017256269153788694087929912912771731065657634886802459419247389828906441552818659955784419216725208975220568796170805554733413389618247074992867469399692290547147883668006560836362194798605805069495936872382675385760001443334676474385581956401489414754738222291237829257078762884484042875299129687826634437018801792536707600616140930751580517494144772403223703466727077364514160876419539911118258920608496687350229601831621012909489321274484498624800631250405226690994066781402446915579298942923802660336263956721475231179374377969392701997386613736033704990352126573111319493633764324265152816808321989929128418651722775233409779027723200366705726022508893016546492627669920837756716328184342686560101017842744731576911700041110588541136646566858285677194950253039304132751104374419662259630914895342881177129403187444357833634258110221392379615710608408253331177399800212382356934797489241574473622455649471813152225872457491235875102395719329456954331071728027652363758602625181745961288278343150161240323587728773502591980151676491713820473237371194851335256130444934557710705639412981750248451974010250634113404284571490027929976304596321629551492463531399897761549912027098624722237081344841221180092152576716022536991699072831790478769982397488351100290091923008859121100591632212691058878152782124012995481944962412667711277137876027307343693881895263482220138854200443016323249763404678325661905999162650501804642502334064481259731789075564136006369981691421957458261771214972589361319159937616757048579679788988587655584289752302870920112975523561567438576844070937157893719065150072701339890217626174367977345111086321647168203011549695943956227662241002759588202180445262968510898054982485747102268967720153055895904356558441568231091884885861108760885988225023796033980056543390071931384742818162936014039557655412343040927182776285671801290956623213329449436134803208207013376240968853303851567075983184152518797759853382438945007235260057327125458347472844643907335877434777186488183505277645550442158602800821425971968189631434749858089487405964067445500310643790515386506366075178400826602858602267850910375081108607842690008873861721720262254542643218557929456545162137749444618508768657369760962740194634237180925134054810570660340438269883025921025542854695022728805087138455982370165930228556674622151894722821312331135659800479416123587800024702052571708349032523595217572014870876199833503605537701337897917732657478871601134644100009707645456069612356143104628014985710147562994029820065059910082046682847038637812831751700245036799580559149113856976973164033761481854374322852125187949633679154020094616824447863877031083219306984515407959221383537017470997152614452656977307323912287614355613821189849998187340648394306586625690017929688433438719890352458514964173243365537433598444217332432106256662249975228969399700492178784086994901339922690481929325818502007254027530116302989472697156721802538216169705637931667959879404486681068068166187261812656911373909445688699551119599504193598079414341511847202366627726320227295707324930440540442852703540101330375199566448828666983150173509740117919191631741973081370917257754750485403347331401216360753768972833075807932415130934033746347328839126227440065530965621958959726016862348442035031904915433525591820365074486342393184860303840670135922100608193358521214533236804803502894545826954285108087973226324613958789674282517592012019418098782654200823887919045772827951810418805369914082953784540497932171045989512219831423808084476515959733999154046552093936389196513264346613557255185737960638727997378872340349891483997227126874894109140566083239777683658086117798812952611920639928660015819290193431014315898962919932902805091649023975521816462238376363550798370852004019662676058708453326790658855477336702172951033185062377377949320328255646016099435538256454157927880717204121269905083977573395571590142272274390759149076733822471259438299324140583860899496583974680549284262828647126973433169579933188684713864315161704938388067393191824790542281770052923492003482622741322406923148640619428953195204788368444630216744167732926854406312849652726425364436136909353682575281590994005432838403648319948045296977702196257821159572175892144217808949961223356116215977241815876825082032451862926661334782378096011324901050888939025465334879265208746516697852247757672133905835128389142017367672072282783712291625094012153067389111241917041688453584174092178156283416679734512202454113942834266201618576555776131156966730500665591189888413972025891393383795772764476670907590941293129175572321277846096119058500313008938264569574907978371819933627049250846639502326329939749834970105991922713118506940663315648782887719161669592022229867030474415022828234508704421478037943576279763545102630936012850662753045131285200095673748504648902930273060688870873220403256766497169928522919606919195328463001918275262825305575311611084603171920512212525143943869194083244594639110840795877944547737212353349665421543228167794262157966415283158419029963075051079545667305089183908514072319901116673329613758419048078702380993170020358070486186062278444374156676082509703860808485798725759708399560567250369007928982326824263682786355992558273261644595599261642409333858841125774413215124212723026270904503010476172390324058153742458036941899481142557045306503149802352908434805941744650150655134096655973589989670818568919881274878466820726136418344702210382987661083799811596277983166413868384466005178351632078245257286422218807936022235441199733813355948373874733277084095276399873052800011455797930817382450717973449514770215632107430724594882602912985881416371233824556546005995543163832560661138983272144933789128410335573608327889223044680737277226508648805397938320395666648655131588831264289618034693738186137720283915525285625574532313094239240566367478782035550282032974565061705770134992660110343819564311274354983529491871923818839751723910255786402464989929954940564787514760982313008005964810364787881463968179764976208943851505921407456380977421859643458568575382856432772760858948245954709529079508148167090672888967135619251010741632763485909437840961106419004268321130134018368290259611604332347637896896968647446614048632761024424103085267160599882724595187956005701362976826252252305124161696043346899459848744076736832916967973397597979048150017053643439229925221992564096476016650010396568191383458031210233788078822661958061866263074361511423433265390239497991520028433475038277989804491462324455640591419197201052810931246607227531043446928486770403351646004537031351088739390127587251038784884460058471479885739063162692827437945062857531579329945194599338745601569920869464645036944841730274346335488928348610235961308812208161297540062594983587184869385179463987459896794892712656804858619495976526854043643302711662103851009587414773678124625268152175574861616051776995401611570119782805502951331037984960834867312815576244442552643196832744605214294391490052145888502265768997475900078998872371087312980624748868900968420872512856103280100727332135771774750118719644875445212719068814460583213020948711893473589445220266173240951306352643039298715169551768488567420152820764120888672177005422954089347862849406731302018888130236147058701119402817447440238135357898035352868429683353354566155992936556076399635996595804580389090990847495007195278047138976401686589646983096158661490459588920695886417360856562537058183004268216290162134985988712842291129164608423846705923501283582436274490696304854105957183557075287176429747462600371365342374286195185387521295224291081704358201912979222248139425523224357007817754647343223243148297390804622544356143423512143125476817131206946075740014832481166107881056478429771974609628295478178225431800402143498367093446234055184515024562603476143144298217553574169856610378435452688998471191705828879320968914800196310034945138307242365429091159451095180150483966359701603629052133110688343725097650445368054281581730434460837086274752185828236179499104434528983322103809112432550238890286593656970471662802927577657187330831230556276581728826437982307267515803094344523997305454559554473771462853677199324560211157256887494751122737961321643203387296197202997883094512542196999856116594959775121402783084425018782110605634306674518412203738636017144898836700361227368775952246537736305497915622060651962315143812242133347995247854171939012664797000561620779316418906329074933231848722723589495239890775266099911840640633247566085258141798654401669502772458554494704538630327272874583577712048507752384417991600205199357147919347504125999579413794639220610399244988541287746966606938389057549308606930546004643208495793031888673537012961879357118678788050565144676173177149261923301302398531418849564061257163681798242522405778689216059956180425677202343519193889134192632117959718928367890747911563740563705924309253493912638505729590608563381859665078941352667019414294269474381694645832299774303028965483503959634112942748108035029944813274075485315670597792120391655061190424058821447195279461373282600781554123881132302827636136400456356373809404352979162028914566166147112713426650264775199050346511134743757387482216814414348261591906565578495220685648395989065694721233877372865961366946803166305953613800361341325517734641629160233954042104698439133068167413538505049625925115011118610520551819850532530010141386366239495539474080525965899072698671406411219262584701359239108412199736281904431193289142546381752473479418251870310100608444273599435313188813392472103503671900741764214341289926632997396675661763745599952543212344980494989742555011667907404976529381321379552163869029992010810966878033268074402207704258293103126004079410059769603641253505543340278714236827339694853392111192168161499659993488759074261547664998507282327856652797133300474439263008961053994449854056293491946432645341611170218745752755678146531966812249454674968130478929206642826896980924738137230117958347055167779699475489449012809623419419416429853864890156338894037172816054642820033405284164345395040574292391342540151085430394316340159650996130921567291271824300814875579069083587752314598393658540035249529602555282196548750731330386067911061251106418020567149483876718470416728016776719659847526758018665432613081440237168408222032594484366129672422536295071776901302255383950435001755883944594777673402305661440528233687322279775343664004072001159423404033301504713775126053301679441523841654213998895233231613322235923522881041936717454204320848683537770217060700055642840443572278145629674869051656418700801581247003940534016966251629864275899800896083012046433797764176376910869111884665692576413083678257626171093468051011128559621771219759686312646000750335835858336763388448742949853773838020744656282301027314525786890459357644055667202377732374075006731270969987593053943259980039460706213436781268421653427697642897792987179088481571725027847299160339208954738198703428072033182143485265942487468728305793488870674128817956910564840904589995809029594652964351521255437094926867139685348280559055315249969888747889333117152867095144273659396824980748771035338547189889868853977790271622250062304407963202119688647444187231761380059558631921361903058288776748626574821487924251023682793756378616076933469777459949779263370523896659133323637203819931288797713077012525046224043128932012634955759966970139337635535511546191427278060236016921452656915587283470074643741301912298234664133651570936877639797074337718977908413491523958607334491120276678413393098126947271891946603073619380751551841499046128465905543982556628625002671338874329015492480845623298512237941376175433452567649079978365418089528627753317804161607446008719037316212400170963660624265436309533572292591221290384033030873416572640157121508310887372290818283845778609858448524991626176056670427484677393027670576310569611469679254967512333222484041661277600575091579792306869651047341718418091751589170278335501035177325817277624634108902107881791760175922943471182280295347028560377669149101971689399678337781846936267362380690020404492975836761408401772450160958907684933177946566446252153472730986851049427981668569896763465358598426836232347966937606405701308158708121151492099197427567401731178303981362087755458631342601794352216039639351227725372185287089074705227370361266692296791770326518483447692454425947518674853109300663136398305971144467106258853023315234274274304801245090034237903313088125272820514599911837693663314073364605902880653894939433865247279704137144161793614690667515309162124478101118371322489047230772752178713169841615056299430508376625275907818686527371618197042211046343272812095035192974720158745328944916174686258103600966398590861739157374453677530708344391218734059751121370031772240054476994330012131834006193496030781665327456970214295446929135180727379657172847822485594751952551495712805625003084979673051735297823447759864577788139931456258597703952892228740056968583033923420175427263558853273711181495954406754273149866405757303380266855622755748034841313426566659663502075396762830363092381258391301899155248142439679185727400849626058595283956753272427673790323634374565489043652157376351176671712167334549577227116055940010063090558828915397225851823747758201639362749057104631012918907244241190079839573940248038793296969196856591416237125336615592240742087763728552574181168632743837837370840204068134145011380848146332519401728153573800133094983317232471874957457307932673778147564693920777408440636555094178405235697706728682132699584198466419216232215381901439944656665771504798210330006370990864455717483398367650083766385057015082874455806738843179043114412038602702979307744944048885844104886706790139559040133660346801613982837013873511887806752194837336617631365988345962034220398908360793008397674720464554460936773436664884354598307955163548066341373771061987441807900038355879728731923418879757776708139837178389429801555982307014016448848499550512540778151116802733292596751372685820215500265550323465775979835327173925025371492014256053462337782505099644148159522277079917747634873138095420725862483801453292824483026282480222644641360946270883665471868358814685808718702843025437236935597478859868219715591226611261899105949960168809463624914556645335492507918855139015214114545092043313679215105985818475384100818926260024076689444675368231131967301026715967286021953623338612418455035658094219016889270338171520250303884141993893808494697129937180537244630270651884413704265587078591473050202061550507471738053729201928384412732253758621082675687443312525019895531938797346075857019982394431875168563153196386136282414114345900880091193638432625774557355143657660822663077099121828696796361105438490519840633687709958879750556592732548897110383087480531074454948609017657442039257514913755514426038187190814859618318364054219989770999958420385235064049599993347763554566516615658455021089899419258418258452960218403778454506059751600163007853226030156685013727828606256756238816181141353855757132458072341558974860726597256301898711426893153359401476133130145592969733278431839024324185470758797577903575811091283930601278829639154684023996799291805391502856210210727226804812709299787623925729175673607219297871386177980843355609848999803829247093793319415594872562960411964560533427310187235757581851138296711896713794008112259372519548803770003844317997601528814362435346484089055438094618374605477087749252642780809935006943445991331989258808556017705612956586383627271281146644463046403064261674659534512926928454066796375192643582085891942171372596759565622040652748935383328145906736797531338687105926643956307351279674572312361240370212162598133554409549044024349845617004935550281180011846465613657883208279422785929518044353898072946242143025030010407591423559764438343233271425494532618775248849431910993558296856212989952766350107682467441852066952653632181366661279489663973493346341969799262048840169222268068848156269811348770587110273885493374803707474865947269393123050372337292056240574710537289385255039723706024945237637616009776163433846245076453099112090112990670530892370352923716487654911667977449090090512599953181340256933727726094190302435174609463690502075079125733348152756992852880170503960707582329151019180203017966986710803646357189406003314459409580396941512099796307048916516660960241483995890214621918768673295874688777879252735300497576564307758755893653000098044679825546164099938887607599959332351316144641069765724474089541396799088562961360287892464506909441875693924049405658187013762604982332186833457772919156062218615626865369142496391114331177758757120675048528065009793178127368344547776400804558940253985704427519703120841156971699466975643485914398610308297645600196053769197920684850477471580208341264955575655325254534328863739003713841062121546682098144700896902154382879786350218616684986140441213833268052162946807603556792744249098397632300875123169988689566891820695721565134763420635916118365886561348942376498824951870191820394454378014671333055248224918557503127968067699984732138429776379284522360897243912577261928180358820082472960293222223151371119732177762323327870798963051268727337192390155938725458930685347079387261278274561576930213294855186035979763919886975376680472791725957453705459853400073693505548439519037241019627255528688320118853301978132988459364240592749231575380308831856524769176322851716000315471874882881756850628492613737915101467669308125721286773709495436259360739081699526602162440676534042645577866584281710429511038300899035752487917083354433687789540330639796375673483359702958167102438554800467233464473282457319068668521107821606420681471160213630125620375511070046943695431445989891780787348131678579307736264139373659303834852846468725090385303692479755037375528785725155245461011331635729984315130742384946746140225631385697095757626430571467734696758763391874268370454238843743036385164751021914666469153577250020611838132284428013186023674922586173569045639018809946497046283200031154133408218800541631832905970652086122099113480042147914632682747563055615512824518226598655557319088974285354839843119380362723042245839063877164663590890153688184306856576683054692825249970929835812120581479208148779624889545704187875417914181710192160493309880086360600757441027435351134784870193746633195010062490445340401526170644650129994951612237366716089756752767958455152307947479683999136374619981129802613561017025811542596041877682618618912048102512136222059368461211582910117477437244198196087642345039782268738504746884685873849812047867630690150094683265218464799942123610568591773806580726871367346225359132237616364314082032586652038417992890712955586494780499968403654801418952298121193418109140322046657970674274539716095893788064633563840163945145343711558859667097236636803233403932019438652206186340533326728069973491195637583427428417322932639484309482878417258803411554334472828866376658074535368484913528546508104417597450356927502020831116896453766499481643126426764448169812761037806428876393205113787380035277188164037116239612277647925220584092441028696824766045576495648766653465551201235368430790026129960837247166867937452629851753526916469260184005947130663695724495588374645606757798713528776806705483280966160421120845373786694330939580166255632875969970085902321361592866771303297082262222092548065105660478003346130185621863583735462719746725927233489267548161103633834052881647388027041512468392182706960836017418644572278811078604678673916589746639091357383267145160213002522546667896729397707474506092048021411552535149709930803034274909460684269113249598996635702976627291197783061884803228791057210647285846105896097780355945232363685511031054092970736889908118926576677057410590312458851747478212445541052938790605446346154511568337073123641891821689450866932908610004188678965955412831990675511968105900710734552972152778868380152973974273118586633357456317086582346558834899903699034479026257293854334346617746824486984476992937860004471105963998423261786882570702395585390740065430951476949825044972978613648233723616654908399778651351939724423394575369230702177663439504208107098251029852860851902216018027876764990208007256066364381435822584209877169805276383110425836087836167441124197552706775268150263844899363189062240121649123732589527998462291595931921500927035425633278293496184693931734149185886402773951968608220064137972518511714418788778805343331739542181932435953388235443521526579154384968578119183355110423606772303676349687611802414447663513048155490254137300598691371683830090986309425034937816557822101344202022051350542277437495748169522574723118564148431169821034720927394432952379354428638785369311897013116274738729859592907236067259430590644789315884519615931944079989689033408942381921076854211868659831972854166170556251091984152924633052808861105828002348776304332471317208087180217576471548519453314247654813982920870669899034053349498211150576437593527949573803812233377920261308199494295573277821347894386179671432698530597551508503882417308904730607583496149922992883493311928528380464919017322315389134327502486844423018827393123541233525943017006344962523089470662221498991693169023651721691995914731742620889027248598584735034249232380518558784781295118485796071164830602491345355435611083504669744266588054289452043846704605932595806272087197934847670984092750835070388157452127903570730317624341554955832631988430570330615650181159425894205577348343690344130149402622941532142211341552437819079893031163658237362214928035685013450191299220396078447977548019462538773247554584697990899826810206623446911603271567886953446875126487956745958648307385081070185119362605800027274959731546439805457434746156558652607195812765243446607161926215188074733588933063295763496011830198068627572843423195557162616968642793501675522931499388361184016938683640438115305195597422222179864211329857089685173198419119092200353077041361133481521695470758409591043231906250059023418984509376621765882302845932501789320816164785826916812995783229510044835098731212503867480745081814491148025359569440467409392640750976824308540288213939460490120027126242227810421411593889086782511849028503847195522498114610516304700709203968828904036424207914595435570515256791301149685338372254208273869325856564928840387397517337996728059151719940157738218936619830844595090982581344881216220564436093560267834603744325339838097957580180464285302466238398070236825974004726232148936609689931747945467481209162273792888371036844734718515905881044166228738654766037423966006430131676017992204260702243660148022122113379548627882189906289925352981362555840154160236239890335818849837895718723115800246305367235853246115788323193030904039984770408169626098985860417259268398578144025974376480031905536997349190706560944819888793110770579776314245136099801952948439719967223281953764291625900171684463758530923978496053293803531006807708087453762884097072551877564949077121445761866357697209884761753264170655260422762279150510056383916624534173532534801886539390316908953111407713078000680454061363199707654692311764287638274859481784638030147822227019191032977006966503325093472602216954476498127844084886614842553166525774162022366015236099005741587944827420151074249196995056849306689747469153714097450455368482620004272860946644044776334199716284280370414694032935726955426770772795577931732483813576731910029515383611649574028980824581182719530250952525742740518625206111340363862289387573481700455482207998508271540661005896404600981470358220506222525198828207688715378963795461141769682481007638301526132431364760701145055821921701266824324468702131182605542676481601994686031420027370098826531646669642192843491589204893358928593738692364960235629903639489699795208933894626937782181410750950315020102791029140021874730431318699967287070338239819075845915573378663618236273786197722279706336522816243490536670027578704610178193023377130495968963631102990959957436244311383446788968966949464034279673491843201958751782897983018518722695847409402656789209305059164881047080293773722933377276225503449834822482894433450744662937675618678293883258878036165525351369772527703431201150405887442312073049235885942835629460273429028068138379261762813310928152157314253531735140844927781792538210277748872215351559681575060386682384259147147705967035471394685702368515970464787536009264305970324072766145941115018173258159196352563346150896583911491941833745450117140700487860117481505909019759277792012873618283888374779204096932149545452083419835108366654650685872023002406296971111975504869132775327641274825536678508828708209040168927949760880745156618737472676143002474465209385040324016827367496578420656999291756530096255374408706239121989642181826323494516757729704107775279194370828601915722456416993226338975674558408726134324057299111340221920151237140217409475961581829616919250971836591729966225368241895694995519464014171687253704040391993818100813235057981032304117947446346061270105197673830257250367304227679641234880134860965912631904410617991155681248956031873281461693195046275140242558268731414726961930161769446519948926731092795082125318260095867611876814710713172481463088853161224039540866204356410656547535043653604035876453610769792193072664578006000216147611714947490528428368642581622801042322791869843250497748071369600398051852949871127617448950944911024917755988911285021053529647229742350697389423298320506425024965074126607188320609644971220835462523581122613975426790868920832675773911971423740651314097046743223912532495425558261297436955176920837433058418069583124716157680633600542232106230475481588208904300352925593186530608617886918765388136424377166240182412629186565603336786073315350688729011315452106049934879455107685331462501149315566655597434962391115195874644671877218808179649337079340858361155792561785733320234584212866341093264220240749096911204195221860282651932065261744023062925634209167297750007377956161512827575661255957011279425877969856899257028112298022304593998268653092657458726733627579357604949377262461914969902903911183473253570324481313895338593078012352584839105108482689303963139902434460791577229719251255836192503654717711335314567250221355999825209900908018722987965069024478646984817424567223252934004655122307850860843168774329510437561151852923673885091199288525485627983706744146334832954665292492262422492672823168099745546254488154091721419736706128785816836138493439841975784300688137418293371752954486013254969855931121151716301975323238272783951979581066097950299197206650194776483815686829028310948663142526397647784148756040244876268462022869077762530828366578424396379116268103994414319000743199470920336877452898412036580352357389739183536114591901950947424705286205500098750697250051596643998746851004584675570999377619862943227885040615070842066118264616674368025159133926914751293145465631359288411515735617164384146878078594523749073437890708055427764775818942581461648250292244142439619344296324857565887372122177990716661265302665350725264478904891716121349761378647796466343148495949855650934835274361695499300296426523671736264892146687524007736085131907961035258697943893160096316396759931006943303928412493881303574735217327201021073815047403810762172953452337715850787540510380224361321184186989104670365101740355459464337342310827121661927038379701442308543842842262424534204934899211331819134682312510535860942049232499964288038676552640120269280884033872775985100184458645269332187638773771777346682306212794575111171437131035840449184663804168068904217726037165341498482343647134182326329640055165194069045287510813326231666171798726228116596913142573022915836069005104295332398631617291241853833698730711810412488493836249568029282954273707575694229626065809325483288830725991643022981969930702578319720824745163910604104545601740099288375219399735884831885594442208234331688805832030877408928624487616677921685336800984445691424619433290296376761128654422193849917517240841919767147044593315909987131534204462797145527017270815590624127021857629259919665493437408993694267410221283897587607736001412210124835326894579351324720535046095081212939150368343972322022543675577079009816938897267774385448812311078983545348637993139614113902903608777737810701419789845533745317246634945902062708605854003721647847151367595120516937483745719891708123370650684027564867538528066494018421708734380888029752242587193521872708800177787493542408347694350992683553319247789466804868680472004331956149790760173957213291375984769890968893709221747947412392528740373007340472793496797918954788205110830560475213169016503587629303604085107417384819565476776459036107373972645348154724911791576355129739684222268508616581971108012325088349224233038592694057012348235331838304910225291505196926124375515467699728581016888403978695970163033172975897391665925180211192187294912892998429333084799400921295603068049650323184509958297147646242621730079350762599282832037732664872488746223595328706896129170518804498908878251132466367588298902525891147951325143865749538077372974635270901774674383996646804478894669169414050396653733141558863064915775696854873033337896978833444437927372661363485055543916577292698720879512160088276054802337483518960595979808783181575786539573827658434740161182783587836485441111077400887401923264389925530825432731463329875543760985367836108387963260427935077037530789755909454384310503626137449922493564590298052460613448966331170342504325234529542228788549850628325547191736310274859815926150490780400298612771481542488486330406597372289334564950264812715255490506007357191350020279434529494270646979754645790731361015104611328617909517097969829700286104024575693484189334619363564912124566902598547096483769088606507281483836087664980415368978197260107865223587316951531101160697105832922690766679303956316420952169558814945322067293558476324817209452573983113489894405536076741460965179122734635126888119407458805182921172334133117738112000967860640489146813500820134425784668942403807547862777329442347775859388966888436714263080553766816785065292712400170571441497122448697176171278552906392555531247662079850313928138670124839905890752748607547975881516946370720748856856862052623320747426997830011651953507626758350893277593569546730661977268958670291559238967886356455795329543239943637108692911070736379563267279465804364006905731679337717353684544565780568039284419720867709848228958462916316455031739566164254903435309647867752724953281036531922561136362917436988801924681474317619582921368707071774675156142870536780777908996071145513473428464147199895911978890874780596778157961630642522205503803965119664979574310585248468757710487992014829868474555411522292577281047465402608260332359459487739423407628664338830716678890126552905063207201419850045033714577708868311245036966492223933843595921066145748495123795644938224183783443442131195528255875217833839206984599154556261329569580387570424134778358387800253755587733862003109181161280938169106603804213688225139942904537040637372664237093939283069977657860778942520755021211811920315501279846630437985806721200342158790532946136723032467139985913914743440545327434143924781866228324218146436484698405047024091228335441673410354149636859418459898501847288091202365579737386047844394027185722981600842997178579259227370356375383150494101864051429691521645804491028653245223774692574158188199563010892443714270062314209131762891455167031248160006188483046878257865519800732320009480843690405284971514718110944919478209469188732859813108912348029280972160897524042500854931170578506729338832465079273613851311094987628125500229520379199731122948667821811457573956920502323895790826478470239130009915510498952834558471824526784434437312723590371799888787997463465480161046787639551979232232089435462043604374593478288789282140407971993816407797475518696813882499077565169868961091992972144757582084851517835883699998935940369158673336059782005127726690371109426206774952606945665774990450185706155745730099406612987677298779884959821884487045135633670494932412955328938462924575408967029049507593318583674155510953652911468068501528637117463445057693170397347154570891169259894150005369763680730397328767488621713239660041887404527123261583118631103613175020368421051971115889037421219429383582892104514327252507677405646114212944450697722192087148749080629672148646395991339452743224515298123977185514606452874735388615945764902163788965879912169353965245952053429190509725243602911620922369417934820915044660208196344209056204798293338769021969172710718370309211250965304397344329524798875630720316442087158581931135849580848486388554313568214961320258405789652453528258132063638094134406809503747967049896593901896406046206987550774160271009411098912119741663414975504483828293445627100351477681890147407997164076540484965014560635518387594801752064785848822825954435823155627444827071140904722110116076905267160010051711311645487868549702094590031283724164533504546781432505362068562901193217623111779019477356083764292167976292972683925270893706109444582150769655905532670818444792842991267028920336304379781737074139633334534422014636687229213011711197321726717304451189774010527633844639424143568802128639710968007671465056447179874595970960216187474585629805527264676839813196603362556875564741281042427357576863903348397009479998265450463003521675058805834179017537564502325354824566793996345540243996624233686975652715578055627817785026969200582536627655549531341784480078514806073451206376707980418662733145772945371932030101771705929589564265084192271933080135005385375256646470399375100297877301412190013710368801688129699640277119015513244076584182165949312304380232447376153842074824800605013311227252551080409589062165690288334998186533055956315709137979505091716384335399853389129279181732826261945819517914253633481518351976473460574363739836130086138137349913967209263514267702304876849145643355519930367022788470816596008634592244042031432229846798563155886743945899504618519450672998477674625739979981732851084128534538579002752956733050207270289872891751409650032816875829934412341807847866546653899271461320746316229620119077789248683619516779339333399746264695962512842373854645787194113187428874227793607029408850820219075930602767688705178429810356031129894259884457118315861313117096697608685514121100952216849243380862195212716412258424987159870727870175072591100428799840812139492399063458985988442852124926036993241736474378643665587668449924719461468256796674323516723040943808622776150024276654101486241001755726437956830346985440501328322362810346347374093517801962286660483973500599716567741193574747807092787983660960643769371232014526590370305162378224778341230720064568009577191585321851529040251098045412149392839694223973736287843128452535492724188463452163555952439353229822046261218521365466978667463137946043650367581444760454542007812935010094108467734419473291085443816529222924630076722597273553651456362408131357415704201703374833618604176478679559748842742893710383712619541495117573997563081378798567445722318923868090810029493644526576311637579479083921560074107723226247012468451067857812352678993766610891648430876193778575870746044421997750232521629890184741670915590804667766919651036768887783379884418065567154520558551118963349792973472582251635021864439671317221885826791425841720178931447157133021989841389457370574533855278352169002549259100018152879313778531291642683297200715140359136650162412467906469471190791476532359285269352138097988774826018187585475285238857837968111174888664723063856548109512566715665948523019860046189371216425763725536982011509889475701261312607579298714285082418105333886916105019556537406977913927779951290664584650938599356842034241535564003995225214225479099514188271351982978704735493848042898037685924357694955401025902292175708470087714593555936295414259424612788103299462142239683242270025878252849105183790876735775590073634305425102009665462872378300567768135800489839753469840688964332840929141281377251185805059609770724235590580889818320872982594610555091388117234843892652688588800052828125535836843777495279031166587540849344793411204203730388325275923387909615726071268055431778096982808423295896496651634378462340587479429047565506182624275053030881523607305141440404558695339080164281994322459095865963531043133471193384038598820798613239082657930382357421349694545877755708031450878038971048162289382459918879103177153907173059506332255776968563905166553762533015915588801451400192598480237419504078744169766434759170779715136252878116946413063367129583674087454212651528687534827784324716401787919123416262311377022995619255049975764450864062333150123776953524006088573242304750842508524426861860033111829412708280325060930633218512620290426741702420472400388529660119037405353640855292064868319127843872330344256884957657916058946994576566502236898152434308715990207881939892609651434946732339444655819976182663875742638389202306274258271383974277078913026767330233281786964123318922164076973346809053189109888961080303789109642563266878111714419082847593850085736765876157213473971258980640731624728732941189606094913802516916534253706604042118977747727856197496542476832308681107480136656924144801545425476169832238459141494316996041374295799495849601922697376204458760099012098445750922548918305104632255402521210854537727967285729121332849896825022424882006899170537792069931088518111199864384984742222322767394332559377784405914427796654322509427994142904171174260579033072882945919529626900452353506549392016949817594913479797458039764365664941687361070666707677715497670677964889709178119440160261205164702385464446928258944903822685011812348466849894976634410998392719385530188376709888495720790845514451800340182133027286921314048315434931020960200144081947571163003142100467462770079275927132737528897143713695841022438155283291622402560052128419020011073139303378128045533407716952182287953669761909510872719011600161669850488103468625447553371803996241300820623378859509555775152306396217347615619400415808496587136176706295795403686994816182214773829278149037000182024334624973360927642105954771018757478146808465254384416187054555908740895842344534125410423162226889702030717541128051575343099899577464010476893845570814995583552421228777519593581102867509000508609918667404926407092534036107673644170545188566352548010261932931611041291963758124569559771253014434512839708995862906658719189761446132297779873990538599124170423916806861192750882652013396764511375262088485409617166617978524968651188239425864371941875332208943923013720225216481364326828448189569372851316258856254393945008591523447170170514979554110090970701702665417046803247955839891603654792452098261482783896882710821149855709579683653040311506980008728187994093360224779053165148830702909974735817870367973430285663534012146461340267496832804380637757412960312808477284006174043945052117629118491334170513498619644607143221565758220022259241266678101870783020836821064417369229254471017501361902119721880542612497198456422476848301570775517230941477473301673425474891905943068608663971644188347438825846782675032812561665576855900361130415109457369776824130461537665027337922119053050426008661067457099934194121569463222076924096414068517367156116015995333633091538894768794722412392403892903971516182635873610116532150802989809301657111380107032491216397775797005191413246855209190625985622704433142290950056482625404095966224305795827116905728252204628716670622467861285032253867417911078789389987083801847860684137898098165381684770103713561811403622505731486916077484093010161519240898921146946185289297582159659090835936399064515140987420059204585209653480342459959931479351870882419068833489601860709985890913226210673308519633148865851025390935217562585030116446597799982933610683216562089126314839150624476547114974783134143638211948762177802385883296021422878416368658617074104090376721131199580115628300624192654366131454244880926525287551214399803839626311116435542863862979677111585327004900525441002806312327633664615850749012188616857990743952484384685163635507760284971276914995827703876985559137517580489385437491271659627538056704720600293766994657108837353418682564750304864735220191386001535247628996744794757413041479525722259350597300982660124695337939732693230265659874900841747289462727971467499476163880201109859999697786937161832345597802993076464876017752020423259841219561746298694959160894208272239151815928530056641964677059313801326831360689371721081576996898522082085533490562672208036732374673377614307050882012174423177956938202207348241514400452953780372460035557476879542765788578961717551473203141495446131996976954317605156188488435924681556229706240881239857011221143739634194456898973225511818587659963170191823264561664255879060057747131584000263662716178421556491389753905820482808285085945434863230723250406079278691518704440065910140320606909076916839124887411217333719153241634254063452033811647026687286859708339176089820267228246972592631113160336001896769295746879260738880688601486697473601356098784858886578631691477343875419805525361743947342162078941874810833708226498982363956761402478805865054391723641859955231626370836500638460617758062166198431404455642514349421304161276692355780741693723709591167661542060615862016446345771413743439726631292330751796560573103511895356359460408389228352522951975393764724960240673869941924165736782605523299786892555477537384433108750391647997620513422365757579909335314127667731761950185469240702468723916599798808329166283020733434376444558884184744665857860387785244619902043090816683347673734772794875994593438890794660748421836271746050665314586746665181250820588362669765439250963711152718557326681161295300350423195838428220928532315688272239799803080109801676292904131607669557810624228443865447796979000297197388727288549236777599650689893451182652318571913320518272205425436731093147738010311853607503154307960170350291598225110427130936564094880967943456922439327046810293330028792230013625975660861981501998149985468758599877347160567085363919435779204290513264303729585093478646653192442032009513384639520205926244240008997300182269227431562415212729522637453993646758324846635214984546192971762257785676747371683274377157129176783763129390058548995136778950201875694922769395813826994710920661532570604390523144416208299684711807920292044457488705589044023844136646924761728752539370767937925367867034143358605048105283627858092648069887838008106732296715730522652642219046737331704048409408436937434787042874879969281772347034946126648045324362725777842477034419747184372153540515567866266955288159249407047680378916009721343143066956740320538908167346371409671292724248278763359637352313317622108555313186743493667008538639135101304841815153646957129577150101651426355256995957317818389298802510585708110931265924474297264541088371903494413624006892663608117404787556513942368107308083722562824012397968391426242500060517140692030674811421001519782845131807152229160977633763736061254007505291248835923632917746691855926439939175367702494229204012179061096404270370534200546376324380479782840236757133271101738096530928116939737468809307575975305935359878525608030192040280742145752621948734421226994644459636111727520139781031322064362534398380905717710083545529291847190772295502798024392924119430016550789300402105781014835210661025371312873370097011206587136042140112996698692978070264015006364154051563088008718265217914049593019457242350485193859974416911788374706831937013936900660916583786126531999592517812956112268824407168741278316303694685104131125189649551952898897146217957208063703084525777935560039709902534630277154540565963528003965187813530608406723701570395297933216082160980041388594539846681304864075296915247898932574481681513028679393213844341784113325601901760848712714413193292944855264387304831631644750700100589433398237424934132388765756523282576258304659192082728241677484800442505385798183423767408842766763659500957721226184996365338298501440654090931457668959197098658411198654940649788286822098911169034196461992973595199960469375662211907686840754928111064648272028888534755166614452847166049755749169013264274775277981149030493512196181006745888586003170473475305420660092772629408141595415632444863222024395852482954963395180142303020423929735317471585064553851041122870722825207548743797671484498439669678261085553504093683364055473496051315854620109707213958254065499941271058704859216824274772655937922795616687347900970795301657451390981635636690898948599213341666426425697478683254799149943156280415310933660139952637034905856792809128623898346395516360488977217010403491518914068709650373940732711512797060921157304134514068161460627976277620170472621255564602699831471118965175694127189876188829947795102205206706508549552705271914195965706181924908095380174748211661533322362539105904392541768937420710662189001304320471856620625013361694722229548170034456994590250821791289175581041569057776028821029043344757489824417396279351014525813271284431711750539960131599914690337798765100307304154174406779733883005538288205520562657848136191322576316487541920296683649560076805251770726182879651662778042792652425264100607941861210265265855453901582853281974446470925630600771162705898844016530165111880285108193814480725181442588509725531187209409423912295506502889654125847675686489649872510727655524870575451906549810232751357908821168976025593121796415412953361602248197633236153194367819923242209633976774299531852868825856107094598946245021937985281156637721315778851548573112714340495632761318209244294981178969864688064671415433474706070132793232712437812445540530183536972728840594197750209477051170830661334959885738000041743429750741471100185676963598948383419239306682857383743630946624309531221685196484283686620811138124794258342805257490730887427885748670708465995241135592320704145915289510128866097694452069674927103202537601786501721796171657072585681863865538680528743725469204987183827978944432458979888543365730186657910063423873880245446463963926226469258066796918319781998473692333230209205351206880170329882530102194471023397142513976227138077028795701697574734134035305460405587940685339476532143983624728727757974669424715247188792930870999479669631092903190966931053887610317835802028532760070631617569913967351573719171421814261526155122047231603656128729331948406373217265528891893185783376653400406870012435886926715076449338580991395715014071233884994471649266554322650293118418569799737433889658211242707433756354511687374684832740469876122001925004954843897912797372161537379641476329240427682814130809796744364109811009955074095955679158547059492997573707493311978181839953559235961989793679169860021843946836127739357574347935297186287453345165828768900874157492703830448272877864575457384610438341138680117277812283131109262688895825946541879505306695774638267054930558228635820981590698726691195616060833533809478779326890975213985337897808167266910262523731329150430418116669334894557992571631877627120939716611797261539967471367265378505232224119904133629619851549032524272432916193990521512837753012555921534315250777653191583103713091996112095546409242801204947375500786206943096532123342718655358363804603811772299441837949218691785021315774800500452314059779545336759295344436714639424373606109421938803785725065662796930614697040927249822333739585466403566386459210699442195213841263771982223826017428364276938408606427612915681585349478773964229400889566582986990748265725618160849906129183342332151788841228093997191552329209204329909399280937256980106829233867849921369984615401905634654147305278831138139689853157714732188905501821212110449062968970663833130656145993375412051854304905157763801497041968283195972752421407913196099206299614312435620574469174760254841932795487811785057364047809748919562840461107697152841823336018267180257059374982682269557639243432675452680013123730597308452218574886293395486070315132006155112688481255438185647052138583088667003656969088953230005227364018215539690083662630191094657486531159235335841668717434476679816698921415425305012797283894740970468504052583873787318217603373657193724774073973806306122398255466835233392557188139978009569690730856421536546463882553408059532169155030112246092979613885848033554299975641063067624180218221847268099023082734243712279280098535288318574773743464566218154569747126311717070870127045795126388550603398865005500398645053043264428213866526518731655226123041875338137656683400522979731500739365107298152931982060276526925146577835682051649803081853858132836383551048294333882654083537266800930612124029584208791579712435453343801416647637529921947563661898937061486266444667505203960462126249384503979149733389379855500154657906873864324538103126277861967773446458698233711904987454892199854894227354055643977894394631773243923861522961916040389130581915772364768022910701105687344282626485659627657673214615033903807364776738460241415380868868504153078732370242580884839545456877043035152374708850119535538240143711387111313256010800861912942978161777539273524610686885035660791652662360643451860076009314902076734836287887744869869830216397953534065833329750219153552305725074110695611298314744257276144517358887082374296908930381140472397320735303284393170330628867818380563211791399066665329312620357796052250334573982030479070217355538382040847320395961579099994741090397203388104872982337185235289069789180489906443263523230887659393465589598686394099648350307714337441129454079254233374211515133796091433333329573971268108907579253602188189228950719199815333583192063389598524268640831767849731068383750839206099598564688732680874803902394196804077280315499597623337180431024302384567502954749921979524541362832239933880208700329832363120733245733641540448561830487938351645118782031196687039834544990325921131098405425271945979682941047890974641796703667139740912231902821386818630949251887298653664627347043788383119225912825274599035873406042659777678224589169608574742626541845323992108706574277237497178855622268744615187067491317870557924787876672492049438633439747201484759091115489488600860954983470388267087251074120666133217750427958589810865001336866899024798853092927530860236151578020362127973291382939389510141608157821394152398023351397576001341505650488625360214070917510916906440336206610267085804702784332775858706866347472063264745400635971094509298164979010786372006315369658393130953402222257049535167333112879244599381656364294260857158825661153766721498309049496447247342134853570416310342737576214340553233111546604188151119734229271808151817455468571722425263816183602304823886154679022613575100269990366619210913262216992448236103103467490828603041822825044535818394456330568797960531704027231198706802661924687601313788603439690309712203936604141258271730647366219733909848135384536957469921343866804935968812311259245104576042804615283599259110380733229948033771550003410495394072045563618481988383987061236768753574045130751695519929975122204027287351530204641503798893323429373148422409964649619851280444586978087898088219440499417702035429511020051264351375822106357970194894739351633987108816088783771929574794427066590174588638839133727979610381051425858373621447631541804255540698460612018345169793597689426593935554453883372916981067116377756007673609442974209898621985979409853722525773851651546367266713783068557890618427825257413022371521568990667162943548148933027273708492506139381634019206697908519942599850712831453546020502673714428998075890806061258839265016732996868639126680359263246796174192120540444760674976649409306361478451108754471946527479681328518648517475954346261713426328356976336654288759237769499239337284835868432574793892496597973747465725346560845258758610647629823657178182561280242927012276867741378736750521248979608012958154169340487880401306813677987679679861626089176253710728073086011965430538292903297153132635178421603632347551647295907950419925453908790450661680497032949626091067972286940245206523419062577603082422288208401967190514446971276856404223206301625683203840881182224953001731458727397445285052028085826060838029402098700335564879546949820653736348963352044243640045952254312704257954916802496944744805622028381774146538562825681319065303768853975343915842525458892064139274880470190793114391868693592065516022203959714609003908996060913168389058749460916819519405122477150052145534836479091045650373307474660079988981428727015325271143017987238946414975985328466320612413670288185099236833228787656889978450522706649373687769094281703359654147417325744404011565541186696788445033750548837116868245447757377953250382307181029140883857837807745056431898644312538960325873391367018828021983192669551082560645607098264087847166507645112888199781910752601392014051875432400428677256290723918629450077475740053886265220536796525379708120008773628165036944942875737869291162627058395740156536824896824569161093819991499348768324145802692352352106176303192696979429955678131149699981226439573274842393413567335576291419817643419272230852299922269970221603104084007229421163736146891569083478437241640555606635336959940528288020221725521131050634725530837797158745575004833173639913979915488644005429683784027418350681960230698916899541193967103513854155765901388002677655117686011083434155461148609409322013619291881966996349670601560967518443535815110397934192891800309246638574102068266062614002633661987198390135780618325057671367550615319947173769060148146462892423830457918940695186249521093625059603476676559128750722495526774713029853979013747285026332892845061799080265212649837750932746347279059480061260611597699390693110534194581076302118384136437551280954812202758702044387997446787782209919118494373845244264554178405384978652836510934208855623134636707343024722133829320655433162140596389645632418155359121188448842523468785854996399698019927460601617961128515717369871111011154886564089238600568026266826244581291491281077771171741203139810163295731227844963514067459450266848024004447293850676976278147525118884658786079524168859618337145234278646248096177317094031446469626256180287060688989843561281003829249238411636458802616200233476372200250509766723219273253568636399158514007450419151108820070828188095190736493457603841554920406122499176650279402855977001539555078886359934284376481763771376441732312983965594695002531212934997721716662115890509863613640421930519666323722035230524645026814295244980761055685889176313857191023746845123351383530833196180240466458539336875559923460473726539985596086674724311429206469491313033433032302699542592299828763621951314012195196796743335883523940046738455730617972842687655943881652316378992052910236035765983457715851920666067885185099275516582561505945009543078632525741238383914246734018650009168151667925562537829800722812419670132949806960738838888066161175419043094148435984824172779604253175743607042490514678019995040522490591162023021637802295370281641483822667278288265438553888693511392256105065876385784153421880927872878269536825272982039949254930901187882142715235443937155761285363078217809089772270961583266473116544921759233330322494586405306199324199602803834403808695448575626176790694736648867400291235815986048297493870276159830727588916582728688193133949248530523693221509090199496850973362708780973094821816408632641822308528972799833241127049583545185970015464016003857457604796519143439614900640999638096326531550915280801937338522135207364046986706219833852194437578365396319785061753995935790936907542497772299856443419412380084063501013561203566824450881997241298203439735383161047322037936193248140076677134315404031563198230233957943877036785994916219009201643625199840244031502930726591917157638381004527876177492220652583862936397462003249698868808005434740737823719381483732011193342346717741907676143891821598435710248110866477430199641646298498409783813613279543448506150470330637180986518923034970049046462730167515490978076787765845513062332213150331480001537031992816994886054140604380609441786838570077060820190256822837316776987399201874482536780734159349560030946257529453934081120880762730318101851095481810993284931729111408634757946336339606004305286457048276210151584412065089282447239713541414028911830624909702077906202543983625597073072537363390791855813256773809769918032930232982432401174165996449782537335171612125718496931701978809017641526363866002287547117470635659093382678823005075781385590670797884763580525195442016073160072399174184176938850082950910044029566054057464945822162622603985008351279776639436701124989109712398218583753169652867499717999144641206778419778196930602013759623068196301608709325031721165666423395950745237813085181675142012518557410005744817362666129023387760130903272883064626160571730900861943277093528413394773902426337494668401405600970775448725440439481487009057230528362879170092204590316699497496721973344651163777773943303463091345989222713557379165166808801082008945805067754435703861652468597280503853606841675474383814396045931760955691399766907373457619690685988923668811831522460640812780562073351675826563349881735377780633937004538396165311875023057979258432888238250242441660160533984409090335314739666609408235252870636500249739758382301120202044894715349370893753419955472858135185640258369590535347182136592112183537198106038152133713702534455501280669081489657946907916482565022731332883247695616672246677011822290655072236375086602708976247667401926092180885686201604610255274845606803269526502358128259374269349338042761556585062226230611598149581218336805672985498062480763657926291344744777655389909314378517556949978640035227981917254792194209573826410806642002044624510017839207260001641157077587225370770999807100179327209936838547892217212234102050526846172323464190471356253655370338847371782100881625252920926349291431706501049924294507148064022287388773669206914930898017491666763948267521859334592857994124447424928303111020579316700796054059126229128988147161771399176273130382236349885713064562830034978595996650626432506263138835112159118233134595112811487028867962004582422452435208441783836901519301514245025442300133747348833707422362384033137851489160680873302450979330349365107451576882487838391537887575146098141664490562332517734214941022108949573553981100330351874935302136793746788354403946901711309864991320526427429875666963147481230841340239060637100182908856899457575786109420383454239791910495262712928839789533056826827628270532952810427178587087713945452003900467855365988716468593009138902332331027818467216924845730601690314420452990248578331286137721395299048513035701854228036001927672759357069789627721716908444765845611543176531329854854310085397110025461679447562570912432552196644025093334900912169343744008940940982194367952614638210630663601448743594922963959195439478990021864291060042383726952617357449612627310457297311250147872598916994827142533208425531392207386000360179398730715429987271147215297121297209209946504840983951290920551328039050397568852654849301716432540949526783265026673812645981220680959696703998427155227600924647923118528441356221447925662621490105209137785465355071925761509363917594947211470908891739764152473909717207009739025836451126015962987375163356190529119398243124663358307158020610294749269823856059051358428002885566734591319865122215577403479492328930789395111530114876521501776832197684774935041695083952362608896494781008934516785270633046998200623770202343980509425569551865614335627370395998482268766258284380228696513958334698521415438658247687537387817655146552219393915821540096128646283728302341036658736228572775222616569477122005378662402063853673589507938629756429388138741855844976041740441975881747660279144596694041886020592591020187995758580179392299211068241205551283492926807516760479011718989912635598726451548472146526384256479971241638148535649462425076047251541581972435272681084981234750749090567219678935752177720886029398960185951599955880709863231474793548619018155391792242512092354915154574800983243015516451318272799648530089781408096512362561296895608721721369810052459221604320907101697809341166413193250098384781174044231433953987438868871403050402512243478850357806396834009172302577949891062783528134651257630321400471516239362836874561949264725652612065231795445851631700141282513739631675259227851532337877747102819837978998993606119804316387605114347098314875090764896886150560771322568367945134193343052396092587712793195028392762628850896374578514398092224903731593959123318420802018892264943470620260398583284654857462077803789943793841606699207912443489329221995595259695151053073744114648969773524865874043096906933467255098038126052033224895837209437796262848836212857431202317791579711829935427767189697789835160610686644542363142892751511458548971773185189286095517613650378193598708430970478505558380689081229415880059106045275445904098213686767878558123139610432145435174681846462910564741247269177221999341425169700272212006703146146381380214913047239378477764145586541282435255056664038642852840543213812427241267253044281761558282901103769208372852911238453054170050774650462010951279277094934808325881479237075105711623408040715130987221439293314493663739949447593779031163169977318181019187978509255653539170453236794562344848055429397811015262283949454641409372081335394426042050458062629883374596576918807176802466240774375715333051372181269030383367738535786248680995764319017172946222486854890768260064210425908428665206921284063214116411494315570623775461121053127811775430347914169278293516190927264891429516745718921336457623036737271107854868338129190679257774991976402799743362664562317992615510292362837538245352994938836890441539470152950149608722965550685489568107848008756157084527027693846471248592804060068547307001346772313164168602396263659340723604707425436772593135424849164541436361346093372350059045712047401773678773061644247301073625409378398366506382291034983119973846328387971455090457704710531209008515745597004258008834059140505885182906522856079988804487253369533729296496513209347341765848331002744070479767833516203192112990037688314963232716512247583714133988473126855782518164511271828304811265437168692485313429599769560504647136079399199850126776989873164160600182614916496318494972102465380243975390206938112137834078121697604212064065082380676158897269081103921266294689975447288205195430305821336707901986426452758197878238153230436748272370975234055071098431875071346023362534127140765584354918562734239850138880136234857768668614438495641643022840729449363565987315445922724220549436160347366860376964555691286984487041853215060343176172886830259561450032594690903808532347596740673298429270763605786413634541183593630586056296828360849025884633835507119501615573683648082778525035278225880089061029063055552940190237142010631838345213700120443543245640830541663770769598066958332565086191185481443067076365323195857692378810848866736249081441213883179025377704788529898393866817358219422940557865953515147506919862008453176846238556408061996744368236835343002585808390945407059702426875563489953301986356530303950602616799024200134283597971816788076107141127606342650327278228127353807294730972047155957249757032750291712777330165545715100673454611158163548425242394208843958289963429836909261695318360670311526188357892594872084224420908854083893837026340959214039024105128928741428146345391475992054103213539927797207880189746269793040413330020072290570865505847135108566987543318692978490322371883059335696166110654301097922994796346829105337821535532299092335646927578297612089805947683299521480197951845095209782829163867949533817025805482506709648255169188082416032513777690495951974651233536688398470432510781578000119119467757311334207355317351667362642277160378840642445974179216429658716396917731588848297371546193161084700919908120547748007671939385800465668656914605912547475601929736655373401591368340978511024395163809400960460345803611093080448203390335080489619267777739129499154467743522251980391979404362632936532182883864327178782230815773325165663743404888354654566016031680551752805860523931717184448968657384690583094389893948276933729070048186403413539299547326735475802587514743747861051028712501574067655696868450857033254820520678663568642063369838462377365951056238279609977922336459880416305766767017385917658961166479858590576717219264951157164058407678603920926306275670457024920293284996300353326471242527314654240743397960674526740565223797249159349985610916842231154814760550671329390073076808639737106471749427578569150836720301716676946859592803389174221248101916001240594669981944786211784506533566187907163923378688503204002547349941277915248499847836693150231553239086094546649824947910722916850873756629729306092514399457727474074552644476909713716077683340213873758047494720159616346865920568985331693046980673177606933603967841277118858449466771920648052647423386021324054203507283562861713104992391364904153890889742555823706048542286219614212686953684506311099587831310128078010836575422825920436394672771913995941866163838981622828165522590215445750902725249806473172349126843273418883115977748394706000151486918961986875040519864937174826293486754794383048666090960985748158394943966417570646597847712714792394100546326109612363732595650540166866724084965520333940367682461125698629995047417680817868274512051299915638967117781861245152842434084730008232382749510388508632095059541624339742258856018148814692762646953736557561664304038002035177881338955454524074543717756222106271407242576677609268221978905032933748208901314677302256125677709444774091619273554037682099592453331582182201817849547477473225047658372387058490937888103281216135083703959100949121635656578454989103674600099665004203354158748605381929463859283945833437139506353913917026963602172149357529496150245113068978978028865890033722230853007951428561160629701353389223043751611431669666796734400719021073326948150055596953787773984819164805991576766207350722992293982077429145498514226673435007318192880842955705026199108097531745221830014211436644239777436944492746668197124505844613057544102330337234035797207732039523052328617481815762116179662333060107157345568245604283644012512693380284384573611048290412560788198520543130163537143622841347451957024074023369537347820522957516291630497998211492037152026756972277142284982689762674108634589373627475433967403734179385288022294596156021964464610292660498815502550530893236230051605788509657529598028868719481876006063436316209747674579925700563948926038843283521759636680302343276735339921685608828027394295496282814015386835579601710178314712955168260803239112708782725991638005138122506189192938428148377116861829167345823660121297135792938828125433134446436877974999171544597779793535962575969743448746603570757311496940619586450252987722847511541334354921894653526777252221311317000996103159371423407666455606516789159715056630095193779370749390003358920850235271022359850522542178824296291769912313265886718214193629031795851046623169321412938929251196554756125808970419085434143724137647394312948471476118280402104598190195339123094183895281822709556180893748793692256498078482150175306037316682645515803818777640157906784265182397263524982366186016825874056445873064184169033197873993765609617344301360352308674053724230449943698995732785739998829471847021889382083059425475627755332350710975311475848257167397566587252177165458439954919767835988623248577982049058666235663273035812240616798370141464252126345281194642455903517873889539647219667740742256620647946246013829402799083769078857959576110821800175632662517130301886356184795498908557796038547093359388165475247535560647616660409808463128975816729227736409122823154255386478032337317784020707453333429205926882949703691911617145104485554811724934082902086556980299008693389639795136443334467132852562653152691110831742780658820410030189276355594193853864673276392156242582290872136920757010541942903123584424756471103806585221706440828398023356207660257527391128330449848402727336981859650134380791302382717331326938602321351533321870921632389549331899476605604274531221059808596518727481142500335743299868906245102211759056737358766339747279233759544372088417199927130421935989110320064326317865620728981225874994508288076555778327201614762202140945564421061259176391927579567221481949765797951755832406082419416025883342837631863141744881104669771900967448335321746700484105714428847593099827668978264213516997661029250476841781477441167196937227238538258572963304317850807455310940298746132280620859720361577268075611815784580681655125595526743956830389505752587477146263557164316986971415006316800421287498771254930238067747242341390596626321502581919441529746081223414108536774360564549122616111134002860684845121523744933562635249026642564296921242035834354376850309945502433411234006855597936572843251980205930629673103010724420237295294723605070118266896307132159152715072184861494063905113279453620901402488486073188096212546336871024817599412542417463055213651782166731964042391214028703799016676858590700466010834868462618941162849908860187812559741646338925437738949171973328994348587520703540040532632367131049393904402291080720591272217529787150863140083981730003959657085411927863752900453005377077823303719093191837777056725733437712007042498257158774911206108818630755659323077498733241268856053381033200305671002185076297481938085613725859270954304330726521698080956762285880771470575556839782139366941038664165040513393554361752372374017876137170722005185156938567613776093329304826239947710397497902068480326727218553385929815178769467123764483673373586511868245237130643529658056441684399119966391756497617572032793842003478347305985481397236959771266183029894463306211546610868784206595835171452855275062331920187962810056514034712266895886733485172229674203900136792302295116439629452634806835122140911627178123262934153862005179528941492188221470761483358988492371965938361973988894331306003842635741966327302994176103678282262408887249792031762980678776079818940574188106679038545569192234875990298936638463743043692033654955155780563945033948346025091295963053950836440830069939089493080834783808413333882240322885261680409550823340017859301230674805518653299167372405213745351894019984808498098326231099416615819662013023797109794786340999578015250536375321571944353407378668106845539207134301435658252369375187536344106009295711383363300618773446580568891555469154478202391908693389901131352032350404148890262258936998671425078092063808591555997150736321177855106392015145168149741341388020864021744154520985983790796622396757947700322354157759323225938090415830030371908528717740699171254212371162302726531024792073746518635993394027811574324309171294564009091998987682093319745918852222445768037714567624880736790537440356457121731468855168693743635850662647479996224232594591597260232262089728331453711016740077571338389656393111123897318154096083288536876964853241472036870235154507005582625449137797736215326899869622913331393791553858559620159337538422864888330088162904775593785180165901841511081700845162969675141044269635489239627706852957811583346964532384318019162347910184864624516935921462060370862589257008511287318559444711999216833144789809311734796798759492180041109712122269139677685578377228138793693061617555705934911220009105784228600065749455339953552597832736013320503180429863773186161176729625436231545972186623157390409334124923780497942025995545670491735476612028933221950528405285727317539192119481745898952276854890266505600740988955317217295679622462200226354267909423928915309433455466540919083491518357306531868927435380519922674830368808006447591566373268596845349383225614699547522296460755447585005668132736729651203304894447633003963071173601917047775051945933411250104297037643050207217163348156259143928852550821297107571284106487315817113251564534999244965013293931409236671442288785764666465428230553212771284442337942689868378745348811284296787708660258972048363090742669319232641507616378838512229916169859889727760566244194084517309831252357520141581610186023259637286602256701282054784190209904457813377775378470642701293519269496187201639890218686051940746467199273902707449369240050567413724923731891510350373213356976481936337161544713879288495910702737513058256587615699668321137782344146911634143975870272114691309874224648336304605183391380425591485192552914672679577132021325721762775200632099001887949436055052853846397295479396467003440889646617428259747845248744443847375716629193642873808595596498047806223817285787759302105019122712850655528579109422967098495234654854136747470223357696025880169579956663769009466595277169042647585107176166646108437704575569388857155881431271348038806016498249228006510571420895471789078382638227192940904177082836394938568566630829489355755697069810208053402960129194699701624709111823380735829408970354149372523343673689477386474126979738769791548413241844191128458197628879503693306721815486035381873563400705892101760578382041749269550067409199569789970257577888805553445042346785016871102455119273438196955374695470809525694928839773013556608271472620198356834924001160652664999011999043551451984174679120316390225356526697239789795584881024490220926906414719982787504817545218679555059251905462307729460180431125256164910696883905885553012115834724384623090663367410730517149808925870671265696846645558476409126924474494997048481093787545355493376282382358038662379723891407872879613471226147713251940264371263655035240907021505368364070028034805578547796497603258989539461836116909259503805924490855417723071626048452242530876286983283491964795126065817029884752096699787560251906415529741666881117451286319952393969386424463644617067178750423415203600221032192338722632709189904294025632083463689979714760643784319008715374051474340605985379154294853003929816436099303582315648233475910318843859029789542135810199990203478853776073927310640477459618954157763450830095023252794446128522238469799912345566196026138552398907566779511712788047958870707831211998385202029561893051655523522449558646100742309933932738919466456212400900554205580752078155831164447889451249498752704624499511218847473576786633919012694061926011035408360342924912671618570609951989052280751046255013918181855983478385912891665282761091382710538895699341755814261429298135535971281192380806335169928334721258064466397786011100151977674262135590387205694407452533221049161417786894749012968906037342424699167675738181382114470152614754336481211726071170802250271700406976754759790999460559339564185664171354722530125529512575817298717222370315204865529121681082911184412528171324850891190936083034845277423509842739026890922514159980215417059669561040376880004579168924912168315082210127191668158410510092106337222920941836793606124241045268705009045182070672355743444116261985450011203060909222974755754633296998576714608294083234923796061168670870969533766449427104009549998047229343680089460230772285338599952618671986508087055332523874136419786384506145290129938306828237291518609147591585511271563488604815097352011421300189256000590378873376489442874832340718814284354933012462208666010256594246929393996012661049604162584947495271164180173744570972504688546830463948321396420481551484024675619210443312753175855918924270708981256127152472806308240655965814247398699906512628341005667505202679990177782782859346225879132383685478366469887046603049068166624600963143105745658826393041803103891438796282368132450057239472834651377801664548625668387599633762607141067338651269907719989075413259135325640131090688912864632545171335476069812647946403498873163229624866874884537432016468557149396612252544799054028294626716788169158533485891230876857965755885494704384700083569439796668910280089947741416033331324723882392863171644821738786018180418897950928601588400929608422212605119022751947190138776264481534591300029512136951099376060626337765137103076359915722712415010705391382028276064221842205520065392729732227608519471349009975869691596026308895159091195497279193604166944615155654972083627877238556962096445605550965380196537782948220772541060420107980409984701057968363743791247413590196666119785166676202634287079385313145269145132029298154558105098945587544758154202573274502480332646971558084897645059119787483200773281075936111043637264700832072351769057634669502033951456586030774270526294627904175120406924196715879891307709297257136966805466636226821280854090341594869546841601955806784440843293423405722173137477381279164693422381994186376060672956714816327729368957632058457552591896393882634234798367245877618498399678453832280022728214312710153931712414535124219916921153115158185998052983814667155092327101279461037724452618117170368387362351838973090508959304348447555260867470419232033090037239145525576626401363482667061998026416084336101662902015346666857266640959726981671234466892074334373845928032187824522447830200963594948594474063351872776172243044931659268245932629339651334879997109898422366475082233037790318327990458504956073371262375748933605623067275974498977528252962162157932402612435126611199062709336217031942721835421659429656000054812986461692075078145021626220875559293172470341462115873033469329195748239128660311772776394879507910345351565895102918587050904087207940077564774815340646243077701377536423808362659561638798972151989725558737535080105426336881600931596804970899097397852011187529065132511750902268743309250191730998689396724394459474007875421266263858475095140781102284859991138129582958594716707662721842729416007642702713610031892846877576692130481121200761412285996822752928288322932093900803214365982631912115758922758074140555257895977242123136127133236780856908121280148952674559184875108669129906707143994526670893743206752017565721396640413846696427066768673847167002682272793394995290905954297255693519925576120473761850243483339972544230645682277489228514835803965833426998562948364195951929220564006439425197219976953917094012630430864594069652244986867806043580622848543398851466668125039105418752031060492543681493944423739738674736420787284172345189711099908644338606020581900291555230030456712539368268014609708977252551436037682911101287083895575094462033573897856469136210885891596368412406929903245367913717375025756690508959020860178489019749642655761369120372495023389991378660500035474401853034044792195761850245057562380009774584433069499014401624861814327732149003420158566040302287889606215045202167742949583605266576648620427740041609930256402117339084750648703156618701988514765916441942993959013883225384135800797396669091514660412548949066949992844829494409260793281657684003013011615763853842686757169868668527662730619810160652815438720041289953931610826963988619459891471152551720474266129345194885002232581400730254896602040103847660756911178395874631855598593411954770694189937724082893818635713462808770341314124616810836690964361253277309658361807543565027475346708776521219326635060959627744489893768751366213188664980013702067688186886875045172349513104787347970493378593365470898826555317613517231243992048990914039007425216592016682595070569005326557947891785711377882026612860032517415892630690468803860149077130926499324525175511117539705653579472350901937144435598468924348259251341345767684740508022441065266577569378586130562690317460534323583367867207552615642659300787043963691670263648705130656367437810414587091748449837746072781695702969821623841160525821591918826163274316785735582962825520790293403585115344472809640613923786573368646635013213319540578938342555914887890829548420882754176860716886277498597766801208145307022212919603371734619309454807452447971923882812709857781207209277106185098263552599547942258810131958623395014938520551076210763706649203771452070417665810149251344216318326387645680710153200201213016129022525447494175235560695697773547721201038116691219030778885892184733920459893716253304494198061184513364943968997990197786891228573789963595638436411740829966460024712211665772796647452965627731151398662831450110141615106910843376413524719547456558568089627618704432526329643151153055391193967717161218547273975154861391887585955340710229244151516846732951101561807733294958742218438030438572640583614831903693511078302788542121467660933755694267097653959682441113083300406142925183629613791838073353622992779243433471457998787897903142760584068720299865898587513684143450161420888649607595262149147784093105528207800984064889918508227439619821617391603884394804264650153394472141268390935076611168047221920228666325174913856464388357045683170121798676591095997608445932381079816342940919057057751681666307271708540773847474727495374038766638699603648263953017725987313126832537096437356399794620173937248683203167741783015176900285807604465831694681294938955214697613631700982976999598135540971133323964780417143678270446714245000579533413806834663602938548240272739693924640292172260653317976500502219274140955482178332908302716953049758656800248101410781368045438903855268767213537552844147344983109680124849554866435901590924217033381207251953726389572288070182548434480462271091135682674356657720570839338981379484713440493610257481045773239330725192379900333503495090900365924336591917823791897826548405537043103606718151761270401765538201079488316599767427592023341704659181941533347472599733332125084993309904170151420225185988181968688972618600474126227416335201975297109066559730368036631270847705181547860872853927151544498062318770751984344048087048608224714784862230075829910449453577302007089245981226841191562393979668834066504980604988842072200776913547869043981387579850766848595532771079297978154526991823750349950112379550316817889278327282826674979962396531293382090414235296177599932678550288850592377741253908931329969659510285734235521414826336858477118126407996236719785461493883030122541791748859196472780934489056248082148276685914429762225748311285768334316652970999497301448608718734995611327614358087806477451622809163872167283107358777880434668101312102481915577802671395915233024406064235384251472799586901320892055378642073925329823514175559620159878179910671032182861855117529907083836149855727184219795785569944243784655888831656863109707396917138578096046696330740248792343207469780799091286309717707373507961417862019864679354607695494764005094873209165502622264439135744049703099675853891413364349788281718577058558634159444116284954209323297095758210012249026196660580595589567108347366656179276022652208419958107293780806662322976856392128445546171045863618831958841859767158679963128023629875367804789542835163048471589347712106565066889240759109063207363928583997749742677019354048718123888155561231426762201891743914130188635901131724157926959062585877188779685909129876885675573051648767601268883301350018944290724870145861312262128917031653123234605712424241953681553048948325500673373874158902057591737995133151759897104718451124921857482647353122691259733786163750614391855389303495545148811812645228767038094390350648124679341658683613690587927571371725579052810757317724833187320027404152793063084656138466957545676234964198521259577775837708393152820343398089419761459231276089054556141110451995481794385477274484610641684003637571342105496354971586475704388564452355008437346222670275024213307126895742731334169556169991076319013841269286179935234582134583227296937901194591254853178032342251393963558431123210434214054073624206848837509360730966988991461475698804507399803996749337265450608768026767396561160655021184136485029958607467560044950003723832640483028937909883004026574115982804548091589278158782726382363124078961128154236324774812381935730601366993423776966836398279712489227317547281973786613705514196721085458517968024026159083911488490694496346417382897584036776510377140427688092929108102104029389946916011152395802186601711056358076901297477181363023157361485619652713634654003749910690999173582095851550229204944980734115563371537208556778191778046846704644233154935936495401832591132623758124066303581142917765629997221900604502881025061812704837711521696125734390204057347070063797272219359356795892545059109030561311010388679125726069712879266599989134505461333550981762085784383475710000161511407025272424229890566077344121943012795013307793352932945648361120570798420241264571487386008004264766006884096787492444899590780971567261325077045065649621558376559757070424125130441623245903241421209675192894241882976866047844198860512192510650761389352557829929077337492314239333853413379645460598731350387395657597669379447707136238902554246809945382356728294079606952534558108635404558199724674867684903873677656716418167630187439637773040205321601975138306894288710263611920840856862872034039225386611637504112044400573388478407804424754285073991963565547299005683621142730118380935281388252246543265820809823888031759950213122591524306446366778872349946039749850886258209423190113468054117641280088542279544490864725869603827573521439602631753141298789675024801986131085829686111179287540563994065357624845029583176191890475908142608004069181534374141947059853755553495479031406274822006306618624642569259630036686222073122669795770975720503509327218380707261370961936239805158442862404660191121254170648599420525565536735119898640355040268366487301667554376426369145873147950877427717789390548188217394753420098085388750205761236786755377108558284414328617988880644151422936801153012970380262397022984874895415362292242252660440476848160062756026671471610685340676163334398483353666587178204736869528085107737693188271167291257910066795011728608330149631558274810422244863578240471970309549269311086007610059099900949653277495074092571447487101813531934476062913545287962207883086466460077279238129550508571438963014897017803889874973150613171947160314324768819378095356638055465120615475902669084020055496275398232755700742042944486167960262305605903773561328835753931535082956595697721483074589580883230328524313561821203836482472929550889350287897612038689002631552778040556793867090056559626652579994938050833575901335081277500557334774597788513072078567289638973509344557890683207940721099102340491128596972620556292117050420980385829280957616013415504340683394145577559256802434179442224132191184128985674499769127605313881652823059997125798851764441771506499141135884366838704879728377225690201946675401443145752084130971570247168915883521155225979951049701710101953793009498168392136187362130694857874866503900237767756239508350951195323942816705821340648466409768258308367015753059313053576426996075011463853955658692489761173294804869298263918162276025336227887272263453675833772986293752675621286623247897468778064799887273310603915956747394332828098307237396588760219155809709401741969360287655985083243193461485033872871908471651495915109337371410045585530535583611203237372467372465774308023643258711129035605341179356852232287312999483616139739521262215614978520688465643141575869629087109829374471178439960781913256101506516729658903288996418891704734514302772737674165961792695229795334905261114221443812912808335365230069033017267021766329726108294939367935221913158364118521986579899307841953887657962624820088209752446862991563339960953965451924100471243346494469613670427587850002388538807101016046439550489725423105619063483717839844540244032805083486836775425319094958845987124603419775247798474488580949907229400296865654920100395384090995697774814160657816010257657774522634461580821686975132898144718471701211163495398058327927130340156997554608381871492036030056131085105932658479066819860754143234159137098824569289153091524603160456334570219591287510618514165526468987432936821236464707173416336540887925463523253173428540952336468049287362761229814085685525015246020483935510480621233197808452847349903348015224285860952587850927103001579529294844059538362822792263054843484382139498465607650882513723960858688296576252662142674386414008719391642607001117960015478777123486537539428965587153665369567251124211599054124635227793337233688381691731964103289555080390175017395582686115213181936910069605062925198735141977849133288427162274050004405807084793990132013348230065112768685014889924623014613907539338315652279261814895659771784206523551740049166663383589125149095349439835963152046315197194679539684018212273525752650470973069562684256728239148702521161285892675020303688225811039982876033922802612772613084410639586721600161983313262105111103071227731861204895079572612827869722738588957196704750525737345883111403766001882972173369640712563687059081267577956425868134582129390894790054833016839422465522734490281690327047613419206273219300814528683376977433926321795865564374449357809522733549098927904135277765467543728027762477399983956736156050539117875695986174247994404600157917004923005535949757686782810315946156748259377348182043670040189241724119324171700289870053065957739454145481115761132215657211564985754062438619033014950051335563605421738348579542152997739004597383843076008529845368510707766636639163530998928177714825610998458845348014534841354154981740445749889220997176497305457345023676902690016277368630583852225914131787782113530616304639500715718397809533934576596044918951791613716242908839645085396478588570272286948851876443520589715528539908201129949916927587439832286392091802408749016249718991862222110440238063806997920476210652639280290114083797409911641163041828788961307527892939391894947717433891765196333437306742517695025630713484120211055645359641584735560299451903940868700926066840072789719319238896037622897286979883716711584139866862683046741604333260551283587162963852065248493282541910257599017046981744007034464699918061947396337905947137020282462274157222498322567169389714676327956620328026680763970661929314651882455274556996185753916944398656662320313409239075947998968644474899311462711671843876894272018115152601526150905982596180461498531775410345042976387664170919717878293259571621438380263144378995594180822970556483045042988035150710973755978986638884217006901214461368342120504983547775589902182122021058722257047734417910421128401983528179567526630481340622287422040674562306065733418321743116786641821304528123080113708114847967395227346166834697020003887405449823481761506811011594524905719704432924310693846082154055284395524045730512422551693076329045130961527755249790107649563912287559737098927737289691564830400898957966879676435725583046923440504452463191607976104848495445124935416562502792147587810156781935678285794954782679587523696642289684421024446557465461894669467650812463673538642360962269898284021156844541999706700069764071830296287034834258695848366151367687226620472836309068240199464569974329378537926520874725825998367824889701041633444580394203576876532805294486928676042205560696179877287132969513787907450578586847349561933958634201816673042150277559999952260416527263162892931502530784218001218133627670480366954353400958238751755762818077619856693248984622799366528434956980928177695273382469338662276070855221740587174916060698952267342928932322796091679134688737171909457675993272946220612436425956884786348625304977682008844051812073130496205448298773284549698743576781325362619981707646647698826765118216223956149315942673549489530880876421553700513439552959551467168397828371610352028991370387800625179616715247197636967361149458621077889879997148184246223744923367628766974523281812859285255787449876620078331698854737486829214050817846007694254421916875163058897302304762201244354717381447068022462752730582289700535890440576572205548681826459298378074779822830195046782013722751937899397472010600909864923948685219438527729733839417777085118918108840262532939550281768489002070790836936226272124494961160892905753737676219973713302530742866266986307802673435540131736848322479005392341807245638872984083050115353586069130696627799420849328158026328196815735329777056683211651032442448981477099352791272546642514970469655902545465192914404460728240489107574937833619420363954461642223372162780155610771742099103390270818713960297793034280634318883453896950437897804824633689519115695573722953803244843918604127746215015905807297925765347689419995261707193099935476389354022423423736630926572953275123631996902787075300561809959291675887124836855627617767878845102007713977023554366370762853505986858477007023210475166479467244359781398281829073106062543741679593699432013024475997949627817537556545888743150349107030346069633348995265920396407089402687846804711784363909948733133495401315374050231240863373580762606163656102358329205948825003507036814243832705791701635108115576813622917837718981447795132777769430005238806233782268095296976263710486898648929711479559176153595713069894875055890422283337770967033375809905452271541920982382238984317691837239436084823634260994756607333019485439945753808662714796201706554821488534873699623975299108734285174161663333910641670353339864545178722188067894235565252627090143875478196306185997557884928359915443557370353260458501961945408340596310048135529015596187024437958071041645804805594015335129381571717142685167452545616847614832325831811939838276739595131078779564713919458865728457325367684213677398583761631252726120892085508832682083280885786571397043088495385002725367251917643030662395949280314802705540582486063759959699929017269755825086082419743357165760189081288019183716817317029387844034028648746535064813613216580802770979944608647602227901471935636808055815862805510432548079528510379196306661383470143536212423465231032626420604910738625544923996175125218180787342764268746835349133091472619398571305412753194434321073949244773168082736084960850563712594240233171154339725455474615779018394423783807563637101970985027316694984999715773839110297755243794180545691201661374285407888642154022897669247585734921970226295663937102691024063167999261453042381821656451346515372452992234794100681193151742785526356468387581080718295922534862789661985073344221676326557140305711615560002736912533746011458885886860640942091174314119070434310798785034602664953989630449278218295897474481623721233328653513563193915211894658032993625542390222725580297938520478514987123006660104239580052886454926349290967361277498469987793537276996455855531293199512108188449045519578033983114361579617492739482857269234642268103190919529745318798220203895374466233070781649231360762468947193966893799542830289335930569439547709997113446057356888591204195537172140995046029182577699259480901718964666375965277292940801374138608565645754211143522082965516708907020546567222433082707669850600406711316455731173259107351100303898059673194852810809654660908946383308390612314139203935550810230088049240244833102419694347566103171846996444092659230039693819538712011317699052985588067705889679751524693668451936290550185560989413210643585268817374242918121652452772400423827410422783364318820091750635271994450127801539368207176282383099544835040764635053899292547736312633688773112630049908510092019467391267550612350808271235678813249089774618674111592366217294053660985130830347977643513721076248190408983861674768446966309277943243487928386223171711667135706181747126198275361343776446821940253025299402273976599657012550613334798036063036143073780162703616538591188992454257032312280253128666477895709950050650895434691044411740592262106412148393479697890803981243907207686639119490309695902839872326710112503662334804785168651232693786085606136940236888840068060042425215684641067998635575356563101834453091913166852493109498407271781707039956019207319781894805523740361808330760054063138308474711587260284016422952169837997617926187342370648594524887991500883341098094574852944070919450986121700031770627817221987908097950246251941004202441170114998507491393952718298790752305184874568355276268483889042482056216473783834616689610272638575758742526434592971826937997710769551212152773941791596488695414099107760742292614770358560540231956573915236672055703720969236858911015341154766182844090496117063728321279331364847462083296177216277196536848174124508623955573245557091226708912220404151202375159494753811327678469236973528841706390011465696692218421751836337049471294577258373971396830937335334651142399399805608633564351209866853508767534763703647409223765660660533751665576848089142138536196050639739472458387915701509254516786896389234356361026995806567608022391639905644053313783069450518561315101424829791622970005448951497405919652539946052958239782295364950204676015670131955214065243170422307231298884541877093435851456238017659446387523360719561242044622633435019774211327368106801619337677978762041556403778506635268420745806710602363237654196115286337402318584965434118564258994873621327121385082793477760220985521902002789138120175850993648332218638440117918410843242743388591209834962838095184001108712905553856165742290375054195574320292290457587518421161725470232274138760913162018877476928507011248149905100884922006210768125343019542422146678002403669956197316493768273499782750633809587554849110267897671281450967695591895941242414408141463709890765704003194843348166872450563464543649940323995843949284604051031785250407799475788451293840535644084149383825888522972993708698907409550583347237479024164542055424085752851124510546677877446344058146227382926027412957494970346142065069800739983309093794724103622680122164378132657608705908194943797511539344566655247042282013492154331916719962427100917969033383034848678751973066362062154564200162755048594699009086274798437995670290052525136327999803515181416711626880909975299513601934335402221791164354329351732213275441623877215234082035826087463330841675763048111533623263107441176355339893019334141200605433433730606832852222830981745114723117444588484122950400531283146411993717740266598361663721017090586862023817416571453540979453281732343797035615302604517633253266688666679075821765046900872230984236993576361926737323740138674658443272103152818894249272510704462389088917762448949331561282888701266517679094195213903227709627738466751963656860266847908620553615691859085631271738512796602032796944568381507134760812929518626002078936272514023647767667400897114778996772049831125368576550323503473676414451607147413620203172692883680262585887097756723104314065977880487436404758403530780193834352069226403484415957431340524749210653102494487472061122042598865795339804528093090549699064265085397104891855395270964551273662767187498199616072113351057324383237160712677787571938284196682046806100333380434174106869727504090557296254101306548181060958557791668796194650337520836592166935673321267175858934182503850657113390246252070774870777945290850822035992122949552500803071965038118455291764125940386804061343228851230466987886392907294723858635684963377589789809444721274156695868773655582211787686389984982168296655899406626989988731099245366330783480285630803396405690959594039123973106582890219640607127792498780187993371431401580666717105934415557216820846073078819294050997715010031332732698926332329841382511821485114565521313492562006133453240112918859317599731593680685700230054606411744776552819150182949837316601096261092298003733529783064439606079065700339743430124686414224458760423136980052648417885496804079980976131076943149718080852315719716285147122220727305458560854988283515555136362019857328489478135899186672857475639630809960792916444466429346878684720679915779906626700799546313687255425440867470321998280478373559477382714776167801611434637146948461072963793482259371271874415996527882853148585401376507931552805743253630994755055438600682023845636332149672562168227036175349034968826344949780669971319531156467550904897896772044032162379413599212279606294574610121876166149685423879539417122236023300188600280598270587651933943152365233881136370661357989503183195485561719021261196820817806820538016727008271174818606554665908431662685892551096595302058468449619580405532432940532676864240018564425174676981432191738427099854001377820792917305982015114524691597460339150170653447037751595645932537763362940614582334793886062276883969143629783457877792230809440632304523164651731012132718307039239106582824367388693572134643679399064629746231404381731499931797396250666780809681688393156412463514324228855041719143959429329282063901662999506588862621014762841455773844977741554075290014107202523655862893534519809350860968484494003564288777295669002537332772142391283062878070031002664092704731497945657729959778263973496263653666235905066736807140671504314313823269402565354846812736437407884509857019611506339833777465658949469694855703310715278664819221052406286183679717047888911068115223328111369817237160140589937588546124335508155013842299677243897559486728704655564364541679718967808561750121822231713516385356727250603748316281032209496550506628546859442545533229446024094719824459278217805690178853058383084874738450213843253375559168155358243260081919286874806902129002584945052986938840114014918262374562297661365044922516790531101755983291727591386883114742565632767286910156973531923109952840214938840859121664491272677510178015355353875824865193223303636304847557505698422083611295476688265110033083303269879943753824957433574602025708793378359587228622046177524054093371871541208924196167979903573047902546317903174611226121144957952030287215977342809031079681800481176973160676042144237897253995230926279742142646137393487111650153691949252760143934449101499559317725393518150196768088338316284709418087533583980067489153900848858062789945792887833462881784250468939615354910823581614658773169070899400587993560684936072456449836276799320577792821915684835031496185416077873047164750191754836142830751067134928910748865238081690140785939347581645372053796413378689083504036842833849119771832124519939078443328524744786466532996365777190616638001117961121822515349846707246707128412905761120991537675094097559521108853183903666373508124116052583704859584280393432885710551783930792698716355085159124499170705839929317230651286080162697242038932045535734916267934495528771205370569562013353921545825256400495146435312266133199622826755080877392601859224237252466996449324806860315662549511918191789407115499562662762384767931569738607792984825592340023246585874782327117616851110350826694533886383660474333808347319018190442604933932457416374272971397615056351498009027623008426852269809247860481592712521027430463930771357252899111532885788632359867588430793651314374050151831284238500484109108361920554961505593586138695881212082311287996741679380299037252268692098942977597746090829823670320973877452689640306437473774873833007749530607947905710928641163416424522124535243432308688792420691313666920537837804728433385346422241162444443820627078745042738376945414026587574123207910722749224587336546893028072409566231778034568443435999904789801064734005429206578386682248250153502909839535173343108275700719631813779550484483436615552673270317574722772581510070134944518501685759978923578934582919506123335887330219258765102375258018587798663055116028118298636670777523161269398996829145755199047113936444244625575102671654555513573962652535356707162436002860158394499823059301648906966760946051529641163143709998166377416604725747841700981687988441846260819825943306685756075705796224531867704457685949473563333168666424452220392027660584537563286082172091737315202244178787691493719678504124025634434289359514358446769015534839604781885515098956179660104523494942234008845484924067947768485825097147816963381235709633157206145856665333410424098043910830502213430296543290098643488261938318027084225257441660369760298951287509110507142305667473179153463844008705872912536938801079187376789840205471540815758639622888646257666786070838266260752126291546613233778535757636827464145317583764903479510950742295405930260998651152093054982250200750723835131986512002928707061712753215810568737417662675500515150410806533484803888405258408446812506278413434088334432286766287787275770682078206630405959129881976227786171770569387594536964954813221552646139652426417349060008457062840499436298967911561092012263433248043904972481216859175760026563125800590846363614924237093019748493527732412813716736163492995893146444293423731208965638368253888382755869207184371852560110849989368063068088690467146108429957153536825373277426598525422560794547878805849966331188571019361594661986365567187505249568544231196068549122829190980243120612383207393053409072906934599714179152507805049181495543354159394479586647162226006440966059374577771255718336757969489057838433007475389377883281339166983859597944023480291847566879689367177310759530824819653717432467439013785484099550179192676983894091916255415350580233533724771377691026893105789983544836141096217871661926096066696130845824859338375524263239481003561075029354784679086948137805326401907473464041707648702076479066194121398150101925244592618537465904318558870481374484653997453827261627092556790914146474452594834768386208705123758083554455093971256337689591180430100011241277060186024276100173789467647222867708256096671617654661314349043491760852075286570398066491276164949030527328754281991614464610614894445380201810950139405920799460542727198958801944899313622441620385172784017855532340828455065632654736194176535100034246626080745042324954858089673936548285285357819193789124746515994479949227243526180962757872789431930667553530766632764059532250691509183796877375380815875047056088001794764517812664265114850065009632918767467964339731841765670888565678695545148882771425335824424650776470637718616170139878272109384361002918586933870919859827987130044546785450521537793447772918253121461176779575816529392565758623528566919125235651561276477332923144115045195863013643170344060558375444636668026951391131541601429742729919162009359025441298262393683650367902370381031226795202238617552986175557648048298502006934227612915759377502456206174336929818798551477692159699076547821640830606081677342806475898660045569052690073386379168650806955748938766361482686013617567243987277877789463778720804397949151990997519306605844711738575348203323421753963337165194186427467163780874238090725297492472317582358440337650569431509315075351730659312037111084163361794012609710541961016470661985604011363196632558992211155908332397049011499544288107993337432182856916649656663365426169951452389128104380187666740835403670692990259247850686412409429964470009840572013287732025750734046514517773438469867080575472807079461165858905002160630965228022464749723875986005817106933184142477949219472596820615446609130803766801341466703829821391057522170898705268131396274092471047270152047750428814339023825298706976673342107512145686805757774135426310498467524894320137417525464741030032873220978277808187895629901599492751576960041232055739648340209559764247560971998460157775329426979341494440556810244924179605840472719313409398289335429077350604494115597217532656371855154713997245944715091573039390890223815300176053459565811768893119454575805568876369539046397883373344865062346473080966081768891081809284940213484671373913349674618786364345642523718838846491413715979585087873584264678846543259384380218818120505387280186549417729519792915510320632766155242978278224167927383931005379510915184529741668107072603070274764375949068662096122734454251466057022143044870510932924438324878743932692494518778523311749827688936573096390106224632073485057512842986768963030936012119660129271803416942235552751626287613485513763779652990355855350204316436665861285502142123907970399667000276441379599258405478785954888510831878032829341603735641140926826085392233390857316634154834185124524061199414660079730144264183961413368105348713168771421175813293968067983215470717275547756945887268131074955077005519083349247457306391179034200556773742201922782554499663779334521920399041166751636981880492859890177151907485839798939863588772886571139042241643219955526639945768622379300366070955137146457030636875191248422141086323996079372890616224353556613850932505185789254166422648301573451455011651769755077851715995950984103013250049969426901432283830644877373702980291578382915510036455478540888165118853165329242774164767128980245858639726150771667290573577692830166373028843885709225534365471212068938692132172651664514631366746021517376898593424821084693785230984561621092046577155122056879128558644994516921100251748297649345773090945974058111899969684839879356701232957883195080443197569066117110215879235070985137432339373308596617710288374139636189609588718229376718802022633715983814327934824966174312134226028535562494670649980012240964396915027220120299524274983441131288325565355836002641691348888941606524888629364037212460023940434158900239818708485534603531504130854315899398135398645248549514337843139597473274978516776757345590093910594829605325264791108900013566596149077962329019518202940626343992636229013570498761260879581034216938032349201547589587767907847848558117170901531320199279953524112905012016740951448316178564232459065306108175665620505015993232634370042363648033895137787194429746540379845604460859102580804170540094311160633579798382013113788368304604735972351903430032723291944989723911151654309557580227904713907007607513966890321369486589521283698683698666965346706316365396670300413365577607490989249235347562970083806476827122216503715633843124804305122777412160513276944969106788975678140411220478256215283352615638467719152591155395739708619814118750362298586529480575627709685040428520514668020821023627028036923058863455990640926767202359666771192076841788513664082490917022436081840681346558860686568980086321752292757453367809665295674725253803496318682620016691836865578275952645992330402531460652321889139532505937948754583081283638704486267185850966266800967613943883873877287922859629661447784024454171133129308427278808502190262935396504878703981369830281029098224528612172332327598595853984302511507545123543822672972995954774618162972106401686130765908196971428075939953516534836536606449587098673536173933897585993160101076300273304435143984690693772438373649163309043438099115266226479458178044481446428664373020351180977998523358257248242949869364409882216607414619766918937287528576630612651060221823583552058829490126719287726948522283172473437371832921242805867145422499872978252874653054984523405830642233557842069309201075291137617545430972531108680919612155460043402585224005528548994879544378826736406971086753022092160863909693189249569866296347684420551191771331605279715915403712532178894423294274343036291490319166867755871568899898302131841090108434868120578241632615061654947790871398313880405205440470136258001239075096877910691928014138665136395908662894045817265268500644864596013968120433340071582488750530848937795989719454643891210303843992893033930402578356288907448598710715609573793228377191209782601128269438086162762065116004470864912484958118042428927268639257733646794911526923523804557500807346953187788339559849829503924855907074892713293597725751480955958665548473311240878526083247574724211322815649397922930737976928129897092899392822290817434478835775656555142108785281572554147311668269652690375082201791313953334527339121991218106018583021749604743334240730977685746005370329462966287709137974740938250573118406239949580181851281633819399229813422919778096162393019381136809578534491026589870153401422565263186073387327624199894783413938924280092784549224599837947710578456145564485419316034766375908414089764496056155182803999417181978389085231215077318529494291894889251595864769804187998216922711926924355792463417724311568269590905084097644386592003099443548970357720541331416811381431372095985529171872013902384254522626466756916325212316827108181942996998052613625661793692263529586457773510310061752629202115703731023723904547673458854157904936698803536450612223045275243181625254529272927917381851263284010627562652770253640257598252708714580508766994672207577235823859895291701635506980685928824955544951452476727469053496739675443029719338243144100970749559546489682069751025653949292412705700028493334857153167086761472770368122045139637691681510035695183151894864641028719684677061449019074445297509696676879020791321079540361790383372624217013157607980426142464350680413813887206787440446929185384363305999829037237131151540294330804072769551941905339444566678143441322262667746341926842135762723631057883274621851697433464832068341739177322643012347743534041926362449940700278905074932502856569788817110501865988765068710210275511919607889261060062523713989811980299779500257422837439041071726570359157742542157838403134167663053506791618472141241237944494283461796223090841715003818162363859279879084213038533317433429790437369597098727597875427708291597430226481693917762349296930872059338539257902068732422832249695203301271376050112087623593517122251017900233603459504881896355015939538682999931616393950214953551236738364766805391864337885660921355832771798714167740251906778467431677556498865647691692945550717658734081471665476464772586821554359592127869431406668026945130724741070581118827415846613223054243037237261536150766537324501390729667154954830116384887836617926372771416395133484088685213480966316107833595769227054204134364482483483725824120354624812045878360464046746107386190712924196055923794038916127463812023338938596818298920080492016827654436989600289823263953341162288705655235612726779863820540858985294068209555440840763603492901243326701128372671381949841066179405453069114220367664631100667954216475540051443967515723914490342052594143981963762045197842803607738985684075169101370720074096470043498335660649620239653409115112742918108634469933564956146475797584764270673924299161169495506890500622247026346554947396479909578295047730511199866191670267109709877195514298825421174444642405797446739817136778862415052598658980808088361009788087002086990746616482314262645417647935204946004785480125369349548234287813981329019376844539113220446673650814712501731497793519454413768912882775006645548833588121889038884001372851501084816031959579481584775085061586529281074718702451651761642082004579875588546646463495386985250206055058270555780793854923538253521710131006665176417849262914500649430594711956097766080551933975801971851746506091633733014687241442741987413960872473654877466764391314153554278155006393492636459384242593231346900477042997649570496446773477097713262218971557334885523600901253602963481684377608441262709891057304002511837725321770782565407117383323438066732246559785122544526091178184970267582624202147941239644329557321576603474215687491993014745265242729018712276447865914840261065188624204730376212914499910282640040548328206977481141280751494465131794441487413409094008831403350308968995899597874880314842436715299886072620352636639037632047757447932922216197844987452852745789996687774494660722106357195395631203921901705652882450139737930023562769508492836979588782325548037548843400713911749008853627067519792946537079867841902578314765455761672331997605522565136128607420079346719731056095318464637529081401771503646652496319822778275933789677525797607170480372511292503824475786695110845351428216983024175635789310390958616452255594089056549098743491648489576890139330096752459561078638186817599079187460726970388832938169946641384819874272455631936922589488191256123824469964944378892018360466718209691806739001261649140741822637405238713283226039058794559529730558973645475708192395286895033664684501617377211262260064983589530305087058675472328016412788017464185043732176351750195353332018081072567226597008158764577999898939736648216073299972889668228151364525586873584490199880058376838050837297778357891067757273753909626843875040999296211077966551066981780149858085036610243147230453803405321684598139908591366332791929518065214873610970780909936165512192793477315544598637188879141295927948388948242142368637089450521453831397718863092533150764989422363394501062134213948271727566528159224288477806099519710810888256830206926620435526035514399563474145246459438522400492455712014080400771011303020502875058321284340210321042277880494598556820360408303204277577056157793254393588972346494300745438514688681368985071368192518110303202174680282975497837305075356842469929860018437593066945212896550615045093777807449289007787876234118416180866718578155866409926703537392417782954565759949435580216587751059676572367771544359275869251387354793447701017710695582947190995799338539315068677006785021509883534718232186214572083097261920483468246453865447625458039895944316073199938562617549242436044132021296125053185714449558160277715140884931802828828908867130258547122585999731146679606065961637433287960098909542061254886273462723318984432483056366358298332335251543956164630295713858411898752707789220931103907977179594558935511912919534009822013757997304616936703779370957108837699102034623788121964641297808807717267953206515611755824561901649371135109572872685139285655252707592865809615456153349616222113823846278507608082425694804639876085306546472972453061752142265669983051976000344558135514597076611246644654641796537775813991144731072875176026517753556041696285712082070536292157064585925903538814069801065053261154650415687360064834862936120172071345220921416221309217178285539034613536276369894978786908678268579794620516448213333418699398533576705199321670817806174653348754258445550886547889894361456225572657303327276365590615318584902782342559213896446014679361215261896621432288582863566714963251613777613205530171956139236167725059975174142563357580842727512781000810685771193062667128568417701269031743871909790940485995758408393807205583748747860746268209751104952045959504190159104975556801223121557262625653977311069012587578320719179165920704805920356192264697084624094731119230620336511136611821227666095674956354994221061856658879328626887748238494582012109611559312970066044708056890905519747950396328556131133290295466824242960755188742979969735252226829007596080813184768250157157635624644997785740419705970780816343402587076810867619690527272291725759023751209968170856447308083492271856029430706628760118507090761837951878910953047909910719455820446057855710047821820367612169910857647579106720723217693591625151873115044208542585771899068986709188949763098754162619836933492869354677201562625350120724310312941129897095124412459079038947104978675401655620574287607625005608438099118723279362957740827359894504688757631733574135093443582240172544586827741451671630841993389496225062058313359675411161598531050472963986247321440791636585694244352148572814863918983602358064322530338678827620807904911299024333699791129034873243141221741251476296244051499117786595900987924325446319706039665279572468075761820451097330791269820356103037114469858459934386395769172089726043995945773415412518592451496357099736086885840925503037969928977980732574932096205718681084662568273635947519952392088794271139028492683544256068085807072079757511276087754313026966328928553353567877879598833911532158106714672011912781762576958883928615751717734440895385175822816673953997941091351251411186593054849639592387960079395208756197130362363306735716206851518939036078514338923045243113743037965055392071540084625751287234611224734808758873077263908667662467986543258474481939134806510717065047569829897322070205457678780808767896072546868624052989983658999502403591166363776140191308634756931196361828535752604326191524102126558363295348737341691477123312429345423665673603003318456588549607098593747349128600862134084957342736892788178883447498563585286591415044281391112550290838616378911089121872190538039045027133894740231886211707812932259211936578960276355663634724075077451401707062507064242623926652391396147293875092720129443571700820341440694743988958532027036666848301124216180646518288808660461063937980403019645994602441804956816738557108869906786346528499720459813769378174181839376230738268442639590156803953721705023797826230432895805546163830519348627288432175122408755439265963118717613019100674642761992633835288593529598248029272570754681751653603992495074650524427575546701168735194508840669927567294313271065362256084208471876000475508252689054214010487155228463489550894643000513044720141523157212739684296033672800025046951716166952279878707844589341564194988697555732955407847112520419971424520433662631998116516241514237573794094527275879768169313294770940510747183116908773461895540782299633448347188258447638097185788323515892652499963441477249546409985349578332020860475734578294063069011110138495942821689077743157540843009049110244860417383468908228414672373178216094794679516235025542530231491203678693428674833245073367728266843253325125937238302139571975633539532848522316428016552382217953140064177278936581138965361704960006191186249963308758867785054287530902186980449130335159540430610499326845009514136907038866495597397726446950508027327748812479330344556017227886790496856902217971106724850977483582976761883984174304496669942712640136777601605328878029241945169828925546608684583186214751713148162233042703533141626145773490013287407263177724089643121000414357721282610983014479545991456922316976689954659749325341952952160083074288391064277561832639750473489080360924953580074368377801771680669241349802870393502063645287025317296872514261325977341973379672179002775573213943583807200593755473412165283714715075300551717070673231621290670360100858415739466043939508872254128320632959184180118418207707520585399943583672822194851385183869926659069992633980765403856628871531775729247915228506802867922563655510820621574217873960277293311910076590663770436725230097528102463188780633632790827628632385601257684728307098130085992257025616593118521593616052408074401240511678632381585697187264672437475184936859064828771083694826111100372402035967073685718681309918057308825660093260819759880153937243160103020170099569652129672158479706329777866460230624818708795832816465175202786668272199769104043849448339337069944121551053587722179816636807575408196137147302032492940985887405417220289137528755761520028695115991592755977182797804757371925585052755101495499695953015984723138145621760390835411224132199982669315841282290467012336824751944589930370673103382732212991676090694539604448944798464094778939593764510666773246772606030469333056195699284155168373890674466042506095278095092479539253046242221221511041529895691284037270149750820255071770923124038517029178919607472053879606686244789736153827290082759477220193838682601316222606341665762324228301917085582936110645313368451343631861199503439589490867189055296652792348561159272350866977548800497330926240877284000144398313207772531881333074352888333715092286749532692840329671660558168931731970596586416007978004277826269533254317694904715711944366626527373238934886706306951728250512236591778259198105101989002884526343588160648847117746045724113372271569197183446138736406080207384068365859323046335172747551678949351305976332927380823530347509822563985268948305392490538976899353043096237948054468090538471577795784668398138864715646782182809620210493035658410481268284278999394053717030703126845156468997078210527227941576882988734855462982332795796260874428626772788819983223065318078064984677585057286554876632090167973573759032496591821426874576516953879522229500593314090250882760998679125936066628688244835677624646173770283315019954187283270422896109364963303060340612216480148812801330357283396757610446496899986069927986804815987346341844429917070357560446658888850770069781678867109050193555660438534189882209199480572216342560430799268530303020439972396456592433790432930629274493218817802090122560889200978614781620579118963002093792544164067516712623743040369362124043571169747788440885177132333907421643264818438695311824330624754283936692346763028306177553232191972248115328075735653508788816406834428509321106706802133403247244903508746933184571067495482376868851222019008291660996465726331338083556310505793209123936024199503781960847590002584438098108677716971968812335988597001602974307839737459058693046342642877450100452743151873574731188718116574191787178527748521588084660005420479243432880859139627788862073816266842949220280850921620688388918404712970455920426385888825173717380088972416220514603338087162942855265812077199738110490166578493592713259587555526135560142218291797555788155525422714982465171961057390215563735682667905916553413036250230781381092914968369192167113678265087272983074232893670034328176675035378550009698860795415737283854498268085059493227796725962543035827821079688152989835771386986923211652839176148920468548708351762999650563938803955776045410536473961662028154219789453769151070431031187274377524345469125330475305834826332919023054711350480797201046477479341283868437882528436425270407475197989469804108809469952229672761417168666934001740425415393933307350418000028534445982629193658347790385000350122104820204287747034083701645083081966611011950196873313194714686575638232596528596793462554905292085587528714473090868123173413774175693620213785775706108652085626778916498766206970062128762395998683023430399545118729295710034697508507679459731521241842120019137829393703053929663319818383650597092823313992919834287978479865803155322701661823638421185268856518637312600087146897256027444808297935678614933174398116960712871261484508105749164691812666138247139164565745540511970943044849953399796840613402985836502415342031292343844010358204779616905564303709560613636100707001040658503432476322542036605208534525947125622527213077501642306696472806838296634718445479021711415229736523375493794298361498385289953783505268522703740056164419161813668626576037455572152555853448976296584375720948528783720984195318822215416567384624702840526398266435713736499092368360209119632217503162881041857337180403666697809207447874118239136574014445865184890434313351039959427120269759535453862947668570921847322503389247280713811688921952031604631876675482123334583221727004679469343051136583919442756082815415869497637343861086924020337932589452579252411189105406837696158444100423878010156746975294896173904312478496549105764116371917933005161761818354691695623246131068511767479220513967547352028236498530490318596957422830152919845034317807771677436488566277500537982428028160862836678240087197884534775529300523746795145357168190103839026409675015030281548429836800248895243629004466277054797735589053460571053348477596200564981902165443775310397934416345425813838893372986581413099778538380545524182819936695505047453776225214173808162816485112580939047794932512588206856942479107793181903783874564223635830821271387230035123467078883377970636006353039601103047734448054956904015092262312787254590344090747582265733468347810187970023517640581693424356479957646318958537351056378566156674595041326788343365574721561363294034917744833336824588860106417455394055222361061929028679115487403751491581084123517567115375195788298599975468375491767827000468820596644964660487208087142646335410886288799561115690339725034056208941691540557633946508602143091744428594516829238224290193059676024431416644825351032593665864422011779585641251974298943289421577585027424167217040388405935690531659527763197273755408614399568069566680529799788354310615244742646221068887354930288234653197644415644882057362236459266626844619444512934769996356845414975443699604058761613174763546942943336955161694816848987620802063670974939413354680282556226686492083640348754881085285449648810807826993197757923037712305901604456325899581674674848893665405374688811881625123931358039022866060152052969594076047198997481229397542381847678579190049627430798870223209169028706774638871644344050974005841478592682510160019790363059148736211748723420203587226754920359362225548902264169911460463254668827269165040454747335864469188059175998749142264193108002169630776291712597402925382485117581614751800639588219864092838598226231017564310185501389102063061637536388010650881932417351910092928299803089765719416867954234219562088426733864540248989237497960644079503839804900073585520951299616099786451141124848288418963167447688976534470874951879371797737724815470259287106938074765428782304414272431100279603733326863835881334169696863417088398352486313416195307865653895591941253466916382847320261805127226222941214877955691344092884068856649948874272473708825591299978621858058892183326401550656091952744850099083792929063701237897017043425661919039737910598114224336062313910365398302258143775079776999094862701591587316211784095826641252208640122641791264311405328079640488967452977894115507791680557727392754053638329824521583408278740010392355662927371263881720658345085856449479540598378604384279680448432375026236300085006664978186672508257749471415086354546448212501122554091880654802326668535257598084775960784059221348145713229426178900177433892745564158228036856062060176699271501231232245972676121438840799657920335709110011250720238510334272354798700917920375276118742414504569591039290131427110807874107775476186296591389744505403147548712149296696045576047267344659675092172422842921942615668591596275437002572765426787348774562136851065261241893724258504370440620673509824386116514186416201153595754729020312839844861284975433877641057725476458216035536716190129291914460167778668239611696961578636851237646001600732082009474501324379855273171400399116316887130759773084583665666739776819123278097620843577770782798167741054660441631039723933963697457885063217158175592473941100760178497355139384222479933307582495944905413102296612992781879775021889186127489518471055692082659631168730187431963713633092650066282149737179173011849853677607475572508811936970097371146056010302129149234942850233788963083989743961036204601694185338779160829691184568881216423400762207694454648419979716776322955428324653480567793176056755687470048098409587906984585490842239511777032459392252747820714108014139227713741844287667794291398237920473599692617453505154369793558352241791330745251245175672871074373291308588768878662383442228531706379343765866491882012541402145242260543729881317795902461395167827761422507485499114858317446591264973173343641595910674098473038685302724255992652046186003536440154585291918759484995821636139215602172369600838383374912109084441648101599578320116353444625402500219962148741347105140546399665804752563563369900127201397699941979571436047204373973758776542953931534467269609237745131212823849185971551390795284203289070889792524819151827933140667094752239463485784426890149743539603406501362139799718950852472122117755641486524006144235641769716665269273619095829530957002291239105482464306843971601676441432924265285778424738716929014114748665542027530542252010132598863033977346596627014181605700752494473523608736972923710726010411766669749094131574173063058564792488452484816372171281997032730622988014236117268891807194591146475435565040029737757387349650681840259705518584084205889720832127355627421096335469406844773016934131538776328316718253912959113781737785758899430126744935372661297838552798187116387765322625761480871032155027390481550188150817594498231569131727140029048562296049475821502285262513020350420701975323641701658666278274774333072723004176184582843084418945906126124695189125639379699750315608227267560795285406642698674509188384518638503742853642643840377985299667617661073627309330503395644375328644586996221690780869710098544835218089477460959108448633399939364231035070347922266935902800497023573002130874209689156616997566755178593460232177314295216070210145990246894988551815356953413708104883437273391807653300744546705777648447461042489277114960924957885217306465271332108419739452369669056121807292064761393316674180424635326315137796439434240521620139583576931348230320410572139931844132241079761792438463770949502884791486489740954593586998538790665780976829033196748481733902504067645795771062716814387309322316587152436488434789886467774283919097929778788791516455820609466608881631140902521122875616473097967847160735656706850702879796804425405449843252312049154132946737852678056857459462920646025563392549980031878214709630874737391576447285153514214401837197197666046070544810755599645434081218437734048643222697548467647103470289227417043717842478434301077167096758872644192840051697417554560629815775541320942857043467223813866851084137027304397430848428685511225661546131967715576040729818101100926522564209072881899620658649713478034106562291001124005419241657916324795585333405890941678558056980224248301456314817736594707725228833194117028613300288403493154898749156998644169742654344780131642077955333729567791381156270524926285457716780683476821243160814152119202784490602942848870748429995830163470715509576797662786375896173439909681046104498540336045532403548459480431784609541824217828181489016490476616395206270872114494792356447957505618632409537282375223699052094438550759730738170914240225670284173980661871445819688398490431412695872116943487437812933484942689325809806369899537537710773012766893274365358868086339354876672788268310121702770323190871858678105404283071786880599274032384661536600795346737363878506085930594914062082079336483233781338224727575069331408819938254587237957732101127337348702983173752741592426085853172793226530934035530302542986593159676906396775396663509598532279803376924880559187424544602307769812516637593127238120308127198756733979376568521287737563559998759637165416550766502750901641467280327836702933071967269319897622963474684237114598682291410491556837380626442374137571074145917768690536906974824440585697031756048907263677141003217140157830540213981653022436601966786969195390166948208832583350442450082878190968253397403819542487059010049652247791273231982609165627835802681283833646708361224328063178884067486329921458635883435677207447272342767671726262328495029717093958394738158036560736610203699355263548734567908619656156000720630320940574493920892723071452422097279751587445502605663086632834617602550100306861467189567244631466206592437932123103253482737807972953184152209024692482563291982403454977622189466781077477126452522827632176687371341347216769985136790256893698517948961725609168583105803797585199610240013136546856476272744613109266188189597988920952804098041397858661992217028347479409438780915236431984347850695784171610538049614615995188293533521854512120473182441581328318576660192206245512423269672434325906826629501174826027311969038309785600682351496755853090963881725317482369550856771489412918430469511047181348070403499477698772100992619757900082393565076944313511157817739329311916468260181854631146927176645835371967204340554628889209913172032135308000329818954384174207134475366036482125456646885192852940039877208685888335564437051089264179439919099739975834139474753666306496883921231943479128785202865667066180867785322436998619043772902372988099872569716299283000084048026510307558226903338403860081641581232085918841263108200001883818416238992385162522912398913251391997429664131407176872512984708040110077286628420153727704414848408094516557881940601525545746758715902873244177582160263282460716175342180927241163143618452087362714345809319234623180602452003550551490422796569016328800684971028741716059259533248507323780653463445869785101829708122396370077943515747164938956569582050138398641402270428081270775569492436419726146584401336805452821423617051226727321599118530368385578239244962147692360502722415881937952061927642320977415626823966783577175696315180958675024552364319515692889820934915445282770095491401590359907224096871756445396456409976626718305968458166510630759744841037332864483408906196281261917845811320081660989592476137178447183259194347198718394803606080830399127947170577022218686303194842746691858271194027680500768823708101098086754401580479221413249014522388036665176174374222589345617815854791050275572252385593031910718090627812052313682647758964176682283698418919536456393758135434132758939585306461697535828687463391791223257961989252849876874895774611967356462289276622061128365635823010143615508751596896231465807257326124695873675701542143731275647085334789258075057836795853023451117886652526771924103330234437786428376268537475027016375107796998726512380132732464096740496420797206052767736849892708573581755267235929383440233044452191793177608786606291944357591425093293531323442015632391213391303846695392264961595756326574594885553503777976231432127456622004797606636386389547330907524552089789932443613166568097104503717390465968723393607228689739459565029119167282254879125645066738381234896431333542757245682581636858196410051047081010724602302324931902152924435572620067987590460057331683054981584665742345115275543006904633285631383962996668274311766580816767166257403400706369517977250785949029943278979242340968879385704456873703342970974794202747288521068596109058361835535293916419044766866171338667280849802958570824464197172647543062144044172970324435275864439565509899690450602305214702882715609914516979227006287515971625560944383681330338668315556046029592317548076113891672645561677410033951974031060538659248330594657261678147895290250586911138175202888708017406359786578729676042944137905957218229115566529730144599578519273144148822943405431311333537125894091030472748923927297336818673119875273368272867459941720780658011763155162691504098331214033939789261616671598626356202241859591995973651931459783458428985214077216342510186147673459805407334551166457399040264655747530289813427636555719396234277760963660598823818173503191813435711747568541165900223656038298281857148663883367405430901402517422368034059392612954164745067579307984465534699289068028458491882411378113166490712147058362895248432510115707555173346251518588667338723703579089956477883374043314973771613844675612748843348199806185635178755901425618504623427621101124755095372306022460112133023586424034066117259145027320698678292032153871253720370062050646321055107071593751720736999310002912372935071689207159518585371231332855134905646342088811383424910621767227322883838552460154655416273087575890708944920602415518669426112719592326265025415065735981689446802538367720745127230073610480026967637541787571622395159223989589223797094469989116874369404032096570049959413572697408315674303605301178051191745128544878260138887204155350257321590141546677878794887852607609685356214595829739397966621796026609780314709899953074290754862382375765433648334416133247822942239764338818130542754015539950996703359428629229179098914185911162020028550667886746702109746894021108151154286609192666094147775791191055266957104984992357730730711994995974645282155907432672458365657457426333885279052676810663227565795420299162983314783334127111627185830369809234023544236450171045065503448646607349127313572168956845752309873924610916016175716006863554767914511812742890316892460418894164842467601934217769327465585023255757919571411037348225523020427796272951434281919915185541793950514751950852361871606850427361574766838316233139995292242985403654124707952311579266072521902272259726245997489887065084822638055389738586130155322564049206552824443975176039716131642506347375773177042165541570499178481596342269059206190299731772122465763731583736027126602946172359765774288912766910399888565694037006319771768730371352561334987765833317957402153425212099153251205482626189615203719461581396470363166979176054220925788074870527508438189213834031994800050193293214087813960640492825037227309420575384774464494827463826295205478402464684276999386053518852785275179092355568859522794009100373294959949463242680740809546481882121539215367631764063466608535044158683923622985016116879755561816138118798696403685684805440972304375182175578889646683105652007049755800222748768416848053640657683679690195990232035673463397078299652834441030180995212325820663570266817658380660038791254099943970459077085985077820549801021395101059304410053551238826386140016283287461699051781758080364558232132171810700947872371105031187656283624418548444520686335009647440517094573887086250917815792549385900661617572661111736337249831861916002117169680872466582398776577509868278401633946034316057566593347026167889758151334897011755221791524178225174472626388293526275883370711187931081779156536889571620815433217554440123280780713273565292842640885630946805155209213214207177900474704347363650892254559926360078605099716026046502574205623894571498362407591076715748150728106318148921472838692350333659094966223597376567276235715784622914121917517524457029748019617385873301570763282510520535470201124012058672607391516110734574332228420148555347293380590932635607204389113981094864807934355912191799004136265515199124038079456618760704628678361607385706667357380832298833782041161347571484394801409712175152621367939843281731746395856938648529072886731490240127572585134119516979984807166942370503268245637519890556965610205405450072204437471956906665090342413091946510408037698258826686387184877586774104245955881153755412921139439107869507256120719641432431750244060691512159463652115463894942714486182402288550777088666192700070081705323215511501569470337000323293492017737690716849121496153802392562578683189141851754579886966790206570380439267522551348957732690194552745431350326403813643108147210144023280568499640759660486449105279688060943790685071948186955157599281378877712739110901500171103919100194399786154913312261275291114203659935736546267762235292279187308790176260781682592836865725093785863104710084627787184385905040352445030625451810241722989380066273841566116528657846820119730068616812746735508198069276287891404647216986811767227595668817892826227733971381707723139855217977861558863156141331023433875103699252634901925154463604499156856575627160286495187544343063563888514336687561816395725468158626840874111632521001968481229008260205308327214670840943192695943932997306868277504715326787267647600116639930314772323363923918046541072956354994438367507237484926509772557473050952407423422554892865600335650073822564908924146985524270999956307248004104601931226789609793236315561175814516203158250553231482061830741547045188967218125216060320728749102395397588989244662546394564410223823651769115269753848441046159783497492058464833462639124602580420253314412113402698320294724018866730521075616459606087838314297167814512577718540095334203406030203811213869690607525895910867811003677990149486396125015383053840394007644863036952093145575308021856375864563433840249116525560715264098771033301930681436866354205154192966019946249028249029428216502577559411336710177812384935902856790687006706353701800154974320754067133321155301737208481886924338237144682568280193439443641173171996412301140003489437232966553384453470016580267972925522283201778207096597288216889265958439660115074787418193099164500174490597788957773593725979244232480113226971380701782729600256273285943720868479304676844582496049320039368235817618728769712767859690839776941470028194028723598993386926054884644287239345478602391531242228518554147726326195012079344200165836190539654919840288061628966543572427746667069262531061590044928090060458035174106032028402459872909438929910413582329401371208567703114845733579724596927408381617420559250356928569092668033006508113208071455955109338237488319134283569405996368128604134644967502159655636170297681690885181287614988608062738961053505371436389159072715260198964643988529150497726221092607625832925460212073861665220203036971373337122733162971671624875480881004943399898344747236275553792395015688477385546923512547040129387864012381927598085882870763148885432244148545348325485473547844320482170571526818206612933156716202411489171694351535023937528662250313672169242973700814270018324886706815133111880489968046149146095243928596720128121930469444516237454841700371510384462795515361084131926311964535110916510911395247483270042813302392216465800210067673026025120014864503231230629165550052132557201377059123557553280294579455459630218325360642393744119502942985429896203706836869554958256129053052166451985234987218280067182411853894737704243198210759657085155177724949694750966507610523084946146701024321642484281732270921439990218054884732490786813338330876379438323256592838474584958998896993518996724663922913018357446783029434607575714598931667849560997193314388428725887410088776807937096874305878337078653635796162632271500437175507628519725181084153682551059638091872913228745056864710178870382950674817659729547692926731022358352239307979474861238055022758303688717773652354354464510357428840281565982535619813890690801841398578771619377666624445233985581198100464044931311001672935394091675411209015572285864030742213405356786165167366177487896142794677701724583625264735558275743123606006599546862541257437860147083111919383811082965517477122429539635999843055861620567916877039464168412465439464449583363010302373315960136434097477386755568506699937657707739900348330950758919273762860569508071876199370153281522694068694988695788847923545010470122726248260028101909290325424937972754420804585306908591513024380354317840007055622554438885719917400120010090502261197718966706754962019294274984343974649783934152452887431117911973809839606918117266438030455895010909069175511299967247833757760737419810859105068560276148310540268724115213638545028283321048001611695386805333005425301357774917138438059456492404214444123852504748743590024004302599562652564396892714561941449107626553291639896961881003872980977273168077505058226099068343728774222562286158581627122846204769210624074252739037752836378162460976751330956922235149718759062348815754720434290796279040420373860486893757065682842921947774631117185600863800157552349098162393480568090262243790448723528756550928799843060900232035455433218866102733049925520018148014133474491924043073371950718585180911697267627764677660859105121938252703726784406782687747853602531787331671889610977068946040524181398217485229057285034499021643795514276945650261498898868465611022146212971026239101880796105539773447022496562425705558417590945782844916587691696926415226213675879880848708535009622152448449256923039101513320134897670717952409405000600367094416323314825952989412819691700718018922939291879564018761677262298830838651607088980542538119523372043676255075370134118983555864528689197883519645816992015384947213637191189173064256252588777728583130359474432152980665350135758816667062567032860069999037441944005380197742830242994000142809114963237619614529018837407752960532163793585559948813440220767060397291245760181408597681919948663412775797913735318726141983226453664372580136635781545131942417455133347716298857529260084412445656927185714907823180891954857480256724016459422366760346218538359413292765188645751918713508168612225631936733868568947005346717938622216025600722205539622390954181528117602417670523073744553389549498007992861367634621648268482793035463075714020107335224321536964394827838183990508342414712885332555361853474554550427268186550857285132628025582670710698106693271988831971720768289228909125079868572534982658599218952259134689632101131049950745803290363515036613594510903948344538154012894674869514829306799238134225613385259660133777781849558898290905894351773129090306988712171764811070763683565831819793943442844926330985473583500509295328535200916228815333665172033916582981313067651857052339963063256937556602853828875932901904885029756973734760751914397299030088649970639510112213024791885186230559754786308593913951349780034019558184908579936394496789457400012418761837942899152234062624348490089166888754531099495519308621824296430838244520778735317332178772138511332700533224060922389890118450747840531382695188562803343124802865499974138724486409872093838251519936749609385408476930248238186805183563445191676887334556361867192455823255102011715428003176788167172146347609636251548174992748315084673752766888060585283514690419585016314399441554824382424544118126912838605688421920510190985862292603962876716589735174499442751105825436827091440617831273067307607722865672732282353760750622878929597826106229428120506670970320243973487635925103341785247692992859529377065198244178083315313261096220290934596352144474372543105229666121614579990930691672319327928841850062412454735289823917258315069206998804742771267592644373156628197582605380322941769740365343877554577531882767302098392979038033264609500754146425007037156129025276435967247823780421139607992072281536835425858773803822288797376228673814141403638444301912421241135098956456061763137397184987720131128910616089729662884889330665905100749348215116323130251261835795126162515059948560491287821596532532745086530215361491215233201294762041402245266980523379475296413656360838797837648650121516246502873756015778672630322342220762296891232243333799212134641324036389585450100621363611647259917456919066051665837899447501933413085023214739957204057258588051879043061912343708853048547279383064130132795369398834717256004661786852695029697281390916416459360599735353084580902379720900473197336919909172414629075852150247702483222228318066303736746748876151887264087410742283247706946968648529010643281800272449787646628518357799770486490124762720836098009057344197849064499713470574173181267789458006561089282606736867804285472730623042523091439760225246279414977873086481379128778893841960272572701047906218893408805440272366286403086657465639054277298416716203951670601276470887567602825639432848104643414485010868969430463762571214417457389518297936549669127043327907214076217319762503925585139091262462482961616075408469419544479299842992089829484325725535023482913180696840022132337616172774104231336436148052906678874680715725003837153613795618198861034214693692026759172935220721143411742875299440088428293256710379497441040014330537523629058155352825109537552965054193124543995198998909691716945589159990462795471755677253190411844811611822035074860122514812559144236222669004909894736102904734629636917613582963826884914005304082204076939562177710369518300558179519986325890716993308925097767475872331530335844056231949163821501820767785816903737081441873946139359927877333280994135474996854149475420557463613019344801343337458311513635960447373193528555795705973033623086232902698633227889451529226127215868589802665185884307510879590749490197307040093508818430338041025968843666916350359917078255728933493539567561921225499149438133472483208812604849206729572323672724316050753110225401869986557398568127242560415687713543144051781586206080151744930535326405895727225236201245954014061374170068811361534408605542317729500868359974223894297071472045399196631876479956762721995392751207418267780384344668560573969177148061964560514132517211926742265646087433156062651236524902870955361989363592684236459977755384887193549224447212521457378328859693368387744846164808862045848620322868773439551049804769959875084268385963474126042938755707027233024260387115352856289809409454503437728754462867414579122034451084569913916086401918543671878532507575838902700703996897030575500283909325941442896375186930395555884463263560555806888997685165297253574175443870862122386192211395944676705546847879267353479659594311922972975919278819742012919549434047564980298932396588772937412617451856018838670448439700566704865992091861070558972975083582348647294361253770971374000991931910761534000454262943661833211843552609498373144648541082484278247351511624672808110179805104590656684896266902248483509943436943066828400608571680834563348464945254123842074024227000105905104450124468608797724407625083083114595363940695688498309677285953787533792137540280248581959160703215740875061022365166221073288009065114613511313389836790849410932676366497677018184168017487327524286110762440167224418235112747504844969612896958195897569582380889065338852361310889686282344653422425689905901730107976550817674207045012102334125246770210033276613608920189739985647319355222377130746645339438197338355613847628911785682453102089908716939749044294031228404333317191553380611480351202349639977122027501653247773688763368148739198310937529648604768973494324142579204891515098495555060844983697272496876413417410608893148634762985234064404250724960056681789917759504554713667329790090130992225240648870093982668714127155934513544100812089726751675572316241100028855853623554361226482080898585686694294087350179887625841976695499372243100656946900192200527978704982908302743938959640505310496509603177744098938080143875252047719958592153432081650877052183837166704464919316975672236197858916221337713090728206145343903419958474842841158136882144740840691356870186698898764823672282803260282762313471441487341977670057069615898323925714559759680946719458000397527864043758991750535935327937275509496351111178197784005422446824081470924468391144322336732169979909871384718416564738384010873367087501126895448883851736493323105253758829837665431787428929394341895953280917406396547487799956686279092033527103954904397861593885116262912823157364913186752009258551289532409211351630446793548330031202627043098470892034470118314771380015437368287983007996258012571132223364384125457519636143967140405366174297551588649848618866002545068648877614179406860309456035943202040680036107618890578299398915862657937287389095332644220945830466116531671009370215923471837298400960931604525973361529291809521498209264090720951641189661096060730076627298578249514203442308467705738861287342008163334327575001036579022357378839174390659834711935414005354869661733360199073890750838088101740503465668406462228305360389889485187641534972114103364022956825746592129740562566211159033168994796186719796294266571858661550576385295798956908243806192600100095355380375206471735392242473936444272590503907628751744886135090016440523758097746779497698364301741283536584342165001868760997589606292408262664205809680506410276588617013763637523782208859261643457077337694275797956071496024295404672319593477727298346062060229546136084478779115327911549146252112015037060825843279006736656235236082932069738354172048605431701127647908426063489908608901505659789382086095471447170857841753981405633900397324878112043467558096797293573178968194986302735475742084147159964939567818302284341092681110095541141900789649542897614673897023865885480906326866595451862686891360950116003330203518438049751616411287913411885135995018076716432058278038966622893919330245485963072883981167727233884155736818776711159311462590715058114984431307845708124457022982117317658304391919547194105966538812752200262006152464850957464571368859830442120883678290437232763931195426032668016202198263052714785263924168500693227966701305641666083677835878493709029908762510544855569101042863369895995799700991745871260594614210844488575543669467262980304356381960015889451838899472958048280391755123364315100384759451561317241984839800844572192778326230343463262313651784893932448034603347110453413425739722560944804657680896003009082993229849697692772227545924712099749701594379029405346878258373414181204243559409299711357795149090954537362118707779926797997682667246840946717911621834594692490091629961538366951384489489506081934308713180247234048897341933887126356211641164424203418860040609281738281136665776049814791098890140517245149336559070421337852060359510331004283575338145318431292122703120139829653684876205774713625581132182537930849935355949668661869944140356348770024817034649353620186770356408721186119477194248861849373058589870499865434891243272747051705569312789116105118925416485823332476176459332740696311040757896990787022197327288625987572964722615590221754665064533891824758499075758253082030830248145690744786579596983588517917874999982228595153183065842705427924723375855314392605612465862439318579013979923193165579215790155764523967477542459853946149013633918947185711060989628567370732976034807250634115770766060580326200490709641323073554728318725566973774980607027643318207908713701747008102613817615367517709776916427938104212639110330147633186868141019193764837490204606082340035719241324115065879571862873689740150582953382278021337604194992858800507037925148417511683033636898991070295900749716715171324364329213054229364404674259092512586432363886038912642476051669814984231667407179141208168844497772319370437688010251165498938770239393050979610834299268406518133694443483476475511867600229742847543142147075601207914656674984351260911133987571177338667660550988298836376127972093611403972147640834813360948798812967479591842244766055868551020460105217954314750738552585043381019144792454808444538137617619837224174313698143463567058718049182311308702782484040002962485517464701963856234155353731907714738134566831675066442889844514379670834817975963310434533983897674786612225636718092034420394074761600497511439154803528707890059114879433900301673101974914712200466513777803442807290304401138544564464521593223585169053601655218160705063303552050082972615868695883444977537019420041315717053540962643356467807033683745283987728610442059535544534530740493079036763426250417595603188447444704688556173478456184955548524309663340325477088038146374372545838042313361075189635486693986799395997195203094215056678097754612035053123775757262478616898457729149600107985610598087627476785839202577712556491657572931023641807301140079343218855071554914618115557961954338963496837796339159080938030675098808893191553089419268456243918211511907679517678631661972296299524748538628388621049225894783196722272999041962058562519605424701095874527994169247428681541584057335600373017937400803116770951610600770161460972692865968244655677529752172945244760401309932495124626729968660146587285168918263451660629581235756022355119331231148566014513758428440075567792327987806453257706655122851556940570946077014721218016452069973392466258019742109411906214963858846431388623565468074660664149574583130248697314274545468316995162631721506084690693313667439885282936066394165481623301631389712896031123946282672257046659353434649158294585769511983059287237882857994107112376845924622762449892048227758211184405514834485423686294910110724890388386865971872993361784066960624305558519103194230451231385069891449184433229365268102611343368001921871699235270576955146689243622062636013649551576152919187406176788461528768555572474194812972064283830490508457284558392217127445496726854678574745976653895269343715476704706732950308707324708108479384107119586835575202128483514806283504933480169102651936570871693517464355101633740803258840290489005496653645353429139501563445615655242060544881467754017911188751479523075559737536935300655562668727732891976746920808278031115691406576314453551697225104001665784264460196057979049024995190783795812173943763635334748029354161164047184930445325852338743640389939316456576707407522707786655057836504693239366198457958860758659945583367865823389304474784383283896263773273960796368048967871829477011949317248400975220714979349986336206316288902492788897219886308325234958209038314121805304413589706578030869672037921843346921496124759397707400907078426060651259742959303396323482886708937177209922040039329529977808318352691221388970387362718062948924134216469068881918286946177712397368673381088920638146382642965827085008227327872181122666192884988692221157084127403004616909552488195011649599776451313955952926668017037944187796936585574314131591723750037022703551515896060493791587083306613850654885853442076021772696198472239712960711137166754222263526947683817380254765716685275527143671450433053877429211168039897516423108328840485040876118049102346054414820473522885690084941847348619364902442756200432248361207791357947025468144622870975845978568511167803085828732060600310384494135299549053410419226698929748066840105396314774518268386749705573585999166693641538660422345600747120260580018945550604918249993220167155339660947262602069281726266423388722653491685163991665291471408064578394012442173550243658932012818920491361993442831202990297358397488346373626277799510432562615671038022004141546407899580105728862884634525019018225440093363427413957171322893921276809447318064961474065282498110244560768944469961155711816741622595661612915813922093880219170649249989547822786183428004318897176277544289969863551718766808019966035826439661634785743989400358486640599406552920718376165591678703339142856961098190843569906740111508992123633568480805971523219366588969813827091772071372452226620271652102362821030287016758442853308076954649522971855879108102469338146517778677294564859454615241983748947242332397974168387501793098574024627689638588209382319971273576990563374304385333522061310878520515771905281575339113417718154214349349640888783982894450343192013529788808371376597519122457409464756939240192315214044313219680463070325219529204460062011771462886283195818640595135683935273885392551981263339320400656197901123156414264078510137250808090448770242703640546758408477224704111971497130582105217355281839487036430538395732529759799887492899712019166993255692588475353253036993316234414154764466788683081516531605622682417801980681934361992396024010465833195842176135684749112266896900843592152162455452170102686623881239081985218045533281818115061080162835960727305765350650139103523423875979255488726682586953848894211223386682198608806348692556875872656394559077109298214093859934190514776127024510863421262599331707914798207810080761495444172995509407522608975568139300975441778489237977483982628146643492722195582595500265942802730816484270607209697135718735346574075949608649264360190902345986455822820688849401614252663237034497155783800285157804500558141041225477350657290467860431893747823077938660887166274920471345194834996550394970387882102542732966562794663436340996161068169078529772317407491483620163326983148420607157329008541538297400736061924804072832096788039120163776376198784479628005093079214743263055343393221367289344820085795652682563267003547188402904742839671840901797918226684045217500106581120315723896520445763339585227656931713056603164755993454408777478794193682735104339038872277083367107668813838242567537176839417935908778064583630412161326489737786161026880012237740721377240559141778614783214343081863577399692034801812673184682544726798117159336821704130062719717229730832260799531877786156786625654048517789013460153426599660406394660480734824735908330506814398120362565523592177765835018788877349085369202632832646684197048352049796836548385820756111594229805738573948988203481060803679817271685902944019985563152996234427643774511805396317840524188451893825279069823750131579946557232042614555768022466498047835558133256329190188372240047985748977216538446478272367167401259255242375214264250849956431239126586914655378020656701744070573231459011406228814537723358312915927530429576385041069902761556715946656482790373581912515158502866643173764595564661410454037566383949493108074618057073490327787493679419623269988460518360123135404881225136125660541810269471193456407622034318557983122340866506835915383608901810533836369018888764712882090451238294030425574388168762038406804858109653745023269225873076801643967856070506295793469064906512151950166592527599691097782491596004399687819267693858647689783953865652642082008804225838709089900323784916432300211036889889288046382184847964746559102152567092513657112192491481385163791683552272490003084609929702300990420337820790934460908341435233554633423896371239677116211197486865854378796550735207781153087256704330065497104601208755422922044758986223924832532732000749526874870271057576342339650626405976926732312293224219938716433920038277812758747218568526968867308048906414156819474181727267064182404584853985897477715743543312150316133627299796537684506145446270632031199478727136403656764962854252328649179205071274611169206950812194488454194447712074003483043645229796834401677560318984868644899017965756481775254143788529846617432398981638006123533334558245471187562070433172906477463131498720456026901047007640448791727668044333022171160260802824682938177158981784598135994135953502883780972978747831926744213141425227383204527268934886613677421617167309987008693643941022280973566359417019515369174328128115026625371855124281549946724078371439523129315765356015102506401918463436357723009826139073431272786835383052304691986684639261244574467349501953008554002515159791118256077244636954715627857679251861452450532249458086511535144065325047480785452459051591195331941970002550376421922943030977759506572075087258994563471117144643134710106240482269704436913895229334002212183380902334170079205787832697274368630435292141829979225713397483839278308820169772732376518230034335666402639712553246268306555945225226667627361440636276196296760887578599388561742811776542636264775126686186688063768090097680574884035050280103511972080514781204227854149797116166733522186483560899738450994537782048848345344462251426573847857594957333047515068554097849195048611808253288090604735725082755095808138207433920256480644617747331192321424175271127955093103738819543052584275826716471264621371202977388741320743404456853334232577905610940211434868981785970350279947643351754190922782065025655032816251455987694800994597828300471069410714588989852261225308197640294126498514401262213623049898832858711394793063967573642221611948871707235606958844803521250396639496064239421460174024470837705803889326682453743022901345978054640792861003440737343650175099937879769532225011597048927556146811484144081525427702153758393247254101223101637353794862685328660111514393032151289532917485998094957428308956601337625519764493863672060136193459898688923906786043106675658215124260523170904880201159899179779316313880310478920154387845953964835344652262849992307323876729789456837199096806614032028172059806084900395973325267353476138901868311823038993667768130449213662483745998414135535422871854368752323850753072855105102830204531252457245426900067028747172405252449372180343790803559039727174941057138645830518024210899011436791599863476658208911918949431684395314121430937564961437861062075569536167803582223915187583230719162571121422255741067393933712677280246550447134734612736280927289739095971254212536975469585751378498878659030133852812122714943674819754158722408505701404918613273653451728193875723632835596793849793563198901679888749059298064309505162116704498799168790755141705707148722830459897288353096862586142857449566142705010457926180739824966478984724580759944298839178515652244166026147332961515605166958082186271851885909063380030933378296731472799235639458408058480180974772757743627582133577567998043205814693820257608594121336958010690083089053166496286690597779380385540583778921527077085962042601884736292831532244714575153440479243396550063824001618107999972613392181330885268731410221425472343713694000943137588966841704191383051560649777290240541863583906082055003182725470823071864918956523226978589933365469870972204929675010673530809156199123686116218102275325857419439344441814518668902572887851784146326843750620047576722437906101081663747964074310593143104540801403303337394584431793224594973944417234821979535894294592665759457379000436154026664317334331259443722813644082770611041218179168530199119550568383833948363300985213705909461230656727039009607011744983258094715686033897932970261022736317928780686689103740868228081118746513721485511509298348789309628371746079930256767077148194316105413114078463423350192464469984076722712054262782091957068344488613851767584567315263082871256610612905358844444112676477502396123670361562459369875635145744292410462565080308536630042688107005703405145690784265821083721051036359100032762324495633949744884832047681518174017673880848938320097033688468614790542548696575744044336580490415680481053435573463105265884234061092878946053236411494856819173698142885294988587386626714015244675633491698990992624330715289489919892486908130998392137598422167419658224384018038926537300671827223162295911458012783849349750015211043312653679163089411020739668991388095650146107941112639189810167249382945145181167981919209107884620370740819113999358838277920992449100333827406213417312891119676715497163432724085837143557277098489735811535706848498860093681477437734579336727692363934947416969489179446849110900037395859081908447157454584931990112570921328127854578932721480588740817990934727084184181596550381612350858587354787220871756656827367142292674939895574604037508635316960384373859339371485387416957397234085801601590495625737052315927050171385585429740688747146956135182219895154289929382770793062020666340718031215272580731352717891098444399645789377688302106963731485631635004047322010960521651806353877746628703659847695511419509389835581702055580065922659348447328950882356487571822948721055983679126637164626608990238219029575717234773845433959147768782091015437123663840452883249587918902931875481175509044797175572960221820118311533148488908716130894297059323758144344232347555895500369371754762884640105685113480962541760574109355362228421092162132585109335982963015837851691006662170331420866222715653191043756393635052393351378450846008190057750030678579728592838074957569435123556415825041646507318329001201043731213331012961458594565214945879977417395498797013538243847923956322554627465596440488623788808872510953202901879716760934062908266228217414156098739413306797274113984617809215141065583125580672707843704317522486049686086884662864319843185454035848879280994887937997456047466586364201384228251232223927621195245284256143266008558892429514664996516176916702922016088073411979406044316188525611050019112710516434243577312692087267601611829524010012948921027637494068932658741836292419650958663581403957736258176147119202705815585578888673512285784832148447645675004608416934144460029734964147070610222875154033565789682087026819020881537379487733794581139160409688524837074484845085359948675427434810831966349228586210374178772871718412938002855747930525843402561308635187000789579565820094267957313539170468869743526310122130393382186760444291941325109833115979637526008565038059882417056407621468132480745844494160958994032454639263356401431759421527726451851841068736241401556501650079382987208428199926324240769419279722199897444708302112993878213500747256225047684600267534105914737900420780737902474692376945496949443561555650619105906084465237023882634644824557252841423954553648742907090683243947278574231475803080149515367262480043193265822997892884566846324884319517160329657786433886236221522491856411061593143445737458020296984863019420316900770769445439768941621946681614094764967919062747475566389057695116736397647670044836188586444446112698429846855647736732516661172326828608800608529025550136033222104560442089760664173246365878868736453471049170151265949074034365439886318806654571078750833252785959098767084596669415279433467094478996982524096833091939572228654399850432546170216755534315379085105355887608526146119193841507047012072067683998392281672198422795440560170963693000775755957173328373675926819721281150877164405974398856030821029965003669060158241210791627687406577675062691992796455678870587882853405134687742540423586802976744571676743097440168490462277621491796111594475952303033701689517024742033136543355695043563842767888071106978337842065314179462724642780663426606944115128432570118698937706401282744616000173919675231621354014462182449465876053946326950466790548172999173097050788250558784624142087730632470888589493391723118220496040490516779530622570771522407376189760104611763544152516555211914018396864490161960732720892614004395476467219224549311048541423778563180973567071474578493677677650281328495773605895729230809742844502081480669076235193845872047214244279832184766957135883522549848217944296199091832080508547546929593006865956853208568660785190854149338622298871142874144584450009617162235657696657903587866129252389821869774942751568383268537680205919839244939687146500887367576261612817557585368039532970254269428723044167959623216081342278156399784706985250986346020337693172635705589292165173569482387177753791563957037052082908935886301279918132918871276898927184736714570440571071858704206117611927223966011840887936707139399144085564691810789934234466697615686956821844262643877080328698007293687556166856970890383308498896802830646130437288111622935933922545075389292492154540601127750098948911497499429240121240670760810598640017737574995024590247282475450996080380324933321159388473852470918675863010418021551997583869007965922874731983473052160528730366378037097711065521666135810856697903453873062101454543446195499443767966744908889949937565992889829802122736632937290952485082881974928673530533691297184427163825007107569306448160811185277085888792343617320240812310403048792869005712827085751756280970875474600936585612207797672940376134888883289039201808157282005224525223968103029438013151438642439821950937528881920237416527801093521746056329580004118699907365084279306112468229908839193968273133561375601999438028958685138342109677186644523394006153428470689877470830744632720989374943940469034080817150595342760246471282507566222151329068017097632949593636184838406990597549473019309031723849217144331024295040825889451103137011268930857608352608445539775579755704375547164925463212044389567956592375921332976370706759022557887317136240672395624434489412124798657830918690775914365717854472052169971876973413640231253833241480449759907754163195356479532886356755283446009667009794536675343865575659746302337585809191982273711159922894555174508720172236152784590392902037778176662176581767349244606412291734770859483133725701282813647257570556722690930598715642334863371309550100357772484317873294940941237560039839928140231429219668199765357720779542319623806444757840698863372584439750097730585784904390457450239314729717135071982236824887680619389977679284515294962379503554816045231618632634181294584654746800655429763598770087545666618525081856783751963082936436666327177898649888859375496673710709591650784938756276840747713863605790741346309797127188958012685949700145004254117658041320005150347509038621622768452227144247380959660553974440917971714215921994224547638702079735339285503812689027618901854341929266974270959133965896654632122738584364706911688461697108720432621905451556409799553485022815228047375644922185201438394999056226489654818693845872131682429179335943890641805002956024043740957548782592516396707565984671933365325873522538621049600592126050588412993230106589290847115444729836838257819118372755377229031072834174215345471733866018269704780522938153302528250182286085206892296498963692581298433474384238172952803308190401403798476855547867744601827373963222697362219588912551364470474687149611787921927177512274593070898464355787115130644634981268774844296155545247736613215764023462562152066749861873264339070842765920714524399167702622230564400882846654277790203202887683179910408920376839482621481490151865536092313806902766115213340850352183541607979442871588797200920535303104065805762685591427167394055802757377937340658881016315170838231833815247756057186191884364489999187975757742094609120449215918413649060487689201986947726814042034249995106605567871053988557028129813848829655738741400460885395453069703270667703376336587031789023679473370973750552713834194767998547485196276283902284604014571114204136099524578007291102458080954125360730090443131388955196060157697531697452215656323925465409389395884522218028918794271632418613099486414801063034348418724925589068467773634694291381649902332344687410027343817446754310006504385339318941619329039042886887199888806392766193783022750577281067759570871932242134582973363208001448756809051806624047585266327481650374296504991492040583087262361255177718394261097358694574241988885086374812157541058076291960679059976755624662785693950794783860274816914372313679179889048962145579684015135281289886914185122118160808527468865403752151798758897460212186326208298002607087975980689773176658905875470490106919085206449895498831623006365942296979757412341236956799307278144198021739207693543712502176691735834907677745867522410471371016407463256554818791034566292495769283221428480653984061260001364206048839446351265366383510370024051570740343802174937827604696432294443561873854241424654562459113576929806131830167254960410203305988490521802411973780276264384515294541383331220866945610437232487556562184228163735054565795162487546549943493598470753464611458728110703044896849460234486510820966169812559469619344410225647164889966937258632778571922700218886617690180543027285211487056613943498084024114242102905786986273662692770986703081028470166244852447165284225852565220977492193810553944052910990654973937607698534665469879084169933327401535904939513392551156029321128109811270169179388312937376091505204844749905610423385545039509743678124869505394150382658674053056709200843918821873986371339876926700563020505200980524616013464403311325111585409994026644926391038801916411543968607434662926258193918657099028720155233402683593691643593007038765465676403614471366156200503660876408702156526387265176602875021322365003333304367416173114730580386684290965485662268908163323541792210642522303642874006712751198151046992266133938059810193275498000409252403957243077304472072244969458576906307231342064400053855171982444872487467395657648558470043549175804032817550937819498437201775996401022001570242357753439330595687016721519090487416379951677898416655275362009052420283880884582808684510925016264888473588935639272900256391558642345106832369032439484056574784338665356449372330583072428409549997470519341121842859326478199219211568532957711536873012755917734642334210352756004915673011045208196208412884483027547655537688929580704596570117812234745379516882126043119421945049743380210808388798264492964153955846353296428300236917605341512548298930678909466740117561941570355230442091884786100605429751102500156886626838338213310425569472640115422825981284580777857045711671876076764623545795141752220835969108125308458758954084136486220016212068637757792683912358964212337437901426619340962384611263416485653040117568976992062683762094971398302793884225140613432009023337764098887622811448079723908060941561821306910924839570573103111427469866080590003338779209259954952506983711176113080641730399287537580550536903918854078527333189419181090352257329419640462489133981366511313821805392640358631333578323361129172643698467373120473734713263996717528088616873185758687219190853444458720505272976248503372664536973982377834009203404484360236856591507561236908752536035020320740644978847572930926988929928155558524987154669101413100299138357111721291238272175881933081482386121021425923454100290506385299557353102014803929488276582630759449525467647448411173769240400180750816237428785800230971794340896479097250425489293327230839596418541579650085214903638336325664258861182971464650267429527363589310162453970667261042614384451305579996771622949821381442378090948934389543337774862815559604478860244698071257666876236512094002912425134843207832091040919322298165745074904172288984034405734739816546501967149054975592904438852816338415462081960429123100589763161594418791876030954201758338382565337416419213576795628169477293978550366661934332709346813050046759506753639834928630766832604943180668418021975548574667539223957190853175701303312984461315710084323290595238047546706407448078909962564301501783061619179412346311866326001388834888158551587985041856427298556988680546831292059323211266904719179215441310936229464430613071144017645602025438797237797931557354866197070128954454610817020550472372908119988511074775330813386920528490942530941293360783182846069849779986687613679708244565810580980112312827069040174378175316770434150595134053422743700949259727224493175688226280873836523539737423542073567042358122924484464322584231335792635904979402300333368456216754376013529634242112712860415524038079446290203762921778685317694567033968754277143384032032012966133834925040338894600078833232794365593658843356628842822431012067400739683221175740271072926995446793912678308604542068299518440842916889703050732186850380288246035150261762433686498604603668081347102486231510295288524612289296472978578228511635435715792159445596103609840439774537806788749394132447021119999520066589345446642973923024513536208623309681365868102419125065568355051335423477670024693488486289172553486775145071954495442204185521738798104040277012772989332439457510208252404799014174027612833310781162107361573880671538002782502146160669017371861013708025916882716021131959353151548733249747687193003852550222998153967254991414082496585206689634475788626958872481361098515484301342454942621282483649240690713506263986243775390000185533504600726876862159801180443168216898558355747750840401185618223909359980529896479864971384910731297556049681036461442073419252043068705808939275203164072904131546410761327329120371157535640435880521112058534032965902944029777988960370813548847114119706275549308522513560696498972979237134862354914732934403325929140105425027891907646886532590369552156184897098914160920837946471654976662847434894008635324124776083395535718771064411297625509614537072350218037655208602850808105798383056760420008924891610129954065028343095125849767090181207008490255639032634949978770075015955560084005910251420533001263588790296953858944425083847892432051079206064071810480101076566131268237571101097016559839296764649674658610526480505368065614574443949200009179057355289302588979641119101147563316050051700239628959596916539075363995683146348231477568663447554629604284247375404921071485974708854134830696902912138261241980903969619079208421918130800256022608438562917402325651008405245643021636265874159755841530383798732772903811886822566825184340154217039410351637576184995068535086081203455125115940901212149528922058377938217820072075580471713082783798503374845035276066955128107168773198168342581260489719578429794039070069581019650681686445044999774972484145379188257281323665788735875072633594477209478726107924084839121419535334936656978537679014487161940962096778649659711435286822473484049285910869330260670192343381913484342186612465590227339154100131111934068541534244314616276391704207831573991929885621089874805681217161147686527874073264656391179760440591375160920337634206048200117665592534563343960277667222666234325410867300288379861813648761221845554069786464160326956412970246464937067297243048152634035146409908035381688654499296723113411154026742837679729398640120815379206034272961036706288439104433964398028190136492437069023039106342428746095951076220787222819724286583825404040181794981569360861240393962477768806158509800509927819699850306020592340068312323334818254022221329493838544792758113423624932347001993099722488693404206948141679875258196608482919062316753438703093487945573612084088613263965989697340980192443628223382375755074938404246181497760766298698547744013841653620493551133298471215298991021887880609199547256935037979141605035371123806667546956129247740281885657123010016086360864798816623123888752484836434471556917875033016601485296021590213689589069435538956877009808529192627167073458492245803988868944889310963271391491136173227777954937024183980739855639925616137753629982988117363089560384137680739313871477895685678797906520401600880952348297053228534163742171411666643042640763114722308872531421794406082988418678660312155861197709504365974203742097892633518190374659801905947883603071853736011359390313050787496525372250629401468782337900984606316171238668460443627188042176228651024651336633145936885744406045299602100508168453913504803702772180654502910402007602817312752146361777000594977784649166290411799462339291094333100654602887633082897795128455880195882052073243572910523027848601696061316220947092205912749731548120272835614595249996700177411063948425960297406092716266162024079331122074807054398539413556270935344754036695314121488471811526629452591717881555464715682648859456196150937945566104841262042116216658856612046999080688452226934530734752276777876666565568149733017900001120700003308729526486727592130270425022960524616877691672507383845545771735795599062030942393501640637204744920715866062374538295237185296240686485868746331268223254468026216932298862762999093350850167366958657003404546923597544121824943144036965880546049475661230928012526816424993948871589813374636084955849562452898405857218282771507509803533066586612928639696440505235900627077480882784328446025833467428744555980922876216370965856325665259934665464066439559195062672776499576679960714267694224599739791702085044955895398282027021757007142007181293129651246399661695534581086392646179539398664303347022505851187272566237688937555742954931783518956244649040025466319034389077973830632757857443649712388561446416804004581496728062324115710579846312012352020890293507080825073469463550254524683419667513999480544905818980282291476620801818991034552424878088942292655145244248165762242751070035805261587084605116933372091589675313987110229471297180624115049868030044510259168811127436823393346653643589440301391486667769238810006230529142978994372867732839389575664817667732877541694358175572538156694858765311195151874385602083403735783305150052846692802480585673009844740114202973053264475019177411421402274504024007065170434000352388627343538553587821495908534089329837771491391893549985140392047893568479787156993521948305711483178367558695487913592408902619040045045525877399869640524199058023399438868577003507904379508190111384054911634404094652075516798223525160149591376745372282795435651221979334693632101511724575617113436282018767940008114505048166778536749495290025388984223354800143436735035969635874979511085647828115328936453299071981346923017641571670106357490668452164306120358205146605915818195759443193123167386854382355128117092423817057508941616267948959008919948514065377994928899265370652997686277715150169442465933313525176638896746026007037989296665605110494889925323968974466306369988307224292016940994559602216604285985888458945079886283104224757029150160822056552285547981396388413970488071540539538987770540741587354080014987765873560643186659862087157112866236122975692989942135944219198449063247116106296818958447065596195961368396065247588569572678117203149610521211109442479400700447448570951066282432086242891333575472031697225968112879110859637550001243251035925749418523861110559842160613164431211584214402852709892429387397202197190281840393018417726303302491087802115686453596768584383762057848612451168104228835504414292969635131254295220779940875062632705416889147719287897991839022729499194454891556301123965482542490928172434464717693687449430421221424428606278321785341157214380085377830416959886579717337707517389257165070815896250631698274771580055094284955223619468922564796512578889554614598839817128506390923236738747363558608928120300187162648059248381321287685056339702962386780062330777110331759532900830324121916624302507030635414449766235546507237172722866189264436454102514562102942486864236328780767161795071969129698171301623836822958306866660738267537811187931719133083172336795142252653332727746696986485059125432548581511102093953927286420974698970650756715256135074929276870503525079532994123657035326359971993188947136456640856161964138765437199012508697246769194204331812749352157767179035444091605111072980307040760350879610113984440394317948137972219339876279840714324998589843285600818373591074417625766172643272560983408641546871725213113707914125087554711970239453490888721093984230587862249169518881618796527158021716352045883121115034064408141576747719375114760025408478573767647052712581423792783072727945114894528052137021803105204916600240968637280061412682719904956125002307325820125214521253059332916091304360156533859172090607649452368752281710160917097344987594170689237768826406832951128921516453369119567185099471050224388636786979747569400465611578285711610958631578614217633610711286094155647999798032682858682730490191602379103856554465938816918966417091725517238311792640415273057141717588556004014896840769107939322815667997864564710205210989722885919928752816443980127177363176145886058179380165541740717423220456713387731423801036146407192182149207123169187200324208041452133971903129472968695404739257654964661869896070376404197126340420148057975015978533346710734088444282585268280457790858791012000604800603657248529996990706326348451867998993498386285789007181289183725871692720606977294401617153868042501927881534437745574164978596437668086260725711513767885863198001026376818901040039846152692149110061998836878151951991021447187655684690806831426489194642226835966255744680159075939630392612803310531895550873965269265713304097013315357944101716502019333410513056275579881963502329483056726839328697132872592303693307309129244674642475125342764516673091207373863387549906600407764841371012357862583701983989455628840927030098650323953957239130316322305175369006846449438632178791511058178683111793273162742335877541808926487729514142677895250330507614484714639969431365794188365061234298655730467408858159961135835472430385697633528451318393282044351212865723097938346057386565970079711147937648734403647168785875927254381759870050267898098284160685338525364854627343016668459057516806701668119722568822184811693959738032868289679847990264630776026177198160213452713096469913756788787350375798701101595436731420842805019756278797141843506001439379579538783957889661887662085872424115645713531610557175649207016589992189788073877540586911960683841455845693263664385339676713035477883245108868479385820057626285989759042091890003317548440022772627445864079025377285656269872398401100943009477925724554453183645114519425095690981268097988347090536158317551153699923076935525675965962763679170616514805903854143706935970208180222148345802269329261537578364059012297338096543154082797273532375410354507049067327526068407610772053229821615118541545976394652605346467883808541019376252959347339243500352325136354450437614202686097199664940679507671696425435538203981048970578883884235763312271124904192401700005263479629684025358342265886765289070424305288312783487118897743897731636066624730548645441266635882647348043513778775861587167259353553609931345335263409645508938315533562085425780814170811892029235115921298451522195757662258730947870811614859784213954545917810983361911604313436235967478402442519312868889312485228421401170022419248114821614980348307392661896540439021514329847127000086504552423010847369030093139531291361647441449860667744965726656788331878454467047224408199108290574387605656518420287345289292927873804307950787236109688367270315917880979784642267426088713654419139200808808703590354069437825779181788090658398554416555480888848106745677292931875507182220453057145262426117494073912594438811706384540061757834981731330474078397396198038604111573777184074421543873368569168264156933164310296555152730050673273378884109623183980268987474389627585773135016343294785797643271867240913379043872189595447255757039606684317597790923379273381338324381828335080721626411329335825427811064349560262274457427862621530338672056515179368212315131510666362124661494251238012748214687620547391831600633984830356883987193010892783230640721939359945705090869494827979339565763667234397790964431406210650776193722619652126847119290906036977981994587788732581016102899987895627056613964410332269611449472153998911451645512290346783403045078332456446993947544588287684121369828275915255073347549915700292078130674320939637760985574566275844618719379407346337098889436005168565054116480601204552220959456538563424109258590199322400679215933493425514993905160779599384682240392959406354254508217445780946693955309233822410986747824015525889273890823111696706678609998197989560511668048832334385025664029911352941762065042776972854156505824424057584309591028641682295275287561692441272374265976500734240611129991016144226728487883303235447648875673960273199834721063189405782178727327591862459987663040234897369630459193164854535344392083276382865007131914876644026012316557720163273244409691700922057283788986560722743648631306594094466950435593239100331411578225225619364411834632547907625097887781369938395387716717404088885793676613529095957816735342340974299332923906401555704522159298778868810809279204919637496339026856213455363902180415400111650165341958072516993389848165056727940119493760907225343903014858033116330211669465906554882648418297240907485330786778604471384751693765424911608359760782972043767679906984287116025719941733470117656330884933911702250918779210023010819546476312464270169285341587273377863541838559401857612541966933732884969406317041665450258018579896535468934783523394726890975626353188298679525659023956716197815417593217703712238817957766797733117125699092746181159353077549538815799198025116475666636111525897401329470579841587711521592446779399868253610257877031626675391854511075283944322060899005456943437722843597588160809656277802010176756251174777738272405574825235877206476588296232675406937167023433988352352724987449653411333494160182472385567077990188779471553851364439289633434259041481159070220804051344889259772501981868705680217125058376615274564092763319291987395910743633810731394179282718123082747533455575449668888602816238407484040559497934890324179383070519796896388624087883485221817051792713668370204536757186585115586786593099100260197866918429305436788482940258802375865003629881544995567969693336184395092514730068705331373597092067016589689347951142790242427887743743518235307871426970657481690776494654367012642950894890117769352668650581453639600997625640066761635479502219390852053085277485911095904758990378680999556154069979733804173537474172602399136530999255984801432325089415986645454046198511632522293277411283479191809308426480965915656688022911349291522618295590144333985297195035754108210865870635588583110220532906449745294266600248880720971639392914812345899592806696161294225756139941248574251282974874670928593111503523325528063432614949775410618936654051209979863443008507574479818862054344869191065780968199551919340208724397961437562264992169981097777018494742150965675190186355015030993387009962269230571181372722285539119672366128316548004142188009829481528977474810295501990263561773459199012349724158536530568191205534661380879993261557253646881005449494656842375506564422296024321496628107372395168190565673912732886490571644669330865268316886990026604089923077500354425368121874652917417141295441089590168406429223368514005590347974144543151534952978220527217682925856419670295585289595544368124402344492289297842881993639659128395355196825386718389061634994665458855615677424353427027797015411418497086628646650776134348693475592929939181429373733104019554292101368480779677714609394130966190349286867079427620660113343514781727057005918242386087361400364781426050056187046302651705441281935202756872735380804373841203975213469767390676546234942854585719543450700005631468144120313641867410025611800279202925339678747199407251501236087024800542250862588109362770148323819993237146346678139732926310639802387543118939671852218184648399637074020069862482293585730901089601470800168755599201237376604353922337875224050714543488061635207353186799783502223990140260764401785755322838792342303616081387466522522874590830728827712014169779094578752491676711371694893224495793968098714543601190929268659791210075420456554137457224206688810911721293970260276932177793475995542960606015771775176998726103910626308310197050440731518321660664176646124066629383759388179090871170351822310070764139495160984871031745608503772831215820887527744566415741399912361650401411259505752795165109805083478884734975385687317663702947531441088417108900355049297137000963459851862192338166831414615986447744498921655302127147801614972733218384367125115385065145913862816335147824334269985994673429269503276644912879752601907935891834556900387393437961001984630915428535879163134770135360528246566110537955777363672559676123049436195850560792236999770026264496474282478182326528445527309624095281474324473398516249303798809275856090650220596429441072019111903357211922795586584305562614083909503527947413045645002601673751462991555929201071474136703211305212001479782583996775288369198137405009413359305645989128528218921934010884976441432790488994599228818381072323575522852366337813552624944317996193111358849826436124439556256875837657033127685339333559931729739983137432991158932123254593852080794053773781473757902042099800149101587389647972970235319884180545239318708574870607750703836340770141370898702264060327160106371181445645807244854237211596659999490156855097065810876730904502460816849013955911384556422746567432003616745032847218894647964290566857968205866396015156818075214669508924824935432396545007304813264059926552140369469231458724669284255874759680404038518012752031674043277608170156501314622253614675761252830114441109667195781859706359000801104825540179735136470031597662728891295134641409417673904858757594520758252595624169085613078952696121907259153847288233485073992563105289929364141441969798628496012220084168282080775468844009270705629804095344928838261574119871708606321304368383019077039949679944180972038125343513548729824951403559767988960027044163749153000026910895459110967228247850841448251116578969964974337994843245954439884945332879314204246143459703088126376567823788924736678166905312534827283263201017591299031546717710783326661246279878606011348379702602747341147829076623545957791395098847411467715247025042928739283880461397200975270442502634472079838544531776745907164254270299439259869530837269402222722328516040999681887772132179090058079676469974524269168221702008750158839105856171247445041549382596156670836034539682550173506924286516158697781479361333185892019650258257157936422137077222551023644879024062734668570529690425290481834178108728838310330112467285218976323036302345003713138598836702466089051049893023116905104127603639273815143134924991506480366042028554887511957104005834090800705770236603578125806086103703463275507194110092865341054151844915386386735312176042598527507472574205014542197083432162356901755092706355772069768861138208402880286711321646714862689021492697248610463137339419902716103421866769474090826319511278711707688748272763613852860145866785516730348798747112222752454577351379826028012463104616401356680577607530344245604106731244467746993799701120301259780737422398738503162473547378289357276113214718128785760389365763831371558875656716606730339798779285984795923913171276934255871205925558454883577457040596303469378869809060268966309872637127850746093834766420245972112151808518240341573212282876877531280394735091353389215402154747580390899522838527842039309468205807341088976240585688804323834060256246133703336201488248754443610329834659147350597620109505110830045307973949998878330117785130057272245550125529322158682965972963375833774378701281217279537812343004173698585672331477396389295546314945836034174641325551377295731692673676233822650897585102073863108574702747942673001774224275454595336155790468658829870041721303915461721003139291157895265973442239982557582654496945410325632632246427078689021537031228044234692793183285884973501679687359130031775686046527653117543246065993210005599749099928649113927079767651176754365666962485310328247768394278331194412414591109807044982101855490037722600747092096734628251613863410214361558706574858537720135146456060154181518372990219674041221429526587676697312645201431731503744379069442793331570404197992465084006546017262725592944826198610828132237815791306631489972487272537722189627819479055803481104204903459994864390014961195907631377959379026621058394906389189079878699108027630523557836606344221524470540063598056347224934431874589691003655606295167509126577302612368213945637688229374404603229824733655882950104971197968781206044346191398651683836042699168302281306224299027647168826903347782121631076309267044361380539636446678021424730865227613090110608706016989501395997567333100517766719245115251863833189236778897472830692865263954609953408491964082271230209804313205568507715813739538954273275684743709861847547326391508374052459818280998330218423556784969036998481799616243865714492173481936698560436488720662751668887590862743220688985064197527793182278449823488174903514315065377666119031176730994709524363934919518300585992360524470751873553919269578525208569686789609605631663266771822910138010310013204817735885543497071720486405649782970005888970589777333229485291425163208145878573562261247717504833649551962956795061556244926955674160832674010683878690175842057533069164313852507128056238623176697295666342977632066791334710771783462619174252703842768564294325057887145465956459074058347781195993149618286276277991477627022715768068539571584644024850268640517511779728040365198727244189712191438507021903711174572578291069644277271485222029544189602881013205128987149620395952442727994074846117506833154582707346640812119910414384899330110021816041650610194268530973404089049676618730430869819204654847918723444954862352655960381391896673387189786997488170737603738583725394666109263733581158198814561428717419573088391463770060947298370635113945394195129003312096701589189117130988408264884793727167515310877043099843881325104142265526762770315020680872843088282233541022831784390934992968504696006543535658045199079565827643251262358050863698112673837667938067964319895636523887657203856429398869363650920515016501515024723768518463020830377843374434410172100137346369719628551472738117132912063751739170806757577205761279305263658315149624964314824229556128241110218841043442276936144312138682943437593751110568676302893587852480443342811781853383621953385224119913143088903205265786096738882291181283965097160414819268849492164844355053090560082948395657765836674957064493504980903868275913164631255956993565187123865616429339871233520252250755106653375043948574701865827581146800400906914758464976139189183221417272923085432495390350862494832185806642569553976674711354819410011930347073558259731231534741370520684542783417658593419194120378614279201140160013529292556496487032528048781153681511828833809813385949511125623089146959691239912672896047280018994951153071294571506037980714740860400566601849001550228407372636392082240247703527135465509892443516864523204064408439919894379108398468198996316550783475000057078111308470859264066282508067545953347263449795994780028608628622471559929998035284066068593752059203108208605129596897587522358318242209312446415036722553698970628146290897754754715717387792980394171679458447924426622219200990184919131471401236733613302296711089082625861194468526030263153809353077299604759072946194125223103805793176672668964641471963614950020994445051710006313419318497713599061728726204751877749669385881030775658867000612373445651620523379220337205255415682267625923359106358949564362222017917187825778459765093411777060339481613912855429239611062593051386127687834573373669741796770006350959618060320529140568228210092502367581513248013090584125173837608865897272829586503783666919044011146875838963956893825884348392584539097048512240681648038135272899243142978167144121993857803348171241230081825560260667100089671889816000444706637132076358530497778895620305420237509231854353328020354119973272052441062159822511558290835088391644006765778654287747916879341037920095878610188032826835204488358480520736086771404734423190037941109702647616985357991421528527970498840480571749580389633078280258185097884574324633538484026862776112824894408058626849761606247886573303168462741050126191512597962275089627396493229350481399565404752811269143218331564184392934304116124760057231887262040084901626920735560160507194294087954868515187590818288410389102064585680665938602430446424250796485863902294037387836620379814257116426462761699913985655595909891689096640309294689062094340174352123304984400598283275878138155370399657845020643952717377692932901450460003422401121725557734081919203171336222443083003626990106691429770615114004688765035310278425231404749758222231648747506618766031369365380373407227564011416885568687292480763171778377439637117616169791801353906794920595749352943141042601029460207301634033132418395927372650760900879145804012780833449038321911516743768128544008224398418530860142174659874164212350856123277670279835503987183296053209430214003286617857386472752001027810023079533631302131497324820588581532610901349680740805085964096585191576120904548789961155905867981835933836100353388011587103012610885753906167585753161421845924946277326971754899332072613021457338127539898352273350227699249406739221506463775885914646606646233376728036967924214864289916198975945413002018382011046398047341534867844733523133367261285957948540034162504922678497487907660373407643439423329438875609337711812060047172303794325464493595282285611313776847144594853174364761319759061453355707529852368193803689536966596309061221821771972587189845887635204037052940066453460405826342256458244217350021194666382603879368732843423875059901119211859759319900621961374523074271340032460375413215482378348766376529564272026357643829410004196107308312979633417680844394767760060504643434896445070047095228078606191470121829190108803235167591854698846365161546313407426762168881421160248262752881979566370772244182242083120325240638576503188608314690770920325470580305813464014929948240693281287137611621338741792894835847105108510100833536736526643588467295163524182699659918760437428025100387446776160863556370826104006483900329934335985062287908221198475656263317058570712782699495936874493239170799571846572539688486424869543377879919086209518869587920484852341585084173901028854842555291627740799272320012265233151609954993675379097567700400002296615892025761943563338813116433041558510459290911093867419090443740190343326868579237145950614858947117394931562460240323415336037106764692597221613705830155504802239754424147752853999292276077261210468475707152364252433663753590636798495574585006604964577865919279317868808545053884478692632294978763790826385635482976107622221559547220676400775991003263253169206377492435656024208971289676486733432100015989292600392340876513929374126128895142591830513434996785188737347151891703432096403168198869856766331684566416928275305126143916003559167195933215307874074860183484896581173739569704283886113081880204014524281338016451561334643969896995554441399922979761895862383838454481004146255634137765596540805279116759259732710331589229089297992709964428837099497386776669808116306215335826687038635047820392210193969045307037041840190094131718796774098959455904634292043013576132333095512052633511405058693523466035235498257989989842275788237651184849412109882225465800725806830673200138196773239157849316910262006798189151869212143604609683637332889043921321416342109826543699529290103811389270454459157490102503630790637567666504619068988418466634764438133173299414166151012640442020900351802400324705589442882295513923771846513858056170725167712240305467321345113733039407574393324872251211009358616376412343663170413010457190790115695735960532524487231800718070473154619144162759675777922270260852942597796646231876403061157625092181184865134127842296165306906236411140235463200043261146653778962496204055621599465919661740323388770621070973659003838564774373550093315891251083769884862897962291717433193146306246664508005280476882317054322205578102421642214235663958951386707756048929667315493011692551089771421773692028347329364604612396533743155507723188147398815586780941938696007384638092115466521248975625453840237033980422442648067741314090073943239560420430077192543718448961495193405563445545214714460021631493111881945899976494558849119274313936364597658680730977364070880353038913000992654913296565868315982905362713187560373159068017289812261406124015507774973327005571287401321929463200226221805887355740094260211854073453605517020957153171269320107118038989697218045939345440591688247213821837075501969455155442273493534167706858540398834542207849536386906191337736340184496487911701122609047398302281099691523716786648084732882602720225359328507418068557527280520033482334189578079483042197703867685931130185829576279539536993313922180048716478533125905045052128937321927025642404689262271081351489186071253558960930003159493503042035924134435887017940833030767964915339017862383815822602469933246349823389702258164325431288392389702957972590120187365564357124639725936599477422547176597130592497987041581580987140539822373590798665926399944014825336516946496554424454605457525230239256610915819686245290647189545087914274511257302184266269864028975802929937451928641260120725013746008848507261610154716878098195602933101961621095042434366025194460407483123453705169377404123337802789688028156192951441628673675785827400450209293020416132535846996507896453634668098899307692180142054707091755094356024692612133686295552568145165330563694123463258855916823776077954964430049923604606343593603972288754176568091240949575415114045000094429722497472975737496089910403013527342192540304053857296753257822572441153683009444755660528283150364807915579786694537584095263277783749223929395022000475741123020022756420782675426119977927729150919837187205921751402695493700640906788621397816402367281895344289211311557296257958705442631439554288962042914024087036963075835643224589270481004103284532979323859984172457340329453463962150641114005473780870462185334092289411609748870993668296751745183973912660406902031568931389153796160156522016439194231053201880254007305247125434628142934291797559190348045943139238008593845313851137453199395789922966325081185677177498926780432410829668321561778792946871284302081242726994437724969137918616976132907973858239586268016221824671182422400827159443640488834095895165529155769561728500158625122140087694888128956826430055611947300962144907028363800108888074981578973207780819229248372942662656418414804451164498978484001343322516340948705045431524334853455231433575550337584389162698913272105114061045507136680881225985540437042139953171988216675210305476596098115659793032535554477434840296032383077373919599790947261287274745092076737675315953522098922159915413407313311125705054946371595911094918853215183406886001937688197174031396276293290531248531653533317687772233445130429509339816882866905378540549833987036108212575394941447786021703897373214644992954528400648209808302374798193820530131617332787412446671564548608990299890343727756318912512068041232704949485732746453540343929543950482271281904120016299906082626260080737785051648966718666609991703211517614806448603852962331952311906183584100611869242558530499107372167749047772530040219664419780723016591080417873095204027521724004161644385607905110214059378244645456283034399298234825007015289095642971401961937189306925429011752518687064092262628807524837436715132263000974171487134229633422654581854464981789273370493275165266236891934105957548029038073112607169372857305850994895543372228181898898965455264694928026665402803517087810768846796734761611705633781284242069345280571899751836107294208336142004205230847214254844528435031433687873755781423125617935287592794626691311424322499938504341475314392263827068875403645462429225346505550294146788589773333344565387459843887311636906551603314719906863113961012268458494615000982301484662804239785593794147590370018817143883565941929643199639722365056016848877483815900292076163021707219552051114679654323844151615923649192505440698307741855864524346669003143162481777075109359911324879983425167675008039362130566731319609560473966358789288688325321676687410936290539597331005362928733735602102592375301617340742822037358806598475712564394752648555901811829074733077416976873625485750186552075160099826192482529753755129804853819408620656638075178221162434171078990529520474704092092606435222826699483900437549441954482978169774661230567187940206570664362410572758750329644348680710482676839302471073586601882766827949702699728494330929468912556024966469368094759612360056762738700834828828661902912738590267009476653626446418527878773329040929928802915197740682209083230735370115624560342491498704674009700406380622256024753856905595430760305941540478623013697081294895053021308382104117339021303864977034946229246933333243181411468116671246569693642101991552505516206951328850192682309735552251271159465691392886038190277109769480965426827938909766284385592804593126702010169150078775672142264811074530622490967990890623588625140405363346325242713652262439020954245469967085902419262628714544570360660200446673490617551502400695786783290036405830488321153439583836982275135047654788364846668980621319270948555673838341705288216786077270040144893405967533554620186297178519884542573226106660262461744841964991213840655258198319305457388756065494083694316737595681264256086151198631201105884722248434168826958210703629522491926644675463773873868653642569965879553371140109345873582549472161616923608813667045770948962609767777451650309188676311963756722534762969009010841861017446482771402629162418795490062247434349494248165690029143029888685895601441647648254792030946603949777192378669823353798797254571349048330507551635315778608707285174261286280634857460596249116443838192919425197501761818336990045887880063268248605330374032063415195781850339866711599724069190170477505831747266465947449399850382660971205521538178528741870153150638107005761226887661327736781307030210648011944745314992633586271104000355953966823460477747717565109344110029682480628826665372779022957114562781782600670331611394596776730333146415054862472720669278091288224159568065508549936612239004193149968119317433345143227964253446018666098167520011279533690046693741841272994212604734900914120867814528058927407165546911766706615758220142992185210141398283872532679224665948501693766879876000245605774900247135920518009831203722162568164502482753111980393521910086397369916926856941181459944993287051429015146361657401764929306012650613906146458407100407801314441140920660305610311371783212495727998431397264621863968767474312665788608868021176717614539282417405441177096437848808122890116242153421910678524765581075324729636614638063436574587277284555824133651374492846709265783029454102213644412524723306190771507612933663808724662772155724736564653487938473675848288053374532238036666979971471139712493836040146611886516298088917322918519710286941210354935602181188668239852537364175305595646516501515717643583941750805358910801191782985150158024767971772160701216731368838793758550770776349683873809696606597369882618720263496938826465398821662444489872045183840535705018039716141336598397434839049191322404366887640655886197289934441366359760140763198266899621353332507646870575706962492441949714013346133749749632256374417175192607718375288825929427147069234333403562898815689968251217195724942649093510575294380699847140769554297402412581280955352797911476659497626160576192337821275175730901554831757891438563566504123829036178270991970111421682407338673918206302335487713500025580025440101131115843838195972570492786308308183606583151872191174972698597024549164201137130774495464082917718762370587629005674400700864017930939320663092626532551096705700389817553267505601773447606509071955268413496812120467303669166839127170018080417055615476140631954218596739437746417858261965638145337591331598803244029002994775211716367731781192291333506702135338701644423470720034813762164506415630201003366954886687971199256738867209299844259722311135700184707646584996223658598636753989543529916000467434408395292578597313517459241414939543881592608782754008887656713903375763496256097695839463067194393782932723032339272136212951899842926697076760634198706207823548781109291409512631827653525882701021539331196370755941875346809090185579382928978718880420860217122937210639493765134241751251054572286314493446439788363923524564760760425995343722499445274242227739230120437953163323858742045217572777486980309613799789144253424507600063982707837221729686230006141947521683758578036092679805494374079984562075630250774590256964742895959610919168228847245126619031127820779475980345082992566136667842802111971944824534287698113480333324019547899667508869412862074830602695691393229559971201711434231780318210180471526369795216710677819932157216365225440469429685554440332318103974339727719618806976052912963822878935581247713199744316994041375161290524070643166993006829911863563155384404608938288093967436685632117590407601073668210533536910291850516060806960147505229990965184116034254934913779230887731406610034281906134169051809610438579537670357232553259039428092698300577585680193637188043694749489699330753946836969004470539069506857982032575043315459834764225645706102761119611057679067509313302155767994658521970857042108714613293439209672331074511906587951362286614780449830545393517995600638537605130200131271474483876332051349842540090194680502251551738714575332199207203103532191251922365606605550332319489871877074857700961616364833030738178890542739824516455114888612881939895635219751635473440747733837927491507525108979289374038119097393183036155811852921472847671100686351458409695423124901351663247666323910886226725335819443380627244506833443871829628657665561142440181743480652213411543282713983483084043768592158307371646522043572792762557478696109529516997519007629946768168438482571328069965276056671069497409099628480440502075061348223062187990199674438250986466856469067512736991513695949554450135058954773404539387994730491486311069657119225769201246617133947939487663892209328441579670033893457089271261312059960733406091795629951389027078727605013008437786958903513583596255730237905274201238027822329606442839720181215605041878291493944935909627515868764550562030245460829319717864609024746213631225386145365035723591832719683329739871040540319898587007079475214773837990679501024177419990440832569322948249279687732817826019797954842195707654428153701028906059564539650683508213030232813788881573353425841321735233969203982538072584787448714417399840209516036184713618027348868756065077395393357946051664582596579599017957565486633855326203252868088540837993384647773059475161690204920043195030401235266267367629932329644185237742951265729237919776298625366285764657770281723585340434821705181915079776567796211737135237464173758765636956239281630515565986148623962061815584255673764846475255763453509710100956775395656504180233059092431770182887630871007817062926238558925064831323779010769115103339615339301196415219947841253401313703832456096582202558867705293656478902736679411960695087082192357546841764710675079469813045576153162070751254412390138064731440200497750670072934121188888552747474063399372104646772024467256973335112897326102812902646133317737881277142051046354731031225626231430708123707629027361742696793459126294155413239828609607526212262489540158885972341687813910558465160361323352443541598342260574019045945714520009451351702783291730796709742883526837979980692048527919903716553939015934785004203824780979077122601787046486602509489184154569870422444984778743295897915487111293632349986523516703167304308636764227223053684214666165773419682169173516639329003699709913767429301206748516643025530441374287654606714790326222669830942965683705527771206560695067565376544781319792232321301218473448541436258140532026842000598826466435993783177954819040850144060806843083035755132061584824358660160908102595806776681652429790908961927398024638874668675327722381043547921724777437700618616432763217236059820671747237782726668303805262887034380727971183616954287947499187477490110864207722763458590700812649719947970738994244411240128127220598827710659325273483804864595422115064509011560326447293186082204319951109360334079346601028433982349441802791319833509690582339567470132115038499145102521014007744999287882411478940883014997933626774238489616390009024460708020971895233371024569183407907550236798696358537770368839174863669429650796483135491123090757739411925536133237493170390636194009619313937028384371643825367527273138602795086022840500969359178093414232562614957589145058013193347087201432885343929980060202571343072142070240934787444925195552331967066774124669846816875185291876798863262302806289098792230190036396037919225875997758057582260370036101035129561873050770947007260229732239193935197075981120524945986141406074967350714669497587422890789648722362699692167224928402423296893248014301107444046382570392611253253476827427542296959934068711935786301438515123015687207088595030534794537819123347247294263603982141979105056927757503098756368893838067003118784422772241477728370067395576312936995012533700574895808204820581743461139356946054931103380970482787082096893814212413155688294693224073600767846466895117234584913582745551219412581979649793013719977488632772807806831322666392681128178277924409397649613976327065021952559543161355725371820527360345226568231698802681826536431169010905727469423375218051501486852082787850420865778813552715938087177927399203063401635266203850466344872160302876480828322129474269845332138033909960549007248834520384999630303685873601044305033955735281938415798351725540067616924887969042413413123098098174146099590325604171467136075592175791702842301511403633772435403600143608839038267494231402979296645194644748646648905659723972755823009175085515874482884745424875852274321243256466807949536214962573877681645301516088982269174127654360249033427502564195253059734873658119112753046646285084451871310497306668014320761017153823416078471414355491453361814888466191109873381813403384121412402267698186064760567822439383216780237840834562492680624530904279301115147536013160021831477102463015505258750679286565010338936831825283853845110150420937428261989955096858079728821186916725150440348525143470229570035797034862606161644608739267804358987819164423170869873876701403491731758734820866600163154956223469373919142708021722298347216921930347603601639374718891619860265465443449873925194182479023203379630246059821925683936091032854817880503786824460883984264512164474032828880387193275593170726830810174391168432598619507058867746467722053752235836093985445485789215110942504601243161517756693466818552956170301482427801091190058920509841197874710952932419841631815548518109089281662045723421116951144935803264526619010199138440162386721763117696580486870918449635959893800284825095421079744186827648586819899294459611945713238290596366687952365426159513891261474029814565692535885367561608427463818963421903604617061859669109897909961433514973060347074969221546635732374029551849816872460324313390870010871079312630893413594116558181750988092133058512819348638342654794769677051845866619172945275921427512584888904000487025941933945646271035026548582336862629670442457268528716944827991576334107902131014601554453860169401985301839207380507064336675079061120419436660024738246962763765206108226348455832938614127026478246138897701224421303839433580041670095120417617439097123492545997758990399006634036168984117345807367828120889321860229772453432584183908427599077805178250708450756708162610574581081894399075035168080054332282390227488854739191552558098713082797982720573865966059875877586531523194628125557712228081202919077782865220391831679442900695428182690867309937127009425330848078021571343030469374987706427350399044928513733355116193097345243805638472147127693965583214325013933721932712497173130561191584443946135930265578123646992927479331324500928059725732278274768863389446027192592279860602914681835334749418906906980440967957660452941203802173543588636519279195690790536657090576927916227887448049936985470647876915756052823260365302522572326262829726405274526608513417582157018894352764082201663103943225357333328729761740656565524356397218188509186417496567428438558583361941580732862172409354658206588828086194744866293579832986441608900780012364531090120576255777934352902851264229028187523486656753575478257412853312971472081896440109878773787175031618281780126213459917244281868042379171914429941673965631902266411246490435241120097139663814050599537549011579911366753721041842132894049686032497186651711586550532826966416339615861970003402411947128661840604808390774069983151196429984288720499610783978918524310897352318547414919211017945966895340856471707722315413316723148998855209217711877181281760661898134132156323591366198230273619173007352632617009151958595210431616300053075085283708099708353824441437268613287096294789936504386347926536378463762924485090338174891695640671335764098898131404634993721182277465381926796911081711109107789853572450773592516111556501117304894079931053937516865100884042910111469439779017859857567233446408215342737726189069195742785511316633838742127956964372160812493921763890134323656656584631190862298866153602354874175256074685223806623284274758013842751447145685314644890407448263107956995055859169544508677710500266877254175727928105843479041908158231677884496498945554743017865447742717368870101515159511702127819922131293259106911784939231794034149836369443213121969362013272633568184385315267310025258932501454716017985216011218121289876739120502815576491993649719135540021262414914470193526697912090092348342597100104939480112621103329071246089130924250373204825389075622973048102954576961802715498512567685036820214052295556166734684144383089632643187491476846354642376929809071531880420632196234248852848396770376349540402867620936804907928147255349293998964583602486583060930734672714335962376285031039455115547510329023119375912136432873146287813638004866493745471703054573492516488009902772346444745638780879804780649578799230012581323934052423421234042995831629480198462487506753883914096486780713631456667990071492775662070870782330180617524535432533812263108883244197878086150092199468628900815984259715703760717029072600212752328017500443209073833798840040939426294142389628876585722541844436170313084862220678761078721503044592062836062371324545490110491017240769025280542157213871686834904290099242849795356051161527309436421042249631132195193602632455459437096482474819545673254374662407644098744966196141730453579956498761374915107906250327746134788653069258114367752346481951681708007283321755660357216373686867880547152951694436380893739628750947196480624072013441411348897263676705265173212097128476866404463672900365420910306712796213199572951059001141611231266388901026851382459651399051566216710443402677208937884119106533882440002902289480150301201489274859376511354982609423973293873343885644751518038312395006800780221615317749481755761842273038053427311132262794874768829425733372273105023878903278019720436010537377432054235536490340981211303236519047652824533319731443081494743579968548327858503726310917836269007426132667622406300448990818396689496085556002243355343750594554088891938212241915504966275129439033221687994188827476879450406416840918559423566474142462420355205148312897097751490992097732509603173843092599835206254188883811180067919270102603243057353556447853133881669421273535130355243237693385419062859892412659162241586212816126321249096650407463743098522962724763975486492393425329774736477685995880885659709512061293186568117778612665089950855323421868881198792932483478784072205887278777918973908072774971531508436404209229294579972941968488406687334221463444563270219034110617361336966998619643990821759876079848210775921218976164757366962974418132770487358238619076205634193940129477955467439476863935629560671644677046976218873646050497527667478854721294093705009103889271465333601558300394967246113817473291574380294265418072039937786186204031866934187069899592681335538428571142813883713924265886456715846475521703295587243673450860493106796230500825320827414740048348174708965147044532034910631201652342147752380876809135875516563255779432991239068210004410900053055223054799153352791424629949340293778530723802702426417572865696610648298743067349634558726148054451207950046806777680841074540643373397394622176968015726704773789149022613798679153244595158227781576861575853441602736135002808361077962549769609580351608557482720612427450570792158121496206281015931143821779783717481310171555024899699134413761967043055675030308471853137362808521351928919962069840501384618490593202183800179358154729836391146198847058880621319378492932077584464214253658985111918661186845719634194225493684199007802335181913107849105671091196807550402543440943650380843476467305344964069213755512110051216417348706796804039208847168699701233582375187849234880954509966195328990125338201262347217278855354777563472231034432391865582867948504661845994815121357946250079153227543741980925944817240115336350493664732013456824270718421919243144302830029605514764006695116175232498804946199800568336140838740318560425179275967907543080688255263279147851699821465318582175145819415195390989805574744665624782326060041513276851085640372456498541448446045658576141897053138380722705806787973502637398267962704346431171659694045368302017607640193975113553857571330328472549255344355633734460064538956219121591596034285054861586741638571706629547701478796342030074894135488201070851684476337292379532458503740106608025108773289867495716849249992800545646728642212051450848412187987243803412044589207370915303313555869860611145073258507681736700082916928831187860291852946306254879799379590322992867424149288402008018080805318670591661215939440534174898972352913975416041259206010151354424183334218411767899483295868031280159810293576674040444271541713874414158860391581824926045699355986681903937318482585633402050229375205000239264210970795218073956360195815154113734683849317275392441474231385749636247889937507924247218929395252432992508337192402394776868229501423238212522471335886116112549046283894477734766645623843537605820755970397030940195006810971938521574134243864274012244177678986827873445055631296296950318967147943388972739866366528669790152440418504749278376705693719081715962432215779465047078088740290019574897743134560942025755850678710242230499936508324319526423284161708126797107364917644176948664625096077891242638341504907090542997309153612198350663232030592767487313168389525559396003909200977716140097749703263967661535987918958660771124287729042404367192150324006267467509797742338426978019997190174135165602411652849655722100071643859254937627241676663954130251038411151242070765262898150649877694373890884509816191055328010090552293943858598668233831491094904775716718498748399072856656635576669019417987037130822410544793935701643513792139672739491266589133016257567015214345562607469296826413707991835112153763091712060593680562520092515757331790536855458629006934384386549221334345741241055557325854044148166305369122889384028259308198719280646025697186965453487393585224820267996803410123363151522334654841251649901499275122511326799490864866352864886502372808692227385318866654644944156259109951140754102410962152985501591840703719406051152379378436795080007869017428424956127850200043025778893555288132402936877561258356032794150897066133404197883550829500007503645843177123873734664175008770736937452584010292111147811062181258835738058757075849160457049217484231654775111342975518349196264589928894546722492283760835419517071716784002813842929060043713038769280981096387356375317105784970577372993772085634348040702534143708144503905059503660997448315496410633075177488444564810490453592113958132734446378358348773860531683412558864774943389362603659434932445744240363003978411536218491719823110158663305037805789641626001587841557814747367562743303963010260572178867087130082345474789282414819336932541068310218908021992554031985047177253366742934403342006610020474247004314672326695332178106811649109496823027953487398882983249715892702080519664057850253708746057934272496624714088914520633719175150245876598895664998597630279135338779940506887998702553112731154174633170396765625649162434258435110743522594782365561803351204309172574477371871159877895646344376661190533476233655124492021803130570485691913557077461697956322329480632290199711778888085547862982066042012951001211938238866743233252479106481006460460631069249608784850685860293440558766902253756160663308911607250454777579855403968086836205184182151465465190312423004338904169094633466324401400585382531010083874295169752474438464470817181864044385760296755503708737844899207601046348013798229365029251419919576521868517257053417638419354290596546077737766136399560711477749464632629202130189162865484782892699691526427553560246892114777674808661782661283414385234001483012138729282065023396415095963954658180401871425454302492248570526574472488955401118745343438704234531984352169222345356848509514520077459015781239616625877671852797329911529077350911294979882994231304360252062471415960593940988492402987849010658592576869254282293199032002472940663812309897991938630229747942719831205940789301421166712580994115615437056164606544421944021225521097723518635771992456724750362306824761896660760960557910240453766078257780295516297422388519738576847957213315157838773461097370486387882729264241928819429362681163762070448215558086642882025957081806008122551965349151855199915568538142040617693358966118507214823984698844400799463107963633138802888041417180418531594834268170697087673456782436328379255584950659124190683837855929881798197643976034229374104083802062327638990991376906400200348338334481654577902959113111803791167172531069092931130048011075165709694553685181006070816351311615392391250114978099286178066617868998755279245899320078231322077307549503248986712049870829399423633154744035892605698891001264442221277030289428757833893432678663825090367344065816468924725563758358160431539743163322469411159331349018171234569517907819246162315548484331466704381135590513622926717106164237836224927773001524776078782183453507856835498209153291546753572718575697663156709563701495328452222478393501253267587298945227983554008660201465616273718859239894541631569040008581176928611159319128340762772330311873867797863153300856802903886506369559678435176667016946577964377806619930301523616344726362596784689242121309724398516743860439286599642970102515991450584265557029490347863946879075063959308471071669117420568487980332819832309031348962763037653405065248828765320139118399224125118927551223062517493177431042749412645490872098561487412125275604069233904103572770255759949317875040680791203787723495056839722298133495730339793443667333208898250017091314925208865560109132479004026501806135163107628174014043227590950051863975239459968089191162184986240495777358309195168770995918421844927552242588049465226023860814256921764216664591458717370433737218690371163577135847485865256547881790626651935244495716395816943362308779180362260307884609479745624479290445418636941306997849038318999807171556860400802950318638812643650629409073010574650442031361885119084080033412606745261617258277551581702376421596763918900199339237517588343016914453831242427142377938163607395376070387393917037597344790069075822775676232434472130618258386935411608994328107633410053387428118231652727839039911447706120204718509747522177599768303629521130599022074830386957035505739806774214207266372579232983249742628199538584221434132221793440567473392358369801031179272009572217139166623206545809895181853763320943039083650285762067450849946655981981039464387035725668831212510709200872087543271547465146395164858991383297578299774102498028490420997328902776209418611688766928244854483413999162811506783395478908481391891015265183606919360875533274970865612547511476975998567112318125651800066813381830705451083308739293890902186622377081795129731439710649267238133179590369246346507015614286020197973401262419139468409889446939523978785216880985366637251384568162445017347458060164344726347507302862388209306125413208098183917288556906598682871292856619069567468120391030957971858867111640650002461826246287657014540621470975617231368417636600776271863405068741678258787714988990776226259650656533428844843181326933629374533415455062415890587890606074319342436279123203082855141780031885073786951544433637675677411431664167637442607717292233886815546507567096124852474188408531948349677254084219966665358804345193980223812819699746961560463415857045849153448489306875648910423411594792274921405651862314129656570403804013246799342516732350224291098249478630364568006857886156796835989094724629692942593917665638265256444054206105840699388586818833221494794656977071735163291524565404034923713549628547200427752703877581797412372367105692656375418424480242187572038546199057841578837666416170810744285287487704938515753081959684569878329231861122855844500173704604618142507113686644127126073767733136679281847305799813095413724065724135009167716498032942258650947575795905435385177506380628190612104125758806655689177348181494432466148438577663462084926644585241415662014884612638093093153996709738810194981322800993448886265355426618119087059537544520437988202202863921064900954225329565496759231394697224676535269717474934222060686788528463775016686274035115500288504559956363176303643774545193064188059107648384922459385022761258633721328935686580071654845775740052816060397836252350887669733552019018755993151635909466623177683191920518706904864225468315942376695328650179220236855761574826085763260128553416671404566307611977877782538617842401490116026571215306242129798837497868626089066892552698487473984719053748634864321458147549124247563753503057259217778075597645948226480981152130665183621968099408572907560829591814269477695886573862568734191353011291566018977783683132207710241369848830287782024037759264746204629713168460620550687184213436281487322642950031611347175464260546059053258614927600840275561313154640536719790122554984352600293968958660250426715684371178791935915731174012511739678736302097500093786378271044290718219511583176504822478951027591310672093329962609689886277284169011348919999834223698853874350116743172435880699931002179800127109417107964764871542290560230077113599464258993687178772919327147192240163696699581434002781055855270872876060569993733893982357417605929586104649745126951961286183903089242927375160731954723852723707960067941727955280864960389547018450290102822936229122931144320587738451033600246003723226438850436547862367807276435711225114071625467181779027384841317912049357093291693319901017535176023257964357246379926047251882149959453397484173482259118595255334727221942579582614804586390280806311244857634819995080699032506008125886464626949782911567897220786619566270698515207163468335031019840004609043827475547406558379528467122480389513957600056450114510745783313505145309314472356623940570800037020052644593746845592967138627668317628344740593459290066685861136750603639217897893486661343742664511922473679176936245086568087180222499966493152272226261954085418692919716813398463287259243123554724282840752119838821630270699085792606546924618064546124647324208565030437651885753327781356652392853209074683953762808023540045934431626905030239612801778738644654457955348618271408696939913550025022264119229409230570052182119546805554684613696241882509973965343665307365180749997862010662260502137822088736438946537711310474927404623782597070849577646061261034311961317915514763999872754838298292196165174059777952962027904784973170094168101647047908320729617005410065661517117302204596132155587856243431316521899822805636533964036366738528173941302040613583654901518571717514393231150258360348815051844871917370575961765788800329937447074137029913076303177362093552290258688818701485415894379066579963991108052574196050076109469140076247569745482933927543203040638394238261299661762223059604536805335472957887870406799422278082073632229250029374313000987184266547089614313365904190552888561083379822041018308749069926226872047989940112177505961089492825580260310111196937092221822207696008277343000790505660215091551844820017290813800894794466965029432700830763875793545878264131217568600214724815334561840805534448329608891294238882065336604809407100104580447374078809215803704453213676222819101970147755016647689733199592639554057815952277025215450779828750497999049938726378844453388995997370927548384446981182491029937501545263900058655049854691216024601829121828991539919302530127387939374174107421031739618993625157089158987332778398203620402311149099573302731726670475775697128425864655821760749431990095620475224450504398590843032635381274082942400905649873246058097047043641697077143175649691851242050103253608801082395516026204578474622809568873382460199027377477450117307445889333306273738640635550548299394573959652114181145244388159030912992843777163063151368693788211881517033990232257752225203215673625681948712125001778868893562188438942057827496498955973848185057868364466784967392770449959596806214491125937114206378697746946166763795749079056230614995846664893141892073456910560537513782902376502633201645715844581038862817082763603188946461391017218400664346129179327174316036716958263872192686434900077203986905111882908525677484848610029688278179843760266373617987709750380630314545432071584282606773097270341302418322755020440008438787860508986804943668452965157298739819364947489401044683890188069850574749720511701297879458222663701550543043354935939866873775748339413187941269528052305017851440625208620067905473391230133269484345314133938688718533552575136453224412171607030442819358338507526037142536174061653494157486932168774899287836267651729630453041213788057571386201859381661813381152429943178730976239228149577989746165727036871436629437713926205704753935275509126514717113433357984394334161264713725100343413214515516850858316403082276971761341127844066939381772724150942626364425546180960971887880593431096287103102614202352894206207986356033433667072514891525293391560088932647143620349799122597846467914025724022336855903788538751425843292050622371695135480427473507000622799118166272322945124940311158508062758907991802376707721077122372173424563843164247532290096845047420069435161239956055929549226218939490834849007944428156177602348293139140609183756635885967044654085621780426097586194649318985803118292946739851250204976158169482396101857578146299960140694942565978588054217135881525650833857728637930719391824612656530895474743981138805040684232974243297774189674774948673284545733583583430731385825517416835991383386716365483118172498187153148801583945707134203371320190314269165262172345969771978515648393702463834715761867504447310211566601107821406632823622522921672113421399032177502091350645603347149210359846987357452215723913644921214267238149908178497117750404466135492106183397590100774702185071779147039703770799868113632857988875357911589098028056985850888888275655956651419727593151307275198946841911655786314307392413869100116537357955662046117354450688461432049190501225478561428030755283060142361589434956585793103217079696895797388519359411756169248541451632625151953780777734553101128823403673773246478839024752814401304595576679162592251113702778676171017607898847391838628969073940364285210449528330905133027628174397379520567100595518145036838102037491186328511418184307158082564915900341872046460346343247956269647912779887819099318812318442817313808396214970588624612993103543299792841332274915907888248183820396437489415271435058748310700338045198849225242076970175321009347485707476897647662306979456926336384822359025782033801400077205620400994378271979137392634507582415510871337782455889844887802802002304462763152030125631155784726212628061415500851821845142830595826131191945294186357211152332412803659957326053457679792052454861087286825826569495752167580989709067797450813482654801685961769954457164776875387204456430349287261025356696931307545894209737906716166025462842800162462602942396186840979936444038165723277736173379266382800712855948301476441165035114604077628624042716672335139013954354991866375479109877843740985253763690171620089394653502364806471469364971505666921207812699875009699028833941184021744224282289903528334094382378638287023107038084246969959619673864184523172460609709239943107277418605945536359276665421461563197845067287765903682487722731270953444762539314062481106205587608082035469506593101309189629618907122230977491267291955348405042422189955837260335221836982907289670090965526201014036710214799193305752635865012767919994627311740802179771298260927609194875498127210922834411655372430087327659605015555694323480880405013650950064113733684040342996067413360822784436256901455865210309418326476308561617537157741399258626455046339196739347315114986283365169450278385046612448956824552594413715844726729294566933069239940192322186835537700184833796026037532045175610489083024987728162788346842977438307087842085946149378234826365245729425985180472695900158068752099295053598721283512055621160768495653301615285984035092587298942659359615494735917550478738477393885609200337700231680442649037474833927292596090034598091221646270276652872024078820170456849320941124395935874854615813452063343794859124432487971099606476406346514876067611134589999305040710814766226690921867173930957799264180278235151991897466427170445140774940957909309518815681715718240530955867742901569572986488014553198379902842174341888761300685333017014899153921762870712973347989627941701915324008751126612421871087280720072461418812045868122009465370694457256420110603228646808878177559737126205590437875102815798241577338202738698237769575456247229983782361407488847748482121362083962672060324850572171640732308045720173028826698352737769502264640192939840288214910240994870971327993083057114559526539301826472082316623080889122548621434280446000638675592534432083270770889915348103346972386035089489980200023136489506217991515783905218101851067621630871613258472870938554430907736188551705587340277694329801439416657405216631132500753671236094500882479669796910806936193259143564579762462848602102426214015117217421391365102329823895432987898145105022715412851939134153378727481813110364266626574243827062988842722271462035782386802682092444643746907046354805442948345874550450126592608196519012047542558199131606063490754718461136914494447992889578652439889416870552192488621709684647358913255107560472620662092593658509982676241856730083202946057450788203456755732491272218812531003330415555166307724713230738223885438317934673219595787699467237716257477051688825318378852196374371577017649453106391117986175834047947588840207068883450691512496810884339465199164729913044163484525664651154661200083645219995047447674508658761380217604491387916866778348679014429652268145194440618414116372788062535736377124498823556959327513213063441197989032167764734071052371795419693156738544820652756899741442951440568677003349582160073098556959921589477585791707161933294477305953630991424726525434452504475419125623354866030975339947380068662875710692936110103805988017324084677131877151377861588152059589977830187855166397813962570839942585514900065618076224299136908214852028481922111842637188481103701429874337798071337259886637199416792751402428109915522803500382622314436281300127455783180122367511851816628428118445736483901845778954962456942972281772978610155777215700422251349374312625132922599531449387888564310076188371598697254256336377770916561448163546382014832235571386556696695636229139582454863948064878469918222797114283376400634464626492650383736021538455557528738050112917651337524896328545749517977796292514047428251766796129089530030177034524021510511412919476074466137812255683308643212006425795263391619118428135066316143407098410167299825897055073091620060395617546667575205553663443333072434350796170659470329711215300275746563319321863000090282972494437866469896725233409679410594656866995645781961894421969429290462481965041163745889532583346353801782912740837334036446923928403309172528086937945983468463692787478849432735120947478534392284498790550873190823235182118385890150190811117367171205810373110834346345627436387157057387918891169620843651411947055553728649110978771674638899421784873610519255408012826360292843032066810543570849301623571632266326799890322718786559643860294618264632889793069761370160081051701626678387933404776968274206194128900665770836963878066522443245733271929576061916065772211969702149877030299554029670929111878491980858653615731192681735987537522698880495763297315342138092652984361797432230184139247059281312934999098114357527720776390817130665168177551678843992062243496790073471459468058519704919459873681424451230019828305819978425470310020592043056733575711360366859443595767548918031560878254057668295966731812713442542565471439485026417778097458233728786872545800745478395695615357707149486254564863995544027875630018371359578657611217990910570942454597158719808877565662974574106718687591988569135336962726008062547605033057338083930020940202122723369922450799934661773595021365761047234698340244146446376959682027028106200432259803545969460241920438281656660612088437598544070248111119932339053642257108535954121542652555467780700480950204219826028376606814836440273256399154010940491549204136680896640065436148113118102917329211015238667427868856231912975600145587086582224162070261549431541611246175166091173619688870050141586728959272168174810425541315053704504971578131629060216810590693352529857132057421632038214177014031639655740312795595407154013950865421205631526118762121752330674760630561623716587740894817760328722450750095451079929037958794716708204704782472714921634903179214975974616397991450601673518521032283921052907782877945957314723501017442475322145805934074676204541599957553449860381126098789575968444697845799777332732191258813861406346352002636587407270911879591350568691007277985859717392199969926815451315459423942383651815925256448603281001969826262553145222862083226278308375595842454954929051689923947378162671548405276905369973200307348778819902557189768673285044072023456607181797592829253829038142721322162079742159897662169019175136529627231200234031082166104436305913013257467989246569369690541988864203233554267275610514290391179835141944479291329439646253614904562244829764996797973435748264760094354399470469891881133545877398909712137737817638252192041577670195722401244017195755931645864091810111903933291600781875622726414139446261938553961020285601616216587976066333217721429580847011961821112057192286417815045923177495579620402702021263085861096379729665288705295784920436796643504312678539341068592586431645559102019131693148200640886783964357916137610933497294742427725723671960534778115198641460997900720644522745954148057970450349812319735826879441051228547473923433448930295208929344749984109294448665105169404954286582677173973395091580446493848727723443609103005311522431412948832393704677949549289709230752957833148215951771007103975926544899341740722300872086833779812273684618496586503508236467138819954159007668651911719603935618873763302484263602064887149683715385517352959458836805701029077189597610369184592093992950480011522224413081269213646008015501051598526057853168442324691777108977159622879620621265234580777215988777117442875414284534168197405761470581751950536311961845523675303382776886838993704559909508572357457463537763457555423465465354964980847829528340045733397715384322697048014436211543655230247925645363539399158991630140168243909226404816305637506845398794799586786346657190485645455812614958954116363724763157210724232841054246971589296794174896196436295175798232488523953681867112537544147816862135979004899554187321031540999826184436460694695803764608094413585924104408192785427035549045147317048374161805348639265248011963841330328801952888962843962135098651910031130175342673477666312276117251497702947486807610094399815564223996191000513875111862593832302143624724523886732087426257661751085554397017392744462043573985880599967877729574429035999457604661783043105978453865773030507434221844139257747964612768328783638527055154736330831178545116334864156894994933745780470577044111086443431705106893463062056687899202941254436239034693519553175003548421483085647510418866638558728149348129013856885037844127934548905037994952410648182821835951011483183852063831438433199792081096119771346311882671106008867684534368189538713509381010399281018993106285858091078340214056757633157544143887180435165272964427942926910659517159157498867330172109696417543333572911580717700839315624713374419441999469523772723639264201383637434072978705509079863630996903106451491166746162021456921032546461487309916798525696928029773560868544001942966526390247060230051971578344190745528478262985888702421717201522576333644085791232967057436132088369292841732316502671032327256545461487622106229930069178173821785201239261919106562459406825101512232250858475684272270183559592008193300451438625875754032947442560325192785132900795089214200975470317624210855006859875614935307506712498664866153857399269741498839640036311111625192508677180678918535753635211924367318279211302360908684755866903488269345900656014752379181069138707778098540712881378360181973661503467960779226302414575468113216609763171647233637929967765391400895497177744798809758324686726873379545533838764152566331838633732911785339162009577743672516301429333918968192262456316736447461012749540826438833611137945237123688381039437184330958691155858092849882980277504732834206991907422629936487424820848738045487171802038448139054765666052605638904958125135363660249173176731000651394632149218015094590228766254848341484325907590772717184386963636049629397389611844935564018673520339995155371140614398700902422105352088109645390606674527771381947842865350533257698243414390924741993956771509830698173757416596555678983345005170448289558644087352745263404453766372013226852567176637979561385929438737976683388173228462140326243623461070909019821645934504256119932044364617211695699726249450973035515532333356588973095292304119135777699301829393557157316571360227890832832579406340843683537295139929950031131196526082327098696635382329928255363457291889582471549054419324579782491680478796391352254312143826346503674120908723928507071972543580659163804984857799887685514379386226960722336311928501829942787189931410519360008303983426409326430131215861278492938834403761843247231761506164481915899062194270014235933740668686680917009147825588182158117261293474909250863730693961223558506974901725554036268003441357840277006829897007610451435373966069293401863361915065488058274919348701931951512513746110753281768863320100161696910886834393263327878008052509963585899574005054561474692597521092787464025342701941908227044721056832130628675371168549487098535814336413929075728360636177399941383032648573923335273704583187096470450224542505330116394103854888256297387739701170215712848497443336771727503690832309635100959750581563172698976701592801275194644739305031957093158696637120204213670689548447590085236034750119010244714839102209006622776454997544103166140575733286491723017412155977660945952616449686421109349341819165721568635332263270821313205361113607293760685188956382505584040845455532297657607010385624006525208101484671948440536021622595312206886419190340494020435815455901564634543992222737940140688167772820312766071353975080410057047418021862095928279588393153435269177970793601971050926834126843036033548516575435439437689883430907370404686729611936914383213996389205610797093402774129858569556089864878735532118231431825945761192095760080318725693824314499083998290537599778932106954261722669687262939993735844926795352492150603113193703607284218876855461844461052722395176619310765003226317726750390997278458265494918956803463760763279497884148326507677531174247789183865059198449618053813383101646736837329759458303230873937848977883696089348436754116877337279652020516114840406284171935878060046533606959963273698369504728804525968009751782708768094537532845151467572707600539308251184669352317902312274135242988270439335085460340076373546416397904301224049524077594458857158668338640632382651586616279506145731449422490155815331812406474885678639631051661274537400748437761977150937118680056688944688630926329433692828793763568557997530425135313379579010483615438401829671752213645292235083867976335338967235145005963750392974865627438649907433496206516360678392995052924719693124920595225134864891460246226312719541051077753387550498946202986764736544561195078430212600062948325914802255917720107623149424703757364419703762696770439554041656184885009818852372399023316059294841788048960036207112245713318286484585625446138327115943010534762615188049250117615089431440849852903923226902594935733689095272507224568596576188828991695119083613503377570667329746180922445712104955247446488279613131843336304674224966244476239409796241640324723535748960367346514260335197346277402733795025694715411220395734311336250438029672644549838751174914460893394151235097009733619544994867768632208693115312120321121751627235487866242690627124843262228481480803238706341305606865994653184197677981165467761886217597010560191652689563248041406393407293568864474356063008668688345992485235157021471796836376700884878404813249502589495345981493924796953609376572859355441106019043551675670459588380836168977902045868250257573784016892144385083980122272843265028782709557759143189553321965250861105908327316904339304644421572948994608438876760532470585404392103182316371743954495682351640736454281930459620355422337730887598057370835339720159688957989071380554142883646401217203501958299423220405769013711971028245396702852964650696515467666612643167068867299836837025155517864932261131931068469687810671591475565341970960544205230166574955458582463331881910634144559902224006016083109811287292378699899851447660015703330549212942712779289948277007509063779912464731667691557644497378842313511860458663167158467088443041090191993751683994157066100713921291286884703351217448421680320670021783624299267402868511568179888072377448229229036090717752983733729251310275537171632614335592969298621517613815211660089131475706912260268579734103733889301651859287261771178719917541818175000477222850835890299569061222865404669982904506239803583740753939185479732155314445240257761666709271412968119596789407359926153971159207527858139248883793924211161188876163469430501380668492034887150211536230428653135100937688080977677376511635266919243452928023734198541438684133143545949573169588174675949927812355704409193214911681102103451331180620368932636836735875894121651729833933060608978307232889960049089215509577079750356611527043440379757611350088991840334625914554982965418978463767482603869264607377455940561102440062099262665461318005044508673434657435163490815192527236074174352378911397220614777458272572576651558622989142936549819984372028332258046595591320889932876836512302536522210124667216122742922108509512689959062923078781229280938284420386972419333102545566216039713288593529638695610092250298420295488371789988917683488634853766129026920149942995360595419076028097976549087200665579468034176670777080719894117304578352030250452050122923100619021525822687659905156454700076645869251163058790610335118410414465711819990821091896483963789413388671210535722348154610109069070058671957396651736198368422222506660319680686870723514881310966581941007033552269661677807889039215347192861765015009149784317308788851413645756807199078927337254831678039450383633219299966041728534252199601693641099669035826927478829804279611530666828043250059990104723852552156790933751543375312899040557173606285271194354173534355377941128048029360182216309148312100705600975240445676893963235403888720758691966630928534452954099694237168736079564217977083561795738379223003203274506815533191463913596463650054900573551163753194095829435000957243704144463627509636072721265156818074574786075560529865583677393348960936271857346462793733474790811388092513199737254002323547348800778883915115593342665980025822280069783767915624049932001122433457597286124069839013128766725690122165114067498344407193576296283879595499996072724109195731841125082710252413493805042526598651093247546896463971491021305176711566506216571333327680486139142418063381998656208668200745767915867756806099393746964442977144060304772443383380253825000636080892573082230580980217697109614012565525820044337074876854219051563544476283100329183659340326158949937576984774270015014074316820521111981986719524167756354010101055699665793242334377144602092703147935853747761397049628149425804138221726769939500210603970674570377428544764821994361116720693307747355402735932168667247808319599856786332984676081033374247952921658411837400995625480648747917944485691580164476722343490042757290744039593597068422188767730690008978954832504013532420969566261637255806769147789435900185265779693350937064649324352843869640217177148805236349846289609669092892722153067957311531441910193425684734337970889758403933463783962181877738736406976422587722424924137171933626265682856498893113397647049561000211167026180216830855730011455322390964294923658257485373499404928581790613489713755104171730512806086323947137685867552842907499143950831524295639622905216721491647180056775494091719219514062711225260323592689018729814929394362292381675481571583663359089509526594072766390669250432125150629592750305591171111584133747275537882950920069964275516616102406164152027169532387199885615041459992025390192928437678955697958342971689654018219800487184607037731742509982123583754064893774033747073664848205170206692505350467755371413667949760338634871713578014353629472919132349276960963357371207274427769523895695174704293807050438170865242770532676331047241836460788717689495941946851015770212877118566652139600707414307028571391331416885408491253163790639191384121996916536119545536146694965502913770860130775671161418185900234199690278618425232453214921032697950347526431089840029496889201395098805915591710613152776456996444315440599743531401219039411173776437926230692990270174834757658789443492234540368926253495683090836271179849488549806808672985406424198265995554537075017777275819557156799278284220869681248624738526214583341689521136149494030938936352777621545303773529165148125985797954612785915302650288664966406829458379548059917625186344048703803655851920337162476141702397932769094213437591828638769554536828088670494899623198519703759063581928375475617035037867980592629441796204855500875003589716832740294443272188684387002570837333007116464134289422961913209237099018840479688508263438519675336214012985673193096330592898924554897453035775426308228048759980221958487459560696235077970541146600312854028284214862226917464810738207744460126904674038686809696492286393658576075650470522639374168369967254447353834367530236740341919150177362658504083426579779707547006334016017937478520822993421660638064520620644927987536310567118588995953763874832087418066256911158858484994063312975993818468083186037057459081506439543573554218434678755332978157097360966958153378471981837325028983207372561960796069369865880687030431467234290816115347688626266733905496067697161306685130908639248824758373076687926252917851965665219372478810634023271503718377747398637873481298246044852066663651366532871627157421782524456654512699140925960078690417211370507257946746932215524945829512112826952728362228118705116798861679999832156115469836761543810267896126551491562314132575988022774838412982644485443324021384890302609145352099373240091308203161606296377968679250830510279253592794907170852869210913225043206940854916225973456825931102639693907371633383751401577709641143184276492772147149089219546623885074137053969317573466534410976631997073126473265481148289055867388159492677430598918391619352176982844579850997985415397053108688021642442873487998152856978474718529852923954109950224800644597194717049609001106782409124686583527421865421547491067481866938834274258837105272151606414985946019947054865788067468223828675532384119881953667131520576889851900942624737583570408639441910957060552705841424231863775418253611024806321585991137473772153435496377315235023372838369243848821144051830230605178423375170901322633313505444577297543769906345108401442305259638119072105674285063680360615906003214728969106462810622879378927739014119041466291072912713857834595846551208426346159872038045648567636485200776544893919322986609044418914139714831405876940393696039399682453704614525104398193756524765203518261902802395452035799417275691526313062578502887495892123065254264467273714569963946102994487444543942024576775638374248753152022674404353023951319438432907206238115511749183497780534390413656697117820216184949042660626620263593798568820918422773120196786041461771612033830017575660701293224420770506635431526832049646199225483926299031427196996506222071172052293038833835888219840285334182671730876782313990012933271512349511139534351876031870592159514487697800161368716203369798347450065168338770762416019056987595139708337496757614898877273794594776363125551552452615695713128362289401236976589632579626487228336047800637143236744309046062136601539781028450770748467045764695088219499620289398146939532065908352311082534775340305323415332452927226165886995435023624254858530194432483818119244613167984680928860791847523141269336068437069898924040639810642862766660869791004290301661761246785290233246891830701789843929650087404738397452214392420481409048199217148751095868813072218927726323967801074882551332264493338746217928631785900508322124986275555544941274372085205772714825078888050474774485533809681211648917743672812011020812172581534410133044418369034852431789259081743105542879828267317513222365099436144190218078419459256757359888300924909129540178529999450907869368730598565134099207810597029238995663628799661969872006333543886245628729603135825659417904137088431634697471658990928844157253207481754971511075376032489111714991667230723435934687026182341454624400706610791895165889791619778539081690294575333054155885464673204760251412888596204044981226624222354254258081775815216360606280498219397378526886283593158822449387652006164263237266987434150556598767913103652654487481649281154217170113158910702394861049028652568598962469601894983504948871110606689405251575948466304469528806528316542846333681795643084570172123500264135620877785281195795415701995089558427125452896231461623901279710146717954575189790692979842882475094427048951590446375307691867604757976507864744552254457554924702064512572362173791069500958467030797387370823128216719081796004094500951264936039423790662440793455436325442882308194085299887152934524643914127548838359062425423301069662489426979443204951485405835220144862426639340207255805738760524642839908170600159488475991272149493091222064306838168196986459300417236579663501311927023636218053607825654617917688345165214442591091048050888327632939317809101571421343527946729733222431891885388480164890309121262673031150090174335638655989844458270150952712796678318455380207371823617166395020098884610205062952573142656315195084957665794065008689499883424548583585054787131187963237206747741782332327126449595182017353739870820275085030030374448537610479444144500987370083073191767145613144723051315556838077853956581821311020532293226176821666306404359192004480455488080998334226541054190558772716285923590252024477984423475694191887123150591516461551772763925789710585524331859303288994789828270915956612549930661955917784580972568992807483579699934887835820554989819149385746096323577776091632377991777622071715588774870670877603753617492271165790352678557843874271798922693701254648108766428575794067935979764441086802163377293341579445701536435667622165879412423258562234991869269554599161095908096415014817348624506476441821923268304531010470056534166078352876803796263684772211282573510138828918014506964600857896530441629708819269329200973584447082587858291475560153246005309005201041373020611567563410917895878829732609597753167520212064291453020027263380876526206154949717825440724242860831184186485454641006913367030486347849938758094248564242772192325826362828538372763619306557870040724324417101326849765481525022107333445086719731847503847351809769468082091385148545228588425473910521821661221073214186341173686770443161015515370299007567260540813063016053321545093561136133691678299225373124675194240441066404947915613030000786621591921523564766128371088387146578094448461138748542553964009980089079607013474258602924246011221379577021384188491904638775501834220178837827019811564106001459569354063512591007177180435181518971029288657254852761542110915557407981017245003160549586456247409025778868993083185921178681207992039620258142034477967561890325591567655021586651252114786353202087740521186210910431138967081412323170847665413280006213900495286029950662068593213752853390513637066439054364338668589478536627985562006721313250420105269885091248238398756564483490813463716937884504962536703606024610974902180658903693970622305569692040321262975133809853177757799027962360770411702437240708661595643188885292112242860434240069503004585433990373491705195263070741836749033538084075764826545646754526436834637134829330463710450261902485381409534105461013383715654301172865386912358903021782097705497955226908443522419761709886390434756092131157822927078763816252341570465573690541675994934749858169581663972278113571275795002776123810149658228713121325868902023914424504249949247138454808366371535291165299361778528920058032602116319310131235591959255461418247693557314989967938787940985997010933974104979220301965214925019761737724796622067525220887950714132258244124281352501458740444721791631469864849617316205381504282339153462287853786591320720602834170338173046475708419508685751899173289665871938438240886353561821795067309915341822899489940995065170394399332872605376053973373978505678752549828389461028022851932720100587817796782122326887356672354750473869816026099664640047233232655473480132868229171524889303262314554223656667841991139577080741072045269578061729990848096831737199048240050330292376542867877808577847720529214331790263341404991607178543325904249756249065002842477168247711324707510523401680010888370446613430335092140680191614238324700907020467515036885538125901459704645847455479909873850818235560432112463308171255763889608132988691149880346440480532692584041603089184685939025586628705408266478414350099245774033362562505221952998856698063420373704272991909883102428596795607721845839747280726620802432107088699970960325716109269016842914630929806222753477576643298548517615338567666951455803331988393384023529162101723623129571037996739899722040027926441457362991820925514690518804419594787444969822533476001526305565674128211165656446655977815776743784268876831818789866884423880936474120055781533511437898992482731965958937311629505174135924002470056345658507549646317019957494668395352861179215647761803903165231271575325972688360240648256933035468724706760353315881003244884899011586603529381154502207467515631382839527141534813515155644343062054331944296924714934839833389863684477140906317730379201354435695068825762241848516385460778475769614674263022564412635282266729975581113159110518907757793530344813193480950202715207647805952081822691740115975925695523370939084157590567923641052553524009136026080563625048564578244000904375867469943026772030476704993539473309155653162083908812991225056775115933848332373522703068221564750407839243340375056446286904516747343725673428287674771067711139788313609677878923881100915861606300288106230749892183320881005909195109951148855683728136008189351910575224653402522632648424594975852134374733653023388380259697241771134823932617057761822003322919475126364253703352047566960798632931699569039109622444660981651365459224629562068298319857792023411155744897031785977827598693745005203769848640975013433392949586517111249756483148919449510798574442211038015636970364191277195207091958338409331698986350049232364194464828854537145540370788481153985516101667194041268669392422982239521026015602766820552674391085148626370235730728508570895222468246045894148510233328856879267426624144097095142671153999906434524226093402347718325253851262679312001444771515959848516007830579748325402906746961700862831655506045231019162033073210098253068186893149184105349598741574094541545146481806228430440745303791302370685198446221026745657582585204958009455924045177296492340544997070304230292528109633759139767494904549487829435129440692097994902114014998263834981011995883525168781958986750694313424037839184974210394516555983245769071460713006093353750118547741580439988435417281794517844946195192628386229025071146518834727556421216491652784352978498310853197321811887808781195316402115428608695994966234170204122598825163749557219428161700011820049245825440038741988441809836000159556749295941088866285322574851640047691036295411278358818966709948042009731214128592021714488522118831198214079631628529835069759097255647240158548338431301032531811141561019208879230876358291041660581856430412829748004265454297649666990674550136824042771954754657530409653853438634360062874038808780985700803817754746784822275172148303188514996492970227939129506894780934867489048372922664727932136944816383267747125169294494539741595761754104981768888931038523253378973670423259218174905713762412074661259150347515046497982090234048968581452055042965685482303874806126731369246896983572828506412913585341837652268311177974762872217631232830677824704587813266924539941565635019435188349287671405775267943396538795993213027864741993967104699161101642872469045178183488043177203647170359779058103652120482560633414930666510014098845993476537178718693966951842731326442129869044162807115444908063934879188707378578979895271964744181195498848097578716792918138775823954965472118876578985167883608199655343069870133088529170044570985969859669044731893902496032632781128042432023097348770452254118798900490756644435127542949453096262536443184975239102593829905052727719168903982672996094055124701133497284839948669764214435056393391731938393377823396014332704723417178514379755447070038711883667356888560918491913232171869761295759587490366275135620090811226334565016133969031220591111248233685826213258714297082717214849419074588791379486096556881541460806671087527805778875937677840868205051001358938471617457125978175002020104973075977981654461551309512925459662834640958721082992665508394265241688376653094547807234135873062848635193173148220900291401908025454667343228798293980048026594906904659684159720073309429466121610195008496938227277004229776409597161891832772599343493487439808123533839039342711225857627642811456617388302695205669889836692346051151950506351382919599768514061842364410951049026229165077333054045839494305884770958396386897512771222249942889890688150038442912434112365250681248699509363811331602638262510032899268221687636107967227421277556014146151987042373722215920606712139843500979084387837687949717219836060994273626627782783685493327023491684300147603611498150931160505961338838490131531820178976726130578280471982653835608937877500335239280999363609933836004588538892082135328185851391850569293340927388219614971407611014607142976992087194421420972085745031352220488187907094447404618913024872813117021468181197461109528178388684498703192165558064945778703072512464435477548509413730320976824942161791011319112045531768212027487736684920525257207004444718380656803854579980279128313658371628965319884954528877261264572766106549414943790067155625766755871535073191078426873133299112670615613994628843674396014171232776899072316266330559033396852015172276942314702076440222134569427306423368185225697537851671690051113195896343289652858370499701650718559469615852135094022345359268896126519712897571683870173092304774362434279927992322053408773476651219621318590380365930096002212135310007957696028615799492547670115622224019392386475076426093935866013577317267022776370547012000111878690900472378796981969691842926699698403687130987644971669631399537733522803595417670638382430605115752475273645840550007119105567391378092282640239222590541609171308089574880402363359470121590096207697310652151038558120465803341592964829972289772921371618714381703223019909553015367223794253963875645034431218729337518227998237204780149002436243474674702580284404229816543764446567489129950211123058192869261204012436045376796934107792021545241154396035214418669722246502435109435254557533667961555386874617610068683260152702147256576307923792779528614363160586910027577411189833281526391087977760166567609986487121143831012322212423039666774190312213606275255051013974462225586974464883502449890431948094506109459767541871476737215481693005040236135709963952473770772314809232940336971502462087615642905457082933806308013388659833592172499595189161275933823204826254683799031526521799264656923671581830584549860436480364071137696773353329416769841637465813626251983700979671223613572121734131977185358505927926853286221635185667319567109606846457655081650054463542976755640866602716078639573376750308403963385587239786826921054509577470106183604851530193195424961812646450997486416177497812362528823792324456987924501435766656468572412471287560901500800154728383561905460974060606163746644859366928727793600167913932934645716573428120742098583048633443341997352693597722185517291950812097383716327459812984757350857764452315054819232893246979207419708241048161954616632871386752699464585337437917814297822326957117188806964082199298358285877295761206202732904444493880819255224907568700965560623175767403568753025006289677749627559028794391948219267411140852849660267740579702594875853077064810981664634902456231024361709401669008429735658541408486207515498544783706177381656825016109432264055467221085022584247392853085955860566386504343706403117074379601295319999448659138521638208003884275536053320669091886631155149590716648111958565428430323729771244816025069783336282248170390699737130052992380929139748794509532212895823850983913394454110560725894818687793111640817317081041978093259171785394579296762777130804136859458785920011908674119909040628420473591729382771505275834130373889585390166143483177893342038499483330820533775166218805162390027581336713741607834134092405934184468247438615723384893432945482790700165498614565565901322041592104061062003749456663906375715510894156901316625909252734261198777197207216527301444253740680588811929219848053864023687017290344038646951127896213155706498727030498513158030421087158110263595371144697888790545430517401813788084222526646335840109335352293037677522683631705146084027842851363033609540296392428947080413208551689926994973106606156503822339284301447082086668930162189276980171258917423649863013234425462912244622755351020610468030823081986447788504914678612099624132036713969208949376187101810061908743037366808234896964193781419156465183870689815188419153435724568244071438619331000797986786336711988919013234978094642022639281617797629492032278102845009952629296611790451376081759404836511690521260268909244208745561840082732474129838012254591658830060433297742466524776379022599505641057336661622326571509650511182586541818573910676620943852493397867693266999457597948380970427045623294182441427223435754630461572541811029888451215064985077338193437844127981983831838841359708639398013851835596985264437412615587383224780886539970838134861120087020815019517051526980053178148186983048996671703936174375471925845945777734918243753596268339152530689922017568165698318906858786499228188748432739379742778331171596003015972382553245519975766278714078156718451408961352705583813005853692501073462006768955003311400394345020475434631740043334158907963638976177277376439620836578365693559036041727482945968162573172639355101024205755975049883073762159339391744320174085282658558864956771286240408376054023086908936002053655234034790435471514871991001840307521338820394539887811385791703585348880773842978920188844622886068274401868664957007376386031169276268536119548304511478596403556564522952727636122016788383055290702226194653709545026870523049898633480508661044313070015385160150781847227625292130242778548725455974533567687891150757369409251864894113577344403387948770203377268892957487282558865150878257136041002880399886494309744020639618598047834441153505080757994362087310382050121285876441271126439100988547435656345877172085035070106017982429854333443019362880099069083761195418566635151813139731379391590012757452829220140101151632199116056099347909261100627076133433711089264441595387619290108053042987741976321725709584297531255332775593377983947538880432045313632476022165173841848004733650224813626199360202882611494807733404922605008512585062807686926039944172119852232077736405729944874145263367347164244481422120382713943440087715595105624375360915441499929451580826318134681531058357606633749837948523121396430557591195880997917203961990061120656003646031839770356698279287658721982269463054299081665580145256307351199358796195544303848091649267218135060882253292085474221159767478335731199334928982661407240415577943157994544938603970496251034263320472903411316783595523983068034834984218189794993120620114713617375574676431654609810687720281236886175701818027702360535226344351444414782100981320869793781057615865392449717978661532212526238165986581374388244945470633125612869642567235339321475296186422058748440318310525032301274778247530636367351170335780237451396102490372928968198274746919323685913026020664126654779351938605785495715832822218406411519509217950853113255396494888308911259148986910219842308334078235750671169613830487883710524056150694943149547441564725301517457513822620598403443005751410769199084186230300338003706681830036849198810184842588762046776196041844219745781382938776897019310728539872912022860919554075886837269684219813833487631107781258129289465530658302147691027112690673963826462907660976086390185480299593914593372985562822449705840452220952184056329788915577044344026866726637067735993074782042207482798275538782429650202096571386102712639019257616182623110584763924820831862403141157803120444257972483809625219533594563204820163152581655814193294697799266152554309781701703859079585626951025863200064590635135867746420396679997232090381760046179469149117223187168526012179973590387412671442300159576291287557944035960940068976485541674245893463086804145520898602563278533928717789474047701222525853859647662295502034914921263376910780752506679282424923954462134570498628941450748558667406042341759158938298178377387686818499599534854197636673078451992310088020845580668399945179604019375074748796202419120587173895392570804727488543278377281397038040101963996666542316451433674031471905063687936961043012173510323787318732103059320131176891674540017306023932415586461107092347861909534240673191982782804708684533296262149798649727339130114223573788089432987262553920081621297628090377755761910999948362663489961937606835081271084575582797844052599684820647688203404456323356053491149016856874595413952788462843143542030694538594620899715312986153457545166578517145188125549933606289618427674666536861002883764867510234073582138527564834916420767237603434005666742544656054658798805590535344684510830410675653057638121256010349927571329775492221925473729313239049899849942637971505716031708822609982249900933183515767465248251234150639387058672644356604937260141767125198562407230864112759536142758228182583292577441112025616358606072681844741137422146380690558546312663043335021968572689213350338461996914595248418328999224910600464289603637763183770712008814322553175677015843783210987583229994594200927196797815948220476228067975980003647661467478223534595734641739864100443429625037066788875132099016544894744849408932329660489461967844594727567826534334507675380152051584921687821100899609067196350599540219561547742452759786887059126641509316109749137002197851732217952298469328299943652724348480057092073271805028322657146154444649921952456188713856749667620124406279202612476793604720124200203708631912488860261778038910456141914666103749114760256391595176342392520503757547703282377022128142644220842689365672648228893878893571264928208187474216874424734661404790112699461937214455662297312491925439231187909783785123852209614837973711076104026659803826140136024897784399652727572156149820561964011334634368758286748182995503524096073839931459696153561929087973706650276917854811945575607117413532005481974341645680080444771325988873215887244979281233515085698522436563224163869293173993008212938101911904611858912448719249804806892025264849827896899941442825003230299911663758254433444715202367602747098107770013390635667024786671442355808104581150699749329599715244434006076404515175532146177498163151993427009890913224770366699392466412033808479988019977402734353714638551717193773823272394757592357919430587797656675827520739889517339266936603538806354457267746236647174493272327590270827113369573931266863375481668435293186987261158642703481423707794229999255626783127238823798267136987543503369629993999794859891977874165884104574603783952132717219475340150681808505242562078707683071567547020968926634122769316571950112694058758887107643110196688815376825160375218835441657533323086154314072444911390799196440861977219245748318908289540518419174224766032376372966653723260656948297319269755505814543665682552671208927018002876317061173373030878638515017105069664770625184600619887652726520036358391479385784728670423652976656408351622334586704261921904582919953025958083868042300515485849309646848850194280360514797537495787256522626321551332529372308597886010765793785168616707277721682150888535990082998744210481232376131597353798813320465429078475654616704890465811454374792825464550612923313600241745267115037245123510964102159123911329747797468521627403693085999542185555466680187735844677012581305982446948699649494209199104528900071410623369681304679370677274747012728278512623001985281240424040663129244386366930295406412176156238664909528375889627466403402792542222627830499893394319642509451408779466917754607795838375803760557573783671137984716299335912995739116785525801192175898371248729894364351086906735283937451089739988982492594881449942731828855826320097517369175557352387671733321263769080187039493223208486260554819611348688498330140431056680543232893128619155910183931217350076752278230488381601175769641022826844060321129994211697606249573059665508844686931430967619689202666455239886385274234767100770547101479849967831337395401164427782912309801302727461085768373592298263424777648689267367605630670273575677283800852250098388292115066004246459770226071538506716140240828721012806906664609113658641384786354390235888257256916793985010008852610171688397097789155054370778887424054732571567655549644520045599883459718680857250281870437448578632114986560665822408291650631320629643915113887695330052415123149104331317555595636695699927348283527763229163592026159703192158202337607059411188545410758126442750026751521045246204177319032270351357931395726191882283985922191718777959846283208177877077682598786838522310721661434412761206002935357602380023518306119710292701798781490043765522857438200276091039051254022257059431513436638035838694523989347898795634880256415084841698693530865631730716869752576528310735812790382991204037114027936193810063804790996313813741003306063687619055496192707907077363936253024930639841650977325896026100026624550718713995421051742936309973199011115706310867618418994862536216679900279919987024004900502625696411377763958168525771070969178252422460790077468676252963696131207860812001522086986153926334722926584203833686851617954810534340872831907665527549671418896242539333560997619853725743757764477702812594566036727649558487989637566345957492729075629762098712876834001706368754301655069638544053205466201986045400116132855373014510127905992953269950352900412541487108480969105882117780545118726516516434610656322507148314045727783850354746687492402557669354396455855031622941856429138566669545852422413551585490319348146096748573049330982981156463839713324819698706366258262782479384625903899739665168069819717173214552950215145542277486438639158935133383363991233988217344102481486271387204812142586459968101592711767522682995908121737656461518406444432907970172476807484759827678843271038605855921924879989186176373046405539661967124704492983723251151344139128488469235802226979438066427469568555101592350910276266249144818684018983293093655815758819168798984377167460288075319898150289426899076318936586733004011473537859610240748962808238209280336995562292360411737849181240434206295224849758187348723768333734617855645374754677428055145030368968505085314203915239270736591187828005497691627207450281186365487136673988626841660415588343822384149723438602937730378821691641198515502127028298407000231144665703735366821594296012763673248274614905095653496777030830404960242758131249424046122280178016428287232250712538722008386056223919673087773401802992244733137395254344890132020827411733873377880494184303083849904528752229121721579159653605840598752244908892886018780835365450797696571182319679226125031081905246826418041840286411821270645814978095129773231715948810842873397459935333201566192359948596170863529455949577167392449198784722837402794032720210886593762088984626051410316016891298768548404469912360944085059929890414609463438185788663278442581732261402073062744987613181030663779903600882231987066678970184423960565523593796268984297858808983587197232963452295133490525429588433027499013991901053935534416075571325814071981446399944164196608247821758960461376414029501761205916446720213315650797041488788770883165001779411984787207017009068635359538739931217084658487263306864115816635274382139296477375610222294564178057177792054565244156815027498209266673376662887794091635515217440189540579489504935602010448295455525887723429545271272259903991047548699779637788873605424659593263342308143953639710789454332612294239321180377341607090217181560593060425143372631926518816031973106956205992973169310721849580671504358808824914309531891640211157149123566183032618951762382967715645487682514412555572294016512734548505845844448101353282175844714000820225891720096841670736395511757720846409051958839436021874024567718014489517105226776264527047605123036911617035092899916822984190527870778135522342864773793405179259523735515934824336801020425704685785326941619875656882200907348285850031412179972546007625808010946322822594962712188648476473834510401592126165704310549301768622104525901000189208067252592177114879706600632132059882912796885516433462946240100091643594842096728374897257069033483278483384653100306443507001129697734092714193248503699138475575138141593500643923313513044437214319195589422444871512829863837067876764539054584887123082423227162866449550443493386883292918026563838317373836678192629305174974123385187859707706398707408308311373914081186851692645820440782635448111289604258012445899562227936583058243593725294309461769440444814059908087225137007943362317332919264475525092901988823171580434888082813342558261910662585356456781765795169843252221592477244131020663199844429360409703598666120068625525059869200786156156718843934902581264039206682826795977038649131225669898157373597434476035511673894847513268244424869988910714124677803176619046434324362072801546887928241520746286272631856158237475306415489970092686965113793685519884538574119043888888559976136321840874333834066512806496713123650397448826119534820652362508188682015028200625401474502561359560731509132018788165091420489282325064357874437317555583271814975088404024472656819091095683910895156333990305168680179465343632638029969201966266145380562346685271270632930275826961521597641227663496257334771927593075795526192432184565705317955609694271829087314569509753685446788222299445605450859704679683274239862272358608524524523881131791127293084258870576015670996508020904720594709310041745552241505479865754245893677537212062898981805657344654011040800422457969866264399930994527510857168938414818698636320575389108431835224174051898930840084374925111495712541353788843299347208860835486329082041734210699096731091823392529882239144460201041309668954977900611264279216098857663185394964887851528306683567426078309192844312131112968129853511587943683467860406423832642629883673097103958568372826433405032538943119940330200520128166864411832684999555967496915337227847538847270885126242009547541636193680508271159331903955536960466731646355980776011203320083684800060325056784525688003586332767076673749462533524187934277400454037967880482920243889145225299538004678006396963765709625503409194157695832840612597739897690159429219447378479948669471503692604745957928330303102262447722666145947897026979942618990931199775290416709683200062778266070777520797954078410788600829857191257122681247934274763825805698313954946991665253253000494918320038850080957013220731779617385651378420263933326356488572172764622265637531423446372925883521690562850060071818518758341317503376375921729775101295954589914853926713630445494470884505725602606015438632004097312112557102209381194617281112168250717615079976722444533647302641250244496703522764021919497653672765320655888844320986678656888328435661464364754490114705734895261302227267750768548164339633421691857582962465910222061355734851828538693392383201847867565121268217750418682655739569989775840129686545612446018146845569538856923106629415598461160527595815366747455300630754721476077110898088742166725546454650047727467475120354021163715043666624194455352209361276877697196262698059808665410111284191334294712879460272803838384225441208602812524789016625725926805816495213797108683187394036874601042582086427773488272638577102825547711478258787659762738561593398296467402193865824797377093673732992191186304889466159561623159026433320129172637566981878286532470339474719177673848910169418018482152909927319426798537154049264185269823506724684382465944900522678706788590582796085482847090105466757098822275757580253083423763755956910222799989752740870944857375019652556939652724870824964534726339700624091372854040088549694895330559268388283714936639613987935958734361074208024120585993631219660055859997347958235527117885183782616049048392382994673664215925955921207641855447419727901329074543988163118961112548073810837248652120868290853756201052100652244652351348270288030024958538907786940625691589336922666847976174105029903908644762949013458171584211536847672374380391937171800583387464334528178965936391946230215227092488445068972950275118836106887869661885991656818410794256187257165967030021290309946439392862177570370325752646796209260536746303774351359589097548111843312768693833481208456701195570890393563057625301448362865188168037639428829877039527703565678348992934216702197132176281150522576070319635456703062362939226728672035938814193880241470708198683072531245985403940496339480025288541946826627131382975425582086563294378857890305254584795713020153325072813932555367158067825037184083481635920205246790775000953931345431177758201532032982602746989063384016026583278273097858326305372485359999914069386239840020712313925532045526523593304983603558858306668897771560179023494129494771087087168731343451782636468775124179348304298227891036041482004422137374538576691570710090956832709478825390940972403945355292299545946785726778374559797690389824254036440946845892229972333425969477726438392840195220130680695274822696571287226956661983535849436846493863074964856983377817152891679502965007749186116200250550395818326559133698763344174604403428267684802738268740989255822813771282342202594289241468757456136825572815965493957797518236927246914127671065762663845537488850546865550355568544455077585649271879498997983820161176684797821232895996682869655624272744795831032350428505238281912377816726084932338627752964585941444171173105043141927073948482784997832928583854772731765822953826407117184042218645670425133507009270336936247423502523069703175736313500957573705963843395978366561808594260714893761694852532317282537149403102205312155841698704507774531028807997965531978757841002414462098893218140347712152294852554637667391410339341356179005922039870971500436002593273935685432056692742388908921787508701960676130765565458961525915326782892836008189903492156978110036180582585448683756699482259860316325007232336469712318721387451955362339000290990207863760472995244415999857290898073649211995663904157955528114939755876832638045822912479833099474787085109881379873092005288149189918006403530837303759420099011701972347930183419610805620655811743527533131566246093384462429974261624803082388414936494120847212129558646702543602865998435869919445086389680291253895658811579855641937021074688405795035361581869786900602157779695770653535852987596679236977029335472308148682300651393475251150284031786728688005459329966569193905224696965214464341918958316281776851165680460653475012226425739661922473485369410648957989661840876281169683998468310888141415378954956761760083590712867057564307886535614525533912152014498491564618969036316068871558670441110620795685865673852692940433017257980452407360169905973201955724830558735945680171804505863008271762929462009740269315496268736689146058883497186530595014191656066808037451110191348281261222458575901198907778608219635379587142435582172078988781874982158999582770680640210753275842588813818544808536993695027632628738978742369606136880920849612397995093859830167675085231568235701420303747265140146783170429235920744081030070017882880882543822084296607172167936196107386773331423969604602892626072907706069914205363617974466740987843114139437040231300707655988429454843433896122657289132891147706286043837501452934600281103658450679293281419375494268962753539708410858538888504777285551621619270356156959789233829873426095392083109041059292591753229978948812959851752429685035973110698774320365161892070533011481324089581534150299142538279660428241612732345727862479661861109412515310764381241681217114653474002282951419455365107303033701912434319926703258512128942950965140035426044497377334909989608427054334385673347309200947930915555640698706577579513033936285093438756713092677024966703563767834295991784520478584452145261892137370168614255428398183108002960138419569476540239916286994306093710065301989282043994912415574670227613431579749926338419839222664358922446443573256193528269845451175500252020048332472987695873509150890991976117373523835583132439252779757668169286696138996641848492460577518789516316443789121313535767049765008536049974543279372222258602609568270412735401709147003953929402953016837034493053951644014344746933884451575503782185813103108389406925513377982790758211182885838832756995342961887122732014899916240472949991452329431915281447398680839813056461183626645414494228073594579139237616000757219981074605751046734191255794607977407756507804973330367657795237221016663289354872449621201232348372410576520481664314337205383356869641691919039845793695657229218708446528212919952625836735120028602142854502252963542175709742215625616052692650467637200503925700680816353100891128123632048881919959250005724114812027380846691135584191971828855618769826587020785355611272906963673878181336736645122671869457440818406207179764562150454947508331362798630544310908300198268859182471715750459125558761704088589930640882768808623141199379116815749865334526056666324008926890426347320445344457861483381424016354808723465058349075958977134699321035455482514291783007263355452325889189288207868145776693881701217127553932515331876996300629841252887769257324913798749648788188710871174310004298914660507012757137252673810294815980473039439489777591968078266287487689375219665838899780990480294750487148346640880060826220174533766702639833954365487844108335426080074481138495605574604696965998952396011976901713777424909287059553609336625824915850778005110702277928282235140479706219998228735208341960148577559323900535158319057636278338789866723182531612731728257922990809599372304428586534507169674936522681430242020154622322438325877404008042740698163097166852311158650853760529786578249278334079978666680089490362523573255373942226229219512159618886460962882290244723229055330144201379656259707007043973076366090594029413677831968527281566116561313696244728256038984171199941861909860888550776533784277733452715156553014601999122206152625286376744372995753784368382129986515909965618234702214501110631080527233227379411799423230127400556646498232705654924773002366702655282195206306607748869908025022242252116036227298982508907572776770660549252138810078765938387794580028474182856045187049543506799413703092048860492542895281193296443381926158613272258883943530185323796977760945930470227023224241848425746719679608686761536935799391382029646114647671655620772948616496720440851322641598054326055650235023866232589703616207492461189522486647128722876192982042861506425041402568133662542118495905246912648475238634904221470271143039630296867651282745757058251713559170544490607218779577086010135043065610869422040550047509392464795168654384066009595620930997882722459319769229394996930998364268481287931867853420925673336687104994656884878884896087852157535594007280165607874383528260245112409570857655180406167782495361382576504120555754676002979213421536566159450728839956809698841018876614226390813391455085353166676706472255190731154976188094990735494760028546430963183895682645208268273145050091668906019081242181810115055086726509515110440206632455809278545583845147825291260392300209580502767335180133662112100934182970920148147724671310082949497710671699956172791141520338513775651662170298697914085218565432742203930053555517394877794894319512020115599075568998001487922001759345891406985898183635576873837651037182713125068272248017352973123892898168079286795162060661466110248700853113148807921859170702205335782642536092421206090741567950388650614032125738167886540736378452519135633123019975637294630683473273566898661678509504838812694618862370846508394652914607495600572419101646944840668970347069764695020862169103297649095671543930856682556118583072907800289673723058632446862711226804588438904988662042995148224705896753180571223889946792507518086479319697233920692936673772748544876096361368150734259329069488702187751516643225316201743927806165152481449611387693442981151825676914389726562890535914628535047115277579431866098482401592138034043908455871022368976359267391528848084180906924801856049887977831072227286394795333331603789625791443561331601240081876751497341748991927961242126527346433445367154920526957358396767895896074888762032124068078367847954513008047005203521037285418517694026016505843220628400034518785645501667530115037394843856098630092263636419885896431192501989976865742075596247803968258042447983646961451492403801807707946998865777818346515928755444615530019440458729889852270759530885842454467282226520724831027473438035706686468074119894752959121591147821108699239770964397392524410568423840038158303873133149213553229168743105787112726241520888119398810718461055721940691067124176393880411921270543180806264380015610505131447248780787953889670988608095244216725111312335725316822515757901320592958920670665932678126873016228455232156127953848710530870750871062198158802349944622738553483783824144115608071711566369935042126037849814545547644245335999237527894904149336674374815991653974961703401071036950856218392457045089139165877742938654549151358502477613272170355914408744260441294332703136769984875606520094217253799218736751881057158110790345212128342323942304209908984388407231699697404622678197940221018636994494273570692825159051321242955423325139853709358544809061503301833280757235677848636524501848435385677353203244601642594750859353039722091647875662403140472948354955298641811733252664298465083712835737179374729254943152890661371792495616452445050787580395038697227340902214202048051934205069002974547263884807150917759717128122205750184245465763578896904694389148680217904882573135664968704385589062497652020301466496809788229814083360524213303007653463435361280066128396938814027487842627986522116199819323010838627446360014272317349825115275714669546651202749748498996912163051297301418555133909837505100809541822984459088638929735978847875437560541397672241390014185836291354839084621973630417022720527403341411203266039492735960882639382980251448959134161681061140224516019325254944872678878503688130575910569022525195294202373339140119942661969152646446632979052662484408540942707616680649618546470522587933427273300196014633711355388522756221014883375469477398836787254215348861521062514105542066063906132101915377113640617786535463634369828898748088630604769356983779950947691781741754589054830590354440073098626043697301786181155355284160786323077922964143482901302326036171009497936404663427791901276734614728790603362909646750449808626736791263964186939476613129334062316333777364781033909316313573436011791971089786733190182896986625915417622147473770511074348727196247623701738676321947405347087378143694607219891382021165767772751816865604794426036368884825119700994080132068921665311984198313293862094918187717432931908005567881522210769984290516642551835045148747328235802662112756521077612025423800253924151922429878319876039443408393907524800175746368900609067293913670310141392202601607979795378844781380030817786624443612412674456452456767743474875902128557398448458859208816236300293316434453371960047704171744021788550543768736436924725299946446886858792695156560939637692358440194148508043620349666284322945953253311462826869830748774967171003874515163380991881043833223042664907036769036891248660460773259923049714896159570496071356268473065526742495066417935043541440118045212396521470481608230311010161151143269748691336747754327650615329389123091704936750826866990727351963169523038689773264207072603788102011829451439037924614020007165141249761906478065961511876897543446122741942954467836373655214667449799569380294902527477902035287985308492952306076684667340076535260783295265893290318470410779105114710093553802859029419632662328758010443601387571506125933868564641593946529695755737110744233726614058861776486590902167274539566781839238273740532715742057807424835980377307261669466669959877210072703681404569326988101415939192823592125551250392135869544556370371834499421169370011130941329259922796443596009177544500235174866318044758850029877245561835576505784387249415863987084627600715963906477290250625420134073989988094552062196006973147607241190277560094897375889030189549407489771345257355171692653365892901355402911329941716637049371550126065105332831326684477341029208731421532021630654272014665268539090294761561859219569331918664488946121401014966976171461468171159233688637386086004887536239530406489974513495721571715095682881908866306333598288349435877781325229123429176380948149825496315542230108247633731363322373947192431728597200748023964385991711063871765114258634060754311755545894648068072257491844496069000900074875449701144121638072287105546307716103967473269331935614838181977334019046004541830961305871128314356051237284119629566299141838885731484020400259563762181437919294571572341771631368072199711670224759196266330668346678781985218578491547859735464437963379700663112692431710757734943348053433298897644157848093798563831492635253048300102054380842636439090550674846216855555423114900836873148119817434894008314667155166997498829310158165342461186561056527353871680519370816229100667223232257068165260434515696350493638086252478385641414390590350979310355585438736149842753352454683902611706721833989920937715114787310729665342625615644387400890820302082543392161728082920075852254485797460642655356029174843916843058359502285688931983712980646191337176128662411685080563411410970746106272220775382715372167981944710331265871164920065141401380893764986620845953769507069900766446994845797675859934652752318839693514927360418677421416165621130957783949051510592314880938774466224448612185759327052621733288431188464177102174146480905081547466447508906720766799761454199420967205210936719889715645510490740471577977125511365163777909602442163946342185291242767032095858689540161342119562863539668609012291902470503283551405040377267595010808336474644768325215128321973680038673836773256046236315129786923285877169822620473287948518994562930760346138617580089666126564712242514439807779799680382238047447312947432167936468181728071618743335793855250220202461097549218759671373401502367028250943092125508901549677566818281856470517408485844946237519764125985749624627578378592651093732888443280423830047913548518238187325758940437702159716605829576087031676752131167700217051700566197612139375215882071420500701256056625533858776199049367594794445832900343387086333088882841954402646277408657686439610858907531791041700616503991236719840480876024801751571049115122444016981945271111126993625419248299673025936941952339417964727266186261502978984449916548437726154251337581120401399867440120234806454509668039186504085549775186166323075636800927411825516499845604777675552762412654137697458639119951156020780781942483894676724175638732205411095473457419968698988557688939408210521789193626679150310102928708763415773815203861245188841626718321571264675152915714375224629969474533316016150986532962239868753635451351320679405540159087700449865403103847447208369513958611720566545359534136029053494700681832700352148229177967558050690015787153733289512341205784054392712316183826106794863218478781905518805321754174835145696047824005546801312957241914769074873531831541693893054496473184917016456251039198526962184256528813170119180870728924153643403037662478279736719769817625434782720893619058954830755431953412883293368397107793294974885177805531204843475969358905774396631854746998424995324091596862872115478855395759524290299537878252462809230129784151992550119163923043319062602487963814627134771515709445180338079628772129601350760720030478021801503610714567076779216197218310595622850509698992062120564868659959952391905944896139335888435037643650129613942745629552357238167770701260571407167715783778818249138649863739711330237910392659018242306799266880669208211558381362525026830462369771875622221290305162190286971368919879873490816925877735417310311438654115715293415885419281934079248576954729057820476011640716726845478021271749007231189732807244807979979877554859114785281376167559818235407628100481042196691434457655616560968276605405396496610862371441268018434258768089843139283501345359810745649083882276299148324759700509301636698477736034272410018807736104781873553706144075018679472853467320363838618309934735916201208517623584167576871128157507778865413938930596858283633977039795453658901866200374565789868697818865794162301219549392184434950809287442947771235834956611726221505492979956421717158671620239263087514762331701514378021000259191370342289937036693616432096408248204082720271052793478196646005191585504548914864323026260255541097196561943476833095230788055269205136554791776021953356316835463418284229621153595960636453878903179814504625399509033384539898437197990844547619843346145239914734090517808357226738526414298848311493265156934599149780074687418561402746080848359182837465595381077481696976050462987762127349241350796672924981691044262707571358126260482989308454677988420344206443441937566941666115247609113130900990828379357245394510780655899746658707373998344076792708900907965483243958602034730833374825639234373768365828831138916779138652831888274028720561169486950587135605809127466377252043028008031874703531026005625325986399098936912775477788645118484455922434273785152136506126189038436243792992422020194261079211556793761858183322342965758661766999870507195467845803323119092657158102264769715120111774310736551517376955449392729042837502022843591460138030715980916039138840390113245741595403156141369998515715941352465679235088343696332106128468656913649513800606101279626184948939744098636134598043914182098886848965701966549524837320462603200892073659657454036936545549154675208095690232946283146658787695942378298962172615345239327959640363447571438731046347401993038253426543458564162014722380014361518347702663618385684082307340641450434916778453741772900568227674962764874025512544078922549524483606095149600015040440410004991109973600185480286116575224030829038548991978014151517183179794034388377254386882712808091019139210131733402935109445124545666067039743254395930398774922477899380085061209813061988244381313095835693007160662708193414286569751154596052337642063260273938751650354239850320440400324207051676473643395958979386611925583702046981500339842838723240423165562485397241042338756819415644565832326895272392802783408333117275625657282716817606495137293536066262722459235991204648185393530784413013071331810181291327667804883591531124137056513912547436208747766501334075139159541665378263024023731929033660102296024611756959868505908449034867175250327623370686622344116743775229615966757983884797732546780043430833905521422491863490982421569054502830552616039737494606381216643219218622274535304355884191511946629397336730804825429734491431986537695497549827852812881065275826086337436073165755277323443309908893766055048555251002935459353632884519831069629390772998429818810302598840255242060191300938590170682784558606092466169370444188961546854382431171295694844036416617713403206527438623314128405120055012188683495712171444525010484044948180533558343873188102507265379114791380075615639284389534103598940018520778482532278671217168079611962666438822234536615938589995970109101707522987282795432588857960924144598129140796281157704453687089892172376817054884338650044656567220215425397831875701788163453534054870975906210414244236802353352228193007510351153212174660602997369457989696311443524149163659419587313096730430663675204081217299494578882333530224602493412680359547657504249949002313154252954350028084241288045287368769721483153398889171019841314388780443086857806869673295147317583198030140752317601395230014911294484889078031489570912358989428471911521588455391447472016428813613959251805616295193120506126436677701523699025956476848912436987954398410338754934688867322045625911204488031784308596842965494359215027807164282381776591893105070244203282165388326447935937593498449826254850713467186352121137716841232974777451752638300268206042972603837813738045204079983705113858478667075022405938234253861400395307426985369630101806409001860596798294504115093325360215820744433926327029163098374478684850795017373470770311216383850371388034943788591620273759982927127263278190908642346492595260623406670803867651966044699382025990533748709099785027016950195203133574588879005974342319860053963767811088081846762073159312591975161556818478262942317243164706663276430125023884367547656488549687091594127050448284601232492171216586816357082187922593604601983047676358679962789053179816053900474454197997936156423340370410615582134300269612919595084036161815342671079151180949900904831233946494171931275547307804282239365822703383205836886323743593415348195745532646209293398720109141199504110792909147528539722381023551852808972293351844405717369414880294514000419088981453088150805146954795681038766514915813195892793196923333867148753002973488046189860680172659901117811150503569896303853826500662029969344495996078395925177732416306070492297118744776777614960914946735520986159410454288607261507803139161109998346387484619908728885505582454973013622714713215120661327289839437379369976451592840793809807130993462732029007888832035109577198509070498188937202288810605629321032442658894811745444805245310709183495870927948681035954976243901235709257715413192818813715816877199742892311167045547219275774038472378755944951304982268696818980667032461254054880032481148063528536244211900424121021163171870558004297236216299309996264673044346042834500479157779044906611454917317840568085954772333295469239085599506493307194193226717516679851853860102584244334523135876980253362210974234643563066279613855823674278515972241392530768432146896449240540820814584040399650196704438627933447998313991824907540791161524602509599713274245820106339680187101425634636247291531882912024059177873851663985800346018935516153764149801823712986333704201911302388577854991794494139985015719904812654982793538393467458107374247992063086460727947440839187616540041462878127323113704087355344124429613162434335559110552022840235880852668581719968440536246913936389667646207774705638764240980707531926764493626673577367670750504268625220232753803336021214699843449003822787757143927879039631672649415185563945918285865294228356316345381919397019998821834332743244335237017458661515108935938749081064297986789652193223519188550582763890166893611896289327770104274121698744332070318925544623794169472471286736582294589839975014203285205758773753651932364137942964403596857618613418892190831691963933307701701092535724619362457033157528092437532713528944646690102784294101432074555638876971890883939243628635223906313312556496661387987569088624602135393219020330823186195396958964079567387858682374538948355004445695466453194373865652939585202120066515561165915896336677299267374554786138098579833857463351396016884244060177177665812935237676979534689401711383424578437939278741853932584584513883781305798125134326475686316638096466888191152667809477782879101901326163612603150297495927023135012813871542696445498740253699772889386468015682607534435983358865203728480267331228647072907368312436002383847522164895003377658176625117586554342964473765142792234723125351733489779887589675452853191547406175338246403395237079439798786824820470805310672255979976512134968254933070550370503221238889498086395429423820265494156538272725738163978676655370131690423737232513360659077882269687441937197210203651381097065199884637070845970782384903925269747517158922117596246830005786011657155872120091625446010864889786813748552177053565495604711716162954755786520186896167128336114206544947893643375157329688934233109815392266337554413837264332162909729941788061839927817419729353005502207091108170269581410405584777535213306881973092170523040138919733624704596209461081417338009465744926877318487128826494561650848371112397191517934155266591515932082790874227839579167629344497613245568038064680322972006088531060972119542295144001597226218580045738458844005340561915855952722148586315682923368724662073202559555919550922671011164863989244094775281619737065279495333600720638125712375575163338628756420052052345052611891913035615045074843585276257086768530141260912310998731547206159259308652955942128630118947455192183114533188206962245159037810331585492985732236674981765711288918122681673195533409508834590136659133403759772278973588786881484785536740769338241990656742844873936406795831745608949978543414930185499330361748781802048271316894170176823866200808820770017285356334186171565503848881389495650251767392908859162330288255598070856911510938180078803081563671308847808633710319888519202277429217417825222396262842533353879579964340667908817025431946574368885121042446279461190180515613343668181379458648111359204082407790920366480841816870317535910690161349390324965800125286917008753021037474382491042928113419785607633326795698149103525415806734865307084316007486802715606365299723257383605838392202252995483421015521773548990751050589770326187322588020097095804158594196838950210642960054458472537145099772537135263640559850055638146305892292106128312840641405712569338771043519342461529510330662526039120623131932826064328953291920958642732917250793269567730478923428229488079664834185236780384518391910619360121873920112691307000143500977246779248225495731126839796842352585280515936013732658488972149229853931433055805101973718576388172933227514091074670707647857709253212206595863685336610375587372826409587929781957075563621743502357822178265209058316866702461299275299583296029761591300347149520019288758765278519503540451102720823434641292014864155313897199524256884971252448215511766075516081397249358536752053989655593805272744455113364252651544685185217690917292274390303196802215832533864734283685526131089353504076615811948111883555828148640683174411751897508312842482319976078941007606624397657635023725192608156791553581829301129583501617233259983269237635198616708376003507763310953638896192520892686191864636110999102468984766706340788218361725121353547520505992959851662205896394245982415289940792491883972106562508128351682899289341890526404169668150434896944033229908181969757676472123150430305463728136126419574834622297125691589936924406886268153706659705795155206827281299361760185342348577916581433105867703643882032964211283628544143932352750993784585587111841314738791506621170883094678826088219491673544945415800201731844661774936016671762879187239156289936789238690762314266229722258659608394400631993950165012706001978677697364391166955102928344849762040449238940742353664938111963397984169880466772392374906439999046693285187820898908538031804921210238802865179409088549411723257859340862215153669436293111023911002811143007984936958032873636826037621004272415409514505124950234643204265677478659254532589033279587251442170048554560054391968167283556458574786934493147192593650188542473532018882346988142920494459230481892366036012588144211348545343782656592369016802921994933192829453947516030982720437580056054018995650104740103132588239028024062150107640948409998502353460067113828537857544785897822055044865855443456113335070305886046978398740582387720729375300797211096145139253590146106981210850235759265578297288079388111309535718869877450857559554890887772697403770531647348586818751954924142730358212120838270935752872146948984666641533095127046548193454161585833519776568934359820652533692043862235447482918120547501456633056017856466686134046642918738738000387329140296789901958085628571998992042215897672424772478926612062821910250097681883965384078159827094636979319714905561157422321974727135894799176742179492566075230767820236221289572084869093605512935767440801185693914988032918559955809199439450257870852444630485992061209793293091397205369344705294157495424285861040029286775248083015409365384944099966038041001799109303521379066790711175739894869467589562956908273882354259453164741340781025836548353477262075217874016088186914073656025738117076735895889899403370602153971899316714023083894540360632294542947361453384942178351683255906440407733793299617476731627173341901110199870010480883146623544279444746480477615273747336889293568392306756638446800429233385066689698622265277436711406073603220889457994819614886598648113502835674705538754817169573682772970251445085044317077797071803432232740122252272338092429148553631076726890722455719803937645786299822878906398494787062698484622342069040137944827069708517113697674145244258484625727900769679476075135145191494740532521793068698431324996230103525523007786786464500755931654653099859064213810648077234287348680399497990869995165725458641577294862197494628647364884971732269070441143003226392812761059271709442138551685457435639275026662643765047739832364719818921375125749434561477171239976391662531910097435801171708242892345721637775069018207024321741967233410992170265948677906188477606170722930045160420740560324691851034639628385414046193591637020620022523568498680896005463465178234496624453908366133880984516974502436985861065065490108727851579265920739277112226735164746960246801539865599437964957865261610839577037139604227170920257217903058729589827045049973007774394716873178821766073761117772764597621196362277226704553628005075683943201697596535144849665640566798030264071065524926962473226147629869508986480782861992193582712404805779864930454053869090767009544787750511016513224328254083475563628932527169400490142458458302854183242307560761547458761155605816114188158697545805014018424368878175337779033377684857098263168614195412957074628316614977937517745615176994789272342618807554293399980322767816698636608191964655547213583533108753452731666555872718347176738053005101234953737885745535249529318477421226096368618252113943327599763903294012968073365552364692813301793939503199760359913747481589691837123362265479121406059872857169754716266676030319039670516616097842258381014424259241360895548095698903252266557868883614038688655634061712508162935588526634004362790057562601627746058754405472911694365836560781031552152122504797327606467355702136337321240358995702881110489729800948184534557878038489598882586146031049329440349381951103851736992756104762172724081675031974256619588768608440075721610209171940450544342760790962108784087551272192501331629016235888529234070988962275524628598087034887742353771973439191094354859982850365291045242553963824654542833915872010821756994891353014599573994292112621278230498497627685884447910349084476977039367934723861211270935946694731829292512980439707598397320465342620845422192839544216113761005922163700679229907633753120787758345552077179444382743269104034097587507715802451478281721010667544478622095042274006923669377294855375062035421093697552716663030179238678702772345578548194533188768324424557731389961367826228358042720247765229558593963224371025729689577479953019986388375168007359593050164382263134215331679101109773499732693840843665876393153170520093539919466247690890928497626802061695862978718381963794062192290917088508141811229962750152922715913242416198284417638752739853538561520580213411353693192880091299571540760308258370835282830049574202791425527862459530064025776374157525304602686575835302720314988236917552243798193533315843188900196826643568121677029827920678989704433942254022198153609299121292261703063850901239400985676195816870182312993310792133176693906085262240577513453741244559138875564439846958613733817962897598465709633116965724219736370296425457942225993557620994053229223409508193886231448610699193105914196047739531326402239681109701766398825536404426620607149910583733736704455710536254012970108772041525594279236204622906055943246332607402976076986625342860673807919795350631366901332808775710843577857331108126166581045719623273151725789026534071145351792581152719776813332886252815784632836019332124682201232489619018794867583794823139195738768215727319191413311920213186435657400459698308662411470061982198968664698431748859160952221186364196815701960572808388324690091256153240481529897999158247102896565923400282093997848689107321095681583664663801988669073111149407146161106833725489305027119761934300256782077248123707007791627675697062511079737412809084339131544835955351353679223323547426978140446422190044676959917753521075274116234331699602996212042915937358801304352481710349323403414988166630417908838049704163830184126590935641286444143966943011992852655651800530497479164424221021019709031631135579875681690613895438867916005066060350333069151615149610684144839537358291841409475984379518307275135243054146770623196853765920250290104076157554390173705020543668990000069348792943274502235410119881020574084612263419772881177046074813377980036537295999536299913858861297284694540951886486231404755819913007980950014115937069201317235589618315451338524230113210458958802898917213452595720841201341428634564453096332350041973367914265551625278923463652482007633566685182591319356567798896432532652323205619506511283784552391216025361210209805078443370322850622240970135028312229591888120207183413252250848688153790295528993428137076019256654537989077791428343049369477119419696693843360696668318812291097812759355621117037867236187231422976724617462456172263443587773907620882850326284296421879871706833977919901066949717476207908830427071461898070382071163012659908917284508034095528923294913888761682040916030534716786774755868383329766941404917598564107692162641195855129959922879322041045313344183046755703275236483646727452656302963508319257941211575370076153952087215004811445819046873817598790507652818595611563684438786906383407272001620752874660462378104977643359089227635095970253995867285637272380707485682994539578258327846642911679747114335406671021087629903219844203432683126325655610668183055339363092167601011169644192199098299700729115173281591829165464376073695009953989381329261928546601555666755789344830131338175242352030426777547488661515336447040567653282665799942379558337857600883249676050062892860940829875102731026138498332542560961965397852097725432992548075928460600396850076902634570250341220848835013331150069207904374128124681161956857911817403274311680249492451439051189342844921208466797522051943272476219601170804808463882157068619898623967019669156082321818582869680126402122754036306374299548640131981669098921367181235344426939622291991391807385119050361735845307578589140961085797048913693646842821123165422104519008450261222710806437264175723091181174147050493976358058081758750662609769362052976761350238262912030347008376550710562309044071286429992367057193836614465698593328173574610279407011023565120369464516234219582594107674681874094190607464607329383394394455585122651690662503447303133228031802000138854086505592556683170034113275854515911285919842421394866789760247758599441379639824344590943070589102821879393529676351040507266304730764067307800706292222496039839095412748855752614916151000499964401442626305867068535332088669377057870871199229610679347453289003335569890694159915059543896573177246809709928301780784762860365703916724987171393248191243427521238984304332705631347222222568628686248871360676810623388402994532190422318142410147784369541225909979678564698985640510373094259323425574079047735365155480193741190969214840255511239137089684447620004519204867831540732420584583228114277855699351911746616622083985977876208377993306890091423151884456983266314818268498432177125004970073737950462719715652917720013785092821381993078961759453730003449140887638824153729807941549302822856451811571157578748053382525674438043990277208843700012368141274486855044833886307237339752866815667517834534526905087151170879260308472442983237620232470558879161579689937401963134562699153959298109683445347376485861710569090196503837521160014773022284569383591547432904726985877619117708290440831111516385430796955959153979074003058997866422322219837794385147939111251014396883305472565794037211379757233616265157526107845521542936692870393275982189047941292159138322535742674884170969337635031572700520622236018360613780797624570352843979892221492636936365251877238290272939113812063584166680240460716888398888622976899579302617442656626349557771578167988759588484235019432685026012411015988078785777115012297396854578032105070837805879887920445473523900669624497538801210522791263695895840038013135687109256025979911875731933020785503343009113434028689218979984297521610265863765901810883813932942719105018793217582142815860185867643757732863937399335538172820562824711613925640131367717842121645187546710973044577587266822901668487456842076394813946077375762767723925415334545264063561025801882258753058543960585533047677754737531336663649008548825704367139298016544509454605428824724907657902546545454617231527381050967837115146669500951276158184646582285650292899681197606283319808004539419831849960492775797379863463366039291171673203530419905300697547541282411986817225846516288708082977975240793626822652515738637566822205256282829043658079640618248312191352148913441616109372188643573872380749617613159045170585918063665275637292946339678819837812310186367544750093200261568563638759492437537566634817525273641015439089036708215250898830854254954350319955911780615479215681856225772851405581680903068820330137111563774755083317338198331549259446843028740855631443213438110401622607423327989668027342035023682338568993161387028119708835835980017939235551579544731975784374705433095945626142659575208022909609277330379141799663292915701893407584976779756189511564645778758984130979125223535819719802772284470741242263653733404505751169712695932068033032029806896315504155193517585812582491603149189421810889611023797102991029245429119818908358922542955864937258292136790604346844344591684100975140880135129798869606666127051610060173974271104493562512749407413108977942692767297857522449539085848394370664655951171558828700864157339187454219313194615522809819495243415612198864783917388534572575523129273694530530323751555222034688664597551131143167673279603986689270022441080640381394458363065620585370479385632444269060851199909334447629522857955047787264980738260598368447974254173180470914990790191597757479981972964610813463282026061974966212208676287064012849171104868764608179473378961428799622783991341437328277121367473443853399776064899647583115512720460231855668596405038451919730430563067214504870651333206941947169997603480433758859432954720984622373413146449393662196430537354659089262819702335678182313818714782432387142963234340139838181202996053958618946138375905128765064095541671962843879360061726791307995291987197995834616621000131848725063748988712012397352675961931752905492868977823436132540700850255676813929526929616239770582650997395524328011581368349882087499639533044772300614247728821998575035735411402205050490780532817411635606459413430943689577319105997904845789414931837586751750113904821774121165984137269360221083184150745899744222811195446415502529647418764646590402504771593654364997443498950582548012906806604600693222854636730189677965812548498132587508818449558257455587888933446677247620143403212576584042773866448651677250714091263659121534866129054988173673163027660575778976522097249020721545294691300283591631586343575648487567838288550051263138396723470209560252384236984151940865728121397108514905198475022357789733728546671221993298975420769012534492133090874928295144356819613382978385835971834431002372112948066850348477863181406303551822029771974563232209671587975470119479842498454936880805832765892252110018137888656034766167460378836138341830601185615302416025043447947055428445470462800339406484799716005026779238264985953506713091529636450056967692767589133999658785881301515203357116279824767810260487875236882766426004707274970676108495402009798832375707493480538131162283822574142798876954088438517043869835696542590136121515323488346249170029792988269167327053822684111819209473593069179197430637877272703562818412987903344133508690906720928516787602325782625325584847426178287969224168095301921381794855294343059964182905283030135198868391852797226308494534583182897899879002343836233591765757362135673444406213600503992740154855070750207970436185464372440832274574773402008018522279045885045507722296910770986542282595701083944978528808275468390874038051127991018156511297736885201977656854293773314016861293190125970256705061141383634577322720727551558399846948457035569785236021300112654381468502700815919360387088119078940462194651972727328907287862404965988033173132338655554422219670967543216370476566347147177359925317619691467180001350134978299483571304697858793646333365813340672088428270399262297668100035246953985415634578307252396071853640596223956469630748240315554307595224585221641091154716545756288329077947529323067111582467011700099448730759099806947265096919738449217242614971601518219869588754019596960527060385030188329524238271518312993716340986231282856444644769232052195827387182469819661693159891908888920663540922384153025737873143134089548016237158461683389976972923557454001754202549499076837876532560979755382728099828712924510609742648649008724472567907293632693024525277953374945847304403102836155742790640375924851854700794134462959405180847585941530792677869316695665814990902045557943644486310877509839352267903143319840930786010441767125159564291955458715309399474039609502843023724973004454971265362032407234356525299371708125533892328224577349196406930747646147572168550489631205114233698398119573969541978020158391122053512071989612213374670345080286478808056539361115683673000965434881726581221014230767834693246362194584470961223480379130462940936848317246345012193611886610514088247152322512888052390301944594718173181739687796688259978980644352817629385070786408458897290611387170361285719599164597444614537085486234040710352928514498550905562430328463156025679319060402722912324361888457323304593052329802975003144621026846727486875934283567534803677951417812193965271901071693475658904112505684004078275679192025167905908029365971100701893281909532081033987997864627263649758899082902799865841002372462008943778850920989603152799980281788975225695230876046764553634177363158747058962421734821145107103372944070428673608784262861883579705187724663760778589802287256188075622585102213439814108418495265338319595674790025644853814587075902509109975385179162360125901405458176508618541274336569486219601526912360652421140983170419482891251041462196036168712916878494332172237539695893756997295284231186719789533671294433387119030685472853381103015795662399798216072219744108913081022910747767303856231824924578104127246226247690995452417076253514753839235544373178344887590709902209637922121087262102976519379365015322384305297051873685056189500113986588282833687796375856831329686383645682668955257594053022654788240537655650702277268344022747381934308979931150221779254101158595795427107861645827139901369230284229033013127281319945481889384054352463767468165230088845406244297024441634723097916668935969407915697372852871504000149137063398722653604323474474009181147091164996095982094283396322197552849223307570142238639150047550932343124393976454259541702360977382868442492662096916959336425251755928306767897110234470487382014659491825988951729746979220329641369172121172322755548633566415136898207674044483262350989342958519567905493105198330422774707467455952014453087275581685413255309013146117099366704537344460217381519590309272405037004358611382156844255693465025369060629010125698621488795518699250169986073755296395931156941712912607504872198108160545112560903096412999926853849336429484238592115470264149456010220636686853659602197376760758820138071107018788274972492827626625582842803792952446956333807018300132813335033339268100533989578540331441092545416929374629822903634857388373485548073426057673638631516482989480302034545990241807364198894133009506888648297714149731868706083760997562940825165011379690178040202983347580113075509728957654458849735436631866119022829871135456015724117725196650884975672936341832726620683267184628942555770939822565802308324165231232570438384233600808384989124010937749321544756380026943015302074997032982439069837958273922080245449885682160973699729444991584897652411963566795693416512957882479735824965790329737803810019116868216493604656029894069166842857183749559450887046222979090745192564199076911606018695974099008854445325667608973988915087476040292846791299151452381294713206127333804647370319713233423303644920443629552270587818933531054066554816871047541271206514876776478144057917603108237481681416226811124236628745041561681084597078939512123676045199780990341173038888476091305641154944303753341777337230689607602163445025752507874549941096234687453511276834701850695933143106713865833340672045047513079152599669097595715719817735779882729710993782087567422272004472852512999204816722150396157198352400086905112575944474724593086242852149256071785043760180373509000396662083314629023014453099853066997091895139049574753105681813223651674342169124150451663508205171971044533945653780285239625231983811723562562734960145075235869903913626531637580591153903079939571787533450963503909990286425525637676708967756489715581377598736189761791203436393472068740008275871981237284105070398447164540994322156321882475608405823676258097370964247532450073899570811205597960255801414229034654438661981677571813241240812275611032372184938784181481052246030709319123916562968613394782095461786068611941324751484919546200962422766653440854651236212223232052809928628415502204527037724398159136223010526033738569689341792897287923980378033189232137034022263891498897679372269170306716459846066428410426845151183016436303361652782071371655640198865562444438539183567807309042889668281723071455611985007474719649959815857290281270053930429650667552101348632838537224052269915246527586600502412722227476392650250386874815878579664517703243882659126247356229676824087928282924721810017090845760804266578606299857150110463999594295984571915873670506073077891757939290105586766541854141390185720745367507278248964112364354581001364826254342973793417634454885467895382310270904496668493973380617368727884638771017669968734206534103129826555134244917449643987623355510395384541648231793721197734210455080794861284511067352755111944030495032299507097773641026059766324302604765202801530190235281832031439219278967657748185210115630840718181774100545193638013919435002831323389652370096193096991069746115722588069446188792032059591704666329282136333308431625329598977397266703339511749845474999649153412611359276170529363726950480938428437068384798086773775392623979609091901275151076579269503365699462888066583978733544951402947626974686301248123414391132690451921400678748445846587475806824531652811252960096055114573308978013964516069879643788594315174922560699424408003845207998272185237311489229735252215972961526523419452262994104842667944375876400802446224433904206614334842418498288019200765214971039294869785631616656850122791094052836899776063406334912060324390142175098136653139793694747799488596722635386879120060399456493363034942757982914932952842542869272224272566368472804789892025686828636558596731662602706229503193112237986135362219088580047138397868232265550009525036552610307616062222399477279395196248343484746664117675215091609993642235475737562024243437571376046174747882445329445174880280234440068449187742547233798580456103762026344336191307153068621896442415856170570335854952760957954179670612427202131600465992641910571227664607766980891888622669478563048315633830181507903083154584362002155416338160918260748864547484302527001234639105617860958026693605772419733503487131198292486356193225779361341627339968922526888857778160125697323972979245033393381598765076954173688967351749592391471079264884088914339256213817465986846076874262223901644024772177529599429188950112856405000876925278253767781254244366150870654590455271125076663185774855609682525177126651574260626754830181433717107677889969985642368192281270391304297328218613241874426114739657415740013589185179359136412310155851740036039514770670569744219241868162548621902715792372155753917994731595915759019154469508520263422747427170573176368889046793362902157281584645273947164291516866777102466859023683913188961385808681429575474382795351144635157663454109594304084938277330923464665692760844122394802889774050231022204337222458168219162804669195881517769417706022121909939322076408507245285001618066570508327248572071103480674313040284353301600303124801590818720158624972918042209241917957377708712701883734084618245034045246119219313214414483917494499045103863390347046590750840686103188383673666855633010900829798077365982531117812444512426833771741114684846937297950117728236742487915494866384582967998756548898873274478214577345614118679833187234441654750953621485494707558648114165848011819046771764615394624579491532574444101416895064934767564019289356766781737234842694941751003106792230779495334794325160567863077824057399702785506284298561036112374716985725966547901150748627914649164351474527817482425393928809522354588300903768445473050231760517663141840396025853363471683172813842654448252392038934654668908581534249657579770793858408690753778008620166399558749046494584572023330187329989933334965648384547834719714536130250643649175431268883185268931272072415994851214839184995239740320698666816623031854175269248442026598873294420377867725112461276439162690070842313639440090474929251371710944765708173744528011294817230472483299506753429739721557415674960152507132827054609900596224672582573725893688275376180768496030096298012101802693551547200883753580741150156427574936215819688097954384548194870810703316935305236514413999747176949133298581155391989145826477652316750856336375221195559925440040261832270617720610993731166670670925059746290721006913173572845676457925857553644027309177115365516705996414171973563052608324190531818427878098480145283562126177949748191978340223522268365739699988554354855788400377591632457127896677946551220752704892831288337020150311437030239087084473739070787815320957306853221173287608937592472746348372851214203837839343257491089662980024685451466802409415734419598591094174781482061927866094389798555530833633893522576083080656350070914194467890324587928437094743786877913261409135718791375848430258170896788400560273166677772754483393642118993934052409321976523787741579766862678640677217796255886334502341138514665356456249974129469307055145132034413195740618167466024521610501406260335288058869314311974692884899157751537783427487198820326056230215404852331240138760694534603728064338162953238650602649321293857338587832514612848299379505843812775169534343150834799557363877121445465104187056960379016474558239828997993296121051247055858603960970935565801474862938775479857156148354993172493702203842080643579334275803541365485504213477635996828884895440524289728030596975753544425398766067584622419989881050223920256918387938726534264107403543230228508635137121100309184290861930458427502574459332906444241698522759323461983610924290309789398298454197145428475570276291635113682973336028110434377079614053022222620560138414788107146993217314577499285982292416115350203542374585859351233518338666229408146857761185832176375366525643660753229044537152493566124083092139536708468096700819234471528832577508361662388109151897667420771402174555832326900356542821828700187920703900848753207313278123043933339635395684931656711782541183620447545517984162374510533661743388147698843297551521550357066190770588173937547356874319567065936643203426837330157484748045457441736123476995401030565269460657716236149342185414585444695412618364011200768808835720178212625803147495918709151845116900908369563873936196472651449106710929807768840919866232255210068394665146144782228670572583038192949629710380836728985856127474752908724554530802923430462711132862827761854840149546141254464650722672792760733972009758131366006124090777841602612026948946471506769062011170740978866832632396212492378405728537087502882653200121704857218534305336816729779404054826226540566007219157420988338834255488337218240724706035483074237529008134672741514570943608995846230099478774605222520223327241141974717852149500177130398710860084101089024090106197099068434888310500865798870214887499987190696118747541611723248739898482484724473417435886645190532845104370699799723407511199614206288740522451941664213967845930937859145110201371730354014909027685996229853679627129388963073328572097683764244264342776656864816818829401485253911353733285945235080936206510264826821081402928421285483600151673012487803625523099903058645394460021780729619871650773406428444236976192491551866940664740471271988331233760405667582305483708682244901742492599197922121733978289069372075502943637498364238970017741583539286526445710005358537262568939564356915244594109555825370210829171247743235438513544635823956706358399183270347967647575107386817552349583044943667610271897713804174074765099855786629033815978373158528981394105355539238678678076490304305567130107032557846081228429965679546024923494184790417116656506716163965162028058712908665851885846074974020744741636566473382201552076131691306915275393511021577237730022394070070397630500741982908899835172471571398500741719988479801954758166321346767380517840552611065545917843410904773463848553653082204134061786045825201705279613085169568349070241694918609918779467770193445749818562069921923910605246805562449900863038420786755669921448549637938744862303182862704678045329419206502917355331465592159401839789314310828655329314986699330950801140221531695998243072553989931046889337023968214465922719643779417530287447005809051034564402465577466573962306101319112878251924667692313777188379967213334716224766510627054338846753191938735717125901437447918907971410409450755003367712182305277437183015053002319840156428350765582925570597650053206667771969729217730028950795914832879760606325261244941181175061600220121110047787536259350840634067321901326088656073581446152972426619980657441289576243593381166488555584104235170741840961215750517429568521263420265944516390012680835617192231187919404670293129925227285165614454573051617484590910465248239616448160178413451878992606648477802165174462446173823535453488403840334914742689713751098372755935662922090745201915661304543401937571433349650337189954178398134783623600539005456575038891518198834026903418238751432168432610351685752819150347531207926914482440256897444708809360001568311304121340649648583185611276073011347545675025703708582609576580834677621404379218576888423672371732937121827690857717053707853472739129311927999389452145045977633957973712109221936141242403022148486018660582437122409550887328797754333798756866050581512844570385481426406024298034562404694817033153584015048497408431322469207859839416891547305817791702464396040512450789488438791609207489765987430536245765704500956161648410789688621164048431555119475486566759954399528479120077654582439718780534659967496883957483598095635535368138251577821503351738930488346886829152298534219306759080868914477570870003686480640068842622169234868090944338717347213321785542208258676421699456907944022896122781608911286161602131799798454769309758745622798659218293169554116454778327543651191036451195844345185529996467851766510206068954745497330522062060135030911843919709074581194123731320591292250017485057411911742950843634601867770901162614525644926572379446275534713231286676013117363677649114131506252306738659760809515139422970856095196939231809724595909041850706631391294635654863510170977072834038828435022598444169278678826038402180928918987968704296158417198983695153033447945883480568412364587032259951537511707236977148925393393036040251429602445043797859263119147288067867752948482514253095348000173740580941331824304013915632272020743127876497225473035452078042766870336639305466176731253968040902092702550626302703614263295663326084649889809792104724689446126926529851204517718933739749691055755876404715949714139272915901398024009570855584106359386184489912847642103956787803384084830678271745620046522954996313820909323737409514639796429469751453590645785119870182779202163712445393448952626527702564193541889383380789094916240980171023364296791108990173021423155876875371831095893347993920054329152527650489742720191880238615884857290795921467942318001790077630481235981775270930376728005664891251879222787314517179407921766216765564238775320784111267641721841335993893722238467481527757754581208643767849781172343639314643513121668468662252501141875931116977777810934270052069336758989933954742750699081932335251135100136655012762120173572332599200017962398752265560282649125679670723492731697337686524284487267225814761030240348994218095242986299232370704022900367698993772791792988339992202298382156131004470814889095821027090037374084607572455741565790937397437839356177880901032959050864911003363138743114575257636658923528074351326280936993291921953051289698794356528444895040531650885548516452328994712676935688310583827968544311112393319140728753764322985541903919846398032471046179161290952331226028906055777144938596303041418964592417677194015510558644002913049435823673816732098157201034945640702522693981508234604230894356344102617622140207575911384787321736283911583503598983046207462206717292224016814048491766898468133914710138740022849325634501179829044940151474039844605431643881290587929091755559928978006427049212929132536281939569687166824681729287133850039274849076100712899833294544881583800339161398509311541783695292534795975309730618953785805007739324066883190728052172389647281772314580185138338450698699017988033462411346918094402745576528617406095321492859642603219972535620979742825873657396005425052271234811510726030300834356454579426669836522011322029534107097398074222655817658602392634977577831471144166150271689881351648315512995868450574843009258839777790904064012598484121769039418468117592226442630275985667330578075029208955795861687933315348706346923685277581406836877736491039624415114759890994061720400811242537100966921050574379840306612918521320363018443445706048172293862707683710228001451692288812002219521817312208615770918958658605256013367013004782545472696961394787831052867416707403258395879062846951798025896337331889755115873468462709970387159883875406145145240229656407566490971720336658956961478542449097392069191355947020085479101496427990041467466350606699212578278803945784157296413532408293143030546286905462912664648425908993808900392514173629991656577734263409570710949754875884662299459149774519268563314428674100400998537443661552629196624729768076811006855601601777813395449514982271106643214296731751000086561814331488561966308061191839189119004014324009693591759396249013644852947063101725336492003209616653068235043216731996088423023272693945368906075077522960143006313843080793986932884596503894673119010456912436591393511013258877251910508940677338008797949913622406535558173284394638245793284421030510663548578637252884091942033927136117725287319943161729426828344225011865152434540966544215159375488072934641913154634787469070988621096874579134664861660105752250433532028062040241142092445891710853888750728262491487360249194696089564455601345696330636186703305660072270442177001608872588973207901154244901288319541281930361633265666544698049621346267348363360395010964749702853099909990722881037100273646259876880271899309243747879752712046163843956522314567923040466356221432146736174876909738744662798216502470691118904232634857683071937502286859902358152498964359090676371162680457451852978930945221289898656988906281988800575934545538748987487512213168503475203514854098061691866790088186433710571545273923278897129787377803849281048664200908948792431013792923089493868589448661582380913473776865689634968959237511154471626580796132003700046712943825812884270655298462946060803860732029409564567859455659233199420441461687255349025141323594771430717224695809640122062088999562148425536320316667619095471796829435421772088102256999392864556847622987522352146585424984194974760614454130669778669264844952366849385875805913853999510574001790177326938620089823316816535595662009555946673735240385153675729236655176962309896383420739238730448481984199474108726390839823378246583589199665248568002179880373185109863851923033883666899766303325656599614069082585085883663232767891741695660446455602485616656937370434798160780878191317168930806318691375216467187161515177923575381219070632732955354851178572243819065831243201396391148691706748770045224759342139644190245628046616493137771058551877662028525246797634959572585810840569324571457942997236160151168942928727435020551268927406773236260298550967456879430887940334949068956757728774248108923371997097353790524969979804340421977411606471268157706214660113728440205584150174562392763888741671164317359858149518000999007029523065764067548959851254088946242546144432207367816325554379867662407766979137997502927606494848641310465311200057735887295850743748339413366110506637510529892568042942771051308588188385770096602356937810129359495802898041662448763709985339169228531840729069888127432651291067513474243222510809700987468869724752460014159740503727336788840511122172925988624912773920345500450670298289087720317521814732440546300985383246319340079758896237351560633311914365268271584679319920414257046984284930673073972404198162943900539326927869232833717639802565203325358155281525739032195712933118584705652186282781114284746998862344422821097662231330038541199971131093280601337589632077132151074006692854044747185771734033149290558932338832063582257860580697790856731107977780547120508624479045312818986890246766344245870851306449850477235335717560975378269000828669347770172913344290407947383149608511306909585930866106592173421702832508009253927688770699523435901698592516531312266957092517519669906642367451861396292502113418616611871060891214292278321975202274104538869542839285721922514916540349884058790820188935876794203451959313179770217854137976235048519627283248016882498259396518694780923476289126629311447891639301146238499885986693601169502577397181339150297581212515199077641199601211874045333351638309893098681877566145139093179962498189492279086451060072379669829004527366279142796061102132003772966803082695677286913475628473338782513696263463134811771005589415308486331548293423995738644609674507606427303454591974430789016561048862597463462216933893066679064308750359680736137098503572021496227257492743215594652192472008750031545876620133316589904401963316875430061695095206985294408888308919411712299667433983158762350112535506971437603521247625768405953374104876384412887951179587318472915049587003215246722369558054109134107384676597395843925012298816933685098546373945684199030700609831354765718229351053991590493713522661244096846270800285859922429625485831722107703251815645085734479045891540833437189994522175503595813307293330367557959954134005019775521915336691060001486899484912136685899513304855585962101067826399651433905060581609758399760009610045507432775528142887969883380533915328144594778830938807503270428208594017542909398361981659161501187866184689654886963299787216333051390194081101025988743428263568963804968720269035668717233458308117225880238301680054828200656209001355375301457784174470009716565073551269380403500130922301459316916276944227933845293239945241054322864491008648739731975837295542827265420817715633086598577121165204961337934762423067657638066709856697112359855223144658079045292943507278086440360508413307501430453429362353282893205147968157960716655190964924424521138984714256684553864625584284191391494680896834506807519637140158142294980413315255568309227818392386654357924213488502425497791556701868758546136170712926353730967323854863545347938897043176034008110696264863207175217922481325828631758618426473631559404533534350982464525962689670405098826029768282870343232186294485042298245029670226761337357432277651840165787181603461441943263653036022164914044959589365793722667179837246518436119042014458262410896850448418923432992748082753149773068046674206633874499510698690748540365850563631438331942424205985045281296410837954155279668678936905719224747583556726953226000893005172562432195398188581855819583956473074231909056352330596531723983322359852621873721948004298362355065703323736550833505527164510228944960986779314765444510883086617224666106579867620738295960633955157130091229362695188951666749338209135818277385260111669597099994631132584427306662494105435201034018885976162761456247753780088354248809198696491630448930308938786463600935900349526748623682859857048728157140242070459693459793338095113372716279684676380518395326749228356372643392693206935768570057705686581154741124397658337352045651803350225890239359399377412374617069238100099339320706778687722734703375368420838537575401614780978374501378934386553242088831732478685111748428489903469393047425428238814055312650785805821618234294007200024152390036874389638583853411770022906989867862703043430642278743244086266297910975011849502515106128384329478470273462900223920501396088787614841237986991484149947213525949632401679770307895274759913724010613982614287825479368100172576464775985994129012191890522016323145451293711291030454631563930781014271498563419520073825838053844135267404148217126976887830752706156108936250552227886619385960583403070701396953580821045542569664617210325811995761764185408475323541110669568904448896659265314201878283992899836238664212199827773437918471747586733405700354711654947682480649250441279924159709276720694583621934041949455903946586531544586837374652723864547842365257166784474884308636410226241729304179404651970440581632232845479575242046093309041817625854176090415130211042139462108731746211165540072483514880799813217595225731515030415741217439391044185089502372297322966290145305655669723375290347411283771310515160085358482620367084250247877086627106231029499039487844672866185510861065663174394876219582551950133466382593245337948734194267162006365531635712988716379190887022277457748871563210473136704185334705713507927104245350149966552255934700972266915993627034956444269080749921786010694284881072572898278869949813874446892322128992487923626205671601512356568633471921745074988332899128261255382883316604216959376270812568371024733189982200751018852714024819477453304456905938805650551922105799732511716124163139500320437014869647985653842994011811653878941335148305874276754353668318362256132667066171719198776076141951487350633901170855977872237725992610847057039450884086522772979104093082377281211815078260391494928044074317319288141044790961332521881832431050241593106198237926362044761470065131819138770491528554526573717780527334387440298989273413657306750407786346682900147817327210699890128564778409904873299522207556044300876950347323345079631738143504295485602285967253167914725550315172074217943573781734075268920909013005532719481929068391737309757356544236767181668118696619158182240734840358452595216688066663351073676791886130577150095326559082600170955364845515814466197754017723436249835619662484097558016991658201686307793207388191008969837959355749945699162578008529195885364893213699324401431095731276940520482649863330057413360844503651198639445851569475753002629851165768525780564101143362118557458091216380482658643499229905760435207700767477465223797655866441077373639640509226900691437529858360222367496373730437289066931495497777645030323729562900738462267583184300399643061357475546088073464694291847612717496322784529373905515809245303938318477301519780430884629603776785864286524607527606836790087661633871679823207358050624573439999089926937822744738002636440741314824262378238348481409781884021040364058724328920258759114744447170208518579729401496270480262586335600493454862856145687880879476796884857321874396296462201039916366013672077505737852102692779832821793031801944773888054090099878324738490154555955602890896063175520117814942306819881780292609273882816262364660256482990940065839569643867881458902661630193879750039864576840176591059601935119642221409108412744025630274785416126201648628945113951938360070745151114553221982704433574315251149702270129991789521135917119399505176717211069086421881436636774217437066179031705933970492168559357163020568010436261534468927680689411548833802438590651587786371294370987858589279969142291662715104350185208742152944651410749089516774304231169711778007794194052138206001987259993932044192077736146771477798757986468714453409931192440898699770928365601896156565762778900686421468141052090792069864719651909949018866169984997747323581279184881389713112950961707111071982730657601758922955366627623693153439408840892099218424652915156993648834378864151717606136666808190511890367550406178860335928042597133011678360815177416876459801922022499849793398094689834254788331055974237783469826965573865686892923990626838666310429848783603144768368324626268284289544658485926225550182245733252930234488179332500511146799025075904847973989478385952661726827934391411732231475063612681230287623743648860732385439957763041540703294297421706981950908727323170637646122739953419472844471556142920256178333349655367836575985834073396686038705087266073791347784811142982810210132732699793919785212947723776179729197355927885843210969069322104038418764692585587381012390088472069477405989187221650581689076730682249054514626244704165986066426120118094758509694924092609112884889728231762598854709599627562459365042082188544280250730083377082881762779669581538241674507989485220954816988543947213595916919869154775174524687643241607004211872348813247194891476914056834081424341186823812537422492557584550505736685052745897860957820542626746960473196635737961288552671379701179004617002696021305457137983678901810482887927752443885166008024414228065739255926774881661419142042000733108329611994302878319830548263194009520554590280070624871790510283606939976206019311799983685253095941278643352775602375136753820776725008240771155097012385120906534054033236891602793764449264999631781041881168350913121493564233936906907754387868023443428205307918116556451341628713953121707857836893077492815567888560335643654875189383766245173509696072191245988673717486339925187397378647048136838049723098533172065154466389916592862856244970856170621986732962100468692462074618274684928730157204070427951523599622679258438798153969463321019637745045948522699339767063531009782629738828941980199095669621594053955983186217890585061400214879427833501974824648368321442721139164224461323869226807622667286103708359482869062943860208777679395409954269943097347042871370415641921884894737103499984057062707894944759766059739899403234218985135029442474676170829630310958308110396003855154016865367708288126556735689691142982145695359199289762829104628867795850250459707629294586173305823479294327183510698062788446570830101417393127147531997986517714046714765410797094375783121561508422931038456798947943461106272303544391772289932859297956835750317139165627426413277545010474396096375633055130502781061976052494855186085559186864681879556878095537215866564715422501455452794207788849763978504766232103341064427397094393102251927013252196573154646645188753202020875984659207548171500150206768973044188742574771538482446379046040285250958872393492878884845755551842069938112325079833496177608030122540006391051286654932672056573796639539355096313664813286740460493774304023274763546832498946017536805478776008949701246703118493913751993981749731793579935523194223175279265342321037451716692530762165030716917093972452904501242294759518653222499901457776825927173922420567715290106665763318080021372991672614172398807327022677707546885620587447624712795552559456377341884901280332553863155465724999799954468237084452032648325860867303597427069233976394521986381234844853391759235484389139497262414715898023767335927956323441490657160168126815289080237576819111919604917791023810935897577458824537942737136527716557828275904780381798570256682100397171919317102302286275965670487024021402409134330672331825089095874800388548779322011926426212009367763486856305687630323636936291241144356739213863410227858686402684761723160651542048423098476815236234330300070617236843525242763726947661535718483865209317754631151769159311568910481841782787245681324076498585357761858162229195391911580462761042211621454185875900262123718269551160097068309629206314806215684094141794400778432754926614127802368519200120618529747088055061660730340275223736109891723158664152779086367372884179570813905883306742862807126378093467104810069057202894706546642245855999926987533875535270838994662456563247166086005835077219311517559302828636256857560154672493963053179379502040235721553992716943140419082608024525677191782968244946035336671655133794507898762590692099386697192076088874579471641032881351125812438462745552720561125959925243957362826533628784226162121535983015334951794740600842016076195037920480011605114755107093824064872653238160766071348435198906020224208889133606821585583630585135782380102931672913458660393008976553091487333892743978114098100148206783392303086818144586361873709886860313281835644993557713741454801888466965765752363271707971181412945193173222253908311495027828162324493185101716441642494731953404996501159082792587198012593262304539822371412238253975887498505417540299711733009090770151150945447205692963827879467983400847275372889209201248362690890105673169634436215443919288068827798053994864817066065564281540038805685798323956207581073395955361933629391863079320609491826262043841066087461695600627746369895947022636637768894626342549482229209075432196825867455952941604955429171981333755099063304159115901840601065076207231029804587862376143024503849058087049651515647227057989288902811104208193459036489147448111144641957608879679171802155857458782877258921142600036232513531715927048376511620943316823145098774422233227494714105008850905102604401291259662637254256614877610736721976332496391418178336770060082475960786321168652964963602823597170126794086185426864086548889886880733187307998079349827381297195999721860452468508976499550909633621213682589346167104757996112346054058792239770352283885672184665826199420238232656336687218180357839925781757871083548631892734673927310094946360807063473410963385371906964716584077600866345454656235175493772089437708907425322649057983834301254260658386091725079480564613673195364601173882870233031721683030360034345980628869702646122625893874694950308980644722850595967127155877752662298954026414357831849574389021618235683438365589268637595273598927333442268959794476337579353952200376126232689337886154381998965739146745847553787765627941749318685036389068289162732032490483006890601099989267025274920716173267899836479239283009514645123990139444014513914143606502817196498622390828753486048872521408358497484674164540800045141107191115473755893516566775996590219931986004845516349727192725005398242450438807655524031249209584722578595251783176479978289681454785189064245182513346259681214279357363358292112401077086084252127129302467843427032476967068818982753484560557757584665600945896310856394329343567479221584066326992361494984594129619018697509471361890114435798832532325280311283890847372414088397063511220713004207819897315387572717103768745060808981081140495490790123315575930298836113324668897424366330945913986291396481026426112037048156013904550919169545543901514295233007688772727801338420125225948440806483985983194033559319718410488118848113986101055932723164552309331967779317683627086185608958311358126708043895693527645536031598888794709433705615766868066256271162473245902793594621189777611463569746585267479948245171794763765221600903706413619892350666935966240842862885454126467251088491526400739378496683438042192983092833110899582471432934247681233273104971368875859740259051893655395716100529668970496568625384387544948412624618178243866773894561808031064144652060164686024254067276510858295068996181871313924041207198169275967576121242010212914438352611132334831400585173468159884506791852787318584498755461081243902140841967938969203476137117606589415920489348147101081911638200466177991830002209340623982333419934675510118270506512207268300622932204501861891064636380217711522473539226637639969002084178182522145184752702079296216588283719688892308412047133176593052408605900185617615812504996177399223037133542502610530126518370428124102022404788971147537438598369203773415966027714531295393998511477791223463209138921337053739821827675729615702633137739034143760926349277438396282232790957808971809224671863317886338250418143440104651532061136295178294822098039244093298009219661200513428361199941681682698584017310036807051835515827209355560939333140102717601560326276000675661479560543887987245510556177875081250873304600082226639315879379286994749446094559752904589223888928889382944800886823245208977835551436021523066314216082354299651241582577665222425935143526556080191209346100330287532652918255148758619549561094080654921192496651826324422906227120789809311211942086769816644139185326192278419989904995530333839008906011961384501613024616468464342080554203189955564750568133328811866460777582016906558605895767812448232922639381417281483068342132630768571843318821906828428468751138097949601395809113371684649480487024322187102892499455505454052903977978898042547927325453621679908245452528011520380810906955232852887258286869348826146133308237994179903824690974367100302659907441674377502612278969241033941296235237992247277097853800621356015762907071084606111428292717633880668129682482566038531535652676906133385135259001048469014170499685508280517465165485023131079349120807415310676929477308192948585452037312647170538687361138399746470141304671436439328080164210916248788406469246449851731527492214479658286267766648113873854645365669165553131960858898148626522071437222561578253265574476238300104622192291876399369246750384057698307234948937375057689502283139604961092857103414146558220111756048321232993598369458874225647056937065461128577350023345966940510461169304221660537717745109535163177548689342925211096567714387241250018881794516087839804636349325710079593992507822393501223760148495655066562452789448750493866966402598939086203759980242375623382801031146675002488818544318361589128890163614139893177579882217054842208348135356000998773573575036767542511401126691786159538268787122856476247744903459688781683743039040332227171015882066089873021177285666946553164392408934300595407575381510992944942705116198263694838004168260937046393917471980512128578531841258344768451454182464223297235527487149874321277992838925672278151541055039659385424508159900826874253528716055102989127649009490691688260611112097001026533471959457713329703784352144094249289292894528798160927375122699667838361043451029007854480178565403796670934279410554541902937696895601591871200097763383259404499321955127924229133603167830634532634873206934793429734551231769948372633696742248933924802495114170360192737413811407148248514243917274628853518477283251019558148646979900507925959598090695658294415824471048594353835774370324785361945350951861580599450497571602284097155844785342682115769614463123456456145814037865999893672416413474982950457493603466357969961388950884613300584611993410292283108324247222453067661101301795226406741202763017216260661192451133941718089518937803095028032025059338435276571977532793456159579153460694759661054225417153791058660460632331524731304691767256929034450895208987728036180916571056205726703151968416407953757392484301125461818468800368256107635396207922734448725076979995645718587487423936800548830763203338178305168026309957522544597588193962905430857064352387893609255540880752986188031909267170871262677813176036076937362845414659915010033146663047148203193383635003655088587210045812509349503212636964085990649659296135202435409805509509086547651516307800178735607853174726778580237884363542170990171630927528060099786552936940207921849220696404971733241179135398510480279215394504815750333083029632390751865534901198647519136128261475338851456113947170789052849668881802183589726167340392086779852020618585891347599992248100426845946694660409487204250651487648724926229945022123641985954195504739054553561668968104019829873970635951362924399901576533813923831152548053219933883705954787756414198094094849275320659084131095305628603714447510436142015016058329896753944710900992790736592001422472216523559608775533610475767912125607763950994731583468441040645941272231628534502663738786724782898699729156902170968134274631352423958214219625941777406464332032823142247043971141617135279938200331912894772018379576090919927638290984265520938121520493875885842008684017739460160500827725550864542801418838700406022341893940890004386809708572456355659860809472668727494542660229613972045482260831684137369367998319536529156919323583862430511946944973592502060822439405606174289102834263518452167831040593843304072521331995059931205310622654024847750060021928158192602951503710598381138669425582345999166250759694486777653088715744547934910386587263581885409623572689995645466609994718591805868945072503426904253209301604980760743551643944474356437563505728572530389028610142947060499575304036704856947926172645566228178307509645583889887629700888781993384393274137445856645178131534354342539530760001461829257484985485108591904503668709964599599747119229158050433445137272781179351722098919942104501855641549632649292909658448747373955638041907184317831304537020280266353184013404215730533598333524084289657236298300840569571423711208037012015829233069271283636120960508885038587271401564454193728711451531366642334163527072320011109938148545824757553310179853735868253799912703665516629525672080301096176815221225150168255068834243237664658937124744780042667613734465750777216932976668920349646822985182035910474042007710492861478187561835417373314972904311101016097543638810979580565201361029076815260445398874092865543927392156093637195416464400751576332663316531555082307781539087948187366052441970649774279298280850927956930919568550998675218206811176756163129526681746431889069705852087822494180276253698182661001073739286677509470083147985823851303939215862270824290024011285626512992078093811027575516268924601061673513414784113615426103174128925422537921827660937155191459385628910923174080942373026409193776257506090090488454926193962156560412079985212608320228859595900112328968434248649681834966155050154686722530624003446280655988509556298922682766549373693217787766171127799573984601533883541907785659070023304312894321693004736729126624300040635194139922423508208425859922807489277385195441389468247193878070687239759571188031375428709258017213757673100961730254627206607433910670101898416113895731636464404005399852854319343313902491247448040801476619829707189004241559825225867735073594547176038964994419340065160460776977745920396296662760927878936211546635459114765641499834060999000414177076433029731396757611302933668960595281962173923424832402802526784248981536877661703531770884118633517459264336380495453830862179179012813293306498170899570131608437446615940851038108589368456044667141915863412165153361984609850306942913158299839579771198130412555595373427460458024251437698155796913492843541431168210103469875165958985521920178875555987676065393104675206854075478900699978411433739278403254994021545101729920740514387902315596618620367360599739385293667477872482047930226866810674298344111403095641758749222302856715670479402977941570898114466621789269449435340116433861347854585276856511637442199968358787321360979569565392396556185671270334944854728466391673364793527086799164149334478805894872929744729089082541735369264723860467002951786174798857740258618070147295894750462516498475890736154207167039615856191347302119903965960807182283690321817267313118908397859161981483782046816515591603264607323476812659504791978362969058892525698551977383280724957244667672685520501600030839552144989968482766403477950018916933872695085899818588923409448931043160720565954368783698633632099852040700786224654112889312956846817577050447122343151056447959621919824564340188757801767691306074998847801231048560193894451241557144733765007771545731501961685259553169550643961400191264472833951596180121402714333107273459226452715533595113773319518593679098312669434343116155523280613949160602779286898198132910662874132544341216859374321293940619684236669516098059687691424484566531589925018401026603262097863176159480540483461406183175969033264042807049133137373424012857500527164117842729491223630740591552417831786538625691598155349990993056873999104328721741892927686623202721908439664428778025488740493052948738071583979930435362972687940881857345626237789997545934031880915242971711090884436016852360134640783468826857441774548230542498979871109809612557405239691292227854574176151595695005236742400255441410089714710354705377978388137334471096694382233858617665163313254114044596717342723897817295894834343160672205452328441711809254560862262043641168882334962479104244194495655386376453532078082851582960287548792417737014023801658968107592689268861180602190920436654129309097738008105504893347130721435211209930694094690338478167075858523606619477921464552723613243084782068166254707385006593520076048522818188262097876230584349304345464317127292261697802734915462394973987132055406574055197216031565889621125026139507794148426703832066966691122596341737179964464777773419259899333835912078014144222544588436703775559096207603171041098161614029965467157605814052898456977858716357897257221327472858434524915960739823073344460461505428374750721884236036083363005163474005181229567418448698936575896894716314242603632456614147857509543680321512978414126273254673882665715245796612387571753353790091821140076012554892344658081098869963582070724500901212066042162585877653919361546787685011855314574862162453025111559206850146986844241453527861351205075738290045608459929256679773808387407872625614550208735078845457408886975466511020193160328396865092716822677233368076811701493797758236312003238738887055708601047346358751685251723787926593322274217282681518680648385586711323079614996981434728362448547590708827557030683470798778572921276014278533851202378519097376500831497115156106501536317064544751270929585716750867892365414528188152832793841129023766004356467105427577945636504650260531836292346464559508002196219443864643242974735010286783909188972552608881438715882957153753569343155036482128250278272921237944463339723979000049105474839150185652845984952532614080719590755831376475042917319262330577870476104291152805901843700996263255299934713533312540494961946517393452941107162154194534059202725761352820035693355545837422210029706327018448453926598041000469756538099575285788273040192394546720136544703550225813238049698483823404586398312875519995753595157711543073652118639573572788182569932512334539420095234804453271544199963874559501727681726780606637627190890467773869534177522492772732857400860722618324859286760501692347186696123687903955762917835509312041422621730276028508928023109492640629288148598436441618923519083850678474131213324758277812947976065665899402104126619791127899687485800869132032258672185321643235083498149513374692695062778817424652551773924718749517394503129128984305332508090684333505118502871431821813580937591126368910292641609971437085374363165934640350818564220374267103347448489855193320881158614333416503499568639856441706517458634322438375870069275467217673466291241308240188854638655504438962418513645031030760736339277244773670705937613500237399988194580935403642781068060688430126452121823953642570827951219011282538251989342686750858655748583856673510653025545274295486626394715425077618175108549090739202458845104021100957499031859298325081422085442617150477764637629237366980240624244472297987614793902932751491152768526170660123172465589788949842116529019458584649844455182577044862889540812527297490740758601293902265749186013731992491791885636928276295275263016902808064672081103847840245648403646169081057317350714141865439592203217556020449433111572019210309280144767982380732143559319381418208679514039351819088017794955775622968770586019550701794816064642598829242879882549448615330683736114873649221468569057287486133947470989006608848668420476144990119388454839875650832284372916854599098767467778223236031537327246474284595786566380200913486561235999283849628850247029301913256327145723768332219977489719660328413931657920377929363100049731820676323582613766999567040958210737947214336912634080599843804769019599243440724342834197731158453559162916540466124033807985500720122315054475490873783107899306290815434151711872051704115817111244091905278214737298071952334855668536347611548393200778297866990146914276406936485578877330270848143510629422845840687231021125253943222280540295503079848711179972879044572936316290164514020328649043281038625466536258911627334410431765185223234664848304901937124641708596557810739062480977580400454068270119615432353262922010339127090829870426694717029147397593159266345101180773172178506481155544216853785371877963654001374038644055755065063456087621301016163135681051194372147874329770593532793623252969168296896889089507071489809520540997670297535144441044042244232773149129188688979206908198294333244764918621306179045294852105413719298540261677400788307880027199566065596271422378308620395660323808710139666754624678038858878891213715265382465938275658716860063499963738739134239707726235727077268862348975667767828195037533050279511123073145986170059127674922370049564948154688248094918099338686551031070260110015259339556495075013947394862921139806435908995789357875154640660711925566951404095640600029351787325827931219686773153762561999460399266059630435845934141884076520168295398750304803866391391328747358634659901547236022173999469583252212833021770563933739853367051457581684171114031977465380817443735761675809575822393104103640306635011122025393183543496049179931919422517222991091826433676274235286800819333129499931027902080022495746969352458902089648502313560600928054285386099314796668485252291838664688882913626983245244050592838297651078077895393386449599245469525977440131731921670644497801363146040765863153762035240577320516622843333064831627313818578925974899723742789534235690606259154369189214455192205630596629253376401174066756471603760673887686327543310170625860120318374736213018539649671485864706462986673229998417757615446499394606972050829050245971126150744520713568722097732616193026414574850424728005483121343423923483067013555135511467135565412530359394986259633866386192941227433987531673431455467828151338995618110705023806966258822351781397533736833596980606380510540922741313071474845536179248131664924096055658163535100132751918046929309722126601193821397074624688894841368640560888121113953121550083036947783447273265530776366011840971207475379985197556749842110493689115036421202596887793492185021460208677878182224855359675053452022339289559985617983311654565725017067880678771198137060164440643181935857501376776973252740879457675827686421328770968916965554589491320175881049543847575895180550568040067188772461484034091410371380445730157083360843823501677201097152987925714531340714004878891109668539418888231400239861244715193852040263534365728921579372498343880100960641025559408056383374030717832757051823526970761089513489410356081741916050489914374183043138536440372336212704511687224327499178098782205166263026038124602133095321424932406695467691514300352665284556187273473727696305148318044976104735455898197086274810745869081032105584629715357592176988409410043178296313066218044200269221449250265205344706721222997082255377088835994619753185422296268075744490515660698794918918434758357881983713811998837928124050553697729884778697146077687412891186225671864725237366000691469526923621701661048117587277028824727199575051242223406054030046084696750044663707852772603044405084168830245534816787243115243121378577928234006622977714330685190717252726175966304670465630279052464049959008957491341857307018428562235739982688677905317267310081345934087000094325704562264572660330323538536619087789124484283940253836388972418116012533608551741423921691199788002808970598509893467952500689568013656602498854870199850438991797330044595714574495167548893329299039089379747466224426785746914246068051652325470665706327099052861975805720411656122710058348039759853848147592282916926157687049775024182447026385250324488252797532353104961830430011130715394075244151708702422933805310823759698308775179780431629870022847712895720361270669343168974548970173172163667962852416099285097909079568116168215923953665458777633431478079169745177779258566026111760936023696976694937319619890186867558073080128860970995591911410017956286151595487629578614246239211375170374790233675197561880238236097344791172514819760490226873734246093152831733928531163474997640482219824614762949850486815499374815931323987902031822404351426513443457460416022666516939916224004161804845761950607930741151498910346797067394946825661316836141159888092029276810960888491027268421991612585821063260686421287312504379015111722379152483741969288368060457318957250654290220074855293622237912113666525332673756754581141357313816508492266849594450203777448034434016995259417250288627652932535058992606912278186966337274596093077455449012336766395123311413364625958188488519643033399256161591714943201268515460951710545764701178858661355545714616729509087813711040267443897333197415490092356870430780882173924086388768098234988020837597090259928453943398220150255596332289859745496793076968804822451374019267951964094457436010051827681205521861203125542940822971110634606789851487814508685947245294851590333479496659434305158489691210574135497150451637417101082013238002265071163548614380628449138329756030051660209026213622147324662374744721743156212442999942887093475780502457403200912963729540399400885275187375999689849178716698780529368078166313929634314394545452293101692900230366272398760445875618606344983252955296308716446090963253408582643804886244550917727403256782113062963034956244939437963764169611520565420620539337979549091920734888325719076529524691947664169291050811672321302039348710208694296627490593458054911221182725335729281637348510896573081384885097761278117899727290246139468492656304841894618967206763245158936685843885023115224986323132397348136511672746503875062821759459623316755302280557449350251133193810510200402388321417178581522906851898176121263035170775845565455386636734699511348127397323173853226631124349448532995670078877171427001603786785725704625046266163368835298100100363818246177205884830098683583426737552219008991746989946474133110552995939907733222149852664099810764154865898054217498364411864387984066856515870789181275274220526877666524406183271284108430687591427361805153780824679591714609894549190891117059737151192531176005367810185397798907285930905525353353383519627482528402494709678753706739807011492198781779980891055175134381159805445193535701773660153789605106075725714937339087729742028509864463641162926829303422716651411255700627529854624449280882207256864715860397947494854225119704598331618540081852488911487668581416032500064726979301054285467417148598267260497810510798382625430935265170991172952671658562189469273509348596409511625616309927062370458011850795716312153212623669018613965035692668406476441370688037530572222551416302623617757432916159886787704413832040001172455733859908164596860566923938326655216256772683761746825601032742090591291163901431196470251067917827318126088482755267723063945416424564912479456801277092854332365586801482830757854489011121422312453945395943217518486216045888926637855582829365370164392501069302809622587641737608726637173618619739275947558010997648158242645467709343562044217322879700598147795884428612346499164556324296754281268200417520475937243995667423330186293538434730816897836792166002171058416056462388396114797138357317164869154629064803409663856590582382813488938811572980219188759522891291834322995012910103590003449505491535755580050843460809466392944829906659374033296028439575595449899070351075681467696251182440348803261686779533229924930564762633955584871435898281669682275384930677810859080292291926544154162891655505248103937318169934715965562171566567849242849805211909602192697591297916250218570255951549561878990125960120561425358097902370172578566115966654270186196402800168840200835065726657869913578264335346296400759834141511183186117126709994526400127651252367424405418702424156712626363249818903549898265746872744721328124728642611965210928650856289416488119201057358539456389949380626564581087713451825476200208242061696104078669470517989671469494734864566954139612212608890706779559788733070713555784619948261468526235279733137007861829137846673200891039318319546670844592281387741175608560590208393051937785389623765352784832093580831365437933098157285483728510552217504976068278448630136934651135651910840581100126329462325700684747386171096380318243874175374409384148004026577941069502283238219588165814441067604971127252456164082596552746138132794453019540062141370691768124379750576306215126138374170981275129694698667921959081021291250102857496975811640833771936936979861974377578016652957110019509638799712500592125484669974709301882577765145062898265802354209269733708180615101051747365715490868719189426423090622692481477043497830096708949419941055706113466595491039507030846449519037593102555112796433863469710908664332332134155494726870545964587196475846967831329618194463551744044237977683680678026329750152961827702333995509824406486783742553010107203878777638255951141521964088171173963046576636614825182658745706217030180364685143493724912676781208620852929660614143753162745060615524791526389752837651753374522224902809467773315947832359084096447825227247416201626227659228252598129512637792734652087957109599276218645856005976535116429501296907876515253879097918021739645688276794062231206364928860985464898906331954591327466396734585860624419997073240589062500624534780007710421382154476545784855132313430950432018066757069102791160256216555268535517409392494307465806813089124426815272421894120833667967719941004698874626274356536843404382793043293499160448408045052091306703795993843324757659504735555690663898842896512885924224118164879812865822688993098231794647836412729434255902303394670682294039037509497764713373036726717819302175973754000758047221541956468293411927119922391592674630973733832656463975960160480700690587256665202715158294369012864684134595855934663605405131501517626929591512196256706696945176350363748984588632008983033902970596775968232399974804651040766370562026582343211573695500290272776165396740293614573501807521834829770836756228391944621448798397832881297248040631629561764205967792867240974394930506681512002664641654155982707270994989420036353022600115886866127018248071877165021964435178564633752025926507582786671230197915881800426193783331678446923015469956230522291052677588216235907708470186885445045216084650084951203040908233252181835172911655715476155146617231008540711345463920987455008411329544733637920991186274194606514103715594861970767931314024825080062922831927054487176705143082330192035606900635615692683398667233352866583636432729502812335386280430567005004707840189040774664105736904871042744569049164426488795013906708499006666529580976115320816863116875832600577061246144254314607177228406642536125980923453149309765460307531237213943177621384312447084274944874010897758606177430623837911882967524683199757941646617361601191340244440901841119834419417494390227687291594514079574569336286926860563854895386352228124428548857739059769782575145698533654294392077570801628798708019731483925742435448424013623572090662695014996199548006656031247035685532875302906444096809691024408286420888548312747710669901416214533144641053414422081318284399246528375833553257091566468932013556761304828971299001845716592621605328090523272059917602622275984548386436241696416994226643878676070929490688005394893330008592755831065079939356028503170308792932338245118188434848060832547416643820445848787926187242778838669048171921233558985771749129651889938009675592641569626456701714613562346455836930487952849998236812241363162586191541475845614297310502072928399805963386129839978673488389894408908389051646495850730692616932759785032854877463584863030719275204407223490290034704869152410613623723809931453104323215661642420179722717845602642482115490565624892068757910661573067546904103631577962877021386146294128385711309719118822868506390598077395107475238800564672006613816437276814183538440121754754423888479924939387861464648184355187559709369024242242807643080259846555267712294995327610286203385089354510700877684418339798671921961613773395342623923819771606430580514627664159823622969738477755818091120844057242889227645675397159528159722987830520458528668010618255710852020510763911144266087534365695772154596974698144602840840452043010501539660341197852330559453153819791752427434931366888891680606613368291010138324097988744158685079266415838679603313932947976217803213165954600506268106769125537241372443578690197870801960904613339280109244021838615788485607238583697860875316936989913950400199613905304602366529489916636462510077893465639826456477362205745326526108009825760879297586196367022140988431400710039824454006346968487034621867328796383474436319863830725279564059246262259824495245469283275915246064340416016415626462926024429456724840306431489413204591794323118978072613002526318629645591216330826267375569080273659794751270756959999904907814529740054134299808917052277575671704966025654353719278239871189409000037071076471647286864044150322032835181317833107238854508200031784022003257837639994057533539736940685992262575211801854974585495488150464624972849492085504221054993842455507206172837334116483665738863502016460070550487164914710502593771956327328798787448568791099188223323905654239111282967402299726028618406702203527213441451662575341382047715748435005416293429168457497248425900805223594643806479996227806493911089804878839375468282212417251498912360287096982953635906488044526965736421238811468314924628260581803279585270675885418553424873034804370918943424824975594181881217489858375908425487639865149134125141480082634607266042437729754294526491395757428695467243704286314507834775075912068855691553056210188763978147498079390100933813741580929887886991864391673443429340349858892752213098092026168867409279986217011674331709659146469607107264086182561431815349283860372202860353204400165526515627379351422816212827716487983664865787055176560851824122327191819213122902753998658888957755407874891371553771906179607473123047397655980800384648637278244391130318843657597022674916053496201656025379318459548158596697106086143704210369532187778390709918026511049356083785662905537319938293467475698936616685617060973961366553356594284783412585695213740806854966038553546593544063513168758643654718707329541039816382404153250148089203946418839703164100943950768405225059377431313152192076965346454666077110671760192487270927178767830253384106551296387579169439358873707178404092516177847194592026135234501905658359970138648347070071625682150003827429769702524828584169198900301309575816412013270056678527405769708256410231512743534949761241949471099788616050431051180926370766241788778428498508138728226950613049988031010748139708607563840456197729987206494152790757319104076731424551214509195227035050525626061920879211333417455416162484253084755127633964211024483983421170651210712293388504758032934064198501602889357479191138489906837306382754123996846450175484937707833944310960684429713023223194868288751644879073509541360628910806772509706807779427398689757973146538624354989938089787122293798941441334059740810940246283323783211744492204082008301911652835935047892145447434721066894238609642503284971355764625322893052357076538743186533742111750183502747564808939130857025330788020690506122632581001707023060847464355897336511708607641113794303090388576903465061354117009686791251187286339538453076382643788796831784752374084519360559572764210780313942035501050112446963129953878301664480611736937684968193493332171395930928898034371108173851304089471248313855880645219753750587565662544137964724179561444881546486722601711486589771174900451668603941231233311521141981207741988789659621188402087088704935547772038949387663262965142753123403728092329855678472426711104358649874026590955851192819627190932707638060128168736450651966578069121909719627023184796647802039432258065096615598729115429230196537260709696619490041234876066569042996151350804989967256237230158433283019835178996946810721831666405808148383886515730143694390064258042440554666138343789609276161177159364162342768257160779833927004849254486200054365417030781279319263032610858666811213352361452577160118759313866291918408660620994251664436995886493545171685854223892146472010729268642966405939362210831666947955419245743411900285514235645745410842612280459181084807856882792693437307980248430969642388500602622769517099257161194610653651174792258674219002340764692337507982948779379923159872739422602969767533299155612681027159155882944695215278975057653501429137565900218730095222981158215251898957636590974221428249345017213800198302346105695432495516095169630414191231647904486002279619520612675728596027590999903739506116298551200316829428015705352693945259896617547227056912256459195002705608280391591742385064921035876885072655900177540429864470675132248406518714826840960948268606945545679879638212267154153894162514647131003998685557747293284643154914704853646248792834397269490428579169990365615927760060620179277473044707536082258117953816402457319485214300549033714514651951077020475698301766946454871875182739624980188786212257371386942561908962064666008960437308320798651839497505178414940817446064518228036114300260992505051803399682253390994498026691380017284211435009280237519937825325881788557226568913823049208050185133585829356379311497828443767716087646080354461971830351624011079119113253247418715789201582194133755117947182916191091639450895072446812035513904127791010035981256407728529341377130700651238319492005445356685355417381776164133914646920917845529828924061638610025709203209376053906515100045733960395969733348243663774210145732816181173207989735940528719086473578415104538675146576188520873270528204428487748754256960483455315548296211830006851724744005895678374352774457370319505850338007087273095128022959146815860643211336275073286606135228949199975109826224159050897974683101414666645814670496473861861913189348146747359103963114172194822058583979482857777539960352557584391218526488833189934364032319982984436612241658996140211521896108641902061361828515196134693888880014878159850188750134449890105851865310480573435696873368455264694260262921643400438517922488035661796415389904628465369208004299588867826011070178030672618517999068899074464017674958022593204900810764361426854630974557227909139513178824866951780083528767622780091307294815087444060508631677147403148508511455822145851615752615775693859362978914058436641574488112401906544912062627253484826814953518688398188836175870323822954956620744322624418268634403789989560874662880156207690956293825184511820259008373708137081663489794422298655746280153345199732274550733734622727335777715783553229726320520125585005757218644598463876639017398016355477107080442442019369358644630752724962972454170890089660264672975895506047352298953615921388609748356211120284160060992297163011731230498556726224658648975764753391686268192213403250461548937288058636706172024106509452895161424273937802143215577600017558278936442316833883824732397900834407903512897022093646799060997194000681687393484971684985775386014297329022470708410137614630469692521697881736957100076644897346674451690809553960209686409977930111214166033773336407695902972315518785857502870634629265585694316141236719153479261427711246453670775239069073780721614524725108493967338156175636523318238639858568582152430345449518315009572684240626614472091423596775106924749342805512801817428384224409770391621528738721069087821632965381616435534500654563828337508745993405807820967100377410913582991714711554366722525822619573698262336116034381535364497948342758827623417623920305577150808945748102164277185300937551522478758057787424645832193831664425702700426876870385683107588000266647475289131003627793149904889564356738596037036747406178030452181098035165042917166456674212121257629656606279527509192915269843397885731126027454943923682670135058474587073935678865312340449158639603615640980479621330791229389246059462318041029870392566134556414957523890721526126169859323757514751568615984405575723753257800945523046000800578284140276504754427561318092665614432011332932198375084997938154232930209337713481733432097429908414666502591246389049603560590697282694250904875654874511335691217846302951297577752708641971644547185812731722628565705159251075405683417937188932587793651499787516261669937001284523492007230052699001734058392468719515465514656121655722935130298958469034110274577312557880685803541011145381362416471671221032918247656299129393249113948232084841727538169036173771776625016590421505121658074755892689955827267750340930518308156338127585998806641127501033461580106350117585066481983515895812051888728416874508457720369538634111143031136858959066424188076209835385366574726907021526416136319096403440104271289354535668687679484129737468470968997666410142852972461120853867483339089126016505295587753974548063692979408858851856247901045333787096644794526769857198836320982093204237048210630138481050794279144990475090133848405330963172194819138185163539029118843160258054628687058534523042698172975420800108836293393210306100506401748623088667745556106690248695129208074012958967267484511667153673021487848824621497412235831271157346702156200792227576421950093564614112262174951876344613680283368297092238255720881540364357468325314710252120488393819257427607914972999093508915835608310034652890985267727631217910154372931835388203483374157115404977691747117682270384549617625052061174626544810085428967290425452590354523952644230323425913483659985188027285563631161510530273779337376402981788543420201298048764154889166766999760838245098523442254595634599918564373636324983532209451865763909423442989443612663879196267609925579047037583739568082333003540628198564556247633449454843736003511334446423209902757711306238607478918749523763603575441769454500373689716030429546779395239445401582816282930402282136617701909832631807792674018262914108109579221656848759295194065323291255074404453334047126034052491113255049943594394886120285536337524983112779735413055318399624380381385115218717062226620242257846510833597098784021488825884554261138632227889140426421089846640756456145367380892819674533906328794352701376525083201901237573137071413307916129610310297754871382137503032197563519891113884415072245134676353658697165143718971241931253010287583948815582588827442465061782087332734125444008229633100434540197915358759509688526783652850138198801682731699523537622352905005800272715636144354390685606771514094548868364365850703442917809089613550046117709706285681606932101665795939403668707239782424186940713446808141921780463998799075692750696196799685685259554891807798408587271327247889041591769081129572086778773705468207392269418982578706583407334070190667523242107888287572744122387183086003390000089331627337785258301480197006390059297356088088689038609988634173157772060759103139809443221958350473808619220335543954188917809782271888655993612640559553450119526828548133864886828705996332765431652972877999401310851564986706958489769324614518417524541649879047227557958748519469970230930001310317884599748562169335882917844181919932412109899193544268284523296922602162889433628370245758828753839261096954269126806650604029097146128769705023884293211630463629459125583909914278633019500148478678930121227368629853792814613702867669677538026947096288761797181637731661646624669844802481347026800590339845349137354587264784479710458318842312590899864648423581658486813154489827868811191112985288138321121062493587644247362784405674348195394933683456204696168634426746791060047940840040645246471554554120121926992204851881544566460422316658882789613748834166386665412595828612389480216741453241151651050403334340967224581608043719985299177718055891194973064660887846921712854171917014066486778478479500284614464588894791912810599406430018069527645016652914441085600177414139316742663712494219824461837170171149245011358437865506324314466111768073461112926617109357673938610191727629707691192121338793918146136372416805946391912719973911505354015888877351487653875050364594867857004554712199838778895219533177958290713829802986510831590294957132989047885375951441879060682678348385485269682608797554465310502846066938032392709525260667193251040844957073982925052859400780380041678138705950174273251719993723967469365179708751265060065256561726949543970485565255961822376320999785586419619888100222149957955904401500091108348029142570749563246045235715488217036391446777583170634951743166619547203664918811647182921838586578172233211498461353282465795229582860718755486905977851892022844909706329550507210348150033311063678389690289221038749436134482602753047389482336026997405831359432363999949516885550021870737478980711761665843517652813969744815110610760969505615941035763931971311306209917607242658897565115565592894922753236918592143056752858415434590225440708212655907529846660763098908138700483566510263679912951592732317628396670984196721360224826370577065266894983234754994913669650641345995375553210594515590400811560751506206846462078677177227522246873098270633747505527021227762977329855421303770884844768113311007258708947693026645236456576155224600685374393260211947946042538846557111684023427858086672405781200808633694699119714620698704324704792309061349827392588508470777118606213284529618076535440384963806135198189231718509254349027464106044642113694797729074599538411684226267852311474338767830613048919078919130681392156997544043655393371534395080977387445241489107325318432186059648214523278869186765892708604509468268496620027222993352908294274750122012327283525198386391772285638356106241509757863828090988077570094139878956741844307622246822528153080015261451512090542140764239047986383162526936301150783987610136927543084014689501253689571070834416536153944928631857730560854263625841857898086307739459796682931325715858854559880066955891608413622562179273788475190908243520782168982731840201929217078732177872498508216275797174388893909174456960791896561524267561925287323308897439959470129158966847639180995386135180456712688434029679094513875566437691021143838034429687576599951640838342890108564484942207539763939178866291855977567761075078644708230420400022645565909326072828618437045566153531020645826999507209706655243207319368074707854821928030889116117982236931305021527395825156157680797832982957602324844015082480381741678121611228588286019101228748948215605906417234381168320234630807330626328127288575017000783227362205967309613136202273071489149362302187167473275882676105305782982309423488942751178497931874411243770432441786429562041091777479103563978004450328532535686775858766307776029133596287235183710289514722232133245612634444058515706961647961289213369534927174181253074631193911436894195984283101280675047002286529083547020641046274722560104457507741989622867525693694755832415224719791864578708791516860324838442005901178994084331824707776587678439502797361980613963662188034306098143787925338312491366701633530487543235806202898010380426451744802176128333313638472546043881632435242241259948591244644896817681523099107610714555750336796897158218736177607986169767142017686417939199833975910900680403404212272269080247415299949472208515349261588046085963852788144144041606648422405921275781466229250736665917203154450767953405684445232301407228694475144465280734964092804874155615255910664210391333502465711972052696822053547035709945013705968151377972115949722679001435187243774941962853155029238470397918071254703486970259072618924453503553663195773024828398893298059977650663857842483504174728859530307077843462482645235269066457094967707995257316991977958817816527065226505536314160886550926747392872180842939422324388544410863166748197641542487318360639847558949711947486709231994437920995655438953728649589143026996225668110943801332169429784684810659855499258206085049943659958495165354587620449822506935771663043373307586303297657328178729571521393901341707294581636603718142890160048184048373536722327645102187998291415559833945404496311548485666224062387908909388360529637682514425314107364483137188229218273577149857265123538128061512142719600964602245459108111884724552726113968364756060760647085794446606253955263410733017797058581670485775151110918087116122911604761097709883251114372566615013467388595697532837365385312646393651188233537696332711953995932172402903483359493807765684299268657410244015330992295208261299960749001793398590833943395167600285071325254497980926133305659120247735581681029245062619143501246138206923491725462171224945725414181517526197137459163900321286035674304502132746928745624023618783682304275515007806225705591581440571670049003777440294703021841446623366900710710143428787574850312878821558179435121055929761352459395499884780223204066940972653299435473139263454378533764002867487670021955729424815701595674522379324631076149200292737977505634979466401634144686355823193843763796801392046686201673073943752824192637379108887432224885063034819920368833637862481756945700278105780508920564122722782768618496736979459367815892889117747856131942069397648021875977317704015262229340127344030412010414590198496375336233120484189100937772427312377984736839841913544423422763341042405769748816941368828629815904109265470670086074394456889753673092602363766361363237139869206582857985108517673985068041628011955579165479614145827020919785152839455394389635638271521560334589730635728827042069972593813138700195471556395558505063212517540649376365197439034170609961046301169325590480613711427521620817438686870643051999936537445967412275971357570392005119013075800311739489143015340634636007368356904798100907595107656526563448560560254845527563318962160971937194556818864682369720335489581988104138364016843329108564370180372144191348557557529479589028751868392995086420894197664221029766955217648927742897953305540761488751073137005975283048020474120717256539143287760469180613754939337399053568811462883409342963651757604165165774880331547753513572836418029376970537940544782212583346848549958203232751740074254587669762550439380540457823574044893596962199331210216771632610118835912573717166949347998856426943426798299459090460984967205022374630575648802815329532285769283015530763040857756860181449927206953389357835712309953482267448153519324114186903303056253619644442218831719107346594561243187571464722539554642918341776327305429212318133025764112679988995415669868693847705862648685991170402027300561868378111418769598962615380106527208250278912340023057044463161695368275061033699166584291364383109938402114981209469168049338058641912590524879295159067441328447867318348189722234498402791519181067957489228293829032665393698956353382216956408939140831616350128613227633269996249000541522150938111525160248555943600614472896832669797069224891680403134676456775174684690590671287415210480843354892183016427085991821890017501320694487339196951265641083565384960979782908737441300696742662686148564289495394141032763974127150885864535628251407467776647204810321229127081579591823509788338043927173299450961340702424256401777261637173321712383900258719993235670995551395960400542292971432790637407090560927543058427072587327405811128700291516475350752245281604758072022327535520179336807258301367841029925511906916452061568938231423585973693654760855575053716297725170291221784826554687568029281631897072730717087669635359598635772525365229420702357534520261675949441029227239314634227071254201928031512387477796873320541919643156287426770341989746981003530213604094671973796975359937061450157454750690530100002500945790300771271361362963643984121261343477930527364000034484975873569767003353590369814805834274224453703959271751540862743256857715155127206650993989050500576881974108460110918767580457161858157712738981679054569632365520580488758170880523017264550278662148273400355027130027974809179467305856722290493188612340594338873332135875109473378156859974229875210036945507885545909528481736987218705272301933764465142012651295658597231807613870760196154422722550104007515402441184586332770975429707621867142429560832985691642911823071555401023836050104075140715030737698835793650175039952297231734312217047626511022879787423415802711702453485588158905012099438168131241803935253457276179454789854339576064160153203653295761753463403022522354052344332657708842000762509617414255894867338049129587257314226115714118157837668984561840226830093652061247445557420140796788009451472360947574866206327515860509070776627739441889979016113252494508409136868081522613794174108694651603448628345817167084685669340036654764458624516077122925873324292637467699262212991591195178730019940733143120279172222605657136014394930839508766628046278785519793315761983581853503854156248326813252874487087209275784920738522831011243472150512927273297363318568336684522873677901191593552303152046026803982591939952627087494502749613289155624102135386007106295669913629373154801196748192310356662253027965655785530144421953908846509148936164926288861905721110409723235410736432385655541807734016716101416199623880439607676152662858780391356326834701194643096934292792895569626448235576271326812409243925575524117690507871391972544994522595468016277731283322090790442843835051337783988328349080683794811517542118855151883764766703794655171235134620922918613030053819451614999451799256073429416273220670661543353900887130345889436639909947854191147278623198881937295266311873477536864004990078611370856543977441697713890034962438442643724479693356785697393576513792400235795470089097737401795826059790977939122255736795300303651689055289328484449850054987825587889076873588046475252086470785360631291273797630907231157442900526217403013901145031877021808553123892894662789950535836168686839683826134859944171828674902971928201564231665099341708506820527051864712930866393305883921671168818322711206316496683592617150891177480803058947094429402941793581208218419477145978373047861960086115907688771267302917155099637127506141661801196149460611580101689195863447218317303965861652042759346091007265134568809922156107805343453719561155173088130292072768687096656009294647289959326622705071609448469913133769176982242353538289871660907671617262925702829727873681974544919698436789201431447276403510535239941150189012251923992978818452355584205154413478379771891159702826684884491195395779954876977937601022077149984563492920820680387687138912908189544321127045344499506269253686654412253925143759281782656413084358400345013479391272589274389544737439764416556459120266993991442225927091358162745757216727159654622012880177945814950338895529452863499429349851689440210499252166089688601103527952907962789202133733107381729269774933110586278335371255690906765606466472992595766540354182149018069042030272467084970770546310608598246089820986786584124904351305462739783293859079412456369554400989495467622127475215183264332189501215640670071700023033254635217627811247818287915265811051996117471239008172779843607063555078219264724442777735283515453440342100175689822248858861611538568347169808401836647710077573771622069438566643997403534887493787219592864578039512716335557595019867055517749288459895802011023716304079677306181930671951004441953781908441827841821471709716389945989378540337920633717034952773581065009891049788934680770909936871374818576304279451027583237700502562901680658673649971695763141980878025626374455229438480395712417551763686102555647090078936637417025936665122472290779881540197788412551096078657498672191037395050497791805205616921908625275048994255424597486346957304714541517411796914078629059474809416135887584214346231270568583577709578630857884996288366353548820606675881739434957216921726658542930451442996158175871814084255032934801360444702112169836905207639465727211371014243946106653897545195439117880527865014599597642160448869860914204707988554712684155374120724324559313572272161406178990963297393144576889701435026164294128482179132171516801094250992432821287118027941261664005183006626747774141130835243558682580234517721049959667209443537809778088088766991122075132001546323281973183297877198551013652664040897023892872555555929898913833013324520039015200339597473634854720707780229178378290392431654538275758991559055914499928004795024349652439038917812613587078935196854308809384226443479862381342282669895740451614717418361178288742824665371902309590148425532415729078001854565505689064565884916832817847985587061639443242027261334770607729482843119554809539818288471507170018394999964657739344195246298623147392136571825701671194853061632248815782765639425250383252022816562943784887065883607149263243784530372915148337112381810125276229545975772677045358522519840625384973786383538263734324430142860045743471644644790320225762947590620897636833977768892583452986169819416475073638051091657151612437173056719093044269088652524454962304515315599861155989963680990711964948567837054054321113208163916339664799286543674570260031482499438210342192366784670777445565022454109672981107578076509140375416768123121180754582117356761849082585615694459040295858530192259039905399134319354368110914007232190115615646094978383228440847431032923398161572059286254378518069901543023164553604684766874659058369737050235303403977751526870670376675529790591739475272079044812934681136189458312705360482463683680131528253372155200576427462813966106190803424833897854765155387825744885825221456486109746722454858267687474504201289754812209208306200190619447218914457098824542116192345083395416995556203465884833766209131109613509294692160004643398286530221899854350657024381521756401554834246478521663417535688070094990779415821400593136108427891248600045107949138768942408925646674022350040432443593895421778258619975403828636978187710253901861945948259471583796341579279999858907500176043612959840671542692144578969932529308200039603458117533205233364635695881987934060881055182019619767650397512087197109511777256094540692589744595887864425986894302730285133727490244184466832327843652542209058644306503386719118650483492300512879096910754067158679865946048573112016388020888153496001664861529010604344131642427810695591254675600940058254138239313215088573146650938819301154628582494576691954670465045323973875466240014849926284052634411382024931633163790034660835916506176336983227014636448768599874139110457204531313166841999398406677171684048428119974781423336485084143074245359347329214014574866356428929927135683263642050868672425942429791023799824621280912285964150844257114435324433193576647622320234720300017553124603490078696912952391764911347458944405279449837820633438782739672289280472352693684882716387880033975428031897248580342211029977939617796425014499675264006236362712183468347389951176183252948571910523099521396483526756724992926930157580340872807025595182161895333714404358206242923302021079128513993968412309108420756850035426189706309673362028462227787934158381046065024392165814175476105939460626317353441707523992639837240294152220328392743749259946846455642251109868552546217019563527867916334461626044761509249135249611843783304704902222942602152029078701940462687943827585471054467138633865278389838786189970059880580559096863565045898882980894026767765528621833202914916293191139406998690302428888722391477132083370803776170969684535680644220096051016392533510972279929521982511022503411224496585667792992353445121223134636181497135291083434641760882643497074330415396199636101714966060169809716314197899511033682493858591253223347460140428600056826224872791278954283495917843363028582934556207922693709070100766759658868182474629740646242124536538279602854944086069595664757489481112891980527798473254396987837669505695994596443426633514733466285685473753937771352211336399657297148566025283186644132818384702737875452658478061469669368901504781979504697441945299109339800124795487014676081088565062336240742779659131348008454126149020990667635286816097888850095685927160494945522128730709664480397588042070844501262020032440664332982979228251267025644948479205650139307759275847104444875096768114902511786636843348059935998724362373735890847740470858946640277988232749962437641721671315746908889130816561021049110244031677795628024049041104616987852093669828567239862227276040351568213188793938317620185773900651380112985055924581809922830683445562221546166620905961997389671586104637725102860276865589370765856972198623421297448087472749657154524734867293451534963922355414220349357449039374581851820020739864098719826024655775107197732676423430408876674276772213169815123880996574855289136543220363627333389223464427093417541840836365035607567449664625577640964445302614102553023764524798890924056390607401945312901057794091806346066733768291053449502130476244568670979247737034828314641014228165139893970113992611982975722971026442987334520094038828170488248610260562881983821389544637857500594300460723274555116846844417120329985791793718964529526173159088948370337703730493868840807890332198888999948466228586133668067113500476909783457487837070888361586122646795341359448532136842140326351295805795024666958584792971710053606874344863643470801304000625704977008063340723285955094730425841154826680050221714586139959317194541997364326219421075083973756473264735146806337320946224605632682555669983810995535518947417699673503710003735275191082996727250420369931217085664098209321984903600938060733229323452303122409043575724150814893410626627744312081429810193008366168374012164629478905090130484135986442794325627504756007409664676790759684887043212779836542084349514355185573242784648547171885060749494153814117736374369286109045598287254891053955991303821051006340172106066561737377731135002479503539169689248600215677263542998893237664793058808054680978909392326563479646378036849941019567096688423789822695125671586365818260769256008409985673710586353754739269341713100384260234205998268871835401285451026899531083187016221418069797537743252615043680584997342692570436673177204135288453181239862508160214260825356163751334517638715840630455827802344965556065862590274658016233796262068137206726630138282868763562941476293738424874332173839543724047777866453726575158409131841940554075710492330350690498718411228369852637477815018413022552867072059212758735313867493291595366911854968522227055454934385079149450008377866836334882015661461762089040165143083478928633583440542427321984900945720463005588952798597999775821302431442185370216046649515376033195456787837937059142037012745094885193761449250281497843656854356877432405587215630614194401376733227282424188876688949460107590673743746211292459237812968363050541153420545461477979085944889726748526623424640235946222147034246077025083679932945459574850343950909840138651648212603732257929275013853285515571580858269374959236590440517644032940217291694430236903791471073558140192539603393698320093062419579364060471998690052540665606983743260673169939092823784953121871424553309884781436934528929435198124741981145725242662943617293324015394103246585649217627991312590436716332418605398899397140939493353051109663508686493689161741240647787534276579425640849941936105316755765496010808258458790026810651834963688685304996063085536145551969333980309819644826699160330447832436756407154790460828514110600177280920518936104368471284890216483321885994515849966116130852442681851392141602991411986275844413704579312288608748815792116862152769071499292652079059606773791384591934997636261264678307568302284531917008405268022693669462500769344239044903959893653288118321569150736509442976874883037150668316353354481098629140361377131586541269930164117909933082078250075143156447466848099396011120374305440654426637437418409943804430484075924907502793745133802838232851348720462628455113174491289650136991876668074889821432282447235024511557561374417999808957389037326017230368615563066409246919815272647821729524726909796679339339305488059293798083718900322746675962605547560716132620503320097231316326962185024459614627459905053292102891094053962702574581787390963905227500520389964450392724887245569447096410624690391820120501618673860845377217036381422411918526559236793382237620660069092655680837853393018139185593711789803959800767937710436013815039966046051906928594763298233368874901846503655039059591249178965826320752024262114263684472443752453383633878911436409292327621708831928082118730032030704871640211463170133067856230951315498732002492651278177426361237231474166087043763564314721886667015404227254724131538378105721388142023894164286840755000990209771563805788499335512553272148193591391135441102652849072117080395349443097168402462814823631415094803550622036341544948979985589883610845942352722150016892182461510157385054035645123692585460196400709691427877976130630991879648667045028088118574860808100082560842847053860889279809652555104302286863742352854190873302282801227758397628079623494648005913030728590054761137496374869407289838677109328337911014754127113235561924993609277156995261600685609895209131721532955317908373260457647578548257815707518946509452363558548604639272583176338084942962345864238755860665985989933222268629337220890259949005373781670961319392060717601545427358830759175001678387853192591837594768305290412597569851635069023933884120453517631698234832747447333209908735709659955709643087334610264710503197211502165467622190663200451848115572632954454281357792454764883206117643618208258556510123628852882184224094904635486566468792678380922048209866346870365760359487414443822184902833129518351738210693184467466606939407587799538311161553090110578592212582472549558320200171250408360526835949056424259422643633183696122712387537730477436621329470343422885100163904155497150564624150078294123554291321689969289813044266904246697681031155695795999366606829833471046004680750820361918264141285039512090478016775359401113240585664930557231797028485958057453432625438297043366476490458494981158083977446989721391725005253634180345662549001727520207082600136100010106895285049920851853672234393209629898440239714229125971865490042124449948874008442856956768966391417062866193222636431636199960581523555607090454220633859263887052747074108526164810757720768704290277378064171875815065219078339156865905580393953465723231531091488910046052416992786640187786356560463178887758725592665982666424746904984719248501317766251980410238026641490400026310155586991814831517306016562340471824776303547555795153692280674906970811603240620443677104074837400957655678840177059771007630381218221724396414384846238309253131607900626926745334179914976513624878824688834760540283826760086129662003728944133365337763992686289379303792627869184927818676833475165582759447394844715049569265084556109442390964329302044381671842880485891912744224447566541836455090290577028634952813656538727200078733443984510966787994175053051421569154127174726148327573675200304194278739819950590798269227510368705644414279773271889970323915981194136518265561296461321094753405240765323082026975389590872638095949189572584197829779816504815342317374221036243120363094150136292544249303650306916618105931601999786768392218596073059842786067649856983365179624924398308911762303943391311760018642926612941631149686559028533894510725496453271228731478788936692616676116419165583078440857836134359023081339932076750424300859129118228197574337418447843689568207099205041000685703352849254069490983708625421903221625653828942095354167251808751072986168176373436035043589851551573086116823180040294716338766346794776416028688186189789290540360714703463975704044312017883542000542751261679806059835940073860507114713329684077122393034835556766480413751141455619599483591347367657422027939487531768986778197532084933138356963892542069208761964938665980205624781996928147489104800014050022672329389625638920823596893766270381574515806993814410730609428067614013569308132617947998106812848334239258868265354938223975822853272483311099593959789228340340981466588902000304981596487776078561310366808365511591230230594897445533978973364818851201808587120888583027586068734852275786761679112861861973180229567544791609519022264381094730829768055386811849283601145432614510036134397739718376939580346347647854427562597299018472630659921131566045426181253547941422327614073396787263687013414808239181947110278985953100136405144713046733596849916841243233163303325227808851832421029995203510477042662285466018957491059088572309971283285483859203861009247455765144748327690553972430830439822938514476967525172269584397951867683056635862471278528732248860809312022468771101490152771886658202360067251484402686164822688825368326435567626359290082212054781066769822102679003014427923387948723860542045821275088825220336027992712383242541443956764511510629647011694118368428473891994182626701043021595635895150054554974596711301978961767743607397255390494835591802863252042326615036414424834316463597147378276191365114329664564010300502866495896302776056440994208289061307048826392184688786082828590628578078776489595084817242913393932098005931077499554929245292863990488571144736128300654675484024602466893289911115602285961296628324745020467792193630919901843478880472392839300413393445725579351149470717532413973773992370843380090149231365443506155927868119131337172739462794900429493299376830799062222531396867544743724824876811023941845226132057501438318317158452605221121254733583796891723542688958700715957302120168446069814834112611955357368405220789276123507666328365345908337540491993832292528512851727857943082121416165640011056982129044116223610766143299181471405015012797658292551333164561854966137277558035049685887806067325990829288140444003623815761480849860768336303103957660787231078947354935189689966724665183192699240235552954631219373844797814473550175429656451551928009698904989540605065913077733064525976495053182696380995387475546204432298177877874163863246643838507523937560987066459330208923542423023160075652870609436023339552110595270049904001458653707677356828426209265203863319961352970008962979598908131866229949287306970015070523359732045649978105164175660355290009971639415624186572453741212988674564450170573016891184543377826884753774275093429203476997097209810521372131869943290183625072294111730972217977805789257171716017930006759432808932586817861823069430754818888058908391594357808275935824442975094466111113051596095939776263103403006664887745120430009890316901438146309627936606451627073458774818742941436201174074660862696888266166782299490524274408055602422984284295549257970166266085237010707367454943686817898501309465510190538221092002027526436803390605751943514488110088469753588933413981434976195037402385515181266223699002937190438119696052419544820014620339070840179779865860596837628088299711810864808551934590428414564317277789144136773871109766942114109899212692420214757548347116217824180459152473198291624440811890022500788104608208143234477553213085357260722087713107990396075574747369282600302090801153827049229174833910534103588641505509956646128532631944606455026322135893525534568803488992404294881405720310488753610688612866270428641392446006586601758895288137462762989854740234626960521697037308670592364676588585001560789541346484452727456922238797267772887360572023409879341546717796667101672536502510222207106319644470573587980073858961373448707810307099626350186261001607718113317832318649983128957232016221118122387701241369813726736032851974239266565669144336360440657498409722892098156447743876753066215576850101504617223437377502504820396174124311089837339953027747857944759837040863054735699412501095352577201664243802121576029350711461417947659680998648739626591906068611857896188618870302796114930605426517118700802962552492019876493307288724002964093326397278670138290049860367325626605139437623503068666406044952071738106581932503525970661400323826219908829494475429112823403092875717200368586657923962489951139271364599202612399927611210549313122146141833767357651198341499440820997167966525595667316074499930922664279238899880851482748222061288010545366330620555451102611620670554357248027532274438746543768728401576226492846542572489449213089843148968754328818795986454324541816672290566389282520774956351656786983987725171249129750120937863656299294701293446650891335771155534521443598485141876417819657947514762298536228878837554785382549380068141738313187801883183031165321246324046380593866856124008238069112305737407462114083913897759598800565386916581107071554870722611449167073937552233749838694213827867284550393827778287107767568588130394976444418773629273858624608032417555506844429362047304028566590725989477824934210290024785443966065261838105352793740958677634173274222948762671412871494625601524169776999982001135639388410550008757967376190974669533959129304096144173777254276122458700414688401697441527966383571867679534705955059275981741946194209875015124496371262834494979819179711100419211089390091904032691188690400906385015988495702540136410001995753178718618054148872776173344557522392979060221483479295083181258076750779467945672877572086209435735995049669188446872531549176567536409265623408174251802952992570334266475326149639821167876929758685592958139899672367429511636933394559933840753609665797606832662021576002256441204840676581700804888588301762541094975961355929273232761825086917401095609809460125287544823921245212476303139936866248959912678359592419361450625617097008005958292234295949693074241215218709898308021766889977365500392751850360585618406900313295563632741044774801649987500622107667197574660726391156463029616181053434821480028194167296736791468921748110072881547124493381299701401696527568648491435707793618258066531101035432724804104200496882446324913807590256575260899653594317463200081013574884273283818814108504185661721114627801898534049344343950746751891370032678211897503357724661849185343600585082273006806347997032710628196816551382471912048661570966362496702894439577188463811209764618504780503669226404159148562227438234459327676450053882718588092743075697043242217319119360552102607239482756428118848735021554498599338876502158380919666532780919578623491499558416661036730378523682823428294995795850652278274788104016625610294000625256690370551996638234647288761670980652894920051408345864559440311160927719032720040249089915451004517172466903109281082524757536130672814632682953178947665695791299394361160385203636996153645633126355175662139578948711898640897419978692735584300217136462913951456460057421218981174991988996682273772884106016544688822187199745633367297475058071910528701938616088747559012828960141838591766341566863945405012548019401645308414927529590849004468948885352333389028530287635630407021368904610397067101208058316555613704132355572590455656820266025281715105652693168715287027444264337349599424694069040417870084455525407134587427007858179677475655647191780222252987103484714043952816689986813673223384120751302313648906511159793644044868951787914239809616939091537045607321302335664873376820583470183059064345337980308929607750122153846157917960173201182148813652355885963163868814044959415822949817335190527741139421222555001120881824415345559911123148409976535403408020197155507197335712566705445710308018230085634227996419742486124567425309143536451186222104832246361160079644835670647652175643102734636746138390541870295712691799045762774197173252205384800180795288904534882315905608474304257051670132542868608413353671890746576675075725606135252108251094207675341314566893700157855181985047199369679581694274053945910084548632723484285937863197231663149377552698334786675553948616299210026700342362396010615983743716308711977202457925636547908613364310811175389261088171984693882964864617383542947139785849053245138092803951698059633526947687702359628480664297475503712974957833978395991634045615995046109943734648541288940013349719200724616555393653314007960496404760861739643141762480127793498070321083355013553209058977145397159125197851020929991603487780237421522700706340757385302677318860220406812497523335421612826520178336947786532898558715808496392430835546418191714213849763843805306129412873385099104572854685062994030318729936135218178167209543787702433994474332598874390065145573174820238920505111393738307329099982203517030304150328990090352529655026611001898925532334005342991353597122386188315307588972987944263875872964565396170607383311013155317636114740138546759436815584488012243565751770321503713199232657980065348569296999333336903496321758309594338247973891809734954717843283261854106012311064951352299005789157345495829630824704959594185339268695419694556113152547179677307548041185169527518398437089447890402862460971815151962539838075814395758556700723240391355980112792413093543885340058805069148037407092858123567941305656848304867161079319460286316393934423470540476087592689611023299440966682159317351005110536101048359528321898599416327586806191671623412391968107742908812108653686569915541437055122095609652747698837018410996014728642642153047367703104939702346920010780018552927084103554630230497721054247919674628736620872642023261941320826508218535456800554205289827205553689535954541874493971858647368111419276844650572150840223841934968864763572202081507382467666641794823678405690093091811336691477371693893448243149483242988846457331669730261992911914579825959149383040405858766479301466187488334564727049682706958684773075134942998059382848050823087330882801937460495483993669579268626466666039750363237256823284717004019256531283245695970372650321432672454090754048427590231824737890082824274939678204615398084506392747710533670353464242825720710002156945776628026112261509675431270391413686907222172688716447618461938876126091499700800965616244533518640686502491921184644440788871802684310936544004691978909949311157907709008181948251223055434212792554624274020276647817537492710283950210987993370418823711793125998048828237410475331994444376112703831388591190624231795944084431469724763660501753272518318133422752077118790355813611344432938678372600575248038974290934765583099551090541657158229280001111896682239004983162486044563609655068591495356981972165709367533071758201564697899256776104398365691674010064254705537964637010909927389157775632530906854629678581313958249940549521864880062477504448680426563972798662374508612089192586328604274285476629263786748573403962365164779537570215013059173739941217029016812679214008438013668305298034414246471495074936159199329989908394658393369345571921337552169169410842314974535100464885512029118016177632088191857643399715733122148948845368212482472776060796190127024686958031878937221936478494643712254235932954455327979494832030041490619059333561531039097879801184588575681942835699088086216011220815511528156247537244492646383101162873672179777366779541056148588522161148922452768403720045394631271425397441008243586947551468534576658255648830414354724483370721997141724878059736770975924053540546538874504154697873422750890301077217598365542972599998185800790071230630770247654148997824046626438619429875048920333629091511070105705193880486199372204215909654346484716633466615165715988708836140040950514886030874022470545240687497702080022426435354338678649997841707084609073786285863941464360416219980735928093687654486019605343918729454632575426410696840966705006977176270153829710603137081781296104982716577066220586385230418694405859663777571530263557566902835052786026239382799052174756153417442932243212019698902353882937368263238102452170680419644320949106925055886052640427184846151943273300732164143301506485945187775106912273304869460174942113695065691987643778181313353914305403183208473397611468635811142162313793121711871685709059000123926750490201641760111945205669140489678701055511825503784588987746153890464486511876106280333411438556372884189667944020062938629684319184133821592643852718984869099403175391175654165421217189491093074602554160716889152639124012592116907884242464694092074167972535840409917024269911205200489902255246600068948152311626223490950292303420767697365739061962742474430933651575806195306856864140100638170477988139682701074480410059738127021163875341729973502794089416322174817978798682999674509386914354185658233238633211044952704371452258496547152764413653135475939455548830617652014286969951250846544346830105911152990156664020475715945789826358763260570557322146548057484336249209514089164008562017834652502361161657836881747597115030648469828894720051239949906872130641513163646868645008628660448200842710745037978874838154207740699321636198475641478796908778762781167720223629506025132385710965545449977886854309725239125256033803640090445154890234300150375455554342990566131294402067794701843867688445427468668848112912169918663530265386678583901936832157911069991766564667349535762977577631464679573664558982165818664721993720813865683518651599129777456228884606618528276184949292042652770153520194056176739915206381665339983885721838286256313913984723374125989773852722949474529306476031688149842244260161751944105055497084348448563780303307961944364251405877445577315828817514800412522231928087089334893422321831671916553395454338099779496691374402406692058732889048552319955562964771479273352873326518075798677744478259136015686201864621724427029183537172208944142708666513785092870913274989046875440399728495929485496917217960474272972432121718946138583376096357930730504316157493751421882746248854266616849849440346200774424773872256036474744337040593696732001755200873074980316880177960620026377612479152786072533999414840856974679318591752235453490975455579857273148845015988780322161861751723214099708615424685639516375826191471982877473898096855124981733870891533913211697198268265012944885717167472915165574727583422669731550931648651324294398499466229477166016132503986655396287694791954004829094777086800855861065595184488087651008525598155449719456510947730810952635209484086343963323000298757739463815396192705419180177776499858061537141174090854386454030858896532699623584869483951522305571068859732434370775911133491133706006016092207657962842165730276595970478057805365045836660477799604719080791122244027835713210082994736409340690696835309748185399591693948784255861409596825726560615605491657170722004339048316810990405417152121169145074400915897685012303667051257516682629055357296007535169162988802611009006111135717353808363747338306959047256656733629262592417382187691414638489663814755280138971873177796434101804002579617986864960742877845392414540073595528235890630853610598577621231284149315494081098558947073566928696725753798967844706927018541466839600327222136218394142366960761101224344622400989084832546149834005504516418148321229147762698055750202292779193297216096446804978472850341021174852993409001796978407844197315287488689797754609223113082465873456312027621069662446651468557687925962652351446406974082342790752785940131575065142127919066147399803718057639042823082213624690802903952887155543580445630061936881191926802429556051757612108233759583583806958608445870215074835799674816438092425317914213688941000158678698515705624542936624352560922427760900418785960534798624352753985346504805322937356428193223598311203209946199045482783175908345542699543916968742920398015680152069244560728843403421185148609007690218302376997257546943353707735878873639171378536880618348126183288956546941626671257779755581740543855020782137820555229967754412152667934179260122549102871930322312229359278471601948262421307746893495523818064483868282462785569292734243801541780542899164437247918582994900927170591467450864714563111751003894669297547006642835162297246428877572035735255586386163194432940872183372880903160330247515693254743045947462331109113144689634038765132410779127209195762979111458141718800390506445759906169058346821477102576564878008565843648188291493776887108453880704173392791251346256602264205907388627025023932834813557229592512224342871432790534463813683837123591709362005822095661106718564174460221978861417920846970721570656842831195124159122244304606927855990114749834904026322830503823213609016059489969179715020677640005035886213928398483462740836179474996271156776707399324151253822705342824401179120035751788963019578071680104253027585344141326974783658112705678981361273769816439838224968235046343316059216778793569878185900330956616527147791333506455151425563389853530530948901419861824342810387237756901621844900598908994046261541880563519024880244299258240518381678420405855643748637010307552955608440176254635447856201380135495121243627319413152171619970038079312117034754493858842112220531680340857861446791449027371522234576315870470834929511530353341950663700469027163397735916925363688740283974401418345879594752618877599961161782040656863855237851357981440203703039887373387543387768217933461657156035051260978597325561935773320171990894747933023510141013460178597257006522710787636866910276220408111561767716679673438394657011517233045707091430300575049421671966534641084085697426808273072873619658968027766438012976560198010321569180178518108442481855170474606091279471825008111724276649481600458952223464267499186022971692419860482244206712561611896503233709759298948618126786252574757062140757090443277462957222872405834805040935354025604450869611037714992471815307287531565194695132271956631217692140717540947179952250263544116156376764788086425919843500703740492987843054928115243681482386132517549417756395471156865857415775636614039457005372382467573780624208452843492401873169200400142515648841525493870394954065405507696363565896245981876945526339335471692836895885914862158647387481526769724435651298560179400476034435549700497267973623855086133529606496175137533070794590140687815209124674383987967014541538419043818118801023783861353410184651259797511408262589266004055534734837729573891731118803331450006592745041024012131783680396648061931867902974336980422389399577326665950340263926144856215710607678411263348615050484193422671960055947612466381631150152685993495229118956756237682613086334351906811208300635670752284511542216209684636165676391391167097553959461614144633708651861936719565876013458642190354253192174809710196008152179517890454103545147977516134142589558022374946617808747674867316746171678054971059530134551315798685573262471216021375720949007792732648529375228338040746137546635573187949322979735748407912522041212879478523705152901850412043767193224222180882072314051795023432736945818284027731233766245760873635665040101985838444043756208800798510689154895546223349066893578005433874492881892165355471527976725255885631747183375360648867692467916479311216926769434602798410360798571112883943118940153624891391460529386883751034297082367256546646266575324844633199524705977586356033110196797501644067550411516155499920644437505375005465628236750895991441051921078683908458958361101726453009308381670119588829273698504435927739601154850097067744802984603379922110088379740824090198811829037758450700450911947297946317790053330845922772502525715916887750898368831247537147406098808746570372945112737249669119633512171486345047423725451285937060459074876210366730019037587621267004822638204114005448268542415639884549882691185910791033922998901582109572426430652626783221906437083668568993030775436661766192926797001359747790658623494132134284400249454960314475048819385484608069421489347683742645390795073057117926261526828630871221722031126571984298936067659131857122336211384111853861536065832844678792343401729403047979265045403864599950991024811865012277671593662100291567855200648799080012367573889529013848975025903249396023023206600321408568084927150269260170488060179231353654013631539735246461802248492644815338482515669196443030800589975155949826688976270831407532275818185887066342613560663257245085331371911108017226810398697957033957637970511002701730012817451062342277979464912180903203707486708833360693960433137871971087517459567879359425311015012267172152492502818539711658241433961616940837592684744898725768874094179111907446714235289642054278130390409040004033782610171370733870591648878081490868202474447238052535831236592816809036833767652314938738453885787806079157017852965091396573797770878767376611371146563784828445081758653507420506751807982217890782329804892783156957151384692123738480102613073982467981143264054774693313283361069361009338891557553638831658902457899720104361492865505789607770820552002569570016904900272109417922015424435623869695381355401506336785897763198061389411514693809926359764488936862487725807283552965157552113238325818086723659240684143560765610821460393086459269806029848111109140593301806564337313000089880847033357608897863747753392767923415160715236932047431653676771798432450346113930896291771382564728976364074888665771977753146537541120191845509076901289780251855371427045469139135244008080213365547953693633328091225416059098040639216642057839352766524395921471108130345458752183311748391685854912852247595332593126790298342003459697204509531470472231164005811640118694446837749597275779313044601411593070651711874551248021240991377249114423742121752812329403410141414604923118226668313656449190716656038998328701039202839016513029536253653295602435912050081396078320307680722669701659494817158416978197951808997715467632275697186283199661389398052604997330481948796975576656074971151588468822206124710507876092162776960531616398756662276766750646898628914718564908843258118320766107395590176101004844614100546453584345649979462407508933211040016398101242854786294399691519710862370705316186012115877449703871611153300610905631171479382631811151647269174093986167756937931442080883373840094225196338399887243963991430952203672133244300433792749501927013287727249537826735386699779218829232790398713308905093457506223568542629071560998186408113784149518957375052890987444925643250739992534892962116350764826147306812413772810062534998613675249413554984206445015082404576063912946337052265105157966797018538580833895560548418000366484233072767158479727123131622271768982748809766461775790582225696866864061208839728336659891486410350703478889878227346641125229208218411640183576040842250489592757072655262393570957764076401423951251631894875047950087596108624666661464774578343285004315042312329863694572138426962696540509714465146825578808066177354305330487809058195597993278122197730497914847567427419550146351863454262355916648195882599102172787898496511822510187169724073080693421145097878208893047456317270965049557013193767165808125171872711801112111495119244168975356502218200688534934683218476289309710497046983572315198587577868032113238774041670606921042991747468308179482762844235878280417579429576310851970915558644356621001797956827052473913311741480952520026499285565753904850668765964708912825282515545494173317148853534654382469083291968458806760197988111700802622399632022697492471974958838905920842664954608116995813869008884273218038783386314716725595050774225363103887255759912880533513064444258451935099932994101543520542277026763128778998873878913616025227225549322215056247482948922214190835899143570102405723643779324977188672549941782726160341309728688752863060307709094951569124307860542191211283777653560664761010701694354974380266358125821253474633269938305655966623158480152528439159214068152512774971339778634162387847453669576029015702772555528953478173749741772579191091562936640128101772881212290320367057265633988698298406306502479298198092324511148899294305890943709042894265605623223321534422697822834873408104937645036373945356414406827855696367969826351141413125747217028039127451781668948995418480901319766567786916003285688266286707147909611176346770201500863911674947064560851003722297300921169713714064861176133239172380378921358458376355620961122217557586021991665593318464626827821946444815641009012712624508816527303309157100345668341942687731126592705203742985333980397277934289238602989298283779831903649609539092192111560981498667554307212086226433618825473941043461226057971773239109608876085690466766487791007258720276775155770754702998949282304747713211942744672916705566039471526018629281458789789798013211596913695733727109654736245462214916668293098372481919881757476881215044185921209922505359543620648585021849659366921338025351732217855253953943433323705580560475198821668705782255075055019199218105594435401089777066815757367670789327885119242242559414932714270839748122365664708776521773879039870920771995339044534601804236960772049367816905186707457073926303051452684737901167494906577900474548993837396742337528989268336376646668201399059780971583512263212720232845305584292455252589880439198048461393355860801308495970367723263691437480603663245234679624021155983900172472676385464326870373956949168728761449037175761881926211885145448026012408374082648435405790401185852992993777375790935333911631397953224313839896689188962175024371904807572429234582784740925472439364076357043959557156821585656084512140759185836784374752903498202510267522914607529614311606113503593846272205834070383120440530715779456078235823785400097742175047887600706426772721162772399789899404518859180313745119757238071774471451309753748717924425170995407401387108336039127155844026713580688968428521002364517307437980648481574540527877624538107539533855480161059439038578911976400623878319432082969522251738756722837747416254380706755486730552821245191338878082183558046344291037293218735608372245322908014295029329081196593094237137426922318439209132185326339293720125690138434312770630792273432470783530626048924439125963633416848911733103039990908866790456477407097273263387612367775016832923288577391399933221611497567451494166500408529924960385002308264092090434917839443709582648908606079928533525261858635668828093324944070955964469183990161301267313768584027888426033173595114564122314899721797249938495025597168934941553277824259941462522169099863621680533769405440723526508941994182148015566260617922528824899294859508367948765931575435317884723426825635716167251756914164998478378774807256088289653437582986566964482446512360090746251029864527196932378652184429752860635219874159122660884640995217828821421062596590793131469805651346412068960062109872248825124880977456130073408273910236729583256815308841194454934328682594304562588335072052583601702380174429123852210030357163597869831634250749423694910447033010476379104191304551783593445131929066431288582200964057470552807462350407510210312163337100717093494356643752276098834934850911640705013590446398057129322869412558837306537833098484405696853720386087949849243040522531013512072649246542098256874687507282980866146375988745241642795528037235880582475672188459778213463439416955587337050275473179365141021675129848862902731094295144809460247229495466809812449014733922759432008521263237937822138680871158635934498150727326646512428917093544023028525317365639571449357480422686437722565541423111540240082297914782358284737495600306577684018506076876990950076301387301971573976859006550364147512975373620033020489180901188874084949320322984667323787468969134936786750898364144131855575380421388683819774941701895305447358776601987309347200161468379154125384349083392132405533409215205132422905479582464577761147396214476797278425918776401041146323887724019479863192252672533908184978792609721697613917074225671993081280190287331148089226355482679889243578952251980036655601488906482564740055624702976219944962059560411114723122826170795025270796518230391383263336734878115989495262600544987772151060070068428561330845622447015279075478990936728763671119528661492261072620470382487892142645590568632585678972119143489707376351912861517114930938286576156570617361905109843624835732734629721022712807137470519248939309328415057181478496549961895025186978216095456406721337838017512541730228341849255974599332104466660767007674659058090476636614964820872339163502023214946968541619690545263507095046565937979430877431544140499837910612314487547758647186871574654849121627378158008796794654472535466349329233370816491977902000905019146692752171495403265459505899102750999201755771629375078245164977751267215553960550678498524903277390572389777832788131916801604968795342385601604054732735216176143805334402645382830702968784031904715098403081894192880116010576814478377380989464423442132674853524182344386441753408220235443820630408183669537999904462056378834471948336320711476798747396644791188086184674302086566158216888521159259133226173007402837093359355057452761175529380639172617069826150939581257414832224855033142808956296210831807774115571008502768097276257710813802182193332155739459281036274843828740180962973578793083601955726511998323284932817428826303070672585330813609276297245886158989597676728741553312634781774163724588557734498790720379320224560890111788109223419398000919047699821175461740928811044302594313522461121232740433221547133324757289896290528719435456560328108000871151071275065469764252120875583565259046044243974356017514228154555874763713617123190484769936886779600965601245133714812282781698462692483517700163415984473580440147478395331858385197454822050683369046982632250847285035847800803785073189599891430171857977129820907899087863762454379005392474981052928551437946260275994626918474901351740803083886755446538927164332564994605060844731693350532422691926386818940145471537165628474452461753662296930817425184621278114674429789066004568199134103377888881746500215450441477247534693408116971344774777919630768181383017881580167534890310781133288658333497916115634393190869899445294315731236877259246115715972382918282559256437386858696340660203157554520732119676934745185432907995138311686569670301038689996160324642975011854559705296771885475543050334339231019914199801389582487597849898363396058561064348162849559629639107888423838868597923779103312122892171835869325914471203736347033485431350164868260976230114436663103455812404043157933941625357357852333387386082886154166144300052668072031625166719356793693324830606265313454754792200131325253255117998087317464892276249931105983299984430157553452526051010781073356625771843466249377722361589793195417215662350378597480229554529567104523207834589624190545692006604271519053545925295285665823804301697650253374924136894101261028276111625945853970865835861295193486194634325661913552920440742994910165366597898404449326595581966303570203604009977132592568677114219756954297868469053833284988703308907752228601711552338301376592238172398444126202981218554785176362068221221685452796435402559585956228382953760579353718492094831425533522005682757057355974034436743421222711189784663768604682035565800883634019647389195257701892041128642806135288189511053844535230900370237659068116119990690180297948825871191699174711140759791682742345694898439581113514622718726077371275839750305104969103176004360792025673035860002013943087225650200158272289533883579842612218367407678820963145991066127079297074000223734115945592903949005566174768762280301449251137292695080775556498688477373419486959080657251772382749223245180911364354138427451014857870211371926868472953497005681243510715231065717050976854169311974584342329088871321491564081727837942338620655047127049731534992398088026650590331536737672178111998592394944730903858128828829003725008339829200429684548058836312300399824110873325871696298381730755715999704118552563817793716730342793847728945156958476122980812336142420053313351034032238666701414348957171940472444597421914688176678513117922670354964625756125856718302698584388179690837396202652060085009145594431085530758272641169748414440081409988681746907134994584510927652781546445014523461465247220045572363997554065953336307759775711062078531452327156799230212830402207353437329956998398798107332585081195160364878887098004980717647125078575163124234980008251515173133497131417248902454910248994799356374978441660805587936576512520222065892112359039278050936401834040872537419515349436122862599138411624991737919626079684959389060875150547521122113304021573322610456156163080737890761439175828788416727927896714019454802200111226239366491214400055772784671956304588313717998146635923130157059315423721426497312226375621399244552433758752173901185336432964485842908814268629991511117793722151645444863345909989206789369199502188573785360185058744112658163631004725192481909263205932944815607354301119815774722291725039029530194676920380326991121682714147866897535149921720776837639019206880897529672482022154280491155625842709668873323403031703794068096106533005432530849461991117998474667075384910378502143293418960157858268363792495641206253822279623350922629631898963561628626075936980512095601514479939419671109037731214968848944696078079656715058504649400489748632893050568034270704056447268143607725803989474827604850595272551113569168084157790273199426224512823226941075336344721911421801696488995697627656265095729086752954640746482567295860989772359234362548516875201419116778199864351279939123349017913139922350449428984845429016816784900298398101558784471260209600435790591050248980898365686991766755060433148798416409118578437983809078841233350409367441868529884846448910570311809705589758722724241565709840480424004649493319244926773879283322744733064135169028914130739355830308313425366953701859811328772305905235774740066661751765485859910202654578978585459454018730638304965218786419805622877352192686990004687326551317895845062865801586019684648758994996861854364402689855273973472304284661106133011665946185472057459173699267206606787838527412272883441017017828201635912569031507599916973211959715628748139797150858058742810129503665593902352389487334771366708255705388643776303033587312632883006439583549554002041728321303489726412530502963477359007342374270408639725579229962989544913274804760563392043055355653832973104715035109678903321336073889302256336551069175309366765050439940970224862104259132802712706865158589153051618351299661219437220980907047359331071288951481300166518800898414948906016554564858772716141168056045623733037532529493431120088119548551470083687984658559404389933639939572982451761811692934017863637863900092242011540415224622082265017844117293114149118252264283862097670625921839518631165049237554824664404774898202022321928297068132591723222651719133141719357869175471084838021885571377855185553980739594213731722003541474154121104269839308943604266901686443342224782570096439638038629283669750744803541065538801610699514354710501320365868570454034335526213981554270276597710632661963784016535215962381210994622015173850200594982354030298581268804595763264270157235017719474797943080417959849317593407687045891331541199674372727069938479958848713355259078921136000712074728646895799740878195486398684453567262129750162648975875176873937308496765829077526490466461086118725076334238604916987760904255742738721651243382040483308791239436571717069354888208331365127306646571122526050709638298314183108157068794169156929098145408870395423338754845927516437084649202102246354480877897076753290819358769440717951554844932169956067963177275214602118328048788889544340420689547151908471303797419775404121941822476114107234676371962030696047555890261415645497282344512112201806067306876061823961486464554741024114809278893978636545062529096947334293438352501259783523621675201741644677304086726296581538184571488684245113713980621350246691789457106395429893729457069852699900838917743533790577277088075531787374094655501850033179196723673098124707560104518800439408923346144150262653146486502343485552370065366957471381486634015816281639366318575846589832605605096987313887326614253736727662207915194768602143338326025628371743174364760286300114270505773525859703028348280504864097256545852298638275229091661945111023258671667261328680648600188647547030503914480169569873651897129669268908151314946549681798531390924116603524212310765791450197797771664788947886414714518687548216426605622995384657305395995051362029491430577173065617574832798314462773962832508617437953835662558814374422066477297384824596403109716654175417620905472582932801287532888593134423707089193468845457169915521135802782916627212884559611609959977596779609336825702575465305694620619311370633736229963753380798181785329629700501221477017113016510368478244453446645009295905970813626466715035428665032938273412523443026022669206379884567976960278586035959440513954256507198000701756888567727727026994235738773245695170041404171087897966013156863082402666911275343231504564353113664236222013649433706556504910589398284830645782071469169450222657623811423093462245921461048296606413908265874919756789018967676289471101168330476839165514265400638323240665625266832218557116383304973447121220532297037610972998592835244690382967718994077035292876957434997639504732657830740477272567644906100288625636728532032109710436978240464338267898822113963169326138516182806204151821802561102845258715009581327450163383678177872102650810925455125354643070848607789540472348233139086170404014002655202562582048608382584792250360976921805079027214240517642086403159008027731214862270393824071471973382699960175404866515351890260547923406838212464390020855083834194622796257246375487560900278731859679193290721600875353861134819716146547287651124675853745837275861117520237922180285627736902357921016495378347143584152660450230284088716607571535207484193322655291637635324158006567754359619153715596580072136093426534569037149551937622398491795792573459855681747974758581268676122642853324235184649895232296207360918162788084202414863787692501219404804001624946104135050050112070514158424315171493692396160314505323355486791802662198585797064018606956120491761410959220236312257097709022480091779855970527628015504663683995103378752997975106350792717892924034149303420026501604991372319152077559451765945705980144802892067347566442824181511763444647129918722949439381402526474627409281791156542098081889545064716388727754375061461589898550423925849938849168796342315844533220714687629087816034505153356682359639945249559709993265485563426312409260020039499572356164153365108586853336825289633506603957348770963662322588124622209357181044312677770901374927394255604744047039702996535784796290053347846756635835954832897414983341822720134783495687166135001203016656465217545605106304911590264265918700538634326124041934099629863945654156209432508903949687643813854175080009228063295346299603044904841898599575252539034015229448333394748421994448180120331166955896684766364748778232625785308775456687323161626042140950178792321284402070803684676854900298823536214052314119833021769238415682252135758191515069402392622267713716849209534695329972583650066972301976776568420495622046241004812256123066033209932249317761485266416486441437661477730533555995470046266859332171233849557152174964812114794658551353471259199598320164658447075172446753380828985027083172887641270072284430706002220539671031867651364579598596018155583087003798473287167213910876777257919781068269998155259110380854401534991250808753772808699306381280123940706808394568136082511062667213968525453928504375664185729256938256336876343760075958605077374090084310272410409421293983620465194319783659620986756685820401429058077135820932958967515986734514351211714805354344561061760281449716526310993188761648018831213064523763540931702381712995904819628808600210433511628145353702849208494641997324656615450422701972302344914211124638577395597021016835108268776195227528080163698536038354975436495768941647663807334047186855420532119178351910042199052396595070916890519060678127493231025110492357617706533105413308648040411743623220992301482588028670870335379974892182747470288031163780120033941432931572607517914560298548543042456341020489063073706641917809818384621719880189736719290484965493063335300284133451610202797741587520975790403290525337480262206315441363442308491956163297511307200563074539002531079140280077010461164648391627346232338640673776985647229956479198883551599369189798393436213853414332690806402380895173771712711719101895054577658918534481286045063307871747352322971713266355893516755428417525782350295527893668465211718996665747841097187948297249828914109738803600374953378439354179358485312261109204528134306402978930806798829579019531648042933592427031999003500051951046133409034413556252374265080504756911514958184029568481913442038738620462735661411647385898907165396751016310886778949579649486812251793182359502835927690585492689554423510757458457622648274200147135415489904850691074469297024548669915054467590631982955122953148602556951139759458085056061768013301992503553575973823763738302021364664392536876725615542138431165678695778196902942261944257998192256334636489016969873368563969912642854345745288777732741215378131335035343979534103006854717813035111795299117700062722863200648596698974144457398641718772029549986853221439045168906137785040251599207203271356703624271965569058033107403035142452809529927290041347053621290303932464144940385368377986148245206574920459497012627387837358867781523853843994692841364601552138457805150212408855610938566061971884801444521033298740080368303753345652400826231707866492500548251201456073610759238896936854130337488122686891485927104710269015042077562238296699188835784029478940134010426014310117367227556408758201802169162310223651251890482381470478358492670671059033384946600674526722322034266528161872220275931361580153800681384484474647637618893697073757726523958853823438158615862743651296324183271405218588557844169959538038647200291027214070296334717559070968518214852790076193335497611388446252486986371319564650878984075019946910206839633938078709643589275393916138501667641095473556044027214554866970857061443280751476104648343258749292460565332702831919700880444812820977659334411477108837264976857157451474806865851336866235860716600021548450642128139973919212099918845350924929010155092348758912360673055008352423042705978037429060967888810093079869003422499787665871509711365619130852083865172541676949608634331218978875673569189773578597359780000254638649249685411265947736332572395591315294030946541171420712094030418152981131634577679202730822471699054166483607932737508577405313223650072034494311513088157249499944782793184246340022808642174464936674920538616684493599965899764466773831307718581749326884212022400419668764459466390656642119529526723178002496820170651887675984715761722407989080404860210167280172615309120616561056086365832342284532267639134989438169816517215961914476639979020556069918140025034878506757879510733364085959562612532434932381701109361752232213286950786823911382384207339360632355240381556906302085610665953705978460990133278413390492306061733485183939472249328547127259056257986512300518028693368014603303613287921029434335008229996049915286712886408884162277853590995508826909492797679691969971252984101220735681545967221454824488807937391665418159343211733508448630900341178778813619196517042645320731953095599273370343038803704028120185659109441286880864369823232849757144390890482287866568937971313521947799908100057839022776708681899004398282510674105608149066601326217646257500265543093476937331869745289133738177024155289034621717668810966302208728671378547192531745242883541293756260737433329485936002702373283289798730575099308327357415899955114390101293764863444702026135543741059394998571648152812549636225221630171797146994039608153449970104154909012152073692332403071179060576498918140448535935044389455838193360515419220923804274178708461013072736313852422986360784513116042086379194640025877163554268904640156622747930342396313061804108905217257725244155689924032863749050556207007633093068624505523365117342004477929326945476113701165081564925282969108077437980881886438863833487688668356084317486706355322432055446699492336303004518998806715133460474197953636501142553441602381278429759965405822440515258454442631189204810730279784426082120862779335911772224797838398092682742501826216878932642293300318184334366840107539185275289722634501486126170882173454097061143981642423754970802169708323123704166337706070468342126379340247405016069107236119533797476573499668489117085714663974860894153323077619075324662027958085333821562100932470618369362806062303080504137162688008273068646609659166622006666461883196968145821807286973293604965592809268701264257607545449481202990099281802101996337588027629933029917627153665902285256226011466256429560570944500700055798720459996431704086968619838315410021552189519036335094148542015753608600929196778817460028906784968774135232748154904703507594521081587915305458247851102783312382911853684514024740879807876951715419392872653096703759464826041114303458674091940814719024512740612756203640085116272479699494345017208607765365681277444495704837567141928620106053257594013471100468430942025732015918783134931609837603120397779462019412793677547979725741854651961048620551961390376021287006363954155736486270254148755795434629628829129513114720170706397422616096724221895489893399143681312465627384577853058816561781304086944822618565443593985677771144937247508488655230747388626920753349158266906495317665853917505716937400526654602411246359461369395649687875876552107624118949893269862317694878477195499735935588193558838326208044512303130808989265424524494492893287061541691758997966294756462850275964521081896464158431450953639760761501562996591872797407575585560724393467428631059459569623669837907458118170621069000749664374158391236093984354421653167359334074576576474899945024911978670065373553825693395560314007791793127729192376483739843618161612632912284256331854189341410944310952609770979193927164633949159005381224881326006365144932779785825319033582139483082292155251983339317891889410461354835780346513664897191436124475862499672344392984557878953710005607696874666115129935249237408313684237715335564281005706262031227733258587856626517638368717706488853150271216402414128920769504325513014567646245481614506834463660920981721910368682559100542397276889446567364966029467541346558405577049077417944935958970030695910756576140623657152025565192293618609733138172219574850155396387959903959391451956266234963808466874273806013944546439112056214275662760103028532728676726063504884873464719739644828620175841306509033119430885803765130921673899206728322032217746247816426329465371357015316278863386528930303913180549802321092870722924093269808866132391543126962293237865513559417772755849933245919239628190458633384195852324958595739128804881301426986749053199540983467862341146390814746521435358164905338889748000530851077861541513668699017197367559227451728208519115416446184395666252651598879817845968510196171500891036617249156377665039134883199191240101386896076990066937609639924788091033468909475086574285687399145595577736463054170791582918571656359215869788461853531461673575958496340175259744430476876071275291285645606090145118313725506782970540851840385563177400336489323794816325605587143593909196458483428520022554882603896770023492505283601479143136268048127971104254267760535221689709654125279926139152209805994146731122905898045149354581849712390377804580440250883688637429552169262588033423352068795569666644901634086998694233188545426755741618883870950045905591666992257809457724189845077306772389643275556516622249981924964183226250131298744469127607175094706313235025772989968898720663608104674292633454087109424811767905230151323604205247431578429527236867834746872945580317372328621336305509636063980186473205369745761227387621566437707795201196199623958653273831254199579743578566920354763073034812837971812947861239945116753497099668991531250995913627834098038008074482142156093280675474074531199477633217478248126043871246376776676339091711801537337124867640689378561241985747014126832291847653031129977375357962868299783760221620723418430176867363082547991867163318243383162597662401010000071906822296129639650566614658412498923667488826498975642536490649365369085159024483663464385221551035876754788036144763060218681520365694607348175945443842312622319619896629488215745888630670322762114297509712308424333158834394310786844661295493788456655859237600731254617354236878573297843831149811187019226971423619100921826585221711675151195298453891273908749150030870119998028281844796918646613150868926714433481787822288142498828000715937790387613818220570101293930907609598311142837880683387462542962436210098671466980157966619925903856580099860721117462797510002204469582242108444303956419349370879222941011055237061393239967444278453539199601274757764780284010316377653221313403262088485296466483640330061708953866068559911361288915089385535288986170077749294666587975204472275180148485428175912874080094311923644774432987628302164987884842206686903454695171424111616914483988820197836670376793433679160956042817357964177947435579066616816898825680524771209988298070514761576339971522284769523270360766865481892139186034942266027852352486246960359656776612175179888832525838011174177432267691150666982231558260837370684615914999492183020620197661987987315109188271565786531546651326533627758164793859609502524601771195959063895056435435317711581373387291495557468584798820862141688563691624232654664533345979553703574768021134175578552635844707309157612718306457515644378599107038654668723115733904958790446058289402847401381950079189675298503084982783197833744995111391533200196064084425077223634664832434822705416253980566919411647425756492473258068288976269871663402510136242519445720648955750669335927204147222901073746515122499713792373833487091716771630089772050285587375867779443945471918024249688160646316887661507121475192670468132370730486455960271121302661703388084219751768340454585104936165283617739875051299219451244834001709107110015196142753924381207319062810407547977838292456748701159881630650183855382582081907638544310017422006272922833908855433153636969269522649865473634199653698814310469574954032571488969007227752521486582918384718252701807727375721039171039952805903167995821929165794750981059186812564910054605459015738385908907966852507962915201702418244729474387426341267090815210928066063683256885272061938692785611132020804644751849442583855693483833777917164742143130591809326428359240424429998312280153709940032288345189297010053676587199222678652970448210265844670212481828561397115232730347064118044031458225826623019470328472643398702115414982177884751236676233969031174520074260076356224611890208501652824811907535806762840549446003284732553173379677880085269766369927652287307259776557812792637952000795100752715082409852086560678682469605446821020006960852897079622039004729556815187805516280836367747495665260215287572809213160228622965054668347115302698130115904787065186550133776137473978944084881332792801126870784723186860557657021119185239947835882424683451487396254892918962073591992007017356115913684898247931513642014311815865196356626566733428747553534247851619495109557584302602625299423934666903450420971587844362321628269242545169922546239007940218241631307554983976490376038974265479674875844483522720273705202315790777437156942089023080750606227775823116039785389364556563755229428029962681013321655173391246694451653510228491297608742696979409559168550914121339700954007132466704000206351100950969963080867839752023356165898776028317721111870419740767795570994936151395237487212375502681358523424462163270532339306285129856650508813165387487309773844082475054286600228693114419061426678799827578893742805808982968398322468764962308191623123357338332982797595353131867318916292556318894243778747636764704067940795819721709633003085631899415576290651895543346926362536974109030371328466583727797831074210945619298146761056208233993691374165112986831071072556558353512604061731481519698828245510815484600725933226011579977624720405486492788466379086908441548104361803389967581337805434204424909482337434137885037332013293264748346927774878992732981297457848162553733211745369743276963608955358706882771908379224342360807620844913412329160491642423258418311212843770259322400542473538159845198193191373320070136351232497717841920417240816694695303645483089618345152724304813146456783780273468958074047178389632972878211796719154825925806376163739708557152899135753274324015834813262822041087126832525766855287009614325194031728083199852845599851155918754937739186021821169274258164420611515631076202068982916856084751029704144875292977959735333105499930720980339125091936145096202881208473568932079083527154620875486176984581817139354343830406461653294670385211358310354940585408749918258097749509862243857603336023248980114639856864243038809870330082079244856396632166476206902184591601307667204853533264928166441583228677808148597190497116017059306604779110745222919691380339558551150179472032340729470676705420949707360500252306629873501289866665892149142411893842315951061319227976360701351314356223741650046900847359137600728888033772858748525092174637471093271540550664856731988799291267754290109777900738158324083798217465667317613115442664473998626890471025179831646606411495995354963967747194340968327458579434250187351631963870913035019175366263553812367457562261668059257853556469924974527401154603544794329348029080150982398997879644943744350318966015912050818434707371636524342763974683004397895643348799034940432033080742431716732668020699250068250954727442716938760709533018374105805934634000129230861661198322433572674486565610977614960897699905176950487629774853796664769473510934879897096976055584812681502154548255127391310993670009933272057781284212577594994366475017046158873237494760788833325197028467555514589303912852791385705947026476780835614822135376030130770104093875480764139422703188049963941092563348005825020937596557995400928641787925170965331491572563167267870677481505293085726208466999520969278835582079916973713245866369448928669989292990140116788402751032756502458430832881617454134260725577164342298943384278937930510361786666948504729939589206498747562466097784799380242671114852072341594186987209755638003244346646719833410149436108884270408600227164509206102115311237891188525086163785337295149435701090264514331662285308608469899365412927080063982244283140208897144362654298186782549183681983156716332873628841513125918797213968014406711674632845475391506024421415967763964434701974758353565937275994895234312300394491724716481303646892979743305880918020137912906775573412295616466700449854493653202071182414663959888921734474924226287533843891235604065868498813558314597917864011035268214790788175972394869897193405761486240592923780809112127856097265388369560088630056014555494206202314124183331185186241346338157235222423280771190210051309877231028439583481547553097499226169285022435654744217552801756676973353536306843892471921695264424299654192135623514758500502259654450500669423382910771048100210596000469474439431383073427609511782765906770085851849471522559188258096129016811399564244336838805800988539307344045134261789422220309349275433015512317300504774108532066991205457550604197151727215752294702498505720515310683002602627610380604106669361381099569681744598699785149741269785963151336443444348760577580097989233416421923789979518459007747919655566907315679358224301752406158521759199495218699837817323182687809488548597627206595593577110213955198850252732472828293359142745158955813153805162567605690684139684453205776401756090841872812167567102159041398153435063706764972514633515614369234452354623412528307717305585852153036907560502357607497572301491046870320131707060292177363312155159404367824016050133525366415647535041633593945666262760224993300909393278058455809621111450253306633533892527492150035478131256853793241189949151491777242736311345500612414565678136133299797256935933007857142234601029015314522978323026485806885232480288989732944183298179450307367608263651290292635026593666154281553447937377773617207886488723248243923497744126882103669446621050202498990971184004417895002943388037874022567125771047327168220735503204719049735686865264960181941233575856033385351361456510470557629060376723040740033730749537689289284546594308273268867790488336430934593548580455743149251873375109711988130009241598144563313769777972387599700980964808763822090018812517401786840104322999640758682026830234245610848225670105216328974112510489282139489414263249589786594169999645474752908591383482501594602690584676161357301745478761154983624439716289850021183993563965971187898773107144261422209600674407482273763690718457308283897003854431541657075294473767441345828963104727560480538983015124986606368789642903135187360541689014609873006370151507210046294808742333751946968367167594173087405851250817117932567132105862785385027592297436087543864968648874872262235841522125228482508275683115333165468718699236153249889369930048157567906993330913244350689543859580588387732929412839651481265397352243990721861587389646724059563328790875158465531358413065142844826550119868625614071174382170916950682962254928918730335990444672560948494102872440512591846998907950512214499269109368840986030377577718281472548536822533231885602850233891948202171613353428800953641433284326482492081071208240553315385131923325641074302451376026479607074375982469073111388508157782914397551695928748444649973692596134240052439592138989813422954373715925880368480604756518023130915070241442456049724597326354068554866560847336024411631711990866850787934122611008000392815652347915585987649825291709825421373076970458403080434409047931564708203251164412879703942695086704572357251735756567904110458899055490018825695212048927255937902943972456074747141402448591155245961526032919700235896207795537810011445602446537521883686660927058278001776998062163119596486093327016614699015682431847974782787382237651896807402320303666494554080148630334072421131388723965341332029770861994182399871496469567090746214571545433536041719878624511181947771555518502443915328261334302180175293517368782772483750619555975662300193319929842149262923870651793669545680095682722187071145194839251021793238931604601026468105740819557293792880983139603981547073011694193518339467392266961328928977723430460352384830445671851462845651391029649702186398718225823504982419319410075304699472328479030445588863719858287626362168453820242060520814044396468826017361489183121768082927585215037556574248929610047062889909104199885437111111821825182030192127432779154868798030094071102206121611729433176889531756072764060227870009983565079231525657913791787989439518938107371898470227854750393492605873791489204290173177785887623440263981450387818981601707666892108629659244073807912240311785554344070500905078282028346336950058752719927139644957525937439610850742004380319412405604830846243484638922217653324704571285782424009442881760470375176952906213499779509861360148907043060876774618876726500304163496128128715127391547562231401357790131073226162444931941773311124469706686992768472314121367038795127267908058037968348997775582372861442634716994082332032869675511183897300281421490095819263434696571812411846987493275818562769557444068938608747985340952939060058359582264533500183941579719553010798309055336945621585251716640425306437230161851755732501136370055511000437945973124844411132719985533814496005568874743470113534874056502046633607572443219491434286671000816912013591557740827882111266687832990802058811910432024828807223372191884607470063782750205289980292575229950725046520016862306701503753434370013705855880521870451707037336663953010871856664704883166052987209077525701141785318967155053940482474208015184026545460947661982437415126098367023010276180462782098229908304499640010789885198294149414276678903807652952717351714303941536005469221530661808845727155414569163991220100399189055556957715471101583112032507437886796483847455211570879300161415437720162674364268867023316437675047994098066087807084460620336337841779991173625988892576062641917462938078482860263781007853795340523265787473903601613645454821535536426192539172724783047754479417526919770273723643271636631786326371386793662581679486844494947750280890352182625189023770403386938648294212007961357622833416848185465310814282192880994516002356841590631744568781244272967735307708615087004828133650103476871578533790108106718956495369557852729249098894703925480354911497242326924825298989157624723402329199699452414479475523738221154554830766670894979874276580175491002081156116068285149309174187468672450652492053412256775550574307104766800275065288574099526743391911930280847932115817226132917465410095070661252822143715353486556251642297992993588950002438719014290991851118899479541954860196617467698520636802391819569638436473936904965389216149532289275391128654172996708092024080029786459873509905523085514281556487638467906294987681803488385770047750925472430165630691737538507294443108413925030888979067437340387172035466782923803011726072394195034396823877532544689737174721053460577118543012023564690767526037230917158986797614883317838368289533541865656836273106003210079617547167086349092746130403584466210231238525188524582883035807931350478605226944188579951880478269329489364951104983528365459693624382633190137023210587768128623102987386160959560146328256081053856652211084113676455717258812508690402033478213580428698306526303796411496610706936774021064742035978559050731455521758051666164021925397244135731618117325220728971765035201884453135794807834109806057347107416727817634235271958316193830216742571935212732135999233001109911342567472128141873704629202224607302874721373015881784182445218233297432906118326926343099519893871376799487983124002842722677475589091788117840730102523083029962077515282462716138454851494183508062246423815187846476270560453212477946129402248514660204577541710302222604215774855738122190868084447995285403450029393013352642172485622012961543692132455193259542562464004600407038734267746890831312363979875744445937309106611421963685464347636290617193046487821866378341868275174446040498027267840989774465218549399021084873358681605338115697641626973873196995955859663435043718146796986971270976852637995995398118498039716151320793353441486238503942294868196784199082534351482267153995065621045142216190975147441342810136122768394204913983259956640671099633653954631462321920981261237921512490039209627301852567464289223742997104523058054085850432525610748583631732902846129871566007532729420539665085645799722157061550013897798838819338261757814715734461053884526129695234980380291674410578296538009838920314140324507475640799061999300335542913354845059145251356612381743100087967444569919407343989308754317649750254049618593435682022331697133037239803740978592854199001003757003624994884233599616408711715177674023100813952443591522053749266134428795248365174577805655373620793315198299441392755456850493026020829485631356620088056183132291769744054394730921081908459006035532169470762721919069219385959243726195273444694054406722623725167372884072059610293491531993184073823033760136210584540595015429410608816128293288276745458445703042576426021547982324441007304207748489510858792898021237837442962862039751083509415781695858178552214113391923912738507981330823683507429202491489043170647237095529431796678169299389614755907166447616908809468330811089051824117300406843712400573491823390362586300306763100813087342551550577575024474254515208338358320869203387481263054582209465449440193855747875378450818193094395520860656058471119980242664196826723315248561353608847031451727772523277566476300973509182903405771744388881791426797224882233067823231055718849434695656418342009651824557374772008842766390731878425557510750688033738850414965362513105513660034773934793113560850354515633689534412994784321742791267782001575746920957579900624378334818395490288174785300231725249671550134900720347254329717514923077713857488326617635410350119477351179293503230027112594418945468497443051068792228721098097607832924284887394304654984997602819958070960654438146352196315506236073410367796871962507104752235249647347945900805446794475275568992762454088950582713270400724916289562602123380081488656491105025914501654866952475033320555729537089508923624301949848242509544736323794548121591862734705897535352899351746978856966298525999707197892500569875284648218936983564432773222031219846176115318737043889715332036272671072260418961486546663732434264129997981554775067533534563769600390155653462054179683415465263811226264141718950592131450964473303193880464585008663853142422455290294501636234801972196307755029216942270252352206146090347598020283873193204844892165782409767291021546291991081717544480474689954443308838923036329004034656753940778770463176774940373751676348036045497412377534564021442604969718018549254151341401797415323747863904090637441258553316831796384439130310098916742420522850068647068426101222159888448220789148793162111712252461413912630989323494658615635057377216502156471505930930478516725523308686898423237476784433901528345034288765743640790936370914360032997623492649150362958137346358843832518296322176935339679408203798371313608578036496340662941834056778536470542166367219170576582506507535551816258646550720129403471330749499616312294107918010371682249940764567016248806298303218188427250386322990927411103159203500707887535315482467365290844493317581228967230975506621768363572519595944779072583925257188894255928504828556069511733570090805143537024481288171103791216401995111379719022115291977727086761052222795388031276504153405282038206897542266924260312950892359578795358865338956992055374475691448576089084245745775895588686043366512432776718352596177015573788226781040474287563521650284365608956046952648882643532194426848747513092474211411022775746156157903017537800025345761089737794811121057903470831839269680847504325044497628448905477036450034589578990835085426007973458916149667950069685901582713717227159950837295401374081014963068995738671061950771565224616492485506788852904779260110533628928323723886641727533656931130008860567758725138577177127349703722735322701430310019449427596169157177834668629823334394007335014530704317942827818661295023296898665410687827100631161458331601051729894045806910627301942769477172820434557647594087913080069903022566598772265343624039960091567249470263268312699706981882728390036572341425892335706232581612796518024240921425984511007947247536493306818575878947539742951215448862453198569936280054464693319444360692276100852553243346634513946162895260128753874426172656250213698598570836721516573815202256746830562807475094301610329650353200121109900279983648289915364377047961577215465950913072475519888023765517085121649498009758466762741501242108233136077815046910811299560175407444564392106760395491930009404736195479060589754324015904253203779826250934102222989069346215409161010981375335513776643694682496967608704335867119055322792508058733463729655278387865054310772203520519612489543560380384414467729893759878817611665664176263578869973129623180296692404822868873280683016428289682418483545582281082016541600583506187376035132820365288769329340418188673497612415838790350852298992789556098812837449079638316002106412366457284265082090650877530081986663558351684296256696516407837738501885573092953968739441938085690713778383164344380991846939584011042883124761835934348551155015299160277874699352574103855413624729600530317376773019016782509809016804465200149489674662453222054984073642182495224941537760969620349957354813471209925309827829617612926651301561519309751982564059487147784609832713726838896882813885576023306590003300839086956422838008555411051957070000953599472744487822014910334272452015231312879213569602425354862283501341234457663604102175750563332915770207736258347040977803740324047302008457629491189836461133351213638493911190982118694965591692895846658818254369021046739078596508114100758937616148883439089857074895847861374526594794364661483859291195040558711563593804003963220231493657776009968613922174651393386086518679986567826864104020853296036330014254580325053952114979505680922885140559698172118730726369063015798674194743352158157703925994770701422585346051175511706567516773699536401047789347769310506586364819399962649092549573444882199651469840707055686745486667809507069394135553282097518630567091953261327289391645590720660643316923012236636481066197879675371656766274047338545676884516008033602991388818483778824138347047493357982906317811103829421181970577447933886971105875390157574756618454400583822516957786950549573676640167610852437608110042837540881899994359770030568604331528453519646634010178912098108890467309917737555395967294745955400297560821652637177227434080011083263000142618199328520896401832343364359281787338506956589968814948334521919086580885466701776344884845094383573627370380960141782504737705485529324228661275563418086069602654062410575863669334423466531259301871472764158075565226642533884454419819215964602538851165575440219226423534194511367025786219927451785383893570280539643422007607412703992524582383942870393271864336445990799170601413957450582167413672386783490183094953454196475042269189282751724755008341420121604146476624305012413687936171241964864328835034719200952975983238712949503365918584671314559351712953502269954240474765691582938892753334068863269561607960002628181532122065029506595258667773886936697480701607719931501346815343370218384774949225349491554478768934768353449165411570610446125165479692205938257260523002526050084885200979652346828821752893240937280220002667681616354961511450152981462867041102114667769358594441922590357333285305819629205901404250155766358040220563355660887085725521993909856164597736822546176361856479045592893516561411496698746293206699323241419620102688872959511459592114423318697937961779888762838088443918817362945194772305813742714610231024237097262786711601917042751205598416499525733797953208182804740838672950825124735555049323997914828306720571850322167658348124343143344282412560841063287718062905268402342584046658550770925160508268232938012670683937283404858489380597283275650452444800340497284722557266042119682139065058544131554971251969064914075887975119039009501171601171321914321473120233925272928776062240553190507126601908708502807273377753187062854744085469898525961388736952754653687003639156881276614020060380748318887776302953920612118321376367387582652034927031975578457149713812786031300622779012299198152987111442109135411463550794756805694616198713127745000133529990114910266154353087452680624835478427683269657573038538378346444382504455928306061697171596739732049567487587899193755466226540201289034504213081193817963495836435985170163652498220798192750437468037002252530144625418701666681064082984044205985836130097148811736145122893994919042052020940677699018783076148244334412418467510557649356579814585262249114701624613098195605206318516474774709856502460126347465310785612356959680525259756248467373932326617420553495615485732730831806180878843253239730737723960568373302258146458893196134056618512059915817719074778895545186803537117913238347707713876768737238656964059784900555588493252608661203786264420660740286625814379068535962387657954836962908368454061837284586618767902565394694880441981822566709678228736376486416068710043364704143338030068130391768982281510943002735551254901937029165332474685240406503723279131421740599705001747961845340182770544887265945150809222200620339103369973091591072417598898078692987402813328262217546765775285797630022753428744160648453867220388318461499990673154446815679033462885148865660363312796726370655786711175546846483281584261135427938980021082567674026813759425518800815602691131762770848551314778670916155964455109369958664316080871441283850112597142508858292733486108346758710844860868764068635053217111239757652390740535732648948879284136748661154439709629021044730681169072635805034093326876118894727615722465112083186281146581060368204207170037800813342168434967844337157405277164295455512086805043476402559532291828155277185378625050903865097907140129400106380740544010592213645965999184771532846957100184056677520293260834354981268310108243396148150753167814762534034038423001529353472618294343057951785135709422092338878842826036195100188980014947037189423809448978161403647755731853945550635410928323134889264228441428126047406821503784975736375692095718307730586626038027068208507667773245254605358216354275286875381510171344302691249879965676048261823543449710805380880919649543075010622619664276479361461968667877614403630453158161295901281802019066655541475211791782949876623288472677619022525256347945719759188462066888852645038016542172081365587262382772915268106857399263523097070478081446818522095324438075460784840675722325288680353879661461639665158083403656690788760796219968168273234111259331746524051349389987293359984544872232514236969161277500952770897959171616624428471232968332526090833526521881494095989787747082764758211913859847033249693737964354087141313077370929136583444168023840647860070378164443492257018729538266065331806806258655870589705453517750049156095006458594088213489337718063387070988699663828863609170472118459340902195064736007633175100945777339230080494020564420238423963128462849806951721812257152385325250210927501488079662992725895035979099760959038950488795432090873209016353241262275879967281673946174248159423606921661406907989376050802189454902598791046331618447540926211633462176475635185685020123047889065193202325427912300145301935207672094031421646256225335844620516233505236231298002492408076990113355146839467479484063599203891215289817190908830865933724968840210904708095588522666855760705523958238145678051300689636870605822920077391288954813790745210891354681565107594692128209751283889713748499732005855070062712521764946885015242951085438545022155635295546570343671235016490348596203270225816238206240599547407702564804173381248195205946886448428641487758154206442053931462908592875337166538118730836698399405313773304160114720667068849871733072382473210920682226799146306147315911456902504323637082296823627738577324225012357085483257358939753789805606495023011625688577308064389416201138559212542559088441181424218314509627213474035462693978744022119123635641412598399517011249219290607100971105104270558561459512445594579960290029882796888538566534589973520650223903409654785243295273367847661865289875214259808547690433164487103776615709056725811619179576870759915717380979027722710374887739453744479093329059698666106933950883525342404122053187787894128830811689372811448026510313003306354572159333473565489416779520647949962992494063485904074641958475446333334769464663698058422090165250854172079503002181711949013897916329036274040434421194642903632446220576018149699889136783128618271526413883306254974089413656608028685885450399578686649094466286421969530375203368440040552595406241865820564011790408262626178081245525300000467905701453468004669108902716945685165936086146811840115796665833820717016307247807617700609112760971862813999619968553628055366320227664382239717557435399997178777051223354029928779922634025206111041944751230280477289831593046423314476894607708198304610666650525327626745767877491277363602752697961568451617416108635124845005782899746645618804758375753433716380182063546902985768614093046702489178423609793347910453324924011967781058846769509827917944984004245078154708997329827058868565567041047084780849019352676013922956706254261028996526339661308356775510088943638315204187597870812900914515023304277203967579166165387041672452625072598622420208287058337861101951314612658521750040212201414627424171135478119419507375896752912653721009388625872859483350667628899247097254144926911781689745375519197031607867619363514139741736923708859848536036935027815086188759258792612945806265185767449852408466671512284885437438019608292803278763353981563039093873202767611056059666100386800874354541130943438678009479381620407176219125314008936657390277149306393682616181817937193343908128998483143507102989856567626843320553113404374257752845203800458901073692016292037290867720351653346671824604602934749112109871363834801050749802561424203047408846944878850547508403152266014959228105641217249357019689170992016398356294333627247753376524315154818252295787839420023103472731741825794679994715638886561070708866250360008359702452079755564240790982854614239936691530957878833280567914396609750147265801082956007678702462066277112022574751252705656566642265172907991541062896112438867025349113298771766246246808739033356855595202287747866866570475687205386040267361359414761530031685588473234373413298246250563730101295260321103340908182169357751259436613919519450700863926900144958719480844305763442255895101977945700853160054005214256963472304609679268990134478848381974863987895193598624775586830296546869012782714852798447106216836055968857746733512293605875996080456471282658689067614846284853296589702437611312489346020192240637024112973896860852916867669061052496346249866990060030808113119207023344168182320204911907612359572401386695245021268063792395643169311736385008636332060477889066643405112788643579456345892477826423970485003521438341504917059802775269101691629161237320211996397699054208896294661630270916182561093939007444862430626258146208563376898987113424073163720300262586709937250333939602296827467278549674568815189506945659445558583807111749373154065248143065535859655491084762509941487170565810019087964055703464896774270914483651684661321273485203068769547730165579383566530393725170093913130774062308054924048124038651772902475437652417898579376717591370149761071828231414876268113494407277656091194311935144339784148746216554539795367175521139161571197597543971697430222387798816481566040196880709939530154971129141197289547320967171070535518116608618199838669831623202519861564397962197569628761790484581967534502121297858223144268935614968682860237488764685234328651466148199900508099122355182146427193571919281325914753541036199069105323561945328218322279720140845266788227547025941442607233393388612464484866672945223902569550191173784407715059511232258320528933722329926212120173838908519524139053017123214258003783946178318438022458935875227170771503948749012020834256472815704182900389531727153208106690183194008483834737159962236138275581615176354062843766038958622530970436194485870843902971306871679185475069391500338895383340512281816803875845527856797863593984474785341908769228258622420421984983425197244167168958510108856427089183626579965022673252841911681357749275269543377438657595720170743998767415797768924650917422651436965023725735961340056146762368289165251144160648187531116251350551567862104476853427977341027171147921749576571312756319866610645143211971204636363969874581599521065187909731953362545836319981207428618367917938178105209746457259139345608032960692440029430247056377420981279580805128327938754056697982040626053211405169649979781576218114985871127031429087493966463465669740388660394467088431933644696838170600460543985601684812565078121036839412568342630727573752915383909607151795906097357734737966867225052327129940667641035432719469285349199298017877704058223820731497939930589840045254127298792890236464710606659091774764120296644075227308773119112646094842039187206470139147993545691579958158874202949590708951092068670130289977822415944044396572441354086742384648938297150279634846384772315422844696810132144645321897569964637505877349803628640492250867015327068375063468569142462699302686202359762425819448755441558223105368476803611682119926257007578735744551996097723890826624713396149652364406685968262103930413082871668486001491447470262166890719825280780518745118486530185320746749447499736481206978848118097416292745854088225186685553497274954927896351583537991484060878890263949461394886643891083324728609339765896186181135704463294799483821593333384581005041289437105773783380937763474375252968856929117126023176071817174256862235174696389682874587550452703252486491159129406470822607779637452616890246485571822926719723401262039000337650417302630913864207924517974542115057380945313406712903238237000305106696743319423464843749442553309342218195993650812450337504215503018277024603065431401226752875718884809611538812206834639250918436498864885666979023246481982458333751821561235278154403724634297092886723018440571643164291243969836961570295408973586030548888488833471213003197262212171771425829217854251298142896976195552566776376953571636983765615962486267673706270421697813107663202839644480637027792058415562785606760680587507679354937892384422689136348198994509448436351924588244205039996396025639202571005616312114233011976535307229891384861777527933326257319723044831244360610686006592531317049019066463012398669947106765568762526625855142257888940977292643581306637667136521057765139594570836594390372777471418554398470555046707944420099987786442676656951374098588414565412740174352041114645505634480585723592596830579774580259057198656530403904880528640829241852317520884816448585373341041537752929553507238938018339404165295831423417389329621999249312366420149244531773541022232429125197585444349539689277548250056165122632381203929505163238187395124417278409059178036101812476223208510143253972441195193704220654351548814741879101998952639224337831966412564518971725030423011631410525250418416995670377537424814548948973259284122764274890575462393493413954253397948797605670807862357580398122239160879988525135255953683901089039519230360941862617120219270835710227081572622195974981241908416510204921280004606100921803692789633122706712482709147869046808166290562647010524653011441093115568565238942831015728390279359167875134239582540879370939126958303485940035493284132250989999522968786728211164098327801626412821321493070178408632279492726843493878782502455158111095230684926708303238150919233308576638488978715695260648611239428486511327896189051083465727006685206363510037996845700034865461805764978163827463246865587930363876241095291684825509435331551580542032173767063343029167005845368679359214110401626489693019989006257315129836348881525525258809017391636786666909416432166983502755105866158786848016473456502234856200615920982415645893151488387203427921772092589961728332887847037131548129649753468308547935705886252844098255534657879155135381501032193874301501955387181762399900235618950585073257611594073326651356169278148472032975969612693334619851241608337434478755393433623382671900334155530117247042325140814621307374837782442929097925789479753881857423447429674720460745875979059703765473350257047438136787400078268643930365744811859315197865852509693054696341736367464851909972727424586594121668071223319822796863685224718456226699476422457051415065971846054613800553320582392905430215090352805624301668262295738418796822953376103216819399601808018499290526510000328699403133271201479301596372941568169455207382720658298928505855468186921135972705300980322228708783903929505704684412962930108503987931342335524222436468340814224790589778608465921834813088870336058678014077647180915978763034544400537190054056537804057039787192648783125762885586450896170312849633331747824939239788545246189849155309553626882961561466126109271990870837116346030681971057460103798351194877365119615148529778873346844027309788703625803664441322979385474068759753498638205780166428165856849641463396824259993257636024796426012054086679829273302844808642694456876777027155320929034439603432750122603664024570894813636524070554301481303725954450652968438336148844882255290606314791856091518419294685545815573800933613526856284968238243169527713321445508608178354961262421563220736287216058815065265182961568136342777948159600485615444536307469116038003458080458943894447678609137249532960650822674841944871403439590418147709118533106789583752910046006044046373855102809133680710127354491094411352861428838660527616451892166622914790856867620582434766228970079224505357588394693887121495310726901257207782099142907659020411320803588769167566471159717421830553739544836272472916189068027706926650448989209601159616895212669467445241202351912727248552869281111210484595161771662539931398239322855352995194076241588937344336694164977792961856486913422758229092187056873582179440380631334561104473538360058830709617926126315002863761701115176194711998459894397488800987904469571924688433101139715563474068821611312728961950874898639139342662646480272720585585097588036325406158237455980164288394351900531536643970242293851268794346026291294086329346022511549656253375654746849443153945461639862400615029186092722997551380259057209577553982468526556453362136430599589393011283335700593991556906822592408605924544863241827391444931615893274468163148086526435102400916131544444630091216430726013112563963782805479036411338125271224737477359747779303187301949595069926365575079074086937584815774167512666184946243782991222979768700982359066682713900136831396803365043144971098968742168032392116785815411743833594514472428232143343416784833321856624774483338334418431872931400920049357904183767093175708245992044167643507906614020664277367390396756218453184779186645069548968629448347328706315223552452061549679271319527913052226663959185363184498725357338533624095659903205217525957275052325475123001024260067109176701672004769694851876516184888209788842381711530256518526402186830660355254186871028973175672334111389832734658546244165815068354552319333085942543737549738147708873641637839124559575707682570237986647082406223288128963918808213808635933377610895473507326528114109605923205399136227658310433590073952561534343981685784178118700420053926675191244668603938277428671835981126140857121113418240939609953290180655505104861448626426792894244939463174707107663929500536223120190348267010023351221566530170590880554788519153967193488573890352007320201906194549833601795196709957903671591982847835776332454279314263795406378420900319402650463935852120718679725928841486956064749742038301445176149099592749493897034211027051124763503408614382177445131299167115869231212719373811067471821422995167535511551727415423314801949331367869588697708195810098798889307157748948604442135025197854330622211578699258863206496753107864806562892020919676076314218106802973923982634467586420595262423653353706431801193833602430557372021135087863116327386648200396069261047015410286028222603183643925398138650251006916515497788479119389907012971265952531763559494437640737718602132723419817185366026454050688378652562629078043366665354715351759540624715967718465419212296906637828494159542657294467360681565017336642756417397689559352851828218168508550122237579642758112163372418811361125385833981135795357854864294812181553753947667947300574187128722060195525470500855331236991772135247337146611683012702025449192203810504360518185511085361654373147810751925058804406825463491860545593773713817908158268111314673552143232330147517329611814795938628543212953438219557104966353331999801004514326441782551932288307835330143340859823175351855856651482680419901382837132543245681207272351042209082195802019805142080714731581982577641861254580286527596872768892979256241715204251442495965000376835764204682145719011964191972748885799036723134800191644798911418056295388109181568047067557866281111594799768817052864123215315144028561501190332544851483483148055991448960247022277099003804182661899497126333186184378742595948915764419585479380234149790854520767307781481789840879958924166110288788850288421690213609666789704108061913746027990173930838974699583844703402450404618484114335103275478513367328935140660226014365065990447412524140398654469906578923679779880664198879903412209433304170382084324118319825165986246482765993102719591301303959351752503843144991340821819834402759503713045875074255482845825627785886477187134645860938485123477235255204981324721936431560032130333506463462651751992743064327280832770654894455660669190141006299739585758557128382653182033083515754796219433314698723055045595620263024164566241956170407886241809085521727165434307084611134228092288613644073865444059241722305633097587974021137194266662375896566539713418861345771284377883577204100210207844072687694181695624248617044819908891477274573805412658554458376029406908192711931166359372790756277855179354907639213357843421240155574571433606592205780603876858979265393252630135571142501964374543113877001710678065818002354982262927794579914457466081411326098116037738278839970278115369758257680946786465151450314376573588077735907562869676896402302339224356939589867096244357878868759751084984753109891356930807128636519592196817639039205002921994010802634949417091168657789935873553791375824979089886686963177096924479722555341824262112542221978903495789843552421494800344086504682036991251348852235794069327343214663745809540682142617807790169737084876226563442201672816975831818273787704364308189011344883638437313943666136324238600413846207677025015137833160598721698801707918017962340638417752778248823645091302796548236895656315565976172052836811125375820236657015107751547965349904026393727505717989403099711663939473065943888691365702414250649250972368529398420632001520646804687805747633086232437841590870842922223128868640576185373254684032728968922695733315264769528693971253026863751853331677152722568106826381778894459435042043002360713998576418150064336412293180639895255276911519118049824297027278415068127081655179647758243780840449656223318871131524141852646640004059790097086241212094165867284060869146978837121767979320228787869864773249259961909314357299975519278237373011734058079880820435361330764324203947604288616094640303444369198216073316846379074930216296922718543419997604729854836535122004777348349955324910628649325695465222018877086942036426602644015333728284450675124383025065647818761500003514990793957600789305933332952348814112465969937371205223046907461842225421453239052949162359895188395226277965532375184693995995086834233372763737660146915062831218326448393317508980027566941480049907654024710301906416834586820970469315405874228799470969587027438558862231251015598470277106773178313209554002589925840256806459389107731745287967716377009950720315575017659477561582789960458554685218468090230033144814052439462626739290765278118295594489309797616076293667287333298751158122423954529164958093058851843842622881930324813359825372270375423657169214872318269606174417718331936166687393188985937875851417663695975175303039368549049867375416200811890645400805884586569979303299835628158205840441955053747052299062538289708232539402848046394459852239844869714358905854501282593301347931852240507900882990161404285227303719488609682175009060828919479146420432695772150273292905464022733494394809172609085091518103146422848475080883186895261047673045517082742301461429722770673465436214732859903950194199345875357681830994185249754537496513764091280419982230656938405810683332035002543626708682904616082640036898825420262786839944969125746094419164121128096262918295304165698042109147041598848050618012100050868863264949737184377967834514631724479807283664250651312000053979557873541190758636043956786927968809473027094344891661734881058195486783586679432544672742485090348535618716848382005158869647308692704171987208380522303311417813369592863908874216762608628612111964978463831720460853642191646473182792763647333620671360710905111355725830716928067544788859667061061583743611546509791589550485362789414747805216799493006896290386209698213905624698821573910289976979701082061678246507933678066790205806154825550803661267255701084047708064212963623777505322196174096325524636135756090006704114372915589648298130208393279367134212209043322327717530601777348533554631614629666199335972333691424200104642803488365177067097118899404984223094060855374220553434612902404717372420226587335507807576015976615661224195027843325147424011490195266421535499854657615553447197629667444060594885177946423268864797161717771308223984280652077376452997388418250486829298313574198673567655218322106947695482385641678246742581445950945317689290619935741737109243486233089982819744072560634047984235416951490746257776473694244661865451732250779718395508963366758910811434925224002166237618494449351745218877603839279347560050625929950870006701500929856979856523196067892640991679409324102854763825687593296301809496242365540108290110917953968514501881529851271118880654577020912267387601396960936366193429257590850108472192321301717082094337547394705131245640862352451085898842621983025496739509538725102054351421410842970214853352873542328751594647146558783915805529111370106282230321131244772558007583889447220507487227925706549523206309910771570147995874390135517223800660889135191434740528770725524071765296275311708033781005713017835985814336539025784803886250619783851518880749216365003061887517503286392487423359700996572113726605794670117145360704483782261863757657654143716688040746848379074205792153607177497058181759660667738651195830745775454626926452325065812654983812595135483474800856605651196751328782682433129740942319938399075301750519465267997567808911418413246616142288598463133136790879743206372723576494384882480750006342403635587694715591847731135924973895380287393395398244444097779449374006246267675037767465280790955101619799044122156115012677383134028333602817696814463873739175133535723459507461417582837986251191188826581839827891088889064064315439019205846169096245332768908937234182797680598600841054323979323595694691293615025426138352510048332105276309108316806502225719488739674480820974310079437017141550086949419991781978545719185558017047549845879932219701962332628539261628273767533753116965925756580437734090631451182043528012044836052820074828326387815136621008413274476609681894338625288099938942661021907540182356820650752666544985825869224921679235465884477752402786984506599366772176615392499013821976528170828999848259327826327773186946511990191581723820156227645335680590152483854864248089215637125933492338155054057834743633506479103397678306808151413220207303970576766806893829552938038427753613658494358272423829833669874310424952710017052674956961730769467465102757666265885497959265759542389127924632658395819809862123857677162911965882756707334913900708741796880880952599874928635476800657550107917802851229971069986748356888012716541353426096183982390294802882565518136355883753240518250677540011120696565596832363961065492401325780044046850230111775446846591435764020939557967779780670431528355862830441479447785679713160110848019059981940031223045036221513180178744950908427130470607209499435954492845202232654163387281686219623871952084498224945008895108459838346197490682682180200741459478215710058713167736350619552885486320945786952624389876569559461966194014458765192441074105948241370862457269104433344126527620116993180346610831532893623748442197095353416782734939789052641513873169867641873649623153172335627680248698329721061558279178256344066143563333494625528372126881251291430309150943727350209294683775274640254034941597929318691579283639279970795242818249451360100878097604701017378300566885883476027750361588214830477980612141159824950071732465636211497165322743635162530234743865275662003907258659238425986218556884757786759407107976418102063719707333960303233890174820421082112382821681100632999147126536420775591492897225539752682469629888005584994692272304030726963015914701325268112533595326911034251755924639077241065166207586737232965938881459754010833117586257078913805451605529483818741357113236662862995238367438922618882719487376123553604993256033820623283746428322803681400973255672071991158877472400452171082031050505077120810334833899903331833617471149923898572554729060608154675759891924627300482311048098044281004869228741491691774189085371198577166626706561819901551029095754778271746718880129421926022676029533140151712556405843774891939229719010136479450709962180257006924894158789512092048385355551064277867024040847590242537655905317882113441364929480292492195973615484396483016945274149828780107938946661922730594944360576602653263137336913296859915508160073551048525119715574173969012722736802586271078358940275302650903892925965808044217716314360908592168953546176049619835233756606317959388308746155968204174418214310203149729407680914773273955013266405649973876985180598990704163987572495455968627683786680514581360061862455309426096499873112911906660666232151169699554071730557511379789914388133347838478845615227804129150622875376540347926437555257818254948966912104024198817425647329206486476755705333270293192540119569667234799045939972864809210716374998765881523143153385169957338550575534729393388996144825656968319106194872922988581773633685087801867563367299791029497989789123967136085245402383506942299024909181690523108385387634430834541534518325511954504188010005876410571958748694624569985469609694531424260654692287186789739400208276301374242575941035113705745392697958205771448687543712174625329651280140391801848360066154851560526688163023661214910225719204895367931881215652682014552963857697591064457407491086132738712513446882699007149889746438595126461459370016079918835591049503475425003721160340732308340985144011627369353850786479351758612630724397889552697746794567929538805600602474446110738483142248568075723963754889028930253572988435599941578148444426212750212952044948936138283506067080944677582371173725451401350707673115794346598039534224111501766021508085075857722647695117759739811615074694318446816043487516119544956880585786120142446043243607302430380830252709023290733004720989911574138651383628976438553295995695587034646832381165415229440726229702337611307500352624529716392292055051779571279460905077857766326696830993795466641862358316635316406383153136124251140318200942866815284192425085735838001341051328160780319794540506115886766001644896025224738525224396213073841919344644200619521835225718273929199124046344812424174303912758198489830164349057321841393212654950322493859765817246478949583370260701137125245211718354786366596719011033117420962222701614136240325220131897360036682144426841022150733557881115835174187194655827875842263414249842189690162622328882584440030567634815517931891329635207523173379360840047256823750455839551611415704507928339088029438669775463363869114804265913508685541169555277863238574812638007548617189360009498174898415982556700699767658798122362011683320574993592636911249420151371006217336061655465266818729554200119959047794885484932013341068131619571153855931578493790077905140151641285500064230682003168050096035344349816708537706818257594340592217416891834863111080187156685199439840329019135294446365844293466216366136154462844857042772799766975783800909557896838634482091919978672708206025662042399440779530386309827741267283493791754559528655772928841373883758367254315171943551295039962243557793965622158202420774669940376585854515310102322768273885796305158004848208506840153115085649558991502152655309421173443871938926883082388388061468407568076771077586163032346571490196789747395054770775655174306116197366414304446936712634515094251621325401392933598921860624547282796225723186782818583665134062173402704851284890118082434345179086586883218010168870748449787334181917623899562255250897504078679035588014708021338484992747729218031557960788193394711502205122139288955904845209102096332726753214539922224008355062533931551310836549451685185802225679294068910406829258612650526383382195237033872356649556238255360149425732192714947376006343354083937994934024926280902370649638836728764236384214959336355365878881273326177299379000942709685537359087407229805961033279871575382495275547331583498413785876496646123362480561527035021743002958231521678698563091047465921871636551762855896339039754292688371965464429938746415528283695928508116093061748727407987590956404944677819522166020878173124890493047629079138518591220195461896550643559034518323743898428801052416981606730050232775482828430351426718842682999704656317749446784697727777867797737754253488788775381207270757291443641451640038414938654392136957903828409537487076827016460381596863459768317641166168555090461545219133203494290273425515827032344692833841150462798730313826779364043381612047830225333108863390330995697909787144877669004270572317033738818970534860345461428287714359464433941307344774187772575702877123857275347505113785100054897295955933893322755566263166261328865683321422697803625576961479101245491522397602186809810519510533036788543188240220692323394222609119215557997906659038956384501670396557761310347714746558379458595618067528653232600472587372645830456253597830489409794061277858945641159758803106380401835140679362572251218302769040386439428734197701918095511240345940112004589765788829744355475795369302320885809992932980356345910340807754277027401861056780982677364133420136803730813917913824050372439486888408802996715656772272113417870816877080274988551426116080547102674841232205176565253274142539310326284486405978616394041039597764978930145856570875383970941790555468599322564837082244226746789707740906446886710166931835949527051934426814253682713735812045097705298104972707053514959814025997689410572210085471550309291607637992408072201418203258387160901996145675893998423163225904957213022934122824913600814751149840335022924921570311118589739891099217130060562974703972832355592132018470025422215102558660099705341675004137965125354982213721609120417367017168639947745483639414021922566697107608910359976356849555719242746327657419550699682885452767831937695627730849079644464134461112974865935554724087367376602201518061867738195731807281930611219958520827757168805896304497831259819635517700360652042868695693806431347604501191525853188122264518780798800217905697220316963980813043202056290893476049497288255628712124983334048315116184579068709034311694130882152767737694187379088854596317499037353734003239977454359119424904401194029410774476484825990526676621457495070299279377874557389931090215103538721893828935299173619777790767949451948201268690373287350531504175138286687611053834560580939474976573247713719316457417587347606588868780324198357901857690079664746487111538937846197681132084082956824015642759545090761250199132507550561155725566946565943026781851435271287829604452941587275944759856636110052928875871167715164828255927308441836483743399521948064639338886590305189288762550932017803265204346728132397575813982133479301272113922334405963872474745571298992251640769414619781873041823023889426850154431769564498649608401493748009571716986424459862602533164394922188948634076008600771799827462988892886274424739344152241415260178129003682889892186565420614150601433409447717346444345806134564668094941937560452026779078979055775630711383728269223354174837068264648137739674674116302182701854132965635618172258701005614264720386279450976652620850373360548110168415129962065480311121626402498681209315201591768866979415853307524153398798746746238760804081960683950820878264963217309907596069889709616441442457310298382204003984400369499349385894203879460553428900391814778468645689174578139481492459597391620153811938427007181011108056108626205120431477663119713842044613474230273433093361107722217954384302438120372350070514597815299674522842967808720823472680809434458327609628952314715359105083519914863027209551899930733658751067379428966620105452129166862506489407269651309162929769848547688283812930618317128144128502961387280815723204648513432283306907154187919342653480829000976699061817731294241565616964849392985830783142901989476724864610552178079260394408955114663955905707200925067552976793650141436410327997535806186736822991853621696628982153860736929494067906756324769352266105761759802047536944517547413788308413901983054050341116672387347474641143928858308050094678988026437624484304292936511100233525807783201559136261481759477243876463218835721604185547956648126575285460210378787020082635607819218640551540330680894791492801428563049762325262982997591647892192033671529317559744228927345269101593594620075254842148794956963877541352393448874968178349806408169799010479168757458040233152746181629221596978283210244528551636075276449592400736059320008616981006963553893556765057679226621752369018771376326820209938044190286387229189483880862479987685840961036506842701462082904811317998650466467240233069140996700992340884190692996507607966631308463697626524450692395317986355787914959126784515200955758377549597075625246939586401492826266527889683431166030741149287280956354691403939996265863950762650848713517335529318202603443028093524880138155414167607756478094678823217422141827419181952909298156733869230007194865644050161244713862654325011513059119813442674076199745634886600317412622535910946495002787175884043722894629471347305862226495723255238908269306015191524170056241518163919788770820011829303852270979744943386807115992478194262508038781137279212490929762539283262710258574775643544928792278028441653336218961648434285415197836180509537676901819601849724377104496669823840155292907528044585087263351563271599792068964762834534240886335129448589322085181174734306380885353711636512009467087426665357538066814355878243796716611908428459409866465024828534346574676885797904366365927001450186316068659600099003093322446533879105362678567297954330620344520645047033954056921302981100805117730224700325481782414059766191400891026119194166560964721488289861984819086488200149302647644448637810553592342020040416730864027907372751044240790829932862243857416413950299586842408544783762277928135195962422931941379651550999956174289768195449647390589233215197965050321349943866597754104286205784457032298917516512787911165221198347106346878134805389871656889709873647018905193018171127859434737086800635531638475007671830918573656659566631418257732501380227899917614089803050181932431439739125543575420180142695011516168731905313943253492407502456362164366212745053260088471539254772440192107259851837443021109397970052943219681683086336839102777035864341823194015341507933299915297662229815004078008992098091079632298667543597032100071440008195930125234952483455206773147408167762038873102588122104398605364886995127764209468432560706890517871498758050647888391018839096340899670895427968888109972753890944474601259199834986681725099453081896665373229200031159228936209223759182209489184219335869206264819405254533128123136598534075161246923195896603755090188540769086932227397215640327638474371358653016098579398052533381428922227197061073345173449555808718106165309431053327912459288553110430532673117135659614401362289308229327673168727426457758207309997985600769905380241975422844262046992991785547084857107669135538581434850767949381253643954150850729457925899599375711365113182987202178236119439675005457714251380443712783591104319358146568640887131334184575942668036398038376476305532967405472943895154731749767680365151929691728595325863998474478822941312846675266392141880483538252605135597456044085523909631909271767355187409473184097164948367412564677209963340361757572690521357956916253458421943019947779896695416647345173398151624267111268531491941748353925116733442129303679645572904620714521901294933184773087709674418654643669990625761245256294398781243087706905047755453635056024152330694430714805866281179317437534554491989685025878944591854627199151520266805400032675899132155977241432167253300219763844569910720475359236003305191316304190801188989128746099498453686938514980730763332568055087926211125296198879309379884141867044196369755856185990624842460200543543112756515308976785837400915169688421660153587345468281168370073744448055917324653688456106384471079722076440693925353717016685162855904316662714454860571774159688567274138219578635410464790112705736890457593571061129664380672680972889693820849080820191326996538144769055768324071539087962117426395929840925635078022710087212338392397630731742456959370764675081617834525704045138229524457932940519806497580970104138042291428187871078144736281541827028402346683894266130792484963486137947051472551424417879659310718774693614166599457711782158944107447720320960066688926651532846951451544311148995136750770932033397218657123438189774508285143440749720786194751116582884595679683463681158651682321484496054447743277898956579168306787836308641924223774823575967569408051529710223368338190653625863855225573476282911123423920093281438060526364494908699164878457061974606186848541113175554851119955743004349131607343209178692930383531166666719137354192867313245122857825450762896098904172965782101325511396260862869470152414852689327254188815212240233649462603902751620598152023385180459918921240832884584868350293723328479764122191551416596961741866409180125807868322773028731510090620273621210893932998001684762135678348920508301559000640221564033207422796392004081060885399949783100541084092871836776586217206368941065184177978910773270422670258025290843595043462092437926590406063048422861743581911700250244969292092274722629923580326191391429967800458409191459397968004624534795403725329385679568180758231853176600702100919265461897796280565644291335550354977706384913606157182353590258552936007031319200751803502419545370021476779300154585255896763249417321437032992414632198980473254514757499962663925404336029159982556686807109775805667215284356329772316463007897865966461071677865824984884897452059628169228942806945644192317228166117244126899337043397964102447300121800501202283183596945676174189920091607057478700630415756798761727029451479829712958864407918738437931342908991156987645452470653046997980519473558602167447151311093436464712577512783077679202663029651819162572320398720193451680502022234131626945150736710419579221839200023917999780600520185116106959270876165333716801860591014927284016314256873438843241820124714923462882062673329601753810091306127525209254757930667427927626528213273304077604488226545346029691936663676978189650989869721159266435750313148159917629356786320309739720701792461826564318791453551686853549917913616033360424998561282760570016932369019901268304147392318972377752866462586815644298147382691805681644445911134295678484562706707766119795833685288235773078991096146268689824192036730342589709284648238340925733063367864001321735775462273424572572510591919382009301206409883852446912237989359054208755347945145938278087579886894550923635277598678439381295332025241602151838094492013157192297777396648690237557749073105082493553619251338578453756505079918633977021061227787705996754821706999505837943966899869588970348286494974562496953517087988378865902347244204951183729011391556707774001212923859971407158430623886665590246701146437515544346860006219950172464654317145541534922670261846689962778240036616553352808697477333603611896946931765132922157720070412038175916389526808425849416486234366955495603870028537713139662551636664341292294004980809005522601405527573313011323067889165129414228244602133860608125483016310214956322397662482826287142677571533530304965004496610766359931658239356265034883423523384385021201902579583783115294442302282303657341286685174658992762903002871731767746609876684296111253948759454860702172988703467562879453494105397720572544524889232646390388555345414830242115841483820970416656743080043082758657978124522459569072865843056430982816177373150457483267796219482638135565656246100209657219275444420321185450686897325208606652615449154090130435978870960642558472474630382319395772047952869321809092915991514840746147602889689525291270563471469633973056437141265741706876852007025663417278512315768550759104250674753961980352775361789140255003750781320009396474783609581463904976433277814241774623576965795848763360451320620582981296878192951233917803251686716733352080034227162303485557922338220664386534195360820183267636242644907113172315705883784799517667638646913491791473183945754835497404024026285115254513269430495490010186821437012502636087250439938836762565594688863671568217388827544122658617988030909926835426679317149241610983595005827904193744864828810848954511613935720180782157245821817665963778928549921804396357042562433056275149237853446644376973106748853932205308602751647379689079400688255786121692381013895678955742863454099235669984712092169439421640857326516436600576158976485806185324716995730153083196433007453690103430728525752149110281337485464878300191632085698210960849392920501912108677151012466060721927647693097284865233033183573487157087101311028735423895867711255962133844915713093329455682363267057351542670787101187641982186238705327305850368471666156391610834472035044281429817879447790951342738903531000098016172893759565055168823877558580109398863901458642215354879992151454241889153819413009694944867563430032144532666371327357725588869467596234009967231483853970778427396108570179228018107679856007693438499120772001086607777962601427984381846147770043855810536288131357989435712828088050121273460069393847810258177540831523062024789236880081908200462740437648754101334881238580120726080302325146738525819754655995273974051347820209140550084108744689072744912482465652192550652066895490264258597808476510688267029228895158409020211873982699818550088509188275652804241010615311618051425146125646429459794314422795313508203352249479314560076161403589072574879292677026038305352098890625167269518826614025293710509619526115261267100500584657710344062550428211817179935583025919307105026658498064249383223990900684938330973600669817873275312011633840952815255428162578313282282848752941802137663142645124484255239440786794619347970423638187162310048620424420091610624703790446013399112862083973485134614144644435581644145286789335442283769618901566164890029662949494902916318092928953998713394091834194334477710411857645320239597180707028591335837798943347899247133789732095946833801457312772970164655344847038973824706461163035829824604242413934829602838198938478513734693302262743815646608154456083959964316907784947012507069188829945141765831743670293781767894235992819745274754203429961438051737408382608667633429504329701967607383198239368662909285570839907208051539745247868241934682200145336232361520335285143031483880338717573189877588635477790420955403778194203065116117173734150327594296467621895920990696260499693703621512256414956915296809584899623800678317326254129270139088834116396161637199605800291103294814839720659900563249081150535113566138463649898259482173394480789216067504459102952911358776989459981682967828124364373003955407406873910085949712044770413254657982535123566597467817696741510219167847313708169199262390826731668204991266870476834856268153055363161858314292501037215101420591609673536279024823355299596209339118116039388904894371195007014869031337868677755982440777811366456540403239355126453841561796758329498926332797396217998574980785285810103453034166189883190029143389961768217459113852909753321401167522929985103018528033966610684839359939946539478854421022310866751047978557602553835411570922577879200882426797493398217141639425641631878108727176902184827064696269760008742137173440816318190016970768273445298476635934940358414287890276490406691292522959985390970185705572118705799160408209614177056273498846827674067995807381399753968081751066735719366810330519961585317193477772536880090931250872233355105348659415108318065096929566429275738372739342954104342872585105249322929678714899327535009672831702024824238968266393615275126353154440991441997098722006576558508134197166661272276604874280081249331450990350601113599337629742211684088037355868002870794517337478723981610561776849081536056649600707014091017271732439938076359061205513303202358714342680823388301221606040026057669235045126650059767718416235682254802505965328574200233805496051358152027092373103983737331348408067750342088565667251377296390750260745696947933799287986629152083098801886678233022379857227229559852992045304475038397939535552574206240635629895242474164697574058194534295021799612309839907503643307222814786866549895577025814709153711540819059927852644590610965212795093374550850033236222141306233361434166041194162162615310871600224657770163902869259875029978810130924299777080019305263430898115953866906625341630949096646643690615383842727413907429891718957178125545614986937063698769871800447671229309909828345334328359245681826390048941496139273563619725233807542841687165639597559321372696114522976106642389246608036977572542558203087791546246026888889239516870062156522679007050950605047143657830548686629018978815532790713200404365071381062974502556637564175982174283205181841580466751272600249452096195119843117255735774459407245568515558684903344045705968458765470847705831775326315438511655602864668629577659737143604409193438377711075593973639729063458471594923783070709658958162409050369245265698198581735048581059017285996013812287124603575697312690418539627846119860805936440207601935969047288202555350928625157254487364058794351369738992596135709214275557336616374503300772006759258279870928159997953273258141809807215485352644539808698621973620985168397594425119965182381160619697303800855359989116553267011937615844721502461757455687647684567948406455139253427155559127082232769651845412507356651762333941753068590787026075385474593938738348641947494919858496825698112496750063789917615146638929036944808835382373671068279226928196312016213098909736408732472315778347961081076752362691506361682133994570819357155584947845762821153108189138478980448221110467851445849365235097235926467412195771756346310498589521081694402218465063797654495807158060721550717900059211514251986603003040791571790787854413549222477126769494894717414268742817819720889822733232144780937463726912617062436178880124632133016375399471349619893082297771373635309038151869584154346836462119317010872827447488050747931939101175546982911414255598438648565968907755820960953476646207491256894883802948322675149616263420538897670992739471837355606744839827761481372235061669914991000307502804157330885515054114435321583546647828009829943484677184186897241194238959740984629066897800296876549267987170172037506195976935608201769751676980488761965598930152579121328699474290290368172385390039540400014466299970274452459445192382188724791204700616853403519978508795420096905117931791622934895488643251157684051231881949834294013650397262656136180002205199990539047927559210785255934125569440641435960800682129874457517873530918423056171783532879638540631592631480252343888120927983308905022877124580299114111530363106129391064478627662594130447461381115885736715186548099036207564420242778591560064084319618881598019643155923950657240107109156393552698326768612886006142623363126512562641587148450572751048294599151743715935486121159202805904729210688053462892414797342828125706796949448039105246942806464868437187735594524571927146461231642831471384252940400443901353661649532373000928169016664614788203496186679357289082892669276585932128637016114375487228464071495726276841356182038495319539686374925571294928955968923332478611277862600895275694905714511110723533281033015080495793250720700193420338278049846339981982515825677371204618234042254497814639438735162003210695322984683561306631465867016828149502607853737900692543781258654796659148165384386373807299842088265620802945372011939409345122423566769295958447706536831070764118821002538293682867076531241063644514769561129642581508767095614860664215723501148387613535723190217480028693917701124395520248639669374412786936468909419551303659378278484162512643690400767573010619483593865897646077451313305029835119606844830082347061853826763259616927911919753028332917427506636786373611769383429990197507736271413359853398405279798341983019106286213967059299065925867458397332068498933878980882210735363759717431706529511197297835637541064011987123476818684362220243636384869500179316493350025222574054709881989808731657953703994385210902716448874369550678951639536047420236606810885969142338731322678154696628351600603149501301897768532912363515257799577044633990560872540737511648672602724212345993035773855771716652882702506159098957919422647652858573588816623499770269089761135646611584119857958483578305801593869655868399039699256242161521766115257580418797835065788722403224518648411671990307682065820827246187864445300464527018183198549558619516310994915518765528655081732925937298696358349753808640466693100592199901382807145676210659355363139382556991471004320525513644464212436455781110079007529659167362941714072982803598620804173209481185526261420839886962845411977845975541211316177888114728303848849679294881353908791231861282417385891722536026663348333649433076547512632864167435830532045019382699986425014266377495595033887655573653141606833924211387009964332568809029748844195424450763919798704865020986105964935940001787075691805689659898170807111032517131014008225795958065699968735417659817538586509149271785580654326900993808728282606325746099176579254539354272951299217032538136030183255109216607270387222488763441619462052248512044723066236614999542628313393916019946461808992033938174503976456665199124287905149157159568490276299967131921916879064305753552018579532089708230555926993977384562418532657247511448428572220121598853373246090039633875734301867393219793057930335969345377808259273194811249861445709266094209502487721474767105984792946228402993568831073510995909620965696374549846024548834012628144597345249127996081345155987780022546452694262305153918716833447576408214443713806222034719418462131081826282954213430718767147024143798232630646528829679677742170061363990593644618152545177337459069484046390475353288074937206250481675953363941186316167837308429750279288003081358245793628833712231150129267692071190483156866228884621540016180686763967601749356666429093285130940142981063063301483535316076146157766058436146635455779651288581299781033967716984699908449721546094821737616765855226306558655815812155509954879212994139531864967027484638854609341547813184807523656479564747666497288561704064549328410512497212228222848961190954627599842096836945472229350405401728379872891343883632422070558356143094317649109429082348968081439319684855358291553812758771559358397392348573674857175017272099029435312693119838852680445037112809715684250275050984476547577060335643257797566533300798508750035243147489977151482037555208904226162769374878471110922066459484291036115247714483387472411874745680236570580219765104272988241198815062295554895336556812281476612324227185725752243318867302084738766732574188214776262807705137782559921652037701957291473257680556099664403643790842566970636063753429590481619084799448476526919677821313938188919236248709122127764455127432975969315087093189404980702146486031237907229590361769720742251813702625591078590224137037434517486210143579472469681652472338312631280006139869663740603492634493167973863022616752836612405194030846476078653853384862971975459367102540203129610736777737317151249097848362561538579425197734181475403849118412877287272758505487251606798592065875627576788596044393835572352041480529083479076510124232474747733126931504942627325586696582797034643114292593421268173944906314094453200977750561468940105945414115942447597692782565945340467660749736622735370984906830492858379952295850704297004454487778756705073663354470396262240641046560185847341807954700366446487373730723050630429087847765585253746133794239764366520282782928440981312772614326197738734464823430676871672893748658066777807569485042378499554178059830177008177018138071796459964805812351154313173234673370926285657155526840188006064165375286678518093893387665213765029827013960928290813840491002819390698485864130771508124480794317004459598643276005188014790721765819451311920553980166519633963687694374559695436835200461522015485326171951594494872105296436577180018782401459739054658394561424525255563766583310228843856394359168551659099994215130535794989179180437850440663067001755782942875538313919999701128105105185136925627502950743901551417305252056103083879473494223664989739134389332940091561828980582060839646063846900731546739680658439502244395735972490434968650922826008019676504052481944189574100689962456050952965023217193803235292084196392900046686199977308300521610394770363895522190797423319909668144911737010638782348257486327730866966663766235779176991821999599612415945837315753715536112735281014819775076250212334396212934357581811500612416779995031537729432669758403110714325897534652137515727671540885467294999209774238642135287213306945311280847462890736793839555333810643567127822910392143880760270731476230447979099456294040324969013554929200964673403357079147313119438376059517105244805237456651755595128366298599100442457972102267294263502192978974087446697657851707820478669646270154366683341053118312718578942126096966917414806273864347803431082679709406570955335656971222935142567496055353769423304763183993987397086102684145274607770907496259694780100345547952341780305235538309579455639144304830713081703867250167555695574324199028437770537417751823215956654109957374332019217882172913104303357210401408984723720911533172544404513699540702822586187078915951472653942024079735110863041992771886371341362445073616165796108813525359793210226463701650728893232338184010870440409147752908105312821515266416405036322428140312874347250465374418498515631954391114879933820255372096117107224489856522327902997048316493268374199965084445292583211586505732053713853309722965637183136041372432529046898293318939972993214415328252953818639319851642897658086885532038375193204813049216714432494335997669725022503096960387112178525402243686547328755595954156450294710072374158500987615449352411977654556722368766492415668000286973093086881065202539549638275694643631994783970784989900594027795414988780741514799097768629886000216582971438000428895429520029016659622367490316506113871519124341503194314458717158682242761600096695606260699190269135379294643427290594121003795755596311547727897573793906537485959867315187552537451921792951989489680302035461490313543160246734959031510593633837800034088578361243263319274909427033913918670500364062001357716690945745271088683776294450225863999301277552714421497121245304786730856336463839411165354098217707715105406923295115462725420049381320330197306538393659285115054780835091920612258974934087656325466737127252114518483275014698719136503260442649989631683809505645943117813622287274875829769358370474945375622013298672242278487768715090739438413031980587940996402802570092732875158598385629906476921028790924344619521359520081566534881317160964626979387602597339593069088572192625191188765715590189451323325911934026030500580811323417435001058432455738187156845551907594652792012208778566650929596379172823360779782436142572004800730752558653668327614234519474336826081940150759284701365731066148430773014714752966271663987142483146577276818904533426583538496548265174480080228754381928668132062843311958989816521390013377190795220858031961687534948667744169223809622699615094945783591358894738004698298563048612441289124623463111921935358572892770875388003663093234809779800933864571041327765903697505335258460371380959887048309627317263404836628503355014500274263191510893355431091541247058555027493505980933924162858772186061422739078955646277018163060245387560965127980059192182209784365522216989287601527801558457293160967769437638914607618879463414482926606878093243255938967380101609914434766859027426991719893169185859180992291271409694337806776551236765716345289512538012323785352285049422418355396393319237203704520032753860896745927705624505360117919351216137915305224788196055723609358848638762734936402089954653020434156459904885109264267394790584548459963440274448125098366776093518379433551620210590846049558822952700659556832797508083543778904145333624690299061130204346456896347777591678000885942624418861495302230565944710774868623186685860694749456347360710126916639722323867037418770384129688045482400468554998026403359392466866644208010177723094864477162672910527812344547392985384492065474571904348867161754114747126150211824804035336242992239890214384852458010783861041425154080678517326361057925667287749419041785268977096110868574922470478239562294402579073305244305931915910177333450627243310070314306040276762179752101977208566874901709440340806876618831070947997185939251130581763831643526032736614878476335932829226431727143808117807028201785918701602423390724288323408821439266598889035037991311012385951327379735995346097630880285000803592806413492558259256153704439336562376555844899167594924111125253306295965082962130996217406292082965007996593267774697545488778804513317037714098133203648441671292847422912994420993366872285041863839628826916004354369151301977156504330637001398532557607832071226749315557213320420131849779749493870718959916115218110541105094756910927020967870228337217419141404532662256901211102520875743356598468032929569377330180113073960387555678494448879942399293830751222082192431945925046928683800299402839742096329589855662631072211844134128140436555340715112222113847871754265715364431333519541587675478361373084917926909356487074532685271203251804077806198806608989829201913019936013892682536538243465360077362696730499159932061723723814779910694410240625726470208676471020204266817348802720344030135895333084056701465526633264104033835333491175002805891335809811362222385456974963028067057098047499289906393610712592538548378341583628266832362205708133360297815581561523890494740819594389914049381149434866694277102519608726557678165315862681860028382900818369870779871492670689335742556169604263169929392774501122845807694904537386292101856051405679599164510585426621398569841434450417272453804126369302445394158769842163196212988016586167350015148849422209954108132215173339246012305305706070284764508203619098393801054936761697870662829658233212301711184288659323182449481470410337392875037898875342698758327549543350993134303220134886688667174919264352382560247782288247738032055540482097185611858295842518946593334662470372264649267831994736654919007545964150950724235415272569011319153927001590177354856995544184387964104568188759344007875305059274588887347933819955383744410401031508651784712327257240486468613074992209795323878835404550205268359935733667978205205051835512815269376254946961010406103021411741334412409785063572536551789656379580737930473107237773448081840131500125464480636175726871685646141139263364197748959563316595051844958330028242008509097834590081676731317204587770640649344598577974428445643367201520093675294827020272979409652854344158511303092593427886057921327672192166831524468041958409050584136732999948333816958097993981106317847577663954819724224924357661430281345923854507519847245190483370750116031118700609289433746350744265877630930860707626425294897965329921521384851009328787749588848851154284914558070577236071224622346248764738803599888025149151884544007946595503828766062408716664970395242495651695034415990908982974538810299262110961172695050007725832382245024795073772121128482856486698446832537203763292656808572205148197218452636571425127737356370983577094712888142692246310546845154446527837823332755497595369432361417497887044549316398528834361590902790819722613190776535910994330542908145139795118237916493263481624886385660948759417023965488832488200528597918321454700621509182157322896990832942885978538538469126997130088054005702841140987897409051670682185956533445675560411529182387507527898944036680335464650624553498186207135900814090692962914425797536519428395052300655632883296921025611856819818534048816945761340666305888038532009118041317461835125799580040796071482915664093393091724936735658918096782641828564543521634827778379635261754573971174155819831908674418885947717028266997872289550973100485747233777647694675826553049685954812530136618819343423966684106181745430459646396115099652892997022861437121348153939272146169838380387188623228297743386249028486476519315993254491336696732848684005130970407431585171958849435790637552475753617208824257809196661557316004283859268954022734338362038521798196073704763534913279420911176839701038867401104268026899526997824700882104453493428456856629611330859551853304454277540090048224746350455197776876454590772290891350768491485217805181198237257721714154134108360681946258665267877680856814927775201870855464151790630657163424603593437545363817739868256755426825457694113412735447416326755111439093146058775651619577395448301896147108676075195251537229434611911323308864247909227962053573954162959266858165687366177653252614889668889959692929558247892674004392277398075053781097830279051020293423874217035291960383108576297912890240628120286401956017265950085549768402306106997236837711166205668949835158426010794264143545308345507716993005921896866197213219092616774477239540457842670614391332908844810506926779439465172575746266521322370977286869107840632300129174106117718840981561703248465811697258822712127430827187128861867123831563012499965415214884691399348982508174756767557287830241702081131440400025674713720836054449194101392181950707693156774831983999908348985903522734761998483728119688453122980927136799441781191917783325068829554512594748991601644208609484793636054584097500472106648458568708625400654230070557574669564922372529443501164701525031402538329893477001475226034287657137635490019605781203485810910672452416542580089550271227913516918016808710977894079145053735851548408616467273280662374461218094492876485014317469785821876041262225056488736467624961255794933811204299836229030641948658594266088517202257800673287092052047024977752502860087208902683018775691986524574682251598171148148880336660587157800648795604481205310405896450935372110696586733557973778979818199577917870806119870634461365262322894573983937244395980380919007168518574984083962113822826680465589512544267827119311012180244391610682709848868627553433757621162920854607680166371113485918991564672532942316453954602078402251385911845106765721054761095958451777782858490302705526466250329461738848314300780938632599701507470523920810771220188423909129451572909748370355305365931039947349940970390070290095756081625194680955742516002942795939030430183787444010324786002546769641343461736439082959849275597013563597451825925533261916455880822082509251070654528148363341607189900778754438870142565234993860214241450827847586100635180526236325329477063892870560178475990381250666485646128037985061805577367674358506008513250066507994498963496550016816727121380405537767832179123938775790697864844938372341493919530752436770870994654871022766470607707293817744061789760698934104474294060908703858771278623214576843499925518340866037278198698579718739426641564921706253526696597006214033630538489853251512596152182186054002511339218361183033696621920412802679188469904591933091143182179411988867880679798570559176999628384660621755643518120380867238587750722325091990175299654539135484172458854628287206077430306959021594841485284108433066278386784270922866937316355758568929637955942072675182009654336988051386174612365694423809864511566664096906984491981918457199933323079715721991194392020448962796493609705304389479633690604224270032337701459203601626449220285686356371484558908765853285197368521593201793533717450050640402685128666293696813930711552065322462083535128066357066379835338765080127376984369797947381030797925267285138242584380773155184105707311211507201948866557073590891733678221418855555649238088078530816573491118406500014483969038992760211420049873510141374476658988693205989619747535579815938764522123803696463069724139814715661685558811228119853239540083261223982995368837364934548792915303548843893110346831715570969888604271039763334326702387119336060383390202819556323669301685731540701543218686273551135042365733974727846244492831803130522743218880382780814875800975505759330131045834200213767298602005187880829998881529301012101117236647173213442019703042487184364574220389911015898994632478565383591176125554524867688605821604573436916984843037569514073514943326870979168301041266126395155257767661875314755399865007746646007463268896222974109826637214511598120166579691995354122009412592622180721707124759884472555828512470361764376228962041516689068510728554809772318471072237501914711403858111483000728836498545034083639739000762337001790703271128529817685877128936525400003801809262641461965309293799804734410068451094124738042893518561993200951078126560275360693571699462869240599659187678130412825929018608231838174086846863422682717158032991003692606136885390040931505928679015512020462442968619628342016864912627189751326552649059013165741592871778983231714822946664217551722809514165384581768443968429178406286194764175496146691748178170751251730340761670006794883269567609568685366426216279394906438179747486902177171761008998811997685328670450855504203539400969764953762842627146315789346484646139818723271746767310939656572402461167210339268389092450762477867254527153555965448161427949677716881474355514038372041237307108725717471539985988324900860413614274922444391092676057397162392723502426027978475912817511041895477770768851322077404338409973491033274518877000211325401370380579089852096058069343274339256240284846417444850833771352244108599027290063775143028994169034754513753104810070197146473739047560035942987470060082922838022695525939425847570774041652174096863114936401495499284449253758816507106615805806827439541646450956294783458530358146670755200673387319697954314133085773573346210748797233415889457162642246444195223282835785594025067032368772058849643626879516353555352422140818767696391570250219598304446730997599968212230982982913718752003007774714564411799978237082588763106521652067268329251977177661596994499158015211950375445881010906040136300826734691400451652514328422201035267275452075151500411736097347926921340522056450792593301377658040435552724330796192642424197064716609750344468609522533414879022478665466078514126752923132937310402244772956486208474798543485893391938835636467090007575352576897232393538126662606133379183415873730501258161303408664821144250656272929652809741812029540578100246715863173909963306286917962334361332627199081323030978369661460253936137133876775406282253569543423678214631903583605065764391186203637447804967591063869393156044293039633555079100587330145246291631855561667582484110595166932550367437834641185702482494564322607970985486748185983401465750578880678521986838771983539673502168708140819641107491638147435135699824240465062438901964876903363322323807688670500881113412403479728610515883644561499384617274862163686967269217186729633553585476307761273271331765718742195605477968613510444573436476557091159899717559357515350003775522215676059280717417048321882066306610052388366843039273022430783669418680683707215371493036469331867501254399171212276500436042832224001203979984546278356672543652313661103750010248666040727680823497571285753313324302598188410616951282603675713264374754119877701247513137540876925114032243486051202337555992386909934961012881706376383820179127203390398430405404260325257763848860320598806878290201134374793464022282473991082513366354817532649510081377026541487998409648600769174561712068278218601539395738879087036763740634016647745530238271846687653746439827692863988647549106173225427588127645556653799400519646920145229947048353013418061710931582580441052678276792011319741872131433548374171900487813027385723048912963842601313909163048843317159986133936504407191921683798963930209143216531921267152741732646484681972434544046155784368756296410215831989563463656396645961108877508862408575712849186415810600229340564048307214963808290273230409702678338326857312070601755926761919012877107100773268148765877157787170924352488331855997222056515869868147963213274901121773123708414596429983975728022349121832154918098138776123256823065424776869739080994358920327272978259892480540509309076332255340462860811609088689547087497995349967033805077374080459183103227148033213737690098482169544420854028808089201384039244127015835403165527893701535068648907747905855750767966744750675950332843537778988961480149768823585878511006048572843260461868597805389086437382617329660778096261715078681436979135932988194542671504643042689323323357581424881599472213140819622767871945969911929396694686646040436034020407313220389128165909664885117012333586860576780067650940644758702008848068959212271957376160155274116117861612172533393516457997722356302441271328811732521500254149997901226573554987751318920689508976874549262519534765431767770558261688832091158566113894903785780095507307077134686318993647317529124806782922205016526990586892061227647451971322709986687933020711419971771859010074363633772047536741190185538643842339644541713908560819069191196921414146403611453895551576975926332792210491702918298697503369106514873767703221514324599901491846319987083510876994239451394020725119058597043491222315530725210594261641410116768948431564990728925442016685332599207652933784887674733083448914290488379665889953065042160535141567148708841086952003960868002412747622567466633105517605515918415290036280439103281078195320482825232481712016217355780102736585882375861886790801422580468830649570778475584157047657874300372983034603114254136692303296894152489058780556674740909800556666951376597480803481053701997843224765212934812478224601944411168568046192791219835895451897445980181673893605032589434298047176990147043643527505729593509568644016958406685604757771966930628021805941140232400432058875163250016825406600263744142440135681017529072863831572890674221631682401054846409985286841945813523271700885887930623122909966394965683233502214442625228213262580149745791431449139506138965062624173396047032904592133200146484984886365291575679508350278152958646053453815636433492908393737439141548917461582471042675213190869422557720663283172632991274529759068033903167949388358092744256312814085932753393881248963133531671841316272899373852728531370530334340421293356060410499163362743272940345290235741955943444088621555256850179085594675072882255769746500996778104702822815939888107545050540078548469708105833468870151121698500325233688445955412942760637131632145723721224309694123190752961413105473768312312647599365505876634576891204001762557057801471541511041603960125046274360385889844143567298293066407446600775226659138060934602384990044144807461544638401970500238124507353225245069729157543798699605848178054883512152239852608127975366818480278246535273128276779152338273639011590546186858302864569286361588492071579232501274607962204518714357093847920346788341000706455080252795310885000160662276846984035459555158588996699990216225269359877124489181037281996386401797296707440124622703177639092897397055493127350563646786581451246986151882857730151319771532305714146416092801380850798743908675327456810305053305504546320457639678678858701810536986770155218879872640969923906274770358482581503750473696337163607742509206346239189841893663021666802199746378735636709029655620254190155965941584742409491458222011493145352956407902865995612045670886770819153245722047612058023356066904288592014319539848798852266584292983878971154116828236974437159326955182668782180972169371348414170254799405810545051133949696878824932722625892175274858816021086437630511789215292963449530045933030592671344983746500829347918535186143307625251868156028920957303129902156013497632810252898073865147272649603195850088860724223017299385969112600764953215367643197467753551202027413141623302259917775638600769477195126585573993540795819071617992433450757117668183629488058599416682187432002929670614300262291714518864112212755679887035205612449977791518014235491825179731618656530888250138360118205216910774371159513304180181723417949466022742464655806590386650453013679958629940063143885635363300646008420295829337388146014137271274998948210588907696948112818843856669166167126656505064925113815527900473421172568409437534359302711461376274471683140548184969838794640047256789625621590681124625457800484377358260557254522469515276226113429611181214387383396240539869437124132274996100025675746863747655347683065976060532388111535525689481286407020584267404535368223808043547807137053061995811357835084557452086937729920602478394131753234773867465649378948992947639481274942514640616934394792806414208957098116344009864540547368796587954820637031447357195069606101678422820919969504375205550471366896828048477120507372440728331496027295945803721433988205459589105471397801373543177165646138147024553770109944139968895569500369907843429357349676370633566947800120693939843098962708334792066455971375699639264981123210949855816837834665594709821905031173668788345018093053771568564711388994978004112833165492988179341478780845857144747932223297340208458377600450950302533658225596144108917501031679806256680335892403347633784299507876864415695064790930171017767677598293770051684041888858542923436651873241591682642710561022564485066080472080788351882063416357777091223826761435876574159905272921282814047654161364997109599743146562269654505777086043012104781709886217722799009090644686886686595494090333957167987186046904176445712083564630299237975753423096021789388960611347989129428326821779358859702519865592738738132932527353894798325942680042175799606720724145236491177115315187594617615586039418205579590544182202917786497737295648112424334928578928189348078499797996138285456511748192235565567845702874417256115742383883080148123521977187278769486226265070830843466037403590427402180276693330883609642627595558081748693823353753467008340586660518849693607935205979585112069469100999409909249345307202747616093343659373866204540053659593005442907094920439670901714631318343900878940632455880476627249267394552914316275118067005621713324078328033631026277309515824134389490896216545502691671781767596851146944996341509930208830310825154277010352428880459206647689938730707437263279343567430505662400639705497167912443396879358286396567740345903284755672551590893010849617360200725094215214865794556629128648428964117527064004567973805968139712986956003289922263399530763482232757496399259161324555756462665061430630765360563177926572679311539636547721521075960867674825588505157856277578440651153996091096090861145549242095530479035712149008716709954623877358421350043614723650087451906973617773466099163308599337960390012186804787252348721597364029973635822779874514380215418331227259708257870421617522289668613503979746101943753972036697992956719688230383460044675188084382439590068276208781860176006221824513741211722250239916628691644327721612109004520436038216395535101767389788370363496434970514292532177695224155035981976223699878070968010460708927442232399474021910836046523546071138287218258268580686576884077081301454793502834633311485546222838900912308568933578447983632498311194070007140209765025914903613228809213312937857129214407643985070655904560606739902156421794086421053706375364415937539356094881899126386456843692457550455299285517347732702430681385913132869416731877014725208124778883332398632904094208723199111852198624513046972885490483626887211285466953349918239768461170720141842478676129675471805164785789676749425805024877858385823887940190223406049028646228926427988042491498971790974763943189840954897856045718265436585864859725575340602621679870560948451710014241116223871349803606622519827621536449973491955599114720627136812438203131833569842706333155157933517533156805498391250259144384867169240972782604546184638357667148002511505521897288853709606718809661608645489265529897717579475150679240472054945064380221425798214619190655051678871404300413664968411761656107901938441654756411889202911820795636501120263960529310972345768747562468530508865397331808801321565904978437876019349117317242928580696430580396808077406962484938494871459483522025411672477580533109286673265568597510869913302105611568392538095311689425097178488572115107939185885848650393413586749990151800369375711965538372481802000427071984435849547633969075857706829248497587096454829562579678144817248513021258761930386564398598339547440545101974742512326703655565848494209783391461576842142696771619086290071252894886281012038536864441015849198899103600328732335645197649896482839880156520644262083405913569732234433385120427031488337729426892771802240665731730055280571605905406187143162522753506229548569186829813766833970662524482303597289244815510884170533292385515309900544979430590282021446847967309238381464723595225136361792680415971930830683446994765689487156251490791462660878913755567893046695206313845823896563362462006742575564542833852742606364895947933183161236683414094703131068386327793915441792959715914282167257066907446424810111657317143753589511585654541438302903527828560387767683121886134808888852221602887133407852829467867006903559769460619707931981136785371286799421744531338755725869689117119653901308707114892338992702693768905108045189208435781588790168437531459633267920318816070935358272153056976424463698750212177833481950291781145632778783181794840371836994536272138896551090269925254145684361197345576839732348705741713311729944521549943840768304352988712648566588208299120650721706978234787084492213900019537849045071259756067465448430744834891426193553077777700889885231154891854742948703432993243491769652887845839538205154287978685594363828944367574539920896707492997043944388051666339594335709118525425570253587480318581994705330749383171765633648962920182906834254585820986460232757180187423746854530133976185226830796878919870067498165584001707345608552645237011724255225321323898828986091951008848474484476625891955810571843646975970430522337134638755410913515812055764976250641044421209183904048633510835154065104693173888930458684956391899239057721300358543156809128934213568277957478972924896305418327899613520939068506865691150891312481239151289246750358539694419287648177458073347319951162358669156892847846580076904693461049170165335480581290154169855176301723428085705908759002012147745671118536827121511343375115769224656089786356529366778331144917187792549216764314935032768513761066587594314817959592840488669447512589137268165800437054005099107123930028956398407458082046444595501248299693846838657181575136284121013400547643287833425247448858973326654530873527066273566116410497158765032873064107380135097510850495273680571398970026472610051978018432431251168014585683731924366843645723290311974933535335476346250082214880584978336412258756398774140430688265519083150986579728392223539502649190851378702151340225489613595039475742968281253991960583193406213951691255114349888907250885026845221908439862775831515966454147170535160215375095320752131746666866919332231032293619067545204924835242530328129037949493267026037895431884245436628807747747964177663655717049636739358829728311927264982718660966899676173859411469351971413646283830398162409329102055068468243079282317241386463892784989846798666447897194735242377071094525311023506382658227321319952805461718296101221029783573150350761513207934174661350322613188620892569740748579891924579268641085412101556435325246600895890134383406873537716245025005062097100968250727720484434982211901810138494541954353212033013910384394890513222794925757862528464724253582445895207417264545370971178522574111500503585120261222856192648518961727515963816510495668522712313010606080909722476083575290420727417336725679319846989710872975441403169270554472813747645160680886056028410956610080432639855235489023045165844592539570558791961662486441970860827744539779416852163260800671296074421137108352711484111435561081421773650538763730568005614569004291679935601665731425146095054701787032837939403371980532345726326020054092443557433814051709713218376850682646532311693254688890385356512314782034648677911017605455176346056698855295296375237467498658100890645386396217401088778678886770002360434472398580120025798088151984688586988191684636062781153423555880850623601105438373264078502749272698949242457404405844567596002025300032381262913743322691658657172039182800523575425784998159707212677608420466495155506951402979514841511073208800098315165687839856664906306878043146617334581701511499766965456424083450040992629071982911858818688949411323522161686850713145506590358912128406638610898656851034344953088177874358312670738452998454939530743073485841491664556618484180879376489675284683099478915820562322967565358132522471577823012270043041229394338458747281279039551271885590657564443051804116147971702632440013508179685726621037493822027081978836880505667428798549803594693267031441966086862151114079063079279159413373377120952401746769757818424120805394903235641522903561078565881284496009716565109160196137603315294019367167068150677905436239384599078918556606032650342446940562178513575272634080493331994269766851379951437858053580371280891508564557398847260914650750686319106558397801733340444932423413125382015786523866379967716914131771266016514027066338036691644035582947041104776459544118926798322259853958155727779327671168767817083201914795771634122464872577264476054033502211647476447588316253677492069328815194926881073595010591817463693958802956796930733385047115198769065005838674499513059751789638709926435653616568249123260724910798216844294963070078510478092161906242814688057812456765753007250672666027598691029179379987739156396560736835014276692848755619335527101530420147076165060328902874716552607509165332908845002826263138697301923472284022128610498997150549121060211418885625701742033548972106247493923121709216741166558744628042993298521376468315209137775974047321104758681082276299980960326121008404948542048970301739139141501411401575055099320183958089228142491799759649926260956419088128114789938944156702660531323130255975305478819568449613341627716013999635308775123743516107779839655026191157858634271303633012698447774694800053040724238203273400043302392162179982540485231378534967754928028159850915527339301756566115865129777912417442191049189857379858032268818758916470168287713782403557739330779483203976851709689247776888741006204465122353878163809016140637851173770669176124216584955442018052620289459734283900447304430148715421429391579414871277708777169141725404268882078998067736875358145827876769606821539515494697928703733486609367271148591415685522684452998593808029034418440668393518533071885837303567409018697349743218915604003481991001945089500546173395406811070233396418821819100690950433731571402729419988350269483155659129275740970634002820173066129088333672225730009080257145446855523196396072126027269808994922738825676453379085193628353346884694727534732875619276564211365294091227387165248775276594362151134197815108591430885850624158031722795432927214609641599288413203866759894970592826537022043476599824160244346938932558355888523182159818748201248972404493301139104428570357906849774360517459063998740608186727585717341016413397080413270817095353338237200634146804292402047423534579171717393223600834018676846288130270076323811366219579155620418559328925768074925608958991994503406993457575393607439700922952797328907569714782942058818235951346594755401431209524142586289108833835994064892040030889832982228820180735523224517941690764941444776098539168939379570276995368714391526073834526595674471748150404899862530707254915835944697266650536534615198309841092831476271207488186800573780372680509073180465847116491170404350729345828169696172747212801721640007579758682091623475070334199349372948750376227782555613548628093673593437596749925514194919584935087627487503434030243407178603810882641043261877871013724376074342834495220832172637395959369005447230023491934365645612343546350376531047507645469257969567237146001407218794333706208028535858190149081192909639701045638058684321683911981484786832696205843072593614901811916505841419193451086476233677580953185177095136836136266856925717240328727347245639155591463241355443267592079511523129739549967269433612973935865675305611986828614517630196001359528638473705035480764049158973079820323530114836397317009470596994806770726146389267166473157422077027267664874386034732124208821082869290241280363289132052693668596133406366309076582755257384630770040067546001263979351285709749830751318219589478835966092370327994268788306117766249065256163450745371568306906539746329103373497837171195442320949272074321152884305038644160851071707413657012249282635574237815398524086822790103259309790556329237460072129701259940862399044943965117919557225204397526924988042274537375047649707349948564783411666609086504661132497207649478192921790463175008486859847427295146981704392968965529440351681910552365116078561402312824706740127100268654284737757285204125198627087285114605987851573730821014384323965554589442063144695914786237605996185213386824229957583520609939193640300367527396820908775142430287900519466134145817177130951661270555688235521460635985147401048324141787561650741586783416582039403721393243911192248760796263787205636347165507949547033580291516147936376029167029955782216587096453187724294745738251720039486399589090703930495518800885600238844011801474430830867619121025595997725082759559759422975754100778809674830427821224589080423646745263553325075385286539373692327714490794264284396908737443469524659689477075795989690680580818046734953342269118914264839603384169033102094801161433123880454374101530601385037806765777793420496336121623471088848821935204674307945688551945845689312264717394291879331229875399906256242747643437238839189357835839375387602300685773100450218092105643949731161300435510287519006097135284650232228462773929054954663925812733505123177377419917302338659406677655581165985163155515493008630557216557588560915948892839178118222176392474563127902903502249782863258045284805437638122274909641235736910191785701362689975735799009147376372667098945733982842145183419604951597122080542402513889727646907128872805433479086642983215079238287334645980472983266486457839771288058373964548465531052568086257270562568174556996013742272930169225231122059619888464628381439885239978653721345708676184001494072107775740168755900880892345337774661519744201739952149768079643634577457063230411862155670207337820800740171312132096419693777084218047246390911678602681930827444923680143877611538213138798378860250682970386506493734813819635565499924621698798279592870312583540577461631826576071530075732332566188277663886062275181102422892817297645066708335281897565146438247055828166331212187626322245922857146453507620859384545457150777381454358896492255962039147916640570448860060213603729173034074589927127762116559461253979011339783283089805668293476582554825333847921900036967811010079141344837105977866156413161409100186414712825025108116400459932657745098595768855540335721953242078592178367675998850830224658728899719356722610801603623210783865918745414045878729580284223018507608446277241701143098253004076126825836020527181070803982049306253136346016235087191852655303586687343493434734120181484449298183075668436097883699833621113576618376902372692480387847762497274164822749624625362180828041460957048886771615795266725844838752665397306025814424978422606435519531468625782642596491518820919415810429986654363552658147630375867951817328310633167467466806710510088493458375248549749381311813176319181319854369050703711214130388097121221209020367389814661193721675363545056722997171858674673138877515170924571478623717887401317716376363211299434553944274684955853961701534770184906060125289171546326847991759369483776019810192613492801757813439183009517568524724913335772026248998711187599646849011069928254188775507689287053099830082268587922866467143315886264555065787143048689073680149787128704555853501228162227084921197466334651891811176410670283305592450021005659800628923896795430137226802166053271200773053920393805517722837266698697603819306435284398872273068506204978854705332188112871046714850256799962330519034013258858448544590846960419686439236822790166445965539051656723515275020392252693462804459298372541499535372164802909820714297674965264643725253732613791528449948876571382644862205699282586949568408998159146194263699636019270120750645912649843333089101046623660555661235557962883990753243981306557539187956094377759022750790177583997889449853544183711336802691598562874672573520061704185282036024757722803885579406412893661159428743029037354415679775097173550628492784490436321539872503837897211192672141471989493893082842688293926188442344029400338252320270527491452035773268927415626535618737446000090540009583615000758371923267303686825215368721112804279091047688815863047434743360930238604309627347989844282624230984379723323610771592324478802454984838824229953864390963793297522671502773697929076077717369165570223145472307827222293287553275657398483886814890140347498580492411102299925513002979703255408341263465901300250483607364030834410753162826225576360816941842461398295722203821431796017380872507959373073501559071379525089746821116936604116883877362032416782877181984016028209802072747092059545241180193264876059918648255685799315323116092318502502457934411170780123667372347322033244624867796026729285978387452526205888529349889304602116447938142897470142887548007046377787801378216290450052724678063857487371162514311087439132420197585531217333917527247754607166479247610739539029239920787612518436305130885500644215624738184452686684238207673060610450010519459141108810054291099927616669239005440184045299515507246161529806033698283655125399835650238651571733559643550803221307875704287684646135741554387153813208650801536535441991254973833834516915303320583680962416875949794120420777072886337914591088386941149741127168253475039418527100895863919905422752574548398855275183442148979534304584244853009209795060424284059958167195153212565282482651641777981855122095653314318509939420690937932252573998356124631918993617601814463865030203294403300799820720509514333175048296589008191240823070789890018999876666961871283157361335221034329894313340404394379491433289402864986026954438636978538717626277241754623320881331684355262360270990613099884894372080323282015523561613866850333730257392443136806592728413995521462039585883369035947229605780206466946964212818349276233665992974412856054147361595199773542115340941663892343080820621200569085287874633437366584894876265571707785381320396366929130416388801701768614655654772173430045557331705480783755825763695269559318662828300805360390261702857698893075285948196415470724345565993279374666600939802805233129951304094437354901051595398234978616713352448813081846115032302403050243280367711290272012905948687753203474565381676139724900986882259550245345262898843077278272575175151206640814569233952512056829622046942291207210642500654734253280845773108659734185709051893525492407197720335097061442167366649644960617658066636570351327061449169897622755038431145616155392593186131698570526167339802136880171179394461743135534988555184552365787619007628832441771857072882019948975270203787106822036170514785491542592325928836882481654544192058095496874770799013045067437913270468086932580967896807977527344149026432957582707970503442468906434013155493999318491685161276183983808696090646518879867542240088218069385785519341926322234585606759004213945076525866238982711161442496943921427656265426773232443533286303149704264764448448839232575676532380943513246285822173435884301975409506675848319991407453140450265630374180390709569672352621258224739146533879691368350978439843280135949086692759143928232636287958278518605209111697349938827002584109650016250122952306789416725098657562753013381576729075242313869148068145105456516879896420073466839270204365354768887829474562156001884497124951855077858680442110866581518991452121366426332435565863651841504860928055294655597758978962820520455799828996390742887084401428447090082520842557013617095420287271006637662769316715121504287974655600821292166546916515027235949340669622927996746487837196014710193038431900011879233257909648615247180662578273995548173333313385772940392014503489463018270927132937385202281179064183757170903120066939994611937789364028047171419782413303521073311588837785483310093208709864400980511495044505818493908966543344549998873472994152188418912279337113845720738472257600057519369538733811675425174257366058203853798474254087357021071786726651482942174538814946130423072534196972948445809836325093441529335834268836439974439118460955836037149729662606736542150776581909486093425442743871647565092400175670622698695662552558091919910682600390544544724733243604770715840422305098369773565510939723304699733737718326564404249176665974413364131474960118446585091143798726274512389132937815502223629035234976844907150923353467807010529783400367304295855779948801497527793998583418849831241170588679698625955980438452432816754593794768012469663649420932343648349512099360986223951000602885457207425257674857240115309386760501583870662765082289740010595254369742710650459872185458130935981828928623467222616985166983082823620395143836083167153736916415191356558495461894620491803937661860687000771843977340379694350721835607023082999980522065764555838425521645946061505232101135370433963925171384082608804550426566687112267299272849527677723352421087716085092044220273412776387426160516819082063669633663745508312065354009577577958627060786500585866987873398001036647223063147573487835210425979358109861470077230686773836911977089844317151641900807416602989074669951890205707379640280015697516979505711994919499804657165412681846872338239625108897834319101643753808817722599010903823888507292556657009940910070875284725992588014246217249153530718569097958780804520452979424594581219687159802895903673350768767146948674002725938494185146460470382683842753266444204385989242083202629780871430534954297146400436463865146091600927154641184349953116600660973432227855076203701392976447351895659894584991033608475267583360084596942706472429804663155267875682471280668640686205774242988855989004822249682190902721904259926808233701750338520486162770527301605432337072568479539109403891259039807282247385850115572410739944970381296900502913916687560118819109595447167066601358747152803619584798771284849272592872220608826395720994991079774065256300378113762547505176166750768449180473901219873847735087582051110862976179140476546675345098327699923748794681009323007242058197467104637655750301519954216223210988842541354868165001195018740882359858317949627699804439526426891554499930088869269953035253632228508622382136176729780805879364331522519928274353369066813085795325734004770462523876849527779353311502900505443720279050001400328594243460444263937940649625296421351741623610211146189643163135596002325575346481806536902789316357230675797370454128303701303677704814893750584533795575320292426924696760281721504747380633710814426268218660166795638809150569795743853150543766255403301187392450553415146709802655273165581476232147708169502107055182443672122151548123738710688867093861102129241400581788919186271832941547031963412527776348207675031531549561117029211862455456554358571995631124932386822848369842259855806856877405917664323317006727075155730256334972516505155047036298734624298510786086507589640618137834948709273609410654590924343288518911988519772906989074530199782049770456177689378426669525404053715454401455657172327806381507810628768516797015062144637435029412796161313491155986659020280916804964983142471265686347240618000716338612549993980079260127736878869711760857392314838621214978601448887381322353291100891454298223389531838792078607742161072893847421773564938350613023445125059413188365735392709386462198140636969366013918735113528819693994670827348081387783419067505343557301191004386419200279751780922976622490557650082057172398658827589233172176935736093516782483955377289881774771135547953764769365179770465953303542075551901975624944067820336079295810518025491156327411220734186084851126080792223983177764135208773621687331386597933950458830388859682077438083352862278304452296266056999666177270101454946094805029394067185615701243065715197418432699013945912792611554483102887423369422033747640324750718678724268827318181456730821915023762556000099475489411487454562982508999207363395925308837158916566796047219205758896786988268559151385765120734985749143516262863034540721696180747645308417606080876153011179730220881994573464730328921207333103248223756590363578112368236900614357014411106983554403671576950560534515895661821259917066460875498433369924811547654635432042167680542740136366571066094986917740047704264053073645032485000834125132786986636497385151440268938781409345518816140998238893083941442385565921489371428649354893279069352432951298434797764872321255012763457172708737277018115796675501616515216273512223700478478865907273031671954427382544348664990046845177063886863601263101639359254416775944172990041172643409817411642966000241909003096540013166346962881236080225303847132908236082713877663370382000439237400064594226784692482164987833583947469299656917499090672668874794883033142883682111428504948828261189846881517292596864782069278797758824072365993893261888646767489029494938273391905440962298787637123706438560303886523006853862010464273315087971176292841655576526958780296631511592111030695544724577434566514367206087566151040445419916982852757706110381766054093306925925561456235885728291327459080681351889787575981977939731110188227222480640362431532075767917255225072941434596912124338025092720710053623716715433544363545851625448996880556476089152228304224048862775997233499616412221001020246634423807094085530222599229445110120333503618106115564127405391534115135171851694585544855598624651071723201053222016484547357737307893012204770383524296385875426279147487826899363393581181436682142218905112995514599430345910303667943944224009031650041061426019320936517427722257683478476558444814932169194480732536218402225951642678276304526079626893420820944097070935040727002779323944621610905999644802632514296231594850646798070662544253490647880665047495722382758260604235602836661004135565851647061915590168900914849839983625295434322661225659027052015269049029941532953867738072369355699095533056912067122040049497435001242107695516324850458704420120447837685140525846120750182374099125985490851413876056280804215837005009368913686941847778774931575100676031128237692711349124998560000402607672803646044964954257571625864332514507227712809314701596453926485390619104327491064478022535746058165626871085741028945591386023112019026325917971714942738508361017188047330041140089410640641841001960513065367955073622463599739387197975198205447869237665236365467357191445488373306581987478362524067532013693238253953940821600886205009835369667459761407778124482522934860679203416834795115058697970880366827134622353465328910103299191463436898782587795825328055945945520200026123780119505073870769859812880928653404989398522398464025788759759713621656876318008835024746620090535743892630137993704290129890187475542515636264273133049881532934443943697714958191214113164058795715926702406653892596616088581406419065610223795994369276066980754737200297761487656508446540021829871613493151009774719848900143304917552275408776171215822580258791327230686591808364692896622449317923119574172486913761926005225300643840744071757956609785921818860054173811378702723857328485070455952172588221347370015209842398834965434946546227288791280355289621464295866584087705440947535183980907173496926718512268322162096031636606402159667182650270119321192857598739767925960737292319793826881178645570658511035838167521737574907801723994094032391502116367026405773982099867301620128401420538290514825898126323938747527024800803913123993422601412257083528322026065688728026697552591402055720912388344518848748079575127631624212353176515945333713529453586412798919488215400911326001311372584402527529666970848219168433313746312073586639485885810130149372829482527643535149940698774994553140332079001774860881303152390968811464953723374838570879834195952856025812411871795089508093382272578264374326835944269973688439508058355722611590094031733554069812942781446691209029814075082508543024487510313976729225326376399432485020036358664410908457361166710046233655359509824367482814412280601941299241049590543644177798769760439881972435754720844785777856001259122704821561774297923741090454436902080202968341637899895878214017748892673904757724530359253327140001282976786606924202187097158973576220973076312674169895742371633244673062758223783914499094645119484379168039680059228207254431951097189387133677606045688940893597248640779294623021313752584354497291478442546452284001246518200868984689089381642475767326866952424410127125705248970626494436914277273366816573943967211373086600209610826311857331964044986714946287806004099877607751745593312593935997571721867418962774452964639574085388316821388259841677225707165573455416439616309736994689342939225003851633465146408676071820626782949865125354870395919165118459327121314529910441787401560243715646381452757436276217763189044394272833368609421466797570771823827368750664038325951053947518759017414691393602366455529516398059323060885706997288046296426196405083712102265463513691561131829938494842118000702410551308086346125341116394418820213551805043547252614091367510131298396788186117252166091036452615111334628358761842059859439635534042912561897729715475072441870875523540755228364030618165755582985808953135694390594455680715876396140545624496740276123235167073637987005475949004595533796733821985893532970701615772901263578907326369828404713631385297794721862871638586300266748595623462138447749181448926802538497126518689759781484818802274446509801005793399166716218509117777401532652954675099374833196535755930896035625863286449925644971613156733681283665197082624916167977230137204314512490803939972535149328937435317459742961953580669951315795870272265721033542518191898396009585588838518162075391313447101178884744606834110180980172286279946325392338613348733976171715302493528048986843068631815933371922994669728674787325785563839102199978070752012454987964951427445171168823685757743945967600038718713802910447135138122230229340729568894137525986626805800968106209072712599557166295033222828005427416524266542365544140869185554602510958169389271350967735389035734693695688450292344554388470746816477231929123561900995820993986529262922210032824807172292763106285345369570927999502520575120165775534843250105453326273155401958865182158072674089992110655858517579965286538076681168066409227914497471303993252448096564204797118165070665223882279471931747044761135598712695277915307675933687044353679553895189308419468594782761486919955420541517894619657226970523232562950794663952929407626592162188132917573248985303977780859611875391017363196297549652555476145867745097524324477435820992070153965728649615517673671488716371188146978426243884010569280969373245425035173237861080685256868128135782295427170504921168810223224204966168349924070788442231145440892713338140938191653629520993863333181674067302216317598236741374593221241576429436303077447880682187728161725052945363159326532285118829665970370449916611167938760756635054487001479638558407102576475494244453206535206627606371249461135828807184043614926768630163161178380712829715912347502824136776770198587389739170990902756363713504827657946387746687520059961260766058595655412969767757483126673072640021017479442829948420771681248445298433875363513080878477153641167810726583922663542411682239787987401021650640327123342967486680021529141852715543129436626440339837470205222390831519969875870380769771565476675381032093681004875628019884631004661337173116821989079648556738168875626426398836664784247736406053390329066775646396123516325112280470561437280621555639906106462924720545586171684878903278451071344063717056445465978196642296715798116773884920219162853782534098104720490245112530211300095261915044506171438570010333101586281517456433272538720839062070351734688540182635415305983000921691864497556386930732299108984696306179118026110961207619409084768336626687862856683937981809143584372025884030995144149836839153187221847026016567370780934892707871992626667316514336416742110440311807150297398689112117777888965409791535441346043553663747850062482693234204660327937474742691035263007510257349052173070113355779207059248358465215699411563635822626055954130249525068511811332348356794619072847942502800259259098221616627769600942619721627601761913029729437081661360778070379547305538129802496349198326505881190478823230728969674485101437549965619268834267357126111542430075276500249313286107685908340470492082680398913778537733578305532576927863016354852240385673054107732440834597127649048405291192603045903578508600494543770888336015732222793505569489542578085777294183943390108151546926739720690872950250374867423820671857464928502644107552666742402279767383234392188389021092566651417574145708405203016528794769864457451987802067379898557410563357541710253759507476226299155766174504324034978342573420152462114357811034254246004291584893046469169909947638626652441784245725132111052808862176872459446548129241705415757826342778396765726245467284721879674344407982174805607569514961870420098028839752033901299666766743025226145927348824363534235589980555544686205062550165831534305568926298315069027577765563747297999406363711968485092794308781288327368940696101683370310712189480042794578629922805367321474826876633919459607371607190275642883498933963420001531394892302584907550672444429194379068359015288339134171179691131861856746582118739935574166430336179289712424358346316087205724634375157560987414720559672197007138232720281445217799441855731072751355492112445062540163998791844437846112866546404750645406155537865999445697396202530408449918966137913946007809129101286380555274894372489769577061130541764327619620291992534211177139171015890433285015269576303635596844345662353204249099355741860245980769914851041111083912686229297794210789763630371608761593955960963342088109993721885427475745318012424705918774344195589977832969076814180602672618320520930867488366116188446938992454271688059280320792519425815257661144808050141549682184418000411618445654348735920731803850823275435732240099813226080320995958613138353157405066348054717238756756913911176097040207589770318852897449257765426581483807169550794805347090334625553304087065088022579578446356695068549994645552565352394509422112051781467855107582946970614618742951818518535812807039439484090326120472708246534086025053690672152939412359817662292905641811716950378935243422626421358558751128690085662157525525294606207325454580850266636340622710547748857557310697741612715529647316313657594019877235090433811337069808625353123538286294518977628808575836588594890944664315145494170376862907701375261442446426420316772419651390413472528132773884481476359479947795174022990333714172191388933332412493710373523955998628496538210076479893847048321103050572051321344518348301031234989901876663079417281651773824730369733001724935640842459268886855066243350068619398354558884323394267643642392080273497947471576665196694991820388256934437423300706815476775248161875683244449482202217836575898154065646042814727591543032556502352377535324257391561921868157557536871479036966681384339565338861711296230052672492936830121811912305647366410402561773613358745196336568703832377646872101854581955747176570958464744412466488952985289534895130818692975672236225838907759607659151998708383834382979420854380445460175756294639308399073471454482859510815911035475126338251873632257222333886861527271773159763068715018926096013266916104760038907079790934304731562824202534452343454869492559338177606929231985856282079587151236668407061272645602794900766956129427501246457624312913695460534297257572955160222671082794465571101187468194339587230988659827772723586553002705406439737095324212235885451074947410404331217687726124438328044307003337623389518343832440365497601112222132867405436397182704957184006623164747653231087996943737267531177527046161413598701028481215398459526446597062507379103004194137842236923951758138396023187873892930005022545007574904171302031193015084911946872701761640835918669305207010181205897171568028943035641956149850616571236384155235872127459609866478870823442662196586520162395300593504514832241010015061996154880325006096258997918977433329458973041439691263425327720381087449275264044724353128223891360802073690069786826383420219835080192893166793385551042335083362759752264953690867920408444309834990869849875952766072207235225398984146531981156192734204410579745274749036075135598368531032593216431331663472489211684761766380300719377170955404257198105477339789274305045322377726364641063182126050380904695621711497710867700863287470712830194949373940663809976348727159999455189437589214302218224519726272969952879599903283340310402693253819223258036941726922633204682897339690939494949974335390175281837536726634009610854061383998276166534568597934144056984873341271046266867074964825064728270030302886973401835547732656762828551822460179151590320716469557572556128153626643334684125202478555619268814597207480871318793538736499394709432868835303391966573675609845657500647282311019711172367687754537467667522247559325079730699451355080057907630229448542859210392139716998262851663174393744575111041773398730387286767440902508339366623297608436157261080744975471198127947411008119823406261587671475064100218267175224644210014453228995645900946415076283502285601823324973054093972931492433636167176409165695053050655239946464236526388451756504978553166013007240901037220135951062742342181214645231306365868338463233569997822539813524115146473849848560103591128769641135734974187894179792647478551904719972459405220146219576038717858774678100759487549953772947087737491112717812923207467566917849811865029110918203299965555117981767627576759278799220868605793548636108404889961820136713943187536390615497635124694072499484517701559489456947154944504157471711623603000008882389197437737267547484891254073375724530866953856776883167083351293717415927865021634822830113933211107008174601851458248882719377668456192646767129959764864308700952435743048955418695434671511262614278784064450213330406061651146173925713737203027294253947078373220654347344752394775962054138865570368113470237195665705086216627842573667510388984338686027104259540579232182590016721910794336109792833327269149630710358309392923675313719791234551829013276882906011808150406311901052700803697626233917613283622144155598612604670296826191524783064755217581689779701416561786250292533708103241035196841986453785319800368446822852327539789088565240496974597583368654220194381551744135597596926778800034455683971816336332995332440049804279540680659461347273491085218775634869477484897267324586687454945382155129090476459190151079197030273914463858281492985350799990632964893838728811382322068058754952497970806137823874175731770783762541429427499214733977347822762663701854019241517243760226850330834042664329771664635932283433673066131575525969950574140544332092192819906989138684349552053728434722114566213822186256149666438017835642652413179959854041402828231420894042456696668231721150054102863802438827054910627451351081750385279285331949518339649229168250530440941212039295042917587869230865755235942411632002543298223580097006202097967728859719953581796315717668475145469982875739857446048220284199417778462586099176901936297409359480968435305470340016579600388312829356886819881906711081655835750075162225483536616047295767642281162083076561195479696411232598819734621736957486511258273193320554996180947340793324974474878241957384178729032786591699630356782026854809218338826134912669483706993502375933786877748723739783483839463960768303701617463060817751008806691514659564335223955711169720967657945876575239503327445934703834550279964364944117353451409582329461403199668846048545958045652735745087553263853833127175772538437706167656249532440506819871703106740874791992672967409929417025302996893496899276628862271544490022500759002718423189047773439124938499252630916899560224911590934991705576332185090746151067119816483033323424263119819007630783510767302461620756218045706613745710160293639630807775809021416105868075881213130752583423252009142218814538291344027253088878971511366929960912841372551473797340835749258004423187342125177458698977486147001615185361673606179108835234812709716824574304508973275377180374653365257354842591650897832717216373482032880455329036134615095382591042109276442205519440050331339964142454356351377480621394770423032785657326273537908712876444689757924516681544290407208068115984835073906297512855655802620109418098592160949007764750313805039285834636848170121846842781278161089500166636759601634779502975038732188626089018970434054252641936991607103764989628182111921410034788502063108704237677354746654261448714765827232949624074499887819736755278766329051048635080756549169252347682454592847299593125830658218589222974875489408416349957245952705516763623444784577729321235545614057479511408734184686379888225562025211352506410231769719788990925495655318900699214858449034161650327804920131702474107317389340872909593365711404280090877053758470474712642025829440191149803036243585122967163834864042886074353656156473749963681847279314698776867859816745273998975591088249080891262916203832825185127626026925205908563112426539475745844655220689416544299953847747204170215083229173704149683160412088333980830016984926225615254650747786386308176630634462220185272464215762477656680812231729527717977271533675349982123208692595059941398316309322742455205142897486427238618396982637574089504215324075463154407376260537425895659240735349690477213595028532421390818863503540703078912836109039795817781510819998114269745960949307725677231858832102985921512518126703272726014521386439020864871743847980597360723516329575953074415667463194532596516068895169829102676404668628224213043151747227466228981872214840221292000332995806268034616159864501916902231261120598914620652403939345420475777991089229236486082993727950921389886164403665014718673931364343350847252032627385844761477765928224810545731806915236165524329957735708605437330783356114679579165018963271382303748810206466273391379029645601781546134184065065291193914717220319820849860675597954196513974136732428986397002869297513118126056820938687626933309980674148424701637919913203400003051212288895783254001155625289888180618686025982514240891806955421783162078575406732572984168485125290221413935883798854684168199002521476765596828890799019512651613226568723707877475499439400291122530140203663990132774273520893802173791554755219505947116886642361687923647135223179142829891637538581815084992930762722619121671744651386842058003198940613926463694106892911172188357893081280015334838749294478158365823248895747225775289569146231713373844519685759130119178573143035786156558068430818607387518316305771415497811017992212103580215829744240445218272711927985417156103411435075782741229920743469135808769309909539372910287658516272461173291022286176371955204303051981680608283401767637497319085532885146370330241852444306645670578352664744006952661161208488039902117392485818392948840779814029288090343415124827961705715129989351369552995767091387988081494082978387408131662149769244070136639465438369495053774726595572172238696342598756755221247603536113106300601857791610826711794095393624930082316224237115441083523037381182969874477156305774256880310038867304233507440514500668811204828050509764550163267746072328175229195225216261354995467081049371431578738624566701460247916519115725280192062855122695335848838885022870198336457839386353687464061734987726701924054833482986128841481588491282261096727957289908110830584852779842385217380840374627649261786459359081738909396327673114548761522847544142523745892566273696474123212396270618609850737629669854312101839583806208921701133993903757113221292302296934910544170452060679055744614728888662122720520791395821350769517776712977385768413281249150531212181588872576957375934151378578077141677572673980370339419258207447754946108444025359560379227554372692989333669084331078266774299238594142717228872610399824610090434483617065414960152969520458449868775636519683815688156962813348912637922670985296578371703358826795801348914624153531945306951312935686859383197245608193627871868777549298838629133058422799818566905462033437440363985865228138067729335240972035929400990091726281615056747236024216008982063985033210013081538380284263001916882640041841239637048363105623176907708270145106991801493265950514512098621446509242543245129035488687860467685045573643140594049023333101519316975422133548716847740343028284751035500024773852907481007710830561921419758231298377808443131478932141057975528047290197041773051780080759165029742525941280434612728780636111902657203291880773518451704210492721686151852661812723780204825428225538806213163626584938806906109016017922701457285834978102226277380029912975772082545104480808510703316247209943845165935823092611946695219970542721107887521390485328140661892513251780508618135255262322418853151139971219603836910269774699586462656274144106725468034749722087284709407683837709155088411136729458761642543803012298580595811718731496241497751541983502813077970465264093437762898899288021740051285095942877235968902287250529473551803341998752250871932780486283535623175566651168539591364344773520191870528530320560975308099941801835292607038749046058440944886556131721615806619751211259018113232137616264706504214112620020420576310499235933142675175177832897377038542314629486830114508688936806285278630104083144936526710587340260298978834478982181797499719257969592875673866965989118525495093216613512839117608702626530396398633695251444449275621245589976214657216375368713240319640237571713666670275304221180464942019285539687518343309721727135067361098302221147206682389157763756809622742976141580217864873963395504702660911983099306403232257354821602604753405316580387689870369415466139329792043264844304149883190987968349445738242349280436258935079948218557849873771629311568460647867449990371009880195784062587975454473648762550448892439146286798366674104353432730868804540320360807297989758988861510862676697412716497950981992148740297129741411415880895837597361144745172713388956209841525746649071146836508229874012046845048119415124497916797091624800569169808509692249473662638213916002821257982393415789585417888908850160660216014513926021045962303510375632139615986689297543993914759876744738080651997697462296857875897687331512856123391361844078984310851295830613189262014743705981205143512741480233034083986328705444829808986568764604653000957301186712616212690928409659360098269555467122534829663973149016378419738170283837609015754020742829044486941702131211621391996662893421348244572506071980617435225503633858917183977406125050818289621095969768673984576339893547123957313388561761811713209847454446752271330270518031234505575124896938325523213470466228403096940615695592193491484268028320914888432093946792535411686083111653980666588999798300207028508643413339976800094704312451825313089509799012675042970156403540397183836637781464233652404893174346707160290459441849735104965905456640441113995497481429831389638180293704534827075705065283869979377133930775769350439191409573491756032094884121340231123319001172262076402821030786756093182818076936104617511211668810892797278073063133989855958167027663689090717626192576532433032323863805448351446270195748517551189277951325557240427261133227354635375912554612581822136156571277635691775705151932691611777086382734647891761029845941049612957055009170436182531638896343289241317765345471838968808890246240744330928228327778054692449050273339154978714921438142730499171434490864105958652481473407493118257735410544784666539095997873078365848627743470725872897286926558942372994560856301209144144860759298700104820197673049348450265539259745633163062508638363595381704539555575377743850978025406561986839829402032672684298619781685994537415346226706380407580090131708441240739256306927244038831206151303515273879011789891502512790153764870944967363223364835398989256427543746602284528657417363286438468963571362967895932685645913505535871735495977995502939433305771173167455279552386293961108425072467402860778753945280083094334507024478665968038526245384733969634910334043200513410802814534830893365894229839387653161617111854490059139933703285517896111991454661700200523176453289418341939133160652645723248682234907409083721348389697972592999359590619244775896680626643934942870142560654587762289396252236457455189383618733447723010722449558975677110518353965205630857552248436314263452706259158278840105047590371873702926313423696361496591537879912272643756477590545410684578993031663284901180562705742175223167674006596918615925585014682941779580246790988117412240237078474531109347903270030276371607960507218716236995142466085108532199596797623441947196262827247270636760512828732316746663935866819677739817698675396067769887106195619903794029780324537665507553773565030896507431046522738587192945455643585189198134751007468537002467551441484754120200285352743686056328355351482823505542363813876885785893090653773149887344482734205160219024074433959283255560902426347696615054560935938190403814544176063342289214489200114383626332768246035037278770061722706058198102756107357846759264459149064166217329643859912209037642951891064446039392854928642957771438768478336036993947849372557203386564747965063107527005178156769958747231982997829020562419930777009254864369759132777013730418574724228623492136747707074307224842867707999115196734418839473365976715625027260875294609613837202001285365885863922338394071781565320023121633115211732804836486425721741518248733345773596867686845733897622761291701395969808949258291485790666778168956274099958619620742077849990863236460056420867054295392421746957614027759311854555672507144997797218835510235609713373897031330114296118337664085329677012852805777560604712308921576992948484260516813480494955022053389756176928561797535383332757363718646610523454287989915464538080210983485699857695680161357980554018711734528722882687578755451395281516392669748118887335665768690327007089992229814111377878870327329713860828964822889698387677873572588663326158493524885871384245067397702461903813555261303804472874701364573904515795425620607536350734256359311715420292942419275763021890013429013511627296627094342739909062554301898363127237567520489835277022236391633422596426404778433043639795513290883770170727531324727647782103551971576435720855390830179529307302042188520432110566827171725206784469753262300435079231679274688629448696772621851936628273024864645923477797401718567926244095526044024960996604832095423681716928623028461208134282121182373084110928831376885674267407803393265033737214715359511969839228441806309059434897820312475365916082831735368053240685505902661960383236153882815366967242683717272176304077752215646508189184998956352835802422241030208763993293542465647598749800051231639070080589880440518058360327002639098042206642915090359446679411454136220745981341063517388734151434834223657510006148218347023231458561046786563511382251068425976160563534593047683123195193530367666442882346854422310704686060356813756096316390478516717433291503128301965589091278090695579801374145307003587701922352472674214218788444554416145919567572211721326964149688926756122699323476168063952359630111781286035775602263547220862812709569302688075327927880084339142583103082075794603882089842906511429976137550391525479035479112115035787615116605224020117422785598345416724771803757054740301617062503700650257871360352998323306881109382389058954605974530772299713337017628170269758279764726995295375228066319430513603240979801827105530521840432711184648688440967907872957099828162692969069159189061089149709793309937185524176595846246959510426305355432001734535360963276413100500210187412562099384128385750597567922472172201438668691068256862542675101670670140476739225841652376387993621436776997705261947002814416922392839088811685642814239934350445170686251714670963452170332877555452421988124177285801518409229280031923267664294968137163736152958930632750292750871037285103230344285343484163735216375223666733799386568316755782740256272248379621241586030989100593947605103415439619587017762848762690022947755185691186519920888745860164066269715345936126974473766845146408368470304188839571086901529564214812564971494079482343562124026906120570959405908779848774933824972598496112098461026137328503982563945890211626294399581810530063904226671992681977710604883481744961313198855789683173096673307902613724307161548802018697070060160942022496002894538164853299212167369866220992217843732679703169285705100715167933144219307605159651773182199497130805219924002559898665704202232612592381530904793422714066250433701416660860004410826384121484294213600672354642010829537600664236454415627642761685758677693767359058834956684358666739749591880535760791217728131255080833409057700748514414274978288126904237401119313903699239549719333381460146310390656795800400967656728480316835015898307731408544508937666865990213745843286011720485067568015792010952804112334829789387859201154820784786348554497513623746296147060993336698639893726041294184135045062522757713131173013493516775175625300944075337846296907371458034229671987156962137680463783586807955097403880645486270756899102638947201574705559459364701056616799363568690536479070990904496881222569822747924377072708741083347277266382355517001437739000127281038484334839644383174897590213300396147225949855640720403741164956156554826932258829442009186703331492506495102362442672873885131647840424175431553557703930248768586471707435875545295456905376392206398424602997066258782416264758719718284774877499149677488501589606872902062710350050261364116234336422387118196453036086225922535214779258969595432345722058460199791722312929198741353508615521312199709143384003734985936279841514207973586040132458821624868250577741718735530348702648671380538673976773851701673323252860762933904187266468720822101019433009683521430733612681831709732698975336374984686122655123012595747625439677183385813183915540759658589689214187490416302444974095614695386880343488102703497550155821600402458410609266156685579644959947789161710966402664601935073448565099469048622213507927850300808509012250550283305338150760108354586312567333370261937314920313167849019541102684303325453796528517938727849285633128953216952649714821631349783322236642383760796226041579178613864428686293308654158002806213362255341868288029257355370160540026338009524323287625906842426270340714407081635223583362021676716633571097999157492564243365953833090570248516523519205913584977179180440084807465843369445392036582070928087338648245216422602687824958170502038452300175998999698582755349803034757308973155938288518545308708398119080889995935296984238240199752293599250023737100845049202467170958494327622042930726561407056023582650677370545184455104077629647444310987685959034858789436446680783434512407561139496800878512087612158932601089334989492691727542738241019203281068483445638615076306357991521781589701651601166375665255885575857672614090377438065411537701816800318097993826272976814695519068309798958102532676538071320523581999770590321230931009036896058965073162084477710671366065351091387845631316916743764253757068833904874164477428712311826891609397057372546092286204052224870420449484254969110051435682745463710237206760340101929553585752730374541786228916528984198106459877076370188093103899163718720006071353102525004492504767708278649523329489675840672154027288628393699207825370407234062571532464763050973115616423790519763124256733089755313226672941587961341203267808917625247241514033430650073999440712687958600701281316991587000329021391127744265450634179694873932284299821932156473794162304014912661296119720729981243905304855792462150452450379806485343630144946176551260033071043118929530627155628913517039103397473739334753856962729240703916380618635213742053396882008822942849872189391880197455994796196410541333575401843803447456860802952518815077749070539555325486118470332781805491197050409340874257961239925998299151349954408923550405349252654204197358440296259259212068918247103930013393408820175076135075203141083847029252137992169656823607132419787593167180020358310357402769888435397052658460828250358095633889391388883105233166826296840363242712900659729425709272958615214066900054368750348669210217653452934489544123338149480750591940924766248766735839334006550133541626515370101273652407091683980662732108110239136568170036567080141573456347969594026488910927833797741614768227235365037823178552761565041572876046771224022536616657298940183172036652038253805126948543636225532047643897925705644894874579719670387969530721732245218440098955187241750956631949203510910818429817484922791668113728082115862876673396742100301053905579489373036983415547877203526996248849205908707503262748599794983455070666395327692502834622337604046520860036828342568491180421807766958931480596873985566290848999059220567761977084555138109609849684483033369975411027729653729121248306611448373682312994702566833467398300483188977186478721830499889255543007251513284506100042424916675597731450460502509120816316693204920249800961627606753604676366312065385018525557434851233650565225308590893238471492932731526005099258592832419560307604160353564518645207253274413278735492038734752709521590650971772054072480719412698624046238736077364176363907611892737906001648395709452761513914584587650274889278954862271871114922551234120060244368333279672543535673438563364507729458935149990342922836104753025916576978691709201805622634796812360763782627582579992089015585020372539705399824602780799426063686658343953396312147101238259495677674587050430479405946986331007957116425011380961834978066719632414248900669966823741296489724225467170076027250961775103964925047968067202400067101947541325589361084209555153864537419244196132727187823959719845577467879964628256276582139560620315712941506618129479165941905902626282899800931046450244341589841911254847058975864306699355759466661500435505397488816663533760002786265872579696809137078700149407927820824158521769794533878962427704280329088959972318110987620514119859105710724457322112605482006470781232196645230007078662011288326785280866654120608513370182169058317431474516191529193068292830683932244587027864101915324294596716904895560976998964050697407747469057867676863288114419214760072917704831884604636574792365777479018053911286442232176814944206571220873718680069955435721981386639324925433624081622779473582953818374650577467253036180293940020522653821918903524607558549189534450753939479562440216369951182762380761926001185500297655360043025529046837103818079409440409313373439462346654777609080052319312166501777588203145765494005090899957378675596784910665588929306101339412570059172320566328772863004557437002001470094929162436115292875914561491394118249392451406113756487871676765220906693408070558056376893501998221569263816144783591148039191655463588542324480481845705345367219147570995579035837114301598765114699092486923790067278984792317069337568960751728555830594907519643066707709181141758365000464913618786120653461604336932554326669732247159550986504492828379529901772882139042890185468789064616921873868710848227243708649929112865260057954244783689718817281135456318625214332542204027259110265454943959021616792294737699000706569250253965314908847159202245980177049797118914793812387649136423007957171998087214171705325826828073417776897974744284010168238402075256954383159039566420681206842039180086696981046937411918975859775270138420095880722098999538073545609329193416572023085924877506562132871929227097485540213673823582936301228767187106078216292280851278774798227416783873241438233094481083810494656347440862895878131908003455627268574185012905383549718845457834897300982936804582594286307011935161241148290479282751735377766129301759570158472169329833557490287751966421119550087921804999888547944732945486234297398394010996850303069589845701212335074655341578975656870892824262410688599948382469597769086439953339232022966518142658432057977393380611684252921151574397525571075088207018173327306839119571584531639385221602535289137375338333144671955256983054038984215567855027990978646960999591060742224553348829286696239921194583008575303442405481355147101442809692316317533168135729877610451790872321804885634510722220951911494778961668894486707481116062008526997213119839644939785388722823539799367515465644598755485554901160769901667743925336801232764805231701558313683067268470660471903420073885421465384043896193773719966896383430583514166714387227923377193831826081149334866360181240494247549673767914446820578240185689669602763074108894865238090001506093536471927521079449582529233129446111193351859223567554231224461986555831284775056636069208148721632744045867983788120878741563958707707154603238266996601277551189702497187197769996585507930829372457372256232816829750292505691501273301035726844402038600869038431948110204960445403052535542388513500803960413550299859253126538083208986974470620212422927554731062197389680090761072395608367443683480162291877078057317698789719190053050870983091800137055002508332151985911574727581901474616737854072523402369964113451051751549257566063551154014414410083427413137787087464095067874335609100360293937400833525204536234371174749720142193953965775483718050617828131540242643023059773808449795567215627448005136963037596778651799585652330037785457904467445503654527449471575887028217109295081259449087046654185711724438656337435223436365948729237714242453098782848824560647742404710217481199882780350599187442321106614370594929823762163863696002372444864266103996912838613245685495020798456688959069428800311778542590300386351755702829554412747361355644385904933377214171555960240705714072010280147120861421532151439145641910603063652111904440049928446744210024920407160104928270569676594731430714026171414693056070238909748881063738112996833121789288842054631611535137676566828308524681959970560419863348376668705433607680527903233459066903135082790014039036184253691613577633613767090025887017228606991107720929151598672533847043350982736125766119177731949509295165942764912496294448260946619581936681821414610775762044423766661312958821108409212433705959393250278128739592421393002738615365862626989716878483667304901250985831321974341519551540312657687472574394795376134800626375443163721056038210728479215644814039567307956542123934513820436974983482499379447583686000216616142226401000979506288548448937841466446649021280849091190323875097613935797505776800914876087840619552088572311510242009277075254833099476029426956890243074416191814954751837146389967924622115181058308941563240344101050273754464030122180607511787249393315650204322939750285648694103323375048256765194397780065981294215007117106686850527997122530592437029514502246139714037213408715509131933989493327153667442199622694848231880883636574778425359096912393579807865194659381275320026546960308923689174826951419720006285044994660301597780171480884051737202454699696343531423193661706712043382738736189267174437873412926682582312255078160018694030803092457340200814391078055314518793580486750908800114894553095405464060816745245057030501680106123736760958589771557421609165089237248401389445802871055732982234142072946835116245903413772155298690374650038040757363972900941837242296713843331404244256181243176474121273213865536818290657519733730291868611980747766275599783493988367945119973888041410134934986633212774453914173816941855254098271574384629850999621489469863517777552404404419262704710010766035377525660890588284641595211939417294015205069840005000112032624021267266385497955713782016834402010075057484205638095293270270282203123585598180519666046236435377860571852058899502151061956517049036361803515715133716841124093112598281187301628112071195204020500923117490388056983215460915846384207278906166068926879928457929987844152135055077767273384904288346792347683300875697982172494997562222498755731191885903905092764654769357141722165412208147077506300125768616489912693932199169317381151586400360688260926598713956305482939269216414559060010591008565283551456683224173062905611240005428429660422386790257103290517863189187741346364008404745647093497001026949956456548327179889696953023413367611640206662770027469397516833257330113864518135705435437930563482129985433546424424825673195107742623055757468395858969208794668575285440253325613619641331386575055175820976170212668182641567421874300703868598228856531755879935089979245686189527589903785470380347399908807365885483780212605970315144785637613623167736589885302610580512963833642239274071211580761098347254526124026423489726503856158557348294665463815172417414285846659823438398379016202872214570496134787137352729849472110820122880178476656509432092066251772777764570097376187261912554842734949801797815013509991507820406023508644565006782868938416646496120672741471587170179197110613305095213524396896240110329915055682400320091117617678695629467272318186205609765395036951163626851581458832777198370808248698379692357987059420777674652858335806156181063064984755192842072460018797905207758307068695840400330359548905295138411143674164523915879674204938213699395270832975818423786494587041531566408788921455128857845032082999676140260551268517605364647409012854653867619897126795367180416813182243244486824240483032627804900577406336996249973129067619340318583909437903599390573708540979091806482790595402968603869501560149268167332161345544344788246319185654268453577298685596248420981893340793432431149053429056435865915039192071021428127951871429834355950039426263747675104877161608739609488574476602215706102996596709439125091462917278032851164512918636132572886652885635055295153012853187265943667820105060483052284049901177040976158914758656237128906817772803477907721124248619156510010740303556216245284327155526613948525628449316781016545074070023541474160663761011214867747773269680174020311522860606539881155481191423189712841249586178246943603025105594744409713492853215856450432306949953236192505289020371528677655528059253826945126184205329779527591436678111208376138315832607236683057954822063897280640665541233461424386475927531096355254400383101208363621226258324788623366594333723857096086882146539322545217574789106397895981836956998462035404124713598275793673639812710916246244794459329998413052509150248114843634212824209039483700571378786059154613772872858827301336913773429361249343916855924522619715981916872059095722223264690245826990036341474782053452979867941100753536014939974948707785464628523282557605878630405088376125394585661268235671462821070916355715362265349218899134233806895705777894845508766445628272207175799257501951993082861997127285867427026919367929410939154058178223040076604852802808550163805721738455319662902248403856251910783255152815860153157021821103082102831323669133639873056174289117370280114326598807609242627843917100722376236091256929663535616162490202314913082061756485606954332218744478701368336676589454178902180992658606655165378756552192108107277984729789424110727461804928536378316000727538172260004116273072975952364709551638842284649835036027074022636466025834020141836319440830883640897924641019580457073261341178565055683290703025130846336484877662712321328484373992887618675053437034328552681694929102159859227701907757480907581987346950669601735163141343439883669173956021738618546830706105112705597092628825024904069508031076946264172073964412162364204145364199726628515519189357484831038755352784527871641839972709876301129925019769956323941778607512583746571626409912130400810116582107371043963370319584521667245189119709980976995887144324433888411029848735545649095228176682977701213395530119973124516896168101462357691071199819291327079454877456544440115440899512506321034074955339511883344276589468848981020076947116157317860819681012788653562362194290944587082105692244118417985642463778336159116272147685933860927095523165651598756867642597694517415737712737234534837768266169544786022243021518326877044050077747995499104944951891842228112725205013584408741867828467386018774237234384902336650308297978484228729284366314304181733809678313859739338287244293943156247882691889599489130350386434632649626209223479043872121769384004000181057140046230448946875718468660114803026001387485653128043538288979517737986286930150315544836575891164264318422022944260512483516854873647035316702280522623935932781181230553511562220799280032552089572621830809269570824705211169494450335541676694637167724342472915172084721022343191211241669848241102817700616369825733458055906728822080302746613933996165182000120098006913367681240711966976974198612034837867400862559608306334449694562368215359120066749964927842757368256196565892846691957690178085430618874652442296957872412462266539918792101641473114439872700386826510687519008629349069389017750660066781131852838713780221292017710844991217867861477525843668439822881575002778622959507169066712934826141408469744800336286439207535879563812975902173582962398709783899380388507329495459905776339345715678436743752168736335448062691814387550237902693308697363288538817848346740244707326058795223897249721237553411924941559193597464945348003387446456139641187953757394049851374847130866834698851059447003569670269527066076600512464071967613479145340111259628358779022402251913113974769804841959743857887915294797394101429354233609599601662769791630066696355159424834091240964070989473284522048587987115393150447084481662071912788481357070820431749835765320964732208008247699920444348181990911085550907751043287002775079327891038402353213605124914561042054426636578965274943998390435155650904215861018150619883028622783294324023939402544266298935722752732716883279704608112757893735527397057948645083363853000634781387577028717026348147440929612638795891844142919081374517490476451337187885997083546722668535627088053601549486040675204076972483206297311235212737263074880310339920748549773991957177311002551777107228525910316060644291042275267134944438950544624590847598003208375845170607917983017446863309732120554722737404674649588082187552975233346294147943332581418384856415727653266816550646606108629518791390837461914026119878305650740048440660929964240604589774332330423946964742265366086344927887855012563641625183299169308575153610828125844281433260512792280501231799789665308239838228856972836282557206319345678898604716782739949573289745792671738170431613604801436462921584734561913896720508233079107808337636054480672801751647142903251958549955313204214570654310741127649492335204403678075689751432934566595235336827880459216462274932072899705559136785129051758588019900555422238743739713634761819653536329585652978251931244662957434508165558904403623819839371389786704594416185012928360580045140466893421018566178200681572719187887556292153336154715962285122474113146142573639080339269375162172810425172554967836223669182010859158038954199011667416515028408399700534119698913480417241245633289045086161668868176629171796976474689605803161877430114307937042303076830863950809727251815186757865956243276595211372181310380422637481109841153602352098909048338585330316163591663310631194615375523962766106203061811902109111807090655632862961705282393254331487094812444803991709235425821178710741496974559593556918072995718008177130993849650630244143860789481470113729877767377091365835646725511196810578408503709711604987619002315480953479075267660941595416940478662441446750532989423596343725133962594885992418611607619049999309209198211356443278625622950007644779181461184915177691195206851176529025100062761039883934949434650444675165440962157734533959686951947167371011586208356358847644394296956814020827300889055983333710464958311430063842137978546478972276652409070186534409428479818466443244435184691636485995130684365784957340399397074338429248626921490081265137624490692515762486852089453505709770755315811517031496029682784322660352545455221833184736628162772133971638455340708086693664166208981307855715681435389367125323136862303343297886166071660489157350327490030038217108010404428759941910661624625603993878272653209183210008776520676143385977352348746290324710767129429897179278893298226534502536757577106029298644115077986859691302355577862916581980527738493154194431525515677422709766184633505679295852051595761724245063124173341329822563296114593161241797326574236948358288330496967848863976910134294800628257199293371349530113107312742841334251607937580838192569511470889932732895136073149669441178318424728213760976429977163179019886837037903621039824287365804263130431182529335078838107232962851951105005510785711405730321929038366775134209840251530364953180964305392929177103642654496459041511641712273964088755924796904238343239078244421872294195857542868370674576761424932312412431670381591308941936674989205710821706744701609200744698899601943019738242064428867550680272332858269265024634835362882177980763816381310292606110148765833959917084570920263163683074961902874868596191293806482114280096424046434098381116628683146530499441072511546468302648432038671708182094626956476386083579283013657741259055092573915455713453982447962822613312171125908014412663550148831269249297876914415509642817070552314260696404167765085863948534000508289516924505163803943856981346525815287628970854441979837497498265511391596647400449786898561274309929005176921825715329325577045936329064007505588265237837483174841700935592662175317819027481242208214603536767358383993401367064435923096243188799017772125905122475082307120829727960231458217389055625440070059577196323699425607846343176444514587559497390206715196452926689213622627726695469501469540039607490094375262303086832888643944302902592022225351105103546370309131960438932764579333411581553552515007006699847062438494697525616362944524528780580015951496758036590540642596039779948118544192139799176428188003620229659775082293639819130848859969916040263623510032428883551294919931948044685566149705872186003537907909143383557252826790279868156981823045649699236626610104318126542544058680735556439069810355343587236306356044374341254413230624134387883391962624351680888122315309794735296230628417532094339716232226337398781314295919419713906193100746635059246078985145681401902361447682965209145670345507265480814445891542815584176655170001412717203199970003071772275110644422040707136262111684453499056665931257523533177555618715380287033553102728393604122709585080942285549565413434246933533712822058439438439694647510855613782709584491871613502044637436939802709752723855655808273361190208368098295449361385227211241583357482126747463096554220686526013586611994762773635832645453858650573556710495392523434957094677242885006751848485517321396422186600803571596328386990906363464067822312411326312313901707307759528314637237390321257498815480482033866518995667091703351704290668139333341803823119618960375447901858441899514676214331235836947628385151346752863131626692029597155038329768069021672095271159533578901324723882144293975110819639247739631388034546678470762148991279961841704016353786794698564640102187536276421172787277233740095364081230569676224864593450384728388414720112677165285398204089215809890495712148588481409729029198743372180043448842001869542820356084631781340539944313242887621033807697825276213487383374386876133386425757973220677494118259847745755463785765635011925109707428677799520261967494073676097121417413728797067519578077304500131729824376206009622621244451670267094563962166093650092063623670067879707748396382418420356815113405114543439039225224859857489170249464865214456912360433878235354367423063285880198330214716313014266274649234512553028779350974634773058257038496439297507918282930683720230431116072493933793927256943075902100793658283934747958736561625386665224290887032057860071684797288630709794840452976104063423321560360997546911669563186083366100064626779703144137565455106315526064767446085120474654927801604728353663487170603328557392888833489571224739621772348887040530908394074887403696086145230817566378880315468217949220334313147331705510632358960036155411097057340965652491516000859570508259957555519053704178852969137358922740834015798679076885605036141460620519473613495880938019125078689338154931474473027507634380676636351419007480256679267984239763021828256839551791287164911491929238063945672002023539532307954988833168034435529312711294745818557331668607384396220040493135507728900621024576011463487717474158515681114392955584093830757640544747804651494217835862467899498073549105789373141993650276490140775375128956357945255647613287846716384226352025587579514341415312131613748401526530434200102760940859278335731328466184277123842271500120683895356925804505914590940249731072281433730302326332913567409548437300659805795092091725789849483615212329779220020803500585336176122061864488332978991324594192889931889518717228338265479382022633494146522305587055722481424315195599315530906268469854667596316222349456943640568619073316144645730519323292987819248044187442860801718888768057368382372366506112831331984004039373280730875593568038806086508931462195723894984512410984368967434007179729934759869967985797712233622286682657648576692178348768561341132734776283323644379299859318426235302554109966468241758235172272262759115874011351161202120216590710277140697246395680591924686271525843325472079090516569772523266554662962726614886624290804111369673981542459874968763204462082847401638458206675545875978847488919509264451385908335712393353165398527634937743178917145367338754847871282696701364465842905723281670561611612517838433343433668994765889378597645142631748214545764751614916899296195176375738966615924029391040272445663083492649823824865397618083506764775570649120181202293514790564723615940449740067496461046086420347059149020402709511341393946324301495884458571608441357348097163963420216907181797530446706991739555458010396393748302752445583026310117809503017504332603986229319419581703329375608516325560820395329884460232598645469181241485889068640697738261630794649366293622192680835074595575345951581302287889641113087049824324935925983792154172895690372111500140955945583233516959065698294644718701263625451441460254786082320364644382931846460121294890486233285822929784245363610984935622195051408719740159975298615800937177792355965174886201871086327901376118271875686148743633344711243596384273296561395319080926836435616618019715063749391953430829138552829939367196058878388236505091849146043595100693219396169427148978367085568191478354062203884197155755012559260879835695462228696950879847294320469054466120017678879630278766181621054450689736541891282688858622054112215565315630703542252203821564227542950894216248105730523781578615900702505524181107888190741545831583986459856662430703514427046634503012543326656404742175532732184727676844101053133140778646472964172582841517099586417152440873946158456034561605224475579935989647432710079970306233947562518847577440703841793611406094994644852255843162725622241468812644045406737571302055823991532295125767713444975836254663334707002992410688133855190651331454634758720436623921512399306381107288387457630801014299765401350719564171552077756816423429597192301031039350590926402360720361242182686047686546965908951076060218389226091575781268147850888729820307067333357587074641966409778544852097939624216875349897725926732440976796470504174103397612317792934828170061127385828329285520475568154430351373680193822076436555710093637327498329365057451234621508389169292415950952123931132910946780331277113745023775235108774886722719169130644987407485467400506406554762224163302645628143418667460761258260075181482673796619527254206861060412600264356418806493278671849336496890076823460937413315333416882616215241302466863479932450892280762720117086395046014219157733348866716438571338627030234747907787776019261081779356067391549813755089648782484348247994553223451124471301047873754850498631415320488415907445106817527160527937146298840187184159234942450823418931512231242453128164883514038515419972782709652293453069603897999318679163181374401635862090624354565648133341232412504261537517728885026811316161561077529375935728852251670233610176900967395762450060750039610967954785102024922788967178610087168298498726599919165842834582814191688203773726132505489877037423672092040015445588660504164411889182914523158407431104858907117826626617421121602786647540384069429392099171861327010085537520701702688901598896531611210067611810843219772505424837057866720971665639734296779565009685643298104404226721094725397616634767598944518930944186609683325910695950031734975039693366517623153851709903022080809077205087201432302190170101864968692671652016122909753981189969517330999110326438490936450195241158321396073709787126868908676871396182843567417899032638772645264475454975810099849208277979377265388238396958534298217493912190575979377867053474184055878186016206522152427870619191694603786362555814570707703312007398347736224426983843485925684385761262178500498123808410941584108699781217396160578280723684913520062080318555933953149195331001538619386034015391388345520287505022078116997787734891786676995725206050714569576278265087910832192583105847254912359697149683399810661383856038423733971030814053102809838757690408338747616224148120792210215691798039847205664281736304688044906258212193132689975969773144182527539428834266492544753857800459270133980674480474858897858636779193014635191295114731382721549055520530281139411009648273819807325271354139029269016975910238281987770727493559409714149598180724298408244404088075892445198656109059588331651065123813711334627129633947213404648447116688028878528863843310718093367794833347720458474103019669843362654825720724903381361602902984393531742382840810830669467601285628209772843428069154252268939433996531036038199798706999262110423602042299753672243771135074234278274528708139936522979607064645172161943671786118657613408069373591344678150364217806046396638003334400088645191337029554931525673905795596871615087546803482623861665717456465718109414616863796002964346765615407254657362652550456510431034262018258709801446753421084899460227736901589500747487621996072503650373216563355449246810930018923703962403333811947141984793292350682848391516271640112674432439183421903034239021797855392822909122432543330677591718410938004686479649105040071539408635304287458898244815909834238361283433588493868385826349749632122612909938506530263180170116754004209257600116210882047532805029172746334579136888971434562699623024629346769906543251752802963148301354412655929914859336277975797401976824718928151801217989406556811008325534762202658245653880493584338220210593135325804950386746475545391181956831094636780992293105652276244662421059111629291659770675669348696793388252339644879421769266726898223376898431409793361975872454795488683954886286303381130052726699538045385851772979704416532861568327332996890645149840539903095615120097889850341217538150923938304831510129121099295026975145696607211410885517025500338172680911947013362614982725170169075912839811708249518454820537442849352198665037247965281563773382200589089180725411120171375821646922409008285836077331915679951005161292291094911494296804936377504010240860744148343568086955543404019878023804533751759948624031818463708356451376054932616064261942868701718249967595856292479104004073550076580014510151005148613162479051678751418623463843812640865084622018301216217127969800018627571429657926705482802143358451409176735613092955723666010705865329654555869211893895861364571382888316877067533450662482340073455425869618802519246850175710548431408692011281857113331181041557207518957359127733750574056462999841068770994405402615015163847121154715745971731950645423704158728934265439043334262996625471352815898579334524701755544708545214683951247413679437921431769870241139805748782718021483656945614016811796201209045470011289663706774307917077176922765326078853306361975094424414457597891877863448556619752642146589024980469485059636556931849342190236172136380597883945309277420541036624922948146685741421236425443842643224743893970606319279533186831180210339566084080979508363046611162519203263611884229555586372757550046714937030791146576233066462827602277173751020922852236757169995232355086866139182231488626217395963417102591773396693367033639409785982620893891891716255829894194271292723042495410423384596315044570405337613138323715776935222646010416123522924750820745567011795977981601085334506637086980378448052719753587020560806171973841963297512602133619241705909468763771253587351730120907217247440102713919974450238842633501799709786365392031437965523528551775131555213393203372914459096242232922051127611829695557200018335611458053412898079511508898372554293053429055836984273011906725094908091005940982567443437385424988667278123241650537119780580865974737051111294582813638491209034624501727569613681712055090657133230381108065592766530449127403924565232638941560469767876071398296270843702113379175388260738005306741140597224836644222855384244527769932715196473460943964107062083121307602502846173969886734828648170661735172847153883469727533565474983778983091060302336449438952790208309457180313163793960862910874447954570471510397128359685651229359767914702326148472223198329028963416567673178694398693825425857567625939072220066289441531637863869183922274237715822435922325565245785531055240953120313450091917168263654578845152891391002917573065347767581586807333748215270181537104681494954114225398714358019238326534970873536586752528583595098415971672433613236324982652291303682886520537007850185989900658426683971984168068421056422880751933134791041464453933557865460949372376311817109484568176453135371751794993665878388888244731125118796588220631369456771136834509883218182097816873297931867402005128128099670777826968200957941123808041130533837257069939850259204322182527258955064434037616020805475138944248233295645740547701088779416987459301216110601542258054119434903913106661436657458350077885977380899382937871130654737670371635959142555763089892049088297039727547670646172725539170528429469803601892901170437353071663442017735506045922169224706834118724954825463161041485373593039508871430053239073578737564799380829066220615877640491455993896139590038956480793704787286114010663002925867737085926676639086799354641324954465954803905918502057719515657923632778448916403767655603717284011757028652023755145351867707563504675652408636223569868200802686668424000749852484749866543485997864374108134246019057591835758456332903382308543802530195286530234372269141673624837314817063649697925651586590362009792856775676210843010517253682795240300547873993654682964673709108637593820893209430078005424935095987455463384455188287395421482211003456911602430724707298629744341038753841452311711077666196629832720415809898423629740669099219485190428714970348694026934295323362370387715969588120373627734212885465757378479218394759196001320749040676439115416148863297953128598123461185696434794067984174252429017556893156489401055354767752310819905108712373151882150634652862795248256700432741144869444455963363184398283111188059417097646000507503197620901610869870248450528091207921949599961916026639093970383920130555998013487733655114177533096073747792677226901727285728035443012618720136793108827739720765303068778960041645840393965631217447837677287084647582483569766456138956070092275100360627043940397569737505914708715499345665698565665093535555922131383057771229216764402000526142130542149621777469203281829918016873039469198088304706982121485272121540238762638786501238791279968947549896993621013992752843007548301424200239981380911911217317404684921644022390011780538903443593179053436415862831352790400355285427555892928569978090735515705994808235445678904633987535031867508720289658923207361198472689720207676992211898040260086399943898593938805951253345159592933470460099910695631858373261444112649361697603099781721619933567447208997861495767188342860742830939880946564401009207315473964607628476918856177311963561751373766111198072885111357254216338085625632022432645169261957969186865928873627582260930059481484661326977776787771407098758580314832933371586273349840648951538182695713964470566645281460134091194610991883051058495911355831777324251925607018296265537312513764382367443979975135998147367208414643303940131995147550645299571382447696550920605470900114102590689060722210491127451010722134768166057084282830144760110569399812534478120377445601147944277125760655838572891477247956506132461492641509430351869127275529692241080694620776054135115071200286125008620874884733737858910322987082947197387022863064596098864574373685575130917227602566966784378505294984988866985870243063336598540922602250224396596471677246012580135472817515777761702624701798040399875281669693250174417136754982941486716957457096841872597648179064221963067484040944465228935265365478066656148334762009741764515712367334592002032595846812585872168248694653033322571154648431331787497291374263168162113557919942170163876574309230698433693188977327745242025080910893090223094939286871082394369871279103391614223300253698021133363514763713133296511331185856666019388156993130286047510040543083668095825816752466706282992223866537844583825426022491812641872935954076914719967038391850557105399949011584985673772806151550040873152388643457309668491678847888783797993869787559610516860197007386456171331501641312096775645029786958354236931693656253508705177628863905991562313811430185873337682751938630896655617843287495601748335687830562896012902840795397575954081798530581220343087689029561315429427334605366617229680958792630598102706359667413726715046067494995466417508688427531123941361476769367338844368704418793052564909486593588694677060830548573439145900351693649074868088683362555329744167281580279704591704810174247147235394896871255684765701769690916230916132470550212177703246923263293501660824403479971519046356092394168191103919859557999593196772507009661607073948294631415654550762108369337889821727392953467108295982655907708004079462848513537416083911745568056406045400946630927037722297611425590580190597211344143513081257716330241051327441517750471200707623944966842001598578094640822860539695832205655770425969791633288370508876786128132035404505660497085946259956474745368004969350593188369861214986864206198141918977451817059354146724428300777289741363478480503652645337439539154936654125131607847163089614775700707789499004236503738868629659270472576907011140412008391937298699290703136399648704272557065425324479717326733477950439992669735284753829634233378310812047980232254886646303498548759217439997701836415924172657271663563097124921933922635813014625410504390864286056575068855780331120772058938095072820379854507433710545364453106091853471753179890405629300233326430969132509321115125371650634416464703502054597171536906913645015475837483124170718900471483962157970105826686468239055555029599312707732780762153068474918426165502337147739850855289209526795383508132254949796976234860823407329700420067146246330502945790795683894275071066436571784060548269436156287166934432893827010533306210454747505877251034929975798771702087412242629351596159044441552753499119147817329161892185555465007711800687168246545870387035340215156146543771937434620920711830315828630136814422833336180792846188006119975390113527148910126774150536402102359711161532493605672566292097044028814912196182320019454519253678158594496241479277367922352451970951143776225232573310730334258427536672329685237527778374388244907259774095154095242694245441884505220450047103615440928122420630582160690894535965876237333378573536189446310927744738942182053500472899968233945636631632768215054938955741600885434346004940212808558562702875602300901197431061483455403208665869050132190726766911955111436362090812091085116833635742949224090970327761084127584464766183279129404969326924471601937378971235828424906611118522153317613308936799622116001455090194291573176425326271221439609481696074955042777971067818415929663042377768736422803382592308205566877914721813487692352980395679129094795073288398096372724163836960365937391484410833023407125212488300057963664482719784810383678627743548393323355482697479935848590935204749384881151436752826042039549437618813036010487702326842514700351373767172858200187302280377279436725885188582966155269225106861474816493964725717090503236205471476614440615383158143443023362880584156542625687623167123323044363638686871110225216072304794064375056036975588084484071390207594632749767672993755659023686741067327471872772807441344841113250916268415555980175227974180069664317625056293697113570468917484491431464957328974065974488616234402057277748899704642634149126437123025299528490172770562748862269367760217910491597694312464893258970875864731236961758547882488878936663643882143217677962530408755749196033221528844446788301914682447067002595378984138002270240788880042119233049601608503827820696014513162340417976200976262402535443752012944367621830959547993312657760532851644631690893466433865341212349751641404697791258708466376750759933960296203269523186481853214466838972205876132182747718528279865213821983981428814864507163184426991427392466760857643447010196255579898875648587224856661498562721291711323242198214392693826128651644660836880207077542634000397935688090294738506727091713709094587100531063649976077595048852240102049526118619620367081019139086314534406195220585003423782274036041543998739528617035598143499331210875569451235391291391668113945379561321271471901632202609991410468170573194051949900478818703580732175950472867900622269895061627637364797013815462567800861690263831596743344551802866494553070494620119166029136751296243156257640231804192366571793307784824520854805347493132090663748909822139630079480672219753564584507916606224602686301492414653220930962502263104182057049412661406341320129018174743686729879162786963739930938271597504901117275715704384088329045123868758770643202788179095574204902402786405068928581545488266694874208335393373376334853708802036839103630508796795284153206544607396844339320174749307550309624787472966801578553606784325727551788540815795311816694361076803556923362152001796829336599825304758462461947203124590389727467846064243217999851280673127899694488204407780647767327243068569582624461449686717076031343692750161206630746236778608379391812567909151840111347115628665109080265029200266728815437810943731974389487196324368855462472942252885708602439218145970858171965991377415353107599865468404194146371954164221271057903353921610569277762265075789948572338877115378124025613105994198210503905987686142456077084623603397407641766830912084227563838715191947523838760043840406183259044391262767695977552666755411946923746543277693320520855806305766500508736178856940878467199076453707072618841974518624445911877667299932869800015264752683411376104223090080297367655130034080656671903538179579554967242454110475801667352815472682422389596173242266171438062161007589272721419137203151798972752600013405183181972064560351697028580399888210454183554589974017151280277838593704027940968808965178518847269268418259456633786450627105873941756191567970954484057635545170461591390067058698020803288374511896669310089799758414074296932856743252322350444278458189865686780341703945512931603240144549773484979873668983552135836709279037286057601290510622473139551702514372657450561598885867179506313951791416802794660032975399236259388468595104453760438547321050006902037224338190180556090504726412014210006115629800181647313233475877375621726325999960638949216461399885951885458760587249354928157263744842169409094568461232294444828987777340773427609654981868201808927875993630039318829981995714863407521486311550085495822427171810516918159233945083859524956890974223048794578853998425079918042709172187700753924837120869801845494875913962320707603724291204648703518633497487958578890831593154638650398699747856464166245673960100693251196578084952615251566036783272605588110569494614253009573024676513105707488057114848005477535592882717447420516410622311250994174580419487127961868331269694500888021315939134159982156307448308066165250272072066120150066990360584561898196302871508356228358300574530411609072365478615654610374898639935053680877821366118772888645929209572991725857066488441264005468325869668297094858507727673576338753413661786224156927312323375653007728309948674249641155201588086180324620304948539678711713205795503868588532156705303381186465950486613674838641047073023180727089922236913525392325255722521521141209207095765004066197611588938165985705498809365083817452956775732548863371855299008404561132306682736649026738940073302042244262975444954956057127631216625159997630717711035236371704047831723744247062193973872618090087814645495206642394300569217764256906167673162349945247369006720339769408908097969379752792819670775004688277693371947117690697975239164174484725280577704608910573838312963245424813706720605728418562292394412783248106850872378380391158569718061844526924105786092872225875287892557281133580131291277133517777902739742692989416397714907926790659350741498672322087169766741166848787115565077526308932001637515338666819756465137199242653417222042335120144966810436460540512124441165049694553473584513692589888613962302037779318125824289720461328817196085703750159084795927014236963877311191301567921775167031081717785837280361507710159343679459988207758720763974757709984592140866445865888434434989969523196080181125635472136446195597768077678880356655809311744173501548285587330807502966473505644778855368360052220039499475503389954755369765815439090185600321744551576533395223128134593164929972816420809195724867889870347477607875465791399193509701018976421208738986763825357835391486742323215035943857040506969504347579593343892216240848935444554059358831990626114182831869013643073660463236114365916317180212626571917950337966597594562447463406672865496450719588404209457877244941805421972307783012092356934719127258163280829676833557337909100321241074476921536225657758440532776721553787530357060761168397135490210383481980478473141278424148055121512346141129278224359111141730694755407935730964669306586712712623698442998945382259965908484912994946342217624978763914280792421293887106322099167424568620583372167903194474772277972768601846798583761622197044075464190409422202873247942351427543610355131038564170134164039417274540950369979781998623681901388341420896954996912392371239828222276520438597488719599299337027440442658763751874940847099754867513242518157989233825586134155860815478634191719038199088830935247312769434691221243580308083934990177060218220205580692415325865039699178220092113860654275877332551151960428268509065350459420002110394361678842925908668079780866017792740862758518031056673851318976008575851133504206091573134413256478982900449993801992394169535476905670140401476669378964576353032611782988611302854385801768918359324656878985139491706886908841246247182109530956607991565194655181271945010725912994879342933203032553797837109299457599357371412322603764093154138507459462326870879359824825630281200282603098633348171730487804042569398911819378702248104558932880702840153317679499661497675618953251745348129475447839782053105909124562822642185327565092274303874351052081444860833356038726993714479983728042778296131946868775484392241651551110218264574343181259651069233303053214233752032574382543238558219978621997570126266984606628708277227971716840499340972979662193202526041823131497122688521238177711266367419556733755457940781982947211979040160833923365496335942054386358350742120569203617642175300552853886739725338249437817032491084163845132188415151829466877011597109356690469238818075101087248756806074796868747973849380789526156569569450143144252288685756891270163680930185836632791374118503102132758289895703951116546458632442127823374304225993274139612323523449869550728202839813976620464023699827148148586735133809703352546209759978489366787906368790293690455726839036657947137734860204908481801568863739329279629140404015988192294616945933572853729366102182292639896937657246454812539068183308595551736533591625337545319839195188188285050052564346322231241822463063338984190127598492827945523305789852000700501933473893950995196969749598686366391638660771608974353560470198310138597175211422952296574554337750675458581830166287123479976756194802195561518220810389650224390998358195075382387955792352606521887174927530917808310753138700259718276689052212070016158382763301904635640524742321444362786890655525022506121533756550589116090510039038013517056838934584406723265356831938870685298136971804105530628239751051780040812209067409303190133008710427886498949533972804533705811616278175891905910820017909862658239322141716438448863945006762505494269320632852461963635160807031201687764450146984595586564441462120788570512219151530365694678450994084145379147807634660076264993002392074209852071733388712415600926084194706790910352695319107811238487042385765637898768583302967967845406004085649800928681276922837401317048901836089726331971934082058081548739988599847768425308810451614019940716555475067415666044271855810570592658797203098773202502722266475131722333852127418949602487697640305250129254003510203046864310096713320247955958151712363195113046722268042575034014421503381393281332143811607727373792915643803403544899228992512455758459309763054608954351187710665630150693577906411689960899424207030595008523191737318613990004455669916537840788752256002058040239137843962996719500389465443816781029731558902041105280215053429009472233357458314264573375246335840828167638144467307302506264544329096152099818814266074237147102629298860368525043146550201365736418173362898448455322011685432464799681464448398082176450434407705279489574039178176918777776375604779135589245717981667176661002066194998976273114242565059762428106738621805832398727796012733362546037028750665537502560780593058859522808984664795451410602616468142595056880372257056371554948324678549151544090647398110747568505549419090952748343662651483459683637058987631499631108602588496189810541322338452598659602935220980254431893806211756549571338649009746423322556547423923875405365004103535248582758465687407398319148397069137932786222373364687589957637331304798717430494134842455768003592996480834037180942057335429565815260767809952586771562885397617790332403477159631890948211527243911600915642535655922889687319351591048352287639916745464073742323217764690964720744030344469498836341771071117578743524138919360972928302263223814856756084905223545311510222872539378405295404166065955911685337754407523401196515836416961084611116376610819462097085591485720622713072039001274048417020744538479664241487422844884370471051469757931862898792167097094611223566590861452677572754236122615856500086064629332766405553281524723415302587400925090917036757550798624223722674098339172814517506755111453585612522246652733543777455707773461407200312446009037529796557625989481351639332644551214081524475883283796405470629781443724025569554602819815266108777645480195504427758422902706439805729244328768971878895934969337820891156029088306579471047125340673462514690798691917257279291667803187647905179919817194881516418614612826383409792807303440320780017335115486393881905896879180493793603699392927813904418126002828175018046461896499684681552464302407222114458466899946054408476543742611684375062741740077786349562735737181890508868598197293250537008104492042103642383196934218303652583879934050461354787897820922896494344327717840898937419377555948285964200866353407747551214124007349845358945615943489535303634257659152530519078279940632110003908476597407022650414382561253748713031138366665384129748000982908379271486010353745985150447713045503253879790008895431531333454151131400405991529099672359520024580191119846715505057896890913685655376052616549016822981329605030339527289319746571001790374191082655990690568892748600399372304203951306948892689142306460785308392921502292318413113673903790436287263267637343946703190054354599910112413410262880743834663531304709361473519474444611633624817298676437505160908869929089559262848267076284235217807211556790275960639649077006016109116496534662092193221280881437641191363119660703398976373886900432542315318057742919506365610485765434931326428241344809040301502616713766208953002072710239064269925710390658278982327844720347005182783740712302308158115879562921501305789581739848347593838931290984098900631429752862160650096485252904069469400865529742641758448711812282658165475902620736636783447484273795854742993365637765993188992133306825806164991112130840119509992165809938991860778454890964908533824740210450115190828777175911902706820646218382019459366288213943221599639237132778020184806479712212188191921713192217923598755214372455448123412261883154506404890012881882718181138151506123429954018323352856278479245546028440194027447018382467523010605521330360810824339754128063631809291686751645562008141684569026791746740393703542308609947518737427832986939063158490367504409425286230800800572727185432178315893693064203363108030031416574278495000172012768188232085538196760694282639749280931334728572035073158885982213176493389227662678113774811370250379626336104923782940449215882849161235737590431712792028691376507539449964529087083690309341142423879633467340726721134105362605775153621437597670817200860569171945447700770284587352782667875753785985328890255380165951710275215249626176898423060035134255278588830606944211262766917426183664177099555698114893620595434539516368095093608577822638727653388783429870989468167431975832950673771276929037727021321525007690987017123485101765308427755192284667070230858694300820513569955779952672097930551179751669437318158981763035148526202838838289694544744560664890525678778015454315455364571936504468479253697492290674480343137335891949855863015245382869778748088054168978255667484962724958782915400016988917050758083241861551605694279841257506194472933901656488404128184539782203802564115807127289554581655244416122723311756132577186807802476855830355958377378548968271726539327670024956642228101047638038484284713941219605183430129529308593176316537343574090179998458796065047868347757165980373258246553594651546262267585809782719044398985057995755212543789306712090174391277838302736356190048223130908884143848458454566519414550192190959250712884452613342380324509002571029912775996000878300902941153744934905312600471749713583287366375272808307195420614185940210154352372763213502098104436040045764740385661006652431975210928114171248630139729794119514037839458836591734193996191027587888884922259298840921209383376356864907066269532702017259189865484934611175194230485794266770630719525437829235812336651611613670229665472217776867544971619966445832625392509986076243405546477219607564289214885141025477263699364637902623234805301345498762410313690025599795663740044204397245023460859911146049310652265312088122533314852222988074705716599756170170884491190344658879999112892472053416431463835310463553471668814038884510293281260269147525553896132596275715659607051536607415499785864663098068015440589431626782181496567409619334601319762611973989868938893310802244329599619716805803714536443777143286367300791244729771688390838854160081838276829583135628212697000990142729280704023627919772783704936930663998582554962086926783947140929968510499922702857768658471790722454510547365793066117296034564406877311287651691434275792751432920465590000048521438236319634167792059652678518445585730440959765541294993146068286684575074485238624216334654034596559676181899219376788061767954552442533785692475644763872736214844394383219445586907341428786216679478426212798099119878651957846261458791037948056917096417796073597372220078191019524483064358605938619766523230148024512721615621477483893792029788861026339724271642717993374670681669943556019039136011877330852184937716194513310863098723200589747238791686953979310222524984882490947755635007755587690210080191675133700971819325828009364812114083644940180282204130380826562904102893628151980132905642757067087567744143639358389675169431197135436947230991323426994939407741233764128612017986732388402772570948955247674337798817384827034645158902751132365134378406164636327092875233642186311055641819239379633263714122010141437408938577080970702985787292651386343381365242784546677127040284111819532335030656710370926645542822580873725466799825801534502386551946681076242900793619825322556196653184047737992037992108273053152657911297055329464145537099037401691876566606268868074096454582129486021579222275149487456963958027571332307816481449181442410070061208670371214617514595749010877002010908479149245083907440515346660946491262022036887620116654910558519190967191443427332983540316791095994339647208584050358187843169803478757349974698963156105576215122470846717361654789358895200441321225047003273492062299175463639636047515177864007813109325777532248681242501292237544285064125496749520204655343371806555972573519742203615026317335070105222150223362656671099248924305971015706773797968612720716377137251027943287680664841998734767237353235748087162955818335675741553571870995284260767474288905306298191444810181786388916187947808722513534561084846070295233907027570706501434859981679889109778952233689509191379726256840741900650417518363308038149260541360474644031615934964287321081704293981867109933944909104025813275073451579303667774560153584071137548095583024743895802380864674773835800658760842013278152660791080710444297670522090071665999937080529903126770322772829837085603831695555818232658075309134770880527049300139199037215773515968810793283185718346491305240363036125895372911492244225839258205830539673936670764980361762602160290732831677457343476553428033353056757337364414891902923710048851158531692318761629995132152886456052199819468128744241813862032581796903822480514306862978397834942945559499717201585564482384117547984039117588741920000889934483919615797219052736503907783835257493464841351644992399449448231380881397190580076060238124218285649355313429788421772209818513906374917053886151405831023722741813509382985051453021981693597958494372315786565706361413710027250223260571169989417382095897336249230405618466490555528246340452458802285682644945858786551743503002866229677850425458303711198868306089747449375947442783382206977574352239658343134870807428104376662666313062193537076695128232765988740000104278588705285424357391193654021782514648881296115671453864969572727448380324165513076367832585426911953377020648783257454459213196356303380354390349243541810735574880038369789448587704017896501018969996721858414624647448956017229163173634364144166622135033262536992194527478380996599429317385514160545058518902023499619866752652996404598875729122104289832285883232585809518317406692937340499533064858807887752007801076363032565108757907304296124220650878988192318576919854558992518315872219046743390821193552821191511631279786484351966226220711400085993434294156074898154197517162667863635772894786495882563689354338239591913750209332575362433922741761504303855312484752053992427614265252690364292031094732772911183786363018119764950132512674073300885761154677768804966125368662088627369921865360157571980930826632318046569711969830222139596671094549966168377674956170021792441448079470210830646797458820107129689368493882034391669905532453105395412707840731730793561477942500705369549467607493633964699288204589251777252932895152648591249819619959638132149559798975278717455371097440669820058327254518876050978914767393166086395217790655901863376391435557235318023727764958484045788799959485377334902986467509862141511674448610063238637848813109242345868468082064756035385623442490249585846874556452839798160099234281775784386958220122220753367389900790211074435828289657516895227720328342617645050198322289968978943051046919366158260284174993192174859494166379959488768064018118887428528156734013562680512331169974966075873507564309914012184129294043717340473109103338258010681249742522798943866701594826973880410127283716571352141000395082479597490423812845862559698439233289519806918841512481825226413683209858537766571524450258532379792342804913512593248781527636179972166598262899068042709360134805040404893248153476494618715335066909257773653262653225494527010428275409206910859302597749783547698736612545587869263734627004754884988585827823577714882872970570828660962667383910744390286453119396316541716400775237901251127251631008474610406127474473602163980066244349640531068413610487348056988004081493339034456340850683219781634897534507550429009664351140665827774135256331344661831446322914457529094616718207195775892294237051545173958578507912278859793985893427100014581371685804276740561659290812483750318563818752108601370711861160792804762185536777814121246190281512770422814495729210063439180108916136340704743387800908188328888776620963295540573527836391099030452975314554401773745364616452257929600477621502046897147756424795019529636574361744609799253498921048268613265161354059340336341070907005500932026874285829537976169173322284592259786720795626271155626174449519135445525859770120166692363118729100866372678330524304015435048385531807269063034865584040682223551007375443959813123968544726071328220505697473631008513044461538056251119023201474079390195394130373900798678658509077792843389584267791008778935794450367810309882546389716874062175392383373698171614261078809929866389402085405054421555305349345307792102468669275964007915715119021170609388653191611641233396098345508257880805981889315072718269000442261275581452464818901764183313879360939209021067637600716333752269253355744363310295395902754952066403259035072320410845311104907677960391017040883434671066335227984879713574413743175462596741598168482330771778275925363323269888152528809752844321244405866748256398892679077227841357162295769526784400637275469094396701994302042083331395945647385215992487361092705568707365985252112722910145875512060801613685274180947998433604052674096025669378417273724166090647504504687562258586615822833202445461561202965307509768629880364399446282872524380488635256599352623040563594465008950851030202593638374657422601089968249092005025014486002595323391029345644808402592653092541350016301835012033439185869025610572187253233359053889742326992864655497845678114512876619141203567332160992332533239483135547542337744756476289103737599723155694635294463979779581631101244881690294872222030133587997842613033372573888751385644922251490328497395924352494354714895914139984430662970149045370085943364576959611411141427595034067085844282612366233263795761726894743996497801732516166049416240409451850753973524581457753878390339135829151064860857347871339342833732659524497531246110689496922549638747600955546653072176306948633182337595655270313198693415170100071391716145948947130505628335041653984672424470224435156996520752004184238568921374447739008818792723346717042581916484373786936769660719144458553580301294244528989910075858797848627909659252045357307361342904564532752905789383489988567540435866774588197120655672658020588774012769114946418373090996783267881918725477171926511854255160920410204605826463720683024399404205766622732945230590579234143749519659747280252529031396639369267556326115472429784292995455556060028313764513873096097845806467258806320377407327839369627330533852435485903526381952319581706997015300505185067383068425496227371814702569982402417284892650831303947335835345744667801934666575070264451105094240634471354423433416475600628677701358790552944743669578229719031566373544940952865558511130142688454020243735425152768529427314819692529330024505549899680623020170941065485609620840774386750127581429717753844783459919858808018575347294119946006285235347745757896057877662614361076360564493008258694995400036297797112798253251369336621990433791739102738657027475141402822891232158565148892090526290843935703509880242992283322017861388003630197885626636237613452467165445249660679657033106845924445901656808950195012369927091692912057561963066359896665106260214072351520142390551329280657953945129645972854795053502792212771816536273244424137793277748376749638450385312867530222790495101599928923705568006943027411074845342634097814915828960992655590461859835811699289326345325284616184940291877581610268935831853202236743151635297333464921189052166086389495884228769171087372282397367708773218072133470346010794755918466330241384775364837986769548304763684858587019739639207087851544972287460910495956605775077034623422692658048889647345711890516031102866991195929547483622531051570363660726362839154083234223693767275861673896807493831793290891451385221383596952310346666252057441375183337378463697758475769438097646101863754854073702152163233204277983894748122159407191229498847820717002971311167577648455149918430352824976641314983602940109764371034290537026027183087997579466974900541634767079550658455743894285578260232190162596684521900427387610110638622224966326520401791025540142384640979635021192043152723767404489484409532845423295089818957996542424542411738767846269359523177416459353869347713796669636256257780365434242206668930227911698271322295882921861926913605655250127396470673510933100637238054367846657752520995135829345089717993640462923636179588739391641451652217849747578303152300852879204649314125135189423570064697077923262974705363363588112782403944453701130421782349624645902140973567716101374453277747332478580934778526707966852933027039667956348776617777097003699387233632072747355704887850446147845632628949712083718162552662713042663561408845512925735888024910243282167468894562567726721625120676322881414801324431244217683210158167437613863645877595536067270050191356564573224629332971222801472515564053974870189243566880835958016416132927429469408687166183515982030114718843324004197182772882462852832887968092463696677033630581184638279911704771428185880556649873149381371763508121145553953095508213154532155850036579912184526639785112843177098833732126442387967798376603521245528889017272313202886569983810228272655793598339793575504096148644411399051496464035903249899526756114764872692411680709745554219841803263163760567183515283263089901082247953095452503760843666469043661327004655864347944071490255860410001176500670545800482559907756444321812774477028726980153540196397879099686042271966026945506180688478797849227211212610648662140627613119767425596101329215836863315135669717335204764676483981926262327316304141968780842834773155693395138800722476056725648628464262528672160461424856004686173032539183472716897036003161941848877178977236601499335056853325735270923998869185410449936533877946653074603822761925276238674776782739448374813421254858961743931520295650363959253518880133195442214425767145793759753703551012002151530154940840701790730432114764413372590216210708047269032177245818516673743342258747206153638126242256665799053728199226877355540298475726066188127129297763575693921872343293801437952620467191148274811523489070087906393949773338558814389663054178620893020306352555122704991402807549201528614731835075205095186347414722962813684655965395805645306056195879251778613222382364180848098055865916583661992552753575222689173787115025965561366694641475871066126784954727549419874133924653805326878629206175461121924989258463370755030143623154363118454800952622081181201420038632561610029104528475211782592394929082117862744337904000760152646742098926250579190038123053871375204627084186606921144998200286891777593392745758094393398005327796528827512559836211345294199550770188752014930451814495482790559402370071098630644830341222150449791204612759438009824518929909597354656480557147620866778020262433339313257378950253843188038134403844961538652221357003592038041974549750023068002678598105343781497945614339738229873504623687136903577089054506475285680519075901068324064365120493644542702541225752267286204851193710539262139361333523724214279163483034571968118949807386601831532004453549928539297017492376779899476818224021858320749886645017215574977821063803909632617472046376264838854936540437672420220756071716618280893774175157609644469997592813026792088511510786695990745670338550074842437588729570223300192909621772668413002905885551981221398674662312489191340856705533485551941648501604661086752006533721570717978345413855450828742651846747091148302650143304348358907230703611749220050432433624438795113137431811835557317026516178215685192883776699171943195850433364627116540284585118534606141968652969431837827780851957416741523427901741383476837806884359063341197222111688782739043924976335975092220852744122997152953799878280432894523433660063368908271454416628412497726780603167283047168271525122879474647051543335669045612287364379690867627613269240588852719702744123029389762117632001978803297965447083378753908951458563292460891126848866214645761965210208676863832193025809602391017254311088230954790199616682182027116889761944439501786498226192802804179834392191459347116303024526477155030292195341085602650154654866521007094801447578133515169254113630917881571055007355168011309866033096051195176193684970059365442387597299600010224604281276438130543350867558395033386184985037648725299468314278749043896772775352833572515781835310608319052387793811007387867678095905137591781939322694199976562169205568750717716512025867342621200594167849166706168530080908025511970310438884887362811037591017228118831742795671369282920641504542870251268940181006323515444078979767598519555491739755447764485314417509170698294840573491725936801652623088824557954746626275842685712568255567851380566183071355956672784191687824928565035914553648945592622970319444919834418504475333268983617178404696244468497379264922164358104912020600363591378523480229357662877259050611365991585295712932133403437117104910056949172429405850750384685944606619140047333892916520794403931735938234141310633296329122569338116747151258386623825905529877377610300093252732518733284731567577756511999773507471962287337012328617218707249432765066738268286588172210106680213651068244923939914617522611844980802325386777322437138715788977000360348221201337405897882893777656390789104074551668827342402047357716993130328064690528770845922424817567759621159495778125818618333461762751932235940787448513631181650455273689083947451918597889654397375366104350747680480998673494457792212922081049114209827231056907644054818184937417500984055170214460444718731765001270880396197575645498364296170320629615243812256187234070185441415783351833426821298878229403945039071004395172834862772144791410616353754412538561719822359571955407251138698100843534903092770495007818552558680069701103750293019325127166479738427949830717200739631057837219909727784081759580213364855594933085636757826030755298343602366264962343958398802596606613781659583436045517420266296830220478415877220430409577702728900424046470394522028953287274674008749584266423170969506545551427190700915670638013688439007247269679948070045201337121135991488542354926591487857336050865586536896490340780961336251338414680262818812974330431558308052266524405324776397221093739196930477946919046877271209241013292190255507381835634818008645317854546908721411170388282392082298507425904979718078571737853333447862353574734308589251014654565171823735290403351199197156554633041187812437982004228952201178996170564386549113745742194470602917909336404613635123299057557531865416271081945960827233773071226887855118009784817020042983310919946298525107587050941400304304489952740718780894882754010878832550084668795856518348125861130802708206314932412983448232967256924882087128809161180477628240921352797925317676197287222044116175013039230322675100490020851632752703468309068109574788735816415462883963323658866833259143689777795094566231593466868180583224695735065323668092855902673340500361925275249675938300829718596261818511341380392024985729555763416386800920889264786006535044556329271499260790248930814799326033999549237231938065777114718970157418082022296197688052042209845913677129841438015503057453430294740895419345405377561478981712326715787956578807646232014750891846878960062745633923209159462172968062346231510841883930717185772322103387464456674677624521909391116944889390577997179848215147698266187280790149921082976956195453715240622832109463680994184069816172346531380198041270607303302862056722380660902309211690886181782994870603887207454005202619167547313071211041113015639974278203863641783556436436538485402411298801841819002396255383212571485734396893430211469323542468665599393571520891301786836069398090168763375267963915068744376446763887308983402282980206011641039940482009997727470920775268222605840983103076170951976873861470325612123665091567927990077989758777151012343135855711294223678932243096259987354948945316232395857828969537890760140628072377379838159206279247973056401905449577581236573657864428006580115260236764716698540696117196141747729200707755819509138286825520537500143177765728077761778323306771729872839677306019298636667786491000557189615739062427669987493816224484765960260478376448125682329949819324181751934505163167125907273914905963152829042444555485637765099097681960378229960161389677703218927037838309227529331058211479929522191138549775741164296092891179966438410809407369677431417109035411183639805655199685250073948819430327335336270329214204725683434718922022830847716641074857151376269229118055646367324245940485307091665469202545428365188602834701043098664803967997693495976317257036034422926117892296287544222104490169168199993847166659316581230332620674629601905031795602747964836140167973050387584621383894554622289740569646025027941928997332915594564710451159387049756606486250549561448175046329583507525616221739808137802749790765019287695721411658885548164557126712606743028346141939257079599890290720718236580068985867955330463642278084012451346938619148563375833716750559120327678042155142164529564018501871640754413853295130985140762209499412434644173417675587045445065407208109073606006167048010122979840942329623733648779019560528899566476899979846827894123580092052640422584119090396470569855211469898657556039035033523091948491913036349404154644504946326668034572171120987175060943575653584251360411131995086047325561078355571100933186740361197371361180698516604313377180717941583573896134140287889305431706948366115420419320569066734490595643653106538227857907036401091182439134118296023984875825809553926044021521956232424166443927871890795747230941941137229592157887742522086510182272277229975774949449422474236397815006629065086881906485873209958598808338659070499623416932734677067805937061311193421035091749911523655407017799267231988317776850104460370984897891668304307298270729599623278468085907283577058629742411846339901030255206511813842968320629503145076710799421106102483483852490627372796435734054610274462516546765659413763745350210260455545878379105262979046264621269189185012767563462684581367460082852370313336979945624956443436695470976486031848270058344416863681842788787357596909142099795351053574518690464481784800676376598320074299972454112000818750455815747715628628109026447454531717687055388094906699374529796891259208284691434132291556232132227224482790289784013347663208490264626093601394130426479900240110522860259178442314465277638280013328539252141009982847495173163196517729998836655697394270260813151116545172000035778435855784334645168150587271909330662517514270217744796779177514993957930448857035142256247463763748889728132380815481158896906536629676417218899701071762588679264180192085772181925938987314541978489353994861756922496819319376210633001598391804578459723849567891092901697109716001523943998159589047331873364456164509264724838819809452604831288251539157314136747748702384816651802546049718052416201944848630763131527047194199874260001607937332298743075397964201920314850907985833305465511355656474242161621631553138486154414787671118912768458079533303885505463282535417076333577755599149458266357724035821348616895205105240369627345991836286308366422435615844273776555561887823248790290655315896782299574699769494199045290054736795203713966176353618091950695540503615457815727594764987790812155721809732744232688940333701419411022842785127392728277860923512718683581817827185416759921564287148050462814633499170885899597295285911224647207469151777712186112347591243821652019109001885509300484501228852244182192548853219043800558912625064244575950738656256520505405014431066651005819693281134757671720247145966075189211658236209042761725976631626666917003927031838380844327771461682184262124652116413358245087070871334969180209014984907618760894128035215297273893966176426844847792544334075084406787222897846675678585522438977793307582025769115315154913640740836998552932343825798593488103254078386846440640091060957398022999013547248280848952955358003318438844560046500608838416959094801747655085164443430059445660594885822430100701341113707490048225578463181522336407601238579708842541524536746635547880186251413703900302415245302220257632270028294610345563759883690666548706273019724346718614338886523001834051782614047053796141613151825709866974074174921784789318836449146339421234977999094032943841602596467817475246031419575560310085790026336082446035001213754836222065590708722901772159892580336332762224240647399063385691305014791714780950883108242159115955968632984109772391292342298584450326229310843036800274093537032137045690691211528804708520731131422722891444781593922674668616522668680806604237196290914580367926220343375646134243117183159508035523140551372476059128072340904300050311635147265937691112009670382692048770943122752551626823268806657381818913227278550372440163125707580731789541992188563585496433379944564498025731699248843690447278618924385482529143921024414059929104358205012393541564689822284891488205622998616886376850229309640697819918685769815987373488239781164941853536536631675767262624771415555924583486838974095500798492367275671487090668930023072647217573465172750160133701544747677080340410595356437479651673243462101022784577965891334045822963881798693686290455715334183532278613640307255243334435125499964600131696498832984969197015454913370642661543053539236883671597251099762873254552354939551011600291480615207198588760856585280753928466841074983241803618614225274234084690668576706259910873539010604768193216812671988060469157698846034877489230263084803277606965057657964379973529120049352272653256259246775926138029835465438368095357505190868092334002090234056550632185079129096292131562116420600589218898434081266101062673919602370419782114049125546448111706186618665743526232483661781568034689616892939532703567977345600709853451294659864007763158220940571483977196701678073441368587489530168252025321760706469728096112214733631076770907115400509167171124813868043132099326480289696755209550713416633913234128178010800757885122418851436893436080406309847940289613735275857190543295777547418098086225506567553539434151239814756943845937692778457553550497989919259449552585599493214604669784671459292654372652963703903647245184173690193396519626938107781737025854814886020449383376013691485246607517992069474935077394805495980737811411183898359597305237798306467471959278004541960910878123771445736690700308222155119632726375325457077020201493157763688898468580109516123245553027263553188719832900789941097278317641958344760195386958755230057020590356103292533135121611753465081163015641531276731618144098474468901029588723728810485131212945676064572903815498614728297703014288219853358047807194954668110400947042929556140168834056513569175120490123345721833917632040965592797337785354101359059523188470079313850737976507766150778045054185464421649716638660161673770678306276359782265438391912220561729764432577519056155206565728580457541366816574618726050223314898262685776676507642125172671973126518154522533866613024803584628784304863501132423154416771923525499135068769358615851773218540713748381309898583226930087318424121859364494384832076235305020477731734628842933356440772629116675775154647988925355589344464222298872559662223552141444378177214286615190900770283781172777044368544489010653524358029585074746948191164020842198424259868778765115140239039757578373451770529154447360278042758861172080769652444513828815276042021404634598902700693831508816249177883049400316716142995686330259131224684742096313199595365385750961326586843634626045825853598798131110708397080453037817665268239938402741253894871221103207273934245904705058601449874852754239611917590581147897786347790576448679716208384908676659847202035027754671842892598531447244800161156267169320263950919852688680773107655677059768470504226293458033223645592696016753583067744602857600482355222709583246916745941149865359027813545134448102270315953975420702125861480865464918628870611143402977405630277009115086624612166400473386315316576055248789259050814211930145795765264417687766927732271090235414411765508010784366806024274370332545663606368126081036440498509424858396576789975076219809144384134330374834946518402994408619350200712190592542475374991307513648271215385553280467808881895411827370495341668429381385256700387444574095487552598692802886321141149294038808815380265117679134893233753072282979192113379599246382161899365452985961556388753209005294633857989397346837233591151099528853861108713030414674134765044367831037504136162967028609088240280601199277074494175225134694109620108942724151888505564923691563210004163299082834643294695653917293158886467965003885456035201046427306107816796594204105658873924364715666896598854337457526758800270919432920485223723574857058960353029385185009148089081351872710885345369723953659700134093116439874809856949730446788111335453456442815532069719380182460455880574784635110999952814466188933814139124021192851540747305927270596913411062485466277794378543625969285974235024294994802520014621870206583535580303114121426882003741690998386985285849445900689509044363485591306905060406416092113316538062181877910876463118584397694116083501903967520650279688081728451373889788849558380035930889349707853668872110817871584095876310992374450461958211814907545093880155849838403625879532643666895821657508133293322070133277546015852697294349439279977038463898605557714070106739685401786097461577249542348085211743766080519344631196247555792550110906199598009365018921415103126012430276134700428405970867258712821768963008324269007502704623824132718262108685607796377103360786088731013822774778197526474112167654256943133816465068312469151346063311354064427865142272504925984091108234771350516168947440666926317241527992185248494948182335796110412609596045790686093851600874983029408689923622629962242653816699364439935332045863446143159469583806629644639014541079087499670084328198985981280044701126377489487851551706315491232443923109182276152403351406302231687681679268339539076879290542203454053366837438951071271522178576319687219430975316062396262768796399200374281851322253009852216121630908747917927880653217949667678088390984057168641764224955796075570624874898643865135702288569180857127321712430036085697007950983453554473068034589125373683164978645855414831285220492578177519383727007507528897403488729761818050543755733597216752083261598553197471568191995329955140353727464198466991861258056478068596271969549253207969873448310587334241270427238199874068824468466644699634424710185857136181191100434821512392683158541465345323019571595611722756662605082318427269520445809894801186726498941899575021215266920838831960695407745044753926501451978731201841264772154919348832555529954345033282828770259834946144863123519854398435723342231367851961124670807576810424063259854094772140341992354270620357503990898313568469241115351444372354845646063112609780020574474832434676065946749691391762346896765650795205162142429283266438630419311260415292993130037011121627681274102830207124754761080673130145846566862307316632666302211718174534362198848288947831267869282540636182833086191211104594752288805132759419203270844197337670902080956206323615701709453166324140060454277283393964317794564497668078552809557832097072004186707829266313735274465078532605375541246703199228169805701875678522103221046056737109835872008834385840126311467530930035581860216724502664906152261726855688428715303330596268791836332685752874682973405932622561579710737919801273751190232377472800566608559801468982923098640984940471638162710490128591897700934958740417310508657420616824152561292786619572372398608819640360182458842968852864837789347517828058335700339749162445096599151174233107253686932246805543433653632634439633692017196893716346447407250620425317164338225389343654618635963888631430082050498001903796858868403982419694027518039144326189734393094541981610384140949621477792991895255727202125768258696455516319705864579201194344930297068760081818546357309010684527839131118002001399570330306354679818832804032875861318394474173215964172723184293211698883968607688642721273674384227028287454664686126414833090562496248325964595309430988667383714310131752085738329244041865268870553786239445958268649564853760250894628022803341185090537682440591263826069913891088326230920626362277676215392477758683653051418662219011248982041177199324605596399242387492673640454108237846398601064321968716578833276450691118239149406125674025232597479633247912540931456078717570927933867800487715318100238258982780664586770010438662732462312103938482038411090566118824436758364861095395277818066545521493485925336436066609461149632559279743415522619097056587477567000121151222469409130572978497982545528137258232284524460569783022490151543965911067248763464538354189166326413929719862886849195924360834261182586801946707639834903340940772252846317876504870382279128462628325174831336673699917226533201698501453416315822210062590801269799116492986554042545230451193732766671921616487715771659813375445065871654025169984105259689716792625522965377747057803964312238415687142124832507571959189756676688096274441925632250887143335096573985834862995453377427924238397498077525974453271714934912847856353597249463769293748074642253011772446267971717915827821974810388297797681499646067418857788775570163388792928293125900660335237213542128601931892000580090545078773076410735948370087557083572902051500124985383544970680000984760299502161387910095417513246229950888925481843309294580933562728213752701149859471055946258483384942716920033436616232151765841552568687527553946990615973559222660006020394846622773998759614172676508796007945482393856387907095713557695759627733271816181907786454474420015691693315305567045253596556152860763891740613367366750829405983055909589778797116461264893348550109073901781847867350808770906393114359144798568547931829018823266367831644636126805047268848891766086885943281007424977448265969459293733337776913215573057743226616591521097039136173975997772389537329467512595685256751543498384652408562816834483459714655093698992022210387192776844874336691227574806079205016561216819534812888698497829207008884997918990256749559524184958517786625565070443500691095241516431096465864596678069471080418813624412861657126320906396452428820937882171466950391257241115834062996721524332563801316274962463339952585519250053862902842765721218579866015820634514783947017873234525566687710829859452351360224353351453155445288697668627564792074344457912080565394340094672793136812318287221888609520955161317004913339731271090482187129827512452439721260427219681380372369638848267246604137748052822421732713736655542544605298486438942203092614686404272855688655242116784125641913093049649609972443236828937615034977710782949906460332752727629860393100332329441034230686681291780032136260373769638068871353109268037139071252271266016576726805371925701900423363451750627632802358059776299521341389157917815789221379758055518791436543335064554687612975186072034333041446739617273036158870139916720054296252348352286594240117108158079656697541585501211990327827477038471971534142818165506868529169315122553882455624108391361598696616471654001641352011439002366086650685972737344936269299474826204660829718269533048541953678407843469447807314095412906670565619885834895022184373958113292720011750869482304755343846748588700082411381579222019299071920857347982043080429479044982105147761280830198918903771471212085239614672883651760937180589561215394787836389661241826265830931352497057739241856619545524967221113667904688737362725073132632569366737101176495293899984557166420762791288010915710643417697348065673799774708483140136337552178962713874937699203755529721710921510612121928860878340633687732356538461315662194614855236595260041309453388958060028332283415728573640258085123926028323332561576612085041692838651365640333310968721137200036894444058699500061696707616166370394445637488846110739144971438265522099148424272628656689091188397441310380846661292145810368935167957553460257396670691898253840922676758193534439150045360028932953620281819005663550985035447825362787472003741466110459731303418118758885404892210334825567324377659647412215145503806135473094976321940376350467755427157798280867786898151824841378931960753291369113790731392298239482253666029827920991883529403793627626427859645012022697548830641396731858580714016159817182128760645875786850589197437668331819255630409495214239010053388478912101948916683079610259610365799135855372687228529938089670558150096428225326959297836151729154133225378841712470415459008863404488580208170263402312019774624976008950945169234648943766434002073284793995797731238868974067870776666119780706579561548040109795911920226970189997262152041385903632201848930268769831156660218302182900491347512190923846599098829643493584351168659914962644030439858777466562677237175538007309686845045874816588439453302269370660565001149839802362236990551856588180216774125325197375481420969102143414073287553735988820260838250553582681355148957819482576484303185659785713840114639416101877271301460533559701554713097581826437144236730752830143388778163139678513150934861474430581756727241866736205097328942380962678579518400777014239420220558632902408279874956249073899658095293899647986543004672506496067797540225861554253226125286451606142191759571933478293939135397537963543595883494687302769351306126839106341250919811745055481257951944132809511327059352826268943038124224029278514919656664110713947151917966875286476101409098841075079289413706455242553197285832455771350944556489853543238806189352154920849305287583109281671986124126464368159402373674935903557503769222099849073469598897402308213959191238744360904415286630305102961112287757105045127739424611321991666679607033825467482039211039636852474040856320775435943881217976443719834404453974121983929355962933662411783801903194780369040515883958994583019179174833955380223888737953005162291974180466364778250626360369243888887107418494782444437598029992141456434581805527680220598097342627996210570145235768151916767739839193040645508463558920428752602707660797280145504957117702841466433385027494336355354206846401797619807228018556853307602638000179099029034272060731043136386760731486796266166542461119255461118308918167373597406378865748891648219472431722405011389402651658236013644283417474926339166147565003492141962255733649316042110001554246590254931744030401680639681783171656051893963209127283780617641946957724241408368748901207279223013793145502732151914512374164279553396200510003360338629983076944354457647592493660335196622528549005359747177451587710391093163199301517260444646245557608920633129241647266789351752719428144128678058033653891917385348378461251036185479982710413375645756307232404350512620914114083450279873213256192228947094785960083461410268032505955020990311442764172328166426881107714028479744678330553524045975550419675705696752970857926453215110438648268163178530423451769749900360881738318021791314542939938969167900474985990253456930302871509155670046329672031520559723527450981349510217470119899074907834822449171816531362659039474115270451496705933570289279885084117782039010258878058605693741208110775003169213720964415338152759411869985016137078253505652681530005867036341527090581323910628879373030472602795033676813313751418225077701261349159164421654307245189212171049800124958257795511525492939388067679313750392184020709748824376004236920979075086015079109772075209997676833040450540165964174882342994308784935105760438951627079754675145523586812841645244872198447044447043887997448227097446963280865350894526676235466748508184812015190535405479601637876325084795098346380321961120479166239574022896556720225095856802012161907829208592905165152151486855675547741778891933229689145164046947452099081703615492372531391542274172324698547716808060520846271839282109090627541806165406393057999126375188753863232103816859459986664015516177179982508701676059365201083706721610883309808434527189799787928929833750524959825189186648175780201239294606194189237705506430307923636566739640274188441953356459398393707659826903779204565282549598114450902692251209793650126499535437200861674052518984467944399694402197817513162292726401704210256732479238322060517241841582232136648798241094486503263186370872269092606108910546082242074442292368628111696000559079185668643291180011697401638918910544060130252706614002935207548826245610382624980374228733037244981695617854641380024560212336721530430650374547090007731407370406842095122270563229102377889642647989092569183852915114088665940674946005012724240289584133111274530670980929952824008112672015324231283132882982938736499441606348279264726790628307746540665131025163532007766439912425676551841312124809566402366713758893649392179724163256063247321786701284594028589776017118070092502122513348049376250484327109204278821196360925844740810861683403544468206458382824470476574369959608996147820340324358184226764582549979214680215559727342579563068621139704989898047192046970584290868346640613696031292174864029142721652312902621925090256214414563822944739672628155885173897732313717199537080340593797484844615836727927442423039473309318222735571035083236866561735423431424974074727663747093735477413841104804309727867180838982903272293649643431637071712394087300568824525278404505215939801568873371742344805455294205356463464838313801561424472812250940705802963490352617117135668245973750044491798635289783272903972573348092357997219960985260756547995447167638146435881675282242910122479620569485064396264773910563351100351136341661317363148857626350011979402178248919702869631293093422094185326335598197379267825527377541956004586835377142548120634480467326931108896815434238284686037844280264518665291658608659002781972801887139169326454260995379404044990406743232320476423200495544076395839329730296291251123141736237796013887796011448251223021389414628914182910092673588253806545124946347476807210116923066262393104532770820319164587565505189440457476624774819876889743670841903433888114333711059792810004428205035072292574498571656547696279025990648812778954107926456722941374897335813938116985089093720539746884030123188880066270183405680632556641791019099673976149712572958833404720221839296700426142100435589734447736141762995034958096255193246009875598740376679624957839072588062759628699759935455695295801650034254017577129777798674320121027073900332486838686509616700598029342031562309162491174456670622347749022095344604607601199534373028830926671394901093963172595953750243494574588607280205734485469088816820198445730433112919441955814614343997177592171899134646078045542865539663126316773789958916374312408264654240951898074763999852731744946663836186424453742002052403889523651368318551782371167346659990570412598948403500332969201267885674621418513029967885216395805587726735391295310838281729291324871075445562678283015494060883501240906361618122884681130943131308796077609286735008699004852006490052128329292568876659415122050965221840171799971468807937438150481181471033706188200499728957662280426685288658000933224229629460756596367187294007895930707955425766303534211132269424106326356933999653015144145803709475704943437943376949467439853164153073836295759451148944330404843179705724585068957899480251315888990407567169934328194229523555439665443787481866212699139445569978525278181837402360202603886055626120883377976730193330622647607563333269520809350948705567932694834528741586767300095903781679054339673833923354514293228635908542373746944756179776636559497592714665106309321049200184270089845193896629355915857858382154168060218248157424568250305808619804949997383182879350235061955594256076253209556094973483499523973726910844004035513216039392080336699696420049149129378318603086904017497725071828486224182427495922795319955430505856225654284523618615115138901569609812218861247609530724598682737042298605984822968955127563248185313479316202697375279717248922883456482762062449307723309519209088363362836834065606014757584390165083972206115507642438597078119386790469282161663971009514713523096820192246031534550449437823245214459425583411366650077232621847809586647719964166474065770077325062621735558451300369283600595705729581511275892445994095471537357877781099171363863713940512857069354458898565456171916925238815520424998003985446201032416127478826142161366511046432185246202213234443954114747091108346555546127723987470346704582716578807171084961403269439164886617926139055694966260875065184841298133303933903061964760680402344124985474623994216890377722252368534757968989985771178556480095485339268240265140849300489795328326546863644976125728897963164688555519665592316234996717674878068824962541172485281117008310087874515590727163125271223344536500297500510717914335561429769081625433979127296889897338080803998944725839068967817517401007974460266984369598428625172025534604183342705664308391885859035904666840966938666732570597314253223541830752024711291225278913934307641591242110249585466824855212026454600872339887407384945343616888721059762913089470044009612732966590902530450348349834080558075790792672532720536729459721785647675413706239056606571437791092085070845810507424191380953585233827259222114375626242477910425857312746619821016083586202074454616753749011672286192687833616267079550013909736937027559126516470381803018445613031624789765096328130879559514791018712210663183611679294149478522989667596556804235888861470101041790457012329999760726515622790351611849404532592300710211036587839979194480787841272393947111191659619159162275811338397247464595303635386541685252022461733802489999885005410351994037429510827074770251516724301648328417788472719961744329648271847676177883017691656527972687266932155519812576358306981728275836686466018492528091765581520664110395930511316162636686495509862213761695233959565454609853918144628436786185183520366358567484248261092141295971241643660279069505573717838013687802635356013693500142988108226048074883045247053710116895377588779097270919734529133330834409998070830763368281416200999194878626996933728625601982013622022006198945481268746384120938931596520972508488035390361888731859736035081954532385811699528174283604684305348057614542304094650673032583659616582962726964695434027710483769509468357457909111682860613538891375233759469563706525309811652973072448835725053292382780488392933476456790419272838716355847875349561463804744162582461722613218422252697036960756344446730543720757937656234018892003011271913666756424830509687374576174230416638381718905988416734344868870523716722797737441829313046997353071855399697031429676677912650354119793762364507160695351968836017622316158852191749928134401669594040641899117659790207646534797185363213225248396012843672496888122692326501162874378019814979407538441618354269447318259988383162258833520644310386141734293759588441192700256950401323389632964346033191959220991692548736165755132146463967172062870069543160475795187337603980686896340008920027767929610117405075898410049320128224358084188092206489560127276992337020693782749525438453846364582230464916558330124645537139777760409343170168782111206678497003511089392233328539573501679894679256924829701944911340828686744263065886315473980164382292311243976724914550489980578570208843051967423026616245315698013601791709563683873303029246957672478405323899738682217650071603360782634366209659736165958346249483252154617376336961910240803624446252388545068136349875583444621488348389939289322694516717102916236873074501014946634872438919233552477804555409865028280335949859065258734314644932177173141052987704949223962212813077227291532107896437548783109386252351439063276554044207736990899247200294888565992642217942681462441740166054727120018219860036691556767376234656111953468014580855650357714663539263768809720086252449946158987555934184059326340443313523072575450912202623027248044527481293739807306627929337326174686293065557733801998191764620937797751178622482280575772022540520030046716013638725140681985613717656926404093049359995829173564699995565255907749905195726193756364117540314147918367759067664139938771231525205481978868356474643001596565077029370154091172785683002642827680425243331877133186428064091788899183208621760240642045473208506902026933144870834358875287187374761135033302247342297888786361033678076325484823946520188722122291353839346772532807774936629198491344394781011553838294518427085271203828196021371860420936287972478445938819019619750576655875405234420573922860379949325325109176046999772946445157579734543103018877885597396206449917230397247634076693309000808260554526442466300279291898961580706506451305136071177514863330692004373591935422171164700016517477605370353917842222408481330410003017030374167452243192993852126986514636552006492183867321512069465738134168518279719289234000010305172166027375945819955729979302718419827415264287618416243488465725318990132484274148865747679633880322198744074550064078771063972813154008395894285861080779892253857957557331562475279945020146677683831930021564225500935953241414520134315809730787048809524736701045249058794824692231681583282893665749400341081657006811337965682879843514015619623206529376682223125991785151953899403572706777689934167917201382146417444221768088753553121358230260122478231623764688203801290109763929616316916773902285537471448522745046980011621697725807923672179864988557442546262435219011065436798489387018956270726271698563622646551646967632774230104390171884400553450636154627229539285919316648626616975217795056360639848257857158429899939323871457691596545828982727651890305030559461589766043945158603202086479648040062502019114655174694647034045440354974718481909549298629327133735669523082683136859751485260490950893859911581478569592300911512518769403087192232053641350977683756006749403050106645746197465774171586480071086743833886196752659765173614767368666446415619299620936739976633479566055226842385419193433896912754422994299729293093309194886543818804977797553761788793853217643966107277449305597745538541511072979699907824522990705594937093672704037396341328424498559294666196028544125339080551265595773762732370739029944565822588300533540385380610319513690738287679367585976461586307181976275298493033686085446343491185748963060380140155529721445414186428852721837077253499027050579939237913928640635069806082071497273442832551403722654603174403719113130369090100623692881259751511629238906099323255166381823881011230351483106070792243286634017251675910323495899615339108736809364258456118423047992477086570051621932801639562618160151370606464504997560572327541403293022152342752265275097360259053844519666203019729061419783302313814130699389783776517908984121422409879345417196800245034010302274001888298700041959769268342179766104592952927039330348027818468242036890352862504226293913863115101135953447609883977683493942520902766286473139957505018719774890774641762706294383978623990713777563855052657703203821549198179522996853988479873818482395575562859355079570662925350435556107557830410498660952708906516521691216718307390419737091729686489218435773757605620347912593842166974994448215800880517734037646062810172516103280600952174973493003186481473935802578851416402175904428388068026073959097951769829265560507881344903387499804591297899095618682615367788185312170430971329996830507418844768427130241694088903082041278974222582855179221384147317902827461089425992246357218983914936078674034597379516529464953197344714577181329591114300165217163189925637471086381881066314510969824813988427249239847547119087201794947741906015659084607598825105612130439533798034515070151598878773195192434849228415824125447840865084533948335654974965470874957661620724288202218347440388112907669537710682753706351780677682464655068313937694370464417243126856506166341519878932470863831636098804993643485321492093260446052063187281677694611436394200807024587293418513203418238051024308571434703270671195050413402519448976177756800458739594047553123751191676968524123558641076404895852150004870392670811845474397778295266714603254781282949289080864168023909331118744666301674028629950399555116539950516983216923359993121551530947429694020867204529345290550302167208625969183246587575972217698163537032568905885676990839591549793962265646393503975160545460934699997974704067710267910973779739571196355294130555230922291955002912964338040084998127782758471275199530468540083406861551438406877629112523633842394301611594054533669532818252741664641325248803817599376407234157856196050209157889054052189930786427575432142642802510235381527914338021802890460392412630699697672589125625492690215905885626036999201203532409935554625820221497272162703506181388254363710646464356764125633836173261270207664748839908453662320894840352851998110957504744441471298467946650018724537670103504363503795886290303139936494434692403314286443431175044197854287461589192937428123279611181857291113515437810860930865165168654337829326954717486592683735111599158490322892442915501518180871036853528379297582189257493841942202836599175992142874739741569068270019546382715738839902015356446864207138260001891508067127418598941926330705789694341476318713224733312438966680529095170886832246683119789465827581142446448303256585557549420272290835370966220197433423024785974209137134780532361430686099259425639918655916259301875670253117807515049083532857909561048940734945360238091907852658869535519931896762660092700023149735818191842427418431587150786777382092513441290873351558263690393367148445290788217739516759626902649647950560011773900719235958470131789319105676843759513499491715405175792903966364875380921041717964498080053076081616089391853524220105829136576471443553138518275660200448964884765237428321450076670928896157521202070039343874759984060908967100375775095327014064108332824437713183025074032402939594731933613196065776319684003337925678469198392852988072566358992092827139306204743623604987240405615758839006840651976521267709994484866565638615636470752785049264889582706822691200418553809546334261110916089298784905644459985493316566658905918711462019371257150669832726263392035111503640859026586383025638772327675512367945463189520065532004722541158220806883991322665819085972300186705501238397543783196622573846168609812637430091787112983021426547975652502035403266276194417480803747234161979556207161959998285627651839711281000269054657517384193272168652460603466270434172940757959261652719566761864938199206470950125868280693506683821613030071191328615709717955434701956674988581931837785042340532022446183584564188801529978172521909905069453534214694360190174270658500590328896982768812341144324398226786650383698528257854596454744373017600170882865085720548804531070020212909504172287077423381590772578502072885685967581140544230401046970277204735560167776183150881295343312348003262352673419779508409454381669076162867066780309064169783802512155195481351360606819277978634834745753085320056973615895347781282330679860146487699759828262464991668723017927463356650053579018993928140625585932741065641445781349246947159822533016298402347446539683892649702333196486765536292783149294810777891776084985613962046968365765249472276782963240296435143980434775248139929797307035885346126998210196012918770423722673910493261789287490280632979199688646829640581896310705668862455547349937855196928710219151266757929108195111148430043150673825553270725484686425995653214885297727334997423272400382720208667533042469847869688397902544335305942521106145476508622393463762572406609348719084432978215478969537873985693368968523648445303433928480122777012752632603787441652527718836393723852998893542800034011092833906827256025062928217325455240727243498800110436089620131551911659921805963257525367149369922560830352034224101861195560857258648540014442557498460529843120625145557527712709285470288442353853663109477110834936398903966590260056207024477174094500119447698883238871856576340119514522103841991366096416475914474277395845090461327665606472445886875139142855326480025269809498937293140917189029237097138589624134634130789121356923220741033557733105790388327060929313318437270462980408804236972711251828337708937259307485036208218800111154834985889951250306648627473505955648553559406296817298467704594665140623392918361549464702291851338113436458569878542348036811737538126209538975692127133630976152045749263067045601374149909577258118916232371979989908055896768655111514947075639083243349224548033519016109644855684987339966132401843964104681017662709966362982459629556211064828215474683265201778582738362125840024398185847947458334168628344270464830677209957913028754543953491181820448686425876457927454293032736895176695269835573113810221018661410559277239168898311942075521306037487139083072964721928933330884963253418208193537185389082943865996786325856849332861508532302907981917980971754735294838876364115130361017231151946374853459287074812149870808762560062408136492331777171219934665024939194356311179261352842038852218617847024805951442078097381212480627946484308454676673866161975231511109320966802359650792353578727948415594162179833931724200477859954097260116335092972447940706686882766565425421430916316020384965523564112664262413182555405569703106873275965486295987283581128117338243547709910795347706746880338935540786994359986022141873746358206752591542024315904579316871826343230465061820578022737471075023602021670962181642261450429415291256806021630011888792534461118315673353019956415373771189543563144979514781425410316704486272257476334118023126664639877905582496979243882866706017226272515035744995992857761319539614148684598492547075188651232173326909494529619090142962736144136438808497120996047997607768929511922770351176527011369882760326302649671327552906313084906637784733829484044531843544320455133870017713531779578294921649950804171700618417222300328079582546740497279170245866927504274453838196541934359858080627322440653843178035923940244361741761175905789185585115826828239547877924704765014756846348571893865092817277581960681409621336840392403359073330815877655345772220464797379862907820242983275832994443946243881250244384169560191259636943882098535420854942440793775335432731357926351038346472175263374349843522074014729752945971346004600791688596080242169874582721927685777370693419487428607850190949547824557535219420824120298195662834614876947018198737879264583138835288629351907600316936425307607519870622958385751619723065290223711973267089060383862817803977068455009977027658391828448855070726086370746271021447518889498739818952262580046640264271408908763506191033060344425819915557525395162048188056981669479453619574284611058675230900448861055848467473761628442469416373694234752346117082742654669199013065345478918276344604697106765346506579811956966247691928916901744671866088210006613338503360723386123632239506284945027695725028216497670514521527926646781746438179564560250620944038236411643023080369168395058262942086375755992017164469824158357529647474787065361807384451796218424383880300467471105823647160976301826706465673871295203310504573021703178821883300469603115526656978239498680390579034793193749059335991870286129742519535347501911831308833225556649307561649441979320742160088648720163308739496026748656418820484284124567383632650626970228907239542715462498848979747509355280706624448419445157070381450478097682756951180761931766333426896775252166973091336518598542828609587345512907040964579361137389025501610808153356402996846816439589969082481861917229087127555332004556113944154859533670829314985640237514321145876501723713293926616184853159052282740838130139201715299396977022704379019040786680663367499971455562496453888854275474513579843425158948138372488859440236489201380033829601013288942618788740635891593838991349231976648429255910471794082527511569800330190957318505682138905362323890555234260101345815720457274565150688529026214333781132062918248110520723337027988382636729079943571308845744936071556806201973033847150496989125197511909452225212245680393447344391726797594970054320643638993323473797274021578951382561296190438318762680232561949781357252955652725473334752581343957206199832344721684765595853283723538514074738365327698459806870165887013406922699277302404314914732558444213715533251720607356031797979962189838363391567360004901566230304218951354034939309150364482194734016920375168512469725092513431381610878721028424326088298339298229548260933039270076195136466244380711230355945487794463524316673079380736070176663858860728952809230141478348355369558788515035556120331025933467425448762587438667663324236062024832394289706215156377235322917656568540850855644912856681841470464055833990199133130387551496903542494776614100478486019009852047910715065997299768234148223594234493317263538592057321008727183276368353263102887568826680179362926022661837966415920822701891387241627862020990218421651281881908853742191166511908257482147334053860841909170695635939443776008328521673556815116015418260885225556178710254102939935067418659982388778749106636007152997671677162825739374395063771764394504013679028103806231437001019674908494309285356529457016037623734021010208164517090108404028763506072564723407453835573963069091374388006253163384801812220931527355653797517695733733091920255514661700523540126821215795206758783956139137341777597470329820583508063860746081489025599129884589591786965556801692590182630648439369658896325831757784972325855111308388501055972298709789333108077516492856881807234295288531702078375897043581046926187899969040522046098013984816654519775936214319737661144683699041414278850460545195845467636198211348631384920832945088525497442174574276703478466157303313716410208663672116712510733136001977652638614095353083431323095714104017374969830471203117208624920261723842306151266540500562753734480288737439933834964961897709748331314551486954291126862237548648150416672192490746684970641901332796160266612443380229767742334892363060787985319637753956600953775981385324611621500260200010267781208577851369744644403034603428618690131459836099259025915878004877892668080286074086265589618360862973411063357186484048539782994403829989978833699887538127521307852483443123179002983133815788905013587655621445638992829051118812266619152373930033951227896424823429192364573325640121962084613776440719524942457217746707383849706065226777642891697621430991658794606469956241003092276869630463662149740042694649913582080942689952091796202006449793137234745860517006449620208413865380434026678683151422406250864438792216868885138125542509799382648356917116892963063498035089535635932931128728552473854966064530685843692557517139055908059618407413398575622732062076955918427957591220989560440552476201842242871738999820184798528702583781635849971131577785113056355191291527393357073945698718101143665205501961599393073654941902935957424797959644423079107394597150429598310237387403775807186016523932251200746462570609183873108788312790859417915206215897047566388904214789087681986538368915142795745581246890089544791152447454975833997273306225438377411216743545017153766390166584081261205480101042686070651729068928470433399167697673952582932904351136353349714219125983500745371743543920044003589264812105017815650519911565555218957198812896627311162821486600328116870965177674051506335534194981577803601284405665432076011811365354160114972636386998337777594055995077313023803856450393604240156851584995921950127435844008883880860745028075070889428991539833319554594980720127580799208806753103119079985078461663852026670802633688299476868186638580491097306231720291307172011163980975926752218466875828717075613413499734155133059207809329721917387508145280903869450749491005520787492572660258757073803912456021937441178213612602612699983099870719277020392667062577381037325239824018747199726733010597859806751888034450961054458483873142303131882724652902687052322808695479981817834873252349859739966911233873608677448077698607840598894944358581370552855153567971628739293615908501022176946975910757748018743905752687694168722029446198627466987332953069875382225366106053213079750319849886931842770103832032278624334509233434683304663284548103190598340800582223344085097145445477685291995084248886885292667135974964647079251048562380000611380080573153638677039045149103693347706435747677414645072433784904567073596117859993548352871449605163868691623151317506974646759925796358682245111341004757709264105466790270187290799402684593004147104500836670778417773268069311555064110641058366173981532844709325667800879277286755284690826141084242601036730828983234637498297067846278692919801681571706504483045614437768863763711319493766135088471975135445010309799182128161957630763534271149766019796761292276974386857136245864708511948824109747884800818352031436412449164887236387375303565464995594737297168231743537764152829548679615396511923404739893922349975337335004364456178565276438006122945872586958514047187641824074801620808738295787429197654823450524796695260181401025819944713661257616351359296612017127287663780391526004430152444989733743574918462337016025457882924811959856243586069823136405044439167453311257691890533632251263081338997901674530220699154718245286231319695992196497142669705169652114788977516809134218818557599882170377546240645537132587228251493574970694520957773786017347505030917332924599408598034118123035502268657506856955616978835910201260166693329816532830332996514476560764199691626997324874965776873210533085482286441231149403118020250473016699977483898406096070510293907567664195492147248589821589920505762912678403581419343238633666702803333407712194912605375379259888102072164001411396371616551119823059258733701270959697002610619295117783286149200883282410694925994844020913686135509025219000968052561462190915426127213465560466612771671173975227273049557194295165734687229545245979529323201352060827111505007947533479527644762432281968785100541916516356671692302357198051288766117764016580117178021148633462770415870440229818855432547256905862356528208088261921684418181314538667149253626156038548839438690861142959026357855798958926167537456751985014967147457026521005082529845557062265856620185761195272446396970450991059872271806919942802490910878762783622993796889046426404009566304103330855405635121566714698208583804598792675800587053387305993369720989185498442492215324301930748124754385087458192641430619218964338721540791921448464634782400894913768207078101397490857482549734771374720366746609552483603663464491897139687724613353670416471773926380420234109088925790395466167069715600659620234639581193819791142999201570008186873605396732488973624103525239557523255392133752378321755416679414107725599196323858045175051080873314118294763474175279430392339089738030758481845077243541465018564397670284369614821433967133129367740018740148029802572785807398151990196524289130681638586392050532174570732546219306213035106984532620038935618834874790252799055683339175334995933946847841215959900138414418578893598154213457666704052381181032030941854334520552021843056745975793635668257975155208795601738890730678937967910267416054953296821918407101230009324711495440909977152149371152579456503129961867903783022055033763364980572365933247342504903693237985139051493587855318884689870165224972543340246104615608298430575806948834883159276663007735125731410146144945275447429209500253296631021030385532526258798684527513403299563521661074987003897374468154765388771797740077735547725705880806818736064206911309762948035896714921504506064804571244387160648856350762626173354202150967126085677740912433075684366494771208632491289115645218701672837052695342124407639080836992127750967765657969779846075826840565802181550818987839068252911363090538471029178341418844932567485989641687186345019119633463185280107357964878979188092477493183785355732450212280262751421987369624202881287667148551731994413178045602123116179842835502321215267745965976442797314188394415208209686757123685647436567848373357842177539536054953279928684777087603810020181741746371959587824437201136422719553726060583020184030090686624827475302085897271164408204080206747651971494669267666691903196070832468956418518496894260113249469162768695880490671725116189830838464322220558598377926987955083974352573423799972100494429704076165318460149771157590427899882098974290972038780968519607650989673015473657013923970710015038021701650243711602575361598048590180044924740762715708153698015554664790891096546537110862471521373580275569208244527427407236721361565972159760262605510715218022788452767555362530727537538857723480009639349886383961754124589396047377109521621013324144790246117485944365961620637394148651465057617928988773008690165478133211677341574448868510745678608571242421729892799405643025132087846455105829411757140010582371019969493383728923012021481421696311243941346177970054666324102127912437319159720239885338365767035036302706958963003775789798809814057752927197766165359991468886689566478263100431787449737451930358245486701323028877152770327553670823494305826147822529115658012238954068771640893466047769002965951616698984734045400487747867611660193798313661274693142685437720009049714226599525306549096707727347918277652892664637078734218758396213924866700330327848975957838932707679743955297779832846975498378803278329058956366331628071340084087770158901150977127206488747936535980408165687147490697015024558830747951325058440820323590303437720378708747156329383527722289564368107733462713204590876239842521080791404274473573936287689901094005918497939373732166395956150468877307373183077389125652045162421298148910155941607275476519584048280063180305815805993714857211465698237440991629013861863206997714800739059188663514513612042945507177500377304546643871732651574941127190871396912288500111715026878952949792687219590487167191159822346099304213702404580601929088736011314659025436029661173925878147474519841178900280230415835319466894561805974469923850144095351626270457461730712113274937494843940833824967706852888533762731733247333744178290958129453007583098649197129766827721378056026799350859716446428731956786028056296866651648358794955796354407907334305145127614405081710783136230207041230304222659074621826062012069844423437013941683935129355413044450233637092554663200464471356696605995081132485007659627430650870855620153835081933796365759281636232260100379498740812258684512922163220514677951864999973501182100789743517036973319577067632892577541877639887372221284234986902691377114185684928017503608648856541806817238578526590171594607451020114648872140285891342056584222755693920564272008247795386339014393873410973220135042902783542520074937163925189744068041681755602338140282382334355089825630895964143902983855610812600237643183450684860184815464069297478643355185152302930753235265053177821753814658702713675940957845134648182297279857672603658616319524910062174863232812955618562492115757372329835977342553282723093883093447622865462893602102648602326500798718535662303241197787541833952071015028003669043758428780236674086725135132886058854141096670979842023429520402185969890566386603750328558617427092590645758351102485136346315016983314382765314821270489693766738203080257772530536187516224672381112213637915155327799085253651585845525340763220759605772130869570319516050777265862473350581971329417834381323613397468176416259919902760205236498042696417675488668610516945638915037946264877191998383023931273547925086629914180248573615629116379903198548140998234636679683221540330166746978212069637894395437117044734291136743021305643296257412594019410242151467325381404047539089616627770694272419143356150291978462444350726568759364066798534866322662330983996361285789521385208740677629483796871925649090415700419438886089798769683829043777670543501350505610944212291371715137547114878296306268291583203201594450453805533619686491608501723737948304066092386689419334131476165066173247011165398829727747052928749344532899204319136682027963803050203609799736484840130741547602090187341833499566157032797950888588735561735891320059437155759492303511600036869212039991669361389454374733486292141170926182343907430891545512983069493542648879272654735283836318933591628605940963500148295249251509867672025907104800366060189736940714319326323031118451370981800523557222644011723701798698937588539144675677098832508964737900230766352986123308643777609738305633892055957897215001276677570146244771365606890636752117569551892060894249145617931323689537399902425346730592941439730772472731016659207838451975206820295840506307734600411413932073046981733348467551087879620140735615231409257969892929151229258487181500099334436979801109041996573351967864148395575044529517838399247844684154969136963287055482929410519300846235975947977054637112977960594344180809405431538237073896050821035156210106376911376036131463733147211423160616667319685277916103179128313057379748786552284026593226001138354940496501546841142908850896936807113942760397109295370413425839212287472009351543782839986316260095746785786133590844219263453476064446014362335122903158992923037150184780230056293492107172399270700274168650765577743869216419137394397063919583607996827226684058257214111033740834145449703346159643629361647685222336089873784220374731024900449670319038923865544315880631308511814337982415239812309975619578224113501319977692645326419861438943654546134418694693972054304732847078144906195008826318003105431774968089442143069730937914112144491160015864721129048116435493057095469504405612781005043120387146309298400532666032200367149731635420251423720318199744976081835420390586834473785807988141006249107086344329138420526419379287116215076067292453460840090353896899878428978224742904541667829470746827663441806151097211652408539819103619832632745700888246442981292305840060180755906413295010803772175644587921779609533633280999528580196491987154119956655912580937118452106129886609476889845356089100762254000703042919695643575369420614997781772646278727914879183749012366920953372827439442726201962458226672737546026131351000222105998919680705420607799912771708948357691960600664562812755458141748503679530044897197484160046998328528385228026085893796562339130826303844035379210136100800560855277473872738005661824914535062367890855292912180093156891705683117217139804003149984438631414148566630699621355000817589808729998768017579538475361816948778232848105820331536877620068732873139373289912650809113023062354539197491136120565793381991472272046071108347905561076670340638333681645597561212807957334775026638680470726814488171880421423496811623736403764219749487585588459453121729796912512481548376845088659368289860350853499473509294411650860168820191048311806111432795827321092854013072934614657578675130295819191878714756485533902846192484707243802033017018559091335627222849170336933978001703152350296289276516694738936301067720627004067621722033383968299312726656369648292050145960173320660406163306665858495003585015910701401658519759385447509495961875791054237638608267769769871584662556174918609522946218187090715227293864494462859157316344331005943888849886648174017074065745570232641211216950185990748421029692439773662145890929198473209284623727077364464747183860851650097252739137117639053531274860404058289119972972709295345811225681879804293894265066629845068455516011946481343231395498226256505773653196852451043392065753186678266946933634894255614479111818531155385126463160176620894994493306792414908583807985223413045661733426764840927727317008573423600324668550047164422140830430640874340034450111422403486275073308167033418746837213568519902339018926898714332043926154767690785177201415211547576364610666303022642055304083276001513127736974011736953720659387042990671336503989449992809472034670816456598858848133366132199735103239320847795418382141519674043241133630756532220482332895578733505532234877416796507707884192503056153626188599570301143746447684224330693453266897215575166657082795196571295457638989920540461310987124821946536671263185859313354233152611998685106844313735887826528288070014996318694825001016481042717885214470732018740791274164940997732631459646189750756031578039909011762888344770478112703845458786968197001440140439733292440233155924331258281686781472051297672377249958960149561417408987740952219482049237253653932665577116014207550144837191398515404029774130134956128646401407049393023660210650412334356542042647034874712579629418033360894238079054886310793255055376110221882775136250224518313620668339577506082411730390056179258974881641435702455305308787083761427047366121493038858571825027472413328014597664608752101440171373719968678898072060399063868174779880029254777680332467748948061580812088085397982253933475154304990899938202881051426122835908947234974670812716457785999731861648667277516678041566249090515212656560057862575862471448267113423323828738414809363513532672204694313124249016384330658450624949289002564388807286741125382963854968549314301838025473420081620595917744738606978920890013080285618634030542398327008974174661807784196497792166198669149859152527940815864148578188925129001919796156097153086516526467490379011223875927998209925128639802846362642002646074408473403511826756178065293143248169770578364640663559001923475292350234274499341608737533047076744763606337398788389281010765070746297084753080786287910750247228828618600718286648194837653260862781307253975249110747428068419456157545119472996792368676345760425662907546482846880641400496945208946278071898953075606881910107872404548872414686485609560280785996032940903462793773083749496348876664396982732204051115712449872763227069914821038319314808747426210356600432830837979146346289265945684901215266962098727781319987836328142296102545026525253409559844857134056163272717137192095303392651345738858889638969337783647422466318483464622549049911570789363945218716385196974352392803181256648791464991616283824780721326109706114544366726964056442897604784284929296891779653838203910158717446867254793042490766351201753542116464178817487792370672519369626286824527153340821328025006947079120238062074301376468232631321038179611276034764467473151994632087196851780440425307065187766779826410264512815878470418309288498777903099762830438232906844468726434012782154936793784629175957087258196428724129894004871836561663772406130746430599062114109265744403343514094440499742528261182391303655445429579717872958136122293554794576208574603691564325240888167710475560187595014342168622968916673299569133659611274475667429114058513957441008777821912594007938257167352550985806114437666382219649130856492485472768033212703567125134544650078618517347088806387524603528048278417587363605895951021258355056748642669260397095482221013137296651653412687445707405898614719629900695659494302945112012326927857132165866971186424010927377413546666336769585411088633143398473209031410925398972729897753771392700679708841646929546382109319807612970325290931873097143849364817383830736331948315372803647892766887628107655322635262383309267137472955499471989782202602269791127922104363695597310246162293413800063984926770062989834521744611790763412816319026724672304207450373835393415956850719904189700373156972168434857800576400601260135206435724018024708548176999518562423020354835194692811191250807254272187596331754309672356974095925337569123756715656200447635213695849860535187915856893172604672907807583301808792838168936272649162904934767339230281187827171315284635322289278412520115440991819056144707525776476645531211167536507557045422058949492690414496619573048246677075319139873214116692084742618058358827681202449316336286349245151634640757539291951902710446269831179512078457880571170068891646644243638064529929840337355144463322810612902065000685183605794747628503891925044589061040373595173203603963592987015349038914248834789895687418163415632844120782867730291003598873610817986384901228259098150576599822835927503733525745179023561026327535519970951743606735271031416957155910213239988777985598607908636828014276459731518032393579704460181930862029741008297328282557143081699963237838327751184572920453671916742007934334364935195377546374969222313721281248421349131178980845334783692713889607339860494739770323093537954014240253278214562543359835479336585794891507701887162777199416574745964834886559163286510220892558740576048861740688090360141318154613753941333584254740801297822057402825368118154343521371986483151996304589004101627783386486872947792849534768921425650081709169248988202569912667541555766198847504015207624103109778788412106255554335676334272171506755290379037649316895050337968657804751643248157421858743675002034848328375010594494705098744460072869490546477491901896129351435194977440561133078625622211432163711147001091683627352921842134810059802711588027954568317276539123270841093350407245747199969540050156966394968111092047291724978205424566152760800659519939067007664781835737781497856402597906189290359569565247527370702391427594526115153295534082764696700745891601826500385565495196162955730140406878118882844747738246172529872585210559580705225403907453253008898218876847659627437172995779290462665099362900675967514489472331426981484703124783816910619749115927312117269940548864181254716499562957462960052546001457186336689887775968297818736493408552002534181244565422648264022272327554181984962115039162322114991054740559858887666533503692125031930195982004371018256114514905934375669781317037926713928563237106647122137854828411977371102833560111473953099454612568546182937025784273129632214485588483725852123108928651167110386976323735485328126643767033487968773442411422582946284017031981812530072572609532923652997044197224456742509593366335354865514844515004702616772750650726455782779066892075893138904480654810004122670201520796681662902123245911013997675392524916972045199876717104054324733773712347278640203939656627034435901589492347422751275995006772734559219169311253677021295706729602578015242810506700943587290850692516288800926379198786266276841152320409613413116814155337481462694527905602667203675798977609528049755481623007698057760122054808921668947992036609970512942693810135922903433840473516773642375211936896253072600120327057843571090348789047013312148146975649796682813833123355836612446314932803628344349617251770762993410752610536989376076310989704382715246383428151989641928157734278802199639807949170776868869995343678438259228061918381011097681502955833554129352435761646590552752066579679372104322100338463524778707086575998649065942215433181867406499394023174283029998668097264125222860492108023585911645461542972844656696888737846977707851971412185434972146611556932745180054903448692092410593150255330772418118529068367955760651783394467736259265977218057987364718630330239546177360505303344538236359217947504102232878695662039011280278966352204676675143873404903012623409476839672448552648013148253947998538054553788203553759063449404674531146960722827616135133386226297651954028275722441342421817156331028231421935900777765463552372402448849011721027352743196305999527136014925040753137063591672670475228923452154223339686808289279421077801802351937025528369739702855613620816099951540731944409877100084017792720087616968174239588707595835673082308744558304680834997004883568454335216501920327919072439230430530978515458728726931137016391261400822626982789485172632268958938971052079128326193224278925748300902935637975803304819017774005339847191824595925697205151779857447170349507136107000197318691574461027224316339544315487136575486165864124902488355822833464821911812087137100941998366472542126517248821289126206215861976290343048303023245482904064155547676838457634374896125155111975748831565367003088417211081475442673726365931747827994519159281348035183528300843311933546913040738592664356494300798345322641419594172081317557565855888436641548961516511294475615425418921428423613804595521449014567461720199447253447742341431280691175637318190756493789392478029539083658145875202419779894482436465611950094748178899303687146731925329491181867783011867766866048071746706778305524524278432634226891721826970410429513029575042123585962610906707932890398609476222533417222465208678465342005496032567263526050616396699576249042497495200145088652110045888972964547213804863810240132893428081045088491581525472826309804026583676362175411222639919281199903900615866772851582871683341959123100297040649232870906143605423865472575988178773763483302707254686907889062680672979031595070791246837880228642508154497743258921385027347591306629005539720379995478621111910087056234685533496863369808676833182230755743679881715089008190054880653622550174626073021276563070394267991423209617092474186348151865160167647781674383684726291870673574219152247279031372964874949631224913142300042342386717975400650866357711308125749194048445088355121918076411192526458598805334916313214890500370546033477507735855020340137587548382321752171590135881537914630648711361498595512095866863801309938527464663218898872891439984390605362313727554922286665004121003729589304124057260845835566962083954940537710901497314223243749172528729208855445186455518907989513800750815999795606817839469434671171245941511302953813200286373818812624531047999568633042073132593637637561284976826846576680105061889126296617975578703725999287009856857127381074380280142049797802371149946436075143684475966698523822115353998520354160754328183931427082298481994365755748028267677147290710189281837674847901565699905367864411408798610261411098285534506302790560074344967352661952786357689531184368334235142054970943111148490930101629777980105441885791358615921134199101785200774235674116191370084348655211610278513373453937412249324216430045909467063566981728087179728597299462584698469915846355798731830753818169718356365146141610521828497980551772952815420293674749970205104917071220513247277148526058857630599244407919762119426252813092411016680435487809064666032930779088510493285157401736417950986221773027680047318007016163514324191797524563403935848096839739195482562433625805756466552572658297647520641365322083510875230877839661505451035571015996118033361466229551878556950444505507600651451875492025431110147858811328013130396293897610583370325943812494059345168963439935381273092689105089906702301787026287737415925044785228808145786085171522515112953067660289137403232646626195156874999473569805531075678630820961569234404254077428010160446933695755459391982376433282557478655566816335248000025681667806721386680422570569429124854864690811705133636195219573556840236832566939450731466310627211611044439961799920787995861200460508672916665499915228367137732710491767964945811473446249275598361958129273044474575185580429724496627953596924018115564873905220970133958638072781886587987248197440401016361426151446027936806551267492863225495943834805832176158022655670158307141241710560007914503537712151668495053022065061769865508648542214672882048317396532404685791933299271224453568851571941684830203364258458401745163794094832679748467506977722500344394837611142099752402411597030702818304417381574794592853426623859866752857037156114661618329695011711239207602445215673620898746459727752702353534292825979783062723744516001795375317861802552819429075824058571770647812210016955843130670657660186687477621763349627569582108673249064506142660127266834740009514650127872567841085361185470336705147098694419355789759634798475425687634683372474459942816237949912322738455223044499361681815228689150856384461274400007819593901880608335845757807123879944846968255909652896577638861182572681289557804297281651759928130125225202130373484128112750423885624938981811446003275106290087936241658460519185887770014218687770239262840300056275895113459728562301439950004345803865277834922469719117417969713712762917456532061885010869632570417515738647429003269751990880786319757552859973878636301826336724456873172742820017008789477647212291662985436573657638292478365557048600469291225798121155958047571354483275422631073549485789483582922363853823293163842742461462114790664522458793677312742852831299115704733580656490392496024551717152318639236954776641650541181662677891872954252323378683529921850684244331526434652309180711950992707566633915331063365210858228832353505660232940493521564669415626165084534095838036633279248706569490060179610829980848369185932229837016430377771654559693400212522385796037914909040952963341223535430652565513372206461379185845017042666016985030668622863680032068736808173756764772944087106209035614090616904172648639375207550574745690461275600502208633416657677936598187829694413355055254466192595859007059664053730422398232190304212428751937390577680341813306766511254109194472489121136213713138889418075503018799295918574857237666559342210154542019575696147662776198055802995415190541064229439832130963659387533045331576244921461653330452968257261335250718705104788501205801940678966432902268338752275540020685318088255804148183570674905435570672331583896320517653097152258166825099534722671929615113982662832345566050084131985504891320095913360162768911959938564370345460485051929167517084612321646324954717975285426009119132937810852632292439737028122656883815175598725822045450868804340202803690462456202104115161982811198992486161059890450377014704928503860975763468044923414847605845245727718704482209982563762384881453923715655556844578012084178210151017039591419280032952518289935395246099558471647965958664249171543930761816387476776775779397967038891508212821239772159699931207616518165787639319581907780876999008303469471154855584788821316745522187666778212034497557286865932976089360091614749589284248281751020603055867522138914299984158073865062359869362329178110846242182944489563474579166646258454049703797815299488977931783521256398055481967797205198762427826201162995570775213285562050580804215532793054457273268079961316497540430659236840522334794637700961755106357747520491812975709506073371436178594145088451514446816038470549153770811030207650390379489234996151711060080770072999670792279779779098004740537613139097594508598036790733180864927215440510821374023784389655505632022023759649913502831027688618353040151828310220468087827445866451152052048157665344005972850412953207986111603062185320233839680628543891450747990794563119823867141026435598294775046338897143870677670138224899038861524974819810279094712353101516924785443568215743053529015558559345951947226059301185234311255149706464805156088777464516137482210266746744995433462439049084721933135709933124465361991141061519836045776186902114767679344138119864274272680256102052458509074323394011245755891611153793898475829816384860812031906192543738284737974695741256117986005953737190546317270713226881523317820282935864728598554188836903081056024147478618022159315882169738800879443143292196697754465670067292884404449129485803235662238490493343841950305222684707335604934219004471247566197881466408446756260871125179403685277238671526823772163438564012456851241192232104203964307891015942983528380391626629822579529045644899322047046156447595821269635138833981224088115959936039140776404946240828973628606645000045070082177602240846096998384455542537209752569193149312897047837876731989157663410204161835391669573958117488059110783025345566301251135321959139297690131963293477153703092943011228356829714002062417048045359680834374371788944409079930516728027232990535091304668113511818157976555844566870991198558370034789796735302781303530090466810435762090071405271784900852535547806804953924228673065795189108485194558177199654870354184805717061209955294404097495059038404232114661104529845807796165549341068826878415626678114351112703355839799226989765509266486657071031995737896741572155216522556091261544825562919781494883171956464374196922546985451580115483953057477311589568362906715197348977660606662816536994186240846889773944133351610093117212641079308908552904084770443346022086078028289404602219446401889021189534058084685859629385403462996869884660494820301043004486061200639762424170310531556358590834159996856304926489514076813149291647139633484757115033298592661451704901970368803830205175289381061021058411837598406002233109158642451371450380902439331552235070986888065685995528962408565654005450145142805663129076533226607606732841024181183629696597701325246846787945892439269050047409265184907766578398876254430067333820445254141581683087953297227131311200686429489393577819205880668526996393168504853504597716768828930448854412403943368360712466313443157199265528437722374010710677475376050343538945095660077662287333753299098044860165558256847945822758286396280557460763082190029355573978862271159834203439558588121525849308480347439756799036695220834016720715916862283169759367903348142736030773199282435889443771389506968920466822569138160825651108270210911136869564900452208529639564324906538217459976543420248084977000687856155317013704329079488585951754347914459449655708809841556026545036183514472780565722443344197768262232117086535767550797861577160276081016259123586932806781175640979762752888999288904566464449417801458018270253050713888095955737921656185325609650038698753721059497666752582852916492072723992976442368768535676422576744609353158030280833056477526359831465831445725322131330854892873043091130563236031190508816601692562934270059927169199274045425409547726143430563924289148220698480275876534822319105987024950776540883232351580054163681303680136421892465462584399473343811942754772666448790659741310326475471554698465359155423828137436333567086045220498642826000984471359101717832554796145357208357678258364453840754810009030406052061043947304978043535426677773356519182777855135236832622372707977302448175379383460536948737822059287668672569238921112448603959304069259743058870201651098286706182701792227242707234075877287354919532026433711316286078532027761989337008646687972204598498183032550368894715305659583657540894321560152515824477959519262606433207547049579210496894865037596750076887067835194442442399637814489336563403753081920499179836971689027401127748011046083093802328296902730482110260587267929062076989832136442452561694841631671236637265810739971423964975654041472211854739315912153196636652016518832526533083057449070704127379165026477630258255966985431149750831085629494840590469885717893900191695036092732015377039844225918423918465196648841886177749195254730512987227252552943378129504188008319984314103872418375722136224745805583333686986420874635930165379111667389425758733534181987489843526371834714443287335788971197807461722171924029437818517655984100585235518287816191564622968268848701015042882963650060165572639607957494526228033140955687136984867107870491408023285610071629755528592837981993236813507556912224420878176412447022335643474175844518475119441337650110045826848511908473803713097751104909097285449403471491943563882424115710409249455478514653711062869733085099354492138412280999588572050358498691728026307237798869654691081669771145168720165469139430296561827366448401878540793259545131898151134807990884469836305515515066398493118749754884724778098988957602416954464325892836013348863704614556112432333904862025719128212275589168958738441392919340359672487943237964919404192696006924026770636533542435336994693615501746875938373361798986613679077550399875401447655762050281095739309629712755784067843427115314252325903049168259279405980254840193861343891440578411568568246018297706851099348801321257386172305131057700256196316567987144028855456714277370584854228997534193451320340752644314875379513299423999024138095966159889337338434390198353820695870040604544301970212898452317327839817505000108078658859905349695524939756742476014076610425468208623495912468719486797305271153348681393565311964608061779703093713986609652410263416074865681177579894506701662657811795476629311928143883126557772283473964663079205817063748387765268277385639088392137529283215221288347421682446752870344728709550873828412250610053775422664830638567989562161815602077401774600213195442273051765774589557290266116472763608790245946382179288813714016112858693746956343737968595950953605645332379644385446549617861398692072307766701606553452375102129010146055921212026474632078775263234139128135411749070205970278823325860161444546098666243797774494962508656240617290007071668235419793000882487652508449652265685563023177388335773255850696722217181382807703690039389271943058373104810355672921240549062423289111513997318728323772003880525631094546836448931138541039550772724877195837897037645754438626107366073825075355286912202716578336877687817132991188006163754601964357244926243217806278729673231807133240909873687831862959339492203887281151135417490317394781359503503498223175741343692315876008334688878806008856622577958890058120264673933815851717362392436787444775480637391713391150789602472319918587409440366257852815352972850500362110972091050277735617546084068566519839277698422128418151316679251403058376087421729595668097930095373752670484901707304014239890820400785988513709750313349327868630363517960361494403936929479240892617812698104446553588158773926870320164448389732749912436937171220201861600452054294639534817161788367272037529921184540561155839474274856639049671366876045759692766447679678378114529643586097056698141402658638261732376646802712408646355359576035427878287802395305446169040371199614495807558612627533271095493705876024485772279745981432753961590038553447960694784624279131907780602732182568829663506598517904274419737086908869511434880756223502683401433735990304510082035763297902943485772935084279134760933588775035107020654990702777052219337204740208299349582086366805445407555201268491314690502153731121648739938425417550494477502043033746204993605110491245192483697615715350604458690857876623105345326830285158708767957229208281890199096878472727873851073485874518408171952417719605874344083239307764604125680322469265879899583210519098317119171168539575463420129472432387043972066918746537005251933808605153751282503214661157520814296345146532325266254374202666957432929138846886500740569166455440534708881756276075526173059555403145566867934376899534730335583288792837261764964929740270514312731835879902064976703426573575767245198761699933412346467592817974829483990414423322189159204146905680777314747697032426946755308957243176840474589753308955993848658046932605108648151891103176319845878478354844288180787531714112829637439118406361415809474026720384648396318220486253031286113383627110129655373654367203744116506757051128367135489171660753937645694073804323759507638946621678572411294914326191945870830687238459541812250149797131035594606620651204975051852091603121157639189529736946014275840215039043989653941559447239010318123463034974944809019309208287497809644016008822734488468556038364877895337034999782459040384496658298650278929928683693291640701055202783723103471422207810072833954028017995556215972234362862092787522162489663093735670136372213602344643998278065627250655940339567483639723486700308895246209910317320362874344366520897621991492149437152301864373332436499993366553409512597772414353337219743760706263714851292671015207054237466599117101803731942414725618624576103565941191081097491897781008632637168969092189912379972210833809739397947681103089909753306719432125166255478709630306204393660659002804715515130898277539705083961993043918267859011815386081651588512576916899052587920857044138893247884548216681133445797932638696804164661261720379964116733496439829752360448835921519960860366118086710285059534760194659907334868406338301834055616703104740446563286306655403117961407257922067782104274962271205472607293443668307752382076931246686257870340223403912764731115797997196448954834887323754211748885605733018097252718794106649668396216775468411086651415162111680638055434661138245549518329286005505359672811006519880567082146256302575725403902200311849941571531634256029257278325952980569032067672337918142135752891660130184927423287340230648024141263613950265087030230789524119725666870400905684969258813762243840600631046240124313895523760035526746807858543552738202677519235994191888136967896133563610006191705662902056241963636018982038947899349012045217232505262764947059764356033253750766871644068776713420475218320999702195833344244407585875959222376002707039861721057001276944803674264460398715733141489550765718582468401954660762871838864754082380460443235703557145332700078562664968579058419410969726202321730280809055772674818574564642033189936517174130378073037872228428495545841424138565762348267505190068942142219629829886750759438154319271319236844543289346102961145405433008263606288728973214795153817469899703202736348197395464577295012694175229173968691730652160539637542471268721236555331811525563149670260080751406472599357789402897853267489994879059905389290599781387758545700751585975250033907322965188326365793464121438709214328690842487797028817591538519360168182907018476781184493849013052954228784982406774189592365879598488220836524879769000796982433497420149068180086247958220613577887328711920806953865726701716023845906393684016613356227620889117123569753216603895797727427749181406801701653823642007464758148206043706202147152959844080199977486528041004563232234609783305550800793477379736572750664436536011128568183558028362769014504583695277838451817533847640254228527479288722859173385552015533533106007580936215757736980438340602838064611519169209864412534480042689812694948463931572203793251494570648186432042487088448271929667333695434176714016391028109794686042148263756988309575581562480180616519338609268037287993356975009184017168861056887970861194332317170117245648614084701049920190461484839931916362059891777700739879932461687932067307789647555081168330883922206149813559020276896824775304220668224736141782223536095152069561559765742744421752052272490382996742824776600016451173596945732881617444444223175556715712170844721741577560706919754813469092377372798154169373049709276727583733533650004717581675306068687511009804899104121696962010428045136248749849319018397710321320952849934644923986205900622628846105765056854494029960036217953422913197540085749835132940345306108456048639557118480696394880374566576504147956458004798161061479719138961928488813791744075902814334432337173405928021230341966972049468860954932234160386724910374122648459762090098863926653894876771759997687186194985096299848506623780588183721983185221868334289917179242100103961942206597649509457588521101918996358050562818347901326134019248716004453279738375932617740629202918924367271322976673932687594919855330949269789419410914394619485593783081414173731247690294777190549160820444382432135930592661706354237809471721375111662695583644286984362702277023627178072565598373723662328176944375271007754406690551282896746512975022916217176070434696036199614307280385122164057290882682950919968183988419808884714746166471028322370790917566383044853592168213750895705008797529987855449118200788734948850567131804513887228987941931264475495262306301064777493896759179473193695851397245147160183478076547507507505251931032700531329530769227827569789288317071962223713868737442802051474904839763747064484519372950909578254551457812237135614021057810875436076090833026923897088930933068620351380532639987008147403355713280309822199321427363506131126401926119412695555093432374228245497050080388333953451179818128869688732823480173229611705341653354986891160740164781273507532924856565600136679199761580637473559657849526910506380315816327269483854830236296983914720779308020466523570687731717213618403974710024823924947613041121931051540431594626294570329236513911768777531755645394187484028734136275810837975180993496284643668207647558332915459726089005436996066590929699055916688229268705143153152130829505380547221350261789227165617484051594405420364238412842469281985198019883229145019692170506958966216200799023932667090704384919759245271674511194313486441609759585872830588547995503069293232783599002995863977403154107919523909120459466460630481312339958752523489239139700860640849916680794777312000922597845121484628370037975573175026123379072440147793560737043170881210385166361712845385536572776559938835975072286411107599343453658965162723258752682845142822096962551931153860954680409795559369535780968667979632010007466088683275973496612295878763940347108655302288879069242081485469569994883648603035427355040210835680180106110745300277303077888259760247091864359482619909834931092426706390422554857888434971157021069305920327397319677226492219578645874167987241059057034587726339401133153876739477071980728675815503422443233308248316325971138679858467895569995365162903024563003162635063952237631312131841601235594915581167493299225037911861883971415105711784892219542258222301640431574923375276660373780419444339506687782912981426103582622157474128328917521895747736564288201803739143138427984445942540872259823165548307029834452182290413459381563097021383595892008574609783097174575109726638123792623721064617056673124855034553790176764830030144443861122691961192094361275400839942828392505295547071934780540923868142466265019699322823874033059493942986690357422600386849792668178107332440755784150400018696477900542428683295170987297202411571022545371198827341187699818399396936946863211836472721143297360899832298450089982810099575937884115557349039477463625051873343758673318019205789286495119484433997045227060946252095517128421707884998352264621176408819322626802086106994150266210397709826180076876586651415751396884693307866238495082490018382337282193642175544189023458787371223534040641137884416569760550459041671263178581895046139270632707639997796752860208467105099061146820442388964721602424861894651429802977582166076526124551601992731069862154779369760357719880451264783396637550943519146159368418700228362126906845562636009913654646110036102380353332359619965263224780658621483058555866995421106470706968626201442378611791349162448154253653025637653489836977880154016425333049071873197127031131988559442354155251238758120862004783184612335827398746734661029956157609160255509805775552948580098434708358559760206574200243984796729107957877187784001663632016321184321353951247555732431005516298802537515944202434751741719750399090080189262807150965386141281561975199569340930507461437519473122301789078402750509206703552930920933394159389714899613053538149102144549829348777106443340114694900786548236858686196213734781592298854253557121121590440888890427314840626916822376127145570673277041093895672887532448292776614773498011706360866342940375468188427804569924072559436831340307851178979489077059325345107596660583213640779421495875635302843909589902758718881902193082163607581914789401673911683310506419636370141233850133238310993841867402061770866217124977238977058025515619615562331126740677439585153577902696735878696022180940947493086590497479743967106319798140214812717744995431362214650387293439952817418284379011706889724732236184531460694240334788331860008750527808144137290845878623184534643958102120825459576331533516744850210860514976433555236208393706599071964492886400729813428104169512545003444461273653431449061789373182372768169405624437591038655681459018785114084540287905851764336019729346440594273715941731375159191041333145578940285086392006130320008923525265626221907345237268916316297956796085005158517942087999511821333169675843167071564073663475703272907447876125089112052067106081132871212727355306428086046442755754500762631372963102344654116665496779727630815197990968601201950675120511635342740993256128229421549366176210572036964650377131469142981093826859143385170608576108668319736560178540492338990702598437292143687956262740017815145379593266286397855489618854811942192058056112007747192927315053650115719437659794448651187153847954198951516795906511616150250181848606084078725888978404645661121145578007551771970528766076661761424161610003238428397195317208959448653323271935297914949080785586203220937242580574213936072606189236803889698428269382440128138470900768532277037485445706886434047870583401557774787344472722495484493952087701003485469944591813426706610042740974586546008573031192610608197926191318643337892970200842689111416666428110310385081253658182269459012528855696049302195695364738636213711745595649019773181516552423594663906401186392570363580133602620243275979692337581110741769554706181552936503313304981275450392467107472037412825142756006417887961122823913990255491518460031245536038242119667876246554382548348189361262835299978647344192523344619536942976352538241001031979921872409700694023963026511397832988426900048501280457801885704013492359444547169062653086396802846797449810582209900782108959658793202759012701414983590277005791260318556056239467152288656988309957550959276526397468480826390625734031826581595403768993105590394613588817060152644636712800785643173004150931693336625997343409338042374117258997538102237363923374403323398750722336028448250882716131749844187307401543025191240636887777998900267906957825397112991677706121382833403906716804704947259570712324066514158707590626471038158253498323336322157837101379411442810712776104852392395608752110340070995453605695144467114361269835734183839969740204573838567864041723451565230043738532178847160334597969742409735927394584090204119590322344462463442079478356410794430721458049022405905133870156259136003108950458988715853299752152568662415948145447736199437564916543851066861908649399689216744702239036865763714938014203023186410597973824782876753786164708989510567268691046615811032194079176424804053365975612434829432433578355969390657990793152818586714330377061642934801473114617024632787081569072599054579367060988360272928140606918404610294252198070278725033973838188841692386967237483465602983388469062627442854082039585543709532943404863593400511122288158446795060165451752577467586658622573666263366608996140500431910950489438785664196095010194604149320101984514251830324765646271029612837498807336600593071080318936712808826441044872006216571252160794138993601814960451863209521913206413962262140100097336764199519617047323362374419952926580832127711066649491954383426766909983793346935385842041740700333418596954919835468479910655236838023410605210869446967867460694364552359385838286200858007569060168623958476820973978099740271989209135952088979375348950357623686783642582443253721237545164349940789402923062178208941032407881978238316440665033463857745440213288212132234217109701446677928033318091021610329303227288106965866702120351000601623481965139319312483317178653419588444156712274972983145287689162306719157356778922304283425493138607551833127309020451306006178608939830262841937617093861743208838661418469550824112843713841195662703137319315339228504690086623063227070658115708461481705798448912836143145054660323358187159848272560847868288250478660577932782995670388619673425579719015476151515749601755831193144944519172927128606483689827825947359254201819851854678716817190665740826221644003716663000158399625308622555920002216278497514083879094068571617181647586676500643295614472023291949228219541696928411547036945442142024260180671096484076795072596147781886567956663763687287135581076191041158363202555419432412265605815954759089327879907867872850860292575989506713054733971063891730513058423459970962429603745792920864317584482532532047123966254706667356019961324267129007379823494295318481154945490409545417360301215076918998969993511031413469254113838624497889968916393421158429715836688823660810200589103896575466921647574640073636683187630843400188574105017066501752046087413134856324291141879958644989559912557321465391507885611703262493260730184039822974228825364040740172726331311175138506933904759781623934601935187463089078982821529290791517066265676971232268988890843037135180843160209015077023721914100414445113527056232135508638967769843750726888010669289784345727152540216446407747198484420101775065633884917819507056451405802055433391570026091752623409156416923082795225671623077722265487856273244027668035956177602046277421316936680560591847461691879992819251538356293783746716466979657705327558374828041359213920185310088868929540388313185196703794057787877133255462747303738115420344909577418186054122414888474045121783597583918873988688865122074292897037445001765573877940801585703699635546847302953331704652689395841851527258008348371291282475763057169636856708281061392418988376237763679939884789082797482777353526539867869876319023978018316211134042791862087988272712478522626058952197858686495752104102446701219009867449338264317836657328740794978834173910453438848386335623704705064688830073535323121068298654616897764732352138197883178777822029768955729195025487495530976394377511347938987974569017901416008383419168781027577154356114554363902904371035529031302622061228411539261375237435427013811593327993796305733617824769479174528552464780047254824185798538177045664181636417298467444721378771150081365075669829132236979038618096038757060584906207904077030017057181618664478317928274743963178155921642605457502927190476857401693889130188079590151931374341779835241693716423123891822228037934769236736091654373296684990960375334564601911112583401579491455983929948854555716129547388546772300731151127800935782542823948100617928421963617431984193315372237149540403997684203457761830481326815943746512470713463631639915308905264940130052380340837206206028023341042778849175304851709504215111382925522023113517703912567740287783991189290856739722565690686914227575912551491355193004320612785674931753091853904941326541267895380045355422497803775946945118852476984105732481576132215380209113964916245440302675326436941985419364591454550536562980689163575522986091392518588758487211911398257100154371547606029284323139533935328372585265929435025781069131564861874016654983332889547829370941183880365290340314272626489713139793282475558220499554346670642330063114797691658410586219954569873477302913826022129310815414163985029704722908830408484165243778299798148185825363620799763597326698704531192342527359779058648138923773369351769293289564457054071512741735877437789250433308273618573371195347896759418996519240978708189726481864525221536230844655462408161884716458879963675000944570346392958511033330119876141138817084346090878404597049774310888410816087890389591496272777660110973321623133213999793991628131074366938673975908887514371219168698332187240017161507536804423668154267786534121450283502157068869181662258767024217435513962510428693580165550323768585132147191232370160779744269334703503431550053873270307990501515384281953445856520965859552319249198712213554523817174710565626991462624236489419247519064486977386741347220003204199483282495532571519446066806622447464195546550362504279241671721544130520218284018406562919711130871819139206345608809110933058845539172193603880175545111907510485266147926005233005549349358532579603541135329989120105388397748931403673709262382256468425255693883366015327753160448038160420771820353905777104851569778963148066845656448047721851828585058634009170304471036268706652858008713160760209651226340714570688788666004426986578806942636911461685006726253297552959391745804414441156675311877814202100450451640129447738494503458093043536042006286987720373395893929302170613191981041181196784156854474731344852780962924614080926149587189935852711939558890451346706402602686077691033920010583049298013249231493114074012510017803026920525283981649515797238450732156252693578447233370011732831323830672799161274163320238268192989032687472467615726289777847586299643161383567056122935955019196884589684521243754831398002846776744477619183550959213877666078642705734325249144178977621276539818492931543905891281452409861208455156526168238968127255992515785765631726909848665387571782711696413862422462459784879574810986616680757985055332003464604669281740379312149988911164193397168227917398007873566289219837452990565918252698183858757556296992042182950812507424118554519272641990035306657466548074698918925729093998276114776564238255162523753789650802962478572138271767741401460857832169121046670905615945900730074496715549152448377584641545293676301036628419778818585657060865257751264767871232642418454263533872327787681865060980599477191844953079748203311761365763018468129446282201747357467031343181877633394145200679679221088526123528423621039178015749891515487364053326012041476107763851174911555343148046441150035981942978352735634746783104558045119665097631275929567885387520055194614908790673732052387524019680076938075846874632640341547462583149226212014222301150511312085484694682452136161189271817298980888226392860996479446156386231698792491506907152291192656247645186460477195972688564839134843284337102553752035047788175507903892819177874030196877905221986985291794775430815971452455149528343120722382040256641077585900014731013736201633837077076226817397660594628626106581134635843136030841079142804273785614442800384277180616291531884322958104903064235165923455947451832281661585835048748804269568144547660044880510881614106787673639537297299286421559113771660819840241453978238504008964740015600361028171666820792094858442343831634074338539344844053245309983771243791632941018414903395299723357387405435903292663938129561965679934998594164433202046197325872147904368911089964140848381431100072149784871627498475961006431114032143303870325679264454291712151279369560182064573309125660081653491901555274101562347651583292485086445488296670220105752012545794534334670059780303551931872957918118909253325169539983550875813843729565172645365096692767095567293743030765493389678550880327411701327651143651240098785376942356231251523999716010905484994686527751432890274236081085647720802445735378278981425753238722458908616291556826828708714053724853788083814932535226483969985365770406370161547986113486043529455267207819234001081833310697988190286026623519160736745534517347566200690926711790561900117937176272459987276831110562704565501256181022348509256821065321940118760936066558966315158023098848282076879988648616974338646049215857312750671565795130093001337518855139849838439569512184639066495495495012288187901018613312179286038774218963857501210521702956448745801922757374321041462011631079394668563843866962169671128508342570930580575438371065258281156937710449604006424280172337548603269526678443868646800088131910467895169705148184013079042291204933763387150124139751090328784140376065038838396910623076203214996084339315606622005094019722248366776490468018656401089667207085993491996030238073318270661028505164794744593827289323747561200516975161792614545576758459926231950906155239209474268420886624927224911385183033309782152013873660752321843954977983111121257557275795886314885755541472434930521972823992358377319146621299329908568773903739906972556988429034058861933131287346132323265937003278109725310451667982504907568496168434481545409975443835086431072184245031675476638271279038720634465006854198512630830215366779726869253412987324503135526930062595643112611865053207417404721630336979830272370841185274205463925399364388396661627761366746358037930930818129560463176270367941947363212915598535338323392557702227256445464265335201044443253591141911928883634463181771081994079008417259631458443250546157895265604483446105436018792561450077408989735711161900205951016348546405110849888008074081724429378852868256774318716459595708655584461324832546359679873012601192896658923220335631917275203152125022138473249512743514030389533886974757157631646004204315122723687239860288253655477094905022143123517790596589145159643229357097492402439709667053030128770240160936439954125327693758674964347531592336815155641261951690046435713224722157465909351223100483441346685353279476589901622673182972085720331157429070740802147481208320614299656620811296108681927435689013710798048447874066246079375115529855815115255710798949485911325023705456474091742187757351781927017963314355825194648398986964834143260010588143782568709026104806808086151601154401256362687753443654800578525578087396938996238112631182043093995544129251172497618455612254897015209982585728690944499955269091707323722314068780272554082250821139019023245348213805369146676077223320448738395247077805287842687502593228190068388516286213378300279192366607684529154288038620271716582967834753434755884932235389865707693412285894432142627860428830416938878818107238755776811681285059841194700726851366235139584626564358758303607634302118761955756219903805088789094862756378776626435657961205494878775184387442426289224260958955688136199329211079565588166412158571043008811679054452539094039694780949761875638962967132331973846467375573557401493634287174293838187765071889302001117107781229624308104059880683311551555908961779394784271068335460454898711798450080311408347498424235218583366714519843686600584852106073468986868129061862780476896865450800868112721007100931600723587926960968058232333272548678901359934731432681530178406879496800554115283653616243313388124953751919530305752168648316086617974985259849738995433416776086446103050660848336192493490882839275317524401286766313987967224886081526685182031864488361221627953357735524819607310718090810637483906706913405412143073228982707276168173704588747873821811142950247661605965996165188788372913459566160019527570145945270276890066601765268034170911076042042931969011510285244459690354250558213384988483872787771339432320234258572018392482214142591094036532592386776153254747356222423948871118994018239505621004206266060188880123886854102928282811929427212238419659399652620052272021580344104421428357182023931822387244917616966087865786037419758384124169476862833130367100694590999751236555138713634994525657253704585474326007264465716331603166333897805590822291547255841035127783169892811199461707101748424045967961940054157685805956398623233976272337185596172998987921687513163865160146078613367584618076602089944597916553602622676141317749874628609233143829670032524817057590840051554399866411750340065147173700679628970289157452698362381438497156773184724397568432020577826504652191197079895942220393848892651147879212848171624865030288724996456553665920753689426912431178313173190580886139964785764997807898589569204077993959065405217059654264318654377230215586030525783515249016697365374551950477654064932251677043271401442136635911746913896690630252346756367242075966164061097114548655819971219457298020235624786684182800143747716137182224846832486946810559706425146577804566118154944991621102059445885812007002639248781528243547719456760917061107498594101959422983267255018396837974050817189431532680630720412415067704615255908806099013239909298985696881703129731322123831141057348556773987128974904353089364819747160744617808225817119329445988526281946115666689922137956459316862161500929660325234670881794234382858399787800634469029882089425010948136562660248718950090277181971891659718563598089102772474605118766147387132105578943984948128431247158047041335768015607005494238882267690296646943656083838169161660637186887765254148312667181846018405386251074820780579993870710581867083610785786279077356401248810556508529669810463450210619939522918443069724703179124825769058284482802289356368035926487829034909245106190883630061877407079628174595002008967102248674336516271793618311724122991749387617184938422725753795408322494713861529164347932656504214287375360971424553830617633623398443646951882940710631640396641625824721989445884610307680992460661073508880287858286506495958102519310632793271451112373103826435273660759368457708006565322844510106716308705684692075729996962115528409285837463350572114402588815190838943350570566722777822252473092438751621739295466493692254630021879492475696913470564614686530632788007869995342334958517948597235166588573318126161809593287382851560133652005866586123783358348074285536717346480064041835876369599719246116133763602817621299644589698230884067056660724171334715004187100217228397574423603472749098814711906198928382680916411568001504500776803149509483924617795609190537676277017597415882071182791252863992169241911717999289792697350320882209315442629465548301335511596626657529065826529537992440837635852318500216790396733032869956480838142292847127414263526811949381431443932670434660375363628143620875991029627452460977387299695991958217849118561711640346323937656645593141335869370480372067337939813361873075446854014565308691603489235241643310588298021369544081242762785117075604972918287658861303589650206379715249131991942698137281328568556750694446094465937597934883824148877452523854353275134640462371500420504233954837332417107291084776620816886207387898128740801600490946868013335839023994526586705076764905029381321090955229917022540242007302443457553278704696426679672947329024077998911923348060380675878366626084149564481676147989556895045840926295777487840514677918220579021068954164905920746151549776543465513238848197761053426045939890535278550238223580907145716816631137833264654301670502516456193452507710451885532032415497685254898659254930133026582348838891295359615687233320956300140983294779000330291538107553187961802304800691894610156253170931169364938300477531290953606655268395601429509558728998584968114241509164103659876387815556782924427237915628624474673900916412758665353186171720336000174800306088725889912246354672698389221443382259950888842097220721264282312969034868127315786002577277679735882668757020742488807210778960030910484950179516960106656848010777912663357363680022050251458359452333009637037688452080739590544766287922208347441536818236341601608728792774543596396035913096241045315307657852170402151595932863407347140003505471301189074172538602877025323901129038095289117488499290947345830199140410876635386586342754739340508878285443056248879903859225732994491636049397224519015110978536116166745472391295458553072882734499735874736331104201369889765634101109454154140302524180665081965249492258547951271031443190972843996079712223969911064734043760147120551014897364613532067164224932303913483577001517503360715786214268561723194789276375609287110189246081899794274569675585805299576341900654930881221871535131291768366262952882598742382453272265818943482203158768808184075915165898436704815583869469048119228823896865267729499415392691699130813935104947696518511396941112040766067698689874790579523364914907913711961701698125991343114214173784277310474232643179840328378672475004875921736806989005294749611603023391078142901964035024090262453656278415818650831951478391819005090384746843352626967067201583188341133599258951802971338911653422292565646412342362601690956528257738553180644823248821331229729324432801194118154338069730979451674432617938479413558218595634318400121681225859274230073666024606513861116317948738345806145490580964356093857075569130481382980947803575062355831309823198332478221527171173907523212301170441928024738999161852070507763990945967265332214661332993914205860833322942265624967669534900096160248283433178115035769683526001658856598840705966494563616751239471068362109851563935333148234746349801935960067567017714286776139307530612434989040624431066722505162719362578646649132142109477283741616361864359413868378370621860709875123873117940149315890533621088067848892992327227250573015412145220984822602208875420989525488781212719295024908680386272237284772192508733459716168039488614314126171019253886036759054311997971634099965442886634995159448460826431721228992375706604545462147596159278427520106531940653021252043188992797693840905349747568129130048886214588530250699213159685049552003066832431790803487978638731044460970622426825570650524184966999030144095244457181874943495822229124594179791531881314583704379164798334680010377375210491462908977217544553223143714262480416677278401393834815382843235316992918981028906232088346839471995307565231569829397379581040833773547232561777752947802308260987571892154954862013427414293456254555894626988664134588250009792370976265731042403070148010760261923938353985400435449832956561241083110054221968095615775711688461746265392586222850798957810287885024289071144749132229547333602390193852934619360175415126210140735150465229382785726971785937375318992945880467538725626164217405523922995469337781588049224335554841502821628900050135630029767388121665927367496568388393662423245346384638538264446799000831944562122956766203524908191357264805605810676451347565971407674063497856023943863164297201059211313061042917714991448264443803760574212608287128825215085745495155877713260844977377586642888404662772529436712918754480508344592967466055393946999033522551646261506578814177244189139295539517792334254713700709795045777857000326887437467725697968312973382315489327810595394858489647912437553932516659684002148864776080185450648745327699949032064826785826076156246126242140612728080793205220897192359624659098614894837996327241419452105813819241034841187748640216689031281253225431766965643257221729295129504620075899674017907306432563569802695281358107598355901304220919105521264111376810306395907644380171959530728816817811971424566074780407834989752992148282969039201399856673422664057841522727108210372317993728858359012796935857113817091296160595391956961596479174954205557152404994250016968081098129423753964780434447927306632197052873409494378949037745043192249757672836717080690216071907593428962051680550295423085908950450625083060986622954657335336690403630500975378619849160164359800437055933270946091834688991266256139477908919957598621799891180233919860367945959643150931944882701520186601422667066565665636572933717844238834576290421659469828711661380793752644089326208247652347070976705555337730023066823549973713526553085185623276644952675300052812990552171160822477040206553171199679704352430304314008056557894545398665410713065657813564719575951468040967221388134298811909181389437205413628073486033131259748792767773234168102126428225301214689462356767823954141703296573332395681621455662130896788656438638705647395854126252181436027735697306481646904909814160434514657756248621983885300085783261837447607873737390222724571114616427907953040996442336796267721190641257886548126236215216780633691279489197141347027119764124575770266313428569050140799231655136505701299549248472472065303424244479105696653443025610827664150790892183880386408790619581779594992844642742358924637091827207966135706568554856022863516689422140309001285548988504937719950770398737347598722759755708388192757321187641400645167492116167018371021775251102811749257368545205767795563059184361707232935608215772173354618849909653891608996711538237089687015503008755284549862099423061354529902035905853584570143705398504425504167853984368532295841838163334423378051665835390567738919543236831367795627347311402936199992402099478210329088734934036366248808965761850043659043850196162181001239454156442447098953105429149910715128955763057651941417148224893518351690927332656866775854545310509563467150995886421743443681412361188321024225868829118449226250976751448055380072282590826888845729446958618202602376900639090217715942831794251118728963030117553044959737424730964888382376778508443903557769380132174709327790578384352996708660994506705965561135385257356017739167238982441993429885096155154098651095403762078049871740215586996049076210052975249541400690012483781554209059411998383204144019836638523043544278630267552968739124533397554488451168372295047423628142098004733165059878858382539846273046141390502398644528597097982278566692063937313815663510703617600097561815000818523644664514455066269517873340718541471282930363004619959017748918294347533527373346888029180202016614084598476147360390976054586696658419698082659039373071744473648765120120293755711678672291992313810163559427223721017189747685749201460309040936097358464001326769397696871811104860174583181093471745234979579648532998057135062585804674338170016465390034335631888991862055453249359467637268046128306507643413518391892553414566646734872351035655306626097944856221946861710188177319885474859836936429366644908770644941373232731659900748710845748411854393440880268604920181347650166041359867528334047090070030361115445351424139139344446786569147804726997177644399339900529608603245776373779439645252688998574945791614982012052364705966422734618633427745011942543166019839439907099338442661750734907447285487640523567255164878221277687120683895345438565301633988852525801762339570800428517685670642001833418484305008811489821517016183348132087917645593270357881506496071033401676031872111859617757725067210732818513244580353513432996912883456132818166217986741885379127681157023902299907090131205684228056236573536785195738655222289820980746033144386059204478348771852726715405626374030684213155223817240022738883008202716786511144557890493426220129833461399365178364754730895157119623176261422610826294262396451114812283660091950241725091681432257696353235404333229850595538912772149915548258347876894395034632118590872440676558531844537121103348202250649074846912825508944123895977391122073986003055325297848619465561957351490784246302064393581834135274177373572681116294225742916366533455480837616312541054278799036022744566460036410510544747398224950554529933419151053133000372498282339346135305550657075199104822131016873200218149381946738372906656379475603441652979516146046287934047640638558988194850370011803053846691290526415656096310399800746504144655133934946137406750044818728824084875237153451256227011725091306167119608137825338966101978848897201856893719953285498296112990855255413217997688691550967463242502265364804131074922480972951278189476964862749412173404048486476017042868594713126186273825662085576245015742667517763396107536003773047016341410076517491365744494112785924356585260132264298427782892379908986590526498995969643337735229814936117007615576798853280772304263834758073888215480807173710894248825470665991406269052858869230356230762148806759115805437193979870115398000592062898446992019694911904573308091219321349761667465911689344757766318546162923120217284532667987898261147407883926200678847244524401185982812068592447094451333508965406806108257341552893878675838703090330270319304512507358430414658620514497198295674377906139194332253575004756820458876209248640724064499397071679679551842453505718360793999966434900247786486624035479606130478110762862619021277624243118501150571698550659839812620545856419697825616330136731547676262969431703281152372416063616219376575405136372618048150134042522545228444955060627255166089842700900303143731570435902118496100074440242841550375919100299887498783839335992321388621046207742921479415975713462285306816308148189807067390482707472824188113468803802326192007113690161063273595060561799062688198852617238327442728657161466312561634329773085562733800433550339373048901118470734351908867868562185656706382542716747812604698652452920125251374132755842060746112707914847659482103140854311231589388225976583114546419444143301074594675703877004451383714068656970953772926424249379092100422145470584267608602802941931937928364926020772914909932613360912907682965213808692340809969597166945192355861867832575595727918922862999996395210956587500005394724383163894210691720545799379884606367490026784259453835182659891919674180967231186844747251329772955246677363772292493264431243267103449828153428106480952900510847499780104894781492300100425841358578347521399995195906947830616644390076688709084664473718943212735262518901438188067450596875307674201470862180180144613057816355254319179551376589908043299206177238008209775193802678191102613416462332539935390901951240063469770737740815821696125531755244804260513425858301558580506658599593379502079933669019807605846756505382836072903204295621377730692796818675683673521413692456327932586242493188488751612113628917582672158179266423108383933058390808895766626002324734493581744501503142568180606202193680912375280812907177646847206055996368666521017105109842698090287046700643558717640197577348924997187832652527688681447609140213340213584261569281844190586401385001160903646219515400944807001187205724390661649087891183801054843621435848146443026723633973477986323798433932045126746489479287734011694755992394200789016548729908646925985667095371225325892501534578677336656208020980725810525790146282960286363209234626706327083584307305276392892321584253418006607756206258090171181411925652507003171672896176455227766777917322707241054042258759329894733197172221180642177299483453346577167390624632251222907061610795210948623758009268777554367371380209227942820045449367220964492052719001442905349396702953448087454353128782055114666910611791166432658329783470169052790297075667245654499381452745782146603245794019599042871024640118946559966052130046597522820281605878832714149939893818577216740677907276089189746260133434913237090724706683538158569030104264380252182861435168704464974299187954920025899213079851108135192802642088994258987679064114074868778738545890701355062134035743301048080961249149190270269171123677178252611304839128549150065263495637378135644980938650809426788414006940100739366575268700113989644026210456886539043185062025558295110480735269598057498879268807006032183121658067616211446328605492467793714931863160512671146719514898427277397492635850191385742045324353874506672476261216879390472784351612286417492968618609666503002854787475962857920302455281009222844919431730018098544194696979263767832350123596911041219454422288058654472630059478219800733708687151950079142593359575556499843171655320394968750849078727037422212210171044358114654170535180638371462593657653789269897436578972516670129205327101548201148170130546841951237854437213459132840787941914057585428638924547116504751131412247501028802977713888693538705630257834543356363269698576465731526345542396951845958552833837678127943508032967388460640612070954846411496619080901488442272598188326914143776361343005827693359250953628852213677196551617089611643488521942947621962445577054721309968489234770565826636518934494322668620404349910381915576400082005332337953689206527434672728618418842258642573133508289714547501636910075248576383786083588425531359996741206014756547674144308188189180766916927936754820842993630927188495174073176460467211492047907162350664952332334283535364884585627908646641250942797371411669055493415730624210849160258821433104766924630190861492687471561852388453894303577471889282280535449251325678842748598418880204548347627251462998907339082039132612278036883281146473165184960238570814324934063176922508804837910687402509228894268352131585816379786161267889859345275665575840870300822499789372015423290592287136972977000835808127377331865718408201173076713745024389152132621865678130228323404549691596750510281517169746745198108435274308834690993053158800526062709449917074485166322257130516907005236826925437028125213127015915020047959348820112052912349503748309250005601560970360695129215321732653425235698791053934489437260563932157030679792841882485395498662676950396487975166805354138207982009140128326980160951002001333793169411227289248994777607959675185085822665082602720908707660359305801832168922527919025424352099081005875358166002267216846020947295413230322283139778388065344882711097276667935174549287047954033242394032712922195728720385314305788745266521426190882103193347639486629189060715191871454601970782027992937038245012046935469113039781987356301142045563193448915778741287122056058216775486951000977565513841152303652740574169927780993205148143348793345670539765082161891231671623012176289532920995843450073724656412295585645812751887367278545802762043445956901808323490734090419650435107721131007426089847813159784984526294406025601129123682959936241944239849242417256926628009147402929030635522882568431833465071248893234869044320502885661728216904695124156227842347846419603339206797790638868576841983117430002765540510707984051891176328195978605916225851134727074003335551609530564003196580346252762506557367852612713343656981528924523392551091217889191033563544238177039314643936437088733570827399740420817248793696980734544204309555977306929143884232354608609320017658223365502603500162784276482359976208083121757158418764706266806837664230001506373027991857938560364008017168550723223974886648631066457713015405090374517634325621141091503284057470665240155941631450419831024157606241840972407617173916331174031279980499981381431675079739524859083876862999033599978674897965132244686272070559660613684615672649859117575323400675006454755811224605086228722168162124120695753249812251085570735821278385874837898482354660739057183075694080918252113977537164667014282495553586386052416258521906722942836828793328242061210404205428911840053699583988670949426545943740756310355760823525794961825426575589312972371267527815715505413005164952038972651141272632320976462439714897520363911084619528885010591812386231983088252478067544293221372246153376238767119931929320819331775627491472170730563635597558166001734063343151129457428443605423392411733958442109163361075470115759056517108209738454490564097570999342534219871640828849625412573383550676572525529489188612178880907842542253591279269242727597607223776064018787670389743465915023286923802455195954714157382266388923562220228625863645650807368925324128814984737332676334820659115889933573258167767452583960851132092127180879595101525156486640278752969128983172876890743636778348849994544075774584178602015697849854208186734229926411713376639536819480872553473589039042091592541047236896898180821046075452380399187450858738373659146059138782983063110227665571905633690938204399826981859144899878418922696762265313896673760624874859929610878223816472519828936333855642016801781382015045085941531526173420283260267896413154911836564010335655877195771262278008152303565048392764545842497064759322653580041642180897458488273865921271930743548844158251254548734613341523287314956821964835521736613866512450723970560871940213981169464491014082800164726878400205274292483669509787763044956410176865542117492421127967896508888638037646442782991270363404153666867547308099926498822573694530518150655430743455850301277933471310059312741845196854495255063515082267050517307645163256716771754838320120162727841845567334664846105360610794047443107151570337354806540299719972598263782262052613306615073941495522336193677402090356267697732161834912922630868712080865911555895645354946136885146699361372752493758405089176097172607298607828096607177851012939253464855289993943926898895293295424793991240995216889423263584826295714029679069082700846419054384271493429108452938573149709958824183060924380108391627813064029931492983955688096169547989880885216247643759783611565513240417118820023298187305801788756541459168516597464279734305676541323364917718050817530064111980184609371332534276170659022255861556510395763272576927066025714679866342847608780555968114884139192394790368612702495161856529428660347076055965813051462862882323071158500403444384090107336468016850477328760320826809752220824661765720276826013984163106311726852614873256795694160368100786069411802177627443952140371147035431156091250167785271678715488359196701224425047843327578665179907588522018152538146440826212474553875023790582264767328350232113906588294070809984533607050858069189791952453649725019605200074531370566448408477161388888496272900404932395806876987280397692899358936932677853747703920134260313120589695190266067443144368939809063955198273424692079470944290189300930362252400976553463259445120585065049550618154945403599273217193729657049306720012288677482950731043994282196181467347411193492271752923469969508726861572649025218995855067470360758032422043938454718664446870604887566686608871961852242894426034402733462538853793875878616161387671821177338068561422513839470160330628475955435831335918082753002693324222714789263881135208250735669825232885376211838957121169551387883662594594094462601409232995714195489438677488803512484260745646853203404976435247782335544680045175783274849072126321918292892425684457109252251594769176704979985754458738257185003456351360509517662744538890140951233897084309464994900531495652111116979977591874920215898852136968928600808185797940904033858756933850873110467135022982186662334394216188455138884827372190102464760082991444126857746156352209673107587976443074677286306255377347281185916095308040415122555730547647919083672701058422653900210272230076145305308065279074618149598000740774297259302791845412388167885579321895805388874063461801929416991552564256242025213177064807722055333697967179294068906533559632388966778106540293727908055868105070547647681048830397313036428914437371418891403026947459962716728669318820976507125871002491133097222082896455241473067947000176820222653143101298344214508721794191279047325883897389942188025913374472009430243349295735417579147456656011443385902773006247946561278693205010632933993836247436135476297551953527966486567117011385184283867443189696950974991450048536919962933077156482293839352386596618817503102291140231733990525826608755851437347149762118294520524261761617489994849501638848362102254278398880759097276658865617491915099275588977926938710099452719115461450395924965666093457509670053203612232782538549208860180968106669048525418750850652810794917116837719012193032715166263164504791839120443678780709480613991230707532187788584920397713357369294857821967198859698872577689516278802026668884924858610110721965762512919101947324305096503314438856573821120802009819059298338751935664068823253149144023027493228971394815207290058119080283036884368002352169514324455620127988529577663289975613834730528115703605927698558407729737686532430471788000621268906068506543570852821348501566903481329284590482395323533326663283084032984388385165081862795539450226043317398784272725742643668101207681425875525156845092407213104764958759342367137593154427479066864506177368942057623306669914920133092290151260345909818257045756453099663211191953260154462880231490619172497350988952342529355897456115409621312986630376952776038493034242757700577274537357029984523328976908540002024466950913961952001173521220247769836440455281177369863096889112839217117496724188894586310980692822910914803581331955642502795868496678385535311133314786315328776729246822290512748566426546967064304838835341867780347814085771402104645113144333721688597770478433941112408548799571899943852036787637615473262893157746194905729034559466528279381039639849634236558120871297392195059617685090935939340008675328010481466587668626612821954503227010658151090083086892256654958908397544841664822647180348423408982225537163890363900262463735941793597813078796726662327386354759468785536421899186527981313858562025757083571131908341154097951971595152466123325394169956049412382020523246437661420595590270442283788795674770658796772861008401542187235111439072272026224452676641280519668811903628968154078501014028396490162085605056532124232818077493163120380553801023251416623281548401882955296021994110541654713907617282944029864450025736914408093930375085693253407300506775497027703081047042744845401011970743711373366511048873730104018752971763497975201618108590018574042968128069332990585987874834209139245063517504704320363436735699231693493948087750794725954995716181384297549066328399640432822337269648551120943604097624012021106379452887551301091717470629448853685738013804517905807506881960290407794862741352702434361026752169073832455388951873593624239694032285826774003380980476365049578845624322871963226556204559183712346248542825566979108652916626783227915216946890908270721051025794871103197512499464500450356065278658296835319126153051299286158013558492548190394128112293695771099362551376592385850228278308854181426344423886610988396115194088190480740414771456584009068782864974049545324753953864223558495441960632880683948704767092564336002116414207772798460473504763437047976730059979374738607716350965123482970193834181605714867448523586219443811581828397610778033148850867125564602561958400665472475492733320005871853736847563639629932248094246029101005043150517633841065309745485957177425286515337310094327042409831862490881778618641499567336375547959142606310839498301862784546879495841312628848427109818267334941401497148699139933458014922917587070531724612583599435528305845267310581174329688439094899827308837013612094253881720565927684515676950158395480177219543852974545452741956788564044268845493501956867020639294097025506732713091368273018587056122581118600323655005849920135392189806101265967044994367692196428562969001069384573620544962723441753667844042389393655165614406743886795744332823028289384383680081625458578512405647959745350795099821211049763741377039094809591412954116892979719046761300445530700578793864791255080009386004566415785151139931969964125380699716896418058912817296646899035110649445717235895180592013446029933748369798423618963784592139008786990843784232741040666580420105523224706809529726929020441408300072194776513174390349789149709390484010996731732652398966612341052700123268322474634215810800709299249053691034521722210063673755748837542715243977020861150615714534809543930281876790540416530727033843310550791604059666080636585693786364905033237229185112566809181293898819758709479730845721817480602390579957627924176956676487836179463875033780387435696182314089425124061392855212714361795931170216416053558941588032036523262274818838608007034482454085255874272580796028406525596884124015008293646447714356846214063715810472069953822151725475652552772304489035017631797182471612329959909402754387833124961630104972742284855943526535225506028332481248858094235337380581446183681907679675686019473950392296459765722824018827703023876888843712972984054441240037164330889659640216786477147209827215779419709014196161353778373407628612080647221318987551019588938338580345190056216167922182984602198732261824902911187329634132461879415483540852295659437609845861259158153763926009692892972105575596783666880337775983695407772874772292207119102170675270192912405082913021673951112928334849167490771945975504269552816907421538942313083026525637031325196105117804530118044815320923607029830022833933446467558291353347492507358685508528939427498689046804064827130218137801056364259670872363344793108274282969545647566635694341350159323800515598077838562872209010768201167782901089466511680972315343095866721970104857527276920874060067485810025477684796766612442985470407100930885195304616462184319111560600439042473779519011195977482993687573521856692149680182492269364239497401110077898597093847775008920954119434348926763560928357218004570285685140177459846833672584490890164829246708600261480980919170566127522687727498894146700690160561161067580823925208774697780834688464254122260644560281318193994701959975941823068969781744498992617520109423751900617280255891448791259085880457745973072791961484487573840274475896924201802158848156012390131437517362495504191866088123952692990342894984416371715759187168045046774255927827926299937557606393486988596229687408102648372946139667229124064570904089009105969937387568907309896178327937482344849924037305870294821605960812010047380843755654549407398216671153090537026542020636599107795389250593275635643846600466423414564643431253376400197318303947517346193282442905592221753989790202917857854413719323824883881771450174199677585182151753366152719162868865469170595635376944183689744374760608229561173620741036114806190151941713648351376995363199200506250013212790109193354338926443152347831336651157719505558122092587843732106056090809944170760961142785100540003711644231912384869612910855479265810554234146592060854183856216853649964358704435264753277664452983568904389605968984589034969961418257559810433099356466772919995057091672754986122041290220782157086552307158683340968310666470260909488158445615213943004062279752565116457570058616503802176883208698619366405477255544455912290173572560430694330535763462636885969426213312654522695720452594523983593994849096418078193774389635049109754893268258608889949561200834148068186396338556768052764790087468929270326904661046414739847284155914899018072275768801524612790264193626010110589986984449087317664812912493006753161042373301183144918416218466682382798009573256413777524874403041019001374014932852610618635356908974587830962855075005830061725140630999787639470360226495633072925180213706414267021687646409612440233918588040766195177843697436645278280237024470832670364471440674734895504455366045481109831639965956091476326805929742004243673865856178712568930416609309208394636673290770127617093793524166933028105724430965481600609914185753123706076835227919437735715368144691855411049418557618719031848803606458648301802054492313261528602138782934026227077898524401845803463677864957935803156766595199790102087925490472211543544631554202047726686336231457577995175251924586553178226511272659398794715020935508050822305988762358174160316373779531002388528991894387278285654040049221708580818004993141965843616489986044979615368433642884685830272972163621037683203896015439907622289160914130096323254892995374233043903016202575774080438588217662009007913990990422396588668906877703338154730524802643054937287968007994852334502120453144995107259252045884820443972970600495184703934176985372021780173617736898626439512481064479837442563096417486705172863852315950274493302515126261190966912162878093535309617494778177338277692704741506203568453137624539709782246334168295679948880235477747647974093735027533295050045794943406641390559145346288343175218739015300019146025278180877860634787911294074738714875185710037529157157170056383464416824197044020462345404508308755105744154747300924491885420852666165207751441963716123007262433441319962258156015412665205558160102803191340483001696741257415640942112939053518292643649135736501124934467565403295524794426564845023255488943493261669000239985876115289563239458125792091912153971774188125787546812301268980595339115115028854842969608933113456531141228179856850388542579671539420370213631051252761921588344440099705152287533756138271710243257252350526782002348740390104247626739961137966998926666659223398034997424845512938876761900424412319928214759848395371099134571229844163321969146666281655807848237193379147318433025607484029442427509509900381728453735996720111496594521026652078476246253879987885237707680127499901896752400706713797988981646071533816593745231735927325640753150781013890877116722879817912890023179568086522074549835196555976069201109725259206363175210396038281146924578738595814806079583804504308506967083041694113654790659533475895095129016335029409412780577437953344787172807456140416261786017988153698425823832889171277312606697838261175780123582693753224984339579779831475746626674814268780592809618026064139480440619100314862696521706482530752997919351141054384908720043917008122986275936148329567875613565457448957571383727456445781225410591281698730194957174107036696904824182924052650597814128160991947403686307048568376706213745220806251369486000829910827540614488159585634974233848295695863777667437161373987624175664692618659291837938600593769563442832892078496494009283747284179780399805403539508432660689654218684055712002242401781939740459278193179052733846214367528079549401961483802723860502118297271153003791773042837007683621912303046409438693026980416262555382031224934118677236767313620293683144405682538227345215554877353773579262114676324561587355845972339414697875536669085054361830980897917262006893931256844135900717516891861851666184045598475268166401291525460042593687376749052803785395127907903672246121986577116864280626144551714863576161881029118395893834722522401235206048959995317681502182193944877036889869728266860747562048708173972284813068465959361573284369183696239338299891309116628137262892483130172053362711401189113518990723186733794498675915760241639947056382116826706564783035488939838307364789288439467613873631424821278451946235319342376606003404558804187009889303090098724700573742841933590149055471975497770060951294010199845431914405194634558932565516147855325882965960895464801235020068546861647084391207903505605115530340397268602395480413458359322908714710785120765522180874643684569334086942244198859437564829544508609989955266015819915309527770177093717496020831008870449567597440767153524773472407456021049513275993676558024015704771167358240937291164182741807623761807115100447578290869113935253039003171590512605136902094579428921575479377147916479477468140889718430153730737146485243656059960871765387708405190521032773331169106817671828820118574407503431607202035059015302917491625356512988236612175150678161617515064309295311333355485467936832671224767669112270123476450350622676192773233204985772466057852991098839673219066970137382348617012735062391681853061344460968168067313015383450394486526159817897592660281029526463854372214437673116764007970130076876624566553962842059276787733079471022463958765277743760637130149965953790065168464357094457588312695185212341058636601320547435140435420533344025441624067148798589753548007479610125454105580710826686630577152379909701150691980853755350713104660395904184451777940094434975424289029730530005995280042833150784815916720188583336070428480221947852352728338218771190853802116243766053139314411115483484386577265110514075992531904689197792310789553426126428010863507062543244700476593959526549989836972280501086796349230011132277735631002823582291064226927583524217969000105674011782048855323216959680357996171498697656754466287467637914588040590943100842537929769713834984652782666042935223223094468618335028889211380975550318555929125155352419327382916186819979478180475987029928551113268210842991269560753314871544795015183428963161199957084590121225952332028186316536814229753044230053612888600209698838701826302314732785246149250843457513166722910689918913332732200368028784840343913016871812018324773134071544764698478034715231946643091255280783241903281595242012088812699164555170016056991998179821454132794201034759065283855615885023461620700675220919748375555278237577036695268605862076655380668801300869989482461662436491130854477379453191540139802828523554770476722380209980615419454423561125639036410741054677181435013239295220177228533369986721670388788640073363391158224351545256960565624531201982397194647732927813368761279306968678831986350878228851289443771756772321203749869792878226090998332144874754370875957695323401678879481506925224557172467195710398240462770693459821814874717243044288364586308786168410706213373294634911307431638429352822289959678160069921031119591527774087574508037240650065091217789333818081130014724194552138040219788631864309621568641932793920808387236387544837393988162939918007231442939189252231088468479760820491714091334418436952678099347676237433429619797876312313129018051476793641010803408575542649022210537752083214317896233171753443740966942610437360903124508768124180151365779750503555829754825593683511760246338892627431196853990552067025776998511589389783082793046796430012014345772133641653504938757784734245162989645572921959076228341897772905342935614866860711162665799649455308169498401702608853406721898934585217222875601970067975138077420083488770909738175653610748826846708440437584643462651634229639548288519169435152512524519430056482233738229376916535593492512146008846278685304607861695148408398770668608399855685539638669671778021632452036153398615035422669811574659552169200545319226930857229712238368368259334022082980582188237183947869540184097161695444635178565964005519287118841084510991476884160522160570330812904283721253428630829689042264354593523450517229380270241532241630244971444961925337985398902211360716211833637523836017659614545537374576335655812676502378074603741446004671055580904024460525320667252029563416668617787726626653339967598602561824723628266930478418997427188109758146875216608585814532961110532821560725529279662370273624757876230696940737505105554085727772806177768696359235506647040381698601431674780287590674755860267111723732130086908966267713153353916596127461049613546299924385315773709465094786829888702974459739451991387449781509261899429071472951417427719816359416545862105516238030616352376425558717291852654245352519602309230181329360019209747608943694463283858191593481305019459836975066127653592856833832502507015951984697230557811836929331314145679254388847304934227142612786767705769539861520599550925905825341653851997329669380047308362837856748520753602682296254811190063895526153385576083037839790765587191552803659588462308320129990637501891518438564479708245841163457035725002092590394392281041905021651089116192549665950092696894178366954852921332527598955302316608217424009416941466982866245962462753469261179952902682102563802432365149038478859100348380047691128514277090304578728691941485654032466896470683552087238151146361681105434330922093026415790792379784440678043701566977553767200832263738512234297562692031862243376350784402093998142797846184963365838290404591607412294638668455883040640578598234850220002305496945840775096295292559437390587641999059272136521957108916521702721135003515546727266427459985770329384812100625016596462884636717266717353053263468344683540451833433923461517515950445836733887550378113734284484730910788800811083475090659247970787468796160797028423556789728708621660190860690269748418748533278627722551081465093454304720154390845463228466134404440872770648159504015991718761894572798217752571165130020422673247056480099709929922162493027709355536840596890499127346486225840727153576691287704355401614011676449864573559609415310128459183347430152382738062477394575669855324975135768155504583213165726664044605876994538953639074664520603177788485809867202174855223780922407258755435240507733424971537311491266662420020162898568859747363083459298247885423732712263895977819004422649240256754801806191001837568131032791634460202742323556641993560182138183030083649309573487873431494766503664456952000248658508716203516562730263893057139278311669643273842316692383384578686974978186100599465080368625874893885659240838497133864420047325125661371293337756166454930363769957670874497011261432806895457960604164022556231414083004392315405581411218525276886123090823404491512473192318880461783770223226548337982106517411118252438134313209123829033309402322499479232835094404902180122771981457312058828058209459421087890782853190012291085402751997645564001363910582909339366393422241723720109476501998338057150980234904578655978879053106810115648630405893531650929093008880447280502464750271615020615075094167063376967036778061680077855569174916757280147426659775719705960535799641182662854283231032964387614386735822580176812872003159662312232274793620235569505826744073787499630765051991201987128531500152207937155033078824491874635056431338462109898845737989587457157226143196582194074726505403190330766776655097030503943546812100770604630872401247364559242159392260172799031635359552737451132189781977575998977681252375437368238011168033984304222516790630016243652712315582593123011861279446869182510180342912899366788057485552749950048998987795024165484974962542091677971350159793209150772978401699169137519427735510547285114316095914178939580576523222463131979458400584465769151672450740790607440733033740214563083810004293150109545049738096244847474529477587373214788326328676757573240571906126674236123808737015437470926385686968938372257497761703937381794139581913270225932976518928898679018431129991051598319299009292865789518143246082165455521596026953897771521319224775833279048508239175662877013213618788585294034808246876557403036218875738869303206861242736274463585034440451209176014300061498738943618623858679958305986552090559685282895462834530870319434386793904433215092234447794166495748487974005012405469221529943279199774299719391268217059681428025711930888605224828126269930995861702467433028364429281091470219110584215869831384313230982208759412486363441757978090663939583969054530391045503977777748430489081605264721091720351822152192719446618663376415808921885339262601425972132588140912922912877751429270101705232250877894797919230199568883110464221336831025824605282914508443472056636460381756892316730886724764763428024338262787794423862750502377860321255505388999567941422684184055726960984247072245469622550865152201356115851469595703812611111263799265686386884877385228632773301500479339564049631602344845041027094792535331212786397983606490362664163606341173299874456701596739681824914607242999351051254457970294482919776039458271675447476253416058312539905901862336874812070812995592721113472073308336978425814179736696574143629201645059650440272986104564124063381781357910495432533181170207214615701308045507719029252580874645592036802412469354489430552075021196312858737425095235824502041686819596626652276878078052990573240277017480447767063578922648222047176191983070594268379478004672383506490585290551236749237132869273363541417448908312044337682370468387538774059667308623979892872986319725609949908030673531283399394036014475715095490132388536648546992853346964939519282402675664145456858990145256546542317028169323473137611973559227314469671002498828626865314291766636854142248968555116066835649137121648775821755977806274245246846986199738131914357333757961698635080837156897187995447149122714111593213214324979095520957625778614729386597914306272470995343570370468565495625942392583096056602452507551437528097513121044938530139718092266608286652840617150083167606025914006678043355979372385164553107443342768775684926532423806501029146715456066756278109896727053754407300588734719904791940661564678854000850464426354182636359088678078476207473044623546599231923926322836770358394177791635209297007656963030241860525265821512702349010101066442078529502640569220336727395030687120708438321980412899710667661952467319965861976775380059139391975709514661881127095260229326327474057392216876653713112545395489934180347208704481696581865323918483366844696545787078091994662971317407287881226239026689167248218592501637032018382796232201407366516041899193389157003644970390832720086490657648422972677740740039404371582960088818512364793808512733736911518145181053616740800894302301970019749770692924907238907145721067344642235121310183117858695961236762669882553223498968485120984158907427182371223768728230850007820876071332212086330430719087193322916256064823491787506801479902258512371463808815501084993104129623713854376851723337116576109539471912810747374573389056654483716268250369664546081385005379512023286441976561321413954449507355680668016212755893804397265511230641629113660690015349217664168886045237939898649575172480390403032805470685686546335446058589012004585836462947567995543387177082608597506959490799924786373175687865664016165671505592245825365351608698424158418757819743214467001672997864803471681873890482821932896250277653666760716192604692180180983849924129404789737492216097209462749094708086372452495104699441040827891696961144031870979782448093726707595929739964726303054259847132329358464232949401528360596560671638992300711269426412848368354587397420776932386515150720779490518589334704203368948130155001008505825987994998912932549403182418447537499313917923528176372212565179218913533656421132388385702630145193487664744476624155092895445417271902765674125926657412209943934761471269549374610311912912152256606850141130436650929336288125725816823703026918524385919547400855317158705863846095883390190887452480362597361964320791711374862925262994922662567640660890962421801102317457739489750646957275943675390397380810757513748175226723570356551147374800167049764216457587571649036205945979866616796792568857670147441602358314521700541327018347231033795733009516916036424520917526892044991651522788223605367102853013955691416701111571268578153128021221291789086582401286927983192331372802220616159790973451052484716604466086422593982129616558943514667484345774466208983605823008476215922368910076963242353662772404573811279545017988857388163286962879973714322567154910392531267192091020800454466179814251493200100216937517647343589657914083189538014004890568532099323794732268331576345265052722556886325534394927762568017980100444195361581957170037148125572276387577816797024221445854098063165476952411163414671906639120696542211602851136298294099285718919301887531118874885212234880773516905023512010987394532475616702064897735139418649211718079138501886627278042940460752267305033735423204915180851878420606139759090223416206754546294501353274757066621996606579641923257476088255098799624604869754414124312961621052951731943491826898769267261294536694381943057494957875461441865783064446438431600588111073880579041131053780703733987425574743932083724167800861049610672188028949799028514960192361447348420038397312737856996253499142660020447853479573560644679414569232229538265752263498184794897288124330002806067673257564709788363445902429428991957002442496962249331848474738107801833313323284335106621398847784388010435874656878167504920918106843107427789311875669183233991201438225353832132102288388692295676128528201254196618000356147320289076489963652442293980281752372775639613284450100452185100944351647628750897185609595964571690917839693741144575020555914566337097049792495561089148207172121879457801078830999198846504937387309142807139925241086121395892437641728640280345178669958579619246331702620556434135047403997215609689119690012276962419252180139955530249436292233124202761693364397429726941957485478376823937660441393344933831784527368011760049212894307152285380370143904020856580420336910100993408657639918802026932630792251860807709083608143266313779426693223868428111453548593942289025979038079850725993547701428339338435898351094274023145757515774373538124054758645756719037960129362016360594523464188910860777867445098798612698063468486064541269187404245785963279796680420689855239912224724723943279046320463352832850946876077806690330978203403890921713106576491643582025259563302759001044352686222949270386456265912984993246736372312302156765871730450174355096180289117880776035464929515662310117059646961774785370598237735741003140464485285128375099337864079745719013346395767021715259590866987977416705908801262812452081896395632569042442085831587539894840899145140086853561133458008655066801954005425094996999154370701293204913581925396997213821622683925223157229169804276583910412275925681806605927303576344047098026485792113072816190736186813532086943654922801244899213242864740516843977038017587595315076924660240056338215655570315576071517846540578497914317911940317854866952488501923132852259213746972015464053234622816165863757219455449739550266014375114520625522953442554372733608033280622298843411916244533182318625524367875946576015881008670209554389815111614913096093522543916705128180795485964787138683206537031659761432682097575573811191914945159417989447756723435976606930333960155339089749305683156868392513815553036920686890723416771289117665365981479539186566573990741469029197228720354312960324423311822844663981586261096808205366148802938709758876004245555813915126218993125492120594726478948452047068635149683781443829670469183558131241366050589073607808742115568586632214371693578633084414295084605794558001705327312933837972569402431724981927580895345950213125164390620678031227817157133867344152127691811900602805443630607494400556756580023556559267137998176306771852790800510988283057046617348618717222318339462491813951814208046436751279941486198282213941660254486768683887254602565263763941392585512636768366283554343037161757452023574929487925855954336310203533613744975656457624251238502397847016378123456649006979918022134197354897049752071137307340281111773783628313202011874300184007466276478408922909749503393584633908143100531332567088208246541185898771362298843035849498306103379579652666805500961645809231410867194720209593274272744998487048541384387607700900983770250197803175163994099273141000343533247416983071343582147059701134534721365868458758767103814759097597526476604232819997184469159923232147237638177202093235233281676634498966799842398476834380975132103881406366534725995713960425471045270940747691643348983468040667362837383504210921618695225105078815700101178610597377229418476633650570703023454941638379149469145579071423261052287599926836212939702754374705367408658024068910291825892790047269439932715719980166726811155949553588020091241104767858860400042836161162740357933669710994633027580273314128914611414834801641039101921704326467551914836005872785615756700101683480418907201555903230908511386624387426149542780953419593454515245859101069484687640399457485446572726120609314893296874296969537609773815012010027328112257805500433873239650200583509348538181976272220794984059470958506753045351705026783603549768740935001277456748149258549245118715535556562923420845118635322224012015526047823783929396872663326597579234765281923591221433366140482160720516471834232559085481647902465721664644822953036284793155898757762613570267252888166480211857627553034305107553962879482869137554249733167523715080079008050689488974538985640570544518392144847697462817593521021529264149346152690427616824256319126197899869944036210111937054586328221253690343318794055838594429440309311875893932302087105563324484322135171979182477402336582612885642196404772275483845885605152680786226761392495394180565571251883762904999394531008332522316026624025200294775508414932535800174295244338547510479802706923382294502489574495655367942015592974377283926406542844151855939882455609626705630900763083410576238377129508579630462207170690062765566733149299903175350448533749498494224881401494193892611273539044531379534173558493505944916259676392359956676439191072969038505289190483704307311737561702201191273842632294493272066256710519609233177369427136439969465685584145208173909049573083962873304898247420246484002414020768254945275404369461214467094874379409424498200773783121090365307894766864526664075725384807730042101435200214271788459799488339748219247023059889565340299030369209913693057149950475963326973505070774634955512229108625141975249375833692625015642755583739856190319550661917596759163903783407253081694099837133958174273457654919791162121465924729657674820388602370777825683789904412844290355485426750029690389052015277944055571467247006513983303860926532338067854541945229767306802498042307515290334627421663333814452701258935503184646546565076116801529408936995566221165657609058810213579492718220051686921386418353141225976524552908860335304067998452950869183923628662032498327631429645949672589541796018343372471831896223007719088922588632759229869703522806739483299809127225858924201214277594853342929030656472280286235542974297829390446417279184220318746760967966888669119795854832373574908816620454950613359381603950604344078311083784465671815606245686834429182898878496597481692372246422657420137564065449095014334160418706751231627532906589387749861923821412777086784974233366585310092202810854748488362120780255486751137444231107485960735221592936702935338019699141627612425225346208814374352933022060288668913534583687994455672541942802995253179483922629141041329014577545205106254756488032746505321868995438143906057867350755103702672040789336846790076549150043710799763527957195202128392299125240820407105037485023936019368679069824132356573938318966376583423340930804456414979667456443911956714796883560703999662486269668049025801547389065098107434003965570815240429541462403599241499459377213370252949181843445357782116562860828591695937073104268468073216107431826271831984183672091557739629565698616278627978234515632285256808682849222055633234135690339214477526172037500615016322065561754250809895742146840019405394024971232595136508426036384897318934351697893923462303504502840986839048848071390764779557529295200408371947693176264038811532163334973981518252123502828235109672377490287523251504094868307102490938381360133714260370495811593159638717830074279987080165375991292567265860244820963245943959327041095723613240374664084561627666770070757588331873298095248015490534602256858760484089444615077415814101918063334631238964235729174701650511851524402745550741132524177628196249974346628113673908863780035355506545458547964776142237807206841924298323973444614056463735641078626638620029857549799583584979249067582801358874871777092783467713560491777796849311239075349734688541551789678055527631372355427952615413744104116833150234376915546323481157238590039853370955787988697970253109620475965110790352754752374374785248002266001648474467560712097900343191036941565108781545859448976264174062468821454526407252489430453664627024303983475384427137662171799291046625018020902906325487722897547457932185814770013699739921118742522651322893494164432471384788131041413387374951960199793931472449387563887929538290808930399623759260140117371234124640651359221797115378997018139043458703644737807470981207778856525734767980600935887248840803220478325451201330456572092057220403680069429705287258215194205568160970760428048509504076361925912248757382240943972363716804172414831156945139901625445839259281436241626833457085485709267289796809930689812849800729455344373945446433873706130628140857026499746467004014852209208862531174210855991280775913142966508178748391318329797809134054013985734870405663686040736925666114378834962835957224631194327881672432009906076828253521849516643859331188543878177751932918184156017294483088944236426167347260307079450859745532647632481011820994527106277823646192761601349951690129572980875808016702466562454080477576820234931952798284050416034369764935466414631938145719181977877144213929400389275360321662307301478105934860443957011773020683245285796046615651400060681069495522810306869483840065738401049172115907009250706425143716152292518973481425800277085065581792788682576697123025067590939416744072072324770836222186521771292633994915588772474445320448309325094872827117536443987314186311569105333498871646188857997190565090851848502127953485378441033451946542678423079839331201699521467424442095648114838634499862284260114310315727843766895450679202190252705981474312744485598806816788861212692107533710197356377996941758652625830218181164435265387829474149365431532440662346290377950090107830959482610057664843079924911807003227944286802410801595012358864229243642129553784866622098021621271958035555340303023324254128874832633947544431931749605751059316153753611603709833720081001571424884192206002481163924579345261299943004965787541614700915896242270512047710568123319174252696472536115127062140130080983576362737937632540933063113406200341804180611897406062334614581063662474621589184867049908466421684306806297847363754716198426827058792037748076967149523434540932700786209357189962518570339416947599925427039577886341394951597793578341363836348273605366675396640652192221627632175013926613328376068710968085933454428817405593059902889958381093662570873401632402212019176088520179496255714167322852219748989606863081817212731391618003141057445729611781596599606024662899108320164436152466496181482245568090426264452313194942747803016132832008255248553203738100059249098127527570396007650550996051604440868697154897880565322825614922113193585265960291420361764601670999162277374615820596080137018602531384225664009558427312077364293282535042573836931926088458018301824926551235454035208496914533588061992435834424962655359233407560216114362828713321658824451191140167313964387814217852347340996804393753516172466981530910574446533683644441220243780223008044135473914580396195598133361456720202162798492886045442354992507379824318517200918081989247641428498017900211715875040516279386002553164356145388886219578010604013857762475127648305525558371254146628390160492057448479228873442422762252844662151497406529106479175118247121281548592291181922784501186037117247215804615163860994523328495915207451535439960325304928155869496683105083368564433266094810396532243045892390370215165341340884683954171433625051368749723327687104227371949034387156554979157542514923510836319302836954849672386472511208582216413568469067623143492063871762687526674547626761655052638039591481647972411291907956106659919171129536853743219034950414318661049054274435333846604562546277028142053814988037291759804936696145301692540632371618867100324672146436798300630938172835226493500684830480561859128991825670159935758510069062999743635879018133671095887132891357214531434856695757750630845756955365077310487731370061955046155099929296977483371019033122165811811880235603678742493229913726194723739384760496262351580204025592439351327759054482619028574583618439609052415347378588032680075642163097856878714126261404853746475212602959188033131692409900457843531205911952555518820848109221320610180081288456517523376056030139012431094996496416376375700011872043993356057587226749003795463190530156308694490078415877083937540501627412974729362223967056852815602926416249436325548610484072876432912974363113732667170596280612514491334612318374328838919842557601385863530615715476063101161199784091030594659531380510961430574951494853387623625082089744824894795414999456189398521744144527543047322042828476816846987637842745617765967746305632702526511326293360133706985239979710237666692487554867764308725496254276742404874278890524948700846024690012763857984690016598903654262423872267968633586720311092179807004719585023938651965466306433780667539933676476004167113105476025991791040223670217570087250187476683862218428006548550141707296464981405254766731586086339993459037942400091631625239763400150314973977461244231798517046508728110200279176590019593700645031526659229026164135455595786551488366820522477235772780899822943840810113256596185322170380424355886199189980113236155217785455871709828210130561912901794230773024274376422111051428126308014235172174061182487070101699535588059282122761821174166395314805478683709181001189421531762011939951135182608865077604768460930119140943379029581122669714573324316912521543736773669022626132901365859951593956980139720948242386359968416760215436405367887148009391974826858756665312127983591314527075659104694146089764963284634245496627633569766134716466150893937445258327841898650121465153223309466641711223532348968136148763955374227538511673992470780038129764992702397314529107994499950769017112668255491924095420887990322645999533965429878670630820760537844647199447070075205755116154735252809329528399631612882558948811688436164289036083791996456596865615566882551381086455953727812647198934661183697762744076924335844473442687880428752078801399468686430930304519408467913212257714106709938250145424658574555681483883339716939120841133317176878970881272924546369095497973133026767362600931620237423899801313869882937694216342587429341671994894352956748834075259181010888902990247562720170493714487328239932421521815027620106824610411745448809711387762476058091964450944177594660387799254989818698434574675509106303100709917539091916628892113087725502703401690053993889965008015831576295260560283412903509780962691900430717802713511188753092165332092765714407722818682916463419122945862785896533236277391673188512990329206292292650857393807658762861900585268838423457987096781755765840317638381297861098576151895495369376177348294414467011571479599318224188435996343957188528476090248029833808076692902413705800000696422231506140505773390514217705661214321826870868612852740752002477886304217537621682212710262100829717757290192803635950710345305494138356361119990625530453397782014389066934769631436933154742382647672650215743841043586023010279763175033461739113233965395288892775419093309414065287585167041853314307653682970078022711228706888094926543573830029236061311390240168548976473964602699505690288699005183235849606190648664198799555716637019241632392083057527107377517610846444475318156345781322765587933115275710186133288363158221103153312144249747251289108109101190345026596325427354798449581848333848688554219165294130553275347092951951112762132297545713927775808044121923381836141780825490110190075369901737031709035228354596490546066746182743374217315093204596358421894193839873064084029251987895055714045087333440682698015706748194607198522288334940418614134567329902550750426902727224403921175371524953200405886261814738837632462643554205062789033124919486729415670442184305762268278780720145271014179308986564573287410267285575172242773275109657276540399228723764176825056310559507414864886898156647192906533667321800211105936410513257282638275452073511279184393820179624287270032718368977400876333187814453643193030833920330531863013671035772581363804396309523671680342439798228315477513431328431103090109047216958206842973714012237485372871371335888430015168860421021343324568574771538604398536418636623729322059081243564176109526041496381698791397833956562162977843418436973386240363294291154848328581671743733829243121595243160952999918145380859173802012176695934134854418646082433088004475580957110806461486458148892595587056185053972270689833434068373783202258027643434871550374541126774777126205239298175687318118943619514860539069687387587495535260057118357872568604094506125792944091752234889235848875319230126916508320181100591489486169476906932421258421623336406222371062035638470330995780823439820418030083095465283681478202677529626890676591768933912991000891656929585585871327960034089914112641632411017350293568602120947975533937822474052754593298868885694882173232611973609133587146474695459627648780590446070574627689498531574192697698777860250114646875839767686379228940216289571827932870742049704734187697938159928603608832726481773430315741066412433323865702912289485734668083573072761238240737670802883414211182935970192504158806996054283294719114912245381349142505113224238771825194336256766234407330086390007346788322605663394764209651622791229843989429467470090536488489791750647531826438570245321304386729423033113805351284575015380940189202911243670674019354682722675655927784485754302907855314244226346500885598967335826227854978069117644929964537271231628518430015659285398668091200534996519712893595871513705631602539707596423249902875785169829605670666135967859867143676080209957910617460993303754265293598170562889307486087035842044873237406961664088002367863975158986853271480057695780078164447297039063387148443824898614661057454511156824223723527182137325635255958267237324699931696203431017983429130484510871900064648672686884859271445979076826404331331900279035546500110878190275529384493189326031797054641068541649127621398891290436981618951763821252550441576506414423316641517254821515745024498013150711592048821964260475920380798795645459709684850813382207077420021591887480398088991911081273315240618131126739355838791986790234552651642009427416042844670392961260745567777299901337869683839917969255061228085053194309690890251287792370442019388314670609178742606914760340254674388109957674508306489588877028641073987188556515642990964786711769803992044325143499696977279646558783178192717764066827837985820990919131857627255067263592479689800088328512081048687699957809795740012329612870081512132396360501905455457041010005328960606001164354325602365322318156150395141554302081509184769107014806672478452599752567400707075796680174256620181177655240288832786647956035713126268470055102883037416202135068918175559243419150134720314009047753428814606676868857094963266046409550938574387568103602503345585485724354992826657010321909470164323739777012250657917405707879588140999203369672740377913426177692120917497573461439801944532554249767246173522623518761337068387412152991403984526737920295400472722918044296494153027094677221106718098306972082817251698644545565463686877990253301141332578912759934434916452786682321077279020604686168551810953680114556343431228537386577078219678726765110010382677950036902119736515800748875642074929960339366956183063981813846082431046973914955147962697978561823958806275444085389178622582534988186677523525494695964987831482595393559588636182305093216580540878146717127187929882962003466684838061381116343530395295483683418039715373098387626334061456379944171334069868712477301472479018725484816719808872302678777280268892378766045742290773569941352007778551261888652084288067507283809336627672882365469634290864097316544359998138443068769582634575728219914008200959636180200398389469199600700914451963082831580656935174928621314994256915818161397382265164871603156372651823678591990480632261313651795032818606806590224248139780062646429399831817007210038272120236191973907006530812387245833249869912569489176663808653667212708485337512791458077061359417273252404477402111046458362074767488047749933287705794386155605455602565904648204327766935689662763146139653291059541106010339297335557975125168090092889185494905440390194325623690317492526189644357533369106012807977695199438402498587828285787040742082112653789672394229224229725234216661888183887483653533267718991404900311180765359844616764883325042519743313332740581653423881498475468654291947935096250766333289847225299983193297166786082890142545348401533341855785308198906285089476919509918193118110516032638195387112090505733325114574594695001036420826244820951565742594633743016629856680268006277718591709741418841721366244801377566164863216886373742677384707615561982130883827242488804721764158161211927773216829658625306065348180211076754647901950333118362207359854734671857757822183819567288673904371206976740530900386792131970002348277595334810195910092384015673550992668478768104486485294383922124245629604107106451229860575610023178801061573141434330559800433277740483943871770077147544059840915383319197524490971698570726098198072836877290186745953265841220726460413661726921623598701222104301367043861203413785749497360132420910140794447875042558185708181326475329835948045922175019089768584536142616380199330843891522546348508572109347156831081214452390761723290432701290302896123530979772567750114006047584088532138526414359361716865734600496346729490213497996478175603921758540546830231114767541070544958201814458758693784510852514732480776115323551350851060384312112994677292758325820796474122125853852263588130881827723065073792171407069047855408038785916514450689173917772219635208848897140578885613472353008930733539834834036211844450717236050771375340742487283882250217403195754914346747561900774845473820608330078685464611487694330710635314069223872656396471455509904281317298220907450948530252312283400564282371832296654909289921204322985774214800066901894729685562910951428206786745328831265710724035949653486562896002926012610487007489036979539795775734405805607707117865656835709093619768486422263371465785961033067560039485204125778909075042794877328266010756613282715134456339697924637032191979849766856183515530600107925721701009018959730503781783363470328852073768931725426401262867170874500692790906197773089707287331678544502968878621386063885757695718256768041009830954137229674652142806464676819702122500164342754719774077098172953805988015219046596867065480650981867026058522143103234314974995611508049692457852851086536516157530936398156360851413155481156816468360585630450205736210852221838404002531681989871709103575404988437441937958252615852090705559595253397487339637929079223713090594552444496695238737099121719957376339135997329538389470814972219918266708185398733261304641830688252381629836019027337890936952295183776810720012449200832400367970659485837848188066073166887496398910931844773354632819670400760454213619644451949661577187230596608463653188600622368148740873607729211362683887933755246367376895042642215373382181147492355056243393360206515916716204601588385192443402142361334122024555859819430134353820126862523009327413073093049670902376743508998284919749872877806550101912202558694196864705932083883272452739421021942286528323554493847209650205285305151829891467459426459346926001052023868875632245855689517092127321927094892304807270985632486286803120500046705270750517383937935846260844778917293894746830388550856019300696813712764892757684639757810810777296467834920219027536877097027680490828662123314285380609604945712509357280687232809448627810377559521135302914415122507146865563270290043336683571478351827314345040261461602685134706314933678362313315654659337375208942726483795708348385773305741944695508273353371320283816150053892826540058960783793947189232464124303937620034444939596879856997278691518198984123085334136660223650385393562051727877434119742794873011907034793228822532474092401889489363859223665564214226266766842721212898248702689323888082658528695680925798098293679337746298031090304026890175544696643068457371244945538030730267205604056389319882392623730023047921769806258906768228854643368014157539419850603347999780738643192458062788738628261635946097488499077363865539713383619182967673909469130635393142484701218667696957993206906300759277429860021170658402828454725085817357783927733910203903081874883434661096695317684375920537752164601877995555212426182761083501107333092794903284950461264966618166734204562715817469115351870821996812924501532483559749803235126944363938063575356921943163476943980507684107248555041046725432879033669626287795142249763096522019266648097041799395766856838773475314707669979351796984055865603554316445231484415168278471304854267988086897189544030484166462852264366265915341692216375482445611661363859032407350897800172294423461145931395684147472599433527332940762354732497896954919228252827464110269634086909004142353698237734150156352450177161754972474461392184887050946375872730279663917871896493042374524441516051694715236749990841796604153402853016921128610264542195236186525921881640365654716201207906626996536580051358698523929015085106452516797813105131042412503856208529659393909134388328777297899233991375094723707745409438441529054966773469729267632675079046440196291157346805100855782694287608814857213511322131120992611409769063763432573785759174555164444028256984232779234779705131097811408051364002744263603873817444336872889326763664428599177650047058804569825333103925743151849878161642462379859725805575916040599866898250415105961734422649686018854592536077326374800930555065001702141316840216383250712701015359690366953432505051556964066794676266223960086219325256052765626276753583398528268984602951367212658764647668154162465644706455956765574688668484783062765395412422715642256493480522392321194667752496542604979042224747610004256767819810227305495735460979500688677481553650034385202559757891132373370069254941417449199377761958416991357028862322771306895222746347757729849200265149965192368711311270368190101594789751147947575649786483698291189481510696539896188878610662883523485605375988538982135199039268518054735676718979330217263725240552695404655105449340907947129375703126339782827960748788157956091265938070597542974937026084075162778588559836214882959298314261989489740143589419174525000192969288486280210650787335859586850748100379740859505052373214382573316968226756632976462624666060362548150942541124085335238908389164618468552064754178522829992755243226980174337340645788517506741589545099134564378013433173757428134595233896089272781266218516733483698830736439848940782156406016967086122486004591989846769855280306871076015884812285500296612667589524325343380930880827045677906431900457959098494241035328246929893895757724524879721591679034412715423887644625577139232589519710691056942404700899321284110348864946814285754845084220069177585101679489994187156872071622107610610000748759139401767012692684021487527882259231051522338449228288378112037203772109727704183045754531038906406987642699663346629486676522206297390158737513024562634272186105911198383724512061439929139819230743800498758661726907964671014318203693986749900282110044361463284495759605491069488599943242733840625646872174835073800479434864869210910851857905955227510384503547271852865532840617666788658197755629717164394674024993368483042215122081627702424347668979116357459329466122763586228043303505116742377316080989251203535581926305436699160705573191865932438711382082387193423887798932051660317129295289240566213680896445804267955390185065013111747377455771837856240287943944122374154209116690278976664838520575805915106528471196938569124134018425775133997138955830332825985089588790030344488337088023238045100276129535530392763741767266687015969326366630029072191593305973961338715893703885506423055361742612937200338305020950163592249273550645636692475500281276829178437953904133164704844877372471332788839115096357666935419477477830207554458896795569197092224433754760197258943262062260415537934253128665844226303218492946366536918474512975642562121919658384767878901225689102612368496513562286861200347409626223287046663380094224365989296376407254070750914386649250437665985869171686885700837366829167439018242314570397033642450878691439350988905134001107970900702661382444531345307413152187236207329230801026951988458070044148188588148509225724192888753501646709794395331994992278509034053738937199038575535071078465925307995613354538070418019790503498040336193366482869523343847141539891774399061781781110768368950958061421084452772217210473415637115436016889844792587532416891402230196980405219060604317317100986157275693368752930023463131945686524426592814406362004463739818424187092637634545392330498099638593049747432383819372120954257711273644524200270996619993097047918138548008354240364751979733332809647680575084071894058940727441747307858845930916058468848764167756158376586487620535510125580118563627995874071294273197362539782405398517225544009524127644182310469363023342341226326443069066695941438147370960398940277926237942975936405005779159139436962039633690524955429148039031001641840690662407962575706450589008047046368419855062891644166573452233503190452988953156584774390203647316433591134119019778853108300351998801550574032642077037106668355255869386058155209386343807965446310197482029127823301170559245830939897522635722389476208311013118252681880746671187275648801146197050916077341985295977289075180478396070514970112593328007204795176585872603986847833362215392125443901675467336232936999978038763164867704299856264775261127859792473484135984204823915801349520439473220240727725244305794121657736948344106006354273258987661386940543175431428404737498516084893861187123997878536726270412464467687128911561713040511708083083942797766882934541182383163916037543219161439408314505666969969730191243900612362035695215812562413890819932514616978626320651447673368673336347062597832379249569743021325865341405404908161898547036734520710182488011779621234323710928986218932971087376386725895579351771939251354636106031726539891129961071358499830398957788346440375306201092002293305648381440041992829208073398592569232181948140606435638886778466853529567066079546288346360181502038342677535022628332646314920728330403923608755708250306456952429708533411774606551244046967296450295465098335759378779718080412765568438186723773509322075004166399536074560390913192071727393955278700296410727514458496328382583168495135514343664450452096685529095564885550606249867076414045204804910709430764867025426186886466216771578092375530804083053249836539040716407799204529593509252914972545508374329012901494239180004835963868795985967899260258166515535137642698505677796344480614573966156895112053056143346209060899059782859678580730260986599204895588247295175680605537393722714609231064904979884198207073384255049538285260363537065420158611297370896893634523116084981280434722245860191209715657403846694645939426820219634976713375745093011288229334573671030677110096268636425524811326984638684403459599012066608196779531609875246575851589819505470575403080005901959312000212723049612401569617764917106961936340923013545098217180782546409038856732600216588668232409802957914503245405485754438679399751209609499615676356099630781245797686639707836022102308316752627675959311430781507881504925660432350938649126228179292262333438465152374563256664840160772915265244792181175617365703735299292253323516389333836614106601051078084160960447768355765114438433996156501300332925403651083620518580658521731083457482112527998533413133836881856714833938255870604171114528745431438189403132653792067557811891062461168498089798163111877464051640658924687632885230399935273525606840444932260243722106046412578891755557109662425303136100818469833650288753997874901377125995154492235646397934862197626520323360788838600931735033528987862423079514686045138013190540888137980092766671895134687356769777739460771302253822835130186573652757623606227080595895178836699994182634724596112540345982130231655669721529695099893366816994920912316758798685386213843791279359827599592998922856681871868680428066486285020604975516382567038624231113018518037870756231775762322051051353506125461149897678612402259128459434125635482058175560808648056365031466282487046802149545861347094174829576550260025006560554052414241823276583905902028542606266654703074047115033410839796462725098463922602277392719714744107664767244459464482383019256374442316261972726812071215593677689322552506924838063868002094436958615290376573981950498677026363551219068840532900263607360224125489899622915773824710080277551822050104318077013288615668021009871669204314000301465545818468140771483897083111669397118773946259859613711816948478782204809158965919502296491662747849811079142025499451839796822893771636396206955161150571302807481242925187769184122797606184747031601442878938841745884827634651847766502534946236974596596035423405817320675748216298629306107170594495565652992425995858299316787539556601709428982774290569339132345475501444609573340344964658034648489391707398299812119364091103142149220278269086766196946723933134118439297143909166769812200444019028873591679417831724244765024429788084225676398938136376568168758408898782113463845110867590436116089148220967402823022882852151282384229980237985199445511534051488955272477234462788423722190819195939591160591016243039687894778510152661232111000146020928792699943641935026941539602358436528580911262139642657486247676466575669223891201640712616301727566353406303433204483457183726668532209085125747819757121391218027232477048151180991274844218471436564403421513786307646461657584126081605796847625485602023304615888806781114558621592474295051261030566433118488237410057041466007425839190021883525140719453788578779108440866945398108168408867292177628329139221741916232114593440800260051053979425029587990454567393472227000014724455719343161949715102141665292173631845156108676105271002703164412646065395611162988950861716802139257186143315629043299651165017298912140480498052706936253388173904087017478269041251329862511631631802699417693665803910015009671268793308253167760156225508020033190523836129921429677182081622230941484488880150488032459220053547880844141328482602731839986598675912086501346768324880790472980646048698256632295068411319030442657049213678294005546031374667667260740390881766345212649069292152876220734304326751624525708314387939707688386772985214654441810735023735794084134498164895589602746967080977258691083506217388264135331159465882612384421281472419163108281200651047227404036281331654069451884954213943055859227689833703704544695608219837650480298473453265243061392795169629342926015842436648564705180112057578538504822105074710633676159867162128432983332578480652558823302170574578324396673511568770970751329586711651202015348899935743445375514634518497585385295829807733459555362152918385227578326992810516586057140327770775473477670354989250353493335357482561739639880118496587444053306907216239768972401763936226551127829246082822320711055712212504590467045272805394609519880891817928472467631722998679190319898803107681862916929769079809885360948128010432049864619014127875823830278250833226266777204613455572134453520804269847076600669169188862367713206657867077976610613821057751428673655695378850435054624119755180353602105367773285675517212261881275829368971557463060410778067461294985109880559970574390286109875118220354228250170447986402556010809886465596844971767085050309882723580025786166757307910717738766695764284568269035762311427198330854803881143014729961643808663354054264928517284454163824454565192790445876442747979080623228205694725085207317702934458826161371679173472723135288182492227431507149935695220602648359234139934595508736675473723318563110007481446927006974482993464398443674100656232575790920504392432728988940738221020214185374045383518990087915017948983987517069131677249232549065521726506113947924659928029657420164784372648696998381195870120943590810730393581738820358546704032111796861346996776934830427693731417195761370330459756419416165586239112761846170820839477679339539497619068076023833442980589678826617722994821671352958053653599183103498294250051948883899539596099813334958098687215115840489384396239598485546205720400410941326327427299482997106368618105525313415134268828814045760001200045586162594877932419804400962807709498017077788989269237467684533094394800348183209918847353987778438630947900497183468657188930732632904179909497666732181181187115432573447521283314213597930108145605607599480746532429041502324852828275058874871449546778205993882550416112778364546255637923998252423026748446394972371708405303119345086122847804490790740971348813280861184843982692194155057352607034685445647254723119134261870972008534160615874512146236676612157204379983007222955738799536559881959892388135060220041260046568448758048151098082698393863596572545705500111258074808045098127993084091115872088307340919181113637683223579114431632968480508451041366611431500991807837175239524080227942759802683889215964789249570617964814395805884531443536265078029727833769247589541640576535586389180770955537599053892518199752523774053120354369144281645920050176616154097690316392796699543166400808191811135412203269013592530121446787881796380143260435583088395586334950652713970091931846114391600143214563781290835940747577126511461144114214601295821851247280297174555227025247036693723589854241340019439197158609942539745897513391368330755338364055388211535951800717363475490714881335832012176921291740329904185597756945932941558759416964153940413417069667675111281006989616291258868182880156351046825421819167570144643321441379189026563496899523443474461547110671157164463204087734536736594189958571600653558127600219375855960836279413860851788643173581427255283506837783626625705110529524970569205843816797164410391874338400909331199666522300538046669980708820543600508253143594936541545565763036448125888819923062845303591565431294472247534394126636364670778974327128426729076798025322928978561875176893109825526132576569041226368878077206421500708697722595244833105507007687868502283052630376106161838552373767064554289430887160137867059943455292769848365045064199363064324256466351937621243483697704347056273130610481436686998546873531937702588745078735389414602247857279985820166862896088288768334989389431577736010042086418775114463140642729500936042513940613848438329981144615268615590747085692664913387178176466070601761257422497364310516479834021845634151901992828805313653202661520856132087793516798318238098768747363101366510981659818774807778739179957441901226042779301813994839715241145283445488231244007320583817517773030163835781023684332280110221602356737064295270331835675876748219118899147589124506469394856254072399483353139318272760837349280201109974489772783222596647929117988268931403823591664304442606497834427336002377057683802351021528994197908153271388347552046513009116526996678247806451621793512850901835818422139363122105580085232673917832433902458159971683743214990084906235569369544777815148933349348409503347199505841225606802090629634829319660794726196152886546132116092613168796515679672348778936769170328966507646266067725055210519313503756554690034936587312756361171707394372139131982525882844448659858680070203675251640793348485959567110557224840507587277242273411228714396298584115767762058316057428346140400031756417737527932113036303315509147356867967066207838497345164076782793961761414302250020368229109324567143488078916252156529141773800013019005818628742950861550801975106520361314200630756291358464377822865388163952501770967806576087474718630272964718011753858200261470023808776564399008302328712092923193253206483840776524412129106271390618944247911826917052829829615362954760621780640028427440882770334358095164070301858181026378236585792001010078280297515758715133617700360983682889713279209562130964641530436292617622707335444969423494737048931145140391993584551664792441489144432305540179079596964058220115638179441787588863538545999115992522756373009018931463287776989246650754552288826342137752828538841127944993575857233927410079015960271433008936272082505341400730292383022446388374757139732605483574116230727025598474743706689925034657969232955384896620673989648178970756204993208572739273663995537051825091623180971513703393921682495336209072577561450134471304244026648362926416158580464289262030509680949707674934027114440066641033041694610095079866893022304212995803218639730729864410260582780928511151526355291679022494678838782322248626131071425457597358184363283472208641763958226721208836670884390994209223414844325723792882751300425864084059882779772342321044305903659500231761965383976527093745382661240718525247246288109357302059440510451506760795722835335301583775785657843034104045301117126564196719447101596983147635031085767637162437118796013925460968217348941671654232215476688504370872440284041656718072473924441811482488969251947406880953790227936517093508995219564418739114815247616645208786057765656143917480988329900109541365095952810025425825194189191169646965191142692600875772743849597929325885568391598474558860519418568986888471487985439661722644110473555985561771171404632252609764148451252233214534720831813234728741118386982279186460534684576538424287121239355425955341302886856580552563785124841090802066419514246794648991778667775496541254656208718625410728151075327099369880565261334443909870841982654463761894489913121927057124253485010170361208628639308870509701047418269233985027290605927970779921879584072779683764335254302067293808440331126480706733796210461603097276221085270164550238259913626983710042862239322751453815261431922885707490746088931453801646163523629902252887029898268398375510026151608866134111066629762897561469150198538417807824262246589165314528911581124728122471616608509625633335620431361293829627394999464111386870618591045127806142263572668199280583167832094178849605231034071142773817220515623985774785211475344387299320951044968447695063811076660249654762378863930698098174403744540983698164536091343474640193633006660709799138951853478119750879644672584063688246608928022960991137608502325820719606891921698249270609528201261436046467563946028709200939264842687252630027897637359990204969110578493385823625938735073553469459239479631430319036387376968015476838597416492554539668462989550591595869973870314756358855656969615501493383934326993202430844833177669081818642694240784558830382603710033556302188552936177175663469797715490525331841203539910278954799817005830260185212971575028560353555291291911795852695872972232092892972213285324050370908131798074772551214093065037313638984883718036885124080078298001705508220797049360406452220992969532173909437024258285927466465290884758476606759861756408179296073668253021833767322815869209957123114454344928507515378362052576230581400289236151419893918511108761520507403294221005265831101833817963612103647211641056887146119443309452284990999963101850667614345847431961460796845897986765524671571550457121343617107775741206949686726058190668507979568829116085405505428256530163469644855668278090542896050015648663331452514441140741790873162490471302637258306416270428190068172732019772251351542024235766561678555896127080516796346928512348123859814015232625021894208618929841235260736607001275627605857147718062150690257327364245675416662119755195362785699340843591735220147232513515058755748638552220931430575464923368582109026241856695416331266258489438002081056661528068928604350967249826080775425923782924220398984994959068437062443847049381643505140653012593786906171809729485622804316361936851362864592778434185902600873428190130205579582483622847372632788699303776778485004335857928507965675543667651798314328393178666424308796133657259445967595233803976236668734567806021516983962866397714621162915979847910138491612465251514003894880526650714343886636434721870984226630250710185957203868277638653605746685903835356737073649030291470513546196217874037119860780800909152925901996570816859000171014864053268873244144688421188011858462129550669482110171775703568586539799267977968492110871165469692967710564123065581554691674372099198229892233541738937223125772285707141138878229837742799240782113261143630347512090504061003204467735920953972521483450029075199962384227923519982700521494533404009311511288488315724933558465850497107800849247740267130915572623086756158547953459141333676300594071661033142692529250135558090981278146583012894169351150582173338555225907033095413129809275641374481144504306321642481958067979851114950687435753415406245155765155567387075877285798477753756032629309809431415167977132708124170946567205550955649203296369704757611967457738317406207279808687036069740865966688402707460270774852479334106995220862665794899165408843620452260996845744445375738924303493508978413006535646155366014030226837832662452674070428324322053494248218136332372188391832658148498600160124317364090877470277935315421608472054835169699077743456854432259352708178291542369914686603309062009271104082205819714821797398920009967993646265826162636798029934082652017496692593419516115661095224364489397866462579776536259428096213971518319975293095626390424869719036559886137304042610183563739295092467951516598674965068100804252688159975281559422029997263173312817554008266993988237314819541504134779501568626429091820876488929635125181119544855196653224792329061393307026953119547599986173702370355062362338417837249806663835910936536467620497111087136067862404382395076693113546662687189531357524463968974546331484900343574867693060960960355676133049937358522484624550870029973398400377620047469963792470371789438553407856911089846802010192874646284805970685063601663874409639961006621218997307751925489413166833228694695264117116011581885474382994788681740995650302490162288267369009275491713805301208307953538946461627176603061842385509846396251604121449850329107144432059492098491618765278713538995481026365137482763106587241499288780479176889410172169063594746375693845504235640426221418237429405169614209209732863702883494868908262292286342404179838977060494294541129839531775127248461257524195259837175343832278021867126575442966482301299095600269779033488660818665120628082904064843173064465152129366735009538617567285061531862010429879443207084526980643369204131509504525508887111274544817119213264382128524411312140518638977463245756471795034761254023951544237325860801315239807294438953568839785559568110646445584902103420499029929464540395748114100188991813736495030390403629649329882247118642218262410790048215665894625745751030468462497617664611572788654167769473510250648097089464419084172034296498956649639972040550470383344633962503846488590071317311889312715547585150671585236906965229820008963591779687304021555647127559818500747680430217199549324557306670709874311557041077382739683000937126753617944887497915486853550992334165874122662097619241238010926446117494843256562811364131753708686076009647626329073512323871822285861269974581373374865313220778181870160404797241016757376536436171591271480906739248814286506807206295220619430799689081292333131012962717386740322969772343700428456626942112637050958850252924350533473458495316768878134044552095469102882951655818826572117311363892538868113035930527783536357731776003794767632531476734128810450761581876562903676900976109691322149626497550505304270228670054333523483903682073710566420240091865880433929563784010863342111194760179556238219523409685760594575202853902273008125124538640869608323812643445976605847678559597114265569772528531155000522983117634794526819378502632445287524505505307894808533362800947905380133492220107740956169731237423013822094713958998928289465317684625246691464512899524052192143413035201927485135544248333993865091831218723814579956816004252164848676311921876828176642005248479344927053824479009736800360498732539275916587507124046588691547456040650270612176461782252171685723993301153688615207302231752594453834444083041768281571838129610015884100116264944058292791804510413927026498380182183293108694527612382829464745094009918904970110342979946266235166229315902909177339044823347119210368011367056274418725061388986896990969116028195343325583872153505143415620662827253923554357833756197893635699308957449812470201362070152387775310983897243109784501040828756638837895407310455102168579137496077512360839748814720086339968211152058574882616403911664355266693161896547991288015554649751739887875976924642698448498187707954897740952133022933470137307509149084588838981485022540248054513470587329952695706321977491004436881266776312959061684739129772629267494821872503146126011115801229286401390045959608148030437856822126843220929474374795468183830865091361340548282904115919049765156235767650828675687562229317071230239464250440861826540464594758370338469031582629050734394341585193154205374967895025997337523327993236153740484170670065323212719384805606480924694330240164269629468275388544185877805849313495003808259361004125410115708888334725520545880374854260490473996553203426413022676025586442186437912372802606571851628757335577796349447164415473055484983233558771064474656058312636331962252824946603461989531454139483490180587105499055777616628157297380500018077562054850002428949796774991636738295914198964282857216966748754205322493690014021232573028541661809935659050621845315453455119643528340493635668554281108009505047020690787210032760333939267494982932973788160164599478628541449818067291592225072199947624939771641148647694175398830415378901112133962914119875996048120755972352569656169675618248171101909924417702105524586214687106015496551377133303461032880994963335556521760458781356924486894168308930677390541305762347326526778035608427554015657992662805352129920049399771176993765766416444845750096656546594296291351010867221372518172864642025586763782609494589823552872795034930556665979604878802749725730184982437557077357918358633110491427697565404612700994664173037334324340260363078270900308125641018177872831944882824027441575583441166786544400333388900757485543793208197206651404852609105429290615407920072843063595969046592067652445061131370208471849040660141575319667429791176362356155043438476623413150717334727181839277491489434638074485546950087531057676875377633555963218517100809153602991980783950898157367824141115400100153998315426701596817311088804564602557868124538534494994457770737561084425452774907533429786862254875690061585431217311397624172559009523730544351917472257738876415816823355709266295996196852556834385795480977924892134682218423206866235022910503436502511241656130770052028162512750654728839891891458423661061575938536544997347747606780576791009898587625274788820891975084317412161756517507039329608002782831346207497636343548991051654460166016555538242306950258023565595430816622101535121990991977676837586868052019856941618517913075284214328922170678495195821770549767766745231056556160005273179140080672698886630190738057642760710559592082574220781798343261638684408326915731937545628255645189494878363290746013837892301244846143711494329960027254369670708825865700296333328427295894206129944174012307586550435088716608240197648800526463005066586612800190339350500465565321642904306394790367484278453999250237591638796114163241577182632067822836165747747469747789497728200526926009880465013234088118344894726039776832983232355343540714445541986892270557919993171121850028812639568087242797669031474433876488226566569099644813375704076383879901334654808177273512162191564585862090230264188461566231045132915374361569935278738043179460132107917877457755497570828552020931147716857435209130372969837546047604793264032849007044429819144384249325183577792512531823465718144616320870200811764267759587746621313365945393158604738443752846570094613800997824560076324394939901077469277559038234674751088291993741171971025412467805561439873928100602951711187357665095194501450081716513132310338503383671422814532905547904349163289381289255467805782105662460420667329777465040783941946893570353220163927355386784441679223749158564378521274593133625644506920859724146439370020971999332648353065259430159759338935512736044633040052491325820513734039478135626072535290481125439866563120736475356146574751711683386545233411442752432833677968797171075388236652100913071447152090605041953669144206135742063287408061402871319900874408613671317637431512902641580692339315766909308553421125490929135170906013420923480217331037659330987350554736081091565630664765455312153252661489461142692789717271635533714402140854892909493946998068225783183888774527521256102810306093586334921316216165697617827125730536174105589267056376181131554974073411558660059092748997706284287167120327601773944408811128403246151077207434078950072271045922126283016095848623836421046303031517517391716013600798414026504898015589628099340223230782710668536985896849162077840535986439296168771336810283842310710997992230951468869462277795131984514972688344360418032015455499527214669890047625951785702455775677148550419086912485613384704212488631611092337328266538698389300204461931230084226105031162465275145836765549026334634260682686916320150181673673482289437234724892266144627578229231071372431504778685299474758437926486367481410098717776186781539532698935168217596742997878698419591960049528426163263254167837624844494333939385144897875228541154265372748699814243023332846790566840645340144234315265961317164391128215427625470025423491583288609129706860681748551050606541013542797014698030332974562608904066514851297287702139236893958581709097933539731375203548865060798476311888281869226375475567096829884251180795846690223711810254783014487610531316950817019175228957899185570838624239556450902875244100302805967607838914572189748605707838497803657149221813906270210700404721953031616065208666500400191536790776071355331550817722865269320761785822486983029949285121603057177446035733800328655940105549042589086141647096509001926972805536334237538368177528151410984795212633807479282517680885803911317753634928205125491501070860099732914510964509266834725494619378361639842856652401765840237873228760964421386267318443067798752572152616056399649904580887298920872635478026178959689624755037615189212915362124362967066790510117448186005902311003239410909520423352278003266753381795633171797240130432941491466177223517088587814960509394183025410270356113959169504645534717394263330138824666359472501478045824858407221027049790534337175204770670827460875952893398801335423288222144410613555323711078160036956267710521908990245272590865091730453235410826151785139054547337060849998098962387932020935698234803876292293544022453699906534405293053650212619663586152164370881924702469780465125375555184812941966175114564147458647583443928153518517674257197133201860042086991942578057406399303238149415204656478649664366080260287972856005584042448877721380633391250414336381436705832886523498628784676862592414353470653212886458697563958898503864633501003770889724484166338619435853930448614350006489627528306071510187652058449197790919636712243445851708426062824010853339647677396273848572270412967752181637687229078733288291742205902448557693902991684764881548875892971699136864274311623788771792284179398474099536149507441279126779498861598954145787786477606976209275990466659480010912641994480128066753873895984559897551568972754497686258548527087716027833074290818968250374381127215723865036758754860971900570151585684328881549727516971982045048424864417177976386617371283849338517660468253247466165993002598100632456644489247580764007551347736938747045902687805081678792434624324531956460367092697904443999416924995847310973220858690057748198638847491145530317183964370499899958784632027838573837704312425384552639581609713984712769481961436514313588221057803355558230016865451070168474539738456406185092159537996663503629828130630632859494468217433820226773117258655215195103723281266001529089733487032535082065610427236602658137404722166586503429412931987415074473789293228831325090096625208190259297635836000483413641107348278224619318897062297914939253891665405557986639761356823583769679791627902860479147018852128329650142414748284088909448064355834840685770467361595880665997884614727947109086977121503128930032369900622703109138240301676520290275448524459920551687978434622150517620037048899542450513480370342711026323453881831987935114776732184628853285898368582978668715840274387098249373435431472023299351222884504129371010892427842929081003361220896170495178535777773323058772748617488429953221646651833121744037124218380974044057243328206491752860842827960851965758813269903739633000219773841711772131510093476515450857055575334400847580086974770659003850199469070353997065200394906693974597055225072778635533978694907923810432610323870692188237544889787979681625736409417249477923251776355177379954499691648235748091270269965319892478358469663365725223888822320860631348722557342323087340097675632689849558536381946281444507256752131273758442928686638883140924865772971693233739766439139960998179688252647656734507670749931396604307658147355858704533156428443985110013247389726876512089864274484362828204922312988050039271731649295512087519482342948563922456470842625933653693126096119478095860200383628095040443160029363107772010707310246970144809761383592477856228061526661467094578001190291190711787372461222533196435464365420498055813240949568670433565201076157051388940488412664439029471434091558379215566034598776893136959264647287915903721458722912699266313873296776099998349571796684759859834522867512355470397139708811743340646908682543388242894504462257722214773684161290168176403887124017217635697530283867967498194049428987017607809386298150298712033707621018647719025293787070708322894762683675704023143089190270948908995442298084482033788714466698051679365450317939477409222681933816643108565366366383585096576502091366607734423248655485753758288024782624775431118995805410851560816831465546638511425925269686765497988283423455172270410801905849757615227879666896179528460148810355799437206016625866471976255047723307027315713399518195236785899098347131812871532457351275891502199540355211081093322493873339306578567866094396368812475994397660144901607045062666822136671178873253514184531702418496545834789191093698033616643824394233917536816298879930448897861204068893757840790793429683455197896103806625704004558641671039439975449200808974548161223471356010509794965908381235480228600740711754978194296348976095674401838966418535561455406468849479607123541564790212232857494613259038458398485843691584659273207905603100494711002440271877576063776681185799304240225797260899698967419424640385616282637300625163019830883877871519421530877920457022763735204017420423676349327050318689782935091697546587774547076657278221630032086154622259518550952609792337831724668897252405045992270493904191143841773762949934434695776065359826277061132759565090323414744945413254683479887891720104655319972782042243728859460454181524734534009958967038446750235564841884858807474475557851231306415075950023223032944649349320721494534410046983480856681649070926619375372348412870194250721970556097368459172989284764351694755296741012335509937393152927173516285868626579508712203980377930888755288452152257028287674049483067814988232311172754463199718017829322458841280784224021959451358203664217805936955725013099645685294491509923773130695886774993131665100804999392414854236659675391419548284317558132181216022193509403432437058441274010493437786951746589419138893056934395970000401613018593982293906828666766103764315058744092726986196505649686515389141116819201515469877204935375589542607910391627640912320329365709123906262504202426186044871756210374140736649928338502711595667328332053609114654240623955228969562934164318080512447135448270750695560484370448629317483745342911969587756331302321537468190455228942184936346930378576543432323976198918587762987141188844712454126944385004432491492430284516690608262128130560912543821971501106431673090425659187276763915078719057808209249651973763087690610694333270579800258174186773680819879110450445532690747082389821484023756949700243739799131308340401944785013201045434467985615653465855765009473464143641503685656900545735490286186472282285875777327053671242181209804048600988882349284489476138138321877724753693403164372303830845971251922369825627281778507450620677154476580099419691003810255809213944612874568469525702014293128710073560363475744463793759778564019170981938304532737550427226689979904419068345960742760013242002789696487719554533411404288253607572996821528791103526224390929424079850734460163630032862013001339387178974030987333096246392035019460364425194297633633920054393495448684418137043133316082818657427722313234511702119774459105744175416963630733163263643325848118967299351024550219352284925221798214282507562687300733395178599697137810734734555409210515925122113602811965183052322681525908107273507363629550843583213624412523176193954703348721165410497169773662959910220894948562866846782350828269162742536493412632228111811635470845750011757117798713622875492669408101288629545398503414815005039194307104936148205110809163930690497239884422342843294164089018478209942947753914558240497622533158058319209811929809151682241067329455492729931954878138194389008769204319996332864204810529435767703407266961370048250662745726333650206566255654334491078070636000125646961205314470086315060831428235353457042228776637926981782316910290806610601618689633737301746528941641953405190717359411858988589468894023424755595991304603860420935255735433757257592523401799910695973733076380854225397231303462675487296971718707876261996320710472197308408833428532457974187262858644866596548901502880027149536580504132701518583971794597589630220336519308835549471291334230380701256355039468560889429434664415815047108106146443883463876491061103558399957010200587843236167521762944375389561406612725291052452333371776856150077676798683349695144472493158704209997472763816196796557104486293162342454642795020047516888177433914592924689379442966592307105227643684651512688674807505594953042878199056596279148300744053581823712370200551356350391245015619588888671677697769538884472179231398165618322077353495414628031568943729689251679485179624403735486766024716520133540979345602143533444476406496715768849035623789256042390772043882518960912327600221143349475689670889632448079053655931385205454362834539585483399354755746639916197661434138737227610957775667256982126792270584013823432892992814690910622035768889630000070799074041857107286393589098433360437799279890795151206991256236701262414712068556090728770768161922286749080725624899170262684721845327545192837536318512754144305289178546005167088444474272091290138350636372960314138814263219291833409256534013740237459883910431386721531776225826445788183981066276069532772349201735531604585550415638055555515873460130022814479734333268465679335955602552645240744931583336525437028793980360908778462575846152986519653413293236632256125371401949181059049065756916205313809282696551383093667756537782821406869135145705832165019897628501764513983499798397393962153741702277972506153812380661892351525784722672889155171423376345876989820070116956877854398925118323975495351246101912755638296249191504935899219388269216804351025976661445313951987891110038683099621791483725264654328515422594908620438703150704342314589037522840580873247264904919322764598990639573448201626306844113884961410061620630594778700807487109654907723080030377653233164369592460345527521086927306353088819280621825328139062344312415386387155416547927254104138035105632057899806956403660902667597845739252192626294999586543740170719367721998183812374003664637818525571505107251656757603923937371174662674674616636362604787357664784129608821847480736695404606574710740263490797106925627671058777832801501920386134870470378632370691705943968783290406481051384776652289415237028072069716962993529166100605550558206060542022726050095557145684836446173729173252764961225824990425687749582708312285777365480794712096808551898176245590833035394918442086370126971207944618165817041808263882029603314069801392122951649793976071370805486149995316457254437574770485259533787498129590216158767980660604812561778046004522564642949765298471859547978487361216583215943869388185375197309165649161932311237573996454418113033192084097221695878684135818144373674956179216513630373464859299134390067332212557893614433483635737218174004282968422434891853863759399741075437627726592928696105390717933915574845654872311827373362044619681845658913542908740669372312767741728273132557017564838568485173875255019480545705699149271928954410929007289044580880223149577317829095312908077803601002749481471284475698290461602726678400399588171594295435827834819365380735734729662847874976018383523528677020018336145268274944574328190587416057656199535222326501473608939658200508201934045198390178105529721105943311923098744325980513784510044033287561746890404585762193861281441482795498279585358199344097719948280296740482079272052806349301562948046772020727151635417280771839788845245609103376456792370039113203852506618933087773995442817495879590983956310132070358134675104776874485420861471715847307885989985410130484587700230008843488066785786258861969972709752037308608907491265918083176123525455258669868358938105030785302850564889180793928514612771349285566059146894200425479872883141057991948196105586874456265618369999834824245571734101920467874716960909132138382345043749918308852543389879614282683459342684116851641969047199647611719752640310288155357553145172580379808579546749986092487376717070051245421026633475799776483843918439822699558379758743733061486663563441778383437645715353868500162269340136914104118191832591799861933197390158309434992874804059480351471115498902811688404296523307973814258245720994997537112849523377960088856002675959462642120406785818843917554287493721512759574895721543454983400315114242761187325748738231416614681806454434960176325550851106725501316205665329639508555391884408301126427049393053280897126536389629509465502174970522374958415324939122801155884201883574708872791199771367982515100180277681329719103562182893998655557721901013040893443705199287075638219661873694458625354956375024021218062170287325214343781958272392211228667714059226831335528324120275252917004677160073092035831396977769637344990897180289223983869534788843392278375039946280151520223004014777038415372286853385040492165844488126933457960443010079617574137427470958689140863621366541428971193196060682763558901486577508702862983409691970888770463637769009157808158442431690536482405018976718131445229968066609186306548714079318671486259574769018870134088666913251443456268514345544464457958348947961769427641644030823031146265156365697202616477535733559316566352296546468498973361351920165289094827023436170387035876257286447508422318295378490279745179987225489060539397024658552166819657435525905936825501346885615403484155294578735679139150295689421891592178287399111445475237973283041905725665707246149006872372923468522736344727129264040780314891450964395679027840635112156170963685829664231495865148201448059294834671456075750407745666359618750624363389111049924720507000079276795790477696425020408322409651707845143036253945421996642710875928262990614462827500588798938502589521413899160389844402924190939587761214154019792995958863588899299261354878901209922636038621782469174041723690364646360338065483596081919154863235630142711938392278112961274321370061725718385959722724234676333929821284190523789204587975525758988289344982207858102396766248171018125849186609749356961533613366283544179533136621434089867276478932379916275275891369908742114647768729767397918801192966339368733459410857476007715883804555255042036273562582025969812947894493597992130424547616245510459055065265110505507867041837621692710508461959458351677432022721501657942077575553478654402952637791859291785038232204536357411525299277261880449663508276273725185996822811884079503800801272586899902173753106608015483386802709350795680384639705824361173342192101568553541741185073048357182612026172035584207287160220230112744310734515064769623912935574637306876285950222314512532542321879046881898850061453531332593236258009017703690172930274711049874208562846780636705682823939629383754186698467523189751986313192928841949734991412674790933692240197644152768808830760329013007496169262740086890069587604539379815179642109785891849813648910230656555725527133093168179485766655024813751542066911527507407781246375111634406831307505578797284086039104002840749799899291231955158399782800729526761516972970248812437890752323099563105847621591068584501296754998782187272182369983565234545561596997980192663398237414057702907837280860810858291657618564214109239189609670286173813360861693491217878029398785377812961130708622009991427155915057720076786192514068779895202260980212000465959680277411626517859802987599933721543287124764967823438531314815956789497963428234764160415392675196176924970351864400825554491538723384774518772844898220481145728429692081248049425899602095036739120079984187834381688069743377765721992394886315138920437977098819262686771088348204598321580916355112930272305291989971436435899771900390986056204932447880096040254347086518508564110170473822350816986964155368243487846382459744060394567337572439398886124027109627246912562477023452655924595567851539899744216743556040259331508487904664719050368386384411961048766328581425077683241063796939937512576242344264730084786757773096866166305463453994209380038191262795091068320769168678597419257314508659523078175325871091194895398779351475931029638146334012816003244913658635906865990926487940365330131000095984648754173321550932822013202097245814763586610518316726972152996451897138856504977487306817701258586798543706379464046285950009623516032551007386713294350183670683859171330805312881512092830353409921256260873605134185298918666680400961627893168241013480436417666118594169956241912882792760529148615794557559541603247857065523111598825740986833082093491243317196247040334942344592908887347448113358589225176831230298259405860683486472727631128694978539997200122879413215616260101977047943628120295162347291885602684352465237906842986223834951568020248187844663110654376728076228534798091312993977809306496478101568789401228680739790501557810421772186510272529059445126802805835900902416775720335462297440010615979475570403774938257579606763889278780767293924857070426243641266121843074484975947730120553184514293931478463541917621751315714243084073469895138652451053224671106897496686657044296081951664703248003240745996806308478345167201924570032389095206306837449221877818641121284609415739526249430266041178254979003016150031693461413299397751953095120196118655295292593098520559811368608716606822875618785452299976134704927341018216696280582997105011221042662738783579465602207289572804284250753761053364441111169490336935217246827271052257243287821928246850113269627996813024240996322550152129360836110182412532580572025827028356255485307984174056765410033748553621210436633471295214629023976955737562124013544154658426640897732468283696419174495491152787359891699787188916240032759921064346210139072341149069781854924880534682426243976030709912211145589910731796143065733658356247247181760386511956480973392705589922796177292391922831795244876157290760472548769449279063907685947444729234031977923257155854952180868235080814111480787369012599548070760240419490158476007084735098845328931518432085115503682108288802214989441436953075331479633309717415300511913598448693596771076016521024021610378324453560714707380815452786881980271749506678602748484386205733951018948267897926514300501057995133087838327600403432880427872987565466403790216128460422676565295484553391462512861544729575076882583493362391387796960954657754653253741812396187499113227104931421850364286262873375653047188211801288040530903889578296716585119811177051732378754124882613742529144936065943200054553223595823130464589188540368102071760278619415954422107182380449638196142873565541003140841558928746050075482388911330448086692498028829672116292119677666403838969977958481460607103570599989380711194446014829411504356453222896998986884525486614565243832864672457957128373301227620523359941096271135210712416241411909495221551590748579792204215941738973198302032892437998800822224240071122303280673913237581617868088763381346413679244361686438030145705223706700636337487592232861039076376668826211561921494175685834684208973857808953267165900701827803319658681182602588249648732645682462924108019680199459396181184006692907751460317560471017313730420457057749551481299896820376754128521619427043696292256342127447552316719522841617965872007737598349619866596420685009071727223088257650840779123020606238506090064100753417434747499337783461316607098576986528327009067577956393619137869153225317160205641555955793911480361570293389685658585943054207592450675133667510862469728239508646731657895947471260750611647490453899553160079548561655355557338978436526408138222901612503359064129737697838681420669666826619312520352517864539251630959687329165559412886365919631811062265811031348384170232846785674743704968603027793292635229379715180798477756028142201841179572164451289429943344292549556880454197380410760098018135693211521979259834204200155279798090518565133118629427072768321911108374356398499905154226075552210352344166016554854654382244035408615919156530476761685535615220818225218845287477342229743838648937133867810538404076597628592656374960455411605759212312126275245892194073144063195867302670959697132221675105961254512761844180661567332477595621764975819152235783043572442304558607708051694133349199722535015070049212695880993330388443304603518624986941586979915784636919868424285225815667919762298308439949615406156890351615330805499674588111384326489958987566801161842256395724700628303097550658142159628519598482026783668331640464396208846892897951002182524419170811113379118253236474384960576224013004180730645000392055766574405677098925231982536646260155399715982502103563665331998121630408316782783086826768390872361004607441365539828724196608355377536952104612589305772977795407472027039099144566570738544087054955195086673713332665615846630206550380495634319851967072075772279269647948137424977969051692991968064851066552791619044498598751304191342203722906948772458860813368947307894973540792108866220646023774763942784460416776549925561067917165512704321607130588352566946604005638931903562100553311800613148860373632752390425482067887551759865993095507127508426239604952163928214890562600332898111468684800684673377973500621369166164237602039660875519729808235473266604122471588562352485776082879767681092526231725631854003428176416345961831767121585928390731689135508696914782334334233136756682276587585478544736622731038105870155018783449335374706732938857783853585513433587739957011301611462779992525955974204347495427895990262091033655373233657711884946952357059659315893407010522045068705263033456796101473262638427597536148103543228049953906132125422730698013512791486135252408952081661358618682901094955184834130411088341840440767235508635150177196009731319447466108902634038585721146742114254144872237712546894421822264976559090597953514252338957885751137395624141275772954416810911132532144524579314130596200726805971797158997866797871960603082266095750442442316374408631436794552505724359865477026265572827598277529232895703277415428929988166771454387196635340565014198827714277288532444833684174117943591041325963250150763051218196432732759676292161331831690498380164203948994179618475505704945933678774590197823739703700405565781637083346577298868921198685492182617503564877569013251735581766976552418185351921206815343199793535837110004755815473792573404889154936509947605406546690095320306981599266711258475983512085506449286769357683730071658116710201340621232199206929450888719972338594923149877946825046915376651650053748258590793357310640482444006529953234763365310797113227192759370999384705588752092305881847155578074850567924043651404833850563194426917259035989249034816247745156347116222450221598138940720767812038691978036141453274007685265901664385548614470787651168412836754458717238753699269261789933098625042776435652192412392811226048271104855664239023133823623693011099366077180814673017265208894438702557082318548253691697122011598973549001093922348374606140442401165275573962775056583554629819264469235968736037021854406684862949425098070173723996111819112532790386898023385819536670758652963319847910547604244085791487275288718923956440257283860010340824817085653005828838969921533349120313714114689005030379133447633511487970877246360713192572733206423945409885308544456367510687085830730084366370586634076341282243642678109661630310877560720431308737628029525072298183728378318520973599013535908400179954834828848848752825680629326013269968865652474018021959588764455745889696819951741047232795535410382204250652783902135191120178937282815880756867461486747890331463737084447458794734119699302124222451680946964470098711959553638559109215552093067547488396172883987768768022029281531702518119663024808619664389853623419278971080738350397441770913509116748151339623820464964797076981228352283512833275002033061500950487053863296504496272857912445963109167632089601274928047921852863664123776264251643465835458134985139745160900543247169460158897096145307259839083790143187865543305173128690146260857235805657938078778488669604831150813919093344804692928887369762622645116962654309345413434698207817197254858361866933718531769830143265871775277411295958851215535169514063223983420952473401009691577464816931260943813275846271116542540545369340177665663635108421285770023212704541495966850850812463661066101975299573499664480487019095672742561799518698858188515722959738008657439969981662876049175495921359379813407770734172504862656332315442900444628387778915133046535457372870124622911281060959910148082864589761822334600894593825000160802084840737864369464644220860749010683918019728718193688591528516523652555904551018580694116825200644420050068605352549379299701726725285937753855452975680750001774239178274546227131001001326076413513938115422869617398767693021370864846357432203413030123848810673797147850377267638796655077446688890232762335928099697451286236726934554019124491782802495747305644427986022529366291734316099633540039067343328492924315535155451088499668547340464721949017409365531144328944107326694788554120146855005292247298982095375218552239098699161846457328478882716856638997346089488538493549122989381798516141818985650192513142018162437433815353860249770939219233041095580748772032093256054354291187916577564699874418245476269639688451133595080928589008345169192929530866502300728313538662155963222295163150500344029373288730194014486963053663353471516004604161371860911060909579042461054282465257355628146777252474551713146354454210626511280156805659779338443037731987851525524336846574251919655137784268504899635914747878658416166244672319179266018857086425540954529168893873051207198757431182472317892430884377263165071565415895619921891398728359996814473911474728888117020091458992789087945551178775598041750213325842427002687470227266591341803272108520418639751283622847632300084208573227490714426467223032154866240145875188155387900540401482770296042225315852252367649763829410967505729453142406675365442955852908385245726328532719319702738870897812640888856058583934303150915460703002576175814521018208712436529972029325528629286573583337288222859144817112459209166435489438480066019452122421766346168155171258362261494756351181190934572951637624193780898504734921620836639599545739391679232867966334955517131744607636994464844804618026129740714144184401305378336293962180649254277205184340469774511945873676964067789878014671128226349864940479313978786775114363195746201663820282807592210930139697393207222635220857817680800879409876624265593692894768664740252011663872414560090223462057263994477679911334036069769394083583821910521378901788940222277657774467992011776356685199989694537004374806643816916549074171454575229502298475184494710933634946622758339640423306989966072799099175866099252920623660838846929464740373456244018537124665636860888913470930397934764935060104092994287639627483219684896481584479693864294446121451046624588225801916704585438048035130231628329449456277630879488835771404311989854465285382661999600672207830091285672140871103712593362469806860545365864025137546285627493468038765757649030308041495848652288158629693076889270208085194529903971859244475671962391187671113199726188619651795403754950299872304091280685149779657789798838215311146484404636268552665649322172420926277752195400425219467952662678169990325249203674401200709164281416287652350548453201665745184929800798780019399510096922921063897552021042366090760096927546953768413193840004673667129038756410488103403451643418342792814090391713400494663802686812499215133556817891725706126615002996706426631170793527923318560455753910978746324019677883119824101203659217848550167958318292532324544910026714293905389829673794798090848867887720595481833331326846988791790598154546061004872447453074365398721241540708246048447687187844075930635072641546592053098652174030813571122977380039367444350718212408353554062551728466151267046273687338143202550045266273082460824985756616909568066007832368019826767743126181724724704446715699956629046619593415447001760725347842394173578430401539368313414106629490984566324476647713734825049480545564100588517067216653465147150356008532969043255723882214872969743821530656108648970053274919542403344669641632580189608588372408885111059147960703264588203337652232278019563142899000318064417467170358895935171770074267282315793272265085719041322051333001382517122354837818334250348528219573287285571255242760055124745509619909801004358164201938976097925988088376134694975891187250999137054012938892754187651799680964013638894727369043592865259169421909317170738688814838515551602691943170702759619824106129428964502212102044463227629240436346201349572854909624448174256066779960407795473391396725740412751057603938961593703857275289042180371624601623661236758829727356862683293587857650236324507347976540987792343081319399559003323128199064393661377566293345207909494266786778375383417835843727793558923347769068084353654607163851219155365145139698744193393322420571752318181816464517656986029365279193980896605514555482620669819461039844210153363450367903265310733766203628416935564674536050337228326821799128947803512645375268734139165755745847530572847566676464214945368262799776091404484643364765189181391005219220693577121042515592780183265084047077204136234996827336614928323656705230316746693779737123285584665361305200436261563919345683443743279900047019988087988504151344175688739577017300580906743780112331018008794578350828493942528859346754212893084572682625771477566331036808497585093811370462741162773162806579905251199363739575739912626778783635372237367436566667636677902587354949288354304486383800450649680984226376479690051884369935551866021780296348735935500241034580246999401353167849106169254086445474951695335784108608689831495597416958853440173046982140323610509160527513797302925258270314975675197516434647175822138719448621845464959646914075346899966743646061118237734294034946517709323237444005743751393202596551628557005785722806525897130635679739968214939705984108330773623691409603217679868198000624646198303523532395697426075867293463065547827210476760617099943469220630642226805626530166884810299460771113414237124989565596219244197404354880277472962133076096723273474801352646997038956408201835967461744501353195267711512274887739572343713352290041436771151268674582906152192586575703744408627415852529312899450851202097712822960621058500488458710824329659869481723501549877342584813792128887454581993175456793678136338851591657564573606057062054947199593562137798339432174001004430491645976761005456719450912214292148214985885424524255616794889512469554995722572079270888793646469198852734365340278431419951085759677163937402065047744531179586071908613797261321658626451359363544244599875211259453828012414360152120490637132113327787108960615723905826606791874501988220584196279288055537315625197019222504681067210579485880161515460360309193502900750685122156220853643092425736417085276226445045443525171771160952572039698083037609998540804551910514866083779914090284104559376598187889559836725501845828316705872342033801846775253750074054419850259698492445113198074287131856818184331250228593423159782955132222815157038854799239318309724805430393283067166041398608421860433074959203222752252736595709450305192765274386973681224109590465325897799719614929181183994363025795991332916701623050815790036946126662547758666162447194592517766795960470373922010646735962216054371322047470143116944621566099748064746377261838394271318559161915143357488872008290785173009793084851337987654173768968739060150970753139843584639561520387046641920807811712107821754335824410645675369273330038638799064995978194076699995288682571519423567380731748271038332183444536404060090855707666098233980541125975047097798020781502389793273921156156373415903171453916867133290490060754908595010087313682346632401195579878486433459784686924922449377703822077635380008916071207961960598328062817278245006986487409675577063302995071394732491959912935217961510745076760023926125453237867892539621291796203534266335827998321447301232829161618694040674898953486043513887356524563032895909892347008434193077621778927826248055083131860879492752729783565912373489556031397750404197081562791161952745575254103836966774624295224393318047335939013341317398882630636563392273118554775659769117138461883230130260223791921155926303459244849343193164816741106204025278010502145486542636204095861437560700813033417468052952301859264307332423757862819593590553552415723550450894397427676849719508523504213455736723211445145210579570929041359192758632271698671883626039123280972058924294019105615765923063122430476669507208715855389119613470470993048986787315964020953024234570211672983289054942693030884259899454533375105169314106147351371793349493602363504182339365078316661004489046990805364022881533819412987517982837174372711382914485236739365467276686003789599970544436585542414779106266427126435865267289595572118278121982769137226514883655066117188916039494668835521586153772173481294470047375737248631247973909384496651349263331528350657016914962306257417389258080224374365997930613389100595153722082211049259683326988272677996272613026111978951214523018048547616345053500237187342511491416643455129591036233605953376662973624853531695616452904229504219085476845020308691820302525978387078380521333439175462887011121645242478621861959825002393304132614004462366981968264876820689802582751150537825322411460569258071692936254046402063379114759392979995419899073932925095144844797259305768327679178098696317608308916467857748345278370631645628230385171372052633094137211870954793744219744249442730218542518848333716812527008151289432581577797941076758693810350614921750045864242193878081256028632457502250614202570266577247965518221107553711200595997515805761558424866087424648483735355087236017832317188277429085957883698770164100933200977462864176153422681108265335748880066481131925012812969005883497963756514535271363888458492492705488859860829395757635257109999584592152671632424535797599697930940743181906881063299484061242695693220081597990404306860387909019453708652155134929958220783707385310133423126413815240999680596152236758568396058680870160198303996713556853863162587509912577751600662956818952976401927992579779832309724437078685935254539103429509112683308044248613347065935341977746209656294666437868876398790868070493386311006723634229039736181390941763532826206676234003828080035612042010380809158148566986243602463303600474895186369287232316039422867297827605029729445759706886234746614218308140048069030888306064840900534512073559636689020604623885553851238376827705344888537995087502953058857070004907825533604657246315867118350809201865341217939018896069713108948493025026253010638978906661225583704891977917491799180411124379744701752140272558512036183740846198808544807799109989840093540861985626985187650663167981059080516062607187215173840756699331179889528816769833411992217825253306876510774641535824448320989263838533640051901670775973738140613365469100250123687495432679650125057801783293175863516072822360880707492426237857378023510652854196487932862655489060772905213985773926725687276751320614901392097203295542732492947690132375972255387827442391850586029956416861504380640277016630197136178907256292720478407610734615752624533319893364199014093747085385732978347042336709158807330905401749580999388445834264631071954688322783886748467093644663411253701564828010547088693897460099675828242086708271545293491621631620060573191857489033757244545766252558573984674080312814502073688226195862545250372711926234683873071516036355395926247664065108684923328298412223735813371497706442984432517238870623601805020210320332002371370901632108278492979691343487894099605446601345894145457353005644835402535694885233660030202436749454528809525599834689337769582802859182972017866626316781952082534040423253107127910434386863834533108420832972581962128674333954708061280680132264034067820958579120636814624872560758288803839407595403261443820236229014493254001023101842117814368052212016126671357882817423035790783146741732223021640957737663296051568778116094678464945924202130061111220677162403582862172850142010190392891752776102932644543701731690160116142534813832379109909075995852402070630031923415303817496737062398170558517929664932284855757801333224505222832254268753258755561716812138515990088731339488153627497482869719730645220242496706823693658553691174866123891922541420987915111080127684014042390143150061898362321516741864934000253620869198669468787545323378686661791008672331907516257276489274608210551335457958253643318427519486015767433747170209371760758296872826743282533573764632995906182811166834402343981658238619648405958666211609603687707636762780066903139942593242796030473642115523289311412465655938532843562825890603279837158051585228210756491121921518062545033488798309484794025816604258243747878320164108845926201683585187154189133660939301870900179933959484699762392240736095542818868201205595874653442819368230088170262842558935910544312529027428132183048319061900294936779427476617864231583528833585676111732715066525654315196041193180413885864566268322184414161562391573053410716528453336728696745302187396795697104441596510472571361808813386494455416759610306864489657742949894735464232605810280859791231888286980987770740635717493427033647240135774137967219483131539195965963820334804529268057026721498384455418220953692196993034504086734038298863876785365043826501412496022569759415563572303803770736137119786530366172961606637200307043221336757962802051117878566276077527362436852907486812697769791538487414543716343141946511456199726196866832208073153539137065144063577220357102659191273547540998702463131965120253553399696703622653066900351735559007179683370948137093288895668361048815049372808454558719451241102180194791358127645135429175788062648829098314369314608994135717934932905505763436567739026727382886503166795646079569449733189128794588327442607687424274898928446886344806280435567452062555301914388902394744514357856011975611376544989923213802223881286588718892326684812176509689832280597278781170044486723593797374917190874325331871335228274846164785050452590190162218598771228375479101079536824771571095686921192488503133165130081478398626384684566787064303676667562672839576900200754650393774871299648735999665838393198093155586696054997612890426656201867693611507272818509549183964128692573183859485636300686591741871101848571085924557121772587260222992169877435387103563867829894919185372625559567908069163930202752120759822402453332414935410114393693628057933415293266151165772255770356722759567628074512749242861275139501496993645221848069804820153727725818918262856736594335087554675364402638713934136402480736909739213210406423038071824835961855370252665004038421048739460478818448780163682359574520817433490822660576245880793018837854622098991152566583572090316317771486750381319510224786586640071378946205900358011977801892346963544039647045213288317202171344808801266001872130435817136523191797791936856685599914939608229835767639460945730368184276045040118525347500757437728426775969279212982684716434061480267391590837882718568057084422276651788591349891854528285726592662535864417221678118829523637807748160717700431706617986641169520908222527991757208299224243351448579249501650864898424671074158847614664925175703165944977859065070184742977798057569604038793798418708869549077345255254016616074593611539448872656467999043529361970010623098476509786776921492548323336663710120618521384405002266832960135922255083812641822717360403334467866861397870931092216133520648084331333683154572782474029959250794968931542208851800271465425236383886514488076920766863296944972260989770667457796731900947982363612786849642768013687173835582795246696990564341083749848949960548484274872064456999582137104284328528955082373525389930858183818120726186143040394021395689899692134757262120826412063444120386145039656047839822858131350454457211079054009039994571696888280438991517309578115714076404857444630048824989084968022094727190063407230293450477355693375633644622618697072445043846461907485497941830080586370438276290801416735966197610831882217146938701114020163205192434760258671810169872275111620908317848700616069264228801777798442960551818611902918418338701320743347090024290451191230968700780971116251804955295721191316964351620334135036570359581535161522186785421177260347998591821852112500623297954236972017674020049816628403875877146060099600862913420828766017307655986913838800439393730218860045406726232157881066430618267550061513200751026650963691569269305370311655469594470753394301361121774900095064727356798314994028539674368127720174542757603640961779442038376923344989184665599037121306862563610609534962117033854137211589725257849219752591305843189011136967064529490887341208222480188754079774705304365358492667375793024692466970996393819020948165806852548148339986604365470366637783400384301845479012196665948564107238195825585584076143872823185442108281763576975204258861813543168561826938111471554618258590783370149784238613612474460912630315710198916242706027925951384882303874851841269559781889962136332364026923682208379137549870361154708828691297707040198570946021606638887122407448834420010425397648725671936417021043825663951533937438533069902004651583123595623669977514385113908294740424032444485134850297174435164003633987405964327035097632363357597162255013603051225206603139067748718673762745981052085880413334854467444016845312223152858732783830210268621746714077325840773966589719472643933508066169691138622339161615490085207088401640330331609549538909289485541312841095454536802081763529791464582896980735421039019340415456212439641465910807638229055566045862730673556429022084340709581922169854801584280756319971224920416121828251005017090486436675778182401719922283641986123621986232629111467534552614240073961686444521121616900892902033575128859756821614863385773370555786939113549505715005231952496484065633680344086969876865272474590484481471644180181572761573002545138540331511129651988629415410211822762083151824533788273924787369068161680191937377475987206310132009899379577606008118178257359061539745364255129372610708839563262807697364066067332409948928966871525090157803408580137359692247921785511456636785841497903330826649376905394645278684410681587079659388769413104477179878788616871398186997334308895873675533174867148900697322656830959305261542150482001744530887953520526231076638786880673282461838817688814623219340162172335389244899214042004986724931662607889516842584783345675526238921665389332094922635835632706217780231711578899807426171972648807098287273254094796922009861633952223358187328323583633988895377318341612536987146223002671781008639755435190885280739274962720381227370668940737774164847826791181414600530773694085186024062431266066112611666822182481442840193325794596740578369224973288303826203847636110140079147134172336458552047118325605604258816578191247500991627296966255396851493598034602349542006694097774394126614462636263924511947753839323284916415123073289720183926208933466463998294817164849032797944128176894176865954396192138660510007961793171187223407356488099689816056967197622571327364973603102533337882207301999307305828878158342323256506934295499961543588126828706459447177925343813353398006239039232998684506582777436413107739625678345603289850517038755461757079606498597719339473815649166844092803563085602566754156624593162491157096993815600918992163836745643462927623911263437399642563908006917625557847717243107104202436631442678951974979954304493419278570121428370520678211435079004078806182369509046054204639787810517017828304866115842897259644211003157451050093209770170706278536138765969659966440893606247053483877359428446330049221165128335674314463825448908690539446328517063083072678532875579327456424053153695897261636078304986438290161668563006366036483906548430064125518890600551455444789326239875458584208239767839157087663986512055881518909848142652764635338111771366778913805152397054084734372807925201303448278959815797000828243253623349145162413073539490594205299389465127674023794051388175519661106496361504247446665985823264300740504877954102711035226850221373449399375213201291302694337495797777582512298474281638574301350446246104521844417956812843221443863590579471880865117316259043264076661878029470773602822610646026278430561168876915162557135830308225030889403047658031171413836678245499139805842360522381588568639360681281550231155398945631647643856913154927252061856477999962464569202815400730455668271442452449205949128511009968766710273824862145143434426287193032815666981977537135401781770986997418396459820375288787762149364026995030485760333106800272201343315657516880646669654610379664770264778694963690393246062321530821618590710497833304625991969338574819533965704873258738507732858602472506993840759078358012265405574672902629259782544806846988748112764143152144724067971290473863055079428188743971699165275685756013565316813732284468658380635801500600377319102371068478624647389847080868580134416406547222942526072444122687386770301326458541091398062044835358537476575824058896203698550650801733521170982158700969633082200952099433079661855197348704639671957969511120200885178400834299675233819690563833762840612765331507580749662504771189878875116242305510086007150579915580517589912180626262830116795976906571960464124087033920171498659315653530514724998287433716338915096825491187754868873570101516448776506882067847148924518219294266098077533659636436189414723816694968193252789767387513476141489562191191346695733620613289685617268924230209295740487946250288643028786924063939103890266478412633970071791357195686442546927012009575507277209469049084030262623851786030735618228187333091194356018675322834542113127053800626292362236603974224572736135856216952401187042962901513293748638187135679058865430390472194520932724740273729555670448591034177449982934134901952737841831492843616294933962409827536292946983754463968595296536319912479090125425388724192368217359980090260224125896650006192782426692274195276356055516953589508018517765946522320223707779133077960920908901425862413236580031165306882998333466638246397275433170155650527407653609583837784414023456485484766506197767537057954762524487703816659730144911727256285693514176062908776664436588248288452674537897619375783172275686814345021708957756732011948279900456009633183308686262104867050736271101190438854551993076036880938876482787908554542648631922668967490646194642296721191056086093860973961293553822090081283469444783099797249961227213167111511065756811308964833571167620295153680477023206443881991450977055460309972412761714272687263167088516263795565084530106206069769129868430620790791962466605613661911713968467495646236505973181830871900933676655101072982316778464151267747062268507254223263899318480280930973565770792755044865108544569528906057978870195830314829569919599906559997765539432609818146797566445336302057546468860443510882991405272920951910385849179192125160125590591887611697653986666639260677347670481163796695093251743874236299686068102432512266642922950777287843082538656004487772414727665777709189045135599781980465451606055671624873011947594450413911359930742267898325740509651960682722952926851144108776143339677519499785504047366031953269144289984301807795710463012906176980551764584242864210508755688295608203696754297199141305546125296943043934461138578903945135945498857268608069417025297885223603789762339074590574238537073212645173404828664129426079880301237397313299359422951714525426019700380427623575498023608779163189106139671450407209168141486470131141258039444986544763009477380122941591216936023223887507889375238306002491584160637165890892511396134932836144710306082732929290788101318767294109945870325262059941818803633158480616208307543866088475966247234453089196548831646635807805205817065307469109844450245904121742409566451864163519909802958179013750614398771467608264290647388323131857894085189482664209231117033313653887625088426546943106362591250033284189466973105761824339361441217727877554069105653742489305429379411980306352513462466602277458835522543487944353366499701804886916680171723629467183685191898701485515327796775493306688522681235773926781547584434607127815875950678691034007818819348248730013270189927390059901172004962512381113021800657431180118539524028089043600208205676719661277401573909241794643902277364138376217347221314246569514117219378898217194583239963636390705988097654643034275334392393381565122430877960099461455357112389671379985802620313738453309914620575138357839676016872731315287835659334007614333403468975824104787008782436107558435992692016327051656047202324261201533819393179256368229436069793757803465562524146070417094779850725602390338697641240216658188492293344574348611270543513959252613712215904688196085252792332809349044887664726766949538509165696510055704196788461007231380987217161476028065775702750956738399950791697308421734448165142559339539322809990204056985587664233679807955796919918281412164100330289879862503700752924820725733184811666300219262840605132341253520448611322342375505818953851970951642766296122026476763702950905154063701298359866637935843390438762208362069108640264460082299608417154325935366470318805303469232839806852550590208048696311517183578735741944382847494879397436154638274497819307140046911901482263169755131088895870316859266906122872091132054122526701747024757480656034873619917632712235686709108838809423022448062286251782265732056047003972144922928722768025033605977084275966071309120216441212441376775637691732708637876132214629976302270347719490091232796437461607040240290809004793289313019368427643307331967989954235226596512603910300985768217000720449570199930285112677254337853272508340963916334309456357472213488805637205016832779871811277341037810183823606462342379169786372347178839169858466192286583491256882596659273990999777376037671963512560414693627175429861751473527156190357097366388480178523653343279315576669057964656537430082778923116694172175762067913181354590148144417679261097325718901985135521137482028003986402241732483811775746310642644425790801503340130334263759030033636504097698395486691851154675221132017610087062808224141092044004227395031495830692085404545091562366433335539768473729214274425259322742893169879862016494907090188429211437955840384638707242802296764002157242730224255611635295269808004594343590075694739424647617994713143720245406705681176751271050940362006805269675834370265101711778065011807523348932183444796014016521545244383449849025959914762367913839411799781481620782462025883318959742888728263055849491376010925118690058237962933268567329356499308418321829365006584920179438341805503262247065512298703055915091270935817185508376265732658751056176370072714514823522325620411881392577028789389525740262913088452447280496769821956874856246071136480188556028942343678774509661766958672992610649506308018357270278435004122448937245541152611456494580722069565997394785848618193868561717417435074696950100912803161669256606459831338156353351746090542532502545107616662228705882965566578874041279583086188462392801919718942113120777159361944997425225137140656229166877996984825267006024106949536057114823298016420927973306052414294773496656598214389464424368023684841105969612551683591727519416861347318099453427095210406646567134600831367901217904872896893325996658344829825493048197639343117978850520990411385589571029104127306272757797963089559338066320843602743533523131678969204714508431002519836014129525459447839820857496693691514399722785565599919420882184561191656538047804347181105800369767819951802571059255839715838089351278419144942638199355338981355363620079686447549218380994698580501036278599337369126115966931170528243310174540490468549243791391720134781460300872752862975122395413701232276428848479579110127314551026613395132401066743651389246667668046106283734616348843815064134793498505502002847857694267476981104468259563372465293101693697147303331165432428110245414654569531287161518023743155446513991113533275867079777073531113322110208158649400618984902880202259136049401494226779086797278882820812812820881933770635506642971157965270148089054977618202750553886430236589420683748881854151847763453773277259507082933588292736060218772625167233125971852276625810157404816253159660718188493742607759181737068448529892986209112524519452445909858863556580103392431412422828269887616747817397044381549069792536107851243074365634357552836807664941626210540332455198553202709802331973878721771250253841690934623642639011524505812963352905684501697180578388872401352048593706813237141063480103396446987099768347576704521711960696474190953452654008581940253717202272190414625032851911655962312047452128331277158070914718459162116223562102959820984649162973172681180198885572714460827027992173168651432473266705368496566480556803452756938897366409503048230479800304783632113595224465495218236324276578660213872397865424518932940209801527676187497790675625255783197576665361736230643654222940661097214746070056990165919575882739740786081145851961425556782249010194336359505439869273597831586995591303080771090213923507737639908068413096949048041945075509802165456523317738740690715464971825441766142153055971877463644190346861604941143887026133048190857366592052247152783947919162289458889309610243578220824788971764732883395449658649884672411993671366235078712861329527304454422480987883406461724803561865027152524386141721967158345493186746607780665305342411908786180859866164682987394135760102417843714009656908806421709693598799338336771152041745341296104698165007288043649674174192082755675897948213721440225335865992631135783886662210730145409276994610009730072220436233207814928253201091785362057414483257235395189996101591853445920237033054169943306875620235489265102302577365576531297500674786743165687832528118487089233221823999393275387529196666874774414019417339477793153165178875611899346875924657344892326200045156490741751727704542570751668701194952084119977202232609984208844732760293047071126267694537517938083268904450038144664305763520066647292338620329638388006015058624939415811293977293997714595011355313264510298015748804071958852201314299135335819164621776199922494678997381454799363899567828649652523317590227277312198994392946429655058930873284529962325709568487054689939505802055369293808570206938553243874130412133554927537373794974805864929505012259903188266045731659649407348529580700281000609397017430092068334361977474804630341741468620133793914946566427191103165128089951002107352305785050290233252539417788555909227067510322183448607796745992484871816367993554589847197712738040013614550999115809377285347920406253238355479044069484680559733905955367113083500666908746367903497250520554253742883783717719395373425390563581931630276777618337516032923488931583667761429282098977731168218471708434346453518007238949615964032735252905356759555399262158584347184028901774775194579054556619355918790535935399990771064651827173734249687462998946957719820016915733117685633053053929910092981026150709198096882620131367017408356603842413230780130335973492092138780290916548302487724534724288750237798140738293791934567562611804349184413611323173809931384550565240226147885844703766581165890844460261854588884970870781108246985095053359588003104733516465968216479689772489365810275474509457860876260924321403821156740790301358320166854349719260562582354248808926578676888332056229813058898968280720735232192634044729415789983484282690222054487412057644301941301484463321446854491373283708651820277975964528557889076102387982379792878114765088314400687054140605689656829907605517811826867405480046586820019330082618169327568414596182338234353803128253128639642512009440490237447769524098795056276954157933799805324980008953629987131818731227465682401247094310491649248120818965749558787737942350985710335035970188399190722251916272286490526609452810908979614834432061594752028516474047813369440529529747110964704526765334847518897707531582743980053401896988026763440923563298750495989042866916504413785131776512875844067645555219695082755828055217405533011894420209712487625704793451374144721474080242900358257121814001449258962926971630635329097176105854834916638443202983472986475733298111753431888888331881685349330907524949279671996979388303015652127374006631729267302197827388963319358495862098342328565752581832657288602329365011141134603985622405743964666040424695082252541489512419047154610633549691948147522764281371852590048781319606464692925770460850141826240045444706496187519976256083960798983989939538648525765060027662453706627621846081394734101770713734152973064044755489976182273330711796062525120998883091219714163953341264326823346216252038945547452605017939107822830580205046022985841503431624204436017404329205260958484403706284977072308399178561281603510315664830094372993865077276872969991386613671932470732290208758477197260296465274620743748053318231865651335649579278167026941208315171610014276886519377963501873222841294483296659927962222626642371445900143281519479487574531894547154321943687947460098850500014704923426564961552666769280544739158977796670276346606778181327880239029527700800316617419134634537102211672114666205316277162759791706957092916119018263560273823215285436114278488760727775819315862860610328078846471146257234551708739682014721811781733742600515978153823212046327486723355297516512199859201546006007631357303545055916540468534523566127979363796032376753015630652567568714789892289666287355869731216398444437776628767201290245948163244221136726112283780122547164397318472355282649567381481445676486508184049600721704463708736349656368206104746869657069073836661741470995974625025608719573359644415466567322323540415334651056970580811305756116008759674301763684204839878408752992884222213779345857291588462354075873599597926369065795880678140692279782762816334151140468971261914502838358292333923507009778594558377286622146793040934179629402557505083433455895108904243568046294355156891525317977624375899651387414652783453716273415927192432950739505376563383020938289179962167868201986347920855819418817822493988733724903686012828931243677224169331324905761070074904452848953475261143529447131424110918468073559890406452503476188780441085987474460193475973190866169069858761648862006059948190543738641010523483868457834758001931538747147952180313111038045693167052913221283657686254634644907191344303917351429174776756238558163045511026888245243998340819799733932450243797617546557449132277592151226911445621372066773786459705278851451574813289491451990191588262923649221190100886497359122400200435732804185131689194909057049291542145979128215676376786853385118102236308944057929738982095349909797180921050222640538980637915751011034001587705008471630994903374496574201373085647952442803500269264785786907424234548388893862009628780420059994632260395436449022208655709191073459863022213048673057750066571023217083775082215716056748521808016821250049499658045989442303773211326900100344282979361249984539227619020754313694428159959670238301034041861157979187608108038212820557903926727553354670845069169910073267408169560840945513623129012688707941147370423670437326149917088666799151543745566151174604994050441989281761631813337465779131770030679739323181251341558252034068309789954005273896553971647697887460321889041077704124790225145955368436435859100384642714954320768297871027117491767149678551202489789110581280812450454233326257189776567399544032328265912089476862935393267830492765097208426119935378718332736611030423950442291955023700110903776114614453606658806480453119332487054131453142904774080288083573039176528465281881320969337923562333516288120818159982092461519685367004394738199819195165142413680853921551345529439116787299429012418804615331615208077417979724462624941570576415633841102984575775405970879372510114764591448735073143445528632917495252535394069877138439702658607629063148878594613864737132907154832821342821344536853028173626510069674198125906495924651798005049891953881769666883462759461532644737474466037335787768627607746044578475474495813709521910583710437865028609184169294945110995859166766347010730089938000365506128547061118792540306126457988546805936090872518338858332373768376489978388971015206706508896715150481084853810118613881277914348275729438927691273580680827932073852505962625045220012444110694157037125907279372522999923250728342410651579145623636012651786254347012365924252107820543862981710776824851606813474232971062011341926154020596719748167575216809128261823140621308437379412424037335412814852614753758183125247285370346118167614175977460902742665953552819750571057771018333022266244872080316309583653829141420801585458875130650813903872973774185516750499261103544133947589263947512233128907776736641051484309735027427213347032592685828530835736772525484068934203864319453423954196392181583450942392137866009365302183612149449993518101276256906304929096658182227768325114243215987072636151329022533488473011612033851536455585157539527378456920266207958375039219818453991913002881580543372803675707875041117477033602411825181663381347145785447755429028529435589848810614703309687151426732759655412128354123439930992065318375823276242844733099256059132017331383159458949352240352870343835641710854680798803804162429998285951019393087670299829667980563281497182923967405515183594308347011325181815038834179378339684378834978286522036754077186227153180466101831564523220439891020234276323402212460449947895109644029700678307204003371426183454238727380573998226600125772269506450756880503588108220109344702533695577618829522131229871900131325474219256076292844066285067106185041591241231342006236118481062945450493499899336797518297317105903113523634286617814046101442773994006701412237656058300904603523653722860999405345145082316632911421777418215561356002491082228643183614080012443287165245508561690985298335832425081220694168686598870670380658548503112258196286349665434646478526926138919642718256971992388014400505988048861475881058304625339766348679550876356567906355442940609076901813580251235842266742089497522689366157858284114853814149123471523121176683759255204960819964176469798003763920427690795943976758174218441427545825423887548211784364250922807797310900457106919216197717663224198730573223592759466298419011338522146606126481456183557607720856117514857526822474715711586208969710486096843584719221102867638936053440837741855167924678945820088759958188693384901317911749708190625954732917880195513384287667838215498756952519027782307066967913763283485607383020381163944326376906248026961883880617473733836859604561798894525324625013901471342115419758876713848412584579974892867289691105330550407141010420029578670662374323490680396082604303483983518951288088058940906960694368443842341978885406753527167581015471784316274755367300953917069988575144261320045595063291430049023072065988824660622263107059168980347472798197228137880767425612321564339955244761201757570181676703416172709309880088959464665868770413588564035370541299686190115915643859894901325095582989269160102136478373771266812512954175711219039514511737069291379722199609132676794524119992582426238285404094142628472703882842973204894699307314624281536596200690403346226433254150251690084898651979308677467103611300160091104034155165215499668766575348782039053438801369081191796470609235615378125326858253151764574104423225169640289418144567408418988215822046257218218713738151632687511271375269907317546863194524528607923279983702288227204180934139630783642796477543817064080133429309349713860180612944687357080369651886235001871920569626271643548148179359743161293040026126641945353086439943307936389793408924196849682380078211229564219245934276138558031597094857060800636462011870918178660855605669022047498352369184716288022820504297843330268416645004400093386818166149708897291989584763238139336009890872735712776009244714403865977665366552089251867649699211268414640961671779956486999040600823686412005473464863429333621033423329868929049013535287477660002868050177731353985025288179260561839555415223620256127496543354360382900702088030338209476340682950935178200676912015951846162702569253488322524184179769392043787579957774885493277427750559926676334320189698358073466861311249988907976417075627036247340865954124044525523604642130222136264495291894717011351649839106485821671503508843610841396050035169214679984574588711017286414666421571088728979378850233486695688866598385134357286099664668197687049437418005463404863575029053987588046056332831503812068384595925970803213282562030341737392352245267894894309772751137562635409955739316110259107326440255310679834697509805503757557400558207737466511542525623957234738268943602359974763110528396639612603577045216099899328251253354538390894366814605753161498333727383877589334917848893298086809564943473939503514332295845132067361223173070347546224078615888881809207668526811956534015416297589464303156335610177746852055497620181995828760359528202521876248387256464924008395426046135384062790525038587395887935713405078376123080714540526291810846311942362629202369074089463259442606275147379488530731467533152125195793471906265064015365702088873448830185362009161872114658515547983525090531431998591193775529251935497558466483928448029539772399512589075351228991195977935827500110363247299636529262154613205333379092331752256309946181896196718783474990920859384624089518614318904255235185361662196014932497408180713455676351517948322680319220640726705144889199572836390442399696167436396776453501510102500902575699199641856021345684116152840833345623828604229741308844106103292472163881271893165438617199617822656418215329981771717271357599513310673408038903501850466162462203284609454346686653555133286327494489871543338017387304527286802875831840592299025572008579612999693973846555380552344666445646256523521319598096096825356732966728287008646610216767598449727511504226185772894849328943242062665779605072703144136847489502288059131722083760471660618051355339817063830225416525631686979730762358220433179499078472870495920886658505534693235461146369655676796865439215022074786044778130150126812944152653803284048260833017933715113250563008223043831901981023974881042241451782533209555625500210314961620308005581355180460059466974602221194116447647739533816663618060744411292996967766524850632483849987187828008425666685004790357968377335610055272327572389968767203467157798773325099838374136021486218283163312389355813117706061388027130959255738179022040746365125953610202294494007395119364540647830076074789539742296106399613075146668035313251053580699930339390327623709441434488524933958527855342844740942177135787426364876095411678903536895874665446008797911963226469031094504768263338130617426949721268629301352706797834822162561410056833387522283878028523093701642066231669255667444393448237514125055044441690853011626607292364084193740314666412298050371576990204156374505739592288256482969408434396648394990088282298065727447662772632745937294515558794184141883494662150999793517132579420226872329277281718679029703055438075126469801440142164536148185644700205007026895068844167497368209732627623871823533991291056173610988102605019258714814252013618493488889017641953228281805958722423296282274777687101260313445178697897262379204651041840227278956651362368380325410246781852862226680437062857047768164670866765844809594082385718073860371854755284178943751599320499933086843638236624550524402146991579702656639317289720655761436933281308248408167377135185074682733864020975732788937030891533197721615532313387899072282693832323782022931463006851911453343515971262495916388835733002584823045626402933721332845650118282604565926563516092176482142539603686862422506579108978338908119598302956551326972094256060782793366842849257494682107930592725088755549205833966853741441389958641197774765643448053816742306525321136006777719277918192509185907716532290224266755984979345851252739530337365477727928860994897402802740393929351183687761026149296187687555306355904318473276412830200568614709680281218998466833735537064426186648059719507486719866922601804309329777411005968744654017188068525724384825485736101790149346810949857874036524735503267305669260599619350879012697696715596554678700112854435293639125211778331126692786878770582541430859358059145727676762877348936999142412458589839350212104461599695727243263937902883576384291134886712735841057292019991212382931442727805637676822404186886483459229523177421462172933312204013643080875358377970686317841371559157450208027085373716179912540123300278902340182948678936050939819428710258846739835312446655918583679160542818635499230131202884843387076448431521959769502052378504054377477517477593728852617949564259391195380918255103410091112558874117325592740012043806664780515987396167610536198014843761145054354190232466609565900262906756578084579044539011102260854603637370709836222160880005289529130983789014621893923149475813090554887424019673799346202154355937625765446466350490616414223176148132697812051415717934534148469320337983670318811573133973296317795812232614207191501243661102208252832317767189491632820549800724461469729961018692789966358165082107340880360969546475445393682634009728776170602559467733509651874500905088807074485565596784853145553984655771741816122150569980020756358867640366286016839849684542306821737749744775888971060703667765607704383221441865598828571326623619691155732834144779001769146440732241294906963680257259090276866713242999573707033004913966209718501583083913414076719237416135133555870215491884239031816195625414238619374270152361445700828539086703870437401648266990208716792744481442733051794127166802619304425232191201954841175253584646788766099506890910441474080875964579659260207012575811720836630802226731676598330104590892948246186960935319862645518021216661681198795745048537722329535238942734649867462296087038964117239238985227361500067888950604703677287196513867371123683214099038836115319137384939309930966434712569224254872735886892073933639872333444167053523884887770416209709966438213683222972007310478738663065228278490120256642332533726856386540202598730895248673162492686908101389802655428643013524636829845917928513052960165908450207715030585924391486453766108786998837178271513419995827663631324874118258613034917736414267210809233721142053406659618276204127381408376433620717378565921591874981315564494797147544463850256587550798914087515197961634576013522427352208463030145181595699334660576181085832315519571550677347814073956914484710178969539123670139246673332480690003561034565759631304964294720343425216676495778695210289758849386184791320536926603027251655319793331432765793679995016613365295143795719048937104860964146406248320030841259014900779692515090110164168755352290404013041381079120258702785697847205166695373469485641568811320171075775043091349789077866001092334158681715350639413223829193540293223245118772380919061936232665881139744287625714448505849049911816260990375254150162918559876105077249290748403441990397651772892069863567802011252734804685810904427665280838663244377526657663211462916991116666628417930113853510031863939775874663425761777780730147336838859854229073039720860168908427278305587407253723783128185251435618284479726620703922380717362557349653368613430302537040259660265415086923653357346131603252464072480865606747790686804455180742213988888853361725551099863106846251817015125660668557917194106071330101084256748319274903797827048487124475272839368896545482267490269045909934937005567693650116524138868011904625880225789213596051514365392696236194197866679117838139939554754415428258721160890270730147564919999772915985628714136266282564543383078704234978373143176067377862632015383155616118521280034819158286471387528500702805018288931693765348643643578361568159693142417810866800359332635095799001263321484461716045546636100388504847353376050560921447238156122246356064838386171851784566371829708812338130686696323778688567453127831770245473981250861071538311849450707620619876494779978346938466252585073034489090643587505644827830436265655910596544411764000256303986620485871939061936896704870207851593540853225482813249327963428949993705390811838111176879264894709812787554425351315752244865806915916275746261778739304727752477283092618740772518370618912221979684586888707184014414191097516141081052357325801541572753394222630115647742579815220805723476591364052460816037669903323747664046312672063473541638257373961985111046093883129090872594337674922572523706726996432029080752620354143128529595369844532912367796297890357089913545506487420027459645853548600832093221397724168740277947024733482247429417697278509195063616252524122449058191734507557604919321200084637862831607730397891979238781185941044252247093395780038956128253033801608817270409632595127343503595869107989661326714808546593132684409992097689994329106639090754905637244410792177235632078698902034252303243792350241294677509091548896036085320918274766549373181359589110494088174478630706433326128368111177879739605309422675084788818614167027766094442212170801219022499155766970962154771884290893058599504650924085546444760294429910234901620445744395624743328385608287849723980238183496861462053079601433314849035837779819996350011712626023203339432115456089989090196412010843485599882678725561890276621256797863344270653191380182914792330191009783362194931494202276257053753208691257004552771208678287029789393001263956982197512601621150252464626132282327938004518009736397121049573681815433907730410232453863202564500175018295095923148928610263014125441877578744759820084745387305308666606193351929004996590561472807070098362465287164343173410746966336798312380662462857249290554500553534445573375965380998403172341797834315850846090157787147791995238731504590598466767291795873863260415025949317205140361512936833727107981886441150521010779412664510350908826840371764040590196336875730549536757012161752530874026230861272531223439597224790399924926846405848560839575234133757404180743483912289785253110510477032774308699567063181530560067878749777793197414423410768012826315192444255315473726772785002268814662958362131663148142319133227124399226804977340337777636533671762980422879260685000026613663049533226151751792272734892217834974927839893408205200257997934318114424927733253010582226470584066076766657337095300139657614309962070790269040458342546103393512679704141035512904686061101249483489984144807244682012444531854808605361336638670092353803406722700436423325878354055674143534856419461601657164238226820879092041628102895160683580080964999225127495273522428448534966737036250448933546537965151354567807346321510567459029430850805382183363247011529905772530803723533437502593493524707524729799373212102720493477382627096082590982182854938656448046530140390155107695986078201692554411204790867394017974348162698636880124475337790397825297513244673870626802707366529812782971816945924658332277742655050328706354267958033358768421540220440429922003334686480992332898402194508515425604008529859400407031795990635000975062002647360991909363777597768249878368922481214296042836041714918800547870917366236528637687438439753952624561642626317450148184598610844206723369383692890760252244160266763473380602987741189568354656142604826473785713893582578682119995391809684632765952632698318557924373798205237183728497633507780505446880888549253164850096954559430228122349442270761538682627913149587856193629781625204771879452107136136602434611022212638924623327540646283301930492094131562964469248053976096960040204141244312694898303160716512596527316045587150032306062288867141889986168207362207049400049802201222476265167662404685667004731876235906892365930793837863471467285713139561680080020947883961179892397500153713170078017791035675571293196533986532595772052215826131577674604174393630182545752353578492613329202665644004532370453341953816595611643538373955105408721867861403956451241275837435473403412856985150072240481677198897935689070634721423304722410369443614507100903356274105089529771276038805693620770758407790157586538766182588442407377246797865680672910438684979089869613419913108619203180874830995654705060117656128893219223689925835428598456916290045176579465106652165713296498601032409974435196413830903773557824824403104970401997775296642394545194102875012288183177045694363231715904913959835633105729558436668448737807165578227088484572315214659173291832064008488322190538828665474519843897745133248675050476605959032244008779349224241963637043576856429972059438166080417533643140772942785054182964128388822062167415072263751374834892226204635913043660423827629770576132756341109523018360044303154490149312121187503282667919457169180574174649180529917894401168538646821458730699049910160707436975109040249934822284480678931325326621001434389991706746799489210942134114067987287254954614815308118739323899459639442256303035297445161034014927343861319576521019483201158577294353031732983647436235669014063814931871861470649799121862555827306303490807454377968865085072043860463465999117636344911235752087594455716870850501069723753911732422414362503352064108215512012154814206305231186978459682799918290595417061824483251820962737468707040864517955645625754492158978539675335856313745713944770648999615243975872360882772176994245941570379584645631359468525975280241315544579063678576369252747875202466092641910764708179163753219692143710639592880964660151219501994612414237712688458813829607351277404653180816421814064164904927364763186178633962073518140579731657684628710349302401070518112265492641308981806849266263352846068768831291664929875720191543661177094467825831564937326796023028541177944419345591048682396980419867671854273574849882297594186609025990727086184956232180935531842079489059358701769626523846686885856874873557550782916103202263538374345620762374889753895016555974557357018271977019090994283738584021195044602467942715257428515851042259912927927326293990008135950699479999634094275565344061138843376144519104737723666983944147580077291413557803400243804408746794066763938561083006539762109966225467052495906200849574069428010453142543591749449257475610352194978883948556200272748147592167648052875948066709560995678081288058438240957267286520726033763588498633029666728189933788578524372994831259727208851146549474984390977206478838864816819551888771853262071610983135649418575410482799870935801503352620794207809262238489339401061793107913448835643022907046279016684754186304559044748849046196763613541066647471774589875502046233209159206482723388236498068561427461964117386865202166178055157622757337062757719363931734466120405831115937753599092788562641961197849980333332209255370367903278820737258833576020612526933349673752867766104499647445830681852062350660058399556326946898034441763139518633449485204684399758869348947413926457767811911837488824173218528714519054470798907644035867590069330824219329303971639222937519091128204976396746724009194501157911789731926813528848043150709485058489425592424036920312492157185989636486225790060122044976691971569356053705085748274660863658807692993152232714879898073700847812828676350506383501256481049555977280358078567242051215165002486525850636272851701142259896746854783922460289231453311706772886010680871844198560151655147078461158150126081517634153213616451356450488893652412621577067634497581917364317273128060936473363280320608953065405051580385253762599034311948668643595209295516864486570766329825483386034132695540958853442956765459568574723833659023410457519153638983422965108266514582964748896837503335443268990465373309846348863555326763213127915186435390624067216037723410817538887304697216533231375106261959902430381034642113227850082627057781529516704082262901266465394941582235225259940811393537938502363292192340432190425884737761784724017888857233164083909641778084349600238746103194699516966546337307440091691236118384205595362157346270531282112496302011811760294417196978544186181019627848041650114137543593034351258952228540528970368524063540829143975758714070524529820164861228342545373826665477009432976385235165678007094492103216138211828524200741805608322744453020700426575421270788070805454790522363955451685808755037232021907445026936999235260723598235794959419207612336999139634364689686525791824659689458431717497476848822170554190369936947259202010361628668745573242499209801959175152519592542875513130104453797636107186222426257125898688171449255016090150017295933644149783551535146433390662096489271644342214837046753670372316451666233932571144813584580912249525981697201470787621226590410219448825067082850547695387291653719991931898913410193665819419711802975682315032946746286464108352816199901686806995273226255380453520780496729106522410838867244813135096319299206885233431469169089427003373528125366617650137515732364538532523872908449754998528345160090631679138415952256169084490180839519402949086069508496306435259710169644602962774195037907449287105377693515568605276473006457430995967017943820403782433707522696431828548386907256489454013469436952327233905031893312815065003219982584927762592804211268383408465563003650877050835662256623338509316047049606800177155680465920846025792091597668951108204761504040404754218091778868012307267802863631345369733059510363815893973869888609282331975211527672751001712617222829966382747411028446014886626514383189180701663259190325668931066068465972135495888672281225136212824189582044236637023304168803474486036441367988643368242605356441485164545295315238234140573917799638333945265177683665076742852961999411615796231965494353767131131231357871160940378436835469779148053140184748400761409269194821968009765113077182732873786856573922549979353788306668096953688618683490831329486499772973555050691103209893723337380566966689573192409268362298634079795674235637847686071810879665693006357270718539950505085290937728781268293420264962604006449371606006454435509533141674635693783029954696096445500613902534548462220306897969286645226637024918347744746455689677667531847811312385649528785592090382944680968054806108210218237667259866291189029997402624455207420268737080828312034392488830187810346365799093643443252670478271369931790022249503060608801191307930511319036702299602446028932464762426109174860705418671594834150316123744193954968376692985978034239827719382112802458278587162888949642016452867211769922330039379461938579552823914779594436602250163995237273831904960638685923324286982150677283150091295615467754818526648549236023585142398254234712056615256026060878968516347605394589939478791663640815774219392997199476224205153365356953606144396315497851746877074250327034470232266518547094308500878337072403268636403662206628953694356439422487903448623067625122076405387728147919977756258843263721323080044206332115312053063160351079635408758084077455042849855855734875527615174962383104661157310967874747345425592422515360294631085524304638740856747496084484810249092619330625659952160715706092067225825728899836586969327780333222266587230950661692480480871772515330329279196964434962848652933389943271403656657568875011903382710168543406258533203638024383094518573423530481853619038665929016744535037470528188909581161368015709692407125266008274568794180473145390471421017286381558376732328203562489371675691558491122867927146524552761059112155639823171062657564052376588553292111413100424814548369744777299128763419955577146891052581807463708683442463492190177113434977831728208554490207835772115358532292238146643310902121585762063133297722349453580611407879801543528921703790389425965359673275317610447952676484045997106350465281766738108619193327853837675188548018473013248185686762096331844789747539871674163405398761324237990138816945377805945337445552195389196374992548198699850111239844408923584694012824671631144233667070786784257217805700901832820804012835959766180668834345239772327890004847469129601790243416833790470395607335404271322645725175207783109135725950107306167770286390655646203632697687978720610696088132791772068612859638805204572682332482271230806525318289508956955864439480102540457119528906982715188731951293763664552125594680486695358547099895972110809990593346037639076215329739806324329629082240788780900686356873363719796586602904236720460437890382241239210896461653321250786835546708735815757434276928942136005195858088503426716164917548079974235637515116305038060576168997193721362770861401925160303125521975504914928481748915194166165325147762389579065460078392579714476815755070684693268113977757467623176596303257907747561267812564744377778526977929454699591359019455489205048594763359404214869542321918723450503583101838428236606711094066841276083517689840020124776679996802308694500826224169700146915394357383938339043248471264051362444430294910726914362792069084283874716658044015106369351418565151976722325381551117273969050890195716887086492349109441439601061026442115073146334112144303908939830800859898745148286470218250392731966913126215155929545298764534561379277822587943261806692943015696490100017511139189781282384588405078542664966005640832214155150090875568897635879987576997784499611154645691171727709490515001042521469516873027884127621973489907552525357180383340409131880255362032100816270692263823821158364841789866148461845845598838672930339598191569547424290911937745549563697122709705538585201396287287278881531213739803835225237792019844480432117884980726661638135061340306374018742387493686877310403552319018164338444694767542387765092427524765232782073851137516553634924611472297141757834077225531267570672797761357319583065719624267065320719708443062069053203782058936353521210419268462417914467358262950803698045908675832372155805818429919955432002012442751916817448205017463796935100750033448842846329883393322191742714598208263303885141402257686987847927942002384430954071834599375741787937472490027788141186191913824695479454570934033874190900370605570579663655711570656345811978682132218747036715694952020887308341322860011437370409573102660241996437290024623089359522144951475458557887244468122465680655656254067763941817913065709801212532916444271865221950157395391389807710385210454475213273825749150285397497676774684178567197921597996075231871160127372051967964970127062427508122065413610375082377632184858001192043214557422678606014604813532260566899538726344390721999627046021800038412465045647605674691892870320888103415305884927547490302329170254175630768778490232244138294628256545690486148561248009920918219015095988042028548751927887240862973089965924277564213933212042950972206117413878105760719321849820179644161350547307870769536395572373753062789739062404246912436161720483504596433710895969458963151278887057529648289625380553989972791793047970181440492650869622858277511162990401155960097018475151876061144753998925876502938667042816761078474285762434009749391029488901162025828873138083213919469755304398140580073435088693497762781693215803651296980136794519680315946000809231367877959973081273010725678023050182052033052049313386752381278460710937731876846828311413254807975693625149075849449541866384095231286698921351283152353429179833616202169722665273132209192956455830669261849794147213102196613201211377639773054350036256725694581181144190624746534267468349681611513602334005589781613345148296986973394091997309769819546937071846887560444794567145839841193860319626010073601849526545065509783898114093833857043815772966566870318004415294915588633585245103861841873533127686783509605334927278922886767128702108720869661677033075829654829694586837756367418257629645059290996473042829697479082343587352745971199012972728523483518195307442434146782305004701775147405674141771641868594799682541382297543544978401240937317771642047902646317765557254865703276169772038463973957379898755453121955234131802815662743050358495564608136161405013385511526453913771540064792097663828376156567798482484063712477222441744511242640557018236065035864754723229282649487942486985478276692102019618690695564019946566046920520142519994690587138598431040367134957021786089217363470529018388793650399151080120190003563501769070495039960096907676238867128167622726132803279720844491795152680044831047771249761840604315142101541746173889473072135878459279791189386899170320407261110428742904078648137999157451513413462447215312617776454793254405568037354490209372070796195356953502261381351007722432653075003973163752737147711959338870349117973252025390830503012211668443631052555167472851601703674715457742385234976430271604085115256113206318364285445078381779381658291059195806177405912111528594277263462742515128963666687610734272461780444253492107562866356688506271300761255322423309303489764401276356929369212599875428041993680498813343291270747597749753594038884802653487822334911118979744364291450070894808346533108197778394823000185899837703683157851590347314695859177850801278950080855648414617086614840482631330064685970810127441404110350621634512938578140936058060501231441345642037281181589782612756663798364582244155182075727173954474747378452533685331214385102787676101756496254319858047089751590606478485139791118875674225750741898133213188380222761668462820106171496814260420500719007282388799576087871448825375158695953127435417465923805254895721723416372165660052095440237113402201393340615335897731504928870350026268082517411930311875089021456862697768769056789081677072860394066771488581994869825822669630609511048927647874771796074088697539617144585785961442610269195807827096641873288478974355908607173747538469152182817018802784675447728003700418930416952603625817913250399372984465661463210983667540639701334270223436249257012045277926208792303422746958347317315354896423082228319335632741053550675968833619628918001424584843822522339447715665222814838039385089306341976908504947061278508823881660424570860013010131140146223481323005847916130158235314792973622602109653342021065638451645587803085074457096190403929130072881543845387630179242672994866201962693864308526981814528333854672066012215726764603686510695945845400262886391445148177049464281903467629240415983674517088415013151840165182102531710805091209516271614155502084945671422946240545761132614424210059396008412291323702001307437303878400446265445825838498996714058550305869626089884099920638201840739207181225952641880740745557111506368457067365578639978118423304955269867753336518056156074019547248523401993702736907021162663317020543405517250175939305616064631666939853757489971941704004736799463312422748919426406859430391332074457527582288009080227006970746967363683240623639772539816839571852548588066922238717137303957515066488880327253192876520729987937599722676765575732135175352150404298143014900115023429116328936102177465106546099572833733538479369436319069018174755413074968137417837849911106410975480496907429412197892490635082846180044742826526785817758351256064205342315739570372844947424723083539346316723996219571010509365114700241436058695749832886254614574458850588779647615094285298326085169731050598312308058351362990174247848532014588128726111747095544715498953170872242666963825417161291494144755298202108042717003474391416831332011995280395079361517275559050630137464770152283422986021973623259405857637841924165615512030627479446559596121676292503561937446845067421250629283247448670121175656280849043974497093587164099115075295553223361464020470766588122923740736409789148530777372863106334768413832700176064743436816668455121193474867311118951440707417511567147990144526401289674046494106865543221282483314864539632520311966834151526785825576789601281288448245141764366570097310339396332514567770133561295844826776740467561585151297921290982294981223755179751502098649253427798942779914949656460632898184344383286117453716625480340075942989173900450514350197938563443424781384458876586094180001089906097553367613399707309603959177224905987108195899223594049264632504148692548507506292182536157310035216925468122477673243008377941241646679010986024883244506415602856813008503242815688265449355168602753578750630536873450774737577056652377084088249571699705793933118120008348415446514229395794382593944525418272341660430043163094929617120621436305028343502841920298483674711103136119512676630134523464293937115796279011509121836862075069470173670501970497331400041843105494890441744790915202093639322746089594437364185225703335436953251665385548981878324367880679555066888879284539029354036928917462651521269001844141320592424165805127995801664503366686948945122512644083656234060825833841379184699273060174292633812562968634201114155287533904785698136367839562652028237653544482524411566737673405598176987246678086769149669895258406420965430586049759005893087847844869497478661326236753225355255763479170467365947354929093354172823113449204885983470786044957184916534067700911756459978393876918302372762623605042478765609771024443906811273707725112516711442059915513846769608754451346845464783435121601333599741853119659578357683367236719953947783341979648344587297309769590126409363464533747457320805351412336545518391385256881198000028981590962370906004630451380129632170823359170451466498728691892910098436128804036364441409259094491397265788453809322593573192146817903622309791833899362383743167486530183762590855294014853146358604589987217439155772585213732912571995823128133002307178124497264535694405982779526391506993812896079366743827708681357043219457481392631617626482581916209403154368495934766061452694538981052404275822027580932824837322566661988893624163926713197795195752491590736822099188014883764298460904675994719751396888095930251514189840554012875213140989125864146666633255170695693158491485420924305623858912785595984007051384564247145543473751262665906980626100375815536874646877092757323003242732943995027856417974776310364809228586218513918451515857504168455103116581677914865990095742685706439743959790168643499580671583166483754250012099501373707055900882990624578153204773650692648705503700991997965507093042733808902443391415925440842714197179487423935958182891842304148157911881824329299948782690771592180012788615093041471197241299108704420286213301357939181346534127353268673488466766607481629123913028859589357607093210298567857984344360146448424550036090960130635771147385396088587667787457534025542922216288463138836548069925987944995311745037303162786148353782758646534822089736812753971596898390133270607249471441162724510014341622259234835089247156067571854920686101748353866548026372077333207413307561217885323755238040573070007599238300778769265502067092688266301760239531802496686400490918562714312117758158539287445317803668665244950140798349820913203301043472609272547919676964604780597510304073305689796925793488315705253583046101624228982365213957297051513083707886775682011703939089768040411366266235098901095670799897792105162157568320735697221456893220597166385082450733140475691572966918444469312940770858591442436317727962745877533756591945627694190318885385175234746051364910290994966619732950598383464235367095896130187209177969420517670054941274844442406066986309994290770154432283018367017396197047081182572551882023762288209725388973802034531922810866882261310510180010072327112512056045289151857527722997667232019256184137586337128799294007902093500667792953965729705447247988172667255707763590814881844781712516176060158425641896067362490245029221146386676408862774844680516456783386050141748865550146243810464616023609124302150855735112810323795146178526957171701113543240839046657339222832545744893556252756086903943804833093133533741556670204771624868688977338054601822586750594737440474319678034277557012419127024233065948516008723931415992084837947000824192123334614377207196504428697798627402354268856582629865584592865773554171878505788413562172323492564141504274590411579125572668190283408107824853063664312799135556618035891442174196918030250638287640925049050401487140836561754353417445074845016411545907025512209847817255241847651103210547240654271740131998533122990809264702107622795361050474974400336294086200945381910724887736925836138112526994713603996244577759259304289592793596380779547212440711578432832702251785292337490517574437870255796135997453185493448456993134268430991701002210073943423557809747114491980027859534004893847697972406707808445959269715032748073384249266002751986360657653025622137640371318983994668765191305765888999917458278837116172583491599105656937282887854709126652339548969657380665434519875979158843943747901514102303019054830135564618062548051922536489929941596926679668289934542498443766693741892617372115195814654248272061404823831284923625557548363510592281012838146799030226865231834942825373044339939423694693428299321867518679037314613039398062708077773207117063626355916895444604508060006036056639072533641157959374978245520066722724293677872226423417320215222316066431503958416755188225997620586723695319659236347610494143804082944455349656734365037648431370004477380872504651411931868687956001372562523715243124321788181751986583361313510301132205077598164806986388522521762484327864402979074385100552795299488942238134684521260684186847839473880868463814295535087618874407089462036192346290859174430961211588794280386349277708386060648809681060775496632338194120431045092467289250799851020425620584916043292931436062261527076411906469105289552228878106410299519922935683191367084359929096088025971527669964479978924260605915458292728815270408508703387879067553340708988041802698543226334225724379345296325389523687634781062577655485423614640818878111173076242710552418485842507762085439327393074659927895726197491157675113093279561616817574603741294568386018894743157482567930500436176505317392722142808564073664364938235461722693220911239290572261918612439345487629590023790908726454339299950280373894019882372353392336846872016479966285519902621663175834260916601128963320556284556804234412790659824098083909621631703915301316034135414124735858343746117170709501076009430467736158068457950899129266552826808172723161190965007819824912423731284956894098069447800366711000640396218917477575094132970772772882994628249981507449865539496821536432595353885605412999352577881636121839612517781173306852886384825518738036983062733044473605162052752252008975398529336547627488095367064134348968658074622361103241917295550962457978289843384112266249183640182514308547852327471445684717699408045273452744727682577335016797163220564373706315992151676561465895685459038236423833468374938955477738982935003482396426412551761759325362683884050779467461132208065966687742450966170052787736277986512254815338250126842632231979866846880925400799828278668592559844076473306538891468940519691133274748336090507560316591665686058761065403377011015846787306597529746082612037490691946359503698497890388551094272386987534304602686347083845654377505152748836380442559597189141015035454036293599276718403318936800240911587190784371045896282282402651864380849594504457086718184990097631484267498718342414296680677464572561427808446459357556759426162267724102691705749192491254704118867713418864534938495456178359484438228456712205286792329012741485570748301298382073351235298630423159689881671821585880308601025235787513528748566674608788748969688710458554427594419473750735066736343486732880622691392513612707260140530957153487916751818678458777768950556305646916561549945408930939024569794810564603002166701794376580627922991762874175916470980726723879706885384831483168981708323142945942993101590458241051384357385843721177600605880770549288527692058990650490008575239094409370653268720709556078357040167097964933700719253005844315202355701935795530087212838708856311150660851568307548543355309603757428633115138786501248320470213796027451739439777010379200783056585460220469673193213808644001316395127392931265645748819757342209502325824666477691416209860600444894687951594708152001506068647258223768846686300399995276130727074965102579094863770436446654010496417776343037428384559716027924197144916319211035652238231711135961003953012276409269853000814141015519112449085557943839948078889609986548442913477607642055293566646542871863191475978280605426192603221677374629664549357702550964557897760247268603415802439472893307569216284924028312926333579009525021121475876910529875879922925771776419867437060678433252871179213418941050597415245583108668569428021968778197670679603911668165911984972007106374268898413423692668309847730266185297135159972193775328025931609386477973288434140704003158090474214178019398362925994794336294048036955710170469394777702460090938847414041431063165421560530149949234973836395461693586434783991907139274762007743901954967829056269884112406588853955332733291065715889981859200168350360110982837573673178020357412578808882364848403565456619502946727623003222072273751116029857331148358651478020367135641811269037177562879024945555711210058448166879679719749866545593789755625098168591788875920587981536646885954936775422078343103351969566238941024549168597389423196445983952006979327282152904527172460545267691833486710434206900583550561079317753032461589239175199262109916852822852347707373582537409738985856719349307357937630604221116318953022844710965191094050361610986313760299317492680129636384787979414885028042012480124727708874494781904881899006064517199869330346607148813476146601377415600774014701312536935956663110285840613369099881015950210837390523563000390636483137147485795103596203927622681721083585153840155029256430672853879283326945892823276081257026343065203874041460792288302315464860419923417018233646285289721554234607904034572763967677189266126658795664690487146140726779543728007702653682592269785951225185628112842026489594044744179660293069713392972321481884153093330459710319478132686579623945449379955519466977869346198566612579359285091625252025439956401162613256748963564041753042530189903019098045796228363009418559320329607971398501770404948523024808316237827988226416054618671294066251331905376157021737492077320746091979596789138875295911648341604384284306805436264864308017635029455515767501276799543719625333723213899276820322414243019411904280733019719774353342461559738054453380623690286010919444711390988269719193777202756614457139366654190331315988598326462908043264069255420755626968533464164805490682605106148992511464007452169364085827776191612199768076958235393132394919852595609406472189953881100929811880650524755860682196284458183238970666946505717475638696461464997695855001826104525448609348240936488280263761743851682907048682196981214819425267530215788842653260020747496376797808417418693069906122534646157493821633277010621111612170161585047647440658561789464003339312500305745411207453977670343791698958779147677321247399809301543568506176782856234828922409148428198848095374715099865351132030215471152310921519854563565308454888129766079933251921600456417333547452797296537066206581451560156905752522565612032147807016462169226010235355471483828147696509524583408064714761861874111695349803849607879156337092576468126895741292204447743553435458377994489728368851419000943755163746943919729212070805363283420848260677399864181422888749768921406626501134258110457561835232077643905054498652320214150388057521932779036976082186981881170766552896488050897430422609728156948661887467208600712489941467053791444340665810487547861800907304453309175297277780278157984394539248992961854428498364078805972269415750948643716071062255779334100862578645774333242393305656330995781502208204972430386457602216581898751682634866790223925615537738413506326467391084077959423711506547914264089062130083518030256232845462542557266029989492133257962621180024224791067418179968138966665733575698103769431975665061721689897121016382660142641299720562058582861531972691952424459374049908170570983261889186281112602235904700225142138061411697399400882339552026161441555463306233708925266088294450501148170805671019262614363831007163730248461898942744402195067507704684574154130020792900660202826307342933128440061866344925453682818221102489973465352632532182898464039283391365161144594464908477971483311956302167760993494185981806596388719176355346444946645707747516366553811551503304798987021963787274312348772464090725117877036589628681658739197492088913213301179859582022805108988679899193841008751642141508684006736811618700485178523632960841783230980428250297539607975666816914918745037482990251950386288767881626850778359385285429094801716129734067588724326653846205975387683554201045681817019663368780644131242242476627640438794674502543841357687357490750015044817902876290096216963605753693464235907969790865696315034382521673471482893219756949928503233649110034565053648730691315989405683745122860776227256344413208240242859415844986379238394827642676906959660153455667293557463442316640844908450705187571537008441105783751880620931112733727935149658725207178449879719373953540322470663789960275961532714686063241585941643012120635740908795305956322451013271810469384589838861853528308379439217241644744870073963386724836289100947396216514036197523956372846722289943941018367060495543057127023420859172686741131382727197382833093858339830029860433986233823042758877372814365754007480345167601604030830255248295565504043040251274151348584999054088353548788826505373349472321530239641944697531878509212268085338023838087705804349918945640699699994285901818040166631904515684102626755074790852923811413908407250787488091144984791229598321234561991753311972841848010134850541239781250786974474201259401846902688842853627831033882766236716205027323636070833282850300496388348775204172462223568084422646518360440412245127639422496337108565588171542446599207291005897723228077961966855907420371837014604970173495808374643640382895447696974833882805949456706558038780024217877132678971608081616720003953262027596496836796272975499132400448531196735490394902271254344540508256982785684728646129056855128248881429110576370238060812136976136237393242350193925146014191798924170041583875164814013255858520107828105015295213590391399603073272657650830251507594252928093133376013562039736475885933239655973703194465048489512190202075680381495308921262115960648451440055083696105527655893522440170699325763223796547670441944352320913146340097599835606793679726209013939250072759850652728421525812181203940453800268704993400718572293668427878876796107404688432367283663739452620489936008769279678210549682764984306751600883809978128135030337863430318378492733824170142765781877772205338093931386454437283176596026457984184225736013490677412899226490040434656037396842606047391873720871239595672875271115305045551896154334429401625237326564802731718814259467075535685699359633372190848035233224256179388177435160978849449777026455008410811019505629241561366098468770272809347498822248602868640186986647626580731756596881052022661063941736323273369861751989920976859205502217406610305879226261777608021147042443606916474568031101738705767889124011581440993649149111658891956338047095684056640022308870303773853906463428141806851373448733888714867178479371437038334080585180440645661757489239527439341200999852579532697524800270032879148659528205752840075951513817533829221824672830361282420839638308291267946821453187257037872588570395468299444722021355450556313881454311681313591024535219379736944237579314992596164807217970372058324380734101581400981359685437873742550061843494224013233378107418504856982397163536475968643971855127712804620751622999088050470145753859630686907300210045639322381507109927210653142204954936232975893408051271217811640510529482638535029264073909227384110831649015251991669530447510159036723183428508000048155885502665074025234178740908365442716032262618251021701119910295190602034631008836083346373576914074677109792484550895077852497255280457875006817394977818225686593723087064745416528795646120599259235808098932754539266104829627731428861651659932088767360281574895173733022062679460436631293592792802592293284548720969099200883715412643083100519495155272901202888354050746737504122009410232455437956435249650283620567870880463397723107382083732465670784524301818792672442437034941923890603758542862259031306323905662687686254867006197056037661322806770955596456072830573524078788880626936935179183730642044056531499438324986540542146018499805982309268017986763736482400916970680882463047574533845934003246225661845440901267473350559034193990536628815583972200347574962702626958784276356656672174643387960788106669962840417118062572090437612185000365104430117358318699231511562752128713717728731335002356203652566839116905115818258793863855922441253798183360161522891924577251364659970118021943974046065143707828071452243259331916363379829723781750632209815191187536356555424851808606867356415092555086067623323301578313637718580892454152614960475051519235730931893958395518769470746102867895905928773870451183148336509505584114839746360087205262242044880988773440029118151408463655229661754815432241984025477869933400460071951316918743815786386819826584503612264496497097374929477595779978276957736893788736717758773638266950635079187355829170906359432808430753970749318728039155506262711417478110211286273538102883667623393489711357512389932801088776336891241981385710659368377246334764660166508212954970219574453453720438267711981742201467760672297779377760154539068279894939219178504023299922110272423680817020298466013399917962346502324806781427114247354313774843232887541988618744046341278438034080432086319631047185075936707840975047664620471367561740820687202486016929718351515618795738293589958442876092421972366457317724839521757250753908452728534416753951393121689120548843660604274291738254128427014035950466975488411303641786048433155839875115731925920379201032355189117085043818438197497638634433108950047921870077544734188181015093354238397381382974060633515456388511181296132310414535151174074556042162960504138991930700792682926389622614717935317820561582161239633368364264799715701148136683601015548733667872628528365052276271265382867283246429860795149216621347726839968306928254042874684995949579665335789082638465496201323832278946755043280933310850295667643420909293988397868019032547454088679924221320963611294499926261622567801938942386280394902734417413106712310318677067625031064533829014787592254992375357964768766099804447132339670955336545801005198885103075212564877388399475015645825880478498065742653593749140646539374354126669064172780787268555845403391362347815892152286072121579158267739115371428467699025206231117414239361213928536283358111739257599731664625818111516984235860713642072905008077569139353151013452585830606530122017756377838824764121677825417853116844244324401089275635573122814865540736535940664571768577781125077727708114919663934118468901284868211710306937306658165363083274504212288405321145590334318524534726126727358876831808546389323245006109615540430488308791327964290935791580620971350022496196468913933819967806143033545250506139024066509588531226413852281687213240674496180926531841987731674972824130298656754104451166752749013752313822129198901809944042905459591494500029793132710588645973029466345673614907074196763346975716413711376054049378173536891102357423408743015996220957049552280962307339607928342705719736369660401653493247733023656416817177217577387689634334314057957388797490161446145005645605040091509648968500544930989333568890690791325304464145513493244911436236150010580103625651478434100594964028770459383940961232290537106495022833845868647354847822331213507234410760214448740250021010926932660806838522882863173584146066468278563708170469540938052736859572565473136147479443711401049521876724148684727482582845314092836520723991178192551317770223558122985477727403426913337735078896323975125350561972013447087064165673863901878393782672729453985918421902669523072458424531823985180260763307496329050674439189926631474011971150139651809560726182494997034507383916959041422396794503753984567495243283079297438186594918741256368724073903125626633963425321767291674630856914614662948424764239694824328461459629225226456967669340453916933699068453514446452382979162786025618506554119755244475127974356021913689307428610744861628049803686178043659167183582008176908257581477077547060116478382480363237797262470695567954031872230124824829189339097996981899326711722913330731801726496769262559164277785162017514713364559546250259823852863938233158562354274194805995151207845164442832696054693772725431598611499642498122465436239744584653800170098422964607822121739743061594192434966587357304374200808630188528269358086022098413120851549823261388667169886747816616112775621389801402999160994514345072285481243755913474838362434773302893701373317406942340196249621406559968831605953346107349124159190018558634402862663719732390097848889804304783890811701588527385760283935998816585392182975122073740925497598670119370589189983453830497196789891745296601478881151937013154833928457227536894350400086239003589310725151127894765659820876074177365687412443868092696102353899158313285456380379595637398238021693021250744034683999762656478389014726595670794101758887802539964518883078320971025954893550052706884519280438564084522705144553630518945910913955792011016851708907889187881723022776798322373929431429549876277787791163967186411065119589012320576961593397973225678145596580037875955826743543079458134888020460843972295387455448794995775289653306922484889949591543921775063221957687489511634683928002122512699742732061879895894594309433611206254941112094685308644967293756380895627948407065072813518343597011545972808979586560182815825105823151556035806895615005190419883076149767986091872187444400646875480042776993238345854332685530144980593002375748108306262044441619693417745319451853739959182680451840747370709589480335139950480160442812586322744006376075404620228008317351346495143577360977230587997803497555552341378067108187841411590611792261595639388517178016092834805434833301385758392541427086108874774443080081180557592694570521834534682467688608734958270188179234049801188414916365376191485128836340927159319172760107612010336370677633129635036759616581798963858638189104586000731276649660939819450793664436106510318769677868142225926214261209242161891054301788920513646333495599000790148758125256241762832455213825741859232329308881090634997856955569367610268235582197050644762665948464278957685699382081154839976533652809031861647455833036150748951860409458490452872043701145540727442821592286913359879377416855639490439867854317262847251054770131486232915144149420023217692097774252952497493398846715347759507255335313271230051547425860048221634756645408593876445705854148382796619933249174917259635435618255979212647241628646967690013050297738338594910286466846840030654619334844569688121727888292355715022007624274076671027178084175225074487919434692866049503415487812288757911658330229297277781009714629968159587461886870274399198644506045799291673527667287210608721057915086196237516964909993221040843585233292125835625242904521585667969980017820801706346871244467637709976450806090671430662496272393848458998066030159578227523171136324950149504924999836209167512777800714513511410003203460861453333181820050490782050119347812081793754599497692766978960781434463158974220913327210924261549936056521380747204191608110961878202790718318794390725591591482695116664249989141758522634185531491581472887767042488128136374911443463438600724972178910155669653294403192358771569842076890752141453304065222387359700528709342031194690845488913491576246027551855848332834524322766346017508021450368760314179919711466923132241726712454797310647211196672624403258947643515863624083394433149706156977546387338630131404904684456762056418462703874966792861349923798369138948039061549525650992556483597418050265216292799843306622760197301500435826249719242789191394997324570597306654101920171636515781269652548724799604386203439886066227777749598512008320813420772580940497605387720678159523483964443731753789570163631271842183354593158021894490953434680279160058131836527179063993448281932787324077479999727008960415216434750840184640859285294883116976276003608662201227182573668606012728092250445487232820287058274582241873106109374372355215743903840908580425706432965372338693817078567630683800822008435555105679819675727984414317619393819060613054196075416718117053067832750259048000718690517909381632044327502430223603992693186529709732312295675360540718821288071968903685689998881340100576350457636542979892341804941169008524231388580717641560929735679480191148487899669384485673794459899432885739060639207027848672237689738404585923160793175910896461819756522100230006446901328534295661237856464984196398971489163639483170343002806723290056798596975831301722551088458560088158315712406417816483570418839272176589402851131584530643514267187398795164185776569783859503661165302781212256895562731244856429259028522638127881028232629527074397837072177779253779567430334451442336519229677359320588614895257815683989283135211574965134659675666207880568062420150645722787793528065062406635929116116134647201613830109420835170572993298275145083804074927539541120650635488944910527850613487546662877962058136002905254030071835535312850512932040667400126500769920852704245539039023983012367491907198738124918105544419092454216800435747849262909509238773340571273130628688482579788799509382310503363401417374732805297513530371247416245160682772277395079025521781046888844730565751092337848106054732167560278254687306531126269576283333752514755635811789098748806188841901890248801254493632847454401219732056972646751753266991314215826955914272973358649825545458985549709471798001128222247555525610262729852217454048806532073875030415157130833647034713700416162179722058250400622405603291059823111304471968533695595824926342961881413723672426840546635811075175324952992300858090966888630177511959164102921719040293562563581002035370844782564055552500074310718316118507012469160435190291909848521786532629656270468381566707047544970753745531265984124266227652490023518420545920507806450828111345556383281879517665773576919202148906442815721229404381525771648099512375944462916105787966002765271444202917363026500948123101712067211556241302520554509114141549864563057679643092386313963716388271486126518522129018386113547541584376732201924801246480071646557391220571448062488445537754866683546495212493106815022540145492254285066972678070186323362556026570159216915472669803274134517367868006350190448897845690219597488203045013699898100088622233033571213088934438537225896298328451828111756372722325982379545395808950604766914180576417670171608039428387961544199498617854676671958361258815468482736262769719911151164339811410897895458182571260425459878239911160333605743283264675773102773924530514082393201664243330367272810928841624956697697768657619727188395457121341692275073240960524400425839944391727055454724278197011287843153818241163346483315654327417861212249216758980314417011111937956801383370365778342713733502121635274178844545233691338053772932127339745385036594004906735868535141728046400523345938593069602219336828537664659103479931786407112661872459832190122562116890086997675489176058618177925242172040400488689739987156543325078433998964425203515891250618811671349397859304540570828796660871478981922796184603456402486960427081206278736490368842283700170158705012833243275378473962075281539049971784135415533088168582754345635960253867766447825577336009439690375562731930132023413942511384464924009024335381558586716360925395188920920775826881548634077545500573069705863141477902253338390707459366846267655751224168491387221823064998422791324489677768650834267301332298580963217781467139355641637437699828428742550302903841644479062539390898588546443924137561664016085556841566941644987241664005158742575063629003339450520411687841837500980872142573151829204593336512702309037226561269135131756670364175165472392503421403625748394242511846753405895083470080863991117010084350401716422607383059170182878233818851172238675060426528551348095497513712902658390952627386405019541121145218383043343541764579697566422599681204661994728026081622162587747976532266811789337767364817687633871983521234092677712405085197031189549281807073521405667015057435298540512435637240341734072455732703312894571211960130443357803905149615548779055920717293807404703545410743418451054705899029839194432265457335107268131678105494940080169534850172402067407996622286683426574188491698452727718756575952529021841007619863561156580670865290263358398150385095180939350542244363163767502911770251988321314498338593290971307420427385570901255478611776512103487570466687198079683772625389369948248396937745150646773504253680593343484778632219096242275154925324047889716146111809220329692432854705328660167814293746637713932379810902938398481117269861954314273130096093183830744750420860550760082686834104717081819836154214596670063022420435072550760988407372633227865815210365501858950944622294511593863753909918758788476288401356396457004454741838932956417396968560066905236504933407133692627465871459774032121772845888369305170613456923810549232494399845947817524207121532267130859985761349696557990854077219823596930780654024744734084458011978643292944522866798397370403316633432839993412769863231661549761346052329795957239559077536322504642933678224934752187888361190136906886097099632798331017637221140248196811058021569258001326459515789886282077916644961418996390678347059088592262077919705181526891948341773330272025784289231949310886773490095799373065962380928682467733246524212224630988251944946293232533546856720606047408744943039304547621190401703402100750724937730306610248914889616128265243604856833283808491479732925259647099848624112018542270300618412662922618171164059201304850040168298324621929065396138550501373948392381683363066156953800610669580957019227818179596842568935068020900886271366660556801820038628059116767431557418205813674194383154239120315099693738016263561430362213575800170304254451294638761079177129572547804457937708625764023351568956033940128248838049430649122445366841524080108706087419392450736491354226502846757632490573617730870537768162551729101188779405325791294106022905106457973802073295587216042770781787343975668787949907973100693180874377107797886042975136414164516978489007139430607073021737458759057107968641009125084055605585123933099814003273698014373401853786370517139099757226282634036314417322063315001193096762726749455579955264734905121341879605872120092515461051169151902789722260632730095524940812909204927928535271616702761372482958261433869225546507189833679616708743869846772192445774847693219314374577871371988389385680740189354911222198573640456660715848447588198434055509662418010275247973187369293464996771710779494605417770591131170580223340170767507585428304840328066478917547294996352822366203261032363043901371007271545895706480948843355224783094190651802353247892207006141131988188708701305474195298499413353199563941232816308439834001470949189613204918495726752582592317295644555924584843683002504732819860894126190359669980993804795297029480928572765318671982628460327252938265309792842979544451273497923828648954060083228465363744875923163858302820210106710644258955194948431112766038659989648663692024857285425200257635829555032979265423663812268263848853229405986819056579374970029492684260989630195673357136046272430560826626266956177580130977796501898171538660585291508304722998068455737358622424084754001903909090511123505181523625746476991817101365376881546696904936546021731551037360762518852016955188055358228844592725968712075458675650811740638040909106685745350549056610474659462292969159879116766390655816791532244205553740245544061339649942315089653422175961988790200837095077313479665895138520803431255574558950813195389252796748446202938782433198852460588218683464781698238135582157085852319758081703939337563163603448310055978809713460574165496488774205855777273884279244390702514356582533218476285337036847436279861111764938358725352225769422854805423843309730081472704901035798141700984983724530562728717902036674184077149479265539831104101321686286443759027318734935135072570475266918363897138344879849414180459014341054672886807263578363910536689694469668302225767007131245028045647180135017742725624569267934385381487105858572342014733693153568377280354979377321400846856450072780835095825684253522384140242333524387441280849162479844952544050552989718696639029125906090874599352184706596137341728669650520150521392623932167614967793635639511146847409611702329472207075748191280822822701537356444884368983828427347956592328703148294696219830373655528924942037379584091995540148738872283231143988836174731176637907821565521774586577673704191727285861710060692671995929273169998121075613583404269715528004562832664792819538112777746594217661469962847247265465051714117004605758982640882779428125056939530764831673392962409374068328037331972160526502311129644614735410117497778982415703467568704588923126761449034832228308645249830968296638696439009914221088996225719248068042203032279466352000785551589357974176111499498223965646050190188384158148605980943111615714179536636758487324006452539860882297888312869690032848127883972680360584573297881923195285927228810602245106653002209765217281442292713233312554914128728662811697336414429200554423831835490123071661702382352632893875938931223698503790474056928074316502107653358917772360988625923586055691364511197019814346360315831614148365217328705977458077350919474017787653254688829390710888810772189199933070744420769820201042330053490711263355985744803128573954439364835000992865267793494696741757639369767596934818169011325024062654743435944325212775399027387617861719361189754045418141415150845380777230553607206267958527735844639344366355396672778859037555295313039270776300171230094613766555666341245546984960301461606598395867440216340556678756622559950475740914026968478246956449408692562191997205492628078893032577852255621206516868814746066379091868784651623522881163500368440599916553628189884256729113974906885288784357064837379525382807354571853075787685252987120643720852734620542638386695568186757998523896542566943475740282195753014068722060965251100790600521826750437921942743545312619941664826234817389552098398716457053094654722860847105554130333837583841182347975981555769609311071391140003897237531489674224497579382816319064398908370248077157941816693331446109828084394246678316940989657201154976874461177742044257561873223879186632254217997124347800005946083956564529231646849152290430591578413581507335551195761065260472699476282533094154146598137058534376696428775199574237459302522081411475857418840462282983682242001496117886984677687424581907839860009111271506662096413859243448003624735456604480811046105252854703492053602694929952570569663233792563772156007228288747839831719619586170199923612267159162402770276431198759971884735005605925809098132586589321668243034792133692134055325869010296910790449654268502599643600194127108722121235217717604825690037307516233750722918881207065664250820766312825829235214078026017302745979774487888521730156564616988922360060666746760026104762302758070741612687097698429594320610312547569197052873469062349297349904527540013233133637559600437429518864224700394300354777276740556312912971372495828594547545611105481671916219967858827083649946456745175473036734144289752280511345358012683979228344516189322088909378659841911513903746072643778948990657554641647927778817831134676013835751897794383115626115154622285903869405105333556059552788460331785089642875399566183236000474001835319385476571417670980863071356521539406992988007549076132998273324880016529929338374569284431667672278749544154928043081387878596648510644700486696544241126555704075211683584180960853872991967556148803529371924277036442920101887618270937511301484530256101192791696917894229336014549436662355426671195901913475538435737014297648044389094093674640483950773898164143519401524077677762441154537517985579637154359122603725740432273397915375229325600178437919666088218258414041900300713265240612397224575390930215561153166519414990275704931799107903479210215774910904024423676176089237324531254956743178965956261476920175959447012394770847417428240628652081077278332157659050056545711533820961885526766735182660654813167925248622380946662076821414332177310417728534625424226876769222844844245538218793975133648349941364524708340076389187545328916892771931767526851582846712459164830892440101120860671371736391344296688352312367466917573214426324641117591129128779530522406378755172276868051897807395538143009130358859265334302823457402286717654478093005677039949760793089165914665317732215326982491113311094657726546873229909508104781783735284411952844640519831246835457081383242689220248488713345131283747060602887064859536897341115305199297156830005157431018207103036290928151920470939390683631892657287383192889660446899258847586067407247997398051635089480176552491900725988487266804085909356417683931829771315508379046837046381622151923058304062014762778789114910231943849738518028373198128236343308614735682848684517826576450797170500067243237727450801050361162084715865850269896353247129500919902634004851071872548948022541097782379915535384983871704109230638420534744085004548592100867580690557298157649602081073585173781924758334027925146455377629230169715785016749629787696867415409657681350806782549069474297564881512240304919789556424546924363826634878287298499750904200143920709762069931042425389875501969140005819657695703586369772263954735635534825641262449747379073161375606521853764678653606048480943280887961737279389522713004212315730802615351967398067369783383178408812319893994659178526680848268775378225844082563007922571612507746558088538427633920894323441844249966249520229995214299252015281488417241447085549540982736016850488062722124772011696481088398443381557159294489781728219296489343861025849538194897180449081113257060627005313045263086476360224865769119452670145049776918528571207588737913632056216009480294491538328067283620611241555299889924716818003709943599438634800668439666513358923037281187188661541171847916872878068123837998514569291448705238114925480543002239401134821252071499735139605336043064969354142048185012774042636240079173140701965089146993532581257856211123621715319791981277536752085725953832848342006553113900381443744799229812782734428548827291903364064754539404114350279355287995512743006554569224559920634067722052885301782639433968204867434785273874875578932564002772611793621725006226595838956995636621850247722787143106985561105456175619914331503973473546463035193023597053727819578706913725639580270900043756119555025857703357989517183072193053150587823730719106468510427494092067806793785372345752700209039986098084570213088455067854428037822998657533255748562658813870241540269321340334688886531407257883904402747811562222274144260075890974309380002560573495843704087488095578608417351394647605815231425138667413962040078693330162931264728404723059011769293306326332848918869040082050251070601381666799263665256289882899184329999522422211482097233266509738685129836456708201349979487409613336383463102792352570182398381249857396481486119462346900676075077854779031599787889869913746757421856690687221621606968862631758630747171910588294152127199811732505115187085062448790993434000450090737919220164370113501601626045050819705634058766405452907907415777154607426736270643864822156645892942298283514850365225029693258771820508251036195528035107728329621236779677875743356282028072378179195092377492138256048314106732584403254230347023734087429225855290807386893436247548333770492420286330933159678734303797816555278124915058791569247005290317778473607828086873948245005068503715910228358243828669314670488878651612645020967055078664829665216322030122652599635245596429829255280760101168377750686842114542054138634563151955431637485016627766603272345713203135342848952323922709432010023215007498599441686790153363817822722463930298595857268362943934230811249375528557162313603543720367416780776088383725919021238700681350804050115974151142859614508031609927718851923835707375568791308078187562763912884391963176383370024435469988585695807007697819127073702712022178545152965110332379733429644426094823761954513107211307663895034949376490009596728090584289877594827133187659580214649366693992057163459050850016119773239502811046765151235306947734843578788164773497612835000880152750614478226994537589830145259517474971984833467698999182381340508279742364858869849017791920944829932158765199489889838317479623918338980767446540045337621365199128416045250293120269230806189568349740694695188007795690117933605112044464562916997551710086556278859256458703370933898020052993439681583163589651702042941129764803684709174606284738890993872448783144098497470986452703565522448252254674339456978977046238378242758922830432609240968807098415569648750647306506002806301640928777808782486199980952341371585202565331598353257966638143305171362490094677364625718330837405858169394418969574401340683363996318394083956247380750086931230312220155676069410966268936284216085202344335419909954241170623574093641798751519254249066008382644866629228103665639247925968248938298916033862211529771407325702613214010670277245826336635611310022752729191983492144956391499394566381756703185193706366681569877267908106057208085479600336967633455066756134797887287669521510562243134722056678018999121668572255474097730333279586787030520862493056793131569257082041775163613309377678794095621643938703720588453963533626902690677672519532785159394660743457550120308652332014973094403962080583694609619473895380421560871330879057009016374819242286654107200651585558704887880400889212183397259737103206378860816355070654382842463537740673434366315342530623994177210607258398042439057772654114189109936403878339477885272402813941945646213617725697817354642102218289759344993838424676277369110360822581539572267709472349392726996912421834443468326678195830719254261773461007841557471458907592012961988967699958993036368655805910252492190205144382131780327607000178325878433395969623854822440982580045939437919427755320635959002894285427726981079620085283259186943442465772593991510263215867891488395926403703228958099288599310348256910138125649569177070247209056927204804486816371556981605270174481397797515371188756728959901830968962679439327817118470377159330287300349974206095231659930913963532103018279560855372882001492730624917705747333860829763565390460685126244981436014040605332531066193748016410842940298191952320965951506690773413577632075463139976066350702705902750626235358108774357673209610040641892518310625216936650098521209479833290627906370796001175639973673578531931742518077725291504392775400426712166655704961519771184355978517274333930005821121629065633039346566426415947564959612323741442496522692330911047746548258893107223045750933541678468143605229620788055037912913129501363296326748952038135304943506247017954931202750070854316646052008056089965764942749666224466030880985008030653890748012771194191090111189136526646514453301097290009299163406904189879508878938623844763650845981638027713112379095045898611159593536056372119172614366138006014556576176588277325478057240965931038804751866109064276719816117682368918420024743784230866998511012488343442876491372065746731127971037502187763367710018967019257087632817417898762697909743238513708751271086678907829922769551196727465782631170977648265183573378007820123346460311543831926938594393371872197001009714162258461510569432785196818164821734552418543674414666321881148475696739960160016661384291357545984416484590919093173866403211303603639589142761594210589823103158254056953662122794340788868741054698990065178653488865903955471086083548575145043556664168821055446905645936769812450145298702921334654051167490043014643552644643901174690504238620976376292238079530945509699435360793885458427000508387763530026971659098060733016443259164840551524075831977417622351578967750814672912101286860969026831226221299511686413218085867103625095779507362046238614029661336601518857069245692480906096923706840891156286058564337842074641090521541825272094936910770568795702412923196614631798266452886031604003219287954651529435731966071200246535180620283097509493897474351976564863152999787333910379365435515199866483261791265399872649291078933887811959477473307013908812958119769834551903953313164984029050390778089721418277558950962540036798278115521929655278177136530646422910933865392217438456234415153643606638874920105832080347562572177569178001378094061452353674023894738735050091573001379042849400121759956712500488752216219853313463221846403236493858045641064606650345755147099196037175915168957989865655297359089756493823711387225777535364841932166501564888477550330495372411308020976049529467315296859377765982431999287910722652628430118193616381791165809561201159005462630058389669907641522988708074679048575934785385792794663237062444271312365755157657860250008999573423557079999421854335298662998827064028406969544194256739184834780538923028878358666357285504324822741516913416146816909873721188893275212737796459894393073223740502543332901454759113116656972424927728115463040814594288984897111219024960331117535338403120706016746747312903372012258707658999680958570590676184617812545849196353290194858157281271807285367462061000418104166984453491612654075492987046310745119409754642427689378051286221019164364057211848308411438900090990305091698869823374679361103629235219029999023447362724448879566473342711022465938513109410039536705222366874516885221506307225291769821285285109452112594377229939084950929366178848329257142371668914053508418798032884515278797263227540170417626397996087210677861074986525616516291862040316698746799353048114234243207915078037561765395480052088161334122221430046311987305637456312934412767812297725751569207811925812425884556993697735306060531013662014314592942425126207093789646450042166803123619633738584541605468934492235304435002207005558832710528014989558250659516052588168315304055722030636673784814935565979191656560530804737609342974419386245663688896777465976191191408510443703098878034334316716656911862548626127257762923339653088716152280436149199097359525138646474911239668087479171603190198204080519535788347640602097342230945394970545982338265266265010298208468035887999666801336532736961972815210105625588510303339395216125065982326397161383519220756713246561132290272603869987296346335235956210184327076261096727239110446820742089167640893912171374931427199275384950825531450409790655112641092252446695187416099777445229296285991148323055625113037828766784108945662521460063637570486017686143931359871168693468041750390669807764501851777575555915665516104824801470011702867364100767355242141531088353116444609242214030107740564368032487556179818834871448713269488594641374041438232607014787668972675909624798101424742498369953446522232868739960258633672726621308842746309326882356179323815628955541774155091581630230826312064416514453422539921663429353411614274502035194224768840541069623704436552391639893285004037952271800474264661449043324467324063445922648971192450924836429581849269429916703899314557764123710525897401462402744128197915996910872620121452791632281958933679937214047370223581403616899082441420593692066415785959605645400578313129284226158510098368015305290747140222538674995269908395494012008173264076637458498085471871228517801040687008307308817206835785246306147456644247890094063274812648704708524966930870755075116083512146998275433502048319066325588891334086131395128447564191124191629866598622869156006326942937627954000074432752540865642237239768064462277251457145751578769179866712596575110432080917194881786044731152408039335162749845526000171425409029809216666689010321147494901611066552867332940165343709709562465688036895955226414948456814010103157282358420110741079269632444227772933953158750651510225739629334473277410798804149267004385930089594658025572946738469550101049561070162295433696329977103432466847850661760347985581509617113721185670490452995094671229945220131877812802271282866212746124760217977349337106438391420656876010696235229595047323254485616154526407420145229990957857341448307472328533086444828904758181199656417381761159177059820597177114804670266689385309654697562725200501273716533954379831624383858496813659464780209621552224314684433630333168899197710376504836753666170670570697650870260295942487602462177642178846710863418598623487570233760901595920062368243396200238626871170646878784719535846591720071392354663924256343266957539946385015644062472993513857864152570161896596119477284182827951880229495472509231199284767826303148902748936072760685670593186132959549170286748588602902750321900059000042642087070927191028023093940746032259051043453822983617586278305650808558468648241906483759751973121401662759051924073174763367168032864613238044791313849080834414353545145111354892072359241245979387178378415988820749919584241370423568706201430564662947328642614313814657916013282875505869737986502877616462938560627031033553900204952089669641197960026982090636313725688072306171298685510530520368036937165084611079296548830980368074002953472434838780346411557247681086544466141086836964293563554955664177647688262136527935184855372739247096490224321218592111331276061605965693331808972034175187995564486065525789682306445749690868570441692393396888002891976091776138688623635807211161456337657553449352591535433385477608657173728570827150573942382339056607055030065437373201602428871080152333425422198972308986094944938228304189624751534831801202897822077459834486743523948758672055230698274859206356565669316906453633353103475794670340873450542123870558114749717598682974439100054800114558516237007889988400358165751597313508348605011001289232189379917143892569745156542678067995517784508822134318898194181042179166868982803561800024683378683825275195236672840599555917342287914407376388328450621595600978212952523480574825866847331403015038639160215473893653719304594088335523243331941830586822531973719218026488654438246789965574619705405166999897911533629329188382051471256350554784456422826488287908960882487978225503509639939313760074861867127637618687914563258526445197612502651204099398354877716999937165136693135123309655583774534049526926561425322713271133388438879505513836301010039415265817825146753059179832916809911528261632351317184032117628339281056316502949315609669606120340193442717454510822955595077775019826063082360032372965719074673074910110565355734420139973253434467480915887003443320033690841887209703215628894456234090602417266534006492485455583321958242034024203376503924794645880335031934681106929815375603907175328518549559208459168976475703390504473033478045693480796386608652494893577423812812714297284597029029940159998298286763713011726562053672619554649619713590459557866460494656042072566732562739442374560542560726256121208402315153153654448120517146175290234267727764600332365490100321305495712886235536733448911257331514327346019785983487329711068004222989757691043893169126381456337030222173077675812525210992688160995619651658659944062996098742342256637233689257376954240303413591504412483276602203795233171101319674279905049050954850249682768800164600836078290158039870391327209265755405450850381090636984333552976878550430065516832171484425266264796777577768148814772675854760135005221948741072411943321130367164366627078030668956420766995852880194656067444039775211991551555597673575178002609149046810435771826136214180000240637920475853263452464841048749843224377596513060444482744493123623128738267311295931524153371775814567448282976642465031634150956722992570683142674713378567172629007534064034750515120852960305301698307587877991740444174772652115488303033184473435642690090354098970257197638631904854748440345520784081356504114960734939920208569942969077920492582407428758357666167550479199037288680488452534347119699927652444130834823482008441628409010136408199978370534384654015401746677333200117655780970171208089058429310177110625211183761520857508061859325182045635231192112433516229890915369771753926741737877129442138168835466300566403172324267440234741636668282450764743012073958245324951799605883414720397237505460179702535253821219488668970268353608295410447980131233362318360075487739064862020223149305282736917537845952706537291606935559505335497569396331246418534542274935468588654354987333127134362568245443466708276880836089973190309133438199521526225908182242849109139893233610514262849786451826000720289773067722883453876884012505423272922391719041841380029148943870436205131227557586995965940895406536346115924493393756261864378571811081408804468562808639113038752113396795400515970281496134478575414565472947599316330102011536299082304935478051295321817440998141733129211655568999190794372952367547811963753535496431379699519323518868372302004348831893251111532539023071803894872913819736123362038957938972053537150906718727862273989554027226919361973865089305905292319853269216805952199710789135328488983448181710814552694164268015398257900119003296498972642993996762349355926723465431658333266764994401097283840716768871032704437536506495860362423454963101500285107261167641219117603839165361683252329769821008634673543112737959291007952924824366484748153197493826443448420211205104896630079164858740128738190057170705133141790155040635606008887433383262240213177577697954979157921985073969605039586611217506877590795741048966734116756182965157869579034721304147701500577287998150873178244877420570504434764078067024829648639233402754362800366069505171946266777569905603713832109662672140613792688906870046748427857009747418573951665171128166795768548887617449604053413943659800167593983883828441931675164877491323179799713498951580811695128983305135610664452128708171106899959229512768135595501593712423562777612830298599447818184058609453294729486172865417448318028650158141083451925534073161251053517662830826558069029057621999050423335305617073451963528042238129264722740455661337442662555887853267429822294023673218836097287879671422242550713722705864410198541947743486870190939677341235936511682007950629015990902351629478682917471618959539041244664388536111705645572820723010327217124201919884470165610556162717578386330224449137658339665909641630404373829794846283316970953711368004837205077521477758256787206601877756228697959174131816546204156996749299675072091454414731256160865963112222115199955962320197248911179370116116312362375649745325589630079635866139621853135721621197702308667250261184185565625079235616102761132749395214590680168280446350142026411384895476353065213669066965602384188186114032884468603797781111097939141948321895334957908679171675677764209349238217454607765027107708352821054765758869387084428824077862281152979574076270855072670612371383336198283149638733588458313287279372471987396238636027505531415993632832597338243691444854117114094893593640342750525470166275735373417385356338924502248522212712603810934528768702430062185458890844896631933982794721096361817064295271974656843915114261673857657307159678910225264014573876001846375702469631094054443568179294303244867135295042706930193794624556662270068718828969881686697778898398829750498274134595196804292547987203938010316470407822555236468816473616318504306396516849685931917668611156524763209766939080097334417668978398077613839506558924794926305030055271020481731690996479368701385001421607664637683846068037796331669796206084083045540937428089801909017516893986852388979721253572166362506128759127230977670787306331211383782951452957425895545929649522602711413218150567459936578704472165617502791298134635262517084031895667526610520715704631194509927353547345500966852994505506590460819033899369907432367493916411781219044072438222291091544897551644157047541129762134695568354521990873219595284438689240892213221304208840618436616750808909525650080392095712358048206809050754700880874365132406870136476865236679881943469636636361399594463066453336473736197065886674569543148213244813016640402050430536190490428389235020581789690675341687761287424777874108256458650720091598300749653501848119937638400321312523568810440578722287463267937119394553276454505655780510943153033046374314255499578763639087360465629211853394587977651927055543327166293870211756050736673804445545167077671090675795608057537564456934843501149500108794473346734430206967203219779415989134559648791207192689927508845818746477879795807178837394504870691286607221628863045593653198501307916106551068801378319157153874134848666385603737906186580536917212175349575850570230712695102774776663361449513850157734522013766014040167637334735438747752049531899217207354076094727335348264542007251642607784940312177330581773563133133555440820092748951062957229236892962825127996351639267539040013457237857639692628522790054975536972048624857182127805985927567720480372529282788101625835601220080983601735239059745544468501680551140995099492582735999370925186483171002911368643706516288261378263722458832027349494061123689084165670440727927480602740113122524393534016143623638853366335070009179023277330066902721927169784426356411605417863386521651912386970857847106445668519498972266023441702046504480709730127548204875627149163501840058136747633774651098797819756585545996675630581366071112367013351701070112996612633210166689291804336561696963415694899721805164752386127380069645913684715904331758634884960171920780901023041653926829409450219468136619355026503358750217428572637008148986267889910351959184688263318743270649313978203431031639984957022746080964059875409301090572361181653375925747814678760939051090240764871183198958783278397948853428239410880562410551347480154532934057096888304470511514510275149593574514048621312421501481388799675397917647676601825930990042690476140890140157580731682331827953390031757573046777966475841235685821163301829876556049072952560003163086488318478308500212060786745158326296382667808590187241298363561382443457677576300804216586675490243513598110915959804845838905223330854383954686330435588805327779951054187411344571186304216566395341234650555697035075828275499101371457006563480209522682699099448937613252745847906980210524390920600084088424853938218210166286587869455472434805020086575043487608325230029076066598110848553054313254663941996086966741571085285144267430774937472175900110296521050682625594283499597935037699237253189362446133376032724689489360695065766314096068131085176831917693269918659539022656445341498629072727413970476253464781722831352781202885036807806502645723493981659200333583436268306515374772303403831988104876988228825283771860951400865830334552674619460920840759569766130503072530119766212213651952464318193426608831880177106907984619214363079333216099502253664379541683867684658457040985384496275151656228786995049628621623076793479331649127925593565203608982207757516313465256195618844454776159433900785351135188526586876348349351344335690976531765385692129821068504999589589655972011718598646362046205625880703026394606492471824464649881584042129148752416978083516494794851197946145153196979863122722583131318956874741974720380504604703107886990123323567771826464185343142540249251080465284843348690075303175094731289636738828823701446559856869460034803043843072466608278553245970738825923233264695738963884683931488132223460614549621067895893274073230814397997218508758446298327439672831907391464180750931078264002657761079684775672230118428618029671833179713426023855795234831868971929705408330518603921857638576876280156987485243435896871216403929958022707592130395677255376037844024926702733248997229856700800161387790867038976346260361366679176966676345375222497572385863844299085171744349598804510114462323999216498868764070764584453440508986920856713728042724113219136503757546956974875584207265394183779260706267013923168440979512368747790847883689843738285777194687681957364531714933046938457170408910057939669852847849427189539251911222033053073805736618292415087623969790715982710907351178587813572972757040005663561177308432498346583000077484980855723297446206694593062440074136783360585823573331966373087706294128367578005880329423780597182019792562005440305017072839192784115210787689582565279990903965911779393529810439681940085593734480844625585776942947470559302285243250561002965565289526520898778244440770815746581958176840553776754983109451000510714269271824061892946039940516222620014906395387265588703067943752721528353135154036480429826427853035240603163194730059506169664498980217014324841696096199289603357590970244542837329180105457575527696848644828764188824097716319109737392514074455804040112485464201224245811582752956983732754790288311635484000704108520030888381855314439342478487739739787431761068324902457841350280685429956325822943344777726543271514545029145228764077632473250431397348780097125544072379464500083325799710698311499255080346142118409549017728892990175807994857986633726150527646089377546136598409837482164828356955846701904338764269019204023320596419731571717817939405331743785666515196564177541004448041290466912821502792846571751982038018782505760723261803978818740970970457927230381300975465555458151654663965995128793746646644209478403237957321777981996751637768011549312341404348201432132032638356391128574687576419726877959251852968121872024729044134023332472726330392683335321823154209666621589942772045993435757787315329838725969872191573944752657743234747428378600297745988909886018043498709689212691298000221614814277586688773820701378089673112690472125246331081675984925201984918356758027560755756677208174836227678559069942073223592771866709732490309611218829654001428338629882017346336547773272229356603147944919108519611745824713170519107265539417081972398479890595177105623182503777677691030555807032970985950928851790748344739856630393863267212143822165811299449051216219008862800414222109811722759343301769890862270085603009355816386496113047066579644113178689443117174951962401185143011818595181361700668357055724939944077051363393175427366767363103003740505602253002057043047475859552705437036160613123390637605919611526329138479600436155295923242880263848395402135698361430769058086102842869035596658577294145974959223227306081351026594708795317320694551414047295955127424838757665645975015335317484523740245696717224973530137386089811435431564692663051779094414559902161418276401030634888170967767138014245814000685454980742841376653967338484783246964197495755148470007921798417572054554402094767097636935144426253217205224302700045406986607231155819028760993898410391741501396079659736875394659406245673718034719504223921202544038589026371121393506230439154827276413391144617931703729387000604413301925141653977732561946533574441823415613165551586931920188681675908702612034580869077730246325290725492218503839404601861514869397423607642633308821606053501037783781845234173878741896258224926561577019233854555372517828061112475943991307491730288737654811625119285617847968854741181256708177720733845857944858456244851804305133985885335032626772955280321211955785086461558088378134993628903559332813449002997860792508303068571807085535988940298990914788861681322322832842390920396685681906428649214557553746443996041732537023104099021692893620437405028238375922923841121477953857720448781645921598849801324468770062983841775828407448007737200550235625204986810807611274208109048221455899186992600275644358035405789056664282038804121097965462311413612121103660419320322139718810337759555387649588638586416217085014292386522320383527669807136302443094558142843461453472202379887539118889739432869944186002189167165089036442673590051744092458546113554370360386806579645442230810819190821348135109191479043773286335305184648834357757506538130152943016547551590957672705451783096513377779902723471572588176006767895869070118280042680359393578133894717910259930111450846747667924024983193996348852868074148700060025994160235328414994871220570057300532742974748672710116514263695427921339143272129459774694062622824812391061191775983136888048696933329490585399945092685905035146523637605375044704349855068176150649421959063695601062120704325247696247904742479064485873553655466785178598501361547815718792994950641753217639788649312079221936994779187580349407177527210583975279521887597753363742823781439154348669241957804811287517677799096196843970285958317972960589209026889283342457424966562999741680674417928314367676528177899266922966842557917375580741052746831404542166448171894365954616763934696885601599322809098581080711090515341950109464460959415555845601855812752336512024929077560760340362696269361219523724246437004207710185488451649918460129829089168075153772288974697937786487461743161170512603317374342207631338533000399956823530206531513748464159741109444758080269587030894919226038703761332409685813364720309735482388698308651852239169179900572659709274303501663785070481182066199274877214361123719993512964466681539519061541670214522350141405893628996365354895023684176580755857586541386527200846895138905371520173872682969482450018242691127951167740138094054211158523752735615019865691103797112995399600826687281450675134600040998738602507285816614900076814737010092318538697294880137094789164556627448732729584263016453875801835921674241346233142870165976597285077511542888955945468614807444805622886549649987127638051178264581935506514262241892385724971381091321505337484776260375956124070070338296200618758343155713790661157200164589583365422288205596323288114500972339719659560990407538369093027650193055759361211133036406623497956260290352751091853690857164588701158811311181552813397897523913562884730499068383050182942924302859266057571621332817871114665675805119039534220884668461686190868345480888545540659626262744858712469418730436935848037716475071478356761312419077106802066416209122980926974136212170946879178087192132000748295979001270876958221829257889664009038436649986022873001859586645325907165682873259421276404822365891404623578332872339884121631684960631639671804260378044330462240050161584704506557687473584532481582855364513498754932574256569304196146132938733011365041332748503954947251377114228602848558987620116657199224624757457347007451593576031759531768525173506137573439761917482388299288913918619139793909010519944283794763533410230458102248307267094829463614296421203718639308320675903422628908088737380861441904471361083863373972577618658856564750473529465681662581477160782948142791736690049741094394236554909687004436142456200630019845872845696066381584733595906621184427321691512825295165832629332081934814475980481101397002367910915637896923497626543760521463282421757437060261268968773117276925103138852508713701791301162040614669126079901457924196286662638273399508413779851314929091810150464501459780218893301006863431416715172770355673765591744802634544673023427686625485484478158603393588990080259362802186584305597086035031409768277039974137587350783691092567647758042587940243926579851049392696469233395118121949920437673153005694474893397344923519869988718283286818933125548535687376359075496960954903109085111529783413048934160641272210577842674630445571521521658393565790851682350269085971168808803123370712338098747197767814982972045228535944832331030938390322051508090015554902895586896815390326696204601995766105760645949525558302722684522997579609665387476187959924393749919915999722539176250234860962848704403118005642883739658364993394192560092451901599634614533157359539198172028628576340109400438929667605159850461849797298442365456772712711531345852641472027371387805457212542629803494873667007822267919504174933930254871118871450350537432983101343501512809042049542392388200818877933066517281341313853160738109680703494877134223774564529650019863246126396096682009099595596578940365117086607778272552822425952227474342132537721249796510503250440420834640358389954322879346253307837169901470485504674856071620925073693078142281582359906272804884099193310317227004798990562781270885807358873091039280222039498479962691212778983757940073797889248329440767676293096473163320955068625557357838746584335954106634621823830971509596570962386773407271442874121765282954067219151158629048289365149291626966761941313188516148534150842201851143445083676584596132359692930608545287753254620071108055330484627754655175309580416203063625176782884020866099926860873866018672688408485394969220170208139932397233436994324695515821267321069472661505484918384737639823006930255435219236560485026079478322036895470598583840049396428630090752739460437601087182836016870293884005139179433411059152013993317176839968941634488725546507470819568997480085144355608262750329611101237863288910711610537621579508901593642112034083743120907742853260373247363696821490861442732329078073855136326916300309211592044027054615886959650913033493342117589509163505483533872882927048128640396586448327974584812999512104385841728553311201121115618628789872330245542042371895706515740997046806980149937587639105446723020643349112433494506598912358755991670816962188396198810618052147081079562540822665507099088497316694544066275436405382039314010568148515564317974797145837480964417219329040954090136666716091010315570972524307534852306056139286624360987645118194218734420629040098015028470566517449527655876311209219460115559354383190820403785305126643534603741228938620650665420746099997621136798315031813669749277509429124911924142931721728327238676519682117643177885346947659288788168932360122669703239986142924280586439639673108911599087854936455294455411513756005472908956297147587844984908008424641704895205640768421815152546699219083306413644470010882101160967146763980347056871260818156587061661991628972816979398860831734973589475243107055325422483460128865969684647813829487702477894279654670807296538719639131803633124408229053279710255824437440615885900175531408960623978620420814655205427774437140890378897331218528243649172991479342940284649830765845951354317613183039999744308064889103985444702199378967150550694732289803975550059859940354311049471341447556225695670606518850608025891998297722404176523543172597080492183321022918836432586633691766052553345339169498113430370709641083347993703473815728817597933878045387526694051541110669301438507321500713783138180336171903804280312492245350628449453229317785713871473979346252064177552822757557297060385453315041075380075367319832110586220886156695100841869878684265667183641237618409076299833569191152164433836477261992341625616025054815407832551859446442509072773597607575268002787532150961035696597579141135382375003993713931658786045303796837838865070943723550678324857745192497287970540759255516685137447208223930913906097199908957997461127624488323027907987334826867133055240135616924990537527757482051628746704823065492335003612725982506937716978875219420854682114876249459816971666129514785640457629196296177292376230189685657802213442121432210185205367209200165057097061463630834453883681280173587973407815083169029383456354340465833382124399034570392625366939192876819842071728173098331501696976009798357606091189721422675105071093294569750218698090231435686696441316917775734842949262450209816211439695939011634625544743598830249476043016523346986288874975636151119076962375013895398926454097267904086515797408479025337363228818447149437010980009819742665002194135829120632959871087227974186849763060965938495479203382355706387842550169853730912562616396889151202986550395546438156481287611978111017700643360077548461817590649855603912226134223413521559088390108466017633540395540296900837080763914126772093687320943614299189019467286963716522997701381536773270510094143743422277273798851381582270580091137389964245547936603139738890912967551531612390455441850747673355583885558470457399535215684302427239002909099361677030779319244163292188429367574884801362169910045706779105984562465289162281311739203257352677277473399963682943304946902529718679113412352794807069339360086511615198812348626158493761471835306757018907780682120330503421565323893306558270683178257734613939623489811249210056972525392699858270760234578227105820697451456401244524847687930177622644973403809113855886361021929073968054705624105477953996417016324873242502395323792744118977119311022507177928656462156718105012242106481247890793467502133943345391771761212719469134071891590610983097306427381308898887387353022969604246172215551937058827371182682368045473456573640666556379729384149791354127628392570839792736593875758179611172605725924462369955978451689707406865900194029524993776105420877152228910354550489555521142737838647035886141485449250456192921371970354858015302167049327440701851020528357546484026779217332543202026911149340561854980840666290352345568695726821066574467548685248386053494050421237633680563346556220352942015367182581119335668534044105768279920569859777154143975351180135619526145540737073364506678303454766975333535558474480705873791459482990297084597901852002891131819421925930866533357493835957471559767649337154996831395678475400951675102371299175650877785973720785943948820301502695703427364560459835612788762101251681724120310448951794843223632866045509493691301093202253765493382053345002263597063547151043797636320291841600049708116413072710626064646703298063515928214730073923893097342704037198495264113435235504962887061043191309174344971470745787174609242327597965413627903853007374654416273237646058642756427852908650485806487361516568459556175431533663263527181607179680709245688942153066310218002776121100856219127091745957832794482523414459648697263172722827058147672324775924972596429117731162396400744493156547381162460556619170603070767669234389246287281129059234335595774885302211504459837279059866604188543087827416951558677649593506646353278841190073809450242855210248866882609933294294176783163844975898089698244369764699222457048734397957999031968302597362841863362051308168367923727892797038582270805508709138111978758395085659550157224370273188528984744043114774221318300698717813588774853254888443494567770450120394050116720683759599134103489144387834739154534476942439671255225727062744126752654025532715707932797182793949819943391950497913039586476192880032206894712647419998088058968184571554024822899720590242096768753095217066203883486695531473161419861923110748137140954945680628433154217770740153879605418556932361062209704240505872040793846384540146621476401311950870554160738086592787742432856159511143963160583936485535905789406028015314026687621860742497213588132229183533189540279862288259929729765547691344255783400472850753929015804890532342870580335201139527457777594933363803066065616841867221008960154968804069363257220163442715902589565298310237275775799844714990799181249514620627458692472762260850790390435111128192549860381460720904512678989005995510171642637544281392337511382726657684757944209239562442425330314008773354750717460610372384900727836883270237073210290355106215823092148821713745937116396705343299867711026386786394911516760762028357423240883684742501628643285207242293339534277557672452287036032426870055534634886873222866117395551510285951846417528643152392314053996594206215431534959550186301336811271083641687878218787325921519648460822751919495415006370802105016128203905457837958221409653524541957288721433110107208454855952982266586182235365699595273312622362838999654951242286562869529149448687124100245036213270010944313604521857750064234054489240333882237929224786056070176786108742996359040348903281404509378344358317522171693470878815622871556760709988263218799321773944518670581343753460459831213238296230916274228640246112924118442085912944396432471448075687388704768817121495582775226131036264424769382796521699655743427516916914993962018779102111809047783182394370061782066638291017628176619018395982780139848137045403711132791760707331478095535122147364317624647201096551337908621174729286954512011662117589541448802549481522867455973445247942975106699971520746765896377520963471151800986113468910192063717340622020137835946883902617794848293225997173664664015093562992836051533860661739814189548248844839348551282779676596929994562748750954250063099661078249180156834039764858409537862995490686706902213204712824545275679425531742241924902797633212278521124511762995029571703512135134202474515135238293158987021468599108253984228814389049545456964048099321336127194822106394179927778548283630141191511623695276686996374384002289493471650067535683830841721520345450757271893247168198246517080928109492850932414158062951906731605951097536327640120320770979523555075354146728422210607321817590582282638513510906008737541821828580531925682486951280755393749265439452213716076046271304467166200222340679658341105582361944918737537994679315952441303498395317044364530474164569342936170659390426243043119092082332256286961927159118323270903171623540478083380210234045517933161441171742149665231886903289069462877147138851986872106513653703652523131889245890918386576552501824329317478360845831656079377407219001279434940928499161704823414980459311960792453240068518123063219357674627106734399117587499027620803160128454861857640078394267777894379581623970568117509626808454743249135416780835271891300668861334061097290407986738126770333670457596728592260095420826311949288445520537233595050702185131647575048791604315648560820094032402953424042022577737990324612957038958463487841570080301235806443449115078973746674541126013906230501296997760178259526178089370981935872107985324261272959218440137211388059670451052924834641436550796312589893170359655806428113462650021310610414593750375749464074519243037957940666781663064077873477252766110093195809123172131565182936396132036775205300861612121272036895650223038294918069213337801592701819456687238482063405192428575217991905017951465745662956517522115102511921226134490297841821460272341462843940785757357097698931919138032762267797860249122704563043451391303252707245261500946727106262905370863705987183791482646833467107697555360629568149729415930039036270113766953262574128878217347909692368692064026878306219686419648352803188322272298856341263157395748067632917317305781610628458549414953751987523709439433622864498528608248055108053604919255879604490483146719992166610708774345339798533266069264205531963117368145114430606806271289079775719667101485277913331419033223596241833888507551388003985773912608593888569354042434521118212060543125508881703796664451904960003648115519119359664624533637201128965468737079785330337096299684477477958336190834363755046398182972714473093439796214475996698853058359906663903893667711838468572035453969612247563169094798913422870553454759953775069327905459801474993574699790583338178682849877635551617265955445500382303405458558694912348582797115089212042757068276492203286636124096493111050379969065224628145476864804210235089564801547326633013695542695021059258327828702819762060364117212903620374187473528517555970086069090302520176980826432487902935102601184229777192452458731284913034293019710909180283692728632991880841050961988081292214546850288542787115894730222516005728909965300057253378391449383948561757702351572364389057761699030764014793650319060280423698190667277922510287978749468850028768803129199211820904833832743911196380687741867991193571823204416488655100874168008854853695120253912843820860364260673457442734920362230424419839967058779182697689679972148364333464540613557806100713388415194663990349019038022794427119486554129318930661878678284167568115460538728543912370031320563090498873117193325993413111484255366704757709004614891979168872691400936338407315949225125731929663251095477419625975816052193121073864657559850275907416556514954719013871427172710871824511253246613432907028634042883356878325637338569917072879456578355435362523367894967200160010464092607086258919666003314965365929848211790668757696623130377492004959054711004924434442211718141130853090487529014507462979315768286078859091440798510104937686783155922684462355193815419119202222712290022627920483679940627366018804205593019178195863763022883433834453609460128150690075974257020702419384327263827647392255370286950200261265410100116834052793693428334710227483389525885217777896053519825746609796207872036586392791039167870859137708601723595422231967048183077673692790541098633473808264405846127121733078116462354662520354145856073588080074959462057875092967537860138640719690243866801741391379585486308213689889584861117210179178624180461819813160754752649274477103560902032217927993483874591803056708276711983853370106881620328577450814215803002750380873969662883054713385570387056186502324840218297101147602870029962305672872892831401338088092114762843017838778619394477121684783321368018921440426944468564855445313483610644768014034619548046789430751198970990060451059292790950611975170754039346764463847660002628622228083384729201339861311443406021340774657935754042016272802965665924794944004076853737595410308688959119125889371130018417510498611931001114780655458278267464897279322601740573929956523657734499994561566522520136156732847382411342565651023657521797848947442186511802175586600394373938273997353266269359172015214685295366806535958384453993027706765702214005228767847366199309911686457346570050775240334725145492749895312073951994534058900320277222560856027002272947192745182861484668523384091603854414343608356384143069497399435960317641556853744082140217697063870921129365153980727660512683619482930237981261387541001786054829383406029819451117537140738858615015822926418645379166333466737433688717496155609823485966264292657043772458557281845967457158428568049978757167368678119901639342460947923076973015290825406621323978195408445885950348294937491161969234260281127787146641581367211025666299234694716796785530481400910123923946597187679610001221519339744100132630845776396559763480615287485208322867615445317356627836954244518226676137189136188331397207815436101759932403080023319417053619043866603221699312751681264890051903011299445130735354557571198557210841801246688440851287772381318099926947136184789179183169442637450895313777424563120838206937001242891257260420746527989543139645597591173883415978967401025763868074862975511628371022040325930421966774223523032972694195071589046536051815918774023224519442559529338758071813482063671480393565997331160650867624187814258435241651343022608718956852817192995395711258340379321399076246578181966858364774466746200314549356425224838609228668027880608119207820809245449661251690175015370496779962329811781360882941355166798663803855689366250523005005966408944553535152470133808086965134044541029191527709754219478734636708040230059703451896008935520100511885244304480018178558243980855799531908204897181936449293657862209008267739268877551371303640909119148212829844826918441598837284846325912603982371197809609508984696615721599911899655123794159842146480840288931929316355269947519422498804031270099222434080219564100336115328981058356472579217133592356563917382593840597693230330619203648257616788698405661915364460859792660711214399765795225921525137620040980591566006015158055969461753316905870467066869174570757285432424703711175750831402643634050164363147133381091608322251709508869875658251649783708383734367357857505097095859057993783251659591573901735829771786229731839264227486677498122075665630289730229730280086343879774364505008399558816405025847225656026351831916044991859730098866789382199222866517395731113802316278693646372630183857331462168173574580601357362247292338261621949259256496975382389880421942062037280531912674886233378608530670028186692613219285511838663673246300554072789323363722832497229395272403984761828299025393005925995582100501805917968248793600757930951943495051747853130388034083176905754627698670562036910627267022633382930573692088209756378048080414799226003463676055022678204701266559463126706852152342479273548809587321415165683671320799922117964271908304232211506521172231167748830830220972953303693777138367035324380585551405571578044314559193426042420669846639603497613814353999778339309292308550976702462702594790644509041949605571387661482772005886968084532847353790439150675624817727477323921674050496829881764533309898540274244146964213052664021679320655854437880482886212081797687760033606131256282884075441860355101398665117450133558849461897957944164368373004486110243428693198859011498015503427544625392927930914828525814244145928746838648458810555321611392548145964457338943151212813431651630211708761722564954265556577897117369720663670708163139769549458584173742136713394050245555373630241941415122848517426793874413056564947936211640141057823769532944373808648831597876553300830121573239149214160225460082719574372162552951290995978097472830618703861561041703033247699570394553754538831849595302483915206489370649799580494959233177550760995269819477493754016760462514935956954232080041588114156881198065559340552110571444445838831388794498184007923118206759711601003066033265863427180560115810451599127990998020176424321911166378045030473628657398583403771790559609487746484905973940194887397168109013857983894199516441569235416191206714932696086959705698074793759292188845154911585305451481639728933693743256092317791277963251679548305080070446810969484590034319157132198483703723979684745407624291903955804225221703612817340826357470522258342139166987259484252600866344700067172116457913000328754450509905068578822723949471879706927949755963205492120376333158533784442766833185933159561555700901353451435811754350323073633073372823244496525217820273128507182471946088613304427634068919883203105316469866788387176876500321412796605166865056038846929454270349051743698277197895473298359517256681794539599174518374218848923451587009223711347571446421675522766046389068281500923007673475698192176116709867904827070364085770976269453899796762130041522406675806776370220398881559681789386217987888474437174057325221521419582464207595920224287049837455646183212092219876308193053155489433916456582996795060337296828319111234301462194029239710366297785221204690955974515443906084193926078735399148454879637753264759227857201494038331768705897630372421835689676293621324853276946117327597774859090012897258400664147280483226825047487131871618850583019333555559072012274160943089691625690179567388195064070834401108563703738160407470102413722276018098843486390488263981693919374382521788423829664767762751307979636633346677035979885353718865164618503727673854829978273464568845584507939723598553779114585989244576003717372005056748887889687299461646172002013000803304053390976833548558142904079113200426235405658915169856588257071931817146807253921899106393923505026530534711403963332465335189997942135798897163501919450879562833181595321098668387281289729532230898794643995675951046457296558578881846109675738479191025710785559941800930331721036818489827089336952944322418234144810350323224494008495134323825885121438574733183847135650230593522854548714634892726579514940978167889117315422982557057615076952902595937723009850355456516743877977347060284430201839412500774289331536396339169585028421339936865299884336134173268558445872115711230831250424146549805645478115011553534334263634133747891874630484347726975152561290948169568823088957404302525977485650964278712467486987717401223444478711479612982614595196070736525629107798089280027252158062713540699772033057107255021131541232604688086588812567494513892148038291103843501380429789915336417357270949716985307727922106449985748191069951668677088543289375390796205691848990236702968948277623978535250123751736458650165678963261262627681649473631451763917047360441703512947326839588096577710401159469665981794464109211623344915331323446984074726645794074089203927513740390484945293645695978474932219525538350186733219185150827720643563805439533420160545655875845577976009511028649149663600468961087478601401350711715550877399474975758944219680694747328718222029231926942062444457419671103443411927808759619662721364552757653914819388838737390962424807795266062506976651124075169873933854397862767736535338394727199472974368592536144266969779556766096176120486755702333173098082606141162562189863622123277610222818065662674096664682373055576916854807754911087614262054741474142714959324023126191091032386719976142256747192210460390146189766345422269109155578424868237017894093517759415484067071105706618300217818973693233446663564612391308026194047058394255675289799981950808264116998062073315897629264546172460659345020042343457929823289963900865940049107945488555902480103986245551410130873844441537852798097125861505957204699880635180884341765822395753605619404205029742385633893063026668878974408204151721115779204905080302940307593917506568372659574386458130395477205720976562215106607324338362862410778577337088173096189566622838287537205046030276216026020801502019488741973911967262381463309807150018055059540969591602516595737758479841470582146044926493262709881635650656682250208515012748129458154845912916813760733788953626125645342564416650013490841558874453035711749109110450395989707126865963181975129811223554076166268063070552339873610854832006946423511238393304143884999400750721026300071337303586706199573568384575478429322228076878004942162540579719445065515129756721116201417411602747263336885044102114128101808557054681910874460352430597673814138458453207659716286740521026868438977021855901028603359512963858147687114703853870055996641535925126586059463913812197708407693384231652956821165980314108351512375832807964109017873627991526228074607323094110549409337744431471571070418633685244641214319780300557247914602303252685378898035547690116964727212379811742689480215597785048492526096330469924491837604883227988283779468270863000957713632913179615832476250230611148201756506401295344148328607597132656180066079590547089759744302995502844676848513595579144634588079207656626201673834605547967704203131349047078310630637085425670023748339805679094251305976331140292429416006493051041501112542605843273674904463163278570336018226779619886143207932684328574922686773506450815538438033414694261213919913894488946898059199497772377963952058929798991219924751711302895779548698513252323310115316313036657441915560215286523110529873509662618188504904583506398814973942675752785195675179258330648529026459162865053054278694887662171971963568635172252888442297248808289380209415712032176518174522686294301892121418245882792023202887673475191437462974878256335034820505328615415838138008147125682645096076705584330262303855198439803187708378484888626902942178184483451699778217576966392628187420876975199498884265956392075991164674634242404068815056771572178462520545887232725703262452826661082272452004837659145553678787165831988964914166865041744454581747812164289634914187901065548378673821567088895437604343281893393025423664350062179280605424401013830123751242566147222245341473476944350729878946569066761500731602178297456715987452671967867298693427417590644063190756814051027807982000006054875395363798815688893194811749187733134767709786213431357110390373847064926915564858652453424721492398230276264440678315363321541924349670024600527975276945516216920729262593259945259007748134366387749151324933239167812108132981138543222699625745451655725757677033413769949116018887967953181863474878811339429566675556293418016539763597427953055964449272238426908350003849354263957763639731617250991914360010669779057128863398685687756783593607027929455739012113273323424208461400894035831831036217762394332334224798297581083859026645202499618809575771722989804005320689458354252954401704235581534584154191165697774139143752170940326566944740762474449470765402694624510786490033657139638768766373375625143796191834881604649664422019324383556172402729256423484497714471786756608089318137652962309347399883710090071269750909740663353171015960709970082534401373358235446884916761428370426649642218960132373410546267041787554481228296782946816573755566522964883921535609730589555462430363378301111074462605954040559255533908344554613542860876937722829471575889150853181800488171931219170619863087677769919124797377935518907135950931840897934670515028403664384296365245994394024254953463377534858254043687200386131283260630987077763866843745880976495045035764586238287897181079468945537009191931840325189755045623603500301178972426595593017262035558329307291577159354834944390140295727861234698667812684686539726005736249370606436197079634214700940357685356782053290672462478708694694686101895341435432921298736620158522055286477901657657716125171055726674104704655057876435763636409280043106308996979787914102048068543823525704743706611406223484382136756484380763455816830612254449851604297520457046045175252241325493353663661696129269134410142018077858960845026673643666290317112808058097755188307606097456773321210473905215994455394891620497525583562043198745994691822070058374867341173959358113765224727279098018234426534047892394375858395492961659254267513941591058194568268334237440064633898708918931348772147264787894846664933734825794607718805758973743659144164088269532364874521963601292466232937380763741315113505231399018893218466496940375087971541665084581142304091499311359126122656492866106536912776904651569565976395899753100110278178602650060629513977910010085023441300764789952190921397508455040889759147481209851749426569819758467895240074605797034754486633730506756618274982157439110561178889033381083762699661309035858428883892106390088845766345077912152841097274188310760003255944663635328698412569946552781713912677508657138061130913448792230658084217778850673586088059975195576259072920032797355820295799020265249422481000528295296812583862449721759016403193754659316883028787113400711303458721794535146388685235810115240370635722772193195410855573866520717325037014629657135776451910930194218710210038604853243312655679540996803964697594462931090249972038321943098289200382446720435318251243894349832975875262263495919571546288853652531844272475366046969922988706907869280626630356010881121658449458052526826100818147060838304676214486899860379853651920164960329409274600990630055854027102265884967402361990150423563764093701638885149955281049932051046532046630172844880096932007877685711050201311284593055357387869658458233063573708950443387747624707918276775370140929959619749051780789909940355566131869384198099503818082037216708895354636290148445172073623228420364551065462323235194206433553589982592257132369921564077195400744747877400477645301275856821097231188330991293944349979185808151068784221719485978586672539600433884975760760407820073430856838705084473870257994305941079698940738176069216327103540999998093674945733279600240660159692738968038351991332648624010298639752806213545588749191272165714025169945190561046839332232185019335409577435823356702687097706323202998772368475862617543780630193224459107805609467135520732326503200569613562654785888532366797522987512561555215748552455539484278079119173085424566374682805913409675524833997945464378597424464435186492957722427251037479657420920427249013981972108389602253476400646940117980972932083153826664133455676211053772205621764216374364579440612961656560527897776491435907084817396636651279930691577075879084059788381655566232140724572907993129732996318865390469032735793062332034888588271305215402135086935836735620406660485896359430873979869734074307868992075129726435276433235097884516548461631209147065133031039963118218352903984377834678501420810924541267375352260223203245778383199830536798920989432097915392485210319295428937795039919713778396266341440182765320373045835028324808987147951571464742402889558144942359209760290733361794999198919089747664745051341270911809974585329287790114302829572417214369027992561675544314219081028403534811526857670018913119168728673334811327790642275585302042688683144652336911865194952384120363978141833628749948272022204979172294727634385021631188737339666847658299674482372628808965390015333391901083278595477390312501931833947711312439165698630797852926114900680172823826997296156138704087107145352430986290987577320388846393849092019806443498712890371933839290714092809016963002076237258842058494234976532628327861220946838468602520273566326083399098536722082159491348011378988565635693714867902426715128046080126886211389431620878472011355847546978246145858690473679851404563534956251926031387078120634969180679164820822829912898692810264500093739988513414300422337183291868167748579953079761676328785617202543607165978310915185635504585919322641329797808505244997515115854567437945686455798571694363272551956779198913214298805590225850943472797438250589279373893710922038631066886643075446468193077673897597715277114466368276716110227611400068108526469010852951618522367084773168587235840829298102801948267533774686689815737942310877140028564837520449261409072293742351626525643594518260208299440549049362992055719543416690973016536544002472523748159813836247940241317993234540132144662771666036162566655119686061301527739996064238208068551975258807959010511892083280583462181338959736499787297596724536345126827105039914491815263967561145028700251153710353100415177582345921773499484350518953691074995902118299624995988649514478719621997131618448543495838497487346831309534771521600284439948026132602562418858808912608173502852179033199906874922083490299625445881343339538937299484594089273666405595552206728117522358458324433271436098852409958361871899588404075664168176937525134561893041252546161823239197448088425754551383124689050373928639555807370106762644383489139781744004521159242394623513656125762464579016191350133979013989542781094841321690672501832015640469829433052434409358312690503259712081578246267591490203092228318481142046447711518172903073453483633691112049199542566088281071749749153271234772913496700098364044548434053111306180958397052648152345433037611695458577958886841697742615724650548484010930727805824899317871624874574763104527135260560149172210025068401989789240594192601181106438074270833924271858766111889311862070917363014461143603534982579801100918695344317448956377565558706852041802131622285962853885729099183614482052432239079747983761824798120104153590325605541493351029924356232952531498186369019766953393663038170639460569619702842702348471126524434371740200401785044266664489340452823389850643431792523906228691329706717874052050636720559345637163299635982543694889813424102531213554954422201419918416715082886983712418445191927378419775133123190108327797229506137144663394662655926850671272014367573660768997096891253128006017893693304976551366253575620588501382629426243372772431755591751723443524817857859138160324733483970501769629129454661187670115806388096966866444306310855428136674782437314397791569380958836588963821641642351863017649320307768679628497467512371316100011397915804726029971569493004839094164618930781186824699715316190496989538763003909320605369765909846271092672133778143399758337754253124587719880566051385280787017062703453229303355888313420547109309629590823145083693069852517311133641263173382348866730653590433207931514793105681921222721228330011321316325784359970572215796099839491958822861224221505334280073563167326800406918598405119464235179374359786309662277063309097659495141523220009116389490500013220142864647154330548923143940114814488746751285258257174912221890785561369121096283444966676777569639446312211855012673933693027889325092713691412421553632171097523396524623019651677218161665233423552194561781421785620581614305600848291948945229176522498791295287668297811772466901764601827176588651349759408824181279876983955661018207966027682609699259869527548752289927441052864874751097454004196649166647216712089652764212710628874597010646910772458186210661392326646867235131491298925593090692964533515336297914824732832043671131859236246104096149346001546447317499345989489046866362449017167837935386283426845487633020013237346009154123774684768632033328523584040716932591030778686403311749375439095303614869537161219071400840354383187551959627964207685954160577239673833339285826446707488639278501027298147359813565692618026009496973780504595330505350508908185982409984268743947782358202107529343475863325001017104822710449763461749958424128289220999136211687776846088001228627257151730592579421976596535993490628656823092692695363843470652252561878371055873320823505692430652509859710275250650416312029994807398587321271665380936327717265350197379663853602209318346071947093692307930475690196901967269259492584472871051250461750876497807671457126292103192372951982983617422662282071905971902187863626396318754193738654429115223114912853399636198642547781560752429877865520340226143648272366956198564283054607554871738311542929977005115589126352406660814516506769739880873863452913009969657189889348113899273094437842408072686871690606962402855056295492392035214423399222802072100053153097111403253175441642485383681038557831192258309851187348165526602458883493026714555781682990094626914233327459287136426714255948941112094613724028476299370142570527476469068835142086708248097874808379878779027436179046400888195300929612567480904359040879867807413746914100639212359074987492491056853846549929890958737250838054120199274681150242942346475912432516892438683598610270015852810738413062189100837208809066203573994273759851369055746734710306151029883655603392809853610665944345626683386286327600286347780539137005820881490870019249094455362908383149336239361054825905938636213675067328084290956141903507986458526572135494461013769382780423013646735669848162725769730007162306781374724047703471871664476429543723586272980818113183365211130507991172015334876163821027083448001350911304741494761947485533835989468077778803173278656657383915468496394544320403738499148773967384321327732708713249466286415615609533292437231832968962362343709195901782842824782565673795636351059593569360400327748278749894341721963979266939818922226474517828092146104923489401269742759367417245095609308270756699659890446527649321831592455030000857062291648096437586001003128593461246681046322380503507605821892728965303472013773155769208181213806321947376012959656101551414692258569872835534093807470561622698909986149663172611551965244101110731954787945641028957519034015399770562328359747505908748999665887454973245882507568259682560568361621155270544296194241996127407094818262684583479206217496088612382451963388275972570259760574661148593816796309731540722538759699422433279740418383153303665006428845483838832786234968492635452105939669342784693154509646130037497964395886703095906584131738601142062807640157383051103181176856569899733977261805657197907387084359227335708503337103315139151425308439064999192893149703539815692587492194397476759775589480227163968571429972768823758478446621981522924937193983423331758934111505570942323585746070945473045360717296768156612046659877435308179014911517882714068386347450193940594765441606090116913278355889391918083744162041581344635789144941692904667059867739704849272874805302259564406379152618012489649024688290633262946592175650967151970156477578714416221246136868743377178570482430303420554088118773234315092160780504110191300177030790500170042227791141407473114502666865750095227815695368917206734427512248775938438200208075977268468839223128648672002030476071518458344986476769612892074593177899924008445015281490337853851395337431236912663484020455039932739260301790715408209755035882384211309845581433306281695396222677559160730903192032642058394375270828853764158342953487403109333785437736858769511307899045010874565940774056741327344718308303232185657603097278579188551786880103135143347462110373467443481354669770783471123553182628824125837066924022291466229155676214806186809842776660239610785534949896578804723068719791239330142506549584271518824383511947847839445484095210037493071163393618613275410252916817729104028041312349490342188045408913771433637897543606329212290150035690922626352371503963455998557088901911770611891525225180403191366857501047230935719417468423452316879696566603036573065652973656188056026393588053910088578473038502274356488347119434256082951087959664854954424117538339931145981372507776869214648180912532134870798070248347397493507596984359515244761031376062488638142006785489026192823245334678960168249801297133428593740447207776248734452175708981107346856596918859563566206048642158918707741602760222396992341584662604257577422562486354939840866847562811568918658951014128534701295805180536504274882751403969135135564184391636062463399994290903043439404273093275577714282634917698828727310257281279340295471274195803205845836699115399571923214742335131495232657814476350472821781497423698276849580108227428715293665720278977600806365465780635047397557768699493523371391007501684350674129439589558115919927494831821393046305543478486559608013446831106980483091887696929183477108984524387683820504678884934063511173707854241063067852820154129594341204893876967590383736841761876713951896272159294527467142747245804931488078382722566524868737188931642504797355933949489682097088350727603366057462368916403601336572526619744534499346723550125785344478623038076414739568538818741904227427735204644253011334596590579958688868964298392759489754505841359025089443314739847265963235580396956566876181735871643184272170612407758316657850364898920672160697125385124279241748290385581009719768889236508064249846521575681549488915517311183416504930200713748231051281997196095558871826283912743536165141877323305933782528604025556570347808438924066972632120636211920766835557619165530797037503808931408086605102666487131139891585898135987027987621169894035999176924131305245958287049135583502292237028976454100471672079960337635464675550700168762810613768237667486755367077260827260914853614169978559493988699431065759080944605192425931220593890692963348804297011734593082818310715926257323420653611431955410158509380801014020008175641879758604707790926961150483806265860430715027955015202491807056864897996544212580795146225673722573391812621912740285585645375921249670426936758631626146144383438229888516503569881232809907276666678547592580597200662506639741263782637904914355298447214556854379418223568219370272470694911178124322033954801201164943777544208946139859752609621738546625305471105409082999549018029224628424033403229388431300827042196166683866057637699961463592169262550783004192687605932262969733750264717629238885694420529949094230236506249725534685451992543533389251777763959434770135526735528917446293930195700444703742044156893741400818992920648127769361459302105344064598914055436542780108348217110821443927750713835706452481742442397074572260967646843033450538143931933978922768253402392096450427971387842549997308501211365322938381857658010714470119609394162786091361439514164633386421372986062226826721513573134824537896979082880286389852344139496447616732348825020653336855674280945491261723319610247857503809935213052582808574815827822232148930752090855376094641766198902185433933362567426804396983574816418497819739094864268290260595407936308897102611570824590818584950570839777161428101292050726492547193949892507334139173196455317874042832586442504159928933086150180376042088191596659967570170196408415074652387692507127279053283302859510152393767632606700367176490492141904652561328025574386831364125011858496069634637078118593695112828810226185617771023276012389424261550502383587537304029043854299711671380895629067869577488830341413717371710136891826011187878430869215413766564526157797539505338171657703202883309251388136879071360499842053190456706986711953074519701864421240782359482003853828661274887166276569706425246023265096267622241861899889344591065887989068490414675295390742016858055768542611458663477818248280748628200114618450111566378122592309412110939506722240034836926055523503350352949044393669189522740231988709217642872208522506400616777913722393071305740178781205668353290572435774069167188274479777330997340335567352880868327524776376854962711477218161611205973684306477962831744474798167095925952398627623519867344838229077037622977394967032551448269253976342062685147755064193038247420246270990160500449375390829927555658495908402660929204737338957063676548194511799793542212700498708233073205141164269896523112706837496159019750456413018314172984926513728780221245935185805864762015754134069905178276175543894261076930330035305580434227756339113923242785075764032718732570983671092469282863380063216303564656608742982730292649858652516372209038711954114740462195281359052448745303397987924403317528409015679832840401671529025388941105678447240836428499161394377174854887793722347128080746527461168345361428272852140294038573396017610749967805022748591596463765553421996568997387075006997207424041423822768106038656452089546619572743717967656439027256660623669054571040761062585942746116887588491184266612304713165732880102045029728479142119365799373940496526543994519329455734031382016780744310138539462011036830631898085322938863781670622499350469650966333260412532305915737012277920608760190390442859056846325259471031775679767047860765781345387993121659257258396684710830600524608348407178423411210953226850051064943780031231252696699756874448322702042333954102517573258574897778715975318811436662919060631958327758352791250016946597566335700566510688133556182689196656698271619779119861025382558630915775021265058855634708241631857596555949915965078235636767816809007180956823547510035141194809136413912130384673424458124405424055762205588364826004459596604614373052500498302736523220247701885060869304351127091420774234301911620871067468667462089940997304797656130594148851596246681105723334464183338637470928415328821254828624942883344969068963290171337943509902143375896237051495974731672744444787903841689135330095056136594039426056279388871170496951917167540022416900165906641130616996224955913784472889450548285196068482902998395372868459110251236614741312339256496298392611374095249148608224545731171998059407543692431961590856423246001184412731131875893298774198559773875646718771847343873376818755345386783467932046996415163839189352791601814679512652752512355389903857095728607431460913192396216466503622610125269668008352296612925069901007952241317217263918097889111045464992793761315262540620564394893234534941411529686041124752410789584516239122372519139413597168683015709231316138025514959478979726585217285862868064001826628069404608934318035986136548934581415735842204280943767023671298368069701719938930799460243986292236603319940017191718180889492246284135562926599252373452221823576401708549308475792866032029347246194977384518421727952952477967036685628629255536904464309773126140493363986745638655193896650573633594387979011519150338267260188952006576079339149679153234400134215195165211419545895958600769831096569040359161358632033404492771381403018564094041415378276628433898599446931313957916886816355349314006716437590368746496434063530245735031688918888611819702207662115660303279333811002950966974703662725369359778292423684001032399328976836774588616916854126185850560403208157453504132284367532776027152827030298665494896286350097958279173156298251678781923358791229842719676969032593156125885937843886133951203679453772116658029148378347550961328676017086757845660695535575556002896833673634962050081258135383266529591514984335360502119468109434640305220208209637222889539809846396755282184420580125038291747584345922314642509669753946031828560167172174098052204366646118106989127106914668114184067775935263933259287603431186612227923070257569159445137472347935152193716671718528708454028447646139669062436549061216307274435304283529251943148870958839829359761842309321005694404767433260052480914218171272144838820367079227643965022926448057902878300527891137887991051639415932547253103753111412354456860692125069742040534337101152039678689257344286410697528067037811026030916215834832220029591923595450055492284875883293703093286411509418833850745147384917849790836362567059811422476690461596882853197695089980884739220255115120583508711986479989649594026370891049602561700969763701706825662645964247210907608999622961611400271027939080832994805973377124282324586529191526341483487822155363727281012071034793058162857834874309893727063411581035192989555067055088756373163362454445062507402344129927131334899571056140449580332606762542148994891916865479203191988520405838250524103011876928614680649904283980581547596193023450850448474063677626810101265625587043708461515019044534611512294703506374958854148398547731848343548107810575251859633558636505948939908416668848741385217165522908611897696132103619150430558757715677233355922199277565963329754188700913322097574485861392539458485786247208602040074118302426004182364764238822424932304955814410888854350286603071808480928018134970534628593772949953680093495374045540575274383281523849861119711796308502615368577080565058489990010589855963167150226195548493576709452271544281366501501481156923996858431474083096030431337945099211469172143988720643305002101305250923298200397088514544084402677585536952476221129787068436879135873678404953920493172351969742728246895761776460912208499798929684218706752740419623917226059438632411985615647600568961100101850276059142397950625416236301706642897109523208935688954853290538839557843564951792267088250421291863266630323831709011909268803193788113276040533357512351678470505916315762096268231929259589995331918264295080703003710966265460357426303163221046853011921558632470572045403431889434870586975494571031696991287814634922514151615899074739223866894333506966426279936154030836156060244537621814152215906459342496226174669675532594231532320485716552596139041725163094928835196608130124115007001979440700096104463161905354492331287724551569649382361848846966558004389779181681377603490624797963295992410601613682275572176650312503626995029520040451503554091097424075897717013370720312605991809268937285386668326772198458933826014361833760616797230968906672887468233718469470722242879898909537199727461464224406812703670961126364289830825183244548401273701430452094009072428746527725029666462668611044119067360493539368890332032386146627679522823503749390861550347307397961077114823805704269188275948087819156936825111711887373992348958746901760860676961220719062629453680508463396239892755991565798797260287541325790869026024303115152658502594931009917328305335101614192325432909076867317778045630005450410302407607007724545456682337016670890038180852280931871215331197776423748002203591021272505099636483084948706366773354063615901840805448567265417919624706415118702339009083160628434920904882822293379066009386693847180308161873304160084869788772647518133265899907845598291403822910348148456986898922894263341210095315044995282313651772073441736321362380655451083810756066329930821699916285418775053081178207207341424812025913595641224086393448533489931528193065010375128949643230632722529026230942975228239953979964713375997847307680340772126899329488501832848299039716573599543061721385767106322300931204898340119060283896594338494958842901741811052844049019088693961096236731430609947317307375106846452652356343773762097560202232124476023922169242603092230564206001991255345609856002301570300157167387847112486430556096146739338771334178534857233240570177472240328293703397716718099724350560551161478808193801057842507680950281914112392739006633808692835991507310572715244415461577147249082921763392439550413830609159868379816258996662550764840877166378437837690679798737735938354969913138079480429935693962194781189187852668281870560242299739389421527266808256373479776911201476382429182661013339708219500017852771874790399663721985539643313988054501174738465745351387369553562985077626004623191166281906280934944390304754217157426640266099211708324598390471096483937705631326147384939510565861496905802766085229771420014666371994301535917837259861174710517400084955904442775228971909948046171026409215008319524998860545850972489849199208206376030328612699534064559000560776525574226321352206082384736888812553396602690633168406434798896283253621378255782499057044378373100098526774800193097114625998843132299531905611732258882559736640934747165122417519890643895483854327695373732180386765256018412042197126202001052988254676226810475441011969375292809878849199687615412738336412720977396789225632663754114809636850797658775955288094614298472750515770436189813941104677264898198967057698787246066460424786672637521052488438768682805904187761310530813168787933313895072855983960029919816936230237739307607572677544753559748969859645191632542515911961249632036044201471287479915009757599253083593311895980497706651675479612001685736766850138925909165779180178645810161288612091695857771268118603617548382004849052034887930946212582645759692804215126684485792629392004070286299685557466187393768319153010564009858645033047969589798637252668180791821539355108205492415905084783109266665179104585269448714651248117833453704914549930830723635307650045427797201448822063320339399208340018716092601285064060417856299348115810709365527517888367465516195334385318594481955706856714559597200578400684812705115620266571869637069639111776226104798366824071558802403012147348765982446587720130935659366363918325028001722552148462817049436517597233131345993846161488302776916350522991050237348149243009744089001347259630914761450498863980992432166681401045213409112481353173599698429508943549634230106483105141919251168324694227405299955752867671211371733935580347579508104658784707887372338887896273292450691051121331321662528955291934994672184529537772457089331334058420099206309954856155792274022811063081548988180681714138686715227849557667861183896115267152534610009566706034028911514483212392632440594003903877316023428806377070600278893124322212859081727624747200074287338470343815936017904282388774675935053333180329083756503022454987813283497023768549484378054839570476431224003859421758637263605831986864219120490482006444065031053018871469209729535541468978203888502078018634082278917192159705746716548653452760393801173860729311308984967172645001686180465477083683405632203513373693416201571356026375125506366617102236859934592830598857404688612318215598104131249582382576520614326379228379698614289262521601768567187178943166941069193291573486674896497566115003208855154871860668743835575913437233255723599176993838606678962902790182208836236158424154059834876649331891600537217084781311473586613052316720548893487754213790164233054986249119048546121006735923091338342829559102234711104477296969222560969307573796654079228221477316373822605001508382378983458425939961109906454572750715417719468070493945649159126285749522580722627834393568273336353181042587674058650597353202076554320423355390912347769343022744196702346031858146988795341642596151275004069429258782666111003761034915053298312756601601209101751280201997712454337470145799214239633873320940362309337365664294306221795794925765078145060313092494549792733523679241410747549519643499594359253393571684678760922691498133815730767695206669426703134033982037245058168935599599714522513285177117228625319997095570423227673124896228505743980406941978231041808277264712756215153866308444667191526030982708528649815400850347898769970833593635785422125911095493615123753679021320493566245027517508465550393972945319174776691004663783178148398624468898602859419865463719844985711510673923499499794143669216890005372388958260604721312572559748637700213388780504569311998595989811143084288390056674255361320375336407153509673666034187592017737627964181078105383211961989538588637408793968655128155295765949538779699468189607837909732533307121677638079636509607234315513839042495265618111155751567991106343482491416376041906222456764968673475785084206615492675650906320942882701423951708209178265359455414435389206733701578227973847316328610143137522305912610531334661680070258036508019266316235965330344503391927176217912950835000122823616985410155735495492830397219114861136778079705200692130287752261329714195047001116553793830032035153303591460101340070286381829381825351579799660939092074201549099819101726255880651207293181452698709361081454437478970274751969812725074433534554011845188746267249909474457224849014035616753212210711796700928592586599675977878975616148533063305176196179448288986885578800882537163516537451741593917656464991000850800540547793405295192050961458144188010877433350414807097445492875373817871282885903172181023660506533495967614923950573598039592989889620127130326222646562465922389471679988471302000656781670211234937045302184682455768120027649841735438149255851121893028904667503330664710217764926293017495330213407612125164638532453847866254431130608453660043918085065525811175154283948691547932518132146774417359390075629552013504623173638808510968883114686489813452104271283615669658192880645223012315712576687172772307669462428660106659754824109261621097456210722126031740546462900780897015761779632561548130125460733777451028456874302111617948488966488184195045518745266072974119268635058624620389198825941864659856575413503416922760072416784788276033323637950109851923879527191376402668131064004820499881243837044407626214432966533606574296826683657582686197156988675464700875719204912645406646349096602892574842208092197796568856351724378611700314055544243073226867303122275316622367279190533233638242066477953728512514114606732977807816166474969573908137317081404489249322090556016669001357419962608316481183154556765695093483405414732627884786285120512081041044992654908124625903486529583269258974288683252632306057909681722633031999275397331451298529636753115138634290319770000960695143600851541192096241894509305932306245892684020363084434265791589171117547086647822418420686952480607301257000827458129597431880397006735358833753074993129849305245710280519073637686262004035957728964628414322941907651329642619425050851108371477017171986181599018518786549252080519659521638490265292205548176137628844081084222271255089034560644441888139543359820950464192339680778698187932733634762886523081079962944658127950649230819352299381730313048280553466908935496555612969538206102436576592528475314878723223746265747929650687369759143847484019941594036501435944751214131566537258464855589678339472985508649225934294811557873837986837123297628044750978788335396347772694856403191362961093382159140100630453905559269085223760281402128338701724863766958631911987119289808439784577183323646427892957206763453659375349295988190866629877152970529730150006012087442227032236307577377267596869188723399860301853469663338967650263407832685462357714860941820141963089588208237960402816125622313822926055593004904987010025593289104279315779374523463951590443608283270194860124428041758859369847928231560287690635285397976577442078867676056577551611423786225915076132314131001527675572935482589499356684706491524188629207743183058858254392323609787313966821509792124269137534853753737846224513891137005530029717621302174429935628215030668321299816040001210191616221462677495810742953355367384861548958018643423315010055631680199189578185474157865894853649234299947486127773104414028331962943715022164742735696559883822048720400262753560964746882425294328552482950905091660184335011842086469452273017497802482118104008346510438074644582577796797886370939749550118927627642041231255026964112366062472656953884481828551778834936368919937311667362567334339759363019351090597686777746018295914305282932589173569270404230811300108712303578039734592272355274489913235529621786827431759518915442964419389511105190295587116596279127135914860150240216415266490638456860493230589308519832859586081432067704036297718580577552347992073799887039967664152350227986248350468678336812634382049865039133241241737025311287374862777020936028846639649023210682302241785232979121654258484522391240252839336590539485363408554965307861016715861013191934583485657453442297566751230635115279207644184076242829278763567650630225385955439541794107278746414443607873079063527841244375829112348058338834500932876499334511612518415382549935255445173238791854194885528886071298823484979642004791570674604135921087648390921514100714283258078687676694818349071909893213845974251229469812214863832781118669878485597425091387005066550738066994953976678056279085178042294820220144770843931188871704791929779202896808786602600495017694844787497116178471255566505645708433433709976167072090355408798293548506465010083254443064238084316250721664477565606805549369271527070048311644973359967930673934426484383008703035939720537306362484014761753610849228696795326200568293746324314072108207876362952946373358784545835006534053656710992494215537448747061019711253515860005373638182440615217337626413186010620433491757287009017607199219552595059985837999073947108622230831973082148923365399790003941790148470600933974324999347871414315735566994495738261319293196895515088830633472023913424059167478342641434051602004613872237426388381919940708109059991099137315816459858420871206049676688462734338102385398278157918730337439290646304943003518110517700064676107013131445763347685063050312086225153789110651064613790101670414769872818739761175927185875102032017626557887125982766157668834644665497227889246766781078899349819345043755183751153333961985064938749133304243628121981870934080814176747709469883371247683721668710999017946513612083385323195869881113208675722760544403841713428589066457030288740712609996232726793810303798698821820061435416983764922787812183493887032907180557551139203419889699397350069924344559262611402126960488071825792796679538052510309975389537463011239976525275146326895906765691180100102898583130028346335123391334863723056100951605884258021823771378756973930831350509396626691394844595159846968714247589491837657586005486575066183594317355967229021294762898130275973338592860659715939700971895572978722293902106821039438413316520378671899630614885676861854385707655964682483035001026169796544533589814428664618371051976907114179362625473994567943711001925361833524502031263056809897922523771874156840553407075458907462169103886317852574882108264254970164103983988881009877661715918729501632899868717040022312089068206844606635789333142173828557158362649359389839741323554642305443601206518283999803975797360864226265968701812434750088528978768524789312737292422183734122430019665714329920798317314651310979330301829803848412643208686601687478256307120294341550135617293742904868058223850804898174126372117375421871632177332112969003698915351696039469904408104170755303927673635983055926447382777106060364417638655444548506772197764082647654010666965486454526585852390764680464711224271383589017726794195149170993863148025266568549382300319798630588595597415166632862838331498418777035835913420369980002570742356546857881352835482004320887375015262983347888520100422534537655761114003218476952914242770493317980647550356112850210349907963396186612335182744990586641592057924614528776759351533291433396997297167792678816675954833099545877921381315457666521988267168091334043354768533535707300632408082312014670155035689389106662426194625207119219396312622529642746662736438493931317566337840569393907261780037375602507071517258743088627213243690977128373263313652623375567079736161244158737079680085485956570795792783164357214997854576642545057814086691114318296643470990676669400670412665256410071208391403671538456339441424945758182639388595060114101766733081373057863023677195415178184532324877662076633964249593161496474877280591574679954237755508942601619929060711294759057566858662514682769155052487899346128896591461716058270755849711533270209615434025944390577877947734090595593179753132371436758032235482316446647384802987863607291799499438667587324341953957747897096970087760241030135659562045219738420534476981321873962837971282075814398913356056088611944016554833246970530274712020861864526728818543974750767259646821328126275845101584706668400644422283439882803778346288433231984606105780934672991842484127003973768281712140271039881531085798871528238219140029955726255289459188682253899495193090241858123652765981060039557939271884952633674231450873971204721890557686603868056226801574429970698915145344048628971422502284699856318814767989281682337486136037900441251694714079896088176913937982122075472086483896360780497215045173810543113036815398714321685802105036245133587864173493158335542847621475672793546124767138883030726970635125123523140544148814202811693813487457293615368902873123176899517676938129677054695133304684705933934728227848701015330690752047632921758866177421782224775445051775605199143131590478419928608341503780399321869563831717194175053464420175145921494259840682622175336521632122655551599262261621183088657813791415241079335535733587089257185744884431861751734795548928470070182793789597134841065001319248041529942217083268838818732741704266741005076504565346679683901129812195670467472202038289359533412825525472779444440483733412637565564061314116786876531985773224243910157747780955989374862745389454418626711587858820289018205445225965663248419839987898700605823417748134174485618681552601258692563918281315752881574044723587881640532114838820042054030095855324043362048218533656164046429550460314708253883081571116747461581921603729721581216058097420076985428284510022795670337001846375895924528171271136808472099725421184321433670049147253939315832706703266836088923380920955795998194355809161170450402394965991990038263006119555953121925263155703617341321471411266402740944640967959660054813966936654615024497149621261441431273267074896146681286486583732827232040112625270791580036738800107029034880186534641560652847905943262959719585565535987921799653888607059343879449686370395243394066757288859898498801821212036107711215261377629023856271358496811579864815629204838101997694017673302835396438925355884702448450491201580900870027650148745851807604796736179307377674519024814655742534278825344477151195877508719851240322056260220565365061557385265735176642789087090782031091957749031710593640161308175712468420389815963460049190206035582372026740720431458384128725645668285203488493723917478260037232707658377483130489194386958932668458180945027025140588302155720484864291539756854992738828912010590374339818321970619142135362101150603818497240968081479730154032151253231344777517250444935005191393712970889967208492643598139185801234902886025459898935172465632977976612222783946192421894259914525162832933521961105270745082538317636031898761661763485358791540557778279480585503582558525085811926383334929315704856844653560831076942546632618423106496233436819207181183157951625309492065016840301455580492550613972821922589078162975881511660853546611188474180584731377828578737090097781410945541484323897223150159376992308958567472229589371566011449582631682781000971055841230204655252269584303772267214279660557055516073038293589351456872288721746703907046902026599871410065678605500301978382412241652071375719731275347063482312477201191366132986067158324735646156526124288985754094116605466357188031195428464257158199854753534563060093414219366903678789101421340845406890979425556021181885118228310063003371005751007008316327902499253733965042139263619572049875109842229528960490817281172998586312704375647977436239422245150770247667334803613580027647954235093699326117624641984275359944227177705109100130334390481204534904659715367915695799576570093072044741371149710604752852614649071886649710606763736635224737545588765229106011499285295820692786560799761061332220779202840918085105657311171075557620521005001947216360565853504248273612680263015916313160208560574571627356140993014611443850416501327137671223848876379313160369170660457406601924124737104402388163159977871011150513126167038636081683872489521476234389267431937299897841166567627059283914040563225525939583687574406856334554935274487047473006069614434599872294070317870947652783544030733529971186267031059320347273336313007615351724334703206154761106827563221840398443459523814478767051348736934357391345467938703827874758679295131589223035275073661057070997867805839994712444942331892240896334194874931516809949963051973904075275294223103001564162481136503844311437218006413427824672767439872642370434188112150092508795474878950916461917558405792154234864268935852840018639012189882522444412452431513100869733912420684681723046744394256423150573000759989684126938138407351654663639364595112879073639661840171397794286709464721742299348480557366232798918168107908853719127382721118806057029638055678537711361396931154895837623721788782970486660375566393207932144006092282057204224965756250600990171453242348699272405581447616579103355224140390458681782212614778394518701673561519225686743745271953345069892414178164006224764542824673116570446385734206789400656219516104921562768489850723784745067620388117988893094738277823343100911685016682408682031199951500463888733918502224033996976462436613178006887574673161041997589097849857129084390075701834938550672353978577152829086120277407360961955439216398666953404361224742536987844867353946578825334613107788499748092179727176670608974823763358670580490126578969323202419215780368943576654861772574266542369755711268339297734219775288253924794951063563837554585785875549529363185625685700432304144479387220582169044059814934869317549787731908859946435924360354341830135694756468373342456807623593371126434564520652172268445749255840667171952008157336717556636148097120562369684556276242355712169853494590706216598346475792920295644779029854587771669782698389438322572344495710693966956621168469489654114973572142905928316952722391681796396285164336930709088440958614480071978307995253668570445370790242886461480849523174015937984250226525917632606385084246469547422289557025564475165744907135981824765899685091669671299513531784034396053399995105689188634212172752768521795454425635438447278773105189080765429370275544647053639054089326285009674453125966428543052836407549435638670986519697748170654437456647448358060256023198765193469928176442704645760502037491195520233872069058381912019765831984306045311839136642528591613979894461411178448863205017081937636827696365179960878130405942415304406934667709069661646540544822437133978338689386630196040139232850525502686416967610123924548313210602809011434984780659161963604851217400952850501791861205133290521072544606488060671265155543962729611333510366677628027795527701512633772083988373979037087374809998577906683568001990212752572984683693797042678627535093036839538445767282507790041184189081051947548081649556350254826588312678540880248983557358473589782784586828895722691475009037119740497778744557687353389430660397454505573123613496522219466028634813669631249231888330188298077509317549532233420433901446508376015826645961719456765525273373190077491996278149979673823308668752349120378261943975215123932396691757135433624897488723819017971815271161363371240297908759763366815641712904021264824409332672755313021557439773639163552571819258970723115617268794446673606742519391677625434281791307041208685983225813500441957098250070726385128746664231996119190797374818430167386581341471353052793748208860182274188174020980796196501598414079329442572542621121901394145351015105366105587152359145925822393405517206242887051979780184517562760471165024539936981758065314911869121246487032751637311497445151680972136879371613683481975427571673211955793814950861871204666952072705269506298623343193027550226452840136050976987549249112848131432025340440455680040025464854811278806541122617402702843779964425720282934817663215348185275359369151075154251173739164743906463798602459245939028089111332976896797561473782924182646233287608028743146271039384879649596850860905250854396085991657087428293657843409582799445299297329525805747028006365479089539526406931588600721100003777778009067465471777075716911671081467804454217324193698098797144896010918399863352251244365008405467294394913498248053911462352644795331918493022203442297323883079980559612538103949238295337431960290389551875289803722009597251970517890892242126735183249166137250609268712449654041649581143221231388370243921812806976431423525650758694223863664335129509999459816631463018192969536275240368497774091798474760251777201298622021545951081028827831433727366252765562500311626927661654148872490549670670598804214786472973617615810606904950251853502265324482799617738005019119650172498431895548107649039058061528491222104227601413160956674949975322440290054011053737009871843853567531873762361421306265262212201746846804919319461625577095074301844424835185548834056800857034422546075343288404835184353952497796233546918247959706874323556042021542504280123280861448276889888460500941816153068737748735847172809324729083515541402398066511789948132485621670499045912422599950747632623132940956809153364428692476078315305312499934518554515942557091322653843620220448836047107052364932158191692335034830273980531627515396201597160590122231013698212096948008795724008099589087524941244253540853031152641908873412748453091908391871052651858108880017960340128107804204494792850038922048038458309512579577666711393359027685180811455905967975933013322262538168052313306046863915523241067324714027908783340319450725528435766617257337071734789294511894019644822699028833249649250723864049084380084758719368616784800783466434710863482350457496584481264727199505649348811367800100663305091310026971420997180814437279486479479410552983394826818448832724598929737086568354217613813683492982576142856085553190859857634753941841093747605076579460924802309731386561209224720518399453651457531197159752184195664094394040442045806357165483672409444789476258275474116905139049259637061829411885013261689782395968021408893843139618770027608459518416281044148789101972437494232051358391213526329914590350742245100344066440408943062663346058595058367815920114218417692220417441645891039125814233963075646736671764179518246497184729368921607433607011024463598398623808527506878115316901393308011551140760415967715836574740799030743328667349533455978231534802821049551460460625238243616898362895591232621619778572721468592583374947857198031515028809497746831212685229895889776998681362723865856414682919216582187481714478841461229084059099216272752148404840305961863743391447530393414557740832334756342654273521664491073529895636398385525887893439136193879328099515737964974658832351418557991658480722130013913775980984361464048267177771005140327231315601021060726053533799650159453147247493704249085748132059223188169842064226422213218535500532991516981044219518462494572821575420341380405777425990110417553417602647811886229603356027072448888425999857060818309563304622632911567833033062587920761663460939079992454107823222507901489196632179054944306192195811149579797524587004516319162674498947114712257011990046534008859399513313154795587979766636741359275645682502282313765193601278465122128579325277770801954246287431643049688894613784425064340760288449763945883705706753798916213733724746000468601915637866026719974632847223128419516337616682813872286778751533382754495208668200495241781844539992141739525296353293842390515940007583301551815415667249236522826051606619197400506820424249825564514603634436059426734276348773853904522101109984272094363848397102497129561868152876953549605572336816195811337792967472055527305393107935648379029253506520097613715227030936550535808595033400311023536819393420913881124678002089881878626737512111614205382012392151699520006226548502279958587076382090126892045708982220050709769589451448066934145385553413153900155793993595381550253849766428375836886200341027687925101767738858330536033895366402905990048314201662139572812323787984545305162630251917264274662466300131909944181344521675086466068064336375206693955436823317534684467383566679216897577565797526211368572309881431076047295050019139920400579051862158043803495272211639121172769665308594791120358311398385718893578151226686572139969781486868400136805145518601309565107634600254568910184218680953234197382064412822499214628320406304281353251746072485057074142819003516841831615009196647294589813167809388659674104783844853808184283005520580624744503390414173664524619646857675789055980260769962823923423548517006051491648103929195628822031168901080471811377834307213315310604539999139017492882359022828062450210068360777742635513047280079502255339365476291888897643746715575990518370446888367885128459415529158551737173779093498331111393634562159923408736647915011667364782115647342910298647515839181994249442365931741712245763195878957987759519092316569384601687412636037958918798039011653933631124956765561099000427098832495298000937879381451220804226674513559849168439850408778851148631288623514389458673474141821799549428174284535466404241739238923930853335689335446527550356590305991917089766995734298108893569738936573457788324822693191271650888718904773479409398422297394145887468540066483907234664363051292460346485081581702667662320985557747498895330258391711492599431582891722827458615645775215296960751111062692649189474309020431857729455931916358490567301619140658167846805273737389526974482034173456991681909982882000943694214967036256257282623166672525522841286665695877681920418233131958105331955842839768561189521195382606656817213079429050773937581712914502896662624145559345638830529490226840448447939953946129012461864745705987558826651371188228958730328632086060786857532551886681340665588208775671151973001648230939652388208277419313591428040112187806324342814642563941680276552371343118607690712967274922433503572217445910357822822337519187088516087986304938455270253036747018292130857680263999284487355820461436182940819417540687264484496080478693738373539722206955945754906314771020732318869023919613931021787288462836695346229011237314053079516881691258432573805798205069605560984563637964566524290535318990417853719907281247332686606586699146034532393059838568375825488570813883011239336453015920215387335717037836374544949324084521208799328249494981571311942261375550058675870353635280886001551961651540221996490712137142902924565958090096320172953495791967645512090520984675316917575468918976169657023475046019247751689343207187275985913825556223193397970891634126886427296474200362892718614193546689972331319308228227254842582355517188169245570754265860329351940455580997771206783997004036347937215840419769505408077149115123009416447447158715885150248363485113333393010664905191647990874583649525575973123752517009423474226061513393508687999557051581801662768526993915163034764806385614198013563965168000955017535011808444693232172297085288257539935164092852793648032794375354262711852103461985848238203103405436154085377558308909605035601706337845380876407734286512429933754033766856196914406419080551120876179156416437207161623908944124398394600027913873562692073893940150185185817944428427902749497153374566664988987177700516774540727809471207657305081701763614790028817950327947548363802886256561309935405055006611824209842331342073065690621670217461427805993042243024207840125922091900982204624653467904847434831697346980772416708131339058567685309485477124737293735174755708570855563506353807965959492173408910287766826510558086804283644268732157044135186509682150857407023656995304316119026602492413660935754812876792634776548016348131408417503306554458334092156395388094943696012101358826534970360000049679790023945128060458142250525234029542253028223197482508303970837762004927140560368267047843593457883130485791689314787944825240567724671595781810583193342510251321140593718777871186257116559333250217849795070765412674924748572644059689665046099691361202465663713254954563778625913661319680049272939465460233990220766740697679406832104057985615008821620334902229662001592250853222248498269141746242372206131941849821248922757042369925195427865231457078596890543903311142938782024862097175522107752781198448040012823508796626428686512780399299036295869179890997215560333969076410277792829283474223326916901670929361220558882591386430609426465423384622110217908899732765934603207460232157002149788794708135189277235328964939938892240811738840784200780347736481416198710996487588134384765728521531439471115478666273068820310155626567181241165506631686097675726731942678043033822456314287217734833004793833812052914988580708879389779750067268275118700427835931588374386429959068921019484202631618597560404701653107194809441463010251097382323922834309828900806433927647867138354119081293797912464422242498627559537269264891101420312651466276373737261106788152629765964395480370773878874644253171254264557071361734372383204223611015727912125263089784643011317246794959450506631080631034459568764418982364519532562119693404643145641931061996761074884850447336799194787750828379336251634253913731063229564759569438406320339534586008214618802862211468121174236143698848776656754473692131668550792924416477664656530047458208495236909544401082963445607880992106685582988254689378100409198120777899339469325443369975502202149680910041204795185363665444887335129102695493183534442129295600094466546353772596565570374292470495224933706103992711006266829991760374177876883135377175649199696621461812396788713916886273736494143542016153248976470476708408261803888454678256565491958834119077613184135341213058189735787258220515430596298244574472665248973060444131502403301812405568529524594398877589638921156803381323242010546231553488031556392096679360866147412262034571072314695412775758067915610990729878152762406258920959475110879150447002551443290086889750133627521449256760326473284413890412218937043823841363735001908959197692109303454279558509490051319511904450825350675882724585374349856962955184166742447593806678716635345224738406432399054423691319403258455775098446876375285782215315569393626217924367296247793554552342437095659353007581297453884925402738689905266746100119615704528081673563374779234921558937607084208827293499150490253009705773871698718048804090080086375065724661150766548945689002474127742741599275961261986770644282261583840277693856499984902977673484414173004370805113937299044486802081847899120268837706447703274274045594846464733481867178774105794845509588915975871127331816815081185671911190572442583935716500311251736413870235040323416577437526698620434121463109402352323523464466482800740368429106697329434497733753840299291167677464596916856508551629902273045752225648505541198196336913621019990088329970547497260177405303431894324820041384369877177713761947737831387860838748031631549556152129400090895985635571646143807586654515808560309256972283171366430827294788077005390029410967967062120770994350378694152816825622405666157805839435522726853770359952446993245212640503823916560668910609703406632351096466433346640519687289395779815006565794319738728051732169127852166366265401240477053299755871832967612123918580987256738587827178147535368564214694631280947983450129628643315429843466732345624807353109137699309310216067729763412991862806447709785122955743968773830792518343958727421907671118105898564677874872856985940362617083314247177520556891714841618257789981048069524864696205492826219229629578365248562621483950566377145622633123607469490258504733632804744933233026039818586586048310621681945232702191307589353938983461685238900223986761487404093590571609035238423285932863884793124683878440531469830542494445076698213454106326041149054253438676747366888142471035229377888224314371011194264046075950993423034787526379664999382865753390602694498695731191471692237827403951403945510356989205026872821190812928384113056994620820912086669003167380098771426362803583959910726659616955899732918908084098685494993984624892517436382696958695146192791342229207767615956641722833945905612057057929834198469977581475277331431748261809252720690817953957977339551277633272433796717306825722999492447901096288677598277661771920588964028850865759262708908638962638495939965287490657657107633757711370616140187884515534406614146363339214491031421970728176937989069354566502325111009360800339352266728420575100576405628346233397627235208142314982065483107868404777006657498886591464879241032320457789194612960935131972189587975966954362344383681820346796312634737332114440387421149242232066355271181289072332306495529250696999939191810528689083432273371381143795629370351763773630059066912908053197430298024635876136839855733627706148839709459844231726038641973261491998658942038873897124690376050892476241247484699292631857662720984481659878589032552430896405588223064343791514000489303193830944120382727458472123704731548212418159472294917333484851735008745185723407489919850353092593162143819752764510195079169479298455136275500514088207001512483041499454938471614006946267621349186280547037411461449288462739380475377264484709583346034982261739769842761475662849813558124644796553335517542722688408119886823588571933811160514501284412921462906898840461165326446025720808891040236489867716490667855158677841123307535536685459789309671431861516330933487381939529108121225128427818815484015620873385372155338575458983106917392826076646232914708068139557175523498860593981323317608226661037670702625370485159470524965815372012014161524280273031801483582707844512765545002589165889838600315167514765315758859535542883775893342784662627376040357592492577709655111421510257070486738788970444145503513132444376035892048240157305726758671220211790547647730476430116022416401344660738896106818241840254280160963395070338105938511361500458765712819064516003359293118633255407637610298727736259163136658757976359501066350205355912332021014810584682033951100080332626732864160855737208837699610546252639567528300646662222966903106632731642453383242018807682583347089922564552144846636341345852814155342714557355442987780261637889416336140276424044991674506362497863236228823274819711984562620503999672371512019165461822742738963745507957210639509395740838448435158420040576076732369990938673166568603775998872232137110572041177483293243746221509365133371099609472616353170579828945313800290721442736496621162145544319077469788363595830402664792500948978112910046563946895503613149103917579607520696371042838163980074918482109390520464331378628064697754726198762904923860988845168743287427952790058045547797770519099780405117173117655380510200139940069108206516618485671993274369275280472906474235474947894989104374045624352045351696227714235112990767000653287315486535545390941624957556462775277932514290954234525811363656931672939330849346954804693295520976816880825073446613177567000443226984261926252099004015217191312962732356713072273079759745762433622344475397519668240503867221472451395706567555240717666665037915653731641152474374681831201836268063915724152907380068038392085747681319381924285038029700793428101580601923148493552920834362382373823061220186970419464133732195484701331028176721767692849901667789288934868275151638090534650232293012210923995396943184412448005772666425267233576243602262138462599568166367841627847722671498822023549875419108065504840438821504783025156206847531915293924800238419307359784477724163575822285079020086306575026949334837927298387536090233191086548013583973332388418781030350315594854404502064191482071597827746431546423728643389872243254405072125115049335897303897440443480117949432227119868528007589179571916974056002199748810688705717379636852268550629683455566943961317163912510836253317365453803649470232761588681673932381907474432791063501346496419738940229908274322713163717497944967115124317196639015966751282120956781709874565472191881541038612384274422835652300068499975568231998780812946742153420592844454995688851306473198498643068904010231236401531712101938649082694569463994399706671916701952208073724761253004546882430103013178277070151164318928321998534698190282003372179071944876048006557064495414697732483655576783679588830955583296114263146570139846075559101619144104280871999391954335271094050403795426999146610711944356853664278036845526763497541866679630041771402769008534092674461032167393164856178761199095252194765407407499288667901732573728901729158639092171868687604995293334797939006560710921010422955972229736566549784092837307594000452676532331013881239556481492879603440298008541061012233134054021925145893089737753670968714074191822198754230345432557706857253938371649620176453143952235599124285640446378268381658891143271022316886162843521620990437718049492725594696515179955242942967217750464896923814484455118628064316120646709394002612435444377155913729500735066669233384370349027505288147236801230974134489401338023910102556412407719869028127623753603511951341239128848176922156722128526301620876523894180116957605454568579698683728445323193326804870392442171683252331274924764480400605605592774462285249596670272776644857797664113694959544880972853006697789992997752682085932804392424075066881884104423215733847044627097480242991545141177973426113550365853779008620011323752606298119582587915018940675542830351269582136041872174318719481627476920776175410139682767858764601362919771799429198490865581725226780973970385795226483126934194598664053023176397427711912655181013287308117036127479827802261889185971311830637380778619300789012682607369142102070686108834867293724789944251270846130299482993658800106406218682907471179852610243801880833061765987888058490567894742282093452201599216333882410749642677498375159009971865416473693398501058421405993537739179946177936460592814159754245404832347372447189698995147825169091869449305761035998117399534044464363671881218436422069132554104604112793220738403528143692717671880660919720436813667323066956468918261372486354554343754682045754971809300107920782841740986341190241635843469216586927719083010702165931812896445995178435277080294742816205929495343313348296979416389363910929585160248590241418658634796618554501952726980482661679476633655829518536105188794059676481137106894485670517609849769031317337333018529689962816803966981322244965951630087857567624206376362351817124133183433152655274009141373787481685663150095247054903299356791836022017430321149214669489454732848017198794354160776445917857431742143549352777662636123044273645354258777470787544054008334289233799807948355510524908498943609448894692842078814496163627315894015975026965081206406000404200440591937720923924627062429242527274238943008929376892723348208459380769108415979595438934744604577148196380995482102060542864932533154498733560919102194553004119817944503801160368407854519424153013159671786015841017279688032635683170296385316413335945146172115052514824514745031204291393166561917504741921563349247689648792047881907007993924127509738773201579838422248503944875692079389036855255134998953152269698830811411374201532705801009338150077910662671521294055510865711410625850508937725245589191808065700860946534836629618291909733742747762962489291645931780902705673024913036368593282254334923625747952513694432452874260066253647407504268035457657448452560233889507698855672709018206641219867748578257868346581482623138812699081283573889112321445872012607343032081086527231745151559114092117682680141483735896489357924003636764480755521802541930394110887300771648463977838587584352758673366164585835672768257067233100654628762349806212656180522810643770819452286425294110603939449722585215559486411759638073765254552047424702615414280617842427301961325638471159718640171889691064145884084069904812526288571010811059381424287582791067904581784838907368046787766575210124344406415034251309410660613579455908093341228820255698550647807726715141238658437748465251649826785322088488530115639084960946424073366523910092039203765140370968466547391596810498198541550862837042723829981091602737461710531519266153979011286039021701277860983364022425973602294363234777161854507065240795838379525281464441701385134228233726699614221188863869653729223508109446757250212245793307304192391717056879086470849042572120800750530060827840303257154537964198734308067764652485333429446906413815730096464637275081004323913321820997578242249036254329946935105504826058318501592447826982616603394516236332816926918580458289188642612802429918704812316456498417791858327890187525615615714894094622837566288963510021798275971069244693715225629803060704714058209001631467284017802801574102098920150325958588817669084814420203921501889161920546672779888775894375998548798948824006696262186963640257792542448041737580527918639069121850083942823566722772944878186201200542434733290612598905345023014456737750363772970208511985196001305211549774274872519314105638578796981124919665680851375088619725398273339716668629405792759195789505191909516242375632807203936424284384092116510663630771377665692308754216613357915378821862104718562687283891114117355422015239108679347756202335322852904332625772079896550784095576061162989365439475538405190872898076434922875653352267298962987055982206958911594612724402154850220790357023466146638122506929629366444691689239808651498408847523492038665893156735383282141786897353929335945619373211097729442487237043355951816026185184394086320704218774989713075125689082804925086054042388233660905335803266688967555264146971711014212439285312874746524910558876927723091666575632025195675979839205474104866897639768567638563579003316534011315973083989210600496795162870079357299951545358321375088561737416115300526215215596720566660006948723653994583397128073086708567073951572456942291311175705827486185969263491434530287957888368389357490030920824232078045372543918389904636547404874472734756383239566904652080205010960564628555929978284944451768277241866423166269742616745372642784376450704238686643766639758009824974291150111455732824657916013623777438913535482630637665023267940777861472865322460087575487092264137290429074550117667963222521094990550105071850055933975098385144788649573523285051845788376282333231782523348417360275850087940578514342466092984938074013906228877942716385494365784020857216049874864578901150864965656797387882184654312915312096937142696356570880621179700476239248663756322356473472262581690827785188095588312930387136296376187738451032536470443777722365672742947688648667719263861953029760625872320858481957611933324160276214259042213000435537001318672572107458774271934515571359263817273109581802586341547919422140173275791772770956956307573227827710280422760142753004486078356019444541133934217711635131218080411314192509511075330188636128129032383923033618527575063973979492855560242743955311708734203850153881552545983048548102849259340062630358469171068397591968137895821190831521792140354442327516360140696593656567491349942507114221854240453439180040720913204789699877944553324131508225799042456989810544084509686395731161460171547605395418188035239542630028711402468293039284975972183902218969843274774199794903899412724815119599256933077893819806395668392765829693487606866434471231599723550752045145543457884063947846751152559297230511268454075458983330024286085504464281542326004987745305103382112833934140467159502982899937257793573845854453493138233366654779373692003360776505566640426572776029010772692880445180655993736359873046138539984962477072369103462045164480640201036868854093550376377690468885126179548775605781252465648286881669011928375527529713927027670378287854764745609491014619685040207854436700543435511866379788485776954624783322647128088404678387482945097890702324100440694845499702738425100897116939216315012123536620372437909152165503256753000252028819445104975537530186050108128226035118768364443659494519835577319585164619068894585490892297040155167317318566408306558131196310538459234086003043805424717711610318625247191072181833791969107846577330552438065839088437054698618484373066187317528549554548201804801819756610421567877334488780016130927177428573683446554483128217385871126250634937413791044729403167389860456202079820603834445966418221928895663443594989121758001182124852413261594071722890205012554300472675515742981260153094212861272811776289890034799412058440742952427514481133519267166910308413077765949693180729886605900144344968312113167802275171226888023944086835048996833842671581806302960604902021588422398729351692946338849850347412241318427938391607272242747043144966138932840105229240226650935712666269085029341471820538752890975400783865986666088274526122016590038918310688784202017854178492541761859435825430817360939838864599016322231388967870711642616245298883167007929040343002388420168485084115222379908495887305299729889540396436419161866545891270232478223344743853461662797959616365801900408648239245239833779116331733106246393026384444010833038263422547049008682323205782690039841537346643575540124988759404987426599688278987902774763406776842826304404908391835881249698194938961765099452290922741760950873094034261693750644446168221589424102969223000086829223342314762930139147456612769283481035843444913062036885797156137767751966959010570120386054860982790377257901133811555407895114932720624581215782872159019670455591435824548933573037779029948450769084045136302631357272877513341405219145041530362142140122219008752975021693265355212749997706238254210743322972567064928562423605309458954358153646466239531454413845320221563738233935625520914027680597807558333789892644635467034877965610726671212194047409564984845920628616489864864196425488256538343551531248017562576224677766174796276204623901337716634593013070275477854450570332930568147043117297613542424955546188443901061891482672077658541685259643946044541867564461162747833469238183026311128040098086558550759704445726076084635218269985054796820775995290685457313360705394419754740114181860045448627168642478214112743912662680850758424591049967957742063712399317447796495764724888925119215001878681573754723914331928070455246184859181005126730406392284088179310066379936898263909161561797221712422506186796952822475682256311750732485091859068452565678079721905676926241830344476073470898641339764325322245624541227582983610918227264598441480941335673863701674420108959624541905638687351700023365471274915798719227700646083944441443988424065146473981191178476414415946535625487918633158455135504669517711248595879488506817567335469563593843046192017552967046652325887188718950200097010738854753921040706397383670582351828959685871144659830236057800783552894454792105503470570957811815023443993421541870596990246746705873332113133908776372150685968441208081184533974358408951796934086099722775789821850796197503480630393525251281261786688626185862252470699129184097877000872638870146182537530031601850950975344195639129689744932255777768046769898395818698015598716406652018392107825615205381670490014822030357908137175619048717147474294890609491722944844710452949208332996949811406452017718060640570140859428297008155069287955570594973125673496643511211628872991942403213750910489973770265748639829951969765336765526968448758626925897345271391228909096572346004532175292048699965238093602476319977275308445490838456769371338275074151090851411195009106897679669551994552736398296959265930227504735350680896912423927703185555895175787088954193927489981065943175133826989938962013907876963837548930418543759454929041845158894234945920681474082620690428630250644730598920105415042419033856560266802071896835219207103517970991441555412116759585143241818194825334392900422801655154943387746446470576270149802409154671205606735231995167352558183741517980762287658090319072453649995213463937609805875532554916513939174964586538257874541660880213322713765933654497720081605830473281336551595610235592038294474547365639737063120414068358973935616189664398594133118734775963904246538725081186017774245711530943947137331038653992165242934715024527640289297392507595932756894674221170216535134343318134386746738916599474409459458289148496744565360166883502360426174353550742738317748199428846461519707527986579931824666962272974089187266408153939179299796111843241292694481583087293946494682572380658919990281341253027777421685392924269758458932367260471562506191707107658702967086810797355616911678464388083278385558786953620554263077569077690998855932425709271336051447061501794567795598615969311786017954036388869361997262682256967310228007818109464247304416801349199879373749353996103033474804703027401538699313517175078244054754897827864507361584129510766403393445410751311751635036733527663907241083806660688732673619226968509776513117134956117128224457983643446633701923778830717812703772659890800823284219944442597152230658598228935902191429924819331699775710007911119795510809503794242350517268163940436226003479247993932381298917380067516824896579118348966716592039199244120995593334747996084394875368840540992800524800849154379337583409718147135342580440916137829510178080229090537932576616925648972761323970848061800183605356432226643733359849844401271049225203859899702233388064716630975082477882888123741304828575278534721939014332400233258834117927460896556610476495632990433634256010338357892290107475877699591905129507838425860008826728199285029160984741317624560497759775048720833489379204854034954270101493575255701215431948072451135067167962882425971194424353787487998122754320104475977863387041396454677107255967063136753058603070563410567371468520866528924244581780395337925075553525427652010916544365219934626715494200531277229472088306433984577175422822961438953087889051968948178954605461108899483444668440456807157558071790165303407621668258139708427175199371681108298673533512791459040247859374585403594889040189890403441676787943889655133878672016282688280211112419875494501377509466168769847476005396959322399212492567354302520112929511529385468658992195911998711561437847238345378057861495948435054810600749379489093596457040744003650672722533240338071327464769793240743962076754766549211033945866838067864464418225880904561031820339888288000621595543874180727279672551451519600797245746683216784462558600156564233522869799638779374230697857676607470206033664814078658215447551345626716336247928791578468779434189168532011020176013107026034843687979621311036573123132095841164065012510622991009753225797337223149638803719860609757719216653919560537569981913706734465734822934111830730374046445928866654219799370819207908291628736175999268041181851093874491163531828231217651375278148818003150240011821755952265253448813493373726104772244149458598306717797580646781808978624453955626571065912147448352343276372097780431453557254186223947290078885825454329574973891952068502142106427175619775277040485862171077675292471465610974193941310072564981225163413802049547112463094537774599409982228462960676427178436340296242279825099620462309513026793445918844260014529843131986202745095716638089672907634222782120978532540363247221122208917049450478096220092779198188309454228510184530345130465828430078455261961064598402775264771836507761356386329610877217392544928546899908778489713348216793391291538482396283438971675625777207477773843855177669426198394953392238248996720724785492159810799316732366343091032139006860736875878021814697406585046780187077980138722519845579872236392680384344110340387129315027645664296608974312521153576334430726995579356043153034298800568398220710528327839717681589456030424767201080067805432909541031844125949041584331443752100406481209346962514445847827927736203571989345746033489345126325466503419370923152982120367792598102213436509807086752940702523731414477258116302908428001702837529906181518580182294318570402820658241713808939614644116159361512488427511526420225088186888094426544842914962657721009033624400957303471503966187038096736087480555690357588266094152297689231472348539970710503712808357113805021905180962276701294064275142487535112339880981563313032503704911204759208284379100408351093471579674668084265833328967111636619695013798984671430903488957940618520566065503046909514352709682500939765899070497678154224844408416975485273933317353651927991264144353014393812159335323903304321515014866092703463095075605206150257222396566540691012872489192693746789876693550109340636892402524443463293162210391314055459183388761552128324692828288973158782083067250622785780413970834555226274613485825783906647062882764417610669903104097934532321943026237611267547208132105269075953241510830970806555990436201652081507967556809355744082041762674779303376084290907853649664095401946798668760149458559209482065901449375613179875764722412039886449685434084599839148893125110749288678327017200204242631987702221176394753532272389857075757081936310628836963696592085094700648492965884056183753340795923280272765191457051661413091773791987420304821102235015776809197415090702171945393520499715853156039289318691889284873056216806108695587683541268439547677262336619454810482324474869071806123087693541142269897069121868190475642742661193482010187758071900819066863195578382305839342225301072816712619234078946302861440874007604632290051657731755145404175853301296660380717015999298696364639173590973774777665910007225530698325167636262546886709357855866568798504410545291814095139406044434203555859521025568692284152750767657491989673983978973961817779338546617519488136909148743395309643014429851056220585099333647572300879380028951752362670066879182791618712917022911108598441846464913485390875594273331667852232500835993618567807517165750575068790333199549287894284818645304007248314360397876365082619610600728585109712377513568669801836585753380784477392304431043395108105520759907412345919195208768203401774242179770756761027080158521443447535700973274477919284512376066299094331640353751381364464043733887410098609831466016926214478356841861053606712236427484338534294031060412593325378229887715617882723458562048644480936278218644660071529508761940702064128744833200052606918627626736553473632265014855116150297350074621446412285199130079872739365029675689348338138087174936645577931813032034534533122446212630913869738839323981058913434856240390111531699482093321416378452522459161216854900456962350940846834819476788677545211218804310524025695783224069373186720299604491901715392391643693124931065815237468360028191522344651960354725211545879644767019329075627533459433906963264165569607132304927873438574600795574909477167527143136178091921204620146850571551956773637003734906731325224724696322252582773650348388814555996519012947488639618141596754106166398783843861975044114326516513156099014602549677529069339605292060244729843041932027990268538108494813085179731578301991324445008022782196825057343737070971230110397746327269906865786444975720457159816159773443386332070955263141284188078616556225841643498234676023520232142952649255056758018619916464635075568072520184845235498831238667429030401418567257270608225542198681599050716864705733139806011471706045781043789904388403954084152637561940230392885537167976281025592394598499414930335136287382266121205939521174292379795938967513160339585939122590607140151094565622977932093544247776298227050720960321892675240722902059998831941127512506701908742726299326949042646996701338967282019066264907894263605382780259431391292187401092123131082351859740676311876713733848279179582062738967107978392888938121580249561872474080119637364197814998050969785078225088677485164296641376296519662916829377135023430929929020852239184551167649409679581017198719816131234284660589520273261427430805351960513163257164858803280694069407447660064388535622971287975583854556808629470564373601547691672503410770619845227367130083745738775834542374306214140049100919345828440737461185766958780648629393329375544953567158127848116436275070888733472767613373343270739868102743263962296992570435572782928696276969310020564024171073242561558574198088515353590083330762624238988778753153414772065489638321940884622600893082635801324469751415685439020281397590091976628543680248336300104461555211274430710307232443463855633689554317574472798417967850061647169237199736127488249286973310252745337317113472788169654187004881094197925688534792523989348087782812580514576771166951059676029921494200413568695046081275571592051297864726263418514262825305231557751991773763519241095105569545565236222118229145863899407513480506030740722813308752724005316616991046289467836908237285746042158620306253167618432410173376805590224106378088406466206617790246983390665396274379126608281199529205604783499900485285115498502705257027190692880154291295270483764621915822937169859465790828269380754835638764129788177070333328231589215926711515846894995359848591849813949983055185714774836686858184998474037585375070223068526438848472964189161446129040933542596556880933630149567141678865124491614942174014976296165298258109231798269957276763674849294896656159552101986123628838589407935853418416193984336980761139719900316153158020767968658620009953568412135676009423303604667273906374451289020190959265558467662770524205106715076540035839494096723303127290505981359225952352421944986042769093093415737297706098500901032151682905133391628486933766872775640768769359204993503933096946242671493390234574622710107059234884343284854196506723108640754569885603881325074593979345756265054157789156602306252794932081149197650553516689614784743928552431387136596271377946779008033718206358698694332223830416016490284313357670656360526621782689390247040292866326092029452093989158586670991169101874900866880308519465693772574865801427988432642976367574168387973289459043863730385057143221780642910522300758684455633015184042346407319666444459340411506840087004008147256405833366875167907430563643015863349412325408634559466774086359280811704393778249473962973028102467032698054041676838775142619776551756789782274685942516294674161123102677739086272338364979659896835377640011925853775244501820347666966314809025808502142182568551313685649519300898892530941850770239595822749192399703287130753529511769654435393943531655825901767760384389264957977718765401026618111158997519522122605667050399802045383102363580565436450096697376700050788292853813431345948637011128564346561407804170730761987154638521651296082186006518667235810657225133446854462504073402121884277909448817797805971781052680211701834779474306055977826706115719877194793963624106241104032521896098224081072262566808461720311392371502407133167926597649386806328985024624046681215227341969149132993475646552642458080153286643272946453125754945822640564035199243862681506862226005447300734280877472309111265561637010250597909892500797165761305841229458100730662181385265098929729618136559991620590956872487739120821049570047051214084336294034951177529819836922029016612770906872528922204923577281025953222831443084780615539193297234186965117660684687098810751505322272828516095007536124790196351220748207950241742756640907185518172416592015435459176264719867614537135278805900235152846876579843268336979495321330059920764396449790580833403908028514400594477076933206219298514939802639035229277604240147880612364972084922833156367255773780609422386440720138083335016780968087073448791854237446587237928001930460994605630126098516016509863405004581135012791305122988175266423073003575252131550336447982461222418700928709551399317546931464290739457578554035922666146465078426337150679541487195420933602239763620007601838914288112846282279048468444531239416892737719726780213575833752144170164622856609690981412642649812678767600960627288055836779279419851300506988643045233939727111986558731752803779077682288662126065248028557181405919110724621391864144158145089932320713398377622215671571077557096728219279310774013305570495160224035767159623971978391849899934188817534565023785151553321433863941714958209098650727369312091889371138186691957753226742408868190983198825049794259249091554541338210178983078261848285069660942744079821076187845992194304039587330557810214769540094098502895168949630651482405945027997132157488325595061172821799400325276517889855201415469645292805178997328126028943245329290877903502599690734675005174976153070777937640566734449196358042597965082273796679443695212138143987615578014243663434230397168184568480772212003924148720246970293196279610446446750046455490686425578547964850580914476080828088378113304774954685655871510062075948353931106219902645806330639764280682337204967910114219082461893770952074433304631404646950996204803846677355740276293380398410901476203989231661994046881793643489976829496098464401668646857581945927385028015181072996964046102887440405598708414444954299265280145304628254586012696048385717008096703037398266056728616700501423040970087638826063503586532821995856745645594916472287852928716868688374148856176906874632571157153320412489441668538918715516681968942824252431116125504758937650655886633448188147449483272094854256204753469489288559894307916213732884185306557116848035054179231707654398450873022917077760035201128603710617921828191375550659523742493946450902589246865061245223845305172968916090224311529626889865257609443094086417548620447209848161148484120173811026538070485813713679938314202051999643000568061010106355226752847734345925623058787597216628387297282405826869464928740846992392401386127394614096457781472246584918418370457330508100526364897896984389839970965646304697525731673416009767522297262928613322655768031267215375566633297788080675636476512408248448381088205215403522678900265768915606930308160728391414324660674329817386377454804762397321032905998716460203432700550827862157042673559564542210296019962049045212545137223016455743794474716187165912029866044983852885868337047278642425678219658960915766001364979726728602139950705627433023270345325131843773650863235176423288855092334411978319128034136903741950810024665758941831758346573004906629425552261912578969262087155538094524911649846430452062489275538774056125518414262013579976447612154778073593688677332481969270750083237679962516216124056444135519543141243392567426242442969918650598540767202971438031579340005876156250712590673241176074968537749721332729983464996399277661283061087543869161465438249012662884427194120126337744068150838568943520071518747811318595758051373831203129096828182275635752526989208198363524901129798567864186731796782701891402292875605234692407311463528196841191630267449558509790576501997549499127445312334687904488243708784850472157321442838181360138991250269640486355452543819327619074636591463064620833227956074352963873433247729831069747231964638895523367850722590675943691991049157956622471152747140995488281026961899199346716937992398537401660761871594173581722526263501710173247385358656395401861181185821878949276833355168621785112977269803999061669007782984334442315461994439756572935896521484756837258312492048123017015818004498743652905428625121727844627926337780789337298088122022079865986290943974819846941881534380599421115707393691976951255555965528894448665563103735652204805207992841175702075601568065915394692922333912897431387242111509503141026115035109751935021765784060412873550216630414523096977015079328698140406389747936679496510373197980446510385959476771711658461047163092562510654982732931114288671248714641282876319767182832299854583808210810321488368411998538504891045255678691785970926198504931150296633211284848111053882096385762381506849101769341799944664862344968560657563036367138277023882012546059922256731168965668042610151640295251860543464536184924927902520967371718526461360279988187864132797555834241843513595501954156257372092136250199134943326358843571595160092096258357565258397493885126029814919009066085269610882848383665802101116238133985999687333276917291208898961312375130427483983248409299033982132222312093107493671074181769057931583829266003419063926009674652425528743304509800329392363196179128348097727551108446425295407122691655553983007797296698270208871890556561102665461102029482177373011810855466290881500177210980776862805689159761299791760772138708795783045215112181580056280291590524814489896674059242054921894206508758883138440158620991975964360089955799808858426160073458369788660884780742248903217053135164706193257851691585793859327967079062784680121175697034956522926104882693541990962007550890185328782959032666093938515425477190133699094382461084767459234028185371170224097252129184392242699646654281901222622795656678310676149631897784425877128482682764249757272767158262961877438018117632582150768401415750516118047983048438500114198360078413952356060569944554022515561408935766764909075066329378013151440178568128853231874040275026914229710795326820088895533874299882147609602432502252126380550886984817112124840978528028300025175200534160453289891758035615395571510644618277645335551568027689188591908797161773392922864915057595295815510902867212512706699662543511822362299306636396861604231731369704682191993679595381524913519724682426137510079679785770732865176416066330897914221363762747507528082808747293182891810952905762846486848980149900042209353547139249892055417454388405522217254389096089917212852785306793885903241716779459388015253343477460488552609669794535196777591453499400570948906706436845381477807320278964912781069707563361683507021555785738537191980436568140369486442618529997492182181870103879088072772462220793878967443240189077023231124618689390589954854579868242267001430930453906034774772287658380753570364352437745183710357759498343394201399153832630209855198994405178969687908474787520843442430792739230732914437870940896619569929065514251391293368500573070083811638286212915389786865303165728333460925090520497519894973559468098171196816484560102844739449140287942375252052296379530254109704889834309622301323102889717710362886701441828963288021629306301905506343089107124456056244559104540213799632244123205878934725779999216847617454447563809235566961595268137986682816664272924190172599624111590914557899621474940112971957059517505159883283410207735878434782881940323920272847328780734336359010108088494326189399187017754981974990729996280161325353221301183056974716388706019473374353709912022723491096173573017067497829504024034131962580241924853023699695186376090209120092517626660047070375504398380085101890061509729929420681688111628734454772080524714161169271095088121562717418105099615463158385231235329128517858712867830083250476751874609024965010203119588389570295593026685202726518392552843855327661213038838484702836298227216279986862540459490633748823032948822979231622639663842056064772427796863166062719288933203308449551862608203289936894136459366945270859215825123445533440985432635471199842748029826120548561701166802152997585680202329516567257833011830072018152282876395523984043392511895962217440079335451885627925387734655520159030028595616574748515403881228170075978179483231851310331672071110105877895097016323280885984351324267855235776008297113518988577661871817407943427585791077513651131777135069843895514323949757843065281450025439295526982648389345594188539623895922872995915798809034883112515087691258535969177235314706497125574035982604197640449552200043188141074594938318775235471143226506555358305350703911687943054573691988312451176313968458148223632409226733309183108551619540589036348160280734238199341299608615222881615763858794657298610013151264708056745654165138965199604017359296377715724828022475905231130510310991092004199205673730375702294962499833863620758469793007481964212778957831993074867437832208508644146613899318964125799292582591444260427585005035321256900616408265318500603782120763828693958283420033306559971220431388709104756513628459006201941387803873937924440720731961976870757575883341831378094658318369252502287990558878584780428122600725711088069434407758601435662126067925309062509879219860772253386549841330155150548013724429168342502730772247272553047549396189702745961905608527181212645071115561593534900138911601411172901438947893108321166604507981983793536722496166261033400529206054488488753679058938563104233117223178819367020679987421631898599812117913064672705906961979016358179997000649592213730989280184120903311771031471138006709363657846588288189450292430474338069797839933822106357576772849619220455981940213182581699307593486464011833441073896806278150996171090299784463998452921006214948194485562978648085379806067099707913794851394071729904645146197279271778298487915343298992503843123291905752249278214429147502847408996187249740955623983508046952384719733707628349981286180912216540279089928455481510128599541418535397268116325495329019514332738672617662475286047101987965335512392324087544118695396628329654660818893572042756470274893242665911891942463373669831882537634007398995128628914243984904893464343995853028106760805182016891470879955944931835240543988396720888777666979425143242235565399869381938731907640716341491401833653877771338304220125347528524868039823827139699866233599465841394624446392422810025019106366503617321064077490715432572638394215882380524794836694332185640570164393214466517332881841113846571337936866039649798739649535348405349243831665331543187927008107827153829432085978770465124848767655010529947379659816862009207656019235189689742427233770570366521364749683821032577889296460685494355984014196869106230619032786792499634070679115628931843355044174415992373838583406550133391022700927176912582806600479629097293542750122957981213199483957904399034079897235201193926046471333374638801923338707545526254769721323867561624066616961740776370091517974802313591373902518332901803406526104835785627975215555139188943724806420665469353750377948988103140508229319842103218356311068889485088155712320277144984880047358397300125345350818108632510661739300429860347630043537271827169530485225333626600106930615036281514826201788765759401236508776155523016919904741301414235961334463854025251075990844648169746568835180488062145108803229991690964320698404213683245559740397576015914657899519669228003097673047726855901207788748658081687309234014646182186423452507383224062327611638591519593232699072719445874881486106311971376347922959457744181081513524353278169182570904148430285349607468962465378200748087437070694054496144722117647212978837422533928642257580545740474390040440978112905757624599951641290266585269869701335558433517053227900706636819700024392781440315876222574873378517191118230151558324713725879405469885909985346528427946448981378198553037124153742519357308508094917941446451723653627451637234416400877058981882510683940689373842804551052227713175536864106017688135257681900044843285023633858125284134209424440248420849454970072016007679231763985553333623461762571456642442698561530369267982073915030586622956536455872858703708573129841410897890520888325478700004544500306909754068211602108691963392795424799422467049894485087758941120996067722725055427972380167946423012383775653473383982191292875311629834795937683266231002735519189455519377469928246034957695518627860099918553130638539657254139568333014213958069670079573169390817232783446201369248550448090619312694431464292367089016336836784730977504402685045883528390336835355984243124450513560925672442607814307583560944007359365366001886548762601842361399791229665796095475517903128370391364563521841180179354364332584982806052879576461381774128082153721733991439482806659719061953609857346769497531094846130342613373892160481971561016797223148142365923165496250478217536300854736668403910952919437333911826680419928035153452528851910658115798646958329005951911844131777708116234552026969767459502887386422424462915471362340270749881396055995781495951623499927235460710175132369787787894819468167237624281196643506993015564700007974260465503721796952261702687524773492975850294999536204412410883202202784436474539645544178662277458869966786923441621945627068857357302121247620438596968880357290327071043105449677237617595454944895735571642846803225187819045892367098413859043957385137665058105584810195119034053048735104638210673279537655854060203521048044550982602915648460942463868531036665314187965716912978990843976703778937351635292541121354010818303847677595614085718254745234292331053228480086141958986252503180141322845295422054880598762991740104902028742408994747820525394994604939949033555310513551441238861751078997082360787201566072060764069741160772125693036474058834628204272463265299937481668278441661622304621737238397326396844359166345298657356296378901959880743281503457121474760852333152028087124352571853485912058881909648831360257433973362491786117436811752434712218486941472808471435821793692038165713209088250345289686470176927060037144798447626105949022879233319557851563752798195998512577292834579022140919628352134672634709304339484824882638954692888016899182609470030750382553991184071830206140580588825463881130772581757208538645240204737102405567172237967508181776071865956431667211953085115285781865214213561091951879223628370772609191384024838197094454404255150517492026212977608535314866641503566059187968073759285251611152209683075655345030573503273052135445338850071655195632415055307126078642264770236458514198177055456687675673902737358691522027036535877994000512643398528599744317807546026648177536269413249034442050562565832318426985486147159426957967742968203703207514840024970795760602757949672514810822618434852858310962443442540910953494828094743724950855266913907506428975495688495331731975258959887646617703723436656686374137592456504675620369494032870747532092466140513441568950699376478446374628854381308436698958223229788896972917984654226491851442450243658241906753836134199230005507283865137168727890906993106475463004671379876781464392760786566780108121102530011698625642691302169800737815343313849869506149710950957055221198839743639631012476369140771999783266084841559935629848009946992489103568538232950408403547013349305139607853077532193417779787987236581118575050112405344438653855277489123124232361327725856774741477505114899251940609840422794617034140429988521299432291944901139973356144939232123149949367673145775553758642303838155035664361689245407914649995747266989472401170041322625920943119711655732872726510294698824142314692481204594372910876066237006381576732813452866212466343073830822796517541327325534572413516653508567545338270279180850583679974918248723658335571517002248661708232770306963608739153928565776497805649075233891528389514766605929969838928572573202111822324686596144906692204281599087550982560922735387694674828212005587642118547168118781150182405969352689947042359771217059814432393354117155191717324716524913699987286600138965257206130484735263991742079109075282363080877157068669241792719202746816313454819948510252272675853309739954066107400404530422950127629135427175385116653102032277778812439362904793663235604945549628877269691377547616738318428066732260119729735347953979937282592863712524402999965174063751855541165463608507217049617826244329324628456782883173087720838491791720746861454832212624610393600465983052194821350282394956391541322132568262007758977560134050342949511268019444543178610380413112305173678053871181654152492345985478240385959283843272904185018939682152178003544459629863104920681319256202200034633108456693863349839119364154100361358693221747001040469308237119798596615839974918828530735826868466788334937244629218541340845749491398353777804409632203355287448003043376258807655624735252247378664591493668576961713036912299332017428188409481799644421984585272722554336336233837049733849833568750681149778283338472918750524518088548987116305218678432584417909624988082171608643855647157481223451999856489125201711111138260996065708754286136897626930331877936273161862068459112225961089696507985929374465318470480154804785854057548534315246389143189589694057570517020042091763789000787509497335102763779159998050028559602903580845503499771463795216665753510446111290844274317142109871834132514737303337742186013639627414717968390860307876998500423642643698176977151498505915396210696065576875336617800401434377326171468836953337375825954280622198233829030187742860533124375284736293887912578158730614464627976055850257705407931501033880740433450225785403724457319071247445979306333850391334821253422851857797072523126652203503716944785975444395695914596488915294175399891942738175972272016136171185271819691894503096547705325631759814499597114472199446507674491862677688138922247310332892354929342130091751251977387813473488856246683248348716011560752453191502541929001350293922150853381398550498908236218364390428672756144539991231250964239360436654788491000429311126248110218380822302504777263058442697500924817745136033091908554540698438931351730968432097918934166905681680739708203194333763996932952296817096554435638775155069946995106200603022153461454680385806245971828911239945755563909050431997146201318505234167960240396904949613091630916154403520157635458676968130481603610641681878255322794248369708335554344314036278525914703707340857898473301823528782350438350744862737129470577053272064526536445337430285577380817609330630717188966727758179615693173853767663867538275158573235503369542089835342293729696170284319138403318546535478325456463197018928274944469307593168070533254770356472357254939316556741169548911681425924772581249607547543861954740774688652713042972152758829023969545432389715793434319235557099010338403457628558152512381231982976561536300841883668222438986744979388717605441193112328882414578757320483766724063312669392802985617480833401203080813574638787558643168552670071715835938912676903473855723980990063837341002668581310603344913227342892676849980065710569992415704867126180049580540127680812013274165998830748548127691242570146160450541694877788656672301568256078690011292072160529122568427397030794747696603892022819368604520517026128292587797101179826977816511488010675795795191958654003078063786886546521293988423101071166800530352665533039481078763387896476876243214809431267939203435038733420763896412155584549354055971189303954639928788732218155576430058920397891318711930523454151494263687722261861663276420567799650023640258550353959010141016635376569109005566084567350619908690607240249537576793814568090320525010377824521025405958891846858062137779238411382026188908795312877833067180127484040526734879030702236036008677537964502842171682133784805138657576810252369436332554174536021319417903843991152513979919113698467453903590086075583537948590431037805586023746479073716048159330087143636659281187631543664717306567286337032935909377617869057322047887711448731856878490061127202369410377252187151511341935092567274344850932808345743761054838564258419813456121802268159723815660219082593433605872096416824680214404396205525145135830845099023919541340959833128845187608382363514284849172851402921966180432090609984476922408400434738375707008949183585467805098569916419120247461658579171367101770248379214748565157394092787458872186141554977101594519762535069704289251424843100057594860717521898475784713748962794252417301048323984334058353969892769310284228196280320454531492163028878035784615774183535078212731722747638525983845538524964514329837833663875587007729510008834669682515093519344698444876523452699403495606264934700054405844075773009958833620762521963656266820677969691023335039217464491781069796859641230834621223835556985804842124906457694455832135901545833548209156859224407557030802085394365095972362020085860979096376671490484077079319425033222695095740375293608313317094332685982156015095641083433037527378248873929534648531920235383383075511868610191266470202078322897668428262761692990057225043294232256284588133988299302177167834657451589761066946479472794295094511029121027361463474238584036183255554964486296544738218352294345261193868277667245991038687669809761588553446465614920529566956987991269915873493708069205860273488473878265243702868662891626802022202929133628267481850454476838646443589999054787462731011604492002106547591845846176405354254060744967509915454037978828543408231933124346062378241451514282858624120397059023207040731860989821391124552046744075994783686296087184179209447165057834669597961795115134824424762809071356571970991976466355406209690353041486796953734433780403278387834219598862987383234094947224141119582191525020130780969215289516935663585821447696412659667070012517891859756967403002373547235032936195870603979185560007098458381834483842420719714532747173910592832680876268273852224035023182584535084341831202193978211857762735429365669852555092233576965621626637605305616220945471387791048643358342173388056496341353826784298450147066309994403535298977498360639411579224525356163393270827985105479505880748949669346651446541609510513203318258201058816615936210290369166175847283284076725522481934644185645448550005856714183124619206286255225041234032256842525416667451219674770897755338892580565787826135126900577118746709185965411601426600274899632584822902094996543112991672797796204506043629547087693935424445536875037164367479860306360100775946141231548003783719048813404797370721338915351692577707698377873661215470529996260617941988618917687001346825922629757639954806490170268423678614426419864393581808216131679612121025050066630135442791648136509051673743906014667259761149130100304903792390923695324686504168919364949241810060812642754182556898112233590283656480195451233307477331683437629902663768209044771831537119547514917678718786138764121755435519868862757239218096192470048626953658919671730505545989375867813899816725420177391906422910233066868628490219805675558319239568344078057328479928082082949938355339941854234372951676674676229014383913285991751997225890144449445523064717591867448430756802053511055372641873949626964866951255800511476785553111684473399409314012724035638047786922331219167358916744047250854869782689029491191642483044609164696412330336919579237111957850714387993302656685738867748027419569156724870992606336572324917571535826689586131473399482116361729841904626599302064743489115665508782813198713027504857675778624692119513483712113514692880529090811275987287671754359858318884781959475057522763045871920817101659739292845334509414760319051291069570370625238295473954318358307359710899576204290765941797409351080761999937334083834412053436331715628807922684950136329510394248156325835394156982299807458975651667893739305556686046119669184685572061934121008599660540574114248460708382114391481663289790016655455008817134887450428613955772129036002459444539215380023160389591216622703142065171075739216032683910753828949990201571915212775896090972673368154374485354106549116567766946027445962851873611481678001654998551139844541470248762684328903504503919921370148441730946739846865681785438401344228182388867962253198143342325981059013940839226610574420893265659790952907334678875246324864533653854443248110460123513576927873639222825719736068192079021777328174539514024927210646784150603497535376939527291086838600788706011228143688048837365981030524385040226465012059368503255402454139695938531508488137798897063974751286658847181546143528390522318119632086876813736647625081982397643784886294146142907342451663421452251362665188331729892332030467225565330209267593328294857686829058672874179011190459532492626773206020227288111310151878478473488676898365616875056450456686443275196550114345033106506285706765978402313098354747017112991498733525044674494495699433085083609512496679315885780597769580381224021548821602153353100434039226334141402995833198385573766052324299961072146515359451769220636712775162043673680932367255547973887502917534836551625306345001064535650838734859512347902358445316771536183015987831705098055692621200449587734913145223242402756939459142208162121542267051274494246006576326598891974886941822258822988658206217230931641134192865319761881886624916615466331920743118040141753428678664482999427378625954954864362266233732345071876963334689237235482748069772943432531644472281047098210119194314241045537696757949818787184537757769185209539566807362619316443929510240908370213440444447824574360300735171688774049542262066358325723947956034368087129413718137457816651730699013647609254833717913108087873142059347840802694627957862592323531929549775902517126061648203279259225316794268156000634922493341323978531059629821019535121551485154760572968304644545845574815485719950061073720292063829287369569083708395734627678846057527587089278064781918518284999958652831199483679740269096163063400743226210107461071382230846971661660531965695536025593698372596444223504877342139644151951505737700234524803347896475433738180208085268415472214853018959999398372278986673054754876526019125055324882541103976761855445495650130277816619340337418036695308132396527618966672305154591631478059814647264754074418041708119791681421324694027541853797467221559905624274188187502209798289410800055184605703047756934427736221817976750331220170556770028008508363991543564059429462701290648288874903078172800878059869021537963770083811754890492217486990166289163050980357341649212641024509664942104801726607476375499617608606850852072423841687794872893771746245139104738072534092621438602494341361658108242027906020549063402518188634623911096006026259966686749455803415203264132749040774922283737138712690199576167068531149452477174261338793632032902856403265303816320481070694229692526069518186948443516913905188731093579586381140298301942061741229581300495036446277483057160741625849927892616082314094106619884936351078609651238140341050023922849046299088089934251150496695893273305765718501731342028085371125049626689361671976773571557153545372445112352852712685129643698435084714741620047672113718670533294431065010586571707838875219199145451765989620885398043689097480284520933330525073282381114750902773468873943751100289873389645797931872226918553575267243727376738460280433835110753860725122767063971104611659996733423382741804179374864835707793196125662747401213847236778314571177509479277946935079221113430983209941941666327884713295097958219666302857948132823818256319694711897980730297812713852220085147449024706281052958390273488066678271540516241810337634549326634333468792472975573897201884440137232753045717003633313699890225009831288300449644696530357754941144272807897132383410797563434800987816465213648766835282109166406137054162972663924276332641119741010914590651710996100985209980071860512525585725149698963488726000804516328731377588549875517422806767194009548832015906596603686850869740392645068736804291019275796678995645666811797032188468654167667619706258754240021491188646712910279924133033381096889911353340687519318346439934703076550682916284193853049239335012530036418252265204344500157997534787345106113231175169713968389703044645823919424161315761785913783283926069710454631647464890191431609850755580848957075116723440512172985383719628809472135354890554389915545193891032987485843228317876125627060213913856449907884967394803938480919174422892781119156399536020454422251205245071316765000189548965632129924353624932967636768884441721576931030408427272256988941494380756672986128316583329837479104376440536737675449324836244714224827630881664122912907932199222585518663562087506848431123805740290698584756663901584930137182291655466767754709396266544748837637752404591042815457535994077873988874800673722068797752193248477344314507194706250753059492883071230225014033169534675239965881801299728388891797544217760754510945121590267029873832054981959632819457080336904696462764800003369260445110484627877223531091114604689084371304931090206186227180930275700688320464787544561754318832460292824906494920044140113772862686424802273333987588546433056642457059715557141318499459376006524906148956221137123864065635047870029843188657653658539758047964418210813335182175087793116062928550258423302250092074039969118596422047911721116684104671927454423844860831382929300241894814888596507154962195752294683651496473037888385611316693158808009584586831085490719197417670158641978401447731229734594346567170810314698348791866330370912944755767942098614384133318434383457047598817971438596410582880515586293156192997577616826139797709047060754482666614682745785084859229789441054435370337418946965574155184840437679595343255338798989251385880258777833638633070483331621937608074439788645934259651921115158029411776439487582538691334424764911424828549490803574162618013086322193067844312140617041206773768454554440919597973963538279197744440595724422260992696099117512558347872122175507171755599998346380477515187570916728574903298596651643908231472031732126077845653361654927889774373834512920794364191887649005950586974124052867020595570413930829718845434516748514608333223481279920338297343196744165105308621672575652653491402727698978671216201088203802922235832669581910025939091878363781256754415278903584357164993509600101779458947482587799265116307336044892700723337024600222083401972530119885171790611455892651555141351703195610509735072419546162088490684467076272063834111411074461170416913043471805255780071140720654321310211179141290588729224606392288579790696159481110911239862144966431534091198887927140462658578242603460705678714236819236696377656312451876161794743057743124597502640884851782924153429031205902690710272364495585574393419050182165463727273256900603952725389832310536514743307748597880209188099420818936450882630339767161225834686519128365835798412619282288670917444921901271125183433796839871250204402883238833939195853585114490037772354117241533625491415277659274502119211999293737054146067168130476645865246631984713060303835904047729531016983054386542308035554944735928731269024456073918670107181959033029200292787080557018129363394740336343177967132634327030139674421369895958174568081947826562068438753592686564281443197752471560040283557497910615714927544978639980811750550401945108585601089469377934553120858138268956957587239450999612231478163737859491253430825653494762142915330441436024933923030219225016574872674882670958476307776090887153799330200030683419192107950367692090305038960406559995076717055562701730650466958970562453505785383206285382407036134455843227532428204758146014114201654172682157750684058757688449556706582493735831016753663248686233689957675114696577584660416376600747767258676041068671505785638023565208660715528418137401915903656720096686812429036590753687972271399930597868211048835035781982291181629263343242975805798651026700146636071009435657879670524503541806690710936940802245410496723252258292095192912042280269030876983730847935990949147549162570195244951448906629308243574787193702051401685853767282599627166271828823715959149317211126465911737322394076066576193375395128770685114035063737219446453614894736947674380370690553436511482632493688281673699159361458364360538749158055611519353176086074790958721381893672770179286149215900238629445450448805618235922899053046903279053994197833213558339364186280038713532249602877211801353350456302514593414303206351750122318808959990756233401873968509527462165904534340612752836010116620419415424266843057857238179416277203529547798440409050015544579861561711491654080750500666840148795027953249572855566173787205444296350895909412957682093782698627323139655892412050602063905008281245269666933812355617963511659874541316800644560835453996565866800044144569670613654325608403464514437470989166462933569619334054448974162074775174898306758854473729509500390546935437724121481591657035664440142390605362293261997424917157595904283448069091468744278204786669657557970659860408280536536426098097504110414092864771002796866616181179601765331990527307987967069097420205948672348182324459104311786813111823698705417196482178004049860218601280234808686226219667362323182683491635444906835453494546728103196316559826713979132559465854467449148715014228066941469284482952060676790565995221685442939235496587836719168605566998017379352988553369434525050635622988091715759569535543766406360780279886409538065444388537805555629513304133129572941466343102875468539969119009253382522851648210081195476778978948621471908276462205598612090685863523258381569129498566521986013438066784372824643901240967318645534253191609269682388974245537617786116112098778701731286148160992902731516771093811199245994385540731061524366343969544519839311259926307338419917399567575892806151708399559843513178538111186992319245762074530156142047456015748285413831968701555035786503344768352628981255280260415752385648112618413853222383661231719816749831854102597875047164965299667328605830601440501425042349616048410727927945707834258970880755949192909648825234780459004850753040885528025992089670037196535878934817788876572021032307657648539950133466281175603991978504624610005043976256813783753979317478700244571212456721616808815616371661499361578617067890767718760792841228383681953537050830377562155517654261332424347467691076950558615532913775728683367888634186928990462067210806791451280344129813771490602521916122061627298412230225498445567151082379331385497681996588302710101124350804373815727852068829994734868812470325939075418829224190106008008996694414071270968234040649561729483360488744037268061717130568159160624953666125561999804309780487380560013238015974900215057820124361059635920814306565713019614297275071941032770294401571807920722071499661048356521834528430980107197846581658697961021937453328063928343091399637505037812863731172130394831860896360486837724298761959507612207990671627221143860148197477367707274830208887406911516442849535480829645604752388106048340028138100852571876208677142770747488295344780888096235848170928828058601238567583997872768261373961114995497918298199440585111412512166121889123297074388621823392766551856197538436123814902397891907062698273011591922349275788519769317503282833518215244428970126342325718692985185767058435923323300928573865028166995520619546026522330639572898395920726379482528499068517582112254396628752017915908533933338509724547811517782446072603737798081839412368480937580376580292961889197510281887977006459782122409843741957516534071624613991290165864044774102533838902634248091511155161302142542526496323204215868529767331859743431053788525373550764344124253528262478266358843842417368416824522445789467365193653142770191471390109274666901352387802882858594612264929992704143310707799692754005814232485113667592412400907367651947267654030992021310313728129875811282689063631909052060234441450311709376006955872652280750497229633748438018923989602356318815812886303739627123089779470918102251236629226237796414581710007813045905765569338934173343951089929290384027332190134302000833275612608253429007124026971321570600921744925794012101872347698543044328382858342984650022793017895793018800428683274035046521834191636588759950564347411938900542300076022069612450782929933018192427956725678021071124615637752475735202785189385695524995787792381248201062133278668317098477689273052994631720846759337859934426330638244078145577544868453887302747691247749427075814108738684207535440192078757186070934949380960152482209371815996071256206215367123683764209085527358902477016522231445429519863994818647248235512598553199847227983561281739234440153360480290916475803252274045849288690131332078730418844011606797770212346035050400633715033397230633007770417844710592787346593730678872500205603548957417069919294449827288652271112398717789686746788920878078067802000403034241729102487981895327496422841700688400911681812973410990410594569532876185088316317375277581009992730929796955831644962950289626413779209957223417723104383480637268412227286760300159313200317297196087305605999417886731048076396023081877719936847666119711739116530652505315642159366654252812781418239259747344029805082331056169379418395073511859741695425704605685697108446562325669498931587764053501616843861248616200078945838442399251894765738408909475734511822185235065721274399112804466498843487139859640425788995712980815308699962114613548612429594792301501925051830597084908670985608653902608587321791278803812808410947201160069404217244340028114252971039412241426780817577144624360526560350195545541204204885850442995032119495703847954874392755551285727183284163874585434376704669349112997247041778070099317221820638708059078669495435028588138284724612545459850174540869521899150203489605758169878684558882611885750548869481943393997610289688299373619815735157867759001430769028325345389867066104624736385683377279544359230720498144918572132879782896508524457191151542812707315082254519839397751905091292540852658237462463264786124970019685358103758129546820910115894297406899985010243752857158112067350757615965114127228976333652073500811916582387924980979686504888213891961188927447070555032241082763990717367628595473995561688952905733176738780497978147889798217673998589424929927830358899755590798563773488969668768853605131428662925434369553587972437675545594992907408139781431533261980498928226481717419650284157587598509844476027356688366665770236512299491154656993200425102048448122277871726375665415848971470495937917613775695347227670176076168597686343237404451040648430530442065269930953299691830999037090192415082385302382221099492212911583189351902267198897819284554155116023042582221005414065354771293655177638356310424291336953671818823627481332103664223764966798042338965304576150206690845678919711611944546152291503171657602718072256019552448462114934507853630071492535264274514123700657880768592722742170955209513417817616908979251845803922417505250076875801121306613247159119968423106293347831822110189063010195951684409861721128443761263762964698964775354249366781659830521122432645165069012236545472870513705249337986452755835504992276451110315584104065508971415532841462009271882216107345613724207970604137624899966810843347680618627644011782652470392126502586718535728826771122431622123104914808683034421478446239547489734916371905405937119156131676040898962169742061768326898153901190070741432525555289165456027191377194605302180982776854116658841905886565646269764397906395845590029898220059676091178308476931148558933073768128277437525945645417076214295466815765182205578732616028264454489246248913052208435958557485565743844425689235633432075703824986432847205584004762367425955571378930243541363476068869983655986400380052088236951443231724020076140488109982370167677700507492159065886647335833741271283351383150144492809495953458178551125599383959905112916667558692150012718175360873552186524504938668147779847109355900105389260300344125941574982821720422960637868961907951366024755342978282978053952169493440647101295159671808447478756869973685128908972923407840735599904419050730955390279743684334698608735252479920194725648738788430243351767169957036115164838529951115435817239790671674436565278376284172312871571289843025153251467716370996159998808995418418648795939806209657344542948732718440081912987738633176641046184136778076784186253824939896510756719389523081339240847910495318699755029202939205268304143063354480769058538074290479225718820364401750274720368681070499369354760808371444840019238268224090780069477672440335071469359287826711808198474209828169219464806367184827834952641113058012832676569311549676788354161416791645900403868175076032093874172615214595394472693042511626848575297390198242927513289447162792125646248262789833300562787046808817990005952433166421675582972089692767266398814510188164193809784131914414553638308550263400186422263469117590489849348203704090504047717464634509571532451418926066932862549179977772838925035186953370065906101588389915403628525741736656920557544603894608528981858440955026972705094284080011743896371734136550082910906568654520812475561292099198527246950801589219908132887875254401451155240506496623915958640503813029829772269280263073443951273740746531436197053448870350242424272626420286193404479665218374785582923147683563411209565536094415564243227548542706117752603509668562261857255321067758437304889488834345622578922855546032713102272526950166239231872181722097006983185900024936309808041223637926988869392893191289044205463219121081509734927951556809969221454221156717101409952367539278532426130581193621989401768669636623681813507506667468725617751341990165428531932246079530840613023098694825490100006393847438569359955787922018653234032691108936163468560790530044183001973941849829991590307346503713124058714503066498263018185895599443854564753344769901463470941639251778922235094752329111661124929590787908802057039340545146856371605515670720821294096057663596381309525237964447077426633140290654111884504878156469240860201252003363450411527447415607990764491708937862992524851911851901062308932225114575086660158360454048297342861577941923700480053510304865624720416839915539088239718052188062062496413906460462216457478758436382312094352537952453675307770866437840928449022347669050194321612790612902919762319853837903200706061098862304645881441577122312967799075819208587425422974241184290522741896539342668371309760114234393961250728196495331714423541468711278129867870612924923320155964303431350785123144058354323307710681687474284812744188225838171664595945519255686323400955194025782273665641807647271850278962363212201050494067416275600333093082178415051885754344874914441108974834596474753086386139820835718079269245179989446650766408823709140292244533293367856380124944978737316492466913712915968083511832528236827039273267140760141920748220673282747741055686609587729661167412285057677930842674776267351334658742771915596253468807303343166710679180767357917496857844096096286959269310610705691965186798049556746241552899077887678020026302567465794117895346137986317723094983312443019030021154612250558648049848360190886134991403536765442804247648224393739956713857924033903190110018293086762956779594887061878091327582524453449526773203295506904542285470892895838836203089317103484616178607395281231222494009623968820460759177521551355992535376915782333923475328866509311286418925632607386419046201889180019586303537569701732103641649355492021400904213069197962055940849833097496898977379013495020481811193876486998617059108977044172505106995411123406766444119364257916814447818877598361286337628515724318362368652180033238084032386177952507684618855910167609406515319134253084159268325430762923423535247556928059653323301637017772279948150751108323021105153584240462011032962625239424928165382667438786845452523470064210779400792193489979849468710995884894221838498366607536107031516173047411745313513393030469047676700471927070019532702767918824150111158183753351018226201822045350229977205501111805024270774210723878375619396307966682044124038821385267902443134965497459174553838792050707045447320712097086385730396852014354767064956835354013709429227125271283735149975383982648533598823123947637355240094809605080602948823838873466658788938615068463706110415594198402536961841607135892262726615417256238564160268609582819833759696082298322365976250022229517601764909742670945928014616357254758404567532402114334623510098507130192545672531006581212921499960531137187751880543518358035739301431732944104636739530616366903584704591237381804580549409988826687455538197322625128582776760728511785065073320893968231567161455392491621170353128774272108785489411378764209085437842922462556943717633743133088581582974776223688688124987207980478133127056187989606333018245393015623984512147503179953262538530522867478725048622114923706326917902269879293337374366462124443117977657463183911397743849725651252909461893633576056809734405125916976213740584429763853255551919279787910716333842084305405757826282816566948438309221237927322478903998075137944735830602481736756754549543376085306134348053587679002169171408210257677038934556159291500024014395274170149842124219821121488238640143923685957386905195318322304381546372250575366554671583531544956346257461861961635806092074281234656674537673448953160595249851999349494148011099523208410651860207060070975785842269136252947220867777491043680265156825443629237987027360340928259794137247448813246762305362360414431836257552612949266581437252122051137982978620356060255823749551007652903994463234975368277371810946606247084142936095586080927469718239176185250787485403932609249581825575635801394798986251412971203892061129715655947909716272869985803691203414798503545921986457465821346287017699602238750425131369612396401811656427250426140162644328136821483090659128671634568639743430913794707169955096494637709821830367992521218995663338412088767146340143189645109320875530270603898427103541823589536678188064346883415124970925995054091122430443269346638662357509865383104297050489936703501570116388812290154801248136238561031431436286717234391729710739522439461380200963915249427849304145501991471819710162447883135644201224518209685673729356310243357184252037386210776118863739319123585644966902707496334102420965794466247607754543981552219602627242286489080543785842657928434018433257920763434804954820652009286043926686955717315913302360537548992827471751115642083639682366393243813611251895813764221907380155254751403813960543570098043356843549921970392992471630615669422594392472187289242102457807742563039855389491760426286273061131746590442511663503613063607805563821652906201313850007974103040195628529562451200896275399562835840102651370914916557689952156573463145096903384656058979352798180714803956767127593182624936716860712593484717772813388610066533684772969289244326136940720454022075572293843824496455041010668424214384872001333074810821189028115920896705153130722955242297667112771336297685841145815856131036292232551475564282563914805221713684198055957486645167198187311173136691487737173339390593478859846256850840330205758858798663581565890541452048003890998587378797727875193445259827062925123215801969912718683981827848791126789518226921122442039882824287775882531201300581522982120736247351156345648112795416827490320787664897882290645693406017259158360319316143807740139305962301115442099259128415710148227247262866297384946897004008326603250844771553679757003467659745005148408127903874254171817665069425278492613413324574413820557055421764650647415145488644642509690355788732873960879816487150948308273239918782104661450121559550295269749750039435822405702921460804946483780610575211082365303785517357760740600280932954897303778091854010479530504187820996585569798821504889792109589519867175745698227658414476120225948612244608583357269773540978545929280282659368747141060765599631472240513636591238696720199197358488967757731531046957126261739835597400711820907933721511738906938938443520641565377843518782762993143399129578617404875837360714489247709738193302890902612672138424671923991077115072745125727995495218885223961149582410624217308456620286081176999092717990243315227175685642338775915681099831375949194706865759766299010809177666931615879292772260032577914514000925755485173076108866924786540347090728227545542282507060928907852352098655214413823251806000334492491902897192141828861178612035137713715941300528353719858736937021589892598338531843730542025519244046777613980342887966845816727027927497487098493664368852778459723003813377881443663918957795309542418933130283865028100678823712286358469687693092236683215787932829458984171250847630902090416442142795137732637224051306949327978499452719145377188770191819039454450444436427015338743632566801365913989797640321778196584705647811730683435269901709344131012781319449986669408753817556510564208015975500609862008753666182172973235907784280271036161503584034074424481588060541142374433274190892516143448971567853860874656325604441529137874783857142319411870542037157665692350979337482257992676757585342375286785612261092013991201758633712857198019595731248407566445881717288295201456788797728876672056252451513252431587498008359898200875127043213222066944841360131064109446910833579530780510468955098534270321760634642101869090487264161401798807029343019081244595014085383860765285091376845284407397199649455527361473562082777614932322318737606976803409694561729178079431030303317735052008566196491177728363461019806074470802634327053891733196087335769486310644085632108989713561161807908106183090662893875800352677469528385867254664942801312340284936100416207525765057783639882356358114371309826735407174380193017406480991895737160308255575495755458758037802642725733279829227780525023510835013804261852804260275034751999106764586577313501500774849174599891506080601993105454169122324495101108983294840629433877651832421637138561896726977084270463015700402874908736560649191923575941454166268213965286420734617766906140407218083323782488009274264138380201653536316769496923109887205727682816348098227010214435635532641131283513627321998932037397663646211910325688982122178500678181759557751899156283723350054597008886546597109739434119638902343837394788569154448328206210800044359593123206637018405085865812023863490731060096305512093944931527355383126439175872672582966362146133937869576775699453474342142861921190644835052556758607201018794470157209922560591428629308670447224581798470231796927982953095933993733906461849067496749671615241680984049658536947363777585370031075275205271100802862405388739673681766559283853651527453610067140952535657294688702095683076439487617983007437757620519307430415703328067629487125221349549850573680999061517026573322451068965538664482442686729208845725901434044373585960926099907897637888916344070379701190389658100739448136780241113461754505248798405042828299255463143043379745998830349369082536996154001262056996922984966457025232347324639936206475039255607607719099944242558130761216212752890380100053373682761285732057551837346915576629051221742976425007827939144266103460239401253511710079405927919858446207044250153819632433240109921791234535551918780145899655719875199494020673689065317139303553332689572034351632986404409211678156188931775850854894125761505598918482350708377167405963339080977394200862773308366445324033999278127920581226049172898496984125918804759136225128117239163006364050133652315790238661591834763759265290320951243601840976434703143897511144329581982283325874930738340406946145519422275307658403883755479959797297968481256796250108529079105279699644459598902995226545494522841669748494203746930316665874382929225836338099261683049850206358556142110921959105213012717519664875316366322417482190472549849443799325839664837865324952669984553634719655049521368762086470339798404257520649070894521698117799657186770520554631648553774516056420316888451623822280585447266475979112182517453794594829120913848747884580480290789507492143826085610525260217395048411204244277540672880864730299903395343445760485279120730932429995989265448920082052123696961227440787138183527486144516230777255835500576490485821595608791574367417537987350944258320915026175368088067838475784390842410937089386479927277773587312066424518066233642194308805761463569376273177169110704301999792332970380103592393311190498436023408540376811853309429935844024582442379318899360147288973201842053530013046849898635146830107399488696370948320747307389897764028110524336716479811226059969962489480782540908909404774675354399397874852136049568593715769963391183799723587720816868228720859366028109724492690739139642640361383776081914444403959872026204770201726370846986095561449167320032937348152388931185105632212350445513641476824874510649836751302684807470164803508908961177499146987137581763181882164719643077021393711344607413450482200518885933794090662559141159074110449535117020764190843411889853881793950639212831057212425288355437486415093951906993259971961684407131066779916188082462496160439080255398212920595363284383710968677992177830491654655986982711994802874790808242645464971832621576625523374072278577869494602686750137319033940617330252217618789994098327286850723226069649221241716838928428754483407959882677259668575685881887257970339700576192719718062292876336159131349461936502407660344227515777976640877264853674155186370066932740519007286800116164582400718843369612546894422280956351546233050039198978393715346845488146718798305967356651102114024736216979680079279944234519406442553439387503560652268601146372664560138114153431082093613627567242556188791214000278586137598259747995644034639722157218462766650102080070584225325571682241840883662639467474400820725183813523506152608502539730667190824848280671321119664365357427681196363245261230021582776599987310718247577802840260017768787832257173525777079068669594122250015386312999118778744885188198838832112138784176136936522123106363787246898376343404707439804728183823824921048188194013999487315813880484109311851971524040477119621409624624229695257798086122832382934453544853113722098427331922013430554982244857405109479937479879545199293569973418331736798935277154812084450690487591108207977808232162920072814923279307761234030962135362249378199774825508713776030143584947079431246511397883630550379191368883986227317658097902273587640935470926522211973778085000095105365747146253611736115223809299565040517723625379178639733114854589938445540420226435854327555018382178219081590518011474239065787042540159031439665526283054262704483253484601560762473519375089835312378474967656699563263716267966660827487203285116346332776742390654799045901449613221444022877634885774163644818152090817659525115920411767908169005920505506803685623180960540074241017900718823658280388738011805467406274031155711678525849629070805811385291152826792932179738159130063596822078749800226102088174479603133416735138032493207177166007373485850106515910720826934445182600051582423956887153304817640858694161402473218197112998225976481786479489722364831050767244743543436496655731270907187868369598176078422525790105659756916869455477702830294859823121685137144342179354704174881907768213141575462195505466691897087686133684255504064187781806265319427228382057544355554920595640491436066218737391870473315658718242578167927046467151963062313415853165230536606451756722593883864401242239593050738634619060865979419060222693185633507782528681196538563128415763019369435939837684207128645413392127092418498240440618593418704238285142246135315704581639105425551364344925550044779079617141495541560254313175110251046764109028884749135467324704104379922272915529099206473950896369632230602107838386321787477717197505560563989937268006223134445920599463306198643226229645806728445296518549203153916015299582039075648665203927066423002727450714481392211583977501861445664387071260706150181821079744896620838914224151551148162018477356598642299719342699633158838359849767168661270980216376453406306943213523149583457614961078576486413671402977109660468351322659922721150520641051412849702489450531440508965739528388842184902786068988007994254606527850507098117697313540777085979035558130238150895284822768977654714420803935393414445031368222509034612801672648272187023743646077803522418018055140813923465853166041260043320328840207487186603719112964127659685890146455750088772256338846715129983965739978512285695243787584165040542167709327738008883941857925104378178707783559584306419792205798957719813234216598514105698004900154838298568212021953718687922615309901334818024050927500818719341002141198199999551341458173761135719521414824318244914149222142808400716858140119434176538537348194096462332899146098051982203506293577980661749816137361017453226925575290118075240412213250928569916431141830148268399017452418497205891873721429161429781533902279773537738326659882707164006651585243411178494061858920176617870220569238716856614317427058725056283410819450349768889171760558066258735068271284753334530492049644348077916049571765754330624177790029039242461796105343041499611473165283554681745458150157514574139107479464638029098048735196042183849052264089345206018745729222608027751575443139045026990207275616782370684492028920254045258668887049121468821117178268223690213428730048937504134198288322790415461171384574709482916606311992833344548730745426693087438518907316374765425510844165201737254800464004411072966833629277222769850665029493868065556292047703764185910442893703826778406267687248264931177146136283764192537876909645865149613513970930040688806544950949538238959613351640660084887465285912325183028328881782698814927884596762859746349548672956144306033542024756543640273748194478761292753649047575603611867922587798422684791509767711786972687756764528990087179853077218234015113525171060470351214224164867575857812782364408891820604285134770877326489197335404198021693971842524825327919229441341582557620998169911318304512645322110997677524101462068221417338712167811879388821517837868345373747919309989443309652140772364866243311350017671315420453525588070848412931592017505347246814577525298304565175425824226088413679460866403486962399926204980062933132390334772802143561971277938480879010297068670725068200171785271156380488676589892068486773238023208567074387893909330957145134911377096133831723126696708026716470826237811463414852493932270274607153542229158637713993527190714590512164148725029478257904266199202831379363997180927433282283046307205440138044544657394326066693419644384071590633114667848183270621543399228018865158766078153349824307016470916364264616848284219781206578304710088849296886264841457814376378408638064473035744426684556076813023492264100687890175392160495603854831666464157281098278662754184391388513607108790553703035037380408907423379069820330081816809370623430903888407654832039300195201000386457871537832163623153060742595978846841604390602806859137661892084213762873120786144719340641088624489182377830008617543313240121248686501084103724264184829872920646412256935742373974991903285402421916807938344366046034068588734768969476755700296187006487958185260175346862176556945846897043642078164930119222239592208348340099902308591592523663359036008283835284052785758197828033832940161126989096680523149546371787641053915385996336303635610936734598119411445885043732542406521511707184339525741063089950627733320426559641374997589130083788988970088333226042712645390654273863896999171323199479818477592445569135361394470644072247351745307558296733764850731229008682700334895209966827734987796156744732011207272432802751189601757249822190530639671215574816328880531114109256334112201497814588991806941819686250322013520246498629846788641227093509935770169432870445720238866619167525490481961883732673233519138256320806113524310433188917204801976414859655382893737582247790546800095364604191910841734480709949949419303605321972182588384828617321736862624792395350492325160339874396947129800304101838603299545621020923647346766992582117840969558126090973098456920532733118879111264516795862452909306946594149299214594576492048095972782796217438630534824286417601191865922901510438288808701017414382991666365725940362553350918672742693765764670866415754163298680023292744562540006883139970646271025154374276763553192167680028832776030438799520674723478051966441540536408334559589745700678599862631130852944438377484567967603438031417247719475628196458577390410911832955396809770418550951818934025025355338517719120853070330402996221833812844005596373416212907247320275003980662603221759836458710376082878908924386954540395704281116203744993169522612948627622930890551501380914086392456668714851753986431018612216393275351176985675478380532396221706753207022960576224118729455772058803537878249352931767670225624646712063387095372117818910274719741176330301527094280489599236424966128374751948239675430602715838982741780908082607099091550406890375728568246058751044307476766542292997314969069586302643781028736898520331834969286378972134816797994878721521971906777474858629373623941785201133239901809334698524386430610462196480868184170386822806757482016315107934798256547983378926020141364233376557699124656463166519887160451776316366152543477476503986488850402033112661847228207040296679091786432911900285617481837633624447249446741305674955390851842089355332714555670770882659875357256497868190746015344176676482034509201631778566968009945141812977378646476893668852041338460211285535374432575935656567719076650081072049578307446784354048750110853667357540714475570226425796584361884124841113115709718804295881610541126651006995288966148441852458303884069279586242223924714713115608697337552705115673338546967567889090085982126300958869619448851877279368379687009158535147518505104162308145836246764879276577166567016050634368755858899969670309188342669189436932573793023354388928245783595616615212201296076188297872304628743829724966094634631525042771049314714219818732525168607507815276428571815052321722355995417777350301515848989470086368548630444804517287135383838059981385805805992379138220321148110936161905355920791432474135322921203938000763768486101558337295645120381847349502084767905901509253155874237405069170087488194812118828565985533435642634956689273700565463170347320495180459345101501540973672897664190370817104829323666719975600061738881482013676014948216000759813073395109906635435258344974334083724623146467341638274796607073512848785117156863255716341056298140819848822937661546117113599787939926596276256206149634859897217532846977095884811456062760207728406105800288015604674600022994710815755757497561775798033978363801542968903164442191206852291571360284801370064265557940373657105488729267532627613780093035496872426096551937741732553367155963067972462732588965795427104999850552441458897771643399346437507764845043529635760748922738570660061840272277262999387514110376883979868092490878656945343584939116856241868882193833305498303763350463802927751897583565989881659188481498973856985676444075411372281468901401689916481250731992076619957242026178269058229445735849545280185670773503225286675639751476225349793013509454007884724520750818717741708112039503221828196178740187083916836547419633195041686759403047729142712590814480899066551282649735159245653934541916970954832721996939325229599153296445554792900880531712318654582627994491192551328401700885511867574593676859848803827015704841000477472221191017642333471379815736130585577754846143485242759081468795061801488013895793478524719670658845548211846611101463410136401045615197208613874957026902179880010163501839894310362808979687575461851337255471002061207255860626182191168223234531561029764068682555431888784960358245753847582294356654940119935638232972155903032798732006090780197251313745918970130149316756111850347555109416797513592163282423891028636347265463446975747471155631396952091365802811239419444457839948063774424227430180083697867232136390385495736698431029867559431951372500024086571262588975298366455454127558494239748378472784629678782473043028172020889960263820167899499521856146169371456042127964910180607112748274885624944351920904601952584280537036579175196314857858604213449673784388149500729299502108538215963075486465174645631730021325212330295189243222117546283420827841946152473829704916229557976072771959851562781216967975464925422608995111378286651751385596643139411128076015656490336294638753961802037253480111456936523614945308977361959875035121211845300212130446439363849425330291048319856950058161679756305818948367628695983923882393758982541173451477518685595716438685994433952883918348394255962038404164283446874388713335176835116518516848310898906558069114288138654207332479143725075762203834786322096850624354453830348844961076667273125777833742251784589214593565336082005623196110384480022877416201654036564174028083962218729182355307972294474822718339560635524983077471640442586046262209696011122367086762261880092498054148057798158863459088514408439347536913534118514914724775391755129330071139559182661573263757169814449312476676608251083813283717875135729654784570530161464793176959527181377028045897170671949345919118652831509988645404487282941014572077367871082908172675078333915688878894208690725248059564015153243117206777415484010513012413287726571930252752569319603529744452216595061776470447289572652576644507453586113095284932677046373751562481629034224803555838572796359994493395439222093313316971783685228830244225406900962763441204288988702502196878308305158769811361362468328519627739470786591303565577659937586977336614877999717607690500640522349777779381725981879121000218609190034314246121179905231330792034455719440715908233296581862022635521840944416255219838146585442133281756343470969526553913132147011427639581670404416638741401554593053891805388174319219513880093968456672379535930538914765589206465228845499235369478956287231049775639612163088007316978195673513634104547276612322787910402756675195152066871506796074281215118762984385332954757686890546867357150430148951794329702933510492023073114641246375948419019189431708210913515198048502213330296401679855065985365025047959926935837990635316918246991963930702661574449363572005134784162096191870927079506431521686020537562305937211223152109406388860396150297546437697828887655894974815232164138502160911980761259730685119184129539881110913783175805241385599053476979170844372551714775474224655560094981082539057593167868553233538693854454341495898822061208943452558066716771375039377633097116524235119227084883424766861547445914950578870125913102932154281358526323575277001064780984790780445674145500438494260073597263804436441789010121849725234864555660188607322884493800756322958731242536893461422235152050772549071917323483810026045380363568354949946164100028714302782834534378597186162552115951858118765446321368452332429732527361587152836141134862640386380810131423957054685949114806298800062382093125939447657555846879444871979692877588236046297079841716716747226457576624069066726298193861635492376638032045403955963523698120503741953330417079488354836704434940877941181984613105248859673834806836056754815439938328075810720645829623562805109386383101426284847288534131245481191256412961679590549646973705840767003259841257328258954627389866369198990825950830698920529834347605376869466231321757123054798523852609067381083220825897557348405079057531635937266763042513662959405251491902334143527640182007940194473000929345990536509726433305232346735407142803035082849353869776998305141268298543100732929030195563236030393720822913167767848298481238706231034765568711291929633880106883630320223113425631136566135273695963918834226821837855440268184062018317695448405127924275914019562314169598056639724321338581108488623228037395538380677106156096000772619102959817352327827785019581347623463817968762332262370955546353160961945150047501804529632281794017189790740047339708063827412122776754980098290861677756930263827959626759828184374795849662443005213283158481330540525858066631323187563388643181906310265487208566004367736213823537451195088130970317439396584148344181179885797364991060062672637297474028785760035467586614882671069838655181169813455232397591484933237022231236299771912906368622219687701482187531435031331750521838825519408920905108371773584908947117952005653335985315792635421569546551719834055335381768694662550436350337004768469398099522500920364185326503609474086817294725458294747081855156864932272166955245398970307842294656453259262406655202090618888709608336480113054819532096095390104012653980735415634550623092668544170266014659042882557880503196336478226374764110455188703573825964912746868098342782300927605171545570204141542060529285108467443238829153435313256983060299911212945433710078724836421971816457584277138850646013790403712700963849267805246028884302071198561259083902562171942574725224860849903113588917697747077210759715628905556187053263072390344869084362339134391528403799725997537626450361235189246805987164937508787269425211065235157732707573465588348881642704271209929167526199089852828293116059730714927286958831354731149352855803631195441328234776046816906655314615338577202745012134978598206775023355772005588603723615271841207354202618028578118542687573809368274929892747245991328021183966509142957335054542934639374508128438567643427417852667888957949273288395002882354065969588647807884731771934885297367192080644799197527410342309833423489127222648825862946283947581538089231260791349256473014652792389502458500061255269910054293595399568964530856514478847842507200419256690061668304374071068466719042026378605736160121918239473177333668946704326992562066844668799745382962101541625019321584315433860597694213720740334189964104094876054648891658573829009011401830770669261278116078992253698444506553263835423343203934667472098002346280686455416091520881656273873146702112413287156316216029237144789585523056662560454533508974492579871952192583994237400104312869062462503873262990168240983650454678066947080326406008771339921743874905282976769195771619944199424686575904746580516204004977306244191378532162856308525645910362915780671573995414259172318261383907445321183509943099200952025272950138613732943324532800798628538526267828835745935830876126861946002117943081601081365843453821195595419258411269965745192952844549074173420323702106699530211529901883129493483163763521698998010227550231438882821219728243894811443952939101577938929081044863604213479660161451892229277537475698520838009745045769165029042822039644526368805453838132913206797274207171999896027134647189805488840328448699198468638647229129496605479678808173749800942205979789604702704296251660382901376563223087737633678273299877990660068529936458580624754602397693516233073063237019605631000663428668331535158152146268377618735199163519086250746037159631380963578744176682045533713917422561945582485788342760043101763044711984708676694320167597098893256851732901513093202884061992933782731363344262323264198473106061007311678989520056987403419229598477360991199863544878470095187689547772211816273237287900322608320523321633626634738679226608825935020532326698451753195140465580725750602228159143640913243526077558813312213604437270314833856664169341784972149853996845998650146483584610404166015578491276569933946696416955947663470074639156765409664268379836051826219859778250593986877571469262088265041626707471738000464058018096890064365264641490835745646835629470707440758536625480027611343763477055061885920495757457505994383889673788356706630184290472108095893844445893127035908785533955102661901653998349558684885426421184594844083176757363733848137795913559923286526311038264455119884238418013711403371100913826479803799205733004919978283232384667106111952677903987375096637104287377603053042264008111948525020317501040050127276600206050627003516713864273063479493133873645884617622532599787490424371111031513803014141857791683265767101139457770067893092192417889364951727218464511588221435262443670130488845816107058562707254157815171780303390089254223546396451748221419666319554748775474861691649891089017288531571337474512305661141626798393082175238116572171944228458773181525797191954501429708324009174299685420726280626977701426655786118138734068583798928933616200752474846671885640617905248729862492245531092501397755642788367097917885346681190292883070986506574863270368611015964821853752158872635670980743403443111209314084831160321169858637462253251562678285265455965109055231764486671223171150110849132458289125896796269678114287045539193910340720792976732404257221156500876657391482820495462177896115832037950670417038031148555433394791937132577056318627773186053627199851162225774580428462970306517313866718953718261287726236769493843930781717292054434029571733274618068213682462730980325404254590684344785103190351586095402048907523171866654313144852514899883912904515334021690073628599655704899794395209556144326910852954710559314801498335564634431320673697497582250154877160103639202571328272711341834833031682894228052116777408372053777282563257207110217316780453855444422132242229475384199633213477398583885288104591782383001048689010916115209159526710023341440200690816103992707029677091951072588841820970834652190379691786720471625814008435719324374939554429360699422040060217469283054484779813876243796978623571633438870050580638751923639565634291353565101913324853407958775010810375359302127774675945716961157869839710722877748942969022282680495059665216159357269839820013272846106895076620094063602012843264518736024640455536218551368159160172620641531843989271349581549514667424810078470908400736687499643771371184894965633300755202023355697952242425344685042017157986353582628216864191388328151114564159860683429259198797643226880858761523583945421220176165808146982945458202481587636033642869845106353452761126540045655094117242411189715622053000763406506513120795784998492626455253263630001743657313957655621007146056554970055202566799763565751400458224638351498382978577726296118022331835187137743895652022512437898381948197339082083434866645211567195293602166483362741259464078873550867937855841546818453591977996851205447793593156296649629680313725924114198605231253048964712509022153654344083849987702933925911207690570001056987896078762947169437771019907253863319947764800572989669366236118356853997734153210731536263989427118122681824117501660905043502818574201579364136289814600728345807767775358435757012302597585354497709753603155729115118716103230167707134121726228521800433530974940957185694734937763568318605994559299386949725766255757163550102766550581589569508548506928896290633852418724267805337422014085593412136156314152030065003145242728126923960261737706231347457602438857530651477573022194080569879648066163996404512358111360878597887918590928342267063725896105289392325356416957818928616403201133555060447356956302352757423837269443765758472932429548382628032506683667775061708098994763282883074676429548091341961639416685404314874167752771006566190256985025801372155184678058197996342916000171232253505559698129002469631598127044866487325317052650426736756502094465979856203471733038638048299740458841924425591156869488130759762224230861069027883435783214632346851570733683113636586654479779090174922699255004498501773063727225783611672757666472440135069813218364395712817784527909301960425449011551123353980173446904263275732495718173245987935730470015256907295670217951985135077280917591839837247094767448368774711816779461697430453584151262227640359757942580824229947247976893099553095821818825139572414842206760210227929830435767781243830215769751112648025165189107052605753728618440585432264168423626674581677658025623664797128625684533089297365628830909482004613868250913827150744890461058869454151661374972110973476377279814346608218804828770597364255060559684078976507463522331279221105239339720040081303839570720885482027626424450767961064481395735353218940608244013188348717028895004732663371243983169970551041995144384512369604285071399885779077815172706630450741777290204874996079217423296540606163233150758753419391690130516087170843704457295707349044522955137463121667988280230915525157845357194213126661400918103015011786842585142498907725944851898916953156368667040361838121112808824088130840706859377871506077253288616546845076938432775949002876697873793475274400099935633838633281528292658086821478360794368043213110479586312304904733612399549058299440934648299945368690750585931599849408174579287826917301013791582908630825161683562421671912129777751244410778817596905288270979554810542270221105209580267533253339731066868388873339932766093254880872016672458019960600836897045908252838971577942061109627547751513136615162159348516831213851627742455258313849360496104029018493373618733010981958435687417211326608468655917331993506984074039785161808437715752734088459836149055861940703724017791817616310550270469323726184184979404039787162454017129698660279011652324190836794752722470523477660944424830765066697786979084133200839733791086144927357910441735563387245498350618005264919828636878202301473422104694577066383146171702916598227835744884574417281720869764621128269580409467784211116838077237553789551562453497276315529337303421433043523101606102067876904400311876842796382718218373087955036323277508110794189605001126506092127928037958588089647810650588783134936457568639086304425301586055765140337510899013591215359043330583593050561669180451822297684419546975102072873875117678660549548960814040843843107398760397341780950959157166715870110910846203510161142135179844207281432866649992263175681922910158821521967119093693273467495956023914595028274754325074679647054944604731917871863753882611618977622358020984610677320080716817942163038311881148439567289553362772559522154449092862094294576273043259135774055869126988808919955749071175191959663618720568097987850112767748805877172940625849699629512116673621891449873667906596762125300166982286506031188524749323015636924075354414273102444890788726810212017519864863544098651415024970658783308351444873923661127042800308422933738623783416454219680549516875480699456154534553051832770551736278059917579252639650717173352504394027767273562605595226223771064488726374335495212275297723775412231937559754706311912019305440385806054614986920333580782999974097130490714474861231690997907378017637668807815533718871195150364581343702471615640684480457658848203232137142546200679675616977916614933767145940214158730321103144779358313629291525148526098245744125062335484614799247150213050823564495804545158842355220735442230765382562906246118955783171501691833050251651967069515574105203056397670531303436361279308368278809125307357372079118583360161495814859186206549121912192581422831406860097865365192579981408944547208923942487197640228472513328798565216260860383891704964105404648658998189152808649979704387329723288001195834816240971929711207460282935090862071871594878356385801191031580911557171349534178461014245887661205181700768666103536756090472049081636028769931849954733446291889956827358074207517071188666370786724151740673377587985933398001444014295895514092930708800324768411093902212188194900981859684141075144625863978625375906791473678351637501727970142441271844885116624026313815315063469369509552734561230972465026839112434917257854241442677131904489703015170943538902220237845455715703106313863396815929045039874523390038769950155654936602306617898868727842161432390136990262716539823138780417327653660533638350809580771030213956577319749918198844293210814885114444887948149968176000996765687240151197809603354577271353611638084565245670522046857312669188333550398680459543629470231291336771042602849963920354028720587400942072206328309491904222984961316474392775014983878504686954450346564256758740928666196645130207355417258086296038878921594668590251437358495176324157520647788978011978919944390430030721960293171904798163705401296446774967763312909154691653687944700833404230483165278147728432822467143297040457088217471597972046142387723777205637090495982923802242853823765762917647647763288315494236470309611024947120320781303121867760420762314695061476589312857072862142895647532248693322594271439246517395099008370931536727242807965500335306262398246960593555829999558360296536158574495148989374487019071595139305571254351124597368184770060497364761297452659523571136588650860681423469650328823924825659515868278382497834733816024880929094740317919326355172475003410528977081914900839772378146262569693658023586204462084502609596646052538253220363887309721288827842094494965534890772902936654713834979003284497847119069433937918774291467619587769805402912277551501492802155901741250658134074105275513278138208491965570124683680366721270117978635208672629873888486403694356014462762320579614821560471091859486951179174767729441217587800772784122520263973104988314190794684553260113832623264886412012765912222155248024246992080001362633733030519989312100963637753414361011390805250557175527208346339373814297090047434133272675295246473575198087246758685932298291134603161659503563575410446240884938781430025663942326034001184437562942177491986825967591340255173927167489969821198090277448603033553945354605630359593743865039782265455242739104208931065640953487611842748928829115245940871007211059680850838652417972316786822779451939259817619550769579536516519339105821596303157422074601267539339082139590352279654308758351954087097912531066031348282991783761086196629890957880129245123486979117642092216251208367915927166885134289442761218394272114892137577548336356557640636344264422639409366082967163782848225617693337827413326601751618041494610119371617055489538687001167333443959628127692058075785248369024253801711833786681388598223864162652357481461288531633673943512772448765377430438736683354241254867973754107821727696475408365537827823351446277774182915844728985420987059108677066080340091524540937549234550050696212012143035129475804043206587248703397835788045803929104777282318883906058518999830071609148616490552984714078591419949049451701680969826425927206831096584900061723193378255283635412114340026487301254642926030469668528136714474397665576629311529473428199610135803559780599474126981316681032485520991131800708023527188756490496689501837605842411863238144521901350190166813025271420893230722790294075758974521237074462433912439808762657109444649665547750742774019078991308774363210547289195908471069541101246029610410492511809068745760270553310360161341442812508446120233533324736090645392017757557466536533456486195917849175832786029982229069246382926933801829697708704179004663510439633879161222745284314790374892235537328152195821661209671869263435635437927077312009299420233710877831198412972367442349907460016299187565444397771553828834205247207118703858269766217344352753885623231182869984570953401509819268040415814375791727183008084583887950770103764042439187102489039353235720462408764750031534380111931436836425829784338564038436713750340175671187336152106027722969349649940670911345149470322253944115610589576861496836876512069050257721163876609638329537809287800831081192687649433462533028379525690476592937932440806859822205612335730849683237217660941515241819736806805281532859061164748669203490693451131456434883639981038697356318330481661382588772875309605731592712510306022857378418274246223666806476593384360592335184897316156613022802450137698578327667434666199392159203165833443388684284675137898573836616927183167473451932469734983072274984293269140855009493728227631364421843824889895834366934278991969082115460452318780341451104906882644251666366648790572821624880446637768093111919766988082705336950178192216200234282252156333858390832995985493626936066434169173028861551964704215515989079330230236322016384035449997348691916146548764227954291003222947761506386080743794869171882785176214905710148161196628760360018158437488384484980721910062119120618241687922079384633044138506196639888835581935936007622772039073775917687225980865330067234370059450479277324457126559544547563728088514266623390690449758235713391058121365527139956386228337338677215696064923250026574250470408779456054585961876025769961491987399180720903452257806017146935649430798218278737508117007497170636436652459600892958908218775788384356189552736341202458690317612614264483893277371091125953233157098147633670621331892586190252603442966418582009540110008277791933308133275440872579324968893179872429477298897575825168267700384486942743707413049959946745371978822794339899097921133888552496704707062719639376208298324088642007014286256379029608022055047549144084610010399483328022418447821623373538023159223520069293350909085502774293007744154265203981189574358157698709665062423563002750741404168000869346699452597537195196526727007364568386439989157164621100115938202767700378193896655560002836867873775265147546243189969640663938714586690659370738830590348052107634733483536209889036856738419565559263543448021441631372058567151738943946051102428464521912397455016812531686214440220203890837763536922975210012977122925319839797221768386584658188470869622177651828312483879407446602578738024822181188840821729110839825362227442109020710219589311643476236918837060422417180514282431259657325635089988318660601401812294767427025319548482006183837396392435531486169683665809483654711697537963516016839163454569872995808122079343102236166126986197240743481086418659405180389486613135218814340281470770430956249947918844271737589302843965769976067703558049430616347202743436837151916911013036599090992646505168709550761257421957717484909868113323521368566665627353428762395540391624217497458700363308271863607719602258805169963438258515305288765992161419116023553513084646388810648906022686486415650292913314013587161411846267213789205245137145440654370464512705062509836868595780067596622958595515496537202839179655893615757008557805229132049240635571560738471838843765759716407419486229579490052446186684895242602099167387612833697025890317962127930883411909682894814031775897644645213863218391184495855207474811073828329464163615123796264108364514645067176990165138430613701708594040304167804920182115894006472885102633252922940635852814393471314715802055913048569423326097245803791008725536842268510549728461694796047295778088804873206420498533136578444818640463150179818268094869960447403246973151783379124379247183399371218980835270813314591426449708246719823526183387967763348127573272038019644628053947642924578814917513060586892373701283469348588046401266403462058094308637614717680375554866245611747682107074452344145796765922078959647307137973034195175682160599550220544806789548944640696161497037487004447537730429443515091384979574768822125654137672041489227411740775324242142228349191553870467580152624764352276779557555670997963123553603872274136844863306888193899251945140219971907366586287692394824940777499291895236354612913899806835608762508878711492796564877872661005076069010599304613054900798070203274874274538671850602332401740591204028857243018390666349345029967965696894149797073103761405736142131835371828143263534103340132176135857244016090691159041544097836151750235698688588918268011020459868886513750150828731435702244651618417555225149819792089847351957833189712391103201025981187892373865973808116012234191895467159493115236994718472103760501891526278637226132069162186014566569000684445891703569829553864589357055872295854042406302816285846936712182824234894881275252274460950723694446601446394445778016181368052203398573651112471263383239451308012584774434362356167047932452652251824544671939427414488785006979900863187569914120730515318612352997938274034131926084804892812467336043763605002914508759290122999126400951644794814352914098102367436165338558688736657241518601495940878597460420811233887529534221192709143790110302056508818682078169460115106812980281246449088242950431184275656941982267261616338090219183274612677399807650833831654656895574757372573460224676520344458664751271482201302499895964511783462866764328042953912577058639425952710053495512800757538185634873734586768076932082686946730837295778702356979450692404374955788565660293903195470183228122091364776780883749242933933378827429166353465122380817572089151835492529075421989976051363721262776758051662688431569472279633601180411957145798867965754527049006297790968154446241447785749757993162628317934749508896874922719301364299647180665729159027069230268159951022303250913955159389907859231972786819867727066925101382465421997891497102597549363261476182627344895545080425707423344949507117226961069216829221718262649858067221561871513984576121053312139322762952112047414113817322983743663580188498509594205987895529905471243152589071575090852174846565321052763801379179728139521180714755821644953869665417306500666798088947774178536671976125808612922418548656181410664396699700516776582297585464321464038504640585943507574309558944133857716717140042704048555276945686638033992643133744856552030631377784243180890331419777565652142208189731673797534096521538096626690634861432278835070398006687255055594286411717410841950818882016882766412867003410144596814542358698151658430773870557035409738298849642397540265681855129708632678133921266061442537650404206390021564890637377328026761696203998594874975633907389408207704186603275705533125665143469516234738371532283578075769076718778299755962695712701808811613520623676119174028045763549376475216272934360292610092110292636123111199750612630825800742552329670607911243732960757860280791078665890367476897242459018033590463409701967037196286119130378796682967727411042073337062661857605384054096925339524722760283240670933056871911419216391853248670152010438883686879740758056024803964158204492757750476766493465101178579311289429126334410572744660634445412340533304507160181785291506156789881815533435277489864446365971315887608038133334287400061625511636421447187193715721809522374119603844374947591144451069865733957790811143227152081850666616412311903522173221224763525113391181460661360214736498779856146585570391860484440252795093316853803913837546113805634202652302422845378129364799286403655341088298802802901287097027856831574197848295434838125970503313644994636021527533008059905492968783246112608546433470938252985702279974939423102978819176515772838104744476066284698864866649687897953427964399964132827712393687270752145819531559602501897059546884659168271264033818288807728280502276969293310406478855697770689699533748475073325066123456185055460282256755127688525124015030256566892046885252270158127104537436517717140645062538701628352858810683105046892672524002101292212415120208731665110688618542252177784811426570145561982596098633023622027329161532381112205274623227120509416339179212734263523220166201575439180461495106814532069004682369601227990737807337778850998797091443371974947976500798360042124202693892123995332329481995245038628988939979716093978035994336909746071463580997839489641732880865416203369886252017728920975378150236667381532244545587572089396691156341285595634396419004022720547513479309365164115560266749204086966024150627328477358291540559322249667342079408171122585891557578745925583644654173872452281891974491397891586276494526094077025851341708361248761546057369939564014615495535445082885150202246968212713348238799697560497761970284547286759477421520839010780717104320224639224056551394410138178976467803248690172186193458945886168352886448199198389647284340637222485423682556909448254717666110471904323371789177413328527205127859187356350845918883703596470475612755300023643162557950658657689845422386365559408798695767978125538687249433207362424076127910507951701735079216581051217406082616389910708334286007142324998210022703523545361661231797144629014604729794323992199738997797529716659864616952380485758398481783252219283521074464010597570093657126092472022440500168332999246976382048187492884637240347414300781124233299026058037267713918925982803168961734374592427816985188954731907451600663956923655209956592662047659680010874242733681746592172385939594165675395374839426395373510374456324642530562581904437023398294310742972504825127136399335871079419650103902451136722104384773757803185001185942526128213142234771432648476256053740384714343596323353323904762238094048399178123085311011484756733773171642673669599154179585808451477420314015196735347276020893234582358717452412706339748268125063920793230403623259530137503407740754678066469556739637837713061487842934054977819012473288979091966198425062942232839562865940253266483912730799173532676690065228145505621347213598087067768111123174811267622951750010158561006835179338504542824859019931955807236499326208366204028156900683626616235203186347434005268607434961835675639220974308008890008421876507417617192415879380119075020897782655515035281745062613772057009333691990561106661561705148582186623692317287857837953332512700566494931811732457314160297882703964628994401899963846178869469974124506998657685461776412411592480417420339840404599753900342516355842568179655605218027430867452991185706264800581468272665856191926705998416697436623569052993259733614489779570651545640590328796765392036153624304636998571176639419025221308815975780415224975661326544757771976428705935737988328128238729383655405700161571408213785741898556614436895875392662941897283137166054097914983525173937401994495014515177031546626657911886079969954121311532566681419736377179537494827077387556842550231967189644032726522888869646376065246598828543642088553939776901899270099664160790803818511388360835186750235907666190663358461243880599785196737214069996628965641436574445755744184315925472595012815812923589732844717755338967942015733387846924103861590562296259273235941286719163213115362271807385192846356204811445388129209120380922157851063708453884116466505218383320395539577067629782288940715772252219331562064594566417046328640485894616821871771469932231946184782824605874222137465710848363843782218831578944058631790446030637430397097905703521341149244603678708588958660537381306985539140107754383104326801779563516336137020476826918805866473435141148884947894475048008865852106862059909487047103178776978189607559234659780652025539634334230404818491879859452195242090930461074164636172080830094623350212766611992838351831501535353338218250608540954979158261312725257743450194527871648088549628241966561433428026315670058503541254524233271389196550312631539927875360416341161242276627619317757338516619159580653366082229867691552530370000594105602243430356020034743883792052058872365122865908598171120446396467972630486360523361009189428805976443419981270819442907943949234943352604072684068915347920961412884173677947445987843613964904662965487206956012685822551950298787815035467768321884111735558616135427294640797971486363949711022549604399408202468335134321381199072222604751333059432900370053246581637777541768934572798019871343417932666645939371048711676307988453854017140248105970317883211299619469753147336944332685261439551870785011202945282023151176824920134604188943921764732506064136018250218760027582425779632530314171106594966256075035078614283333273591759849906793792478330847487810098138719422471975030020128920535603012052082335471323610809004143896575418340313500000781389172244798282828253925226958872823701728828200754551062795290447099755123759795017202070414095998779257615318688852898312684556013446892400749963276449636915845741983208491348969164562658790315716767858975796008571305876243833463405976466585237782140418291959301587691308013589540298653433555536467106761724530281647474951082319914969673763052907281834322176989242460200486099216470310095886577685972393194028072170263798767363291644116837602820678319094557846631527756133040346521699910607721957778656405066096853056076982249287713753535342832232877826762695339119708679602101599513832747068507013909753132511751700856620624645071018592075933265454719932780423075664408324114891749619728171666117445492151476419817369712072368926841953145550780996111568535555900933000138103688730730310743589352681699374878151680996985891272226632045797102336161821308427493467737216435289546945642284408867567818623444121677427307411112701500416244083324041712544538777592134155075184737662031355270510915813350032486156023511720624049907448567585655194714116761529193602634035347266210914391281015080670937051153686286906527324174975151233924064805223054497005046025864950578522179764544626732733621312013591778549006310909732601806474997937276197958052705783260393536746696681256596603313709304866988405560620240826909777705244764504426060909227142379042104674113726743467068158697805811136162230518104108477030212925309018306628588798254474165038721509140776992211476456991872290375434399322646173820358004546091401288917606421380317603909289285028925044229964396789730399363012999043455288366070243494953404011214478537472648469011508187370518860414341533406778240763474759744577014590418545351855739749388298388021873133825704699544759041903805161281983505840518507704845741166418497899874033827050982607152979349088168245726860877103025331006216621208789974188786103095345589360939381357726509213097141602384016965305321890700696926882228980445362935508693268088820820190522396386638664376706734779522262628040001148980319646532634068132336389447515082692200284857981109163441891474067729619650695971581005422983647870093422150730063036077694305456737076454594051358661604367193894198364057031968363964067842128854490551718163212487958426733175804855830793814244796713413879717221597904027713137348935730690939044755608978914440624458417373539627524435786540911030494818921074101278172349067724206958649422610207376350693418215132005026322519554725816940720486592499325739278570367147583523248368883797800699713486699429735311583462625847688406453341321761314730940567673800505354432251981866813648308884392318225967854525310559090975076898670728899673382367214346129307242987291714910936110932557199704695505385101408411300278777632054731700642861189011167256709153445009137445215830391224509092850777782906357062401863558644892319481964371948092942483419053289170293798900890090038395802384871133264089767180665067294067624924537040010504472826980758363383914735527749103646208430373132448046594663857868949560480341122085469591223729389374771266424473025002843958882905566436756037798169844518273186742305301110538269751282655955274514179498907670630412847064838796600514655550180646664793867538223957919353054107941230497462509025240585869852967171599609457676440475187846674412189157863998022814829831376649175356184461672451817781129411153435608776221648081743145013750495530073032233458746492233870523362232308693477483072666756623079468629294361755536551497919247403297081556149568126479401353531451141293722365986821987719593213232916695294373191222977581827721052150979752626043253619071458894621762276257609279804086124032664304316853495766918871364966341276273037075629443815294605946384268175405087055425416283879782171138640878383560968364418671602743661292145196557879413005433459133223883379131641868105260491140636826560567614612478841855768185944582733519502723984605364480961336284068947595652768606452055104584400116040751868810422404431444836316461642051116249118202307869239014519759910697270077242104537744098213467643656595875303431277339672596594971950982671569833476792075980171262280964170543455863723437282467493815427865994663468975923946119551276551463571573500220946583501888616715863702249027494865430785760876436597899105232528711060378408657949131826350628901488747865969039274391044670293753351657815876722586825864385845035671614494860378467129729525288090846845895959226934265707559566245351592699587099120003639516444987131014760097161250169725154655354410961411512877931675339791289668022288580977392311220884231964843205939288652806045991740760615950819592762852206141076742772216616722879181205525907339555597064070010069069225144434694596580149540597518801429427902771342881036934645603020470127292774989070205771327922598920092616567884496839393728393102944853543778877196753720288681328527966829035438704935832006034601578247930373900916553237819250423017808337075362936239767230366142021646642264062325653721466698605874851957261878226609190965005484818328048191575159784249300550753106093945768668557939420804605871899327891530415050751537640464359885590512046071500863129218691874315668891553624236942025598111781695942820182301485406373402037503402781352724142207105747705286224618498087318774558116087646869538869409169314999109069936941320163677476382542797565597301116438597226514516258504884729306721703273204839538899187767721225169239552435496957456830406276269646130338622780213791885302277552011878382615426334698396262345809840468954017786766308839990861959453292471294667229468575134879161523336937890105066696514893254849505160767418101263118931386223030160204386403236829222721095904863656532795125351867081520293415108471767560640084118648220641287124343176723458937815155868034041929854651177938971341614360171932000662356868506668968552582546683030680276222569294441642753294511270887531384805349270370736917409278782033410358007585989717316678486047037074027491939125443893111862651406481277740490541184267486155280199470149561435307427243854177186446618101345829998802074977221089023708439853873473114360090803417512780036671393604748883948907998405984390005504162077902589704589059156810037180336905338622664822875351960514242873323782596481754454257472369231432244993107008929756533998895670837204422033803427613301781060307200796081043151066751434768107474737016043071530063554503778937197014738501226283053929689353857312000748322177286590061419972406914360841771833217119746690325970420529635734658195097388422022405261042939585180913922917582862706278374307550276168039581362116550863658502511714413721905890857364999098487336820291862090898933753413087515796542427466106930650061041176879487377855709873447590869956362985586270201567379592865521191808300627665080846363260980017158755659619523869917948142902656691305535663325048434385258632663774420781462999024960566130221218044808087282941467529491542569013722632723219929749089549299160053245962784394625845754032899127637649868090396315905340566038105818868947187526257435321443150773010955338213848865289227487181547141901616160476623034677033502531998427119034403820627128004395891319063847399024216664084204941560719133084176753413883596376456146985730577809704000402034701828704369500922402127944178154000180572207746864185604241524232520994489942982782368325379770931756035436438387866270962325036652861825251569749922068020487297102632758590958889762717642792373135555503136251068050395360230292914113803163052006233648047175723979400610917733290563720693879229814096875870140867677052883070004891583866602238100794917924095635916111652355431578720924895363422186622983973607362719980716937558287198646243753865287782082862905044700622803086304715839065521093811678731141341873122733570589501735235805291446044159285911701073594286742256836850873315992052620481418367947531218382752838868775759440651325728056240818699720943647880908645258305513217047023843540122475347436673391845260454934296110699159286868986838710129427329834536538474024748529484172860125015515652683992932545341073031021777335695359442376661821397589819794593921595948408180101746592641571034667379168757611257355313110895068381466638147312212665624967737495573352716906893295589389717998008939106300377855388557466308140214505714723715940335642792466433865392881665384213117654834643798357677054103224123032201898582668357964742904862981850769345023820442603043534911151534188795473208758189794240778994167900057013614431716417549494409594877221640230996685951545191496658974866590734603474728901187411925310445339490582792444460587530500667166745961104051363447394772600239808201659494332800206664509133664110548379934287963101606718802357197984903293882672832944744666562279037970586913041413591404062415643392260704117553242320447314359840923436251340464588823329324039427739415577160783932179430982683794731990510634177274564823161911469457843832614386642981149089509148368266864426442659252880112086385327010429450694921693778125161942988099820948170059552430140388573446680063112723007396817370256520748776780606578438652989920586614131853022936821238098053940942761674553016434702329526969454228024295915021198648757977270903241466929584100709766891646657724576913150957131355731990963153039206965540278776422903688468100767806876076357021966700886567127673198500189799779660160794699703292188185022621230450046933132608073765850751763444968737892743577641743416624386865387588499301909623432491541633623439400912683786449140273552102336185106063783467276958287304116433394151664040563317568933106445615686599127401927900495543054021033358380500690624982596723922139677352634580874824293723735099633172644604088520526692566809259422944305125606896849326684983244605651599494636935648073944654487548090221231849170186033988632383015002360645757851634049260425965404450967265661612129093682343112486238940689704477008273403310028943475719276617618032094573041224761870097066217284032786798466713833585885318866893702918800713934807883897127931329408367070471931273596488613587455532859673093370327220392238744993872948811471470724567256655014533722720625048859668035147931839461622827474422380838447729571625379960473123261900148862769199317398169898230910015013294170748254938123211585511307083949766333585757423832583178527317693587765138728509994233586859493413373798208787196080775608762664059474759167874311903643838089926557105812065985341037951930121740267338787985086257468089512499776585464428688889746053687633027296511875963060877147654099012827467699270083421591760531150417808963874742398610854549375681589584619498440895371274885889425992036181796015982733339778207580038132133343760658337002990676905730607809793407005896188364442997138157345167210399123436520790171564275577467525050403610927356165472887184055244533463787180210354354258319738268699166311285353764698338447914727438145364651907070517857692597336130367167146480580352602858640949725368578114367314598169166008700717219784839431931200906993467372977066680121779311541233120291425448367871217589385918818217158296354207920268759000474975326049682764253108451246131645342399951062556853728372935729391424211009741279317244132379210604618721827823100747357129668026284808847778759288276238024465966371706750642856252723382574830569327125115764581505520561558846573185557102822160495854519616386866383473015485767297822923731510602290597574712348136726711941296253737813448310805835741969324938567442964573415199695545624961237706502932608959975543198469488458657417998346119072844513497335425018848281715824365407416931766229908531838926073526736212470494791026395059791421903072570340210316098614958900903893949413749260284773045056944938836180782129472231441107301271609550710966757877583745865766060872684975962496897517930754281001837838998885928957594806766532092134268117594727725065931215772839243204951068625605893907899793100860051209550305646858514497394162928313363799380724967418814951977352702003362774860072648331615555579906231953076961418514138349704307454533428540382179163314112551474772050952813523415580210283157849453036602776376840869264356366036664577922083219968068153980179565925539359511957292947452006304225537190649970362437445651486971177893459469277616824506193472310841719144177058777581609185807831179149899384180953364822542916296103038521140079206513370953667015166023060618990458584206607026221661668597406660398367011671049891252708303300028117009502556650920237217254638779226329123449405266990067389931000884790875222542615604629204963089906772755573242956711038276654122699337682137347803918731803603528127498024069593967579803646243571652839904146689054532803641380775426810568487853908723384396028006700610742263646728005332417411755017456444764063788719470959273403219415158971768780392907407763911955783046743709988309790405078631089301363077359671311622366689770199161393882135616517472340688144786754546798914265007182730534210735434409303266813440329091438563408739893946499521579728956249578445412636651593359342702296453747660170052493916459524089520642876356724965827213005140050416300135162193991021967333523113976006661546067676892941428010485264261448620664014219370845977484279266160350153445952121569151185276850682302127899357273343856476967994317507189529861049779459141017276715886684450960197231090677812548323679304873582435880208812544301992396371932792565818817829354260459914164062252655858449486480802214138288929542513732605858749761848946613643901050668570049094093933179820093574085727887831706399763840549710804423093104353924158725141699205231549326938634153667562217700471087037997843295520355471441078639165196603493986149350466111797342989163900972839254317954489464161222386459905820694209056278531508850353750925418341633230697356565275239533456265873898781969243221448574167255854427413465424093723063162629953561744821485118262088647190315223918818027898701361477594783799201392680964181766790482684070844644939945910122121427510941272382968726229635531358075342754644440271749285229815492079345846862396088882555151144223125423811165612381867148299351875831143038093409497335378964090134173913363547659553874062891676848752935316960739440473043474398324860329033771945521065207361616982178518258160036354946936556531463146935060607682890149006276650099401162171735460036874673706695558676904559242155399177833588658082009007512861394500634915938584111760150808032382997351352805989748228656189883335957707164547896194771667280307714906536019570866025692487205465068788707754909904250279441963816717544290062056392872564384839342381497913795989174140493276740513923876552301363528052192129309514339653496687147467054735555502774015372483147603916405551064328309466633505658357388461426807737825293667374875536465559828028814300760699264609845762652990382054660592667967514747894824633024302257928715931854550613061923795523623041512629413871537253004094093368978350960724833696132674381841710897118465485761447142563870691650599471216768936228499691926419028597017168092788342936137101016254650592105512042154981400531512267366960563897678131194688858855909643168835451287257651131916937989868164044617381985493736578914351235094991059835035570964369352925833830462029568357722285885131005802478133963410531704835891149415807158575855613017774399604383272611009424888157932021577397106549267214452367141437635805050663907906094297557654367706934856863467548048781849008073101057795855255869147093072531869835188360145952433467330253989849513314228810740697228827708864370053799370356519554747852313698347204086760976022673466161290513581947665438726028181463062235255415475743718265691265109695027782884359665616571896611599768379573944403465537339482781206161506983295713615820531836826915586566980902660974891979616503802685626506791506728396195733255285340243263181174494576752279157157678149022424202479310857799512382244893915469543916430588061533895160711079278801729270972094560291950070601458268851349393256883145211305800845336876378080141697766184005359828841952933833197451620950861048645163496132197142358906968599874066210860456817066448567452766939534938845433072546147680575449205981856521396644321391772708076694090387836129606811394237890820825389092741997061350063922313106369355443497407260410072506747092474959072279981111694677002707322405094418578952679370099542470886126686352981818178906408737003811695730843766641465363255403820536400907448270482820412784917746228653213601253248268881293247560184418983219253323578000180637924438208365519259664789940027632220369724343866196996499781732844960296477956789501876462199987364927663075813314475088356126105420606375846113045686181290983006900954901174249111248954188030567077748929609167785885432938687207559982060547732696053393080397523047511197104648625472180228874615298774927033222294350057690837430491988128849871764359388729183544122297694756581680204108622293388007108008830190970629843134363610944627901723128313277288497147428248146709356805790946091817404601129923969161054903651273543185827140491040626792111919718310314602919577861901745554291050916394649827034851765430639070140965277364780578575147609338908108167466247300640345603798559022575193475543606542978399342067557864086313637584536913445396759572254211071756102287094387959000163384422214450053749891025034822251389752752022123800199514930985262040970697973269434229246603282198504229570446336667637062162938200040374889980367630388621739553252168849894049655465928240200071866310573241200099134219406398868104642781493601274451014201812429154671605828940277587350608179681641781753989420462995690228148236595872326550917220707745987617737356854010238530439825395240082830971032692864630310489396427799126746885258574253607551436026908073659265825404203796656997769704717586841803434568208122257998489269968535778542498562684269219652029881624104886872251619856052116649551767908236063500863800388803683471795710420664070247496301460503917755956438922936459911830379417840246041939571977295256211287189220445167278182901929590359671813926563795324365655147310367454731311071359460192223117912201201371795940974637852879496051135823790429343923525277692655844820264020169388874896269042769963204468235540539056496758900290851692763238824295452680674763203979063519755836154924417165397682914920534281599673661196625123216972628753802886909556583851059776263314665621073765643962449797732392674526366516851264496471241789497422580753688638459750023637406883960933426170309752185583227697298572163097954628521176336159766083482296809205140648022694246410891567320535428505391742295620114283882669904661472873522701605914821018416594121556363270814316564360297157050185964265714553063050624750925822098938864687415539134158389192668661140140720410612138879236748341960651465683239100600649143052680404016303173434349890891424963530529619251263511342142694623293530797423635702171034310537006821293098673187281706299927474430984830360495048189497101330584216996773015545186154860941640622459869336767706930203608463468613119394254695885748782812153682437339270649521584902984859690889863358078444069613117060043995782479803842593309566609551503215103118268108082744638607709936217604238704867026199386430598420061133086980488352978126985214195714616223981676637998006945461855438253842151266966164910793467373808375904238945225273760479423577023342354827571825419914182898270546595556459958147523789622541839806206224935859239345807598624362200199436851931651920206983384421697150841758141196135203461363827069451553627446146035704211771697525429003332519494169389535930127686401879039272543962184737322156999157453165556714273662796695279836353031438190389826181684523725055819680926924525319652371519492446817803466414203654760278733950267666237607038814630062900412720578089993480526416705064745211862902290689307143316302117881438615012417619032176067495937868126693175398022710008090001088442530915306820852988479652707236032777079351097340020798617985712590235678495747219172360955671872775169653716655119150597045433634656473487269641354183800819938853075598292959555253363340836314454401421147213044822263014235646689553328353597624200377363727640959937832176001763021136705218796255905157872528980960057555923486597236809451012913780370728233128035673630346253692878391590642189923650507159634977722009014728136802022518166011350516151218334106572403627330381879283426866264325794327635684787808530711328203953501836148874624894116926678289619986830387511733443264664789313140274733737232338949865263043718003600635824862471150840066798923920428094510751793948832661305212151012186492118901522109573820199980641876415007581540892470055137987002197596567385511572333006944676321966243265727252118559809453544196407019215191676173783281985004859109752782851932545479317597978477424478604561484169886689107302159068476886265513575533989094251853760202326943483404779378629721192235582429735368426790028944072549905618792806280785764111141376830732730926489001279072253988735177851753607118439366614264092395927524343552338749150882128471812561726166376218616967235305239385327428094975607259924194574232843925639219894482558747072501783558578663873007423462124169941153504002627737338893879723537381751536006009804826961393304422145523073033811947165534243706380036164931761578245132780679166545053083421875087362205058810674753106110007729301030357369360738306075559403005655346953309492549382479022214095374045172507524945160351144329944575575040348573100894962439438023779814906270851383669423571443790698299873332951999974827124610607487151701361897008128374299965937462148473802767768979935540895755523791003217292024826831312613271840721148772231995243395527907335409612610581529134029249773411602405439528537422697043044664144394070708184080434633511420577666578129728141552940826368887003041846178002883541016325655073239610409280310664253698646958928874521255519364345969302869877051276480827629328803186374859178685512529615348880315502622254631986803777325342784893292245834547788727906764236951244910341355553527055704624139597604062938801672563311822768675498150523351975907933195313289637939536110865099664166110328400159070956025174388552564995263957923682234972548776511806617508116264972664721580115212054305415950293232132053453294006002336794449674771901778779630949273727413755342145171391269406950185988899227805545823321387976097894679509144157590844272491832218000078176802645921061677503361290858088297218216162855858816987644530392953402434057527047210712822241781458133168196209142960344893300917140715415998134741198345613413808600427385463417669237648971577526167303320525666831708467643281867671597362387519191046850526589670132426945201161059860930520456986545471958660100567181983070633202005044168063591224036716392777774366008083497784906532092318443376031198514899698494492514914943444698175948495024374504946542994112552866533924433695785313895057984462657054136824777170849202653992574978945165882386261931750110135899448170954287007646996518975979094853904118842525732257345528720630661582871590780137836964484170473904196981051474187330325024493367324634704570547809259826132566407173519547098234616448773298803464527447559257700662673459351783375830674941546421825591413976302534008747443208319332333170392112061924938123683262421801351095363332525302714282392088428039297034230476796575079941466319652327443257892109906027216543410259352603963508059558462218264017195677257275696777302840127811331604366599145708376096823438585687595758895159822207501993571161167702163328291439380349699822461823168647464754020626312100811559862103955394825381552662246785102344913816863404684829558174011019583265210544405390436411542525878933593189967022413989572577756541913300568367371093187990946665263900610927105978242685934722535234812767507097294493433890972823906505428899120505575345839553849555962864361262510870709636652033955198826091698169414835328185646841390820562521757729929166781678130830472274758372025766905667865172549095532041325731705363452245382719790607444252614779080612889308519786800648780365509328445280691025539443813797631637660811988501187035258465708594884380516198603946160465854718753454489269819902307808044462763433474730442092480874543468891581756877781595895575539833431112671455466031746857343622362502562664833627361341142376555468604860525600261184632506409181014166024116975569384341318117112626364316668497340366682188520257339871065462314994523573010009270975246672675148166583320617124661649142362071286792525812219422204876091528437942243147870888803100313303127781342765286999745729162826111264299101420510266506828774735817691955671666795328148387949360514533098255694573176357509780120697204166242579937667671641939179813306615084666003256813054976679512812237005719518464672755263796002178021584936671719105639918307224966267361015827026770044723392603185358548876660176523494027216269588050953356300649635432047660987386626192216870260930470404691146589142228799970752543854667845071981410511470010839000744596032849455295293761668091268431293925850004480633952262215953304333848808967261148555805205630574977550651028918971234242599198069348440402530097942097928011391468714526806866272082030772945498685312029704657688287556134264462951592960320239718822298874342396715185643295492654673272095364792789583720806660900679219719466688014059223160230409954214212661295397608132677785441289376844799141665675179213723018281784155735289478085083306585709936092201529660982202151585896333029493095840038281014127171984486919966501821903483213930209450131317512187804160750112101825102619889581237601823291875523279767144487025271100226615672497501243988068542806268853251491027144320316349039395910653877506445014934424963985287601502054029036806102369612019811835400624310422829153316264981690574559841976005046997732977400464024758110884464815868107334029384734192556015151841603415492062798953274635366490796985194888219932770042836396528881212281605533050954294418056848682036716088330091832865372588371508552350030432798831257260251246345655376414032978981264749068621497450879417389683959518568427031927439333416345279669281702783284205525766211770684722237274518154499933122037775534730361987663630511589811011421639369392458404573535239261807197391824005515666834260577613796961789591300975384239210680914779853643991400510969441001084979811701661542010669086670539742686678486376876859447947367169272978081061427581028546563289418716370820931312532854931701402264079537135119055759255828612200616445297586020876516990240981183409300317503167394397852943637051955819205895232434923834332422854145898452636145768894761670213746225315675202417016744259402488526740730160679473565751882697334808726224064479026557592835447655440805232699838680617568703421789589405552927959009760660085808145748371916297109519856310332601317084826292372759270389931843515170642893234492323202128777401142542988307361183579005850520113093667401872018170694042696887671126404912020838160983044432465164005067034399607841869609992101322813652258338043219628624003597202132213097435264244523162139709235294595284564451609656638604581536652072868336575586744639638535918389867591752055100583041971288335622316346065423727531449779343984969810896208509045093136905485949765623248539826485590944380878240934184098049176636753430733930139383387680195699481650723711458687598126029630882317234727379916105441159259700778492783526265213901238213692570418076635272526958129253901323954894395671306414291207129339005513067902124640212005868973793788148788316381299564949581277292829027782593498243170230856469391492333300053511607654307150393178765774896100870628605357494753606493691144408352027008922530314959812145291184977270430169848422759696313477721194817345668404925015576723769943064023534503093447074550947124956819452528955878240328243369471012487415475753939137512873967095149094078718659576020747719119573524165927960189761020351362687755781407355361465370313462987212194751420385524527884583431309893560349614045200771197530441041565247162061857837410935936091060638907231261741356679289215479978709602022607648158945563862731700043893043053797807467683213346106706119822199835305254768154992466873131929080252040499905369551525073237558022223541785053586512599108314581646046504958667276110815592004709159565736100247907049309091421780228820302980100048580445598465029471490417540361715994802537760517950545376445507610886794669151282808415870122966281860983861255230883654051868956632523201283568106499408163410421344117061844992293819134414380247196691258957541062640572062142427605621262937002911078965042922139945663581869994007813352855154111128405260216544652225035952881362942235787272684950926362435846715840850671567581193242622122360203883981176628372680725982851090725904497542450392564894511643214517916548533905624058498789337371214235552512213648787125428842795869256164348105451303779790930131482016151317701837661165842280621673930916684204438156750552772756535902539447885672903834733902586890648763813187625398883109823604427942100859284910908131934787977830352654617458737221296528133103298259989645978367926332608241707052762064506616639226855106220265056316060631000808222268730384415840687210618680354368434043799069310851384163545907450621962489504296374120635914408950560218114307897220021129474668466130103215831698648203241761297032921984852770017668020058924118789284907108895340857415323318600030597484453747751797413736404080237061512587377163993634905643536528667902102035251814415963670362005229125137033284382248737219603940263286894950165497966813574468795091270520099414354181725689109525659184054095927346652402895589963872462413461614306614117374608094191355054639116219498367104556364707204831662677896038910033041669980244300578061975899382308726760629608062468657528942335835877897136532251321393234348636042607987477668675196971065604807796790559709038919165976011130721020467991188887880660190941717261589733685623644404565109479039271735071638277394578753325335273378779014776011846774133338830221991581188318930074416863183410872116365585176268933949551938764362834417408858180072691095586638308431033449436772201371051631763050923138677142912313771427491336541173132536584306178014029259754373387175329306656903141510718166553159013161274293443297790032161503280275816827356511163034158968973166780706702828519449455969876699516622571374370753879982681677100540356581195021729775371516950661020039272525397596292640793349650452572200685762520064052166967874231523355381942705908605200495862802715511876460147339233503302492051095829855332668320509267928439522458845966582273057762886379721008746295515806259708439740364701391984200458409333299733566761343297024025410077041497638046343154295563729384820386781931241422639141348662758434216320375488189692117264541179762049892826854161528044874402867366582789755954627309661197923897136669957060372293432091080454771788191474575967925289431370305535637767253942156179807890120300117617729851332363795422784869517241868351419117246003632957989871445754699307522353935835736725205204875443341368433073936806408893887070486685992586345016907707716957104364576179451207263934013578593501053407965420475354811033748897340132899959353456048997105347097861544567949393664941803899435344769127773962514450889993245747185473973249423242047477433145157662580145468972200976612950785530038931125968529024003112835851931330121920019246328653158400586171182428072084922120122448113211002908458341234374518372257952499883685543432713340973232298917118324610848981748835561360396690983191297422461365280907090080206669939287521755440974008493523739568554228292066425235559819658679010448767765340364443063779553042197442176466746164492347177238550709281079120485501491760868565886087256851582374460073439990089651070345538191467524584732574049908843438231094428735709511036534057963690730385933121489997064235362597963262238052383051528208112967105091071247839505001815527788470879595804036960980007623229843153010999574216805577215509056518529438555904097545850194562474522855889588405606213577131105983998562646166070251938030162719187482418471289093677696845047167677036825599300049860642009358561142007940136788351395031419401104550247327212873862538072340597731247789672207347164168869083203207609601842647589681830202714655802265241095090710460601738125358860552004079029511780968177492986141972526350348311466210468400156902641387774891379950177805167277259333164648314612854408514683736999321546940666053790947264039268642491431639320885139564218415574110592927451366863497636286004358988371106254875934009037434829306817317755175747553307450059789021241716529872074983867419392829107047022157059564136358062645528068670778048291384797068603710980814416086306169582053721609948697013907834729499539460260261499033593916949386847086791438785962956812346233687084723286101692097129777959908853707679454238883099059417258801244757247437086920688618014107322441275211131409209351261737441024285230483114343614712635059179048197100424490552399324149201791165102245508281569998706733618803535673827473122197724118440863835448722356055065833109645776778704256419961684880267685153236792785700593032818211997323063141850284676062549616748313507508690427569988216484223030453435573608670118087660308617390911431781371427130262138406258647247666832774136328365523342986563231437826627126418942832234185145849689859724650641614995537553256752254218543416925370161902817062852331587307515858986374113834035218211849011406003883877733238980255233470395647453882765999846387904155505667331089096931669764352256713261378236777919136016880316248250995754810461294726738387427972872168121887404143902353779589510143833717144786711329426842262988233356703684264058545715100710437481823961054720334582795465638909854151887238047932810412729058677587453716205734936540788253462157370334088477234548372511303565279501927132899030916049167400951700445606219835429295466077282676732989447454513695400479281061589865119097252971464899084662642777551752352314493162156336394341217971144411404661871900024260884187701465103543922439406131373187307387095268471725514320626097627362444864459994086563228779940533402631952551217585984294909768045351139448899267222745045113707493894320407803873112510033769082215781158403529078653536751035508789906296446793387972888866772425140046957664327710643950479935780396378288918409240534104600505216525198033871749582798416374822779848576201133891730488481116203716261363958382465555619650313216298893306863721529415496920232971471619982312695151408732545281231244561477988895705142021219662372955411546604961458453489619123497416653542908138702607233560328476173988649396036969429587889159721973052472930453137544405229962958589375972450703242296521084587976610286835389624035634180950190937797682797699083135968003632295975976366902310303046137867822277308542852652544622212227806899953728567529084816218775718702524078478597206800560986919919205049983553044304328514497078876848613278512205185707487397467275209088521847351712082852650412252446609157191056483390187049212115801944358420812454239001990770787907354981590541430030060164235837759552257926638596513354782731434382975843500722924229155485730457095158788699205249211692777376336019756915764924321436833830729052457433693638487515851782900206612527554406613905452923809930735398221496637852251465592223943711586170073725720061629238701054676664710021445042240082235028690399318956450605544133215290966796520196081204644691677509604562680397268309118287182447250528695379891800070810686702452758846046724326224191928907323668777326679072211418676803219799743386346244427508523187664751871144453095007675299657265481306987962760478547469687989603948209731005211408289158647654155667553116533998988592720148712436462636830413820651678432928580735832146964349660459773905003230315941676131994467965807823085810820432577649418208362308071517451497306003344658662777984121010000080010738132487715214383612482827695557512513342871259229768577115025551239673607252227924744992004824579107208045770373958143739388780334369875875544148053178263189076515925662409178145643283688517773660044787523997516443818197063102769741140931888924566481540475088229963342998837121101562434201824563730528789903682352791791079719908415736299639350177957202206028253997229289055085047920618678683575202594505796205690374664109763073508811774127356734755791470737280644730611839530601264896408655575191410083883554762268924192274311845982619095995803111733871184327430431430542201495106910138958160895466285781858897501844730950740880298061707168120767828142973162723659855816476014781215497919504656670232340452964237668937540278994853292801470750316891551310512489893809501246869288226671077686326217522962651539711705487824992095395395809675163941369588707514840551914671373285038514073876147251333331334864397341809865126660974856603005756624126883437639661565252328785601516548813269430905623225204470972623735207281291525184353939356215731590299458108656944355345291555547279475155767022843284569227342119095502907304218083361010837035279356170490660431615969136323705018296698617281520507763584328967437535260653896736507381941610807807390153938191269132173805185848852023144368650097049076256513782842215298494174412081096705093967908490259116553923422493184384130269800670987892360376623817291106160847529179119760375158353822170031335170831429445192750408955385546020481769201006948264192681621323806565843740593433038189024552026842011918116803123710944470098226319986533733596229989938287141522731740784400481561612739313836892142653318896968274309853055480691987431743225382466285475473346724813071614054166014730899634495231371083769730262203371079845156212630164538190791771827140417487047398327950606950612804223169497565484615136788543658516337795834986128782989622965540588286605206968801603812661444656725613385541361312226795202638126918994254408492938547621280198026475783054900110970959225618124661107123992850007767774020986078730392820367538856601564191803251174358090354913467682506489217603938006437606353704645198661398501888574252094999636813540787452595427839496374137965493007577046338821857840243308402817447975157045370488031994549831609756931684704961607443445847797746956962974354356258928785688135426874006576756491720826795648730580699140249023435593235261153247676555134396155784491869998044676901980742205232823769229581578710146536930272457293575818021981782148132640891249357071759340928403438495575247874441395422984681679416543470605848941590800147994904062974433863551324659281284628442116908601760814265986316717992307803756840429644005733917671903340765760951966773301069058132210138210382721297371788592037505635282783617227926421900346210959790045590485632676973850843387826927854606534579015550158431156614917224846147086287246728201225954099904876208873862723297509336299115140653919091049218834757180183812270108047328323066198730170086956656988353533178552612724516917981909094982080224439165259675707035616973069755933633045954386559985203864778961242166535060170880324814859795349307075715285953243009118797706144954376302389562106897378687168797153350039210147452731788415805447705879799798616077965263654530022578488700493125647625723866719079122440632667501572445172465153961859433860523156316829725641073981105301389183784361041025332993758538295507311313893702220320205304381570856534333249087880151313212970970256483165817780763224836447795867124238226131188511818919319756783337138067854066279872672665820347845468981186571284925188111864670785282084334276030959207786643183151033985692688665418323314950108850671485697304071868624074019380764903070207988039415102053188586529613312255853481472256689782914920962581159219840301275566730558882768509879416727481541275815416270588209682564379061494908400814376354493723592657778399606297630544459825837939756799244374721894027345796216378255244789635528315987084406913144943836701348059722575106326214061067204081330698648166863556135653806078240988526793880031450326843766260901788406292035239860799598399800787761257238582117406505016918175911214788576095622566855671087745432887715142491611564171420305645310615540125891492788666112929778749426153473958360397134704512601915598412396744096692440954899055055015404102914085844427738132632184947440053936714146780669154916867810383164656041958803093978321193412180029815492085830561878690140291457095281870726956189538124763058288893517407221447012702046324329861472382681576793606408865313858422942162600796208558638234089875056970861828171092788041167945752939191010839645456061305968570025066799530784011994043285424111299603923229221719700073264263653499287419425535169256257999267755196973870827342122114350414901245584487384987921798991644941057141070999262986165175819109235731122545275688113508550938657787942707797642751729319985185761505853189993050145858506782746561129209399332131510962612501928874307773984752478384648240897917718359284172699011429555300003775167134730727911428958597536705543432327099525866850637371979252244091988131018263750375530855002400643836374834892508604944678868182656102166610829869948373841807790868841215944974614144794058002592920627247921669144031914212332596635536797309247669232364199776196466432452629961545168294933208145207286864086892414527017985589680867613677590195569135795726942074449578380568872995624196054968835749307363960651218818214571588815742117785495330936582751721123285912306309156156701925516196134395544230574187040473964244033389836773344093105189458716723370764576481068129678113626327344147999331398690449129919952424582016411641607928738911415207315411054953880568623767839734794488438158889422165546163063148324826298656018189220707535826207223607122345277859445248510286137484180995779062492644596489726373276537771270452606152519566185608045281768684224084359649374193858239508320160670311574142306801474988069723188370759017145038389802919596792361928486349305659886543798445719172127924189595906930515373177083191498216223104793144002516828486101133803109399503492169568417743837244679546644122647600595733559247149805075059064942087710868501182678408061253140914829083643101195449725771601390880727105451332576011887147134589659660584419514008689184684485897533042059843134886485020721879564062364127684466057911684996833633568652221901326781178828800035554262811439627143615655557012756780372841726451031804449754017695208101404797030095107034242604780629678690694002822482169005877179484284152136494018053609438646022755168205372462295794014895491379729811109817232035401683157090121085607123383727444673924037397076935020929376415815778720215455375719869960331202346857212135363858956703199692507601687170000956345744089479614836614171328515218250720177093419004559439828175886035033003379608118509825254031299345631826928026427029787868831707364590891478150390356748197920137247520582933213885846057109073932064535979518419750081711963599059255330302722813175613266701666214043938572057750265815022001731468801758442506025301082170882341526080637157807167014491973532496391698287789708319795843361963384682324758528105462045763887194651132176624986673421088902198755278210660494463311305409601456953316029419763589054294553257902236186776805380819716729387532152040348512243331465357683587917696294835049473599745270659343740842987098738776168445404271194960021729774171094762822995121960162265381954843401495120976646449305891139746773235890364787394633592671972084504311170217768342111464059234301239043764535548597401340968984587313700708478193465006377730754768632406422912886929318031772731661166963871250740199996018417342220901344592309418579352463966136523342682117924924032959928183715020040242206888963345010689784472247291197747338670854146856607333526518266411934591855142928127222951979074544639308147626206170766924541613988098313419028300681060047832080995772229016252100145220795594034954441864825782679976257387079567293259977184647625244572772585695171774765264363994412660914389179294975311747830349766278830582153010925628274774355492358484083164025391244993123364013710104448660622869506374050882216329060734796644667691740341360551192425234577440478350082783458795832441813036430285289438036814311777148566012052132308370230095468890489793969236085681682852913789934353427412501726437177668977931107290127431294485157571306895151930020495703772136300543894433866588969634921162441189209217501261458449045050664863136707291851194054615920651891119783608277157501708667679229115653200870799298074919909950473316046851473884309914695818553907474437422274700714252192445020870865030881235984004608709028488567745093348103712713131529965079252207152506070011119514723732506832906293821076032546690747853747100844113916808820620210270447691735158105689846277664638193867787845965521080614194068310999979384371684721982901557371252849193304607967701732202183725747367685729989325673597479091941206123616609843760489209767777402042595401821090857532272999538949142162627641407072003494216163810545310620012185444584508886155468270233236066475535547630563328456785180153843144778132421385528164990397158302395232069754325277965827753960281836011216341496738556092793766359931396615408656840652497520699173582379376072929242193931142621859475441064651768309605348614454368599872705789472514231085367901033703761394366241858222691555056966939413979954745266561457652940193551090632996850896206342729329086130755513684744622644510660547622783384512851683920201082579849125210744210435322179997154024645492076221032721848367463107657974488051996458705595076564520693190752642941491372427347274779583021741272659564468669301199184883243287718038872061262472343119011547830929839866952286665520685475164981087614713463177220580690200253101807398435167967868150916193043129080481011341610784495023448729030804376943941275468400000529796199320543750964073936454196665047004222954933773870437948281501518040729282201314267719782461562918805549264236042381585706174631834031681587744533781520483010980143082362976159451159860948600070468349669635766124032040161591771283756975462108265078287368726231452809548165321932080793119727625322688096947591240156645538335728005299742528748685023609775363799585817637658064547172809125962441506001170562851275352058924781758031604090034510267367201904488870436281708069637659832606800911559759422543158705727540551678016735906966470075791176632650396002917205732704332106413279911658237620510403146994396231596278030826331809074522579525204154945374061453135920327136063871798804396347774086670716377847308386522707898702896217486485757120507891873514905514678739507630790615357518050094942002841567229188006181182012556567079836988920567004000904830429341843641143135487938499368911791914694141087410261777860947973516854870864071065433323451647563659119313802791146701502024820832928244597438417618326605109310916674978816840720097327904736381549916366571116484173209845577217872441799214665405011326489212965219498564720410664192116559797420918577899491587118427098841598777055426349040851697851625090580478899084634535011579734028075946539354224381580501685064801287576119867794539196837858583086682426870189144016954134963003985008611878559895603427369827405678008171328074118647013411448877803949435462519422402435518258594129023157242077639259967545888612518378105627333295000730280644036013395232339498186000764533552110436694383636173823608516151145758592282154205895357843533265858497908914527549132603297639295439307481126734011573209123064549009267502330217398097165112755413080326589632030552385148597512188501145823384065627859164844342563111965014077532203860108692338588528482194052415636235686495890505385854021247460746133339376540541611224417591681796909480955007723043992478059929217350077050414068862328768220287947633692069199147552146803398283869652760948576440928330005657087197040275320302100877252528951023449149967963932273379617209613760210073629137084790009830895630562979415411415756208228696756552636393368795552764915444620828471504823494954496254787483991976790814900246025987739993902321614729902226312360887378451790529340882890617300771687159518632041756952109069249842637009561091514808020405356619514734260663462351680817446849777718690004865026924766194883567387768399357766974124976289218914704231611909133582081271775569644751260985969853939625880719745203810912829827189545695389415858794941049165747864312590038628755534228208778388565761940742624683000240589054889284166696029923839994358148985725912963811347629408368133275621157590865942988463129433727964990915730196603362117499111417360509757006084100882173469828617904359457793083942478774814063785518584923659313477522693912480403022340827686059675581286229444414131423510407030667400266501449841886588055242490666849817826923356439544674357877147469018511255406334252085015543742296632821664800733449103872936820612582438817266908679588443319732676892458438983164010612974568036381704135496346631958038219159271751248309541705880441554899600984557131787480831105727358352504369730249834982325679625646485551930484805622705843508230177772220388851107276825999827369743281603617724822938550924763622731291883116848755353378526929967845645743142540561824221732290147363796032638373871026046029152490579221779118522290049379963398706523432847718356216850844807107501545811793683493145159587482721147751631648449230098515107903037125742927886577801532321575418489581466315934262227633084148164439626017546005354622998701222670965486061046783102286176894894681907874890921447553568387066740293387378310047898664537670316403185116787858113688743354455079965420853651199764696927576205029008890011864118655994042028257971170966639625553502878867191243782215174806606911030652238327616345017094073888287550947671180947832616159950565352141534103259221731911879850779509728507196853103480586104353033381417857747695805949138535590021488002900416870591468767031578356180132514237470678136808740032937636194581194901417456363065760653839157610193008629447998888534375766478332851280953438218908621093057897253544911723186250539709949250429649002692750645039416620306535411089968865695964468645950772734772833029812677804384062251305816823906991317148195863332563365928605566763712780898146404337481453884604060600369790988990457424530579823087829949812772392748277720220655112166365885675002988795056718542764140319246515337806035069562940286882533613204049719804471555442811388784927289954430983942580237110567390289452202607087281288622121864132459889975159554967403615852192216774091497479018548173264117498462229885211760203406677789883437538948357753375098613584709514813724232882523983989909954230248288497959448512496669129774887977068018816526557281708750834190332300642350708074664811808197579059499681992911384414166698901617155689816700467492189178973801806187414859343041877958394462454699140733152461029922227490747192039692110068353319802891563876829494134424473787787380999314488221767526647939126734043047921402502510327649276161785215414993643668660316094393359920439350804088666589826214752758917907472039968992444614548180688597543638228013486942724317264270720412780826115218178331520813020846769267874277149051184218983208860820505551504192150295062930417495695639442379180101642708231251961026138101566437402274940441910730701214349864635246901342224945728163146543263862822129372733515958548414376759554554184596127453357419754329678655533756828052287813978273663440652964186822518525139443922866367164626388907084630262762839152496738123995944234015852940142227428865025199181384649733916117908113430579694655353305894105485428528641536075210778053335876840841588139054111054583221350070930747342937568261498947287687709353578427967129034915066151844809520365338212604685306546711724290788633347006120753593057684258486947247916921144389745473589311692997862898953549988216345110441600831535373128362297912934568327301880584574010060802463825500545282979336622075687773055125606233343669362893217697544591258527674713400083320600262304184210763945148911475382944596636124281157582135744923802312119328250302360910327536201210544612916280478553666873886481512970561199993842318200853937190123170864790458780279693487137804302280909767203185282300726005899382909833154455107789653024652964521615501648891316939955067981695708516146454116840339071681959323964850690396741107540840872608064188306365282496737819843246339725836386628897703414163939589985857176449201061668390559022904656541151019178976878228715778367147405581294160505540285544047036282518726991583026808919207406219489027597619572349233765924147483048545486262020722737749021096166023610418476077961963591465174942490182848687016316785742811771196214093523491645494991078507096482644813431029675840098746486815552849653796274493590029047185994583018901831548768058152592837418457934613178442255470440626980903685349486257327007744543359569877152324356502897528920272836693294763060389355726311151781658367390245123824018572285338329348781280497299119108842032997335988634651143259587289549839826571622817362265522521901772736552965415456296492719485085032087382002574120742622281075607904545646685089518949038659683596407011046045691412401510214302092549863105120184659610686390159699694382834029711731273150363125478194642300509750993197557786067391016159424809109860557222292791038476414459858474217312921406602933910360738018589406814837767135036843836021112167408674114652232261446639831504432192889419148259192650909990897028320168410476079858408595085436015177584153619483801726914875315283428244115986137815226625016824935810073949834839453957398388156936776324178463062756542220524693496187766107887129515684040147333077196454615046811452496622951576763535917208612192625217529634089310155414677920012699610350661234101011050246208862968126017966933482611394655700938967357801307415667245132562859704162752373067957924980887928409745347222855124560674547200100504024747810199578014859018062415944922021957246902465402740381678957851835073226998892765629437365455018271877072898532428428318305215064951243520835486680926128803571064745455038838781975372635981913627045215535707858972264823170362464581896889538934675403706239900619065614565510827659907872159004003694210449101151369239598260227873504691908451819964389459033204978836689566267817859722700118721176973654641987170120001519039521537016683824548163118992992449726432291047001573681612356416596742354334230092347514593359801722091965331407760939406242887912223586760660430881383888681714732234006810681022633945785199207627847351393397492166532361900524876559695545092380889933422083811086573440249701230460257080165990726683581808801000529672862242832524044922504871811332732027392036713285275749102172302917872063260617389547796693838167829544205434813457755498387954228872896690269970052654199993025769466747436339614648753447663843960590636128250063870906036711649485108373919724949828703106297997038371521366561426937222708936489608613230554293914722846374850327165044157199233011573220472096026589152973101936701619818778378195306320945013290920031334178662552127224300428711434726511710173205523353375222711321234959357346438095981270466237660235038524727732006746232590360203714846490153808569521084505259245400053692019202481122182227978150626687495891360187741600643696162063996243123131366015543097349105420777098868075971708491985728358621776542651195199232452588376822051314575533669171580714424484802084428728108080466940487415577496247679048466125204382032635886588471180921172885984083673370823266631008110232737494555450110356442716769961619868812429477193849169883313386330497551981353639097854986301747110122024091454486465342781104825119309898579365427874382330329713652837969864385917146135240777054411457258036596578386781861981403941181391418734449283194506182356915750422525183981915240498958105401984144151736632457762066348882364947009866266417666288320547829563773492961636508052030812164532655289614407934385516243731544576141942646294464768976903442137914779778837074938827916004067013707249388160037384211498667613912955538699746779510371341111704794698326815457322476590753398290274672181908328782472623931842514318043897302500054701255381402981314887748996472291101955828663444278830748213500867942637830709208422254565285040839472208563779259088923889676383511186724203085067533654400991725223790084267001541234100947272996563252218416183152095005663640547183328288783863849177442075329506272011605707559623302035845084553408345836032370962880634173896287596252233526348483802771175964828567906675484993869338729507419408212576810079282784532397677411493285341746412348864893490997050058204372876087372596100124801897705596195910439968214603470814078500571768544469773211062308208773653678362570042086553508806843509520673552265578011651151738946802905889433803644833472987460299425445308203722758865339722152229209004728741577604325114695238820989910090189143438827345459501482785088755699690053674475414371672410605315508981107999612056787706756446170940286516073579159954301550237606387405448356845860268507573419828390672774150866859428406405592212135471072570118972373883067616308323540283866969045005009073719041890436698681763040434825739507584447767615587352726105812714780794861453511516117070752025435684627798005053391630577325091866320550139772583715336452819984522520592401394424799388069430118128738231529634715087736854275295343927873659497710721828303033745123496879447261369980242263267928272932335979813929256006542369043399827532057683523818172820421796373191665669099333223118416911984975449191613021159300698648759226973943357501771668902389809480929594615911077775742120713384766200767298668890714749271344528441889089132546331496761833457269603408739135239900815573138532098876708942021374232286408663429419083393890638848575786039448452256418003329492610323634425231176654951093987110793570492761329390601810959186910132805711455040142105093271765866823547120718062298928549658731505956179473193097798947722562272968152215307737928923570983348131189276122973497027460867353699449829875135837652353111918343702459206883392019105157820823299373380902945334670511039332513460277163005759699090211670344839403415184203762888965803873344157980071431193629658403124074161145564990695876609272008586330784213716024659147592194893729539083484864259168213859446906525029328178769129874682064817478672783692681984396550820100868276851175575757597366242974613096710596172610103879493022218712092850947044557646933596011163285350049967354158112080122325471302548504506827975597121429309008182651942218876712304754277296017101678933602462235160174396614952168569256757040306889835720501737120619099759257786404860207716427480936603546052124222350841712316925809761458509364634873274487170359345663433633539996764737910133972319100905499688736999077517081356498318908742549061716019361055805915599426128653494047309112444584601515864289981132001522823324455636249342826484806450687206829068973037146506831035591590183219285567340296310297124170954058118518643757178652748339131611538504864738875397496722035778581213592363899037234353382502860164503191852943978168098028141121200360917052442721127487462872987890163546018896969777269402983471239222845550574517969839721029114773949941920213239090049016953792792693619247383694024659515796709016582257466800912456795455078907611917970072507081736791391043095717778454031517236815138782447705293187910261326599912676275834190495070433230721601471909612967009325492832024869343035312102230832355875273841933405516192298242016864132464098565623524915885866507546008943411082685406801562287892072047206643252839737332968227794525499110678154243954989985342440436247230728287273697213499614246780607780749834965329227273767170033257660644215638423658621465259903109607204259093642024447924858452283348683653394343636562695570055861880021415119584029813990554213618328633126954053907073584708542664497460802443480034979847387360259301443937530204040217766433362566800122535073391099605101631858179716862807778885940554490272916604720057028135979168017822789782379910525436553099363072885597214482038093312496208802779365287138965108584197394421440797123123531454469882727139552362588199757947247574211544124857819345991642336140487972127318906745473108001372011243516602103386465943282359218808214496740798155549559423214991619357060351288418761636268502877309341161439893508507378232791521874432465459036504235887507902619034839360416549061202604082382379512651331730140257686541321170297062317995789899048036342836296100617765495345191859557664236738598713677835951047672441458831539756731804627717096674173047884181739057906039209474742516909728818372705612720093408606888477352796095823697548475830146430368471507353313378288993131836004507016263335751550642551224487744893655001449751783073047094835741441437834785308431480438319209836338816626178752356617328184701544629920412202159587908481147707408947707227429106774232134940119672953892519750879895570068224699656414687578196979353118210613560595371138264328659413799585836814654181561603386159280965296388317940159272862093085199607861570008957462366962157508105719907194391582302468906338185447778756429098392038822599239536846146343450327293531265822447666945646981679885882203125052496985343233258008144525379094198720739610013605470109132526998594282342999890068941063286406240908955735730746700893596316134140617582937024411875398105036881537522424713721145680988889541429293495375105943383671402135348700266924172912929638025993938853859741803819523925741171722151824304100363673133927200351823062983819093177914831853344155483690449855675488743905172977524510256554740236208048499748291388056215297899776391537310753346375907382967909666736104265121947239644493689158763985939737696981681565278083967966877472608372024728078258873034367824380944065371155372565878620559281354279153825835096351121328969505523381796656307142258049890290484581181272825243246488364377131051620594998602763150239953596746359987297932686494511924210572276444094826479206069703600070745510345794399083990076690075149551878135673907669007363571852085231782006992800090646031770932041462791903022127304627974760567278042599836634461509714959599876140472998399877405598387730280481804425697376830066194348048503876381125079489428902086175073736517394475962318302996126948740051473479320799586137301563598500916340178482723554078230866807734410034338833642209249432793632498144061250882428264014404600529911178758746855904732565020833295300141855481097326661491092060783967520361652947798784707866294977404316388197538530213011633081739017558544138352053395721203503179400987109759551508525445528646437371190906797142075628938523911229280111021616937800418975651861851223846039641234406668995051062982852566430288244312665964231943358309874722145261359345370150654849461033687465498708717990480938311491685358316145102365140029471125830986874250814000734245128501463265305304726780641905330770314840874368497138277843933995942120297765732760066199904510915989089229848436404829757800085678396594441587188419034745527311589132001414522023241716696388408102405862323315299124213076843043838654218335788858854365408182002990542031800139087440056409474915663181079960416057958623484795506160667855259132486072335780144747638451011851256990792973684335449824700544874180473756859755846928809043783274681339788666987846497407600050954345607258941674438546966134968715866002604109731954776415641422827571096300970056357497993672714245494493953682864524996592778707092709759943840941723792473707281720364513187027730921129047156794503208759911418908697631302057458164029305043194746711046715279190233559570580094289724198896838622783579661434871375603527017700842399237509848606028187358909505443540941923936078582504304103927187081191285389703799543712082950716123118815873326089386814984458375862724109648104582119104165645870471878891332113909705937508830929201447958744292878359443406295193375349289019576215657428862598179177423062957815370923325635520755848825060164984210230725934124184902142196807763256112822193508717825066964635062033041594272375523485559736179097255233790664342304784908498831956341304546802093923174994250257671018744949800842264588626547025825093855382031848581631711454803188662124811155067684067178745687887020347269273051506237317578893557754632033266885892268465950289236143669007098601462004390930443592007625193087285097081372106065137891896174729208670131337418014104439506780610950078748425276203882536888300322954148985403792210063130223465705055420979917246509346205656990522390025221962763013244645818335721330696377075067065587465035678480119469806796252635753665828191784935672932662146514717917477797082116921560798402173129796517647129617597307617166672572749958429162388156718998873450177521928748966291721748320772424179694585651434305091215065449052268021291968076297372222391928388387136348635870941931109790320539454742300398580364920923945033391921609786754392966538408053681461938913838570717375305528178355859075521804011688672001135793253435061431776371145384722842444902601901695072118029620507258208131715392598620083823611989818557187717649702672726631850450563970418622599766989694266894514314996731165715349001772677157011343370947839300996918533383400440500349307456837282280969613796947077039218743154300023763193388663282415552180770303193943892945971960163663921853285885223899971644092500351996155082326170553491420565633185872933695228296182339396496553042252349577989021899217219211668598452390856412204180113613285857404463592263018337655155495582972199826170813246273875312486652926813362073943002990016791588395080205026541551644189280167709563936927247581647146383570700512924531224950453013020133431396934374159509574650411284565995546108769730863560100088532105019221055229042343886889918833215059444098923082977100134922610179528200800306542822492940455177803593119821023023158302469479703331498584717971150658177553613184633856180717033031451928571294622786778882583528981182094491204838404539737803285304326882769133441035955034216787785693223868380915910734890359113461933366637606536789328370968495126155035784601957446559489441450638730006351153379198485885601150069531948340081799400857816059023674386591621388507990737700175325714478892053178490238434280671141761415682205176758173709104893723359466308106933666404800104560305953798922498318458951061451511208479631479584324785550960650700834069302666136105449890355981314109901913327075786626814617820287589190079707492878182242127080534486801646932319679832570727349853918655439344360092309740058636498969921833915512312226660281653710866657916511402315841977038314943267212430644956640894984187938158405045113605038596214402504727597002323704500993837649818917727389465998926965940868517011712584866969043506704853940491773245292499819509382133757467245953409241535420999820130635343996613734657033547676665506649181748329915420803581224674448382556156834645887128467918639210348902382466982597305927182410271571225877964879071066077755666905465407305614040451653635120050703586393939615999980573562685161478344739209805918712238279002701780478808523445563098943387458959032757847599450622176141201140274167730836851732687507766157410151637177538079519500653258880489019258613270879991794683106821422421920909538447201477769550775760105029653560887510858778059157637802431965268188112474255683164500825201794110114602721558631611946218203459558662772788574617351896602852603390294569789291778819739466391417494486764324683685312881188398391862411087983086309585089589183363571129834664984569634258412658028813324644320791189010413782327117980209774197445693162945944577916043698612860516773932372247131051724786734613420610013471070841240109792362934128589100186941353571091787777331758025555951982893732714930566424239425043495593134551602724084761453697036044412524303027853418279423690141522757211145921782093972521561560296883083554281453577413617109854478668369488524248268480732438680866936545931995498819758875545284451749646076983136817465550362012082654860363762671188365080832430261823217607535461312555473330351091002932509911500466558325357402530511125091619680368393042904697938067099627671149971017366194256818048290833289962070425926988802687372326422794122001061147636659688299007021257122163519318921986008765386059517114521725219859157289672259305915168426965246104649944782455743324695355104031382438605221083710038300630492248170162278904828183985461564421308557519614374254525649217480724688922421615979673118189302849034143691467414219794697098021255717740728722590315049457703169577593471718611489868005627572818287380448050557155371340762234177548984865432750205024590016512504905193597199233310279865445506285517482161825778534669819598712443008573340335806984100179949638613408059575661859803551921044138821215697016952007786388117371889083608581411650121966467080027548729619231689891816010126401063770120549206132355636719478772844970054304625576156423724172046481217860343665757944064698519104137558880433354802683232590297335036651765669889011159201097507253095852282736926750892053993072494488070437182112980731393119620238824023152382289721627625117207134821498894475961733560768323384796571583695992495383633131101557572671429878410121640045114087838087534802184871765762561633983715235706160858980172871384769647980229904914786851098302450270040806493396970069854665078814921047290337130870984078415413372172570122282952320854474740934550885727140740176058469506894306381395516266443094712962071945542082642123193450359946872782669082424664707722876618462588138059730823175300203517491298614822706425126877879610651118611018491761084350758457206993115158763004841116221001303966763739776911103999929743610155258124493334606978513895507193234241912127204023702019122797121490744625561545467902375479792337242735662691413695197087246530287861408460414679397684144078822844999039600726737465427605197411623007771268923762857321822192269211623909122675777440149911458434683018715649931696156695345577018785500269385899317052038421603252566359480636754358732616737696057134778090433740601350973685190763198130207060268281793380123229281531881599242678610390907044907268665188444967630943001425105440412202101287290148341486926476163914937248065534677561557662583272292188160758213035808225804024291964422864794010400088701387614291234563468154035833104352643499140211245023397798975370956628412379417232855378544004101709700499752150660004575173546004174083104600703736803903136668711983089720860638459744888654554005694799905378812736282644955608912618619180541171656260329305676834775481867350285680247300660246351550425596772604360617966067499538790102792331392561269869656528231952932084784151816901275182112269539285588614243447512624436549301755102983440100792674040078640918350630034776326216303813168750216464498550147938914458038227017805692219854373191384888804837810821341863153465763935517303460910355529244422599881444252216275280927057428141222740974544573452373490802250419902399055066499719516304905464658419191793938513080230044853226369849138175886063337411755335623469285462431386670586742887815795536491829378010232886024794523823465906498104926154822504214103093981381580383022676767945818608650224901578181484114392938710324499289134058232611478427208093633404417237246770833030003150047329264509515827870264468578788273690354730825026958945863852816057609273564365087222626887119996545534374734753334806730598298339165312609054265611026844007809670612764161176031704221847032547945326982557503910497508442986017845522785314880383583598772543943553844666588900545306009563384109372758528900335185688192140916603161554006965275582390291643178265872618364717400316657923002361746593013317861898489689828499407582428718310350846719529820171449111023433269158809154580215460810439852409392301238005011236619880564903954734460810449444651905706150225827982694434144326195394601096339711652132345875413061673030301273316176323756536994320528816546883557317903545110978261830104135329914439632518822204501263127502776527476656164806198795921952461092266709833691223530861491188659454262620808383501320698737419258073837771553671704450221336610542575402252615926273424619840438311772057202281963637592133321868443954623130751769894686186823842985949718400090414407347783668930942185752514961072394790608464936682948162963421162231638020097963702564556370050375694965652338222087278567252657987482671989387395879006958218399042692255378856102766956477489156775829328217606269366682224322602523549918849062838765589540560248628266610895706194301847157016314549365405680018086678594454921612060180024675548998591148627220435554115957288532567740518411513585795055649429893027200350317896913353254876558045673805190936455356817301005583344331136075753913046971588021978842490242836269526689970877761848315770195480752444328331546869526850208369554762283218387038879159620104797488162778473863097697731276242287461319193328461879088945449138804624901182805702834339691555265029617000998153972180415103484785798107969055254391936368710924619064729671937268507888497625499025777125522273114139370945415642422242915565863093396383218534036439708920256497534110981091906792279987227675905984916819607536575155562438528793947539893973264146493120458838646641613294751860693194852893256095697456429370682745958130866372500545579254908038172070305727071480572303251847673422782092257955466485291372593817255205761509583428364175319604608328925436361170815384771865925704424885141739517161556015993930516292250385201300419564351299864459872373174387702663351849709707709622056330912585988758955514772478060230399708246108708647470797853059951801033785746562170190580959685107463936515731065555722836380948382733014436074139612144585525744645653676669491809501934599269051791347325902578445838165324635054809110387679121487463121242245241531555273321738206078184916839498143095598580486856984570343870413878020359010664830211210013225453629430408640356568793482029187609784130259639709326045225859589155501532489743378663307326475132164305151000066035338799015960487278597961650835267984569332751172431058223475430789132969655159442298740401840549727415331126771455446269726758199795263964417926185222282982745925337393105084495015487647061010747388318286443113891933841811613995656013682794200812796248149597664117877508620523988676357844387368196303479307890614862834870969485605660073519847827391284461015180049599599386133605578688181945455767884140260297510430197004200370337440897119341837613786579522723983425280943226717240090668958762225733894127300154500540898260591189643038858244704672264439611989477838387200377361839894904802557878762389442629568377543209138050176876098380399280026529822040340038436169603671430589043885067342161010544305950592075958571412645040403806222520723956924651738563898963739593595141472997986754255830158008314330521749810288894692850688314220988378015573025550452050137085335300034139504678471463100843178341448869788966560405085912208783804371247138535567554387157250562576086241072633626213904039298922248882752130055323198637169286128336151036527381649311679309224253771655468686604882985941710623970633486849764938632921037450656801448531897544566775530143855867410070712406082845608750495743521733189160819400037697271893007140242429505426277529627317429870980856048054333693433502952485139148433963840975214955325891439490281482559034279346909113011721162984472111267255175710111457004567551815574054122387217639403721633201360815975601442472453341272824491398001247244376952153900836135327803150456973000275804424235508935176239785663040141682969939365256255402091663705237502224383477052580978603970992812052595020198844357648497774346931116071061638975094026109399220920824598072291945515955335977334521770178219563354519706783690938714803440952837742751841766254360293893955515656358738870556226811077961500440346768837453157498220470348192882032739580282515462686440366069224142602963657848461437953990812729042034859019311741092981784061762825935709498567315559127023083183794007494594505530610072345022172274299581678139530214530754060722927438469866271291114758048088042221378779408733564007775777539875488567270534419513285180315746762446924680297827506785442950097909503436290278437646356589862086633941095265071186063699795361650952692633915133718780053926341593176968701931962492906640694179601144342580703159632086138820346377800533011701213603202392445540393356648928385206944332946934916486547061327198431932636449823554021538281952141844614776959995043587914162845984804440603505001306225479539521714828416936234447554190828356337593550667512127266041819048659588934122797616024268191270744523007792517653059011591800735593490613667579298895061571198400774157070992019580148625350703476504450656925749798482763913598980232859758522086508405318548628357520745781467937515964711311915513178603716486535171721742173155409265184673397886461691040825000162029332087259720932624461027767558055349126001375000956664678089073128956620378342878703494740183390215453409230508062304235914582964397373961486838896366098246292667849860702185444550615327163889166418071154346510527928250264368683877053740828646628781714725162996628244182923421156312425374122162454838178800352519726466974493162808472546495334334484104970698442883863190806240598795985140899778053891590355265668444859456872676631815908704411838486356905147217825933930476479703032247342390816377260464491397251682917398212551132707417004017528895395014918931305898819030938898568415044542518709421466397637879874969941418676497448449530289838019255207046617818713970515028252532147056160551698002860776501619017510202750807684199367947765764278111266352957623643101940583718587420161549747396477323618131246872073562734675290911977809099614426203175595452969232117701763761717197958120766207820018625139727951403858921016568461015240381468456073307200812413106544061859326361245660179718791305548246392866506285153011848556816452655134459875503706558479358497686980403414229736854586484752813217520106344223815118369108109138494736933574409216267113922349839368560328381199882371706410289069936825793557741904615845904720750663179769710880461429193210083853291809486699945116087941274208838024451778139497440985426907909082011993257275448050536979609893992336665462455880086481024815918974168385012244509001096357586346782287685515533933185378146630845938332738586213717381209186833709654598569291559996356455368697639168770390495859344749276944410377753600450316848711241905513796576629173462642864825072556336017870347420289175510731447796838912267715714043657169122781860219084236656611311455238445213947402436237156523449277296562187478237255487966105684378186212819362957901061825649184705648565442929975532058658945833425064855226158548538608659644321225748510400915966736758713286316161016680973684324857695563397603409305174778627039349318925326173104967774029393261396134362985401831691400404634317338389583089278049279123242741720953828034646869074971028485946556411451870712570676498939297462381182275779458910887449052984769396549349783199736334278365763922632966428360159304206844126988026259019966183264184823974229644219842021194331390597827338001384104191110660468236462856919315476107851502325896586176661639544731298714134813760412324504989765254718510341691142595797223222001924745192526984504768293718383626941815681659918242968012590628495337135357465431015852415945031152787791839368452501067014065625776358515479127269251502077548065244327142491244506594511583426768213483602748455439839480692484753027676879243797422987580119875770953668783422462459858590125589733605398160360467790631207290438158795540369124037786998989475654132472820631219507740060573922625886320694689532502941293071185872188427851538526360930605378753432954334479692697106649849849953727061013311045721061926999845126114733222823747194593082185574301904199601540815382092483318683340448455479712445825238796200444267746024385990798364333145941826078653036558969274315684254525579807160104945664620137018415418791026166738047867294787036943001315566985841973415551728869962025006416737320631168031965490838994967826765120686178810269467302980231713702655444534916625679600163479645668899365184369791976119548699029170599192311329105583914856510022516284102140389485644039164229942486480840970861265557074184778879311423055022285924499055578989642490874888798105841984546806119437155618028005323092330054122559366340637168053262302289912233889766961064649428960682970856351984219629882326888873087929512041518525513170947803973013272652611103621978867424562978158500942720706508176410712428595445134929611841608161589704822470027577200928136269183361679395375779206049936263652386115108799334114469150534218533526305548274631645836203392607953638264893541252865116018951368485158289376757921602477357236853913759574564188226924319462287552050753870140718799432339114029030773632427212092152762454160680421632984419142970573840588746759421848775906361437964375916160698704128875106862645761947300203228494241183380298853317036405168263700906810236060992694966412043403542325948343795828483538361825228785305144344900679104759179390327837586174685844841804473371475470506078368900298696449566535500365709060617023219676124917340338106661449225142129049254061581415718701788125125254655913945933991930367665402394172794691083412584661807989495389462717771184460870328965375774311238857546818736736699197144116627626022631111936513193297285156307011273931567552974273325949078227888351010082448791419969536440679084853624347203179611108099917514034972931726454840180706496729576748074683613218276439791886173819115451632584367105281768542287618525533901033681865252013018115014804269327905393644098846315444526793640929257999024203004826657867417134262882189161751668954904273251960700897319558238808134845446551207095413166840217139871158506382581761606224461282348422869077585339057937174241870704693592167489004892260906573010259588537684094906421645786554360125275557259065150229168521809266773812946351395392354472241134218626736722060947010641822313735902021474865287713752947493465591305852616494958742409536265808600749943037342619317983945998617618285539630059818468901112806277457847912722881995621407183746966121283925133729554657669211711060321902401340659314370667698904317343445361461265258136495550608033748767774408956824625573753278707476891150756258348917855420704589805240466958614294752689338369058611174197593055797012192489735980461884897052369983019186499912869396916917164875384985572624773029625038733943344453418314725269998283866994257796999957965300552376394486897016073534949551457370850754767319553245488368774820362073257853671525525664226502859847778779376960505966359624871466893075633751778867808991313455856516539374817233006139179780011992288555883379513565058097346701287040913854737760757410548275465982832103327252233912322418982841117434998091967180265613312491806177706393790961789860941158870823202682428856491702692367563647463056100045911125960568887882299927459104443982647098672722185572495909924176634555235919962307456130375068184141652220356153095828211710839199674760499745430229925060918191692107756024967845214532759596984299000493705533257254405886075338464971086455431976502762150806213550713541405556443846135960720921756311158162537325739505960458595712526071143951072212729953073363786378872493733655405504116493863381087983303469465762918174581169398872269930212487536245143101118731914484618878792665869580915556032236517187521375209485488084664698540196641892912173940653264103967631943596563610560773443464871800569536438978097022132981097113014147553934720685196871171450852727512552962247337352072234055076106630534660823694882989913385811015395412105081480713949316427416334171512342276821955000802336849773169023807674497800837946130152983291719666218712444555858185319845791209603388253003249644014239412711525910547653126058777582491266352595133039830680201765034162768024945523712768211780125678195401810883452270389869985963225506119194556905571369212200559474327699016054654900066256838304234702163230040712162113722982977885585596995581017261757101210545668944211545053620140730592635013401146842812030732290749564672039274699614796229807533303162062327788545559591400750770434699505247605919226258975057436659968525388031745925155314345387916996175617817247015802380706357268871070274763683580668208643963474280952110484482419691329036884966319851992975876368205904888284535831444370091658511843360156674030714731613729552033488860250538560087905635080285107034322277560506861877058304091974294200432301862272101101831083983969025124804206442735806525586249995872114803895350154501232360337978252948676533760104757623545460126150295494263009396050094426667197671253697302121848311627342671128680873536134713767282065839535497711246920952347993324183002202835190951232925527533476395213933887006843509177876944918799198461888449889922168093389403561926414838733893694649289229087168238109175246592410333044425325828242604113902936277702150754166230048031008811250201704694796641888922675194056070498101079372894203956593647359399116135785903236876553448353814726193826578560322532071525295225066195677333539788005738754374178639447271095314949988581111031814817139999487238477493278599416574483169192707167028702863378478420744928753497869006457420497655400771426031604619866834383534805780335887342042224696788493446044277422804853773114083456943672184886042211102787273565892776137279382922296234827213174745583750650701427494329177959573293960665717392854632801882274135930864746405214877601193884097647542739957559072444370208170422683676081114821083212487878589291325622645708411002111588328628416683755929936711017762438167483259645100702367766297592959543536893394369433434552722171659822043691824364547627033702964602930477106050098903489113151350177275957729985725089802914041416194580186847394678949493247703258703612407952359364811632876226317405739074236552898987486885014830365109637831163498044086424528631934712402390113228720859489795046273585151139459821281571248384639027004368574252973371633625314839174514974665405197488617421252817422342114999032317728931947198253196311232590009618951321475910635055483487250458277751064499371059980727591110548492404073571556522257160062386476187594032742184018399634082522985179667101718366766479858114109901123731643380248332931090634144237995495050262628956916722848610696987451522654460253548656723053095810398690586094707808203975145427754286914391126977977771483635547010124072774390743340786210931149171358181784066338647160051332955110316188475084968043533058973033832196954284511179055934402029288908490804876986317437450834503504326184185235501996314919132856375570377211553935265200366635173278635883061066489708217333373547905966166627171099512279096589078597389767695495681861139004764286117517276689531402617695615503528595319666130424582223924592131653844168172807937379850557101500457909827334030538461399627965547460425280881097108012601561873138945582260140450015633304947605034663916733509846694936381971452744902888622032303511579782354203237014105766573870322441258573227009368342971160195047991983449121396094145894202987299343479003449899054461345940447398679071199254286856018304236752570286208458467840026529850120128419335448235761450705393067992549041964375386037307683411453526264416538917327153246257359761329836035817889173150253647820845706048014513095851612439409202795178844690902467826105548554102055174046681944184130407855654473020242938693806749900844134531898909310154763521812202001023012372528851767739546033430429611376090104094799077897208358502985859021155621239494932453249409555136910817210293475042025260800916187501258393853758584294362116986373857964595625751820087771436427982402401949735557884340839949160750731045115647437695180574453454121803698490511908813250100892239738608357073939690242264656456634662204965763836595256671349678738164902586103987303783593705794232805287776054083074347301433408703997099572889229028736406010403626078136155980993430143630609979398450649480615473904038494094945416584092466154662870071051773475521881985201540890538423803457031902681338372469126785483620649953119828835807273273994709558564264201545486643712920469576884641632354328411485707990710749571428842889519638766718461989374399233875804672203127314092823186265224773693153967053609386541807889601631307820348824059849545376770005641629515495636160005477948502536773551061808377970453784270925806771977715088800065831702350123929710826680733866453402629783458235501902588616947873497262136911558373601863846747879279804771439716157009127450219065097399088556806930430826431408655325115382687616792151674683252632722053377554610257869054338415574573464022159650002175515500648309400216831239175788960553477761847950707800115166815435547303156637846737692975357618337859932694049613175242935807584890779962447736450604130355152235654800322846271043801211958970676972640056877591782622184991261011356791354374239031750357292984678309025584352617921295378049775382908260821545234915412830150619625765927168922252446489970307463890814038105225894678186295190403428017922615245805693298287589310621054469291728395432199017455309554118144452076954725756240368120010396732075580521922360696126449099920870717238225421946528151333403662878674924785215174069679334077023102000818083021117018721962378347595717181254881879994865034736431408447634444190097022279320879853346480345501511218888767637414292447220011453505210900311637494017417941304599400695218350258031695849493314947274697037969402643739017967013177609830151759730936658384988151997321618378313020010837925509918831791410815539774784615515819246301905592113598055215973948466802270462450383569926826821793491123715336874709354710306724392070621881688954849392734449474782704101562740517306566978184167853421117325436812671214225461276394600122530701065138229130761097964517366715767242912203234863718986741881991664964525288413252676390466892232894715997962381396026427342779878525854006686829887057902993570631561749060789980388331395760144923944973915406296011965312291832098835856989435035024739734866007829129067535974985130320767076838063738694662665287813015055044185477035528260029324184883146150834738376278512242807775974155986108139371642724308066893952052928213586062331615119178525738224122483104343801444131390709135064536997848295806181461908153250747010332314439372103524396216031233421443858097241681232804274962441356112119685594004515504517646376299863917847226443315919369491476508546628005313619609073071410814573527786995696227464220908616724576706877430326518135886575900998444500106943728068548466050258492390302065540104335798929122160052347562335651250731907859756737477396843837284933323128180157100602105544871835189022351841103933032104688537712576573730604611912937501485074520023629696719040150221793677363895406990624849743362572377734520450601450126870702531885400703100883815189951692143711855222332150231921911823509811820081114075458582866026058538195782488402014812817165164084138501320122841216391227322342615191732333667672399526250287814712640790026616565392580765105478358329011904192876561587636618457794807433325181521244855174534628702901434109678019350846033572529520496861085161467686671579699247600446745489754669340287285656262863301574419989940927123500353522613980987016031240888640898695896865731835916692901739296450259661223387631414830378086700488905950148311726384703358872136681808850683396936501242670103625987759615967384513072475772366468330770494134806898098371170229941393313782262165823982797673232997768348467726519860504946686240212761548396564209761794132262387420668015602077935572405439920566707432373101800492717856262482212801870583247944145766888953474128059156123452693939324804281753371863277423688592447298190062294958225097209684896960218738657497427426899262086212827722674518388365884302049849264434506539774083316644976340181135093988307806541006057822136502235785371379724456641817039479602966585211866867911943496929107784135723997727836460028415869405117994451154814757986575766612950989906626761049169022294670654687711125015017644682047587651192553407747086459796856358167379852707589769107675621532889122958704505870754130288829564525935621251524870115350420009721726877743745075923706147578806228077434236796487882357106595629354444645745673779371798262940480721621209665616591714205729854937702343367459848617532599009214495747374921642906905708809935296583797591696494388307863410769020239340604387349321643797087989516218116900880429780347373668215264738365042920414942832415985668148571098049008299811312904106320619552257345699545228553405440481006359683586066446393028682076453282533789180782978520591303010968339609657706266726267926393724079319400982162846407998562574311685195587192306035254323384484682090355174587541852783237342886488314973688340318077364570003058343280593851976222735095235136178194728596068926892989340575866697685109976841804111844747740996611692460033631910090500530938272568436475397882110995703235729500311330231493515829768088864055216853190089881746456937611404818094629409567063828533215032698937914538489428803642036576186323291370454846631862060334114397052776326969785830648534793455488236798316075067620626767375244573020223474425154910911143070984260138506507713593137362612128809466409938735581384907615144164046524423617288108755995983085117428590938943067473700418412395188900576494090296009629870121426866197259656922166401352638456885301687632926887254218099911925784088200796328202812205795136586428185030126378547853383945381569627547776297042930550171353866291674101447885796891436559816450798314525473809298087655443829224994947394435003454429009080086492244500003801694539131156047184237396895604533773568770566030909718375283335420295351583158009078067357748181437389815117306693229782898059902754835636188581167556898238352978820057254668122809445754123524157060850241915232926386322401807347247363088358638803069755264541273607126259868431086594399605576794076263469127848027850624691538740052715155891174785674628750631332957717501872443599918635381942933501135585136080236807103013210943157638100570695604325417497562944409362324189125266507855282572396097494114129573032622008115313328758311914228921699651362598030541267555360847302243938269204904163344090311356139779243900891573011314834585659943971826181384521133536238912597112566627043129472976545258570783852512670178054888221393796106869964750362129673984435393376476765281886100702607768073449666638802108585527078533162722582965351523296242464267844333233876214234448297436026821686605604043145623379834192699619696950447916626449135763763897361933558423402200141147598931533598487166574802588957087670046681781097705925344386014831470450324447016897290682729778615119348319567810247905203127016841343066722428581723372377156208158002174364767912770249930391302076997779281456648849022332898458636099498639633888880134586488834201334493921848088505313902064270463790519620197056838615178491351638689267118136353023152394342895940342423715868272051656249477809843810424975402556659204568719559747016870884465185290994505576303146452978634459415355768800618060972763249664370466184834382097536705742225704948595761183073145076882906767060447994560164057530783475523417320784856564821829722733016916638535473412886359619403612400605473288436100277645535039778641742241099797315725451676649001602685356755208544476687895048698014566209169569621033111438985726707343221747531733115807203853683674974156078654470877763721151622871142626369727685436950127499239098885560947236996990764419574452559662204382957141209599929261132339807144463004587974159695050456468386877267793329087927867380098718737659910642971598509995538388955518763633661267784510048199861866048593464219882674504546313401481754291329134391213650941254826887836748004737554496907886448475992302880781531041502406314834961763420879510227407599465666419714714684227402127083781742223202808685194385159283421378044761420567734710796298234129208349866703183078432397110343521559848768623342501748353357910526274392378014248721006196323822130458984231513156896322117452189719927407122300426690268606908846907521866105283701137307334281382487201700597784315024659468193504086291202624158637844916317119850739445526823491717062271449935851851908270534438697483189773353227050336104605288349647449698560380148202735509174518656439089377162074354038592204216040603041508476689676494727344110891563791327422948784863302780766516586946957610345273192852218855374718759576686890557981720378979132517993547424521536186373199999628096501112497543102189657357931076517142586302903871883811304395569047689317165635984265682614178153415355574539709356058839527885225751740851416905379398022302596627451610740911517078364267883623651532006498711183236447530097261598830486432846437448097479516139054419632611440787090042040525837698617469558671653434525814754233317948858995626055183954239652881060569182196665861431598300370211059650288286720593095810164274538851150849499829383533167753373215150341745761783276821679532023660796090103386102316213550366293688461672415570529725081503338874400454543995805656313033468562918197801495270870531083261774545916950699439052431832124339472013710440950349366487066590368935071775984385896957491790052378231328861831379085871131462212086467617214547795470213855511493414725299986687698244997931376861805907006679872881797651500162356312811051860236420704780272599781188249602624968326382921726076484677442703451439649670497003402332104323923844972334937530372206953499769489793726057221137736610075106718416085133900742263750094403092227017308970921226466541047817823300477231726322417666976285329779097912261348435930481440075300356948144070365236868646421416022595979662267533853956330364737906554088984187453592082929855999812358065490365547535548918704626021198401881846327723432838071391906868265752677297506103510714751606422190451794282927477498748990625803578891887824496652000426293277159355402581809304768558931932824414940590625370528249280437222377566592597192760970039897245408920528187998493135635414512775675002288088653539851519454694164253189949112411046248566306535882175793120151084609243648078848251993885769668126454881469989712380448648106676991094331991611498313447192204700612068765385486389234278631705235074944820857269700709537644314280352727535230670014132663551837580062632463888871989317137764209734750245314030443114340643772688562311606573901620571534151000298820803449874682900487130800321848928861700170994140545950559646475859511273293821233418936289807803514877878030931550469511764000228116812669606832599908262415566160183012541040045212721678088809728729222420971665117786068356378399952072917707534671562230297800998726695098561828561486308900119350710177654741944494304327642139650713879610051686059431046644199604436167726251235226111664244495190797699701268603450167974149721954262358462582051760045969350666997941402666165025966077951292514896883152026973993379368711597139513907352552267854553219132667443085418546430180231746584770964886342539443398716539415272998866620124512601592775829517696115317051575553903693666680022830160461143448259829238633313341308162481284824375939374528644330674464492445143666473908430540292821535082800996263185887626907968629525435945073034326377273266571562868394658479832786831103487690548509500252597785656645449406833655898084915565992963187160770759805231559011253666749145928092884656610605214755157307486878739442006283966831966922057650352993031449082656342876681634089654792694834920127251432138505852144881564838483487254542293031517944568109321156789363355530787717136349047048459184473467396278378604662316324860131133496565836456953777371640040894273303385782999055762008832120760512100695819726668682900692520058688156856167893053100641728003662408206212286294590852912512904606130751584604387488835142607250034649871801180549690640919124154091707065521874049056671989983560208136973925251150648847184249578105071953450797911612406185901327388527803831719997088905855894365149649269378167603475041840624366756465255444369497241285130879654287013300888583561943270616031075404609006373244575060111387564128111193049587972865444870442726728887869274161091426861603341680458177662380667478310201903862245352971740644857742026974972236808841424744990454118331896022213736363073577109833825395182431862541683438570254502629674824032704024496796444492023501392993862466962149296222334690637280394103918477750712224758280807716481562850540707341617473913730014349993313722940743423747900307192614410682106923687332506740448597473010076656600113467004033906223837696428818983444687202246147164248246060260706298936881818225900911699792340169218153598921702208951088206669703250543740384682412298732398896398256904369398851645376848684179149433393827988398996923161013256312531125370228878638040857322478581536398658218323155098470822255899485054407199690962070850244847406417060770348737054532620778345332183113684861528982530631507861024076088799809886454825919271404210237065253761025172468082530731782262381771268327672503904082568759275245901221362104668061616523446332807549498082989146140901100164830790849629548669039908257589446019007120578111154363597387613730029518604323808455743971632596776064006534283974983270337689779418750205300221248666085593998736446357383787050005473938625889573333095022445329939070218513557637189227197883520883933427694567219227489385023882895703804317449480041149345083158656579390490407955150268279139018143239470234104573503420290812840171581007944953207740940173838451345716274612977701295990714950926240312471187128398419745335189256639460184597383459872332350557856030188323858313267150401166197506945721395555682245849132336464455783184235503088856544240965724493936393713556556600090761045159262391218719138563101735200309980763626764761150650502628124902562987576224541711359952490150560638944084510419164176251358348567463190026096580874373244815528792235127777891922490749654256326548531415787792317685348416235030369751291576362030952155166983761306126858234981932585990528026608192836727516821680876083910524962835378084714408677417401299821543457742655088733690264725326936351761324829818201107038701615126017940803188020027684171410646955605410198560570551167096499433391841260584748764397136109026638958072718350815025386471461420388343678275498904038154707600435027381986005529283646518852230729152501975414191324677195257454171271448126318173330580331223738812814238435437670404936094441001662698342058810748464974906899077704018424033272177582873215048735579651880419964528414569851517167874821737482190924114205124903395138686314928104458332940013276717697464894394672670573838173364007585362207752486756305916573500341973212496803743633371802677054193307496024073615794914327361033980683285745179396465990411210344954083313516544003387480451537138195969321781690776504052353737789040965576393565739619349558185865724390053113690813005183812541972021949519423556106284762438241219096817554775519324432072617874059201189244085387588056558782128711270121960823937379720588433009138423773143253062482350567334602164468261572579470079629343440756499965327727738726962734931194842462506040689116414901935734038222731478201268425558043379069185410656055776716089509590740300113340680373419056502926167358854087541435456276383657239277386037384692167612612420548287455827293708417864981859640851864347967867437663095516492120387349224481806812726877258679394195036625494813178441751073875514351567090338329251510215981006719193980832045079807370888852478746096996647708906762756393137853480767614684694986682035974635948988553809072997758852678928603568801211052356413013558179688332224260944378204301234555242152483165865642041650399155038506873948523749972487419683885798351065779384575851608906534922685957241140329159551257962622976203824203976988350737470530981548095483280014786953895287571745791455919594990618942237615498702318117139503175458021713743171393779134048635155976599992465486133424566313043468184412104280498083179213271950311925141327150081213390323527741571484077513741293996650689023444159673971846552899607293598615675364602892910241303247769753772307235207009662506093707869264657419824112227325770408654873844840383983288943830578885677584258506035110517952857658224706627557419231256415689993405312880917916188685194234076472709030867748453858589934405567366176122895707550294412648064807302245525696975305066318085517560478659165148843329254381874459269149033782771306598089656975046948102586206712287515358682520210867444958485465284841852545942234058065812643509722918666523667004654621236999162765189300456002531147252165701528598854363351764386877090435060250616991640645895146656898893721272597597559198570249529875814028607063202913488897922761609850530720882536083353493310777860103559262503352899593392520003535241726898465636395407569691515165143727432202064967926934633272852336989457162383171653622395278096648833696387165532933472976412645111168394551965860574980635536051424846486756146854799073887732816929694272798411707149982725029544842761587448009075672083067905472611524920621649810046125290789171698826045763962960410162214762885638134252175231433598246039581534363303941634002122547410749373594303391438228173294141528716084412807785126779507668984852987122734322073232888603580758477899871160151160192052457329476909852202865600357859544591434220818294662936619456595149755850371122565401389419166707751102566898915676226179419340589085715418808788785384013508839514042328795267891189519261272199506872551461747849914779971701252958734860433127831000597395502460136967598708947216719730898500097918060035761351466177691730310839893083004061875929504051288678442597068895533780156328836360913826218096136496662574590696411106193990586179456523726302665710218721500658438484417410122612684276922996470716904340371493044590057258377012626672181358493860336022757806673966841147582061152611009925950214836440271402421980180181233405516546531621877931333445159320113783596840468490111310845693892692503877915775223902371075369302893666120769595373244526666795080505377212969532359365189985042710727231242035721578415659012123686913161870402320947265744623732047787102419572597307012544603035322121839014295512027121860812717206729513650006454732747460542662341981580294319614210061293351741692814926691580127637324716522858936141197008919547606634396449126388167739705051856908943109127594799708594182082186631174671904253541421475857274383888142679068368462798725720147163827634597693471766563414891804834238713649249664232435330121941189012099211230020942224281821399372265338128339439427406433501268928524509985633356286031520770790643717539105094231979642072976135127886634933124626171156251697355714911281600391595247725882219269823954873082731737698808708775582926100059472896698379980201679071363684228809304574536734893401410748211077131815149752630457533780584297324144215577947503589570801327470659373383374021754230334797222327965159117886676302160139830353922467657454642487701001020291121469942614882060155848942453045242106981549332439015351741501162832129213882765503399032676801943970641824263542616828247315012547159294195360825813395661837634166343934055542817269888209741926024007442702927824218493609644612095178761833724752348574733424237048942733256063991258967924941336840107605024008177685853352157677155860199339935125252371937954596616214739573056707732622439989615520282899948122480932349493942185681426125982979636568129503907514312639049399694103377216728580912620942935342772018972629455115300828574200797347966009307734327394225568091838623880947199116646860252629769154313861683281875696254557105877018879834007156975522064587642009894411287502696178881214925635763172198677636380965110976133220185166563555210048205619292142773202704661374982209397943925297836944734066873520652237001686737630007745659064799021473605328553545501107690697831808262403534562930959496376498129638829665256105610862875069671427397292862305643983170767806845229659877237456665567272110715370574521148124082948559934905508035748550272670293766070695862173817281992864888700428225497401476793339144398428036886909755839783114666554034943196997883703261601209810732001013478089453783688831241176066957212502987989360450369133680351390987527033051440562379538647894683080606920312260482822173179912066368660663366197290219933368637125678187436207774592585812685231499820127237370119149182233149645815980065149224539489310175542811191522844847201238181732042101476944412811341791336257100918368025506027795125819106796990917861071471766526269393761362504885043329183739938342701893780913205073465892710899101142469541865276746486616929521210293615450681301616075607244850091665003094487426330713300049878711461645590890114875418880462658877543303644818843309713395622178391526159072363793536713228700433459056444712347945575969985891847337725078491472063824066132622149891027054185205848612952321275002782687145015033629119047643814822100847099686456583168264882505307820398150380995992673322944345602155207078645730296735558095781212285730831823067636504424869543562438477555399623605977191618610451491601565475741617236136098541937517443504877823311845978020930442639525383602349764837792629042400660322492907123642447798221246783122731242505519843905540212656260612045372720544516315516039717364257292023069519466472519442111470082455192733707467717209159374520871074650634882744661524284632263112192850604155760986562227004852866833958234941446618158344824419630033281600883260577085618273758840342566945578553971255146558666331512247264635425389112070324387846223370137204790808900107754910348364681054039833361731248915588391137082579068558866592477423330404150628587047372939612396234880403748584256499187555231859798531333542343340326602431956579303215375967587498229378000516561927215441916938185382656741109882538569798723459658430753469695625983902857515494084669060065847064879551865588240170396380043761599086960445384586911892527568815390408360705438083391461117376696577619954566836141262176197738951345243429213580550141490019330810859018566192154272518396921375824349987532011605635499314213334763584375506282269229945989535070556706044676101954066429474470155295379331617426800948980823028137749854746408123647035153265316851753523791722220329868287909972026614988027245068967951394853206784211175178933232881212463758459659000458208938312342300141212268078389931337621855011633335668938217323908320834407314984643228106045471239402091517838531211367156284477213118544821034661476323191376576861476614822192906631484887895285920532371779232935301870874723214731009857985456710874686949887842821695957380063234380091009689081902763206389094646255217220927452249155225233696073898077092750193195807820129563188315209003250452040048354381015856722197641686611118012290468282230018434733926668517663862963427577745166193407827722585331072734165286904255098485319050669066137504356094572924541120219737509898162163406314929052489751031529774292163675471416025150448670638215572083364157079619172166908867847936677913572841125132373576208871864086947282953040031365888741397603256079969245523141087370108454006461631002197461873084802262966876470399228927157163742057311655463856583832085147239805797553138552003510004958679833526669599993480804906604862048974029776362528221309926108047965560482534335913274363211427027806649354318801461826196407539873701759146343346846978793815679344428786808959902581996387128044938678354231712193780516977613361624205608134391386315965274147552630810255230487139651675161449806747737439959634371209235665002888939950636627910046355756796205175443402342629672129513002889513724726833853478901885607784430240155784907101201660438878803431781519631015857097877989705353235446318726939451786499365335801469849842532842780821482113898699838399791452562551604236827246086898799295884739990675173105317824960480479232745792938876021362001251694283924499970551305988694715581357680945431414116152707172954468759492109021065683078011712021530429547710300192075802440927380401369479404875773072502516866254653953162296841781729793918767403084565814107865024244629299690361856404357366309158617710690013880298993322853512013719870738958710025423403999182504113006496200069576304749210432075673738527641037539708570515262517092468075963725165263809892198302160472638126372967665312634039464235624812000334838206314089275752745016301709975156723044859112430071923924345076795157444825967718880054353703127243735482751530628502182388741068961713336812444159416517311497947498817243729645191251702581980243237502119753347379807764682195271594935110809997494119949369090658511273914315699327248369007923526517212023508685757935262524690320780391806957365857483804532210033870724914481449787492893608383758603911171757037033643922538745496039749811032920586591785071197709787296976613814022529286877682764421068446813188118765695967939368599662853541144822460960177297134509174851218364756701951843724597631909183445441257579825797504664407344638591594870875870693029546519471941035197754916151799300867218582164866702173803406103951688522173953731016875989159056505364775291068803016686388894217069984972269603454535871238534785747680416362835945647729211528966373021142887133884814273666811327220419856415581222337513161842960997624476757282405523757216022139053594432086949158147604205441230110577785419472407617948313394446824446054573677219594938202261359918698932924062650111004019183726981914389511534587411450094340223451279806060600663880232006503064175901635572633798766258532751872346180282229792326884034135624500192108561256788947019156790745840106692365521488607795629821688478092260609271016216832767495764391199595390263884860158614630946910764904103603321410395955496181671749296620492118477634004769591675924194262115080880408376346189044331879165487487972307727247782401982152036402482585533282012862915625881844549534141815182755607236189069398987799677075975936072048910684224748277617805007689768308186952060941834374958120872106877705826780463397862083216638054680464700378734409415100642403910714498946704180736662108204013955700704905457158676823026044055850329995047683725445405618215337988773198262439395408771519848768584472962493090400881493361402669716781351733894916234649700531427982846834418818725795373274416291696117352016946377341685788925042699342288561574391065101273411587453691345478601292500608305259936471345102417747931941375228959751222442637609110192073938266652694218017344002120490755345437001804169807417911910317379438751576622962128172933587276891027570362948087285572121501267043560145579475288549983674040615911470598440592048681495553603630834292364842061845639761941603063571758359400821885169192588820866215748652120068255678209416002708786873645188184256779153422542339827721952452137211006022315280534835283745780795728693403530600135022351910044026566362020479765104465626717202214139737543156616648142609609551025881311101858491636306051679329776702328327061424801492216351465862993591752887569297407955078669521058208942041033152652901048496927105661141372952100563913629674104124624123648882645768849063019250853902224323651860874508634708616873573528533320635433090635142107339342075639369502293618887903288930253500065096533958537004426568322841705448709187815525636508755118935592230949944572101972321590146534949627774078037583097464638251238441472804699921189928811909427422737832255568514133152911341335344189690538723297656683851843451850465086531393603155125361326422446983994945319449954770657670808804348322287092115697688119575725938199792627545841311926156966772676312080719502585461965584844236430430717753396220720963616171735979643341116556773456804914538689008323357548501390067190017062842062694068583365695120492787793787108902303797907189635093124201169211630495836066545376741142137825765490397617878776164290322980730999825048996210575723353740655024022656788077944471193169058451076047311303759315372737052542796699691103894683969933424101606428467169311026462686824038068833768250832072349263890702099450947133741233450176258668801410905238294108169440514154592041879512002147840253562428748667538100130953947331275049036815801129052107703864010870011831422251084913064821505067222231639312303459801563244868710943833508636723665344082448153829527888286584027201532012689463357209215102390022269934180998888381195930131640555135939994472126069990730308602014634367968864576460154167958639066392260020562051534652425213603629907691799013082876518817778710952580639743180322597261373011848744848698132225505962163128342191074843229653300874070289211640738150320662834366995696220417655181421613475366933979961981199719282272026088786816271590702677561658026999769641211444498222078464259507566401642081167459634004874508311491095495316933136062959152642273835089251895746601599515713728268527290644924941772246787018996604110052837364134027151114015307897289227691361284214549853709098895799807011250897271728664769377315766127490166577869367358671787626164470299655436023279393534055520135138491270361029053424281781142259771258952428340628080504830984762679697814865329901926406147331031427632266889859167831191781608402243670518603412365466501818296662765703965535045204255991325999782436431316704566654432177279213879647568221227699827509885938699359963992693886825124356045882103922140119124043539707051497609509884073757504160287002078486245118353041355551716411224713036403089122746166025360487263622537608361014766154415551474888650930436615901055340530587727726296617133901836903035775822438540231813905895023995490909338013885073588741906307247311038568905168090743708395601948458396244267713549514484198414609726507619265379275284014660629168775612939965704177078019855443443646233866860546922946011597231070814113437769429843021489457924691813650620441249724580365145195679848229144719453915310457492798058857078372594937534619618600731747736011331099861808341312131614712710020414971364256626792362117486720931269121232282986102891129002691575674092796954261096997306488841215513063689816749510668808628720331324227618752308632859666013671912063052828858822732733157205520126695629283370023066353884777737674827899676427608304273871135022642277988760837292270703711419271002875494644833009974542056705394973405092552778323199481127109607058914130417469665531858082369623879807143519006782305206389033902404474581697588468551323821406636163924139493743375941620838632228032853605853496495340088531597026146517770825218049736762411924120453705622931430088144876843832333504969464811348462584349750114373030057074727739307062437089253611430328304543032914730127061702643286876588937009344850465364491042695328768167840776290144577611915352079716380556347988921626166671964838093376694428203852385358901300028518590812984506394451858532098523169129458200080391835861666491921030831058593072222423198219756906232107722924299753309972054113814752563831285586969719307236493378247458395693974797461830025673978868195261975530422592970547937968522592161172291555801169161907401887917345106571015888369735880118337722214855477928227934382825049576583532573292511087598605644265308443948900075396268677905359113059995715764137471211641718605288678547169677670627880250572959267444878231884184376156394420441718519048488506684243923040023398390822637583645876294119066240297078430433137244604474107790752843907683867216196272386596906410894240893190294642235938354496464243373381786987999833719200756573956750793950768434883495517501802759191918530199836004844910921766748697189377000961152570666217747058901615265767166626748903401105239447380495264722461185780777406753100074691388500529269188015598551728680350547540001979917927789067503710407098924695413998973552391051663557212348200394700838825179709234297446822129555996263402592178197830844875102503801398361033940856039503294883447832194151848430676260905493523293501374666132403698850707912886537925532416140602819037870897108373997481400753781778407580652854450237648219728098061976316361348608233707789014631816395556250282832176002373359204632914911857928783845368522627998997004381011388926216084643950312450681427880314012402199636199848640382771617169549498714658959081033421243484985340883961277913668610863403937816674397474023670531920727982892976429010920313709254125265038572959702547176735596702252435099868995668994733807781998968561496330083628547952078580191783658592374758778994607085593582712867778118592559193127272451256024150152514907020603051577592349121132842818552373991174021660900911861352059648759640755374913259761912338832772317474759738551866050229007897977086524395688857804504679569584296461376993704835594215842491108257796570071726017279938758128475565519085131297797275259462819266044665629000282822860048938853672134479019250154164985402912914719169094622418224197593802875599200666471351434824121905445064505186519494701698454920157351944048570057100358981993180117790050759489726739881501562736537996300726618213845313497571671152895658705272670386757870812071342299789211992466225205481368872442718493660185669021609050114519187396704139676970139738445617145692382578201538672965514698190473118745132192191689725260657097382396650034854033652291515497001062281810310481015337732055037922346470555778803373749437769010408691374469952134020185745618516632194694684172231208338321771973643240618657149309360820790162202451762192878402281525616217921562475678523205073708031101910990682912744662893176564129183184440954564849139978527437138569873268697211792562039524618553023467043249903637508926975754286045664713337517384858870720617167041009020368380743234426879035539771244800186433398819316030383689006609900181331190931618433649180593438363433161096092672949565280877260437803498419916485541017789376340059450351151826691995727641851925676078732880482774293110096106041086209066226531062404949390788408916378428797058563776985666856948367416423229921387082716930660383538189399013372979303410716709549925846492210908796100944881260311686111342266713480673270208311887860888653201992061252946896156330340460618348905307836046723348164225613613076373970908821783035402851077842682464242460995964511778486055822170781105113481822832537783052057937133306188723996185987923882383327190414181677228015089602143112686997596746532071570375240846899561942128432671345243067111961782104610569152765614161090680048797022605639967896184715815455888898034868288721204897806237796277285707322640317362014373680452333543062569367120233271126868492830405195964412585441157481778140044797699482135043374038918534437408357235278070666101553417047522695275353050895540035264262311872435464259838912667788134204937875093899795777767311951657730805335149866169111886549438965033144523015168777584695982480254695962112438865653044673685173167648520049161768794227066408054562081088500679377347104444944488303187382920713317232207087043355071202947690852610003072716818940519323756581838240655915492083185685900477884666396244556507084286763495094900694826351607720557208835595249533963717838357753678560998855112062061829453538090967414521196931237864919144955391084733045236258379073998992742463037675205689265203914638595539557138834627562169489366545358026907825964157940954789556380321897604055375485658073735668581136421558039580733392596545986065947827876312020855924781106580251813643069082385479348302523896501622983555700746285004916976368225431774536642434445331383445590736029788860276612294327109131151981968056710353739064267232798635849005041008428761350572825609677386845830075876798410272733755347288912874011673152981329712511993299063294458019143600899833766168405062109098544932202593304828496827811840575075812909046153461969846410089590440642266034479281066870472995344304405228441413994441884599827535328927362073974661270531951145544966400595411665080857999628626466478311697581695528891368628585271291835974370732290450463740596676933531127839344102180038822171637525087369483086291970604706591606677981448539958442073344951357341959512298122427083022773869598776664799266015927121120531255193843885832207811705514395221319829882283722798221141514008572523447984797111418965696255433188858566158023288569359322757480902633092011210993166405609038197451777503906574108875995468689343725787588184027250375702774697076113045181805339816634795346501145476382631044158568607858724543176128858266509433294097793675372114334855039462376993712833892837585698839817308605731952353619569769894658733668324550806098921592855899579421210244141434995840124111815426904730383054325880845127271837299091471091659077836643664945813040496943838800633323889229824638828734529652097972591928760210292042561549299861854946835865442723166201590515713080054553235825098417686508015972979766613747273759871777328396184032059709803143266486727271432608501170106281201793998329664853906275867214265778301420872639763355629021856521913431965743733250263587816880335127272990152906198809345465518237247095228523696646100068792078710307533921984175829749315465379186954784136070389132663775207966347797798197695720963835207484804757775821019764914059998036057761125727930548122001897711195490459361301338319708935145081645653076381609673437650843466308946914626398743201914497258301437243215356976710174726105826448948091566257360519801222321837369258244522197847529764027234873724438671280253078459747543452708975250122735365381783877408840808770627207509724068205877646929447044287602045232309250779753779048870172439846738014590928385723893483934160868386593103550469844318976392678571757085226652904698899232285908497244584201401758436545189616538429255898065641218776265842785891560596372754357765786768053434852338525260907196378978770580203894113259229436598570377147554197724055554009280730269520349006457162914636073061416649146350643488471933742622302949871929959146352183840771781537509448683515348516573780614995705739173206733355256472348278965604943402745423695797069865383408505520449349340092687025427582914520681754563443914116877610327538259382788486531334591760279656682310069092612176647600239672784371984467958812655642422458227397277830699789081770805263304118645093406671542147787375836312733599195509613678275667553513304319737462433585775586384026408003068635434291187220028603220376987631664072095601730941509480316901357840424564393056254096858446518198508031527002097737712843899918604212841365628153370650826865150451108979493963159207007758430408051425904607685594301990864637211574392432549524188127510402687864207442329271822279578655736764974203890936786302859755469719164247507452958112636105266776503705480158832950701724416573753540624655482509951493132778142380001236556153798772271547347749186465658928566998913334761286905495318483951366550920432054122341016185613098974637795237078511688939664246773276563004612639731325280130916590551851876160196197278011507268820505535181959433975689500229990796260857971115255014986291910380934580145533624912881752514792953509119209282987279402351658086951192520684260356970001087660412705421507746510775875052441523220561933456260901381353002015668747635189068367249170650794722874705796770861805805152089436000820602922856060499231053907502720452280779050022292771063150581054592883661248128563968117846402243712361740014714925981709695319059796002553252782066193288379788694673903023449983343615364931992876930116772043259175784456349130659312786590959742793190947894769275848604212366898478837312923949148889237505087871705537324481984982108647871602065237406141234276640020846382331040472018443907034510892143888076684402945461158715370877339187742417717958920502218266264413864273258859166836586272371014334867992327159527973814112939007177614770837380509742607165613816389945464450678105813656578481908322710028611614747593988932689728741757565992292454548433783915065837732941464651977212732905673449380126984750781391202462611625212879687447416134024376162693103536173003069347867868239916177581703669886260627500811378467829939077457645326319086058335539467625576197170139594300676785318492132954279556418222047143450500588978863674538080324842027600903431511324925767327689708417587360829051993022119659959323088054773116996836439640034777101967223343238883494893251697958980304948017106509075816299382161937381060324685217198041516144986907576770725919592147953414782013970885726155824699333515044721536881581825513162009295799020904683162080985369132447378637157622881989054448555572505880568314409497654927006735545578538326176421231819976381239621169900676090591085755088702910001448172626228123891565973907420222986036752111183645885009267683518726862391527170618856679100697007188239881673449882355755924467423595831584666403074452327752969480439190882495681976302422696641159972952235363735233979059490288968122573455475825684539344631966244686083571875975151208362471425404355646860281951202492691444489672038558510493128648387685921249497377822570400290213979468051941891069518696673206110718564847774655706913231887795357214664285316900581155848020003144159733376044811859585131080284110611466627575659460282547544758492505029851690658114625021535595558868918413553759436718703315526383001574303409813847077414969571006847568685928142818143775070600691934096559586701255721180682923709556368430838868308887470531952030224059368682072367108110486029920269970624784217489318962618541039123157078082382882080010795465345982961427815921052956884042449543837216641772177565092279696565301540272219084421308062374548451965153198145761660372433795055948794415855595089385361474686174453323609774194940477887436887155629391341926646064608667731551595296423999983144920170434672132913677494293383211951855261448841303321826373082580108903535197960772706955358948407685696672530932375875592232317417303656054052195006502319744483204136898900060103388109443182883165822513831344781787867235930585014895434895379732129374536715209387482199609009676125220872647839205329873577793836940165491104266731184736399010262163479406605701917540683861206987655008022820137637489175532051388809121286356916276882103393389018426066620195175704495487755395339155352826266185864487678340936841008502667935581145992696925416262349962635007229589892928699195766864886598036838413869229395646575849505323759495756159201210195051186846267862650450278301257025134934160385438751389979853006708704113361579725143701536624139850745671344889414223410986637764245127804265356833636564013052415954190406278441769121209574353285215855698854348912604776638667215812108892335556217968506050339686483850095831806985690273637825435819203254755323038225152352954734385522187796010997240321527553934220261894858945947738064533894798934789944228196901356503210469930654437681269313918869556915933776518500340547698153088922132908068065611628489707906148115974767051508901777229106560710549362617143059411101084113829902797074266474231839871895498570738611016834704354982569438841078473711024173723566321818962813445637254626688835735360767407395078241697019681870052431839447720650589598206382799846857810218551496483040594664655782182230764221718601479498510048497503637198241185942041233491849175658423154390234681776976394786806811314851590520160311898420539434221299750167091253679394727633748199079799572803945765122958342937803156066717123474762012704573765990917901278176708358346626067137999420611908177710668908521596819012118176708494766409653352651003995029991170998273176288633692207601856074982384561735038950780995319812490990005963129771356902100344110741394331720336117647377736104347624898821597796788293142341984596643269450930007803067970113773090323653317150037033878660759058355249291622213626000769920364467125615713794353402798407638046603754876206566602028688592360627795993369261699301151656449325485468935544544008018664920359583570162393321704684446090774673552413739121772488747481589148289566867328864138613832719993503147539260820649611068419762198130187435251584851908357316985613957099106990583126513113542650592953809317248192760872754610810547026379766856891204737448224776247195805598166109137526506854260565137309082261332949451237825015318439924746330988365208888214963781411986272126305590421797836972027499621812488562583856631914105781725044888799708306204945187312048596167122570105816287020232483064478666494584471453721258458421596348240573339778905403200623064065077981325530309081089296498032260897231649964176159871689225343797997486325482273114713632003404396930824074055345029186379025525598286360232635576980115367431525181833831017643936263852717732129772404568713154974390864324370718517085797476063157858793053850231702924481939112353302993383144798718000013205572403503936439809298118415083582939760956581551272029339357029222986316703233841918251439766272943319622623227683563774686418228793781259118641447864913847490294798616115814245889879516426974323028008492556861147548715491536656537700489463034430590200248570747250993156816514754998704132991776095377349213549009842525566749542037149234476959162692433743727655929058308981938153960167908210101865544364461950622609547951357781160657229090487901852271856660996809803483310478386199908274639475445201462077682844253179268454792475357757800105653854344473153388433712686362471181699958913538495943212904682704821259135409882931047827244610774441614999804564130495392279010640466086555027629206272768738866244279646772385550377801152139854082807741988075741568025307818411611479725107577827638418617484189075413268934780933454858933745213533177947053050814192490845688790619877518595691176785331025511235462855392681662582307865992887866168527882661615790708568544771508982176802255966864748223634105645030444315706410525715439078536816542280494582905233298645612778851847059146861507322399473596924254429687438242551650275659037770350115337692214357549204656581766388068110664058822566293543516514215022058423051170624902056819293035156166743075762607605266834694850787248964834717025328690214764975965521748743773845172995242526246162071484979652048188681930350787584542560979168905325988409318899773449544324365670687355737902584058400538596715806494480509464811387411995381542800366283063608191254146119400986730933747962633699022163496894070735778006518402498300050877641385146174634315471374952986714753522678524508080409843535753837272818746414596812324275969265987064816363537518812912799964848392148891373772604793669884003073269178523566487929504195122938632944502266735479241052003898193435213231548107816900884769482954410443435470734342086838118858663868862981613176385126609663911397610791779459975628074731101281339580925392470397585131722139145844151204878246477641534499259127270516199532942662994719481346065916584834812203751599914247945819715083684136514062973108148080787439387173360536185315376724753613361517392007702556768687437130724039023362493864342305025818434901228633086502198437716565935044196160384634756145864520945587740762150795469017311058025989354380927803464264719810246616135897146210789225036121234321538520440401454464125831265087333934235584012784672409076140680665904135994276545615375285523244943351236429088876988129071748363507989582476348029254563981180569714189185319766501829759874814712747403341149432151257050957450211506619562844709381127242244507470900522175089891783892393105025619063247608635813237051824849581341436362418313254875460262164853483035055070470792731569847132215468745377794433312842191614239897591793607833717339216170562250636588520128012838643374628571380952152310716517910007255420364782310195312126466917277600946503312307258691385860947941276893685347884572039432766306142993010482112953206217578279910089275215651635706525140393325487217831126607923422926054382048461463660429462100004882235357421358838414934836586970585287645499344087673178549296902409839851405354725100519144615038908753793819952891050869085300158648513492650199047627451885016296422742872234400515812572610087193487741698968442986281015651882703906833395341091585193975089699104061010203122044123220367146346002826641810645004997485851294577890689132475040127038625552120475706882338470423691879157875012272677056647324186010419288315697455054657248484595233606211901282766215196196369442660952712137360950902576083108585421350329085640475689721176514276814156026755385930980155231362365025764553688123008223472874121533331035950074361613403848865997641286749643723003918630154841235271431572052960583985493682853446318700478519317181521439522798614834954991475023203498859295052809099870824937103547295954940705460804527879382393968245614911725128976588436698992957643725118358877144041101515950858252576397860365419786682280607048528211640968572193539228224195952716288244488956412533771012794780704490554012841864813116943519705548469058414621642988209080722358417707472257635372881445350187212964771428010657525145964120488019883121788649340258370858622342084384383023106696696068444427685403407121159446468212230752685582457521359789803661210643144945601288644905402728383853464039908266882902124088393475843569597110167109945063492067038543168338086925357100432379880952360667644585537871885013690132711402447425429284412326472683097509939124212164813102685238834228369509550516362888333004808553306156626817838331040603615123937764647259502047247912473744526863220821451526480905925051961548891863047538843402167579549208244870503097779596110722544507134942100812654432480612991762548417736625236171766454123533698287249058856015388294384647821326842556005745916491435567138799085117260471874524615904349648997800681019156530441315836775487488215560122814878172331046188610181584249133481501508659426172864653187792215984509331559541673119629483028321900073974729776658674656524377722468423115083184814363095042010445167983632954374460579960577263315896016257915439184568947710287232358247258625228474033856720790482045966676788875747099438683168238363254013222495477944259499337020451384233003193147546550222357940065421113961469727495328306439124541886076737252153253450893969503572995988578109814825003487034521791347024178169028985207575552473218788209546253634986394346016162663038317179582240890790075493500436926133774803107485747200674620623103767966965796250810160704616122739969260591708820687521765323554567535747719005322717377629239872832628232886152567460844789206480585741556343943918732002331648912012422024954417337570887262930346327845362214564189994717807768707911819016670716208409076981278783524875338211369972156590488772534385082160465631713253606393397184270180355319670806787117589291081185800160503850093522156420611509613665113087838765939454790103799172764983247117106420135781780445916272975526438833931118638395637210838754376830040869055661147664838898256726839564702285056912258706399336491479171430490444226163774752668772949351378790827703407188047505618115628897196908398013051221269795974699429153015374640639227706286001868179934710949843058369040683398655602789788744113755857280951443169124382859873111468291166330752314641608480005363658944064473678450345179203807506254218812901763156161067069803528632241119206692632887073244789155160638130863285290655909808982299218162538338062601170421470994074210877573710193828049253191153182726403056323737733983677428155183862000131964220346835240310196818286981528091724078212623763285800340238205014245049073660222394022088020938325491430932587618932078897622787703520248683726336229011202563999868474170402596133587525926663751087566610298882564327271908984856842089905486242978084640313713259990983059013607809265727728406843944422293055266533133591613169766313549321390701304488392666536617371708335500764661602139342166968375843609084976245078298025069107399835222124576331438711792391118701934870886765554844104186650493372679582815877126505226781674789861692242331626551382899869935930275886228842769722818803690086569586931866855325346173816520265769905269350734658999704625661225841663719500979357323213404966255450002419442973584362630565672819853667069834651369469282390976057360466330222453967778215714581170689176885686352010313303078764423824001525627558557422358424533833662237869108103731839540538761838571584234909919329716748490768043119093806610352193903853229584969852962173619915046432969275450608756325935044353285292966625895546246075021073530268954155604725444366335618105641079543203738142244656650609303528547381285826775127989878823312444582432941313518324824540677797695527410613636236120909286804661257610619685506955173464117469980843901099747705684528389894000380004286006987005751363296129826720984176656618745911144524029159517984605634026104321868212388281235467761391282799249137645519685695828738138327518587792337394093574296312346392944697110456747377109970268904723373438870032633041797484873994197555488343034558414498223781151443622422351920705654823799886758409298305105753062213812460079358276147952550970390639284140744160644552490855585294563639961631068184372529386408996061105969042296553881698127972097412717037092381001129794765645595160852187155210342136501805078602170774104669249457355068488448306641978364290447303444065999488476524292217929092688818178464639484035671818253777491735825284535586869069222029944689255142151234326798606776380041070685835304535180879039038589387759534023336503035277884553021676205618216563890809258358701977018093278107237014741271070247299810614398592533863934287893779279879215517447106670315290746562045826843116784145279914547974733499765448809138638326479574973557807937389662563344808977346540409246404281562803481184515405464785801656081700511505200701525229654089071873070464023091176243284550614149631229045385114195621228577745449383310919601053485451757641166604529030099430329595535474087057192039928035308333701517787113993643260793741194476042718754325314403276051128284897217171799295949770852175106174804588480968668064127384068383749684813113281639010724198912465497682513843685090492371363144462273127084006537454343782782329572648656666585816417809919338547325789984152630245499879017287017285046089534974606639349573467462002462348378370759707410958278343065137640519907971695287374642016916838213549410871470528160977562625717187116392222020382203219252549037687430859024131085958526665569490573986287992283357100251033118599950369053850630561730617540908659534962197243580633105386791940042937286515632931616497413554210300327515291338659973132532531468493383550394123099738727505758956783002782969426530037474341352886881905163306897553972216097172646697629792639811587119217586016475894339731749854249841096459464762165405908401588293154622469116412150617018545902305896383708745855158608838791403059361965265693145920702880112971655486940190067154714819211586188747625160048808155441896480883783067992714278095733989557442652764845101693753664911686380075938650300577867302503203409539955512791863269154561539597914489908518446222153094915622954870691218106651631206771992214410791960093159430330800198273182472293237432528306998757460848254954645421889520591924651339028571654909666147184743637524727275135587936689120085253939345777252251535987693268672345867263210906038460752848192515935010756209260967312984361383235303069575980003563375211806853203184354450536199530188860181302835188648597663532043580372047481544422815357164653646046630990423669542760316040346084633302787828819690047730870290083462139590008103728506517851375437136660911555154736280762371476543992723782947275320885265622659493128469413385021446259285069828833650205162306068739360085024017738644209878312197814033866442115940273797804887435187448886856496293968078249646756723115409984525259586083025029960219809635281691664795899371490596799614460903583114172862621222016383342536855327234063645840102206656556874727803027692994560359389437483824063587563383373759905473068428686480174098269938164554758423093422267483947200344673401633021191182943512823347093101217795195015598655892063916605157159229370392798444042950826678588953820067907897506863141411676703890408916803625204619406196928529295121393009956241768445518254892743804222561133848712794963397088411666107849043912667765254545505571971301767902330864825207053152442682569512561438882776420827040007705119398232027519886551866345439317263620593288233371144703250097360924459878739172124459038448044985712493320647528505445916211752354617554271380055911237832300994092526381577710651559790393684312521669030772117064787272077577548209343176417637997804040212633798714549184430134680390651676758646695737493185041923156668450332241748250473747235543540650583036432878868683242335438747406797085416067291430506936004483429644209951100452354459716487453107753734536971999638998754786463549631251911591208890157308317469443487185603803406556175991459654283777290381028551669761445397869666274137795873117046106971933851123425671438652549297016186697767763873754969148686937437877436993079277106117098312505783663724918552979108191782211272147127522154403289174634599468732297630324875360062541861991210547423922648841413146098218367753440713837203899763854002868890105968148214490116294397494526670386847921547721044329107097217265122258464032680379979521725852398038455415463829308318874442086688131657531252091235917466734685917977512518781333530139587439734939039103420000451070348424180832278100309773849551635369647511149437651914990165909409374587484431931040255514815523029366902479903108036692169120391913319995965137124013295704396387198080355085962609759020647492137862475711770714642055682399789680084291031255328076161633736563428352974521668931153558440753090228434685574985077138287294270258496828592283840118089275837760598965604907376825865422686119713187794417851794154342735821131333655205999586258465051715571176496891312421606629819407996405733959516919808175067121081073710484117967072717188381285003528393856620990126730221677993771020814153489590782724008479774075075742457213125926959900019354678856802877987159033001800648711669891422639586551304259100851501244012385156855625652896388089740029548635088181565941944855775970516452302689486801315282550905639135537264861914727020764041811216855259095211308116140599067880779260131829525345130114395669151414785025288172341101479791484987603750927221446077461236227206004176059672559733443620359447319185040224389153873397127000849645231230249281333374263911593254661683579396288600123590065110859880754336147504214246756369358258827699889956987631382408688822163665375252484924122755954697886183721646496459267435360105904129164070867962020493222195553289676614199070064869402967205909986180664277592222565833601539978177362197883420822741226085841032962048023168992813856943308629905099012352282104133231742531086005491748003916251792679697162949595718289255075650139088485473636247227798457992914294254508124468747085363615453099615252752633187311672904110011831291319398068180385073072078767116989433695178558283039088689457649315976831871906577612346377318123001258021627556355758730106436123753503791350828044159921926038588427761559168560108829848714486525650703597102631848599294312435489109168497914534722095408934345934118487509641248108834037265231820346250367771903329375912243255597933259398679427163736635682474304753363005283174382393692064006409801968029349674310513228119421711695925994324508964364749973460358426865345801858489379574598820358744225496490622974628165289173375331759827762201591386890924691785344731281956950259981604231553384035122574502085880021139617931365976116069504973180432830715070447721224612810905008433500079632200731249899266099346864053913758971172984837006536416358746318832549381401733638098948569998667277350444536637221527309350662492903583025163842692377575466932231322480292943710594981495666009607233666525128900750148878783196689069472475292864650111529601746823952164636576449770745485673577239344344726912438633949888740819770685280308676547362693191661374694451071175600291237446500244218183267378114000732298079903178886980567397065436611979733400717762757010456431026362174157669401363258310062550356770799656025570011796996968084785438865892264381731393377688296941268720876161295266122330198211514061737356507164559855884832907486996075235294917457084401181273262159759218109113969330449875184952460149661314437455262007889103071523685081569832778701097513129159494786517827176888239844319963436192278947417777167458050129283557665238412799004468951953946532920145324981300178324945766856935445497992731059821881223218165558832372198430420714543328766669435174713578610741373698760869331831647993530412101366264346176889284374686285332537887714790772189459324841665114528657543647493239047268094829921053025933350937132975804855214166103176698276020651611097682183460643194778627734863734419811030468898347906620507932309668650507453991818654987387416101228270157443737169591453805697855533647638899936684924587421746368804037589318626352712989223782794753986894781561440671166133552076138485340775034693807460170548868136610221121277070727862435736787181020348626847434826983367262673682659527214448710329532619801604010733238420461853104268536799829193577794123140595413181798363993993498740787115862357413888516192415376377945690553242847674263016076434830168291516445207121154580378195721872260643384029729377936076133437813609837116758304627895002927240229414647411825978851686909725573894487503276630278098700217979311143798408822760167118747924639261319637494423579185719092592653841804569443308932792501584719091992961051291663732275292543391447154406076069799283435318078733784740782263493689674257817942286078221016802628318498133389850147764510788152125666131716201625291802226814494758930880446496758686039332422216562043831613109026208373617955373736776787430466698023577915032224441640833521517394764456057098200302625820770540885598808343038487774591657718076435935027192704281568840121583254829077271743983713240152525175472750664181576824935344021579671818616421513814927116831188438374067947165452114476597435689086246187673722768222447404890277375184918598074891816789964271599388334561860237270197559535435273671369098174882015211488183136884734593018065400185893069958383305057851400825148545594188097049142748179103476230396931319797296085790655489567688808629944522310763140609732871247560263639579909114897692817513942927430525470103291521148592776193035629520841412681827055940211045973796983000516829443038678731630714705311317352261207162371728842002668715703944696581476241251240523521640289179160947164712312529428748236322333922060137518581892639306098644286736564134712104532920071657150352960698525613498812400718866958342266245962562551389098190475904569185033337709757302821204154932586602530452530176127639409325947595565140943575255373218883737817498181512769176936146522745063156431298788713782076817410681496506582776807560852478983640331230267494143207353674781515554301969537886752226779762440418829674718989422759261677489858535324285211544202158568049270760904361239576896437320822165945466314291164025701278192339550609093931160972180047557170672440864791730490915012778369431659965685427493559394157088751258362217123669700558433279044784515930843599761987381315304257587108707948330690454284084134433397222339179573099152936851018367848380098162789098753100539149103570733113214658766734801509144658791892739337166522580105324151094478638021863974300013800506367883131969133714847267109873955522699683130235088294610331321699518847616345543225533129869577997431075392139771667267392849433988268230304825196045039346898282899958994480513062485480147258302250883186986471335993275235254142642065730946638540329686814811659413696431356304731506016503591219300814968781098632745175746601615225334853498925156343722982756940329668237353263631344368128067252583186460182574954422521336248514217401660824834838149943529275852648980419066915211589845438244110825667730411598560616263848724865649721683184227755930990415094375217700675049682083755257998391827885750715173916054630673488694791240349227134651397053353168148849577507328678093096888269723066531271697331819685098597099768446436952091313329986204877543709543687436059287262752805057957900195104773948539957038955987812535741403675730113351281365798320573742029366430548780298299849415490049904909492856773828483181200032363796565727245093930128065096336689702020364912885522192570974161474606027167701837217126047300673855799976252674553304254319685544974538131104366478663054347997435804576512096773877674307130520793573552804878590179279922151782007407045730248085231785856594352931489800953384810684615209305698047007135459255673275541384179879413070111228487141769558259659553022185347622392188544322941967042821118315863070564111572733961293625063488528274352436199308530777237780227156315208702783500326541047528269799564441134160184708780117170575276069642544352090989475065538964446936768160941932068359876851881437777797339979009200185721738947585770666290946982683341148954035173846371245616224963462881001973001191393647683484509991452922448022307312927080995041412194328728503139168426564433703666163230615879787254880118731516277756213604263229286903969612788734527773794052692937408198015907644386132287622887440374207891837964485296165851198334769251050698030275167565409604651535215317283618161489051010521693516805219468435114689915669115794538725934710808087610914749848094418930826830746397984559599881952308797404992205105751751104230066319976978319358616215882760682421041880099993497012310361678855431195324957549031249011327908229844914367996586740429423255990680128828708443249159282728671981280774001581716783274653040952932423829758864428032640314818592458861276600845794737124334004560159526726189094927180873438970335944052393189195440290481025986594542760916955597741506387011108339069660344365649835559940051169607061830895765641232307131058589687760045390206203992527143481668182316559917234327956686846324926873791502654382221603559156756389946274112113654272961686034853377664039838172004195567917359689250108850283671880285926985939745839160757538779810173955631827060694835994733701219294038018372127173142921697655596213805782767231559088210754913669528830919093471661192999717899668389737102743312648899050371046520323225108265863475954848988391372735764795420597123555691418578448466419818154276420395877046253699157455172161053094682924078986464308079013091575590019182641277258857768614116337335131948066142695296414280838547064534935961329092822274600470402046890005397511044399229649665375058267029981777760458776740526896247316029204960277808215643634366146042160556088199798864444449321910238818464100832813721850673368855813575234697447627810601408519330552049097777235082779398849075271469063815826786600338128500121734027537798474913985831520344576437463327875278257784801637630430612968669009470110677909032365913670987914137417822263549575490423940860328660862200740166461508365888590700668198769764784759453969839655806989910237093821513270582195724913029678253623419582180657228125082076648969400198129786851616014616033309501441483553120258064287106779253409454586944771285953308493504478694967983441657944020830625583946066962399510260374106918149563171971994665590280135078314235210529873157499255512946648394749417556436347468622840119826263625455769732198496971279626765121861550310555549353757672543500570754888436495995279865841619804602340734927092495652354540998625995178107955972981988461524020019821704640776715866038023554583388594195831582693458288382079909430409915984610413861729552810411814622331485220711569165048476147012417650089676621975267840657129452935968525407833754173645340115782693038842270330936146960014997428184743434034698989963347239459383598263953200218926714165887614948568336954620097511979306266080180270643608396056861503002639411760095049277250041918719949271312794854794700445906696703032602566408091471926691357585117576042277448217032406503668806262448027856099519046354749533919893297339985492294912541814145752962178712192891108829952766030207731026335894699093311396558094048011468895109128184811882205399145059060960060765511106669563854998702373352948445638460544132505082484523048739772314876387931117664713387452613388395643334497358811146322018306396245478744366168861369375999161727341340754604305334070018739796504712207061110187525192502869804217267846404891757380780252830084776955393253319262464067799540655402802275545936158790966038578628104581160466726723706242867196233740624860929180810901286129307294151327401982396687677169720428102374983152455564815522330273144621112754650893997627148319452820210190292819908135595684094792782029098742783651753017648812650991025106607195683818840888055436972860823475392556081184536772971898608622552119172838965187881160733372056522190615491598857208261747120704358384079627382847945834560225344412354005197113332150063232662499937611883874441557900317432614280522739110269042526231886091366099241104296133410907129558715917317737060690975731864620966868959676741464238522328625044508957108198892580280589219259384929676392591271891557121805356457102162296269931865684711203836890781840693341819633045160377796744766588427511421505764016711716656819777869654254146925611423234968091889872017563905015229424220811549072584275818910236273535357481864474159768721230088053380464382323921983088142496239393703394047445007595734751621544379711317315083780118519808816171504309843750524169868558058097066192668760329186271860993502482642298398389243902438946278041293226732354585304641497906866471783311659309309535149149543631158134464154587200407406986747534810056712671854493257911705139688916191555185997509528345244569119653308367313785202499868808936723159955574184349872776671222244317422008191291025275873919540892018808125771064363013711345442022670648824036282944122670888299883766569011908735866109374126419272718804016204067495623244102087792935771353191726899223133597501195269516312433712550214547670200740654944864434565805331484046943888055856039524068222570175545026118604276179894459239491141736225934157594673651163014516500982931769740448507620536296332721675688680032305930971851193065953748060924771225245012076593416530946267464496814449712328701834691615754394868337076418904902960175582537510277294208127839536319099079158211766838901441700863256964914814765638844136401467482055415589187890667093585284000356892295316449238755692647787128867648697621455461409565036606239432204167960215429460288860450770631216657370975198959956730588040439640490419656311132701951342466895071567113875626175658722343564093796148336716873582691029237769515260623167686721695479992885071709369753658083538656635045560804093773802736615195625493995394894532118390578558191533066025067930538781188608743341203588278889892470615077706383966932609401990355263614736297993526669605649969395429154790224152486939423627896157693476626093818989645396901840886365000840141436940994919102561699516257949766378477231644479110639090840836908088507397490590179499474682968667984811113749460760057000349233585948931804676119573548772626061994970768065232953214520919840022433183160952959802186715362853154704478838215608937556399060360512068240789540791581290816544181255961923638952469429488786430777657364292164296715408394014156063874594873019279093887498853448878473751320820716588233979437722070465181101501933228948055853783869693614006273071574590108828779543388518255694020678991394019221703078216562132254736882382625356508570036659559823938447616802564385256593070846447828425343850293729709092994833639807781056156829978417570434212290780145380221848922517808648197313520929054854404244161252727911348827050323587480303682921655950079640610177782603886731056854334105999128045928726699666898176040141126020205318343732954651805562644825432168703508545875761974558554776411039547347419148170972635613958787692000173190665233042113811439324086171499542606301912275903649236237152102036638870538731340062885814651868837548480631084526488835665686092872821774724274717748655849744784021971493498753853527773490318155195167888012689887643921971134063487549740966741404604124838791608150738231670293463642507444273614879902958911483234049069808047253824778003768503525829888473666038221338771519762408378310050156237750345342649008001144457952455711841383503507641769849734240251817333401289813174619244624923706132585636752970633320901115368441815909336505854699600056245915955536337250410597562205905364423336826299684019005706145318436259648530673686530421882472034969540944891493695292071968452857074260838052983827241806371468381721810341507360553753222908876420278671766552918979353888313405463098786297618098779004970189358749496781000333096715265224930690540630438144184143173642519970162125750875336561454075649633870980431833058686001131826333348040366490380260538553070549802527440124729916387746904725062390642773596374833464810452164260735946832244545031587393836991231277872669426551602398283702461026104671834980614099851752755809873117327473687497273360639310579267532091552868529126243789688852398222935184231672760097230139560031640300988380474736609195378987764735159177221838489048982396653664300335560452727598455920561397707751225023593651933843995721142421138820773913173659574602114161605527574756450451946112374922499271680203618940536139505666144575141608985242303881598027482155041371620880464512806245383834074734052195017125899664563113774355950896292144295624835842995324526390851912437901474935347066181774096445951983733855552872226393657076072989634977969991928565638007735592371155671584229291759505572164709126217123706933946073456434066116075810635437706077949430090513267725258455555793379946493217499543668986250345722602660737650471774160453292199301441587447674724593037326971809677306302984928181614043434497057658496229895767422157586193522808106890666136333608223818530974387184037926076020132929711922242118533295018613369817297294787281263193720592855887869154948979759301644425012838089751004583094420318179719930006311725162899654635515899244311569312414967064427365420121567318367944174426557773672748688717174143292317802755149395776284110175635843170673848024323170639778641276533716217738620517028171032297923609720895323192479818584379009935136427997328710150932752853439069213828236539335049941562867540400726801706374152924868268478466370621367651901409101159134500097502220777132029237574545176568304027571823497785115330746033157690512088596375672594569634929423400316275367439294039335820473172424809314757921013886538980343726953264640956832568951643081829742911919131382673574118374732741256937442989598245498251481501683242848128452942476236433268521911174341035674616751954610720427531211381905815685652505602375349995617401614132847239589847935216030889626247697995531857566510147414784924837441947687942105935252578795450666288609162337003817651370100353282185684575002988005693812517709043657555468528315671605213590429567490975336653753057587060792764229815046864514919553052707318249829732106949896302966272707166006327186410729133679244904458991189664491325156259725121881273507779218950302879830711165196701071458943617485809475415048350094180410512343143545862367888443996134881832415798046072960524810840897722202560427187631526117072478796140341469175958973790570261166260096421788897334864766723139370011372370536376019000968950160036179039298807230950239567790635942357702760231879851073358928389016167391625808118461215162915606031066568627086578765334476065797742444195322298758047786898068454788965726878746357516488410920717351901900316648065156534613497469196825938973473426797315247961822904577958356966337491795776779551201034552925530705524098694909378308706983934102972446971595585637166291500657826692947756173952243086214135350935732295469314523895799801538254259960000192717169578310945934003973808038265364232486495072184143379713368945406901944704918824192842173385238296536480174145744470701669299898489467938273174859660936382619622826051590101825043059996429626295881371956372046125590862227344995783446830982330261390324278531335751793992129198279476954238940439695153165527628450132241585067299872454202471750340918806001842653457203097989276905357138393660610347551534379425270376828295388489394284032009633969537721836706911936649624149694439694663369575207095094296792579686055128264220921647121198980072286227645184634358289956444261120203182602600961700015411029846507944196232622202671509715689588785253035514048080057488752386263297748901146851448979886110820885243244016969894025277043523967164628877404481830805390374995678058389143590788866438788632328225033335373887913297907533349488365411292435831371918272789294087687277711919532218249237043387021499437550849615275079406315790767989846908055103417808251096107076918144244999103543657562837787386485781487137399112102579674302614059705437592416803716481685287189782582681823988890470802823474773960480154080519740517447227523371913108398657116089775270736107563722308780247985177555469489827312272252625554315224966457856236445482811405191680633621445433675143273409755852452749478600735580718032824460505606748719621092870059948381787460523136519725656240475792091335845789572795466659963897325665012669494800939653248196644542522741123657113707343490780264610439682865892963521290264314889014555851771716443645240778835704988912099279713218874835878823919143946537520010444448972826847026085924450371233646999531918989007066139017030184221094022405810698409565010098807751992314761638252142889250136200534111932842330224258634727136203859030450502838613648618609920935488464572385765932353016810188727879439329494321778472318770587286233737117460927964852245212413342672598292184696647166048666712076428828506845316836828965602940723964799393925103190910417715851543187025014052810824702051683907313040586227012810974424885905295268905552446416817428640711867148421574637384024543242022069660083517899765514398515957384362176159448069266162822198222675161849993675272428234517096855044848921630120061464193392489935811625023339555889679244559279122120686709048021743345225119667059522896198146617191536394727504158390774810167636024364663822529838166305023694048982388896298456095493373175348856362922215993439603203657056981332324954888211571060848839004496744220451180370808404458787336982761188777504863276022881608901007500926646702398984914404750576111955666642871629758470754472985873244162137782354116540215056878958451268059308300537524304403672380406481005154811650021430771762675291988011229150400328161286203464273013401420638962039928898078511961015318575549368224916932360906202752626760456102518872049818769881144374872192413821699694327263852113601876748939300823724016588161122630521519513147630979819691046441815959016453121848825325722510295290755169929826876770985623577616142831109949425374930187883837664519834941000146361333370696464284590308033765990139006838464386135386629737407157613513172695597845490476430243816348317449254211044698663850677716090824711573097761645200213074790263938898025033319652826552718311024303972968770086396434222418456245848301455637716070085245542398110952941777469467287803779588567873070922177280570750719343722290373684191707735807990623763412992308876289984398517754988790232047975139474145042121625156867232473523397824715942345037280605493880903109976861449065670127460745293696671246856337412036979086905416551524859321597756587377992695351012573894861896280615124101577336887236928061075397914242496709417637151591636931842437067430283093503501759652976463326241907173218435264381063448106755503250368497622298215583633384412858994636530693688695025192622931677575323913845615161013619447583979286467876542576368442066728777446163228612217650198158130598575425138034821136506549747841989627137498588211564050657735451888059332098439925572622941878988084743937480880337658618853742672877718395365837660350344040694685043064054508358852246180268368216526045617126522060149599972816521071560724600226231989391573289265952011082629528383745152741315973021985400506975552606600491542146321013150003676934187464407964451659102282391768751032320249472792381466130816693092160230988353677446207403379262413711253946891062311522724905892540584524368434327301313430706950981773497132317739929203401758561543458902838502826468838493920566064658584496854112484096195874095375462750990901530172942491924168122109170497870175531077711363714817810893914536293963820256900842530394173458570793862748175070685001741529334960837127799304567028253622868600616568744034495343106060495252740752311809099968470285659853620793019932860785966411193355762366977371021773148904732481584335365488425769234562027887392706932868529032319564705492602054570384629970970798115246401307302054959874311706299021535749863777095445485541302301162682529343582357869713894430776706029879901463752149731534960665792141660092350061196691588380877595164254635738322618278542586585535426033110334838682421886169283208248693071597957864242170583069858242747625034380036961230512994168979757761242485735181953971239099994688603789209270118477729535205751273658167794697684194857104477647686233224163958188937081538946536488793632947235881953130943651148451825039876072877724839263092413250657650852434161650919356803802623985953921059241763205294472518945261326491764409682885912704066637199289919443700018216844450960990245170439956662533670393587924579335283193811502994449952390001912054692173155341613945260348150394993374040830326368270447407469143526028128488975945500285346202559179534250158008741509607844466284488718112143186051553074910380485477605403186167993136627040542136600894928780322355713875839783131588197779136382035402335171808318091968355214730643366444438402882590421826885848238357906854831969020722482803185095561855650269706799377328134778055988373125520772382506529793441555840581580346363100225418602915967890156345314317900295869792107115507509430979466786543717323483999009597957786663968448220277542588552170805324991009490162063705510679510330285307184136858598865359982687721931166919064231924862960293613930398539051370469401896191975536041398635309352825910844182053364715085420142675884832113948618307866740886576301936058824243325136816820732868718609331827189460600423782967957989019835383073477380798723423691430530101058996962537145148073441695544187467992753086642351369913923795381174157935673886614830260350980575705706055607978289399395345573995237788999946635494645624516096191373090709578670354188763952030289287341508527467252351511835034645455090638118755643528953640354780730793379749628059072392321234632091092256026893977524976982405839056750234106997498874008365217790826536011052204367906425051926440235520397821196658305028989178359788058316231308516661667193025981689102295327370106850086247683146903832212621207555179449830501107193696549868395706211481352522971693551039353317074870527341784410493231311738228193692132127971677580607077153030766269925938408886739187743476651854386544557610513651357125140702888649585474357240834673288127737155753731327544629867493316239707757173684005522603637269170083441475013924506668326015494707077043091556127593046830155385286593822744058937112828074643674360166796520083560090266972167370856747181867065706532331055126130464008803364387818671336376235314230362225953911884629314672072787776544527601030174605739128206325318372225435499875191638194052382619498424191271000012329039950817163554295261891307166043488223503672755640804814024077013444325761408737229128743826228923324852295217510839695829634930488084328684386439537912302438137413431293577653811792295986730438110838912099104707074314087483236712892982442213977333498174077941637503297220960608910524398030848152046561402345278269710532895522172282719251054085762468108330499833809595418250260843240921145115605011248305991387741181745739608033024666228384625402975662378829519683964231367826597061513110114374917500744768203507723881982193346073662620922803991704706115359197963649820545882268091521436861380983096990630865881006518789500527571948927033095130924736179557014315573169185942810388159850145639967236213513644064728050931587998656768107528553517713401697295901713349369832430089697856722188500289554734652958654971281857736440694564666040439284313574330997334075945139061834483175460802700887285337777143625856211684872314053135214461889604985794480946331091305971658183294306699076044018404721640528601411573494100585226299078109489813340177066915717495818734159888932702383729784574271304476778917866974150070727869633546308249712327547441895607823648502920116873927353727591721641186069742889544728157258272547562561915372551417627205197323619465975918954237096491728179021292582681805723481338036292814367711876254145916725131695436214713265798462057138574228935365151385609310441263012377734966189168291600674420980138300929689992153995139108259113591626493377355527191116156998268825589980296302615255964280156374505324947730238120338692905568718307568044994395894144277155930772359144782731999301492551518595871542973784943377600380519904656663917242388868852480714945009458170555031818772220078687209818018304226538661713170548142199929387501562874589479666910859205184302977476189353190231852090594876509030239231473234446598341698300224251578812715806011489334586620630193187872844679751883903752555066443481560607132272933133122259157975199558479190131642845717893813240649503820262332588613555711149886760380336836188560828597108968662466560294447986621578307525239709068893174173874141660793598933402318270363952555024083662781355251942600187375552945934651631423277641405784559734251703975063956628401062218891009147252591355798703500193371616416978932167835184800891275415756234408766855276059808418211246718132725473032538961333707234637737740271402609951266538787720750886811039388048688112658169069544089945337841803827533577429773264342707003049212146057399787896022282145485803780993269004873384589474487438754479791535659642954780554590449014883013248661362018618505575239569788174039051909248018387559325835105237151109826161267441270922080506227370944517210914131688332927061894639652793522815817996121629996215131575542183022770341531014262476904123254411466593544851067147298930929686454173277527718412930283584661785175022081485643273779954401553363186590303033978112741386256505108061926882366507477198102799399125660450202676326817222173981265981717276861647295134068643804666763587247892057044405790795929523734531539580452302979802102488322054267342777245969260433189568268453835591644440679425163232470703880126075746234861559252633706900873831583014852464867588289577384741272376932449431339864665452219319137281200585670744964982132229361687233719280163281480988217471278976558543423543415629128581236244601458371191148731748752940729923463178009660799480889906380058342215869878150349984872801891680883683657321993847461045516465231019331501496333935782090472580083572235575260740723524479336454400032417533713794810529354269562750255441204416181302078303057126033368120375647867533193143448526549091850627640824178518727793652436778057120855186532162814069420543578147427507044863865991070301841947834148310678664647325317873424646167111613128408031433442064183113022214446120500202613993374892918262697223959274900923828183049619330591330448556349569968455207830596920430449449804531002971176170372874964443522545594643458542845159298942440758093236706520019317399935443314142888416916087885219674875530994135160948791686864794380051075115116393354598727338806713494227926686758000768591825157727568388700268485860540768953243034083804672951338668420657485617500972221504935438185464417559509111268270174659551577656023063702302803795536315836143255071560082637310206517289215052428910835064096072495646160143576710460498213974805201664731706847230812949817430170142598808052508111016544621741266830990224806838470746788607899629468232205786487858631315899807269950108131665590545904360775051355024279465337312690414060713656474523794160992614814831234099210306069582126965816653780278316092324032302220194163593496603976818426504980083788428669077686229836536978627328569610628844546650758240207243832772286176957598340952734131394101623538234577109567741702397400676156256002232439509300714337182760353694395151921598612838042263350980562551235561098643374730235553029111997330297610038193490522350800868814238195426928308288663201579632888579442816149922292785335249253813335169298353732238896548052030280782650776743685525305650649626710010832875484036991293439336274657351265924852299708927339610794280376591174318398948171986145651660514747190231400514713992812637117688649147866828853396686840053931813597397400474432342062274419372883789409769511629037076192014234975979577240947355143028750615978360080292643613277315756513944679535006739026247986953339071453602713965771276010633564907651598442705304326110111626742637754834329494229511237544391534537462174147964437260904200114910468245448314357973459896765251355706393115631766765358543088973894293901396845487875805173243610552554461972450622243928081744249437001932076966113539364607475096144457681205793003783931109071062170236978642713337644706884331765584455602161289608161845367469734769099369932631480951934380235667769361526764650592006129401195505452203004032269638637486764052571216056154620036220157445917741706316404859342346294727147712183365380183216122027012681095970688083165034536378686166799966899828709449188501193696046321099763925597437471488752752832926638539993715639371424313123533072767953908223347420325227100605039413200856300275779931351425569522588670187685334582153034223926061118534429886216042360672785338359220819279544539598201821445709243137427515771390534589234473267204993872528504874841417175725964173595495117114166955445899295225613547739980622618090984778582236836808809776137913822427615029344288134707107647139086830985466059130101074688770212215416820201966421507383834392451911082726025420578186033069888346140533218100145154133282227980785135135798821848672376619653112799420631819468530932850531174391529183087983113026614447263989733762281307332611012028426006664401141118865441508282613983891231152632907713573575696561798021193840808555889738124299085326885275835202403267416860770715455083850109368850763776996980093497362665263550201910189626580459414361920478143023089180518568308179489919324566408878145614010997034373898232173717578885391470309014851989043362839594584217953226883751742470443304435481684958481357358514639274974165911795404031694177032414825760378368510934766969877265426687822378301396541144117292863107557581414061488253979158727644721341029908015472356230306201863535482692517560878679303192429339875782445850643269360510234728594381689400689908528674450240470160934181742810830990618311952157395319848488316467135884334733073287068188482853619337566635763906009120475933313826979835432762796189499765925218170673848595725401975905741564602427754024868415195582557921876789927489460094686979536895249386741587848279644729964068095583837073778804345712387519982068115516773992130281581623245915374580899538497991902823898721639431182196075494271196572291517632007246531979618491327712189200557619680450508878725210163775950244304280978582138066721968442513692212761441474677624892562307584293753607085296088560530139246979921372816696160174318102799550978120550392534111350391299256666352178017723351990578320638971288694598316175157849753633294817674439969261239877599813966319006409846835135009592698992191894844420322135791756043957426333177570006192512043332928698551168946032220963410924863294880427648079698675780242040843667442678213102469730550402608895665248160775548316609327603889592937956121937489684032790077614259879338209664652856085562933752101808714405236403223487719627635695514454774576447502451477501607923059436111427805442236005179715128832516659163467637958617109998312236292899643418331066176172158408877663450056164805993238990692307878863751694808799197693243105728347883925443821532620881735605780984297347213086346073667010640536542264962226111228432054216000768856848915646943139887857942645653678846691667467994670465264525014834977459786043582858803285890644040183892747888964807980589036431800629068857538221376936109457570508593774032660240172072048880947183782220351079205343645118483029900690618092744717130004478873533768238021942845062713397131941197828512480278640759022459356293169794298491908533420055807732432221426831947993004338500591045291552709270300673810828837050223758791735221328325955477732695017782630655894037749605984963327344565405474149116055660860030176134094825133572490777729602432110398710237362709703477471085242799699203576818740668871957190279623699430176148968018683088212586596882521697365477881074543046417210098784878426391616582006387819867062105736275508728345829728398897240220716707007575191392389151485937184988403849924315233350389256848800450406158654914306565665646120080394852976104710065774595087829658212738504331841427619072440707369874635668022384111146416743759501021935329070607202917252025009782574659478556133928721290441404722947526218549988739182045269457918087951360543429493003365435801646420671750993916007081088052071147983997489467058411771466488603844394151501920842399245885896809697756374132008750870095060672817774629992435386044858990105680505471667701608942159913556335923838837694745265733540430717706977413970532473369783145209852065571455648465303505746301566538228894117601586246925612867003050621560790316556511271215807821424753025354307958247788251803651895709771057761716739116115420705002412741821416097262657871677307637292860072041912568333686605726090647146422364532402196808948545384184948044435285588763741819358320189961008170297864669572645646692499385485114582272947420476739116082773767307166594837926655049548458561584348975079724224566088439281727976504222273421903368278948915358856844406369653190201242316317824109008669007696592078035669718892334362138063214749543809597312098740392244254808031045185159102306681296645531571801078517515127624032331542721668629445157622180397809728249192263590738810826889369780478806948387835022572428918604361177236518518743269687093831575511525341589194904520030719206461600346980399164362738563816357218918507401206559841083787072965097641962382749050346807205528834517491677768389033959357149451055938851959928032868500398668356093655687052337330107782639028006106406608659667429620690347665575199706383878795577939793066910754901162917476054100224532167929706309782678959483887010656215133012249969886178119513646430833591867371212479357422598621689801226827359696133252395896316658698754923546545436487708387787485283411894157870036188156213682169576270896633655333573398114999836028535686375042891273532056963990639453561085791016787007357730301531155865361986463546405520088625718384729418359611159361946506129294780034614732751003791016029983416393451073457568249739257288065429277376967183636523236131040975751900081272997177111340746775281121855982418438068911886551640286251048795025821714095048926754329794539086884499131663148549007629371023052764764161501761800919448605299873209679948913681388714128519037205672307791682776080280060846210270885090292753903598082430275495797394998836148929531118031716179231782433167062399781563984408971958324616550057962845536075719472912623098833815030549027049868768144492733768964277657667591051440355594173740175160077157991386900422517593846846508862904014121168820092098817686269629105709791786988861186011284734942972451836127231233167167366461582152717072215073928479824494997963958026999881082616244285312317199291238369623320819566730169590341035533593168963878443930254524739896281044223877123499470984593561948154026994491107476028357685855340363988592799451229700744619030509617762361320880502785065776895441886647924988354537605149934235020491006461477896791555581559295682743890970117377449481756294210151943513478766273193392229257291138697030303646337115612024620610597170347337910922201593493348294154498284851736830552948912012066044322001039889053599736440615861414351099506228676004482673451902497122097077057904974879363444109534794008547966447425898446385005253256575423047242405148409222685732691886855087386417537983483297064057697892393419325814285897946014905596298984848832714901995085056248278544427402111373893443595382296066608191342461877003322632313110636429464322792521399889893695421788595113388256045283060279978140076406564759547245595095430047742438548629468861710890949733076722032790855419634079180479983695625897273638676431897068288914419302466736266085887111439077365850073358618947862617576805997632162030400639707481192490486980403603355796726433305603546402302576076392403153951142621367558139079687715997791298255603103969134021700132919051999984194809704910924470691781228934554744917369357132975364268659254702511924395674586161441859920682930893370205259111719951276211825238376353929378171440942042599313585249482554980152084785431362458342357933328724679375254246711611866354879860923495648735248017074719039772844083972883583782439334871333434495393640063158668173689615110889998829376003400698863671781517330850865135513938803417784266685112317168906386035079445262717098647442967282814815433551068464317869235542452920171089230500730558175345497967795048685668520567155272845245470143249735516574240168842411967812598933482285411185968816448891491301691301113891452443361768507835869005923248905063180608753885790840275707074699612804633210480368950833973003204706304094788763393921470352252696516245333556257559223481239642964275488567738370568855128072125187216785699173946980922570341829519497599296984839338706858340335869590571513315221261333440657956229246096018889387414663218782450216669145286830901380715192908818843850999505031421604738515259133008688802054457552768900643023025571296933440935505916479794744711238799879197100193518837246280870496193233944034391611086006664802789714191907819451444500894578147257538444658898406748794584326624591364367454548590289955721488076084811828537325930633399332504339138653279298017214231162413874444468890504847665617110809839724716612420852505650787395428942798574307503980011686130973467843051763587654947452752828388422825079444302916990201250186154545185437498026500044415373548340247555969454872791099342382038695157591016848869452935819441945981870212317994501208846774256475577617921562928651689722859293444594927438713206156181215411763507675021333458604571141188359576722975180291347217218159485087021194193977473322394811209702795700542163683172343222881585963139083681822337035804766070643195405443524488563220979194399722128091828192454495876835419681298663989559940680219545170234009347136117702877074173607901763739856995173758909239257551451491576013685219389368653769551765290779884582205448554873898739950223016726715724513092087586227699887664019201449883292423492690276568552881009435748195503126783068556524160859407815221434998512369831085404749339905875795860009190109673601423705313646993643085402316514749722386973360796346185952380054246019793040619491794471842239434734743652417062604741093891884352906415173285631247681143414055825169172642799482447784397867610815239981792189771277326213349799611014688820534967784900981856960367447752011737830300761567027231983773884693340964773292746666220837447728854759168039121624276225032577071622214661032814966275667937864169613394250646218448597499620878031938191667346403772192776073592220782934534820847086782214634025430371836210192368016769485827563613706170271123453824050667234546018860398352921357492393047821540932402376095549388748300001783872803905779712806706980257417493512357511047479439430472361729019764293799253360543991064354323392706608050455335883654009246926484575423786537529550704435176241539736898074159751956272492309056052724412886590529709291766464982040256208299943877577947910991396552181596226405563962242406116429419693029912336666953349017877294577995834330486731958459219654864895669968790662259325619146753015326161762243126697916549811516327906881287279068480093504398747236930558247945329895101929334730068370042551372862607672834794034934976587171293695708616979357395056721995963076796280598022596754910743777382516143427706727424547430599847144107858839231038643399842348341850343057302441820761228882868505538493778654901751574011632006769379011494776070470161650189165483080280340262254019417803584108443299144318147501865070055720215429227022917486765030050824483610682723596500194841455156125722846577131820705132770707835720311722038320714341154432454704984800288241525199314915933420066514872344763780099312867391677188740592921912453474947845449570359847327538661850289431003870387723809668321086060270321424965871954626784434649859322112021664508184054197427737090871813878477108605069180148491090454806935626099609748257112366403611020244958567078909364834027084204565984789797091446948885214392948313082710819408078132370949845645071660310714683214006807270998752767941274490072162418522615113983909812667949952820320005478101967356693158599936245764167214542199676693824377616884538721268873230594701118529937561097873092390910624852089353285409661874080971337270441966681631315894035157273083122129835728747163984553437123215964778206472203018105890866454586792868849507397092328720785014424080128559500395946141890533223784246296234092833475421116182471032499708337025637896549965839131469305517171473324875518161628998419486948335048158005680181503863767093152998829851902267116623083642778074998166048120958439537643018899489603559344611620913500730400980886351223429743538409188294039833784477876438971919171010624630387831890448477987582303739575011637669161054145274550941920031178717265394051735796002742512945457049982611878236927057367770258143141302388492199492340255001508952361883637205980718052060010392095556692287049162878647803929073519911365222438191136332568892152693720091016258490627953439794072434639459299782432950110178976424564446285973466740059430887666165537751878494452050107587746478593085651255853138836021865419680524633532522763391343593962148144801645987028747055220061013751548765789943602407350418542494280143926219820225257267806808827167640706153280964019379560614897522801754693258610371547709746421739633040334087482400430679469666873596907512401145984555335114720162385317301868785223333859843815518336687115564261643186806346069357252276365470567296803227571324133692305958479223202307431290228531265126087957348474702059266203962933348633684868779722026250724250002335099782071026970549543480986471925029906987180167634009288581005045369569117701489107494841519610155859876748803559785578295941175344306365329362503061294625439000769648046957667874314199545161398835762327078628610781754813047808085050904587812135868708937697990911611224460782154681119878839633356015958152628098885001543843050498549327009060274130816837996053390833855913874859713157535926693039002691458915849577853113764195194116154838111899706454183539288495635183211182230306405843707712855894801231313685453600462501655234339189654124484471620903705641123166852477936664457796250004527832573367802389875930991836108824236857660773974667371195549134899577417617487507818730660926863289749298715560075422742622457101584649831856669678932100228169831486237261014903231005966805120669728407933514713494614680117547866915231268352737632326011376926911748041827766307433557942553984431360912925557956583807295920930163569198498501293024652814921114999290127176729506435682320650028073829856238432394659016247653610283974888815332932448120115886820717585931665255325434315870140556569434280466230132980992416508127895094036541565993128634417091206803107482259382503523414278462244186728627947512432022008197118209237098749200896066901691724683294355958089977028253297850900507749075917615810895145599857959855602406881947291380041934140481070642157501509399302652941218996963061380383694599900336333742360377337739796615288604569977649741010976098039958663508732035321575358652325812706074779297409063786775523731832181538904807070668043382033463466986943128865605199564021809896985681759267546794229781028864760543590409364462425709765753372671391504877340690354604428111812866518605378419646749820443507137624939424755545021197382046747276225764333691889700215501017933826239808558548834570504325203656447839268840910109189994062620406690493295184110834917632709842779542380777491150242846978598231642114793785414852394895706504886612956969881278693916605476887801244546670912469400277581083337614635230708035797390536129988361362003638858709489220833313529942643518572042696633757623233418127997777081662573042971260661569128653339493639652928153944940044078087890381955049937498433635321589759147586555152199289399760988979317527457303925960128946134672793806121477463670830653464616804015856958780528637014553609528648653401771664631782689892530474319746047752287895264935052657975340511251252065625459196749389578690120153076221400336921027448357844217405483275107459109136010788393265618952961854664529529847603119216009019695448677315445775122544664967804781139902614599093289700226071709221376047315846276573905943115094947313357733231561352006719054976567358208767366677958344959074094333073034965272768581972071286294944516493096439102985229640797488153498116878710770131423638253970672272785772104669819168968693352058627306889588885965449990612726452037832136549995781470578758636656756308211336151846502608299135282372938015838756757244563648947043173709093049039577372047249193931229438268333418012921170600843730763118013805464489323903128932172423872780537660281173542917265883799107052380280210598300920315876112277454291056286425430733571250925125764654858524466646690520666432767150417035733798467591680842125872153125559744209089976765453052034562212764225415941349615460924551873729673683204041275606802650973737160858117725750660532285199220599598834972760716585249690725683804230753206384213170614168924591422069646441596030478366457081402774447010245498894306369452271580843879234648599449542137311576913298779493800051833153074975124344738039736064654460423631557448278622160683274692945821912207019408449656217392727501860351729846070539530729680662686350833585938750537293751219781285406479790015825208711127137832873753482242521983934250548979804356397465545519019375809938375499659077352985247719707079813659866880799592036997383670301727948844176055227573068750408828280848913564713054464400696469804392590101950863559871139575738772288268862670606019466288401024573305657568710571007472448421446538641147359395657152827151640876001035622290652761149703969845906902140771572282394056146129687403568953288046836681162425897564394523078329358305370360488143394036330108008576919030450490876581456640647203598106104460155471955450610969975515143089814268122167388644683990126660009439044862915555660792912089688125833330804026425043463435390929768957887108781727515052289919194586666761246148554717513188927901043811219668334756045131010394256225954814026579490199004276686462169901317972070376972357323126994411442882069886948261122366894618697817322088992725018324634213329014114856514190682571860263267937396269802703796871273834755405945362621753083960148137701509393973580655940931446120712829954248114922017442760857778371602976678967590472309551280786712146893473730563581995621355228448770556027902823273049994113118386141782904312367119639968222499784104232687940041860465485154284241536908984775128736497825316185391550919126208466677759860102686779611065908219863086894064270724023272821766351111100000987760968015501021183534067148414441454004413179523440086884605442257718726467580070696119187327549163562682542654951508479236294728482570231986631263169063326334344654127922872060649683731681660143280546108211009112383429152552313160715254197392874794823644869196531189994280552033023254364170686874650020312277470466962935885268361298655078179302158273397731349992392260597426201239689617187264879070292503221708978106779524639632612752022593017772968317115425642322652122062452956138519882526294565453497607710625505872967390991521796471224374540292905602463225816037354284918873663598936342281517126193811279468334322479819484825339314128776191917020802451886847462064164096477814829247921096022526526708654099636827370357699368284565864789898151196783681878233815453221151825646573519120895049999466103086082693410619307873640458752976467593681813660747539233153102713636400170115779189429993632398537139333874450943665688000185590913322590935264065042462914538273134132589328886303052214183225827288382335980560595864845406692183335640133641324327225381440457195162492761316775396328883587883948604382954693228851625665086226615439017914438977502688536448412863065309215941005513776852727867306880138309597291124423132104734622741232496592102873261289470626978268796062099816436313787364333853385318299843252991025044893648334329752652247446740489214075616374704539877466787797964807187988380123420279277116430121688356288783306424620167176343510929980350302698039299202632562303069189000943675177356138903679186690150467723432255879196654602798510215728658623192219147725994122777156354873690274127960160573575452244733332254506002374991428639471353465794506177550514683695890346752479718837502254594006891483134294668156624020353478949186868591045650533165969067187077290323177311701606664188603575511726473615748965506032107144709267461191106385318653110103494807509134368980457881086554994381129282167983674265782534316776947953630172280880857651583105251456684447100902304168069488066644127572217064546678429799043446996947015613620832062782159401417071977196595268573376134455285511233953336500839597282402421289480245870608036149442290073526400370116913457934165210059823524818579666809732899817408415679593649439584330603281912229553926079250146411143822697084963104747183960284606400674737369093690276920336511287125243043724564499432015694605574533574171146471593411369394824004873344754270032202913436428536331859815466438676135146915058461642750562208197793416707113524528235383872589605495580328690587914036947902532570245038841376845760881955326728792874938040824923636634024267610233065495402401540604787950660332700012821855278624792545774297276318907727693292852442991625980255261325749736590187113976765550364864228932496053755001242097505994141610251053306998723260536413584813320633455055075674842701247790770937489354713939275101494285760982616946559540516703145230328234126613588590882326499408526239362729996083003423909849036132236135314275952369100999194869049616876178891368373642937150895182959585586340260086943977280385587548702452212753609592338132845134166405298563306478202397107078644933817410376823996134853178264537390483991538812558190173162925177825849174335553700237237685276634060934608712090973694997341160003863403119140157805820012920510796126315254203244526477682458874830571208633630391992194737681986713460011731666677027936645317629140734288037511809274120955942616696763025402260717484358781897765890589773910602792734492376184872927855083229536155633663841116420709981133341549178355977282723568768576834165474082786086655928998229546096048987787672203723739023024901562472306145227941856832893848991698298592261294326341476082057019935406905690805897348663670261770364604476997707826071758411310843172591460889189013678885861299405580330366259977067060155437081599047229816840586640642698299567731705958755741847417047822525900084983190165528067718951494853232440201695658465713753027341257094168516835434574402076163320781169534466455017529133655717956707949661428492962756725053818873460466733133384889291690016097883399033013708131092026779475017474534142131371889963728953989518779611024287402134051245679493680242755511580489994592828115613512978281751607450425876807488370700065645571543840108273057900926621507080764792835612533588282435805888399839982975081275983612533769620551463981897098443191687796503007203363274538782010076691368240298934342533191477177242593523838035837916489697855269968979951806000304381407347079709752975453548126039175341851408633212583662924780573843989509962296696118418939818473384436921669028537529442779965467600926186001439941266138191652464692263603053400208207502333546490852896286425483168895619960139728382303744919298779411111992345773524909941488885219122812048296276438066360580848385937352692139226827106333988595146814865933676723628762381234042383152707034208281718360031577780033175590376096882984144771963276111936202950518475841391891144423486367822158076061747585481138966456217702709245360904169868163332943597721294161999912200603562781279008802118942370310630806086614095650424672869502253627338582332979437237079417586033425767749696274982074014458850344101390625322904002008042855526466055376436059324323325420384190007863872418736114698269399748674519987901400062331585148706165390077401619027797660798682834902376047236005284938011031219418364489290516587381226463377604757041225473415069042146875067075123164082633036725291043350615843588166350232982815257820369370722361308178213809832789775580365875425366262111627358477199070254172616705709902660390704621254584846292582490856545018658388295005376009000858340956281255616260574828177052713750064467715198268010646018218312518808975884372013402321876338080419280014205097138842228356667273710860455396138851900852404026929679743529081960278976056097438991105025079602924768729763693451790288945701077875581870883340321301446035833612156374677641275082000763791598862633378853799078456311857015656304808508941057107230115952513680056414599226392833913805676995657495910333297986764298143759935358196131516303540941805467929910892406613549607598984606206425605508002970927099736812971865700073578128581409920773931971644353539369150501572423390314795196025897581018280446091044279520954980770114795804472186539191866389595460703370734827523287947504446249527407113246958122644751092360322595360265127125171343629853637822037333283327326400890998331508108705636006700150513693112103749568108660914476416576566916271763726092098180448576591455773843486247110931628844002573858949342223867609531568198272706006994426926715116432291935306199121468646197927045996863875893571783501170371358652495710102415461026444966258660881039058940362749677763377190071813583536188585847085597513480696951885884012910562727255378357165265634141879797091660449727249824489032726574833835322466124383807086609256139224225425533859857998968685765861699782090607869057517639257469117207613941899732582244618365029839789474516345403413991181366460655112921719895914659895384991161971896648138146765629053850098969500661188142032834557637484470776934961336119930374833943242372975464410034099058313254926089642159971193554613740135187463423483534753510976628131596694368258101849466806489799302417822091534233830673910363059036600517453741806741862894474934093389446872644753230223111403713100673437887106884175479086211916944419651166101777554333415818233653481891781610491412307053385059883850523666789417286407164751688389530417357669163827034718122882268300352455986686162286897126242424257063654144483599724618908705948308085143593270462233194258107196359727037289413778361058063399499139973377720612507810711193149668061273924968656406047159822239065467053672803779678461418086571276003797137974726607979012072313939554762162421307356440232126216264401710131475060816983965744018708541099162710221951036527845958373886775225366894626628497540291970941534000144693259989948796436385706421940434314157269221699262545553761469692651934885681653801761318570800610432183460958288975446071669195971872712971828631875755096321365848146782929155057066360955922019782136117882606019725990530875800963136574416070999699635199258899778426164177566694835697301341515139306975051871330711124891610965321411021650511735236880843466175631956424335392294354201682054253579261886059351385173217477712797788054805758090612832102619612271673133300545164293331738734214401013748467753057192971558227836535545219827458590752509073072444621527982595080982856119926180177719537133703573756711262826709116515533337383581209278118293622396174000484770895397812750078750949420325540864942989022383325122651660892509115069191450245154029007032813437209459460515434681681480486412296573342465270879504625787976628660511483782278134115182938502938919947177778367760817897557470092964515128368990277699763737558130338606737124716698732638637526517956492843681871338482706450455731526513986122971197654364316318066199826288828252895199992035398747365520224724602202689828092739203548559419935012429759018199371313050235259885121097590207022225415699893530648445721048129061365747806111241864355209353719666312296875706432069732776935104750642353896039859146972485209430412494786225953769475541379309856033703870846046998212477960329336163121874222951355384207557046120522083168445184805221226037075770055072162210240199934130327593629812470400193151347727042264845899328048661361299396269387098040502739344379955508550563114739319716299101453354922791614367982790305826526228321415356326087484846082810716953580546107775645049076131012033613858463105169826855976303773307729731300253762373217156187525426489333104649056086094140866368553155602836420070124301333717433317981114772890074981742223089136223735648334583172576541980050068444181755223185816275679954045143093994028660189764511901878627583468864905687257308983289429641442024985566829317976693974737206982382975768533340318827991759378766099929851574764373532452118998302267980258185565453094458626136406087637507191125722784359265351333583583250824113262463586944551688479015522783533483935461827348339420774219286932464601707487701278864867121502603761842377202451494748204147882319057389949498110292378803438623201345392734294779773748555968957307092064905810859332066804786704242282643991387122090120982510526904016844993786851603240177654044071891894886164327890501711789434889103175200831645156528226898134900676902456279711847476810355875732448814722388180703775242665046790294014659923977926320495549414825442834202765224626491009218795751569863254220026935505773494637958661291961674669352824366085836030156062533425275927490160217349492350497270110631211264542960722346331941399634868306153174462857486214278764263938941169272457489115212323373304121691658483971211408346404732890937739391915807473909584662134997069761153255766439783397385418387371211988091795236388829274899354130870312045932283225174294172017744684418907025595052802138951485139929413950004082501006813027804029607881800430440147441620771550103475686129328212616538307784216380869746928216135021803477177821729299135983386757059857464494804649801240783127938210431348569481420330028657845560449167566044776776557911124466780388773940401393258817058703056185834772716183547795727146451996894368763122018588252001878886145645184258100415741193297240086951937654583745878339515684662439382348971914638323424958434968198983051395325429966907229339102239490171617982114488912305353735670195187771954476948893626675862033586229594527739676282378631996288028315626168152359375286129337719928214293920133986342571336897710063035933633527993452164945146810052120972316151099824277386288233879106921781376331124589734971317501246247368977965423549412701363177965582015873739915522197289832645914141203791954414444842032868874720731022091675073817556791901672186189119518802669244123275076688757766008182792482992227297369114320897708732218509813113393454642061635223630997244569494726687560309796806416213248587152047485662795355557277797830082718351597622625263006913682623293368330594213482928903104542515040755507641384726595323937041484429340920624578831892020075008190404954507801530733711015783469404597380928788422365825148128034031400135887358727970327258046409047374685392301042252553718445648597344567112024914977983989688561547440980317373014405499026368619291292459306504618764906110560304768673228863332991974902539140191494309011450677255137564405312383002163151413445888159756410549159242089039382674863552923414661825014951422814720841508488684217709336390168609002738099289665790443565198954498637283069224406995289582310191462098207735459987685103104453582973625791302900382036134217319488254434703305854600586300768497263996996961917226126968894737563937972851142938054013975944030556619492544269168662327981781459306320796740666257229804862429993857597919622316531284535207658545434264815305015728100663760029471653564645629515412846124345495219283280299851701353741087682954918803120292491589180474836018739004859182642680274687412054419750899043934489528769037919090092103795065460169563615175231390992106208624090441204751384534169602439710257417841598979971255440858774020223844217181080935490221940751748298916515114244703194216717886036434579972596623261443367898014286136403850743950481714732438423420435969737649486212550450351037509064804905447503743973903618091057802502723603626109077145597181712241813122916313373951450616035495705391766524263183257360883124091101877580632952159467349659923310573092311170947198223266915356567325633802087004558838048738987427094829022791966344295464882736526222272116211659696584090086353552912946645998859288085607214072084413349347892265517495597189219634132205237834788495047895433889946337230677686999226654183517375168490827664761068699574478811451405300872961169597244690864266013419296389403052288851237698579889489101065988773321535491783755773696175018341022048772699948843831594800117232239221600893960678301798948503788615290924685927102547046655883461218450252284380810176685277985447260213031439278015786160704463219914439622705200029385100592803570375376366034682802386032875933847013584943927615099975199408843264847078755516494160513307915327235599340871022256115604024947188181064233973167850866775314230793994146749233726470014720460528052485269994676717984415942562851276445509299959266738546375562115421507416722081065690829445349046084814308749153123770261370346572242286070651864258513556123518226898969963199753883834689850470760736924444236252925037440345019982382824929304924767454993304550484180485829409867129761314746786369556299937322683803882577264467372070654955068472644044917630545392648242834729271453904502053371166798030440925860452939363950566919229452876891268215195544112447720715811503444478988737676029854326051479023872327985623978882218169286900089361683520410124094890300554885761888342375666272098375165008321254808243482430085891279285225470188321465850563267324012465670340670078036470291394887485547818132753920292993854979341726819255095210262279821751914348056039242968385117378070753037958952833434796188005802724772808598661011281142025221259914927254785735229397709220822639839346816250160589243921781477553745607523507917551464659459784435221793029268128137463506897343316403966455369043026835598078973523097427764349060434202604633799503972309723717176124874514767350104016547139517207876676204486973909912709942411592014858464210995915455925430377027076041970030789547383208885386077990046910977824806450196836560431900645821081490875837445148312408182067206676390229409782682834677498501230284994529649975888750149212524176527560928426274510255952575863432424873677809561514652406923857279738138896100270875865858431690681872541638981720743930513230599891189984677375404161407854813890555489394921320723178839564375374823197472072493481471659680403449047252286741308807539727920925691758729115724426693246967181550719827310704993034538535542839167684476291596001846195377600780076953608177371808171036275971518021555673422690303661136493096725748306347336117372890269717524900919028867725655774937267611368196326961942393484598335373654926101898017787384084688845887414724197799845108530679517522722771526021853270934731477550503548011393189596879719964281817449679246523872870244810233659116342385421493509457402796698173524742358940948446686241301147330994794137953675420117592656631949350685177198685013564108666774479332277420552193527728166003953259732459867752797524462265031760680265730912607812280072557277556886371913126705586397780063200736848910572787983190314024510472896686673773478628037802746192288941347252896459791395893275110609292943729861228453312613131710646471253519082620002159350187044167315802121593875123658221223709991541414504836557258133585259055632281746001261532248635711926413065522796761894664120952079802594682462497949434326605912280133544213088456362225104564145218448720059604484220718766887817818236422250789215229839960241042399741048465906896860827285340052065082489372297920640910581305303447628449947466346653269767119719909561608079733655652177832104342729217755046980162008727734656900298282303846407125360494202943613538242276564528670541256590807691170427704243250533152414037154436871086133335572664903451232895671025323523234875076008997347848372570542272857996635962173414563284398710527129656664914386284917456833721838722480612620204332108602055618303737228320335842850221490304846150305335315214264351799084373799366783425860274640106448042559550245498880002929251705108574079625956929485312005983988129469162568993709113819370892187542106202575864738110692004743086427196884391817010640875635046664246442842583537159791692282500852900049988598888663871103881343478746243637819566839787477832771873977659193869037467579833706892719645840096340435779509271877522477103844368460456529273074937702360423867432456739573928255938225241237786247316854969392220594203994766033041904235267241629688334659187660313586162721504629142489797094426016082492758774076347332579191327282383406661547228843553834615373555030858640467886003107629003796041970282726508838477496340079110939465964546167271352437470870826640522384458139321849327036089804204033504765098465459502661261449901497180280422679345663960065076323883611791033513168682671747728054388288847544582889199027688578952139256850293030289331796874702281443172267400259996785842790273431280420769625337015188630048481863457401167727041086580542517201279255789315307785300044185316209220082613764018596569772086142982974994462726359660790426671022472291175031097387371277126996798393494531252345702547782800586911519327055539510249620085704025524154603644639889145326158124352800053823515319257954656836091787439066045133310105194730109066876356084057038230116166520461817771985313346457910466872335824402907012402300822672940396492875716618577571196239147851181557343692499375176844451941111217090712942453397350435280658235439587288204941575697448481813375483835843839998395583437086666468523373948072603468086552888857025436310593358021263747098035991412594706777234979328865574502869878437899729741918236344258239715665423728938690528930019432089645655499270065852556850271602472376589788528869063354305541026044452498951407121489784606711128945509998947630902618390975526097242329475114136557021160337254276139802521901306550167898240133652516824157497414747337773431647630847714016378911360731516411119478431835066899375051164380785172554400426530263802222719745741492869076228062735840634913368192867201541153668034510118046107933915705076866168289341755430821081951401623072509879775784025633603345110752640580863443628522301854824900659327001588094682112443874140727880240837609024228823861019970129567549706158256026990377843010689342570357953728657659976485348400668907270894567183131036207259880886639682579171721318164245645765358303961236143339925845379329416036281510227917529842447992258048922618829881860779822161700621474534002234673371439006714369881067622502976394399818946905873062519034265240559475268672300875480827695741200571713846826506160774737185621972024711053013161902182130774707073237195290270899532026879012860074929979030225319738910076850897781102256596831784378158882370917453697820075460626214682994887461449009721861769377622081971771668519650894139620576679568798021966570789500420206404465032212817458634498442212524420021094732217687680528145021642928093359858138939821365011294612229183703079938487086441303453643643912646422353022652397439446537158271677906225084638641024490182465772248420750891630049006721268949418925758018153238747920394231869128625462865794889063446027002565403368718913346062630059476677727691010341022519719618270929385147388738585974626266695542070288508481763323317001968759290937287464076131484304906659112296824044105072303642197282829430519175163767113810430332299613397285432895698270863575996887857523665450520722599591318979439340460568282123923008136348529250694534517988066179665375453821797022462854936349288501402535593375956477834090012743286212793441030931223633110702163981328602977654048256202956020980580175832721929623570310066280330252749629123379443006671037420838999507316113598585988504938532314954787130057278378265732325712300349872920885519767577262532368609746050892339326180283863188514232109093703669772384960159487230164410128249903045462455720680189564231191188495160919778756300730163965700496821011160186866601485152326909686576757930378235279410756707156395207682444362803554548579919008727162146038273703830372509209308944985861711410808930412616254395157390017982027384452429033429933477758093108672609408301999052236842951254163932027646049003707506228340271387949521608618928391678067608261624117864359476367244565347356017144276331741596340850943712113686483133731435156766141421971742687513911822799319911438918521243499588479627348960546627584144248290725606511058681428174914451315370322044544095864366519119966354968171581751277089830692326825144075314622654494262345457437187480265826795521360604985502777987649171023940169313941557668169040979457883418154864423517934436225816241781335497636026562871465728540103686750488669574552874277686251142823803373760658948721583743909569421083095723805118716386272106016636733553025731848337472289558970420491646606420711332722186868805610216622622369006608487321940012851989621435194905117129202902024685885016519927596398544418469916443824556791872823734711646318496415515228494381810378039875876912933582667386478573400660433354268831955093379362290713777663444166877154127778815561574907368384859184706607711288975648245172574149330854250548851392489119589831283934320052747838953743028743796851503883302732646099611233617321357243067359649773919949489786746356161928533209154058797966703308401082332237398232900128143375928511329114024203094394129726396700993216506725928334765601936636942444306641006949327288176446616364372387459335793735767474738250188994431253917922671144985528152036620111213580215002181875001359009852906733595199304886824644493563154353826093695593399263351213886613635597355669562233015351123039728313591004018939450424878778022369549812698487005480314497425636564006225356001956582077681255210097688918469105967422866500819760202270357250255501274248925584011360466667878204984932221886433284656781819981443669229331121098210254211806621085310187742696387633924829402226213023439719693979872319543637297396125295604713797440709517846004867805162060053492442942071321333471520053845709471565264510664235646394952331914150729808724739911983349933955520106752765471214333705059853663427795421419151312541433524198042196147257001446337277742173305136294141694576096029671816581414638510872201968720628871934813691617150567138385685570169748526583335181918335847059805277159870986406778741803160857971101232633390975644857215605079732276744934582709105003622487247617419054138493187583069116305892415361906285696425548383720604072891667048753362781874763303600171575132804931166998870872809650771107717178216487161506576318141465293764258070248004607504153303638998747610463156342859193555775156143075971574259305366139935208573904555314063187123755660353917256950114716829712309302163088017601084582521121537896855287215992407107496946602234719382232140128756396884321279728543617543515357927189431189274261959081256606759875117904148865260282521284185789548011745618544903296287507122936039595849820268359429198649715692182919770855295954374122450318562491151971981613207863140161122171366324160908260224552299220718770291132234023209624940864040262947720136472445541903142517653517182448148189105007639310216563172797570878982669770110628882226484708308813956938237808403094747483703510043819144441379251262392196560029918777250979090536483946550822083986068150041934094148277673318763862688536462438700919299260038007836427634526317954116351960964980510868349198963498235235109810951429746936183032121320547645855405167322852609007701435939552414344450151865997544862798729012402140836225302928676647188192692931273249045096213541246765029707519891520902841558785200978500530049822629639923287156001056093938174483933314372716902459926417306813522064933969758038431972384748682878858221081786499999948437689294924235081528683474809045116184829244649283409616130142332617254685365567619902225308317467577015785557642277621311005216982160409330003156337202852174379973740331296066738024244438336786273756016026999709629954699531407016354539420195914781109945150799066398765727352934520603821302127434077098272129749309436000209077258845009060591010107711508811274147107333705297240652283190224711719651106354202748354258891669659967435327612783980661350330798697489192339452392564217124180165323482965144836054132863814638796856047190536361117339456513138909467341652669329235422184099445745551163503576617939697756658427037054007586405679264682073325801341360953004672202001109215130959617574717652151674008550584951202130059347036987041435974134532000726035814067965160836727805975473091631749039704138817736555722289761078711856651065122170795692292265047323126467156843102188058836799157299319228869439704567174699521689524998160477369449023239643734873904188544663971577939705985697692358484783454403689136305392856409383560735715336795767634744110531381037952371697989764485724999476684053586284476567761541246540135924547261497116686943336801200990051297883666747176861170262669619411158899078905846848106891230032142882683435355949841945527650057522760230202160535617643602963833363649832273167709286870424232734762446700497715299112348029936117387842751886897035435786670487326159115019207833359836710722234399853436072934957702597327099484352851074544653061711342236859278980121946867966325838886829345975073629116970913136933896960669114332155584697446759860055631904808475756257151495758851383834060063634602092561849864585378226989118778280648905927850398787327735104509640763892443495126438492997158257279817902655646507912816266761945618258376727007032000719152402794984106049187164801363647912932973104395832586845851217483043913034295245897283462274009144083481682633891906962931843452438851661602625826045590170507207708328284320699783633591902261578886895907016954065965286821042162261585196061162650417933745298642622289539242310655068047540541718186289865560812806153524373395860252701495621741791282890093658297811792419037946318072962736469342976497865331816135632603399540365168582056168171383910015889289785209841113019306211933484808549613151349289167152076645382767589169606852449903263972405362320799819810132400047219314861940947735043096839142912465602512607323253245942978202277056071958540690936779668055395372063742031862157400626949701048088773661677736829934903225961984103611599825453716912863264908746825961909315917861374307374408437287835734653431450188599168763962521243656288637124375891961866515568391755800710635961429762424352834376094206903587779095509922182848759100293555763772547892002844662248986691837761340280713574620735955400658878142698938138253536515663400453711588457378861783582737719024362583659797033378738614415213387129956312379657274953886891623395193673065192997518286784108516814056632111835116411350193358801633083995306793553642205127706737278969869245386222739582805772011273382374342070977113001388974904832634482175248362613164717741890872090621291636523381932021611687911045476484323264439558201930906082398130514081738065074768812700035320018178631572667593116989255002441205951211210760887201340782212894951830029529607634065923949917597277093892336956549010104440874952164419097361478633773578718349281209037417958092402767046750853967490292685271876117781320722132856120308287007311369798077017068135732896815271364617030438296803993855344828803392484668963149600576910719037620125622664895304358069655058220797363418312800835536082642408744132415387652336908383961168835234909571496252112274243927264514048975593612080907325869974279244319373362377505835214261000877299852200619469914098321789874938572586797175627304575208633890840542455454311069741450785951293102582051523466684472822409002537109145197173790707921981651124704856431192186931234300219895120220089531263817080905085993438604548636324291586346649179869112891864760086226996625837724152604630324402368480497907446429928734514602778211779549516429677530255662020633816374406915524992464964054990047472722402041765897944312919147785083240230987020671739632887967007797111269171519028156491246779755234793868579994127676818680187039203056012302458144299125243323578543890508717711778393765606820726107321156019750719969156682863957908803412649816778077940505112267303344070961269442123771386214395744223291450489717649209521507163424116376304025587701366217125364000855793259299481309200893964986023312304753626748015208623642353481784203772384954648117300643774771815427788488532315154346068855958430154760392175568320401913878505141437630540883204009593305925363307858949053115285649518968983591616984390537226206770205810708453884733146280324574891210831699177687133249154278593589328412724844773939426807443314576345927517902610286818282432349778258614410618602146224216190859008133228412691771756567566162239305131770881580741844111130465194679131824446515049486146655738853287459175454339700188128049867864521215938421086867289897366275813160804366692664359332253706521489273205762967769799679094731709644103511582149909317012369193416740846537702613491877408575130981014938728197942256835940523586719969674650149625668865335229156823740399492046213634007902455203018813208078911776314205609512837893116128671500265337299799371123982982049367717657452303030935432434266455739983037332525246678077308307056052083102080674893333281181723600232098607909737940092596547816849542720797423938487893310049069637146603636253621850116593820848444753414056745436865427934144736373224631876106505093538719956154861735900928838965849866589263532309402746461846969267078980332916023746686966559776013349856979977205026019370986195739982737083978831561524793247544565286390083039008313995652940034781456808431674376443612512791505182827105127867275687764433227213635680203415985277645125766039434447074137060963499504420899327082290827654651014516927292547849975742516798800293303352791263682733652696737241250389284469574300577926220304221587808484046293533115817695864961395560806971907368572137356792733661402468581264998396868622023779217016001905352827424036109916762896160942198369644026725778122035015443097417200651151582000247124841299999259023645514012526400735957315759938870026900232985995537003966624921861613375609674969434449734558031790930165486840144473242250173009958125033508329830689278984915697565953386081903373745653537345793786370956648689891712397983675394092238538837584223735361569365578317727305840873997178933769687540920592334904999616691381741499816627475833298082983106716013965879978946045945807848082589893712486018132756044002659633856837342524913808314603824973528347823925964156339406960471640962402040290853836684381433606763331975441263162731324418372195182402467999739550904682903021515746609290015299316152296478332781660445228124400712089494465940248462658207909179742967795051738289753407436235019784225003078513969262051400471932182487225803042491230360925616059646559183310711492938597446413499429873537879593594949268593435880540276205010928819991988263294713143834964248024706764354038513695484870994967363779995210285505970368234368146573146979330362944744170224355006710709792476735366579312589192438131516435952346522620187768370748371938137461893141556354611804585364792159148492812740191194280325401047564863113434520689079891225876824276291803581916957336995378669637895095942066473332206995340609446003558717919120008879513591031492379104751562868094773344419753901974045179619515621628654053549318407353869010436215876441585510512397913186330360882038148636835534991572013539322102498940642384886368254438455943145329488571061566307167234569112956563271386453204395924267990559485649963679322881861135833955340713108941402285824216279041122441921597180313192526928229900478087281742168170586771905644436356462542755309414956584138740490450292980961403830182869515481326294820287101925317194989164993693771692114529001716629172615106852136533006215997966904892072748792445358898785628329046136228779355126814918115284709294640992691267375954794634106512241260324520723569284248221643585888839408301355137627376270720562530762634082858732517007452667332745376808149171648399639758706069296947630826016747175048473078772218073072826757103087309915317012860224209928566639566020557422141461561111336556313749885946311823633013733355821781371053502484193547434445184934865791976634287817253212302910922698959869085896318164434085588335137138593270983739500942867132110978487923543738586499098735061036642950538714111470478814617573974819729043320493042654533388509801531390266419956908398678805259849838528580589039526049429706881674568082023515309794796153490498284017765595139114347507337783005117496559861940338758743782302426716567954058264380648798502332117222572521518754703355480815190714441322384019215145179860538882686928226845927768585002322432607584824061771546989820574442080879299006560290550171107713917209287312000235515445434624834598515169112117907752871116507103946222510408056984794120987566380140897429052001256469340142433138274125724026347777503810155047466143408024810722539289176497750364616378884116942102748443824740610608390617800976752550163186307694202428720474914261003518652808601820387138511732391969685230332801443147857743204591642353939062960623207099590846493958934021276977819557054324081966274748709971524103848678457982815907844370777155003106873492047494481779729407768432700307458848106517136556037878633512681303186522389795729003672983623077589897643154622865358250310316713490979858757373380813190004903677242721928568208639611086878428652895920344520211412862368292039335441229950624054533955307949243677128581373255377662136524387757759156369618392152630632423199520863892505819347198203786946813512353676148871691689799166983929436885893917026791379841079183330472501437847391793643926850688494658792755756164738891770830894923902834413291036028010864852825312856736079028242034428205946349844324736310783345157784847762609374314266587794745657368935367783104665173843923971193268811176406898401876916818943036598558613930396370890142052937253582720054831602576289890492522866712550639160674362381963708625326985318480203315459492838989365982202249151726870381228343191169927190422775435765956861428780081508961640667034295321518920825179008187169898822322773067040643382139186086252084347766016800071695362970438387021500032981295955790310852836579120186046575648315867621247859758826315548283595976754434008745101241139950342257443162621272198810109937941349109720448303737117318474174059905108167039978521758092343024570884101822254391951048001548222847752825751055341068879946031128779061590471971562033448532105217208590546330848239529816715343118944314646312312602725090905303630986681890775578985605154062922985670974020872082810081320780331451441888335723720446513726354770961985601491052853077090376917883756686779413620809688499376113635007030760360454787209181146371894457131530690865346629310868162829286802844890813847390319966190075462451948280822218763134724260240879716249494986389267345974471107235837310927418949844984385312159002810982045044378913332437197542623159232776443307799199633050106891754113506583010661987174903249059359492375746642719207508649698667259825864668903954031959800438015816531883441252775547715667186206869666818140615794395001510762341217611277516163594327697988756852441250826034985562087105962276160357138885002112750428414466788220011006742698687198707782129599226942043933972220525098076463090350305492731835606551281954219754498968571839398968755694734962011923258603358218245203482959415907852255331634418697599437113383866090286210945285445954167063011031263393788271044325242099351683520306970255558636540493829264514952811123541133028872664151079218352140678855558314620525725537070171425600797044028740666593802720941139180094805490233286194889895342846419988645917625994351783744443205515803104570530535312608440208556439538651563394533507264105102886893721304664715220895155882525643914037339313553882649398535363585804237179378487276877919769903013986719920278036882303735512331283031110069352683905709366250847912808470706242450059478232494357032990407216146755384249718044497269507722416085271641852436118112255096559840041708793391937817452626437876871521617378857548385501596384720278555813568504590750510833589996635217263677424255861576466572200208601170394712701897788934721701318420454509187662914661291517852534051530366457951659398192317468040376502186886174908061225873975735776370327851556827607300522275145259541313685054211563247908770199979958616344943372059188078753186878613216723500424565580485993021829548984392485157442582631775421654226260706173711486547223517204773004150034227022415434777306148557341387097892698703113753110935713443000815350612982285077549618475169285991446820611572613012497865211199027295101610186541471395030758443866067210735515338864528975404604784450231346640853419603923556409063528818635881811366450412034961720274661809007008166079612324958385850441900004014650272958741145413030469695811622808313004764719401845631297312541928019181197036033852847620259538505713317162379458690212702112286274516436253296845390911297161410650848577422299834488971073453341864566360320176896410622599010300641841152832281025027037125424775228367541977450588635035694801999783586134095788777255134431733243254390510752743296017564291639181779132873712770436393840437483601770232609585389441185801849195528278036966645868235402618116986378555361696619724082175613260336264641792094616534832720561034008368267655406775072011977915677480938647516942129165859741399715427199625162196129610112553294729424559751837829649963509223738523084887691894474963158716309996146216126843129946874937672503843145019438556524407540881303874821824338933334006711294862088620740964648533477533625197768959058346129001468935455163136589513526871600233335268707766413626078979442105050023424312360230103823763689193971387128396421073842685407249414139148805763817871870933695711260082363590474963986362529822670815518254888105472856937672316700033338414437476103406974241033464358357965423159417914579501101936420071636105607952631883222471483185239914440852666674584308389567295132776932411634210774387093311244622301791159077928443622652284322799520452769383781793978227352241301319758323723066404724664970591637377733052952868771864283177317907393440122915962569751714936289354027427428124138763686868361067526111984453334333006496935965403730938013469497985924900686958631131639119041355356526565160294272082282528910520681469977770435033444696486677849780668420720839500724039816568255532661366945040608908706183184683156901098293536454044487731432859515508993757963721312231422631068122367740148583453796515694117093463294873738255070403723105621256072722621546051359677808040437096335406375643444678593627840697940586580578053564421743631689275584062638186022332568358826190068220749790042043829587606382680732611600530830598486946921505129773298962985049941240533326178671171047184629470753142980500197184751730236123381561509633992599403595422918231373294369172600287344516042044495061828427022474581559537996485115654623929555244604415913553983411112608695800080443393623785548613238440625903235331851622263862855501835301796245233416582095389647125226351330787503916606186744657717143543141360646188832342084984464369512459015740578152273513761130306154841761044962115007686441556987821353320927408134703685358813621380283102126004207510219153811773168728930839474203791182403653560686424999962258370457840190496956337008423215049925158825202220090088895251719112907592401301881366630054723346563091995333776308023327542361999838714163312868232750087573677805745452368434329458884209017756874789949650110828703363460180875660381111017531317903103071113262729888691633851660165585959756769921559863980111426426385714764205794943832363636778852469947850621038292699654192683382665493746454248757518401114850022721867821636665037705750243304108534770835492718746465233474663690388557124448286512029267519399808023151606883566559611438793968977516038176588874486266085010787419815453528185127652503091869395952588624274734779730890524593185819461367509623019092600046251214285512439566937103002373074397991537234049915301380573333937202386795251410368074507440878091648409689017765390623171778781506123409957435226100020727536744405201967292246430904453752047766168075165963960041116900955424390425175908707329367638085643002899762663397816769739667682766847573206822319838750381480887509050305918824578938996175675541071360043445258294361029176703890490112105074315654902204258710277243206760451209206498773299125633449294280509264065898959806958086890148400378553417231940578171933054333170428495295731581025744003272279848361667353399875679171752037421055915781220664824664345389072538844870182790290845793653360637481707170561293725828073134346521783448720490378779317192379286151447050706765904672976711006569000903008552462162539604311128804867216873994290845668155341815260358109928311842562246844571083683055879802559926871530790191280972343368337510573246054711904486143907826717789449395118165352581511676533693206175385773467760148983969978307894067772295436286107193112443797616786756637132868644830197994147609648315929139569043614474070651569513391990983163801370097794067396358321555339382610587377965874414684976545814145434303015329879771712345013763453110057535040449544728593124760510350778206316898152109460187925395463560505870395518393254539575522905736875392846530327946789050116773614154811743910201703049510023758764434397302466214712090183227256585245924713874890472110856688046572174873543491297270738541412015135854075599133946015550653363797179097319681609360702066182299013149088748412271923522577516371760566917658010564485032142953619824024917349140096003356280314533919282474653979424861523623208036142300053482116688233745649219956688168325435651974510993476338394556793258045094370084353701191433523151685167647863932225406671271744431277781898453081121244192616732940998072647210130036687950274183059229186536563401086884100416934329249059171301892674615852682704467215342387447819160158424640259056587473498499081427031959561886687521286263880400486908630761923762251076934358310818437245750331165556977353828463585954895613416192540429367563601576346885008757080232929112456122041012163900567440200201260081389770386922874177919533791399277034462588630139292439741150189576011553542732695640162557521738536226541973060330885990326638844417770242209239268178091043741356364898091093863415108485602096108440655844193940846507255257179979133602569463660856675454410316448277574586308941818394363140759240575261030336868415554843098434313311460035122473665039915142792769658339292405243252021029362021333646059168400221243397129626709522352314125607983835504183701566148305582611931240619389010415334426307972480987720810300927908182852982779932659360998088438956556618862859649286828722777628731177266951871729594088079518101613529753361077185880463710136268048184369422478249901834282916868643928200254811112171981272452430400528677100641004122461724089182829304295122396365286213198414691598822685904346510103207086641861084764439822007706862825621205776567125166223632061051607108921381779628957619249659239698592278480387919897635748862790684624202635051873848777641046775167261880534811182434572915322425050407541228277106650874437462558385290620583382662634799080333564087397811111260480535198822793436160102483673596883607239513373428183971633004748181827089516511322731767076674491360011142304313127832416120594813924656855827388263743227728862694318974843384411121155330191108090580928080093472560564064007311308306654599807189893995590536564580496360283088033586946997783819094254823008097355448360230418787993919657675258684610752466951260571707319607438518255502670218969676344306895123406207479704119217019034950647301454103422688068384163971322940085919519047588860537095013517375350689927551570268935779933285157014547903583763591629365416840911420177866445706453486169967281032234545864705205220903073576173511096063692902358875567876848129677759455559183258072036333741068361711491867630144136413654041917226908532473968297771101423207227396951456318198940366591161812663426032864350991945777362050554142949437508299756858105101975550210212556202977742195666089185331080897724614343837515221508428179798183452141836064081235179721645525399495030345462521477460712723897079721762859954449706157268578970581685305000259526305549660793909020630625522988783644168355517782558478401283951466980462264526254389894707767963058042649761717693638397082954720472723899215559256678376842351626322982042456895719828799935086979895831531866804901915080720474070152176485857737909030332783883863769009840821089346773867753154513574517920887399790153947533661944414864123335146209232751588385725100656057546459885342108369679780979668298236718435575499158429078262767129129468960728261544272870362489877880609108240690619112732235758258995751202019793460616416869017150933827988065587886534094559500358575495527397742132557604178488848601976416237955630106633282122325008967156260611089896777194560337995532218793205866624287778861313132559496512242925945539619913505048338119552663695287117807473519674288753212554695052659252233164583814056703635950350909081710842988197865198514636960808249567565067181752626864594436647839530828383716476224765928105088214429950838824831140081514905578506454918863300734018921376179240432496666940994477879788710076607152909219852369839886141574718141711824532958495651888003840937855312990820969249332586153026543866449394597155880311808620298663476691237889216012934096318847767502924481781085836102567233114521552787840052110029482980538616442217943115016007531937276047297046648327571113078936365694683213157232258989200720626357148394609364301729316643083700980880792262976856411196389578330340173673727757585221930188671151707720382418119958213926282898420376500790990908932615323498007769685650176264358362055492935308939912104475709781592164894575508971164293898204448496621459221987396627117040913706891181195513030885992835490956320339015614485663223377157439535038273261247258688092032760450013843509186405891308412774457300612515068939801008151164156072290408241245743798434966208617861196637280454927145462869550052681818299456880719395604389474848348805069225097624929622412119998476925224089975977522904819940480878161750494629968629101814126881632871804108303665122872080733734176217146346338964634718446478055068070085333429629462389173683529356685128467871149661113534676761950788499355264829384610605868507790169858008024921324388088899611255824670165658375343202258089740336219724923655289881617538978342568266236625563327804224901785668813898586369278145262058655594296270309083941366714575199442838629856710406746241433811154815377020911279736397040665690823234379399723572196846955514070743297883422990790860154560586101291340395641421135982249530419703020517579683229101597476063840291228692944431196595666835736907780698815251395661364126764021697263814580018484382428065256272625275707561804695091716303517870384345141342662458694259449241559473789604311111410913395320035324920488862037646507734311404604898557741108926473205430777409194191272233396367330468880007937468242183256637292360525246560581473884871321158686470606582932205364191731125192136820371807271544403839564712943070346893691956257118266125547293286748560409717651193822724245605309873881871229266643680615457693316241191974138789888720738281883884346275942427158466928237281318385899688312781734359368568966237305677185772678070970080087319121486333173157933683393049564888260112234287596769646209986699152138087000757236286519135295831750166032001531230034452491606160225872434537335731364203577236518870904744927990814861266748924430499419105995782836448194140413143448676126853848113117387872862887738820248007825746469279000592761368719978303518753690335408878228438035961342249996937227519560728943678485124232887543338271676764849087537981342510261056693064170023192228258638858959957457428518917830330546819943437474494977837360142356672675589144171504507715012087352547179671498172281250440934688833557543868824434107961456764361376412522788116622443160076432316186793777938584549216353348446084374737624673806285505089547102977050148486529283166515763212737019657556054978438983565225368122970451319709081222408317463215241287442991297835928347305347206116078188565201838226924827729790618388661782933834223803919575635654646341685897021827178592916262548235647139569922298998711307169410612127678037539694409772680969970386901392954191822866814433647317846128480190201871658863674463417529200440855494977940816093209170449854957732189655805010025594712480882581303402356698484163042529513311886584071180174597015958775306102782973215711039800802758782549495561403369947405443953455796036523952346159416963562030470132467002146971216815190801143000133453812634823300134462219627402863577016971959694145433558971251452259361864960916789235702221422135041764635520603472711542450180691946408658809961432606790508541701370411365529309025686804034314979152025341182676527719855417409157681600512825256440412056919532817286842159572620311604745620118838488374427959902578355126547373027474296350169608268386565410011975645069729215947502403788962400576185841572142608962568835925750223532030405167192863305619898475115859287432929571173107720323480209689089957404182328308534171022793534791221436189046090001371998017309033590215656890894012515685512390323659569919272593507376145533336908569665639399761114364133239658337079452269705938213934759019434062973627690468683217664533679112653978297487194904729929967994260109105437646388296074988663705325183034890861013083559694665680209203335594317181060645076609016413642890418424844063322421233576393274574777703213788660571650113860540862101780564282448426178429333849801246392490669990945558166035996699567699436414331255661467584750176243356543337892866457857645853460441274978350068896652797685246325463381477765242758760318735559445324736408643964539862933283581928463497963380826005809822284717364099710569841910961895709893073595492544398031188637284079309746638752319381569086629567841638421006139512044020896468979574221704417788241504346877294345270964430721045506706587270159075972565225991919717395031131777279805163796770382947815394302789487736259521403963817056025045017393049862615525626336462764628344501931192546692775261503514860982499355506793057438112267143786222295542234116697921931286576068357822714447648106594328842236378068047908548665089458341310614228650500947744607967060924765149732829011375341941396595067323229081707517172706335128412649856761061943524576560243175384166108128994194286079816119282647110894510971947445495940058472211347148949727303374925445524336825152123722189744977565890552433506502181817500626720418773470697002886543807047149839818128224754157220892271716541956252651446092225236536955489247310877401327632626795105348782292959682681824273246516005144714548235751467583739965132011144815187728703998999959421918226228713708195991525098370901109112662507092335367432622839080245187560153109767065722241748434776005798857385633501303794284552095381128430969811252512229137231524608107738442601655689746365931796891321406421044027280327843857122835591722247396651269666856985685897024877441146173029783747721866622113561407597177814979073000286677570647979408244812165553965575062548844527326161782555696135464505761315825553404714709825572859842139060037622053590361867827781046353754580019792746726052095955804940379865463806505916822500377809504124498040625518845640421754168290838951235788495692445631528765251049359062174261736106653167587085172897266868828052565798985850166255888236313570572393708781282898287424611252191315824664120418474218304771927061474120528068658520069481569757437781445932607210951926168284902226089384228824999932688607242983342696545310708727592003497855876336421866922247058755416957911400027337641138195554620932958356629346045493059521207786007606712157803055629215668104372119969698137779535520203238094852037819238358710413918278001644672211963807547210379245612759219696366643421831454344540971466544616837231854450034859053884164482819981942626488316502130377485206278543548846269774947415285001032661267516936936040818802324121920521465406176798529653528384147838949469169066062661714435762727505402994953188060080834959845187703860507758677411313229355820665942462316206133721141990631408924926132774965390438927953657831036610533589509237521867102991313168378159038443512929754817432354155936765732569913260888947646299221681113779437338941040351127054348365813152877725799980830260157774780388731473556392286641203819796275945042206517969006195578223275475479126071277715081478915408434791037857197994262333810089620855642697007921912065076840964565591808507780330157793786374662330562044859642929216517060993819540390109500920415052501707066240617697959258251234465254723862153899097815136071352768836978985640754272900511347461916555825591885470281869935956547983105045653921967645538710139146377955298385529315359862483059555699879994938831027658203363152916539118304357240844640868397270021198150164504204448741683895089813830788770643283827076736313258491642522448790743471069985219818001935628076647728030445445641503587742811883027696814282014393575455831578552530394948249071212440835370607155449594534909180601799128722024287440440910923449857963881744349695972025720999707291672290494089368921031536170319193014246126248689372898149573522310614751851396279582139457285716761847626571832416155462477402290845991017132632142689939647865305096083759208175907305610236170510675485685261582634484289751340446323838848354566508171768534044687125213779508681026530201895902128604347190557547203724410107680977896851335526226051254957535126841005266326869845196443309112629512743067911075926359053622192016988395063781163017599235422764672143701483258985798061883821361485012602041219679311240585757136949048475419952872318003051608501465658493656229913060656283058079416355070471221328062735864487707898175834684318578899345321786764386126042441083003755484960338299201805276715707259496381339410042477793053978898364662162577125281146993959697216623290343540091658101382684459056091296656975158671225230312522029600494799823789887782827940473246377384493140846290040737992783371068931601525102577366028962640901344089634968721471543525860726385293486739863360006729259774133822738741655503127449901978003723848032678535563624879588903700749664501483711787807466186622563736714769690577760572675804546274935304110454637429261383982078125229864960609152543316265099781092821683679128009396487526065698106863811282081215436092817616175016567426715290482265272644839903814661989487410374685848060551980935900289701217057906115026003466237777054619372062500103828921241942129096827694993847087359734613167446833911989444301491018899412933961747233806493438979220995110266274198112362663365862869192593758529747134419991203135383116891225060140971514553343489977113653383355977250214818867693879932425512301323137741414205536274215357835111462240683461563178227170403905772080322440881132055216722201016379139073332708247894325146108152082785681418225046747915385546246516721551664797500652204835914114736901513858506905331883213450363392691624344350392876089796200116681790256790394882372752587475613618575790245120997879773272328561201621603507431558832468550685068767452737323711067543196362979918559803888038971140669007833566086516291150072417179265840558611148660448914021934779846928335552911242944511215785301899343866497189004648493224251357557855690381163092775804926071631608911717720567173507223036430692003926535711108783109958728213657060829513711520560565266477163745717493480414126812692688916250714755011033894553911782340565042813219338364204352682227055012248181895600939560797571104274105599622738041423156170610286127054622591109816954176335801308606678842667224915656650686755519420299554359172449332901538596500866011098341956245066016427294186514634650149406022575136956888284477240988624800216071706108274317500926507317312073206032903176094042216024812810782277509910046786829410027733966464538995669361990253691922578588015306817037771640334125151571206194627328412619906083240877246821897732433404113281089644139207342716228481135964751450035890307268440272422087869016139255168464270225452039295136886831442148603686070773084309469089238461921385431119639610534461506329532060271209471973755803115395824339159977971415750488158337671624029126186905333338481194082491426341933915743396783610587656165687984281209969563981520941873399957647671509823818300638006183959493830314521875821914348755653474010614047421915474608093269499756618009240317777616842499687353808922269483973368191378508695311312816588229637039832904713867336845061668484156654998590482225978224499800476493432629182121957384041648818541060991469478573830787684385156146198853812000073882874631841404791395744445977060177769485818184221244370263531787552054303945414667243615065226828599182298326545607992394259695444170917980978368222943486961032311526979895270798073294011618919114638702789046710361927401475495065352720845316881238775555031945991637733996479824038867096320136556277803530199338008419241710553738021111481711379673873536086748255143979325200681072218363128665697156664997761117758645269461276956807150169208510164103646940282209048343570001343161370945081143580893309754983853558519117242831894743954002856577258267750326793803767714928268089533849975019033207449850578387956238543226884556633369710375918129337648843594551484749360882504515331817659930176259611522595995741145804558219745225187426666520379223341109611344694626294168169050470853205638065379045521245692896574403556173375247414285241486679129766333616046330457706377191918212947458647404603763911531947139522843530696665680980149954072098056387499800162174782742131397165909263047295968789704068703330202740141066268634662858622778670324835965686818599854573742552914866125009483858543473332492481650655514149908645262584366248844258043332978066603382196188325713286258681091845867496748067809078394027020457009792733768774475228213922998397389952356781747149106907170308876501123353723104328105559200495026383023728561008647276543773689789910290677333227845498710181863395814954430304384043437088478645383536864384760860059205261524666468756067054856787739582438901475700490473060890868695307646217796427688127236379209964618571435630423926944981227980706187094476772703032516778047439698720258562532958992989472626949153099870149930774948043334976455697967561203436292616689928049837946796369668013009919909936740517290423526429019158149547617562974425699693089336220749600230853541037152149680186735116817870160956473103772436598578037274079239475284505801002360654698262043006108206220924321089360556986837357159407362196807356952641607288585294260744617572370893561111718528479154023974715396709078955147372922339855132947753162350000936343992666659128327747532349521927600598394379886873595846536946349419861761620459667408906390829100753051111626038551218128866436026205699739063606609235616457015474703624000851278790442149262267707328892812865928466462207590172742062221091911878676158326218318461037419504729538884750716747640980480935165319650508406120853888979313789525249738354007047443789473943954219481268988284711924562948653179443508719040591941972047154227658608088739756680822098609782653358399813158546509096314692342291160314315144875341278101427231737865578506263814920240980343178088915787998277405648524543999599172423556900798562792398468882915276826752849413627244399826805997321065379577651619607178992413426455758484844569907627591944310590013964635260952626237005398471246797393964143892167140958383937072402651907763407958847969258269748512158347050409641421072322895164927274868003691451491800220996581963121184698266454632204661211900405009902025946783068210825607040001881706015071653552031184527551160367683917713297819442785287725777607010546313829230832781106957453755957738763610524363447282060550231535919080223240459989857677800411778891719158253964330190033850320989351710652487197894563327942724053166430918464435026666328303396866398467126008829356029966376049882409964356745777117420995929980523057609002961705796078890777853235607399503124973346252715955148119254237443286028956059703695441916867820262175200306595210648274161889729442351356837148135305011603938383124563178345262674989217291655744401688449697376220078613050510081505769654635210127754794118765296347395996476646097618495224438422880022830669007873054982041556590969837464249662535497087454225452448189189527028965188594708531667016122873348707640257941584087797430960480161213642787306233692170391196199742635046330487312691283991725158503200013480814575669403794548800295029836849394891155104586145505061036448067826218210130270819078981446123082740289935573624606613623517701400323827388376044265167750040730259853402053848020708000939214718930188663025666707723736080037854773450889475605757499769354721435540440899254444517542701202357601497723661028704500450586645288384967033341712502008413901500921321917808682882550433397193013201975510756974337306878120062614256774421195093123370050961547875584779277607323226554340641565738624701164473313422832217407118263600391172934761871178257583926984502521425687681174894921654455381839426759287035518080278541706331761264113825113103816173650621785510284486346410441119108683940433426721516586899720503096797771329393231499616242268673247452704372395716149798121642501363773087859104483538628721377294560452357915792682110840270784583788386318231906212912634446204875669174316479048542838957679940389819564594962804836551869886634252325162776400977411131823155532295813232511984790244623001455659908937701940289785884673106670431595151804280983503578077113767203544207142940477298647095686774731742198857129802726565153472473842781983386251878080374971229150612949222260901936004458369589735046605014616317153861361027507553891187482375824617793148309108712359173040021387175159017428068773503352784435194325435781691735487406441238514597274332694336051047282558161965578828655125832805818942457532909582759761746970023844072693771993231774096058971911300732975504146750003154074164469181216551672055290559793807892776565091705134558207298964319085006071252282326028687213306178301032196482397030116405462345954919128782359884223573102297274539059348459641137313745051054571455836140924566149600158417381742799792014132777795670539368465464865458700731924086628080668089233570077276660762140396290334573315199418894281116575736590509575163746876386674826223648161703874188104052346720650992777261693317598493519885432970438627819184217361587855141316974800227684280066304024467468916148549071282404463460146693286758257415943145326013847994922673013606652123499789231823116155274050690198237281743979915490372137166632599133261591831132869491763124668772998516076716130443857808585780165687035609500996322476006276550665385832747135677680683290166920911070673315729564146701446624532277855749675788661950164470361781727824099495029898036422934502520274644590518191976648594821538213928516758093241864889079655702037984109089217178857795801778831774028777614208765453301521212265895424860804661240363866034931286195592141314805960609140798399650404387796597853991856893271906476630483906159224503792930165165972559146789787692555409168217186754551754027818481562661365189235017396717115891022733487710017859011154374340748365537982519174063471449019857354479816321247013154078458625105117622691684005642599240354175538462732383993456790152147519071719532982178299755734737449078501026100818767163500690762883148585232261641775744338410271953696847348577593555291868630442076435916532803330267817477595013813370142004535515466933233922993395744441466301314147369613724460068699220344616568348463996709505274444567524898781282232337674803034172504780306805507200820715316523724922262774627271135826572338782800689418674025128016095030059233537290071283881457487159525642571615276426406916302480034597085071326064348538549668410149396595304055119427011157665124038637305419188325791544513452722915322254605841371499222628566324891499670908991580630951962205797739920008053420111682861282388153772382774711371909762375493066264147446502996327481372701641696173794021500173419895873896630986008877321250020984624890833604990637520322939865675241559776467158955950345083369679503155549142152770111108930750208042521802633964761834293768713251449180105565399012906825623219229356255496118503601320373888411071602260537181256470781272904922577700568744141775231263812495626354409071607468468238916212076882667785375001313865991951127593122956613953587262754412241657282940023085443739849439194041387017983159282362507688365226155580858324880123799131345560926250428516905811518564581174831580517470038674609038578593875596315084174842425683509113906794541903669169982753980439601454203908761698595670643486282751240202400513143961904528042814535585260399238775556176156850256210425459252057382266500721142030483877683578865815900090752445289069924992336367735436670834477732875974561406787731623362765438522309558920600670055720686155603090797809893853409594098019757556167524154090618579747765763793169891156659146279968513600627859845025158372685027127923156060267513088468693459414179796029189504720864974086937931069315737033797528345186096760433838370304175638053656949192769976495710844187047554604820927007995609992899298280380365568335403597752727310157395326432732783768590584098257489587875539818366243614540420283688614250769542657842196646940846713457818664810916112846805902001127252483220390248631188858911139404170039267704353131477620327088450025102859296385906314333399087403284477259602334987451592758403061147933308583876246263334200339545482648424306287934604009022536793203946907513871863313112358272778330297516963019951247623075935312834239848745851039039551777209972923482463947048779058471389311343390911893031255220284344727664226046377634202332907695512493426731639200834038216032901071457306799309719124550609442810494373553993685248178500338187258839511813924364400333286784703037303118791964757618866283525103956417876633564685338553394319607063181774965671658625619740860473067367877713451553251568169181389789260237495726652961706120036682047044128664890120873326650618842214684648191432814469471138417822588673424192541470425737586275631778970719112706047145951544315618392199686679289783227502370657184927520105892430324233171261980687814159805884269029635839546024288143922930363751277312951870538442108982175183554358417462042727878864754012856977668795134163782593315823645093060773666642741960149685302245886889742839188461504838149553856714484400107665229297361478471775926606622779063013251194842172929602513998206119580212759322470973008171658893246312180141728864844274878060690779881723863656130015572112675003016763422138180243807143078347030063005286241130577268759327810572418821505574001421420772852234338205708807162144156686716358992649867415719236373132087949037739108689199777650513902905710965256035259519177857673758329633106637491069827088200081089592808546889029641727956089922488558371997459838701075142545907165452087259262176261356442642462803156349667336238538211204955955085816450308259440762025457778238235056150358063344525537310787129414292399757837524826177837771497446547405094128810696722120499059105457575189230420735935139205195423564015218847569933995500405998182413335400532663912250899453925481426394311101457302239845349495236397643663021416743623522021080105182693651531952302545656230110861168291068215548096605500398148683665472382857300648611908851730418078463834975086906102312631360255241963620655462246243554085041982520976858245347460124163740234360518445946738471615856800904327777041914915166776210409632242665004874284966197632723285516901789497888758662281802263037576119816850746353350126723523778217476536507071280792777034135333304698025267946423897107455176791449097569589980740996329234063739824144289151254559476673052481182738689477519626786916523111059498359975254950188871755382701105900448684480765869495655463352563000426268020509613919020348573027067111088607886815058648475899965759437926389621623964766579133050094705416361360319698290660560422133603117841136877282797536259087539483210339034539009692575399624312458827817795444757728853729562157048812955972758583160577207373766747848956970213299722984691959576872298978383467275206212482659644202609785262236512630537214702151623710504874659683621620615219543713617398010323457414552542409212253736746792438008665712066175730668934526318842772652381256390463896430834165227571663785607662649283233470442779454177715602182981800869429126214329345184168382627815712885701424306820716765794081489890517923493114970990542354094391419461854502956031961115902665874313089817308706172735933927050296182907588858526674037627048594250590412730269868352460733898264820271140203558997064322506714827416454845006148494328875983547363284391723014113778501039512245792360949602728096113554568691934529164910294756862501779483870223741451200842744683307817631392954814649919510962910687211418670720631874257447982250937262667917681744570080956825239926080670616586558078909249040592010835273400955246754639326643538803021201501233165652667828111385399674271103794693440635818738410877121394904935011345262191140382918456000711281185653681128102544963440647464429488756050800636721114566806902279300178546491662350442669305768114622457973288006757983763690696781661670192625174679364303338800309772064921981462591186522334914516070387023963325581228940564608067263867615675837221873271557519644854462909395657012038848939368423883559303923452078153563386367216573071917843041899272704606059591997070692921241313603727378895227284634535705525527840048204584585873650349774186467971811916554596987754302488422777784953535460538256362022321774881965633368336378193789115597812734896118814264976121750796953755652651049419512240860192810400712432389953163720904544267533002395183128900172759608071381822942481499893803170921547858103680725529888533077794820814388497480325461598447991223268787041384069882776333717880182631955223023734323854181586831781697366177007513438134963340620970418991628796088886636737661479026580475033327223999689252820969689931239259562602359655654323677019828889068753713392930066844223999176344140236121200285378996777320593429610467464372739799579165374618902020115022617730996974723654429718179556032279932928446929408089604118120213109932741906532520628120772237980234474600683187885429491638470255595200228382158337528532046740386543822083694380660648393643025810977905841354294813829238461536028202154508278052694251562935284606699644243906523128198935675854335164208442188413422521337195612360423418658213070079942527409180220131886462877940814497302212938892062296101648048073602029292981413560563163547102966861029973202666661301646027544775979036788438354629100020768144031692997804629036489248925837185478080940387962449447958804320918172333141660740409602181150237490210800308099807382153661124965827369913639394654213129977595750427123850956408766279654522687755746151653895692165696340005236076877571695515418873404158938748068338467005291322654175813775404958981775485668744336172409662536441003858919491450296965636020165872919431806097740025683346633852659171698971892277648849358078655103404186806095763379229661518539063085914600150592000171389236734591828154154100946826628858111106284085640834936116527810812152381823821957699497338756020190118306323311844196240269336991141804265342851851749524688480144429395526839816327724731563554345273809426509057175704363123686730071123101811125659541485734295819439907857654295925436119173633507687648136724849490483554726628405092975723015795016209284846368599224445181399771528207202243237146573453823655040391321275503200149357976923100228494724379026847751505611134407553978570916208192718011001577877906394310460556647148335547222672631817817431575363570029739293895646242718174933992628335011965492543852547552915777548181560465334654806104852793566687890277782481141948660178180657453886988181625216361989369661507324993083365917634276245888564851836040554004416402742902138225067433803738732409152974447850395855378882367777255777395872874488935338694417638170030739716276109076574385022456722378928547023701170051806167442080397245320067395482425834714377819128339622635346629839942343833166767587879502440821983919230215816892808955762361477740023005943694349541367494702217352272898045969408953136421157564129798345676159729174201539414849271681190485494722614698115941513882670396775655927055367881247272114006144616726658783249626963008183202141637401314066081324201823697128352131504386416546736124058565648184395712894063749310587869808503332831422774990416559133711249097668368740766092176671138780395824789035693605420207732486061544599387602236963384460636611656110462001600387413572596333189036318805792110643062733376298018621862009406681864645198847931338495903330768141103800223779041129255624341806137426731655210577303359861739268200882668690764463546733482590168308098947918591206772225218264852148022140697048425899038948630373851062116723878340601469610609067016093896960799902437552631362295160479105699647136395437751134480891539572061301211628687740723975623863604777424113092036200430523316017276306211943449257936586445374617481831503621358471016966703014608883102048303154364495752452052707368727309028566755065588247711442308670855786343740927995025393479741151701301260005630688180170354615931349657692459146771366346547497134263479100030900187278219196046729436039543891224826030596410308088718838400138150151637241902485039031820890039985701576175830208919540084176168418400056612702551353879693091899459187610226234589702715894096869662884904931133485059129848049952048064744247302454955441605294783257331766545451197626954174093234977578368825520318169400967841156807125963815635100127944973380375180918645795746204704136786988524573861504858691015085427357724991401012696572361278018790133530523459909831608184405340510224534646509807476642806275684008457441452412195042022549704656367073914328818034952086253880669100257034590341590854505706107042826569534751061550067884779616726312436573681514222914711543826811196790773407012765935257119767402457032583266040888039389647621788988559388133779957768677146325142824805203750284954205332998483947245396423694207094932286256622179027761249261317174901063001063398307603520135446749840594342683126648917431156850958821242933244987748943600253392943233814753461646816629598433152752053377566016727102893688887770964778434095261685057342427675926127220031119240985336821901954810098165753888470243033297471643412432682038966286457363642721565893328072900269246464800631015701134909381373735130703503679282300692858802336004096948438440635690688878109178905570649732878423968375975970727897775850398035320654445904724103218129956334386242452594527607398381540367459712687359490462640631404328511437216549724325386163089426488502709563832303149929920320396904320289083778073442734336239546843923300102310597488122811078704270870019300193955402137005061384387248677332438107134596136985160863532925667507475400511337728433597776525885177199553214181863682417746373905382030899329198291169323270736792840839959972785643535239043732175968120679477894811496150893428731940698234824721905075821193069041890525554945884137897834140880763469400694372085611857858574827081978488312954746421227102842910475383650879462529338967153233640827777469661032648743379336639592423574664008212189650519441959854801212528427365216063867407253406566227401119918268381981300885758663837411634479246486259123918853463751227512305717846334618624255711917903753191160394717787354761639120531166150514189774024013008218460515511956434711860508437458136005560203326306360660978628651867329633149518343459590821257516715672604726221209953019473062451057932744478861080006390960126782238075553957922397404209985700080901959567292016526575704468392508657183593722049537490686569595176332281092340292623537610135517561521325453476145512953594589363674352350019870207319823520828567352027877062341315460484833439587986665797178238344480592419515707690026252518219706058517333832327366128909557445131576294008276459476875301518379442603692133938229084220861325796173988073515632562541767450619965944839019791190292629456566152678594835264671775233304942825710949166139754914768441454945384338240301952285747484028059910254039999724265857360290317086990573503801924041715784137098044153806089677974328273476987180901577992443559146043007887910602842383397858846015570337830815790590705680912195940511156259620550596775840617206639298315018707570066578638072947435570390416420723660527819072856033941370319027625882657552386271440401710349589147125234951495436000621944119724503226558781461110303630601692835645340490088241102748241494053597696416403916686101779810679381504221922064428859200761332752200435337580469220535883388297566392331002633864093456697582039377354521657695267598355396282169142013873276440420103446458082536277166034215157943100227346817267463159989563127287223411753967448199312360459617128503412759617159747246056666584234502567852195465902365049047133712391962017892865418800647481502939872849227723404931250826937896136798511629628796941609781195922914240566261330691163483018704248744881046282779423317988573222874315668084308642500090590622461287722607141646473789432501695665411130202288310767392162178056299977570652863505310701185751700530808708730746939664830861730589018401428576515089918990807400653921275695984809105644866824307270856171161944081954827196325764143626998032613202944063377245669980037176095333679350348373772900144812125103980939740855127362952863877602767861099615818848337156185334351930203087225870024166581807002832799190330130762496988935939455628753104866699651929699230583631760135913836101928373998089168175249875831571125421161679460203014312130901210998076194113125818262490983544609835961796718842481810518786235724953331658769331496214980319176166736744761651673855523129626049198726721065140551425792191182631159067132190976115899043063166465418763793611331763072335197826646687780354397799299092895370667532186245750856797585935767640289774793208538167633116822227957559257343007209234597392667647097305452402336644285552200969033566813543433086454082866016186957694441483425903894662625088816197111823146457301572110043050180523447475820914163083879366470707914682655905300736713665995059165927113592212471067658384225085012557762839574553231133925996236854696678208128051459282205224380374464710426831600162699434571210740213571661671747067561563956656348220245289285900500953458841957845511270355456232345845055532305456203631851910711456196338129011331432219395056267126496588421541127336087665223127402881670541015913402848766537515732438799245370932343804627859275626012804953416543484099245496464074919634682799532116552528774375994424327275755776601817116495588507769641325716318750811483008657170239185710910944647810771185162695538411862368996919222627555014183022773896806072899259734228238662364257667944719243502420171900658039861038332133140441297016177038002535341663247480776743529859349872380901760149462897118636344058095605277611179935105851395540043305558731032397438045239267808544586768363597136383155577637616569497635985024382238317232521771939485862716133151825030953628420188937112135118372590229858341658933267915381353054043653347815361315772013550673628187456425079939525524464987257939790335489105275775846062810161480546153824145970896359542352782379216168589417552287554760618316108436305598698603849383154420225770649687401899950970897775781307517095262849574942446302826128297708651205109277434216000856013094776692129906527967138190561921656408990717204404474356959949721318593117479466804942010477819234270309483470667833431793699134167488241366564909923322108591613510689268911983929904438045892669860481531412259205768389139731614125919243441417969389372807469406618306517377883132883849004333850946507342780997166102242213934193629907660855620588072729027712289465432021328952597445277263530014487876271643640536435597555767949379984159618648771107049922424232139986098791364831463757284580756751635893711266369231653873876259478057081238379495986208924599880491146449689335965226953113018216590972835217947787502322971141169121258792706193159336258250992877302199478722867171035498522274585785911954312850235500808845172294065141037556775334327986077452805330131358081204607305193610772677273175459545179565839406091317455952769891970405850958493040135197117434951663376471749724415833013213621525405363316889021392483927073247983532548686277671113182245447313718939524259507972178583280066373557736838423342926145027048942712008006200136529527197164811970360145516189514994200997795720109087425490756263084642741003581926631501010576963626124629346001455117849200696234414911812883894069871406708709740538788447865917679692414293764346418757106499652712315474973244570766915820687231875954926441841031954134500913300091026063750056602003114676461358426927787951707612065373050495299508209138270140947358066986197172269578656777337012293363261870818292905254973516218097264520920405994231407979618656130102394612052006246163753207379541174945012311638141067594848610127426949366395037385197076934526282697985899267700615846323294763409966330329299998568356820150786000176471257043880986642992387638111528450331265739162426243499153150647752599721819472789686944172687774518587253906966759537340574064680431941830473401598113108025752864655968269679430555901339170714346143649439798747459598947231636934216349771992518543011299126656821841420095690195228849394630115275013892272680481765139937136069513787810722167498840753348480957724548295696472715460859960794820974378053756998126129937194637362549647915822979427176980743380548729956107364732714533047012013766227235533871228206176158400109589728308021794291684910184960574799579806341977480329401001836100827755737676361863891366854310900495903528773486837882572835068029179728647178315086349263954569628656690632023708693454425461757049005379942700182344663406152250911148553985835148541614967845720683916214559405541324256095258465645351628984812318346956050111609422735950035327401555149068362576168085789805904095243416345196158480549054596935013701199260284041779566658613544564887285291469791035982081946269514872973080607879060600477751690704423047624857183923555785315100891749409925286301467529199974287357927091673636849574077976014856863366946940648164195306101733149568144668040153788844285687647889879193976476241923929650415226242482602430584716700706239269041028024153899024809220964876756072736768097866544428550582780074694110207130695804942041002827180485166119004749474743735110661142016944127032178946513237362670849321605852349950432712293121164020347072035070486214411727434631525300101211528930324712385622431218346619944291181860842988571343347045406711043082761477451073754511778271411280020313002461969609000264441480209825466050793636931913695256167753652612852376784805400015954427198570376204048219362731207305398596198792815683905536054160416294605892550210052700234969388429358658032023599904949017464050175344390203784140564466898135859613313070541267141447407543010889301529692225131230794962754492722176003849625868314049583777150655806942128229791370165731521792216857598289255890773720119447486864240916231553174737120121264959132416141752998357717817408815629494937985174017843825706615817123988301062452804433243495118638892307394357603068876937940879353333214302756732710041926541653337346640080663343791774605887459776925118459195624534342395480927306106066894683163088648934239822352000171250452135109169796344819099661841379432524666964025380063040336496978548462271091864908720245499294216512450777035027524458433952808286252532344979808875787345346650012458317595713569878944736680909420916846117364842869425306014048208970938295548278371278017556387412477962460417017992100646565397196601024185322091309607815415773105075657614608910126901146019484841999861790005558898716952268576005713828170290501702810471144158219464716771688131990424609071359060781728085794476731007550274345154613753214532181450968655747676010103284355718536900691813931009081665787697942863516258193481527927813509866972660949824872048149151407922542412865838301125273249759598489723035840686170073862581360192344177551494858890173092774632577229828581100166817638215566500508006775617523680516405949682889705045123945009899714428356148291197340580580321633505299408881013144150735043766897621658480368623897233048698310162733231523437798781893645027294936944772255789353309051316807094778326401301967298564011532182086898792219235239839948659021467479269258000599908885080478285691176301368519310742546458272075074863007930274838350383604962763647239753598370843192198535262862285209107368525473093171837488080688653034152551201753919413006339147129714429268850291906410399859361523393868726085299391575558571646977428061871058588829677927605739881256504362397907332826723122795114379189668679549286668296848247810992621367013569519720434716768760533241338510350405820526114194715760596148234582762996857822047631253401819871211601684786748000485142175725386442335785745553374707888511219165025531535599397215558298004515596010464401248671588800851674877180480498147192324592379191038762441762906536329315258784509560192928348804481381527348924383143115230712802469444146372838996116166761741161624448991773425014141014113507730382580935577640478909726732304628357010837310597036195047782667374587471758843138633752825621844021931284839939028868281312041138198488814025170669096481032167126786110252501914842680407918869079639253676532115442264312528728136503422032419366304483767520343372211905706212739500318193677130591753231166066770252623382106935925409480203859908387396795591193076221879253681440004951116572361665745670740928706495200730701525380270562693824787891151654559512858166038466344002936700806855554228573383573354557782921869741564249201920269536306662842473310164880045422159858986658719539481708420054864135889622145381095191164608631485756899929879515995718754656476341365594693192571337879131930275914507856429323792459800013766662483417780350532092578550709159756061454246876018448141647166536264235067620852166293171879346619078379583917365565703702256449117931856487198032576701776046114982553966856869211363197569072350228799825142648096434220239044604327239864221778973816784798024054116800107365093837991087922013347583475656631839246430009475489802817693976701006720953352809257075577169459030885914776316444515832626050325544652529468273193801769282140685293854330037102115359538899493527735287341892344401571919998577460837304085467765823234350145437067449459875794078536339827722943603784269180452702700021404176209918053035202904004030877304360206221373680774486189637065517090594601233291234404699904944596815614728906847207964891655051384850688630745105868693049247805169184385994809561292051561220430180981432732797496392973832834631318353856133636124186052722935472577193266916244129666840625484904278996818471582495575106312462165605143250861248016086696240943957971372618593301417046047751399183788230799382932703334483705813150199505302634728721514510794217299983702055443282498089848031010154924712517926633623048037998371976430019609096208056953552428672991060273260266942493574657973132259030990333156461820612633731265713256063185804224586285447392032942102794925725735534517981185281111293211839261027953314849437663567496030386837424159789635448778361347011822850071274209918475775462567071018125974048265361260432153298614329094216202901403185117894503780207623892888292608761921177292946008313096867302468782866501216188503887589577018342382696676753946981693781934274036488442352726532213395189831797901006072153995399287375905962086274516640618371362432063523039462730401444716744419111027942261853438718461189127314709499722198623378381353380544240427335609193391457174193863502194397403749811181400789049130254136863850226841359153990292947073866902964924594301875307160692959678198996867651262012415333074293094396615750118098227352210873382539612339576680918094814531641480064538957204063998876732691057077471483727984081779235440000440154070514882810551677321189500320998265909049327545510674610966193845564102255772821399475394241671362199288068206733901693200751203746126674830191500200285245461912588232352201380915331000309819809703711185805390928767477517797444568080567144659018442030150530380228942519009132901767062845337973588752004697836436849708053345230646542930529928080678739303486494291913302761838166424660888152541152486208156678515865511456788201402802685456734617179366574177436199075502287126475011723847927163091535597661116998496414300775692993354727181343641712091108420997123279496225528727665364300495237650337421645284999212032397154496379270804934852547948057064719443300830384564095393167730989304053137684298111403054228497921065035035807278935187911934028455997842089278594175569596972106848897325604802731348847949818872726542072355086358448913292996256266382402288688520972146735169057478101864327071240058230772464390202076555533220532614499102779081675897328795630097235082712039295647750722380228892320525047596426419418890646845128991984299309817377890570960113802331994401929809060790205266384223030221175736444846853353172427307395060223515145169734671944429264509955191540416334407584090068032767746300024038058149991474851224056684733230513980764585441714639386987917353665014232228627149589444735503796057783239713483901612060082583950643595312264649475758050585634879212132109224156761473139561029948639367500080677484612906542671449346993823960086207104843891187582362403601696057078812141741848873838625768015078722019210424273222909197923737884528272373696349393233332920210089910246258596577218886379088473152411545186686360459497529592160927119761961450305937819049411919277880778471505540169255334699156852276896969912510196187517749437942861839940340399147064867379046321773676275241713683042272952639744115527123233579346369403855388481695020355722610047719788924520878802979047108022721055565173956354671010794736690173662030980466107442441058549305481120005099055742843877009170257707433119904147223509862111183948244759067129149853044083043587461145619336851278979552811210279987865071567428488264610880278154818887813968484573160345265599565214258747742969078313124026617573670006373668377071991138848524341810155509164803168861775952673285598419256960006075469050712914027718953353197531588383701731803684223092815000912795392318394064283772255782072463507357602628790835636187541745457607272066900588879177520740284765841275459322384764349853244361191955835965555381690455916561320270675268264500634628511976736532118076341212993798859257951816045447066017877530130744338647116967521469715671133698761990147869676653899950716649458968936091082305090067735083120214734465032463105819821777471972149589252665240322308004413384006044159228312697996954522872865881351151796201764155395995774006878655570160644985628797121860318455101375993520384786841542070765446086239526761724627775528462707063184312442636425891968489095645796028892671435094981073804942779834874144800520955285141014276706226714190058133308628171184384155713420663404203638984170124006533055102441983891736442767699097304209698131168301459312922565232286138973315982394753954624552217660058745366057913942975203262657035586653669397904711642566144189060684440210078600311143318979396236929661215448374959352782475676969474173773305499401172599178256024666302914115116302450586408540830191330528882073333681814161772091824062897425542183296388231675125263182255464577693054981929367189425076708803864063709777272926318370496332279694136134581938584404064902162913991487781497551151444961732819097611714933743302583554032183894003967431259319066531579069167910642283744287907874244614528665907861349698342539323785372463162158260944854065308562682935659094941985057552078716056459931952521117338754209669843464580404740737451621822111504157824324116317224385031921100169056439504056003789306033965131239808526569523113298704576679664004223033477423219211514384940674305498383078008009867190189063556706468377563818989628101094381452360120493181881934723399017614431013108330377942233802039060914300895967558113901476384373200682785515979558139865010689481787980667321516284695824557074967267512827029473171311723968904255001349612979196842732475908243148977114336469127953585266830356499950474725222796194855594701134797609413519682435745911776652190870407043938165970457552911880309107885789075539429667812289129988384137859098211422489839692124814156780859216234272337097353132210474744118514890741084987375842668131663192670830773353829505844194656160708710686320768304893925764589302515370628334607944660643438442766756755418397159239464635496418008010783550719266735803505147172585124312344182080564111766475782835150351287132695525178729016874093297201850035371041275278579302674730564259583522296803801844621224788516844479422356175066354724516496166788128304357060554194662691441837687459399519711224160759766796048798921327922663469430046848836310144247568811009158655316236374563677842872350530332601016109454089287150952956572216546856813110741965944862074823514618857274031593726641565190454375874437998665333516295055438005969978273598014424867612123201662289091021121643815883526837886278661924544055682773479124063658920405551489182043111507372611227499201251492546514432291754188411465470406825835876546854320608734423602634838644640148081919198873460099609935321210376649038231478695467184132908894977621544665433430168736469509789310439174548425483802169469405480997783168889024848814801691935287513507252472316478809594540717162716691600849932902969076790849718458128550746303458069719064274567274641849408864521714458078091597909386639468383392735409139837559638751510347460295459130659280333704591268549036547528985446316980590573492894084953416234792269873841461098916735491662070473518015515695148580428802726759610580527660836725955418807684602284614854913063476753716503737328505695776074208358700804968128559018560967903816506808705580663139749808812185090907401290431733781710665282753793702212932236336391391578679185312724365787561577752029334964048461238876132464953105013249430759533889294760580259464516486949427782979048634836943944371141367420066339344182474496334004187958986886529703492595071543423452749977755168828666310823855677522385633789467170106656567097846357955154959038976618126213466792640458731465705948631220810776172847934776020020209957171884205023196743465104666187600283455033837689944502642395439637206607946312005925728171076570435198398569387100875948793926948962831533924301576347216389176849655526251465435555748231382124299724285630606802655815526108815377562995602158722604666729940725814866783179373774561973883154508808601116544821546353601198881840076155481616360485661856595972842177378914994159685744889253862204625338310986608897044740073582145833628249383548780309544620088725527791129787497754304309452074509512740236344876289080117080993287079556873860730212314246861889804664633287524387949568938932973683556050423703051896145781372742696667469887672364514569734352170354627999674475398255286694596537203409969460904028598930474783169453971260710507200514671588835643819648863250112220804378960217025865863305405358071644657695407078173567126790603277751507779324929935557918764084152918524622249473360442752112693210126297228052978389834966569997367960314053690337741017287979811545264303966581999539358236760048654698243846781881667319976840032051016707695974866752973482203717165639910754723204288645377596380561796145187440700914657845152642417595990508317243568271722023245433011684378571469359980342984494639363763158732864731194596062864412753217793607532092690453807209072213827232433837374143069585129427275618208264487877780134430327389472805402518645478716611286761509830688357732424917632588553984548255631001337632845622256833527139187015427666001563863706354991876763827450213899063434812205695252424630982802152683615467610273259139828331138260679246696369508976906781267438109153105794121422484300467457421295461115320822263285117371377280145313953333823354138291970380873328834434543251537351321273180385410475407400790255020906877179941315421700818510819285034507926957999587868292711943138237157508244388832039859474545283774222222460454369708396529820212014840964779643310650590912218027147826428376371365666063024181257311943160451737956902510214497830174197029773899258362715049961797017142183006992045588503887865990889257974176942206083550456469926701978317459931262417720743873230676129174704413523819003303423105234526289943742752731062038144489083951044392809541763389100891512780809085024628682113035904229402966094320660492940398044245707011989594007759653426851481021140988596429258594435339095849659318310656068354085102125433960959996212706031942392856472412213178228615213983015904471879735567165190233461507331598591665698178357890798771280125392376755993200443726736181360726805255084383466968401254615348877701960990174420200921841357178960762180143109768589204357972927613440646092847146956645993185785425487832979576066392345370834804047173317172446192561942889024506884879083021678606790569538454303325843635544248996199639200444326853332204044861659381095433672984173129889599816183959728564700263655694460994437978986579432585485510995054381911760632777833401024207053272480383621187988311217931164170120798179362877537970261959356516085816472663974954189244758611567369978427060690008494730609367077560811552882920849433578711954523122855457732719820668322380537563398019517514180769756765540890034282602974474837344520382940677202077918521870991171559836593636676051074319691616257959845747619953931313119715925877073044517994056926415235587430659373705635852283725474623295519613483117447802619304675652886677466132417703043769733706162188839638221022958744549358915026019974679766026574322932687479361727752575830719336206595856755127734743133219648574771623271306277367544627630069857924740716397171862589796199308879121526137958493864361097232944335510172927643362369377142954150018343794923222629037766906089833436776320847799088370217943067072537813193047163846839398837277583201450769891279392154419674727864495629126781465123576337206733884283138956147536618217799316645801502622716749127730825318808757533965223015273514357246231273862608510776787876625356008391576357970505623315333501921046087160768494156663987666669162091252607433419204698490781476823312369813572850385827899472837905560160374034810036049662850568596990170244220168162653365925959715623318433134659346733257374298971514913843112132013062196819665938761959723532972181899786087554482383371360543265040964790074439080248394585576491024419849265590233081254358703194902663035677533021589738722788705170124585064967448066742090941139685349647377060923638243404781806954735049520847710933348186653730018446321553854566914926678353881928728551293366769907884331271611083925664590368947303877713766855110002262370411514082898027728195418265822752784394757855908057957000362373272114483922841669766025883661933941578452132815818142797625969194489643211681801657369068104490036367984123567630844374886894763252810052584254438944510381578540493899634020884150972391961339520829267891509142748589232281798933300866737587331617225972894356324882194226760478303666920712319748817234703688896674887754011621905566236777487337960162463069516750909736234407657130113732071090615641451091636319177880386911871340906010145359484922777481786514254769489172572745450405100854968084611093376754432797438760639458435399906154939646422817334547713422879276218095966076601317894446354835800460063300072195565967144418039985883542400304089083563197173943354700365961853038446950486452407112900244762379606086251953223055484562239373270513134953141609875110719982995228506553547669105298782589044881168055784373633459102301877183920383748199765259387868444050761285485389797796799687095105606315598921170314955281609920061685851050225574129404134071150170264727273238372717673430837638119943573623884017464985813762632564805604604576283976870731318798288158246483176573706792194210134567411953427954761499463316592635866630869461115746965432718210045198753127510933403633751456083999539182610161463829077905054682320350170598170204812871104555957069616377079653076925853286963243297514772169056322666263119163294776823554925019936614173494291756171435730288922117201882496959311780137186996128326934996304063748798334169450088532900410687865764147305019749333018440232705531401351561116733317477829654025098071620446867210250073990621979944038607672046166527778791408614334280379309167535775159277730116796088247218122458333367794942504852686513582512595858240528272385937415412573402950275060341714355926970961128779721064019012376710758773378621181786693049474406451335172330496157910460869412363297172863067196222625371516376650162020774334004881828760376391694048803701576431024831348368625412058887234042192818872265768548251890013162927356559323454297984776861268831255296748593356106321509739167461941916063037304042756391606734602125020856582840110435265944902348180588946068080767069495702032784517963639687236753816332716687840711744590524709082577989986438401043382318608281301769740908431627063097984028229429026875981740347224793458475802009220709736331106372014174208053765922418941160356229355876268125698153045215008613666099345139850342012744761960375770666954087899820172036831487338006040365222867966143556425342344192895702321703559452547449265107824665278688106843918914190742058585688657528778475460070596507407392335930771117798677655456310908275918080525354943296920240714555170756619555183344692406747253672743428038231095961493306874090344291150152646806303212718029504857103948570443336032586608594459081022746863296991030276359596865867492881420025593207810389389963975776690277512783003214247567141823294767203032273762580576148244480933690437325920899643660600274746628151358724262659646942897781496287935839206663564819176396699054396733965961065226125240429512175955463279788145977950669261947085773565886965879529296309488211356572191312293620620003418897697695045785312597491409555760926400064682393482046807394963560317905946414017124088635085329150006444672045730545213229733287945875343593604145835471614486062661364273846791056899029223732068147923826864980683851476667387068179119766306939121259178268596424931973971399101690969089886294170202261813759840768952081837755149310953859697566981449237811476950837865370658152975181349797829970812520317946415741017908060300841557742919433761930202815053558099415660864510452920683342400135009955865033097859778871415392822420614011827393458123788219683276920947749828874864297713678174821986963449474718856197217413393964636120514464977991898379274191298977358341672387335160818021154887201720587515981211657511357658815052215277578361342880895501134619569220288803063171544446347529101699578177450046547264548961376296674925675987046171558541812283906681113360689398615595748576478618718956452517649508519160544635914051574482497219981657276940637309715195403773986269653777435653035676789526772508195400032724064067867615516774453688543698134084534949225751578136390165883003013779679006842233230857578570968932257389058815513920905140031356232527609093510847457116365810969686151763716422823404022726519495258174241317558598670204477567116994069031826053064073300354239495687168448238634452485953262598281280931943023304978768823070347453306406757411926878795144090145168511673808994624136036208861968569257304405453374372294215187302736793863822846725170688122585844773143912676935255607705789635334977308982935605438154230204442762429823507296609338709145587717209430965605787414710119183524704987567869633760634388101684589242410869838204766499213011174447800243620331551970163302919496021855902156463488454774271043608039565704101782625103160149366113269032913815617406875752504216732109987502320393788186694047413893467574007548406721710784722208907840548453707273617554574621428812070399112438724566298546616280051462656636797278771782117310813077220191458583836381189408631273988206513137343405499583326385786646915536579874951131014175420276376180550679991028216085759748035688149780754625600134063397641410612163514325078756250135813907765207335089199522259047610477319724755995995725023454093956017327923385199878674169418988136766311522168095267772271695455595922635649836039146682085098653928071839560140915054379195493876401557183501977564971666597553687260128772444975228956769488381335232809129698694935248909403548461363656314956432089314829378014160506206936366861954150677337587791745779386115916873059061257898507547521598023887532692346659052043565520055420230553281717243730753513172225942377590476823939652969557075411896121802698987024211956666955467186140667287727008493860958963083035972880936321846931628659345122290720074941672908574035398825272131370630443815183556766002853441462117117228691367403998619895840821124147282504573136054236118923416505227018784353538263097926855311805300903077029347182492182157731968580154987628149677874733626989631578820290966021368299124062772591039559290536284880015338203364272979279531080801985132479725783192105473628431143399298956437869383931914604321889576925772873481783070424277912370907373178576702077178618737491987959241184827227821650449269601930622962520600929713910672900667480475633348721743471295416801448886970195359975561946885728153586612099072026745612026290838808565929230471764727438518559769466301314929962081304363402733951625035928489587307276341697994045189616156303262993691222082226159724153697305605650588250187960947720659003076218178582049789135387583289056995949730803061841230331267495824731916998053256127816624567169998129330833445575776768284412829470324079684536857290236997402649463365779871168699818988222499383403118715452956750305330013450496861128232477891320959099287099267834687970398731945461891345478184335462378726536009117181481078168479021373861853702580264170821182535639167904870187977690913206014060216750278348276979861669832031929962573308238716332184176877830182998924738019895374512239976930299718565233432956978232335552026018204665951150715800207219017451857181916764594789947266978875888082652657998676892015290322719479508279669716350612043799447311852207381044612127187617209447389498446067291033286947809521099434528661693413887471635132997391331144355936975621267746969854378596751574349041938261756376730798124694192516209284720781232066346314516349845608010227630652703634275506169372447434219529590499045821362980631556454690786380902747751712892166257555581749824156821777863662721681826168112231267968851867939103472558754561387251916047496216996133945694946657733901557244089210842377468995406150547798570689049442085530127420559330622625457207633950489391980089980656274507731859601727887211645703588264516864953332149938808114497873604287758865232229995056835775994140795978247464292471499037093716080308817027918992306415880182379500070893850038687287144608526938610704920719495362677039259853885639081436456093320374783749156755912251078860678031359182781032772280851194216852028735801526606526279060799970697150442459837588476932581295222028710285655495799940361608346122961375975622084074487151088959721433456914179210923599205563316109910409064868824685451815039712184343628005268656646924212631197008229846020115060571717949079487750686739156954236796981554317610780563904967966375166755360741165025227768243961485680804876643198117426106548296917861571468232906357841993829578441338744212138440985781986463660742961330822506178948193862117056549381330219400051817508234854264282548234014195471748124774673438207407121507463992867496608567708999757520290972623675628703593826542878347562267173251566028994201925117002159848914648413351756083185276196982560284288685081462625207068744086018427713803803384705711446017474255793834476006094222821992893697542985027313709209169774091839428609128332522278346940350386288178222942979339691729365543456519645545612889416863533854402570603270470632380882026106106254256524975897783772978554409786286359654115363468685249039598573918659610924211116497427215365941445448811050899113258825453495314269741276645303653431710872902522161610349739552684418970428344282394958847865725667788675072487640383450911602745524988104933698630689445112693706899739283888008324013940069393796226223696386007450114345215657846159742994485217451048829605710921589155425586542560793086431529985593620416299342730270589834036033318998781013676527818960117578767290017300625633859399298143841235506957435394201272656801023920438504397422474808903551999655095180922499839778613074428275990652882925555415711690985903422330088028453922054747334735546025510131795281859595279102979347456583423555357038516572289801503515125305122219435811666642788763064506843477212036116224876014070306807641087381983196139371719404223888526457595770778276452943885946069555763920658481861229660291059968508932324707702946487948480964599394242670566657355306633254062640681085679259776454542276861698320232715770676095308532652303986508204545412423719774900891912953956851879712618395898899252767441931879135711092401390080418156773336906342332082964140419977903620695995239693008058696501341951707693298874445281509189935618622156978847598986167667728845040879471645766661771182765979989392399693829770956579766422069953511060891492000920270736558514418327025699085850676207104496409648980405160833483872157005501564755750669726858598230598982164677073997198096020444669054096881201189374838794495217928514642499420947241491375571589716590394407168232025735200625399439316453179135184643361526289569542748048494788600099902435609137821536084544926390891571075465560648243554995627349873273168875469857838956479420549350023060100882676972629569973374809599896081567179705612460807470202306262163447226042606348553261635939295530447832523432257228231162827365023143482355940528455606418959671373665228555739380952856759156681075452360428103925982104620762725487411987610747643744753909672662298346422794495327296805394310040793619950192324636488930496102255982338308949774983258793451390534029624680653330362323931278078493949943201233131547580398500800336602968036536236452388601738304845376491770343688283465395740093473147561476916670056298575435945036790299519343522031947698729596112152497201457118860861309199698383482338401321496852189869355809332492973671192558049542102386743883178173353259450809704128891551745151450706398491273591571944987715147270326136791004642651750349065340376225049807725365166754994894529349720579500246578424233899151543794259375689852532085573587348176050477012416705489158868327688647262597691158186453753165409869667630517588452361734444251680997931668734733855291599512777527056934710090788310161689859521436518694078018007829643968112799309179125869850797279464424828901485852985549322517249678994414730148989126235351621913417658169526028987938034548600052594402058149672932675535564950805524353406578044700862058392370443544472553269650433860409263582376489370157795620988294061057396560390065371773501320781047587377541634739014320059252666374015169216915377170916335723317692929572840388752948297202153629734660234449805068518653661394691335321115903524207904499439860714396754005606666805957584652863440773395681365795348589300710484085504158074654899018125497557400186642843679998440330126134709647652701991896180614828886019853574256908505008142850221687774628107641083882232655240367792269633301333387812863004137153986492117726147036595871379036051605140969200645731879920605483150806877528728163329019743698648980289817790371635582822981920682988819096533670596845145586053009110358281897233417330354509038436391418311559405982887699671301785295807907794352474080085932333365617966874267050651800380527251634544653708829608700775873125805496494152590937887915170584015455310738722640503582389630067066823943515318440062632401986244832060554861988954876817202467366270709538571983225372763508744695387859231755864351021678532753559772023435220408647197303202431309049453119482786864368809298629457928799755203450324331695052245119635581123927005697724710927069464003607682964795381130405843550323612244996111872455184368452660639706151393704609665367542077472146951522457361288705818583173495972046289430441775341490584269872250936931281716508287367686188957818346741503465620902601399415096547689322292303696419570178622710407212806120473958346597398146577070404588622628187465898149524744466794772861479632195009767839095426233057903919402192500730429170833911097612528699576762716012563641097229323251663026610804719185574331497847840023641666902814541915283138218683236503485443931695936234937619807776520383958066133761280165054586055219630173179164196569831059452233634559743862506243970843377801901352829335951542703422291562522284328964444584439171078107443969270421432188254346096853131032287921286187381914113490785014501617340926258027144925570076121724359688632259370639114790003587352585153340593364539122492121751920217056414487056350473926660318122213214756227170132938218815266896258151064310060629594228419421367282597511103233705905501695199752486770953228942218512377143415704587935521926554453247881235906289871342404933841125044420473204903085808001817781597818573589570266950716306232691613750426551265753789154249443450038002903092056075086124452685768296252014523786160990500346045780643606612805009221897771841973734530538421377409137082738539128173632193143783218205268079555784401882369274111105909325700025777297315405825294132279796227195276264438687162256115118640547848385210739617501619571071304346806827726252266952818956099344174704878758425307548654463464461262189176413056581748230964273414781125839163636041773360802100230401537902573909955725286814631784665214384624188578430730680506368906025173948632938858156262398088694342495844098249443672391605032743539316984533388758189344241916604238986885609692666782414482611950874389335433914675313696562238788826173136141767893838575719885201330260762535775590963801744070699631360963454684297009680931317714502889333023013994232544245982971052889550346432401103805151781566035290372279018552606828346489890546361279983170133381024003869876345222756993273348437786740183450934901578561245884721023836362455758328417901793384942763601416672815417828601335601217023139717322295162104823335540414473990673370790022469800044868497189753896022568458973518447037058327717538581153300936740037383347925764436994510715961305782682257325493734525112264012656404504527730863881780290670599597852953867219937984462996848001142539624416382578330042150920441266629262044456563186808531889437100812469954243857115479333441852301442197344920442031871306409638520935624731427766819745117136444648077089068923038376253997606691086965295726644950436466617630425788790279151299591071420710357591122719074927850676957343392134302899342780151076253540632521615708071509039992561677445848007854571234620602902214227927559108174608885006250832299978727149077360420961160592068609423158909038866899805965310437346551676894497661589054545118162878829363786116540028968947899155896315340190274126659106868266929200995842693934266523345978791655675944501137219737574345835851777225421888973491531415477245798000492540867319238570298612111037884025950405889324294257802148944222698064417698185440040985008956762523942754290117415341570298222053423300232762914290781489147731771824674239570474842131483510051308607410645653964534779887205827105384897405859525890717577876178045040282516372914288251909759084606011423193539001163146828686346221626567260436845760025405687140990698347694948449254656876958109924465460667224111815280916760129234510186274882037401302921817882566274633082040937861349475761593461628604759897706717567734093439602443147824801576514383388477941767844688243755234166561828689841064088049446034837675024447924752642500203910772446805287031756517884655158019814212486374834233777306310515805356211479356649771570604067303282474910230030987258642735786989205366162873411769350517205738897098571254532038304611704083717240481026887087474518874281967124083790567810380109831076356549178097378701746686975223908148858914723263793331254237278882068124732840416795249963748606636097615147226040322348199392409669392015478087798727401821226614156138176587619158244106269522177108681228483652413560399208588741213256183407733695580703798965160513937422619715744346527974726043171084687716846318508160239499215937191009369844097575216065825957016074452049611129593909165574613319392705458155215590731964504326917867749554858460464299228270680451746861230233214430511335354064083346699946998161071024885540924709766826278235924150374006906340333811345066833149268640056413927254842414349884899468054301286740814296281883522266968881245631881839964350006344810740356374049228069387503707479879610767155917569801423576464341789110619405414333938337750313183669362931616492525001519387628859447489815103441889427782029658782765223004168188618298225490169218964873229102758940382032331847016736098602893954353281313860814844455608300115083543755911125079043688417786005357555125135515233299665202592729712146248998263103233092527366453687910147401324272440387513914942102530992151059590906048741279919729758171805802051485888071438235006383089384563756770856762942953540290879629539984598381271655502519096138477458313434643543296742404046797583022357558167631899128824401031162552613588036154401847887414449076281836743384280131798800268826729628674922111334269627188351657056267822427990553964560136554198857185952771917370592960007997712880643201254247489647313104980480682092041862251528966626256804424529550038165168855651734573924645729414597157554026803167714985070226211033193790804089989772519395185248080638655648825280881045279018662972335824842094092250036740751024148379874078998307461443191258079948936219079094757359446911260153746160997388575028254387781802553863025517235922717434191537621358292049297350363599562809211123519984955137726378537402406797653314566774913522469283203266000274612661895572403129667466204042700498610888371532109727543858403739547917970602283213069422181683365767063004866096015615646837225084984521977666341631514501988906908234267749767833790842673029574763924751866684905021795195347030930468685031985519388949644564797639116000143564240457122729706687499399502732126947575065869332789337487553068296413012756854598648760726125567982533807933700360705149789933223434351430051758175365344565746688182717860648268160704756518348898095445439012491852365774968404218766683686400219818568003101296756309072043228560126083692673642824319403371430662803205673622823335042704645588942605282757157456659392598467583425702667297592609497742085196363042869096438032578829942546317154990923177692213952693655906082946706413170625920102441030762149138396396735554581846124341319745154359395708628313742122295928854471323239838965373156367197122569551910526092332769876587529014985572150730567161543434334046535415418108272915689532772592768156065463520758778107130180846976556869465727952224323852531410263937271158547920835436041265912840820285593920459749538321816394598269572740386263631377822383826433330123236256722728575397668323731607726668378234175943920135904080728796518151673855774865880046484806468961656606737536873150900049116443793324263728221601368859564568443583891495808639840205980280164844150142519706418718608045358769153933087317133426311496032213705929094389468084977255776765050720432507282839079638159026407844300141619517138410324431918974303258993876124451227228917339375309210677105328129869249631658474100667867759176271043713183367657001998803084622889303603182253998233748872524675305262025060368767642613365799535385222331637203283307167626491747690760851188926117808174808940857707390023316934293592522866443255307112924343355106855898132284385977920313904523991660877999709934784522238976939518095754614676556205623396300533369635431702030140018080946279032652544107284664106345443619616575993631470788937457173001390178738901671768978025961696714280645914492924012330297353265995634109317250095340259565719171829421267118588853265965230301904666391682300478234589521554190350707729908397352834149275479219093974145880567646449010922128277009922291723381450991005325451899770910694693512201530196494420344314297156831194653842223140437462505678620873643840072934408490686577058624160602658989351016667210438677726859609339569577515004086569912513113798093127149863486402922954550101563276508199303723814686352832777834336083743209788187432856588874974417213523549950825168168212564335169421345935743147122824636692672991282679223386998407012007759191076530842307615535117335315964553767105295488191021550912798369524006134250190418517874601321217267903765892136845689107326646753997803927160080221035124152738223635693681500855142348154920049951093788563576911403451406286448330106936110279692355985229459667520012522199119895721205340683555459413722473623759922780247123822535693171338318796942362417382892236570497673785800476877855905914412627467467815113880157923487778318534409006492569973314673612394513042798929839782883024187206570905163313196284127631889547411122253228948091029568727728466506115995801288757542608393494932305276588852717340182414107582219800361850782028215193704297089610196898815745814023244088791712111012451522256669696981674843115638048556721240844310466838527780162974654958684264861776649751984651658036943064509285671497824960168015584433982037602492357967574190648060231474494490116968076865022504938308935592260106360019313681857734026326675804189551961781751636060996310904489079587555686377906984980973967047600936234696807763399793321613943021902531087732240531937000365483640283867272456544670596676876755246377447581947925057309564812356561458081323593230215947351404592193336941623364005337916219361908378930706883682042747134110846817240789418808845051464600872425377852969121560931239037085525986036630422131700208205937106038816071945979554707618770279858126535690980588455082749874410338436474533782566516322430102802313655794949735152451545036243894618700915869466971466186812469188223504220388488576740943436195528329834866838710934774651140177207872107370234015349609018709710199021901691295493689357606296588316707489863516323190789525144328918311641536951883520526738542122159068271640968297854439846183168966664715218938939242354725608325121703365169436470369864163242156164646361719160342586819958689542480176278961278080440414880529769899055002332420833206215298333779901253185431741112746413836897102834930006108201262067435887430913058986831389922821426895920974574324631924916945366781212246915135664154355013501697438783996366653797752484249524269391146271478703671544004983348141391207948851339720639547527201520747279167171187190179735638132276418154292771413823907339916815129617713601579101303925962631072488413153422224249259625946992908546313182429968957718631330614899888449234097527621446156817190023471694810632482891142651081785729016652371449084160803697598126347317756737920991007683099145259608537882409920883514231728205058520177432370876931471440734261530514273302231145351908817146847010243346678624740043429538137641898380041291341658052593108834990518651032327629295344716740659567373603378659141367586491056987729379226716541061434897012138325061226735128859509235066649564646766087358199013128299382308174607739601713220604880823433671168386046684129397965282332920233363246254567283755201571718016764560915535896977875961774508363953397950010767189297234884198354376085440064329601866220725379025557820703413877925833573930161342578918531163668314543663242569989083600204470780850572455707616613897143208347208211597280091742783733567934597263049841899522414560132612900102085620789288576409323092602212522933585763604418046974955118536869907212507112602618178732588845095014271620064363825076651770544467732748547206454773754563719376131918292419010854214434021003160324144397105096101329462428498561009520457528247760825217539631090684904226483843226116329767683307322148293945414249145719180809013198086474877644045866683705436993924562238381909776661408523668810807058475653161663946997488043172309650477135060017126287513839274913710239738484758646392980259786414365154795684021912831303256095466821735169654945435729411093910690053116980854934101908735746308528799274069648765606656111054607554864578188543585277977800904893211634622892747140452635886744099903506641782756710723593137859733081854030965170017626306227242144558184804788477472906562513036883164442606080404345756648760191199454187585520136520893756469928615382550805152414035788191303786394515070335324313500421044540694001681322447322063701387939284388250320236738627072039338737265168848955749346407950272620248268909377046479019675086908961165489005209382891216373167378094092298890834257952388124821680580871478914940738725220776874799006563638397094033991143063644354253786216763424946097689396236448387080341427042845145754506347069206194199008013864750175791568218122704295427907416541980109713871853763112681223494705314934517549707677018217436679435382694276243674255584393155007675025762499668294051456867802294990513630302528069609145221940850231256114718301932520556006956428944674103689979479215261334564953152858518457507126347807492523310979714116025371592753108902732741986623177334208952178814654500620626143870428128690919567883547571858695142546641169285176904573049022274802980800860167985615744253282327965208353646114125499477697794114074037797911582029227251883613394952334158952712707482374185109855330369047965525849382023378188417267916058694890026528128546184567480348945864497938921552086943488089093030237290889491445566815669417729948441545452041729488533876273714563382058205299303225271193032610799048132483198508598716335070608971897145471023942868164358162341614302960197582062588679353609208377547980357558610220979353303798431128292916629714270467195029868045171103193059212800635594078681465734581160543874813105827718908951294524623068384046939681087101261172245206261710672259973639459748262103007777329585409266829900554393731702068305865680315654889326707074521216028355781850111890248349445602920351746210699321638152557635653018725162153876817934899331641469443240921664881385872753298836635702431662996986028584632130643244515120576759396764059098814221156420027863768103680329573752464167031184562907353859391041352414091098804768375689089608685304518368210334151638395238701435975678168596523623925911876208845465236625279722465140845157507611604564632288203449012942471903031606996191043680938871819344592430712203540538113593568981378297118425817842966650213737435200371997593295778466306886639977078898658578513064512898208376293187288173680248154741992622173281930772559663507117377783492206352304255250249391605466913843932355557587079305231101595740354895812029275622071621010983848315729390047221808736148998349355482128765904612707044265313101922017181814337430620514603092818930143256955648289541677716265201959514084249588850140291729587792873412242584743948486060250107000604975904826548820308834673031351531655833676649651682288146599210949498297052038072090678095175889455871301441010258001364143143735045359765828720495272476150262475152239816596948775269540787257802911884694881007620343594950567106424073902829464778170575521037218012799285064578718500059331616451114331248003939271111689437215216727963852272249069228609739672058155161297221217950946691991679884212323296989880932747028914798173830550771636831657884334830226556963134519133003979282055481591546274983131534580025473243003918071701234485414292941555345747572643108213117197773612185607559575165388591100880054127309569233758105854403099194758449159588470657422921838601181054682813966339427350280866062954812284995040639136999698573033292797489323257353138460061210686965963348129666480430191001060730505657933079561385466364139754188396879281769176555825087632927802430158750743677898061336760338698529643525698896064145320831187672276436977215337641517219807181120055310880601630856078299242116734909689381035285770405267711359873356395377625733308328105922606330316602905055393259960621194328849778513865329599312277993841663909519902585978918670404353573592909015545306730511667576766453890120773889646220198060482869657189915148086864607073409310804792964152276270270823940284068419407079639829433818420488251041962778455614750360394070997962681370398301107001372497567286819586270634768929821136527983834231800095899159787143498672671601232303388127641996253239838030599258310109717775282429127174438996766591606561381520456460887951463797097799895227068925214713710945915725475775315728724140125253680212252792398180394469296321977990018299848132631140790510329233255800455033318353927481142134150664930691419155785186261641597382471382090778217267867329374827188031250072371637944250555453894910641740513347092484505964259742414400481814103046530024182155032412372532844065461411423534942304083224237337462906843465318808357954380273794901841251878739643543456701444001315868057662930200488501685473284990400224402053496232651723451510359248555493014292968662770167424879986437767234535252891700484740565876959692057548040212263945892966754354414037869732157673761920290020072151018171461724709244381962305988995750426388524024385851653296619925476838860333811457871470400018623891038391164259281445191699643501085985596059564955920937669434820090713986092666222201755802885143467252842955334028676129860027760102597766434329511786307474640170645202195203511753188152201291367330125397228133028223521184445887158479486869046446094544704003896902703205187459504545091299039033222234873205840916808592531506359254578586380316518592799613897978488820868598207197508797268107803425860018909839078448303071538844244345220380614678284629978406403165600739685247619466211861238561769447689083292949115811152675710665932805854601827351779440977446748888879240114380027741612436445100870815871053444261550886711762195827861040246536405571703799530529256438747565088841251139857123733635355702384453381237976403958071325821865662561874268848537787664757800848120455105257794355030428591972383912623491845155165626832550600756850947227124211789974076988318949230444589969845233991210986177598753205796349608176125205715270283215286917564128970904858082501475965680079269670053415383957261374552273273725944295213664264265167346073184158622564849613118108330238337037244656919387139737562807494856677904068104595253048494807489248184314574703397655064674608800633700793956171955882467804207428328934662746970953703236021189332690632346443749060815369913357417573573412342999998622474854219005452563776039964161331104542378496226788131005211415085199918313375146661519906586946355437062355662594538014169156886803551827502229421000162478412318616583607943096244964355359240182081856576302365434102039213973594075823168930785073591873374845639426580854083214622663913980971084424774262292225096546021214334862662721899757750654977772254141927873731762662930466409864656553151070332616856109344832762057191151417204563430861295649002078482989150310318414841785811280227904377749573095067980274495501514599122175021857758129171965784001109828280701872353124843480467544297120671514012180450148355062759043044754858693797546780769851207579137853939378648985875886237491112815502464515778413251784647711939131104749799037528855859542379429950945150415820643657314965066642317738888525693010409444232354468051586511266988699998470262387296974277172374212344623193986137087363314936558774787692026543736494003574557134948132571350660121368153284930800307785720302143507896904629444037622602547137593622374251987712873660529611806177791123340876979768257730884372224362025093045455317771790664529815237979015541346140230169404324741245562758293011738090956818722344103694819320348132797816680954368072011390316376519688785043089849705240442540538244119297090817422024449718129114825042085800149373610651629817873017024179779310098531310079203061208570597533490218483247908551833928624315292050276742501482326309210546394351951840179050005738599291549587207325622679423110336265508363676973377011297154972438910840543092054405385806924549411227485743883455895225306800107618761436421192457686321625029829270364040610731420455888104748525208387100428014869881976502952159858767550400638058533743566293882846941203456473044096689512723108475347009667567116689436899315339845140774939716174987084342375653903130538057637953709930474646695794439338830296949731810644545577497758154878379250299750050757704541487744967243432605692929006265194758935777416985996789073034439779304865018241824109540178627438320716227821628228210333401954497027706461013173579815958400555779576474634250256566010954597227586197733097257943692386851263560207609841727349456736975013729827447666702695839686377624272497772616359424306540156056944058825180637831636960422521297077515529541650009760264186147631965394228526324764198374532131577860765497981549578396936217528796339444085565670269851933395058227227439933483671683647189065360705914928349532837669179010837688048364404322918466873512944441247518610336045494319967483911352612175902643720396061515655863638372427205206428107669393690970643265716205984975860136956308322121275118180180263013429475581307928762321372556826080857137208501298989523886739717349687734677273558769937971096356435691936412137905455856616564790830461960748334448759663930248269113404413526793525289044240395940253380559201117526408497883934285127824919129607219616942748366254660491916633657395165796621104616928422911603585435260103518049633535836381199539642807406470342449883588815754396728137945340236310906768367312136701209069383737180553300794125143737344898895084542211810359469981494778031452664432287358656188112721760606853191502584925754287852564573406939103411673647416034517553553834829468809440778019923150629123385213461093383023748655255226290669096329325932392707250353050719135603749882122056811791680670065154076097605287699403574753116420351002386433597470744516208514911030791061917215577430055335519656536621139326328825973570227404268197718931799603595507792799230728048616384305459795502008895602436003789938225344501907979513281808704148200708728372738019849968994658183514547606949682317870289957790169191345376225869046891140705642555631124454482612189091362859305227983863558535190288523403594439278364506375374104075131994791251026586099235991028149728385789560999111122250051097816379670768583946617025770430325533325289869294440883644371997234342358769096537924436288920883252354904567957973583549990051474174772819335634681914010637813961394518233395712466574958836259348733284877479986426028517368248585654589972708892309025943409299933872689669404269706883881436112154966830630409692904645413206432775904374903026196299799500315852777126314323227526170264930626966926301236183002433843281608644466286484543148210450513896393235579343480619587945264104564565710041834402577916216902885232402765532399479138234267243053069834483484897923937494118938083778035114062043148699512271116933310529470174800769301861789365973360441902512588362605860605526273025608325774544018128887997843715162632985600025425426961913686894835560355262621671001467482075051832079321629389181324493508965791985525379087899567832763177492627333905097104505404593096319326443343663208034317856947265820986271041293813356539857182886984235596255380179233101405148375377448433906640955937718002400033049885038208806450832708865214449369779951696898196798222908426110930347258324620550857120970210302325629014858461448693643235193380397951391251895143220748963884917567000162191496873033492802839714019657974689763986412351208595023006447708026161160030287933608978859943431294391917670857752745380151612660633912394540180252841375015769528501446432159495065616012751476749475136656600357187343895634212805958360568124137297154688784170578879602374361388201756187019197280089529507242282085784248290218081583770316235141880358582972363263247006367405627621916190534137413548787269374491460514947055402156695521246351753473554290299225492518121619684135320075187201458202863722974772191230452644422903315156250216684365153642830682357343777123170227818077885769595340775131363247391052275690094131579514127505523100114359823187116832652696733599249015868938421045986878344274788224745292744895306736593927982773495346364922113334472724722825930656956916120810557812251539272326855891988743867452826793015586987840097453711211270221303781015630188350513966992368270563614355711162767823603497559439411720192668019298792787579985547037899978819423332021607957286536287958140596099194497524312828581838247178691486801488960938070653783113652742951168219540020199499390955488799923574338478758376234555867934676149046880005978660436626095779775026147401106345722784811432051463488491063321143899322061554235645743682497846984481207890117731404708779408519047758609958742973576509414435846252236061957848320077211341637314064821414671495235105557015879178944080313751049870118401748841649183182949660500176943290363009809971688201680833123470337000915929070922121236398963174229448189127996655820203550380810300820544442983817341177886063570712142408105320708604387577605576369957145151405694927926600808673636522327032474779605799309298744059305178000795793413028853917680831026564895134305279044794131973392425755586360428921592580281682620228529981937469081534845468951464278359525310441782916607527047530258896862719405525115182065741014372130002954962079038472265216444743313258328398984148728606637991021302015368575243066484060492763711733602142432139744652867399723319404971018428417557001642640014387001959728572310502350770594965754925253537402134828079116860179283003167663908005923987092576167331929835761774091198423751896664087345571286825611129591865393456684369803359974143943626142513324082392637459165243532234099637092565231275543334508564376619473857715600710893428964327990837821083182062034793166042219656338092854561834548079157745187420203239198285721294187851922880121209634943245995846167721206181231511930120248012968757754505745035648273322512460355087242513986423473007640942915087331332956476701456368243353425850957603600724635756337047492364017782490211015681633415816393506115862234359847958807691507744226622442876353464952351354893195038002825324325547839876221915905407673274378120941989627062053675464717718490955735475227396594202193378333456532574751155857376911810600670089417137795536498243178163518095960930552222454685615278152722835595341515216997957384048189356642395166579293292926278709316692426731041054305423592580046712774801697594174476925213232361808022563502535387009602876926853764373308659194296674626928134504727927461069729032561142211276172349351731543395328210409452405008838631159836021131012078569097080323031625833101578401941053428765781391588513762972761280720773610790448203160694019959751588595126575633370450901886797141528383230975781137260246363121744134700126199520616071532447400294220856649082320652392899909385478374621493955845812850765466950674520621511552269305423686664182258392054195387898784020526490480021977151709655458454202812055072716642474140885419413509622441739644869690489811585347460002699093475089374164563418210420003192964844657087610337235924229316897767182479694385685785571767807115391296932236038339958635916284416493494591722873543792349997406688058815578952336200752529922035395926054515914969921367677302028790252822614171543548413840058267319152961425470251475253745012060335359443965337689706436814333463453713668721394132622206022005925597337719937212502485933260139007533048762307801844703455839587767656197630128704509465509952735187831202321703220871474052287156576991643928761328598425637187663201599736886223042049457040016871923188335312650218909937756853001274419125349365427790107451070349643886569704493284349321408900812380193074330697718283856069899904083409029960464583464914453880223900636165952490962366236956373552447820807681524579687785000144701668892341279159493112084997657323430301533904460893137522908740420936182677999960085322259175580925353840972200641294285082003674334914014011129995193586037523815390755195412579136431891256630871092010663002654553677666760049118617106804260994225651675559778121836118577999514649715876598952793681753755953558370529790144209435671089934408285198747282438017465851304243548200420628043362557847442790163779902098851395094151652342324618754042548294220795075508308387680325150061678594305525698376629203187094761581148306166693889263783273977892099887509313857941655556288877835965798793241634385771552748586629450458804644208342044336631312809637102270131833271277421397932511509300380055421111892186862966162089581661166613137555724846299422302417627261000902834747294266123506188036259161218445197695538760380379828307389707828022668448997874847393087810650174159354968815584876845429955635574540369736456467783417198418286476059258201879499577856242086512598180875215480346531939445466511713015178534899016124654419431241272799098347699361080295445384603793753219912037294949246304908230644625581564867523562084343361102338262902175532658169558286833937470809869427022607010529519481525941342241403807185618796651687201200792295510425432087294881584372473219019044720577341794744868827212991231787872687429523468596191919269058287160725094974268970119144360606014939272703773889293554874854078358295087968406535050346125172794735425588657565220691566496391083957028467138789553116612253600601587532487119150970684869576469094103723417352999753855328819913557862585949168519782534356609034343862795880528502802582494256550501897758529070965155392311039641563739384564367802352321626774550027881014537852730821851796554944061833704616558890323723829966143268522571106187340641435566391547105403687819893956233054497300851171033902622010603351714949670856635525157362423255901072249818459824157030029272567577049896802965608822082035187670469802972336429003449208705181334036208861827396675439123898611016192580023105561786654293734607826769428401675778418221310305910844462593378708200928459699475997883853787810517609355085487379789917122044730400096938489274702632199601227451717877397826064237566074948094457798118717215378779618148323364647327277939761775434511285218649600715511072768954475718416402025404257705050324556204338602819305186810663754851972102828732768092499108851310855613196321445409503236628642525844665314627970542952654740099998080002224159899455737108311420895074264439453441778991989492018943049346332230241886622548345003525288798537063559822137109492745512761484259111284155177418698198906385281515288841849076719386525753230723571329110685960849419594173480829020832159925946266571109525697331257948201518693592708181123405623974506733185814001249862265557053150080014836062767875857442046679039635075308256461482069942683746589552861616626616107192915109935345103855184175850238106669870126659603528971007380831240216086589853533705844167328305559212952062686337149564134662444489618958600136557487672993311934701316512540282159313366099998597799380439384687759812771697454984716315659616286766757824339809040132269750820246130026099403162263189701846535995879099085561995296574127822274207567692420518531219477176243530809606349322497294000339194079836169061438124187992879605877332733533168334687608571185101354048376107819623775342193594304192424541528386734551643041775281234441919727183425934242464265140492313534039260788687177175639818529714138973387692370900448893036701999540566272890153579385826361400672575283214895711430327870731868930541227839871454232172385058215241705660520447222862845268895193214134783178108488484018718430571378978346034781584360891277418224861996947144226326442805119146781955272247362884205884161769226860991186165899550833108329344551346487684599721527592630787154668031414332471577380592310433761935520060973300413625418253508417885250435525212794207389233757163960666720393816055548138910418066922634958703646984135818836980418995906196312205466886186802534157846345324208482851408541502102177492667938225618608099810446605963251129802486147844174151196080928895967856251610669674921728211970012815152808289489291918453634866282945836384340044430822505073515737937243651534947703802229756027483085530380332561730395012633374121199465558919291620919128108126021135257899504170736660659558734317231266094648231135517032879027056841179009013635287727591946054791719779970289179499607965892501033708588511007058237091322930566887959297439151926425884890558193917117254914353273360162395535059879320696346202220408220691527328537016486944150890633338547019062006260901607336732014181469446601139607739460005964309409401001618479162700292180764808357657324743107496866453753361689648096233816460090433837809070914277907454932921023117850738925575002384979502049913058924153969539451591834846008924773633441587810331090977939921082614549761110055030129509087300913567995955453960220404161471123588956751778876499720907394957956671679890703922509139357179373115566026061892074887594935301086532538174109413304336893101385786230368585949345124508463364527430327351172112051441974117807612688654444686645668442193916207651939898539196079954321010829138119579686628265934733984988636520610284948771248363408607968195752012865362693972482091951698246242341775239569873277111860066192845652401586613028045429296802194389191059352154258839994502138003703250226766688603272775923268456081862345141621210411489764092860158834950167857894110399035236415338552047136421779203018091180088122876771322486377517753462039567052906942930148597523143435901088627056200051402249029531899503055210907838653026058333457974992999709771463193979716289860784145052861247946030119103775985422185284514838677287189577917727022478842360145203278186024619240721039617361602903552330300977407911892848875743407830432679595318398846324664055455748296680908650209348736394155296981502303932386818985222424367173835301367142877665695552886075594232824505285900028484103474759799233559366625556331706814238669446403063459287888395881434607134813193944927138905774526359304023790065161014389614723899093236315744642962567102759485962152423540152624131472012515001930103023234119072462445587182674654790591568969659912581843709929778087197185609215626865560374224970207892991120574408387056728904811620978491931581594651205401611846837466572117354890142292314218316948794346274733093435551763770764577445357652401395323534608387018681865645967796188004915225541017406444594596849891861372772792289135187711103298016936880205339054208312144226104173596172873131764752817794234447678033671030124224547219042450196400888365792650872440870028942452862908022014630361431027799119337053120846322181905707530004141509910529916159725163350668790661916160768315211524696258582396529166695925558017232353396764427683867661152459433100526927795423895477177891195548591527832361566043289857953713599332759979182334786564186620689562827302509974258622941386314229901370099680708254370341256085569283135449185117091819536443648645987812036932576800879933308616475888861942775246880724651908344119381491147876953064582160026270242723467635342249463585286209660673598343473007930877057432007465363351167196386332561107832735709454743588335539545328033656067990097001920055551370567820061861876323567024125534183538975080761909049549446883256110546347055736286046508113674556528996858125392732728114572376009809627526103452320038506274587974455487373778824263337193668905258531792009614844780353294489494976409329022145539085527325582656365998182941640971042143084777910481650254765491304622426176123066181437986385831334724217129204145949993405261741054042443132063868863302305390045113162584387891295015819015276587929890973382739322307596475409054458282450885950096085937751217300241053224814776163987824914906028689356500573931103478289674779005369861317265063207118339180810724889594645706356462363029323838941301940515570910812624737459601953334270204154837271894609064348407850116753738359292978399085370876867205229241488044189739752870370893295238423501917978806487296999021868320289538775363625951643860121652901401858210161365910258291991568289807003748656931165817699404295448943621380822572339963341023128325588231455887018267125658125725342604342737886691335056033682631819832209060945764952650623501354767716017434425746701386104708376784326436873732032512051577790754237778121094197710762975580287824940515306127789797904924533607641588990460339128004144608044056320869342719683578940365273149385239443852756320911716524364052987241443199989836719833128921254283617067326164558593916707630100601175441235734546145237933061427633107268395893356455478490512866262118364229651643331062036916221188822660618107562715301961631372531278531250008537838273063805336844811144326796618562663465433028444179477699202104362128891406663274739812552775201976996989915002587505676218215659874540404959730259329952363354437322233093407538915583292791221383022564243080684603108622756539439452224215924219692104813407769908633594510121913441739144263511758388314277874757852559572466246397936664884686409896200108513746820223211096253557718867617517620538715130398784444573744233162494786173135448157080804819240887564585723375276821197784593767008877380354252715078951116140655111259395948314625842003345160178513638696112453370516670862152915666539335789481233551031419771600941650957658961441743060759015070691811441241218215691279297469757406578910020472826647051454888728476417561722463296853452612358427141417211119901221411184124708237092103504553251487272415109034869594545653345133785667479988362484237425769101594325465039509459692166574759144064283908737787190822144150716810865711452893273241765784065107425271640090371929089795225677367218572511788627602245862908266551189222867307883694967051720609490151420775947790832870024147434211912824052316662279107962771252182843659616251709982051716532256619591259360745715903531971892329168692860994386567114305585644963181968873499004373539383625787268971524828499196609189795990383992568522443103761640988855230347386958753918425399092602826716037171381866940290614412188044138664874123198892689518344846920427792261870145102199659657087685439770985992236523389289896201716060592721928473050743866214435220281563791807128398253046098135914662053771287596582181971133208456575920191679175675242760854728066301058032922592866885611296082694237866723470032979938776606288187607342643594497872374647876684103189377008198305682092874754217909155875599843293761428044133799600599040281517379559465751765313758381828740373953354592137061646100426537264411302464287087346675454680115921815424216741840139438979173304399615171465134452950356345645878315215870522384826942465371833356913816913180054158897740514106147626370069641871825204801554868974021297885382970555349576549830620696483086763899011981497976231762411596157981202668900983708169622810951289974657526051541863147104697986765512032272715464220576426720708485357643198552558435413747950812088714973218809674629999170006442359465474405206633607049763102850864476138694676962979551961503698313763383509781763626468697036501658239036225264162604464424067879511631495281133471602472827224821543382542390291776582917623286664469444882748044077113070277213501012665738676443090809516333810890594338532902467387453567366170818859487881085673559422947224283622034838125952490497846313194397886444246608929534260054798455246348026879293991513461821282184152664282276255736171657424070893813778339548845417433675346010759577285035933311767386588349217935545903504276911325457655818143115046702619030566791448974918063230215655118783421475718123047619061701667824976633348017956165340015529346463817297952278131131607415487614407692125510106687739418008702067085374912811192640263438056549985356969589959645091372627119063502287312671762266172873647359707996943329071126505403921066649371734204318884638237474745881139469478216476129959739108525692819826833800130183482612888932660655845164327434396407104636510858397018401276764497528578050150256350632849072550460702046690029201652318073208124852254753215637768759523090018270280005549812933110248280542092887705824870846397601326752288291233923559030554745874676020179685609072081611450297353058930123914637076307132168285182778441817665224202658298196321906470919629817817929739251626083310351270930112465524351935214074324174967973701408757832408202526594590965061028115320028138081413293892126933672490706188132671674445847998453165044832891533130408754969337540425084487841686500592986897922382856574164499043694637407783024348442335999906684253248607739822485546817356076537623445369290672393180682593543664947364330370231285899377057903318193513963517040375308466398953625921790875894855297943144943764200128023860625402985576399142251351155113916234040045016551581100816586373227701850916790520704413839375858595946932345377450014320764200067762739558852326624865796403627554605094521913431565685751060768484346407723044162423020218643254667243560623077100781606702797875026110367980024703979736073747171451114210207912470323841712773350600433843579287999556176790270071721454364770754543503148365749291596683845769670956742835646118380526814024653302367397066900014909425910152355431721130633332988745030897625953190599421030655391632118921894958083364083785296938142794739029478487882833872609377021272299062747276557836625921356696544076266215218749112327958954578220547738153176643928885912898196394191991172863357242958310290772102543928414456625358790377398980571831157104384012333284224786656547592923688938374910509388918589685780372573791384112943366445315903241361146360792794528042705433831390975184066350190548665770504972742020488816975800247237024469185031684427800667541669710463578116408055003424172710485491456339975125858685041868978056088712589423326517860981999385088582034342372722775918687887073820001660673556401170794622565194258209122114384133681046152736791163850843341165489017570474027806446753812536627087213666589518866699903089459975641447863986897822678769226352556864573624573015840517578578760247134753638183907820818338392505881002236508136988805506955915499718600876035451555261816532764057096356774164897724558751437282737865085596833887712156832525557939592286098393093028560029213754949756879712909752359178739906779164037473472402864793777257232047920441063680376547658033090633960623559228138712747216347669588955960815499587583161097935610550174573876521533517131287081987341503793867170222439060145032289815815025257831395763630667706023047430756588426708275313413662456229060116494697804285669195604026790124228303789088718937272357755515668351907916822188561870372596730104507736860847487419318636701859437055196204782751723028931595640217673006381066240487762019732819177616036245116500994249514391856502036582016209809226678010402298345199462908898215578647119068657767675921747505851793057100353094037464457764622903769928552872970996439234458073545182439735814044947632318704456516699938146773618162813716567856128199450798016887876975489147843823642603743222003722175855782669415525881696398005125050790105106593819906936425153419883704147449730177239077715270636628131442866107761102199810811664324878065083941976405183740641674659639869367393628731575538463111793133000663581721080392863664229142488797054617119138039914608524604805960261197307581433234114055153446832990809682388313982221437565825785837593795264577580066014487050853619721138034269844532887276173723266913547571743437777188387903294146569051667715845164304834055115133225142719832849167235676076053689590401787050414590295900185656418019313358138308133804830345841358029232527691999292131987549686379487672079051004320118754061144822378709817915262984365262490386245235032861955471905176838164932018721148879332538912424415441695713456122734438527385324389879862548608579004571877179133797005190387772524817104941785364631732377167436423754532276935857491191200244910626484335133839527334463482271682282133699478132140384653155522099786117275558341783566758744752847608820521118335545161523478342064036442025647077301533213319333955325253898353740507896219506421017377373489289349662765217933359193532856563032977732101486153654183808114152704001774992303811779241753907234023135399778816013350541758252581237364441842001950664100715343328572923652016323476261962891007797675061699805798583651005524128680637518864104796802183315133937727586145091716861029593807316011124152508712762211797635634303751069888152595095954981150344723490422728301364609206300699928710729724069789776066824926228589833107836580016960405732153025295075116897854354217982997799592247037988086922701935030525494395562663100142552730573524499168242075222317655879105153045802172503098068047248445890629520588997168348985663198558414553070762304021447691904338507320799288359413329966920239151673289409238713062525056960812549157872548415729306666771160625990970776218004928568097841214233601470387267805480774872225587426988393800451473734896247463351802209015040536066215882595567317901017428560953443354444937794437827918584933413754427462816057746895679422707141141604781799221891569009851672603139109389390675305629401547472071703743247460936843563819983003145709849406095035959992460774350614525996251450545980403073285278504723209957204026491055681765095081875721898674376611705627379994551894509527910025730966523606020685695213856786001685137631394411141048999181918369442820569694150071371865042064108241716263730628249503694009485144906419824400500473553437375956383806013980989064926875118410972671987402167455473450292395900107773228088386565851643871397117535861378529985236442254303841839447962517196334505568661622758165653146640983903752771923003767330378136636370417397861765868940187182917213299116924165504677480421560850197694619851672828448864681183780173980211286591717021279864522331664632162949674097248156927259279695110446629706189503298980587255238849745283197163962397234683762026444001883475886281056329315856376695046449028772294227704902204792515587987781482663953348800615218118744211039903437999022094365149669106822079498819575146907066062300521924951763802112992323391833198704890019442408390659293855596605234452356765079467010838533205910215208416433567310533072176563156947531258388014213319396370562501807467432174609705423176516367277964673900663543348825727796946995824611310409632327988640423814764537362849773585105158877599344024580223223001160538175916863357142530076878285419125246059373986076444324408911238377942723790206532014808610449835273765670159260884696311928821323789617139509659017340922289480324215748837636893963173359868565082354816615154813858245175714743685641491327624908514346821662426007595742293364649157339903694265797054577339127051250424072353402302277806568105291269898206821169311412037807270571501529854634537358418224503708585615118352007496364385243236868789571115832182866732090747008542520748563829850558433677569941537543047764834153884764192742328092454375691424318667385212827265546377916807107068349582847531036996364234990624731910878066324983693077296945173266959552642953301712160661625743876517089554807929505819743824076598784840079786151975271335996117947881935839401849761276618286664662227183035116221125427628226764817916591897487282669737535071241004320010040484844269719419487646117652292638105529125982616372792142861533312940658196777684486345358548010144011697211292591203568632117254476747667669305712476271618113270724314380925863693135670328019633664343587026140640255388361684241377352551050668958800166609799659087396733031807908957557865793005093315615440427894107696774694157975698698709849592260324810722559307358375653675531206972322531771433619119349740206339400814523518582912530718248053362241504797775200943091135757748359320136174442731585534485509672610765992211286849913176947667616177488157793841208715064461767104491131831344973957144875086395833408248688612452811617975151603915468613937025572366103001375142906527564698070980310734923534681333115226492454172311623128049961372432325261719380119859368105774263436805013388549218224153744136621610572073157510560030288532330940952813140487249259824272402777948923453850209313719138670746444632473134546814018867216203587937845023853657959305490744905307413612979069274258081903375323997202335267852298127716473978865736996760589154565400424113741124984327668880631132749576260477912815757748178765194375065361588060305229833027875802120267486104381885964580493449704028093597967555323166729543230291464382739713182906611346491472627875097324809233447770947295039674316056092736445052293957486974591743406956719239625250376841570303674110379247120088684558395476104571600318982890438407938667755185997072191451669550990382363307253454419514920636352205900078124395341698744346574377207557164611718970267654715889213903923651023490683430631384656644507949583737539172862817107509798275800228750542596800010826855782145650607551915593831928860905847187026582343127237306122966115324206943949985645204911823632806877527154861504702731625918489018690403145852185614692868925089997954290708397040371963608891208350987595288110628302439886512474195778411729414380714365128669667988060511018174344367667575614953006414956655085549602307515505060439160908839088395240165570671677243098021406066642091794443441811782792303457255382282103012343958476918764206644383135772171468380966803853032387568295216745674278556184347560452124411322183942512321352630038608014071653329166215711952936723627643419941554471171884299819557291549835433338406240057317992274168199933584414471246570174665493580677116470245433418009078744449964254856905398859343889706327993533725605892509936706724998447666600698434523367560499759063722832438991763744616947664424587967577636151902648345231807360560963385653394580406398150598981612587125370957375920988181588463006489646765676301752573816037540007060595917238127671695338812935349615041089344465770268903818497066655900630953262173164940113220740429272422722980618604220493023385856633800366273144567869304463257850872370531688899107915492177859732763906156012760585263200219589855336041030175252417829944201205618429912380158745171185653694692413024667797192901569066975840089676625658539589323189005194584182392609088344639590567221812613647643793451206525076058199366933022742684745530226375740615221288712126495568372090504989003935046636039353649807098589276217729639766633481383724782176303890184628116504119565935126968338017283452247603406276158195059925573703343822138195159215547916034248419702521412523464715793793009839444640465074695085298230396196378740281172239465132738657028527060525863661920518497758204198399965478541730162846410109994965033095643126651252646433053029863019965774763750067428122925657285775401867623097465282956809587292516212838844097760697456169821210628706700075727784339920607495979438655627462606822760850417387144264862151983999462160032879651485881669163785029328839285570177191977580674726071800330507972797882566424839952774628531420638701964296375076067207255310550961748242341601478876434371705863584724249940146302466554768189360817079799732428910269123801163290541682047940619969443431303884465886548217277277312389852308768752097276351814803433350333140851379296482701853544495423633700958371406185585397391037244466418900237236748451759618622804429227130602718240793335319719389271137125340517943041417515768088469928736697352398942113647520400644109016287478754691695304789206659294390225207504064256975864284007406137132885189285154766746184187119542979420447339380818447570358735715154607825864735985536979669674276989234414537177612467614071048391655861661512735469611189378186829411612133375973126177696941468078388866741713178472350469129045515110662768071379032871393666615620355136718202419528250524893536435105238536894301728251213554785022395103308839992949737823843696360294288298345198261191092751743114121094084744575881748504469431664466786192229026077379291882048365779967660649551886453090966623146879994737425497562180315161867478774180346055776620533143142492378036521224812818273168226952928422130666611402368498338651652362703514919390921390930824659299224416037014168635842287395196587964364967211133595341693618325773335406491027195670333073318693359072768250847665043479407799316506068144298860823815566074359605585999262686312203914498485374998513671829344532389600293346262355946753880418888024922411198628625792439203884474554216629597023699344254626664643091930897946295804423620194158647554560343495553959843721639193343877896331682893909961009748805870536019107281130051450426364642216753061707354207476701584642292745257158362710065612396145616044459702375694874811128970799048331275459541388990332418721881076609280938180374217978927587832338751230259469632647838528590198474326493125511055954874996426685515918328932635048499287465067786596984712299940922119383509633046868979042101505086966870350720694135846271551478989086472370971185322345510737615762835302982418670343728793375966167941966677361044146936291032941368643102104050837108276818339298691151662361239184385320747898274819696376921950181942931904773040823576942128650058790362206075093641439725947894975847420958748744881243344792295293533510012841256541593731569857335265060547998419171010386809599446906818532931859900241779182672351222208820844620882159619087429186831898955540561245043635196838457716946452523963390480383006945702468009810795507255245310681269894776788890558452567356810846836928075682791352172433532688176002679090301803418546141663822825625447244625163353893782099084977932391847013376465244359326644714571467665614220679850307645958665110411269396494989948233691475381293241870475391309386646388027916711513876804557090733919076313527600381115311774639490882095014229282575506508269678196577003961676067932191048374674050144906841229003510561722336252281908230965801415779580352055087775342034462804682522166359562921635931013731039155678997686046348251820804887398096047795359176415439210190445729889500406118447291037668526102625493004093466413065262792646802522234047300761932248693915192293249167012792402731512218502857853631573652036462300837549419936374568062952112738779194883530460758026321511232004537977220884318344926565017242952012032950970151838763592327405683313476717557400821031342898711577989933464935491094978054061255562938069118093173061879072961602118457373524362074009120939560582063352413374327538005641354859249880274724040083403609163159022059995039096199157507160408746016217531596274428504711447790236972814038790110344858888945296801087435870103146802636927306588201025422327589135954094643322685853430229584236056050789635042862764002679674607440202255823501703683786700290580302335069891165315707019103409996596265379233531226241853245154965003273027219820494116155435514960278960650437409174788053029255344502696055165775350742075173637092389206109722200947408521800369667078444679173861223847313278997765299234817714912137097016957479762774161821373365474357214514719360163118525993739113566429934584700479099534982383504714691845692988082341886947174241966235187969383683040808663556694349756306756444891949020822341851937953392477035929410845809838550238180681217171437564453848337737374410074055870482501944579816041661211973880617169874877380331106121829614249117516269100833828317926383685820528949884307541088403317620255210480686681355967112828061181814962274799765286658309093755854960329445195437093091236087613626180512733603562766547445889156957495408304193798251865699377289397870135199368810424682829887273198889105168986416877260881697065665386344519223497518554332531545181136037102434843867413132320444277948357069906975493003608511841481652847413107877914677553598292960049900557654553561227748233320151656750270303446200896300070528551529640741209137383504917133637626602334642621762700564894690156192373531092998180310055580923478382319745841663298358529976996074768100834178896859288439111456493978244213959069073270168933867548499024699720196740291635607619592947900954483870290456889361115401580500068070943618363010256097531659155439050040839755643178194679365508895940725493832179928561565637199842951005419514231814448925358802321221011008426854242163710029807203939109223038411681892206076090877052407375010239423921137464718679364761851646478077048741140639795279000028065294882319294474561669296455611819282031085732809610898073616634480175528147789520626811241352163213828338486022129397852854821104459045120430651162480395731048918666093567100014503723837700268496676261255851424029666743149000430301868776347055166889319711773986069958073937138930404048804448655897953229932645325621508917138469298062756968981705780365357232703636713149455832545539825820102080575230256756108351797500473874473780671050093504832837406976922604588415937483743558732329651254654465714686091410553313215827478065936968084676944653259176487927446975786290582091243363149852013296673475858681822628852416846253176985153761878896920926287184517372182046653473438142193660166544007767269199671275429976473677000463674122338669340848690275141319351548366059545142275840488211635272255008439284900506848684779194826387150580769674164820542245203286654341081223527650594793375757848426810462695703092300254441032418997265739978560567004276340599068214053681513698990791754130129978173496104045930792688044633655877942405061232162988112501111911646780550832641328278914650887364615638086869062919113219491749989027030123364526134024064400801654349391655309147942559925369865821433320082729615909116810784108253621240321410678401804738241855228775023776013154192009639678787220722678790779166685971876808501084633934739336267226923553027923207805494096912312387638871463078306610730523771364947783243286064893096839112118926497764019554620254142118067611085710704743083060337368527081628506529084047830834574691637412269247775534468363738303579521795705516094759037978610364919744466476967520943697309242963344406359750008783048037401779910479732791996933527146730582043482136773180261210202123025485349508245593535676514960944824675739171911572885040818845727170189258657205132553193121259785870568550602911990921874307009965800219562109056745415311149033289332802568448946533072588548502528703157144529588643690120543353600178620879776007876631772826964964275598937244744147215143848323273270461383175353101380248147150747182808032974870423383741668860968645955506688280062519861884432161673761622543049322514352975162770265810476995827919777325365215617196810542261334278839792491106051950919362567488079851997336260745092655661854030843833428129107853548028687377461508831945791813790684312949732669625745174755757315617319089884453747042024510009088116877643192767521045915625573747236122626526112387498862345826404451360023465056671113787902984293498809984451811895199222152394360391388363694358878618855328323124273219945592330150928150859380261751349957793618196605156528220145889316607413693352978550887887591572360027183591885285506540285758620867503913111163727554648531766953609247616108994239180432989441707675102165542589723225563723931975323632376407348338803732316896738587849959604423476356800613463581074569469418529048010223931658019220162065169988349658477986839074184753791877050528749462306418880537851875321134624374241139886761846635312725847617816341665320503298253470628336681368645175890655602397995538928100080586047362693474988951647012897407765528049471316586407279798367255146836819923490086479274436512290620334453688707293730986101234173623768072713262911208354973605668896034039368580254850171148495640210772370878474336975561816833887040911932104772838768404490523533513387698778204337275634243527314333722354865233308432418119796606312392207359551375246204002089988291764115615540414168092235210101334468389978348453134535967072145867585053675506250847289687173734847689394524422191056703740232234625776613286472605015234451977162063748195204118815798374061137792644358191599998310779861133661147468933652797765736178408422561728735971498403802191648275980255823625347427665200415547224337879135830404998269397637530918758544866916304055578345069775172303083708018086419046317816215468824575861308699089057152114040167970353278263815962483826550603628713301577847423231558104368855233733407609166451449005882096641127239337924475781229352698085661627930370182701260367722259493341822970937119031235297115453254700293577314224333462906737507277248888421166565456103324452230107512299640426754418311879017455218212794801547670650757388506106973321023657984870257544420250493141312522289583740781994468938850048968169218780886353197953240102998062032019500122863396406300417985827475407157893577618755423745765734647026711570875060845357156324951471156569998635634353699000484603556360543250660065435347186089462982574172355675781605968603222286641514279011518331809780619657853235624406275840159988344114567013972936804213607508822141307217469072261029540312293637775408993358855438650260226998037981152797556482514440266282831206923218748853458622927180047388279488717352853696056176289225478113569110378038349836679466742448075200611997785604301616245233392361026426019764602528713780629049861852405616921453584272390243795874566665455130221061814275085502196527854172149795535359663456748486600887128432701261051751795429446554718570502270264489700206576940104795234529032054947286742620928557652352053592107482576624012659190364719652375195968539466283197786666158732158709573180785312706363406207483146342980802965902794424122423540446212775195702778748801026841549291482030005436742956508576877161570050336488961466922262811150566062818818983000261409471524177831085108040097365398308774283617511367002560415772502198961427883913404056760380648805732684890640444873492285918585953551325356751962768201130272712403783157131040316041056508421499325152491758656188033388643200583298785817929989277901637429357105220288812224847398561223844806713585166023893401958420521273180405770979228819450846163379852900673895960084129038824829718613517520336892523256627934462692538512274349836917358085770716519181278886764320383312241702511018150366460282953149331457059622105669216614771791251413120418123641157592044290306541817937056780938988825465495339464267988942987648255788264355749883864957558624895636244766200926880343948502644775333991123139992548674561897600731291829112386319395662442648318361928603493738100731336447256815980564664221109505603776239211831258028980349894175265500607853775812376884307662454935666818690201066303068728349239277278742610624662108329264584955043330371806610873138925139618358403939578759958205484333274241582575954458935142745762532390773196825262858472666796214257222873391087435290423549391335447345221684939474722590533448130959971086364572322258263528726128009569342687568359462910012285210603952313950540436879745589682040946716155999248980229699563764343468736275817143996615590297503221602184840919709141137879755187542520046971406471514033534856626817951748541360586681444036923262721201735294313115712287377914659958629033557696040781531631689015182526556649335564258608696736399423263793564993844643954359316255971645248291466102502818474119536727262955946598367370367057834613932021193515241045200252754080582833013642697013074168636393043550758567371174519498948811763522551804914871558681810555586865161856980498030385273973565100563626386537818531484790506902028083861567415795283855677118680697365886117043769663916503185521583375835398793387980884471756647934206726063823324305626003567730120981065211789722048577152633003893010689976149008497899382550021558398171297200676165643693486099259095109240101132464685727816996908785541609740883245180770254085493186580573149438017140578428123329785239128415358188816704657579419264394234917999115377549518857283665182999084492345032421361542943572298197987972278873930676563603026197602987053805237211595481754779797697016304277190851578738664011566547405137294543369959988721066686895739248936448501805332645540389007110697691464894239167256979857303428509384143547418705656222826792483357377946112332567009856287232074685837681243954290649714037332743425765043016699374266083631043897652102334135070164589326734504081104119855580260416747384644872778328772456766427817446089556864541574122141423307443002319926654900850186111672426788733311275332305374239439779359378183419096343705806082344083276065404664092579736997961965466449642035004587240971505862249996744864508143124387126525684897057760817578792279088780922752436775724916561535262070321929012759336427442338478346457823156282289522634700568237672269976848622519714196945115642529752663976827346715481185688969937965811458453816845345817176411741257648099037608062656358594673725608857947649547479040104267098234740640031897844233313644446028435651779998544575871398648611874486243521192650914438850253668292775835690387337097209529889166893482371482952286138966526970230652488236651844583893180922298916556860857838784777672142905332256572224636831519055363110155202495969099324399906492555842842395276491338649829230881475019768814040570041283660358275033121188526339963516662706260182661360316587083932653953737690955037971205375984180436961768706016241557655009696335905365587389782538404493251768067150426794640614111358935958098674421226938578775742320772977737745437406401338001390352453054279110607760451996913387235063120965063023508064007331869139588107415319208003491589623628499259731717928414174094309076779240387883842107573724644164299566432256637699714257037609498227363195539118120557382486708131186381414819798388213689936811678794521866708010308456680139181893450418137464231339862832984804457258304413182244235709310087299362715700885789702927976152205391974046476645531026648669884729858999660613570584804024798054432867430433663271781951694536869471556284939352158467432984028286185732434629300579503783225087690649451185765984230178686084620200531348388496015651508972587095468292284832260056896149640052910828962877661351779774975336450883241161206000637696030395338835419734925295118705205061166963391118448957592930333783281331415220448233645710120003494826383466350881562184451697828960704100317881414999947702617120845943330040252933941485467158769746594168566669804050531609031958383538645734751649689994903825999810844325902708700197217291795623120311838926663299534865078583050294423860443473568461911771142291621994600258497077833019116675835428415777424672186798511891298512157391933305286404425163989484978202724773995522105773220802679740366431864098644761437205752457076945689330076295512699892501003275123973910497521743892015922935671144400289656046032563434236880525489626097755421822261835078750179693420786697167295604183781559160820062561374733128119545451915379591441592586218442573034318211609345357809469411913693080392929410943809265827756231669008211756403517637937202088443019022704033301942332183904276592347780051077449945370271057828303460084300714002649275789898448274082864630850463144204258885604571539118559763028747267887623701488644492612929446059419753674567978685700062617687536252395975747586671347176825371825283914316626991353569841006730080703831356710953705326097499530673327368933854254858768327451049604351565297753025460981959257967738791438565234276555558973344619236368706592420593242861146011168251019456934241726646934156656989713146617973458111554722881679606235457758519007412501074938695269139895388064803885820577118950486638606090515277742076610506690143076768628965851491823595942819351215320373440618214281508934061575154897465707273094027534091227392278790013305522622254496366877285528801851753842797709995771038565043886413572165785166224994474093418698190596511552112632829261140449427488277273285954889437864272633770661772097650825508992895876505019319940078135335090852095994614369341537833347659228984106802011705487176698477573970094558704114350590344323794135483655780512935507019140786752989290296391211985570281405857307670441591310044189850654916468241713197497088851625326893075353199329859508404165608419972527911500517096616064274874837331242584830829012675450478390664020375454705884389214922203485409362215551419749993141543447264056667288890331738045877321499328057898887929576909506862237466593001042019929936200524763463149977671347089900131017492582896969501093999973115240379874978031972941603599294932310393035204205485077441551553793146056713421376449549531449577076811627171825788509098551450959842002511246958378271866233463902083350199668208683900420296722067700733769103261652750533616297766687578871526222238967691523066680795287629850101469317416511243670661667787293375464817664284393342308502693772849912120335479255500377519817518368083600981796875564542537006510623594423752402375272723001097901580413074519746811822211654746818621044948719592322478012931371730718821273139108074367374113387546542950714347944525298484675521031820566685699953695541458989197017700467728991350189518686160398237287749090006092992563372797422798473111841660557051930773447686909927969013411191748188559952578309992217165838666521644586086958485996782504218799189450666230215288892792437454792420848983790597398043655450783448936478675721693536327108114130922302901594063699475900403632180330482819733396908582223675879628138633733944588164779253570558341680170237333507389527351447616676170342894463709109420133598142997040777185977914917875342875832221096745497321211122614393718640259921335184393211816057832108650135486586472250743632712517692194763631504295313486235605192593816787008826742062755114314698453563599062706233666145338834887957472497905369994760211220083762104589087730729681593357215517702223642575104338357858813718595862823490569612260618392271177842448319621417975366197041990559352295000957180245811324081171163491365166983762604136882325514404743062066868902714589216210717218899134128139397185872857331138302087320744078929723380203096500750637583769132440927254243103469741069659321568321305687391633094828768124939023067414978497488648292599612949051984553081313835806803749803074675776994352857285107856812781290555418897888985532948269670119170779722374754453765467659936859337079075163754101012089465680150547508915037863925893950248365736662020985808161014178187508810455105905276594925962614673278300513108987244208355647170781568003398183611265065604767569720116817933418267677111422987850523821760155361245959974692088087748072285542760217880044605392949108919917493630129050460093534005519976670357615359619884312477165095280668121285383191790315220586827937197958659244942356551284871605367414140838830396193913787973599696446790376818084022606267234707941529374821610900634066679381721080110669796245497842009207140501185081943928475016068773209440943750297521314525894302672531514772208184489053789671888768170404685641105352389849560209097399460164453625108693501446173968251757568832547820480791257097115372021142787488717749545000624726994213422774454638501118494505095720898608647925807268406526690873278107314813585604474223911444186350872057112719916050724366139466895318384344138524871419365818866304883953074790456808632750217679714546016758377308478932457662237107442290594812488852789756780086265821131346089748136575697934594658594026043820779974868782881202969273683518949694637622249275170983669607540797865069654066798776853969140761160710668311288355595467353847739417069930113803438709594310018108542159047583163704860191204289123276338761828471283641478873518330053919647979535566515721064192889102520908466363798306642706963843601315249511063008535930381788366252026398247231752232040115629505987063422635638068183800121261646534951739264131595903910828081871388179289422964567481905905872389817490482046438367115141904703448925003700459027555414648768681828305373135334769771523102867103369127072601870891162922524964097334672682370522844382404321885066142821552423285543707554955966081349971560096007420702867842734258081508198227348362617006858875682020777973291516987620944353925484062053518036931122438030844162429970351887541549891783258741348780214254335546471186705760681028706632394633220205387353276168603331557709976571585667449341697385382765474201597306713217734342493899449214286861184240650431749606786884053623806726632457375998128847775998304161464501782990340176749819697129945836939078655949049880013966570941507356072071482862765080842087661152512842576595610492468905400744764772015557344691315937910265626595021907208654837825646529632459191837965729987782697989631677579824757114637683307748745132523868618123608484498517050728301516765471837725758256181483720922903465207428373708328097215942057287226342456799300628207572744054608846785498909741989218197162031472969948856348683878867387701906436080066540994597380409433366995983252665455363117789504745918645410473675707909962633277578346197482101875137295085136449118071567435361958306861116726336944512974111131986630106647074017622658046535885899361461592729907405371969787735611024641506968505438642938041072338029599814384082234051931440865831701534393862659065773403189714837944783977279684698512161508170616088803117739158882333613131541002454788636897167113831003244288289266482813260060563960778555150811249284942521088942608848464068609896608740576559209358358606530387517824901383184301903334348506865482981876300979033770062473509361942953556266038644293346729781495721188377070629638621212039210068948514009278512845240959699279498470320096471103453439124274763731075508499599312778603652448855171762643202053618305949700546688933475772599033339234554369860947083113192165074681342032654834822661063832700870175876448538680044180806493366653828434127792038139529218177771758227936993098168091698880739283568270954430334344504738768626562129048274737364554448453835269493564870358804615823037131228228777406077549468543050071664199149392998808756173846766933688333576264208177253690569079519589405490819493231038113970755318348464783296917044265620107635107056987329306413115274598653600464778895559842542094090388954681491913382269071277994517252753199696965891495313248000859763488181824390623321560711563378297264321864574998874909850887747197243644640532597524585680850325218008448646861646683424992203362325460349734771876526920697108864245410503216090497274955639910276426186680410278124490266579156887436409697460929748034953923443555017447382143046982683126270294687554382190595220697131055529812133614417932345932040690362781513878701202735469532355648305863768449039099351548885503146064758474013951988087368094218402068618328263960655988690124083884034883117666666895143300228889007840158947790001714470166214396593045617705181713576676759326416190954275972398548107883366918748116926053348667635644484141465458351443708984373085369490090391900025610016760627001813610569655452199728595017722447187330066899332559667883017031429720645734055183712754471748331645915775370444262130903493399508516091383281188749361237423612257427451070585209658784561598982893968505298892139992301573719224405486107300348874344628014996712495544952027026583231809402258098879315034106394620592917860262642188342739110611550246784312260909901168050070905866509676516664989368151699377910571168699280017104815942506457642186279955147368006478738385114837807498139914405578459053618219218488962828854665050766507838344116877497312518132539388954735782251074404332458034698012432552495502713637434604089020487383193502590211882074047742701535734401474158133385833434092343336198824404398231180492454637108352107529926220523810986694108108093634358367560154368671668027667725913311184395418882101603189975491163292196930039498125373131032024106180073310822870457586215292581346431883557571169761629546579590837023878561724732397919632760670797395410318381317755973800671851567097493493627350635666238744626383657686626637429093715468284560853051072271070822199367961304434071748321963453752534294033591179896737134005760769296027633831208645168042765644510198429248586130371737541216557377463700506809446418587142192905271290177281378123302831036796426087679691266570218103374040366224901706413553715312406353556954518435652983624582618614093803532369316490995176177165544708897897288822210968246199807065930227339075394321362902578848707410358337724142997752937381623571872735141865921258151846054417940145237757941025981441541092577001963027327909524343009534362386781597827985689622937396133540135536320497530090029159339824509637153463377118163588207185558982615279287888800732188998632566350146330432446825995669554359993625518689563917115946287801426893713264060715317484242352120594690658644678522882981704966779842874977376294740835710678565875816592301794882880174502622122559134501458304383895052522241479937492873876353415113150018022531320494167152944253534372141226618741351188656992124570855162877660033748646055080960167544013252944501261327587727755086644295337309993755602084142384860651747856443685066060718332116620806060003004597993124643314665342116431644646893624610428257112983113526533675457920340578269983268528318486477494488560489582811873271915649507099486441442578163392484697267324481970947958698756786882194665191481956311323650903579750060721749698748800827671759882333080068476405707743467484349382727691018902221953980955733961673818832986916994048778335302113438483723085784674021426526047811404659476550456139512876670726598121547874933682121539304012401759789316005706618380544444730383776421848147493678046974266366140941778569898069454356653152055624450548785574087033739111294726270073164830955886574182463601823657211287138874073860329454495364222889541376111016294372743031701220450407559259443373327705995758096621696438347401230071622169516121331959803034291168566318306270806790357209217974983110594212592218933204961431563582021504685684792301023247492230120602125962988364784167441804344761377948518286705968720512240387173724118384623548355812610212250507769016003297269876974083103908142847329740675832522967399055735122827047132785460766106548045203788850314865755470460025025742224256176753488952126663833485892215417451068052930445354038356296811033037361357869927278183217456748088611592919846166650245894211794210140473905808021228521063031259113331184008226210925919330480713863128043131197131869286094405611114319448399052248282280920084841253068995811770483992463093695485046246987628900179277720351234341752109541600199544667292048269279542565275907533293300876270000624325793311446846702261554426312746391434935808748448403899662520400636671127385106766936258677595499687588849663241642587090128292668467133702707808195672516864754852801196067031803607146249396014203862579143636944316876808645557629413278102691918856911293344722106909387697270933077960030388212651976843644437261790495242060954709339585866625674389249804082975313456211589312897504094439793214395636483035746337720944049068599645682547335784306330290228259435694793603440443724922900633184807570534645076576351649359923979306676027690954816674153962236132141652589417989235611594396132184505794335505100448160162663897743629025152489966669097270933295875877790939031382356253810012159508938232135944635753626690575295685786721682605278088721904648201348101481373965202377031818620593536630290883464148330407943810409934454992531186272254445550769336527978074951280694789441954259839725856862001503929938769234156331725342522341008863493733056480677966945502154138874462231851428494278920219598824229959184712010787124887242511348065987745354038111539354043301923214519307920026921736821749854331432105251425198278033622995278111870310487170314053349660450287506215657712614809633922171627032417318883651044009279349804541169613985089987643961800547740150865793162951761363758987558492992249519557428124557431929944250612277573485443996934268173148408739629404255383310471745518298742035367360858910272228492115314041840666691948354014971180545434283343454206057975338041067640774207965505457236559652421253677345042811796496684148699815864290017261245736652219527864463760536938372103025600780692550908961820039745303905755332704653895889029854428116468527180667782510461200045055768594204294151055701361310895296865299879616553579708545007493499314490168007218226717631814535643928257026512550634853369138481749972159915130232786565049003777013590931620834390208793615103585583895219419742067605909859866016043735331853573131593947933407932369516420031443558199889503185763164262052651617504859428210407935903334175246956246464289074155291112999695335466631705065307074876326759144934211179714486398823686993138498045716184222717625448907991526108809401066114742862482573102649308209993416541552445473408257437374572668864099873990250419701114142400598205406144872071529326628579202564932227827816029028052871271089922376249059295061103244265275457041749956875685113994093163072286034620962135111063904033629236542716790979923702878935979760583346741401108996424195447417460208543916746119799516487861590716834687901157241583940332179414636244240899177265514594802994927240447735519880717495866543973224263671114490683725757848945410434551071980939442990794576409706301944690282804457189449040235402698653320184395188929106758958204076366345883389389632335127492504081366498271382875901449255256216557229577415958358911859776079368985540958034906384504176313514165775915222906126462150583870101180879220917987580282990931644465293826670306786100363838465035202176827901755036764447102649578755943598676382397459513806328101049442833996063798672490312718848138365334106251470139933277173226473864732282489234348676737106376602242104480242146369780768989711438276976829071957845130173524278341683214719157265632060191399281326256647183399487597120490849535867567333654424208663542119618757531355897288203972960566098801909913380407673893436379649665164780668477231710951214959822761859051770204727592946342068293103915077258170264819487130467597135912773443280224848269066321399912706868916329838965310932069915579820297779381157709017975096478091767894302727877346377753204264905863358973689027799366504277797482525300890959352107890358527598979311138029756321311790347379518335893528779489535902829039489403689393338031702651612970951504366427737293640831462506811447085227226276901594672858328039735577922503490163119941365785158773027154149883052594069221299126075337111547652419784006415856812965161371749637874362943996614532173634674346139909620277153541335757623481343496023708088747197065450828836319016772571334341548101559175861832271898177577796439819251524533174479230801058818513580229464055606318495169796184228312797833088562801032124721319081137324661724508578488669337361846657159723956478646961043112226282469692571472999074762225562920692358467884185447963299952787707216695164358188944969221323073247948594878131831181264753020656424979914943694967553773493638800748735914344594468788265284208590452803076453219411230180462980630981882627810766898953116938146329784066243126918815594481878197430206584032661126955297136338037588370504230765019462187040543550276478909951788023398738676559236510960970361905845106857746415063218924844772362759146502586245187205758114535520965756055744401770921776732611632566574644585673082814719426481173718690009479147992931339503521204658688185255774965935477242950712111818504725228113854302813389836440637274481093369119798181831219447082870631982863353303180385270430079709677863063468349795707960428768731621886797530167405215069478258534341122966505598684541639746873436280596277465151361999444036414509216524227251359350656996961918614567409635327744885785893082960390977047583047228304120630021190448679153028312076215329952241137499843383801902569873236554205014513128012760074160784678157625983703480985463108536296276814698510634370241351443264698535852030579850498830101508637196125411821839051358834670708559817345233898230711976219639622487514969288443587437024801391147918582240253056753405395188529028566899148372436356697403366256604415165453303219950503699662415065552217844577332308755278374839014905771846772034504696664429134904055940943181910345654584675805682519968858468890705892692174977313521932641819509231690491122461753694847526867833032565070762253178126048152331437241684883233054013596890829860908215298140822940856361192149439040516455803860043822160760775814714995767128803573076875096818573639789825733316599100851070930498519251439176684056307154599285001542567199777909066576735594988037599366100270384993848455687252305705146869348826840229757394909450946208580357658455752873442429569396045069066255277774392495903530099670795072830643602848328754665732321098335428741217523359411672712133393637048798719237717295214594351566868333263363939733871404737975137360647823060312455864392776152536916284327917276863228522798021584286867460860334130199747702934122865615489122467413290179233098493193841921795132782828241394270289519407332291656865148179792526752472478848383840996005644482300228619516256551321946385845397079974539557889660817115134117971526415907521904739042032308004787549774173561051295781931653989506996134747596989744764176267936028923061111527071430459229022042593621324796563117021256154584851923001703387411989571946499522938591658430009140478197479109377639320366556181279365121608066692185882910818190001910907432237592984246206679308686092150836724317749965326577799577574751411202097392264884834567487316081519926740307752557298533444271086591142858852876185850589227309119891273945143693587695260387616779125795605688728451771612197890308456692559644162792612199703728852352428389794408622672784571801719972188960547006407101790324289577919805875184946186124380031725611544479137096958023759757778763155938100840184251752958206217289650269376832058113147211633426080904839807426441079182050855772623149014828949308630095203753511056678131849518144174177816112441290356933850422730383580807712775350908917349536955004825541093511637645996671130594397299343116776380216808456178368216830527581624083358775119254024618906821627560608261283330267693739627535989605383771675251459587056261455543624459070101680618163296300311357575877652170867271403760370936098283968826862401289800219737402860584526094193266665461047610177205911364120717698236759693147745745795402729771573025760277874711899125587021549507286743507371935373698176472259435602181265878839754225079796285713220771872960534064054538211983465389152839876139047415990845491521300235129760473129649869005509077572972165591504026010460118643051945303869029147021869551986671660901164641144509995775689801874077115974244777874859808243614400548335694406154075177710507143852016573334820572186882384545061736697381011418170870254844801283627116047155013007543776737669494601875609771005737538762250626677711030958992339341134504719919509784165622001403317398716635688251277946148969128183460307636994192477120391569239081420879826361205074059208875481862160866284619027872181000781507142362502955713329817981109200936312983437637014389302565238058942678023120406029496300706280676393997477379878558239453927736398400635960104427369881963594121772216248989040745736858651421862678775124984852421639938728144048313613846477330084094703755167280502252035378105576795198435716927916944504846362630536090799943448402228080755145005963212881304775183248468861270242298648118307402666366621405806673442445106689269188033427272117510603163048548538249253484223860828817193182046873875492367932555778585557890020508352220218320333986111773413847850257479046381697636921310739054942312151646616443986077021830028043469305573167972919520558823324789936494682402811456701115579202178721483305704595510093977535813424599347537601566412660747588672730054550944243430563247521117865631657797452893898373917443175052923944822927595041822049854787246432746065000756555402260895946537520602502767903808005919087730424687931557241394168499415375866310283648974511553905328976908702574740919834580282395295364503894085277051048785403005134947055290232154272649254596093253766732554186294078814573731367035242645877500455821914139286481119721253714403238598767453863887769056977779012580089266723019870596730149033202017076361562048470885748331845069451315704465645937810217024867681058687724013885760246588592763098801407017829479928155579596763336627224745787104423800510366974377565255721844341452417384599692767388184561766782671492646524024778856599613628960339818946573016518268330325479828694389050912571586414032059682227405971478552635141997066797991775227684186447559331464104453010273280914017884402443248009226545993393907527032092217863733966513185602600324713992597674368188523646859188492637218719393228435668020040727624865860867254654453749316392994251704567766441912383189949967096755969784530701349604335739385610488274877652188745435343163109532390648815731463582899799609612944074297378036705260062362116844636887947336766674973177488104936985023661213430799850137239711913596832081453312163370879852201749364666661196137793867231788807431002995037576731403284315798125529375600649836112487135082045844496518831263786983351797990506603347706223612544527082949485701256763540993450218454927963215524780668114495284913363010904031485923829357459947639187764339929834206742825035764654470925314740271148183955973563917791660624460732733816830920004531934389880474719049923718079300019257519708818553121578804715914775310301866881414709734013129512470026948844643209985299524676062783987346083071109283341529594885679402705830061545984232964721323860929143128472569201490896025803855379821179524353804052893870964328450919195000757367714135581388131522149034928167005215721459186698245681191551172384878936049234220577114327596618316599230142075378854583370270167388190612283379830771574176391841487944141231662756417144496911130883810321100687488657424541190383729488510604432240201725284169059959867754664376605701134665290110284316791537862457710094316934002426341775616872483771981601573156579774058760385144647543896990931854848847297267199624037271633349521042751188139854906393884900142313264422581635897648244008080206140543155802437381269176535575468137614771603121322200737069948956471200551663216118019310022585143434793807773225431319450716052148847505980734253142862010411306479628982468409743041489779975519525468041309581826229670118476301483517417537964072567225556433381672949338457631379156934644103885092626016517236319527284845420968663276484266044587064973452379575014700786965384119920818783073355779586846350990017403641729685862949534595503881287319023971904280387446933864971011584097252884980613293766824729123872779669093185563998674342011840071560771781516013469418327032312458592657690482820720448255882647524421084253300150940080151133201752871696930329910470324030164225795309941243241754939967371859835641843599168889949991090208978623759513719710116397451188624242636629683844883574833687228400735449020106027994351745253567724700751543089852415900993214468906038308313953988516890241329164700825417293905366360096097720377610746245945571420382072105837778583512218957359752023205126440694683906189783317900176358289854483222465892084485759378325028833574356789281386085210889306870246484625776562543731797220942620169466570207472317705341824719696733334035373489055941201106315147646579049559374521012399087891415750303064881709293969090961878072924409463520515509114343132032903837138175221666455851201847536189911256332159096190728534025260637385161564440530114388340818050051312351171024560602934109554322057032563216208868533324905336921068104137376868759442095704661501885403929973367137736460841006238244690070175105793388542031805313717464125647965762069344745263309110014536877383630078556887992014356863699571811394610983827570320380757830910198702934836173317363706563776423883825743804312077842449239805061765964415486053838541631690415244267274974782384940680132372125016332461291117679674319489589907852957792601293863861737543976011782524281359736194555863108122377366535399464639856792663868349087940081565008993474895390330338669161447810337672728705605149820048847111099656606027793931100455215427828499756250371851122146429200812092377088946949258987313702530535988113360333497093133349722990211211738232630105280052035087301786646955170142910921896887740980589934535983822140600337391297426823819520202118850827539497824166288970324839771035925363739372683944848030753845520394993929812583212680380959090346576179810751712507167257220364381246808573195294856778747677011719972964422073651551276146367631570959307824403949530519052505340440236477185547334563897859144254466872330389145523551427885811755199611451287973888549306290583889922988621419217888604616473835555755750531066573592678690972180717113318460771836902212666042132930093404437544141432486917961705433166630379327988028118741124771655943111291334105673844247988949212353137266793433601550021905162751082563784479819633244011068427915091946759913787051405449071585831772771486856233113884950919043232336563386729290791077793822540254560538631121019180303316425334755554322840479772960464992553434666219791699504540216094685939872609002441092734857869395988783616669693818224665668398823942524949767388064037918027517716457912983768707292562390625156893042537155358176254488226315742054033803373096427426165449970943632381158537656721477959173010917050136434430559498706811813184696953579945274372975761325440852096316528776416542131895499852993700541445994583649196973345547000155678760030616045483332759980409894276539083232821240084850039876578024973390262905678446130267817267327733357477124658376281817832056814564251275608430840117894898343658251307133514401094341140497447070803621541995697861941394978248396911203919034821986780079950605506450494571775975912517415491685226652110517880828687252278299699942112893008608887379715186336159259115719792534554414829231342162094604297643445036093620255221425122670918619485832604479401623681320671523872007091824879032975295104196125824052992120035240395609086969319437435976556250388766222870396328849524055402038983744584774885146742374656763770286249377921901496234708465281570255668143488775311232539711038940054509357732694725557360389269361345100552988993319791464615030097758878312686516660764213278165009718494220961150334141967869854185757954816556465125869769908135224363357777931657439225750692614447900255923201150474866117578857466201491968014787899708653359396825573081673392085694904171370861693967419932539381868506335270144431646453608566564620105487294231626782204359170188803354953293582506986803319790197850322331233339244565132038049272641790746893621337037632187143946133086096277570125893496032550296374005816265673158453073137160235154381875099523953425501874001723571163520758444224591290453450241415894661573988463800654979460769498378910674680618828129986564118414131802970039882929809500174536924712957715248142441503292173205330659615570437824781411131582836995327330325720855393930629673084530899453010627307341561616481525036566064942302011452613632739990500108160041518281620934664567564224360018360598595293646959663109991369092661549669056425020650148039628899883111189016029454469676921022714320153295986298972151550328931196654320246630468729577890041484736064547548120451058637273607842358282997217941556726962887660265563386899043292672163373071831335113347771188982588424807037893893624112093320643847425227939486930583250236589984239397108554981930519582530410092032445877001287168265674924707443841907013828444792302451830487001795612268839184042652454326070492068105016755180948571531490332390251080013756897943262642068769767106711188462276429552565399391358453929282386138306227330020565916377003102180258756621851175329788467915141953212074197624270086874075280463198589624125552290724978717764235948953748121430645696442338627124970900814304369602477803327049368118341542136759975019610332107132523644137137915459308429539508809888075265410636737203171450018862137532961736076846414652427341391875482772614960824535712104032632921684034989979253516254746612724954284928891835412272239670092876527820132599762351338224088582508465380404070310739965380996190136575378831387606327652492594889333487947256287670137807122218366235825962708530080618791476859783949569259852649403812109173438779761632517232717895922308313721930138146576171661536208843418211326873297707736954896624338527645700397225809189817267258508859820117997598038163225605505557834456343325102298117037855745003265114320112685096736607875767445505020633055719835619269023424319903761495081170365233154201356616572413882220544433842222237208627698043865797409797674093911939602590521115428240934601864478252026793597765163263664954461195734440996301233815018894879992876372874900068273791606730699081313371480254336373405474879625792770335827368299067801123699450003298752507357627386836432567446411221445968411717320592176265586818584652415760943437064869286090827084207187250846725419284300801545441966403075155816655735045035823127229394380923214870157922651846003741636863961574387801716817043797476990379026513179775253088280626997869851052228815656658823073733828459417622158421487775226452605647955566640141635546567399388723801262208871026328717748573428302422818522147581824528707450722516529852579421152703572202101995170624771426129420563182153564262347012878457328362703283639775060065320864600234971686758710337544283758938317790341788511851721850363708080508164752406089808835800667700063372522311482857281804402741706411139414730797207668341776031296532895972273865499433189011583788864507909674418019486055025526419166507467408729810775913672615482240332641013406307282082253415509545044420405603378493214403069980369424931954230083068660057651676398910854853110986308739352791943926656715719959694232358315069324018576473314092550949112168049655586343413966272047325411250728745597330790653262220528592513349296786220337344349414772302643723370285826700090336113094008335670382995699856938184926147950725980231484122191013815660183079281587586781224669707878847231494781097753896369981711051604849618894091878188375568239229934403690771191020888451656999807494394651647564268196658296760172793731813225156808722507430565843866374565708779691124636406097101440571478194090386198488243761994783447265735103841813080980533210637887829928680467256033409942907558540577242382555969164268827210579702378071745404387866175227578146606745215494357579617172562836446420582632123877287349840427657853923499087154449940918922475101298097638280208539375264340612430376882727692233559957602660400237580636540507810995263956467659095560428236066290577749376566423153451167437070660342975290484949982420675932451953473558976186399207658436061613185251649825768775676983776541348999843529143614497524775101218347049022939606393291353642685496763219669010635220365855215699778444151501406589323402167198493539140674430945501738854130769251001482786952069908855692945717601206191963384192072248015809480334847582259508443108190614348218364766091688047299521309713581668705974656807520988042922263581670141043914106785744841740703654337538235353451151672729115897787277866809967534836126930237424933051392785173521580406951183618500305602956972576488246711308105503377841376228091847027082827891723224852995756162499374272978702428606502591673732607405067402039676292779381778447836944667351303149529769850696828187617713869658641987051970520852905020319518803914386012651459505422559316699668218480077026097730261111832965968644376587500548821980168678828456732334275806822539212748342922541772089297144557244209915729707727566833175298644351205454376949741704101663137672201827423503457566936295755173603237418671238275102135689336193468605328936288381121257804129302145706859259147231309397540328029454201254448928575402109129893864624073756031713080988034343151605411462411794097769115103340352785728661436377429495759004370570439246741293890938842015491976510792361029634273071045461644783894641176726596322893022206826686273330277473309581802550333312485948307063397372561580411078211103038676299877062322158849905335663180235209142177061975191463687675487915699564890367081950348621577036314547801046726265810455684723533411451328059622898457809650095596991168403997203074292447189408795783039357081861816057299485942191479310678804390875549117578460582149340066845307424520902049009705197305506270883045664594196667199521152245163478083661970252727338373764251558610258715417090962468387479958472851132495772806086170909212821599900072177570641217797775099736574981146295953133239893414132558648524374004567618390906387454691225133965450574832224239784327811975825073665506683099335660179620731008776567291250871969527876987554319546388670650587320905358908415643393284889738352487792424918046600294743441169393358913684983353391202935259800748114058857928151848138542921137631190540061965341219906001104042305531891078325952720072304739625236505878280547763856569000637675528229536860687288551246110486968398428500788255548737356864970080896127846122586283797826650991716007170090456465577538816654364918889075006775061921139332280106095038213221969860588164472537688680410565605945401379722970331994008402339586547448412649458864773002932682861231785083124747996819807027942756698612387484553583753060548793357247012921044518894648850235759366097234597079836769526192491271298961656473711389265544983101585155348713421501077851778916437298067003750857070596820023814699972097441232867080153093230386497311939961965118104862050397940927589451664522993859353405245568948526351284618540398122589121789523907176900806575383868295530997541808695759166833829801477200313530551331049899800550655445213435104694609007408817389088860287782739552732480728970382681566491004457126116655641396931056369223315556263152500470815790236526001383693031531950326117154353048741943178120114152643249567347627184956242574520710412314410118507002035722353689473671989090764123152524705211242176616296781590341960551544049759915548417307086982909045824849876573930235293168140291752459354213801227009761937673602879917633641102319030579839603928765533740224471375396107231935768099062787188234814264053539363525009224646727376942265054267893430384816322324389511918781295069482322991921090366767096798762417887426998105847908170267266186176573022447795541675314294734604744658516272362993674420272977393403320692068984786205752597170534076232699164050045982628451036559398259999187564320059033679845023778397233392623122263024866968323041512743398029359623891681939762532060415058131124849026703304571254037706397766094739304580173531034394797519638007265946743836458390746392687491177173852584509147125242009807097938862197645518416045466359226041644462323758480240972705201224979384007790665010599498421144274885223190987563006384833793266718122900593908532713460818995342523074477599061717444480723749693058085236793336561459581531682961085953044480692322468202394952300724253121901158324833294052360810631228128677781457416403801256198444364384986514382618359782971530241581038059180755161051806981437093537800091614605588832442083253721100814542708833090968576442236429402135135820680709105642453455019734123253561070599187315724533988396454366412749971478071961299413131915550148145264418574788550940889518055759189905030581485205884761176212651091919068694890138935601254237622250245531053345785017658675998457097606378983815922871693536106057204317153182447500273100829947740077636233888983184719300112181376252366706799005947696628874413289234223530478687211705767180044431738812288977194718900193817757787596002702000534145751518429283292117884476021039189068668342178066002395523903215754286823455431614165106644057467670035757674751653458284551724077620310822807265004606711831065712386272697915346508552802386703786126840435704260314409138878623325711056365528000214125008914375491014567830776676911374287719966675636440396604568751800409353298337693442695758097187266799019978812802575806238653353026954660584309695997716622501816676715115379977431795023880281143643977268606483646323359948630719313525761397463357836567403361613996884917397707780740133439167123956234217448911636388895385589471259648322661300757904759746451776202249451924770380147644234323352990330031866523858288191771361956934978078709012208774123282709259044480375587618469957084881203259864465824675985387988892443494789981032992620120845830621609879699631772235267547180296759874861828159595522265942165922403347596426271536415432475669771295799144838180494250268642005366858404189523194447275603540387345010191780303921857235132401517507428353360886208360850842992866955479288695723939562014811631253123441598103758537458065977141297315803382203456128655866282009043634137658212979686943306923309153284364962648685971336650377957448640696278719029812857825441001288929169721760441817538244827868381758191089828746046856074622651833669017203442780589548929768777131158985083422736716249327904140394758538226219451566640366547792494550506601914904133440745828651452187922928014818263227615688982945385521916881485535169377567770924856024157222368469265934425632236001378691266480051826061361640443803098694500811384360819594071778842637520119147165496588193024713986683779115186405838393285756011688782369781911936354960291808434004073623501000547693596313137731103676459693124095174341050110605700544744506103888095159518549548965398309149899093504137762384331044864385170951309957312105389682516939479775739247381501843671297584598851010884756847330817818767797558713469287936532556220029650855249354757178909297566121721179989442575152622395106750818609786939684369746865550607533015435492820836215787193816415231398524934049327349242931026438985671940582116428566233136008811296027176326654007515509087080612487510954985923490216700576272531820853716987204629405963268684464000835931273143525116100178499818147024309082692045173682184043691700078467977425170971322714783949728483359405650970879335194013239129191378594660458742511680992462042491588597579074413386336432905902571788955879234298120838181422480273466360609808915721966691767133288019213226658457192624594410994133466535126536117384811030253197102388802187247537898771397570113179459798020217280114458688853889699897669885259758621973343971869479839025833733285317027603874536687155457135723200086390006315741466112690734351712586930086355549667329493028730783842473763468614524607777369427182901145980722547960510148418430143404620898757248635211143452719880589748567837832633135933039998658827789797888850749646868764529103453027811677313848345588598396060356045743028044562496235873973619178233861286326176122595011642568952337754941575670230310085353381300518828061724054671139490874838183775472910409829210052671360230385171064500771343542170322644788583853972456875641048390842576487218624448287514562670926420273742673354994880965791715015360568193825794064598685288247119206698028402973146585557657139634085533156609924429326709506886597498964446894811911893657803533992402893364833453440184011382531536111476732824655636664979005492900715981786529178334942726083709966783845469465894470801508605892128160647987979390170857681747485148720655564119092479115641600979286873352168822706422098114905230030111201020364495727976065565534457204616075757169718007088110818718548984936140429061862438939571189886514132132346661661558392293275490376924364459178769109510665982934517863087697149393632509365252968774308036558924937383258242985604880219348408394268267324965208513144940577412350812431593608730543048154948278096985336897265286030931506224066065864876257265986607668745967516114960052044786157677218415100028539365266319546067985076909471004543218782280715523718438411426538039509854036340218442786582496698412520810629509541545138651649805130102543567780279703681497318985798485621760479159342981634214048122200785517426325274781453125793881680121575417376321183335341868729720746996957657613017102063407360247440070827091355177368276002494599380823080030332844108930889998100254227885657002430717746042688837310368339175254534271068300832106443933145578901265824470008705965731220392363899347303998592514511933156623002518612169456862863046054299921746139378950059607612864339424955463291123978275291448913194376944059182671496917496038716213521081738231193540904756802032490750236090777732347756225950187224812788077653484171576197544573657374536172985736040391251660429448549387167897262404610353140837295235957571655269315257787833209074002573885429027816293228372610538781878483580449685260092511686938616245441686707777202387434701970616786487177764162146598404560251427780975740317097663668405188094873869080754845240875334648872273536380487939214371829885730982783635993288994376967578427242690423269917680081164199963493121924678564615133216055682497818570176206564566319079436033679759467139134449555352534762758895693847159949341973701748907351763049143269594559505187007102748646261501658059537924492771016196333335922005656334193287674658883598859840057836948093249504803262491321425520181770755795830865537214855455609384873730707780771227301140790958876100725559143282654091759113404492817151843121497976547505434655256335818219852435823253670969786537345181854754596772432141272572814798117037332954889448458975930593387818005801501933400647525741245273413391728227743918429857472764666407887389270433129547570778679576069083093809384037118741628089920139542630635599097740180506432678862840233067035155792711816615565110040945304322615658877814873621117052316969097381833281977435052039128645002241093122597969455957664176349663090345134894311695989958002205896614660347835746524732020882425800272705559172664823314971209655337455718468894974916676417815899281054633269133289084194917794287990942110630342463287941939163313445866171390058407914524504444535491078788564268619315801573640462256839329062592353518255657935004840188991249209285079707000005050062831414594741724704979275417307785088288964028333627764439230044647826536788831582520629436865825986079896884156443921953566774247012747816811453133742736145438397597024168176018619416934090539051461834353157730904289095380553631367560416176523341599368500507316968436723056887779709669939265344625593112903163922357682457420343847995242511468092298044299263417448397107704207656556954762680941605207350038645547655244321078123468749011744918115671584927789879940138739078694934813943019349424178276885773860596323751414485487564753445928995429913909412983097304965276873637801095600840575460740915629416417652956589304644586499615863332045361687181234788850773030459977672012467361258735563183629408997619433431640738869293976747593222608446200107328973906298569897030418670864612397842081837832369679611966249716779582250514069424523956596040369489173786250995941951771333801430225818018486682692138737152856519309471659189760798737953780852925394567315402685492898149065120838094895488518396311683060208149774478370955193003939948465618676456041522470671010947697564106003089115533180781956240020548202839130423882767764356016637909261694919746384334029490796528140157547716302635304611268442640649067570677254223781186359411533683665489111104080776125485244796232075789239409178992938367459676440732711288751552574240565634222732525418813075568306193159032991049836462460924008807279142514263952339355262255958073379037352857339996109061373005237718946594161779187244266069064458456498332423690480111443879415789561164307436475969590337657212994216266518178844184017840192932684975967423532212504678682923203632195389997806730080749571817313119122405977763406264857342457332271933766270827817970888571439990481038969272718023120505776726092016488412241601520953454340814701431363090837236810245593765929452421677753176761402092721736385752878509447100204175375092517198899467130252349014654100604944170658959531466681167000806081293239148452647519440010329838145897751302181930395779550384759494417441342731588988271208418058980271581832997083236630767791407954253835154762851150913953096169288838374137891001600283213484888384241168981903968505462252987425556533869479186160367173461503696374787392907029077933315395929390823556325602051029560400722946346187031890345002718379439342216436060665625251192314616495657882084801136106157324064718511469707693383038484655241567301251846370559349788785896966284814426595797817353569664775954592589283828368868624314269831133086474797466407682896625824791446281545814221235923247241748111760026335776741130124537041548945622176326548262573034445472432909628638388657930681863666561087408567356480285467231369982574106953028645397212213092422259715418834293906838208605245026303635389782888327813886721372678513192781927501502923822266310832746038724627125122862515229054345720307584152670598600044095760798943503556753204219717991002899162068704994994793172354656637784703223259344829443299239914987186819542973958062550266671410631550412466517419657510051733082802203664416307091126573248004242913545536673170720391828643699983537498206497093736552121519017881733534481859514974326898112832444498461345582700417353247388532795496930805225925189485302047195649067512544706075146566833128961128461712706451163899261290615173680969580410998029628849646148364755040852217870398113100958016502219714082977419138035876124327390202078318867990844904873362205368407523070184344033402289899391765364638765306624478384190285587997308115752611192080068265550875236452797031847083781635483282089532014615640143062770638229194025717565229482175815052374027131227991541262272650432309077585923163210712090821732316598757303923688091815029071790752353197692620773469670008838950067964043698512814889325045980540049758626908882928309044563585282555118623692415446597294139092532648727381068707617378041373612704120649835303281148565626192679027212460182087221506834116734929248626142278950305823955772706636053847843483841840238985032116036777176560047440584096214700462041337676130571857222784145119921718931755341725280096023047952152258474152520906385822033497716693138849313856725291506704179498515907754187452865694807252504482778543668156479695494809591201752472379061216327384903897510308464779372880171751254561030357087312126325804609203397860270321255749713079696914580262056205346701636218691987435106960381018741369492157128458686210935904046149987129440146437827044968601820774076138756163097283137778820176264475985137208992211339614715219624320602327390542322384379520469822280484647156380457321665340192543763777121436961224748873620480709200431617176221915583573195351586376234021691942754002373404408251711703185673644667251378856605580662733801058704752065969398470049876645324313516170883284432537882256505672354157908803166755332911411312703574505957937236703630378124677466789205165036873251329662824793876182824927292461906248205118513158407249042816664792268810558913300629092533466218058281562597110461510521118933476680501619177155833595616877213688176962758466762942182051048477633769824721049537684607163299980640378571485676695029106307010836805049261118672880504982709825829036338201399877761051080406600755513755921987265232584467767932603388805344193308406653292169164429866928510429171936645984085253868126353330385264045577005365553738744158412322619674230569029923292637839929330643331441772213770789814822568742579014389449106250210540492506287619196371674528376772039752933110005796698453637838973778034262000466690696141599396649666107355687443414614840638179171515529667913687824438638190460013698452204724931620937149221769844075211785431811886602226330426827878325862043420340791497307231463666318563678869895719759802944743487436965859613427944878878738578719369463710271526383020589256897380112144924217655093772471917377443388871539507555221724036113096791718201712639737248676570971334338741742575702857369421607561301635247484290385061058562442949776597775634263476895456344773460203136018444928077888841729586664720853655847848902631685840134035198304274679758811065488573329821762896532766871872058784048296962003400980703593416436188685840533586201738069160655161003044327715304292324509526480508486708274511413279497788615295315005140011673104028996836339719594768502071778652033001083343680279450176392596914767467015505276989617330401328786134610869835959817775526517060420023985261885409008033242404504062195157344503118042293887168031508040009966947851902479450357855341244798683878931727438674866772622522653948613895225713796645765751321056967684890570385326781096802180215791073114246012753113246348635439387725118188631600998663433120269342076169229819658916128605802731772229345119776181273480607131779237302003520818565887077445693231789843811705185510900572035591947419584470337581297851417656373388147445645722005854248104432479151059236055387476427910656469862373107509793742866720105278580610395599141331157390781399134667696202195676215091920951106099211400069553894667963819841790606371409680186040196291574380172015740298078591340600408502923446906839566321511724825643661209518087437039253890071119072818593550458924556825034509603579981225519062649944759127203069079783644868171242579708898099017302854059323565536059434691278155419538896738604083496200820985916053238290253478737895092697364853090465371149294314866420751159555240831030838366101405938135788344028914949766674280750503139755251557930444275358819243304714749896434493679875963619936992715731708761457385936511759056677985403479084491938639900694718195432125665830432827764082586234360775564901455785891403172272332168154316304182776256634503988846525342660131722283792293912727653579887305151854678508678845299441409817426141107327447684250759071237637159084140475132862562709678353790531325288862082930582668337874983712919638263869455282294300832339795436356197192466872548215341954098675684938238074551111188613864469253735021861822516068103456030598889456464347160016558075497127502386163088881837927591502560120788419915686545275342324269096655243704780572154917192288754452373503430889241596592275506935047995681958553692976250900707571486643016291221932203787414194989387393176381910721440252973906789217606743409231770495237042321013571941299368155834388721007002506589528491250137874943292523054040434254672820643767018207741356658826763501075753174003442226950948931479165663867981636498227269778638130232615188057318762104037493922958542514106820742080254246865940854250607337078100056137995897284741663939185277093582920556980051154647240715294230955701786360611061002081579805832403805085075324207057248420854978958882901220035787564223541436085263533388557219140651253318277955492449607178365945710569362873325494392327007281039256536083064209942214409869895399720321860910327133174996056152432398291197307294353911804046814381329163566050927506128456187660147730913971853583637070439785059156263131632181578789468403724527091075563526609137222204229821982138087624414679289847528163079867346637553692919681070312583114097489190762854210886746597397350212337138918910106243436750690289922313258574396896479666517739540907872586961433563257949346514291990368510671050395556792222580830024240691312109468322521221274322580458925860950584604842383877258593430730888809604069457810612927154434778146678479326542729930273506455575817731429856911239828395542730878956743521780716873266273994785334952896921186040234196407196298359718886999300179256884317416871879675857441899781484462259994596425637194631513426106925155381800208040985221557961634397520604899218887437920553328362501901657732805904716023075124527659232865456037765266903692073953871519364157980862976834459420413718519037529497567393729733991049019859968931354893496958783122868603305992904471923526036691444242764905349234961285296901292665682755277380145847588229092262792617817658532760445649233750962841902593185659935715867621403629439283105662199690676426205895964000387202350829841976409960331260395951585065381637718535377004007226611374958214634291608790102284930183642832680209016220153553611724944053923872028287210237476541175468006331504710061995327308875154346550858061063353587148450137189630573653618458512965210168004755491515332640705963214251047815639584915707072149482765552332169236478230851797762504005144678770135020150392260861308098251405158598827676530270951788656633126435436089476000528927669866385017647896792131185327236794587952641812040679625064012300249583337867247330283522490429063934447874617356848058164005821313378853940545463562122662451885353098121277696651128845688194934149808638199666105513365712375047624803308369660726939244904674741831552538307277759191591941237868688025682825634557465224794796214750229301712246268512307810539961055741353432933691792071429987683610147555102609142406255867044921285141418249572636785745757843664989003819386804382942085537552234386339493139780633535659728068835677924157280548676916727465555540871099778573322001601591882795435017037406909121063853506568736461383472771429836392219942378960564820634633369342009004427579280716046577893438476853334758381946740339100344512417141315114025946206924988774363478448051870213443129956935259358482717375531473041874221359859802737530151481697563380641333810054514060358525284466364866962214123391817909056122556195143924435036723944314297834146374437077291598141999434157842716454091064800848736700460399409401668134999675051370327732220833738290293264953171998153479444642621691697522189277652030939730390631016466559024975596375667928928017382411500018765403134105670212805393358961470433963265309761737227151015159699827459905440969314267569535384710623769032648386053091941635351524675689188652544733213082373194458325024417579927574848038395517477962475406250549574580059153143693751787028288831124051974605139911564783184594754727990018065232677320619404447680132315524855535414315904802936335974771136782349658266252976020831090443538419004515700490922650916339561445334606666926182145105026627546530894896393419392279779040731426191813127538840724118728619085934364444531148207998714076978027494167589716649633564415579114113093430681537052174734577184318260274180664220308340595533175341563955894123595589396110309188962940326477641639257892215326572949370930273999630053545557374100697691052244769435187047933872550820036407581538042965063328085802168007419660269820657613907634569902103361235605108071467202089577012180118947722438168847630805947053604792707011210847097179945962860769264931009710450434018527740444432247581379150002592505618050445098743337321177913782963567232318626625934534427000621870953654627528314482529378876947080356427356943357687279942915637554282909221728867660001145618955949630608603645510808751716087672739499218389919180246267240379016097328548349586025629445935698989700273505481338778746225018241936528203532423514194657444144226164627795326491501629900720838591227503879099189539749805416230837908404421007333493095307306493709639747965735779651626331898304517032278497219219400887527855267049685451305816576124010140195303613871779721544149311857114154578261264885985513471711840568119188065013049027406161180956651791600231547167994679538881595075712750850487622541857999106693495149804497028452026441581935327230818026525359465683139788569392614119687631418594044163029159141345946392514549991070017346698030053838633120657285928187496520213630261359398194786056573606244512336483183297302359923122979575810216065888995205134263399279667727909198688072432053347267653523680838443717250878111127571094046701843006334617539289354190379199146318225454248280130802275854333467733976528074829233043900571185607708959269186103398950275966208730593019122227435996749536621776084606187465912050394345733480683615283169106544917611210091545916079404172914453318701638208479052579369041482531749238270206566755159537323544352615238099475086398883402496810936703202194240289516825437240743263411804863740129538509294624130627674185780056954312062086381342217783200572992915114206239960009261848578546904652762527019943675455444012072388892131601104759120841030501581869005697357267772242362010927399308445032530670995635787194477565356742624894463923443097432491595663488079264926006012846078176165025761832585699214560707207020436910586910533467522228978527279565594745056203843295811442917949007038698593509549391897321352001357654538917722200485112018575864148030879386600723493581252953644176895038982784338070950395370030968957788344084437886106321024697055764315501047351888565839088128877161279115904568363903041961255458541124510925323899479769363190277647222552506162400615873740978197632112775583450968392030740483045419793690095010138839101384288011151174106907007653120400428834477920715915101725154224559313496372616702825237852005595304696626806492182091696704364539983774061151629007906697473946420922584174305393420917838738292153283579995922473801462347566730244138665742341620115739615933726234875222190749573395502548106085804426433565887728423920612974170069316966557578568347663049616084176666409879531441182533416487257133283972552461204499226085638358929925162698659076055984007645280252447241889511676107768169902879544986464293667998518412358558374435619065021136954249160844718203953291440366214788868312482139083034795885395436219400095729479578146704227612074589416034899809356170962603586399221246032163487647851186541135660096085327688831744981145778622132350244477976768163044928679677313187975259140579600658724758240097499531586179801461880884855809627172491082164434171964886552405009931888031008242334632532553960186580851049737176021818314517461241766716358665301111967155052110066530623317105927278208773976647244276710643584114193386114660002575673069286348364163871347084210525902598790925530972336848722589287666960520256013431535815122174147934418736922847530538745225009395690483545395835991619493221035323756749061512573323815114653880468627273296789014405299358760628386352972488189944263567366057466301827521432688250740315053444152720207785165488171221870945243101690064529572548116998041655618854584735298763910330103186917346190479120315245740367944160226797152180619570572259232235991307843908080883918595022746782178871697779539619670404471821046381510441225785622252938877915453226051940262105619905912629662029237542384537801584240428684028453264158205766080636010413649583286225983817053708735319509688261910308694761821252588160729527482905640675404428433020292025673143082558433258438871924162024166804083699621136161252257420475880621977595038001390424207212960124330200978027473737416371127444409843195956302736458866335985502988433408092253285385745217293165632965083900847843704957799529718261842624757213624162925155789154583423443130490500028502810605334301084889504727142427839907434350259004244867944615110329591921127268199727583565237664388900063197359757699961036010327151711344072250405078023818634974727040467845332985235203769375408781410255887603821146667242893809085269406486466960194980613277617446748558303051555928442332256331315120057309389873846018664515383584004227804806890826365260218208725092774371060243102660706637158868056069742499239022347581845691300792016796628766462317793392473065804401297087225890843258748454609911650076714997875438642120509618616536156027896342222550315416729064932129350799929413258728753470280743514163376043872729389372406138112278079921368851047390018094826980210641014704117577870227404076935608275601873129956657589416674619751638830766226188364158072674106777872040863611961117363495127557845811218293529515695316430736102282574487683594208040948772846139992758372729061207378101661287250655096466816437572323729909537491787695930845316573563236991449599724270011479673295847533434892713624923695791467536197771153907902607636479442209309961096469621105311087289480538391697036142821712719093077027210966394271125001932345777160491827794786923806516911986301276731216604094559368986486677777599579718567147608601727371637732555350174860249175381387351750071460615262191751358839830101864419455541302409066054245422865634313761699405271263134730893123707062504724681582789821012786754240098997300401524479514110639847319765341838773307146255864886978199063850684221487807534521256931348550137357662567464995692533261978951489895342334674615574679434181095638887193987166409097411010176695023887475716226527805566790746843386274370126538802454411345268902645816448405071087736198566581622584751188480961581612259024695052898128867049085931561178685372138674392674604053460349575597423836041758692506288580489058753084030760719876399682815466694801678320693119482163166148417111425737536481055064201030320304826530133166172316840421221809252756568132019740320514612030168360086781943719415782952169311364744366582020236833976709724113092591850999017159947118849676711287165587552302752933019156483039977768279501456801799946556757993108842183841091944818638333418524895451564482232814539930977190654951819317204935657755720738562716626309041943129320624640478417276409228183683236925006492696299738715667001663782853431223665092371988319980294721353328924987473034794245024191099595897855138883120647015525079534650359206763444494873693510628034787884221680330890789423923823341208377175321709859658520666725113354911927617569662160291898580002161097492718508341197637845734182386760926215997210845065061902283908503296023987394431624441990511791516128827398098042983965699862676327650824762866833423818281046035558053248672743605934918851036758861682259779306531185025914108640447000760682168950493680459465409143962177282806162532347416518794222373875712115477064446144157102366974844457504345223245750442839750849897045782290428571203095588087041289665321475864382776219021694013656017087550490735393639987584460020458649614843711736613443505098770125965271559172836720487808931757344435737398824204105731142360667242269028171755059882813779234273529354864193263103122479356471909154084228961969228818582613004745684155468450869885972536671175888726490682605557085922997098762992811390208247475291914028767647514985486442902578000334549467638505653069604884907465736933642113276545045071783528551541113415685777652206668966264033268930178334951247966051047888928660689766119932836372957820438668403084786021500513918181242445380290881284340786683536850564306325898192850488327041431625789078200290984273732537371813791330581684568855415196837771105135365100222316293947049159604112280829275931291666534113811525664334426817628692557830739787320514847833168940900430082517150581600752815976183217655494340922657913020312506071314626721752333962329318778297170465881981484502144989671679367788652155401031397744339606575103422283023738865233931933950513946218034968306284345492835367549633058938297345013676869765311817138076587920558410374560801709139404458246171285824157913469588588774722877064479154195956740679479858931167520130504640257690162843161433898442041243496360328532563934998963948223112066619390018483295473921420413656543694770396147146400730600470536348297025182797174658395106978469001337107035005367659279928840092359637837373439117656568635417748590541777071914489633947878597110513447287888719304597006063612938085590803377032384400817991473475534722161701360077676285925380216026045332446204974187123115813603226378499704249174791503871938088107088853903202999634545235924410713568635921010328223668886163451564073297110416549347610303604149389381812499231472664463965629896554589096844345951772194093562917070816605521558142938018281043336104425304478727637025455882940123208225096278550692488485092709875820745068045848285017268806767736758047683811346690782563768601936557127776123738413085461392492737238417857504004286246099491942247981619728572222643453028147016626245175763169875958903156247422753936677220849645605591177572070943929282668160823702646030322638166117145653427117748108443715239608764726245909168050118853471449638032273379187597072189159383238504099987203589525760260673121735036146696149318275364469815120100053040950448899403079337018126474159947254412367130484498625724056667098054633336984382216029012572211296270865401402394646270829447231917416513429139644420143989578889784772859745914583173058958679483916237489970365291544180103025294538013323985347489117782667304453698105899652610321648023644547145417733054929883598745780635708629006564075060458363863513356054400686200208913434611708328200688539776825627663287613113860749367541149224871088523220771544349188223703365559355794094215964493262462278362807215400555427029053091485584527947951828356332091785871591048134514124986995908040977268616666712128170977028066559002196588465142886814655669636356364335907522083786326492022755774617616517904588126367551603374821225902279512576858902487993287689461050873523957380859646017530419906357412929514314646952879839345737177847207831767190111491947267188192188451964481839503542291728046097666859521261323677207922971064437520838187595054023840224294999998787171708356354575401974627797950477674903056404256993926544895879480392238220628775733493398090864005239077740426460585431282154495795382629371668952438182110879042069063684894307371915357629918859672754615455588404102846902346837830473595090665710322251915002442519641317487396237392500398181535748842609605599680591962208108690036114404239187567450886775663883891656485715087028080825918916167357457940688914463399543586699375395918421301637767827485732492243387280186289259876988998672253018120205260715994566630380827304089065328694551592280112792311511847311387904650062260127883944978801890667880002409351996924117529958991417081552239924822887110353135039101750211933394935257426516206402952691752177696326941752320731338869407149554414001449148222025442358600790185475854607541016601170751140556721508021735286093400834958113331424580908198727830392442477437401315854234463729753569880913974608710853021910040593750659585888213818855251341570448012518434119925583335696174815856158167842659194071340232330195848365846259096620652038048364501948506112247830556622363762425832900030610819235046671661135329422887464911812742285830384432201588549172088935427521962759148590735816255873403849714781629591407706847718907950289901469624431829085116586402166336089618747991164293326257047660236362297535219581453874105704710737291905181982552405133327920231721073582068855108026441625666214845432865428220530792676534580397771032692392113465137688705830414321932191550415051519439959123901554169114580835146367464884832883393601797515430162792292622255976711861347157600128002927741122804542691629553259090212895544328195641222694600073767000136294912148470007901831299107972266956989004047264974114385285908208282945715489117446618223101337025563508285286812419843771094551121559019816826196412544674844342530588927265469319581542985153976600574251322099140518007380966089990163701365532299422310659081390912098870707994432616558689513802674425606359508098565715366351396807427555522643331424731678377645984267516930733817880763103504674186089891531261991025610646405650074967626203115531713976809346559703106082561120341855578584356259112296256800168429444744004142279396913855850856390529450197926273972066531365377639881785100493379667250908288323860705016997016452898686857066727631625158406881605051736826944169193415202665760357447542384473900257991741885623159866200873384987794695986630162648674365517916289358261271004134243195799798135696778535344485615585314078356364476451961102840985925467504698967081245024068254728458840345598170493619691852494976656613713124996652511726132969237527822843693361910590695317298075415380368441401914341977356973003294253556165494934667447767580419262094118888059278051995979094519266193929578996103723220538637085044064213728209946465457912649855937328639322269408657000206732945977635874982986021289807750893087105745423413281204953764794347631159268150191074984365127635638203687257025239391632848195392651873744218180989409685325853046446490034403464647309512298111626973926498219483403985237404013839973975007375743043105839026687378333911214662775143953252262774333739060405404110561033013377866839230031104865931057036908174120506936168263936818613699794964027617236167526203402569383817561478474884954099391571524907572599070872366218202368427780060482296130192332273116707649211130899453831082144173886362286767575867692020688325824770801210554964283747638771860888705532757676471717231806717657170272736164613034943093252127905790855908890237391163252589236652954270476166611215366912492397372883824850183921732156468347735392739930099995826553892382953537516011960126671652703222115595477527759674058286475662587902174981710460265730098706422820314495034000899062981608049375866554793104305723254217378063275674983016189705163986152924877805927256272893806476045668690205348089391580942953266323061855160613775358702830380050027471324893248442334885942982816161016673517246517912131111970910596183659900226142252711455351149859156740660270891676032221011983041520670867868597906858570115540240973521586969093352915832338584047465904879690396359311259899911041003485128496241943721922556695147972437352595982517783377011929730433644210971192918928237347110506931792999742898468288550652032268527804161319514311799430648183853769437022030679531442677172398309826609387852256896675754777731148211231991732943277017253596138612822242516775109637650768769273237653175592847790961196629636531433277155192684038893677421609739373579023429490429765455772058299225157977390431818096805193163315915110643968162302121297426663725142923547071593420621603622737898979322516559610974556899023798899979046406746594357318099175290498347201913474975375682525007341390226304175820899582356523101572170328077819248928831941781225655490775394736393694615503503208982691584515313432755263093235720182527234912828853198189211926901628667290584695704770963097991964181987271014523372725826427031981087870954130061995063783651664178107615452984536616041948552917268137278222551152162676572322759965178129352628081852876932797362971280410912555402821323162703946172352390818468086517147017604945042697796792136357402284973383753458395351398776453361611927899335268970193547089805592236289467300893572281869409415009635030323317001077871095203636732555349390485001783218505102697191496206650321737085779821340485744726144239527773360196885946846436488331427581070734438121295193195324788489569794315059680728314971423279963698152848111440982593981903811378893920729630255456737681745691443843001463555994876673177285799967786898701293446560349117427969195691072473758875941241286303463136275800715371688593483510489430875938635139208772025890738602993692941759625216819299615351013525687865881139133866125458123908258721360185631899802813900820290520594982266112078550740284026490576967668494829745018826045856364504190399798267713331996713989636648302756793086254219338641372714026246473314769010493253284167501818175215930307204400403577640280820354487960851781157913690755913715439206571424615827425309834187613384388825747866128292704394008671495311753400740343566573099655666621188278595180597999803233682255133849732968157904525205210519777548963453172251135558231498728018933603984178159369495718344405887970867824836700803886507901160236135115062631263132850471163904655851880901805310459037360516986752257416215331605418771729494960178863662605353449315492882750747213183041849896589389356926226883551800442106933919577003435196943542423632286262657433132702776107187747523922753651975114745723367753340435224384164090972859198497464000741003047625778276742764439794348336415781377285449726705625761145320724263784389552370040012763517450804282500344973353204589551772487204873128712660114596752708897163594921686918461208382223927743203307718767624203116151259110218335585549816425790267921444144936993275742313193615863203798962806964685689061862896131493367578512735547221529855010241582829333050103893885606104057458274082408804266428388877906689428756135483081052533278668330350417448951069395445213609193017110728946660620580293253720186267817303101956007709047206811994783595984523503536739230308241357980971706807851212448064660936363219524030205221654261209059259930017799603617760742583431676821328217131013112412573973775196637068920521754378238252117972350951439647342539508365640101525854038834479422840623378514783995982448753274887425591278736996656934266189032256740566190387643603570456685277490099738900410394514431429304415203802403013025962485870725454734230737581203568943469532916223418963230013816044679728906934764696088927742670572488963653483915555052492294861120861985310336385142496277190283733245447499586774801649596240712757301220647462984227955188882474701404445213052620314012347764959569237236031656556288931005961446456425673530852757555792961433018827145200394579945846101472951330361980554656507925212178973225758859269811026359359094516803918321998463418756736473381228693233741906931519588054978252951294470761953762473897976471262032781708154902121725233388304978543951911030656740478039640563149279902047857451787700347272665033861726157917123720071851250409561366572602993418509504469515626984786364080810501686641428754364560299569856988017350559905836389846310604009476587483001635055002976930494346793279350867554189717838082209561353665934666750722869963916694834638110322365355425620450113108136797251810543546953752407431686885195378438452370654199442340910847306164142642652049517935102225211520340855740112251359669971877418580668202796998602462711751478215288374515002625888477774492143522196328402914096214545007176764862210872234981089185342892433856244956876839617704845892753097448440551437324707626986213161855626240796172234375528284125881766954044768309801675088714098381295994692044948035979418763884034868008799526749950187885970310008662541977174607272553357625219301665901820689278870543505957472789195065010693978587929709024434022319029700415369076925819784576525777974737147591188448390373601525002476053060234765347113513443367087893480881311644418386161611941491463885939195049676990275371767421885723637058684850267262121179204132103421858891154830742330318354605617749014145281809302323451562125097984499028229218847191732652372254822451201515936912900858502682677282433187322356213279596439427069555395213066173002625599722676413421046554755596201439157738297087047963234668529553829478166817817828031004967883495354352262809582734499310389321951050284425864898545006224502669493550116513668144998271977148023611210407147084942950758886433310527464550569558121886957069959638640347650314050397165095418412257619003306115293974016745023171541419872699645062380625996178454226585454541674616839376946188462612036889042467102595906603167671658199166184538745292554193053353617855822230353129919694280634693161815101177795527934203656505096934756139966295606640818456402827836996517805058235730360561494574235749400951566630960081542783325745711705283478960781771490440521480975351008834425584005781049447849293999610349161017333904044132890498390839587848310196651158376754023018774735876424814646178222228246760946774944214454903703980306310222953055096345405344402488492117546261834965476872682850759367432511966775445102817330648888126783623211779252651504829495552201659058179993393113689857267759523982425019161420751993931745399222548084019147180507276655405467021389595667547391631644543427998930838559265644160938399910685310416419255013742936858155062266941691130571030261258597797266969804733980540974439174284927440811589210437190646450565311016563593275396677343258830213578052230291546131638379808412300165778421295119667615540676609473281754015080004551360600794040644381140564425905151875927684802513439434316017190451057799043630623183665840243435997794562146323199640094212801927714767811678243840017905044163285992870742982661347820170998387160464143522107765901345368305454713504344845726420856352699211413078595545781890234480005532020571298627854027357984637175703783653059100096945456444625683974240955808049027739840727427604030466400970435672332652644686548434010385628787899637915114208841570919015615662244728067963818396228734888224717879049583954556817754331865072712057032235728634914492374899688277334366669738344500611594889371570551066547621828200336439054178152191902759509028142011249075512463015928096101935347581300825282273554959467389345422247992766713815487001836682051914327401296053087847439419042215064640413285953902055112976254894612347445920717709724626044695963056302878096558715440442433504793860893260906767896879976904646775391583094087847988519465822355545310285458154757382828578985136309826768523580728713263245739578142025475694717708914102708238362454844864532372572799099020078643714869740383922138595047178406772272664479693524681988497383496472691362321934700075154407117421977500716502482045985264550026320385267153168383396579260271638634106395155615579730262363984649645632483819868284109678545696026965207506147528390525136356527361791463499682253693348055310977178725178795103807038540235809117104086197348417270100224713132245207080508036618764504557116207385038257505828496520242135586099332218806802283899243481100435232267467490989951157797516594350633880717330691964390336704228980969316961306337119182893520924700240331558062183251350197786394459738076511665390296657158494286249814860061100901183488377026546886418753647653363302298910409675896153783813918791647484566968324591553932652873020407137339304561472164164580867969224838744922281918109027279385812015874355456639453147471949857467630380340254666129749914617644184005978060860444761376189922575156808839232687857714960751912227986289834077228727149179421284438030100277611985334431323949877498224051622774788568355330575492516692752719902113328818354102738548001384202947088889060306222143023171656119733832781387253651781301117564285545417328842919250770741003437103710377209703320246713235756236856393770634551435098995453283367858682104884621300245843411352187371198627416256927766424684225158043630762310141233376832773567428802126268393637129765610411978878444141724882609759004873721072319402994573819355188338477309751158186949568211445798331970235102153052336711607115528697090466245542284068160726510627718747160370154739504690932016249387224573584040173237803634427463751176650673169809612549856788115385289095380880939706737740653038763458825232919253834956664878619355602573502790665797497956172522058981117440440711632677282139238005444775686976673356155051263927148824424091747008662321563852816603981122840993925486743163799854364949104963639948352598056167432356456344876986913194401059938237858055331116341363585707215507291051468516192525884675906259570764057790335971819031257298614766867644211200468439127086785938496155908825055772013843706771334873867487171977850350196761470011995895718760849278480761009737452716457821087500714264626023092056143063384135828040996125141191335760554980064032716211722032702453683063400308079651511136404039152559534164083871243579563944297547731682188583351276842527085481862446798218297716532800560108793346732713061774351950542528838103981349769034165445985693363708661467564486395764978214688072217274742261610914594448550803991580697765809742471587674830776870531919787486131683355854442414685353799308880639247843671448667883968315300314103463632731337733169531420600763562498333235141739643608323320338529906406318237219525003472939135328581929701707055425434142823928707950419567159008774879388874883393926265941216860619884884046670656344786391701339000843303837395315041856339227871536010355278410664176038202598905453028200586041507697159249355818842333337800058485125796742187173176034480049948484659614165443554970140916278106297371423338297961650552209936035660600140707091549790518838554885763492930313630415217055109233029873715942391319080528188490709705605956275798437279284921171316198013803471150048398876085194857994279802656251081650846799706670630553382853451253178980482601165314419533159086602233277929863720884740974197341520308368578657351815203678170426189758347790067616599693630751798257692133720175741490424419786173095681733816941149481364183558545423583030267345084119329317564268150864009979950022249524118673627140049086849049343719377791943373332676247483541064919672892564868061597072141737035085111114790078442164055460167818635057788469215136051164797477299692459719108644575301392193891506476190694346561419691528757212140325048546281944656344471784779619089037316573114899165934500686482563877119698586261269119378964318000277877590677792094837466026270772905266097419321927606411553120292021299105062720203285608457861278613036982387243191459283417159929424006767830152107909147093565343699017749895298406911263380667951704504670384839640166661601359702098075568405883121145543294915791819110924790070077630076057970121893730096470288916766753362918659021862329619596230606636221558669558384761961844505063015251058812764848391891893391911638546723764580454410878010661169833538877227864559469172794832098762895744661178061841273173815999932835686215287868292055810142935219332048542844443873092419558764970946972443014552926619135923316747032056900918102453266366033246287361408544178494981739705857881668113219480005914678588142915547343972826462242031510054848459655034440583199897128820282517499696549635637406539664213110310441312555256317118589715629846557720691822437369661169684943691599024170058260144881104012850675759176063291777816795909857798420813812420802137192593232303556911998191983526919056232877123844701654320261057986190655022596917078500148136134291720268453567851746825932882115906691662986493462025246962286737915758099788816132082988660129209162555852386849629508124531475755276524046249331358091149314227922558945419767453007127148632683187852688337262465596914782879239268515989393055794767927787837450247189252251348411310692446606934804133283464151194113686675720939299711617838568829531486590363124076204603772610415429217529190188223394706725434284372445579728948466870662553917958454851282001856898267838952695665305648714189811385224305015408382459588369193109263053157707949489908488184480072307798897754889933880550793402587256957556322375564109338149572875413462625136406598729550803129148924809834796893975574565804976305333500297261836070084865990199806689669925724567251520009623050189699982912732319374189087003819757579149189574495039619159611792850090147444158783658119776959199966207414684261066262530264753871196743800245058035917969322594117855077910668752661715329334797761691327962319120032151426500275443975777096493004544437456815135528489630815676017221792833441838379416370954652290664501002309274111849759954055533837549843187813809173165067302057909503197677706145969353113878431034786327363883072895450979586683960794005655442551820900263572915783621835260846611825554719884302807936727862539992588944022054953898208675698146662286965984191923857164132429627671597150894425023924913719250378397717458223674602311249769325009518787505701639554376744841050345870708052564678115357064940028904813539580767237425544818684321408335503568556704138641393770480503927293231999070323551750651486754230052411890524546424004355241961978124714659594760528362821896336505764192835006270805457667697490751957312792466373373070511542199818403568078604266917673089385089398809826094153854249143807433560946012388074968713515831279925614116739243192073393024041447441471909905714619363513362565791243345513390200420286319017624447847673460670890867357890315435606844265807442103154066642872978762338069520594128056270611015823285238804068952818985732494629643896372833249135573765202021810812276871320058967809669539891030826239682039760814639837686825042588756971439372573822612271170795623723848823659440506308305640302309518762228318696587735855712393692398785203520957132902208011047574027148904771981130963330319840273094655750106247506704915733563794538914783588258872501386726113082971495390575192148107124935154838902985335440558082754265287935452601078907307115724415069050967226151662286787142503484451610878660798058244957302540786516406197386541249955540380071142852529508911899750628471050592672001833220029549037116626670625151595228455624938722506563593888950084834864297380838003133747306681854425256770262937243494301487556800547861573340406462008112147683288831115828137083900188876189170967182057462645176663096612811136572957114261563194871667267793265063030960241437013758361680557317506193760319343560637710337374028228545039396450377910240818074350376626021628096385063659948569387011881993281153317635564683569416310538020511024561295473474655611799233984766459824274861947929846739661209682865995425630669040892366199996983887119914948103184698589970638534250064044424468951105873127962126474048478144387444397897729270704041642123001941463590865685047345164200418632909770527822025251193608630041186669787387205322591403405249272694951030366428731292037128106488555123417682626533453999753455852641156290872350159290644975849594286217779991967790606319996826013361412243814707691838821665272178102753233592200488748521405666646447397149870719849050717517975921102292656299744784249856779416753463832159444763511446202179387442736633758466922047525917275486052324777676519184576422722570742801364547222233114919641172912635625923343110645365239155489798429786688481021557279213264173906917587647288567805861915847064221702746825631020128772582662788964089667470889950727561653494780678221953008488130020581523053495337123803791808554894634991920142175374493903248815071420946219181670717014233444668502417970139765342112748206876080011385987039915621331255018299022630731273820298036552491660108816487761601020709386892022051686606898784701464662556307694637939875374234187221427925037050332261249188652990954958733155958646692008069246789818573020595485942209069025894203629859716803589200158094390006803895866170453392394542455866955971117852353552385288475628125535784438995670400512596516730399216058657613159529222776266161280753034133037460026954555302660113650969160159186686211649559964125670965089298936299766473845986708867555260909592321931373144067591211276389113214954777158922816528997785170591719870485246476554974103822887337391949524761093918658168317437157514109829656993964826211859555283397349916039286625709296053457381846987815806214546104605008210231122428549355340921542082448969592698397890471074771310597192808901674674699107064155511647210006306053959488535707313408098579943010576048922625095816254015243339779336609216688266888482881364690847149340705646391197889692882344650223218824433771179287438637933681211696423230015746537085981255998364844682683987021769904012961011454962505982703900816524555749380744330739410230984288969981453423765454780883363128882548890366248570108070129567301671599480588002223802160569781958861456461741320210770572199219473937167191269772464774009873477503353896430922583479879158145067963914320205139353308112135406812747050429075711658690848253351240431783571306429952655598922880132833886519849769755333223270869731735823795643236748197168861028222672277557853673016990895427663821006680903309869929308061277290834602526694204682953352347707686613172138335595795449463035001060231417508466023892771858033995224294967530607345826973950475658239167730347807718654760953956334098391545043434870382516404003090569593071397139451465089980021434540008973026088248979213929881599774029930603030923703977945851104714856455721645248769551329607892513361016501720219047410900361528662803401375622081380517967113680653585979263119001574866090754574225195927840612709006182537333001351780220403621037161664838202820108106606349043526728802652218358271815404787559197337310065957066061218592076413774368880881810541609325532249901343757424486442544941497154918463768571014078605123531233924869595985197651996710634886972796061926696020872016503965710659503814720253449463093202262681459156671623131461449611339711729111497169572158833767292320551779788934215487383298515608898413847843244729904697594789602458960487859964241828734178058645341288993618230096907692521542821248730697141039742025717147142064129107871452926739777052629515448141358305712760203118823888839983202199696834800869118574256228657326092842579101752505450325595739584384060671796480247581895252544936159551860132079364785488563347747549484908480950165203888901811511127249871649116027019772189821413426560074294322992818242163132973841888629109596089008489118465314417452356735774348349290844259442883881878806606009710675653799052567264688346575508950476750364209635616398924087968198535182413360016412772259909560986491430613018922807778919076996344828616705025756451338844437975455021911044392417218060420841799295035635519813545413936049903409624678389433701751974715910107885259887297710651119139309780262530599600049722706559083434498026040567307483916724418732352141231925734211008404446297702959587464281953013338746033783041670905300078688794801230569734076592005604619160695527252180498735719133761697870863565046181207102543426132744550399071425253733473320683122646001315832378305148659482389007212082879405885786080955008530467515540726850017737985750699083744515403991493189696257973890799087424920733421203345116740828035420797769998658366016011291054879110347051967192859944134157445536045613098136759384860766642676259560351357970469629253905122902696368800290149503291000012889832152497432146657391559178054614546182545776261564187636022235034506678933175947835561259062784196413664028504499276175084745237296188407841771785709579865291197338831871218305422778763446352158866514228186686945400519616831238753354496143443723488563544038032538822680775002198495582976521518250268666889365563249304146117614797670796520492961430082691826389019630253562449597962863182205695327640420134227074224183155106912383494951420086618632918130785661535141018489306458840401420994822459054060854472336846739500407026559740078372993122624872748911351876425137804462666460807446136614889087198656260469902578648680999031203887978981199722420043577425440364329373468893791435069792818688321290055487160379879437193081235301699804940908161743710393233816525269328987491654609301019633003812013119863910814353251970717833322402581733974063584914793117559264997839037071369810935598219258156633337188395309891140953609527542415482334061712095521069839776678125789882938981369081459869013774507331151998463832848767403606652685274508806013818350426556836576039797492242212876852910960824709026810543967720159788810257388849242337385679816891794034207999986153728851304502198893799506893533542168217177101085328822923450528342365918018840010835815532804950081262820996292842794668694979127347289922206772612236037131370060242652614982468886044703538013901314448751657578453879799622921641423216864888337267014118291420098021421055687003933946225956434459607093830704566340278629864979533738164872196052814534868359889857494538016982202350811460207809694081262249397599555662888595867109413411412487534170042170756384334042803443429686958044533790586540940317877754791878123957188449858728725132149153860201980101379333662134318860628344384165011677838976659039325201709650472022160598130806554243298257498749237348733576428103617682403359271254095335156093312790213235273275043594267707840504639120979548724774313633700572487504957031627355051156192448420571882669074209411310638659491172513127679659570290039489734861948707595869533874046339294541771827431187726748634319978741462899798280215806967428985307701919754202086361229595991258655249798354922873757569164513807180933462451407349181248822139605749641985557332168896201720896686945875818498318825142512695660560089969324908990247962837835844968880057152014298947778208860467019876353340034059248976313946309313788889106867943981869935117128967541058239900670050575684506523627684049779533653903030786229750565567372796811250107148712782147126179159403210554719104714776539713955601171713624941469382166956531562148056535271027615591726612956780775865413241635982835373266525423681325810920185372235544611362566003922401887571044522881723866263193436463054612934541822322293688394709741051667614302717420979289700542007999506117251464231878736528060484656376511539530991419959401211150827161764652011073816085895762569223567256822914170405302091952101219223649511828570327172140496379706600616286617149210940952601813575686499817373617660868200933877303355480548678863714193943761862423166162391314298260294500564853622075670050681571989948217673524960854806609085823387880636429841429688901619961469589353108896176759268474845137178766353275158298500914807044379693053356656366041715105246434362950262024252905739809250235522293188630179421308751079677463652068157958894443674071814510397511825736974578753235641105221072329317085190731357986862869137688082436079967755803906211913318927456180506279626631183328249524653608964294990479863603812170232114923998710081791199641009246832280277504369300901842944211992046786445771832779794336414540256440498565172104681901256991912675569580170879299134183773362028782623082006192014425255486484228915914042202826493510585241442201189150811427711420481307051578142847382185191003424063586938952337070744641601476319281050090403925403023758713646813269036056847978470795452021609132495926318486470210883965377573859328147806524650231106611839367664891248167098902576000406126053535411130010862983997683217832909595067518718067475876921817644107558093557829182608064030328323791139768145778255822091071430408307681395277812774440271677667719878416478491834957143235344461269003355866196197821194290493184809481554016719019529165584585781814495713455694051166280875881883218771464422629529359248677678283193539357519612655920065583223437762265828097332463327245775129004026350992502632288959400684423542812952619247256869800525684349034172775312556498347928987964475499837402770055536062746760928982574962715813518795235310164569180602109200967428162699803613049981995858167583373941636867714929598436958667915623693787682391201673512422714876596336718911560982431326660627007929342059329984375209992007383444327880141996366187872539678326426026329802838525870824546357266210053535364615452806551130480135802014107929222375613629305988530604234361438749498502419932382456434786441480157340864876644979152061227448882644747985869800104173849552312111693071512057359923449558548644717138401972209204188665765587802741009525193260977498294195597465117624301974627191026448053706771679336769360438138110286675235864684604716089498391461762040115226409501819713209893583524935588683612929981762299354588742428650770569295831658907908304281767970611027716028017594017030900325405855430082999142972628949914014564676646185558192332896514329749966149249168977645083940259732026109077767856962013628630253946749035744282110839859525285445131185382938899742667255556877212090454295914996766838909359411299827243004044013002120504742764409906148447055801128527233128983414211831827182080731411723016155703616013675854728328438430923575266289086252471759556717825542036132692989864444068644703209254021185551223243774938610017312873157440905296308268142810821305187611099200010830089469793788110964525525063208134113578600431699866349220699538577213542594088342888603996076093045686549033816422668463669087040874002983336787469205881659610651440093680209418323466845315092924778582558471870971044114662536107522335633187485987539878467242602115103787331848352347513537641319186065475227507244142937970165906054937914367556134532355981471065753584086890558615062262181219818873630971285925958702601341406097965707848747799894904987344099781201126347649185830243522506547814747965130709050609504911494426837811304890781835201553927015066918733132749638501812091171892085565775972061631842034905535428074205938798034296818610821252047752992820627505812506137806417374425185538846803652885721681518048577455022865173028459426010859391250757884784024523255768119660813749078669913450912300849025322565291818621346865221141126140875508334356619930648310999186222130055209551376028619784837755359349451035893304732379076464375000866232080477706850667150670808466068366166569823782237325735648676922818211938571203602456167966801427676482386205963317031302782668203024603055080967402385601866773821447170422474369105956563852560824919970136141010955466073971359612176130415859756691867229956684627685872404861340689827233421138023038308362091847059480182657948618919557381284559710698272090300060187372888608753592522537174057648323901574687586730430880806895614893511935426971504874938712907963127726531227519113274161809710666726752244925411495974921467113535599076282674531952690337319710571870100945594621108985276734932183212396719262516363431715269866627846585423633670350140436386476500580150615766946067965369915350118338945492709922631274166910070263198799427041461116229660051604070505013140209579485512446981184938987212595009890484158783923756986854462788588870801851022356150585965799177320435412248809765344710746276248521367870553933219864529866999352519662900962390506762347616489224731764620225740105855018880652854655701061969357809091382013345932095180063858411409709425239689287458257169891507757460590333078539215252239583015470440376820567211316557918412289101142301481473971491756798261810589470409945701661952302752133812106653222617590567054087074959765996601007508997480433367759285616393510168454213269174035841373069169844961439370684182351767764803803737018003660324065202406318106401019357940887684438457095946956255349662339944798071253117631137744099562427457954387969794461383785356362424751166914911233729054720625863191260443546764330950517943175603947848387301782672542017932083634745675561905205274851416304523530506916675830569375874764551563340426442921139807346654708438331626022094302047073756679204710112016711523314539286603974968747684581208491110388803594677493130303842480550797249192829441664281434615456204947182179076175821649305452348645340389168761241966332707593012550085215346028614984450818377621500845767148991843059279104376062749676833464392279961742281186282268669999677749074831144840143130684322724254005247496428063661043064123075518298686637254338366736374087302768572222795540276435728453707309132969770127935498178001254188742545630981759067138581128480608114924434300325721580061739379853649095454017158019392493388628798154900390760451410415616820148692874236737496640092977853682016763182898556432409304566149914114736871737622831805115531881247257277380644466276156780960140138472406846965356113848960923104502083075632749277362935908613210416843018627631058965091954886276230517698036422158560960833172698584324165524069909443158812787487661413942701812749715130509930270228757125258035577310325942450433420775414317045376131150979577468277768734038063070869520543095612588131010395997760810277937184178741610114633625599932877035882156040144441388497547543809432398990143033177375764260572008797283179728155995344599496118932048171064962723099955242330560817883741724276346075519778659751264368745716555419536338207303768535638969674353194114618526958477468618232540569246174095834216675491540175479478164498867087935156232654932237072587797030757441142232545513494038383012841732262032452636458206089231366351139800214715486483471345903043523049462840044251785502406700276244209674669399241995022361289412979965644227339855399110168791282997132579060103417534649460843709506923555312340592929402178862424806094851358504199585306300529914293552094248330643152794339293704365294089807836661076626099303598907059961036964663303138946296432213001017319421888028250220928332749084546207182736046795747061765408365998471579849785165337067996037548093425702843011955190239500446259592341513668991533237400447213725427057156238773199735573620481211871824647730931173370023006501821952576118648946185261110666072023188583174415546545547345227861643736847593607631125285985080783461195518927876952805131339961211772483289635873147351228550359075296751730667820956544081795330015240226706895197219204907090894162675494673001265160777109388491532142422431412132905940491904796555208094126051666116597687666248660190468484691750627853096722479546545174030538444689641787434352871871943507645614947940623581674742818219255078459916837466750223911578228097084529850726838341191566492712641528415701854561525892136957550707237345708358437674808989449400196408724041352158206893034658599135466268505002338963401897930053738699584833204396648566765453384287429327392145711729702594913434962353345142220165491926465010044801468014447238038019126485911200008590781312614237213488494925987227284785365910803461224774447210869968191811096616357729562433633386824816469277435324829480661269469681173288321357835834815517919674193118667134816520774817863004768890264000763899215185308548603753050085940671951964878714173372895698765877650732504413859273814434718215758582194324703920420612520079289737503202736507526483354273843306589977659468975547331787184220252610175331758622540828667542573240860553043431641100949931061782694096607273838626568083966158318751543532556791379597128869934826195465140950263607189892985146484776962254447032158652267217453648065400951862965550663536473700804181959434196100112474021346076955460104434694420272826177083134504305672562973120475458819876809406649355293925346013199308226425916591878864372108764568899408276097831076365398939939733270223736380103069963687946265838249749030843878244182783925064078749865111773125070251664184788065534099292743831127029034630104872700512867429789445948841258256794287375828448938389412428797279860254072936215725341767579963273119771524062029267290272244340904851630048316906924763985408686465631774985907537420213168155201824642735911148223484092663155291760823442939487124101225910381732886329101102483436415127208673996560269601010247026941396135882617990807553830514842321849324846453626331744587869223281727359336710046730612670596554774999265296698102306760964400828678004960895639790582398456242533413553842526542705126444947821887794747656313771634429155613016524299913010199521685163080716646579592567328627638735065225944059527110559839003080796102215266506025635156313000778782466013423146067066100495419331745527792887949028704373412192835285712211018298150398962295995337143889881071456880732880678881089971921476483829310347091906025836531809093566066540167546424735280337886329719179581661775223375456170946260468383416406587615377996387419872204590840895832715733180623270750499521801664665703426898751831818975881240039316289777848595889319501015826288638491289307427014900466597387426880978895944666735466417779710920960040783998340423402408069952910856626900126620677073854153963547191737426980229976680876430230161995409949414598397907965164703574705512939368080993374651164960404888755042454366059790691268210280656121580472025031612842957678821248032184716945210845275178064549682435676750774491939238419561962125435167883129976732580798860900354901588836915520651721953277180133424684558452120686749066118893537802152888546421823260863868700103586818996048487622679340378508919738634339524276665333299807839118860939908820507818973607358941743955067088518059117818815450556175061892253404805582316441372310248448957099059503332164934543341357220899071800961754269574298422655563531895483035725979359767940335049439273136971085360786344005446121707593031283932228926410803993753555104718868462206529233837148160871307792240056707244534086903958346223891522168100348098278469669044458079834753109116232332707088872159940725823468133239735390034679684595641149184361168128331283513155027416303655838977467172425797203399352756419859652148631904035351153773426526945406318378110315467080855491808628355877755558311970004846382039637919870721020720012228662106354875937197770205101946754331198255804730327235112848810583483494012613161882819432129618706552828954631519900986904614746503709133748491009280026914043264946040425334463282726290493733538956038649053105421827001296991609753016407472459948873514061296361199605134988179472524756479054788305952877422518412704547915367513761028670721549126826506669312912399055057641465594953781378426326417413927799549927327539460592370234900302719019006123388248773822533535315430135687585059329728591575136186094224165683247057663978856494153448347212557408862223020483042570810243810258289243246835230260693426126725768188845667490811629167153154856629907533624371477113094606600733941753048145263463744148243016279274576250816449630186776610044347099285605869158867458228781259867896042426252895795249088162656086756573589759534309133992552225318325370733187089834258235964171046091170868217799409789876660379756681264247809272928977428877788091546875463423499555570362940975804563573572132068332162785577291021215208165862189120879838792268397133953537066906436386200339539841688263772426696735200778319424081734728956571403269624985478441632508930710552466081262581925420840845145369660900832196484621517484630944593715658084286863000850013567018707703467600565425653451253984298287136437507619764579234438668976002815976381525204959965336565090432549875937244300984642760489572084064322746168784079222981643964767081324758528580069819567558543155457575218648479439246307743372226811291521138867595162177152090835183923496462291596602578915500102384310751885132963993781005146655398897836820352350430044111878407254184961776786352828663370278762747416693243998942050818894327550285749978363569678313974634886902442658112758618391700971904506745863838154698139851355999032685822241845600657235894316472903228734606891511862720328823743741493062430771130264846866517935262903258234332948202453975153094899380778994629332587945078823147898552233403032753360088629700756262509302322407616478696996206693883796302871475917477219341367929345147604482640698598527756589559419439021809022674954883020661265295550597756128516453231594879073109205332987374212700256349452446735261396776540306926881327043434480552120589703412395618666367214791558910016569473837332185040931830910653821027545353273189460141906345215158026105125210077923109199394790238742565113097034585972292139644154410532447015857943195754231495209684230463640857399160916158995470392038012982622557987672468541248843192024780088679198318811650980376753896032402340989874769158863870434497935761303415034734664547299031688853483369015996133057686717840471746605776918382495946742993175734929605913499359044521377806009606111225323579101313308991280551224790949152463765309739311066689905886645930025683465309205215636526668887137085490929198089523353254995667333966443935770662777081782285906824886778764328419939705697748447256922371972218648082057369618799854136020932546338087504727834874591171392755974092154465308758573502205883529042813947694920328449260519519012389756062042721221145892058742482687873727795335504106165381782470846572347924500520019986873228911278623642986266208489889941748537036144303768800518820057101394914327837937874455302145452363686698147984500091619440093106329182427477768054110098612431526081024752443004044964566136625669212807397409268473471212146888013423616598010207995014498832503702245417931019263424005542819536290205003593754170082306529572197602977120189891814154081396804384831148412611486466885312995873591540887229370695884536265746179674779917548644554169550009713123691297115148555669221873555874945431272628587464344898025099888011592598264950477306681563003576511767202791890147723119747043175268258726742514766116931684351342265496551646851147756554446245750516289092186400820581072988065877399667945670253986903276417321131035190526204516481090979468626249962826107873651362134829970488909587447385987562477138907660051857554201019606494564560465138769832025002839708521883211955194201981235926481317754273118446484798497482332911514018330287545775505548681140248889562768026314197475217557137970125330699723048830564361299386706155894127905630224843882379043786665938252378920884023170519914275135593463672247913551321210162657448233849010643768885309220227659504674786786414800688044936656779431947066093883242100808787338097091207514831697697494567585994033108932847228517286843001227803655094396920568138998905020082397258675084175135810610515076935158298102152039884629245583678792998450700196623908111600792035435028989528684566475593819265439438914788118233103048508786907669592947125397963916731219808770137454598875843198106055452130564300823155932519512318807405465851394769293970094545326432213459031215067908954150183731127038271992295218823751211447865627005483377382094155948261674631638826351315042811170259720538099353939324147937972897747063321607916772277366101273281540542500677385163015017230326272145103759059059918978772924010765507139891003511862921970903331085696883094455721835551261726884740605632221198381972256395104981157717371825157934830223655105682202070041458082780979392447183213522752390208800116918821756405695669278005759685516129025372897617795391295289478555775579414609367431762058800415845174039716965165652182556574537028345521688792049476890744051878402875263130715594329151612936996453054156953123889826803100046994885058883542846417553432038617891861912419198788003564611702258622206703056460352027370536262891088132174770741699685856225646543079477854064542569967399823118469527798759456636404653518484520807574774306435583120279228674395854197939362189330465146497919473685695767829613764058157577364921182318808916437811319560890576092271348165632971892640267901655308565336160451716653665959053372782572530567316893873667417847451200675868831014805480048828511919453005013856062669835730729380269647903725326782718590890662865556054279832743514149250227517859369835177659230957838418256492964621590759017552603614440336209695673655566700247753240315727430296797419992751806376985610588743891159700859058820286293055941375674948223546939680005938249232291558098314627086288381250290684593831275491049290665039156910925067326535723076817988499069617352655573392750454898291864297341259640895818816891957317716579329507047980788703571848609321656873029775798786691055761824121051904177663967469689057018337862143796620626364157729545031619817933193856924866786165488281869498625282908753675643408500952966451714315969143713685261291225286992688147389375812095096443266419731029668316051053590761410156858085318465320983539014082290971656246489581642032798061865982321600263588429332666357267051379920525815754999882773802809375224815616273223960499953693978338777454323373854456043178263150440213944171503932596618370606434566165102994438896348538000140924373366898984992033191413095979274505812151942586377193668560628926343481498018525848705195321122293646844927238699385449320211821092859435836144810044665698793200083939133887353776056695363023739237818718207254808894971647359734419560236245149071548464971212466356427514224043995281545843145537228782371077969892218609570716479236504904824404871438943636502597157151243495467377743130333044635355841707223077715557892798994802006557330009921053945173200631289780091915164352678268771381446817791072618352320219508773531364199311427415655163149053464466037660375228433940592057755597004064423037322225698142381663427683761076725362573797748049848861831993154924078223611455586744179926943871828721149543571385040179379602267520333050694741618867838981713734620157988326640427750627629807591436819009790384968958760632528041027939358418115467089089660901671223785377609756838177127141860273083684669337112816166606422762248181920545904189299646021684041699155786765131896502880002881193864431920915599503976293690467874837489543495789705051744295250247594045013242694771190818335325079195542273323852369165029343570795551133712771904211758357839796406499025448537547781620847857759845091170252157244082866280175494426423813520550281551733760607762027605623707505603438135640085314744202109647824875309040982003970785348864083461606765362103139232995385375013466799266001071296803405593943052817575989978603652986774063957199562074473410905425976668648485793339963615463232723948305075048553434429198394805758414054138885405244085202113276315831879405383655096033406954702609758375574107229782808125152926169728131887662305720970138657438763851000859483919481394192003573080450419847636523060642518823506687935099225554032835937921120876779859530063017327718372653935931140869887699074251648059582935469168119394377599871852340645905690201487906094028104758523666541192450873772681148435172680036088298610267891898207260994618769570049726888995853350690683475587007121857441282254160102964493019124325539604596944842031743637841597021285108701556341122809122849155480060423112865550363557173987928056820859619786600398371906620515623998689758611030385008877080784605212839698399627797056962641919848097275543202329834204770793346252160497635733101873123564864536241425991625145842132613056660979336541464140796334076304203201487772484494904716485597042825319619369696480358569379893855264019172782860127560576396715008468518430158724016306673465522861247884982619606527561250258354933564302829648006594576274393734557230291400072064830278716211437230285951709265229567175904395873245564921179386588180938195583106141485120236857152155162222528590137869699632013573654812691494140684247116963828395318109451745016583591576494878942977013989176185082400553941408122131985649690200507303563969592577399825823690242544862639595311837274023431778588180786344242995047279715476043571616115660030143621278612151705171055303552679602211227832069958622241559783379465999563074455307409370530051101658688390996610404242726766880048649846870630199509144179608078844792613599223894596271490915065920912925131652754748576377952282836176710366615074817015753079557128552085919515296071385213166736336894510902074032535822457661078536240789272946480271544020887280846771587303034572117526180172464397154728475764888053416013273362029846582053533173747807707757331330039307636646571686545234881296735336072172785708650987170476096349878546272669339061657180682751094389591252228368777255706026352573437919064549613149894742003579464127743293569202866518421471608681289651411594758952803531667588834277204880894924813140725509098097624435370685407789431954434248326831155168089448966471866518703240198127888296410497412047601925501684835541441215020877225893437963049782866003538000802845515865939332687230928256019005430445734991347254991441253440865591413860739984264481328479416812776926681062914156722358247817040950928671341953902447506831596640216025423980054465144559112083749647002696359809925311038994321328157087689109106285842919241881387045815848898170430773296321946052543186784545764800030318884364052500658778330069916636003745143483268223758217883249650538369411116242347137055437184198121342475241530498560419699196751468748256416717845752011601334912215578502030361400204994266163572588596937959648590657476428461313426821668710456039132385872851209884309325640709160061352119175311354667696541348615205370714031268727492970405317731850563771687458980431544089029458331806723330142651340690917714353654019210740922771633602094048485558949570124783487880054019436180446656158018813967752025384077033617030076247669653120828509276743835461403594677408786032055910176492824367997911809824568617844810738571674190090713359647041260891681878004913464834723550749012881516248495880602477878786835990679744442678496356881710053905650290888294378776959151626762340434678326690799586620937234334990971159444969876846323293202278716538577846738719358259763271360202626099140656288956142536311323528710491580313436686541355388029946071482724907904252745163588748898977005369905155666919297615882634164239284984917551647715770230262474762649493523207990760313864048613927567534588918780193964855292626836522598514266990502557117363771484203050557993438212777512637241266634173401841153062563673407353587491961931688181017363615276990183510109415914249950168021802129817633992378017318816287761878788582889034084041991213618095367629205129789937404530786480717650005572991113242461662704769708490683122645406418388616040144977823475194252131050245902539747641920824820798664986553320394721816965768774962605146626543394066652360114639763210648055087370365616536070118111220548434325253423197617725529562962041587163757906365732837465878470522647012296893263971609882114537224812425670173892408135328555310478165844660115154703229287811473863603212880335496238411858205335438693574124527830515823711669663211742173594600711161334190286054948552361832155065842421049523390389234280204284557721051860466548064072732934442898121055151687554430002250097733112255448008512702883849446718704328114100764690401144440883495450650903198674009423473163593337913139022161964201248510587596235443120843102724018193979576356914534123149315373009845982477617094517717837438872919479951540396790870500494054360787118548991537376162408963169909438444638774318164145268725797479753643735907577170151731947406188376969207972324373761599116691735925785749163314641018799720153918701792985846095967473159606625734909596742811636726554029591646639623832734032106373000253817384133006113072061237055893369645716081982238405602272987555741764771449748989957609179337722024365843365608626709938820964880030124481853411785828990161936312639457031883058127059936533623307100172368843094560892473121965079955759291217586447316701894949303895079445319071204523823524495642184902798957665189834877660126062990851960637276416520214611964615404940282187877520261780755074948754280978365129846319670115443778396674872344547774055681853633695124667692095980257723375666567740486419369860155577243555507347218659407075873200851234987065727772559559631035025826824104637877308789250208171827135802283097111299637876440374575710761802751666134444901334984959091668216935936317128701031384078744132673217880350940776678289995992239280307422862020914998068681775486964325271241212512645452344263655698050789578268525638955457166869472173707643171628522038883753746356286881794495237904236917129857616433210661912823269061406612184535797035681433724171244641169978760472934355529591719610102583645643387459033689162501337253953302658872061393356559193498298924583873789796269092901870104029593026354086278845615287129636048987785661951010572706761508382301816065420492375592792436436511930514410402452919894249167747363516588203681374807769230710391581839607916323355627068438262317360155154541295875205358591090402085775260522469434149248074309272243083653038685825281462558228379802433496059570027627272133549983188305424690881811049172540535594347536462578893612499905308212334560327959866849017192639808285968513978835699459334079569124099939909093664104977151042586740308859143489164451032681212818315081622665948713556134556180033657561764883950819236601365138858783229253351171446235855749990470931552284154248903132864198265930282776326022400935362584152768013926080217556250313154358554916715944625568770153451891110314476586606201377730849659303674283621484158617075944940221766462854746143624714658933697049239765793695397024774433875727118309345136168959782257907845955724606123709571925874491679467396716127138763754681686178707107522179015823961940736108636295133725340643206893723762898152855842049797553552776255071519534342665470232949605209253618334572986707546885474929528211964906464770701983590913769326435120632324828458547870228650953641412739171670075185662547649763579993954960110274171347869999591131811406862965949310658652955712517239328551470703305781446005079318010179604780146438866639296280556102183135994925547657482842415672626241032090960685854140007955636483194932668017199075601508961119942543759849756022135246286680618173440495731343776654008997938284873085392479023603476119822874161232775391866207334288068922446279131346786604255449067033577581664465305084103180449455014503205013948103446647660827610182394878060617646137755166886383190277178137137784858056539090775034888770038631930839710110685193137357411658042478482231144714238987318123201272857800159370433582872100201591188511452456282529240712720667742632383091231502067415530568826793023273396734437594048204245632896020742633687433287592771941102513039911492329484714816730213660860008123343904527818166148917639283358683117018907366532327644676973862224357853639849018407214994738369568960063091604993237073667129493120227413364249946444120270985028441406695223471925624389273844752613722824262039515369492301844832561838553406533041757340502594564072888750087175780190864537229823748569664767379076419713386079506888782383375709797072290174202826936307731572957422740374813432170494524154490405863096555054421306646994640103084452501434790442170978486330165119805898568673801302021869106395601154219141265298441249161296051191489123846114358760078777198219952194919808536124443872776925861028431558476292304533074826747501291824347922982560985913125869518170917408704427205773976807087650194257376745135204962654473437559815956666283021923337646325076140720783411238762187064934682068553370160179565520576583100710397428271900695742558745916238495883280421257339710435905751840529519707026843775024660618904893134758209964397647605795229117284257181752839981172012168327045985643536132288671625064970492766616587338717375723249602440096913967058737838707019462397873615329004649461808365404395459635578432486525103954752141297245001467792489158805730069490892545501386625091397338719429254046342508247671493589264587550561466897993418336330400047165399931262273557862085120241549270946408045293473813304734130925401173121470359114163026314757008475277129924869007892659176392758091082241638345726817393495705563263276218779901569795207105411871144882449841634375233826012567251009028732851356364374612122777424366148679562098289763058995640100242395870099481743931839312033208261123182182121349828456816497349793257821363348812888249977925825370851906205971351168769021095874238495058075575102734377687939174817668001552643252204505087290586384407502689481260463911276920476189780010886670236068437709004460358214172315093558054182067286659224238643150986951513052159796507154291761450294023586959849345368460078072598867225857515625448556664956247462396124512439253078534408516920396911569352392267039747899364067058347118357341525130666436742356873455469816962892065818291551647406089474227139128446103717664208289975906926572849045713119320626922274099413046342855987507392169452192832413220136982930141204179488980330729159867878436223066909045823909684830695189160233060887577348432890553816361077753732443115441081809589003905411765896698282697983554999224958133649426109928043703722515062097820418562817382291212143894703860466218081571217986347398533138760379982325597244323837289480116696193580683703648784405956503018766057096157366694146517583412058154113976481821654503293075727422243846529973555654805120401413459773143197601717433704806950397443194734953032834430705261496245660609388317828288221375035660221495989561727671289102228846386153745476341428007704880640254305207731579574852644448891824458273049485277906560861868334896458980726544474037078093380827611612500305456311223331035480549663575750656830326447289023988027893927836720282212603624235717779512262221574421180129433339608382709850790876519987829546483094836412290157507103431289154339684600657709184161138415345349669146381526017252081674329060941340404624630651680658851491731138753302906868237580882497829203446537716338169589129351221140250619659045080110612879102459734770022836239603135871260828731647456200023944115472976350256180780044203503808144868386219622777691128609775935948403472545386234179151719310953975137543583301598761746190005009477437277892774878774691454876589025088892969503656659795314906189890452807142629163544525459591061741997859558039053078002412052461045597219411501893291749285218641909562211100640573017432252483441932723722804214723624399031031516404190464959550423963693386564494749717329201360851610440917456518575692420213911196615778422298457777902557020087653679410045098370896604315192954232488833233159296665118042386816473701642210210996509333207998490439293225951435186026643315778911479877319301259351745919891956096017808070053247059132873589898569016319971917778114703023671608129884714228347961563276303489601135021554094083517762206637214490743318117751373143412640985814707473606784556846235072960203532680840684521946680254767604319670346046555655512507368036120740147565553928965224306858785954631675380448407506445959678061445726292000263176942508121298415984607428455127738334628149585920978896240398850834641614164006894216369038561037970220424675480563563344873385636950334896581518834339480288545500871437184616064300997000741520328817714941295103258371645494023231545811894012558750571124754902589251177843375049308947073569304554874046943252368740008911483196996085025807083874426353697718941958109725832554072283962096750089547370531427234451123111527307568794378098328310864043812048182959137429555642641408495044767812508822929810320255948415852754889834190575992210228453608304793292323309794079405599385447187330677989297175550637934057015050576057025805824788591830586404521155592792515180784944129560870614891379228501427834734847239894723587068375473946430500941339822182528248222684530243388324157781468322464946464150466392178363668304277670263003603891004800583832402286380051403831938162990967659697010450054739092596174963406819508096031697721642521450329847204496040515231663475041481071571791249287055482576981558805056245636076498224313191877742706111803464065341488376012781129064214441820441425011855953730763515006724727010387342545738675689187069243737683450024053670222708970025432307340688568936752475939160015668713990766126255300910843519996410855198148648043521600375184416937724478639347395898936686668062539685216996523903983077558635744089292697430191653430771075856624462077304196897534533444117213060498495661045917072859301974824851918723957193286263040771923570460550759360302414995486781632636640886701673973300198423726792060932380496286769408033567606952454851565769264474979661982928171859317647158639644844666150003738421242202404612001433187090380593941267651114561822458388376898240953503740266986564749668965710485148661483588490635239354960533776890857868120507576536749637746212241355450539395598710873710961665375056150982982921559159831982337360633586566881850702391345578093805158038549328156709724441165451100997837351066445770389087566199574092863631801899135605000988421399440647912281091691656432731619912445157083988346713976711094256915881505360430205561299634921215103552558177703125277928976802445888896040602825554238742278228056961198184081890642152330389191952614193152574100845398319432944974669160300114682744930030882912522111812003758676648028044293182812148163802419021174373869960315007256463921676229301934624724793002123235380376030427465316631202877381068959781725297408148105408398386187861371809497204599333376797627621202393240769227778684511349164131429057748531933907826549719948767774590800405662652689575646464826502366180189718269445733324189318656977655799138119953495095783379924650811494516648283774431252565420263649011295083770760327602538648113173205035263437517587717762161273530649025505304286379299001698425649414411204119613070029408193120994948464800011954141800279406507005264067064257151490574459631756140335656700484402655749793938550291644564074763293799102220714002529272622682726210617015759309476812094983479733781523155012594535499023460140700094124785797497602055699044089273495761760328896297420582671319527286158780173790707215235337251257264693708418469408450428842509738936736919106866863437870514285312225030548336610410726522753848109680926059184770102277806591244293493233014812373580179747523337787088800255177552093174111565892175286754642734520570521376659549757113452070412965619859653488044422461809549727907314930430389824238945653592291879038536562402480265371174155232015423531987959220400760543574803182008148748425322517885347189356854564237774050843319034936757775308314076430546826533432509077095230154955248714022750521216645548271334154567114295186430700310165523897369936391957565753848083373167290687675182754658717427148541520217375960630763222850859393916002133864978951649257182997780356937014355123245278860668468858678565212696411619485822082215670067907605669852410804045035211609753812024877741206604684897865844048663807563981966479333606819174995318292112146863379575261640950381260132473716582053761767199362219869410886142345056811312012462076271290482285084787112986520823652950505619830532098952654477600606818839828410508219142209626090509240527587366485458950845508101057683827424420439791477984225399924721964099916739393576962393161904991208575620116675608409025602972221053528820989173327227759843959302848437683080601279975336788648278180217443913140879906899741663615184665028420916864353509185111379994092479621049278647241659581132386347449245088937737789751525813546947299029220086314024388868770514860408085064678589859677492325633913815537654303581085375250743652276446516841278853896379422748379285357541152988970683925291488486822126041635478378055678807763835280060416194219807786952913151224009739247436941356652172713469574880563280010704254408233945438129997062593030846034535446969749952120257821569225520404290493866812577659130191358542066567023311108896134634039439081197664883161473151214579554566624102627174812220180559843892779781102621719178974744701021936370731380870295217330620351100637351814110367679610153978291071747471516604761273033737888125231804812871448486196696925938594206359286493964360091900748080044170569810296708886430964749168959462526295999875293373528701125648270689591735726720452855865467541502662025677956909017020583314968067269502000993563137610866523237462862754461676926214091213753533532469858766143435311637171914062150551323813074179517552961306260401999966877729270911134204572004866069455953234307947508526986610442527778296766293385997033612642232484508197422503868047708629402924715191439855553600702836715242821541615409993728889615401292430241491564150369537572620757568984852618290894399662011075745747882119577304268917055439832924606604479715507843070264975650325721902644109545412843993522333315010751006375678344559882070654264370639182447778332368574298183247622518114636296345748195302660023031916733338313647873270215689331585332480639227846009628046337327585164576990229869099716246966656485305425461284409854083488987845437723961441436768637841823472654459631370759320954901545557311204188568212289027464570505048253473085287971457835374094192030762067904206649846771467280216179731684017955502212070089687225359652438622045330719329886267765936963058136613549101937984642482366650135478766469417249036134505425452468655610201000939280276459286008335458717518985431255241613788105273155019270846565439911964174777399620922046059109668670378430880465286946212088927965902375947902524281722128973629529540044979453000179867205643401160981506534821632097066252591068452432325843197512354450664014049633498657357463648464203664049263256052348163948504574472901995062262601689299754820070286172181350518516630907532494912801957200773142012419920434371994652257475459222849391088851598610304266014584115480382910976514600631059960807017923903135307349235698639497605541144662047035963976357964678447452318241361518900924840968066617153656268422159026877381178467560273620095200725464515062754844871082052250410628463543665432306955321953398007984217107283784445474059529998048134786697831754094206289385214100873731442435658071930878578746025670482224917703122973558574038703030298478872159540803265699556606364170596183362837331961819937996057770791670107841160126886262666803631687734155423145109291268010159530769901085515937883529733976775753349129707880584250100855246252901138906971916711932740764042878828491093940359877942461006597056451986859307915166649655790558606362181986364335389782883282462897733583312454564338841673076698668890977770249911473667175865272844695358591047820712776504655910809355431790102056497531656897370809551869526617952414840350733949426516336119683114631009169148207602368273494347092074259306596134538084127876135957015947393132570358360695635601180572072502072849200954443286110672403813449408116967134572170906634646338542072547314444151533521099361062874133013395613725522579402974939125573086277078654279060639284465519254601534458261120460684674939329507476991815911853125648449806307071806068414450155793003944118571582931068306424794120873927718430585588260232256280382457705450666911788896097221211129697212877138286725871501294458063807740420532193722663936231334253248421090784613596976398135213643318793422185548600919889600400374408084506113261638217864740528725742069716910086331282446605534407655150588023812314495494292979670478200306818400669848611445806422059593427160943026737472920958660933022804401703528796870019478697320083394056131670052387388295291025152565837174723880629607672286750500868772359173604902179061419852012838241410136929127797605509113707873304567809841060458140762938473718149378973969391456926184955586780995330736238181940183432606279170991825678139777723548297150713783184998017162244085073474356992347880633385222615239616934454798250337686203618182869523945899252671034693386802599979067524637100806897423782707241811114761045858559884368556059248999826265289904201538660514764068313922452407016299183492197179609408789257585423691934588307309281482828013893952392220578444452293419975026661664258537002566702657685019599830386748014442926984639056242061922674156105236563466685042986983771293342132277273393452020644847793782991503561548088793900775520619432998228199122252759029153632580456585946029877464386740373441934103171913592062759142279841404118566683012020592092425503084248361559678710902208876144350920642144975979458144395219456572615850809385038800655901895994109418717599959565306394697041832063797452331386830216272381692219653126068438850522772760146798148630994862535385637431075947079572025193079771934728610383253925568630876069579972735926116953036643211055780387027157804308156774484950504561147254348299645134393253281153948171510664473162549827503252407538214571514790512631904640842360260449466639845956283674431147076825348952490688199390947756938648040901597951669812610053935521850650664242382625324556001191674607560563678170045541830220197324300800580533785081750154310254686724930644872528495676684688764716333705789530709007264715856067075808857312177719679991997704750189810046222418415103680868321143878348476160207898357308510232355426119319208355874629707408088418118278746581940563864507753598152974596264973194541596583469561395491658579981068143766207512849196197609421557512133193902595222600421299640396287504556462324696412074508555419520356134597121491301976496299875319630285911384454583892734036238272343959207029216101949103780729705207188408101523324388403188642045278626060122037793361625989649300253337779243384202102649753187323971942994889912781738552572328476253112033252655060815157725277877003717536364262189128472993702497456300726896155806445464559562031185829963200895215270473695472983964642781121087985140752975718004893205871504306603632884847681885545145704194248841124945595053211621399536123290602305057042842258838804122756983340365574838092082256740893163123499225886725577440635732176594574020983167444469840205892908087108836854830154518860385618683137296790258666365459874443793416464644913922631189847342663126119374044115112821097678222458150872808938724943291641020217940367901459020833040665460718915073689979790421064730068302245438068482297009518427756395167824363673421356641181072217913476583356476825082216879093553670038981313705061728354249151805113587749635387939861277043936254148905180111298588842659527101252958449111217978613656477782959940122473159494762331155161271051299639336216226103593957548835047534829769441147183253380013246786200122362556122844033645966483015243584322509693345141401248833042310758932403135743273165705621523931100846902759066722567156648078923773599221628571549321953657578982657284222193949122706992161157208318947933754311842726872613881759228717809421538694032660351082881468162268191635032481680113490007100783450236027202552044997737364024416329121715612339972787995040007385794411061848466417088753302473907856269312379393692284666297777822157059699820872642350213809361111597184513239867476650268219566339721430708740548740977722880756268241537238937080788220914651984648887609263148390382522866978791850912287777487395645707101079811667640284545862639840432023315110129382935083367693512861458163373194013847184737942503190280358814547591436192235193747838456288963188527503046521081892062070981492782294960610667046526258660275067588950020056898859152544494325027203428586560878059469765803433445525904910815366435177634893640266132250030059243416892075095377060309051689695707519483678068501894742490053615239991747439677846450825760606461698821038521754403501753354626045245686360677952532648159324848401687375277589610104374501411306668577161224744444010351907806867981313641905471948567303056475652459598186690607202660625790114144349425513775708491606213317270256526154268657598775770992437533231774855934714956717946814940002658773613064554759530294449847287310380464836539012064980527625883729611262270718074350952634489186154209156815062098685402145686130547856034874153523695621393011769033439974098803350652707848607602001041493121359928070531229509076961615432676911338053713328859829288888569656732817729523741010845373842874064179352229543219918481175676305071267206857047615544490159954058953752652381695464239085981689758858868286805592686805325464980024584999637455088890407200738560758264998806016395549430621478256223968809996138574073507400721280136621828481482512146868188599337358041518167518595662059433460952473211480718123643721468394448744721201322713992558105666221613408008162180232757980714911818508287269288626341716264497623324341997469188159574719432934497744847622152454975918248422023963263522114500671492583101489287741708565730575957989688791880880890318333027942171396198197502268932301676862204818931610054013435141023693850320377530718720109443273639027376266836322068681138501752006362002173386334557297090869820241727945615594180195286241286660792578556782058693906286192359283800301271690910162236940386927188375088990451124944677661919035770410376480629029865714541121735127305771684875247651721726271376387021087051241395223447712587347290290568884237142213834738650946652594418805583521514939567813500042727120617698093423510822125830729754703165023077788586167882034589824966170084131860564912007099517693534684082601080317587479093862675866545517611351790222452370732935773490642959073497534963733367109788432451596260228524552502200368377277194459789369861374914977798751771747419631998217149672043174569807285912368711382692662945151503934920923577853613006882523072153928486148271297927621991319365090335510782438108231283211116892468204278896739421264851588717695887893348003823086617124806501080221387505677768510360930180329144797480165414551132340855773647600722731850581742753556548219291513136969881923984191759993070803576501894341354037805338768377910717827543801980775810376906126078355888791941213375308010374178566797393645568045242970997789198397267051833549931853126014341742645039196009910158298803206950265918130003104229175731404778745447579300943277441114555920905619411285203462857074313825923091317974590117756262457980212027334034080351724229204397655547430423901514878688452316458176805611510464397126450501798935140147365648053129775039162665898791634377700833975539079066707494270635465491025038160190887826968437087966560918623209556004494648458933884024271507888412656153005233554599182095435458639348335834474273496431850713982188715794279005596911896728213995222636509703021957875513833416831722318903203659399411532021222603813206582128085360075933968475732281175395253418095455536077875123562494271436236247967768805153921227141089282856371817081998506579477562211018304421079800815972960313587653105886515709195817344886316333596635318160751164030314146442268052440300093784011351415511099622135775850729277913492376215153942761497133926445823435768590951404448652949666377112449705777828793650712094787107730321101535846246551685860054069368453489335174917613775168453737401617200642151516102920294668355470234304855071624989220344298924489423809422827746732269377549880412401968274735657977682895155720448518728441063651973988965166968267319316078082695009756491229420964251234624944391497722764662119971767641096233918493006059979131098562350841510314879946170086822959324285239207999526111944621085872962203167921828961130076198031354505426352195165140862791204519374192410219866573631703427918114286182491082144622345605615637705859477691357464600997293420733108041393387767602592036882285016909032641098843622570181695032868333115025945634803146355388785179685265817507304678091695815707534195109368015540783386165989615351616589520293891579006578119959600017973325607851404502370769078274046741318040319628496395083629727102810906739293922021718598303016903316877540264246021522386013332746850796016571799577504652747204895415596795408932837946830690131580705870416873599007457572468367382982791834625126564088736276251679458837031540754210965916533347632728306769357603552310956672464466658540562148851670151589115619665328410216350157460990763250376189160976195898457330205446443802053623104205890361405866663290386137282297354227374307033922212188110781993534902481512412836606974963306658272899804058802607405235641225353437034879635402069717708007836239424228852186506418661549743876078021613095852278187214799646234551860663913903437657367524066713103534570893243316522140267359333002544763096228725476877935064483266983692972490980072360580703591344970841794737480943876028848178247955955672378591606894767630335655330325443457963597925513325783178853274558967721905997236054642144794194977677499935495430989550104076764957712253923080962768554830326089289816592985440102739799489572191756320068631851770460712322887156719148825883327216052947482085817406866748223859592320498362927835376665917622685565705386719571445802175440602853558784572959246461336684993596567312209090981935892929484019129614343032235821947386453883204816040028709034792547424242255806412337555281281831403925583024155689198030721609503834598607023369290184425816394375020762889591552788481542543440139340139749452761623352984641688824625201584594448442640656825192000672905136998871492854805093489141529812137629094470621575022579765539130499131368602232664372529014074085680773175209070753745922328405139656349215058968606889609799409278337142754752704246350878631130689445214466898476094387127830399660200830381055511641154467945958829467428219207611079148492191511567153052143746453003651865056284569889080941485353773167208203153928248370451385122255802375918826754612209550256201383784522871784053806162686840714756007467443110001555731163147137386394684262150607731538392062194217627475946910805327084845633117139509107388506270187940947028292036640719234832828254595129436206412254146003955456690137575269657630164058561953941799691224899917448011176807062832756239019926405094087350816148371349812312383080201342505269231768829087466262373315083369380732475334296473995014563279297652770171531198343998131677533359589699430735436726431306961376551415494978540633492492854225889596930963509317450060419383807941731405616104667767047492956780545115085279445406934402257098089997991692944860473301633791217931497177026163958745290429507948580703307778695313506462947312205086416585036941088749968739221861204571028251035199150009661983603750447584056035643141476200376868006239913052937054867296732433943370318984470727466795850348634487585486651421648188665597502040410445100549198014847930438869419676849346473675194248106419977389488491223694963971505539293360886845094214910408363437006035997463523781805513113785894964102681332793025513020609093200629890922568754196539848171742284648150977333204174085954521256409603957736047908968973421529260403705326220836606459114434912810237371464456410599435680458894587444573420508753494590228686146531094146252026463279679228208093974873833514322362725868844946101244681561211067287100250862487288151138477756263762522757230296250633787816567719536633200111140251692562646671351266001676891402115060488700379804870035506880766244992840841522647009478049090777962688034643076970476099456625491969108125350584788025457526078116112285005883491152698186419901655768609504216808716901527923450134482615018307061997611160253164003188082633192302645592278265164788063272529043223789594756618707115986037608846985268546514026918966637146160563138936921610040541927881477748388153286470321095450276771477522212037334305470891512042480589166491773120308845532220348910906927283408161438925728200624156525963474932433944258058087576128777757494164828964424740415860537468165415786739624404516416021707266587498330411807688728167811348851551844867292985982799223003604758126020030563436497170805714884683640275733947312223790454575827188308408403665714650807463427335324949254908296712241769674027616638061053242477714649496769861801678516758715501261335963284162630292515575485750197561499480746434954580246770872120309682165258474738235349059477553401379630076816018836633279080692067899214878259519426997085008452129673418058327840711320722702550967168216370722140158846802355973269616886689321871172566575743451470335359983279919454866465539753237865597723583648620591136420079094185375701109829478852601480716920663855799779392897380647683436349542538311431577740757571357780240054799155123031928715985677462338691585237233278318868659409443753560841342412492036805577059344453689237995574245578704038169929785145819065753157052140784127540873441400984645569419837046214148883510805239829755224652698804851404983993446845284648060653700558393056977246698118051348659269782630712103897207153879180797742576229994162773393313168309057413692826862522572175160527144423607065603188889458185749363205098827925303704604268109451511046797949079822532756605286948099012978293957105139129092343995943821772234390191373391452997014200519911543527056241027818431141289159596983447641168370878894218303168685275440262040171158144399840265431703443672414635703961833044663865524754638878538381061646576648862511137461542023223786769110539244028862050841152600548355307977475070289059680541175613637700808068243235259869573578714966279689432400890177604199796802069350078204646110954975492457932571904247535547918702900800170447990904693379365736286589042639698617119275246728422491270274313107965958269960102179643298800575445423322682246667949624773860213771264811700180078942276813452935305954540049490023486640291913720585378017351484534923785713772248184480082125326927586675145503881327923387317592588683701663798496844534383747228187996767038575085978050752428632744729976329465318541213812333553967917441869811898031125851415032255998602472898909009954343899394318731700347831990022782002372649713529796433329813714847624591970661019767599183191192709032661046435341500948590996149659112740241613200691559201693521271659877595317792416795134666222401018098996660526646704689851126846609774576644078132285815017207146620909485591767347281829326862638661412580828186502080386263008487992791479577518100835960641231543364548824478491685533117696267152427793221766624188271960449638094028067609461824707556402608490588864363371032329854383265240902414815171098014603038947584360351567365078872788715322139845345157743050210913802110715700257414254063963807665663274266332664998264177387487700335348105137972848649320079770734622188491416764478777136163567113240915799129135086368977613774488367909129931567588248350041514982447553284672530066316741448153330561963128591744134197878203317845606869170470236521875177692673886151832862539754241292764120353788494083585417947010791919929890081507037205017254885280133722333075801789228545146400623398275747740040570665468644073205888468517081950556694518752316221825003367781716893029900674506579571055862525089083861502982128541622012622468213369982815466945017653605189051603936703108758778563816198870297183329170404154398828549018688357710440719238146761332062781355478414167469319732922402445205344166155088516532196230543904479719283893887936131600849672102944153195258359531801520350444028396693576532283363868153141588149633925918339140215055893145037071189431872232801122180171758327719457378836691797084045671783525870158759384431815486260335301705639769977145299168561440033876845619886030307922681843324329985025254511273312098046181698022301704121024982321767104451735763719031211113466910499240822004175166823520444828749342446747262833490042659015637006238584318913980329991682276118425400644402183887372282267901490689543008499039461332740532478983285328084166141751842939758793019079367884019110791846574126645203770136937576300310575050111008668373109631152681512291568696706645681742259076197629663183288817574207010354757341652962092823605382444553393755561331020410847540112102017913043661159441835736768496223533724884346968560722446132937514352624225777030605402219216481993898845230497679357036118864978183615274475633226190000002257661938780323789955276070270152130220947416452560907702402309601997279023059568928006336599710217591549910195870243843437410512393788372685762398930747638024849618094973875461136397621236965215427287052587260834837785311782113138117128452889416301677580863499427193449775726351758936088216841681118696061716190352607552078666193168593528789533666667429433990707766652606544153359467483246301375603716567147743315705883099037073161704575632952627879375963014109969044117653451572018388493044155592058863333527721007656951731966642171430513279411062076652512633979244029962681293526306345876561323508946843137259186532813826459566629180369225680773822404397274336685234461774548305893928515053652004872920113968875464725655882319982713315996316679617929997352068427717499697292446341012729823686659130684895435526185080013564408040424031357491593725691777077302148615187357419035857964816011117645825521901767075226542257213698006820189642728967797795688446945785205705097979680057444093240770399019389797284219065906724398615733919012690558808665082098689576629166338758931174615808366288734136999199226995179978663049157972176376684391622756749839567152580759835614621924111510957666488005953907788327291567277252748762770937946026464634214731048704790740382713692990608032694143414979043420269048020298303701915324703653017781202540019573408742478425237194600446480945282073665495625003190699960484461059888605222297206767769911418631608160499422388211673901857601738088969742705597478879580077236130407895917831609742907058798452902498616106324034327702259769072062538963509635280434941424651936632768529873608726157850237685011506437643480109895722758492642623216071940248406537557382224639424153539649963136986287746698349102114109566477159447116214506087609628445688027005500614051781699209819005936256803139191783749635056655856145889246816924755935870213727148797318026980652027072796726578514469626710342480025435792996079821521961923743576426248943943161342065704297011733485464716940127582781698713876608944577669938895726732103549628483476387646333270858183108086424901260308468861430543841915804378324628604280899476297122470829218193705949080645611930627963391170592055425640496443106343520712492065236633115456433549885465759615921501570403583763348917264609616701903379391594638989385696513661055834565812561352956242566178791846852270023140620195961833036103921802603684709302156281463244241784773138310285431204975122675299051435431065222772304819649343105874322991299876205241595771464179453759498373810639730729373406398649529941020591794689628728880652614725710494004786230776841143211131801432965099617839597060769298213867525530944296057504489610497383061508927669255859869070379825999250964769614876245520556826641979766138094051697438842844130649496645841204232534866075024408188255643867449018070914424341860182278385873124507866828402220978451247217210137997836529514001112420055793193060996071096846057751718363294879234101483976998986047641376454574189782385635741616593541415510153744152349787879203075423395222031673350706127169253428346459367916087164966544655704400117072989292084914704626436151285389983684306633347706325259710398411862794029227319683429403144611037210240583994182137214898472437822178581779038091320659762066926677063599058545123221367497801596798809484900560092300864090858001990434424579639216792307185542810172875165159397301813534705356782844965805879232780558688004688851706321946260068609707920827815326627899031096601999374708253360916520866619279163624585916863847548785887800471082400575949740181545918092973590409611543896505619103698014490664315191106138058587660528462200632562792321438983619333254897590624991186667405439539554307020028088080000570644556585710040855093417658593235255374343204572177890332512338588188263086453286976077054374692431544715156735354498015393316315679870507472631978368574870708823678250911836662713019454516494832609121331277293671755292836742900847980028892888024196710840704997546757713970806123010549876475972413472716892597153128919246779143644730138866937695378913919022794328483081255858265400517954707685518323469868351522051212703624077196269042288194415927245898720734355861725902149107409002967169550254025589861327006989498604917364610535335710213749920049078194828902437989608923930467786803784165026758899503324025298070563342393278445940663630974870234818615979150319908605155278028521899267751785687404427285575991710190807277747983439411877565452787233540445352156781879020709676627080857500990592302785445967421459152764795326032786734947053533591342845163604118395067405550970829247868354408753665472111561211436927733669897856257716442911839792033629740871333416742021717838573141337824572610526515744082352112318744190915454114919068727886092190344133180531204869089821691215151168395411589740752557761655377680159859693705605002659196321507951427096338701279445578436676818858307876359811255466751593711386714523425957497443226252355298672426385621235078869678082792704557399931801393364651071755425236314215750945073709727548170758807560372607179619239982996921557962707121778235824126579629567862233928774387633737262413459038841449508265685161045421478509184777930834306266152764967990317906049130934968742902097222843468519944369915363910129215248432083047553486796766847373200249960209046451631651330341212714283523378876994648852830097505209271694747587519997350172774032005856285175120823827710554127080818631411332968823215771130406104343045297305915246975019527730073854897268208468411891822536218210932018247220454524895415539369871177384864942455037400405004582595387179949439133672346828004888257646841991770526127458187095598804036279187455813896073767272942178253569229468349884888505362504352483774555892337908088808100520054328064867301991241458223014352375685579936865383306786125821718680916785279738348978531015523538791921092043067633592107726696140599098117176885567496961078124962700688057970764210750641969928666399121451800841295700420920680796391183522958331312632727123988196520268404739633745125764871074749128868030444389113647485046363148754130361934669261947711891394710436673016201575181360996640055417293728847716123512874909680424797179523167863194923400018528402196629409271143727706891098714568540998130012133679214050439976289729066955037718021130189756813499577559617476052873876271855371846704799210479182871154451285280270334922755432326723285838292581233096273683149241308655845003600678602651962947472570636401122890473129598579548301818615758823421190284421986146893174870208746466839347175205455865175755061841414819651018485695619361165387728451015104815261445194595052227676846077461336630085206239998567871646695712787938650871166639290217170371812308208497361071247554935641851383294915557363623999293737627987425607276117071986746591166493460606140854332689787126178261727543477314805394210092926599506466125430003595985982505494705354433217351518990778947807821053975033186851394922653200200768488280210658536218297770321776712155551003484817217525846222349349907481943087323606687213693610271653023068603555853805562907164477253490417984122140084883204618083013315212419159168979326946944900453619368030521159059813662631157314104560611143991735314231256610770229345052425156901963157930725274852290999362275107045344186651925728389030548939820168258220890290431381503589902036124554454281919780961510531580558965890347004723822696502755753841889417114043394566145908229627447050117638637182593247252596722832344018367611497542828013211830719794668263202339982783885667469517125588210074655468493838171109205143257756939598279857310764052519695529822307254517386600409067695531110364721917728925504824943622250773499358039459934294084300406050852142988213321681773383448581733838864944692798329133606933654433713821562542964468931809032331599637092860517651767532629314577562587859546811720641096174376741044625214508026398209394176006507207823270632017378874826896628436905798413587379690831458768478613797616577503266083321020986519616302209688426165306013181902569792635461999615541427958635167199336528562433993965550396493163150195015002873579796352974069526741500831855933290410553618007782954887811147361106447800987175997629574872424461913656006944951225622920100633111016086327389369511828083084571667947670655519160216443759485363703763071154349341460373902591064677153885398580676791117775826499983351305024666330457610077011999606479792055359889670037966292871658094535211577026594242454073145713299167610341943854482373904372665263441989658710540003696517119824675776350544211216678174615239882280155514841726945874144118783347146564200023656245382483743578300397669083545620202009096455546126139806628247995771951923400488253195866853414342430299477478895483669995224012859894342863651140011502126916103337940753430812924017593588497068190263211087194161298939722811963836969292558640229152032109045626258003430936588768815115999435845284223632770713880685616498653180651418971138073505053836841602239914723256767086156823470187295577719015370712123798795254518745290213279962522207880682861271162536661926868652915603245931406011006902150668020256088637103527129849429071256500060710304506069432460973030450520175232030108711966609896763224124936013232710475805589856722516200110539359130590415979804315752649386393482036031140724784320731676422290668356039400425931034441173662899647855112717162543075050531703948908533021208988319022486554225571831937174106186039521410922624832591296541646259645698729155438488562714235313770865058938239344128325509029753331015774445203924233472951377568772334127581255804731681298974103313759984980908397171387280509389657128966718808766502590211260446909010953593656513763183495420823542421418945617916301759139208376764682529059902347567204579496848448452813715466627030462487539826940118269358676908731053646254787752973614079067409771803819313778313582494171517364664356287702249634558257704911519318348623933238416235436786357106240899551838706069796076071362946760405079358926457350615703105923506186340275760676414335401560967472623980300014772970458917241955402654515038394264223631408186053757467753191041884543899404476904900211448320412029995466565224032691716781923905433662209874656116201862549995913522169503790933580201304847534316798296132359278430480812008472410310343434867222856325991142537494033888068769887543995051377822993072761371409054244156990206840954968816999344056912737553129255645713435849793537080269720797735216000236679165307601590800976164329388624913389595307644036711958018174982196003437442500035520902198466833843574906120766792181429197669332525051666268482120529834177329538352099065487812633398964235478999824388557462165498525193583810475041919034841926146526600461397006245135038284979296869911583029785482684099997120767784932081418936897514979166937570370329226209609322995215201686759961802663145061526800230396203257474764426373685531558556264527897700625371349190089812398753422693120639169147429388064738090736176328474010002744440971871766374627847127488979650878914217333547772261243580887831298473135355688618984522678978443343115395348303815651110569527321837157606678774058021835424605737438820320897396785490479160999480056440135417629246486555565647726399888052111867338169324184850642796561400735581360918619071933682122933040175168827875849855953012210729139004061828702205557315589401710621280603363072367718452780036319620998671180305654845330567681985070804854136071610766623685736366299184891830520724333529223022416686186684382563569415375215018416124512682412120321327753677550630323777105017261419419713552418244042799865064199543513562291314434042247614611844234557191229015772557381073865876316857801825073958812743332972747954404385815692164387845410002167442072368144069132957731945730485525702643117767120160909854235207451352758096464421178178396190657725540091788247914729199785005706711449598664633005409296530249658894552718563581065601204342615041319804850928421821697232023773963123185826100602846615517696641546891414119406375553588790386772176414714998096829622902084786896324968514199926206439421635860384515472261929750322228080436917698525999197508500961052365099770584956083980812620500273420333667032678258623183429546316246141957310458535603354759579555024022494054306485209623512085669900973216609404847314533364857938011105470296301864796632710265287598406588473481841075737817918760832957370215882897428954603853378796380539035096637695371658776139545091303675148109068165718030992327542431601933351444701603471439026706305401356220653426988847108357759919808191492713852171561630721916614127058960936761137347867399002738996614589549644928250846221145972022900571391974636568028459148413830750558687287987586775804897770421167616335589036881946485430579726784540251730322187109062362449735512403601029824251033725765437020588057471479897300361500283788110445033607049251956988091457484563136510453728858350927027187388576251578626849091817027144936642802995534588733194582727648514819682997255228125752911273741248838604468176483201994000869816193948784714986460366067934625869811404629745645625785925234946970821627852897875569597003217645131788911866065737573148844605633756658981472257394525920363789505099712693514226739211505546364688265119891050194091013661716937037915068025815066435874477556992226392561316320835761830593623746020802686738954067681795642813028067524502149626757049206027158394690182435406831327631722464497548868705072386776267314394911711471089534148894101042343657287157801483476416103371196551703422276182488916630273076597511312194803235577742633771040464266683389942677209024512021601656452946766585471877232091478755962163706593642778429766284160591134427957860138417126506792936333660106266483410073976258420972646680316332411665831399901136859795524329849081422371558577527250507425091393603896622464128409579553802873647315756747973902580981486302080594752097049804205689379165429725660616423745147947232821938338270890322172366476613177498914141193633677374070396884066588055364532049620956318206543102299415361574998945784048496937185583631336771096488115916623867442011819692945906505617213403666232944095592079964458398176440938916343932586105440364836544191031895961961616028909818922220477387868712923948705582788982249850330224339162118994279491018469711905507900162765097797087444668577750677304704051684993412467341454747430848474791773539471657168236398713482293827048558898077833081375095959997842474982517267863959374694067196245594390267213175686393939640712054296109861504284697344815353820628100422192154232258617714464893241978414557176275492186870735226452409149710104318951058194555172408725780599939941815119604892657013191213885265837792825865087848386001715132467217121280763417824603849669609134011804396852007791077554491483001172846108620254674882250164039998828664158290612875819525475114375911087104979536531114063072289763387333939313745559638443134647291506906768232256961213160271842650192460265947074870233549082432438261145147303036912753740744229641357303689486775908259176396598007328209352460232853853813271311641777608503577889724997335902773963829301870714571968589174095233457180715350604782227761912214535469800428823236186729488471826774976367023909482089668484079557952704614545830654350557207570088027607652365975641523668434236617619509631537181707870859729730968015477148487941847855714508401445972855489627603795418594668590662693614723054838483902826935797385257032162354604780984773072315697774978818969116353444493425706640197703474224613131918882677287723723104379853996106975311193540091939816586690491786267697275455065530424123087996132854703829994136861307865523257252417433443317134676639386529203795081019631971509298822989548143101829990118325551073043182632654449901655834207315764160395770402354358232329869346879117028433901898808428177070998975844287721262187263768750823652801387420155949135010851238032015022533301129530925489748542249689845589619088655240253860624721692485239722185894149769516214436619298140754806296913394137776503789374079479528241379387084060353651125575432502274995939346650320428275951547704553784538678154454834468109740735867912033670185457969136006821474527503442236763269090463494802320115916104618185205003389194108916275373588626192638917040770383490632110604168513510367584232471217533770673482278529107220209062642374046489568145438555342682373675465546121103427661686727479558436896704483600086927436422559232209780429330551518872207938726953830783313279276759871583633081749425943351710507725014197872908825264495628772373262343294195156244022166553323512137217982690119176339759862274849935648880970435509939745926864212057013211655079203900325939914159840720532721411918596488633946393958529166088644963219206438769033836149371856712398384028306453687823422884684045497020170023627767255616483894827885162773850579367127064086320834534317522949608606895569022973679905982159437553384005932493668138928367517526561405371745066080270245684995816528071245962308175674573358947409276339314435580617850342704894979645675217422984421019989630549865935515710904949260009133297804001787207770089731140723124157384701040542615862020983999825731161798805447690873079332874412550954219850659500501379741858014030110653970822557799098931972740117035339693910984011127396223947795209742409482209339747721156615437835164618054546503335132321085706928988131360840990515576079022261233724273970162328340534732274716901499209422126028709845853718015680150316579824183043132590718333060634479580981358685707101578973757442507823633188945879922913238591766848236789963054792035955150108272925207915873269646008987678386189984903571657997028676907932355957511396879943250982263502104500026087264958612337034994329335877938782579862809548185629751026688277852530867072066388111707535822428748968896556621427891848646311386132814306568232226206798863428620986805042804033604862390322299961772846265905258068673058500596658477662682521613854483328458201693694878812302282055684151823752020949693748107007127307292197087609710024110670110263336693925330952164979321607558679403345005973037926916004317185283929664452173629012485726273456558007261827152915048484654354556164942746367378039883347469080026724147383342350273762116735060836937735713144638656821643613707337524014199152616354553799673112022719997076733774803361734103110244282239697478099317722099197215798492898019390061711122065015429215542314170845771761392202759791239449690427416253950814129724216086428143406916003342340495690349369703258411361253491491883618901209391818038264755338597426090273395113524002987104036103202627751901527061314688841546668191502915440925894771375230684698840777210461592978704426492208265954975713953686036629205692896959869408934176103745439356941939061558792360080929093644618651895079159203939619888411173911070077995661598205090893669894376017518367706470013471062794894314811891168360856851445364682845763073829289377147008011225296486020228296971341934840783136742634606784504596936127764379440681586610161155740057477013882038872545670227851020162381385656982100085423305537423724892002762319237911869394661566608630981328844135836056809060809072275353211512487383486525481257228725469634888651225248765283271615467962119574339095580328656639619473555055283609352878082307576622916025219714425990480016451242529958970706839216895633638408978692202313356773573369734950120808899272743974941846555124230274490009354505371927512481763268709606097663499207081298931097230529286433600230569399138041387112668002224902646355970263864047631276660329782169664097647842015813682195902469846773982092584601181482597949463695671845889008844910744141552459499367308030269751346725640532924156313414637834110533618748513079119109990489738165285807027365675386073818060153201585094983710515642198127013806971066939717974420843838157199322012318246013828981844676617712474904650807852474338250141024513784243120629534338774894074971597513316275209985367367984071518579328962429275947258990638866093112227789946898237011383892520715940941134816633634244831406917836062196872192822326478087977606853352252752625431418787865277792349121598166837442251442082823976439869955904320453294935081578433404960415791199715290258394303000733467924982182919142704881615085331730507677723725613958580010070416590957629641554966560568236604850691214771362029483306954636724076292956713897594318438738685985326943715540427699537872276119235272525314474642736703548523748138958590824877436457412616507469656704830572577456229413404260723584121321598324698723289467764226480764100000239267985058899649702047861588202649017639358718952877786069006409775216428364293464593786842955644119256897729133676951929097640929126878693680745641959787924722145001096667138852729751307313045313421769021773128410770050886363458187454782181933023607089410211749621020036748741764790265827006972704057097430299585753909219451045584095794037858789911625857746240774270558657637675045883746633494222519403401148274616220267109553698606433333576009782057352469006667885390671209964225028829672251102643975906623752359926622005934532361265898666346272581702800357639020919144015304937648157341370008479625436203520896591468291201224059530154484930584358716481646463518865335912738128481160582721054831641773136813817370537738560555695293847863432194944559082391233422759190320700100624517786765030176267299383809177853932112424323241777006648846759474785787089156132111094912519797428358316444270805360995854071661078877999876813281738593194091568508088585684449105959223353121643668200501413492827943968145106740193700401905001830410567270565876843282894786812675187624081144927788943081787996045924394908288131644417053370997819427420465351307934667419798042799620433801704292660904300051548015429665328373690102575666060596778061170869220554797498372778994036803517294727193446057957218055423579609248509425709421055547902029201245420378409959646879995747512907045038977031450516252343558984472496295766345886489789254029578608101617875648949964930998963060126665262595311818839581617359943709824168331022135445814735993377497829725703719842588175938473392642505777330743709238351515406401270614445824023834830171543484554487881553360213371995787940999406781354320877984990872655757634369397607175279704702450384164401089699214429388191165822939906819322465582471531116825500183466641840343564457388352641282505445866069478480233360221488255969361271253685733679571565152447673691257273543034149158390051134628696189419443563828606082143717907192411694646233547035992839617106567051359463904345389826907722404690097287556364585901432269750209691723909604931921782325960888996325994392572797568165607308101743971838610946166131383874754081256741399593710468018170541521169274449990616399558741086361857361550165593791135403949272168105208363360872340240421986276222666764107065055866024400236245642009253527707220718632047341441808940870669640957611041564644404331960356079760846394395226924509576902128748622616961295998020871516954238664025077941396757934119591366601171667463382133398715157952950265170925078887662859891571964891608097930751207567024943106194592503632235738637746058246419339034639462962897675954770410716789177311847445267344283825408844129068363067211465427142102735588277428642990314569737061578303638697878173224134836039018828276112244410183388918221225702473394686663640059807533444783917115996955247778746191463011438140756115337339232170529459944310540789987380790802250428057455835771565386263626990419842022204389808235985103255294808072400124428943252895498001982095518756554525855152290473110140003812728248354169584610186152199885540332524231153788632301879785460189000166576144854132659233615302029165282073420756783419382923176351372168389669004902059349252364235057456396950468747519741010125037491994666813591347908866114760033503350887646787907293701191324082901885656584923632344062832054576589309744952606950572806443809024035018872790578271934698947900392359020722556106391572580097178897799086224775971146633210981683523369768662632951628048678636065063863507455800680644570996046742357247217769468953112526199986674052018185648350010551034353695521136983459298806082010520620835717765934297949547498920990750315048747163067588916505555711456382346934861129640046354071417893133055249238740858636451737874556311128893015982279340738095205746426771113435864359576124332319159681146962681450437252404568346685838768576499112304608235674507299650806163662129844444461399457238495518254860785468207378930688992261385259563759198437122876715308764342447246808833984457189596511864955468533321135845800683892416682274331779030003475775758217660828133403492898499898877422777431550518793005509339920894419350146476711994026308705300549728376394700731220998523434268762266526097353745857612635046745514302538202874695453346603532935274236403563874537203688598594755272840623240904806801031263796296330020120410316575972996957850167694884532299945788578009025678341520881264638029647261279205386538222872400606649947627168301032744653891440672924993236270335143405939511296668106087469964726657544659100274512551486304136814680005851021145902320312669300689950449599559145795449898913374449930053409351669945193463035279422018609151550329819927034052400500411079337267130775513406738300750101616608479427365623698673630264567712739085175061585080539419805364825228412422882663554670059559252570468916750981160286503461772351183122295071000859763888187126357334677987424034023974826161913661176254734508293037513788668419017473994176870488775488532192868784892048207399844425296450440017585810182507806358280736885942495129699163972342098971447228103138273227155786611081298644392339737034678887904573414172265690463825566118135420870199373699987620904431154548801394498693881237191411133172710328694101130672976497477181141764258284230764799361045715350912530836751594094678335270674738548740515662824878917638205277241633286703086048542100957563618412155277678786839329041837922272572310944311895024880912704324812806075899699855034441685847371428347093892184052093875763452212790694956648827945802784974718905948565646267552442236398969806573916219532788783942247888698479014783467094879355917950464736806288542903504095076040057870594544672600358726142679049490685193756646602167189019229361793465386448249046089406395215158172368797452795758600902505009590866101317394946398767321384622103673436211104807704428009565908908775232960632306973165238302948169099185059195734139770045965050123227440642043772171726992935488244056247826484401712995747083068258977227080701139332136660631534986502696297405359041350735789966125056566836897964507581768010459902679179265758084935821116161429112163317171800864497744147158655305368317881005579164827885133038891026481465622368957326060942018480671389336942654568859479093588588841783689870909986073745991141640904235955759412947169268562699186224943470554925252613981956195105535429844545469045272243825145220485882202889165834413970278573656777612557821002401942747050450556459439434882916028234312860481665690980238651300187684137821334158814393748810370372830596115277444166004736692134476386552075413659726993375504108078186587875987696718609351434618247704600503004059880843997846354638359715855106500371370848556277516358331211290352226454562588289062339330037048012940264883783986954960526465115097796314827629825509911002635312774857192974225728398467284352223274971662467247208525571946464514955583018780278641071087215453830140147350067194556045911237591969043385328248754411769985392511968475710592400698840557226389396257704037434660084115411689450738185586609577339123732346248807915135375072991473404295629950427532635364324617277844455681415269039116291634904600406249416461780433704484500062654120709392310820481839273446118914980167311720686740122697924688671720215880528167765098016573983981857519268662760357567233983135576429687880921084907521093986207494850711408024782269296861733936905615955160913370702662475918007411044751323883213022420113270346642301420684443120961626681959727620361446651972182723236982550662347218367693110979978610842266470907248062585578694210700583209086069047328307970353237497541179050234984650327568511208906312242099641438900745429519062389579885281171532402978622474253672188668401346871307705489865295888675031835418145401971259990886579524339588485785949070320191302350721553604134344702909001909355714048229596283446526156020750812711682737591565868184181793967719924413097777682829005792625956516603359903338066823189420676684606807169580380604941898356059963087191493745983314245515906319742419333449564547717841550132151432794338489417355670152011025989294384392255251694500619894824770902433420405711693924042623559802932048079869207902627983062891305361158058327040681876303966556608866519133519024067457952717077609661200830010687646225663824450180053791635476914034723042981529110034347834438962367731732560372437379200941997932373257561797435660203977734243018753508404665029082904693722565458288319574839311966976726552382474798412212050526814534664980773100985579238969055911180687735966079850827003300733034885923620329747660400044392298740860274663949784636163148423504971975088338882925401596409452737766344279553520397052586029917098249030846873240109467225419461278237426516386133713011613185675162118783366069889723071839226346248569702415681431597812578326135767174141339599175913907647429263356612834343214077358915204455632444808654756162735026951234666063056799355656614713804622008371436841056732796601528686265633413507450218642701115363696083364192512212652499008016839614081303006512838128915274875528892011838246369385116333404324956161310939216267685273670725542344603122622245497583861661896006506270969485284919875518753376837186871849217356559719637527002932953194562363702020619012702009802979699431477544753401935574320431593912869970329595826258974282110761707640719800828939182795874005855541430277343755453492985285654674047433063617431859736718139037578910132755239640709380304299851813903109912250731000392371295060745458958449275925744540820117999453006454532039173808529758597540647216110462555723042125438986012789580264758095284338373343520009665893097484045625782048416723914533211831239920551206001681246294458484904155531698416877973497222921590611121344670081574419240138348288398370875371081930765331450602550620574420161055843262341216253024255487432073465509957156477133614554632346867598044081577598631338165066012188842161664346532296517349808508970319184937553703481115226006900151880240740865829845168862140194655587611422452112609194357510163832487836562023336568513981687894644370207723842297247056323295173072414566226132134158072396107492591569673509872239210434405791656712179570820012703487587610101273340194065129261540169924843593071218337403637115945451800966441445943071657283238944051965743057166418376274486775867573658663345570971137923009445722784093005891404318254188572060566097617737296217735268269047661106150048653837917249361823556213693164457460441061312785315035997981824737452413982122189635537262362757936980992265503878012105086937444442016236221316370967320021502953360811581895733575121924873225176933782177674178458232817947402752222210437600900183964766647186998742305391826311140927040995778969611629764795778907311985885708574655773976250056216824305682951104532320122777202823859470921198762302157983986161057371686895851026937892192809767342338460909372643883332509777258112390221108395467652736869075928885926510530711416539220167131227178023994782053758059071556907061990176526187332975854630404220902721460984076114427669692473692043618458377643593324185778645605489495627698550816068673575911070037533402230438316275517806913208934384757844823153862303934342537210670016545225257046851200010178370112149395711457537475818558943368072955769257888382860189377918638299700352444457552519786683497208091428666091889907793406421927544980653259755598984089444632897902413550831479639702582436373321061749847368065826473586610228362339806231454308200293243261969762914480956641014078234674990989378709466510264883255899015116202559033017322440610174646016945638521381592622970686448833318994722422808838614522863774871772417162872634725461328028307067845547606653358847692470318299055302292798622919818756450454259420009300891556739491138715384425794279756285120846523461169780592459281544956926905203310310256115472333510507187663020891830588222751837298023770642700975770374952332862532195920023777035347398827973670599867087897222498816002594554091935943551132171594185782710007729588666799179903051051650222926580707926296043187455430438858259705522472062546381168426427587943428179993268907296411268862980003926902865857805605248083835820013820803135599179032985397241088062565714237445724963705998839002224905356572354079329809483045444260490828390199731194217157100550542340200922974885977538140888245851645106255219313054602221715760034070655506316087885245628683289749688599650958430199870772416333777716720901230290812714854724633465268974943566384435112886415608730623702510884101486530623623400567255917303392840066329842391934380773334731503734260774376558951385842575427045371236113925599605215151957235858761608807169960967095188778149523654339366804565460146440897341363048799199547041157869457095706091324379296169272415387163676277469608923408356477778370593139765198470474422284422330577104488482863421778333172500579702705700616141671831975772811826314895174559960273095485912894059324155273306840684193032765312314108533625985059464384506530753322613763567394529481395194596391752620244031993771957338796899692185041902180424679884978203982119546028627272554861957505843045124799694341254370848092702224259011910003612959889902089701115941503465251261650478168625271636985195476929918970557805808661376212282750696943350874552716026544368502336553968814370736323321203941852487520282713840932585246591796118035400407541832793980819916917546796697573291740748547366543733850922784325971313022786770069560437080081619923934424625178693683030917877433390582469633787036871489251558888115468449122485573105565005813800897621271642918224906166991851597905325862960639523071014646916027638589375192105725178200993910784592137117733253818759677197963090673037278403605875345706640326538098876217842675737968265389925929544819886924376983931872540890582258347910506409537117779742079594061855720272938093711199719726108791484651193682235495748256621998531362054398721287928830779583697464483461121842012676377694226269845436086654707340155151457128939141188490407982487099801758498646315576490853935823950404026368548852951196929056103344929477279357866546507055750740953939114212964247536502144035683836267188346073136857896194664575922369598797420927145979663411364851902299526758349696669140876292232669472646405431249507951835513692175653742845165004154475803801135854232864684060660521070703160531333154277089567383142088640902093717221880854731324129005430869112742165616006414288400258069220158554385820705061604761940100580955425461908763414354926155819572440531563432672741058070500079056331826283618708871165123882643912747586573161435156061314647309079070405406814051938533841662036188900034792881467804725980906207759593809675517608691436279648279039757857467091164737920096954745161716821474699013565685412654078906150590309645253980962472983776820441866781991218631767815445702947131189765597448850752544378387740622226831769763980158755427905073831877614728544059312675807181644259924624402114890477779609861538641937025657919243241350727079884159059038117311692923510665056705706729613981950075083248023201416115681778371692281237022476915117443887237912681513737266303297007854382794801774101540963827971850816441945983580090195833578417491521620106098605970593586808474771348529438093913075059843266865134834343867224630959870094795677805493960624121057435772516997739501185539016868882724851360500702178412433397168974800121478779587765565865959196385568581735516853177935027890901607176169225457073351645793966052762893739940029398534617135166282704193291019113898436942933168514131450339677447196938022381040429890513500629429588266568043392303321873752471044049874027029668041476658638688724528479466639782208356799187172704446561137882445786568478403152516868010867028962359897184783420989164205034221023992544448871841008162734311419152450134819446191091879020315342910434224668652790642790652187118877974972195614654869390246760873313793625409896404814188505595670267713693911669809802193792865679723370119318719798352437709183517156337992759796118139960973637616932257327122046731510611812543644715116125057001310958363623809084207781481723226367545369865533370813824884672747042183051092012439697273739814850827891344213839190773515781737938286702775115036287019764923166542025434262224183778008227827503108337625439687284854426879533275709949974788084885982586247329873362873489595597659285166733271610260589898604663132124274396242604450795673827004259638718584352146591623302304306244479551499360421015527952488676594610147997308698626629086900748069219659996521104923678103870954992293890378123316397510974284883559087156632136920024282944692329041350715782719147875372090998997285908301813398692677990056947279963994909926540937149444727645125234753700940626856334201634263252614792301350650947971642416457920188166649262642590063453685647449406595886090243487799216106709380679689571878842798861089679898032987099737193909869921720954214596250980967384158461218356983409532993062386521240826362729119306271683228957455283272971757493417949474826971750696903443746283008654433548833242986881392632619305288108905496654306641562419057982266076295165369350383470219295248909086583391917497536864092034072444283995032899182044663886921420807600168859952764293069350726716630024676017413069709397727497689011856714634576976461643437244226399434756301382722604431632556723933507530374037577216815888992616413807077908961922946872837527388658254067188993687449878514355317913085441081540853941460031143819786915893198140885392503247167392345494284372254417118745450110519305958965247824609213625196126683495657915927055038125872677189431355928747945180576836577528136082296804582358678319663499584227336260922294395195545794186787330602514247842762675599599597715349286890197338049856436650614589628181982305553612150443304778056489770344381215070751895927246325320450617921196733599001314233989794352123571008771878638666816770676132665715431790858438661314748058963674060058641498698619998858053281601281389669742842242175936237656117799533163562007693263627484156022208564287092453065713841090114055168142730742876673574246082457132609787542705832651287054889626688189283400102174285064079329608494596419686699272589161290970428064033441491804569518014624424961491030695076897013899199966286922763074414574253994300979199251105080237988603909591315124000582406067902564706666920210672197593655405413334053225215836777562683338175270557872368910472927011928629020740428210576983619544996319193967908914320836415904885542000673058622597862058180554078810368476212792140437980645299258682849916925833456891419656462157039703796830425532052656438453836410997445002000731556226645354437468465137667596243786176876282927188367002872578177029167095582898616194426133587417801341323201410608665038258524435361415943018604869673873052006211822140824549922606056951083508870961779389110699847571913792884229090770090864555562891445380996293609202421680238613065168540286670121026388508738996318616114136967465353009738253025640471019675847875696596476457329357524967787603162697806072631801414423021397663493165151919784505003096052938729308528849755259271774081238027935145816892732078019726461960129923871999179867189378549479133504205902891904507135772769903765244590005229768075538019115952477413848900093823917297853280117818220338424838879141020052078147778342660904932943711367800965053069841961365187360396931603624449761782323367798899542222489773736738008190362310144243785921185255734808244460665307904074482022165047449028766724231767109504917413664038259620532217148309863067695634210625378734174228252982654232721678481660614808196914346795406945247936295870663571860739955780898177369027971092412253033713706452252130728472627983917994359521569999576317737884911353417069031617767193732141324329723508067797119372162128618424708499455331190702066508005872876317618966214453529318686977759901256232814288248337378523270306048309384406447996393972823415891951512581208758820004248954645226969050625333624367793259327117827507940760397342277427225110940713953048614455442492150739519136190976341196252517400848252131483884577285328333094189153194291739149919065573126649493224881261887613361552817566838150893020324505099030237284478666549098121979180038066020020796918836334781300542884319072437253472917208336774959798093417412128316930672834719779068320654616437011710186075719013656909455100722349404470579163883510546531615675733524803901516071468544664694178460045552267096428291925106186989471911258270821735596899999966504773461810092982484155492926607637263115720825662997070126462867287848115823457415305768375181524509935033726308620717293186664485179166916964038065221762180492769891437464186220328238567198245159619416657448838004770026837574812392582058877191024756500222432323567691913326202820863985125525683491713910226993708429635790523419401809134154861608644804029102269038045828607293740947414469156796135516523260765708410476377634471836599072969740263438078837214180786709123923807314984340764900127042790630895663031717552647812826370491678135612032945842019433157802131749880697384984776546672224202996455551785472826168651969999101725891894745434412544755920633237827706049691716007543272855926118351117368553409322580598097764412678663664517817349740171185069199550842064613240430622801875836887935698053353113774459940939972158559809790519277165942716918164266846948548160805496965424692577441043417607595136601380378394886391166695651214662964529246290139036445325201149438990019207918273231541326535593439550406366388014305709860176588875659513471980475543294260734460155754197597827257740483441653218156081036907194864396699287614196447574285025527493037379810099437598985790182918606664663818065281456782508352238642161451195554987654238205113161077291915666814822938751699072475167176682683403879942832444390972341561047731008267442486846916428080919230266108945479470206687163247066065914944162936970658342491794212764811600611265672096986986227397384992177104387688242455716429710802031091204651260600909296141129385822759083052318954821172307199396540014916980208505911676401071742941760502665093414111040115605843533292662318309198205311204299955169752950525280533437888096413702443540371149466796858124040038551158043135631953442337071515953335821747933240521955628458782323171287596693451237661421668893809993591900647094013672110878239767206604626505322881570944998481482278424972364920580964239773774419959833383263493313250254131262066299545119960149688890941398116157831174711372296223862985722674218616089721855745046176225639452829450834744504908993932002458922274142555145101222033441708732912776361475283830771296119162493437316053221676887197288014345104159422932366263211547139558639562743529560962345273679981455058231968242349812442732337167434967005249528919143848516645800604721716759553752956036351678221773454897732807339361657849007231254132848297426777495765015971610931813928221352203668728704951942508320454635351554481871295906815843370320293039731729283807268536190614685609879301924183956055752069096318898907104791936205839003015766940919055252809475078022827501997781163554928606925978239827166721483060137799642992632130396842792058849993504207372051789015925469848641194355109816906075544367772502867304351765342414059692104047996438234229898742012316230320237221751659670981479498282614735891679500651002176776574588791329070609572100408684374110574605346852297616387167654021375357313375552846778117672305174005403281961717597349415280705022431918918284896302330223352960673076025179459542026893708875869248363746165767173339369696688665281931712058481770854193309867684479984009007052770297262924486830982255771097329503758305912039636534411095879774168420120631753950440898089716606372039655751283748554837884459057771230845537297258707343601985233628438246778350424620471113697321306916309229071960245770555003938727109342803162473038917251064581548456330614179649901888582071677729727241360269986913945978523396288021865927730471769970999415811334744948320316345016138961910778981156474107213280412147660979291272053127800123582496138694770327598936836462672332064701771397270503096161312298719865672973015581028415883598422965004280330983862797802453547719512555963894546236032755619878489022658609107374115816743878160173034068467953679085132119596423877216884284878544418302521387710869547930412867058351339332926436646962311235332697262273865246134452051977600659888444071217430395938587173497939960544007063957955838138845508532496484988340663747902579387856961347060091269750904340789525010866718186920660603912712484930821331588909667643822343218184908092294339691002570705062119642978784461033921228447028451725752049772677120792566111703376653435840918130445846129475870793791099314127107487841859499371528357233050684897518328842598585543272542597933898194750107823350624467793130900670670531790436070303476887143338468184728794005879013655947953244260381329314532836876095980186332330526558324328889670106375267242608682661490243101326572570497337661581041332712036016653327854944713140485777657121978713255053576437939258955853508132587425713921573839255768380680962639633322112996408644161925602453074682796442205090228252511104544371194670385038692870623511161359796938610395014452051211281162026026775867364073833322454151171220915932842283367724295223623033596348806622404594255489804285434258408439082592072336050775345257678510702264660352913794066262552010817070829037309517683355587901137463719934891171769369733533391152945064761728434550322682670335230410298773050515133210932021526368707393685293163472804912889388235638281869720733438529518569313593354569615962551367801097160831557905817877131386370595310332577108318431415223946836345239269818187959189347452916356288751214719646213274173692862165435532008727216329144695755779225619665705619347962952413705608576556353357632332914965763260276865045216964411655096096816084329193128471969669831601021459393723837681585929969128652764662913503840929845684369752498563108280937168088165335297769741831785640632634320338827400373072992713482694074429513345722812843770321624898657263152771801939954925044682954165465548712964631317657512201801603765803150240324800317122395129687928370890279141604028409102419828855166964172138071247620378137880665785769733085144305379966795945318084277635744665668786828556338883165997720080804087375996768731403510182528587742302871198524302285219455383431341989292866375894375707276372538908837216955862652453787494974898506692153201450681659631603999449076115754818706333668059494626535265551041803117246150746316441063040230085779439524453393542346449261885366578027844734250448054210866851786195787580529614802151637458342327836871855780237837226117706903360468337949902248361265907955988114043431564853867392780934162201534701063155654838602966173044453289971874826070199100570892807693830227071830529041441563816291051464687497726109436649835211180096153510106181827626733596534566835378231732283443853956288120510899314442689541023345376745431066075153473582905505174777754765633774959063480028321875788461304853320820591915219637627021901353310451089647823287005082601000295761456889339300522568036920273746980574473686743263516613361977076228758002922598136171298182273902731181286821268009421638178991302869642212350444688480307554675225983851404136523230238380312430977713981195987778330041746258168483618654487371410207993767181264276309343851709997677219427875294956967726610465220191460467261071524087803297597408170014572089567800897486596590167181829272184757053364048922001489366572086098305364170754535763541469450149993785357276531749859039027385517450759254771749309585352994868539741513818598823207936144923484152574744336018744383806973763687808921527099902358761119325150378570931143126766543420338189208399427926798460325689774640009214165688679528579621710556224706759562605871622632202269834252301633060259589303679542286446876056719672724461456888257525788738102008707726115061131811034892897245520860345606097849991297613606869608463899221845022483952598578655298393589868312972403906483505921543859263721435485275130589029202265719841778888093892481626940135324818217191495009801292799558526630539504731997170170792367804801602217221867806719480146288348145322904930779223409588237784245450117331041774134562344883010641631827737128123695235120927809917440677428967557883388803088169944811218131427491117311312155336207334030191701375240138313778811331619789010532007290194619807365785658705197351173960514869441859233615109344237666793751366145795619938322031613510636708746323303940334828051500278380061894946832491586377354438525358855973438897179951524578157835028404477136488367333876225905420239733135753057184026767552013499292227346063122381142915290672854473651638212175935653893739262645535658019145271743940557884910023961988986638688820709127835488352115080452981877141715170705511003494580225884545003962063430344673583792330409307523928518748081353531744654703448513528321338496179308112984286102967737861800781183863976177840149417140547964462905620464004556437159048090521364739820333161954926375006100847299173897882988677474085951017065373184095638677097890753836020733408156079714884992658618621504457770635740515113962936721704262757633360165436681653423940558144952695295905194929437402548679719285341682508415086965386129414752137429260648370559336087468851957944916584012856041128502863561388624422710234921268156313049497253946215509195347741725843150076747578676559125633452825635015951222473432526163912429031830282665976879792444718987600189392627006459643127578722389444076278255942946269545034825837451032315846614499749988158488148047717652846755677721542867289041097697146335425809943637571216969229462079654560522522880870680384240634194732998589574293699716571529104213072127872675558964447877039108104493646995334075422199725053167249098872970942672425717787078048624801446741571709530997644803789613259007453026415059851156806244903519616295089623845396623545887437012370619298851398424961982097590961967725962303751822078636594132604099346423024066843335316322681413185903147304511646861041408263600274658175236470937683174160284784765299273498326954508757226729038268993987890532232041423132695249499555832054218157938512164290633829319035186477493866355709179397211118236604523867559337780582216451688667913622134676448267520746997508481912620835074193091278745999047379535146664395219904969393648513845276156932492085642283097598959109995879318861347319566765027220058505895312522590031044609951952145606305383675056361964220093830253660849942557816036691772415146652306408483473670504101707438494095988266074075892521220764426964273861759124358582701797354095334229032770711172774939621040131329873735275059933336526897190441754297276555174567441278460551121893892269094263719965385067639728796456315821301533633554362922712645131699254017963134173318337805391609131365381662365653982861545940015881953517247585920449772329440263378334855817511677144986658094541145834680017007594213548894749635390311878678019735925271823562029601450298730823787177865707198462804065533277213662749869163393388928393054081022144463632737796398652435332014934307561241630953350147049278643233914299131434069320416705524098388923685331933269651623623364980731194824121622479642211387589501595871743629767768046607305990946924784502284672802175365942140645834190240126858135498082506568419207869820253876348945437039669229189033161479281868348918736484407812763255195773640502915480486512098518921299907075611933464969585515905564055488757221673657349192792809508348343739716990452412739886292522582689974908592250822165766158107791040181357847746090662729385441040750965842802419073858595909329713017231988742715380257666210741258077228571772543268467386593956976124168068181663106733442990923623925143969832567610762919612233147369650789783912693677460961287926275068646987330352484912452603708368767034684975118945138658163030947531687820182984891029356294061826908151735852337647858678560942100478791996207157258212871218073761955152085178191292034828363562085597949846575723050307276783095769245309322992835924931140063196744483523721592020931478323689725808669675117477482613931443934042479017537816521601520503530727179380886464550748447256048851525742025068945886118931970527248099320471311844982458585528864269046426793639946071694929582225076086535702935874348184913716894620166948833436547186662190053885924639286109848300242746299755850939673730265312702042113470692649709355862005710345761957933060799335690892870317518523288471350137639604655085528345764997611764504060528321376489702407820879659576584063128457925169782630340501799854569954676695023175957807121286088279317166740578276065000831995284461987214219589901279088744192078840615349504721472110081652717146291281709087079546070094303811550570918060851768021744557477787616658156529385351943279616698640574708008690825730258648020152864358003910512068947367813807722655287695471403177353837068259791649633981497991459551870551857646508602657084686549388402373022073231704421904728112463772629297953820254637638234675147256399444726752971222284803074509251511184215014705950221083204264981498679189155445199255783555176679490283679448536173070103816794549180430475367536585976712384847782326372579918976885347666525384996332893906913760909629630574170874270699664674471599168653922148042940075307575135917488568728896941926432559815313953908597491583582073664630948952101675981617788729825863915046319699491779610860795208810007192139490533437025881128689356015710204529739139531053097529123884870669063205063102533515173938216400119900085075693178934346645246826495322341802044516257999089243363964308635233531030643447819705414718632633885864046411901348187373374436318243778662336713646840602845287137598138069422587715496454322348979520179738894653311911068020207173826758571345434457490841814092373125609631378657480594117208460975640213437380128649074497058616892052876535305196446466594497887668287368524085452404512054782129790486662579293795588712987192166033182747997431526822186766992606923592176952555692936370383521779024695028578035364794562207993674371110780119508186298682570359176703947012498055606036802530576142821156321718710985716515509512641751579962007046492900415071686285905560975996585116370743685175387973783305218085251486122538496215083125904376466625066734102697767295476301557948540194215342234272483359558711461375810785437198116596811829635093335865527664366668282977150591786323091554318444192722656837748812084774330292780908380723476129114438753581701237871094623259147346100116221129489261769677348349100242722404850000441619997745436100168654078006274928876535876531974296374389937890802759612989494166948722954704564206363530327325060073715406086087336973814745387253278624199104205470276757027550382353741295187948437337216708768815304241428065925933755620102605575605167595842387281775014715088597097617740250569364388598338456240004773781761234848210638245833425515375788132453123645822266789169264513477723791795940886314448168216376865581207610347487759731092405196679783061745654983516242000577047567477455905061079179458425805527776112650350208516924901918626210279202351835368209754273416473399357554922600476925375274873697483301765462164186197434964320211782789662277214301748606924009562122727849489784231154786011214808627978552872697644323315730204744657235229490297654327027796629638811978330229595558647177209595574550808934445216393300432879253853817733794747364557864144068694374657123836410269301118769989874912823115192689040002650145909475736102880401914645092015251398824643217652201475842159846108228425476249674931393408775906462686934817123678324086525794148132143241171821710289874825028215321550789069196736485494319310120056937730840688179248478939507377808783813711093156419091006071082119522817089100823600189288564693899220706887707599507787037268604985539620509005914944199116949628298038667608890831352967039477313165065597746583711900478605673810746577669802423309414791571323910050738325131280740062669104556775094095273844502905833138826449282595413100133899285375814186683647514041854327849960863237118355996368560953758127277403467649386901704931649021869146217328259133692046667894497726355975215093743359192825613904591258616840941361901964698432347091907133302656064625936960602647955145118708836653502969842904614772345568102629652030911991185101093211922476380704100086851365133120167863805160967917584198092884188643010374606794250616072950834500399966707518649182193114013386238505721677358659157740977425578435426054756587373280067382110459238885971907653113394739519335216800503869162171126322065932698009146775541499306843442793609399684364128063741187480609371928187613808599940290380592347124221234971094934326206124565931496613187016885994485208203364943458543227872333969345402948715462694342794166222824586041223857137833995733720743855588067110442875997576750280299537763398579898026473418587256577654518673919012309748657095231013457876086180549277583735224944945273254490974068660348378802839377789274547337688412645902364172867493768686962355976773676860524772717248218998988415016025148764039401619044750877423424787420202371907448157163096173101590182012854948770887011140879512467553318509150804272899964959183862304356374523133399381860931796665753485577822314289871091679184744393355969034133884466675112475018212972798435766025466022441135229696617908417709582801381426608874363487990474601934550621208135174606645081080989610644691539612621715692322868137352867928640774687755611283973348421462689056203613641968406386385851386984403391933049870185562593141741843171745953291726984811840410561403438175418779167705449594197875441019135973357172068906203992272225952189648195626756781823684115067912368176725038786389276233667477299693155065321595425659267026176590561940654786581425912355317091051989860979197782162606017946366220718487513556557923739612968719528841156982903567663919380749923462748546790419064058681909288078160367016062223476651929177437347848091590833053200968015807720594299766234806140571742284913000561119639138480819608610274265635097655740509223083064245059176455751669591958265919077177384341775702136760847773422795746756058226039964814464503206478093628475357227808297860060294190601631217790786832230789639000778286717131620667561261213435204600646557645321526459395021720996740781954253469794521720473580645422694886091929526608959860031815342524038562850770153889603461640895956195972787100460533967078640863505467856243637653625340869236788522537356337395468631187700139964922845381286647099803110520784205429319604870236195989438929518286957986498143652920237834511787556206796777704928239266099698770199144065815919629231468855936818208048021143556082437449806423887537189140107777137791269531088566823291207130409036409335465040566730488023168871496952967329035315827973213132798171597053508436035853425346666994697367571186521507939879767682013594299387792994526637596883709553860191025447255417782833937976447323049766719833316694389613063351682946302627761179407329054887865873166517162082402205113076256247778422029405553104630239112425608173049123798269411827890926883374679272471395323910340710347362636204445677890238016929341801797142950979313683224249882812836927343704204571358499782042811241241059259449080792422437487030020091135495289290435721784920133928418624710557782441613248319812840416827502321782433511424947969392342874786501889427800063929120843529571347793565981146790186964786990565240380274526147031725146641513513118353433799128294236937923248264029479996584038472518729527849537320586255066254269772847849896733049194247698394613434331417717670098438422654534660965717273598887299896667935570960823472262680162867424357599500293829480198632116397864598192825419869073779278012975290527665519023074423982225810497853185389100745556338264608047191344527179693232292959772734661323536950024133219579718434063806738786403729775876015049673434437651621535250928522266416706712708181287397789099008073998169959598961060687841600451985468483645808464574435448857414469737358989853406866327679606371193056586726054392420593298586074391372684265285923820648562449261145443635367382685827135042176046363029388170264985700667816817188653493336997456565515118007274627656466988302746783334992635941501047131806544440479931057715508442638664353455260277113019341497528890975794967825996812618964436186846177192694455552036174745681965031286691117969989896913745042059884890159592931149159447274801792100333446311740717669573254563353176048511983597003802281789846915034061040989262131550730290747796391657466067796688261945459489877507498268443869549223179879584816344476360710360483605685492190754249215270286435482512654629130872390483868283701173345763018817326071561337679165784834566030187577388499340061913057093652884610078358174557808785196359535272990255442609141081861966883157523613308130957144480533338901948937761699938583096517718411736443423451256934643534837968096079926714472960934152664560005909784297245284892315588283869699274602242567254220490382885848979138287680331460459096528084435031247689163302756875133082368794501075106323246182648932288576257289421481132212990910187347354801601414651378691060648165111395570516935814241870971324405945997881476249515216809134083394935507718845142731881497150411041598227255429794514159711820660431129384583759860696963140610478933721121563882874108693133733193494917088432810302974967512849397453273770475981253492739699928560794887841321139037414093430766502795419477562274930369837274751144023634176974913461426187969460217725488424908686204500418148363774735371346930942538366047862411753872822941780434834808047289711664046648669442581852939385719179821016481717004766334022809528600599192880739162517183574964976965338405736242532979964972283575724044888722272593554270376704872996434332063574373667779107585204817978179548499871763345144218784831300822467401123940984496495991794406873427079781921740735473691943735461710865832069140402831511253570684515134553942073919842041565915234789166617419737846952125549420390283945127852390036431917560196799787706043633998275678567385873331478498440085997307964185837846733906086783939702032349927444268566286751501301197866760178520286469901447722960172154950578272572146065080004867600431766848804300204507738003622961441416714720861163055763659563983765854554496227430515607723769515405554309471697240189620353866686879591531752540669951575251397756490876554897401905829762520544370748889990524101147997259496094480493020509566201543995242451844484866964576236260164128251860684010447887031951801784385923360639433971187446853314140255535510167628450251408870620092924600179699641287975110426456113173304795062861999154641376166213695477634277818327675514249803824030804015045742755168880928650130009402129686351940922077709142232516843228397046316570122145937355019979291446957803215921841498361795282550408860451491904110741063854876240686111557639952323689786001581391479447646381900371725579613472284245566641722533609050034438786852487932053543516113019456586319057508118175500337286472629904739288289130842896563012654978483853765890395596628616041574226556886683233720168754306344917180863731987910905122011759434254354917646617068714843801326274767854103606003867215774373747074603571561717067983610201524482014681158645392874368553721424133415422327891745713062577147725663037203885103489537144392158664216100294473140745739676488251483600765932037999007002160753638190245314485008726576268340007121975867176767895661846571992394400897701843343863385305495111520850030284618811796321599655708432921316145491184406342677006267401877985221065346468855110379986053137269806847827841360512450839024292884629980723396870323954516598764788974896418458727760730382488778748963243108132085639468216047320396652073938144285404546321162173891539476979903050448159532483218143526959194535302593707202217850346217786182951634022908034743516066120071384351133763303573083246913091143421977908395818683077428609208942187333762284470061984985720473196284955363613138303735011937234889152977764004659639538982869685906110171937899065766707300255754326185599429215863345138027002581645065647105017690962872874774052503261374523000167378550463901721559195431936510178321431395440675071396928820800550847085758526655649538914117401612224366441922045917828721474511451599650800229791149652545448435437660094802269551834559114825443438035382505443209196429509380465775515721393194788556097460807523588054253227496932746749280324628549289157621417689521929137438726168526647628705846648938561467602707232571032319513105569623681466298144804203650757264162549472864343246309128531524019824875387062446312619114495262938689260001623401895978795513413892055622393084314034953857671253176270947714617740066225625201435487042027197240964856628084361340820160449038580437922109587378515438945168451911389486084732117456798336217729171495677091415492469638999188923628657866382369254960240978703862196938352915486742276098650322349246843390712819558256112297472907135373186265513989303240772876044908874525139867181070120442287285115792932370546921447084870773936780795402079842284533253541152132444021748563749821376249045981091312106995271340156049879919382678832985036518515107648357577960145202005070788707164258260545260170222308427647881101961300129733145094848595878585285179697480994464808639982169094062933002939300173018939845953153128100746641428091597368228949786885393257385198855886094084904028825056545652669089758758622020849793701391559994038565253993578884971128514824300624991334690501288591827851533489538817900257283575225573213796103171032728536456144458995063295457147329906582888620214680114630598926254190041542486815490635336845951569664933494636667367729204101471119214170798284287197872661127150577981761290103341382740924662878256294331265786259836087319983357537322086758963248152526038252806212729064674170738928755372289875106512561922359506035890956282981341564877057857090940352400598160925045186822157643553390366314006178663733871554917452152003493517945403567520635487652855387818170006750056186768951076216109969838463665384232674801551871033773652326252944792320848869200707779839897935843279754169231219654804946583373805935997765547537250893549673370619104655053359776581246412033035475906851379247087991236007750280440118347401859238102560749167220648826172655522990198391426874781815666215196697859731450867248813419952850620994557762758297748606421588822682833633599227757582832892835775279443483885227334948466698427997626206371696541001809680676317922668169300806866820479786002342135333010718716579469255637075626194529899803242469797695509180245823757108024019702903493694609739647957750975849014852876708454528645582347468648006419050730471384270348492403711705803587491269542833418669164807280170213588323761500791365044586844545991182989575424509199472537641299668664269992474392979688066822912692793610210764421883041654367940755579322901860886120343895603677864569729033723773796154732835209742449277840583210110697024325563671014917600015116403347992655827215407166779867875906696006778512789295230539857016860244177726638732352565160240678841229541643627893440429259217895895864545387097647557241277203789562757996192441120214644572812467258124135160475852977742622713313126304888986494366082461553427063771261146224931344047856113450418894885158704627040626237387065813753428126882809685051274109517904394743176600330392054795865517663873398440545938533834982331658204316560564101866409861591805311955765542340908300807905948543678480183271169553076198089786450149214899636887289017236763195789055081970382434415851228091297276549874288907558142176521300364885303400473932162581605318498480122206402013816637582619942610257743225028980017738142928408313058301159564003168502509920469316860141263304735860664256840074094443080557384404010444093357856320306584754161382938244338471519519724471572865779071179990401986699658373654205174094884410978358330937573801271706424348434748913452444854314438544891779255476992006097566858646706057402313963193979211319832666866158801619007081123021696586079439834987602027114826053197957995461204785964713863600317257604511972092751746121320988157414851755218141563444022005785560968688806534183872906007542891115015884735828492173261541062448050038011987112335320481788077470765899396880376834120481949959676506066419622461282408370900665077182288882760522308636258293079736218148779135619857086264630076287267735404708406724626658784679737980502514143881551162504221648318562405121411435149238250374233689145072877689057513633480668391747473943539972903170152816832542681597969405292742582597785740616465845587548350226030530300984006579150034345124874462333848936017700476872745621911989627090488817806671726106604850445167485729114296479561385218299974423386960514622535597795657516723444167269708930300912768474141278970946491995446706165001026711412081392023582736653902707381905475573580938554563064142780275507764444504288792327765069956265510787282935059840656775746796527457069741454801580340585039624809607721280367125411201931571654436563713625219694753127161026457113379342097774298404964119145446067886616053673995478807604384617305897694911108163056311219004726100136731041221469969696373721678394182868111048277325406330568958582048978204664055551393395698033285230409746024373471283289493813601642650330963620175036384973545477429098465459299169611773752337199868603967818377651487393938521647965486310080177261801511049485306724252426841598021900368542107290501239675955118804617510767278182590491592045933277459774731700500009061169082012204431532577144239722176346301232599606114887312314601221120942195102541321113332048524202350188755786561624378694588806159556549569027016597680738000311248515799159987182971207023890086908987755425141632197097182038969662353168949168658894891910762663197727660155679713578069466905591200994529243814023313436405921217095421868792417832844289901041807592646909378155777700256566649885604931922250098043667440577512897188802449017526614727736729101715147579200277580941151499535964960955637054232888867972936525007467617634052157324171382133899837713939135519927951913978573689672247477090322562829707222862236806693715018296245286852444237607279604232808796615602486472494824214379227634597423317571717757717831252615596684039126796154495360456051817737807120107316900204827626071905474904687530614048634350746804336334950339421502627568227886612358087858236704300526473779388363847734026038174178386840577787238098631999469077593032911608199275978436719533772706218647100296504026137080261306062343633601782117363532674856127294857292849412959261430206080379721959326722083825778250259298673701430839345551976883978696038884303411920999465904557264127544305015223398009556214590032416989063418723951663109984568272166389228916853472610474415569760043260412982023689104390190105105611244629135031157405262032737146030019613966167622789421653539122540555284847261298637391358978220465479672603158813444890608791747873739408762919624209902198486056633622689445514061022726728397930104241097545626574336235243647661423024033363067831429566918566100338617220969464542465159108799572858468728760098520874643907614069276764333492859510624706645757638828961495499262963480543040089536130510481451901184050316216494863933761604230071991437524068444853880190682638109224872577583497048319634182471228949810704053248376429161353766689924457229178552327061163918412314504683878218772330300282065844188620172636541318682069403981079173403712848104400597857567156385814806410668030117750504851160311441312857705234512793513045903210998654921984272910239080315426226358518680559263604336790930429590143047579482617245772501872601934370222214665604679959498427465318671158864476902944614063157600294623378346239804306826996848843759063609696188497098244390492315017037969960503126976758019853872292593510212929418679512565955016267910133365813639366149691837546219853010011057212351064303589638123865273316046091016432941861032778844929533307285690276132780800178157738883887762275004112873895656028574893599459162530935484474072405770346262767406115363018550680407903260247017567291552559783815876253828071112173642176774520470628920852659344536150006492009488567061528914156878570222697033927657521994662326843513237887956375425307333876385005021872040222880778242497466011331870576120239134542639579054086191606502679745417094184332739706036977764057949452786160520112426713218365806570523930543887081048360600443676970821266103052367668113501082305187216843615982542707786048169972523224427436484223967275382752764309049240515578443268690284509937462045190072966474498643742423672758811981810717814001607988382526723041606952038535614455434212206559593801577285221658286378562318601561854273794339039504352040684647005660439314676072170416818000686228933479300940045316782732169938894657492376106366082084446924263630797454183942870553995798396199021310972042933196467646911988412717208120716546993179113108527068553606133078617264139396353527059512440598840387949519447441705210987312522063180158598764978804082816376355790230631615505277899923599928181814016200052994858163887254334515996029115499107879799761595911966717200779217899522944312879931730396130681410622106274553863921785566820985543985725525597257336643507464981545274829792265941550076774999633001455217104218293553709359232353790571023597491389496088525158882322790451176829413742396502572044134532569997246642488453552469428845219815811089614517887498804405774714176406905708474543157808401969553800972393027071302118155044347411339461034184035378745290904470733292627127766876208617348607995870029586898519806387098515876589644692799712779340173516565916963621940097926923568085596641072713596617256343684578397324590185238759257011128518040447811867238925570832680361244639881756342961949196581703232679301535920789647934694144695850205942431216769797120423129987432590733264739378225355459356651017525332632952938022189979295563207534029548524264094466697091859447983394802237276008413044199983552937438267425504020747526021126384606066930443273714386597179564572063193383973767074291702953902379893441717037762283749238555599525345609872682177787775512601643995386474601054926080225703048375159915779603402736613416976612882963545614960792439751642717603961053370351390660850979787022883833139599023775381099093856536185078835819766770120009571158939802698329910691105580785738111725223041305033317246614978104607374270951833076757162964137759082360412474549241415919695469374582101908575882193085382233947439085696337202659129462241213302206298371893574610584030628836466190529600473619262201319913525028325859130503295429788116660394964193100101513565926093607942102237541547207073741949533404697924401497489748927215338604133367071348861543062943763480000168621348491604269174483234443028497285563999514099526446128949141528824095049721948082795010090514416544600454793993138121864404248403646392157041733343493021210366012596680454154935059073522683593392018222810437206916148063379002901244941687151507543382237818474459400391588435019178073276491152622349935346616994362919141000077120675753929429469838901580632973885544232734781382953793633629448312879822544283917009482543235772434802183172942422927894232902634943794913896973243987940519673311888360541966140442436354079075111210027305568651215119283518791194946257683104661565135377989684986670890433884229152450264387006855365864068772084055811129544007736755713837721198614609165397345613571824661022189717727528140732705103656511307709447742082916454589294513406148757421105728861905102303972576386218630860934298106954709589015027936260992128563564494453343182133876482451061006675227450486607147760570097546167172617928131857735438793873428766194177207078780173412821597316134533899952351010371825954566777059402901400331539352111704093614519129157000539392626110766264758883468876116879589058988287488159701619628627969483990304270070625551390877244496893902033682681412263784252470197229689650144778606669504560677074422837124057021083667956679575784009426796693727573035981224905892367163950941905407953318562246915725535036506991886574450016668102151354989445269280176337833402525156201869892422670668630395253454397627671120382638669312142346734148696695510947253738752069008826855396005111050033841989127224124302632492956830972211927177809029586563595228043568666524871411671886826982142880531833568340596075453272974196039371546224791415284158581339607520837822599067390359914479950480355762356384828117353160476097979284687133137051416094844706234833876421524386009838393161790967567854612447137879013894532008456867501224986638186230213254612948114341923246353238927670653215505597894191812400407608862147741426402813090680284659773169398988570963363145069266902082225757629669561145738081367472806961636808611973084025642732516619035117213107813348989753257468404952881915429391075269201775040702354650297703352363050972606496735720371202106178737918936082762926814150859081247811241533357309809407664673145928838060302508562933288167471385769518309942927952252637246999287951169797979852535541357579587769288312764245274941315565651331105409109793316395047062882112333579889306258105780481517013596508570450536132341971222000712529126646042619083435642042431453553093377734993037107316574536112070373922295302932223832099499037794269471695938795933314472733061562928131521385900517288200361293978212218753141616822866336639046593776741141027231870988918512564291039770744346462243648419128338673761036749144892833335245133382816527015592821903809545312847066312592622656142935660054633919399906478439814686475267038581727812190913046819949080322372235115607746823677710460325932160393629356608416078211608166942319185414836011637033671153857567609196180898388243587516865143478291752671145784153736059185324051046738041714826525258638309850457757117268756578488658684710439471702107428730341729492919874579109421012734325067649855933693901570252267483858085989655668792245845022607490351050503220341278748453255538248691371776250750275508008830024464895588980159011515106196057070131042994016557911748710260922443930287193710121587043255409972491921510918708487721100263340041925696137737091813482445008592310996036941231437839037258129756534875204830931579383608130008119391531577646248356650613417913565300763930980201415377161061305707695392749374515997595900866544006977973227447447208545380404978446311336616602492499358820995607466356542735483308685884009646797322195741124643126260642488496787381152944778461749175691860485445564603241666879167566726609112740485727949871673068869014282319508857830766912308983327476735658690295833305645253234794950232374617709452597082769544098822250202625683807729409266627608806956335251520538661143748525307193306373402598611409586116029564494591760818735547851001022381510354493989079363643527405128839061418188794332244178046667499484050233153393015097290136223847200622486631111547078826613383322415756583339364455636703152614755717344674012790263714002041757866992026531613619173094994407482474488188179889430479506649587437707986991886839993939829252390568280094612264430260670109977088617703212220431410887577129913184420077454729180897980197125003091939695720226173128645090244620721034987730672701806549664456031542567119821949463470748534954545688113110365651882040439144477009574302723409286464999341752171484685207407271979870942043771336673648727580072584217295027372627569491138343351622857323096318512914544155635309357575062505020135139979543520892671205519774888119841097886303102255451748328443862910002481225202478984800231139489620807061522183871785816747220701728828088450799794624471309803657986506363449780335131604790121455813837068659497580389497458308061259417287986677720319408146080005108881599034175252139348641766016125924770679833753359270170897468888523732540886435445405163895874175127055642771440035577242452055784995649920531020634525429931205934650851855709860871925582713004325529758845824213156573964383847080819223408395307695547060567168617368857804282779466735557118627684176431093428089071834949503730568841368014791717298979489376860410265463545141130214475048257048233646241736178813899400361227048421897918615115717335118490707012663588940111228760025414160052312316915091635553361195672771679315340980715384810633238069049713448996898050615760971280687043170763528395560860307080418492798824145412803901806472083422853263774067623557496253713848972509506915942237448483954621871318076760567417860488738736656354307441823580061379423851973283139029965308434049932249649583929412326908455582227288472022523825781396256804668237586418856883362648560130558804797414679517015633999686370445743883778667307092212965278533872206360564832707642937753155942415895303744541637617658352058986991008599361705686050886915908686066730892890883491063173521823723194525277709192240204709889352614151156573541550679466654423828507383436034273826988691557850887100887475005083968743072374766925452932958662775176936593846484405488325218190008982521260534666952527238985851771743257079978940558153294047160772958279825686808078900339467458272040253508030823931523001361913433048441372038786910182462151211632606773880166383205420849022400602423980758879024631816968970525850632900608626255726902834938009865113979715283849490787595895755678406644915202392739522120360485086942416963072287785103451652547076549007112236602227833253203749104956033675572975974613622695314801668719826569307088492798654848326983390146387568386145559915581067750379334120732965155192870747956419741889927292204012468658696859637264009320919776017110648484826865322219133380233631838499648124058626346578174404016067919702231834708628038344849915332401188117290880995505839266277704031636957810904918782586644153703940723285234700776818830426956227174483064303777436316304799692528013734109343489434380896629724977475855343032787381864666981180346261897769165115933395668421182118647621099344424465652704204622646240825718643994092448792833356802413682638486069921919654788387351862486349641363225071287766323947840736075767043418897002153789034013252839537294992452496248577326449137095987268894554575584361992918301691536401119454400890924244683128907921620830722825098681316895119389085348010369128951498000071678894187737198411300841667130367867579191059423591531563467539790098690934132016676060399227703366258422711780266028076611718562645070143874637637202380364921079430031412691962756807225114729532283790207077135911379987554035203797681513001925640653657495111863693044058069822392341758955006713876494541828836626025692455788550113457100535705230023589847754692321521037587014531852799735828071196892826716037803591617533400587552267815953632408879427575470814687191396801436856246437725190946736904562079501968323792173159607681863667199125975501910603250518938930587936731727652184124884725180523332004251002173159688821710599140777159039377904119162926684251364901109339605558631510335490693460886233679665237987412901392071079941619846868660308346535264223318478179649017606870620601173519426893030690918184127674339720257882752877318688426550183689090590041377298030898660184945528020357439321595643784683315941390171339462766810294830772977696949209882687934536368115987408676701997836903121749917734760528922075215405813663121024393008272867790014739149706149467545134746029057704253288328573696468593109502206770666272210899434645191079696050612458168484153927003214676680315025187431107095078766116631375707113609211526775338167018936279498837977242074493283115983012395574297260317207169949742320201632791763807297873800520836331828836856540909234650996166890548649693803677657001790431184226438103988405050225460772002888132133982636430926152867999685832292631916661926654559076657574567653774075273980781972830537345263879062210016138125147865770221405081474565031109997381689236448581094055620427054604899825902845422982511857320866367228935847394048709486541832393809190515593970913970989584748988207600217816090367857955366651808797168208425446861074774672933814613123471173264696329640642030862335851953199226078598894679058497475946331495070627534178246322352002054144185785453663880050115817201744591959961781804834224963574113735821714920752010454051040221062362551066493143706516417625010316440621046713830748921746011592338737677388503365371572671687164062392200775178118043222423661570204305182488698221624989799407032283967758344140577342878236357360502350008459359869973360798375588488817901974375276715914884469722969863001514907941133124170569506081321048514116324014636364103510108031888022498817559706426671683612083063631014331953828870374211540282614145363740165889763606681972945200752558558726322584607276645441267159304652635879068519364211673924242980667147277552765735855054287539303125835735224642408348613224717508904652798581907985803740860952418128958905084604996673475990131175159611085150378385165587126691973422083512284135530660859545126239038537473660893942665207644229371241050382803385644859114336360858234265447581016278595608823751488427648796935988380488416723891883769125388240822433125443982045149572289935186251081354457628302040990110784696167937289368689060372440665522142997884268732876924729787831562256896235278308729748806616185354198122756772069755188916216928442477579917959586627487650597833663786422266143036570743702882030956398850859387367842024144233926888185794709753154822434829953061536208422031478892027935597235943277984063128002609331169340180453889609510120594121948364749451837775287174790445652770213916673529403520039101406802472307395779626166033098154525844915876516713222253411571948362125360354363560829720001245871272342904553267197455336300907926971044308081123012291053006428851790990517461738965365220353865451261985439378084464939862454963696988971214667315352009261397240761049061770612232156820105245267415986997054846941918252679401214716510656599369740656643727790313050560103116929653370114705757899459021733845962339962179761269576192572801054193982947708507435127814439679094796708322697971229413391111577960083931291930917915456595260522334446911916007709029652898880895962415670283706186252769800775308255133031792409254838075129945871938163426552711706196415952304150991123934475682014810510322883878979524861030811868593239524944681275981895318677365788542287458187143134741718361965519651699513829476453007098626671811979959349477775141679385967130307996281221114999623902824056473252831729940168341736265034710419615826087903436160752211404269610949890946493736495225531063536924387851691527356780306516021844519294789570119865732644472969926874155580754500404670557243575242686774487382769170144558130062229656740492906512683041251898985409382065427039808174701395046659020456468212414549050012550485949710506228518518567373321003398812204562031292883093258299227300533202787765273642910180244224805705752584175726868055267017885767026461026232802168374545812743435082339674795169131143559349330681761802587528647940738731504479971519064619629176237260360190568592324975946385464069214973864485702829417441421324952992772818056158619832602437828521988557540828199890416079128252861912058579817609238484434132979974750138655917976247707373254138681819180540822543399662199193120731062707351954292808584614432008050206292362308545411989683403442313518612322901401744629761698920924080943268947926584202509390065851416842003233976335793874121783872942888103036403292718967779672876805266722894169221322171503404153867171072918188892095759042465994256114270342690922212450525649002127769212746046184251805888212319279995114830971389793312598240535261548760897517673698791778618484914125658161984106175952978984956940677552833276120151491819069385871793662652626200380176524115268719706782140996539961459798790481844288077787827219437858712141653488103035485382707843694099328769647931216165438156778604479027046207954204499809196433154355726829792270049970738422674487326801305297553248858785264499501314364807060076451855589875524287818938514346187283118210027253777616195898097679882426550920492891019968511778985505571013724704787220276284216854999695835156568897921443137678657319045597185305933201076339216084111880737541217558761376336324847040016144307104521478987647461800778522758464278130896260076821598770922662014185429075549020036924574018284736171497995059871688846283129240504521721567418434299231834665130734032832018925760576442760531738995207253751446247744126721557918923157645399645066678203757469532534713231270360008288665621048571395928358193349288872112872031507229137834488070252672120615335369462680375239318579956575586807561604598190577029689116621300194129801264459472959020046568259899418703087126824781021336571011675041979878765672557473880086400819305067698359365716980762574210745983465558267536591742813908715626274426345968352214786144867407327830696522859764421657000195838763773683899681587248398126992431732846668115595490489311880767098308874731745083171752839455206139746053079821945406993958903107811680164011444831847210745293076950474117772204371096332315666346474337334673327393906709999775304093680360327327258934635633577589811567419247633794595077251489718446953594124683703516429388763727427946954517658487178558473099874167303889346593541566092412422920080432448660730507003069526193887821892182766457129688673904713265234977088695702057472090670664774407622690756774451671060780343703256365413458147595046810520071527609335583890891358445341578527396273819458342382150646584602495758111506949008859792823807228258335623195270662752141117590805501160040315468556336215624724226780779703364645512236394282638182552191640925528277827449561565175301132846285008757174403717381721856483402413599060653642908992424295196290814541331676040301870963282828560042909524763275545144987910557599931932414495260646401644851158730305397720831024386297301382331903091841396410147804084543459892740722678699224159333365690243358996701766643624995324277656055181942802612573558669868413177851817565193153092761373220430164437791034251468952400054834191383086721955842995872925130916188810843169474041669451426190321208435270118327926695055235018782199588340020079013854067255326377378598403820490978415660195606786562804380796249604429561237505951809552718129370662881663578847897073804418490465363466457146724908795155467181035981170258469077390485932426630887728361418607510246468693642900586034832715554436138905655576535759173746593186218711542963744828770551652688980579997051409590056672793579095476887557268574558782044829936606597245770917488724251768357959438896212147779238806759167303049784623209370819280992715289779064366542696193541908805913066984311113933381804423835877505584780343785765887770896433319955642066437554456434797147134633436583759186993445218744494278328420740129196918659097082844856657993249675834606498392881289044098162244067980075884818658507767728781456275436793143049798504094917424170968477958563375905807708249053075548152572347723922302467550799491791935615812187418556069641636072539526176806902523079798863756425852902822197666637874104973846106429617018188804400374053780672438196029085724924723405984750521363167361715817059317817190017110573013148301856130417477396504077918719481410088184705940037043252403529302722948377571273569430498831918265912198689298763265961576323602766090206636327777318941757907705501489378651648346619134928781277020809095768873118742761523768924362865907772158597972395675848008928630751815324634824731037007225141637476811102610636665665612849000278382190609557281289973443527308525309952269688491513067968457144645177059151320908908978642068609623282058448665716427900963645393216926472373305479034267900668342842402079068623613153006100525727410086814979278552209610441316353090144298313095446848437571441617878594375688281791095433082477218679311505901642194773760849334311213985440755527955679012004551345025221745659592234949265714427512898384496399371525850479437495920022817514385132641612524059819478182420401732288819901541863693496398014652860400243935516603265764113427460813312133669767129127974496523139587191955318980330382696732235980302368279803220865269990451552744337999718964660356299468121449095102155836623663959646226612553143005763528601721585863298591736756280900759207014315078039658270170845368102892888652015124761268962187503036813022134342562504767732621042969884405430626472160107061184459211981116501984050264064525474098773346436537222340085872454374179533721129036972094008678518688986569076148169407056524384680503312950735744703844880453806021594329990970377635591427011803850014475682689611807436986355164670328761504038017658127654982441264265276503255191915738407276774269785474749517145608658794010689611072259160749267271089110859730327815527725905367980957388238602306292150110244104752423948587425581421644114380620123295483796920747687490204806496980429495251717014388557437794246341684552854832688815129342540658021058701406031075701459783972564480373180368519860394004502693753615342679299647969638320231512216975181751509062397142375114247189902711208392055228355814743193531308812155555377653686397337960238191692759356821591133363126845114454221300010043456702591796009459445943980482536961439261204370976618843364294906252320258415448064921521485852091211478876488631830164498546069436974799600004860121623986199672186945058456700536970748374951314902218679393024413243378463171927134041937790084804030237452589628501658555402326690122168015248641545762211800021876079838374111285319000506147433614799661811315424412413461084364422985565184093850976761346201885213876962702388080845350876180998895294157278317848322635076697048339172829100139925479971110523317312170398736810420844461573718505822660654658493805429346244871078517228739233263491201913196102590645300220682449784419456555759294113384640176355492452789527993572791691928675263443464642306048895094696801647333884775407635523550689162993708811544143644219882053179350759238346798680280654477036037573687366263060083589837093085497956841558070824907409864858006549047181744287960436977680463779898437578289348959794165710812647377947670579497592527270270762286182413414206731683537431117160706384907152680871173988729839273105085807106000230219657422088339056975844226675715289553162233967803168977385424898632653318493105002348331996808868776705064402683214050188038575460939467766900217740099510336819792407335555779788696301195012060791502925384620431432101729754349297037774918013164472617588989212571597313657340412975242598849985961890854105924414187634261336963291197197347472562864965982558039654069074693210498146115126110930743296951128670754295083650384351443611294348796056733112652786176188652746670153960880326651194657738376218532053342187691569943610975947877804991054031503623930197532567428842387762408681676749330614585950628921170115458271974726861779352005010228922490506402101515992326417628959941012387835191187644558589268110720250637722419172358926552604857985210573879969462380523094543418771177955867464730326230442376768235548538748225888645297698250827503180645345169613548198956951591092523547836293350132199380079681486259707565531850782214757333820614185197447054995651831809176382298799224626856136092838029056947824068634443871890565557960289701227634912974033891393628088697978120054236459287556214966687029960321699842370107250508583291266842301476490292953040065420735629957129947888368015110266734763983898516730225392184519470189892349850186007901184087684530561413932135121611845686054592853401730451175426549337711025768638084793043460221608208619254165216337904241183551635680654693568405414730855736621736793596207173828193946479884911482804435970306164310840512595637081682089712481283973818724746776127709027872652818804927840917087302226743235563031979987011574701697107132713907166998521704899439279665283463800509239687111545210021955454359881575351681350488355905173339879965431313805161036234228573842987028554266659275189658506083585733498102577474996545335589970559865853599948285554136946240455106786933535631110092147449463005020390143532161092926831622011793447914831807313690054795846821419621900980774599624740109832910167018360461116037797193341419212024679620509759734783270692365635738226974233439575411225593669634844992838421572647247887577323742302206841425352885980107763696382357435491860978417883635789658598211243070046694891097440986554833324318354690663713685209429458763218663756216970132055140688093901277036091902714862193738944214132716459935272180695536465258946571439718817714901815347711261436792141748948803241737055968855601501089227198588627442335120282876566489096894275463993306062885036619073993147634285568222634694882247747666725824821273137709923574016562249616556638660803757951814744479343396128202046974896592894418826570719668264724229121608200919744351298531659456035896012637069067805288305373509727222589811315225578362184251420117746024170003021427185046810652310128243344320411395634386801199769475394199530384806999698999955292648166522838152728601507040042882271803855438286228626896897348625169028175066852462179561883984902204893104667187446526913373727887212885044349177964928304630789185756453748228719968432858005594326647239178564207994314160768858148337883586549238052265060943159718813464005324442150408724379867517456559288122991416561203278376238724114231388819245733642480334787256819251598651560825042962895636632006284874050049434019929907129385870511578281300529757048360860339489459469565119476343798786957164044389732937972636920783425352964325238823487647509941082484877475243824412771941595646541424332656646208724062238615328978005765199887713984887406616082802307289680602699222153711846962739121404252428195849209135431873879845141068731388890003467379708890113057297917279435569116363680604860867851953568052557963891068428623007133730863523975593777421904267843466837501483366022076746184893436196419584860051774614517611212693151299134794407458006185156157549236555351462094249566831524385872560618905351108933704185509698288237435311931689708743368951519759863742090123821931642732976362166189166159855942555255022648939437053625937462770764110355450831246136516734266299362828621281522302284208970662078516119395219499322266919695624418533209677331141256549531332262669227030996728664174899449629672142412911262963842462132668915944740724336205851611657928109329631453184183054710576637536455076095482839135605296256640943643306564616020506959503963172029059260708783827103358684172235607657644459017447685654292511657223288457536842414189893531898391799670383883733201074269181708784566202900009024069895665799044969833246703003798776538804676847861684857010367678946858536522224062902865417820107292744394370496172076129204403746070480704308647072546889828903131697227966321819039272041869795060595370924135519485176689279898296396295776780030930868957719496253565741024833150187504960821029317293661151652477267710152559315082255221051950566407626047395303999788354815826601901195589455846277362412467189738582592934721696941917645506763283706889517666264930842502800096636111127992864218723102387419859100279469338939089474410592889140273325836936051843477513521376240358639379771151885767033928835294771091635919442795420729165138033797309866064983072807232423440638191785892064733260159744484756914850648555406920407687847596168159236335683878039742966567849579958882194488962378695665264933594890270172163874970974891408547397514771388713422867440136532722904169789278565181165455462977595802089460238161393598881047536723721879789766878469523416131612319391367128925509236789908151449421365861648826136882999981255885378213370343075919102497402305374428713298397238916806863853512752730649710592786989850035505333861767072368365161642018381433305582140185368450700304443262346973028710635579663761371799418483616009596341828262293339431623973353223465017263868933818582492716145715203878910520016677886685535052309154192378225520098914550955720788036583502765630820724994735999053788761954389767510974054916397115972536276474027600294187091721809507131091623401806681670828850076341721300275344756845153356296932065959610305218121602983381020642540708652958668984069907503774099032666579071519746050964402408227936116860362455191359433952144459509972055252120568892117991107687439487440598975852323688407967991847683340913619141984233081500640464421253332498272080576422991757113352996664796252385589154660795752242937239909360653922524569900498122887677025335539986993156298642521216446383093735223216568679717326523484040845686174812479322995381811547159887683353338330573576322979906468187321010271660279840166673501666272829637092342261896539518983231497324451286426191376557214727355358712012959772591148128674451153396007285427949630656481757873727014209535566506528797451081307729251948719020388287280844006372812362403553938215580512310178656991687059038655660415066277947134777907084528582105409899268510354038044194816367257652347280331558367495589090452662225393851604466936732454091238408923604424411703845320521154824342075994192599437930499629268785548176108681020970877085906589590350710245948371524607978580195110280129253132984707054994736397662857504009779230749833342809234193173068194147689820273334972073289758624873639227443309923945951259351779148564359849050085579366007688236086024246287408907088841415708216333385222817691642744415442123515860976713854933196831531738742174073107119092166516325454422708677365075606179715744008520552603647590462657665247982978638777491688469178563883600386416414713111526370036757785806915367092037307282338208911157026405476779433724332202532748096792329723753370126319761318130874068178921475557662708171576790970552807193590973894554004401169259633653639662489379838771172688960578588680954754718582917473993120776078843129963486379052912622638893891754749839490358405014114990943565728298659389814193183703294607349306279083496577854581955612548547319298562788952178597713432199600791435395103739108246139224453065671464065120268728471176797308123751271779719869646397334349981853083757972411373616308904648084441808198681062303835334627336251172946717685422929416323300524631667867591029506065770982113745422217901150935220730015516335717171597762701612690593026918880360833471927821332053830569795587416224969984634191871780143092863736050605583009788040961990948911123343321136691106978457212459698016185471005435264739694493599294856109921059795224283079788126588198112623668442185014320203702326348887017521970605138746358805102522301307701796677170359301302637212312356353546990236833840687287861457896535942202140442489215752872203817348901589366617853999393695038682055746750956975638553036609252379705640304024597942390988305368663061422451453094126505961582294049156213272731141208655152384575507592990359174310552020940747218628041198279280475339590451283247824941514957271399359233191015698156139784398173510587664613252560120731749955301756228396121018269860275740952825432358944564405652181348062960414366480963680574403120155263659897539166200893596401562868981392730893817136464869752796307490417782158549353627803120599563811557068238367020379324034021737624765034554232212514462542808776352165063901419804347524242302533275059144077609995940754791558056288296314466548390644719874102372212985820144442409114624905497422459889419662393015197685588761491068903796588294956419852500362973923120344444615086937194317296981605832380576063007094685844824822410899214580221215385673172946126240423422792378868795794625263939202680836055905904842324509571222723780468464885564706897596366129434991851473135296475644487737470755768609358409423882056359744986827379542694986141295983521381112482898175705495391946642067951823493161205737040420802466701284962493248975297217668552342555532841115008988611843102778352153153124579641510383678621380439186589124314026570886052037120208141761212316040942747877745412546365761939539674271194135046305318150324140209057810122454987243925779319307058743931755664314077337752582534193773226485644539638078568648507271823332533967615662440968635649499390917049219900554089825531569986116915995016352401064543694585186549314987064728331056406180640207473946807067587481918138182950533043023871634025569263492907481396055361317753716547850521439382820586696565723242455141081062395106553488897512869164028054062648027680637308434450102968385317367127230477232128714784486614933110711396506232782532670156465705780088582535487360469481462096324024131322510659444903249640740178955165438918191676350905021673107567954437364345070000306487951509342197973419499114145142451930534546959002360729415467024121994655172673791174626563010701484497950153735071530489324252325792980513983985923947204026789653591005011540009193591604486110307590884098318006975388143492806979524181332138574530950022996683530605073188546824826626119530010617026240769337279841669109865519057358899623483260464899598082686701940217635187334720478143371607552261815524891228319207216285657808972387138093371775502434285164904540680749270361058898542478803142599171402770455920743919156421224530193648756329380651225048464569870309673657257744538975439096432395508765651106995601495003239916474208449202181332120206126880977876658182414883319423047045664380495373400020348963799238024579442758744852602361579885562113888886314108459762449647087713428564785309014110454693842928253802514203501984429123642334517046926145786033446528543697353322970340537414854970124497573512958261638845781714085052852304640676672393490788288321089905484998918651515241698424023369534136491525282218215807706690912103802699365609970179367259241359429040763969057425572864509006367814530480256185886201990539945662911694195242398134843235317005669062804718235480733061122389131808969467039420592698556637824945399852935089555689738606000033034861578698619649870936865087540865964663070563158647883497702087673418407337502752438295775915394800026207544097055872409805741863371209553533430957626603801730395568372322502617618868097044574424250144007020270476501053149863965044628040236121225450695569633255853048007364375787196779347997490216682942200380673801193926537944486474543296700380452825550405634015547652410308212881541078536078321218628327255710434072555631490157650048935816676568872881744504617949807504045100403196760247390649880356217954658085226597377394526364522641076476339691309128884743413303779258700157160520511208825910187391902381061591370084389856171361817512874935067469392423660411456503496922266088292741431975158829470529859187912611946535452169621439096547169999486254464826284334879988271913580605384704124372308804163944420645583060999511981008865604399446419629981324593827511901451633806934017610831429797709004870687324794293712784207719146251998780655226710095806206784100572475965512548191151481652888278885892112188524639192252524176994951310013819811646053114408829901525240253270390626595452745314574251527428905300378074823434847403218672381083925825620304280855718968272421911418490650685884486091012623636786206895808655844458947891575502784893576807214490798524462464727066105386077234342759218962355483024586122273525308230749855114255295627705461474191866634630282220959603855365127027387570841539573906635554070702183060501495892730088441233405391794467736507511061375383144508923185711447983637464217227226822812003876736131482481707913065966697732722436208926297475178895355160730840575499011187565139347302636271692231058615784773544534474731854742191611848020042437398284990043252900299567577567212999285718544241360425122930490347180892661543976411331412694522148367525723500670786522599426840674973414059499068486214961403355175000162498695379009571622921490575508966675375854691317678825894263571591710048272607694185592081786349534017382471207559200711385080604303995394781973145691844959073673599614899561098715051910290853027688476890343869236457230170668696960083244910996338523467595149928655093441300343468307179367158176837095958682700061460180702770427363236449441881140098627009318422756394493074451022676913251484384042115714270919424205982348711448173740666757004357527478347515971238558567200434904766210988294031122729267750646859371593701620792716288269914265278537420515209771017110255814563202065657835638679130704008459639527851567873016494226665105839540326746481983454041940961092898240961713704067228116582195655460937521320388373536070423289422030799816844471870748848907524589245851151041660551370799231154675524549231758186534372047119468340174821088820167792377569417886884427971373289904325979917311191417099487950365524941395242474526748924784374154184231510963090163206717549954250479575476388845815242729500342679010910881334991871017348558351650495513803877264008600979498627007043953734634524990128925671145090462004270384212295370596346577070105758805244988114691186475410172368888268327166374441393082831637361641256036982509019067037211421500268267315550579206372311403133613483871985927023338176503545375798041900303505200573624851875957865644227067083681403233702454740502727162425003742440392141892525902330581987217400120888494235232942995892161175469762272323577344466835889027191432670558453055264005749401317496093459510138962221407918193893555329018255940829473649095265554832255396113284514049451775722012938329392839886999988262992431113916369375268151010343351721852468489707106351753616890690366149433566869555275727257119350578640990595116721807847906999117764976182010252752246241367724222225426066818026254089122706864423713647119566767749592946387774483681084143633664348324563899849749019255066293190368072829305208534824402430488448280474441979647934097396954135175389191078604157606265081817292745117315680516530228483597824258108798461784763550337871213221015569593246914926599851938531467079547113116956173698598697078780146670112021940094326173293677292410222703607278053865604893085646040295837990414144739199116871308063215263117953441797296491786376023425138008585201095732708438663559819787985585480772182611337097027075496732573071110673409052562054133957730364559882061014011081124396143727140897100424004401066202805412234133888384709458760437041194948746019190234516609027341978734839367959382056440976367079252701412710940701763543986239300915330802759217202320546288273895686738200309395564480501359813231310500647879978334791462131582085994141164686864338598902693632524157800091653248603527163795152952210661409772962559993134376301657650882295340472009230764545659184500031840823651224008723040839700716742386658169591867609235211251873301764007236479096568771584856618799168743466788565917940534755788369126247167144390797571018326468171942785138440780868896598443994312046390054814599586402732926541039766277421659234726159191726854914132548435896096443954013597919540705047956609965615641549883099380737959283723194647026910484456968644420595957289733661612600633551359331418634552414254045228720013581704849081963773662701938373433227585475911244304707404067850862681203765571549914914135292135521183723103064243436575178322216750632027360898459219278419057678607772537349718735533735259401662166663281861759333210339963107817402063894163872065288116521922364309029250526401874941476562804784096177515316234360513521405224117098533618717059260319201417293557852135029574150825845471127029299695006157340605671915853491623128844866308380653818114983596627138598424513504731316635357485561542072098534659365040138992323627616661959970644313957751959593354120768413294237502286955014930576856617012651287389726488530493483366521760680632267719612025623991617304350140703917701632026028797250918801351199677896084197196660227765953002561903927745815860483475838688139664433217253748650057311056097620200290603817502886848852237227313812519349715172224067488363275178284722972589209332968106862789623271111823192928474756517030995268683515868357879108035432605321306819792966966606431612804347935096216085913101257802787069097199641420243969177093895158797124016124892350327396320524519589518071438538124233613025082116200860022850244187807403987556222021597322220529476912858304105314328827197808888611842205993912951663542023934038599144512706654844845448329810541312478625448756921335919408450325619356218808397482589924773028808846174466022706499582464579191867923023835396658340323339053011563928204350043784806217276640497803259483482838106314509177824007443026338850563918489832776384468469149115564044817951869893594370521008689710158861375830257920523380342644371470646316673188150363830235950125560266342098648528056017479635674733064920908174832280488185382725614255200546737568520770143646315287372299028476571289468401169492690009887071103902996638027156088820519203138667858702251682289408211128664511262652833836469928217126354852906054515772434137187339173785394574386916602945586474910387415141748280909018275167768122732721788106139664520838315295081231672937592665229810555025824744703812148140811799522390545101616137517727149463956208336003033199547756163245317412336543908427965892498539091649917975120247235203206604799548351384723314828586382403897168111181375698314154534114982701700934740463526098500478152761517864873788486925047866723425706649596747270206940364580507311975276641274235033529639729569860010957930419264438428376634361472284291283719601554888985722173268851444212980217672413047797282681722552132212448635238696281078298795995485589514577408683934503951385131094282540400287202323653908823270979897454028081277765941747504226516690819423305537835478981551529917613648070752719939542356724569760702172998162846718186466929735929287156771929303151992057430897653551361912683598353662538092979996853543492061621409793591647334753247791362900880589330365657605903998826164463498872498461721448794320369692222294706596040344949338636383289211543787601365984269791069680642398772080351476010637693677471780227511253529905966818088124078132108325430847420913287448015872145141988748086805084517902287343717043904193714137660836227522501142575620492868223226545014328583113900468435478025968606633906750410687786776608157150747323204735547986504636812010580445764707286800707279325864281434453226090096745047631590628941539632716774969173103810957378007179943071551918157223145650566336141660272649795715651855919672745108620877095827154564872602734726258770014500035939729390551780937109354209076270482302343796343625852682307090267913547377422549750412008676133779298769027878478793809883085483623917538658714204323252867925966111326598156480369512068589118250220090725916817022373198435376128342032317928730352385432656800695609615134522196237606125671874399971554972988615488888537273267214007341346139271442502744945806668480006710687391292522565473347283497300614968617362284536807186152964839548369402430099250003709439907176338430155929718097218646943691011638857121810752824671721142075388899480865870211219387480077429290570119143310566185830991717112548693083823609636199344284059693088508826466548588284383234884652785792159096214272138997437095014823382054190181417411987807975660546781967128874583539768136102226351960820790290550222234723386908750812827364111134913320712627320136262638658480775983309786348526453104925530088362003577065069749893033718825541729589591581314161712780964780000696553060420855937865037736024329180853392741618492437740827418068862893539951164984798090858387051121254406725888617087983774189387417046016317757827833367634936891353046997176257672332482276625219203813968004684281611103484198643433836039952668448318404676379830553423955889179826629833553666786706832123883601066063525019368618254975962551653006841295525986925742530627346600919157972177483856814474534828950503345348087591956956598918213752088599646348975546127886389397623745587348790334467963554823596137197257310500245802456800472851761902082187554098284949171288968998888273274908251080538138731518365318083153437338024429921702521583591693468632398400171588912085433410742733705235610992777801452229539684157789599946139763531506086672854634737208539508605050496362639287879328702013907535987318179715948211993606331086078458335936101735850544938751113021143959936129659179689138054427718992485055464606084744814438031366024786004654928247881829227371129285337405700375344667040911986846665684706201367534728066153699716094758305691388822161041483552347474604957549002726433007137435319780155821093507368477486539437949422531597625468494976605562019785308035139902625874046002585646215904949005035098808500005394880528844768762065865029489138412003049130660780243517774795640411898358154085481147875046909960767632036888495235227997645026610782153074314377701485712791759485390275036867023243075647815080696301472290552709572251710652654085467247790590448914372518694054668910682290576296847308741150777808343623224663774003815268676661771140001374598355387676956809098485103899293704598936764526488264556807936376533394608222908679554359856853735591519831620164957264802263546566490894948164493496538700781631243055625084026353626809932576150390832812269894685343300908977321327140195739035112401758980331031180551976262925674780361891492719247682609499437773741317917728143260362618240131721163872395372445945328080919394498174841701531481013418436782340042798288147659273847919539049053202331292859025586784738727830220115137724574588247770676605825120192230049354502790048952143947232090278089025140560233085550983486584933615592602196894671725768281317344215918690328855987611566878803998722715729065104687366993412704406387927960676165543119568591160524955855537981081049255888240008995153715214164187945334267292558295509084488322700055021282968133734902094773170707535363960540718921941922105944131496086991896202945185717443556609604024983951315557089422396041893361787533987006654011027429893384710842193457165049619541585568287470132707592161547787698206147762680913129851560174147994009565627139947167109068065072813440744441289416245602613807436110430592373673669626066998003095543803899065257606479369753600944305107351511466338226401611859433359833248584638237272945354111006116780036677823867151140911098552760554690093598814837161904170010105443805954065209069688269816303882946275186262091271031734682688106724453797907340858461041152765144164452582193246866511026603380658477207203455256245758075549946864263355825027246117088720275764649371857138893277733541425430909100833918988457865280767992426796691804192638124826924736287077335233310608246691894306913087288050666770268917902970605286882851317754339498891204969509538550315564073469079794863537564093125871758497274096620736268733696788664166967038311508134081407851568432496386844074019435805844619386307807281764024560159343032141495927681567215428642327430666834024379531273533688945276124528449746839011848822197203738122727927221550425938596834689755234399539780483207565055662753287945219551220387367749434862515102377886307063738604185993519810179612183774040673419817674365675837019383265521559542786475178210388868046165098505924001289123179840753853412745796777390102279523721914260051858930723058738583515537134740033727403496085374980687147698938523925781138980326296387732067728758221661834487069082249859464728665926420559606261269708358211182873608108757823807224399389913391276965290730935560172648681735130157575677980702478349784877217415241891582014042970228624299884301957942997704123692540295988650809459819919611858515950171987221191054660488545259762731613224408754795025955144804846962974387237955962548963102524900965774419649768535914624159639220993331484201474273502461323928090721671304584581459638088345744141882098282397174443961618764400028211200434102874198640789388010476922314047829109062822884627626264585180973237137201029164365067436167684988019409749429873125682413889725403433748404285653730935130922027248729219119642104860903818669192889814522229905268747911400000241673498939880433897506624470410351116554674828613216051139185338178306915298882958877802880169611537787198045220692413916117508492423908179774799487302633043486611999855252322676381958243919639479552493106080382171261806874575161159019492975259886981239513831524302969602998275821311099132143401792965792228493865040252673319874965777057099829048599455580040254772539203426497558571005610126249239906327395818827403590005889677634309230958498584863162716029717619311542939691765632135656107581021811868571366048875687151978419330606296339492503128073409685542173124607875206878656103822871094460823861704074517707076779144577719807865807669315808677746022774309341610269736528086179323474940199127617600004456758363692009554656326868250517849250180633336246513115220052774024268563302960099648041508235649665915906331653981547540587298345686972707397950592821750264326738908488014815086545964711411403824795488590773702649504645528792841683360247044298738985825498500514649640541428585312515964703085241687385779562865989206915917477811029261438886278948225482790496703649589747650082723306517721858701782396267793361462439340579818075393664235125404772231991284019292398508675711862512891282011812794416434465256372157104766349378493239980449271330331547353306027321908483094936788491619114535710717869273565422493452029054156672886096292999967249884083605724817908447002298897553171886146790774307909520592601628718434818937202334858808004848283099669578676876042921697030415793202326139672707185438119912854459113722811838780112371993958884251035231846314621993752409638452563255901976626852072334747003507792265858119398045523912504779627600729050585712085579707519467143579785540170390064202775913973621058918423933117697650286700634493842427018224124376540468010394927031108978120330893632215827969267821446879529453955212376843376239477570726850605097294234721859566160705290842960458237532333692578267964101900697739609926879370134897084381552143470141643718783098469241579471078430943256308738531927032803201623798370244013470410587467621591657578254364424484675578674778982667145021099534486793612833077292615738563005427898045145334665106022678219477603463978602942858710168480962882687117269368802942764314143277862329252914785780844287787671638405870416607041160862655574067663497454388241911867381850012424624192434046392240514338358779106462261407222830954425722467520083511111782974258864327989291122431547249921513386943246439825582414929806801466266549562080769126321050571262692183500731203646011357726801136074873514246068714083270567120302659477737718795454275409431522987623319754397996558229821877763730567724301488687731969812076406960627599945495593113725832505015496555512178601644777810818638346986581583496305199144244175239473439937525752262850966232661869912010347693661856063625660414691923453796461449091903265151792651793916275903902220359633822332837147760299613403404749740714824623785056888596483579892965872567879625528556582800332872008848909368193422516140076002019365779680231579376311454091781092952345538105590810224923730310049141905391963178008819992075612383811858915883802302562017849731358988381128684389533274830177083497742333975036447460193976833544594628979954653188569858934455189402332000834291939759258427996566285774594116511454475374222344064634360411174514775346981918780578588622084527567919795581056336050101918816651000840265505590740359523902059177384768029669883059455166971564574181800479470089471454066743629827532642302355127976369020247849942608964619267429646885648569957617267058543583268203906580085901895107117531678192125340253070033607501282149763286013101709520725764231637467270690108880134473936681091944839838783341371148526301825783750328260196572427720176299298095145009416319974525665698697039447574271318569794955969367880988961179498558823559181907682624300476006108368815947325971474697506798243522425451292763890160820784354593507212551897432678102130612280943946383352868075831205954646541999118957417176865331908521026474146644054837965607381262171369016794567495297356550009810967738217636849639852610044328713212988768993826337122445933299171319512823607259130464385548474912883988500171386556502324916146864386615689896570641902780938796660558713294135511465727161890538943358946548849666264590628412818984323438304074305208325795197674827485098637853976464430902918884212835672623222196497769110930201600301815386922733500260259410568436018678006341693695104136591295618871791349728247886633847550878115473985017702772314019045435338171933066153307762701776426783187502732183330109549610281836714446865058122341816950628908938415232799987511431302552794693957427658422170827973002617279196920211048798480321136549201575543206876208570822618186827937381358275571255298571165857363849205821103541757002146326988653161030172924316067590484372214688870442052171924890674408990446786079582105791736767152743371997740139328388408672151276969721632667402228811712331154736714719646117292635655946713898105344644232877334243810615701818188682514485072724576910348507476075839402857450128466430693685402799955207521618445581719980557674747430287733228163770814314481779020509156531026347451908481024467570268562582868473757560608687970279963489089772092580606658027952830078752523761037467011713432443572301396517332163196175333041012578185136994085343849103292011051154891718100335428989908319055198685164327844469001528932207703602890322602273481499575491196630419255561594570686087966927147418598281567937419399534711187307372413016074338393916707190590584745789904626976322478906771162841888450070908519819568145271880441112199228628995585111917964019095220100152886327633707532287545745187360302566747430209128837393324737778111548920384338696962141213898031803698138050339395677807128400019801749990860475923283880308787462105064102212563911354216566945724695590593333203509598712907698523563744295438633735534872955378931365625230246970815222735420931455071176809228101660613297947435673817058782901126363661890567984873437386077572413112280196702177235064705991625445971583456104183417867367413445459489368210104425716672149713912805448655193508239338681571686358874086874619445901319462192392378930039282418491465085972372983165642444345467462582599780524139195620526213017713124584025828083089783833287895632076908537238229211944813523505578007718923107989215339608660089346591799560598703464714995293720582063931997204982454055012541989034289849395003233339756053834790516526459260986821420845802661798469488643176804849208186988433283330204138846598114746683655283705612793479141765550564070239719744261471141854604208352121404928590397950950488968794438392315314780431152240736840301537051948324696857685640352819409771575085587558753542728966280240723325893987216648149246174771624373952447230198106886489619156399497991142196279453723897248715775191467140306555824213066022978649625960418351776582372848654734523425142635412351843712660485048845521439457340152793453767305016064234579189524510450021940245701774596137778298793662802135764224804225112099051328970696314689588535377223046059253266400605654487512838312083016173179554282385166411534306861704720121848005933989160547780319446276170762416241391487808556667840368803887412523810920198744541287343634648228926183144493074475864560843360852362026574273515462705794214253083300992548927373836673675106109751909876612930957629355264388280652072252034043766860810980181586183838627797195539084821118445331614967455031601261660769372999938384065735732933981484913296986973905828752600833996520846198192028704563712765728943845632911440535959768892465250252820655447557321405083797463472192401395065406705360869236579317846716514403227025784581620313819886211270894198797331997767950107067202900042539657075121091908892947851015367044996428102711036466659052293884467837230873680871673473777926278048243573415010815367356396603716717676716766646637563399685269838919279324192931320562621996756343694068363125856039474767858432260256552139393345620289672169728446381869766869089562059199296643033393127746802278897310543929689407240622392323899293978816759754722697738541680802629016372480241019730835435093278198901204718611438454088009641706658241724794380093323424842150044371611638565050445281009248269302917071262948233041886826885398986667189857433547854879193380679137966204287087034121855614656438118286303736118712223698818582695330786229211747412653817201933383176283542986294266552059277385869868657298727445065223754379815153742340730200065688421390644739047157447873883019907846536142134990597394011562725570670363109112971134957433971831456702046264183478246658826411449484333921700877001235905027725435865604391308186889277760897100899970855453535321322118387577940959549243314671849024062051983370776574833215840721039058542436892020834842038811070789795395601699967156244653293566699135592559998162603645681517124913648017296158878089524124738761644528045020173599304073412343666992937156571548097417817516016039672011391628349445314853829798101331097047245471018880124213746622504114051799272316987441549171449609871376744033848008177666280820160412063007006053580344742886017273204839215016273561524317786057360112387820460655273304091911395736749581661985700089403450981193329784285352994042547054607511897127953231414358222587166322012276989929186937174312356363704386691612366739681021000080226780743442519274533969910371163373636508648223070122836556224174166673606173453547215045837678902332921449103750938475529348622895861533762432095975208403593337296920943434481574084003240048805163054020976223600947258899666568270188613958174398952542156563340817577728624638194066074231648452832255712156678693172119235985184003455437972317063729197959548951985705683480539604395750048870624008725874587170738527063854849968166730356745891551126508633749346205178381628895685486700427302192597319445760797032285116822873716930599468518834030915608329410586063718106181388111729156447672922280395439335730919438420502937190470935573812295431803936270175534902281412772906412973739320029297850580414169253907868214136755662142006384866233907650790363027224313281698149011736626747137736751939625742793996644073913406183800211421120790731389827960703281497140005942663688523499616916691882465094335134440046927158228549908224036132084990945814837082854862495327234953770201140370195073589659071150969844524694749158244786179955215643192522158247344817368928075885208270166440950565698410494220614146474955837956375437063179463587628251236316038210404525013267927077483719565845274445417445929496795583044171900210183130315211782908558058751892627803382097103400200141981722705525390010364243043729810590539772912227868937530257510816899123052817486197123925882153288462308149328014756826724848896248911809261674675246077939198526761147553424028710458819366921713961034128148082719346797751072574724294918252280498366418312023446313069389445382712327550942819666942498080328676014656424549084837037772037592866555646403085045594809902956352691879876374527062962865010594026091795842438444993088983485220446948452836458473057129869651388235121704244181202771912356933844735195824414063491820104954991275500790807714714434381156755886570363295938629456329810815516537049695107937340763247180480905236418889118816046378457248051620464574397044181630669518505906537458060273638317667192849438775018319637329958484980908035251428537972374873232122731603384783858485999947070885716069097856456148445859020202163370089600941966759091954346971092422669504932263865094647977028841444074269185906711552573267149845035928894516630102819444822913602078312615802330203385716750579490251763365418551900743581487478975376159804972589772011049339031310431388025502223724360785629062009857397263740225107076572512422126381576625003723206376395023631062375602038361410001896012949536960605364454394708487587018550266701385717596849967551078527634240659111216047961484468418688017835208395462694880030365306714625517783007374056495580038473549952071686673747815208727342126778105901519447674845091488193835144916941506141384284378887596687977768540611225269475910957543444681226259231499237590806089947890406272765631631144772182930371510327211676490805282077315358091022027673082195078176958730325661147579325615752845848913642753583150767303858227008434332650845502892589242139969303728078856416520430321556673810948170813483092938980194936671290358867104889869613021714994139663969425912550411500512887354279389355193065131292015473759620421477457352806343440278926295737060800563944002495213658361676053768313125062675454083785804881710168444874301609973270020795240028970824350025329447771716969543511775763617419845122409679944120127693277571204805844339865684468636134923105041578460235162318160184320650025332823784755940187578013394311457067413478527201760846575444256899179784003293052066224578383882450619704882220126859986895105550039157994810142954205156052810302296046252367931715587465530400945784939065286285082147072941484387193913949027441250485525839846816999104897772521883038600918961856834306776339350380774596015401710296149625643975062312302218624344358422819265691860660432480373125195242122362446462544170274404488852795023238624945706806670750358632004462957320470478099249420042266934493056292945147552099612592434307127020921879493141862294651551275280703488052402667760270074955571270523129525298142654431629526769875427419728402580360025402842283364206817462373075401263862162817132211820232435735101483624863725010753395941136165775652785709135033696588450898696375482978861771843080394144780494170911102981110232985328905097112487007150639136194358783640492798222696975864436872281843845037524866958653055621632737084580044354849255796586790846177757824027793015214188735949697110174607876403889519518328808128580997701390675062640549633708790409477980678286888020295415716352564218561033587167358401223258270765620233056679699896755827546022511141202731765303910236801854757034851258457870283982541596212882752010939600457272538849400594412527836824019177731696950426552767586952992969825137744699376017777514370159403271655644024422509123762229009670144196039218098840207772126128551860645450262321450432343050146445584844690243292881570122923112141545530004505044089292867931922979916510443032435487567994145358264825371663354592994537326731892805004466884846090367525045728414915681647815829402668974535939642740249541277746402888274253385669655908504714580117970740669115622408107804080377096788977030167587803934107000057945056434687417514583191661775504939298929460501181150844320255604883168610987667984845809353062929224628707291904832633825864448463580882378843392838552029874441082003335083024493822679208738048684016056296335646133142157383723307624306481775115578106033912108542631921483139091054969232279656319002156997912661886226771323074804590507962862669317206718458442263604785529139174638713451243130772344855377865350224731490221718794232887467625378638397188307722637935548039177186210165666769844095781220107288463376900942797588735308841148565921213877695065468487336838894359760972591989838514893698720226793336575670029884987476556540951032118201350332613695767537117516483491953568846674237777221436073437458043268789684524564176380115086593880138677137993256490658191256283186361755459543970093181814211076420663120800002196708738757104014648588837980518003086835002992951571842448003510506811618472762557604257215555983170479968074149139175496481326801202638143524543768816466208597206828702416119542709102279466161872268904413991294958491350747961031506415684971419914047392436951534148801050582038807348998206948241579463874827863694502182309171023247416211474802273626913789472997324833821068638435541752189480463168924931890078553343933335043188018490547717552345674469032464648712690193257405476422681823937948459938350932786646850043353520410764602849583453477120213187167587321425660848721742881720453017624216822414693469304685738751902320971319913116294361179947803581492069716217866817600272063135639991431195614697845513119352534804936857964466811495172854011337945421268598401392746163650550360039257424757886747424862103880176200125027309783506962294461859802574224517003373349793733380018477998160790829455546885788201168186357798195510964769767585517493521327732515613992304912114368687871034217565492920787595202175102645476259508199801193490364330801199080110717197677140188497139033669764551279347461361105766595604636559000485562171148983510369214713148147417081954949468229103169154627445712218224360745490379900151506033732129556095803307778228059144938915706513904436839841800311013890398383901788575209752893067646020472701033820174787786715316249265632766474613672453240484481772426148908930939180330723779292513714496704301962495576297163282830955282089843188274237538122747489016928048900855316394127599220515649223040868916421848194784281069512903077049988175834590779413115074491130553957093790991680920264912063902898590471233723065446041464424326496711772698318785045878628018608938309131565689792804709625296634457841915066832155315831583636255325382440429552717076699298665284143118685331344361166195176430177334143054238468598465759728092310111349180471447474558092830208797615435760881402823430724082623188309176154847471074557042355777614144604589969273402409290747873971757822637068910257674789839287999494486589253121845742970500318236956972529920964253431166120414450053435409447696501400017959393733056517394954429335324108962793454652861598636289854883990923074686660679471455335175906168449635301730010128545048831312940775773696165092533471515106836458966222460125405025358049664018341897692876396989597149605680683825063532460697557192907422941462040708931356273291746223570822651250580272115504232493466347736275810772838653708787548631011600675376906774320935451377414972747262071398856264896892180827522883881457672245904748449461335960806415601850806596304659917888967487485658584392918626318307030698495679888961435880255246190313483320842180166930807461680997684328752252773084283713360599597939233740390813074901481121732414137748593740905606841043767649052788613064580386674504125287750149308103163378812577284136495479672626760046693185158896566274337563786312089632738892089730853015483835653480832941256565215927919432943799223170106498050223613802341872859557716038996364919749994137524818550420561834488983868262590992407664090307576692408303585187097748705749924400883766381073353469266233431984829806322601816127641290946335333378509327010914143686519697180167623348396935671604085396179568652682235954021121615398791283920907496128944736328440061581943666299559426955699974771783458761985779240653108694072465751637076029284293012332010282549072428256057247367971264612144319114538059661407726306214059362158363651189311723836421072121303231410670336243891028732920937502527848130031264218503906003686558724704374606957146273055598940221552950911783054607624574989373531760157353674355216360383616748858360103425112543173193785802437569270058529318039233968649741104214070087731830763061665177168052703628707338628147384435655146388267616656412771635463477562327093070347596263105824959691207287684062506097673474047375442907563072111261647035677923296393303254500339493190133368565241290748256756638556702462565376250247568359365168206629545725916070759026039507556166782758562378326545671872749882020072205037725808564450032653222068964771066288262248536655440826487034049727971435981264389202539193344899970673532651959739112555682627462823394346444984824983026117074256340045789227271712974243480725275939686415657162625306265510406532861253595299545944299443141924633584938759585975260928509816891232498566024534510383068714183409981278391434244640355032777397867605124371649039217086276971114546996772413925476566163547222952375206711425002325158485684067697846532487874010282744856709263334527718403503087102190627550897099962969999665211903498049672733315386122977316329306555949892262323335431831794645638982914184441357167313120371036892246796495228461581053177533159551001688394371192293006435150850122150090280915097463181027574614986127456565224823775411396472505885720777797317046652332824159422275199765092390691848579075328059503104778975399519902243453316197427384597949054074751220301409099612205377489461348480097644647362907551789297103037817934610197466398545369858425837966513359801271242914799680064117161494225016594945296691492233076039560872873616983638432384919432263939872683935378718616451060229849856697437836188857095556705738357012926650933960996634520532133222431138486979421085800942314858841109513660423394518191895078143124501394259230584724657052460955395988169993554956851781619965548957061829815048508621895839775741475513205575091630758508361761411969631055556342124209085589141256149356801284568155041260656504742525667837350894140951803996438307243063070574530461426189149301368073960744339827928598308805971196017544387055934700096683081865079268265895785746020263583492413489146049081945318843076369326852200576319420589257887628110666059214956302450727005566899173169165503940920048115840383929405242300623405860472229341493806856666360040219942519286504927070563982034227762319981090332260247332777869886592354758895994508924406670955623173069746697749801054535216060339735481138063514547918590302829870840053655005262904341858613485939213989566265420188567766426834608724081603680077564781195618287682058879623820080736288853577698532219942516969035394054329967763440288821261272885384206794414414646326000241273989693109099970577761042292587032975887695064169095379147912008477190306015106752618330688120145642713115656031726371311411215715978927186996426136590374002452058418625659597649947314208217944645161135063130574292312692983140835598949789569209628025489567388713272699549205076148385114067045665771090016540467633451852851198723445928736736068585271194813063489016786757725039265378463445721278396806655706455175141546722881773412088382916550812983328339195930023728628092534911682233778046098162850895333873503754327674447899882551586829492878096824788196102862165987418919629108447644364731844578474032476931971372018672052270912448594193043326531715699194813787708646028765695681758920994407737815286930799917733502670670059102647568529850077830171963890871944034635463726702815071937397307034421447941840320560688040216340130413577451465237458196451830120271176266323063678860819916425096351049394113304996873460896141515623089488851824081454732589425515229441496556021077524931368443429316973967248715765945032577405037366844402028820041316856229706003160029478895475375386429152893061254282317528161399788323828668923238409237643171396868665642712162078803000798107108256350392332663451604136594732364638769803074176773723430097041199187542580453531356775491631130957448154126105476785536238795759020303359061743877694548565511782178278887857726443387489950773783155079245824898310086245122813963664356266920441504923226511901196318955179582550083357696657771857589351702583065126198923050077067724622963129664489920681572022292838750262024458984671909591874262965183667052134434438340153916792057305945388116125409250083237615920807917698066104774816962123730665871722363393524798268445257770811050550735644058602770655501017774159276544320411343521783986898073420388693130780612424313418583083915088146367830831302518657939978872941305805124483889919349229001375166118305252206763645539558805976967679226773897482899929623297125857240745746410426067991804621726937239024187588114386928944117224672549651002428671723352831248199912348135839273190164092312620509239079058069598813511730779272918070908034731586588393934951688456074738786495674624308707018068707387906545713499063677232457264119247642697853593740080030145393016509059763254617524563462973965807270708817988611345206537707240357666984371121494945834472535184178328709185237407183362485730579121060350260516440946435602027432089920870866393147716903160486336598699402049494114330885728934982879452793185546389746695969842443657666534738011588224317779458805990016444188045885126364408819636440879515420519764282637809248200108891717144590608620483086284200298313457837733805241642625553920818614822656241624731771018231616455630612628709870101547237611416580575571237051684025841441806792849246433244297060285926933153829699805566560825778334460193039432805299017566080583625144430954630645681662178741770389683888126978127178018581478374004328838156131539960130130091767289224216386321599005656552135294978538936069109756143943247434077542462367158544842080208495294328523276625997720036801926179201529955843130047672231549263172962813161734869314172482484957475447409941883917954853375266283121017418155112255056686792948081774495169810670886587413177891157372467230251819572233071885615679754246526370439105644519686913709500889850136123003762935503402353047321507959284773055489665256871799581283414413975652699427448210322769117299259909617479186150024673460598048207241623456547826800844845737556624999360497207243293820731133937190643087630604808561675501676333249082780826561963560562727216397750819364510359452584357257526840618702522926939577866651013545696129647245576181293480892602331769435292187299076593914487137934850217415306120282027748189224213123732758122858150664050744782758965293313102130724381013083934001277100230240452914856761737393104127201136955739768081605119556004632844154308578478599655693121434900895797742187815626611053106443695308204379527728419812279990835892317032011420587036366903770581943097510905736488522447711213409488245354755709159220681453654551405663356827319991443820279786834001124469308686629664588565802515639159792485742280841156967311504577936036103074071324544608100862610910467832644300024232013874343439697685373463304315506326280825366970553489183826805710805910932521372056924675411971092255817258584832617000403541074658269233359819490436363523789081045468090757124043418425763849989103824527612248305311900629826737275223241180436862350154813077168450812201107167750575795460956314127245445295088829131850391459700020385143318738115584009800683184016391928712464052053117975478986731102165527938327505981477148612214990463523801976080696084379586755081764830507188132943405530499846078883844886305714793331273938779047926672798220036167991769109990913270490475938031232678351496306438055324166006300544922559893860613178478527681498870939001112133935927871222569532864750026255163545870069285590415856473223562170398660996864225511757963306361438984327230414616421127848707298202220845840088787963357740803304866985602070086961150402442994009799929401083468566593878784371166942943097758476445998633409785648225205237449768738289700581138634429587182220889297991435998325007648289507760814821566413681909460826947933482913293343866415611562180892438484699295875208158621453325895301499616509657310075307704571315841137357661458406428755359225453954522847091258390014076476961077019782222791316078776211294175606529351020468757731534923201897826496432411500639358500225697779826332312882024528908839319444309446870302628553897139460227135001755725124755457841796152401668228870371172460859193609175271323520964613388031498439904493707114772468624178711787235255394034655720205518919602763465546171950176185171926237190737165035807674552945212032587472984849675610872233982185448001915547219801441665057629009146482903823815940688694794202804574371165423740887691020364448806682288904133818738657332356954530373648329686495763806746484499133938872232778114867491414412934596808061130887184759866545401281244816110760707927969927711153671109292101209005753700236398078888164216502392742648228864518716788360876453826893109287133696341380922021704234457498942655901774505151408653506005623874568683973329415298284548702431089812461969463917363230714037723612263073608880931355199718540707118066910330315527581969747349291951368919760524197266522812898115201177926694200501922163687127672196496986670556849730212602301497044723383036862461391908984929650076071976718941458730531602646600616053298360874455636931364795419128202209313908451880262504846078563974537463036802126528970676851337077260595225337979191234340558930177584521070594183574474722169827157932590472543754395977022092743778759086111329913578622520641237294955719397656651826168574993493232844234150809281700229351208834192076709542927288833945283097014517829212449201108771027719467805650828996339190519226498305598993810599859964173024376954259230850824478462080317411276840438962967447953267549725147954599737744688347212462539871858765594002699921626093288849689045333609060876279220081731814292407307873099853286582548494670060407183888514202981060831545793138538517021880488086835878277424763923473963834218610040565888315418734375063926531331988557450943617516639084176065832223847961550259778382513035853708992700390498356240609556150527870321787907823831714686303531247523474587393148366537453863637965419518214197627124834001753677893708477659451164573367019735926766594049155871744371177006639201853545559936998698443004780409448703257520177623021281153291866866430736768799017179903880571319074157715850300579049480123535282433440920313155763576695509817843444728139131299347706004174766925664841983698318571467881013385356299922774179211737963957264390507617795275464190885839903437779979767740766436861741042275520940259231247222946393604255920912689486000100884581269934464207504405290919882517085554493509493457321162275605759563890986599316540947681732286315912258293661891209041671510444844288548091937452988590297152855545127960749533315942496662525049225088907208683114505500792585941897419223110705333119205265324064452220869766267926708700991671135069204105359249798745234356725211739050916133205980390985106229006748363263985612741202107812079690516576404884913925455192768118410583370122245351847892705867463182863799643631869602842191478444853169479204940046939269607014458391227214485695537005740924954416353031162048470554272874352243755438943024473989921397162727415975332134712636244145422178839383277991620401751464544179232261222390998848754254279337340799479414771161434389121481953109465627036229001607408725463957644523155221292517707134014774360277523940662481001270976779037113044275531733884469149560104551805786106560227801880836754256821476182950992770034985709617592137996003195204954364417183836818250382951049192706606662153814104542740833307367741185829138439973354345414332650949957060053582498606034902797564531490150012804696133145707534912396567050717563921597794570224277644753307696060532209095669536110245171402257668513258315096006167052735740271885056080085442531757204076841181062737500067870353725956366157686959229229107652125356886486123788404394470969637592684066912572098911598834199940331375269471260362570526436951866199753767021350453020195791971914840030382976702995062985289830455408646669788363842956306998517563345644910669901727321683476296360522316644926441199019566299703244016018566021721289150094935345050387641694471688173708306906914969011319780054105488820938917886038381730344266225509171628723672843622774940997353197692560372086719506185491462939672239972382191114017585146036726553501010430552683955793364362508898754105753614776093116821479363648208419413982074022322712041106475849931345423272340610238134091118684893115942634123285244613974641661364806339916742411683198640191519411464416137575467456653421073024894405578499140401024053542120389998393555471515754623694786749720826183232268457706246428702474390832593313203217316207212480790680886266454021127687093559338222826980678288781285033879224548557054139827616319973136317783605999507918423864538330362106770299814009237591023355044870330658489620400600396875529799361056785277895523232033699564456149358285221803308060122437106307232028662508121404084482665961640123007676348108788947640189427034912818200970051010411769785681483231690115813973551742157945689263197828999746666229272629641095050818875712352954094765854972097380761758064829976854908344046180663758353935423717561183870553478153359097407621919477311301058484105661449616485637191696186930549876520594479737212161989690970501666540467464819922317991072028889990315432073358178511263866703717940669471270715998418037926820644981967583032322402918842553833807760999194786520270224612604500519650084668720154821755218978176204426195410355945337448950488873976253221169745181402699899107908602620010948293275907969590503246173676606177719072308306416303015107587693166748393223222787175058780019576404014519279113298090566222002522154647691110978791066376053019269193885851150599471674070567148482183287140637115984807136165635677954384534664284813787141146565085248458606787647596525605906176690241034880652591024468627859445785098412155624895880511385436754660196404813532116621873188287497506780687913845609473142760553075805190151640646191595434290092443666884327781874058563703070139883053283499566324897791277001831508185235007505586355797651984484558573395297439719185449871105988759649427521916435637104667750168091918891668528134511113662458447587099623423038487167548587405616952640588835035260335206656213942737149587019624382770400149317560269483729931199024865770351601557626100462939311797901634863774638383539789937014142359573506118044662774180312671472517067260646497731472798731544833804071304280196451657479291353184173444494300229401549154076201533621988378643474079010647635934880079666511075068796613806633154943875931564972252202852245996981961147095251902185903903284538439889904098275094299152902090273969932338823158419087329871214834680924101977022530040056217755803036379538518598518122723491266943306575591848655535875815726779168705570629251843158482221719511339797991786668972298503608635444710336522749316066782818838479962991934501428081069501403641021803679189000612101922413416653952808176230229373646905393608687698580894533897779967295921542397910694255524493680907707445335114356314174698641643965321814619778156847472739406527108781819177109142586875448668214035189636043169635612411519332082017188890505064071555237529360675029957845544553767345362170559774869038875945646352816567808286336334982329360100518646536190855684757258497543596911923484825847702658101205178839113894535404713588681455717457088658580350952972193973246666113357665620248855389034938335737323459857961400362856450518532605807635871443524644014879670312128198555625088575090606847968401012592132992389000035137782288977382522132254029871715870786199524366151047812054345047574602611686336846199839033312062098513911434150301440205537570535658023623132124906717951674982874838651835676091106673829114353459247704137625771726900450342866433866118380921649692336588986499853373352449410466856626436640497942265851279775350864871701939368129445851697752152358374307242019999236255423837668696399266077235544063970813210739448525501290138259937972787943200487341591587834605786998842697949750778323609653753457523646467102793330669586766048777190436059840958866950442012218881285796683291085581695913925801536092170897441390841832562684276687485835281706402902171666977001673566617833431941514549027029044276515990801860484441560056293972670750972455052769550719383190044875868221311431424505069703772792832985181010846116332971520564337145976742416232894261668485816696685929634853124897634734490362558143423860324963492764250166475840544488053775544788820325948817823204472237945317150434194266439076440822386476215794399446315585748712256073511904514261893142282728751327455422699463431566217423678639052908749843746908345175550861146953914791425211440867748574370336394618376156951672769704884361831951043720330801026347351588471747037997774972729339065674152083140322268298161303414295690616533722895553808978799156132328199920084942029750747199706343767501677731477554074750891164463900803953039923919865918871262304814929124236514336543785156867582429421888089388297348886250313566579522962042671455809232255660344658241383050891223826972456241419724336546943598966319673268186621558269409602737262150279700987913873328529326120534542457202718802140019193848173354181873235546763974015937541831701486331684775940709515157609777227963125336497396239975330415288022310323682651757635547416111319429221940237416804104227565555823657721765330350020530038637895346601745679682288255478406871494162512518406435560551081238746885481609723592130983261823252703132387388590965018112488714404087410540038074870233046816125494896707010573079346162198396100626767854209951233872876047502822085090001768756982400267226666709753908079326784619081654692267944146016142916078242013602511051211590559443604268443012313670620643482210873855603843041936425366553615537314276730452206946555713842490187086032467308159647101080476999817160913700376279671189353853231666344283229518800837634808981475309596061071410665442041820093468979502963565542515202166830895786097138620120984038827431636700374869367496020418858073997376702254288377936783572474094307805843342420775234970507012408274429325543775213960748779467680128668913810207439044393990104590429247906706283606213363944879493318285467517952240167161495910321553905788722388612723138798657681532602574121049987362643878632413135648837986394843854924491207487253361085014145008017773709005411633433471920169330997518725382625685269837586769501435761747676399384204902602503748437596965695070956757679494223387945941681063368405084466940174350267992584536204630473683703293476689501604581823984508284026466557513012658551726006587023311142358958065044366081908730792336018724396930854379226154728974946402188495273812146236181952171609273284754151377491758543973458445015397260488596293588895540779703412092790142414885819503584539431128362231805566788624122588351132752409284103616332439125346543394652970823566812846467418373991255930102548062643666255923187127217939604486989811977922984646735892719177610145448558354795819791974506098407959114352342826215536990788489172558868499972639672599165799079578937921672327474232874957600363046702777074598128473899067877833095754037182913938828970231397650703741664791997760136907188238941631726642332632672796601151764065776693203564532476235706690246307846215884827520404346632750978774246500039324625192166302657532985673379507532645488968039284496629193107421943001222939804391113645579335744329939899463622065070212521783693716152976360748531122328951544528555711894232451212055436387417467928403062173861829443446706881593403914357946210748482327432606915660132083886809886143930819646090152798740262845997760652054466017202098057683463251859699645300173353798395073570795475351654974161255398900083454215916592888230587794290438859620639957200416854353458662044160897693912949577851459524654638345594260268665629506862087761250676538247498369242181588018150896784331814212050765963994954691114514919504878098258155797256508498686978632780089805280785685030635501137542627198730569282594239212048231787242132104677787087123910133478037806388571999375733362131977458171027727923570180230315838645543314353690364336749201036436170002704391597643784043884974077393393045253863515619159328427329800905852568335735031468456320588616672656727250192139234138320164295725660129053126403894549516108491354374062949534428191743259620198570652562161946438648078271549298766474278405511789971214085543444054790515818324981791895704653938054646279801964573344215729018391752656183141484152844498926799505631975495916962100441884246395662170230706282666530923060081497831715345247091129915778622270554820611899893903142864040289439746861439315180803501327774876915133480863048949243350570861853917836541235190256174799330417888748799217510036994248965744937149458023395431723308978925785282533561936484762189972345371482302869921066910789714611895827389396375157078008820704658889071598039827944088744825388310000791086569992281412149635768957519137419612757761511789672526478080215020010945466553513470648779386689869007529242599312560212466204601627263490633411063912844483365719141585222577473703315232293965544783801535894871114970033331516925746498526802466870026458581110610332191438254694568274476835098286905304026362877886157124034827691504167903374457109233676712167611837066694276894859577986772951018213466258472303248392934715150301195656895500706648167115828354926400131361952522421972495054337006572033575372962450260708946783313869457173328120391458991167080722745928701928476748449235271353642688882328212627227111176976974420627934484145199202150474719752091923383095068749055415666928525386277885234400964085776621997201316499728840113161432078708323113347224805728784381251470402496724778831188909706811535122901674712608236286932221369970238045471761964237821170588088565030805524967829305335457166465872837419878029002328874724171962899764566149761096598141794321714877187570814056503568246953071815766061471048190002264735556460160754272657539570748507557083578945853887769830383994588882873034099999633763277578604745821404455999917218179249586293324986590078526123001444112962668446251341716983274723959621234128237265288455539870035043299792892818289626022954539071584741664827522183486686895689112029871002326341470197520007013032272656337690607646700935949271330397414331123971121611762129695789115135214271498946112722545199809614657255476686280292473813901202989958248656344838226329667246258550989878995690918658681477014989287550990372046475734844973489348239584303636005736306031974558695245391749511210686943474496773654626582413130075934665905856564468243994460126271427088001709861650687499216587586261846683833687631066240505695483358005217721382621260937860455852376553009462707911664709054274855275961546242515423780691536462951192409694457605686279015818950860682977424047154398767260586265546427623238967289289427929924803597704266541561065684804229960482054261369485109810288851856100593031737319122303232313935573606556126076019756080933404415799295013108000169688977207821627469284674905096332722198522064241515609176071911805454490092911488208647950444885014045406916517050416330135143521378008508519270873072177144629640030302014667232862930772982782125419060608401387902928761475770504835286197521603385306966950097186808876554457212773239089093740516756200047451200988423046196428674505213306184556961126276007957852742299746890514026293665042360855634933577685261186453830902846368191526067561505040200282464966436462829670423483877129121924790443466866849555452530539580849231837209006179701337675560993434406054451974686589012305979402568748218293043092935005407667306610591765505723481389364968513459789785324479617076233055046445171950314535539686486463725882339948090608037085813800877358592021878106106301465625185348656012849646859776197697935197016405200983893196764361666522348987963670612001106870052996147854357813692850550165763291820702471921272481560239372125501886997816486502168881070164592082957690371926048313107083406873846236205710543863672556314564346325537178111421870777724598527450005520792626356403199280514204541032042874390115109348367929801416371471124760221727998192648694688143589372410570192202883166101073670282202373104020352709155414145700159925691481259669613836927581455724939024378727532026345745701791201569387741987818483066913927465111103644635867956958580843944087615335982574686881695783743341888026811320119332518863039620872006960846953301959995182140334358386210863556240544719402600093858517368811958970938180963047773421271410685965991006254375965432936649815672751950775969964694976921965985900355609246493425994166057022788009146391817528144707325978671723715394601114099303575618223623921991205798219939867770608664225698319930176018090086014188775476960756628719900327705215520127273673795569529610358187674155480046762323423870197756361599187008065982348214934849047047872308762709159565979044289279809369857837386065430810653835609390931652826675553816828498807400607381052405869450718031427683548468514829399315058876524818419334858649633568183090863562691758158666791666207133734056273016362198377615182871380027437200129171110666567091800856906327556809889040129892801338070303333915531707697024240232136274605036399372083363358988184295677479519693662551605222017012669419951298267493479011110869695361562423618980138842414995123529564040769024953540124449682299980317819344308599991574039868981028255865473334772783112492278833781370873200354414199140556584368041207319752913538824062376845341776241993081952321938079173298232472561766188087213910062707021501705611535065558679751422206618591561943650004164972633404449572966408651547711430166486445514203993807905236224745002119091010175733408469049978547156436076967093010047539851737560803542703873907999694559938086412197693900649543198771532668429100952692605904093078954438092330822706495140348664548259249930342553296053944547984752965647915618973974035453133584206408172567254947954773026937921048521740482548772764034905539313171725581879967058569367956377160001814780445817170460325660858623477349175881123728197164950190916356016912190565956938386599461336222661170140459278181560858558864523549150861894681908038584266468830677217192225795307255669422190872551007790886050832204883850239355101068224450264301382619176491165238859620936230432459023053746975546219507388571088230976302375108097968029395874803097496028980776015852072000548272055096537787351822832999255207261048488468838676165476120216389418609322748808103119051944986660050161974231073953170562699686042939895919872031018042062960922542845550405151526501579281137843689030804884463714426723555945202732369203401095478044946890491908167593204451733891365528660793649007800709977364360493277068691459354609472128004104079701306364378216936032812612899543594329084130671448549682542986791222799247226714333121928891763615758876295888802185339208230371281920511437889397913851941326013799625669220929882970719760220873099354794665634994322443259477207043568669693302201702014274761948571742464852504051848809965043003057742757666505463468085317355975611497892320524984622236043829102140222897140240946247971198070735243779668116720740465134599839875898895850800295738656666479740377813277912004645115779063619104607220936347177249064245518777051497237217532641640808304492543834518935662635517336366292107559229669232189912759228608500642474315497004125744202064952871473689086755289847151314933145110259859786141719843012249298331975432100224581754603330213094615491702461359968377105616322269190845306761769837151839282866301999970223445685757684020992280599550479899526009319635603251583381723600730217295845163976177992153341087667379000848500196392974759677333904971891190729275344703941220496826388780292517092575031736582601939779478190359809475903621089520969078558700216689915484874457508148617858813401157077315338270228000730848966980864444501218798821952682811273581302251904758736177097104061894091316390935564688542990492704270106372994246257905127930183766232345724185377035586694877859288275423173894871177908532038444961084981997096029028441581645954534361496250874168698325899518553332429905287933592789426957478763448252177251127981326169528756411611093894028501406633687923886337578092660932213016256762887616628172780550484082578333630446716088351789570613186953098532405928362039111579654601859634440561574295945913342802888384741351066434364580696427122703393984100956164287958280564462139052355303190325224032011361139640599047377563546752874587622914498329128102203035278078177665915954758078679495303785384079289920699820363091329221778578074753981613518087436593515772196155102948193352721126075689708767026400203752977933354568552164151953815561528658829423181403177616191449092943240129931556551947211118014454987528424033041029636127410713718662813163081443352681592960825062220622566255861076830387312323831888032905766603934872600567404708473515580355391230764248547118534609087586678040039051796586242550028428085763307817768378266809679417766043714913747445983905037364664281134824408148699358775123175932683870051657416013349040834455947819618060448134601828365112533071679266887331285987122596228505300669363099772336261945228280410699802014951011079814766164197111572355645085854642358046975762147302803835717670917627266400859421750465442557151941528175879333559620512188727773227947925452405034792813376831785487759064287542271793017345659883774175474968369390881644329081782757523341613443116003142810358328744172133770551072585328026811951283607803010923457304299692772215195793701566974074984044778106729623447298593246001688760740016754489674864629993181223476320136157244986568901017951323007606910428858992601408103842643586441460284497314924139735775501621529797588467012481366376383870915078664305770327096949206876938062932090009995955588451370464167563224770059216895054950851742660334074952886425367157705378208386153441679237403187102783035312237434304464584214019938002289919210515044672465897453422228238416713049168640675375802611997191966466206892549672146909860828623806490278476721201122450444324571276479721324897350086474035948921680171881021718473083975353648838796243552944831087070091190260696101613134920176778403368316200504400350555629134525200816076553617085816242223922478784928701573582035029471585640042160569888176246224095481982227807563735415251425073486182904353828099966629842679113956136439901363701561572387994556447820700007617202130451984112419493362879564584606341877609653866682413996384491376994711110668713512458548579270626704521852220368748252774300788121203499184545653402756884189853657068148026061881025646385890073264297995118827502294139067245241400867447583437139208792837947990983827189632238641106083846513049499952286878191374675413209307100867515282377446596577853387036768102903845372311122896480050060707989594209579804295181485036110266418103438876066219057126961724329922167607168312921929406786721981599850315621636540504354168075926556157929073264317130866924283431511541099326711466182837698422530777614464210891571154238290061896952479041736973587641643744729065687198057677925784111056213212907936515465725243621157987379639456266414405164943741012109859368984286768706436791382189131881265383523615429191103512901309441939802385623363214162258381695747963432183645224398415793099001418040270769954399549259498982210180869045320220630920276111554499074703927861053733104948320218602746860960475576471101139815292862914014862358938386173287581999694640195015094373855555424237654444341242451213068069556725963173093952088926208748978964284264124398141604907945413819683922525130878023615818798047055809525957079287527951553278646378774771319252976127550600933133289509258570369402232661518018963862174504686926664415640900424081629791703726393060623162170264651955198316969805744224646254112212771805308379110756845086701633181657538233463423780476148396505100996575295439339508494459566883063818775597869499616827745851873442396855166553529087778806600935860236242787104116308320929812412491856840090022226181275409339590857821123558332103640455836781727298601754368095642782670570138066651863723859479308018419855873539052785437328464395144192140760439648569976100747224936355987234240719959805220194633534600350355846711371973814272960030661853769409576256609855450484836417252367450065448754409681718450160184054294123054545030439256131440931330754012487799696953271811511496213099206904441826172723038830684965997267261774778479772160190439567615959660871099279709777151289930216758004514513175679331110112346224452227693898166687396469736026525159068318254107753535975862733967114084874439016248505355221944859337808902598944994540389386274604428034372978879691039308530487676144673567836856112805076928723311107090510023317950229325395270955243943448195287862432579002230727568538772919811125229605916734492179878622922103549406456970873057423120158646639868019825000865885399421958748822546982228660606590488287150176643462843969166366973878468079703845859001204626756333629133155424779743396709499513272217334977663253293078565908153012673469438007719836784139265016116848232958079363311792777756370668367890886429396594370777338235926709502781854735618510087882828095702239881413338794479137576318714882409288460747081221572001679480190268322230810530014571671592356571070497526175389209673090753605315243189243614977564478473051817180789757864879595626772362662472863160778031289781894018252754535209596394133373041630312547166496603381511996709766982736434964459971523016441955447658478068570286208902280770229294573512099546661916539122756148377184703848434919707522281644238725359380012194119696644572491563044299031145860593407551490943296845723109274116643425885665054361070484479682658245785399315994137594770084511082158656410521980259097051207581734997982209286594016522603453919528560462467953222185929777702728933284408494711836227493997907646626712452199390323426429881223150159814529363538190225193538081276765814573261344452155712171744004934226694766565406336409900320586010114215308986069318176668874184948516653082810449373121453398156929927588787330669227660763082909594551307892559526067790089735197265728627608517439111431488886915922749171057680943552515612477950323407754519417363677508846536889859625859363970937224037610321546768824189109613713854875915867096753266330970757832758539473239645155170854238307527515215757391611072041736622531089702435914172024309722562866076190044723099044133398883000320803939940294721396788444522593407336636929981431100199225068903970324513582928059114845797355505870826233827436712035619207405560904144933336357484961448305159808270889037574814273011958030194396833728076707201454277651570130123151045104159797199459105801394579113083283320630330359468643115266171669870991045917952773979866055648909801313677232939563917383884160054126801783771577624535646854084708484083821061387016032407455148966070846450030929517331763026171563251782321411317285540461014073113842380850281050221462392449599469375856098759662430479965854915034994048446477561207683704903972528040692317039114105598626108394424376741260761280571420794586440148238147741314484813255882513066397984970453087883860888108133048189838588700733225245352300061487320843830109660852857635658870665266677777176596406460634635905292745087201992016721410715243175805523180190421145070609650824670515859277120596428707714267798686760071595144683530573682731956179474201152320407005018419529211404411030368125184438041004086065209184176031931222093006568804412551220161057184674394779724670640284538611666672627317392477283339914747298249997764850898877937023536552313972981169075926280636939141848361100049182711757313647116757518030647814356336263487055420213373215554112462499949982952444334667049272551514176563197629329929058985191496481543717800659822790574344757976104160271415055022568922249025998957524146644661716474082216190364770660474881890976791046738120885148911915351503078247404817517256019551844703889801911084370741319127052409256443933678452030713712827293551144137671437336873345608019126860360508642220946450913488945266118459571269420832701021118948018531177591331685065599947105452423981843725541812479080487320984248062144789599742838456317181488630621275731332333194766185305071894425034884362861497432999771700758612983903883243343360810226697986814414436560197738780825526026637202324298315674141637097948747975177252251889787728754969476046060797384983403340146436313603533469718305026821024968393883696806166881938588358206485676393480378142597904319441233202968079835610446988518566255784097051506878198921695515824321669108904017098211464957010935921840157904472120305096285270811629398745095662512212648431223335885631969609266657680448403767753160910760351876881737533243666344577826468561096264296412840676064990852912980862176787429580000825806351206801806408165902748091961085342205744154583148333094457866166243862081733671170296235084710225194244835684160359929236567220362816874806561081285001089154773816045179104603579064602761436621863780950892921106153432011656682368849881524062295317282036551266413593255973553354757598071202295312516175412349740614971436921547045607662411360250615970471609732270151281189541689315750398798584487091120889694716322174374755430817692436426635662785269215747156945373539909390660519375769937633437629321772925136417836644149632459112458240486948481654633035856452180365094554590377841384592612246013428182214170544998876732523247369908244509035020237104061781559603316655338169419618566569304873299343213103998207449923997433138323764628093111189497875800562003447973397582611194630122267297655644540382193962944085326602879144158967271183203806755175695270364100101935342139946407403334675967149338686064386080066934420951526003097896830002041998280578091551902805492336951718812680146849423883663833956140992005708369690745320890352173213815545424919679889380073301521875897590533353439912819216423706047742127172801830462892414061986296709937432160565991979260347872368005407835885019955687825617744257105822703966748798513392239322551124625957853822058307480681938597181583648922726459453704866154016839137337940537646443275692665896384338504860994282113594135330365639660600013104535448832491171943139521006001460678252012459283704447407534128518720919016568947090957929125305756225761251222997135932119820602785102468976008008543903327310368582163918325429983119170172355413457897173079578923974139778805439110503569912556869851649397072034576296476215847732666331282070750210372629094321794933521191595564834110529541418621450830665855982298404894225305545289302212883564372145959649446727324219810863263195036484378184503436248123034753699979426541005301003946449038005021679643558664706521461179336789992181895650153064565144617700720754978831702450734766354604066502956220980413808155919598268456326398735410516810837404451202239067609382977518997326418365314196878729444692018377930970215991611859373103713694342810046769033560805841486413048098255058764900398252736538531275701650042932677450607408847894882205408851723987089138401745399903961058357046418991799668386352373833740955074512496058710899094341355920029912885501321996562420800357370032534994499272889110652340433356521763998809764592501333979286181018885316120187848322486184834607518516609844602410873410358008836691528439253909117819163872017734278839049845255848978311179604755564237918063760162313311966181377696682480291984702456042774305025720802843666808146434422174783133285191961009420770061480159212286357054113863566152541781680887605519164012116956472012129065909798642032157859832466016347762572435827875591104241743789188266640724267574824967373451499061742199311647558323970487435907489738705938138646031595218100721045650610970968644817147045849454679364268977751533653910000436372611409484040186754949889271389778709283061549556019699185033384072631657368576598786860448018646087386205982359331587305292026645395098015647814681231739941614171697611468483632577689124810229301647873198409774258625039644178320319528028707763761186854716476508306237712706505011892509173621875115636671649248623232100987916799398665569888359996083775991555832150355261970364638007494680834507289987092650050101518048583112034572989215057143736898728846954712682566811537638182381082977309690747319863858007944863795895217684810115049639142474645141294331010530091121232854486834632743960869617472278025736147327034664528291815187763908488489852593048722489126979866052113415451969448821549700781379688248617381542788298917405460925272037687950891053047315747222905692196978798802922820773887231530708980079649687105276378127399886933286119128819345608639774614514344136193528103481062638957448308039954413685668648803796269673096075549976106186988869963474108363089710932982982121085240881964950570548142637792964528184508537469325598153619370049343519348373554896958765481041319638519830572350446155701032149851431671629008374776052250793482086283172793021255800124617926718071022937179521780899630747721445853841901021962517256035090318180220069836101255497683598419525796399228496573489871812544688001126295761117069010906151052791709845133027203797630994083478996027971345379215115258901720004352046708983089219521141478554335917800481922258281611881836036988858852000825610549715159319698607534662814609484820005999836544240532555857159914872750856348179373674882802264317057281203507321260717842150302069221377300014042317560050439946182258418914998426530523447729892622111906745933497169935992797797073264162865322438300804248386793337359759596410349934390596063673779268072141562846366160402948664168142627517840418916620987357423413451698828486527199793867911007339240315925569053363251485052689394240798490548375623903912743863165312113612341137239401822326740807617911593624175007690840630417947483551911833917067033344365357298099642244120378201722240329478775988266841868155879435470241462107180162768026116661468695360126736656872816814364813793810905847433307563167522253123047136820376136146158730982909500133206726215940549978987596892708775553449181845702318645096400859968522815771559794076728698002328379564480472368093048198883019265131173202289368709489983334704073853394777086266211995357625674299469607628432639615051828724776716805063168433616592607667747940405851135202997085566274974251994261147496194517747877692609904824002774917381512047613255299458447445533749725882536861599094636301282883670636774401440606954537009478308581661120618194148367700182751807070491464213843454740937624141425912734388716065079607166860242852428085217892241764078092893723626577989812703552136371595491424674887174832882293769883558986154302993190981925942095329957714553022542770008365758533970340346356582356377759137922442735153741697876018091722425298296495812765056072927410063899069242817949430172635365516324336999528038516519714249331950176035577517657189777942316685148941905374014399456429610927839001104151867526225060312404890994797066855141590023422641796294764060019368274101104223065185670319071085687236502278448428747800583634942697170980623313577651592736442639907379420016750401296036282918858099798219025954758736379400284366972484943211334361002015952073128141579292026196470375069581570726579706405112974212568999772801883430573260425127661404890298481679741750843563183277403707170533105021815552794936085967713182553428717752073644852221998790590226602697429337743342184514626185853726664446228440412361847377650517980654684818153226079254945853457245819380951171032857600803618192334518094946644279173212236920496141989376236893064251842277579926303009926730818925141597908660948900120174108498238484022092822888209896705686088536378700663805917773296792785315429237420900349222656389512771353131067081866382706224767503054093467750062947766709140393557109894459995109473308164939368363156979279814298720820487866716163596148406099638397757243725598923985277854824330641774306139728813975137981298009494930066678330969926997424874545719910009559552294121629172086774435554941802347271226637423306494926950741313355154256877420059515623567318615753841893958905126319143791849458513985913894167621013065738205246640827449470901463075642636919002266264910890043559032313505217090291367986188849075520556642966784613074202681124828984237456627117869964677870284992633226755663887318460938941935158758127535918667039174148187002328328442132592686444531734802419654648888871351589005315139962025978116286776171917722197022500248934825847764601849366719674492875538173440929858497170430591117711736083351027320669749351069992827240781631851183003026458627684696688815685210419862611850112734841863805547227473174201385823176570886259631242544365283248951635320256723373235132052518714240051479820317556164603305917262692419924247486839814679743816923337314749833818848384662778447643729664160466672206717020388879821678567155379787438757854462719502027922383030436033225903579990731488211788744531819703326300238260529012276720538668370089376766873774620807874477960028127776696209601561638185107125891013803103935561816352113792491893588140844878601822309277509265505211450064848558867258319760490880025941743366728076543310676018199962317381260047199427236066583953808228005522404005489988226143934338116101906991306959116075367278987781048915921308943246590220333154141647313109166298989657214868266132355558728977790746629864149128961200531980500764349227966939428506380010633372761477054429677949388230448398879259519559582297707549924625316756381643796823256617796626052116424053562200311224602592444760241558874636911179247152155716817790161587730089006959219664807710769780763368373151055613581024414921998721727954968411540504041212029239746350057450328293339490308608474915763232395655715443576216459475226243136164411669835158095332947061680154197831536407824677274827796048149467001925344580552833383231291125798579057995110948657072233146889860047658645141258254760210424323477639425726238609309410387873582234927650909950328604401560928773199633087224680837901409991425285946484022056037049735911136405902883656375666772684948679370217783119047288457660221523987869271760835636311257803003480792462268861148221705835454858155804897209546108620352609482094459585573677108346940460140610211911851727356876083989648752959335910177829567686984653189994083157400219415208827803990154439413105932211640776002071332412535257368893298971519053253466554410386994289208573802704589881447239258226486217580893921362527322401448184534681969354219148150737546086394822640645939136815732495582332568329862418080550494670000583887339828589016443633487407183231587404715714650150518694623189775019044007667011920856672903901232720325730697984128978607256139231786243134321359459309094527367497756342401941897755856689784508711981991440566583451474210770099688108976748164301581398514420000733515699713538818153532772340942185712512605798847157279184416571010849706479813101401325777302960264215776924083471784191490646522902489065615777989591280307953941872234521173136873966237051782512189142814720257581802960071137579875657554438749300579880348662905360336276615348186925647902501523429942662938330295063319711674548769443339148431692366076948321083082840485951823914655974543008380347758013218286949436209098463667789466869581288178042168444046308936462884856147495362271616975503654816867762727550745451828379951286266426921053681659606773894977766616469165027660634726287391821450456571004020463280656791974308583215837440878827842551983666962980392267028967904157203196054527492387630849473876626685743668805914928805471802838778310437957620477905319314473903269943651881322781670476340085641164095601400809779099901639432157882396379591636006185062467285946216941675847986631167926722517873574402204961887896429017727766465941478731215467904351155466822162608092420447219757189013618818184365731775485529120634044134482194755715904317722014489404805333481943518680364727543163208805517696989140126841465109554179663358034285840741440138789486976562323973796924162059355522576554973056716999520341080547666292180296934623993233987583494347158613037675669998887443388890406524174961732648295721902371202144785841404408233218645235902675428931685788574532383840189035073524328294901031867116070135121359289774087335905821666442538176561567277768221070144803197675161059431999668319816772924547546078065215825262425669938029897952712762400633380216536736807651526198365375528635618060688023621577320224381189832704317401206516740179426625697299677374387579681308276114671003246169943476243143640506618300629194105715096517706988684743176529901209698954622715615645586661863412148386660541913905157874865618468931768752097572027802160855198460254804090278567230788582431453776285287313167517646479197467949263727391216618788224285348079286247235415774393384008663647628837489107232170444200686614775459314474425981940229016420028169902138905667576378392985801137877117356464773646284699889397998206760246043172131393483027408885611319556905224775789166698890388052705934812971198080929777554876671066260618150631737458828829637941159069429508388623568744060991854438687284190818427447093498576386657984301207452701009958231010068778862554000129939808391201322547259240565646946006735547208096191599299503804986087993375746808779499627465024015546146601559424866200184059268383786873898078914482120286990586193996590067825764753287976441275920744140025975116993311429425711283003384531194792758282694130586958698164052221345664715639865919439394150682256592101961469174295693793039746574761973114256937596296993677372912319786713255000217027409824051183826778327755708338223352040135632633823955225486136762856170847636053574135866933831415045679823330953413268011459869125900099441514101189150017128123104908342811768784581702648080274302427102465814094584953734554574307343304220623593123883472316860822996252201758171688321451939852125921472772248251327393722197307326227423271942028174241234826602966366843934629562084957666373238605146810894614110560214301707104305423036091018029820727797986011445981054535971885349899963779487228482928029493957526894179607666607219505830812777293763596535167358142388851035645512395609082074583411410075646069456389830022997709553707836083774205143943976389976678986011801545244237412121023689536166887025643822638525883296444032445978785133020041587432943266148370299572190375163291539578077606454574666343104229900101156998125327277661737002292524482621798717860162067265576065246683612274173826290678078122311719726454767257177861256236930764187485881614269419381400050040927242510846029333944749914064532933623130724636084519788521792642320051577556724498538060813695762956146268572256369482229099259618964183950100305082326812754097410230981129942732448798460253492137472527115098417583219952470025418712193384478436390927863292781313757805495047666443052565644660456545121899781571491270970424187316133973078307349012490388583361970188067178200510127657792093905633198180841509740987943600731376169881586203915727096392142269092162425873037578782549035436925026185793650982296007807520322884944629034214316380477541831408387835411309303820813502902153911968480050664144758108577489201653209308241018761437400820834825371781036122397228017565960937644656657157587469398961392143158364748190791150355306688349929290418129899130802122070038991706973328239912685227145671746571454026008139671919916802682464019081678897621563748708198266085557852504572848000106556414174604710819826972676429205623560678134758328884723293800510803748914846420021610860416355978814246944278390130880915997228296648937029116173786067961054719419640815408492539151412104074140786931248119084834363205573353614244601210805792691328739414322332527083631071916836403547708014664809793799412757140564727476292899759396592606635957174499024266214162164242293657214117754524360700071606941125741513497950461996560430866368292663725244460734158528914232829481287113245440884957053858891198307353500425089606467132905121817340792188368159894712468175729136065358892891575695041406941476996166039610723976287653124625905880677353560727527571431998767448596703523876139488602459491150654925947224959110172959043311423862576367114396400835685034299546574344550239244554820428437564182477395727466911833081821309726865800424352137707291054195867649774917467893177670118871936024331990306442438952873156967318674486222845769642933094149785428127323408933429446410946832731758962648592262411526870522435698555731872175500459141905663229540460708775356327212114360468241506747589848606752422149952948138273533266984120391687683980293340250150934517250689424920279057255125265555552067923824845877175581194837679263531254458943266333724889447451900342568243841850587855863189485390267641061236126940190992612321396263552970874792507003535279300800356146204372807646605002081617650570555253688735102909783760203619672890445767173375016907686077271674046104951625108398847110573627450771005213001505642801829912558398605069274346139480349446497565338125500492631509210615213497666369017556138494054643752294808590689884040152431900869383613775001086767836166850441558112749455152036976441682867042737478667315543382253499430252123607257163752568005964385062270350844103755568380150093131913802750379896161762480485758102737307733858046547977336652835757944660643321827517147926996601873324339236342674801685917559290514313686063790374685087680707199194818043262497441985392808458697597213759605685433220951076212844032378919666112502321650864568607061254295818255819046000393610125865566730457546488590562777102229159259989307420386124536499532601380153359690048200817573314866775168819986230284850405020048553032901674431827741534496269133733702007043368520901163565802344083511977469860472309221251357102724494958392021130097232036562273466929802749419740700907754900893383276451208438072392301414989368090730968058123300650105910223052900676086186810230505147794606497787723055825811029393247141268721113534666134646673854040259710723035377736124007997835735974266237377573736396566102437433891236726617225918343892878762742794933181143216591953757010492910225592108960015465880538046772381811629746899932441900911347026022909324228986747214155911117229665604936501109021296066252977772811819331307142945382999559818668304253126817991540080874275628260917269210799826990472265600967707397505462831194290643908057531726612330389909789334497199631223556713705761343682719877199581871851172302180668420337976171126275041287501779794023576464961344120975479436643581270593851959415950389843746489430427520265386868373442779982688610771146365162157676020419188103142891755655553059448942687073189270197742376980861572879742426262319656312237208367439001032276146524464500609281532094080004480493991296698546453834401173801988542287245040364657917872991709077814310018775891457422535174590738747022532650063270850647796734533694361616819452124638492254947120493972035238490821209963227826879986735417321929510896727253995766898945814810760476221942188638269935269468049615107399644342393739621400919113136590504223440903834820646645028376956505654345984070197476132657998857097417614366259734880417850017041625465927086328333526814034456551237029920565346297560735619213261597458218059038656030077356178144051106260169796163176800968619264689086419721369123531881414557022425850931985009758031052324206574270603039000808633875562890732160174118364727771610427262778448741296293591719646537163517109103256236106735994077009679018172410283101878892342766559965090382126706127690533434928460143053817359359197140798493572631319919137992421182867443140001260744691647931506460491377002472763164088818655772396592487362725747822847895175784144243280664057360965064042948512777318559677372578455976197748579345444004251393026647480721271112474582412871059239980727758500486785371869699624840158140990073823780205276193334238988289432166718201620370586381032924594078088347589531429429095098062948292886100900355572878287660975998107498198544750856274731331442461308914782986608846452285830091349293833455177465547084181591480849548107393526330832929755573577346355010640262183955786907915998090758227579559698880206319609227336155443378967986626559169587730676350989648245776153402064979294785336514549532206607818267931562785047579355599682557891886254284171903441849493410883931098034959405850392559991169828547911331845667057476017411312314248245195035534192729737681174853468295917669171577189483543805606314454051844250913629779488018667537663825766258003143937124749297376721115237414491959935656175004563805419650960572673589271569806645477716218652315038205132209756604697668171616443998594865757372054405624753244556682571928106881368724657101239939347757028995334009345777561940185332703902082968890430663564763612454114928151236325428285404422934315250224215024384095240179375940827690722271923342395906462371811925111331171081833098375881581481177019035217693538340313211124515344533464265366846124112074577972786451441636998026055070041950166964626848192150243152724315173455440339739520798934725905790897573738437768592441580461501089528139981452250688159313199710661290222758240116427765896608474299051442063532275906555510955329773181316738921246839733216130984597624298438517609300757339030776009249430675154176072115381378249334545177986644404403795488537034911668190485343352885385424684321135766314212101133180839467366363537457001651300281565925225169642904309084926125081439528595015876674533778025340393725712800496117573119650467333638759970623105686270055304314594657219127770777911020754042317019890592372129481170165163506407372727789156148562615097072747845781150091171852766956206447568872213113457257246207226661749280986887839697228906630707423456273732389369261088547005796637241312182961445826265830876605851545733557876811821475709726129197643177748488581780002161886841820779746606747531769920309092465518199445440357831675656362524046726816355045863195834143054484609328983267262829811438896235504602017404858641468943085700282126966463066481769662426096822459916655351206183266471650528375103652725010046482364569527259848796581495442095696714788276958835834231862598396624300030961046593172711342311012033139592675022866484272812958221642877392694998243513439099154169683272598417522971874692040994114831318995638038382668793581149138211303776858174559949616487242628398800644882811633397724086333326549904667567034713759595022573785798459951906771036302409398046721218207620851697978040694930458366667360860589142932226414264980490793862449814887256189132870891737831693649880288848488919653352459291488538711540497032343140485241765751066507786328756958956983898798639166992142215020445575976810959898179490254092097680340365396271878948258651124127234524234105266669450079494630063791846820433932609332002951407711188759253741993644367684454221651082119678923420052413165387481089077797896326608595728086835516765657277855123987256037089807812473081842761674877049825745356513933964205771651698685816664451543712641823245039280536568751213604892937232064921931918483535702360979898015325016545685235647604882518070603071457090671246107647504557005882346013499957560689255539466099715056075382169591952675610995558025488740006223522241868965630188776160267005087638834734865754704511776419708850515310058110391837868114565200538347916514161320418177881435904650493492286307280697993810231085192080978149956780918730875376305862848742052526386350910816912734371736442938834956606318432143714791274565012438534103999816420779398394759771682105530703680861739407875888569490054995460567240404980332013572410048416459730257129523764443668233378317883189447709145307174824789651522015771033668883201184553094575471232414430885858425826365521380921834525667697563764457988204018677264483252755698198425663352883063310678606385061779433417465779832057995055327861153502502561245858548494767029020415523633905335761043140612687608645069775607282375082578164910467364331989007264393615982318780383293106550660247747479349004230988140604575616432391218272057353867848135611422551109199465360227759903037769646393546919111068183865603339319721362809770163834369437468682195459710026124712141400616958440833553524177080572102259010958233115680920382153973834528136474058450231784654109962335319078646160244200642670262254750508615729301077728667284081064324741462438262788156430149415307775915045575172742389344617975412395913051134032375339539824623822563317608994254497970651688109163351598484493659791661260218922066093428396160716058379863026117777005240854018894388164406341829900966484784153164594027526916383675075698225378658335182193918967246893927897763141917189822270124082553760850651796867979422224769863355272312816992766057068316836248874277282865778963160181408914654691467697630128666541466246687879215862813628961688986843404227454804134670363646063419740800932178757784060886153293800677042737597335048942909925387669581496216372857734635520683777392905502312849437780057741887752382614216208271477667377563668966532538010499096870902595030090967477188421476693830032676855403474176236760038584746939392745572038984545024181942153853146019179353834676671276004684618727121482746648013433872010326733172734948554003379764625617436162648661090472922448184835410178050344922958047707947221534388020216124935413482511433535765852768895238654231142421619217314973277279426947188695848769692628207744254801265077628702819308703882822269163744098354495608609866860139554535636740660027826323767542626595954819853453504522602659743251310296031208782335689525611578525369462704691970137237466043891535286031656355562861647630745455165197572583618386693730654680551999740073315914212902245979985436796147355614475961882300073435223176197741572445656795949780940570409313814687365441904635423409920086990972974795662939280156539478097762346591796956417287115445584506211902710914838362100368952096121845737710802798912201396648703923455438981399673299928409116830137076199300291821055221793778745995444455437554394539275451585213653896721127184795736015313996274785500259495803075483054247457058956193597138262058771041537193758362533197292503254359972818240302209262745731501044061030788970483337641219278684952987867212598834102118274363902696744503893940542784528754885379679514968932683812822226370570168540894456893098037995828785814238770126553955217533413859503014783301911804675969862727711452645645826319155355334183581676473159067614971723830543698430435464693579996106744789042105578342042075440554261334604270974447883817578651620409478120755330560726656972603515476492879229330364893682584535099640796236163863740411941807524124761214486326133485506477542871484908460486835568420973313051717002774845208923631859566830324906302680885298389219628026066788225173916786593979587071092082703396092015473777888848496118832669382465635655445585331023679261582950024477399076973155229083133845502877810689652455808030080866274799185711223513870240445456965278076093985033762933717636574600229482045344762297436665559748209621302022279877694256775655084962989225697568394400434764512852303555930211840035734598993842893595087303452436312343227552484785664775341562810913182117709491620056236958922527925890446614972648247622847929616940597318836337905365999129667139718275464617443082863914276466144700271521186593941252020770957288257271248197921818715062646525808418089431231969624609808903751157531450106198872421354667023077168326817692278883764970098479563601768387626190367184789542182695266011125289531300830007464087530475112530944051126951941832423447602610002589933849149204551319060787227611767689584463960576743751778373847781021542173010448991230550792926130479028218923492981997706168653658910086460466200555822039526526006664521072878589665642644488684661830281079726868103890339917728668392757885543585135462638043461588779543822525109178066358753110682494470449888125328702164490189264852864975105976032199241648675019320853471442596612700184906112637533165259908312022436719764323177079435550731240924590005925265449116950903513279182775288205728960694481589435181373316241796855467150851050692855486947612701364790041583801036856650247431541637328292913064137184038235251019510861180998820350845937605101300967004545316544144369416034988477223160740987502404258535488630223404181592093917523043989154878843407919992837512397567969886152701366298404245560190627650562328206074035636907307572557172471332827827088543938066245453971841956549508731772797316654154603884617657512908455445612608997787371439183134349462047444523182001117732656556667853454589171382464313534015736446952541672102490483634822161325445340756544799586767495970335267157441315545495201989676312500971888454123607066213269209488669427918790714375067015444701477253101233537223465752141600739663070539687290625047991969763989416967839763634689483641991215157628316260299614609849643244050835517026850314548799241729240033786804614215812565578631889941035646376374261193747702436891649426144161377402437191568434977322227090251631592032991332376854221984811826827889483048208787920052892762915451735025236837027773994845167402665531964508737956712480819727572148281777392546500270723666595438511978723004843633347499483929632624062591119315920317172110519415183275418196574515317527422805402310091404097320221877075489337206035509209121056930900749654222242269578796864922487583998744696420825620289471024026412964356087838137552395889026870996888922123337352370603061518639614428911375863440596255074460672988485864567213580582405943550779910319328232265833605119593787353627560146186614159395834936027843282403726793121743470864279132377163442549674708036603446359379503538234336267607330789123564898759279659164444404131692209394196225363734698223408038828037742932901974187187437135703072802684254898816108452278043168982848334394774627595918632854025937144397690994588345293942864565537795385842210248137540275208141588174658168638311236189034244030395300135399201221305575891781459362592557182966337972121327132644862575688260228478747210728940452500243406539407123744170217333249920203778150830457189040494498875364459552428725429725564405263370712440057152071152089976335506284020687282832252078530323130605971107758293606773360265254597037513410548005429143089711660940610171157187025146187286210124309882607595102017876344578474132524727041369364698397748861575386373666624175699940176193303783733373546898368653768483445076598074848392992426519955653451584563216406215908707623478670739468595432356627232743501774583467108652418778649406453387743906818961998652780018004867882767476682436398339954434666725644318924723219963999839122620389648153863993130473623708921011458022394566793714268402089436725131652068213325166087138423029121440626566706962995557828688826864644428117265265053319241432868957423237926248583519666012731575311002461747148548814608065355037469115866068148352264217667899348853420475753457814404613755516414664235192132781256369422218726034050238842984057297691489649148212711471310396197330418812749327966425839643788571011479111455688840823935144296690920680847276456003016291088564877985276409113992627816175226004170133280703805137270084376327816095075760955443544672511951267280252966301882996581015358089112899326881703580741932247493334421800438339572209071031364550821913293217704868849452205185122675299996169972248163308800672002430836344111361856680333372252624710273243653022925442079045747113961048174174324582175994550939338830991872263087324048285186923741518215371931022484068455844782574467344648242433498704534321970242461677471899629503166703954054214741664434071137040986955380159121538976886962935511225772537168693588068048304206987950640426141351487774054089345013314523146209254420570652850808222229340931809864997437836238281257537955341815352750942184409681251964599743495082540483721829364408154387801947257681919587800223705688234150881897229689328472008553232912969674778062849239428965645714309484789670866049833868293465124103152405631244329414516988141337228030830368235939044298827866146732149194955894793375997362807534578191476816230226408488135338162305711440094252922257604816615081352553875559950145222083930529201563793751846557465422105134961527879140233926601614816732986571870211590478215284788021537142838705807984101758932182894101644156663023146352812210023396754460733363871853581429844690071747557582769042413055134794379934732377266066599560892462094401505697364911351137146968836499361716741702382613800317478159871969240759978912781774597515157152318783552889460800832424686311712864172489018733136571327144234065324163324539125442004163427569118610394382640623871297103752728568441958568230406721973094741811136076765970172179388608106292672031427870444173825957773125638947907882593596763712229262383348750360971906869217220733123030897712764193677737425771760085691052959141564810180583276036864262343420108309865564136469868411735554744722423491799776471810485866141294983452140651745170163616945145601899861869924108708653771292948479019702003359413274508714512540023574621422925448303445062631977168142542153221926754365505968267803243916836408134620673120307916978532882675693571558804226443558714866328014798762303040691419359685756787359817117939473329433815826353486905895886755292082843251242664603435098751679470102162710871071177976752393845576387346368684248678469164583582965875891756749570478922885337143067339652289600210824433171077228668643080183304659346278484689269229685033154075149810647732962204129449724418466835187842050270238900512257385916699307349676636982164835725536956659758547839135973113509371135767874574544410747367404743382952216145185834556501679967119761888157097204982591064438853761393915579006477560583975009283249455890794930777458536304344537487935271607006083668579324930928685712293630730250532667597695068294549782807339254598597038245111441640624555689970045271963113894940502979048247560384026485069060235611718379352922150027540011829604913945177175199578351544930547750312810575738258490966736263337656640985588441158280958762408638236889679442600965517390796175359824756539023842021219747544028173021815421639776051390575986238456224675375119894118451882360342024931176900141862476050095988403451978989916439457018784094476033228735293556688250356476426786658998940712471939287204667352401190327936455199447464267408447647004183144233815592292434933763495818634121859388544975174257495644299736646920048216878696762711352041694821595510336766916108244746365131852198367649199863590932660491774190848316861661563163014771447897338419857589359410760766175629952783035092172489810727229919434017735132477312041753427297241805615097057026304748643868983620534805103343610382852576090591166221123683233558498390722528011301845015715043583639510544791495577044632883477596481775158772911184971828855592641911314415586444227488441039102567861962735197847733833387752567985447938198901986033900104358173104093055736187777555332304072385942729749669287874399908879519045599483151157531763358783318204753066844520540386483492290447643540362221696811888388589702256962655174357377222639306257496056921482780839549901982824369780705301267862707109052544959338770721323559493980811853748714386744008789705727140723906005326372425079811182777802719945776797965228436871242203252515378495428202871595919403644953925540874616199925324529001594625868776518758993940653303801825638080458578939582928054579321427642181148312878428837512413832333582285266111447299550198356619653223427470845540346483335957451965691537766321118376380037146843723747614811687500980924863771550930158203825998299320705960399955280166139508471525525452245721066517675682408863616813840474582364280651215052230478314231816429633198167698241663733054434493249832209480149757407836610013207428951175552255172676368192892438946898648529742730850819840414975737797323457548670591968628299939783213677820697877224382651663541704559959205569230031718078484398638730630996392054792750263516646255557465872035672926767844037814827814333614849390841306790193110510131160069429028681601486343336549880333213351763988814941701116295948001560588557750718881775260052510446252883108942057775652082559888201041637227591218451010546129736397821415569269644842542666082744336018380839356461532524959580315196664799005339672859218986405238008199763924232186954939953950802718508425471631078623874009824239878875524052485584888074426744118194998254258628980233808382649010752107875691045871402021835539086718711176833751053962526355327379247584187993874059322480823189285712922768282230086627518479014683461886925197143868330064417078333810873755857921403652527445206833078190184309521888252627077398782702432650706141918963107372122016875972446871227884053513199821445031462322846739137544721158585076007077358372901865190357667023842647901740189286070487429776427243482534732028161756508198560083663158775430951731268439056285816769724398294275315345116954796334580912363736548020447713717568424252142408208354416557167756051584794356885802294789452662340534711303513430938207887662292874326129094010095957227036130055378450727565929603321118783556873045273796220704460635001595454737999325334706646893885972951392824027960262412063702096187613907915510153899270273068279301631338404503745636899980462850812532475508358482693712158984071480677015491253065853730390536532060059691311717880267966304827117227500376415067471995234291962250477716290201535979298220917897818029106043234639129817639832601748878818506617927675526219052098525237286855784194685996635713098514552445941546487868766568738016415564543358823433842548993264440238690618355749240281229225899022657532200512594311049140271950361824157909222789071622307221196982791203924422308855007251448125783316686657762980916502352301055324380267001452147364387162968426310983302520199677601783657136165700590303061314999206739046413937116907768372488617761593274960370554851998489780361451641514539321030736704454439343377100994120551144554421804358400223523389596623344058507607670432343880840715658143895073618362732229101936681022613845102953125334354893396447206263168918437716706726406373080719609259548205219124679231608000388305513411128112809556493735750355618430487638410831329116361584756059511225736168869710459067488542138955900428666206630332619095076988535101877061479259210750482074814871917208514200934089594003386706486301140056748121130265933689945097315108851862348428533422811691380045668610573832784648129757819114327164902584770645171990515971757887239819994827473307729662791582283889300864145540134750292531065566501163927389377060906487262718674734662145036849678280469039089998077999588564433026932555426221430925688929378831279680897398871684172450976385264879002963372545960576193181439021612272922134274277057704860539195868859637067563972152375974583356064913319344492363994487710246691922674208620351899059974232103857696400303280287492023774140246294215451996426380382153567360839385563909914253951426684813625508770083640834018084224410096689731877405754874251593904380239526076229104449956088270016521693205083974633178400463133844313904362371003472052478337373105377081712064246546075964835627181665195775039588324818106711111432343311954112910979444723584394651191859717606516047239996508965079050431725525442421260323467962664045090269802392352774339413075602276056217170068109185952292850856271955335716455543763680355261234731123069602946475310489884707598330837367678232377395698806444899041379353311837564977933491095133231200244754424681662983103114008727737334216731484097633862171248415111589434259093211004017096285616598751088841390484988009773207576061024172703708381391382587379872185493420015170936144557665338531797963637959586798936894484953865567671020166299142028055667683799391459696975521987955447383082768775706819525878438305894319752698966501648663097236231800850567022354932323600139774547471445607964791460497369754146902329261302965649185786467167627604795962612525590168519650750508133475281814876636286267189673587610708284886977957908374333618168525741181891718864778215728307975032805674474720101200160144424279038673423489902076783716101846875307253928008398552435026891386128892315666015922024534755404801614816525578865646932287257404998539934797661282629696507296232307697151376965854026764861785166930484547211514222978698277161738079834113462573010743508290221947068786014172669665702263950297379391353229376251470864221551686566630058054646920601488014608642445030225128073557506673891931045893709127468440786012106497669712765776852387835404236347296225052063589695796455087001253082053938017144183904771869962274762158354928241622039714193605890016732305855301284394968197809996412952363356858778548741376692495015988371120846410558119292450280678868033121484754440970884763358291123967097733770714635097372388465940163649074390242151457461885462134844476078209731416827193061041557047182533531113139874014944519141111725663222851024652652756881667045206167071571931601582875576477704635889654699682733467075061194802162589555113445252087291621755827445958024575261818336613300242661902971938923244621004668695365548008243089354935517166678151743783123018194130997356752005427494729845550682311557921738454047269336689746689321465175152416647083135152752922087549769534849773176324904336433045431306580763936028401397455717863985053790865686937588368431369789715854002998269934495065309528758556334792686652029077309643244231011986468597575649007902315964458385726270749328275729344160396843599735777401617276655506451555189952468186139361207963785251992979367179376867561239618928625959959512756840205530078995334993500022469494775067342575503460713054542816441558978825231453244186846078667242687327227636462654069838129127756385961889375259596051342361842110472490676213851918926731754061942420632594048029903792806509409112909406123955014322461406011731021628382089858066756141458523088931615522202011548988929379444161432159122083205817519740825380003867633647578655345204297304561878768686363273770329606103661174547826321610202306817771221672844016111365793973879056831365577086399176360131355714856478299543925888790265927255544211304107294590572591019837323916118857400119286415714836325072057883334822888572381424277100096562349895084642245892859608903092369149630664984752252669790001830409335721071957936227104678734636399532610142090734348932296102079728864251556784346655869574436637899972193653614537248161747435255565429868228955541015516628540235066911495809160393745802604478002319254803823029926120644586794096302153741573601549592795326308745079540013326484852860784212446140322704986241871814345961751860085757868288911497662385258815635240166332287418719688539815056417666179620516179081567672423511332317518381117100544055969937435983624124312390316315618588235898858160593541366923604842923373248673249303489940649079147657809364618761972685701861451349335207002573309304331759856650927407298573090461195703268747379818035624626122121091022571088100677544282123427565798359137000486589045450626100548810919235207417576925562202573988077120835963196190202920429634550823064145710076925155128316757964770772285947929340353579343862501564740721749148725276997424424191234071078465810299866494601561858848485729214822477839516286383583107771718609151595529098567742163374017295987609126230641756442166434676747981531634719217567285584089231639995593274018327109939004738608908834335392005197318956181706413657601674025788107531780819533085044598766009323212660274217074111127046210385854025447711166780216077973369049434776954410871997525339912031625522057158247035589659517745336883593470677260173003271015209715723965733047492273955079985335012408129920131605043545432778603825965572951320724267138663205495341614418121960507526858199120617166332593073665347008775918686956140680456732688721864462283749413106611195417789444530943282000539020881765561743700313626068177507234145978524064399191213187540300980382945276124450729146092113535383614226957795825471684917661780173890398289314799712651223966574455207310632125009831104948535836637092102968673757650420525541005780582746614310255900244011965186357157731767759460444377480154462760648523135844691560881061884767145266902173134211172362967333345004818624754619010378370302650845691965016491991287240143430485760381997615845515663881090139460294703324280728184341598575948449728496574285150075801888610859856233936866236445345266949257478053784411399649216676141386394712196583322928473027585609629504756664863101870277063197956012544092508343687049829220077279121510021525561335670172029805064805895713954648292809960596888331694609644509864975311321517915772903753742165005446706312292180376485734546241078167267884316668644362924491328510797731643019702364076386184646236514760504622700958060215606900138846835132099000584702264509198228041458427329871517674996485063170633689283027623959020660197214185003774434201115104023965640691141381385257531119520414619710476847497557978886470234487615017874195476813050423786012328711349247921876988981470015459746606925271867991805075631295024246757118660211410748074129322266448441547192109217664409208119118623956270834334144876824672088032958982645937675979731050405577192021370146527414430929306954858066033036093810386538012359899118678473300022635669343779414088581321668198788679186194866338350751723949251172128662284478478974533758402149102669678929930635166852532046514118877150096517717176149215798897292006947662084102570197248110646876779509680463830772217335288352657540757657110604964745249645444054836645480955495267624882692913086799828601779671632813823395910155664051804730747223356546392728298386679215638867401157224135570130249103740238395983306263656837263319157838606708487412144960651470448957716340961571818935390719640868353065350643588841214870373617847602883737363213247873384323681256524069371441582215008388906673001383298917163238051219618296925866725427246315239370893033317126624078474572774012589729963627444079789680820872780404235689961461999039991585856091157696291693382895473272871946121107685441885378337525703069509384934700314033311473237997666331444962776628438514550027828056966362506068579562963540291147275468339412947219351190071176197545233118108641516040599782133222112225785919391373474911093587063316841787268721915571760328116748577753707880380571704478203654785851993081862460681163725573053870433317856407026951331956149801036966168875334768709348449076458404778157497909242516957503229861417502602833288832623517308955471611825287393642264076040484188289877490222792618061677026642734869988426122707305556598585148073474384212553498439607390462047580928174807372925975127026344857387924496136303651793406968331124656939029935091451332086289681165136009763249295340090144868236555224631484931610311422701265293466107654803728915135537407799428188195996218499164529249660767851388146537382507193734344168936296541426970986333832987944071792255797570278587260594506428076076324876316126919615269828727079650761586638870736538280187291844548440534447042344881467803739296774398598946566131249216246110638383218899095427031310025007897600330536171227716949551410183361998087072181666579363422206159022354084332435740442927060195576599282434013092292743651535528210819480138274294214287689446957719032155964870053650395435704336393610580135804746014395725447139394372164088314604290419219112442075769166036177470434484679167152820144526866713900072242649302869253616325484828939246009963060532363711072292672995539777392721504401506262892405063004051267874964929253574033952491367841096524982323861374891006021720906274606683111504005176829178582012230748379189564553965808355393823180082427291363119993235627853360592277495103950089401484607035447510190103050635336218018142612825058590671014652600627289321132373466519217057477435667082641079290650747917125402654122194565398052826450521358229331280963608154062486406981784938620655758921820430619041309834844982828920979202461788643172959573669042306857382503508783455773783121190436326406612542790615790457397100777489317220235297287894793533980369005738130991133655512771015118966220461165982590479202014981012860973537787266529771509043034869778910841747885339485591211791417576228534256986809705134678736930100163809395696513430895437219951288903752072333054653299036388946936172413099365423429842102842072188626929041890939024014609699434709081521769185667373112639243654132395153287379898379419200275378109607314589881419959185728775760026003353991912614617053487083872636127553875197310144450297128630548283647757460721680744150533539516938321478549672900421215607194556600573125570896581081736786672570111972782232476529673607841802105494950357125304284344233218635318189385509105846062950072127127700102135586105035143878254987636614691332160735509839596316664211721765777167933339287723381830511902817245027213755791912842890537581942399504162232429596176101913630929759469000061772137311774657982524193769560647678638579210279552868371857105961485502577390544089880253425507252259761637725234174793599475703430354751925406062553395635428693271605713313554169302337896887313169507866423773429645714805582457233803695541461990595101198894376234926375493515808526418099815373906694906710154210218018887074256834599661299665762886009197231527388894051788261565219802251196234394816906914994580173330014568104486313258682839010176013072130935508130150753805992905111796155207340793897141840475543833342244997576196575639201806319968591004518074104920849262331635553676915504772595849383006270896194347861929479174545404385048571283502500474294949519063220188319334387565599516468090375502798720767070011400446346396015544168109048629176282998374812968593271331485382451690863118348699430257359212131970629874440289680982564932732297674756646698583543621466480550162038067992772893519930474351957033419485033937540875713029957242693849203547020840904166595727606959589273238665974601686317862112031595458022504361453684740942131963927829939211154696454361323093985337153827024394584825109899148985428182560087263250541068051861583617749894614472023777154889875651764381818520819504535393930819116356754592225175446660959714658006713660708333724351716724572042411055699840859531705204779116044944406406765864403019451309423601251258248863511059226065895399747743753275223839072337711876851691173022633919054437152178707162953013871681142523267961028337659177716904962284244182274830845022816629808805305834001753888852292968189972128873031708957880870071232153807849272792963400840777883095500123995872616006714373166591782183705185491630965791986481850383787392677460199106812529157890688973745597639037168010440483883288728263889798891245565712342010892748136844318766939167301651353712678516160327359734252414058686474322860517559620398011724820356728052973140022429394990732429678913929027062197516325892396751071755690901178784462788901209777179753534827853281030152833076668966805642264739774494930806964157816366767873333840624007071464265045271896405820607101491227927025703950640195172607141818495205601556699314104467405563594907273539269607775563238339386595625707301276996668410221238787615292984771281360984858300929356655449744935215096474237162281857907794385657983399462635963004017607716687203714290153318153993374389500992726342866747635456661557683137311314036732059886108636636765724502746535921779011972217655500662705012472754050580017810561254709921676236433234714874830474595620065226188189670150374204784217333565523992258282603374110698075997357099963492738690262650048003598900486968413793633348009506917319687298744974223158402212249421350549661082850662868337990799184512485878079812664030810850806145782288413112347413648111733648120168665445326505850323821362362186609058089132507399043822117295805793851513772468525945386359119360131951868149211048902610591074347842745806493829333173886255457187730931187465006054240785753961658639256343605189912073887712824633306355907801732630298887253754548014116895870997454413188919081597857317387550659976514641273321419441613759207631295760549140118167720130872406255211209978145800333765893760169246601591163145635704743441229306507837377948270072508867102716795112723149685872224762109456324251446559283808195096960426622253940824299505943551915224541655849389810536069301577248710458922475820377095606993469572532528587496078893036555471861213021837844869987762078700006895517773068231925802784033263531331371608700390795806803794035761706968185194367472185994079614398982095853663566845639970313465482709609350761205991708327764353953989036117352857011217290866357926925256515679070129586668982265659126006218038309560259551104925600919160901063428303912682010655239256985745754519479184657931191860124654310488727806671696581036106113250075696818313343184128727823697569183074266060409618444062440969798003488082503383386607037038512010959035311428505330182064302220972179125252178444642325434107872340501111103081636533139786990373190890411584604869681909806521242790763093873887489683899414768707341347444090749416400603110500579268878478348931833090201254154848230105973836795703308762149456143107825955497553436390206749402593035836244692718709536665909004248267346514333542364686813369082585372330838487588088580402993708180506461570550137434414703189082504249044186349363602140440573213357962536767462562699939634706897318271363954047244194675239520858719862901309705495935921298821995898403718312872556041372665034761542807523078363878578089909612166684945061470124579327718758170201320043667827662877569264547655075248927024699359151936018850873711465081036251722106276623718145886285674007712812148835864911014051605627181548651108553984363898013638079429661916972106249484266404325695267697489244144441979627477242291896599742379536193551108457688400558080038307956293950150033791888731523185896405482015709538768634358743869810693675854214716501672799576764797492576097401275205330384540172948921411605544385609875374553770289713800265149718202923975830873055960844052051615105522986240741070852899330093706339392282803457125860969158374406916319371329753783529156624016836911834747485128057748921819387298959272519686076179433779511889336473913981386958396327806111227126518163282506435947798730556781992305357832504573087699529455272524834781786068132568485410269193563257368929575410464397022396390449879269640447342536044283145916381270791711371578516870971086281177891883084830499276913636777571024685363112064171637435407820561012455673311027905749271310835873060475795480094628322529487162746341189586035022730198352322958815491062111522051104156263822112873182928073955434646737138906054881706416091378793269297836272404090057349637717143782397919442729845621658594011560061669063436169694821710605359159544302805037508923941359674535857575015482191806840035884927000020816558551897712594375602578017288986254135455012076966601909362915788012256707025752397083086549680239829691262857097597337198870173537466728625217618155114381878035759165691744315396031852804910224376040328777460375125348275341906026572825977711517533974493046815869399537817955938263070209941355409965164148916181455897915686156343277110951262606190915487268545071934140401441097692698255207285936714703032749474829096399400688227563973116228163167211025661355654907578639749484163629032926375831133014671401524311487233719559408346109892413593009323961847324615116691992644644458611607080012598338140848967498510654310146274635303846424889477985574357329161969157150503404973577541788898000900321169649841105300089448752645023674975082705390235822971770897678157486068380100563449690214112793048613663049348633507458688117216481497803384594907909385424829510684726553024023063708563781799262032751652214148421510920442577413835177947126922295221808229871120854088977848283303065241309337622518720179448598871883843759933352942271134910471888698946413446799919059140157845757122276400701543317488048977077033948944550736666894902316924768852611958838118786144157908863943510541985287760244054563670643529347491876353703981038809357319089190283795729141256312637918088541968821508699453079787864185019896356882058478193967267027765505719993130527491544253478151277851202992374575693669882198929686884616464063464831018460991752926489734965841167572979995937578720106122975524997061954457066000282174725220635899608238810277894186822392915650788699940851255652484303166376309091728697260522547457022014258677431964119003361732423166601897056892310865700677258359997572464915106930539376550107495475298066054962050407817304972390633982882681152681746303827256840512928887600761859837652712686343314414292457003704867491031100822361258855705173570326329756583669808639166447025956769061720690045194981377696665445231050729630686724225357647288699218214495412275960795445925013917614780249354182137978546882894230321816440948607197957952352833078940057334668793018592099418734119837585926964368431061692222857655061482731022580654745026143209415940390390501252276686972376783112961178574073935166834501160692917710255519150721150962526382742908963160675658619032637721706742441030295614158071896681275747636773894276340455726670425298367387842295545474543354421941517168954285395324084951588699955508662259740003292054909732838021524205406691920294695706811799756306892552736214289434925066959351539407825657956514536565263342916779829494875814575094782757146140284236773957292089917397846978085290520069883923911010662893987954346359235505148705367427715048246961323571093761584893278090502132224076574022860902492248396546989843747478352148743221615658573175927248966912665625883721378876174883164549024106098255185073548846045495442547721279199175804076408495041857241382256290822809256593178546842472220106577400187842473009593400128882020937249229678547695638476892007197621376811795907899126480159072356729822297908017402256876111157641069880798854730728060654378865205848641889006524704226243699611710706333579400897695263546417505033807716303539317436440864415694061381404000282271080679737860783647021174803302208832219944455692519612936676760431915931727975096786804951584719763359946921294121316486206926058355885392235399620371471951237015599568944574095606726373069806428892544845601808227796013671902494095160143444821247512403509806007178048056287627084609466837176412418807083082479778738119087655153180509285293681522248980649569500300478670541115618538267405957684040434953155382954861495353772693583918992469632658090713358933022354151938203239439813995895558901096370358699135186384863312319232403753668258118959836451716914197360469575298199643634319946807020314732520394856085156571462036904431368633194481015955337199046661136986064901640103042867286385588280938611951202120040059677037356000094609557108741277467455371715906182608011309216272219980136507453272672503254723249362163786187406407307331950552414156295857232119184669544408214824938731845083233259007165626126939437630534940569052702145479147410247977430403540046425986877428075360624290622425185803769605744568305896363507145606086875908736706921779295367947646643787297803018002893969419372617966537474522221562175977183776805092507067405029625728429848138717092759937250924669462777971087683369292512557471887197390733356195338368446866640878894071598744280000033243044237438935956190350026254334539901736335342291585227197928511494891455712973601787105169913739097073615414884158104564425647469727154963152128959912820198800550018232508260769103859184390705489600054392253918343868063155454764040000714609286505217181196107976618510772593015099328799404562595175074504288340800216018334185476515717549550171478651529506043389302451167376076228517496153619169537921246438138189772892435142293696624780305520117856901999043275937834593955730047029526948113364693279154558250480854371381203841149120199522619585204104417239080870903569014870407759153917373261857429216186540431200031943949556060611291740819672081192489547712005570653301557176416010747090720045441416927463249160213087158558176337631798418240433080524492380343362785970613519020732071898242467517122574700669512146581863560126676689027393172713729186561696059777633747680676157686525164548632410415643366776531003165329347814930383115893531401012409199731510579845026288281532244449559513706758488117351430196609683512427827405086112309655088576895424741733167477609433607143315535064848358385413178659892639151915946700757172731027047627578748321625669066378712172735377925331167226971275058091106630563897338708801571188879847723874252565835684093928675428515211024631629299264760959925327991005194484573907684099328882499690471516700999672235799555093444291697503096446266162575700809153336325756708984761800969455180028438812476986621465896373441861968712133660658405367798363446711635512634666314260578666782004388523938848567629484460308780251407941200782925528494597623830640345449830860080135194263135518542981171511541786663526937943130460886804643114586440715680790884598000458067025380436177016039977948521759177651940023504981497978824062914936661610124729101110217145337655571386034641159240564778111540850166358582038454034815938369184828949783277784647457514212863452341983533165737901219316931250069189760689477548138969719990184717968856390532264654097816000044249916858564547102123251619333010928565442891915599196935665857175859028775471374204755439496077605572123433661178613659753849504082134120935209866295105093276843127484661140634299941150177869949145493522111340056504109272445748882201839033451363559674275022147973774858783751195457101596546444856452536942044150489655647048137485505001524412619125524035633200838191503960386633025453912611741944384652674529481280736522077705133084298296285722508293443947796797141757380139977886179425696595177306568551469318100658681170011631912849005283728939896036629840209342114470183916857053986034548061797977799250112700820395245143865483038949014209268696556360526768030362195815848985569199643180810062911743857986142720121972889025505558945348563203549857617245156672211203976418040973186563034560749723643896273367833582079772493958205832108038059806928823423469469813146821627731659473979232740059518145226365504850312042835691340177962110239407242359050305582824691147507564081413781861609789959418718932591646873620999543816241878866465005981841912832154641424927300470109999603664783131979960964999369896545770158486982996732104449671079405554973734906402490543068562012528639554786879840934827461039126103585153157568458633249309124874040336455589345669075294731820478816950211341440369513892694163504918368312435505915133403031357571296660343304830990379777828374790661048647185924734103929101432767221437739933018825187537510767274666373218607378214105812813960285892937739807774794316898024706883383405106341371980072958625619608003199791907304041899992337006217561154143875245496690597385168491402733265923951130191812578391089830948729406463722311148498790682382488315148685064397626488351454571488836720648447384095611046088050802098689817258679215314169626484993059636806527603402874110637935585048689056574360251421772848011690745544210689301131057368088789370013640559609045905998185787626975221445674564059887998501251000658194875185615540628650845977510702085372501217477438073975683370911315229123360534985237007100026673422320471246115623602998412565718890377892546319409407311247673099852691784802155560104961911701408788717653958436675446955701860197912439257264248963923826022456433130527855516779299454432527536447090574217534057103679084571307062885535499199185408799415907461093045008985025467214704369997657419988967702628599207494619898595795912940445477911252010911865053197711499627287749099137069145738904990252299767362144085478638519347756774967788744508664785477736918618804760472078991940172054203864071769178179929965606772162358020491112551225008979314092632053856542493238686709649459625099725745476015907337754571542093185021203525421142812908444032052903674593059308291292389316793773459558515442981495776222519018358168191668998944286496219150085016592938784172284522755695165887755873036965374149579696818230387912496363402799823430435522156135882763431203106918411623272350870585507669956167773543513783187492739893978414354323222287156764009207641923114012135496267994610742474814266767150026398204818683095324242405827738754944198573567705049683662811907924136659038002094509024621976468375326160226148309365161472538481197469635953531303061936684900478852089848443959064219278375420447204720905380365229748504164631436074580661923109398788980736638354436443337453753248140840439824496933848129546610003276618819975851255608404601768242513678331341950318298170801396212247813339061952175904157104575218600669254455315680944872441605823382765687477998293039186973419049805389026470183197193852011911498886754957917214958173625396793912773554885969578134008644891110536119180715713238103282453316326303437200858732464264097448686248569575359059939326197721229318253804633284628399903463512074468313442582929517041635663464170667889371383964867602321538720589608100179385795119524761306941372720063599333202473873041340177944393248760515040545013629911969084661898607021625958260582392166124624163092838068952964729549376525713498854043717219922186874071492569674942862116806179426523118078535885468661421964731699476446127667169176725204692435930152506550009278589819273689742822100484257155259632322066644100367694113223866196927219572418030985428893297249084264992148324972468948109245179023167039494387281539117990613447852327886708309215930791441298152605980100203431619271513992762629091010523536344905839011190115170504810245799175106051791862629621807148105478928197563135826121937159579100175849495467609349941487238166433144337923181152028338785329988109965738895439722519350934392682709863969475606815677409481531688654643878323510567787183655095557305653124349961395457352786145748278704735677969378547735195647423541874239649370169372224748090989251571078134020555068269895440580041042827370632306771419149559246091682150569439691568493667807667200545548648050760466533858008085497884265319618818059868251038901513499396390800278978567262377610712507375983723586665870035313031380787558135479111337077677100559620397854201745343181788395523902681379376857681696359079354872528369962722090744614474592421927823989685308664209132808394423528599202721747549590060826085426228519387885282247643062587412707713295570869622830662740846010171595544577279503493496987970436333630184157591940257827544864800624201856480326680288088001489207897440595301054718430091181348298901124361559812607074509219222292328191083708796820376339669069476777058398825471378662321198817587375455507103990033451222952455928527667328183237448350655885083085660624333031696836583302818947613942209959409019760892929979306762551287955825115090057895614834838805770928265853282018303096551901486112848356037863043906453579119268269350773489647027613183967360688934251609196217142597429163282710057013001409092764574923572759179029135598104831505762057922748571653464734638747655758332935405415742360853779132239928659517065360445010053215255014054157137838253490052939011456859637323246486484392999397926792621843673407867269339330300554945860145624105440909240241530414210994470616591888426830766508928891467173496486604953786825285844242169119725463248604573882795305081714163189296509163927253704951599552976398595933877050720898986865449655600091949774432342342555843007445349048476519017984997495911239324501574048251032868839271246224921699697422010538455253949869047192244220494425349610443042942078620762227395899055152483064292559814341706324255367186175347069825287608943926445994524576259942960106744087832896347557521314145543793743211554390385732083025271797229302744291347407420366458681284731833936486167756785018996481453091866583276511914894639475402419116031419164971114116017247114334407676320237745226830672631762270801178330086337387236455173321871251696288199135732012221180388899840107957374616151947822246905729958927483494620564444389041593013775557366871000962499188341339089017034278357256990703196717634348487559298961012686019923481982470741629167269189210748217524582936932853015745244322662758432254566469219244632673365763827035050358185491395096423928182668675918447238036437188668573871966085097882035480238153220470863029077254779180574504767894441367446606637879214169231928444257142529472603950358814686522142192816245101854677895710005588104501919499410275610086236169901968028932927021336499661461040390389681771030925567623513839804645737784281337012768944602186252780083921669213126730045615337599392342157148016961432314434996543242928612960008405821987208245372258554860568455487712754357378470022424927035104000909286305145343354269188040552633216898759956984531366122176195246353218907438896647454179510014642328320380863483684458157625997793580686899508317707179124422308706527719110630431697865367069610140373099414217746999472057945448562628495905555201324759599914676817684927540627447757288383205627053104005967935921351013271638439772648779172676373648787815434644262021834782306626116395851430062635553149375697823661270221957957649448485079771291021384433785693741545891099852158913184151237380339583583392688950630945215738915799112465565776054733845238691305133309251376526017589589230836287100565508493239967748621981321011188835219363908634810496700866727930426426042153004965631032997511677201797034171465294023936867728019537460365929165038387565277938614701763004519338674269754197853494055286657917760560296824880455034116795661393718890552195399760809091648239039875148810896511090820245945990275762245581789601404638089098305217190409846149961290031692516024703713731757184376186745226816523172094755471954914805140860491438933570473029929408613893274097588690715840619158463295283725381476617414473688228899749042088955266263780802429375322921451201298637784004283858466339198585083119173543084670006495274807744518880400632112129400986812606648666372125117886783957689359138809089657189127305900795464548702631279632406600307861536668011507241404994043433469223507070651341987555291961354892794453312636920060388403056402876507143243934080932452458675325573272093785998113461007147091234156323287300707829287809623273568353330194138365469265415601033020871162994601880886522048406093175311334451597973466094036798798456673204565326040700682063493190556981839576482764681923682087244469061430405488973813454282580241446859717109154926897127037003355301162169820507701332723370376948828889234722190466623390905578525013892567354292694266856295496723939102823236233412167868109459639115182468457129266746825676992201875123287714022555091970701822236071429192942515926680724929295320785130447455209290665792654660717750668304453756823469456099683818030348362851551353316482798049321619059374020784620795699867576181191040784225118673385301675088528302776236112755939101496115332101324216922444423703215796204533260229455536573999205188796804086202606351277042583831438963536346609880455370299698052289861722595468638703413666126429336041737000888243401453599531314815042249639632584778366884891224744976005906975983718433490911991218537252440718865639135206080335971608180403871791007118816116999360078356431037448792325654539271809340069902473022411995634015757513682870261389137846409879947357296521263792968736230151288050427669559812344317161577332389029988146553401722063485064414210674100495944991962773272761031279324132286016847230911820905363116884447704026078172501422549458036095827681629726832163449770285169082620657425537362108366786110385662731008632523526850209185265539409001743028120006874799436564824226326687280749658754592352999909732042270194897845460695631335136529616498643233612806986300514727390856492666549168060401344530064873044263900931315389141249544383257097760621628897639936869951596049314418123274865144506645502852441753082287964661761209955493971307971862198710483501844466250895434202022493184795754988408571698602942544067218438349300135182255154261610856706397977054935924380374830371877474267819852031785204400916704948566079917647917618532614565756023066945638055592240968985553705560822179008384984231298450702582807815071780190509914655274886743551002097330330321626917899736557534391840672848247121086381495997827036030307826795308984810355132779987664950353605708603647215410200268090073354899422263109686605609685095356974733268563834648838343472143933024776110469877996604796352801995687238318078285847304734206767031408688034785689916020735159606667729362963454249587005328281558352258132037413402551464209841613189502467776042640192877151430366708570684664521793534665666459912135973937698217782346455964634457243159675284212890596515017000380612479328157371864517207968954558007564686569567035930169315173565957064918870245129825109409061924477742514847395363573847674408567101962215623608106053651797275964532484406631315240534677428462576813744423309040837511509457519834812884505921146736399756223066413675511923847442095456446899034771974841035513573433949774097710116790734957697183310003084207769110282870421107313822128289278951537242385954136267494796901341114762210734487603943422422299034239638621375195178897779231175711005428647595032942065551100444286642430690630546942308235539207050624455515766973382185588470485882002468105944504745447087237993769338062565570409170425483019135538188532211832039341844875332985092274647477988023377970450565920978070271876350881266768897147325469516968811811573731913743254789511572180956751782619467102734950102193644427990945818634974552506507330849726402317753994225671374552494037234165897473657454554400344360551496777980459458857405716872433714453154182319773957367271196011222524392331277856405168419282062059372144388338164746979084718377569475893846523613072162899639986226392449796557982106693070126012814145003038899433771427781874420045517669193494671659647837839228430464310407640728730273799830772989207467202128640643071078432920172623431302357823754789072600682654282277511963319545323710118643895649870986892155324108575005159308335368253832896041825068212294846049499592370850994629336476346161478472504793922719881076200370144804991031044942354085819101352458474319409732903092059756826163383220434137417596662080525269776398858083008889037601869566018424209996885628552368382690830152238359188311467589276020033639513468178116365928062928124834501194199220414143503932026547053679936600438131398694439702331588541903066380168337600372517584464441139991274657020565316272856810749839172487774788089107409568908876427780685885005263396573015326447716728204350215301901947075885817836880919177052913292659646442893822451776597419784939822136885412578418293365540893432766318518069031358991955284776811219546058810209876410610348545832859954183334677726842292401461497611923991922217855787636620166259596329265601863476798390902900073736151741671567854189485076018629181209297467166860073460377671741120240575302658326139563111758214657616745539104226466232380302436790361111650311733539457476338559570135617318668697624694072194791735806176216565472005727291990351695932518488709194133491707317667223517556090699257674191587409659284300941383088442226092193098002841119993139575041907050116133878733194754111213378981913841574792663557033908606378287317875308087226212471394981237402705742608329538479120490031956493434786164168439708384737991564902405208115506752660119544827000641225635625436855197778437987884510644573418324160235291118007771034299453283440487784586561600679886223097618388559246944968860253188456282773075474228655778825879664336290238253337097429194743049875335097255119849793471260251084583122048963198081371482297068091875985167311033149727460226283775133074894792212814527867030736161774452095176297767328778915927055122221131243906856280966702415574354337367146401827983957233440098006674477498469645102448459364140450005280874659796886189575790846335728644319440948341706199640942993513795393920664009915584665127086115674670172374099532951692363591354253535738498889541877937154232187825528423878542387900038702798317287489380577496046316376673299231420325719018120542253488961403800427669456351124945289903369429661303653039397739081951526312078006135323634589060665584439278407433604456436353049670734067529154857478222999080568136271656388383249606627391209809153779627461828071666944928459010073544891039922002751607699225399885378575408428687662830079083053326790776774256577313691556477140911866584848269789892742310342791392793590183259220217537105300180355006036366941536743702290428957939915971009775536054188220127090447985120694823807457790405975380844565533549853692899311794740599830937627123656933656217050156028724600490320295860004309422946377055186247015599104238293463937626698410693286960195298712924587761743135911594975073463930651578005164516652770195731759812622430554155127345148517132176371779293059579483830937715841682977044906731462247993998246652773855264562296952946275135082341501760862945735764533586983373052633445771236818386244724296655093272212340146976007682473788005292040175780963790645530202548717583972352268481330404698465929913382806428471184396925919220170112899599269297217222595092264329894992566956813443529533563629827884454066562578761242128569175740235585360337535047736626979588664394653832489831285394507908868372461662649276088552390772525863204049563225042099732497253048450196107118702738294718078213145453660820266118740218110794699369987764560922465950538626428114284812720001962284034964059561084117563094846499480940914996565749153458891167855525160235877002113116434894105241877089184511035118470850701583000386671988700294517513637373436739580603628765037401742900721802831291073729693032963075808060186338668984803836845297242618561497590485164864403917929473843247885274532968856754339472896334076053123565259485108772976782508261437542550272454803769768629259235168434981365640574435200919124583172375688917109410129843161394835568698472938411905175786026212651844672724359462890493327003588416597740439815848614983832736176502814261147001092975493808973219105906772348166954567458439106992738079675813006176047063463129837333751713746427619888867242757792870012722515971297575897700130926415822464981744512656465203490140396897247600893210431584006802491603086868988036619683281360978089371637442076537583483950706363968227341773842121954471698738738699477408621266097093004043601446327918176332731766867107052509502202294414311400436984414896129919818593346958501175777727232130828677359771076489329881219837903491555955936081134301960953272367638428464285263815922631598656709450434387884705154639769901475162664974825478665364476232849530886692482669132913654266404284562389706237616692125535802709466737802239793242803216147425159639770451181656716927425852923679560616791763768872666542178298718703102253117395028176483147782331324189307977391570256938108361722099211671041553845203973641925895869095642804618399186251991171599472410266813118616371027961978824953842739026132009933341013428016782049600284491725483058864888985551235245345439444254101220020892902359427074645969772663552892811642264651500446692838782986818746770004547961113326940699911599007500548428795386067278029900190793580340780016180699102564859912630059938430715222223519052975399241419351167296366967245263045873560253087402301530864297819196805332201103424293552504600776219982008363984767862635463690448180001222158614343547873678876754595637852427680558367421028724406334836526256901969935803175899389996620440514580870348653089981108286853890736692323899314925225584678873403508336785965061836867339557642378731019383456798093833536006019909442783681783030365508958991108337693384476599358268675339463636656341239016571166419457238852626727203144575025683224004297146014331334209021358745124506713461434749417389139283892356604679864997319199401237839483707452622137620501032884463508078648858526312308248619681518304473059076488175207541049310995699251176467829162820464006517249055786509389537041313627747892163558194500634005081583817077007860437516130567625587441304455417882316420528773409416975245913269971224472696995417396758818172982805885369942299969240527573229271990802364763546808696719129444926907986100925409101247726025309748627328263137042042828687121972743042676447495560393817312423969245796638108088065859546638815756045877387605417884774749880275021899816746483177564051989822866179267306296492194873709890960253579587239688744795993366152100954972912385464587665664338053774077734135266006791282961365733176435740210587843258445831505128658433330045643507482948441071084219464573624422235128117085306543928763843909563888205006806414484155758211951343349411750970436340277574269398792678743441269165122372221390931429281381340385591543085993906134981682003379346296237533273193565800415961289918675087370364731959815525913779053072009765935657571262043663718524351013546162341636373312448398651841396459299494047230156988722185404763874769154862005528962334166726851693576467037303240364783737820102889572361000361918873473888013668294063680384166966216695981970891578853656081597237607020916524136145122129654166228917577198999287360457743232850947656520638662417302068869544941340992248397201329726575981579861983165817371646043546547644379423711539431044563357386881959239480931901441075286915268225626393607981208845367377712355664640925521463933609214288227419189211640736846016832651834742236457932624591104575332048207915252461506590976127037142205994370277267906690482001386487397132660834867055363764694593677247305935612009015266534298069472241965312213890284031889411453551013431075660429762845084079757948140209125783424889313304173778681849967199796814923065607802633380023561181888203888077259218736467065511299598914067140232264607122788648699916924224411349140629915369291890493496876199175861216768929048453820213097406194515760781740926911947595031906339013678551710354432241308501205615366595470800819906578215470862378514244398122117170076852250318036883804395054095185082261908416884737569865627354931718652398617084566289231980156186601093286557300643729934818588424231427925452237813301810834368254080030003182955523420103574546134408662706972827268988273531570973205456182953553997886355565000572204258947624745234873710012667318299071062343822622048720380474491611500784808453614020117238023018538517793756428093780445506436990655934763732436920348330001554122873647807722135014524331284300913520995377048354119601574141749602978825131559734505119905104926161798099639502653993493194744910956675844611049657296117814288180741972282031485202906050470522865105190097638251563166767438468410916074195089990188497551776251848490403464235882729749912237108064960067311821218611186365046493220044276836012096753556913557307153329144525997498425728856879613098436388692057217429704732487056720305548372501168705313929958750672382427705781343399465188589710763182474113342238116262699833119263306003301054733983911138516017030551872601664803965527792677766786812484173199715925814590001570585374148394983895676843914190871354528796149182962487993530439783473000078200112546543462134004075927190193397192360950810409996513135016093287083026303447480544868708866136201893524959234178753666377049887921651497135697477055249212820601091840691538007363611892193070946329416223664445951421296866790910867946449332291147363286522302802118546957050444320664814565154917454237992688258172094438824336632254416717859729153365546444062970619351446150028331796077819453633597939320586455971650498680743284148300221711348947956698390975784354309683172785625776329933143711936119097601917974826661267256354415639830887276823441497665024138637836475016460984876918724072404981374507374468078813795668054596096307400114768768510848539948040800530859988499947604031448295211270460308081787441745056532591505580978141739386061176390125309645623973371767697100762129179913410567307025657842871341780900621490386455657641299472037655154602866112022056492147807910977985700340520214050560590977822497000024258989339301065571710408226210287453131171756297639807235896625582819243984397230269562408043998066823209825324556565537348186677620635641467145729782426969767091296875740993579656976219881430273664359894578851486590705255757391907106134241265698494778815600266896934957588707590469296311929839014213545392608427766853407156416022308449834259834304796403449750253584257256267177487899998360292774225015623628924137678578837724376248915653400460641196469884672123057115644730788786553600557029835807861279628110113419168768836705141781492517110353334297111633232900342708131825371029577134754694066637516891743172205594052691033417551136931422113081548015351039829469368952976122011481881286099206876312345211098735366120114993101676335918140303615691128678820734296778590383603219196682716330010536914793433246783652797616342815392696967875451793583500593053629313933240185154539683058012730644607675685261897928190117283465128893580764414673816573389621150448636785886263736316870665988231885000600731676172966259123436532093437383875228530347988105386861777552718202855897546788782720957693529229692500416489636521762131700655429181449405795934599988004652921668743852439473678866888619694424009987959892302758708332864764811069399117257615924848030515570257004139399312844819209622997389506624413531240186930890190714178085650255237824220145652693891267229046322128854908133568253890714796416868117042437950232836494355107387922229971992236637388596089806288004333284851184610951897695952204119480886889844797194732223484547864808992325504063000499485323464154561071946824000524200511133572049838508378684165238471002713081145699218589637347997605242142689381345900529880937505371676113987753611818771856999927927171575722562556897162342086118650681323635195563416439822123340921964714495127185131921125541261008345803536717487160556464531592711094387650578262307070946041001809079957971650798936714302692901181926235058421380741841023276157782922696108573547706499678493140562305678804297004083631525234348746083228216692285980260415123762097153561749681006704976322728320869052670577153130648059018382737126045134610096027546201182268767821651035439850694484813884609471071688571794168015104375301997130974946937077651337218361263902835900189327692241462482830818122911853438133701422312257810547622765898091557558930375693985422340819002491504783922608787808639436374931895948350907484126944292796364040186276003134981336761582252810278503035797606682480883238334160860966362081323788455150813313116576493520851969100806056413504544879078537159981045756934343037339169514928414216511658420491439186746108747661378784607964618789699626944780069772139656774070980959670178729171061211905772843890404752132898687383233715614130877122778866701245274555799712007350218285499269015479603533645499551326105103882082592750188768594701761533933298972845949157370578884955347163643081288631661888934622819578317395903584883635580301565734200159239195663240850635017071790852695692367059258230727303892159623378219337803746439882789128943877327156841445135261547809475149495717810598341863131731080089031789018083283109261593202652504062115249338441942131655260760333948078122064203811894742313720276634675468197701686676571498940794112234193961646968013449610432802246160163747114889386088964102005337206843407153126319038245897307366161370722330911558616021738950890810165675771928889147112544396610951658350781818223294658652515615981744157845084277772616498869404663577781518651915904153789328343202980474741984516853744338407011628796870221347386876781928867410231052895944704445990670908163376246858668035323305886758036872370797733972234491603021182661098193936735937438621977680984360976252795689438300189482817134504802635466406086961568730976332360966287980687284213779888454396684804406919522690073102030096144869220778516805138607581104350154484235217585071651137089685324879650124505265839340520390718996026138205444262264394443056217256305570371558131515580334144562028593966134212407832678383826847441450402936661533409112120832191680553554230131573690241248216464457433842131921113454603163002409978293020770173110122449885201007680889345210788981458499100981980123641296698264428879921065295295766712154267698066805904610974691766279954599490826331779013397302947031418039665578003961309162151946164316121779562243409788969471789339005967107770912370046583209970763413549637947284941497613128003737503216484653746399727378665409106835417011244123738093727946473562369593355860852434444117073872310420121763362251451398887683227447135387487339261487651202723623337197732844324672287576824353984816468639609483821992545044226640353967344748547801847020981358692390873124741717723808409138290555057401408437812351262507404800386342478445448671871572115107134768410345710442820361570230100369781549779261716181230961645855620916012182616100670492017703440900980119336950863595965048911701032931899256508804900993137174447563813667008976788422242512722897436359200329398304431105913123420667292609769600832056186667512280372272238162038812967072757686562599477245880971579378050557295456777990224360613211848831237330765184856619801767796421694590439115886380173455756951201641850317502611184433625919509521394656795196210152076644403774201294686836793036572459188097629774238430777916124207866983717086330330956583527240157835355444810006537135236750368757389559856718128254703995547915577411996917948753002750001219244715144635583984417059150522332314561614654579217904723051015236779098417474094859525515866425474242042120287592982121607249751465299869387257001015572523393242016047540458319278732912617971148789855624707079832584975671449030489008730778682334218942563811402127651635884286257732890173314102660990835801737524173972773035953595604406348236374210145391618489860511105672682861077415752365819574675499516670604631912881212482911284824178518115536350299574751573417412914213821470355985653721458827410528201946749040511754063140927508055642856545951371123003487187131488303917712438654668150455618653788568687515792425538938658510142746039203907041820916734503816888142892414573793387777921025715789290714330254096686842869335562667478572987112363712811721208206557765453585682912062998575534190659153155542124281280880380786492895764470931317767615878845265031069970067422181806269562693111384070941873106748369080871043144514213754090035061727881629530283239440233351914118617649322280045067181067098938974464271147328008627006568493640887830808355867436703770820453567791299671051678222297923478044204537999154098051781819798171402711471825551275993389998818608293011055838257404697187842315126127155688420883477252388434026406142972625017449807846443391947467123058728626651924796495101341754907274693426447638621544002462368331172367238639666976860019664289056860247054268540836811479257487772661382667974867995117296459211385371544331156545117156107144622458834753781015622968738706853859160698245807349576006257578530313260950861437658884047979377344377573692889484811533542384368677945563640244524987936283920466312269139859271167439476497908925317173777958754945029582782672510241424527259354619992889771563438987704494425755271284373651470485129523858139770254313626015349783283144782562725781361318556995677358543301227249358625102466701855005093051415017180595650742033336880143883558125585785638447750646375992314068938418557494890564126237757790576061999179861242274949759677081682886489093879233299441997176505711602986257654924636524888017213007799777674246343176054264755330928945703048872858282597308013904843812049786993317880944611928437136327919092589815892043929782673297003962083702949694042616691363592144493485842946604230924294746023831775006993652762073038537966566932384981554574451412408358085651032474433707285618699149612570660263235198919993881688229888872575282636670244850876515225338029334078423972599431066002715352174739389457293122827849890516086566655220693675782559560737868173041205235120403087691173821300775936262700615398430193172088252635154034543677290440840869553466056588209336784843745832445349823504862871951399487609640840964950989824364218805461414830804172575377408931083163404835425010313858819979703330618858179694764721948351891044910994967712876346256890582122292691678761680055297779748425043622893809893928497463407831482712508366233368683528435590399211497174530541062969890786177961189677520691856040623666141211969400136168693080256095667494930855170653929766578924353466632997307714401177337483638624336557178446813099803777342646581599714080958512803032305384332470981009681497212377799387022628521248221941634012216559977775895620003438603505313357706189631489182333557350212940932513970126085800247199590017606402982457742253055196448617157265794033872972644537018678565000289050705797196808345024015012137653542494317741540819126969091430562807425066169009868559152313813310027788636271270673567507368361166541091049269726837453292572750379547472797986091973996555204503807052067236248301036783072391184293385237389762589700582982536303645437171691055401904034876346082320720081646874064678560708410467408130607528213713897383946117994689876602925962083448239634874345517687003567123989510562863433900275088362019026989156845548854166148750114979495684374867643682726793897668892972875855564773057584121338210702410313023865186097667950888474868298151279207325265010688721005922665144024579769281623622967736463346588044329278788101798540344792109558916548483652173733391022097194400705899608939498527822247806005528832977021896030501479428264248859054725802588890985253086355622742187178517736125273510633176997278923865130617626715917646248976768468793651826317407008842298924884052059907654717899065819124082053802608513946828250602829538060190768001876669899473285136479646650556033166566586553062958381916881540564056383343376289659475876255099798825104445419229435238836812032247342382573977070317022251307910912748531108320178672209075845913557445775352473240383896109182834429544379853827775461090613922783099850983372025566520741681249161378937233810425175162271296128809896818436180369352648363990109538739563845804708100359422952808513932004002494164619843446759841435941809240816863776922325546300695930538892729394830744079307952395146347136578343733927340425857608813430118218438522066410233903301165734745861904964798513967535988123147171501617340173373426522074794488300055643689029111300727756835482209645297538819167241469627627463757438431471310736301708498633765773260698738927955515683225228783877432916193101868318955934326778907141980011854746442129226907238763759502054225597691640451013765089776701838495185273476687450100904427650510613758458538742766287008199021502559393940525012776671098632919115159965401643684702850673335284289948200925443989620840946320991571555208092566007781768379356415669668001174175251268770695133299106145260439131488744973315822565827284981824048668469062908997599071329424287128664580360215965450297581199344371428018806830937443723025352960132670961003422874885327511022570691583371782591627121247662559909020192372935148362182072023602001356861184127435828697676211781217657962257196437538845704499155220477217635150020947370866046293703455706556048497139407784498501580863861327021002757572379153658321972886520161919486878496265388667846653792410323531596826753146923331466617774734863688275945327144840949429101334135865999590206734484620699056058283706840458673482133465991417246570284904218167350425576724471427864093629472312890293980154860630208600257038021617366357676749257306340381057245860159677351127995886924027689565728017595147548652957128771475851159007298625594067615758109852002840844605660779280336807216227299919638882723602818229136805387437664339439505123652757862973039439727829860096034808695999107382385776697382510049792486576219355767350320029545433254218686102610750263694394786746180343576132650557672368729856432404493609708670180121854293203083751176688048905310001656399995282012917796491508017474844881071636863358791634582514588747807762823917522319450567558911968947077186156128503354452487471984945945005971804251491581018556724590887426760348603287771734959440450731095566037041054308025560119970960702853383494095231345278927382301303547591780840024642926660642042268100746626118235167163251385676912425902672086489762242192286134939555773067583181474793387685076618237065896409130530182173264372713530905473702669451674008665099449960675364053050506621232023666621341078462080484775289232025519879976487850575611814501027990430447199185439944909338586487405392719224512567234303158648607117181934680664958567803037711977033640861397476739345887171271451050636550422587325079234068802527767117031515236841266871257022743308244723149728067512131550487320518110011303732907417134777053692416674954834579747449122774963884001215879631017914952101178938268471185721514771942686308824646996590059873450479194746268182701182133118905058444195791244713141050629970848881235296797035167112723132254115267740972418096532014972178289117661630384981903534166821887752522935888004073135531884116384269648142429539609929788733466481833104595437142014362451941746344151501826840661150848664908633134132963961251778203488806541004879321012444199525415648421697078980972636760679377684730393572652390598734008378542065349757760310368041407676145368568248773370248694394410972310537643377666086814566993825604240624085320323056123661070109401887214259253055229704250975116030436844118950226101885188718142018459532463504119600517599893692922488390649323268819731637286699065089350880335808300518601052320727785433691336503760307834705277702269880482407973930554732233724602525014883871689186921900725109623319278681995544232703066656774468329844404221133448789492176366915910465769068613025776833901762517178236244116749882793049129959686681984435886210171276111923321858869725306009119382515101334224353899359300784581281244131702371031220241055735819937380516600708546174020828730178691993477012001786985162305479808905086870878549949676200883536986517897679704676521475455502214102358524152502101358625460262593787814396123309605919433989755584643881025710353534497239496635482030140574477945958912047785041479185576954377449865823115239440618065328156119665550942642537328713732176788772699326796545650783578985045946456181480823879527536062646609490658257196698306583511780899563418377446501151366681276845986500656457417512934638593185931256627848795055301874126236947324890584138332872552416876234758315571129919201752512819633535243514294656958531810013933600387477096203676507479976362854690121365650115613628911650608718688499607002438467298003192786666325956410094488839985182767501349876309586692675587806031500719132488378746398457913926917204286825325084083140271849463693805154257200179465717562956659232634233097279962630989598624082998660331095249519256133612684287853040321370586690686752232146826096980571110499465861418082319757977608291613340247765822355863136717494451302187273217718681928436841151605782609283731895794915460394152340538250373108818942087153097101063271814473289015901772563202321442822042061637724974798675636856079060959819346561098030771005184016971662365097479476603987740004576532225135907648714437278873313575568304562244330257610666095535800748414782606043434835504981608587476842815961653947144675366384370855369728778019171553407852556681934934483359614679929270105627307328306605994083857699528000607454020639153713497951065810202959798824485651583378365331181858371900311875450041071322310365103346088799908080830663575694917015016204765194129621084401286197603797351036160641524118995616589461495590328776945261437178157227587737876000130282962125702037103526482385633499642793707168031981938429966009713399147840934874136067521373950679655868233736378123047019107377713645135554496176999326820418411235065359926184250353874745754913263635173248013707265412552245248218736203060845110815816072234673998688828316354922974105549991325864375584434878232735046956154508683922043922412165891479193271930439211037051393483755813856735211470761952909379673481159488901655920431394671227738919564517760979233933816591847242491312832104759261884805549147942655824577876001232682160601354537050376171773514132164190602118214406087203223166149988106406459027477342264648921144530271307093789018727177450034085387476657998580788858751137318278430092340115249649332254816816053588298904458760917432081543479579293076537214445020527601177759954200301338284412263662134554651001708349635701841921955667117540039280559314557614618143694098288084294750691572961340584612866741445773616921945024810025205061848888008953517320383395471382397009755953592026554464415389058063615286453450791105698861790352333074559641461037874717108103389322118199952322836493097149430657481252046762095067079809576952835468155004853363340036469607697628885537320159596238491958962087598909475857695257313547275740004467643325024235861772762472725232870523613085731643333641753752822426128694659519443545684609201949769933546449355413493199895009461814667803038451252046857102263759606341752295986150522690133449633505950548610961460390674774744426110629359441689128721996023003467203213702604533513149184606435424787986864553337727865950570287240195717559315897150225059661123372934607670582097673326882454031331640493795526481822527545765760265306648126515562099279365706304141026535048553419683519079477031389435002807264951217575363628618449605474866282965227598832357156478899039921931282494780857470156071112579110643657307951421625578229270344526327849624680654379670101996574831263582413764301571809752858886514747454736067857872793671103995094471912355103995927594272211463593688518073911574999207469066284971308394403796872535780011978598555980984598551281290953789920542656515333613815222730191579789574808600954640029513045603793706334477965546337262437173079124288271775092797032324021231003033998336665644896234320238118092231556693296662721639782348287801715091642547313374531443889084244348366113449089158184050900859745968343349931928791419596763574215296147195037273122220540344313478210115117222195596668132354195851392005186008784174959613700080940462373576716312959852324106346476451765489014707710031063076566599697979369867916267195109383228815125721251255862428933278272342655395272408348954881045452107094933847099371581247924351896949049502201317877092528962414049516204670871371725634209709436222426680823514000565755710462810087079921602030789041150761234823893746859788665854752804164907950676220681402859381723609714086465414613804704809501455664118871555936824956035926332394152190516383703841602273647649166690088548426843052570534667959711142951686598785376636761571331712205515955270404105115087864958201757753191554941915452641818288871250341712413977551430061410113420769212787442242542859611424568317992843378651368741737125619683925719247028925365483912070347767880845723294382522952789536413574118079541152822023314891232210912141865583738515638518783079715259379268261121494493292047774416019016783340497815434450290793170995514220128285362919010042369114532080937862569925224109190436113234437254986910390095289100554464527299234957834779983641632070255718660649118104116932402881897743428627334173337761888762078378017008837679935577013935912895384969791281625871898060033041571056804686988135723491848674644115879461384686454875627419657470626181138331419870575308591242638423878223629664505460225408868501207540480223575808774341408423064882107255514990669956968936494856315663674836917648943532550955227696819386604582010586938867491463373223504328089499859468800652729332049631881833675294895076799646246077903190949167327182286844267263337518468699877244512119714867059667591251176497908199330611322178526023376522445002926041580581392017380024312832131012968318148701336153183676166421625241031107671332385231286432797598730125963042167494729860178442770231554838099080535828995423315592252965942669020476225374206242586089848282486440486403226466937629167540707858754119089807516010410249699191268374594419019871618644755862897727500629209561002953845319933306628238267315555225042055699720666753820188679347409324458266937401842214490117304573343622258523986902529445062765373377282240459717919961368019842237910508180459945498649501051324944176787113098789855074648431430060987737208962910199877788227108157971373680560528881908622194600376402486664104006115901059369783126738128579935686800125220457875199631489658887818782167539249191880822749081340881002182893102321045633197777279354240543070988099938173225606360300463354475616634875051729353275039605376047461937880906494580551988269033561285147638080467206835108505678056698585766062883782392821788386945148525795078396393877836772214382646431317021815415735844672424704726265722217651300852467871154890520099217148869314287220989455852372868575317966736005002755958194935854673578472272899437591299952503238377561596279240402144905789565545712520842907512670562774691956583589136578165628464868009034260129427928548123020701288341520661250123829995633892564741839064388439721934789293613987168670915943618024027780136992888214750098785074898999261657726562612331853177933690942048735319864899131653638604815197451359144229661257311580980272106079034238855191193954874487449378819703918442379834175274532919756076409270618445587097553979717765398448108308538478458498218870712092671743017652285817990147591373385919407095973725863746673263967500100417642148585679528924632300335785503672999735007944429323063029626479420304509765464924849663976542315910879134581943025481924627105458374167806298690368861485894623853573733521546629228729920632645055812295704133776912079019488309134892261138856101382063608309204844372205522544076757276734157146430508811934784816762799747204756083685814022496241918038129046143213820304016633194616505295739357864024167000488251846944916375833547471047075420969997610123656406879458887480519876992113887740520327215146097470720870983006327316003288086629956594122600608653235058890855828393800393292613686579263650454308774463736234240817708678743697203053096872548034945758021312910267137374745916375380877657564929663544835856961938542455359879407988351248596803376541743979883494957919970460830390070779321170637440987733828585501194483216090177238045421311139414436169580933175151336980702522111737239240758468669189851880782638974194663701472851443668701498943663943466312634833116431997787015784784280182080999252383504109958675240202536246184705334308942393980192018803822424479560764492363297042232726094264508733876623804598566040419114784406316884149296255652570218383407391097399688670089367748178922786623300027666704770728891912607338394704509679557086651243205076420543762800387649680915292318753731734273294372009931740950850824288728627461462998534499852788867263600156326762347217789252163352066565660001136269849561213950679133698758482458202015552082131488283471643031307982780010900474639082860536743795522307201703752316470664280019218161373209153756584238990138350641349066862404967987836410198448560417677954893685868900738961545399336530907149960911261250501221129225587005023794116558593885424694269969193876913390943959539012630577547217540898073423044937546992895207841009220159776979274721905878665551128213498680184309937087475752285312461648880454742818276480890864498997853385798241318824045613337740258195152398668458518805549255194361029274639408719220032210183566887195315806608100585643977802869116321240765266268873272168484977370931247258228318291399534680900783466658463600832693441626073381910553088594839673131460049735680109119037665647729072071405124758134556918470119794999543110226831887660568763382934029946180261610391858027550564044104063407594472066866977972343370835440151424906995026122431404355643500149646931728230276030983687337485791269569650011263865859675490207770259135631762027690673945857103603296562973266762638864703181991135390541788102940879837002268575991773709669765773813020266502364848163087322901665828099893863651023945934956288659200897827184727340916844236019032920894792775974323258557016170891194446851638493056016036842915529982037653990794772866948604153534149169783788828336261288237056256849834823995252643061012352755901645811558143016530290809580829521413397384182894278547292725544306009259675648227635909664341046136770012980800730737048301125542435256267386594956684367293008022418070417899879030711643636046850901816902771296308929588643702278208962090962032780704953895698018269957171154268021883044854521138389369226541542917997660677404149743067736146907426220009260502113089775578055194518871755696788837201657907884028342878249404300681365474475314122189946131480398298466144420028897671443730523963145229138629039752115437047283805088162452929544719374815008004354074755693098586708066220260784730503568443805938491138955432930046769966081770806487621139813511275518630529848671845044073897901965116138820119702747753693239624981372064748639240863317912889523789125899136816085270004600745247875744970250943130656418950660967102000116194544776262558733378097696156438262352479637567919609661656011287845488143462046607670223867554610590580110678879255192006381214501412946627297905377713339236987896679260106593814667292279545724626405377160182269641398608802269904918231071084715182827848762097847093582744845715550270921343447421135166314380047870333745781930941363027026553396352179134120169303716342935414017314138593659792552533340904650539247180150442015134121387311423444670979126430773015381723062390540565713055669452928947805609870088461486868494400521853322837787184849547982831983819636157535129232159567625891680564515355811891466773582721854646291125817001644653942113271342891645549552824132053728714219332636306541153097251375549917497413898139056831105789491915785914851082925812060274827105553999120317918268095330090509695526791233532405555814448526618325299322431814146763136123141109158362160552312273941009054039806026237808650203637879996756716476921968367322104934636572177794816649971631606488674891569344824114086044861355153472136816628707372252641140221953905671782529252509631113821793932453034184387124384850323667376577541774706036856678769741610626397219737278605423855919892071387370208300569853784109856363210860402978038709846205583985935957503185803682195615361979665637765006642977794758261105784072615593544241611394382351515779676698473027949813589945406083101100893384992487030580138519780270277749894522842983238560616163247351015803383918226695164721824716785384270509729572873040488697515944075638374510539701424367772785723475271214632394212920026856636631630179585635908714762417768958986444962342867430571293812901117923708032955897090266337101414996235429246236693554965710970163244725034369246905341390975848446131526475399389560921772933451849027586252170148484150147518267763320187859239621134672230506651500590313057991185279011876715511785804241812867256289435421405305811664735013102256888651762982281364476034459842278800033107601544308749560000708926862637600281329548884644813632312059527551490789283016595538613023235148073622132570067405975381797813391542959512132594432435269827814706000415934557624783712904149169539877989520739461041003959897823879314653824825512610936415214801034458813917779882384752320834676322967093523846642489908892702524848266492957542781623106610774249720817372443912553600247190743610864197879427665348773607891632238238096716302452502244426776535440424923382261765710471874111816031546293397599731821778764002966302997022625672383893169774430622861628601523956926108302337075265382051623835878809328955211576884900678175257902820085875809432612605104783111483644157614939695403999660330394257124633484640014782658875218286127102800343394758229074300822671819724958761938261152052555259214733700259833352301143425061017731434357742233984937388187443436792679176029942163263298069468855730195268698777078650537390034113016843090439459920419930857589447429376355364854764125787304084395110771556085746864704905865564238854289941590832480674489161380710550792490561584969083824545836487635901491739740457328217983506215916009755021035919200899286878374507508473979374272508318343839226610492494985823232890451087737818680942541670130641428822109753499816779757499349026067310598890611609738972105538466315704316848653302535225020390019735732130595144844372766336871369858164624123526627383166899880853934663189589566455432688807409265849193679819084514371043195878270178564223932609739914999434584442718463468531328702850484891162022222089918709657098579763768780639860529192240901678938054741812950870758611179505751844534637603784721608591796871819061989587808246251037108968357787476234658411967007268657404462255963207283777772202494872043850726153993328640948670123258262654706221463043762506916434240915050732045824420658975921978350543269766952794193864324246503216091320145132448168275835245657061963488958171449906096326212423345426230746603635149464057439045189266792001257828816758104536113761846196028402180439246259774491060560688390139359538148347463968617782260239771926156816378007556218655401647975190163999336393801976919406172610845663656248825396885610894838220111165930390702711996005229410789563492199434968438270036057596996621278147670891203735920188473648264226957574536476270818239583924298157913504063481819788097054906987074870912032589234507601643455946495779523016582427415330234983078434046078629376136573370520230447087681993465944482902057501191224479428521000277017952833811095444619934404826648786755564085001833756473517984959241611981629709582844084413755526385208785548835453620332452807659947398192462082939830024596483410880394231439348608708797240313272507241899137489656389713829156187163439062009861503637215048228433076157007281787324171868823731361917156896070939709296866132089633875732871825890679550895065784327097977294305388397899060922137741517419089010302613831666746684352870433191378232912361896438956750409129151525425944593571019186896767096965311092334017972686786493591622248139934129768993885266273414112040370044344027895266382703438045503504953983016328941900599230295963073225754075851633411817175453437391807362537298456234493238187535647817910478715986402034796540470926943147277839475141857342616167391675740837894933119739686515346149739377837293202059509377549798892039256800734073280769888329096315074967301778124363192292730847561368316490343781978480830727164780838707845548747660380234926423390515905362153317669698579342503518787950890897571607304425814633896232241571369578713635882970330221269628844528466822569810687996921421960570324345515285405711173887802641965023192125886882846814912386794772165236799673822625165649729193925670486274763415254750493354407996678685761808001299948843522292371839856437338937864651363535379051531725157633030427474603345344246948749811165130660365674527614030593281666778094453791914302593583197600794846139753050658463448128160222219953755625006264392473130407426284818272509810163360157027305148773603272234588460982693725776056744841943960865957162359985892754704324560201665994416078844610934752754569799614550569502088717899478253779903282508670705168281681768217195252863837149045878516739016132438534008935553186075950153477334774158680751032168100521616120598270387587393137935983047934734867789726577558477981385030715552608817330570103764423105690445161745829050417779362511745478639055282148693135367260317414666069003575377640985706553129255378754977754356779980844325042651446493627201595148285141849037341957937471265928818933244448136033887971592635664056723262348482184073971724067388684719870396595667348254954066655132933257918540367561105465641159207804301156079691621730291048200375184101754953585953053623230393417037372593943525193321548660654959994911813936394461952611326609878919122511893571704362209305767784417041497579129395383669657600548642906686137820902824656473341585056044259411098867279967063206022745889939789778780154900765294608829996451727178417976812621219198936645031497194829318188346205047115369030253826398284347931155344640004060696192525060647304878596975213581915179198087625476424071148435017728809549693525255514825940978929450038468561497124524921069572465377779156384327445694710036797041232670376099523236273504604555492476670210830621507619669070259469834712906963652810670306963320564368396376348457990580886209326186420259637108691582251553757035483323941279061498090056469799872413746115113645745451033560362234698803388830104601375954560995763630340105451422104848320163039810306800410739963134644653874545284106313348495463379428468879719895596025163212467128116966366348797192483296993865239502433600116433590040829667954123069085497738959560332700477661172608275912449992108866050388295926654812596388524555603636172784016372205253164051154584492776925406077557862572691165835066480812389937616115118908567861477245017320655460079664253023753027384351343736153408133934727214845183277720866509862165890583165287085952769019088204311150477821479596360426791742478595305983533820210208053753634700807916991256989487172352219318164827842449794174248615327165034188860427733585868513815510973172784554531748081830938624842315948468520711823506150376231689043792285742362441854460713125730717510967799660977706864328141953042203341813781369389891806078949599417292462523322853356649190530405238055280629712521374265544951662332807155815393111588025702309616707445264852658407920607872202627645333017805275038516139408112619467841784834835017877411619066047842927584771713999499504787890137310264473952180904536188675325649016467684915932814633352034743343426541712741624881549553411402552791284098400267306399790293235313336979598988800536728556764860224205310493343137150813464468869568224121153286992914116301207313231901617773527158189737176735956820410024322207996212228337567590873809410854624008063331605819462987989919363146845387178743087104557351141929815578780027160263907989368016729559363917316101549907183935361032151613414792906967669125690972099275472757478855531312601989754309121638125244820031550190426285951215029378391639728187892479909941145006066207316604630763364846463633723684207818251889213407089605487915227974568343710127063305045778923032533553232894378265234163368689485143253865868090539057740040208347158399342588298981663483792521766367177999808852116847355690869468434060158403952565826073144275121953075633516919853962470328734175619696490066140529633910847798585388552385651599334218883663131911357461261951999064272492581542704882172373079062110257001455690826699468429648615831431593348539298084580859946127964772161439280113941458560017221772175709595065112898022174660186980351093647892240923442096014597420002498139976184826214161236613633185035484796066846879559992967076552045660684438507099961591036675753493542584475911956649761347323349532373534189165507332511208285242127925241059001644974189055758653035241017872103993286617829300258756864786682074925409311704904140006513168208267421716119841626873471061397352230834617909040354060700849091523616976558317756350019014323418643606672082201732304849298766476684717588201497145705683571914826977902546908392130675795370547377197954289805429388237763674361300200030661368610438166784160594814719781663602231184387740031853406939164899273845971997442023808468264869292381853784362723417401303860200827460771629192689857982073880262931926247462916799418654859546449567284342904070197116562135249112067231993385503350178424148200303823227925501175036384185533366004712458708942987983793866476480859763964525290125483311900210326795745837279939624249717263043326420646272477420264874518136011272432505209559568189248282556814262899891663128914941077212528193991350461806149271399609680312530076313411772238060027156901908714550548023119440114292580179632585827810167875753512598983684616973979042349925229530005655228534230447349034180151505709005840507482786298576152701694188182383814482998461806523901084685435982560467073641892424442290768467747360126448784638183010983564826962079699471042001787623378627958829787124701573199689226893307515832898347623173792771318691345586648324466841755149735493138380493646424655705126598062525908663315242192422382739717321449334774336163253033704514772488108501999984320417139380030318268525870698303214014781074111396312877358078523139496813495625467321862889858931702718977385998205264640914927197940436511678772873405864110495916454512328545009262371013205566219083785489028427915320432232000811238988105199999865254233477020037512922682802101422207030956089863875654637992117963961787789754355882630894448489535269314825917424751460983695635822149089607227327662172696624019038720729260524313488499160015113375576778728235980033726505389763006442894825000307609593126111140075078748729030995619283361934601902061634663028954586912730599389579163430540676300903204085839427942585916964340431911365588360726703117049408560871610238323305695815926465320943942703708861963660229612914312469525284641141854457126892190559529871249882682343070250850227449799972884999054995583413823866153897633551156010710388666328528854610321359991687867576685445353830044213426667007650909363237603337827360072498381218201526706421909371507650870696612278506584065035235455378665647445279531896919966669232819239349844192259602930837500143538224897351237733653728021384600046158687858922953499154965184334054257172606478134871139513466899982631872450034050059316971381978535788144909964302598862821983003470031174444432864694116690866100728878831550889540570899384681675933715964130872999747653998715232436081959350149110427078916183292960304004109680235789331008219537458723752630121785833840758543590351354014318616637806227075560059145723012841543072895449506920789685849335468953867653817191768780365164484133361416107320463263201835816763424233576386094767171100445551475389249008576289941686423741230651155952219856024746535869959975262549002510208282425219689255695298624242379519584787286436412200965542852848724780943841591802357237579289210641533216383690114445077638365160929269183442192926193116016943531901807765950486439475436142206652564268335389946323315497197003223675545917838355103987469102348444064114758232737991519217606519620326489916411230898210784354008242782875552146776800073018982323245393042844293204609004694618438598105221079165731209074030884892004471206377716214833962421572397424828058250951935869766812022386958757047169529021319860346887878519978717189894645392708271664619651919308517182492621795599848603018609000862536572768888629950925352867554245787486015816969305845325212432147264650552050892333518146923600967865649601451650790500468280694784727487855298389532799382586080443170181733451291254553652044404021667067412747493784031430169642530125351222822476233226911369072784157554854774547859692831418570446490998436152810870175675369408484951308546463078801235082027776087366260214074853638539074367933911103088543935389695866871660693517068824415443989089003742608399461164003869768780045028640169823252054248973180791228830168033076278774724413009050738971407589452092697723453517314855324414456241864816104655776715208411824023400714544211397202558572849257037639778595644244918046581679472923716264328067033572281655592487551693234548425998292833471512910759111253444675033173766225271446762938909410620158745731665260404299782606103399783934999890027541521421474645186065850613110105175680875353711057523144965897351412502061381728893422566022414901398324288063053911585556961098274579935685627875416935068120370513420377244726078340790526030527156188388965914679456552526723660676289418642560834150122816772905952499314931078853669058245700189760721077316732973188423793315534509277194923048065948424903942638795340778195126409581990410731326622527881597076297970319400089060307922196438325759116145382905934507471825368929454852808739976109694320681911316064994208908912858768195006053855993190119076146540126816719754690021019591181209092508862042497979096388121048597544648660519209401729512662711670104426066438932697605013272917174717673916155298255073037071384216789507075586099415681074338692473763823242979675383365481963979457422259581627805810382944891589309131885012403188770067894793309130532659239443647831161857986039603748849652355519743482989683169074162024030252950814300869233933904803502345101092406283408697086078796184783146319568988808083092716799857777989408469793649075439351061477448591424415086376041875787718052253845691026795798979150757665203042011428798915493154056894821336335212317875970290078085706318582012151572698157364461788661830377189738939441369857906172528833361592821339822352772260253691340180521327619531293276000273460775147768995628620375435168525483650075326479441240650606546958800038387485846675820267325038837701648605735609203709200793357458997403737165713952763563515858078068932101977375869286824113406876075341287725481876533110661903520744449676134195134214413718788734115530432757210182893691498478676332879742682074041381578815665039039762482071417614222740746309242895481315438777376832161331660578165786049687427738492275080858967263353399666913620147072162870143720078712706193279672698465488008586975971541184303804155580098483816509427175242436964379217677692412333494038537827895737834505761377251596254321728008603878715259283189227914687969855636596559746226441103110984725441553942895954808336229225359675399400216034996015244529962392786164435704177642279266998012123007576838647857773310725954527122383529275838852384921875350435614148631806925286602760746624658305505697549324353697034401298118214201681850682823943969647897544458823091682977960998635297540432468501297401552326965788314734776829060480263569532161378348819870457396799870701645466592463030270969718316254142996692786154933230888296173461263167535529542577298921972153157683510815038478046871178077047042139648973724477932801826561165055772365383404157457218831025458046990729573178940424784911444828161832094922197045175105626399986108937014196822784348384961008252665104643098106868886663630361446381440661220554900140259441060990356456401206238059422855575182340836925578388116486555259860794225202528303219236702596231061203955145839529037152810536645016912583238193043762379068957013887352615400070679912199771608075238626941466553675734358716589306071488825883952141206337577157411567983011500436059863524411394941406882266743361913180694760243951394787996034004850042364903088886530793932088096616363751116125200533327630369716668247254148818582260614091670164022879299511057657554803405697102573374390271066189210372251728914438769917239687663778920665110534495129973629602049066464310194637195347780421536550424363724911629794288499650968185769566668990635255700922252377301665669770319050672869061569254031137330555317526164931944104707472437171195596327544010715140119739418357299011937601600085971369093229374367980046425348456652547554291206205750595353024578093449137980529685220996106462448481388441425291179731955055725211436543892420211114107247648484238099352164843454480268034802091359268096126217542633274067960955770138856035009319212408789898991404077019935604593062431819523339316102116130252820349397872534724514678370640849946664678032001219728609247719789651247518297150533850085277970055445858812205099252221095618949829129537956316049474766248823479214090621494978519313589897359656294892999259901088018139039555765572028645414360488284070661156245674630033390189412071313281436970623148719537716393919784894093003266321889748240518736202025366503221601587875350745840317215084767377390365777066427672390521410798852331344142608459231866283813997177787420661942189280925685917106901456424249381564641533326936783836086179688703354692879170143197372827777759997204310745305516531128763551713547511173639954565156338934728065223699501226949226218560583074474079178828003885630380085401192311998181843509171498293043647200062016676566947982638453919796212054852844448906592448140973093880639476022284687840708726465449346375380133317004761680486636242158485777132757708164081127411355684255691748203537468186639368142937831996469149325693703987069985885015940540835076429996960210632816026392919261611204165785876162593599505740950030417318454978208005548695195299082616396426416223956773169225372650542867738327402280252958354317801563216964768555796292965142399440410722942679669389643712113160844559244743368641354893453720482024430186845741035329310598515357170378623869049743502110906103304232176786923973079865705831671864125738741756925464884575093610005161661651356026063500984384572752383022271233796831001703499551735489598219256368252354836182947967850156992427089749624341011128275245777854127479426945961272802025162648166433780895248475030742039234451167445144155932363424902981471339785983919554919748954787415680658438504323783446544346236466228092728154934135458321808988027886352451536591741570397175115768047724958654616965466788685420399045307051084282466282473651182303088188392331370050434871187522321726096129757918593055556475805832543816649738593156085559668135271179502337323182729944263920221805133183060543891624968347430220499940766898303963466768212582392201338317654182302809092574779699686605835057536794152189915414327637298492091276057190738067931197011938608588766813064054970935154567098188362064340228384510061033527083275143857199758137574089531215354249071276195799960267028573324443063043404616199259262909177464868195045885849023610967646384091239092547468337179330934306527478451256357584722508009873581586876165833394668859328682753682214737125155982809637370655794803489025580598720799790954986593416634608772454648054467229758992387610171702335132687189789719335879667297051091153933619813120286949808376462494488817689853667222606619274789724671483205265398036737104181183978849210140966643771199107823219886272528567311332903666564157938169204817870863915588643918998353039352729756198307429378988929651657631274639257628008336207201588262105004007696623109769947703402359751918380329424460301701237199561673895358191075486630941118527397687992859631859109405935740371207572627430845697167388935853535737968254565449035838609179256627919255147025489965616220085335095992501202542178017781381060561469060773187873375476068683554741941963900498804699734385164657343505322845566991839664084791342138931987441307334418486088120716266654643917901107406048306029129473361737163980014324084820434846883560140167522769487904053021808422985433112452723256034591216456658930257720994257512651076004152112385812703747693470406484307665499298343705079823470570878547305069603989049207831689433194315993202191777692118216616867732597503118383382767210526545663786258234170084724740522169217440612663525787961633129119603899079103458202155477239340229250097818328840563279634702617999256508958556327511322654795011228275116926342211193334746747549735547883255214638736951356191945907637739875940627288722486181689947724429586443292537256621878941199572610163419706421665140398008783375641004523240922483122685806033937068293121266391459867265031334551105375217603079104611265993080312092208004904673533272100898841386011394381053365506224839592370096368756222947918134484313787623113809552173775801836877288888141965336623898357310608487409279100663953859614043226217751310909432073012310461698068755863016950811561081601140142150415976286843284861558401291928558802717148039979946786656957627811698444034086461340445575348544614453583193241871942358629912081132986502516758089774149621048148027458909716629546185808059049070124275847322945175454088009262480249178869985001297604677598075423102959997398854214710590170574003200590305541388715036351280354556754439677614000891876016359703888802428612745632619973885596035985962708574320383834048758445359359165082814590307972050822130597268529242917071336209841485495742517447455520134349699400192144420834995245339294956538081756361370041543753082470899991479526287488263643873234719017724907497622627453052338419289466703145267390895000704718817524210551110429957562712522539404403926536862748924714197500745237966733812010527191942708919254744588527594493241878975201506295837441290732887592502210050621588102050094438988734515197078172285911328238005883601703294651335744109618022332672820360932684551128417026436599836453913421970373700395162366338826172218975414099742567919829940920990816065094287228540466599024662451630699139440435103286513692411574319161974157894222451758177380657703651594264958350752656444980266046175200174267978589223636427503388658878604123128558366402384737585661368424095226508662748680475873909746408783676848738576911018955078318512175354592997538263043839499840958346074935163922908687159043689309766744060129432140198911548650056185661291328031504314985757891393519451421451267722294282283498191300175466632659600573985456852734727097079723188386121853373939828301508496387051765429987965252823774605053898578310771632895681938097929853401005160424231315256659423502128990722686909735575427324928827209021840346013081184114197188051682812057301144534996841835413050803414038845093654202643242055149288558509684787948886921958355235022816380513158430853515855677696652865394863700187767515946527112075018832047011723113030387719076358073139438880899249879632534840563221263926696329171610678904862476852531249781582766532217258453428105997686447522566092512525129059613322881783175316449241297447342743546703477438501243572488194369930132772938547372506667108065827111850595528163626036981734159670092434667577521505300637105263443709702974643396810298251987865312041739163100673039274939147420095977896046976276373641513132213963616501009740118969974326808907481088995041488325366534089367969749884657014658486781730091109861933873552827778922789614936347466817904861297235827902560904169603416101698177401718606186382428227071481329911246006953812378552098934222889162290281067917200051188136460346147215831621445344531394694617942775219297485582524324463849927643051304750992229245958955356275297919522270301159659635536337637059566680207368233387389430355449428392488498436422750104737680087720399934076798791854606403544341275906889242577402570521843158942453473209473323194702181987292075353737185936713850553997592321905999292503194146194975835414339421516135862783982798084268254523842974457145107330058966891251994721632292373730295712296406868914813028707583873612278274801157958876150921452637326579014735820033887958396116876510153019439631119831818747828349210501558587576767386319261280512439179138759239883068580358692698268881492919544615533156716822150081065447505838905190112415682628595240288994350372892905694810558972180237706222480544053167593443791671496441817503590223998739120993028938442299250582942089407571387245096771868553734668897605032772909437016744167624381141475880803320814019213657222482289553407596041953204556780985709321109928169667233695521486677621137872295130884720544515142931445467816754545900133700089427068643582979953169809263312492399094984490076353839985283753878801481211957409507217298585723479523682584067927569252803956742932509185464941560499946182350481771167609523993103730882886494761289626926875197311872098249928404495634323081409204086103899703700457477667203284698491868315352721336796577367311209424999969703667614311257194255425495032341887239442609949623694587887143444402469812181193416655156251097707926775738830211682920334839166134323303837055629075069451366387346006041424235576358306132929127731831160817281841993928666519543735770950281946755939987537918266004974613556511656228191112245136439163564575767372285191189993945714470995872644508881190058551020238311886787946088440247055685774997990779896161294095087497387539704431269664627150813654480794362793252936431410211229217037687306545678346228976231968516343050337248497251429112089597489023260801722033992969255788422857929637300708073524388048986852742072826671889392532415439249806310780484028308214913191893317839915881233374044838187899469409320638564422308438683439111507696429741188064870852130043712951231337525790621057519470630244143279466658046552465265494910642577080398960468706474616264338630228704749926913308678667098610832377954480396548643527192387431503401539240803051375029422405098551920342590110078170665887634177182183760701530234723068079607887103697990446448149453451663318262209737447630652472662364358957049628263974988980584339924204692071231858674406056154795687978901633783300491542116403322892086201049785690371561927086617072756257077113100127803918007023383026688289038307929171377891094275072391361903144784986478096871079410860355848111353652022487229144480352784862134586773345648907883379269684808051747648159873708022085705275929228801962474249525825272665138060185834667977855575200624029492638110124379449141366905246962169389899244290977516416160490687027972162546280144645097241595280619002321493191515653122953433473522601358943018380929238681678759453885330763408604067199164379747252183127269906749072793479490096711747821542600222263212238218686042198068790017461109566185661673908323417472006137727530575927967344332910918209976366451301855003581936569308208956983999115486209241910186382647996497054562309714422605104010124502136986080816583968940450361284766522854417207685966601426969630197064449300092408812215694976923472790594567717617629711677966092074492297511876127435870968995036711153316597228353645657866151564481565629622638996526494061366227097507763632316582899916212204304033275380899204032731039433972395302399933583494884517824435806291556774477625999047401480604516217058690667373305996373061208194718084313037435944598837405806253618512798325217919361935663646352005086407553103325327681389679785989124634491606018101719926629922148430110585386093138805876331676523241816150582962457849925874944099362551153075169497526733985953818425786741997015875478378266893179832596001778798900886815819293048589079561383146132912981991934352066835891094632399908679780959568966960441435711092585513276637140487207944517776535717315665970488326561465403033193431767025586824615153707061599420908926312878584020199128704159290721273667207606868965022958054353397003565421611451987192234132322630836521868015050815332783173215962788628593447367574499490728244469421825183342846710141164565128798140301928088731008849532735141465953715666082750412336188133337489894633486483088999490504431532639860722382917396816454411355134530718392021728799616181319184475140698262631882636525961402443269102400163839370977572252271918386658600051648979297819594794564022325745986435173741292542526766295212234249481191151432382695887229503604277969221444329814385387999115999643293515834627975680426750453903685271361238116445396869300146045326833348940105286794653603891081807853473670445371766324303835477819217797647991458842925998795132921546636374590815951088278324294891643720660464947156066725289171471457612800052216884716133131752514805861323036775356137306471838216619623750732863430750739845987375425549293082533903692453867951345013565566922042503166957765051357470078484290255689157191424291742728440953066801643576390330127803825627355855328132029417904186829627617181760792061200347368555671337609929344578041571764272748283974928342966751769176571272597508388509195793762177239998082690486541254539664985780642548491114741769787097275361252959795136444006879036215365133234560787540852676254932751517999949287046313323310990208880018018293304832114623394771068824676783255876037515857988597137414836621556189701002600309280677406990151312078336295179788877639606662653973251669004551411133997750334842754723407021066962307371842864827616294939116306798144410317256179730724547347175512517271926884968409425997175216637484436624800226728650078472740198502209846680995476405297631509388546165132477365912902897216188368248851386207220647447011681997844478332219795572535562140008373525498772384422481599696611719373378556198290898901001775639283683217512097231367624885196173709516962748916695452758458832299114512777390322448521525701175148672030255163440999059818717966219164022794413526205109084276664751425026509819475917788618153271695954600355467947674385984639151622420594917640033764093875815715778256478165222151045620498385795143250076650473844907829371954672093997813917481227311227793317976095123699655370543213248482189084487046494725111425168114166559064407415442712808678708163172389267465106395545701600191749495627687078238128502704191296576033043784979124501734216583146970526653910487693271954996400643786965581160458554914638165531787272737460786257660699593033869986965991183291987911498988682519729099769846047746715122650963167248524241488624331368749098704207402732539908104727171944379737636893910024648965692346775175202010913471619012224657956816529846118160642356000700721342507446042541874955477826706526555959757901135205129045739122316926019001821613947371247737282731773386135537276267667781936399277992486039322245749051966660024030919573624406314795621090263771174265476845686329530532385225618062629610093563454431564015648284646052555638182975997854910870343639102374322515457100358294373983883411079984883223865274064766505950967483158110149974053327880343416452421761350361659978002673816491594795623792873086622023986159023933151606236173541479830748706066287982260415477036880840492565898685861352289831945997587972930285132166751214398117049316606577422353435518692169556224784621026768195297804261457827323659653041774154177814804532685309001320354227603167001050080669506860257121470940185463984681547193913070839800912459858979172167836566188765906294188395289834680655456789983026596562022200703499303703818833352949581022220404634171419181494000449773031813778925798489099142023092873840931910433476830288598106696629461116010585109110372575818623645925650240678142247859911670199113973881733900744627287257369276935411269115036746517787584239160376295757047225918578891219625778303484269988635677846683980657535106277184154080715761783961337870816123406948694264271852449046927234384492045262933971752781026113400692401469704722900362006332359796710780795850694766177831489040285611342370944744592086238343033897526062383489960014583808955486468115105961868594905325268193443647295586122946206891255727566543981137803138579851193838550473563891017221177199709006121989742755301934496996736643533632052903687807058041501350284329953716248487039694256979973557506602432194326978950527519265779185047605483714789104345954645416368026678286742577697365924983899967043687137987647191746744964684395244054363181633125667468180145957264927900609005021594957295805764791570613393421120617466459542960761916004960491849942780894232961422542641614155513776576423313397040501358648282472778878268914525960074143489654834410963713712303285998026510137047601753300221384240320387059076548026580972509641793854445400832876391189141372156735847411747731883950336392533754851604065273600204504150748798947190198264288616436867923009913929447403274934085792479166483545017124073862799943040993389148183987062068499716204777486468443334392827401944177101334742712198174431451691672818953769071942426717819276053969242358544500704514695366002206158399470029583778035443120575124773269044997807159395057014407403528612192798755680019718690674083925711976588793145772883270662510749173292683909363618365911180946599779030663716387832635898242835332157117346459389522616594168809422343993793973027675743740288710935434025387671780077007160075294954295135132309244738003168548238977082647737785895466406292802083282397380408563277448351486523274969889736792091772271735830851062803105640405484997446862840954699534337233097689765132205439285915286481570406918441390637893242092918742163637985283768613836920642383081989674435074527833034717332083985424444750721300315319027503512754548652562886366952105168908553745067564050444143493248146681778085617011580506826228079518016132297520736388226673864221535471351686506757314250288549349906155572391372668272473674464186474899947428359304424420970544073702232603739631971220393337277172200323291351745260325253731114016797496554269841631127638384160567053137076931425068301037575140157070281628916019632481366933106012225169427281333995966231939353822592361792749026232821707701743696695054865687564731559499146370565093426703767273922899179416325607748604265373180086283896317351382980263644234418649352405482262428809801002910512270689670460658236416523327940526669182567372658506692128200277156116801071474682073593064521620097395215435863261694299307683227944919345458828036382731326365857032846457179332656132398877274061401896270916006268959428082771430499776669335508870895266863914110898998312054214901684140189027062498706320219519298193918599464169020606902505486328906925115053895271308200420437250501244598050333720569432355139239538302149353574977526794483170018194495636803285197430871274556660352356753267715722520383827755117969846323634938183349523828179231950678990541619377253992298646881558431123479544512075669706363760959085042589859899128438274217882345539902389232624454076544334616516002607785748380570225348669112239663031653804816516327249951060394563940492402151599585598275307261786242019973347975455644278361493075069044229578916342179244073076566582934454384575292221929204173892477134332536515371941967478269687968775004004027695496681439803484959284636193750050865832907379118621377069722358598795002023218977170361107831482867726638769694015009212660149616575723252552901832637408788665244885390353517730406763623007652177758867937209464182719042480841351017231817238676138592043221680355064072962794609326136515245912677332043317863827030658982549727986087334290246422349987507518278403007838460622210254577593641541763046747880786043607558531387798586574194463606381463419264367057072399726680158081759487660275445764385334470053046289168998199266782185502868677931231624766128410678717035525089283444907748525393866354058674342343203772854527202148326492665726956786269663734766263754187767471315544848070610525101679160342100470821924433448027168221648093636533702432375214561171769615730855867123760351880534873403664963690497502670825911578285692442442580260641139642176838391007409526246451005139687394833133681843695919595475423117943684471913353488744711070299596022349033648342142270871591363958270339288698403832985652692738468658470332989441281078632874067592864998128517467789066229963609407467747346522989012298824712524350741245792271053016549716203248596575377237518716194922984962979674235242125203976472111718943731990850040297534044810215529034581166103164296896549093208648800250191836858620284929360076569517887798394293899275370291801197455519323720352771134806830127768990186796107065083914480985041474867727614396740317650683356800643347163219222499922505016928213763647357917985455070556970236871590113492072901961424094863887163540022362704160150574965843910298235050696753982312636116271973174819499917291367179582666537514833781336213460044672377226075479065871876619239069589809966988674957629197873571142210585366613490370069908669960595633935963665034090275661074538791341500748547945422207066463944395916399202466055577304123142167389678652585469090915921397497349910378984662834968058021963217702083026004354423525772086899530292465780936298755440799180850727226748702241008461837047886654821816277564316996109277878578227391502318166864490512211102926427928535433789935411692055603505198830087291008707619175260898977857492919950766264224208025741234465053274869351739549008127565482533383824116323591988184599206490093956909989788220176277643383130938981630930421241562830144302488082729784397820135072428730757752283199945340154459428895367530143601404781298064238261936400722671009455229887806355019732073110816177442183939297184749669868497226195302348720012667156814379064363248381795746344984958083418165087493667709855170655485575561238546089243093627479131211336339636426719365942779073847847661233779921827852162085774555403996532426507586021838339745924030667168694796058624306951591158991608699325688763633901992548828614640252000525835891672974077843358931953675018685223548288594024096778242487085662701520582532981225233294404078240072297989145713500238897596613095360995723475542962473378121196795593211714925531741454714710681393738260941008711655959048752622675747529155535569900730278104320969979101112665688477073966706084308192269804996672577283691697774715155145740414765527994491545850807567068222076638204061461760808318277621902799167098949182675794102886377868703570410584596790534899989301385150242360752787437192814382401965871751534417006993965128957314836946045744193502184677366290445738186503401049834605371127250572443708695758329783097461179944562362942073113962175719129564898213525570432913732985573508884642596078336869025449682551829394423032185718584083583488080101624205901633140891544055432325550371456050246689787070947456877109796967085424059157959111381725587247783645254828522958516972078727914252858595974225072905979693743588188936451761194872745077450319199002707894564480318645364061444332535424376933467190983591433901770960246541072919080373580985203985917860254462623340958280090747784064852658165162214766417380740577741467677201450674026672530298977819749079774774360315225223866695212612624423040568867347995695985297013545302336335031847434767272987702252773131787751738544881142164126246382598250932585181897463485420605172997531711829402549527574236135012740848407881124815989877513351682476976678162023696768633495698112563015107762701228912057773573426959669380245474977609253879703374100569492705244294646287121382450184449490979631884816425949329247616734519802890157779285600513181968671311651799624255013121324471981479466833589879309029766037402959505922587443132525873298380388190681728963586591809498778777020661031680987715441297461636006701750426078312724460479401540782776547183021797215344415606346038595155795585674608898848991875536770376322311139268112035518846218503594474114135724092761724304648185016898934328096985821813404314464366763763463046486170274670770583196170945435206215905497755261691499487756240984864914219015452193650076369110342015948473504203487375441736820399858633127793110460735133359642428545873578918158638764853489452800933148275670455289454132953540292089861790256898287259746416997892826475833487620103765661956962339637459573309252581381643180654845168791567483414709852701545617380333603394729314199541473634745644947217393232454945520410187542962838613093962157265749217019940290592076237470302701273795832935928514555610612010971175506563620646985858933950672934923655285275087164984020297608763087801872591080710474758689598739823255883517486012373902066671769647585704737439294387979419311105476968288420305274480914882082459518965186951190796302359723022982664675179713411733796223514090217951304439699685316523305679306687121171990671799097132677088291130441731932234596697724942671297017942427358607348935186805757773772187051336760209565121127663016847874265669490722375176231578309874233212386317831117601709520973841570227493893917193682551388079338569354067778132963120453222018036673963975182801214236187023011755469525074695805055604843851072606139771603220677108571292888980528514413283852805146827550648621972948008037115414334983270569833514070202060920877227176576853522340927104407299366613700710695017365086698271516852124362254306723328496485027515040533233526856210313974529003448688675999421752870949694811047897017561597409731747452092900145926729062933247306579348607410748813596094412199281158888626550196152333045581031943783502587102726148942252801198641913999059362124702026264666860063768380333222277251992165618576496696191100606495215130658007275486083951161862185523392553334997061479571600955132030978364273182067239508222944129254565880700611646319902547768556036737424553292568987870470868656420004113541511296790527249170018220281753675898710350219057249323970384615571995335738023621349009953034754399454007864942645860884771183365107194774580194529890992243782580157341355322775415087368141227591683914568599428992544485966935790136051252485513606882113559177959639448045264828865814193368701964926601940544000846102087982492122826249641891172468772833573544202578067131038898187853336851252146441328992210621946299097037625837664100748972975546196052084407663043193337660904434685743158353775966968995355491207015813941441232976055832815163122496225074345837761478081226372197029692642120191167041606484409881173407229094679412255550520018855080579672621649329930995949481995114100186796922362371160960262381824578682603862526668478004926275224364656569651147931781466505340256741578269449209987716499477266950840290183026190126042497445762128135885369771784465227922175861207412862918545520039250171459070837502377629887039099309889163154115114748022175961057655868408102105472378477547953118342598397397651631038593870935565596795394129062231140740550216608356037064714622173423175646858654075321523513084220176307549573247723212748877294521420207192875421347731965627111813159618067953616667673315475763554913258371035014298733332811833678031071477041270588016959023918138289066391984647871479008514444901030794940440982340578508486003620178350190513820608208108415852476101684132333024772939232494164703906027050923856276148581941977711023116881321153736874660383463645766315793392882368776759197058002508220367354538552632978183665121852825167693038525692855708204443363307672212454549495937222475114845718104059446758507432707446924063052425563752120925634001409983255045932648761838584855642389884314009160827652383107571964883810673864933342969624483404489974366343549381230440096336489154339850029467516913965434115127773007287800886587553166437098139844987321539057306344285203181728510744442432270305756021242065641025097518269994388229901876148326992005347418456827396665071532943164200506153354987040274007178082157124394719906261140317841851899148051532544310084910307838888719313839475108753762540143245611769822316193933768990366990578834178217150286481499466567304289792435759587552908167398006662248556387861824351896824143707065982744078864475148956715207193586635435227844611360769770691262039448434608716041683858406906484256661029306111284068833278045294952709017414514851934569718444171938608477428171516845170079269381307707937593892981650958408823754879247369793864874273541961146535863584682435754894034060285813592423649913817865374301725194435461912749591020412608176225451761764247469107768954700228005870819877574044044793058240512830564827321658334757225598061847252756829967163321652343890422999879162611974347051501108252619891951920752024458103797196432759238811457778638151016465383987366419267687074115830104900847597457936285905288893628945777468135823282763747296796881828824429020324880327922871593691663547132759708466734430340351769847991546087302180846074068314687118261397123228275327796888117458733067186759154514492024393695625436022839443416115931758363378878835979532872752628462053850489420226183385123047189122864078107067444910838138761003059609547588738390864555361583244179259507266073383002885333008351273112157477345794802010498722446601882724237436357747563057207042468669506998107611487454345874952876172527229196346475850110227921965064069648444243707158987366172680459944947921060152890376425400540710844824087743000742047560110021607198429637456868720396683795986768610279077061820421277128523519979663470098408621709197691117727933385545354871348119359770755374865891885822376346707844864657588105269190863433361095751488476657804730182975383631062985152620731515383747767002577245030393654728842461737737030456039464652877927510898885625638760481064229903112750312475677152536687399614800727144394136456053506013359459043171399134692540284429498305695428087530164900175637606811592852793358846892773625708116893550305000673575422583506849857169217225551562129800099119719661456609102200849099594901643551283646491473286891653205803503135115808625470584355197596707050160982978575709666418965632152936147896028198808893608964478944634998561416129254139894497780242976039608976185284807490464213284324127257448575107593269155123882376595803425916382448336598003008267618096169515841540347210703662856890957187245661816931692185662688118391952098778959394483739974383548639828466617563517070027505399072453586072453991913125842583570819404335926421515617682404903524435011220752545883921944612129477593099902653627337147657614297845085394796062566347293289740692722587970888698756496191972278346688449379299090609473246244816056480612867229709399099818567443351920382954876879987492136244677737396579618518699524472233939989255803723284384801022802557339264994540079548538336517282116255411779224087469689321899289028850317526638022201684702596194295797533686922459784577237445965145158773943095138318451200544591256195624443243061407168758921160790478264991157965332431707070047133598499223166793485229988473378332820804962320267701919845395866542067274816720651630777272465873366037788266866111739103530028950950942143520752482259527326859940972582802827115400212210390250870317243496661413168471400872472474258736252975348572058308169537827277521540086492898080869077679900198899964244319103063609782736915710936817161302663405774470993311898340774621063368714314611189488475174296756761005648992800519401974473557756510037640595920340715845200202133353879480415983892989859779235618446613268773196525991094568081298567116975503892244641641138755635962175914344426217145846035374701890474675699446996893138792081921534126440284318528098275328570390177280413643602568690919212321451493742574186082306127006122795811099546802235898028655131020008193041139110097776464365305420694154522488700235139699650060890021335462415971799448198637105742285603066859341187128016906802801093742994376407950076656890536180061306275855723502753526167357175922068827848673232229588552754050777305100378521372614775600272753402323816984819068819728632202375072856967082280053086341492254768464741320773573064002633997377292512396706627395504553738356913027938558565002696595110730797504317086630830843786323812035595919737490007781058856569315761875862272016563965151452157936000570900045186764477464796125077338652108670419893402594032260970842604174900569855100617671586883998703901392254604802760452210548997257853366699356848744904777883946865562487659159768575412606695789299785763959428377559768115409429747311543008125899438044352179816685963636091004557721528265504133734165089042324472196836697856127064513378259726862822508820550771169636133069449656787929712110535685607238958457765042814801069002388344120397370522428051837081361694940561406531979114836872224180959252128743969111009798702533798151363393491888315292343383890152397952370018353091390811226860522726896903051141209690982233743464796579459263111615051054905363520175565417694201470029432688418515278224460979354622526612669798534726140038189671065917956927814737825230532468251969169349394328124589698504783955351529059781887377878287732543129927009867485637343779091001370383770144925551534399769786564507884950137478684927747233137614147110963219779300888351273748129168743480228831889410507466910310617690963101398895496630006062878275717980222101617026448175071250120044197218707178100801964173270394336803579716480529376780199272884903037814325726330922018502658798324494524522760973524665558100896882657224079314394741866294463608027817837955167104172043073130364871467726165436571637481580529765116440550992157251259342106045218597161104066092376910320278113358323289442101293401964950220569709343106219743792299555481217595190312487223321800873221543601519616817899381122857305439400821764124704622381562646549192091425952306910102826457856126712189141543277091415603294033025970444492712292124841210091546003989235972003052618958719848865368347906893478524478449615612532890461867095192385826715643595885503989795301755242781139366150037682171595729427237879088253243089542657816949443898366540086973516194767984510669338962050794451711821672718802296549342136748888587316959288078623613965045838862766401473428796151750159208869932009977918494469733722623732913618406308870125948753567107468356635288427220185530473694077438757467595065570715208435519416749654053998005964788185920034843525848862614845088508348882710080063480390999728610494031453044605091156417790212149271368405540633500311331617134945156096416711942557991151729663572377022367737049282722976182361427890695252692904140574144806646643490270391337861464683556649395479404008660298565119402781445606884589649988364763378378708009063218743883777568268929889018164480133285146230931307394909521963197570385050671456602829321336706168241229338034843398829159176155242171620903595557674050976254033017550421746270314370496111901616641668623986388868725218268047989697446514623017242405481940321369237154049445615212452612914440089653433472935421870037237659570001395651326251236234412254965400546114705846062981700658330520687000527933146759496233921381254397242313251316782981710065157722594929374370000319712178439605719750356260682560525646096969018075901309693612073274595343134321164198034815747522850556086835380688920818975985895386503610155560776629567522997817187350692030103102585242302314642994754730544671670207613156018476099764403870042292425214198263636171872882766502980522086381038153471996751929023329357288135360609838085367923662593683599488024168745816439151806595598385849512015956245291290338650521578121722292091378794793792139179842249982111775111778262092635672792084181031083598167966496025289760222595151942306152145196521608989031211330335828504797765345364914374904573037141992591922788898184926961464864082041076202592726417943188207898898979278859185339546077414819136525498262639538950550537783712014751021449291842556783301079014358594411075126566776416317883271411231381985869420519748048063377640328817698220782690833293920445305105928929385083720543307514312087176432126441580727983902838802445028027073525792555135558627033687699281647171368828817694314154584801074497443825931959512076883305257114448870474923442861585826744166792644313351970618792329989240789452358930685378154278473776101878783039046071166465506699146280139005112287238228567118010527879510517029961373370944817213640829635642369954187141732180609395465134915818941278892864926044874094736645974013588712765085547475308465178146542548982920892324791104134939080102520267262219541138706209991571262476104867869625555336376828745086748304268622168985046271360438236735825786205607612388350952756032880306160959443273128979230392183413493068364230757863628444417915433556670853165953030439870652578011050841808380398296605806864723332511442992571813865700047353077591087338005606682952679727556883639234167695501511047429208729725419420648118060928649931284479185094499392041279849232602744861897453855058700208000530393006236397855314870972228496520854751882607913397607814691239516827079437209263997691099419920993890847064077984976011332056502805019319881760649617325543378257384361876526137140476694301861827425826829013661408509412195245977510860188185598523237772596957779680870556484999903776315450743287051881094113556655649339603452000859188392601360077476812982726626540047445355903019864856461020156282073353395112786741666679098955103138344741830410660569223131470604614842329330867042176832225934747334947939159298058091583973558535780579586117237283101811490960728157030322981227561789391476950798534729053172539892414095473707616965413849466110385813082442422057636356551940527134579871711383729832316518840957786400761786778024043331206456708408495241642366380500303206739300397658189050835280267563538898859090874818829208768998759686769781892385981077453858498863988637218508182835316363527256944157928598894750384199832619523223645355376327373480440197721777983944018278270402537794883261578245913224298334659360390077087753434870574524792764042953599123460693695877283055867652935162226878683151702111790972041690067887814116705538253975493884061373604764972620314537279207617169828795040064669399759963668520395806661994252311421970051009152286611744123282101385640077010093735994431030849900969745741760414993356463209745444224470392364077426300166671121372482268747114621382647544402556531154237137713683486913555387315905200719115738505494416870107840161988657578446881970913677379464912622654574723545538365577576945973192358236884244946224501130571172452693677232368461520549047573819602052607545453966153540502793314181693385862677788972188187867202284237276647098680257850455061700380211955530207277005681318785236870783307480007397069941853129440751761757570010148798880219161449819601769823096340804276099907189670946360738113557352302737057930084422196811485937856961369327207419167123116073488374880190605387582260256146833105641456946225930976036346943115742170634389135482303619770245305145484911569489499506353996516792245387193096175319557799666760712816730720746900464199356132707188353332325864612284945560201878684541928303171555777553857473206094085640854085319428031673900707559220976714305884954807340724405720681756615557664222684904488881229953708326896108524585589666107898569669133451667261770822938035122410205901507255426815403898914440619288751706389427410699533235307039259705085413777929688062783585674037884521938249591543416009688302197255812425135120163464188135760417537703093803611298251641838953760556915096678702620217500444000282365911756373569107222646909709189742173164873918920690383548308091995711954606315301757783112146967705137476095577463127579348924814432825995178150204893945144011670699607912670862164093151832614067177181992767020913692027560914268745210075206037811334508164204236979508566306846018457332138660965809065153081406805832799975590201164933877953976098643329372195830975828662299405582882260850948693261774801913555357042386362228548708786910207281341587319545346070596195235990665127555799340148335215191704453130876716265534004820573113227672421466868658057286464479603108657883917288461616459217786997809142569009081995370773543038290374861456998445998266824060218843698703824424434961526675917897643047569790022186742415739914070596782713197766237419520040854470488964055729598229474845769988987686976041360473653941793581852555462265867240652707870901824136863093551643911176485953612251313772778616919966584082470569871002189750949049136789774724905586913086608900606936597275462103580425543545784614671684536682320068360498609697077918090525188646363214084978276193516759295199803041666498388802102040355944069840127025727366828144135317287085375949267764572224927379727408848045022677814361495628774927495072810059545135711935599683259520582256276660963786532992320749249469934319893520928920410514933286554065839894605323086527196500145393834607647725907699247065627784115042057730545631426420515843646944658003899408332736906860977753724216489705511734324133405418688502377796102190307780069673665418836059066963476964897517397298164436847156155654254876490040600746981038451698862712004400269696850974260466422124159969763394196858412368172698700284559233964158528979937890929606848444128798494961144407893565299051707365795868210252878593975257650843683288325362840366809172636132770043957706821352197477642474100489785493639173079585955935402119076525361592761597184874185293475505993379102006578803166228672183911406057772193088963909245285602745813136549019492068753171265149526376539247012985180911652580557719922405203506544630800044739688166054419424048025847192066174229737381126466771835560878475091768574498060329380250514062516419668290002615166569861916000423687236595004355567803256567914812712114899072289978345248683959039328201274856709223891804241001104927180975092467933197302057404295288781287303377628175779453947861055097809141877880148502508443378092593163797427745556193468569026592861713036977602347016208491027412573034518521765241599948910515276226243482593618720104163423045153991771436184068725049671368615131340149387500047705852217642798059576024774422347122084698602556177723771058013837720775202026889763029441527632746018885047451707651741216309853398355876829527821356527513977760751345545792476506284714826049836886714130634536352133590809147091543078940861846570018832154409144594989872873733585920734286588064444393929289443648430937861128266466685978002556793156056289487026860355542356546236840985828553949924176904772561559014253240460743962167048023855401517097611736936802527432830560220361963238327133774657384701241818515895991724279973026257049145507616438561170653916114951509788387333400233818048327494673128452001272876876421360658167348888035155189348012730921048536819190712560455457853924405682999948659924781113777568660999729124254180846594581725066280697247598177937480831326675914685842750042722110828310215210167782209665926920239465610650265929656702077397056849858440142921886747288888265033995240089071352031075702923613521382394699233779712923168346927259593372752397332246530558791149722677795698882819474609992802178923659013134554617431566656850515997103397554303295351837055284976154588567869509500772503728675740866101366720810368983776303419046379679572241060170389936868652102658348032741373884071847622430004437146776277162560784791398464909190142284957067955899967626830508541637599544846755332331551154915609582887182432437905808206083099438379354464916470182980965899601750207989086585652852345945507996042787221898263264433083497016784689232652745647378635062872518459560940771980098539667038607355755626455560823875849046002380470574425118830120888279895969983095566321028351210588449236959669970557931018277251221109781766296328554459310608701029298553096301392370914425173479161973039342649828461798852306652688979792198339110763933403336008637474203086842783211967287186040617006596791625567901627569331586503999446242127317619063648581606990259195136385050965487121907295204405875758848084242680286122972008624694969957073165713572729163926798001427941880494786451616690894058441016393460430031326984245616615026182592378646148283368087622546074542162050741349031891341761050087160472503380105814786849339763254329929792792103825568605713891121000993794061556683824219715109701005054560905010958046690291002447889259874827093612768737874551361711463444023040118456629141817317752205352056646059815529066176345374748846203860071056909481571177145912313093004894714924413212902260317027133062964571923958416663605345602527750620886773581356803602037987416797405197524221640156951584726180753058407488187923383237634129413333695101703905874786692342612644598188140557401032594007380063702442422229301777067995673635144624894152686706566247439994318456022973894255889750229765724661052359001827220731111408207044855108406435756080695381332920792488743328825390197603647660490683349989376148976605912840626739466426054231222840607185724954437502375350054545721195122891297990898092398627540710932425669951706021176280985017530902550614427240256523352431483093687411623517968243977169148371659350935975089756735543121160389039808351307156216497441141264245337516274792242189556095231000550336400037601430899330317417373029256010093093050652560479227116876902824986430937325412177784048052735462688606932456115039523791034380566411892916220997593998991738854989542576153045471235374535744248085245544128317420181271198436788123515661937402953223725729473980902720998856520850684982013223416085341876606452339788053004671760205623919901854286275529673550215821496744194201064316853204043824699827451268976202527250302481008016870810907990732025023084117337302309597940105653054189991536335463578156986983179732758543866562467600891731690018158575209193152819713887224950900333438491220839006729942914368522006356146963119268818735844384893292431312784832847305205931646340877903572096916717373885324374732447420138706700004757385047880293926447560274373122968035515477029549694814312208220412485725404418971622393221291407160029711780824822251189148329112276785943638571838703485053987002272343226894223438839687373764357693526655277345764487150071003080747106218045919554996439164709838768575123581826856799126665723631729646581374216175621275407304206139005754745961943863233082456417553938517385560460745123069994371487841238415842085533682276990970616110225386437161546353306246888198170047928749296981755110194194557430888492391538181239244540884270534249672758227213350837354594019999630877980691508238876044231479291172049809004511625347232673420036621078746666046282250086414624610245161073702644806127780475921434814744092340812151202745423744302523138223266031110981028606845983759146830781465283541612002844637602564694743298501051904927957631516885373203769913788340858355374398153062413576081325923366587521916584075730689053993756378307559944406014753585335878126108910911783921937348975697781901648218740439546476686453760470485651033881978984629981889290465917738475327082197838628505047768026083604098336068819353046568629095665775130332402603204568615864064353725381935144254664657722460353671273420683561787239437240060766126526555538710252363638036590994875136810904726055789877172326328802250551613643292753884694566312848285334412931195586902312784684917977876752797973661540378561867066316670500873857144873964495700628385973660940971661314266076435781479471588572034632925400677338072460284626994753887334835778171330048806335894474516614648919825769388379394663739933070069466816235533970663052592697239625260218955289649799391527626628583658209953407692718955215780358192485866211586512112216693851204354328301038870973365665776240956633825638079332436937884235809504734182612124147916432280020823677308587779441885282960182259095900301275356830787133437603087362415677246415957544941536350280828557246842605671543905819623832449806558556748690157095866039435866618194920462347402766746296487271244747761522825275932742576477801986034865849788610330533415342110217348642676613395466390391795776401384193706574159393446945223739840095618037133261503624159527496636503722262998770456952348789348301796207440199837054216201102849699377107199053815836044440366568087524030802652945413572003261362623005407151711967367660342809930054248623042577713335527602873737118823212748333491796805126688763590306934878740256010766630188006017624918927034503584316316917797504626488220604373013141577539535169786761829445990851057460564212124447817988077898051353132363730437927421018871817790779175132723105488876318772628387776294600521464717543826369823069891183694904844955425146024260486582768261147429393939765195290946746498809491589409483374334269001293026751452470008937472547638818427065164484545255606363459831878148799659366107329022504180833617971989321563265970342859409634067980625402307888849265591565192208238155613825829765649850055358580150168687021509812029551370113848418113567071287799410464542136070229355985425363846720866448570777496044308877204211631977918236755244433332024477884666117549162321669051903599047385598177663571426361489550992108799726240919110780691357109317685847161368116504089265895430327461159161873453359122022825141104103234689532631417677518720871323565379886064991996995918423576781331212334146047027976534386827394848079350480627864585973512829912006970619654525909756206162771386228379013165795024174632870936389069455906383748425933430478062477443508679741073601940205523627712210645102337422269589192943946123605900956655128799060450406411392471835281184220036222201623964043071146151865875724368161001478338680169535950390462679085571670424301874229394900205026560733477489589122351342159541733472215291150704556421236941889227796560039777308816676472183972305857219925703494295315054608843984173075522003644188421225580357022874374260048539568133338266764646207350046069229494489093931872167532768524057180647481853681763682003457887063515758070080980678499398830223420780072511707181014575223021342232527913827255991305074322144821054685098422782936076081637840761322346816848313492745997579265567794639412847792171876765332744869822456715345582408552980691902238546233495273851398209074750888589962207243640940699129757393731620074717600292831409704327391891943447242388492404403789064576469966745713000493556483949869141577036011171847140424136291702143066421599725088921103735333947398093670297984163094436986919789422081921677154769345573219021580804519184601616831465453801536003257345787851473925298147755633488750433080970738988431051177811120414792825478162945118242229096343869947476553694829290746343317780396976897344844022272706848768979413525118424186098789471583962717684898363179328492790748423819623797905183968061112915915024598098511271541085032512715104023275998022295580690628087981286054967765750588344407966502619084615862936179168774429814877234383136437381915845777738165146751776016252944726236649398595306500033086718170938394187002465572773150283014860301740830475988378086055608563268829700462329461217525595350133609674567106811777987427378568754638757547758993944827910105886160540716200342657743084846530448556202848500037459216702991517382225989442098092016803538097251861887416445478333692419065992730007280509676526245135374228495118244759465743947150956506161217784838313031974316722561908831435152443979399974807775298263638388672473997439543806295125105335368160597638329278268432961149020279446009466061689769525009829716668050860678292996382047585767630529964829360495385526291900023935824677775137922455182470227766424293710391564814186805878062711191723599448130571770758635024110617642262057442123573916842441140260864468562083973258599188329947680251642867746783719692085302096650169429923731188974085433920856846167620502199978657410411219457461498396681583723431936008486307956073051836318790383545225475324793612960390863626113059836796433081740313547528137788389845950712155948722452741539861362789960838892918022519187925510107739663349378450996144053768228017833179193178206751238792948768782341983012895805709015421276845766162269503073664130389471670145089062814769704294007363669203965148818469429950755557612695575399127504823200857950629904022148548450861230952111095690128132731849434403645458875206507922964086638891276354982714206648953874960686325659572590347282411375624070630732461102143619007423871125201714443325474613382465825617107631944655552287348371920034449003396388837573875329176513082740066828095088561701697764173284368395355080060043210607997070356480309930999005503679548207320029556934988835016002017219083121847121408157278433719097015724631749314789469346875293338624704416455600391174996121128057655694625758332811880545056822704493056696467670134563391083633766876777309742013891525281912644268598539035111486938239238207895992712107566903513769689666619106514954722013785431824960701766311641948000910378616799595337595079818417707596856569385176545788053738368403729951869253844900119757606799814596576867042826329879112429708306302078808856346941530939366354581659481903015333707130917450068069908074179535630524969252154017854122479801401801713395834963329950581253684997370762314330536045750355838950502727824074572108790592012588592159477809385229814148724882912563923964503657828848537926380934608588182493277703781318779941304990543398114019540694002624040012957543241015174291847422802199098319223818462990643386946382225253312869557748554895363988813615456690282202829057412534478044160297429027698899369398668132882216762803513394398984859866762419981699134687338767157631895417782475163071752734398335410286439447101542237799531368340936127927851480301479434905491465475341024598515918687413782913436622061780724418332555490831736729411106264320560638015677886604327258002985547061120415315071262618986192956728137075398886436671593512158527651717786993592135676445021747214555797225517357172318387153979246813698888647574610191511646488210289115578268152105010179685964651200100893945432888055084981886829409661587980576948654115627320463642950569832846653989340324283307078426542417457985352527509331964810910157564743444087761006705509588988669108531834192898749044062441296025920444640779911337185849227924909537175084650502396501972605818102882730247850110568485519255896846999426144377661467121025262631416899760168264048263182813743999485517389085929193458870544456402383999968526244531551623663600713559487255987687713666302577810299961966254853112308730076671491812217770156952200086269605877561872171548505546073504546357099872550450491590179318485570101738470877104463986796548518377340129168320337664728451243454272658796885957114779141935304683466965008123889710796096399205183140423653956415125095310631483542566042726718975913611002188460350737740745841433384514504364011321788518597896686663674551936991794708880567827272940317652269084100962291379434770815658173353927666292779302635581962337140188604803589691042334219902091418314086425508090927716247909890466103849232083110376620125928553348633709731706435298722604548384774343786854318069348665546401249611044346288935980402964086278108584538284039598176359532986561602393470051184019474548323471742897154505455697709828901295427800291736455881276960702890581456192561962585219448357874777289024486943681439710320419000937019706803367081576393170330449578313845772944449719456336298351824828305272955393152419757946362086567854092898549234666406234010719429955355731710056179188755365841820171905261996543768078292933999326690137380780099659346567128509489464536537750346278066639568770273183365474018765271946128358257262251486409828088716599527670480811544731827780167296447648622212205005540921449829445571395901743826785246676574371195127744739044528861596636964570383176169019263755091926435797686194997964553526473047634123229565865077133051704019146994078150978074729418236526822936820644627030012280507531537181505936247633091857196537216593505768292418726531255052335789839540292818836007612988668703648253867570290927832993018613683984357962108924036230555216367406251605948643316039970471386944404064539871079318160683683319631579815927362453503632078244653265140571714617904683200191230658090178603395498419328287255234199377079737843880713904653544258720981006839356760664492393197389538350400729586672159904971431812162624821480265324918777905189944462048761501579277121746026766636500731960144714492740053327581436929640838202507281790922543932792530733115532450296053239488170487175424826420184134653894620632533559241901209218494749163278724877568494723566810561232588858481793297393708055937210475983310053282606108962950036425961313464272859651286094003195602346294014774986325443590011233977551206288324876561009669178053770070809255065973320252210581854122076404199821529166915160986663719663811785691122482373411868772960224364960703728390972738582882752397630474603521208923241708851510629678275548551683842326633643609478211462009621628659318675519024698612073798857659785591267146654965056065071329646123703301811072282783236688854495345822424488316275388877997542726597735114932437070872960866443390899023414744027399260534551682996888937401153492416315445405476953364802677236581333441527522716674592187585695134376882898696970277073421024831237058630149204777838027424974140011927853443828950989734065940744213233832130023763266590586235381558291271328275383975757440472714327478131827230208830330391662453606435659809575948543141460764857207292858986227753977620915058397428226586361495526597634559331694622034131878441710498842544973399336958084653759050778076925976219176635658891712833716161655223298896198120958486653398671368880096693709503936590668110189324194818318420736095182428026912825983455505544561644146722395126397089379004233920029890730012916699145220173469089488986518768264100728286878914123342446995280065535842230583268802170537473409358595100327344631767584907301875361213038691881458349965643712018953919076549313204558611748000457963471723437525577641389380583033588166976115557288671168812068698015857606644830961857964522767884531187732934909849681089974161905150060043184662309151093080920448968986078168846614700491161468283438774779626545426502154250380204231498070782745731709362356378528066594251018255821271390407287645496205174706960011789098214029281527396695821586924922829030380721184047278583226832551611160267797098790099469012025975651097452332007704900428150579822714793888233090478549748419232802786391890183288586806331912510710446228924050303431216164493028931469903835049590688804267469835407711352957700707891319111653490164395306418360200633476780415742636483102714474859039392387968813910535492956892363889108099209621347836230263786988320349676159885025157260187270270832472740757698898506644322688504976453386489829599979281320946084499834534181574982535089199001885044871231129914890825763036455844315883780685083625319994444905393915374613759965166511629566859468873119338077796288153496538535545875226410157054930066218652175133663031168235993305588964298366018060133392370359724942339926184230673740152234193864768732351222113890310354957226618588437640292125696550097994605373373611719560549067609082062378116144020253479224371724083144603011916859265336965031868420206885489628145678362060564828741506560152105731204817378579570619577921144855424913848488361644013853282158643124885180319909479797060311793298029794513020752947615258670569741889578058515028812062857860794310446708846543317820056585718117977430251746981218513768196724916592333555709154388363513447278535562081011024813179701558757784702473168719164801923542812138529514826173047995314936996859559285006775435031749337309517727414230904532264281524767509142143637747275452464706733203240837695459630044650514913083705570269137411465857033386456891298433122626557399683670025670842145914075519572980904879709810801292819719754977297877674048291880659341905851571945000179957624357886800789481703169092060611237448345119036159420238677901326633231083889507636926588736134679995776094180472936253647417582718605176408518451389787033545921635581393090203065723336473473341951508413904374997443897869353045685561029174463579972072606500205852817977841277239916010997752487980289558380729153720548672497615960587712058843096780388105509602474536930145363514636762506770787151354111858002935057641888594997580423521446806370099166824534580980885345879962992440955191340351008752297516791710208277601944491860502215206679403271480934384663648038302601476603259570782232629234942133545290800093376194106426906305292830861806304735501168966716171902372509072615776207013953649313202696112147253495051149431300256541354860539554606025312568950429478568734292690667827896603259327016849087725883385614283793593208524697441051584518356792563214824253897572210403135391253092293526842033850307998288004491638470953879274474261785198739628391338504515555427330521310285580905042790205368862259549081645368474872832048409640037163559489072341329119423648991304595565325328027639032607624027618343232985550873828918584520927123846474004667115830890539322530921487580164306657416043642733981067930682850847272855109399073953059569372574126974400494463956371620724526490967872687831764137757877494410452400365627606265606591762234478969415963114292995497213675474667823460408101774510034747401850284995451368337434198102915726797713487359438061692811409683123986355208927941736461311149783675555255176995371890525373278869824170738248422307993551162321023600892775065154280013238136963104386965889179476679541608911462717296254327136664216438811117524421545531400236016466504093585482659558623128798868118757199543480059012297713704344031718962305599205585247687789827789805817833242363550741884424592318768624108793688231009345297401021318300451269778811363893282340453108308376898021031179061288843927774668491447016303130115026966344441422963249222825502644840674509446477906240923032985681607514871223003381991202282737031656725187317827568854125520977606246314529715820447508979155873859576145936776496346560681787973627882097624224548187400288792237394569524940205010134781789243288896447571276130387102362246446699657920860563547588519421700821407803152835935453232699579046710844006382616253184332049233784992712705919735380859470538270622391948162660635153829179237612596328603861255182804202327496867040819109426255847326225853133442229555626226667881829747465161593971972219136688000937442049062416734216376417610369401752973814206227787956680065016913667554383012186407311631113975461418421526482978997100462735339727990063695218176888103505782808940509360246808294063047015939070200253099089051759651875872855319795008605986422813035358086026193324765620348622095488105124693475105462438069846116441654270476432380507308504023077352333902818575107841574108305015175302325153990457711710086695408492200759961753923961264305001550532075731083102391246977047680760615201012343684431711314266857776406001676603970026101184210621575198131437622161530304596640918841171040854621256917965098244553955925898671178680153414394164150779463483115517758622871251271100974253294463097991246955981033193121211392533715029704686299383806994358422577456919227397725571313773857670117812574050950793497701609284418490687138957814024269752752023265501479093373128451643003325813852836724860820094180039664652615314609440928189458449347914407628096404387079523671325404567934935456871873781935411408999840516551059950639357256092346362237396049532690910737225668915866583890805745366269378238587970022179079882847531112769831097333795204967551809823555843563020078704270310681902555087151169427116881557278973244414896393890591200119584184578300821587418411540442736785411986291935637235993301820064166788123519638128297407977287380169230867252223387578111335970802962757343445067438607803591003071366740077349332177658192198824725456350394399831555179388446898479878271402735770261251085998150090945378226223408245426029401149759336293830791008134389812443375012175497265220992885158830721257198396554325006064948867554996604928127659688952393123626138380118959645885086460501768023521555313880384524700711233445616838701048075286035364985202224083624964267600485594956763157372408687861222628058629080735036744687991345355364045334888945249267522697079771365741174294874597345952131454611834736238963590112403449809126298606383875364875619429326206581500874444752904984682544712272848137625756417196176168863129782859376289206444380006661376782669517776649746880726043113253929541181735009129489485776256869522944910513274046447623828730017541144038711464964706806960094326417374956437476736583551788506527878093187705926136054133079401243274767870006149751631392891960891260254651686196684747774831666118856657825238778701839365577260722192617561122320381762811613978742678296515025372211764427535340519907063631478333920160022810929828539270884956027345445953278540945941374745013924239865588690441534206754153056164844397858214069244904767799447850338784860495294978238315420203463524495449317352432943570621802438312928841159112219548816052990879224386077047322598619822969263024766936072655330275611756791454176218089220482529442529049840622584640463606658806164111367985977294968670825010557047488473745604729254275657886613750096729482095613888024817533031922116237955735796246619367754983426316009798288903596471562865681938531233472720748954145273244137911266729595719057378597345020268474788631305645374555300563657212411793349900574448733681371994680451866618629742958460703575194894444380571320071148557191554706287130463332421813280302212384988066456513578118613220160167240444488540194999513320302992166044701588774751266921211762650927644063072348884964533602338583456462059876301452031300587888316311747269830043621402124588977187008040917102750262033159400535735224592945877434869179851699113753949071874183803322428179700914346141161523465520563148141912524892322362896661935001499206880150319523872083861592650448901975239178825403913302074264838688157552518743103898633476359823105681616911941711138501704071466758794933593929527037930010529683602502872517305200454639802684370071052977717005191110222563982505842658500943293750252592047981347099905638350969730060344291456310266764045582866222004302719093599569043405733666179474772441282595348137521357658813611679042488799129169804215790410335487226238388697962125721445890525686186364087956309362361089257168201279656967792437934654867691889326951197950594572644167261249943752720932522229525354175212346097482593002305003815080860048843347568006212071529597933492366959444879243196968660269210396901489059569787606003070709749047291671294641885335465208350654569452420731134557098218031072681995224130529008382697302994427373610150654832266028678738288741268086511748734244947120664669817442151315341194262197213834556822176818371581847853115053921437096235178144822320122876103205959545270686810395416597547390685809395052807826001963697776856654528500525221195854007347751872201017446493543066530931162226338021103146445059855251542646942523699878963601935005627546736779511759485564798095723211605481370609919008404818502768473933357978454278969966013593866302276911114269722600480588129341801331347212078653572597444752641377405294080764805488429767867652054812100482276519239697110390591332436770334786951555234358410481502696603949755629068683095155913243953926405823848260800573288771528675154428281825578624644676346140917213569765972530554876154313704447457261456144239880381866430449335679684178530598153129926171939803264544305104408989304181802105038416431958036491283544441858892206183976375075305011688121057847406373126662261254995122037903117254966331694992752403051280056777936535786354078132891747354368427424868219580812555035046373504370851464279920067600503188895944550116881157514359014904208996825419964487037488890660290834571113240890499878468750612738373290553848450170708094811216474398923334795508398535870018191954141446275350458559661540100973516067179200542654620416632083113491416231535304998111774703495973783194884772896828369745614211165864683128572217760248195666757441298992720172534901466990655197436771978973723313081570910378268607380217461762535978269211042670667688411123392475750649900359727577736765068861461031339318169383075829698504366047763189657262034705753498135016748457636105798673613170701215247881535490014906856680993521338418319123569566744357756312121921190854279446248090911625973724419775604251048589982490573530415924496030632495185985197042301113578222502796105509676497954586587013345492378221732927615535345343298449186970497567051840214860993726609271896629282458538672879664803760836803068629914890940750771698928805698826544315594519056287707915169566806106930863403111482847107001403585256223367341050891915092393192455176062205193162850270130546999812773650045863046888749553392340996277269127530790099183832356404385381299244331928730307070981736136566324401500693984904864248720070041175869796146627007186388954851141457274097520375820320533614630114866711969489146534944525875214264180492187794570110230189572069579860001212344751941682575801239165504829913912176977139784946291241121947644755655103966645033198094894527841585693425222614027273802702204642951948247869293876164179710837971731036569512876621363578647514366047034431156175356825433116545748030283467829180555257341927350741944910787379349388049271373472776955652488714207312999434794608143864122659440630745434424283791989185484510441057030626709852881334923813620673693365017767841039941254065597421086850550978748201846893290390856127884825351392175563385084550461942566339992498166993113471610164754849997172771790051272306688815219310112218125471135379607681589199899530363626318057262573531765522538244706938481826017213185995633272090595270326570003189778226259202809939252691907108086825422851148945688757376516034181088145552047660173749962357085900135655404557183027096669880994324735521660494494282670038808195055910998361270938940371980395182844957368040659617885138889581278154297672416734193390813865014121950445648633790747853513067894953152584965765276275639135594804780192270853688870830370760539659994611285783115449682068771918301467127517235379460210682281275514469296691534277262990584483001211230223822259207625829634389960902454135384388356582024396534631425663315154587887909484382624349706797026777270239647847827089637504621010769271213870683072313379298394961394697272137877507229860563590980311306902485428766873776410583152199759448659990351777214609718898869507513093450511454217109165701246000434059700106157515217574262835690235837961582011299012986928643930463892863463242684224804968342325094106225927834987872491815209335738075439329998944788429237911247059210995602141694822644578689493160168886365764429427366226782492660008403778543771501693139789299504884216170608957751829471879409874919208309237211218414419362024104878302803464311495412851283231660968819788665146497694647317476730684762291325897690329133821339029513112506008267005746251952162630451712167404356679454539352356915973907991484753454885711197042288953830524744557778139546723071764292820207472010260915821930972188691804662379918820557091153817019903134008079205250968485214978298371479629049678898846317081727197242878353629295248722670794442931628861401611327385996642095476589117809914926993344024898611941660874308215855289213910234097556342242407053384461243549222363377794032857042066530850068884162975407127652490124972492951288062069486488155622147473802198300674819631984596340844087202778195578617271975317878308113760341813171235562557958695254688790889324859518062047570321831695250034615985385778131206835180322772994773699875671838803635404866842080376878531504774618301218822449488162971011711251392876905996420565361572387456911076678517976705900725847233454150334981854853945563104577427510541223393493612718704781668394791119494732850362770110383817876944151124885659670647703629240905549720042942340586485389313383314403671606706866500287139336116359447670933338878523574479167882290903188307614179739009218959320736797661584502268979885531062782676377722485285156344644037866627139425882090847603668764713210645864389508960091093550171467458924843571145293684780468075865835973243527524449005641703717021992617084932364985652950778668023708525293653120340302597986146063104236789655506605941052709349347188074867932124765347176114112964402414903120522548979588019238801319187906039170083034391222523484825253921848645148846047686936662976080477168533295155783378533897389794419964646645313878514763740264416713293975116529062763948826468360237219866222003186459490332716956107724837225111758807511510051640753410342728578497520039107100175407616836695498663732938990875840730505377838740007424498480984559071097349183100505770536074702877204607465531945951865331403383209999666329620817586303048683241833948635458879646845498212681409065898474064521849191203720843158764561733092336670504608412731569210669803703061144472685548029759559143181413070423419812790484091670963563527658926346314649984495499037790635487963036754399863753533166427590098784407117548109424461884256848444690124798570113440639945877301389873625108537230361137011355536591615340404966886074366518766658354146871316773775427120810359143381149274165255801025583773087421146121290166851792310440042956476755554274441150305154150936262428262063760343630705286580318791704670817325295395879820891160436104639137572789925033634967834863345494296485156900787762982483564659040009345278022096389710834280813947729994797467894970235626832551767132072305162381463725731875642025362366148197408517760924643770655806632990874988786867818269947422170467357757056506433585000345060101742438324462615371259763985475856181752298607276081407119180049073105156261057165878119514079280871054327787330938978965923685650556885457508447600901061916984454660323540338346491412953746707741800870345616743042613522591152449536951601764833058129565620948857952480075621823733360718055011211590661284930535242578057904849670289727308999094342656062146531845969723822263481279023075764481498338702316672141742171580526109032163474956009120242594239553281294526584788168421436069899761903970434241956342759489380747779068224807393598868422853205727194542106424997638846005973634397550265805271342703249995542593559161438294761581300187503484692107858858989606420947900455226212084760031812204861284563955187487356681686251165588397272837293860340612220469275729426328177473401752929875082336485613140742450862877296769254418535083383376742525855804604622023019197953911442854730829275101191241835728282441555529740899813087258226115253575897127385718277892276731622097420155553471827509687710222775033885622708828786896958982881793909587226989469881517508611896348412944608814356761303046282285957136043991111622468471668123170497100950874590581863088083431114475337897587984578561390105178489309093172880341124534829545175016086639210853155046590734567857311249915335758954221062616629773278294276892188361297284845812888783318659221924743642580491745218994551815762296986993035967643142497045284687491964797940151529821596115831879005517980166312238336355435351427994353339803732697084486211012384093494567953444887454910521298820736865044605937786753300475120865051480668159267895605089360001259627206692383720228777561289536068784461850788968468239813765764672834791517528055754956450699966047902711122720723564444933189318147058810856689951673217212689994218906345443676525167120545923411050389035153415511707920668587275119768714645930427350085436672031812074846358306057725927726889114554135613174014458876255161430855226472370291969462015672794452430029728044973904402120425001088218958321907124050445214797649531049545942801211522544134844047203821695814797843558291257265862705143574641674784783612670597272340733127251027295790812562133262827781701030708999206736254532722269948881567975840985200780666370082989033331053601794103793175318138578504589847149506556569497406162545790668825611533294903780685805012831148431976638540842057182117369496783942042420745289976330030470997897535877024445915092799535039520883541479103494357671473291447985098504893385342028478457976106394654800106419284333434994080362751600369238234704789405787594228221748699825195915682804446086610046534222636365754001300079535396894793689975562104313884176163022759380612928456519647900173190692595209869519671347411232238747161808564670656302091741177920108625873795623028220838173876433951959631831053976182140134793603167856259656515838256818839600705177253644259832929076677237373484697754610052204095410937941689501435289796166866942721999966615615685286677360595010096585372856144860200329236494652647696196094225708304127469046363430419239070775895118514959561718401901673203392033039575645364907307427443590399194771540040627015460823164505536164025664942144118398450845691384707242166809184382764174749691889243857166562400289463794017858869861993391752256920854627728408298463747681509599677165042113269160564683765183653567936450453116700761256897440064506294812808413314101669017496475746725340792792402286214402138707611877488339597915382192757397288587192698217928829264339981122868447788475806107328654151011131793414878031053358827390887914420430924298643169113364794315853825882817924212646129052849473738495313056282335425941524507734617184922594887232135571253198032136109964495239770634549166557715471349118238588699947799140114546962044870999217089463988324190783410394782694871122199562440453562545397711136518146365792914387026174303756451205318286950120886384636832404428399799334564277577302883429032930814505720412033042303173896997206585977519970262030825321843031448073684680861773750593851171727015952204363155153772775168857148579875183677715777150949858133971847141582940258911740833945717907745430531749177081358043796614033859044783984043777525885755254006235396332414716085080821170125147351652993263213002057357473165933256794951246369060124047719321236460600603181885096798125908036390729034122174254079352350418541667044156603816892392287372127820310579360622976871491374349312644299738773994908719417233136710293053501494013441844860978781675726953959599497140999836705816997860294378067616113750234119324375796855739078655351841648208495453950928334174069478507306613055925952894012063946487763543497834044946475936947570435879364023342005969733609432955868175933636582892620447179128483444602011283739342933720414893208791760249829297554809196388077901613193414266064241364336251872087984458455097740481594771641360512176231373655617709316989325094013534919980534573714501867647072162939172986350461873896636899247413222860103669790020599152399750968586799465794023923508341590726619572387427203073694363398382003915202630471810459577273050020565629466300260792564638219920497132706648436741574989592503464264624397540038233266547959918239352576556329561292295812129748223654373899186096302635341235346729347849682916174191529984577066562107576256486902898372781158406907696227414839819933285694278517272233347046483192210967112654004989448265698770455039702675647468034486398408037805970522578933369914122305883904146784349483855230590690126934983285034123348410091148679828697327589173451939666152898359718151389893973957774171194724423738379440208067206274466077374578425337837430797290307979871939256177389357359590881049719837561166232297051561561634697483158165164150029792048034046623548378980617441695574958750313072761494374975652147931834964523499938838086367590893617580913454264653219955231121613775045301646185447180273307164703503020919208602002035624806483986302668476566841139230498989232195858553286555220991367148147984632562994595833316131284255200971684181300126440573208656269151463546617962983915562312342312633356816629125262769420679077102172630748248936727985132237471122563788885978217224171671785103324857705839658405296952472260409531488923755889622364521790067235342973772212847910681774560461037324683910623786944887510813905913377454474098253538891335105668624409631624700586546786598361442359802450347514672562886905910464217225792632006666763147788638377116578735774912790200975483013644451125092788299058616938069592091275871748670864183282586225164498576383753313018621305395357061363153178272952891005337815623501572996423154445235527391250395572030143386365251630592322298885044627352786915340277699678387172662022135790940504641463224725680256727993068166776219298188178968026445286999582810044593858618832423678532991494451606958926519400786341516597930073820051486850894396020849094064477105561216096111365945068735263248626893983119927324873778065207233773243053655944742365649092502392444118503324460116309531776601887493177774994713314548954675234333106816392705630957133771273109187853210476877354174944741309956340079020724977340624885876170847577644165550901713478599052395600551996248931749186156044834692498260443169493154811043114570148325096088444395042171699152261690798256961795726430414661946175803594252847190038223497546378733124282240532400334871471491632203302507740346947215811155606186901937926654726454176692210309944398054528627609622216942317467011473351220023253613268504853113049886182111851547938865532277487384914432531045295497378373364669550736464939049362663858423300684259092830412608654627758205255320469304547235295415647382393582897609631761091675816824015443234258685234434805499711248725513532693938113083939683008855750185186897526921063221020021059061720379725363371972247876709789679616704131969228457137006909758196565756186102758723562277821257658385922505523164475854966514944473136857017952479694966626707643006828955702013925174978676548053889405643019062007645193171645908494096750778671859406826298503114923381876862964641458203648857489580878364682954758602646631675195787035191043662262124810645252930811970752469619865181216004304463866931891949027897924626015655280892805903487937188907351514582854008934208840967881693709009792185174884682650036191957915721892599293006396091963699656487654958327375620573974521582491026742624766328387650297600607628987035124067497047342708693180631413249676357824474544442009604041473744253137376702325634091096757297188173002988226301460775821148566188599079809996063780864874780046059477148872507333369640502755776742388193875085069819094219890978875425083794754210525688515066100287774541160302552677856717315709659559441116402081378097435978489641918018403152097224391835853600987155599839635768175297460377290134362835267069762694386359110463934639533098190259150752031930001948749315356878308845769003120445237598313882718474167237368672674719018415805592750261793352864846738184046302948622795422607102609898349436295120842058782722778774944888938247615623186761034121163713398684980465297019372027502336948052456826025171457530759737432273541169541877547798824688044607575587251506441704921287418720835837597264697005744447776870931520993919663018011001450914294508047673488232649673741318390284270512860041761261310773791219281019402819399570229467795904342209734164205782629341457150907822421085777795547574197626981606909316622828018483727832800445850353251643641929087152441701620594248947879374089695290903044784848875473277376723421588194159204600710286185431909242641782995167885739397439394047492447755172623634387019650689624765540705698471372325080628274325027256957055745074258539873072446631052346450374767504753732082855073154682377362064026132080587821611795680382386228797691621784412881805955641107439014551356898145244331684790852845980643899668095169373951831611565751625145836365080166397864092453377223840793342303137959695142545898977089627661443975955225235589415093848362264080871222815606117436108617081958309762608235196783521081490115614747278645144065922088517335622670184848565647717411187145997968664172653191182083558311136534469824264804226940945713407152043826340413040545196085939000605370242197551375446923133240911280764789391362157367737780733125348432099393134414312568888508325025311672157754972872944619616854315385028344739949569257793977183509951157224222798294451522190922449756796132797271312525595051283721366423982563390912178052774415706009845840461919356328182496375633427552526174258957154901014845214905893515408487973345042830733235924924033380031059636417306668880155591681414667317610571151537344687915349247236653726229484907471285385288703873489041617468540494264427777870025511103685178334869881596705019580629137209254274630936195562547765810026427126257902985529540401337479138345454781273611119573973639533766656504874546902546613404882137878265246330099862182662991282890945711036013190291924566847947271509689211861876557302784800535688584071294368129185419232982443820792148324158994073372771623234112703538514526942659514157385195798030942662945444389204596054694261953037554345353696204950041465507240024570819396097492082363465686528520616052694504808893343222602820363774253101237095673308487574275473997392934580158792295082176869450747335677773794735427771918116875112651045401858380220295808024446720449887762960256267937223787089123365808221159357981890296397280224029529543147569139225463207245651032224924884348815543320105658865325252788931764447411182144066440480805838175013136265565902413066855271064156630828480340683155786763930556299772591616398512610200105035082745069245975445970158961673560233729908051390765524011996648833657636121562879223027017560158570009938130091127875840829665101746131098628836578600045823587626064456263656058392783283808530323848670941526929998993337103779041951780696771534093568384803271282129684563897204365248890438723232858457564393964791232449742085457898289240387025326169008928497964277435737423504263994298739313748682287059681663894399628082494373549393154221526098198051847508031381065166102997772677055219188205914523021852289833999211537600884398090872880786973663789048370456455525080354914727377243628521098062967558546659915430535462000504338914915700445488819791532858697285723098900364248213247798047158684073436575443002345536641942483742234206381930113487801214292513275295766102797408562557468948603761912693746489083470680608748572826028163154728244872064130356964132848150787421803097003918544219187328147949956249733756667918954733067129490850182909273778071239587602221659508961783756392106215711284537738213680899355093066769941475432966232302617005308013319086614000804422238800312029670044648965622501314184122056234642350789117090462150902492920966380942478940349505803419820723750113365559680670040398048488106202542349020521107843968535910071080581989776544631581476844025454107208885275116598983208257754612478160884171942587735949813883924580551811032980894147476854917357714875049397607962265223819613458854044903107875530349318252824109453171554909400428682775557316087160337020833563289896759987389665902194293895989655836939565189466141577225478725168681164979507777241105105107855942658567258098797942342952181758589853164089595444763736110617384121098751227292206011812647017014601968291042745097350929779534629682415514935136312628617345279678877676534515210661279140077636818824000480283373837792162510142346547803108314133680668284942990975233778020831683905896044438260563980708011380560203323044462154945019236446119354407533873140458478731617610437171469731449265014297223716951363406304477875346403552327967014100047009218393372505471706278549173644450251252402042910333363222798398092899033100248384940522038113619398551993151111659923588687417740346711523014959190718932346937332506134553634198266612944036670263231961152105462047323410417745893183564028583401796349735703835707967890789499016895561281471916316467012357910351484905409049224600630147622742988518901588619070938977473776225049541471188058441786953827863528839660375609539843889419137206442276522866900221422215007349765684136712745839581731335349008354535215329805452092741328278189166883502059669323812575591249048242978095724264899419931553580027864346528663591329836806954948328397255355309678401174422566643146825102379053737098757777855976933344881551337936165855711072753840257948937286666230122359194179818997041499198437515280042099102853203484816314102750814305982250092474753122178820429208740737153282323558612940826035456691036930112254093986737122214106327381514948866955415084371889657913804208452317328415750125044846649286530262426763400542379794925499934644212382767143335050067765850561072465282227118663447064738067734681462739094098464083793077973775761875981233118884962462574445864894739733400856612059165276972196382457935712703924739047715348646809872727677089072952983036136243770113908418238105919898055430386965308953451773962671001833234076623870619661241963911529594223549354317051582962210761192986811904096752569881105263925385231429011339612446559481301607791854919922576359018946907849469720308984599583385096634874982988468226607134248517568198022598454811411713596004424613145843325201750878102620560187562220727574215076759882903182168345227258101272020770366354993904303441328324744710881687818501981131405373149062731136793904004185525086959876622823306484640587016009293702521627166959149704665005997025461436010743355653414788919668612180297766497988675857306863681660650451358568515987971889255040565372968601614747603182592708979163625753005323367956950870860957461555957269500035032852684664771489696866626257893123648333186863874946652326299258509519244815459771107828902455697139252775715320958600467145862681508291239121238417790004347483832335422759948178251345429627096848405260299990487152214766111531282864271095494457911752685369436594918249879353582122856069506582984280289158890787248698884378662183309881244222429309647672669880830218049771141044083393582299943290895274226676444089661757207989282868712660981256898770003514740180451021057908464612855334708454390224341907921959382289479799208395566671756958726112220436973708584558206456569690892921792082796787237398369143130044559880789660995274112502646190790977634223565257879269458498696824481667629767359872468275543181198821546304301641942008717462439916974519722267101154927697562621297095963321794678168559272694348249941413119043482417521584845384937690048836039740613030199276408656494285641682966163177296253037684518377282656419917014831227955377990266114368404024675108262400979969946030484199463159021591128349966261334245806736517879515563006292805071994926954120950812195940429847346231344316635102518812223203289143762206150540755764876676053942019063014988917303155737354490151124975541277109806370853954812456687221444080114787938655570816431370321348067858582272994876782506811776445020094515636612568670639449899148883373469513824964519600562598661585905437658573710198789232752959171780891232807616781816417794544052425900300012284254215707621232146226014861561189885898558872162020364489404130735865520078281961863918514427630930064000353818673092132751534066679760920420462159336903013758418291445228252086236224990245761180183021576189566078228148925169681915753471358258545715537298950013247345465289794090646675912044165772758282304703737880965629357967353270337742472815423138519691427463077472400596062781203566119138525670484881134214358738816874191586727160340692462278893154702171150293891628153599620839363911288840385289920790707745122097532428665927464609314922686672727006182350437663769475918140745291187318428473759825211755498946730537316115758046618607056789505076090245234442080266302814878504265628883910114116726138513795078618112338871343590693626193046254216037572161380539268939047051869398522606837374902103490347443617802994952099494504719839726322144661079385636282501859710940838959039620155077396342827436212476385705873461104766429425597909130542607387015202626850198926036164292436814328182328001120558537833127984903753445310146982326453329602410206643384217006403611404017243513552594438358302232108060126839296172279365385699238933705421698987790248596136330223763299303418011736317050657223778173071323518338482552579962725279480538151612384337854631159626089410252977228045449466427854451746961703151543211162911518321383075347484879704752471906682759683766100113911353901199381928743114174472954150476446265918746838362029575425618510330504165187875679798754260501301994156321749718363520005983511244636279377066723698286565011091229255097522708989216392489504008628877604207970225543209823931998976418761339027294797078542054104692922594061733270071549311861223314075278435957755376872531646648117097076590751554150574027108834900467585583526016949595736026370562724027204417074887355408800153107365474917926609752471047528521866469020249436497245195704926100960583179148954888717169381918827614739187448718521473314068573241891612870704565595136527761971051160329381823841308705914557337653382131684984162037918026792418208389505630578470112759598451088837012297059422559145938338959809821656547907308255448260500469525352251860996932980275049777491125683736661672986544379293756890088795939537536197556583636483438852985760712664630963626394540977421904823421388135227213349266855165886797636188562690339259755691328035783651191710230799262896384732341141947275749363296336082759940148418516492164724264597004195641889255037825816239159107986734404515488616285598554855626973736352361222568523160086844823805518190652199309881731789044198402376990933872011860215155999531288568608624423562883432149234602990246335242853258318319268846586170262509846094397450917286768489994921887315539569308039625783418334877046169707043488842433226013527327084853308230435372594408988021288201118860511544532703572317943468888084912054639843152770058180236483923785487179671361236196479303786117342257208219184572698714747655343745728945254960384900802404162090123667651338817332702371082719030857421407042443949552132939700486826955705508628629128594363997488625950810754640707150719194442671568984368369884315792242711069715431588501019605392875126354384655594311185775708359204163212646026826092953203386685011528121226661062699219997642309827550360371467257791421258889640449544567369598238716321685805975821392983394492775706441224638301390970502588584500710889864539924295306020132983131006803334130356604737151751081726810351825669783198931398768293781860738137398454819439626509233206458351229650924382030840976513181445061357704925291620714004781796140435300298950003079308590101916905610292969236651220507578985158323114471371808647639284954553098566597209891241352359902557302213344856490372320657278492250571089907984868292980962523468366233014353564128887477300006486975702118744908032850454934340805055068136118515543665351489893638514580466215684882848988921585776878137354349649837100483455605262882360828748346356429900148956640400093954061615341452321598896958539506317366021644266939038684980257955846141281059039664861219075323487461025201147577723720781147346543246081709867212158048556431948162267866494435672712622208245876957721869490572390395141289410536764329819350968826857240288588866277933373355377611562655464557630787706440401011028473782056155746696300646777564273461152761308023245043221873668975691315430330477360359093450548022101700438341457271693524831165334900805932980567027329862610389437635451537727415295389056236107434300955345970108079323765612037141688801414524962163963439032220668032420926988120875182011270758042202127672640718232614358417721825663234366024749968774461859121710174599585877234303822919132214979916300717549923354682919059892579942300962917441542011476470913100282560573755405196543603225392482924796416634269620460732025084922486120602873457636714765211143609524707707893133663244485653169611557680643880036281694493328297159268020808629134985627237153687314238760299175548027453818235866027831622188047067647597007736430882213934546855952343771896931577816298724201968319600704998964492391181927618889272163006209551715258632582660824812996006987719658221264145241598360037518490815987321938510203137740684954139533891749656995728026593124795726237471868462610975733572179038031308882421822341513387434700081710843694539118253763018933320947057931453735182558715450034624511009090943226813996366253815177972416075279741640151563347873773081873826498307374884696932659679105491880467108600510725372701933854741780501537906718440157751388030683206436659220663367668280337586117199495475927236094952759176222647443641331957942246084125921586753595876805957429720161319254474875457692397361423201378103589498940182079008292209635920137011033157976086620545909865158125987318385876048609419689196860625514270314688967476191037353543932383347354252782547269570717253643229973631638304928787036138008020843844171206018357029699312082744003491315703051991712907771863139509240530966268371622698641475826040726353819713308909116089290986846932307008077379714113081736261376020953489018573348847276038427292396462498981525383985499769227483169540505721026846160238050747817607776567347635101630750649385815906751277205398640230851477947528346249842557944048908716656527490695276615084825729572330118221162391526030290605264739684045795285553426057517107781174980496064572229386786238209534548545209634797562119283118438957144074067363779593841069640234410029356271800746509346894706415279810775474174860445709960896618249947895161133805440799944093495478515724862162302857841321901154159056326139975667073960381085779842818602650886996686715296349624997536894241004830082823826944747374223673999181666718481165610954107604888591316646958204118091267732949812330381568114532089999448807622443848965511295937393135583323354029561071895401308975524400959516365378937985275735563972660829346441381049243667796532641033407745004853256894380591803786986841596057130515435652559144408569131518386270110006202941529971525126713278423539465476145128021150152128173679746254187852989966789030616386802829386188658839655316208191008577509797777559559885395227809352760826822387441871365018915999743360077528783928253385559088314799729765277725378536003350832724694140087117261965653847882138531795367467403775854285677729435754198502262834857669317810245271438279937481691954349479197692997946495865465272841492326451907391901327249965482974538988199116286154478317470433810108746127320589566142515252687546649079366200313184552288714189357752724867897230171580960600968968739893666791707154073404778492002101814440522569315143658244771419010323735874819138095021524140275166549504349940915190327721298626761809918702786938970374376684346934201400482958451676101700020901741969211328837661705978286713784733428254244288169551882412478088294195453793834932046337401052798243258409420869109191952323302136590844809906145214095373684863861375278353251321337857241011293048680605371091273025280451183316730786160526515563202931265483840865004522226277924028069467785838106526758097608553773983177479735521255416398546763656772694213908084961018284725345293865229390391227809192532211425755825406839349152491845212595173209688412118843039951997684734333569035301999784474848054861060553042568169046657002205345926020754696070164758073889643453224850897728108089812547010217368820012279268842929185910991025932444783331109845288414964084856801551801485682235530751413978181235498452096076922903826621967865913652915135167652406320913818062288458677219087955978621774426388167770227199324690565270029933313253865809946349650672730185503859333509421610784343900087212898100554073835546889297593476244262179467572859730074242137848860873480100445084946708566077485314625495542615460828994773887382133156946416460165492271453121656152403309266169957346487731477197799495806198776502001538131509746086571974356061227889140790976535436266691449704316273892534410922803203928986059929018716123124620843200717065797504102612478047150779052760438320560871361246277694806490977407503634617632594470933289312260252424162812647724356720012155973482035741188897798687307220135732110013239887328433971174012183497084714369311403594288469844024314699861854860814616174526897441370560898811261395212133102286624713369075909280565754758065992491258498223824824198698387031515195339931956785262202827767604558134377395688609102191490988532821978978958807103335590322694962791674079465862651208680096970069018378379610659924723269982230952287487964742043406739338773059164528903802020069413469039866249748603015950373989535143920017243740904778878684633583215037847279436650493401856167349056721304839579346589359895351253206441990237744523617627400765338996644629348903738089127528299247799852009254860697895880685905500604706916008384374974129526582436380886464421578669095295984096584495070357387060634036209293246218820477663520781755753015852763420954411195344904489829618626510527160016148420497730457861494301151566133770436736779437718682555404340223880918139200691018155383336134377139037633083550386924902350371893945442578787685265535368338016597364385619268631430757920605572322084223267424025962817246914892564115524194461866049406372003516515766209831698474677065445941355177425887737390625649705649237184871805963314342739151884215242247065853864376008939700868713603462649846827987878916624767865672261527625513838855672672835038127785543310995329581710053520371852638234651762786807474359775676786514419274441297751904396783155583889243094567435236481901421661383205219609086273771394346385255653329205037869771386455038579241141837986833441847557123876226429672164771901357095372261887349406905587241189218850219247880391591036842202139458511892612056680520040522578405332320981193709467572250508106528049616795991408590239492137335832300273237612757081829833411896082295545305072355966467870708029267685544693763388760202802864929314965270250501394353792396583609655784182743235283624951552230277610836042800922589774053238230719712540364316297568918057944438791856286253663624351836723267594667177657473727879931467117388143404650330468824563779230711742128492500156905322646883781125188347416586260921189742107835572818245180661096689643588723446075507800694887980376395524990775873706998553472294656274383042849074324795721675506377277850295442724201735802450607496513525217352326620751456610230882258722515042314084166755835340981752544425284545012554040205519111556525505658159390685392632788295526231596788920800861965640253025216260920270158047600707471501771800174899739488978198941219446364125174589660024638432206763402497108595567196867412268416132497276701924846743247724495586092808405699485534612714020105794406737349773907799747602249404875971100982656583815875366938062173180992152575332189579703489861829550684296570041808419610201894007471388198047486822663893906288403972348866790763987595804512802608492208243681486483979777948446140650104474650124882324720179661305311787831193047715498396410450732355565436038258240132626968256863562200784849707016951579741321370918408797378569748216074143591726984790768277842466745885992446350845967735361076105882468436742775867759664070189766183459279144215140967857906920908194892771189053970928972814094637804464497555194159656699036156488064524401333255160027318331093341246202173765742067185855232466446388204850841446877198742354118520718934132491799449368773305051636857285472506011348086766547960761666346798623716709156885654092571564671696154682551056755407138940313217469428895072708602091937379548719516618821342132685736060105566955516790887967864284309836643812072892722097212475810757458737998437097642743195063151792555567228263251512235519475431369661635369966673100064932878908244334920278728408586387057138751942932265162498844748195638719762506854743994654821968990816729174404374226404797117626923116170351130408853996724090825694428996813159582462058241418473398726684416219110276968470678116263827791877281779096438849423715590185531946655439649822440270124961664486362994187238316678137191243733701184904122578142373226213848264650683109864878623061680955580542621747814698497715184458645588270520662882555072583511990529300224408651723061627018107500775501459704110515989378277457402248115687989760865553837823176646013921655391056150224028821570529492120797460575615498475013760318892948497552281462034630206583522706866186633232532806549635782925937763779496691500460634780575185217515374712243727126377324161944369306617078779675829673251039113442238432846013845319994785588308894429452398198564174105061820266760146659666303084965040807525625544988449395105247062533854555845705291267556847698729115229127238942351059666926129275293475194785601858793549578159187101570330552443694427269106631100015763047985825242443062616330346971826459790198557551227660462929179866537759544704565400680274607080359070487994452915109181132633355174010512020663892215314925762030763072175955085879388225766333427759489806065804191085110190334874159773957654101781560192653329328194309121047989418393577433561597961563034669037936295340984389311180289711769200941608194395118608552502337326351713015839086924858442756740559957508249086823555793480620799531366308241619278433009929228803671803621974501342675185255016800573408370057831415255968807717233201155949361639900038395879719482446122901139602647175576931198665237299962027253650320970562563561201806793872369384417040140182831709667954773714579034296358849262159147395379858543655019232031082000556189216082270087475224974381899134244747052795515554825839832502481382537226384216531958581045496476910661138421569655510381917075511508675146551677925132742572810314669786731491315567648976637195272187411558629286664448269178482376516892393256770746225590778492763217773286082379508155410599171382783540433721608834177248188515913350756985798726939578083447940333929797327916714560903553633190942889330737691086389449952705397385529938333774121911455104137964064652508046754181249101225811065794845609569054653204195143862316996217782002669843810984468064569582695556508518178142700761559057102383993903946656917924327466165904000858077922329758071982489760793184556736368498705271392940767398854179136158493572953172055921180034933339990191329572434565723022782971299047847991345667510161249895875481244939235222835127545124053656259742875242068620837288136552833807054555658013442217793572842264146353501623500453820095920231568143782455486447290603909290257653205947090713290948337826434110572094210528337475880952559875602450739392685504929126469758371659861304038722599797321142972777127845653387704313786980013965550542881873793494217058591477239775187789698365453826418336298413043423162042822844077363819007022750790002317200517766219711751759934841424079574860597748658717634922309693481963554800821356818003366302870088910018819777254643470835066062930533587827275225227248963042695077183097567247871198000703276957663870415788149770762865185568616198553707064748475994410417227168564785929383396683212517779338162843644752057609802326102597533883307467843672988351815271566286422196323979198869045480935522580462744719275488393289380888287490263496618273825315003943038801053508332147505332201517993570467567268074816601439717633517260873321591913767899399955553445227890600900982631650980734422159093601752635430713262663378090118066777548567212732124632189099484090625098524279738935023375105145084087280497961570700795007968779959433039523053191402579688954620255470466183125778559725747729657766505124024733231171800291505222924322727717353312789753699862233512413421642673152748680856479971055136609058479246377643472694650686821406933498751325349008164102890630176540293998841558400561173380862912058084218894019433146765247913594477106293604418672954068339235831140380150844880943166351597548646839479264728088675669204731767711451031933294570247000252409461479450709018641548695223984453206439249912846098857075416802687029158068755882809041837469775214615139366469795814738192808688528199564667504468039421814050011866004055905029342385609616998798579710561460724813304737001702035400499141982801560330086227276446079977877799058673453039028025904000723976809665356928477318175607559468559337202615419263463111484293962059997045638971492210236511582655708235573637252691546676933985166440534441869061901882109647583533995769588332653261894452502818076262928017949885342547636610558580730808277352465161120226455910309583620176901487324575038766271574477475747432591983449840008550680203545870698364123723120943886138698220001441655858253145645687466052288487997203736818078266778535357565654296161473133302115825880046655299405652313182589659756595303018524702839007494024427121783210382038761978225702740969956062925060630126770348053235586578703161149698981104514164364641044614075956259043862370563429302646015011062629915672342099249405872415414451382451745839635120176390253917586525589486285378910212542648921842360013118028434547982959153454544260498918466308599714405323791495271793847628853310455196005872246753115911965997221317132940599755699569435364621241732183502948663748338766824283235565185362378326688039711295359752052548219670611589982303309818160525508922782555712841202534673370925250397502112903026226889037120688256306844358244700759645109216334212884958753682737483042472974990436587808586041551017641067890286624629063257246747708148046356387185352158805137405634773965469538193166331742892326816853414788697493959353188974734670105353973000770437191502413659799077888197477447316035797077079027085515602251506542537883408376151925571685852239160042895837334293866052256191098974409574287839183762014098782228193236551015980356041721852777937319088773255031167097571124244972641898626313092610324720629860746004734340062712147599071717469030676073290199861180962490410292022071022341569041658873950349346702229160232581331256327671084854713237688428085087902461398737591748438041122101135541439292076964322455723599353591604812196842904422016035426499096499511806858618399082434684386880284644518624800251834777896955123200137516480079343138029943745298933826414065373387946085538197233162277632354084707080765036175384727867434974389052062217465257152272224605982515827585552659839927942618368867447493402556607428079576285047097392345815018654080682572644583941865517444601428517790451595986484614908807055350282879000029397478295392254247845351637614002136073836900069144835987665946199813713021817862665790076776877935324613770971910205360035823381890856595412206229500357997790007030262989034723696379875492497398675878819976247508330139883643592298180043444434858108678732632404600436766075792850146032760954868430563007645713315877485580155299458548645491669314537272087467833616560722433180675063476759352996217586143004955588399495704120072908145371930758587557073245604301255042246489106776397086259426227851167380675196297740004484737915292193306006724127867812707410917797069071239033440951784987014424081851054626219605590035976376369331443940136750399005658461789508781884799259316737767918823425841383926979649854685787950734137658058918163368825101258185255583699468319576243102149774265498875192860336406825360787776835509070423075477573996713269074066494656553866169561928046583881438701281198281025077160765736362379460603388008482811368230572279229744083222029440030336737265054428554276031036248300423618514895978259907979287420331602814477436476769538403019835175541893756832535386668293938477917632653245913393754297297882243234682183794250789855475418637656723122927737369683336341578426698337691223876151768437336521661147971241070651648269979145513933005002794474502376559772808858230496581458464409142609657913042034603536252169201439270894108709163591619072002870828594740227228721492527127202095850890687875010037433968142711154563744579645869550924635717756548533808218014893870025590227555334345120590450470248397147465929264370931462935524983969080864012427106040270775726511048781737116591014529968884729711840237805853034871869873507748261585374066539754704970263494232735134835704147395679460698693084008732728417468425433373161657994544328115035171170423761106138586357943854837885755868481797718198402171198503692130486525831340112205547585368674359125247935370382253150213641897662113969081548117205547237009477924770648980272374499590906632285744372143719528386732313242303842797769216483383768236094419565740192712050276685428207987330739712294894931266666694620515655888858762664501410323435300963766616881064511049390130301961122720156445631297528174002630991711540269545547881117259896602000008719553658442713412650599985927772360410846680225920617966861936527559636738521359595080148410084570977402197340998444091770237910776539113199782801528535432060508220219801188236029326208133831085733654426085790024456107001103951454232361286011167923895058022417235993348000522877176328104510697880826817028978143847407217937106077989062898337826784438922481249683100671048611040100773812563448284467216297478879962115793090664692967048246604805899866957753757088972511894778721997279795873702671578958293889271931549798727418709521140493158547199204036435356681765092532715009442520860847957889840049805438002134313949067932778728379907098876499171473719585348379778340541865745187731745992981187567272832795454354150984480613053808136840492708914642550429019106686255151414535255920531073771270631236954629290459062849242080207173381399283119938189039915551051485526660900078056178101236518355858065998134208931318316975548756101006482203975451946072580693014992489539570172510868740357886065580597220068195443095397525422023049636224749911807866789621377199640971766189819834490863883908960177315424423780732343097096635238620438379318183941867731491760279845317377964484524598482809474964502830451369976140488583326037312045241483455044884529888422929777451381550762681083111418963201150100775525744997350903252440621178247091208532675418701733745979753198094715686708846854158209017304773384686857120433523423879265644822944835878453052853441118686699939296657387612221093740449076480121725057823173377757977449726521259992745390030513070650006481687282980070265385306248691406405440540912605265311000506662423521644774032974518485570722374510275574098713252398153288854288358043181710475885517464668912220865626638609610992468992786304400873827346251738859064956505019124530071388849829981328915027892084695637245701302058033409819041642476470409618045578182312147160047394970918661289297813247536060084796800431141904383424887077913433067150160460151578596096313734845896627329263649710926204519202040526987265731827371978250470053498661952050426442972376504684198768715069287577133318971650544677066878290540628103207765984314334987234304954501342917028269249064053807171820392097606792442633981694045456707813472132184906831381620982938656733452460145970172635923394805678791464965192203300512648102376585966763089681696816929304013085922810694657587142556154636397044359881819322070031461085480916360767786891353201658256847425607069691204032191197211328801496901825600871615530048203320559562369910177098945637693384957630414620656522428112835941636365288148918107667125358502943420392590634139680343062797677695458488381204726012132491432443243106577403776752547667339477433882790642833788562690720687724316324183858434819473214311770566677060605019154556893103428509742585748505982145670088175477947670411536862881124995391645004624297018947154158332661842205596978291003139897456639777846801241003631204131696519747525475410609482640803904729819043768755029403450659297818217300574275415819419049074436986960959047577772167308307821419035332797988101245459820007903041922080300256658008226656820634891508310718498190531383309954470554255114349353200650677568308871934292532429888233112970958325793787750824595747137665642771784319510633786277626040615479794919568580707368201298863645473832564408747877066746734535051883388343428195258912954564631233093621133493705590935778162194663582479882059893686330907851402370258596777173513700993704644510552557338314137424309735396658538984392523803257181647976636651016952967996555609281772395340773172165312101719642488685279995799222423565453189844351136462451601812789536679261249466263531164656631337421971577126235342330948844052231323061445793245243013868131836932794055177663391121325367542767789168830397266599778280254534408510726417903368245085492198604712120184981722560952538600290996497909147595076770951596890577832167426748819746260479212314039011009263538082425311746748908919028449686211971419666417145614843648536399788880580836929211647942605838000914511153803309493507959023210889461792358982465664220242916573376844780619894003783440452215067765429926540529736042755525517668433074733492921641665942508418092566838204118405775778039275647833947763871565756308135377903481872644189090193809384537418675476949048956924381376999422496995660940975388735522557248933351204789985947979645596970423384882187649094530136709803745924553903179429454840117374176010753471502954399319546274851252993570852611014398447552069670035193614376558957578782061326112233663379895635096867145072321336833940286201281494149671531977612406127239216545168244587272077634690984581536755921029759895707155849666459352407441770519975037084373765782389288323079776128632094265872861809238585014436110693305813911593514387688181962178893654215295124188829802225555561877559452014603691261083414663763914496546036135004571054209580332078279165791683631953963952586275276739864176971258384922455537947229041143779445271809788847778324884337685501827368754745600103942365804643941079270545699762672621412060320630061477985016794365233702731277311156274462082528720909407665640591055483825908703256292532151187616071960315222992893396100246400813590014204926647054814230252916116355451280863636068922475358576326635140289893045689167368531099383385315380463724440077622899774327516489435524215899180168487226761661802502620876666176608387736609882840296703940466038477009604254942876390009804445135152174115401479160564682466076567417086621589339469591863080555887075409617546975982514609525144568220018442819024831071289792464058641939951173678477118758096079554733254627440703363200772036039909707570287155379454188011085078829076282229009409886588745741677102804249197129021455726728108940626726376997624668511319120653275864684964347867034752319418902650110735317600645435308952557720658101694232896242180531932584224129103980925719720787265931808556533315462212657755385499687770108568399236005148548401291612286097729836217843808546364336186164371489274459190812814462511646415350788063564466590144167742143939515770833803090612390494214529809446346029335283755654787203489822476228561976142543585106259840309741050133494070572392718603137220405868309993845156937416084067085577705408894590953372535899320517050436663247260749893768804918190034976007109932581364732100226075009235029299099485748654649988869782758521036708427295568166882513338144208629655987919409298390826425692425221096344840887500704109220172670235240624617299334623700503532366441982937402631166986703761331750051264627111507690092059196997969562051489416059825917360625994344275524949065283179850092474195814239941472482762772151059609200007304506196205922495752480702827566372532184359166700375154239714493901297646710875799356185775339535142845426511409699009378479169037797739627187804110319883324847770635824421939958291390229354773437276696192584548087473761888068838293203017851127917879455744099935716070856869301622304592691271544161824065228254870926335922103860621660518404712301369466932225259556074144111719757359922957783427347641682025727521474201283825053439832277378656282309655998065800713897781910280314496107443456390855703739720078109950234607410781723268536449869310758393264680319464361517155279624693833304693885124298795582959232957236195507513317110734629195465933149471717755575852282933171654685355585270261009544869083854652274487334142518691206283918669673892197880778291561704504871954450697201734265800672120350248661637126047094678824119274874840632614906849922851103221266328883950271035714255326457422274457726902485050334581390256075054928187153776289185141826639047575706408377820577488406169550862805862101361600750452908575974923949171054820114693514670201590544701398024290121961372656226516656427716474235752265902219183553584474664107597986193843737018096862256313853957283896433620290290092771805761788623966812591001543683943747125484208658644317169670204049834414162797668314691735895572083989338485219593306710672393948857439480863024684356970108142029194938192123729198265710014130201292480590209481667114598666825120358777975781559812681650215791823215843809980535900537819917033210502111319636038969542050250226735596471486675531168337096276265953917219625616715887350120788357793336985497683204365528504245310895661468928965792056832336386824281133717929409139298155404593196390660790585547152467958334809895090530415518726373980851727105825913667249495734280612454479099524192304009067235340988395788038529492517364115615301554466890139376137869905359302266279226225327942211064693473087105842974893483814885358364650078193321987150931238340515074404758148014071931596907173914881748464839304390354268929542300353602377049489729156860921248862813900465474749697861947359453091478268180943282729968351654983085894051931310937633600958547526060334894002900571978299839589655673446272072231713318876337160290790755704300629915844166458522367195525938051541390896644279960546564362549111563344090704503470246429989509936432992036933853750192593863560972953434929014556651894558586535712688587649781550648308121665987380405144269098083822399788699244457663561750355850204837630331635213226285771774486269596984083328459619331471882546476012066742851707150276063924305744853545995161253968530705948223154455275203879072376445386812615996635710620091955054998617042075363144945227517585866535510553103098507362989580312475173394808609203008391238758624244851282068564218117945633275200826630748960463253912128182082606902483054838987127374575836651849468173387940267960514921948215487425980115828098956977028900413239831872112348690256734320556989619322293285536865230512462827376464285945467422004445796183039408504066565953095965579377290321903720755972034786010554737193171097765358544556996768098601159007519153905040902066719404390854576127236091523962699150905901757788498079594727461335373504284075721297040301918955905628043881757331440191070540632684002934230831759358185761682399755888238340175034525313296568284053857837483360569668080269621634737118373907881825699028220240318886775140348001143063711645101094229850547302644709984795936241074012822997361154864603761853038146305803065009605363218925816466142344148910945784614079109001227499204329307269805791149419699413585969044412708178433632791025782397478105264613562911842443612266635419787951825354820443714907687073464814531396024951742820003368430025645418426928108734023234224600174611680493852184980034491804154157529743033609360827571655070507209279135855011457494712084826431848523572701301878666395952240476022138565399527532752046985941133034075022922507094692464292029851461912582428994439314695825767133261487880237650001147079603994495121945272309783569674270841636096982235242265059761555540478544631828885085578168104023107966978399055571562411910754970966294053776832114638152611395786399974777102467372553394053882622710694744183316251240224049242226744893420538993794713991478301633661251787445346177514544487550397270829541365090334755735638037205083043538125011575790165694330297134367624438592022437824916779373343430893393629493838231240066510439037549327158679855837660668224214775128319331480873654263457816892546467306375721491891843713122280341280702973399506678818225180772211803986443831426698515750261723049027961416045827136606140462433018670391032195360839953482100232205428774102934005974457538209179387564959886931922673925418314925982100837658587451562479012517784323805610610334000712497720381717905135073704666774062304811811481527421108718983068405678850868989280413556220786234829416128662723482575295934411957652831665746883155672720757123740341836028211273936903574702584891670277429789643718230344765024206753461698939950304660611116715994315980408845475257801484373254919834792102534868804715745496963220553039567788465601130413630942408164351275418344931622706679628775866773255904003057142177163385474537595048602457861563153673684768224779894506100147195790249678822194044702224025768420408253022168844624281615751385988253712708200740002357395936245363196017278477968532630937189067580395058451542393088969151603181847836338844752211719304280650440201926396100293345509221198160618544369321324692142248429413407849826332859342231799479283470277914515508872989493687515098445107632985994513557468372469301417546822720006109430353954529856190471857597304117609284575892578050472962208044934931930053932288521055365701598366960361660566817939392417147326320522764669911901433009911075289454997217708045647773116528556298004522506520166285670483403776777791835793409377134897175947731338575267694418555350830274120236327200191785278895058273927722547142032920953591862002559835928976038597451881423254315790560762470848808298194606844553157936445235770773768920173350228372144716141500136619037621404095915725246239484795008498642954146753310203868058845015105651097757241913728540400503370126232474358702399422322506587220831500517446607821585969998770717663649878352915330514220408700473150930511798926701081298846063495761031943925094118883538155999131794436979808997010486383956686429702687743504708570414080226924173609863369717108920094638680946470365794407169400489861428152999660577249140986665045653405554105229505803531469946005238716769281418218613072713109714515044216920793314816339595850300545913225744447832902130999656907188847672989019271872399644037400146407843536565854312121631027814569772998868810025020340836999976890139593415442296570610133984571571328534272980837377809909834132427468020243191862960443102724590616761883317583996334499256336503383969685725739107450553776771439319211267816412323950624712752167231758722894645787605179839896452349275865591799539048057482808386377690062835068641495056343502812044391726736932096895638142414516882769457190019683284150354143544359261567378265942141230041937701078271629280488265704491695700045920349283580497046944689847384599450753554499970871648180967307032110298070482282700468837094083836440617382776815839757353817849023000307388467309029935091401243659251653876617911450753230275788807291215679850291362674848295548260794946712480146932122797034353644888172345422013371143881352364005882673496920621667211022962315053788651800651468958540832685365263978783304889811631500367653684301950248142550572892709486229010301157935898330891772590120300026176469491766659499213904637815257312589759615330576509570098319062167194951654576871680906303885121869588923732808615442072444108927152506829133866131691710188502286571517726221746413375709585386243110341636164449994199235210331045617583784429634862661813833081448942829289577437349619692103147742535380365165919324531463345328521896712550658991073970407631442888564201083082226709674386362933173392420548697117636394515387528080908204768798859631353589841412730798080518576299172421385689239280531605746339020636961413565619276018598929468416629719357816701945501469509735927614232454129264118695910498131917514286558940970566140967768945966662241924645026252934148375154945881128611026865231123223365532843898992485209959529069053926549107231606261141040328539807792608123586361460785169734814071541637656488135825769384548235056995924343046319518423173649433496231831263296379695601063336732013112673397658451077362009367096169476836014459686860527965621112744642317511715408801862369642204084643572175314472446757628406522559926551774571615164360361488248226187706980925699184649119605874160953118082289683943339675626479753392104724542239664414226757070149099733021246450777495730140233873047918439851619293190029047518034458183220358218303174601793534811356470521225670802918769562052989383878137248076910301121561426142482516600626230124718670982336580014603807163226444189519747426072130745074548417511398238866531025513363945202694223627157528104049366804662672701911816862689565927299774483359794892598634821493593386471078053984445021943753066653691688906910767167507147849548232967498265117240903787133332280533796925296083526055595398655539128238417435677374204472406416060727687733395484547700933212212113137237594378167015952463969015789366735106203456869745997807825362594529978372770949646143076165715776986799448325223494330302859790331540180281098782185334623934555347512227127787149243940271270577252423832038231342434816635182007164855497020301405235269307063342920058462319087585213249157945945823381907242870134856433454820433859108314286371010505518009328937857329618302926914612038632963654112290503497425107947919561192342159462363182137097020714729338494351254766818409125278277511617490610949889317490514676705008777621432464389913123933231783334211349787360014029081759142415177378780787927613242573243821104012175327951396394521214969583730242907635403031254140113110730250876486950797953950747289472743013310861138348994985711515325367211019166409963964289054134446850182807574145416655327682106535722984757330861003262807115380181805117483439872790750406008334506578516807341129620858724402314522164795207413027876833133899871513232879812570337485260104701765504323329007133611391630606609655789296721271070868112013643848913004075979344684337096693587118985558012659252495676508656069904216593446110142810471379548497302969393039583074858798129392996171838207925356636053615344742636492068195029965318345094473082837041514824666368647826739535926102123965956583384680222009563170507801897449058995603923897320029158328872672799757580533585497183994224037607577250743061154070834047627137203051871315292242223395605292608830984428667076846097758903490379774721235986026488633905884310911407952215067833666504373343608316829717473012280059664961263662852650174796316998225968555864471572104708164595119288903232397615237739980726036377709038874234625142620538232695275309244504335925535909808681956869994460363143021148651531813528037368666534250500212519095782017720217706669308422466036533828746439826081010238462391520726376049018953033255096379634282312672640590584031929703105284780413970140544447319967719342363243104933071396648884043673009592493344718496840010372517140146918654910997139696107741823370834948096075169739948547428451878244077309710664241340916483852041477629779358631805858113102333998765314227138818454778709119742068447368760225664180585694012358907419161695315428565907436652242934171628261431267579379067362266321374672010833502726335383270308696808243205315443549500409980518849181261503728181539334137821384938432493272253915371943534713067470592613715897839205299286396922451854578112372420701293739687466310054222734784240321361141699298540986435506388967744569995172838854333976318057941339450973294603594869971394539952918774936848941441189455398437530424954774452336656378797565070388760349815854647433000901902670820563506438945643160513196001923501484778209932504919959268474072199166719188986954910393062039710829295202871263939913898835391120312478476101408600212086359674829777499770453360587546013451340159582140940828489384908870502151237194503990166622472514426511784844032538667102605828053167792325402976945457739751256937367791066642036100370372795790232265175551153865490525708860678759439362558719927049821737477322822673096283583558912896894860765238086397126110146059831229474503472193060222665865529668630787298582143360232466163436388058274113456573931156524546741001022770227110371764118986151411084420993578111370340381209485881208644275781229632888037448868755860585976548576454684121957832896533055005789429421883693721586704835622178305786471228277333654779985987436643507336308369942262301670374404999421419878014356750983590993381928584125484489668173340203653950826145804426806168297603483223513070759609751444844607196517978558296241936500226947989288216720190310404043171259398235251089050562211259464073197827222754716801976590765861087886659118769895150817669061021063121189618033546083452662372432766280381906339120473173142919164988239643821566495092941695262927140815508401800217255664789648545942556690628892896034416250609363185945424793227004216684269966856428374101495196942394179778115988484164763258329154257225952460350292677596173922379963253901100174492744171724064729384045807198379116541641718267476857313790113291246881549125478441342757206518020459939681513105759876200502594910234518633365639815534368587585774329964598600154563330954834477294372749034667086216311862315445062679077317110897657023750401693488749869245854113184487985402845469420859943850979222099142276030850036731390420252877252318246781829239181154682059211606090140860022936845322150664492787991006113561259801157888620091159718574948987897470900024927294928236171198113318604255268299920158833295263606469085190728210537495904305475985380208320015613388821910674695309325641526043140207709959129412027300640302315664391055720865539979094730002996980758185319735344381536647190225999826865935651451393343003637420431893327019010529711534321900887936173885188661856896215256337484784832635421201737806737460483736308741272737445574969522919299833210296856280379718961110096030211430477041191681599900396997626544523702521923543920875842389762224787643097301093712896232189848523464834505906986626084777417928829397881670884287886113186477024254811680000661946809675951024443414091177829234637289023469011967594796672285107138170010808016572410630467444010791137379541236860868051134406440190243055095294636539226134452581924131627900773604567568537624664241663235565161045165438334486542860807084726456779114096065995196947326297219852304741828251923650209179679212785703609951631434678997273827691899823938236881706393731206563989598778049732029980008168919856649157791621983595842757278548564412117971242033395858644461903692009407802349773942583001465303285238503671824822252754503944323142883041306686304398314142312286076653192644261584434074521858991714435763774320319369834717981641759755005944523711698291396374958794827185169362007278184935587332979187469458725992769313828129280088448596195025504450021972873971063225021259144825092818394629731196535659286704590968738147101418814142272310197105683313382610206510673153272480692236168388625132006522890730387337258971678740402546532744961521512190142229754959482210970823900634687113987971649732804231473325563324721324398180081294632138592968151365549368030616804066835857232118431288088186875677085453582559670067678529218492359242926721099660067902943849290178585286867452880782529057083283064687048248005357594234819686351862681587769727400449509285640178086849736746189163462968093259434278117696051252515495994157629558321019786469166201092365814669848330160941094434132293210792291008915833563906770362059452250675210300727727359914815159512003403053320120601914297823246497212264915535516756451807047414972180941889971688306843689367522353913845563548332772988277876589537926139465913817645568503906864954002376778051896380348174465048488222684929423650930184318264183795249320869235183353642544740158166907767500380514715268529685399672592975715482185082561453934516967285386009025012959348836766032624968457923671014431945756386149250445261661034006647137701770598270903940344116219139872003886092426397542460113142414311771915584635488245854211924936310099515374821710514943272734653603133479162412475833314130682817357852957858029529067172200250106456857067291651148788198482344452401075277797127502296546227187876591973484977538740796371509867606974062305752125067306096234032331855416704703679735476186520652754764671157726942449915333009013282311049347901711293797571423638380935917796477543888147107094936938380744708764163367299237425241200951983577572478507549919258466857906276854767151987301015678548244034938758319744848325512443312470396765139558167130113720363230371984421385888961541482048456887700442907421313639213517800257998884745793870394037378019421510354900170553095829187630135094733256312362731161257905418068943047762837282934197058898019447919485879191203545216174912079343318672420718153986551589150068623567300058903136919854595702464911220555643467418992718676491158620813557742452203771543799772931349410250293489756404870248592604991788516300429440041627325703492049896274549032415830053401883469673146140821892111989410475440126383684939849600383941324471219655193929561624306941538579549572828207295541314872409487685852149136124762004235012353513145763059311836162137270978816981966422196654509751843065426390468549428485627481708045915055473674987406747559920785973882466497858722889381927862718307868762983998909435014606673412478466105093957164328615885327798102523720415754539174802266203862075559762374778725337827529589641645297276019140237215665978992089669904392857162535066996103844683139161105500613587012242243327489958944492473819485123206649446007619278420147569561434781406034950816756610288354801709902655960988430890578083496061783550841397970652850910748950728270197437681741764721929689359632089560311244152804738619203746778228978950265128958128108652589313310567090026272640726598057291747270356731422595308222917874757899405555154334631335865119055206869847727486265120732262116680906470858031352271974945445932101199339380519178523421574234580048865545419412394297601003541466580485768056713594466042809083392135142224082857305863961936356005922812355701699070527208704365020494852934992824346685071922192117156966328845268877888860986603710487196189902758488637503144127860738698883108859195591139102146678363277643662119210103759073891667500731671906082025778304279022837741187265870694964286556456219105387847495483118616778650359783482551735371315366177718872115144860402895009215127267742202094798380659873482616045823911129276098711308107259781087853813183912330802180578162986504655559847464937590092525458350195107370275734797138304436766157305083097262439082201281405144206726916243149971758190070885744630158873342220468543616217543258446785621579973099100338056522715132953496524151505817773360342958979137206619731291239935337189041931334785973267502021299923239128271400436217101294837707533778250564703526579397828521376424117635593763652303328151923172825135754465774430998815353104039257651687082598066279874895745730521859900498884873950338863769426760623524417339128263102816173481218472764389894045929227208383157079597582353968580089181623207136646651428964357714746712162423223222773432806361758858973781078596548230234826942465161468003649740992391144268671115483881571265911889226185850503985150022766950916247034909213561045346453965469206163648878807829053213320224376717295180058014632996925228037263208143248610963255445334645184659685693175365481156504636569746122210192655239497603143983063211201490115772328059840810267002422763072699138558318538072409700799979477046015437286867499900890874987016396371618502107544444324182211393767887175699106875103822339818961787216028477779893366562233698899726393685205126976381057492052864047154455276467872925955453610506443852049315831934784852752336762561570964196417353039510494654525123342905229442289785221856592385279823621778593513650425053843151971963649310725767670276164710896561989398744430650105368083447121029053323748868930191276566356759575430555605977476170638303345848122104444849732167683187168969968048181384360118961029039727067416529010004969887749775554487547738573517640717334847662179461793953198774560483278182426257712075218495132507602410306682747779428909450882731181562371593457992330787043001261434924645185736435957182865049572441924689864972120242898157545354986361479196018587224656536244787235300597425630573816260480033142578028916942733037601546677792630157519090570164504751846333459140475092210561343987594509160943413752755349739934379699009482167121873241798756751357895478613027200560589414928667414745625331723272946733853263960832019521326975867245524183542409528562328747204748875992203795978162909680337664529598607813748731476185853717751547157861470308205298670311681805355380244246340158736543204227452108518473612282748927215277832739900223444888641378298184240574605315798053453500593668282248127989982414331252976868828293135262826725739877634456458070688771539886602640667946838927336331710214399608820889631664105247160291355589447434113557871799094722916012842570816609486110741263900205854200225245188926139648575344387335537040002923888736873756098240821391943001761486912006743301607260676059733831959487283656372624323082326723359320294384764289098531251277688914501351819410821923163198427868135224484324494760764318021592124497625678768959531197959624984746982297732117660805329485280321722629906766999168489751494350618995812459296289610057277565241927064065900225330428334497368470208878143521427885482260018558710490418655301471141987615084403610618215287823926088525904975981781386594603155239976576970609483765198130476171859951051369039691977451096221425545847191608133141987232951102092335061382905281761419340161366150779617558674658312394102335622294805846611877494176919692526743216488352305992370668242628653287496689865025390028925765748862703676636166681552557982840955387746696229721747551593756024368023838677217881746654020020763340532119843933855313815884746104387657569869113020336735501593113081093465696388697374666482471386408982341648739743743632141527114418167910542092231420543385658452252829093788202472065418912783325559328105063955446888234133529290796767055576503447806922205710458079283071491678721550513773019094014199610918420335135341491748388868598226229598923938619885556578816787383626276735686379878964472161153911789294982319097477347116600405502409872085236846246875537612462034447572187085250566858138680356936557276239111137772910680898572928290585899296320128212677746112063139683559822218051569405321236667054255224366133363668943937608810459605987604350505723211437829923623426964604734439406171528478239865862148821124995519784121619155061190360620957898510969201492521316801566836465385912684840926198478203204977381039242689633037170356518781475790969945542515312866044143342567570426923774635558826277325142259458312359665171220362904708522184219568787075510674247272617525618678080708052297035728276537267397326393923327174310674388648472427295065287673540818820935889445630488524960858846445165879536963209642244041213347187368051357894593777690565926680759419429922183509940020262151952003917376708814719413471426458477124420034256756514339487227939302410869011885337358724565966205086346630718968924905315906747363486968681558791612230527394006161792561806117264943690331111165646076225094381631985641754118260154497234538946142057068051878680652129530666268022804479077065739635126430879338317351901911009010847462526887587652432449627962798647319785657227424268292287847451959042863980040369582848818224468018503998782287129209252384022764686214357577143770800131930889929313344347082705799616199544279204413531461190213389851855481783537868461125432817826066169537405878219364478416203217220993508767747874089206726432035864753836504704529032511202327376744954759873695707824334292541968915299334495047601813473159450091756582832974209549290175244373551522215616424991118398701426154004842713618839847526260075632237727746278116424012735502103843801559160766497213850245771665799784963623089228961368709585715191892184924836664168966673116384379888029744345640699556511978817027262548198522756007962592575555940624082737209363661670185756660534564271439637511124253739871989483280550691566345551359872542146229100327781332370420451745796003609558131154218699049952113368641368204779526734657861028518147885141941001651162811651772617957385889642990728494666940791214560214667039917043620565157934519315164788991463303892389359911680922653036705095162041066157695987297367704621090160213133004287608360172626410562385141329411613365807214930104475241640678703934976098325650938307770522052379460973028939950225771179618418976311569049777020819053569625238133081527034715944230011598004720232440233001187327143570850985864711432676884466441120605617194293568419376575283420352114988759056718753761393060994439989970196066619217441292164620108639611588659696243345233035172597750961165122432427308906745671025968483956092696384834584772830664748594767692390349705664736235189422287854340470571685142806452798658066734436491632134466382515161270636035034820092921231662608085308077692208136521176521237367068525523549896432583836823887335594194026922068928294037706944303191354800668623947710667920454859984533174079532890988496561513560139279845593343379419814556416634125107937340781259053783586201580429709183074156509043091942509983791542786224198718339535147280612154145904591471592795852353869583315960724858868847245381789231028416049582673982015998861295555494888140250153395704028542452190290396560788807972206061251749305116850708674447495866298286823263519804041975155256570390694037604399032434918136784141526962495105907099347454814524474029645714065221564891001913344648359633436251155940483464396696282452013522473000389192275616006488871148033231500474893547707896361323423214903885633865228517151975917325334591187990095798931843782549460414795179588324943884669127679377434472297815963145330353575533238682728024945910733888639117940021226403299873073017884883438865776591040412909135022355879320722732783496463247701078572515656096945146211864154782815487325311482954756620559326602138722778247850156902944376785083119936864645731055309662202022122141106061694603151464557484225017896923093855155716135314963896635900201085702118111874246785392026444509244883659650388293947082309029859933297719652372325284941101625743630674687515597482610984806521127473227900934360248895377345036325995707725283780898805424559446282680714414720056990008541965939369179004904411945899261518252077624248713226988052320129502157520401845125089383479202418119695121086448201038621745201836658774064958957370242527188938963434143561905551780330311778628172666676464725595146613340304950620913041716370265105385789337241675098044375033057266709846590342517836640543836164221797394463648400413728249357948066707795600583628898087232901625209422935888174509756473448195806436797738925365193010505347589906011379173852999258876168785940935149676922440771025029878357178198140478536983337281856842821498265931829625341672684876538530924654024336918663165676180733912121973864193483591889992133132301848394595093515285018364700241171262380765953341872299988494825651026257532151245668710124638622619906751017056065967449742632386493106998270574180009840559111422270353949808765040895370588421992905274928572537560580296067176776110871377624689866939108528152801572742743480547929321308219600432764013840124278251496355781206257276568687818039762273720292394134689186783028905274196612420401222442762050838561626275834796295930873568595150910296431994057409542476563532616452754610723612901631963999675921551106175491664704964783943303899744146119497795846605463258336933906860860156672437338048190932626325237167046569085183005663822545998052104528944545774034172750199255987874008412680545016004658962585191176689084543247118375127349474550791463548913688435348683565843109173416414340986387449643355389393236723394566172317269484435264491682747535488842791432420385377650373671795488711009301409639160372743952522472713206211140054185002040801959278083477488744928382869668768602286406961386701658783802428089484618609787944792962816203429197469189114340503129619262699960874194638189762986846947956805656798853344424179871928499805286850700588546403916046070519658693941604769732154213318534340470726171911877385603699906044526933183176501079816640132568343526902903989793454951505030182336046895437895001222022429182186727387625741795555515740449607229359484169434171820081354150504012092344928032207648941968747317661893512485887820383889121628965448500468165614483323883565109993152414179360512348969706062178080890517252639301752489185732233994632376054639085545748236529267549704426422462996468320096090158490345381110883079136570513159207946510093353642496207125037600893070974402654771153870490565002758133450296193165215026105512411754754620215241795970250309992984287527853948665778971624833569237684940688621977036395199991055817326180524486820319124416114226562188714967711388825778378856958740162721732868658642193195519479722487155610445364654107699479708796219032233717701901329974187384750498332695474819225943730726706201538160317900278824863072569331225613100351524717845323367092931146832115731633967258416846459009168544357603734644929021099962406486874175909481823470414479409910533307475727785908473178187843863498629837124951602466152208037012710663451401965656291763839362354213442228651279229709374964497314749242891075368981036457711826518942423406097146545881351367537316873192294078151859656404148120338923470818319692554928975806956627305746797813381288114675449765320436556291692717536736973802632986214190725597729916064859907125616762185286044888077825004386445277259909520725630680883992640299682391958442782991008339456550426915840779941293708635753133712283365658235154626672408844872697006431052213309379653717833510237891037483372921138414876225953993535048717035655602955226662083681242269292327481844118682232122033965885387852529553856799248219207978324320620400012453184449253690302810824764003910375007290524765472241972866528454145487681422949703439453802303252145077670792336484016513501391197873421618252650751238305569919641339178635545946192393774528913452676230597086584143430984915196654640170350833029154385659041457548037754349471036433014539516237242572152535576584734096423670080335062611490485304666765555754641178410134218892080361664519624626687488537340044936785070774381752908581031027009574258921835872305292547664127774981968481966227868001449303495646133190972737531546117247128116991677048503640083131516498809966818694947824008419867980891850245538388937031327900961379725323035850676321410767474568532198280528422075200379295935459902380959185567430318608477575210278342038406593381862130412001184638866389645718840248732546526431624218495399100556893482772556922146535001861392323412970450606956505066531780282586581862164116660582615233276713956303859517584975565735544941741999919049932771979494945398400079041407349540584605088857294819919455504570868565952149823160494975618596697400083768724426826901313730404300035140715569028690058887022479567988238846129728283424933115783813245139870833379144707281591970031604741222230266124586736365990129592259583481922090547258358513183583560093399212436030478421266497637567900370132579614938076775478594408771144765910881562008989993721471859957048036681428334697702480728043987703988370365442562328334857676071747351161172291117786467188389149839144284578468626998303896910659729020874256333996009709026970981837681615242090435029605643532930782405634450690874862856308259486204171517872398511892815330079992127449235435462703875196376885354170344176358521194306823399237549054391695841353330819263622147749975388782446403906104786157164777156506378928752398600638675396682565330441762724604712193856403712277352054733231927630452218125248949432713437666884448242552604955306252438530308979442858377632013900168715451927999932473596292403046148904876750143372100907135409774022526528065684473031717804445235463394250812233862540209451944344735322853985112385104057399098662713019104455586727117868222568734593654986588795209796917135828581676209982197339641751390005204013039887911402155602989902201358282322160294187393987225520672846244005044416055342779536659220156935380688683362733186120631531368470850425646389263098262201528961800159616876953267528149856225887726854338419061650160551289542704086230311405868109192618403464814560180939700411141189600189919857033523029242043811480519794780197447789681706112227976628546553305941795974600309406331533141982943860485599090891244166775089039822767819786725617588196396473058483977946962515117599084015102964694135632651551101814109011556637375397858203002601401654354340268648051164815934024044693991744191788310016036862858247252008026165572121391529069543394439788847039863944659856464967841797865630619154266929437908172715208872541502741553640471788397485563024198973423032142986245447912889554494264733071801017093407885157308150762961419786284891087093801309635103665885294650945916820771446400074389904841681047121526132111142895581341317283692934631845647293890055756194502454642946259426387159698462255091197336156566115454472950842468412078494517880915133712789071635190110129522355248255008393644977570763324107157603553595672369730270756475966591279989779434032365666449315152491915060363596494414938798072389376044215379280501410750145625937239962811830359960271451268967405035338012186536211526123213535681712965456547451137354170036603552154841185037257941619117586372844989412598963945137946922253199883593691696483015691699368650747729255723932840819454082989113582150314826741691515979282337192184707408357103587131147387923078241375350521297585868983699611287983542376853554691194713966643795008770727111542182932680917509734084251376764419455140333938999243769209389352768039329461481152233131691600808334393384357476533683019175774911236938065017433611844585980970097399595820427947097596187594230488453668338368896976731118034006700451620234404875168369595489570835021915429307146238932787696394009026384127954422303743331215148404328368303524194196930951763473875916626826484538414562849296328481633171827645424445510620079681651957416614314541021949322863820679689784210522345414514996181387277116508605724067454946577068756117397573357178168638311393754871638862402722760508454212228575670261228793529937525218310396454708757820654439497981678269294516871261121474570609497980218367135227662510787379777336417902058398246908738637994406902589640355840148350529391380879449028751194364618982626485241124084807444821526527642027843374041731372897931226169452136558364698286922626249154218400376636990340175831385392114509409522155863831562917076605762839606332584554674317870504139975047797314624186041279013904837229286362994704593381202404155561807676812870616924335417155410024959544367346916522740755970017809294977248696790071753828543080609729605204390392156322076651278038203340541082493190582585753908446210929250467478694109955506921538648674971465453175470299555351570048609213959897222351658374799119632583022872599288676844340659637243329352034289739502961350605234870607270194782405309153185613721514398846080036332295518160494566152464523750302615150848492860201589376287728663044210634499670342229048955539116568552799287988492974373021348076346487147571250229977524836282817839605426788685779206175681972433183248802851382714195934117893966172271978168467555292996676054336504485807712748112507120826760115808496203801248674406329723605670593485830498035832245476327054916377206052606787503996798016382848888662163174538004460237834799994925720714545198192858156022168505176942825324000046441117857811154705346943527058314217016176978394167793734209911987591145353169026087149700961731718333783239798496509014510252049896864060653195214146562566186441246280106383822805770171536623760369022904557897894797088596302586200645285355667669219238587405823075772339388621703337959946636945434127261014323510541110309437629329550799655698286282992628851332899917140665878005356731553129187348713732182489346323367227079083672212869618443573225476907604689782976477757858337306662327952362414937955789252260281999842275628404655157911724269282005314988303602913587502135064955694426324908653640384362057380230064179341380814835205200514928310658137810748597558065537305428522824224992407533540103848921144220345458300853211723483973003262316714647744835297305628087249886334847578453092313420384031059225573759490592516223625190009694503536482230318220300707534061669747931722277933087586599874799602723303308289918725722201998076509876898726604598519652986479466390707904635961290146075635006845177554411682741978607946760579851347232509544250021728598733302197333808360762139334012372435352039829352218761345453761314538680561304371572837451216794115168281880290733409605240055639656361092420893898377739395548458858271036319270400719535272522664226138612470256973871273765072617538046098962007411808445217266068227987170581939153527683897474778612742988090163355513140978776839269205646799131963368867829984525642033013053664751945269114044749424200289481183241825516555272922322629661895155153415068210904551346942907846160915410653720362775189932417454804510105570637136324905498772449662766924377838900951147147958221497582430601943131166117438095493509267674556607457237321280576854337232873820588926334289876210849454121098063008096096902886647950506217042663597800629031048730519214591394065171874407102989709362249917538172731664841427035819996893589581091958988750597502452487263490700018528356295014965565821170202759157320716730885743103455442849799196707711681577986973268367371345602741155316388497383700371967818761957810435359395794986452247987844405087199353484534110515008470637697780278377866899201210406388944730291094630861439292955277498249311052010829033230691349152403373679937657584633061999045650498096668331211950644533849309885081333187702168849368098505627256663794067184024142386153022153518057155559979230261005551282147198122347389449022785704905492879275613337562341482498538385306208802740399349732732590236639876747046211258944161734313027106323308706618531766753552748111518356155232736259244013074321579435789185824750345583748393088877206267893284737959602552265439151281225895382644041310677580538773429098798928929698960310817820265715029592173051356044127044218749995117291042451609019825273009033353857946065923979188677035690541815331583409080933589087410379554396021683537902661977811086572788829911742770259510587004355907519409301590259404032930582047356071454225315944386310264898320114843012878590555764058368947959382232662289973001428594359939211562967685475801754788407089259455930021453743186717055522617441818242998852026055571708584360602157962016226204753132392607647173645172880345531583680853528987490774097138411855795230127079169442365249943925793959941044376314019069779580280093370315287840327297946333954314204074993138290092732171562061134597479407188153045451797625658573313201713559807287774045802958666215679854020340406347158648343795492882762054761946472413229139438884036655381930019145618053236249715493515627139887324885315403607017742846908016785263831990997257060656471771593694702153585408430269817858652648435479242437888060442591475800036941965440059833138302504680877412482706733675337574983172271534613499941600586022297818408526276964092814955023498368648353573159570389206248340195277340499716757492916097725611818106971638949007701691329148153204043116046615433143915501917237727254746121756542217581594028207301505241004222712251699410021748498161059262170703041705579425535452414725007795827321581980552619925579381390989701813941493391309799235058252370052027512292724938962644713988023452315301773227868378881204784234299378664934656756080346646229778423735687599467521623863778737757679293581465574256922871707875993815679156715547724503898312670613584964931474515910374806831386223304681534414258724411047018462992975581859443061048408119775014719816010759321948756033695337362059075904641646389413811614462576680013547863208814319134141384161003661149885975207010734120688664886397557780417502604358973319226194119153161972206631178735491074378343104536874374516577893412881403089137337166975438093325775574653905154441482333882416491604898152527248120812931778543014757782052172162621983350502127354724440394278023721827852299164186990867017216456364077337660699482766148834686402646550172130381226203955213326943498520747158645953380345669808280529847743913374625426480081897621106556481897697625617492001368921542137253985011378821023483004999210015764526393592344225038451528799383165807166785784315479477248659118644362710280158590078240673147179896041227630710669460525456562429617304345258422919824329534664356614276686475957407463169390272840525943986715273431899539099467158847734143880112884715938679544398833347085205974890495802131444289659160141881607035693880212615688902064218356080703148172583815700964541379134819771270478852433851538945813470538898746459905199398557696895752325944476414949920446124737634646168561520429178974814235399627120847802882758493382372494488512252279960836807344598622149638619662227782239284160815137029055654384921278137092535605445421945737218489201390011440968519488828146124228440905808788869745656393697733513927146730581102945745170662101581719214262001445123447524544415090094176434628535334786939860483904821159384633713938399983031035248930773722568220947375791920827703730734520677398743755919593478906267327656935204506298637351497322895490769799315982390088552151534323211552400883567882974470560565948259842459955729841586477600668689531322073121464647989598321995467631185937149349234724289317315587483249180566509348804740177639569727340034554619858838758013522521291922891497924283889819480719916351796611129494253323426185858132071868259869321282579691522356823052868906910699943782966263334755039144928509220645326350131894902085407975255938425203234518228340274132135430185891569784618051578985792427160370274428627681493717068381285811799518672772181927066212500402309568436576170169815486199677763956669359783349084967604604745884703555837793244142516223787059694333969217664560053372697867348195987125553557335150987414647519949146901369725873376879399715393894261891380043779327993566921640614224073054720625779393474344662293341122654467529766939593804148933395375753987748706356093256657577193080654622178299690915163483874835776059294960165414477307279739445629568064761798740227548410087305903722589899489344318220589122299048032156244321594895329177760129437869272545428071706504063526246880858183728291378005777020195962339298969767775767179339120966740275916202671648758402535889327178672800407542979927944233416790559184475019263315912689560029908955727674781624126677351931964330227414349057497944483639483971399944351822335473863982573228784781596633802565690819116061611618589264922511161154677294960513973868419326036909144358433383810497533601276123142143348410049783392376567742661900780727568951572072916197181608964695276024616921938037258838558657795120189430374232872393907897202167784085205236957090048418990116043364754251399726904632794286996913274109382384795127084217497333137663390458496875035374315385573017652490450159599501806124294748689192192891406744339250106562872637836203906034680966151720944708515237964916194033733396852515590105027349457367814745468833432681824999241511199399365367399140788833180941802894144326101601547335544261115992400431286165174215363483109688660251911122479339016846781519015528029943407310805650165418656562259554247621763463354447824086437475132906120185507645478669789915375886351381331156916515182197058062620716134254300286940756267201687249005611151358156401892902348744903475324160911715465949258343323304305190184090130513343842701214870626107042239576605665855785553861105097832745813412467729879422043217004173572036993145740386818119394306306718194994525101806808068664226508084677320220107914751526769947498936485374515264304070585197851754067233090436968156458587236695893039989528813262402061142706777540691185636955406926387905465404578003110901997199620817585064706743180946505300853471035525993500071839185671536133154003458908509210722774247682151127263670967291316486200398328228784819657021903848299851920430750626545111638589238533504089015414839907025099168308835461280907700516532582636743201494806264795542986324238737297592402996886125375779898722654659011306141936476555387452095220034590210643181304795795713562347482803843003945424460895759869445719188496331622988850417340861194936098044690353452461608730050928671176970027382483377599107291537690951367084323728819716407767237939137826833328787632021161207706243507751950830708775902660340051826699498843708055174971558952470259959916366015478662093280523905283402978001806954344787814297178550727560172304539965322966753740729955013097835788005362417390073139520638550737512874390430784517222632257935047294365977657256909244607398201782942553342262287576292294425935395922070352398490896350555687836288984989871997749419652818407957789491018502084839230599904182959573591791131454483338147160214559256248074710250659846436934725440875231117875557456928842146255023639603604647853829627172816811485751183570260032389408698972567858945387208523648357975575035932178784652079240762025860343446795351764098941136636787652646714770118843790447860754792888397819273984674231904741626212880895314322206029993287353631547416893663742648795582014116255967477263895103929021622390299938773021460307537480911362408290889211219649155357707901048007422968566245432943476115564223933092842304416565206311465687832140887201320402793562525185645191052265634647972047941333384986994550116490484269350716281017236337926470336072209696676062624595443324708186425971971296323822511585418539000778019927262873812211153791760464386660830849364174946760768548211235782451470470681090970051921257331450575254152445880645049762228189466063828719129212662303104085797666921425738578369391181970440554433737463299352133277869617573572504281992983372858507250106780403695260618783586133497995096620221943306882642783891807717832184995444976573062607518754042164151046232158398518923552366058578480709941309113025073035368410766930698432756737303728937932712666062854635851288829715079305255893017021717640248913910148823611868162475319813861155314615939793639140468306568089886401598196254532992597923767116876140516547412114358395128934918448835952535700947980732705804531928634455163680702604678642862924512232277936130407590408622228225792262463950035910426210013776206384905178453690658687192565792031706102832733405667787857633566331420085115117958599304686341375054877534158118570288851002556224759156035943466911932760856246396379440927382492502753532588908336654354572140768100029936873558231960001691486953482199812759248012116398917032232139045122927914571964644748710543748187795569061482992922854101780585536572831549991655155270921903399278632033292188730367997990274014561726912945758728591671168435680952000750066016531710238292655096503182706434789823694379507140349060032321958424137029424335076486465468579029683696992036349915261106021587601174786760924703594118149938480785021185727731492338075704072149295589343330214708920068377844792723610490529144757113890530725626415368887645285887753920092385978388610777282032568385450481570885617937153018696727506858016068386516550215179456561905102814671248310799706623523750588688584531668472678838631285387659079710151936900855214490279983399757225718824552770989305408334993928479812713502454938257025539264094498771767950683601995068531305192946864473338161200205720766788655937487868403572472198655985034047218667749852670158526330478135675132841971880769098622728241195478310274536305420604156531560997169212172423079912117587911760270397096493907514320386404012389279737389128832126569681869702330927441724901750496563334856493911689770293012384626248478357544498205889409857648414969941807606510291041286510641195235291220269321797027547384448061655250838676451060200021721739315816789734158962771289198686862391266042771884235913951000465301382251978711086514216873124232104657666992311945094030240739380605538146818793822139472223786326781526540896982106209233983183063662430063148025148164921623050620684008123051969003749641237451631413479065534142327172106617926421524608978077125573885016457962121226758175075523244293502000595278818983462024678475791535542978018171008798967887823274625179093524232382094050917816129305171509163876833426586436577415495639240543596890550795072765520676904792194528156282694298163981579514807863349992066007319736136186306061308361268311997702088848141137164969344318412885911535819008502183070946602442317411391543994921663246136556307846890456385039151742312075721938627680245656229047989758410245166061312937330263166087694486733280703782866890175172238681841893516364443463954502015542677383603261184164390346040187865372860711037884090442962151048960209315711244852826328248912206121136486871031476217109010320556897655308433366512148254346793980315985390860334095855630451283829292310410124772604899434238571752438236193890329899610882967815841151762451693758533927716536692211505048719678557307117329118254984274822874891599643763659419814398765249054517990931011618242901854985617977070376378477503307254798847777531607422634742440818864191949844724116341440077426281378524764691214566707983421554983889402709692029779503967806482337283248174693736189245499911965331968555563026841788095287703619661776512437982641053593593499335243868335381481444676815056961226192030608530768915193041712471067552824248850570050105177231314052201029819672017841241421183658782217714490836625535134306628135364083787780225346557353075063085226030161217255522287296223206018301397997344243082873458447812055792497061529864286272082943973409126996218940949134152739299134265465694014614242073791746697200552079757929302630309344270878301651812283245303740590068528010225692764655945382105413297730635197017732623009378098669891827215561938881099493265920628445526226204919606134640258070140730925819867012936963370241426251371370684815995338504781533138653748992667358660022603292139958902574581042772245526209889188655480670062831472024986979671982144439159522606246686556767901805008226010620595736403269539231666521380405326426844859540294987796517389441305074096913634241266660732499713535984794833000601462868302172760745141406794882424010247263122611098600988021736143234872714764909860453307395191039501166388044279226650485831804091881892519152620951065409939930127006097957718918149708861588681532761843178318298184213275691185086186846228028537446314527710470916547023802061520395101091801819702691198350900028371218895354418709601031603973981625775132514356485712512582506070861950314586537299925440559991519144206667900052319913551609816378468460117640636403340986880993757296617733006277176487696810683482481485031620408925240171994417594436251099146772885393745949545276362245713987645862013973348024276101637735316366733632678264590141075340290937094880729230579158424611845602969841087719516780179539870150912848076422134862704993917545916360276110260374114684178377937039295310178800650773605974403606041935829948031592543501274018434110755169909598490699465988210834273325067124882094252466371567741390511740306412921358998140489381002409606437936077033274327588182714866117330907089245048137123068768364160095462508374165069606761698059729767817704213884225426401846933258727018607372681856636933547820319692158825482183932998941729016696034491580911001430470982870965139821984469276413345514159330701309499467613032288619782224854835087291154338640590256823900130641726859757408567796932107191665012711476982333570393274028537592121265680759679581488368176754821115549233125667823020792306215604166498731893124364357059115055353369402126434214595698002954242785669000219582788526293343039978141498404746132091209158031014596590239466727879849642549680905491022942236055442990777086987931547623886111880287437964054515412912776878386834437975306090964545297385178691277702690759129295954051716115612827962747540848034915283092490355005265417290117752632093057950440200001813997034729685151627562047995293260319242508424767890479824554928180457303170027319558839002244324919126354228506788634474682801158161547588972190320113198487668979097135625822229669915775591017007849451113762725021548480201476173246583864756594636728560343299617112655631371304489071193169598227058572726751902265067281335157471239304765537198624743837704536554332466172621326834853914752978468664841695254617435928488624102273333245631804686543817136033207661441840385993391526561902591685919057691103967504590048256705374301169950055246173099924910131486681268105261180362056271134933630459815053696705041092742653999118042357218533582653048269782544524359404273506593003326540686676381530321794982037917680159535411642004579851265468715988750663715064394122502422345178833622115408550586190919109205450746026527886438894666209020666263629000402924567109294985867028731061124897049234858195588729209930601920006170931757207030740405742619782999026650308354862250645871955976752772582631896412373811664353769518378443674124992511841255196764311943227951385345263885619358823246889577321371074606324262694336157298977684943426870274971479672146173115637689817680651860256072514435606516386628712847950695984956233651503583689481478904005835511381873579781875635179424301019739812554556421263521029863113933751920434447103419351512503331468294285035512021979732783549438669468484088310510450392192678403847029755849404527621914431008625841397258641127852813028268466731476226931406105590983975403882476242972747866676000114838263046948229397850940708840528118661040893443584188590634380366667862514982603660807745714636878105516318193700853482840066167754737155740147498340530194109083329294679549821312455134941713632308840249836881870159489632275299991092202460222719033936085061502482142482537949513956677963024471878912108793124699797714695065038036661551224016856186246537246377641877754892183694888402402827082440682302249814996906961589858873563008085004421300011199006611952588659312169812667265297806195010641550338612751304068803149636847865683070625477323003279724007111966014383823910168687580384667900370249801604871643597441100733237161916508969984803351309457136732234613948258097310851694671021784933172878696647629821385268541049997019449690727369802168659951525321519280834045909286105051915872608338179105619630306963246912499421087520667890496373369501502799245879028359409548013772513594624368901719171939654975791154522035119110723928065186086699800840548856407605304525714062848635098411293212724178980414744088641589319392832419938791172085406876090296536779682661256383067274171763456892031548753768041927143823699689224149928916967818947451980366176520058561574816071492930605333337368223969810971495911415223822643997383352758343564312938077818676233685787872038374006491199429183439963139547340096091703897008191239362664855419277595061601692759060584901204222540706017526546420031126785764608907042189226147196247724184243299055585123450778112691009280360301655824672290263377800763039992231684649318624632878415831756520492259577474131562677128860221408592785355373374719535899039875793361021949067808943699129821982616454748058596041495167703143399989386036748371742872080252033615470191048634976466015164564196285674398680076982488714740716079273384993322233129909158471190634998808483362506595896740155933703480122311841896441609138899008944046893767682593022629067818762181481383066029349639487399863503350961994851865545864715697009829374587209411885391711345246786410139318074510301010401847542154730128585415496411764543571305608816665223993118772374581288598369757028781670049787673180656590545896326746629953662433974755258305619838878976325632009848937219096018905241595457097263917892406127201149440551409578056424183789170718657784261576694479708516654690930005553648731858460453304726858703045855623764082506048695436931165528235850956685906878981309164216290693449092855503700361509721487790826940728777259264185272158786175864502372901622305901612419023852304751436498197216268036913203308341782953299962291568746424548556833374028025538655064837847781029141296116430785588690483749338381535062672383713217752996334795907393695912786536778569828088679946565873519993737375280699990228166555427258426747626142634388118746217623419757777682289608471483952166826812857590591529447954684731697307954845049687176205978319428725504526699924581282080936221285955836391512782783343590684524717705732403912945582843400167227471125732387381765404572966989309440905658358958068343924329842591437819081684810087974630578252668896596574933977469611292405174703710709818277973295762605985579976844677695264888792020195713865704619548099485725899553640553095299628581605445205837304314780621099359064804818375393273848920955690510048376265196745049061038556280538791161853493889272063405549918726524414364805083579851196392685037254028708773532662915448596612541074199049199646649147471771304333514174154475144152987943385990810437874865244490953010795998161053999422186597124778574420958773992477490282728962939638535442690764249943632646930041497267006793664492938479184276358269914682847540652857867699515280375199695309686555387543843049763965995748494781801909862681028933968229139094401014069766983714954525673571293923924315928696906815387393447766247542759025200162295322016516780731080830495899817820394427606675237664099896840398600576540865766531529079466981216655364165936927432269194924302974313888728643160992178290383944932195513155487362355531485211692932861279661651218846215787396605888143735797011119081789579951790915700164969037170502394055826368221076330995807575964481259100727730697847628178176385221386943963474889097135978126716849776605927028987518747899267689807793496403478345244262549340108851434749457190981802446377656251158850667209126950471452005399361461091556364219332749038058800419161940775204063423477477556558763767770291977894644382584106603553759963714810994659440875289686801978677148045020624912867099399372115826158230525644472624837150044071764392450553435402564452801026821657555420000062639955130738103657327672281428173711364220663997476439354931433700027489697840734323801693601252577023158188407037533128976764573533834646186441720684330037116149668664524923558036014402016020685341070596733919424627537866600275871305496915954578122509202323007006361554406487922395040384865887312349520955601896785182838119298361458794214913631199544903600646831197343554546623973146056663298255841006911447245125412133466642254836783021611580003037946104660971775230880428137841133276843600835818326343868467904757942034985759806058049812838202752417392845310966827115770242576007129167057118509642812624024574413852251985896784382727802985514730486204652141100253618691648488958773025409723314129729101052177029803878498420458969627624256858713407337172237985640999306371019152087223829927098960692035227781249082777768567929963515702299218122516919962269311815847245582426982913178261305152530127312705195762608033534324004758711087025104538385778513586605062967008244959032643582264862711748482349833748637872934923886573347314105281897473575431386925034803342806511453912918551152573582810667765260816307180923327619732396532731001429890770665216363948895555896522279829831892734476819176797635086760390722693553628174526655902014871101133615420563053900338148688624917969365888373815038599239908683196032859377353098044584202857473447991459859117895712294972202292333743395473747902677492787999290997816201562149677669140678985129266782325485701588841666428901600775823078639694500766016726132041456114992201333553545706571820791547855015548288604205301420474685846638402079211760978643802320151735531910567931927036577812454855457119265995084001921361401497558867371273297048839683977265774908236706040213784549602179228822839274775318828076928498458418581091826001009704890950227159643951083562097174422587112566005207886887466541936186166783221358564574296664422639951539723493370419190421657606528488465418178574348718271262074483728854905784535547414335738422527757835054854772814528584569927267389236610483585895377478362864733309184519824222050703536129622190375690896248882230788356728055343189987740236663584290567698307434796920215752135768973031725052097014173700806914766983939297131721176061682566508040227035089947589945332452746865293489180948115934860232057671877827611771508936501489020255216876510367993505527331642851744257008127428440747888926306748049095560143796986641606413287841654364591512715226660727009391707812136851540323946535210888232702935610254790269511113910319790651711798909814718705336863102583243427779621798424510782551485948163543583806187751354776155086251152452531600730775555176968468800520423490003338478824612218878064647295323708303440478846200572392428745802630749763058808286517803319892823673069408004163179162408977023951693918734767973191944669345173064274336959139098944424786382146667971912105733907663430047294615624972381955390591547724991708998322318420223224936099821566513055233430197036344305481507304860961452666610051545452914379360500964636680154507127060181298849671647724734133164037221276426062310228936070378372119826271691380517694374326529290643232465688933979485723734008613616258473841419128554400661506464800111316754885953263662783348372073881532697982824106699502307305164421403723155951340261919642872131795192034120214426715391745678019673730991424829773835201859411591763049546813789029227826893099812865880767345277635830700978124524767827355213925082339589095566789266272403052566165618587973473545958461486736194014131969914224855409222124567349876773543734497894552978627332737169700006403083694633780660039924987695979644624710425485126539456506995451310030047577564039514240010748711196870062469715445807534838839847743603437724233960107748144594537386709582913578843424868584060974946231878366417011414421661942670107273387776075602781594798965665579246428986347362205271947414697516281910759230726452431223709856375341972547292017968236014075849291584818790129118976996796001802873697215879993698902833419934656469622926247842160666788841277187789243604952066891500376350366793205033377943764241405767590462257277928266172920463847459600477916778135725147650965275289909366881104558016724516694307737388670504872016059723632590481895397919710435786721901126150569846151670290011002659944745810349869279078419574996372752188969081011698825276248924935294288268953460191207998934317852983080811621082696122997393990602686568299974312495255147449175790243865767040298600375773117657864313988458559681108071564697158986725720793096945073769975235241296080104890041156953193754676200296320102222659766476744120690657693115714080245301798408032904478002877079530356430827924198849033199561932010591105315647038106247155413172107996263486182486015074777805485979920060276113377139024238220906985908134641390515174375516060087039399183203892143324714432052588385056618083646454810753769988775804116749164430857116888334242072812512073755090881774568030383716817239060656959073135076005611756403616788431789726869209027468700548334835180289271287570438803508279311985354602190978910705648840916188346341180503404756039773661223044284617026279765683621615625282934418123939768449963143354556755967483122959512876038466849620864151862423611308105115843157585054161631832566713130501970226048372602937250821902035537930825987650232236347627310033251317549142503139619256520714688336313140883555531000242006209298956504545328009502487883762763651253316073512712277873222756035066787653122685901176639035815441644802839159805498287655598724402414241321326158322676786186264660775526924738537644502505540503481455734948775195840385893390416459706028564131137621047748597249252759925398299260106119985392350839118694473895283155618824128309662523303642683198636334549922880254342742451224817696236975903976221610844512198845969350892743773421066066423327769029852545655981471322279041114573859777641000697274933653044461669600550536097864282334544249421566891756792058104767706066154604525129380919807387145455894198381706234545291653076685196219429603920147116053753479343313643833902433708611578905962101667454205506873460038815440012917675757833453311968140042783051689739853008523784198714892929140462730409930049315955031473506698073064334537765396759863370307343955471925251950460519804631455811362563422695559207033320124510109712068216115491305123999194028679580829096612221283922010573756678775500107138363184259844978126210286969700016843882360443938052147167928203746885332292340395624560128848025690003567000646692816380416133850732117045644064379631571116995474833844910918762580571188143856854859011995989463541328402237760988568967006473851995609050363835573917962122978645121723028455903273925822541767811334073508999261273391698159295337785798078312878621752132605083567537761549297070588987514885802783451916254725615012548478368375286245727736883687971583851491384205321852761200101612702154153162289971146727105643287593987813379933874909290865898330635523233573929188274723989162972345966551186641734698935448987640139580629207698071154116038260889970050026482417323170830889147048628919067802670719099172486002626510174030662444491517424296812252227297501823224818373338530901266422347912589247592885382430841604683541585782922885152478421583268158734773825711741780561369015833497975743415753121945991374082537029783567248509680576283684310565369125261098321134562372873805751006701724677742775571981651150261406931517880701473132753064569136927641215690262827973710169717825842904027481886271071637985492084377206642468016466424201435858988992487146192692247519506849088422393220271603656713105130043075084224016677905438893143891866846652411336227458063426947236555951273820098870074993494627621935505538197365154883223899939237990862129641422547224685358097251007152914852469143461884870279132528636252595582683114258236443285230196509813464905559673832804933883773389457582349283179595379278905880962267983662980131532594015550785928114473126287644341828448757795174508041561733054362541244692673503559301267462189362533326471723282110980983497364389349926238174985446680427706146064081414811797534438667947673854507432227865901998061751296388830041953641188582489731789562073899262482888958993479269312144974045406530879624549452547771290826618207227634509920889802855119893152158884750055698345495745108478277854591269303583691607630286299943251996715433720546750304055210794018781125448158255638660207763436377316466671192887039688271999504883067618723653700958681712439674004453493498463630449097355129707846471439669260302548078767496355580327419802539969271645928380172367326512514683426069546337487429141628141963522069945381933305334858426000251581285658711723044506233356276573622080120781874506688588124613596147181599732689376625195949442860640397385147818848785790698355953647645687205017984273846879381924814185469507098431374122293344622429246934469099606080635613217674275870440455683156913912378308395258393706337713794423827484943330177746636564402868482026737784048378452901583137020222899864081505543003714698038736924795325324824580602931876825600120869825851481796563203426016035845828273797519887129205015644602875696695976604335446471094143034339851341748882648984824929587385569121488559491515222579436401315767432603290371347974657346459361622466141160795212795267090226046316570958928685295147999437861892799589785034519736803959502413288798457525064762148639210567936647924876292320966638788633443676285649295102824083914281088035570577274401567783124967921517612772806780610020167039718839603945743357199267944556138462108907998388946761828681169528073638578179838375402610808622700038148611269519934243612691158352804552167982612117944998602504130620637107717599862246492030711922228030888971723316426915919748209968548903923134918782454266186796452604922522843846965691253384491316536240409666398007923073642913236559069187523380735099256463660663540681349067966285978107457578111486644939076642691192859618903182879737146294901599968973202823491285354915847348518505998984865862177357286519176336339634158144132689877684642962410898869619409881530605628702181536152599787901208193463899533717254814652653416916736504338406376831829770895147957747393244695276542655601081320554445185000276366866500025746234848456968802119492053573405746802861988885190441083973106104566482869954862442385628641017392055552153470054331455497226392514089649007176683082123185128592696521155683229638499367226683349030063520814040790229610528220103162123208308318893777857707088160621843215342751539799711529916955848879597235196263753188645791191831608283182225444890651288530062618422960925498654141667953314100166798741786063160897397235615197176599085152582238324346759538165906534058014037521924070765120300845086577045502853897683588791987088247261116460284045690584142144672241067937911821626597564185407698024691626027347902535641028431174097334640626424172443208021730024627314655656029126228271073683154492035536412235155062872300548693252321541050288956119774378275110509539150995601953603654587461814733385704653785945912791102138534448831863293027412666039793164102397658910096813149909454176376745285936636602288797857189670917360209486685516996548552191663184960219035887071166467391972025993887543198378313688888891107776721889554162349432343066732716313681639089113600960513142749386360558523593927775424756191396983645966326581520525832275507886604815346349863536951984335872451944131714507483041554845437056844532312009201771990686995790134150575134515441027505823670688072232604609833371946541932715330531109179816875197878066166766251552683468062224954804295042268691685854788962709670623556901076218620653170840270094766834815344522737953576385552749045573455984401572516697808703736066129493067787610770249754836418345516888843708722376536475419738434834408135688200765045452529627405956547439518071602435542674921085019077606846738124843699164071392622235501156168948543917535489207006601782342683259908866110344221775191158894199037913543141782531290610982303667882773537854563089129032731116835977403899535925965414473651330646332180571588687259539451588649457630643328103835902854351813628167923191762725624369962207360851423480008822243916858666431402768248155071079167411184617794372981359835637338111962847362466157291531606874581923441896520742480300988336317097559955946713338304733356479609892975054427852609782642895962918726534513402314634965836436787540577197801713003664045823986037297754396972144513083629526722889052229556100719104949978012550908603939219842858274714270622434141270408950493850970617362978356423889655928957964937423920999557803957524277484673239876197953779297083151220329147288319251679347204407668519261515135418865151879789985656289618169874052692696895324437454389902363026302512404674887752639458884038212276101159641236639066162652485952045154708484249973226764882787445361725372837615509779749499520453638964623275771820615065480888391728027979814948080936242046293564106149474596340292902658260878508105779642392350921838445521130709391389220427081530097299764438646492398450311888217760033317163047038581790398678893219918786063352808930586419477884563671009697027456741580558113013617925638542555864978295240562788399573484016624337446165726703527712184471734542246477290835977857440189818470485830014993703451094769702526360653726646533334749268288983331328464975565832804623528043523621901233983605075594187941567021237269171082172577690521484586162767308223602357584415149367835448801013324485065674582182870676185562841049365118217883601877648606454327631616931098580630646499124778884360323529351053002126490458271324556440732572227387244487580532674083823601503373812533112337442320878718995317115911397590978684805560279848017328485401184479407202472517594273977671234976619458167277162228278467399155324191191793075000907820816681815417153891838136617968196181184360938053963718836441060606436694946447942729136175349325616882272692740170967547495596009448219306205144360596236275603572606203618228959499647813300607183430209245860189993162893016395354496154737704611866656285409504090812485251088546554759564966501133356609536685181058031783437486346988118807173794448160899035722214832735078427826178238142538252861749504599853021280031108731950247271583959875421614197880406579446924743444851605269600211985218678453921168231146685938625760044758299979685454143029915717234972661263984519639012651909024385177585882906583454486295148398149536161740134048040168163461082987034311763571560425930661879665905062958010351237636448692708494624573121303872849737781497862394594708043134805532086000607975403537095938870664991350086561824604120214872140665074775656796606344112139006249663205266482303007550862377510004455491565851903530354132718713474487934757562715995332717681530702270610383863440936671023489338618025756823344396462141521226467290712645376915089435538028399075546243186103485178770665344085690563084205462138528873008412716386116510944697123310955730438063385593685146376680811307690648662358263766657709410507284009227126446222420843459087766726198754372062477774790925734260311532369301793729539716368346039610383767335989565575913194480869664364737185202719860515115258660360162828981602618666805020335598913524450444554660609026706035754153179828727391020847249102624674191399092151925911691182250895570893604597132973272836598941132125968643092353370489188291012774933033232689540154928134077143116175837750560719636717627133802062489094122500143284907739524859777949422015401015372328175671747846945330941266559861808742374491279308352097665510443440772365090655319614801329882137536366822103596544600930573248782052683313606694918495189610077129333270675893779528926793482489844967366526300564006033780226455728166107355107024998494376449415166372659924297214109380027507707257899732048440454569711792496363770978393129275823944070470283036378138355277895352190523485226646906712010781454568267098540493944066696875015983830119211391041075978603860278228005437308750869610391452835160661800407444678353406299977510606432935291338323198621455932147643384354296396138731085990884899718554398074355010847120960867380304015132728076181841234929925705467160757471606204353338462259646566588419986593353546264971207761838919773021481861383311864221414783094448711322777176507801572332351860974690487195393258803409606782459741886129386729678533172861999223456670336822334769499004285325697308395542126602224475344234133916842067991412262538328527072169935318335479063012480301087328150491883493401191274047528309731799317630372235036697487472964925346242684113635684283248884678445150501842272603077104928679029509580868506099400768903000874436068300744753588074918309748450699970456626298175980040481976052238082852011153355198760892035111614759806964505699937818207840752392328982286388639028651783002186278839405155464457523051971257611680402319406303309024588784210671769911313026531771501311541619831453242400932341867838814212726404249143110005529942419204826215844177854713446261991748646209769386237789253311101756868349689399875966140686801315140950649968985031459704200720292262435235395678290347842538764153482377242228493338550816757916005122345327103918057212911842269723909066528612865149884426237391232841834329944389771454250494128021604047498691008015869246670927875727393561294659090433651351613586731440509206715873284585075371460809902634125148326916730722972680204307690922834523806073048115913335361372321349407860668074802940876841216743632821439700657797079257514469196134383202072076214952331213524444477955395434903059228242378692148931445136796607436542380497133994752377578900303981737537699388174941008626790412730638248657518471669067103895524132444077429498458427728064514821193975369827573964130884999611097415384500828880110977194375962836489274159282465001159318522913005673496395709212278285680075357214127544241888766273410400752112174803801890674261122254528553609367578594660651487598114995824926298825485027100916042788558350375871058479332862004820873220802031833037144140638275488491643206314822929883973746238176822094742120079447078689210120208428435978645223458777192948398806428514309487941863041984571171649630691395686381595571599817538662513861422025506826738334483985683987377942694155208629433127390962454067537618135521531410618053709569236554682268733810031563782111126199968341985121748475732370231643203310955880100298363025571249080080266620671374070722188914290281819890575021623881816028880156286074532295957543562455805767764496746596850307015028216148089462545118944832488581362484819176025697740794721389054308490526013261683439580709050273790853657979321007982279318110711656238182376249470285854825891741127663743919367576731462392794275747688857974232584674518032047835577686038685588464868634190614749458223917563434201545216665052160490404371590834506060601939921169467108766291798811876657703765510951807912408544824080344022188933271519115569372743428707372396934807262808188517827365087894742013849746768819592742656689157906858155217177131461399284571762408329501085623578607274663922562526270169449846653748680501761705735377006352172613431965428346906495005700923614598984760451400263432828807532422815145585297663621048981602355053095197188384386379948945573133156922272068759062708432549739405057119891993077652927513353514597145572910320111968923518687405849947622758020512338084742053798532788720935287768538281710179593854004819766947400911410597402322049307954722013848429909879588211637548337969916881021857806708758873003519642998354226632911218904556405567697664702865024096934490998294650482137392831439456053452942930793411121807641628674615318018378375681240887450007327768585228205566042120029536945328431647941806850207612182893063781314985792682233448213235464693312740476318955003407951815213536865561960639649483811206279304748616098552828977632868159222053098015222690582204616709707976743729402705970448046240093727625445775164760448435042085445010939637296007633016169939214589047024350870742785807402208107595177092512220801372779465747586579152890125258813538277708629036640468132964400371110324665295672255248203554595122127093749638441915171528270088729859713452781270868298195657715984229725862732138330847853752517384040053932069089436861421405916551410773364022167057450478034192314266072223121088735820164153872825101318728556965339418706332671023088448843217112399683610400901107356104141435761484007106901653778306740609076966966371493713402697604155739254590369333498263369384705948790271811118248056312593675926816807325699590282332552457524628456595905712255775034521241204274034586365203550648977457298868837188145043138925540417138051316451071806854078494411951528418770716837586013076365686207762352027418247708895610176910603692174059746749441428190524888535626484897801259288139795774038351588806360485285439029605588557686150072501017369328973182017467649404570514972961957566141670147056318573784250287459491136167665198626063032165382915200499540040048934581908859257451783700394498018768287082720491827421257979195794907903902853367102379252370702131883569011514803578871724306574421724738159124473550000651767645870964568680233066912522334242646795958372016439396516072211767992353149924020926943845716103453046720728536253519519615850068768518309184028245247676173292145335362216516964956054745632277741379904002198240951576419215586511721639072312869271058633606877387250803995131255163437364027483964633797689363293433818865571400333211640198444595812522403049058242533426549738897701293936512998268116584349724829780353104722040597734359051434271412729095478359564262989074180195698535963405228682574965608036340387488843393616434799320476179797701957107077458733046596998016947927558302895160483140606240986468095247563781834697817111034445926170795479144075033232583526947985913457096266795740977800878562914917706141298356437387687253785368274576372168516167986869370216991274697411155106324882157162869897621538651639495919553671717277103533335019724029446456568358444221854762557418332892042114135184103917555596933567221365329750885927644625518607913111127300644801172639596940676117607936953920061883113231192471489732339705069990186358181424797401675524999362108801221287625991281580276222106891332286731485474241002131974397622978435451571203361789573292065643607663951122902657204915979653142903835935370124657775269641463183536603820361755030127421969229359347630896036753219784472476984853039531586351045966972643450294627886579873836544222936202649010105214373319332416002788038885079457993905492228884229026090762942953808859772541562941491799526498908532002886909321286983641277542209481175245905929895054359122984395689783419857759588263802208530051761837761836134924532214393857410709816693662095326125743117409610389864277658390180579598630096875878384992187676889225528536446497837564675991516658343878433375584427427535103924371462533078428367077503252995226259184997651613408633259455867100011159857604731289372379815101796512592553633503528902661325689557403167532291357448235047315035487847120038531880091720523370322336872799129950776079872148068364955362530775864989486745616446593008972615521048596801216520178432897332109631360296625123985395293744724118868995379481493061105293506672084168501207379309673148475663064988372297619656779133653078355746692138054547601012149830060174733789686991561971739429704964585526165115683707761099355281606958079288028029430490755558741583094776614505584148400354405151140511592379333283187406386667516438754783729519287428389878205432772101859369848605359628347153672357522868725257150785479271236665086922179686337112820809743495353484360075118219262759281637980926696221033765592742306355587468309472986712115492837222871997219603546063638922783453267023598398376052381410408918507977904970845058124075901414775352533979341788681503824721448163942009341488922712741856828022876720176577519265160335981791251205517486605023551731555702441407808161190131725312636356888375830198160921468832070317604374953488620393727066233348140181648978215345512678909205596515482690339080908255338482246955466040096934073332093714866198492130071091019739706558070176793480944511863329102163617133986599651496108638094850979237527667167615710515714836057956954710117401367877849596798714994789510828112856643029279049513140505029585514692381710462099547401612047852658906353699704110515707990839671183896688839818031473543313536969864649410985424188977884863699922490329946746142234010209953789458956374767497119180657467262150714949293185612754536941151454042875527223420799269066942712106196102262297530141806989663399051906791303138171565766751070327178385451442044441906099834555704469248561053375839312562401063532007665742758696498913160746129846002207113213695829064654485077313600366680792036579062033299083812684432094837403999922424680151698975967996611106616404625937631649171049495874704019521028460257791418387249185835332020014684381292624235871484236967046118237205445619287611936963315404112875910438008897075162378707773120566415640102869939952199013795557415533159646246926083178263288006151762623284459435449068554298772403287857088827754885912006155360493394468790471014364537941558009916353703402309401703602940905513486650129675356645730442598632759669706331911473201124130069180037827815878763728536563326070131977337410465234228680383499329944730961107303579264048130246671594746442752068247252633312021139419752136775192576239469088527168192581978737457990505343916329794598161432555576347449643880114157480242845111367809607234377475057211599143399951717557861078207100740433079166865612830219887271759817418358912713540237003421808552853887911144435410794271112030509912504883732975415589872467011384600929620332175383176965051184701948725960910849129909001072360936187019679313424338909178654410425603341980163280455891799576676064678456444112132461602137513424343179059844998122630214189645470593692501100711942937339607470072570020286508342404667272020737993170530719666232787733331100746136560884298309763595404256946095595733428603362564854631075690231190271386786000642837798712336051006587178223599355900004227605883890985836050160397143108405157917023897273434306745946748130618042200426024387693032553844863898021054748405310872846126939972310002272641292454489236258226791864727582573660744357830620238216294432798529555826673503915795329084726581572505343209823228120514261238549678710933159524248692480731129853178655812337257361354258427885206872723868544802586759747221253592691273939635149321713016727140975920582056415240089043154768114181315679271093394874204235004262932632590563354911970209842210038929256589536101808881701950462921937986175893826791529306010611517684267335507969319363291876900930825892566204367515383729428408086388904955636527965896864131865064151560534983007759487207461411568056691863929019670159815365508754123890078383716000393852344810209243541895691422459111634411665787139915724726350433672999872264226880944824940237827022813501817342311241573582865131871708022870178744154717059484082465230577162757915150879644766622633084474906274638676525689174154513184497935293351098517545900840780801916870274236824193221703412055905356547176531813265308456756298976443719670452862508023516059672274783825057052195827811918325618470601676472281813916555569111792220135647314366186175636368171557592339749607523862654482147761098356499210919784645312495569266645393643456566764922345120040347415154053088765480644855127400858538636727472479853137758223541154000514538834191354016834808631828637518393197689748349326186773323830963296557903238505474290453739829540943669651414430955600793896991063692741749512256775194602050193708117048510791860293906568311811594954902509559922145588063343913197950918360965233473801682552580412581552188888875177044412882741752996663054175232795361310945462079721087714705418358954666355879578368477398527757776467966903685344050125727956325152725646355942691417494866699092897766775569720408479004861830697086916102842935505882494647725985799566634112015838960877400059687326412765350926738040220970418910541745808948258948291171291143036010683913842502137735705349890231484176694467334565663945535400614422922992624203835424025248828065956859153270654954929447676080615156027940997818652984966295664101120481031107763332503520120611756014488794389810134332622384573291149859319371670915094526360736017585095459235424831777301301801372994666787716250040669533668866196301912083298943262348361707402877662362260952831724274136481932375439209503684009885363510726395347486441916146997596664003385174246752374360446510436604645086186796564380641546927176656215071808589190779143737552373444386795964656956277937085830150065044808640931591354109729329519174163064982297272599286701214087170763582508213417408799600349277335692479675947900139117759426491332386622996351478766260685946306598235077087346392190746205177460970350594256895305244252784662957825595586292030484858284042452399413642115938915663990323450730952179656846475808555361508551545353164063288735994408309483385647076531252033902369574853515804069242168682391820135310580662431839814924662687180107607231411749606598901850644675920222340720351140293575029999921626420279855065495328458366769022078083651940638253663614553027328880477763743277628600579132318141600165218797850255822205274058462448239647924369805549687009651601185851763665015916837489840641035846144846840024291738911708357445436837527106797032179859914988323532345960887890592522035945997327387447590690833300658516387336877267605938338248099631068689317743866413275863403351723634314784326873703155783062582596465895851206511772488293520723370505011936447819254294473168596792133552231838492046183581019837654989313628514249458617902836638327660283332607706823329151527549300685166154426033708600734853030123628009075140314520678693716235446114102734926715587047224499222905740959292603202239251359284166571787350487620773136403711820996376109057706942670402614298281397771280693267792369880858596177561865910840768642117116251410387576047319669491820444288664837420496466202487985742981203793778070518335900696543666765098135338892520207332701170112151310113961096231758662971636408436700818147966275149154305678364965606460143080566168755695336611264114052454857567807385960037316984734867338116573664719628836904492238975956194286008380493586403647141223359629854338770630197613870281038718342778403022935846876711300007442302230554450274614022018337776705703512590322031356495562974664328087456987254347294611351211830890145186333131447132502373852226539462661941546540878538659703997904041862296108823236056468513838821758328493697690241779082112395657557399440645125526611457993984276151559460540547998183982594615103116330886495307070805630270869641139479788198246075999988222737264432353815354441078028470528171349093488987514123177380402971364296891112514006824148056997257432206372708583863141551909613451867727209163688834823726566469055137376707400027703806962846858988207050983273187587692155611063809602069246831560998640043446824494014796358570565218276415190640130228904011986321458398900713243764509885317223792775888318313895475032902285623755397095445224355162248259025873003860470719146560550516977018921574798069365887940341809547176156043108059702882440289530622335952817136717777653566900407898152874610016984605754458062226555584566265762225384089997878129815965074358031513904062767980047123656853355643328653135224838015291889605815444526506559763790743798643095852772402254396722581849896363674657571473319908922646216759450921301752779276345137751507041414513809037866990896959885664015053451760036685037697036125581487431350585463477023291232467255152939245333284263099800823497771511961992506307341509375808680954973127542047557960655217289780169967841189949264971008828897305273874237282405021622517719597095588573947881014126550195432130448055259819244193787460053638755035684084950943037657425344399730637665937420761305308405368468762088724747639866836397550609897486466095284309685773870970516523417879895988552929351978657875629665035743477042019054051925742990375235088294330089398271538770103652939892431745971833992319745906372971590332531175235232574949542423143697441498566633701718304318708106022737655292868516185716447801917670996391121768332461439002017450999694414084950504527420022171963988384210051378076064799285720801089441797553461556771403525892609755239220783318620412353594092158496663602763711163601775879692041796188696524781650982759357536821861456893877045571994769993261327457058345771252136184534631081361589675211523622919320103776019063591781834954391358643728790563702830696379593301306359406077632327534095734651416357801896840072285110453340475898592944078929141162359365285819693615022499183203777429923006398160766330010334157299488490364495430219833612465903944192383766371086406293311136206954005013431961776021576001214200373961384548062676887369256597778039541379766311890570464185512498787675069488742273705398243324340785247338960916910796165151793905088150129431896178186329028685486901996303090067113543678020537935260722827978601937532742359602722031008968506360363392373748673310477475702041465094560313315025946812495553147600397729563062003395286039677403370893067482913970767215208066248780064154663174162079499264986079992920219058169022658468037693587098079357853798141691913943180120898533642833668517031318666883914605846607702592343983846625742188226793397419456897378384653163482832769212807395668554063826552424225112799033107582023910432342225286250960490182766760664846993368402610779498829335388985805657929400878098245560827350388137161578693621201621936807372278962833650216541572392540365511780882300411145768577226567247116614135074624266875670437438033433478269918687435595825114541214426875847796807783067100105258375539978772723366425889965358523414966456871438267536642931316524205312801944994789573762417238859221317589124300581278651738794097012481976786072119522653286124667515219645642579971896637850681032835275880633881893345059261640986287300200400086816081580222527323920719929434434956350479637453898059001381708418298218883819520244129371806136819196584253434148985188471196277108725291053216323110683820776517738417467925387116425038653710754707345146421603354976190635068285520499450119771427231020821849408801182747019909396507088464289917143117746598183527386406265695670379200270656061908997660110425569551817102235751089118156746731287972686722195707698242895879449474396911454569496309695962997520330528428686918473596412477241673925052537714999742657029302931801962902145560746892068962631220984628635300528426718117397941306722202705840282830823243061356725663686235123092553370349264851235613441758996978451855648729860316074416884215957713749077792075670512731102129184019681448914108968567973303051488717295207073413110041172550884522904161526792505432417761564896352998062179247981163233379468250065608345326883046399339629714760881173377576032309026510709493770718577758645360169863728924586060097588172927885848416169994686578308412315353204963665195233515865583460990675918219333370409143713947090865074033743488261974374452412154260426060914708669426808605973201427363332651025488750309705636660396464424174007925532051836646381050279946196340281085000031940353838266266954559673972720118034599092362577918692279813734914766554606531299252884493983102297365331371756411270839419040076685775288495401685948584676641697159640257355027735361483699860455211986010662772217718754108544027138520764014786465801300002662860185643474123053873920839321998138026560899526415560462149818038396835646480805704742030234518514794971444166786841973033427256597849662639402195276867445650719523108656754787805981198672527040891591369188018165567316969362082453648921651102276563640805744396353504159798669362525736092148446432451725306989188131302620120561957544367959578889760887885746474526611276376392679635160402792076794101539652122137095398753472167492784629105293340704885507773576361765056922119650709534822493436043222792716291433720129066170134424905945102577488306065594685731708813987933822460149145392171086699300360859530514873209333746657254277860139498080880833526248707908604909284040064867518423189936853059126955494408073179157127388665584561091883641533854628921043193375643633818577473899751083789828174662394275237128931289896674983803996177832645249301409852475824097912331694493409266659846201519633457430617076614019490310837397998948900190514725257796638258984323783434271962093120339792696426423517597959248609860377005952826562624756137017773607955818621178750035676397498077226184401890485292100312904701642525291991271908552939943775325766757893626379155205809010682648573758009862625686311713384414951877549446638181285743702228140735539257654125901788604230183280782159219577432291138572564879507038668872087285075143073554019407198642919566126779608227388282043326562145124206506710848661217632913310978386634014364783906245694601382044888813288723867869056930021130342440231684744960062743165085542795807436878824321579870488984756489270330021797283721395142048223459234212673734977494996816132715595020897209349755569621472175413769172256315965618456406907331663352897310099443905564903944026996084038529384259584865963488861812322361840502938164150887087142073235430469587627048220303725468010704603606099872358144949152769872742678478070263433257123090420493740781379536444337207997302174670545124678474190064272497545685353992141092914334219742837810865223361393039939631192715444359132661996189144883146914899814752625569972872415196383757380770460813334713821060619534400803328679924147869769571529821469891257880974440744204445673867397933430206378497746372732427692598262200243317883821634843819848539835331571401742413907718752331963833406495111051822939269604616950683653517000807524725912749266557116587700483099515509623797357985392875107087016710472714501785354674368320629203074286757395286598251335187893969538743859743248011657267125712932111121388039216063109626313683869462366386932033743041430807438176786991351833995666323532132787822214611673776928902105110712816846332547794919800626718935157649283170556766291490437705569076837497008248499278500783625250669388957020891451253312840740598237057309669337690573030373271169499482943806967472484488092654846046773028240114811491603050567292462669189287508903952927870906589637638900236126782959006360325434691109230381405864533056363164962442337701827915798244929766134945480163374841384463143123797266648634742287045808502771150389164231533120730377194532013035047794790409680873026215599323874417307829393325035657381130064670076365164455986278549423009832457874294003283243109528984237257154755503202674713621390343247315107558024166906636413341405263352955038330527029859626156559596769516440120876193243223818168940125049829854537904114873910491706437862155595252180524865433710469382970539744345803753983458991087177610152471880725130078354854420597468482663558881054001664128222525626551442054868966072009528780892101243820273986373436514417737437893127957487701312164739645751491843433175008135640222840445500687967609360748808735030910283428248517062638954935633673890354835687798560782302109339257053972873965377901691495808821128753627845237849478270118353887557967316876293989010379911644355483754786387060469166156262008931215007088576165254802216770741910421902184527113993603391429902943864139211153840808011169855273789057600472671966678107633373323637386100816583693963406358175603364450718233341229448234196875515177035458833839941397348509186920962759942594280493017142457782129077530648208254280199776517131074856099303688813044371723121896571599291833506713495960397371731300746287645177639340650696923208399397359326622228494956841497293665759266253735293221407614267352020818610509962692949445012128409922873151744747496990408534547657911651447340987625842072906755551586190946173144710137245455230892870674542488754303898254195752162999791413726068623956600255764131151250962313753223298999142031785355410354324839538102071687528531241120387416953042043147961185624300685029711518401287482476832469512805876499974766097352650646896154006891427037213595112252954173395359789461509896643041998176102221067432654055493893945587068229415827263698608635356013635323413275182192357833862547742382680130018245422441885139136767873066593611999117244566652048925969498630081597947192028798651821195405615424734472352905800086249837156877534185437244355487836378257540999473526600087809299677814242272677498312580535748106127564447668722467698735982805435882547840019559308623159085318078477310759411053075932497634834110562392665007348218770686098157976042443508066269140323962208493000064866602741921106718853961427237437508721332338108398393312423626472990553763023430354468093793502902641912838524618980505426629272083385759888121774754212544318944861196290270056382900358355928085152951970284158724850552050512064330003306841347566194029895309234325450359866493249564268266283413955907948562101506958497031929174641240072305923918425850827023294030634924249783513085795731940055881117523694414607408248163223824011758647859993089440772118422363705583973218920825029136880089421224768918265653065447123574634196395888437546710130068937242335699944677710043007990709207417464742012585442041096348816960363040319897573198634177315011124198396869929975470915952067306902357965693815557084436082688012252244170616358514985706431257853123403879019502112877557564007883329357094798505878642048492871647993480396790882409606101323321159625717639970329927816777245644834491654993708282495905204931864523592993353062792654738403097366050197886556140973576757923621095843199455305508331893519459771250683886177148752678765580520343172132079721830279231655728696431925119676236947377881006208130432015682621420181594481083753430374408676118915765925896694401668985023345851320669224947722651772682432853536140843660268936410835412008896548177336011035212927210586838969073432407296456954992217391564555302016365910960081952486579521160626251968566600130705881851920837965082390389053334415466888462879691951219536559350310486024519630509838042291322164149710477712496582417367452209125612784367249228626832694778437285094525605075645919418296265438256700594004911335725818466647096244981468635719378903252384625989832658855481110525549917686791287950562438834124384457294465300348887992792398316169522565980126341911019573567583031780956928936922269954676529382459881650698951121315512453595993940765383643041658422089729529561314724264462967967629107452866240058169578575125501236890162286225733684438287630095013719170445311982795546470981259744858732402463848283631595653504472103701586068803717154745499557894357360748194593214704825301767764637633315160061510468697839824407538158447413724776985284420559687161126012561211771024472477803112524671990728767978794735494371879274078440653384465719042372367035817398614990357900797207873603338747371363773231279608363774695687245341567945506999627830852654736558755400051011973021268237636244272455872945150663619778082771416743490890890473868778746643415959564904041318233832437580115286053082651460332774137216567039832072456018554644805106548835239650108301170288087373723118913815758191573525368757069189939503026628577674195268461195560660669734934365165189646241117988599391757344438281655364209054416938164791199423940840914108675680456443744498282382398296042215503635288508793810205012895046077786479308105005020349602023710339981564304370814133990111173010710781690898510563419028034023988807070271526461331783964642632931138900549075626048245604466971506722664327272493696695803379646670616607401812412036536186673264920232339790589044498554213635077399587794182756583303083330508334944286401239210668387587808363844841243111255449049705208845660115483756920650766976951484874121026682439520675598316896317408820912887397256925879986594235800985118920622021784028944947212972183613795690045952211432157724262492671418626620070477854079888758765048135960195230231294782333015990934246923205630307375764650468529652018271071465836105982966150059037546780607092166590527911863646784912907820805371794451431806022173271789316624815200878928134151882295681892022404156943863651642778499304648292362533179157826827333160369347886999538855253823797109459886781819354167801229116950941167635251360886450196857737477533393946866399280540975749582181398672944413535919345736731478573182337327627336015939203997739636493730383866141729786903422010491761352119885453020182179428620886837501343261461396180202342100685887051676569002272749296841010725403301534306531924296121225961817613928060833364258604706779357215564983465004212122120190013940908273539216851911769338138439044863993664191713710839790292652763413999317029772676926804573948089638666495373169644089614503896200334781640064559301729811920590803790919889512452125524252118023102399493681256674715552456940718789800632493550136192574750398947509548680228990610935173268275816696768876225727676054104795661309592946871719556541730336887479731926120322638937365564834332292119796154545077156843224050949737172468229489119890367333684836334032885565766021326280195234784854772089416958039808953796845280750093162224107820218395438775787311518690019814742846578439951779646190341997440429741579562434329375243070075566868956898387436305048439299277341598031757392104372278596365925785728402604591215060992310244968766631535550284598447320449958003614253563082270541596272773374992030731159696123600050479001812425951677909004589461390746330865018325499606745475831110968953535984652452889071404101578077091558305786803119996804375463631093887158160676838208087899622733667101664966015967080351541281862181066682481847561493173506828787937542908371633014194382307875713977106139611813538032001906620409675441261375768294198987475595408472043753835076327008022675863723467345388763274754255457598100225081799016583401455998735756749895909368646299856955723231177390621830042359358114814664933233284258460502135261801930384128844457649874635832436867068690855027538580657319655255344835118287968815945092728779035747285418150211697307688121126068371734940821434201357211993330805861652016614681358607199679826493783208882502670516641800887217198511387704220679017747915920424900781533846690829133597298486781188008811186981064328491821227854507513341319933255261631898995464149736904523121975720340753289452249687343794051015586441498066629597464721495697210521861447126550428879211205106135381057328740575948767323327803588926550100347630105835116310083800145831730837688542653878048708307108329582376350962386893135788543725136915826885210601086362736309961418800576054296756081054728577829033221826027137824284421583187671689078618013110671360733021408586220637878723691980956131392255812574318651008817509553093404805979867219231065392082476880296731597830945767465238996003962973958098784409052451703853583366308513475329909364131373174501177026551519061523725286962662370782790278684990260926485720365393810420194816732513205655344942372599648040056777525180491446285686544131645525896320542176451431967620717575340718617486878022676431785232606407470200243783477936203527143884561077148016638761800107295098172141175141061878420182560819550941335980023309364874234516338194809175969186217674022856298903101166769425899767465525510500890958971763748185568568349753786595322490254199976898248942425390520767492239404727705440191626718517416018364351318905455500583339077842926813533661665939788029301296754343337954963961956349400518022662825711175607898592331054067326103126203615715401857520698822925989327480049010587509107063633564196360186274400759401965254302514902788183961531675365482560008738292330426900093222202384364016329945746543426652638640856110053667013481365992162754158161524976266157922635692663079344811915469059840149867264434908089861360530337670178688246789615889533044245300371879269728573551949641241433633663836397799976991347122060365954755139929470404530864871049466588947170800390695672911593082612069860268040307939493804931105814792165957244009092595298308336593117521331304210876590435941805732713413899793448360961943960178460898239857450402365386358996629877002089322841134750923716260999253032405038297870875872019843607199203547980030971561137521360786355252976244356628827088621302771401006877046113897232183517130480340447855353215748400246675046954756048960160211496804678715296889094850738825825794524050096193794421486988589220348122870064812168712611039250635664270560442532626960030318002238132315917098781986724557268516610169204215758727257604675882473053241680924639548265099125561885256169870630897124928731291467273339158823531233419760320767601513374977048568674081092490896019956898194102845117608905180669349009474227462450016741496657171246561927626318425176022412209494396721766758237118972515277158647977189228060932349798366606457807617339143620204379352765357973796209525618686953715715972569352054486396427893724215955156174685791386649899292618988773648099322963468496891977200505879632503400905854322976517117750493989738904472946131820919322797356628975706549693932165576375844558517051235415062174068539212420200955736815900177152682165644730416497231183376348239544695102368576596089271967945748863495081375036495006302128574826408615628874782124990039535226281757602665682078320386773445813436290772403051529982219667051921913426596930944295360904935928386758965665046156284156225277012698878626444028077937013793680396265924516788842533813328384549497127285748625038841372026229287561555294043939523051406658796614841466902445510717550095942357740782776209617122789072755261209419235617580711750060396461759965716583069911509066585976381422211236311342258610688025793900603953028091773555818958066279243083761132605436219550245333414781500445698117788943714138842805085219723043894120399136833956868250205361917281402023098069484848478500921472165439306070110310700324645282888892772930818942195456228854900338371014820381061598591282936222451781833456368946041510758615295231089236087858607243793913245628352583999987475507445359855916696551017777792069113157901609157376875096409691139402079889412397067770454663978485966750420612302968358080062767398272727397108427410704861232990023899206353352005800342507523138915372474942533925157656693474976394327906710163412807981625400912354929630347860152380620646604142003886588731859318265407943799678352015402786795812111000042080091448404095705610393059699707658898797991426654642601051997628593227922084074186508796566403148166247621396205115832444030999375671559975503291198602173841397000079299151905143319439851629081978227167771970098054818958378912608025301511621845587543266297920085743107607974262738570395035021476776765578918266046723832938886789632044166927569811434666985159720621332843577939602626239074516506454321554806338193863221958133030869694896394731207489582409736394866048650231197380906810964117701503582268580420615830690440695436356943831708111327006216958146350179802177608205425187001998275058651771501719084980374680349711797485153312318989610373531792877165053909917483048614871353357301456298918419800533670437858788778659775580990653549399695140278695113661486432174255387230662398134124134310671642829325246438408439573981495846170325259855953157504887104518728987246766749996310379829423137780768492659957536506592451314366480499474719139231190848182039532120844327501838310171719499923793326595948590876171562320163322675617013252177107941449173539452880745224131077796085728565130564002996381501518734649754728037291764372644929432590573281858280937802926008077294292238223628338309273454158945594261873198029807950961189795643350906805924393729743777617664811624358537243806906280505111956321130544943804762318690465107270321963224030233415573154327496383568187075460262557609654213524277865696680566523416506126520767898987465971848136499844808504049238982565756100357716112634607930219534066821852822712697331593064151853931858196351020788308661238082935823762778352651663463915265728974457494426808443178937487832168955979823573138965957414840149476811144066217704775662211073445186162928149002288465211615286112440203685628733980731292115899084789945866301092625156375661836989316094164217803095189605874428868317685787512704627634629946578973593153107474365442593873603268864872480088457897790399513826085412495138576364723559095308863062592249421150100090361752661071138025539226397624297530438465756085571461230495559203130522797115269997985413717800869545211456712633376679209766730162773140690606561350511929910608573746282185211077534702292875982250471964395853257494904942544593832818060241486844120092905850300958652873205315721195335344721822077579311950444717148350250379799707561280700139453446286559212462886574567070795877740232454676610739799076968778771279128677562616157433107411454407445601443772351687303118150107159153018301759898525936992065008193811565130041225708815154728517999019554082722161717177320922732430466556716053455231709782518080715772393099954227481893973501805787436763435842605502512531230896135493856742276587183349588068167337775658831238253698381114440088543779530203229920134616896552382628596534921522320692334994432554874338572434791741527697065399359306134080448359739202537717365452006352587583124914838502351105397647097871138780454558818880604170724699357990377927170911211049171660270065596097401198295302611473470405819779889636686495019895608723070943368296116385933460815005812516125643996443372689446895426901094576918996755432925054641284315555251808026669851696051609797858526955595854589238799406132796261212004933902548572924065646467215467816933985568139031164925977012133001501678578961887652742617548436560973284308473665325078179998395232693240357844060973055908548007549613148652651598482583376118706101946287151395381348077656104008803892542014085139884499195205607039601813212152868417635157592544472639931974329584550109929231837632281453123666420571529021508563779516605442882554890684979956419907264749578886716218158762752699202306342001831457330619351921903064915072210702852817663511182786394717894648967013940982005215192330825180385153115833514675317525448253521609398901359182024652247061564482376465567820436386953829513621128603589169566528882949643766193548665337582908246274008153400858239660333753788435299371999814569181825326650582348667968435004053506851656391677908384156176694645878459681257370507985147629080062390645978220941593858199827798306293658726327383139301198654379239113393721436498253113781652440360388227506194528232680332352451678377442690117374717567179148271031593485747269677368289059447076835310967942075059047960172651367985337329684769105384266321854180773134041525594906325398061765335575963190401457379211503524653901165411752753827538831609094946671782858474588260065774875358551970937740915912736193029636407256214804235684358081144583192788800953688408230184898990938713684284654822733402223826941466769144829609630635873700866259346844389659667555631733912660360088431076606948323281336914960405854071369892192265683449028695638736247802121236313888324712250917087245809875420633144696704214387489015955909761629907080799366854008770707113326510803666389934441622780694248182732226889778080634481222080436852409183589254391957659491132393265348080179395727338442868178320626932329640161983785436378683797394147312605628458551951416093119271445240270378514451260722545698284482188860494748661171553534160427375283075076737368469726172569382619383310690815777788937239581734198374780158251783588802211676316889873473494955258982276668171358574898308047490095811471951887024430450458517024300635532771987713874180658635568124815859135871736159142681643822142542774864926991496533964431507110658806318550564129684294564209173670808729796309773323169282286202671963887345991453033372235893937779861458917667481779700702593514195016619347451696390648499695201937465715699011928516635412097843823502000471498534910691347833847248761207666859181995016466039019378448639738989378497604107404571610432912921687668247530563548599349258265741755604332669615740095290530416039996584258247992479352063384340421742981247525706120692206142188612210419698877035514160556164328979742892613544096096566333083697968256602238885593295296940681440740289753219910598219690230399944366944634986647544123751821386431149302348579601783798290204462231011559174913962224389823029457237745894117370696077531239308728900608762716137151415357723270329161049402665624489773622972272749690588127021611524797814518967626538193693703679237163973602142067781815358931490081314400824961661131249780444095438119224218543248467072308190455355748115766104594983002000709117092397104702676373805807961672453597699150178496945937666845773500131907338707747090553248555610605138004864631633706156076659919208224921986850848677831851592917648646358224729083718592947835045524804483776572091412824490725404716515025856662636077142716360447158797692480804271399648433776872899440122689318372300799485937720593678537524707661182157869882296193093527882951541455614665615683261802453226135329771705211880821819597363774619880673434282465384970605382030946845999064490877133683202774797516925571727101675673272999606239895124882436411070645045872391916333041263966014631539980642455535137516197705591653895632160915392129948968833311042711359052034271623340122599356466063778481509932968645489396338842989173003641716429900193512748927008825315047761971550112081912220610837074929141471642989758132079785201388193976439648235750589750578038201167183838463558388270105090469265649176005242301867110508208814125017209756235577810540482472485844527053640250352714290777928891090303745026920001435595216147729420157975877360471609885780111161622632346867736481689113929356122092725013101151800293663261567577658758896242444166581579560529657688254432002078925917843393732615986491875977320027141652746758336539958706507980587257255231457724360122114345344729483471863368875689605049009778778192801785594201301689414440705482162091210524585196193998917958134386291204834067541951058160992190625769753027264510819147246920960156423727165119178797411146638138063025611656870624699634213214079747116431743178108221693424175744097416559539254266346852917582345038418494522407686249623309965406325368542675014581827749766586994990793428807997418636291205138033571384898161386808408849858229137568851537942508211805243425061145761134765654698926479954583930058919193753981389506539095774023253842965318324985689853694360851784717210045906827294336143614628777180381052284838033833386750853992862693665974956086136681418363376626956391381856369688758847601416476351610389039026498077175119737375547190064191221149106391098367244461169338372693709978527415807697987753107256982968758009982062565110183737073560698538468665276926803466799291066655557136257507080374279219974624743758094225799640261675020594176946057766210328570335899566845581361081093851768101846198013985194061648834562324482910093330747570980280074988606703482022877440472016234672972198886998552827525642374179577575107994804028080397049491253337874446159544243901285295277345611683928925453141548563726721193890436122855985248546793207163381506434112240069076896453460011930685580170098553771280493236208856960588155893845292939508355086117931728412211177762138869399251634939459602561814777837621178782770070426875978278994917368999805135449562128916903960343058759547484460366107607152351095244212272268238099174647484087425364773046937393695399203611020533031505120999158672300058569728494660808643356414005440210367658025806743360444002243366885929606150375732974633493995405744952163970444598426894114411415795868471638085338827820985884041510988753534783412422846491363019155357052562444578203588915948193867127821577445016046403600535167707117275530036256263228442763333709765803198628492505896796799492576039829533000322311072321823910939063264374566685387234501012333864495516220889397205294459512005393158639516118166647120018635994844985146408604701281328980693123334366975263384794684285883526219889353961111314508082132280454309180379131137333543796743868297898907317936353958533787485456532222718351915785045398095721555975936761470387148860552332262568417290614265655479295340711368402275466558934108945763897775908815995768322606132378637485675229615634617110504935976972118518381310157658545984721364806293041838730893315095356936222657201999361794761324783048207717628361029845179329189674063624591045812012001028560189402843135535632014102606610779472610569326835620278744499869413869679265602070175708986041067376976868891806795711039727434957069132382258406847521503978568063888477477886020961857636438344975981040979304505269630561430222653911436575388922504270244913675465587773453076270395041236992212288342731101762403491020825175700459248219550737755609009152049027261056158156923996422530268773672717946952453715070497968549559491444885590054620211039998985912191710679788853802181781174855237211472210204467354432338846965493165093242240120865118770497461922753492488905953245129278571886862987060877729978170762619185745817225591287714807905558611120731177280471086413601939347513932997508770415329885873366944570131582986283492668191043936010491816256614620935048203427120132793310717144274376551750203976691751605973422103118223523909449181204466089646098133377377376401018219080421839295581916489070151927792119362042043407869799692356861826469952514943644549397056807027788994259245077473858380392493279382327014564906677453118658145177058238613528768669508126441113905405472867601019043862935368350510033252549598727236259622815989838233494079384558161836391309694139996519150421442385075294628352322747901470803150910391284215823863355390780400958693155164453365446631997033057157042075776571797779022922125160721171870402989686559471240553583971907667102555631646102133206735617718820961230049167809363878588593545419785368095333027031268430243236399788658683102946289782157842729990334873266782178403984729092939927684329760502302013915753430917555932272078209806429941439051437653496328816133063238956959332267602242371909943033709976723237028798098032127580954744470045712410768803480514800723830747225624272799735802979045995480989374477967541700593837241281934701342637804035838523969660786949922510128786368214544941072894768270126863856057594106557608841805746906279221892847970683243423122478381352630455444401891458416858443900614458486200125510615198741508050238256928894164658450571709387760945172721623633121654037247099471784057251505457873937134479011501114100137520489256603598602466968308531437113469697608429736022898128420375248404886313329071544928223729685229010624934105975181313918227683273383390063096910424856608947533090538079763574997993187973700952491513951672264637726556947174686197561670758461017734159117373127029041716360729283193815042108220612653104342712357693058910203526150914969295128367193917148783723130802514668072065425057574346287955305676500515618926799510408474756281339650287725592679622726725426865624791367851882104544644389093368693845883626193799500024708861400230280594325201885165252363689969403338945046355810831742907803512849679663405240209622927131251706106553484765042805391324256406817953151403559844485740691722289487502217584992678245616411050083811796130598187657792312252205585237575475298987125634221277788387964068854957112087696672574335466894283068572255288696888664897182807888014976082688806792885791289980923979600045337925013377153599232036315910599436600930331311213114187630433564523713953155803447769089263290441759149435413928203435589833918627343728037598551204132773522477060305950644949875183355113950080705607424912587932889426107536411994863889673749002888154066489891479893594678400001715751088267694597169390612750619242972553158258693341843119454657297330058307817699709008328989272881221441389091367912016392221706605045974112936891565229933290350433047992887790444620513808075858673175025128504074164095630053422487454616190411487543228239739969796793497853480442559876192927010650177728260156638014424851485894014398221438160778491336585207047746031722330392738974439718640635461231664670396430092338052341802147649647614189212491561363713351735273799349262747561203003548288690130712055642079376084251432136992340675517952040200439913628037266499569300022893689617126332680238655973120883997395284154770845383436750458228555840351717976069378569541284862624336922342094260902485066592811062703946000709065691505362539218446091148707975800994595990734861499765594820715538209829338471010237264525576590033339195900590983427329856358729801302041010736584082754576198149212238547500102999419319184047346574862206885078560535837444345621750567721075950016955304738520748060190653986780184894080696162990663326016057566014560243613675447843735147094815121866405828133301839641117622942154753760064539887251127276250428458233461404999955510315505370058630763438003925662402798484719533921719859929451231074840317545856558883601910128921306303072376437151391411325266369935743817455068948523831673098130776807283074189634747369541813784962417751402447676710251544791137451498359262649537481881824533446004868833942561248801249047375902132290565904560556944635253903892099036697429211175543935843096444774485758534879832289090141276240849543026994762488359531575312570606274605443401035885887168433717398205546113127562769615540371733917967753055538688980862716253064344348256828408947532490219920613842749272564439639213782894795324029304355699100985517837505129786517443646365158601565827433193382280814706576484013912095583729794352263736182332017113401112630670211700728318258130850192523985392736052279823377530618661500167386122065354907398562875444661416206259345094954284737267324586421894814119672677397512005248227845737384608869728497991304096164214025129493584232918323842144069538398534117995741384880132631912665118259331521845211553024492101439855280763940016209478694621351326730258705056806889716949976791237846604413050684234096773763485618455915051570922809021759604692427559572618095661657406485094902265907504176286023184507069967309293389665130004958455808892766732438273690599556211523723854897191197995854310906374898352963792270440757698702854506693874422264345240098439703579121754461951517575953450070491801264766233554656655316830099452759536799596595430019417743642785598454819188006113601803635567521963178748655693189087462943399546939895797869103933293953399964119350028936769056795824412718020691719610443381497528435610435549955707139550421280313935251915787216877353453257804995235170614577699296571516108439203359321600389693008798224407284323160023159655725455356689474896736148448535035647704514384951864547693444675511376083441522550527690482475238157841969109104859775424031254314275037090869270739576307737621345453774656910099387949259410565392436653749055830164936924698116332012831602325649305032381926456380291041164199444121735970701660366707397457434310255333221936653692733027197487312483560222766235117542516518656866518849791580908460328880562095568206588770561981208983434811561534104888195763030892975738184132059947440974472485875433086458450194767968554361179106334135890121921802037166648489793054695437558443701015279165985998472843579051841278330442446415740021645635934013323287333245568919782114893568881068214085953751762212833617856333351318060937584545046901721993195139180257291315046750168276798169550507440905103684372444804007360406404001347384545567638927726581602438762562015260260791970402896599228255313153776466004752335426621193047075013885789041704438358304812774583638580725782157838224147378685512939076966063451262573382588738218630731262390625480699369012518202423849218198938420159906733774287452798237225569323628887696879903399414026873837915800664178723426474565591679284029748319443989338245880797455523575330246624761172474306090006939964680624129858592119755313038647812076198542299474366742735652511715943684066743226321350310633819218782830012307152359876003259209810895202486094242892749238699120106122602115865521219639123074456800117302541217783759847309428782847053065641005233767731215774607426796221668334445178590277747180140949755056438346857833544004064103329977111989929836375242793720867583217199051953448056517689305771909360178509371099276679224648404886478742829529496095925439351429204858945373069146276174288978427178703638120734024229500430850121024735316251840109272704416519777411792569208052164559862263736519205104860607254913979140454997991910819767238914436105680223839758072088534620480557117069051542084359344979577530932057032997459357847601533190921797192227213228050735811209693882116350579919522889093728250934989028179139651907467092107391986655749570841335923844011674724510678008314776882431219092362395827391238785037961170018851775133111695961399924799425504274823233740467718183150894339507157318469849848128668448691428740714824604552892311505104091327907158813562999134124277492288296918691105780459458088407295320944868283307252551732805958963902660560265926634419560315030968094944573917345870969011325419158195894446204305877600686414203021033804377920530087230599374170230036393825476280213641059161588358080511013166507143278553046255546008226568626178976141946049928417919610985597742551034115588648104844651138504899594574352119745703857339906630110874292648000812690180645858879485885679872818140168296412331460621774936636766757588228878597536674809371011030574598898512361594875351049064939264598514901082863123329844751940697058373088811053601222111204317605669932558606465338868958954943061575568002041084801248950759815947193967341488352442524580110324188716943289787181711019949280704682699506633721796372513304214887168839198386525352682904484869850876535523396807879288579914482404635514980740290403223858096616043525788721851390150435543267889022295058417734830737363600414922166931309283496434630126888146013678752823949448925753566402372260725125916731610807124188320738787091640820103435947388347651501211203120750698831546187212288464800531328159984161213038510674805073508156584805618009468612420634657884893304792921978945721778721716369496329606022297368507106704058696154083301865718414248137798560594848268389480941340763102472051775746058594777606587510967907342622264591437807055795132892869154042609975705241417462675842829877934109954774526455231568447980294400255079482304184895110922684738168312164872027786414984171044140791651946490799972996052764020551575140056261042777665868296176892132624037949443040953679045960041950590034501909722085535157381931002683175949169403725524214956287369364300190589953519663972496606062857438519100397187005871451564049638535996179785006118692573311674692329210930593329042693552645035859932127624659498577322326007632216428669282480957823973916167516586460321301365298748444437974447718737975187173389822845152710142921678267436133840615692345931874950417648608973124757348538414856513560000021244045903310258164037079714613552931881689833001379566572469325913982859121684279291623859668751124193775104270917014031433342659043314804379090056640535094465170660378451992122690267712474813994378019682536631666773199624979179069925859030088138016556953721181979607462610081308921631986905023658563069891585575986870535864240299667051702305374091234923806211239614270854988719370440441145847923853756572727586835680128823184577566757687470551027744770356472950325462001480555329267464206683181525310432247720471897935116517600479691707780007324268594422583036090728714689752913356340928700024248543812695420157710619797730431742134204697700776709227177456224457955134778698791764633962334827988592513360053617743430065768476806802038842561119551082826286814956138869082319691071877304778042935464565898415569448766395848963366278589419181688441903840517654388226541349676709989797923931220799734850770972301028054320239617795637435131716994636729277297433706054540482059358465553637834090702841787029405221768990222902002203440086703125116806774263266891661707723996771390599370642870074406284167702326511451743804218690419557689433582750342183824057651365185767844646873102922884090460522015499344191358838583380470025880630862236484425028985152949421819492198644543889641187710358002752785460065281686189749114340066477179354538640238064008580338195574270548056674411947419033642950785970924927449035492290732910653095614646704604375006162447710695268857259142933139220804393670987229327712367673653981838636848463897353084931344347605532297566353247310395426284211177760316597079447331728405363643673473774865416482988818187952206156149632708038264354583183845896376087005077184204896186307764736567169335391079117930894258933740045116843822832703599675665785249930980220559937007239157105567759364590685664799192963568845367534840737728972229697334243165581044339054719538213656238958039500781642289177604546294552702795071720336839097124600402649976967727814113706819627343649051816207365949618680630693651005631100420087091653266024293139804239305588045667810444661954646719505260358440513700029974410911884063050239502316716864060854018385323807166223442420463944632039013071798004281376489713272372557718752151499831704624274539909453595648760328161358167914386428519993073139090957761090693995486091518988106192045216285282211102262473939810400577829302969096519823038046672756571546967428029290674618307555984244647322900841817533760339342511978954008520125727268668576630030538561650667631043446298294314071768721018344143805636372536287940227079578410624815768371912356313964439195611583074544929804146572119124534178723964402603576606626494461724191917988835140793116097885126816365463032831936344188734843499139838690196299779869329906162679948704109193528652873668021216829089179692185810917861357172678090771525727525692058365152629392899643026116727105641279264878527801197866423512664706609821666947613673411982657838844013996630735340196034762819993917231040006222194677401570748517499074402694941654748573166655925080369996882113215081326763797812587816555206503960456569961036992742339656029684136394929157169016997133676523127924437656362441233753282329405343793156847366291467165330887655327185209144283710360340408994511915433315649092384136930666991206400138516943363986268918647230477782555829750264174789174826883205405764178187826724641769777754912505801450950368628980096381274007596559829819835578722125569796158732330903797755674008686006799971633106875760222601311455819681408021035481427210975662478711565268413115668165784460374019062582553722142023615986854180962905438059631737188405388883346928226977163015135005154694236453917242712656393595910389638700558209137520648030783529442566606806377109514854176244102452025715716862796281889538278624068571194151243939150682383750071329918980077433022142156474855279859756341619983125320257869432675839655215677575274497724964589549579095999074765794886670036123415960807197899598752260961967912636458363002157536969881620681330337516032196998523938287870292447572710383881961959617866065143609097139236462461645020975447266223284759010301566881850713835275508179850902543823648479140261586598099188366240853796783534108864618685111598903552788544745573032167849647435966441272753075886154034897273933394349606034176601353633405466820997076978118910269264092380093866482406970645021833889410455723044386236756496599821716781668823668481369220941630156347327021097910684956489664141532963813562389985284539965363341231676937024554426597499047152672525649881200099130999628685723290892279951861553452025104192158490652842360972650762932485146499351830400704934747764594433968590724956740890677434438424051813860352571554625042431151929251157045363310336668381748249000209163940600249324897517944600335317194271216021383548968950084679404438090781767377479711303667722180504242519902987840428218426411159818992740515210124543181139203328644034991027009548933422875895515578493662665069895716012088664984305753876242164429324151029130310228207705816165339588137826009667383825040911405434696944817939578012096097627254772337140838733960552363602967082648238385031162453827264460899759279720406646366229096979529797090276511121588323452682779295926247911673917227172933043386789810472791058898777186367651178096620542469021993045798411124105419025207682481663497493561220092608309404341141157268402705147755888971319914668120760328502734175436251629698419531614854608224972028658640179263306235019772346444030804158617854643779075517917188344998550766181216498096887206350197733337882080275928163769336758946339971388106601051558909122386512823665792785522515319003607671814677251442777643191511678267079112507171578052756235863392905233227940098629507675498741833361875421278841001404845308638403814823069187189163107973461002937651077401786158018166668407366230773063470621696648097351823301407347347620330422213416633722389508086436580236388847321768364793320105706720683658943912886572546121219238237204176535555573878845896741472074232392401781065957090161064771104980061256587877834073605913380370502672652534103095308640684690270270836881148641203555071138226366904488788126061462633189286536955562346546203097661682895027864183049244551020112627377612370807386346319280761354843774698211522121949323916139912836626668677829735418092717320498798224067022391260378069429138988066044283742612003486187567367234884116941353033842293465435310890098552592992166656553325791403932209612800739143764780258079460533342378876333980466357176894914856691867077301140683144919428890965438289753950575774350136197566597680048537323097814274607418185368583759214211226093509184276528116461761026622355359539145173197239118138611574637979312587793674493208169744992041256976863556563828909597142015386485712780354826935843035146475660363197669062204254505208661937793375052804217877981760668693853611628127331021831253656114530396433799157699306871624952605382206798718991743178219664409984242366592555626991745361792918516918376942250016686784045901017034651800863308965183663615557016820652945060253151377282810715691119880439066997488532725456197657891004437450367961559692752277818464796323729860998960250557850045205416125841366912422710684108039742150589521322016474307049096601726640584735011756547961353038500503604212635201350224986093746907427326002089254606538876934292575150627095070305772330162936192912418072526074460021991532466004400216441050678590983480434984749798429713763018067905172867771591703632968855538198416816565662172127801793897999347917079089279768812878201612206233762518426464365815087284859513261200434141126465811574260200847959933301924676808723190021983001075552507596945955672200122471186525698198460493657795922996337251472358368842398999970101290468160827307566870815042223645703120661361287315637261036080266767371279537726940266797754799445736089853483431179422022271892737416047100192250249115188112900101252709036703697494781108380494550706556375183271546594004908754099550428204026164682171677411877230401973270296985053235180864731383561563500943062315015344311845898876845178761525444454996666681373909827863911530626057102106507239667122320018558504897767576026368669957272448612710619906010262765667022993613258059611365041369705988879998407124245057480053344013777981225385958311447496172620540223025602931097606140850038873542473194504161005965757854934723876412885719767406193968436825186213280249535365758419125933585600589695815064893676763222854375213878747948020985414387328503201915607227952863285942968941797298466787010277293061072237678686041054033376318312048055895274635098106530042343117850848743092696848605975440151093787063663456091900956025425805737995124045429240946552554413354451339130243175311264508890604250341814384410551136675724683413143636185887564414073754121698807612496701948555717789122173813740089501582069662612199186668211188630129789219680688818742689523900726315858133949153641769528345821980205947359266605430783527468949067462582363861580323404099040885142398121785019705378002776122459040104369822217097045581689070845394575277192680000262616744655609954288768738551625130798356727047641984738478835647531565120629384890763863331435994325491623228027980142405091925705977546091822948503812018943242729407090638693634356283773922007358593628968314876354507226449288931954810021059776103844184101626711836622170086895207930244753746467827504264728732899259398871015635447236945653617415116575196986655899071988642805920778952870830696191730917620715067442507997059909232499050504451332836434931185560151058115712046351635695971653692930156256454754876713003682479256263608983691775245917043577294878965521303883139693097801298557429332013903705550782337988427335327522108782730207421505128436208791137766252504927889002135575670332797783745494079851581049058692746733337068521538210431638474202339391221422589373437905825285203963463350062778298218642134716783978863991132921759339394198574898428537003871017601513142371905054408702227729981435503142283711339052853426232362267441992356629901840519805026391106438303855930711591207052673820482370242307874280350838659581508957600109979487618568431881922304557678017452490124298625112584202907444840444613259855653976240541529839510637827082219985857504867165863119998322042172864170103071700794331318613937327616095856039685167441912164977252947258010707123881104445422628230864839529532355625492740787110733341756967180865545079444194521498390805838326019546798530793379019152326842797442364295857064215785182471881327097365377521066974002736955930468337717186720591354235956051366560396715364485349173102069830078155542872130030232828573869285698104772376049353637895521062547854319968850665146996723577659821533733127315929870647566738138460298456789100659317661509462810326166565198599269521781967506373163779429063364800017686302273532353303416211371955978995578380225298787756240465327409945332379244854824271853619554130070225074359622661363958751641726526426718817087853489731927690012221707196383925178737294531847667946029939040380609607991879881604772722539292668105839832818159331874301520108090075763811263722636543111340619050934762318274441401238666571998286539472101180913550731666541656318645541612942651348576238437044846371715559157744664339275072770784007435692401057500319812069057036369568592782617681656865359934231134506472632774043257538794093230325643137021073906275303332489092600574551171235335361743960191645126636166984854652056722182026220848837208126388771043093842373020948328471085902249869267669755395770542509023606817501680808141537126428956405372861889797644556197782242993485182657071440176372490880288629794971681139230148866554492479513012150501915012334637467122688787376168834063687028068582369842389495629492539582476569794335136897485565068561523291914483306551305556375518875745358391089071514473260416962339052623123211161649415987691660597384951864536761442316475938035830907596698718426690104998317879159507769537577325437433145725540237605198538935376480736112677601348934826365863127217826753365715670708377630070701876155730645818499981647817863011479458883412952389710632754514087214993151516493553152351958881674882948696854033749467377051022674396542462867348975770277505273498359648186713941466881949182839849352169551831390563276365178510716075532212044591520755313859915834543670755539602685283910590084844733497510206983558718827984659925598390031165646070747066923917980094862396886115581278061825143786900066042201552923220200928459710965194970916334809320617652699166292051473640481657785301677221051351303665258743875729977872008847467692837411129309119904921961630933631603889965076515991010061287619054521908409966673884483142644369978926323559536221709672642011713098648295512317852837857104856275648250592245822788600419114744391386518469441301769447830497589049981698039833281682700049503346758917219487552772189435293060890241679487506247902934509801211349025426814510658818883324777592344855248098789869689697368243289801788817756361936768670742084485675940191545941434310264705902233667712203949416524033143329182574557262066884345356236649572857539536906292292732024479435268727720408124826779791296538935462551874327769849291566367873555333543048281272541991172437603551073426267421224123917939714419052523691559729435704042755666003632611903551651929214270470778346584692962738449888888803973129417259692404376845717503949378070580622595460748017883388699051323787111058725632818486785308266685546680721810933655145736429889470041642620899032325223464125933283316182749999827217541189976475677143514094914788938166843068019060250906215271724584231529003405724780982546571723868940885739441781514514652672279961094815504375696562812042850201530420771190792234815775664313602884793066794695609978873049283515853745248187919731572991954155837632416916518305085251614947527641405788382569378568467041577457272808485791259039130617796311894876697306613196590638526786403341891186792104406450757818943323002059428124499688272737904248633513761155787573916239624282195770364455870796173533408560827342642141141973045015606490451508652725895141150230226665169564625101076730390094914084897479703202020360940283665974187385198993665973575582972059797516650041227077722503514944885869549842921197379428473316871906381057624651978198949708210278961814656355352097844733475548531013285345439768317390581193043295775693018592365979989799965580094400976606535472910670109900468137368306395848061593230579652036571876462258076293871088607923257587420746377746238284911865446097163217485024750693355800204684370025194032057155523559127616786680607671119127718645659682580120023669423271310604484054826538980342739845569019953001109494423412915470279337399400958038165825603498186134776881062752241809564845368803141654935855737551280398767482974121665992522078253231074002985972404095317272228439664926749279658140668237262373705802948629974756024204828937173049846901325462492619737044857027460847290860183753842851003299413015161263942414125264743105100506154930198491759298596445077247864013597668367142994630170351815712529356178924334118684266929949370250718429920273390603860142860002267938595819762562778355486754399229090759654720292152504701452118522665610122174758906589820526788339671361925797838672088967468801942543224966532534338325362000598892785681885194122690188220593234531620797609348545977007215245055384608739151790634723686214564643056299122581589801087275722764298156499412052425697460241311225117551365898632250806742759411788131320546599750251711275768058244119348351042465138834019589479443586751121392749964524391605398759871648088555001243854089976823533517442081074222521984193137209462508884591881908087585877703451132946463043900657602946755982624374479802482176207069487500468561793836788827028617265204439170945740366286310888580328794211754234063082246383556939810903593737353035057087768017319672485267063183546872580340589715720365753330095757847595380703408148814943885942694299099814548525680179257296600825201294453511187689564979293490290658129829909170746621611162685885981888223428828655279265581749860061524443048587408292279523087318140060464954054453573551156863737773321944812574212028429938199900617673799100455697759090523178858864647209338326895535522078950489325900447295605764556448878861778778834221488055903070026658408463839373830618311440006262218077409938390577559743878282201842173062392818213030703937205751475801742084105822186862303417286447302202420647571694793706489047162638431086813065497246008523339219110751655235200372339460654149136780885360088423801583462318048300820364295241453791219818789882847242642735980310744688268844674694737316633019576252225732342920278062298831373742113820078023122625206624871163180421348645498252860921449639860882031107191949570899486769017150827331868677033565044254951248349649529632143324510044445236674563943078463338479721820501128527687795677046725937524080884965173671236044418522778573627728812382171789196887231521374688091972593499120345668675010410395599117737632090854949798507628204901853229519066479463432976063212210240799187155330133501861655149507115536172495227514214329742435517348497761628841282837211702598147775692758919317176662400660469589090790949299123288039262081442246795894062651615758611297059311086628757976226028353185017791277618523615268562999538730534010879760479690169203564149927689879512453434690045549622702552566602703492632436067979556471138075087658859036943579863815908569865066396680730865748102531755363090651910278206057553910405573327786957153907282649180556320361571407060955916597156050206851859804206341904059528462826886840790351098951629275998794985327898611403733187764437237495206626610101135587451920111984952787699271881166295679505878251183007179246281239404880313088363008721920781044409988444704844935363395248672862864022530462312347395086465703935604777015059137126926348447060063275583680506295606058367431965747314777307620519545917465154832185795526456497756216918303382293445697175845365143946101302685772161741692742465498251107570037356435329255099050746686187142752594847076605839075370104807514324196308980601880070210862338447891108213115594824811093230765733937840750527618668505899318403916985769352620800982019392219341419669447755200880878562191162322283897395308681665943666912560466622999478837633659055570976923501696671185703035219823880520049561759578724070516223085132310662054727985249363859211079766885550478891480807910702672322381623029072763664660160758243622490554854169319807432895650192848645213677482632137277313163521799523826352342522508761647773573974820582015085736626701284466136980932440370108556108127920995390257019510388201647393109812458642666066726987534063172835916200398102497245484449740682672977394151600088613658365068292275095084413092463050800229652854808904699703376329956832459687630242801950730534256290143627923114124727164893193325891246710324214207605260118403964087129080885633669410973862568773564090241757905586035008069184984591859224318342382866619848800064525733638195677464154011429464225979164217762176483393732224556729545365549362210003833545553804805084275651938947841980693432008985687332665916051787895050696036498276344424098905300380287021673903259058466022543256640453484026362196836812780120221413830579870376929380920970833729531019196960022817483324944554577222303420469726402814310791119440011889648950569341487044496168146077740111288074719264242713577983670676316191681670654433003091465722437982428048020504181107309586505354340385436160327710596662098719086886238441969491773710974811380643645287807748555910500454600627581846427782254189329033339550857978273690956776524416540303343937309491380085083143084271426059926044352838703094165278724308734066575839889327234121052974136522717079611733957259742034807970486568069013749231629365258275566808578473362524578708829265393281863362139075539087997799356312899737998442020834129136198407397592487372374538705759725107383237415441562125570684283444871073997724735914853890287371553358728242301549192736171270350320714878100326216925912485432384081878507301131091294640492936546452745653083863013677630354684671688742287782764436140842488252649753086833593848822575662499906219144358225080998058034601777116693151813702592210916349503286445518388519238426828230885875702323634852727637010103401880269274907756670177311485551491262977368650582236405400628889967888442446289592344487227946382998435348333069104339023367118194813373064600903468978009034663384892500274695152231080589793799994913513582358033953456312335551861134328369595930875002962387272529869612031487574822267310372917922517513293197236944845153328199246240665274838900748432043455033764272488260282179525931630450628468429222509203141122047928976779769591688776009357593808692045786211830713137863348173380156448503792226480497945693316480208116143810068920387935658907600454626186043216750493176308657981962327121833447534904434203061727299793567792825615188415862370050902799121785700104247532059288250649859672509262518104431647727129216017618636358002578883431876023059957728110975289715078547724863940036587517133631982619316767006354870945418321405757571527187657537900310984478460360772744146596248826400793092321453348728179565434594751041430880815836579047615448593665041641383930676258351885889373191606365226234068006220077682349840364608660935933199070611305112843281112215733456553518147474126296534426979827521052463742097842253033423516024178468112164595302783409260418935119632988144073897969201096510192790908741014128443894443817305446964952781533605743601784713449618721746388893719547400472741097748283938334895516274512333671561622744032862437631467749618494877023768645731242288919410710626530777098430760634697009565965344313200108037017140018279205036893298345417486216625699629857611996078845653509251163834336013310194419726159975401510842180008128538229315611553040822805199764211189746227279013947539650528997550453154316511496993317056549960112388353334259283264035659898212714178384480077001994855524539052766429164268693757621128018235709131144608110544829295231495125920297446046381429572810594577903274484198267750289028717960883208380918444685210414141464276913441814058848124369050756182103226103936503473663575210614775096402002437691454956358148923328252299256828891946148315423019781028216881426682653493292420752330812838171327521203586443777130052160937677803326927733475080247999609466359602498421313077069867637104798692033204295757295184128063701591906427801044385227565872015109412286012075369870272376261727486525245210714054760639327940461949661678314900435697206308270757495260049745439647028471351930272963855738155065910574690752025284277036391647598954792060852199130182418817949362450975830549368670107522256738319807875060297072189427598626903743500837331928042920458512156046730022674372847794227055468779085858776043713452637689293282213785880346212911913453459476763482808333499168540275932222138187301050567511031606862815496281908825696320776509724097759496584716501522628295169179112173196980102830898072446701271931197583044958012286436781511780361150928274722196257882646414925484628902031323648963294970516113566718025729968771581144153575596873467503295546351200538333320142200050436140189210860819019566430278816670621826962132568711220423331458996721011121283249668108692578639275014501757163491084824385292845808454914874496620467236827539903232389949156960792478100637657267672077859217466856773966978300140474339293326565268335169426745213740772197620689071790075173406921445265610975917323346900200967924828270399859489261256189025717312991867066946300242316596797516808679041861606083080565445135810116088862593565608907783973034963978520009055518563312455756639357453588277260332913866940507421075785027089419419720006443678394947500891314972045497342979657841367452680909013824314285996360674689481454122368626141514177481931753304487522303254125191838330457925053123562056263877218371723144449007600383358410312112614565666927303326113021501167441629583782476850225948821702018980166427713823543388810045085032060224219010708435384240189608766435545039046832436650778214883102419102048622795033557611515918786463350478099362853314088513223011872163486173302539575878349593883026682243737639418026891373620854653214866171396942021403815664891879765286405115620326636377932006335241783719064105537622590609913408277868773897800856451863558915631878596992938489039919570133052685369504876929215636248860706983745141928673110251467055844814523242177187223964083388276804098236593111300400713613870299595583765261474908201809327798900143812140053806357317139815418196207899714813186954865764225667134538604339380924156420841991432301508536851684451928809376095788356490939718459733605922189705500032547629807891820144489382424887303844362343319375618970794088905760020662714037549278959524553690624450221660952668864143675187346850853679702177136569334683142983690053422122125179576280542984930369554940150523175202112762706760798231602531385241715923233255357559544764374270782373016642733826387197376882996653743818751086006248616080073146305120476298852783646752043752494500375167101670145041125558273469042661296898124888099820630906503404269952732471933896210955069216132792092376320888097651149094835227404280999140622575706924212849649272982076269777422765677049095213402213086479085106624494494634871969867850173296217243088852887046321512093534672428894310856256916718220399889857146127965869348710506338163676814631683915131210088692811971730641905656007972547248268921895686985600523583394188266444742222755085425703601809769125069764128057146443618331383187489173264688101690598378940606630919641387228320833627051598392366891096266905907000137161144796781819418245941049084520765063894531864018014726925572270575616751503532118915075531469934763647943983011878939512961864717901636007223165178871032959225979687427147126735083227702461165810529780620660171163747231901433973451574315142610238205872240581108905804887053305566702838201506444854592595494242179931047440067009830075831560571742794333184481584272868615133538466183413736264018545315067215526793706073118143229275431784083755235709956355177011913591776601240195439636413270798057002664124953377698021189398781828112553625457557566443670186908560380525955801497484236713066572037833662463669395941647499479047725909780299615722953463741613486826239303947629828954820332655695326078960742955273798073078279299899441404771830960625044068741631806751864155581467659062910942098224774939111650971116168785986759252279017881518350941402326254659623172136341087268358289806186240556169789773967946996287646607145679967994899501894288615084425209739065790274171724398457070807230344284449922847865482485814329047602126124565555366042563506367154640541668557914523932288258452479779597126656250866039589107928435764876809197459273775916190477829942757163951994528462604576339255509545126497925800632242700666380474960169675201757771814531335173697438992811043332663670663076202510914591822281786275897383769458144469671568061949811587454032184421860498896793142999810845832497001685618719408631746800709368879388961575126201330246802210855173132406932107951343818353125200301335090529491458507924329321259863409071426330503695716023703414755986569863930607848437702285556277876894643531109930886934498210088082309723945614906783915456545884657745988770420774197773883506947884974062939237117499522400350399699453087096930331188996068339713005968720907251921895786543357210099155072355582610288056066547057114459156269809597500530379604689874771217862671761906782589903130338557263409844658535496452905428864368121397454523645358197038376277126446367854502331524659694528590041650374834949057292396441916752238560511106370961285296657872316154601143813292966293688037676773096025388410310350510820520632407595665792009164279814910193494907719293163210499472666768810469579879492147329203090207401479108168212776287257046800356317609979477675841898508421211179206356849256827615888925185806482171684162327553358851295151578327803412689050355832368834538465987727926206960787244350507422013331887815888619796043080164058384640679889058538746297811393123668782753078253306946571236375485519356929408834645828914577947224898686447158150169179766236377532403458319361945990140883622084097258465108440652684444612010599431945915945513694894861599136448266239933625324296398220577304747335156148500706459156987155621801561298328178359102924027484969962822832295257992717596498151994833877459149380390011480596642650998842678767261598980735476850206409044610081458769202034598707990700800880067413408783809724721299089452251128732091579492732485030386350393249207316210707085171897657932995212181393774461037173455947211869220811485599884748611076065791721346829481520319909852930399491696146675385827369136553240465120887795180418752792619435481766013180499625888300466206256584788787139492818286629456832031580023229029908104026237835457190882719945550503582305665703824823495233144636740647030543665787771296571566079077091145824770514987621949735026057394499787672775977132746802113614545545119479503772908601668551414261710401077446585724638472290927771868152796591403027547314380390765983428801817838254504630027494836164371750574809832656146642114960064693695797629586631761283251843963741702270154659832487019024372099089446176049314576839896838239897357141052390949043855170369511015938490879802747281548626619045038121968845019890254339309095969602122903441058201328546441213676951995792212973670330325613513366561253169102091960317392751963850613887391774594659044212438429005241638989659681515862303477664373315184865270401812849452666347676152794931416428767507441775654962678379841357642053651662472967342986537461825197767823782561568091479992337456191565251448887705411789177693998545422334724471249887187801321131552258374239816202684025071020647832544840127510989102038873980147421764050374804873786210221133074849665944397901897714927058858432076599236761239310126638254675292518738130672054386023264661808245913104381683500199201338106204337960074548097620653574564690409568682201520510828298804040700163672280221350592897807701864828637558440450220942879543461919177461362825179926673893700835793350313015437427502385237175536892039067621884928479960960062121755363127567316862881459660159094582356004169509112831917371123180539335323457276038357927746623137373269452708168112793086384031376050852965826594113288496855106364804876355483474903635354597213048545646199315333116718594861333010913295972142296436237732180619880956009063418661472081098194964361013220202774844486265371927782056255926516063293209960121943248162049350746297155638658564972956497372272435721252301854639616134371465887119381863765724943506303747448304357905929666091537867995263219685017575320669203320660697359218752269091584625487905456160089263571725936544822133416286315069316552939851968315796613145150986784158211892488653577924877536187306871607165344430066909714526434520203773953275331661244473042647350147034472963974075996780495213637213601947854419976791437876528344531902280339690987751414578579660762933612749562449449645223452617781168567124574050113595659673998705760377987094949557098507080617352577410129776111541433342688373840568343132764904351810828233459428823947124045169237798323189864846739952086718628930384257030418356600935062597927673692761641038594608557634792875752400072219008805553854270544995698974152546458697572214252909278285727676340673642571783829227980700514500638246274512213603780959789703108929773370104199981040391132485118641453369625211855760979304641561694091001578642109019538779552890364186294397651333598315116499424264641706406444244154703852380447776994911431369710097779640994388404766011927988162307971728371140339755668843234011645695591960890790569885954190722715346771763071468048372722805430941614752585376984669228510199741458105266025870267328066861520767104822247590300992460866144736580336078729704633281706324696539830833702796507092158696054366942411241488326293044103065848921254253561723228233815785069944845803036691820802584951172721201833890521097698760197993254240438606723700482722672356028897304217850328514745844565654542862785403238517921913052131583016003901963608500026184290571262960740466535310714331860403298110045330894612799573557143393434940159644340098964052779250040823188068604131302527407783529438312101206713787054498882447077940495988368536713633714192600321671987073633263465314074462583484906765162448149610199452325839526372447518924557189866450404308146813559553497094763702431124480010673614195635850173159863714251009777235551690525572572499084900313362076642553034567551832992176952320398840745169115711591481376938802007053428083426821865324773957064768708013391660952566632075853554452549190649105254031922152153571445352383378592780961132983154337569375772182914155870536781675391522939425906377048496577270251711807735571243241509846832179089226487046905578721379050670823246654986812124739137375350435475594131269862271770207107228159886028162077789479853635048369345602400509281251151686548034092359284642133221190804120195901525697083985108168765731201827670445143011364450800525218300923091735095069910632953057165013219835442216534300905670330180162578721282281612620341743898669679465694281056319112960975332735699967900981375389443152681948753126910187724933865088657269861926502732557786206890130196829426808199379953998580794614678494181612753371297772699626016916687774787733091376630120943723902711219606585013974656911320322846896797367520291717145552937900170973589221962893327709123362484324945116138888661231269888188337417156305677108754495580878500185033640595966190981989094190350274249838409809140857407318810250013569494215130568280591473440150710653002716625680769998460299885259185599777938298057187403236088303159338070717549453246308678371290264777306252227252023814133582152691022885959662087429765360552313092312288753683820130509378189946533937105559164198260776891072025572825267154239767403497392386501049745702118422135214352957527838535116745515124884953282127263890425072154741387566897533432613804674632695718545911768613687351384775719142732327718932110064074772185611446166257907432005335738446818162764780240308438073813723082528119816637727840791420677488768246649993836174817294853135185525370121325602113549610497371980844898034759332324979803128363530002364310020451751034567746297360597627402047312182657858612369641351437595341665843775760363506201693342293271282629061395286294906403737153036261551431258157547080270222124671759085939374955271121504325606736090997792120335312210515392891393140351717782045280648510356946507699163223878714654604097453416514331840310617801832422554730255647529709230647425589070622505811144677680399772940803803158831838732395350937113074357884364975784255261044599985850708420084818944089495977987921904160165638207899781486885008413182878623656267010933145912061996010001946573392978332092444193504243773674003165735465348702383057466984713638628583458956466313448621059705846334485075575426091141090577723502396559184070924401488719141777547080139809937190068909041327571589464171562329366457882233000045742790250207088829857295289018073710222951179394093805222038034326598036635253786394787649525211327494530640249828687205113621014099559940506010361827004797564116824667496873950380083309226996925941230729390256814424317736578282896341437249588873604528554405221289000239417052581740894125495692267511256253487938105199207846687025827438520526101131058179005722294351236273161579399022397887296328867709096440047720911018345049133188095846242624515258192458138918250782353672870950996514119213859662154510782023490269253859800939513188280436467587815757216489545505968175678229249612102742704854105566516638579601215074728120859047730077025685120047606450179131008423676639579498323042102155838055573794728387859851331048154470764943632865676988320204915780798208068260189181040991182132941822447395496732404917733781997815577295130557478590854214309249918711601564366529817343467021906381040592300063272923754844405075046712183975377024346220411677727789946512570777662703251576585158330608434440592165909989764704041041966728167318677992570175265229978109745946710277233344633420892370403750916686296933396508837540442251186217442071949660068321952442601212447165230286979170477785897402553194410483988125341060757051914351503999385852729655012936267996785984806257991659417507437051532626265284730087685510661601719756581256844642651894816212270533635299169173270065196722042772722363764487613777336255876718453486527405853622384824112292030806292570596458579067934084222639360350723099429900564393198155426255381629560048420162698096672822740350364231878550043423755634995382721323173301004149116430991411863765145248776482083233639899080222967074164798682226085229974142945581609726104402669682025399876720445082804833846257769266754004914657142314841955539239202660909653958837186463824210038702163479782668383547705866777328686999700571175406537486718299303756081980507897491839784420038143482649629885961869608132534270614491312205824739842781040083707885190344697631521998770304659896823739301345628625013486574391715689340411384761740955982967598737056542915603734417190961951768476537442030042902170020342692219729264843535530324010069709396070015488678153353306682541819021271716904526242404554091908302226090268266867427056047670301349743841434895185710585052205553419097349373455618875240984887690941074001824782046110296640110470011167901408184676290459509389560231714625859853361384087007436310258994894238102365757873485721454105446798210870479964250947959119210426547325828500533983182217632996405088906819223359202901738873847429618647612168180878550736748194464406580896110490921280762145826127445722919274844400868711935343698743091519337721997177024359983930038159940217956718919135870705812178425608547166994398124603971322340058202140603455997647978391015497384237071562827560906200498559114920330051142322763486093441959512687627152847822593763961953089145798279820648303840480630192435516197471326589628362468236685336007897132727445180192070802950848608188712132443340777805070909255800999506235622740812617587391618482784457320805037076752798331869686242141864750524273491585564871809785170413129753062885641868814906073683944491029209368984772655268339177046520301666353373320943205002926443185983861529590675991049842285935004995450037241154952169633359123353065480516443575376118096801338902528071082797059536164628594870281442768117858538077620070959832154098484268345368122041916877418507397827731449442336398864773347566116512758445533903053353039814314834007042627326721722271334238219353496039638639265205483609267287141685901835008616861622865880562301772626019948794888723111210834341681722830764590467594593509613689131069032911361668454886598583061393321632244196106687945491888487488358861005521633418537398217959058218682819575745465951514454825797404355512539890873117649896069803450009674592231811220906260738329860285202443368312133841306961193568746592165537302530571887707108902694176321556342468103088558443716926157240257203162804171652467227725078987635615276651479746126244944510770802005282575556768646385793860137904996028682715809610658922517317247925022828214775985458406216548199153791646084308017522088669667132791406114748766450022177574610087844667927601380930805177882073456545766865308012360808256561021684419831224306690199359822545891870128679941468641937381446869513623797736045106266911202704577156138800835480369495172012069758794544420528123883200789653631100224022625539483033036519955638460351510194930537445829922197452066996671032099044266657910927351029775353047596736417373387487883819273867814611197441708658619956268179076277572742287461281179872559215221971836932228637855566861968948100339752421307324270394184144322387072127863490947622956646324880508939708823418825319770229328122700095616853257820691079022479195246159225420959868435507174759808608850740693524122642988097152416082681903323000733217920847967689571039280510401391093804027096215429405451814260339904348065006527890578325232745593523313600611631331344453082166135933099340400217559974738653403766059778091764943798748636053566067932639874679388550985139727248452763392222020643413174973936412369798334959959603078493938555855143803742714408412277525428721916554401374683844049066193464452953474298991910579653572548550200056919777179945218962411654879974586295545024854179867755776925178040399789067909407905989172191147231671770594822120952301469074704585854623554006212340039650232100572013196473251834225017078078913835896065803799405577883553167886620786124386294818245308740974049859743735075859240917939468122564193504016565587230813616091812959983126336991749006248512171004581044434919028305101422383248032118931629075471024903755919998657402056706868361067392064810491872918173105763802686706921307063404123008902286193681652028979429336898631924973102442876233236607130496079821081645817764572068664798863976291926334174921045016688857546676222919298540008476621120247243950235098219196913294563005776648043104906246854269911141870269540404680559642621309816913608327860322538631475302840732085932475617889631174897152153697505149506081624145896303258536027814870798845463843818720206691526568818709938668289055007892765962428879456802355691762673272197912599867067837449071851279692754008660553385975054243724777480485265857264093969600016617938021177280340199577913541245819138282034426697526977825536379517250207700845160048117960222095584341270809343438821689003127108117943191923073143395369332436263742491104804629158909737814604101634758109967357780909376804615381539317642906308480479694463110648996554851766907589863222368673760367519173874683506932989322181592123189401425474928954904814715661083052260710131711112936204709288736499973219660946886437007816446714523912898721066911348137202684239588418349740276917530961740090694931553266494084750787266337121161038907770051140275327925627617256214643876285646670241774890627479991063688602877605425642735833781083275724448484530397514162272562343278330316376141331372607459434409697712162712686024216308851364738080085677043225731879709846723989058381239863998396007108329578341012068481518320165642109961285098026295531769005180654587080283812984588689760816846221356599687816252981267332230316015063979890378748038489228664028953275552203876154438424191869385391086087648045509099439775855203249955970070612798314356090665043311424763092733929712419453874723159549188523876976849002182899390268611387465203631515531606682846939117384768413300008297766538292514968475039381437791057419288100565358415318156949499744185652411327488556993453283747378845115760084046786038857769081175978414051903670510651342411372461549212367563149411742784243423600596708887346308984198611536501163981507359604867230467371526841286380715552851810755457981112761921387092660802004470592021109453591399063855243964139262162150756884288370743583778619286792117549148112015205744372039591368399754781354539029810659255218679500719704175544828109237498730507095943693753058996010864425289193316103523131969131522412834495639335124041723929363790521413763812743615552526563137930425516504505429661553973863403392587274891241382097346306628672551978983525895444127178509027282836053666615015172586682523133453966600770297391362407137805904048780883789553827882084471674158881194046046780815205049021362886733306064606579111851548741335067551400611178118413383243357781001706061939596232480272379718585425920745057907987481642705868563000081773796358018262154709730249390806163482977042666557958546505230624808723158424663793264546780471298723485047745745376241164040862457388589479064698249469438992210170299525325641506961753425059835405129783174021077107538840110440773924821166320118692844726494759350635372926388151249831923642174516506198910807207688044304247695696333914314529580055608924655890725828728470894037534607612639945143891295498112678116731297764750989856088246109955660545879002518203426653862362872737527683776465547334538070620873675580004220992700404576245550771061725329713088099712366307815918508237193606554101779031227221784506044793964769205375592587577745409356277368897291908816332155089429899914583344871825137024568458202803535058910571431162872333417946651566568910563888930683359944031772836789451279685800783892021503213319769629018249792931679732640311525519188126177654150309653492337937469616567858944119055881871373848100345857959276547700819982309424026333798641808894435047496351693643640103413794821412115057908588506274436041746625464527446669970572221818187560731548631908143166755375127075659145348527963546620526677157402523484771265465516640228033309905640376186671499499563651804612682093707453775538536231617171006551958412544633651283730454484414608802820953003547331170982152714601404879842123158558900770023129191622273019939603600884023435235105227231147934746166187424911786210020131039465997305380508947060897553640375461711107495210919570515339086743975230474239056792255899312345589603033413130501485574081912682980228575484976176119403922826067751173482188671076839711246238221288435351762945158042699195979012140282844683199417775775448003505071179475672926374997806252289899562672594033225927965614581040517573893376746524282233706815517783498598181456614341772788357206355317512911541540148885029021613187051349275584294168411508085181183276174015573065473595433484637603810248590733181362509962509794695740201057412044610981130032882766365984226293677080243211792964928719574077625458809909387714278542225162065454487009413035613183662288824952681943484821518243846401065938480507384784016731926083084663490252467246527754588492811110230325984945941234647598566118697774606732495957954894089755838528414291422758025262189505960315286860556320093681447548673872172357103175113775014546259336973069779023322439530871535491120134389274625187988371384623423926610544377902504399335548249486447880570235062280468373395306008655942411645346048353509799589195548422715323509999702402281550346266541932922807476108373290051302198099890490750014030681862577101444310843959866966241869001353679153862726253833538658990515523121272439711829109855848163244613879107067305113979348987956957897866913319892646329635797621371711204624575321729000643380311782216576264417835795164206792087043104268927577461188090326576942671049183604370830048052522776130344500001537246575491401889552820697498244403013715638335408139690664207572309332678631094183714187911295159660817195746596507912892132937650353010939437174776505968225840790712070160165867663960949486968815788804929057745840865209451795345080551567443058926072833332629383646673418886822395240623145244222699564964790539977726558689738263546644317366476422978089462025056032518670312576355275040170289207255354225087459721084411298885129569073675999183748332128926067239886260562498962996725239731716275613444968960322751672526595592082659648081159155461846266407580426485470742646729492741008571105559518583741031201289227784066309353848539405909354786963976542697890319678437920777112646621704841299721205802263723612962543736094130847906074564445919584685016531834712526366401112412849631381816865201288180457928587207427761352414928415091522714747199031079832005284692406752140438857826243129481502668648191611767331432140569693079569488976789270716814650586926743390742066399809649803824525019019955734542826487824374762849010875016574760483053814000772601389012068982494886144155487330465538693667379904255775529664738187650764707810050608951545003739636979096441250753348066320747177233304215117382162382559497026606780245140634945031081478681156797526651050172888770068777049459606630141421845817517979125059005292586213860163744309544469666535615695122753613010961741391057990779419845213069078560183023180887846635552636519987124498649579135553807590162372718228493536910476973278879875282431841389933313168766032917815499988624595473458104761333399918834008229865181373077532107886008306473232112000271319616874140242237937407716016631727535914016855846583288930702980329684916860238894263667919311381895943477263497552365748152567266268346537793381813419263452829780890935057873277566781506100371988656870059869458966328852773886780749403148424339130515979712451947984587686284152029827447393451267063789719321378323347854449680078212288371657350825752573364445795750437313591237981543156089220568760388747219122686621757744742685880081671275506661396875244586425710175517277935547045107033618013366042280753541713982710252158562564331389540037074542160546392060941322811955333896637561798043524557676883768246792579360352265544114824900658816768269881047211009115947447816801819039857396676632559165621377861191556776801635792745213657975202168094399978699502873699185150328845685805156649790709275206033230349836254851863980888552301640186791564902851903221653945446402207395819926319866502263987899099015167728126530977577206251520329289719467306400855326259012135087927256217727480478449775386238390617458878403876102500138470579410226058188301150706924385122159801733360687824992797753758507352839002574546432573153316844005940259721977314954822782843458129268476345898278959115646040041883886276818491021040905300174530342298695240649322604176329958058723397780898630387830206179742322175036176448835598096844462929150519043271823243809659464296357846277573364281876347978835758514805652271103141905158830409994593571209579912307159168132085793563840558306983321347102659855735854817484215197581748488923759044499251956262609230250175259169750260908753690143345707347136705281399326152352786995451167622836116399541423856895935865787650658946726878472083387762192345399065238850722242079219511172232933760624035025988397642996508903967711506705596310575746933731051366877497138751550502456826315053122661003819117439682585032914712885051249415220149629215140863418558582312375400674447600621910014507168072116402879199722278583432253680143049055174523842110512049795632310833135159351452735563966276585778379339978837845775206222819891101402318153935693700157082830532959169443033273434164822626052667797416069006712724763548523198217600094447177733161328862523069812465329117691143724814434275282004426991854509511163393328171926223010051513487519008506385398407888321771844899429178909528517727692561643954461774070255992655314552009045690782107646527509706762332306719954411067747110452245252876830174225106686058631157428909817343126459475150226086181136887203755917649845914284209098643948376982988972500385014448306405824467670354158493061872439092612419637949406374088932724362790163438510472719608659531678007941003082233421913302008049021014906452715062688432195260109090611736872378380632450677150430701236453334308248237853870561896335756897887981182210837963977961722934541143289009930206914424063804263887017437697328789673224520907258919905344707734672509215537207015053719484747310945937324761715401472588763278732473214592117638927688726534426528063460522615279265044207393766979670350806693961199015889564314843664562210815822176088652510225400678619667478312151900105087864246643614244494544896750719218097034423959377744434238301840125527247096163527972991900360912144267593668883055597367285829276377408807387027074037901012936274925180699607684318354219452578335161243712687946478021946329953411208133633408176812494243764399860744036922852273890031051698698456561851929875247529628256094857938045559303472979256791751015392846542655292556226183593010970130299372080186029898865381859203553673499832975619478376699248523653700236759139631781708801509717192748862004191029150524377682567052816790591949655643413180307287314160804110919001365183509604568081059377936066658492116818671140048056429446116536684723494291048100847553145050740892438387320637105668491070524187520508701105073413433107391457624446030116986641809911598928896754230083526694497688123040050945071633782524780450586159357651188198443555798886171929934418828944852139585349430853302323129781915503886859514202024934912953334047148610494717227247362440460942601398770434343726402868636150639611206057454199298532326120974134708358812347962850670418844260059399690624257123353654325635964274048774488473173414057015975985804254552736263417529205860983880348134036383543675686655797267951940376886046261397941560644273570398054301488214127880829451067187059668727917141087524976849222555848482551162686829461623537839986721027895013378453445219683104426045748928776998306547299089385366243372585248082763775886365974289557774631201013939097828422602466621797782990255915488321224603932258492154668932110059143565761947411312150815099806202731222759822687251906253728967884574911429239090719629234863108654939532522421920692833475443037607517894324349852899907624125804661670849606396926374804282184832790597234153529485594709719502432755089259909148049820161157897621064088927501837012749215622306486176043760122976027172214488719207747954616474393470237868122571602725896236070945045679741617420046954861000182365599233157131594239851811266450882208131393192244845876855070461084750086307122150827307087323787922768269864963291360353231087835442494016493313780639666798838053012586420248847235678908153194896160317239461945401265148929122937705741782792093250491629223220139350205458026857204847575084282268344362102609221016924706032560983358771484156719597876599758376300877920254228495237575949016067661101616403570396039456108162637410666645408466394811679374327776906913555357606551065487610053688737476004660436823595778522851410811863083310472382622311270576384871608956491979967736028643687186740765383272889129303518942227505584350103249449997748731619260464700569195510552255498853487529143129065665141895240908893750410513825558267974692818429171355312969423925122739465861475966214427608323703596403586888845002888679988304663750002970677639942244042376606179099331645487812031318118819995730119608955619608906127889185964318194388999567342415373055206854616507508695195924355560968234920808601182182422701672170485126584882485294492948596988127500100049571641332010547840662450930556911912028912696250947869282409476635807860695971839130620092053070812151825628295380775571431112279329266463151076355548582190425260769494610516129548230180509717239277367705106023983820140082248278271055470975844019311254870557306644272587070522449054003301331098423903143109166865004089882049563643814640502841596108838057761229064232905930993591834997938456636231250234079485577696128059430342716541539740052146595092239863278258759027649667156064207014873014384045056662124923983022195877219425064988605024946992080583269103200892513354597971411768811530225882402253121042470904309879621422279142116281456589946107715251112289262750755614762302025831908574258447139650396873506013652577177104208683107211249138662041506069516785402915391208472271222419263947693934045603629821821624365390317265223204580047325024435477215808514665528801596476405832607692755177675166157534956085716911509846791516234136659129264703400223449100474604471777658118739313233450677831871437165583864533224942750907931523284830906725302444447767450565072894603829799414810461605335287720416670084006795077746579567006659202321761949662727747652789398928013340602258932631800641966574467030668333229936674198716214571381008945353284158131177274195237517749001167149192690477990876570158611864193614328509975960911745037599116642084688431102810975061263541744064265210795915037932870772895555147335161363913828147816989144665731491678375496813327017206434169277241986513643398669951894109412248565839662814476460504039405917280609954835388630139763400646099430200159099783897469910209791253964610610028359195412466854011396193061066803650261520829955024912329614725329940924493916165771228061890367926921981026510734128067730702930161602989729900660584100599869879817787844595330167672089695051855457113348377416661481058523093257805308356436394545743496603961311408471967302735469975189773597511329660784798727804719715870965085479636993758080155035662185585877371534014304726346503316250818058307619138572374934491305089414029363330330825966945167882664633199891154110513358620120529917739596809430194311103267628817615800501271411954485913134749062842816637157033652822075622255329032439043242272291345506772216563213298732752815451701466277694493412489354236407054263915347582667504157233675289328808825611141941138968413870043362509862065530667718708874003009708309129414710049513929884863272408455804420337702145912274578421203513462999388986694886437142239471301658422608008843788187744640267932463817003921963355458250339834893006473135614026341631049812932294936572953874491046255796441264346183571939461373551533773619855634624307552765840479226600124773597148123306847658586201526880395508776855592305857460171483887260354356897148380827441350150936039403546763602197663055871536514391306815443614660117088896377602858315590242088842077561961446776291420896976398985229745358453592078572257533531422879035865532738583805207249893260137540605917270312565921547189030745057776985631533038085983348711304845229098972476148654995681185354604652244555331281953273777605237380503328086409063990172909564503171174464899217285485342309425724027075178936665030052914355194556850332724877178511989637867806536044548800314154150847430926471653098032646614870070253200054065006211314067332248327575807036186646936229836841412196792214022225355119579183846534173635773125815213669289948604391372415884289349938176080002425649877497415416950233526260141412756730617054812502494378646664005705775326735536333472391184417236064103227693669937323934153757884062826655787998771154132579224955817709538118835360477625989807482875142073698338272098084146149315310004665644209569384972742542532414814737357358772491062305739047317936797458285616496144108434921790092743620038236041532591600027207906106109120894821814505173013614591191725787877436184129899784954386699164285373164686190722507008998274939020901263485706093533526154124791003935333782664606411602998473547699194363310002672026966383638025457148680825843129856696013793758135269144240164445473994329230180223182613710872587566596707441168651636438665179320603613142901455070866254587049391653988029389340052102474462896575679101541372877225810113021932502822650523160230171473834058149208116441643861504853660483309841202855659374131695280351278805013344216185097637412057988092336381194530149952443272974486472978142413094243696576556076532754309477578523838870092812144544336902463665069676017437955439866779315118192431519591793616069597193928299162327732731975879007162413032849197910161089749719279724768617723760422332980623021490334085758159769257764096425401181207725610881279226943160941365390688163605299245401817038482453538437039870200085467766987144259432689433359900911640994011594513249305802960738075036215407270197175835833682295842060313438603801040685466815274196538557555899125404252743751379617197749713759684142771813257021848196198117054756617116784717756953425886173524425909745735308163035601459868222666395078103985931185154750057263841693252391875043859998809616265941920860512876535788902015491790187576927875748298781867933616967906027559788664632435745695040525213741414002158587393452591686691685168067439583757974938747190387144531328525181344765002550358683163243851508769377657028533096044954114719245879380192532373695484358462948335404628852808218284333241181326886369275008412330113650752385260538525025360247422258453337578472091236299415381439158371150521658320945541272229798285874632022267896459558101588648089195719890066416773174171256903665741227920645304255845329918409595383892093424755259297746717071234188180664163141876507849552069191501768386662120460265375100444783698787880310812759456316543024582894518373840978756007407783965535778130720224823930094076988813309819875643211631107861758992503732960552562068581002575125238625041177047779951343318389478309293238184812001435592129176302775012189700215116263854173508648063467315532131998113647333512706892564772584195268550517511297620647690637644415931979441475266049805817578102270364864197034204369106495703543564218601382839551956461782309763816833564213812031186858905806415900106554194465722615372063502698598459048466164511904545210558245920564306368517350273985889182923872128626935540841657572950429504484441295107539518288424204629638569247465843865494001089985397082525186071416232785829921535951714713298932469224522589960949044781915658977467452124669094703845077780839755340873581653564314700999378049879384954941765338607004025665952698633783143328692428642705526084608504570480050315401334988789169924811932793878647741315293772780649358112673518309294003483361277790851654335434547577251393863838589953264041878642687135760574645674785952615478279095914328254989934391860006957124940158904294515905951069222107307523209850271201761181669153455732846334688142914422873907370531037955704934149948416865599837087099308553937005483404149310647911546131717226153564327102604332067261713721060259856386015174858827012145960488483860886532087425689774340163521897698484211636424869959996693257248134654717465859601689541761020393682570747384025125483554030412687160675299391951876400220773616505461163098676722962135171958437726468970089802537726869021692718039490844956654977211395314040874802168546450559697688598238310596940883530804274780755332988474565223699504717200142882810843690599044385041973274570283294204659902220784141010748624120326766251493623386150818385149371878825162893570038762025036222119814257884828475746277515650299602864878518442216013763420150888883598807807531372559715257136330833127218795508727156616030781359602601561243848362200647062345700491363648918416041591281116404325326797031591053830030177685225590360441568724097596838836810481559944882783261590006813214013231976165385697431263721576691359668741013307533293230003296734107607089867803893891229850151485968561274010255798837263971096121761445295803563455943670443230282990920675970580375219845245732640300183654956913580395652220995135121067946613444795951843607532304703132124863041020317976760556757722938839848204773630804011277553122042786095050098756720279954031276483192927525744565625519713069511465147086169559635339679934332545939115188374050675290993538535059557365641509847961914589607008314574084529589602497426090979572687353059297665416727202364988745562749104998811499469888298736609307285585204637742195733228468696103560007493285450051859253908370861836615901852866698600799473204765354364243698211647703234229645622964482969092904494144698999093294702229537606222614124293674075994491550741305656482421322512589766055668074179946280453578206705943578102315050369982282647165022534047466806758621504285149992804501555679621660442909922785622908822368861299814783128884272738330102598314003638123730870990868463056671576526796191635513206564376664136402978641564519289455945937397821205848365883445607753355611089716909442062843214587955549547636713696125883077732391488681162684055523059389982281391055676315358803605204020120500698346951598270757688638601952424660255898822487044879696891091863413013644202724961129964129377296149036076968158824293010343631190800656177026127473725300742087516700363018619289160004891976830183842667663400642047361026303011864864325911200498038587513546686610156565104445483926142813054400572876372749419930762284515748035983013994302769611162995636531761613882782720443450053782712883134630505718691311161784848304225024042262928471553067323730495987747028624852193819364549990714109253692917919875825055805075049375673257594615331552006621727556326660097292826825296676068251755545643548379673141696008928742024325927354630997120435880988609223259061625159584847820477124657599676520511863760494444082039532785636448898057140815174973341289128049881876051000887679103771140907074292253774375432961975786595031247874068069576620435330621010226202507642075153908777046129334400645590180913811243350013608906505311402639975651547957703619234180565364880055766280473321102168331381651382752335455518334301578477883004941422270243139700075308854455264972710695778642729483516950688885185297164813392454583248791384666008203381323383949156664829243377773424751239257462816930153435581526761799366393411593096134954773630879554260312838080820097939063700820268692003424995189822342833321477458853966110626647394863167492479127837124793338177840990317614105969290160352230924020496711037631772970138291996570630132752224005107278077631344279739916494465328025282728010490780218058394705012858412497626857163371036228304978422441992417505475000113852032819222703386426388726861573713320150119624758848286324595700363584701427035639580663618374393686286268481729025534896767705964314536288168448742948843083570601185433345753898991653813487316282282455750267299235821103368572034809481077544449889154274865029228505787369945887646353615730484766817868108230172747789419744587291185086681588372552302816831340708898425060860585275249619159678609526264710151277495284707871411615404532386460974675808123865548060903863154939252371020921094679261144706844512872235083692159823508927617403477056905371951146856842475729390414063377249252512022959898811499583122464839999474842560967373602095232985011313527322593396125862728588502577855603205876673825809093851741942210284165387530518054314103204387766271422077771100888592513575277026395068112183533744737849061770852119388923594527128346670440153543717441527802307668592324631019040940081881979958761988914124926272413333495524579932548516506824056448838691299323854642272255105105012953580643533245606010702734515244085910431961613066246892871183375622690912198211624956401912063528552347819840373207614066026215633811564853429079955186427499103876409258104781317344650908125355870008134552592937640947376814150492229580223525718577420100335556564972022015436520776508021559627098529719967826873793706851613867465010849954253264431512115226215826294376340946154687192911893554834317126840295768809090084628935065603905942847125582235704429036914005812629046006348247607188773311238933548222946695416230939396973957730455436073443662466675611397484632313489816887477536356310889948165249740910618881065531156014723409506906252398096939936244111688728053784440665257699336731529740180998441676963301536610154641335370191366329522217864784259988491142316580119233345624971446620914334609463132350650353466970776830878766175158221514447152907289274769679264121897672743116967971611681837397561848096903105623792183000586332137541690962886829664155929984046910868447816598977932912295097751522173886922924866018229623215036351665868366158252915580290568385586166590191889824057252560503640076070241481232520393665459255678986963115638585196083380802144491064360417326089711850088482153725561637907134371610637337646387059206898923518192336130893523143030862017582011227756538712347382960985090920729305987121225150621244514251757527655310230016249835550334208103555380808656641821801937306363482375403589931359144823442337402757598829791409282079414627480564113228525408134052065423192919434242017790180721541426211603959963288993947412491440257294705225781459129756071956401337332374354773166727315096383482108718077806237608994014766661908475052325421754014031162774099585934089832926878008104422368338685046470367086523587353785807079883287425443242450428861387728093444390832114770040800787830494701086604606177191058364504134802479924068197641443879743894403156380265240669144720827814861667295791957956851714270749267262220295150007996119438248710039050595346075094434865670577714756286842564686828209024421398604645060438137934115394906883795149008598074779149644923258597248875934227749704490097659102316219415624421506851520990579817309782764438339396377288967012392171644819563241254236347162103511436651644879722854813979372672376563811757210140056970004953702062315392598384274247083301455591468276597851309936740665184731965518773541008401378990757899261695060980175355121425721196063178640558113601209265136541035422022068542976957826640843854561785957867130786669063196686533703466945298749207606558752939446270511560248052310027056581405644625855811604575832395812496014598302507505789647590953539843857653194167008463595914008112588539554413411728454291910163914401563248341188432071938394161339610775927762721464779428024015352436925214983888271250557887132413893676146681529747918084210004912360840038827750345983923024149454327126200667936721314374185175980661244874758231451217302705976468791217631291517793469371204291600478830480264810127076712282498349519280780941479611654298286188676139218695974791177257456795064850336128154692418397127106810228225162586503846975440412638123898007654393725615104671190178864578254628133682871431462261371824555317404669513349767932231109912670527238243635867286552258486497460601407805972119062544037437122430172399436798089556415368108721817817736355925292578911208431473248879100251231227120499640146657539625036588350466912652184472298535006721262711987702800810670782113881330424225766818395303230029042409693924080224106028011970664919871715794031579199485175421177266160877462399382837998579794925036915690995354692572613333220486280445258028746934381014835836487103573941638185443012201285723988109248965529810857993640368457617719181048324767101129397273764725116619697799258857564522112664348487934050466800329338439904119272645222953080355656722399646860163339253308791985462753253692564926223895332291046911894291533447114375507130196301000700979733341103477882407494597223856277833811914792642362497908342245987388784148966531769014491173962259394195116088669263380370358454271674007047575600441007236494189228719787757373558276399683195843930064651018345584349591846047905416322789839125369487945780754930880731870160487423571775089969441520422068012170602852480668592925794685968284109780395916951021253307661169878694393804089316672236764410664323305118375402815209124604299117268058745243650553901715766244946321665180958059750033178833371800633746188548489293175562088649387344897852597500786806421484844766971716316963576662363349546720691029990995828325145789741607285563188832036199630875421145662940818555750926625492787779666193419427423050181453156352807325652568208453769712147400170083521697292375019156973044159591938866026114293359553617934897139411597552812416226274031820725334161575901156132606140562320640856403229112028075084166592975889099333639404971924654783913331518441368178909458440161289680125716214040602779436701599907101596661689660226703896284347207521419235234117137851766860561968524376673639124011175581325606241822239032820003898775787654335065805175822657243891745555355093704083664790518766399195930455883225317196889641762585661032079090556139140633724710588422503176249579883224933732932117024360269110844219551819742763894932976528017803893783454903281916082411389045668355734988808159779437899624680559235433497103894623060959264752774391978666764917170514094522898549490320544078451507549374878054558651841961204535856725311775634228265983834801918872157268831841299562946162741734931405835241103500445402676129411180566797725910208593724790091692050240142093099263005660360238002737679538733918815377981528545067722687023895315666036242272667193790886180693408878253222291274349579218273456691846171538472317618522698413216145377909981844116519489377161029147035316194088059735167835916558333852470516712907170298574983660079294279864080008931258607808407866308382181592742385728661171436375314637216658125259882997759211297373162551982287333092474321099802787017974570058014866660960110290017326870488970656026460429252625843585234689251811790223948379769767844538759157932539093121675221629632785063831538092895394043403247103994525845623555950472007389627708636520207184589428634976925121557865420263152927421355818705175771029456317736266592593193239824996302105751687144443547378517806059623572220013273170491457288411622039547537570904992005800212606227014095624852531285814776076285360866722148868908152050645387541639751077285698078435787720605364050386707501892255474825714257886274465176870764379010657442791388875577069001926025969792663719709422754981373939973838325214886209671903347648123202091481944453118952356060107060029942447307626062510109629731638014927433984284713140101984927121521166947811526629874516497566630162921390261880998063215793951342858196942237307484601619747297184773518612686226533865761721067185474481464970088432314165537204988547974237767914877200488200325879852426185295691144607324928530422882918826244470996060396281441140085879695978049936356400701028239895434593387071938995443653584388948338119222047382475576849582512542771562555288914978202854234726788606756814107140758581168675388323297264813457812699350678756343258307804262722787604447819549186379033151282935071317077409586336085970202211971035326130821051697112907502026481964522663148012460071344399536444722756964693116425113541634880374690202460074736990054525663089903161276901659960148118022730387618552373182364479566168772272152762213313735324916430448632428544620746989240188536956622091604671349204624495664402572628762955748778266828905579233063253496137571641993159710051716323024249814499613346950956427432250283322569368406042099244205404257959649386059226708163195151749639327629933676019939606261966229404930413577429314133765408512355082674092583735430524478236204855724657620506272510035469727654471913221946789618725456966087910619839911833887566511036248998368662065955810852046200903870538674701961311652852693303439162480066226452779692918813653646124719820369856516504205957786115128926833619488578682977391928001459484074220213541501443139891342199441056863929458164005138635881434151753168912738725593001678871000495248727896708473341691006395962913804183354754140818513441931714302245943238290620207117766901242637400781799243614565014884174461900542332214069510626227824522326560701310625751543032368363239899926115761348287177635396222869992281338389733785843891280853180692314681496964701074569084476165765334968940074612126071987532892560275285333476018093977836882061753636557451658746062015518133614418797676708005033568686975808749757218128683368709509473806780110756064999962615560003230589677094109433485099924975188795540107849924429818364843868888236171250012640273577989017696997342136895444509470697626209721054060091224950525558497404712067226127829005282237523627557666158797970547510489406143856273857806300326355796610516348596202167393983445635869012338049467386943162989553061274722463090460514424019400397026708052411276671074886864708055230230107526566953190951378247050164167971499354346921181121846788440333905088354166976484760719656605008556337228119203544210227633465630365602096262060704885146294329060617505683692820179186902316304992019321784050928903304924123105393064357500396090625814436022527610960382329277969123544984909155292014673006748625991256556801445421005293543679884443646627577668657852575871938704355542403186970236629818621526128993834001977906615185113109275005056680202568528911809233859411628047659208463247748720040694805988039579408029723974451130288813480569603324506638465909869840187834904421644937223700149867586336158898392588576160906039253769592110083175668565049119297594910308821769526453751560659646015486574822012497687913979326140815094849454453152460053330739915351891642280511757740510330059001102636493700259139429988961177735762875294706933722946889692250673097205881731712332547438750039537159067680031638330885510284509139914353236691279919030524524598770527185726154514795965841272722104462718406768116054643279152163273277077650579543973629354203965918666720418582883058930311472111761180428863323832290054933580799452278093268461833849357505981243568459958839437190274958956763102304440800753109574922855732954787642604801694601106906458425153392144986026047170574718014401283494889710183308737635287590406626936102065450863926304389988406599703369870841501151258141033506849329817682683363044842221171888253803752727135023011870081287046827414479041251755408872950359366302682272999027705483378333229540425714645485380197063452936512352187006501618286044237082100027511211196292279094385176635294228195322342922384347011851594716877727039330703118089839830453626789041839631375869443872482813832772929159667695751469028872003576277887452518353189142173995462577348043112595372948788491264341848475911987939132042422020581910094849221436321947800967635234970811365923349681141630286613164567830123750048138082766214016557758414871876634097720004767438777749164359351554709937335296673009443725092367192896849687758975007324944209618294754749622230061286357923697093908265244246219400250447798659997655982913815296617069405066448881213201634737158825386349899569868801614744199492980025096292098650764096656675510832668782946054021077906561152211306366003043932829942878818599515906046019824124156069907243044787767168150805136437913494001888852732026241235182720862444031674709005898068237835635623642430573624142475250022868673442024142649428793317026266425695269399250673785683558749343803522967457602207384572773722666156249183847429897113171843091077929608882059268810110115471203259638814607635953702213884171426765444687548286099477383945521491562733895361341915511909019049676434768101562350182519240944389068719057066101356779422497485751437210141272874414852458990722980964637965580941926963231840611151488569994394715499902075638682239880941941769231652759077609349371769316788238865509436228950530974517600379051241120153721527089933260976699568018963314975437129388047091062460345795278159906882991432803539988668278895639632366823307424865280861443429901379598715805549104519121785353644276955465272747716761755201139263052694010841766815359431274884186702779401938000224984068159128474819269161802477617330402580833016981168414766129916915540702525910958725930191975054842117155519930148539572468129960680016267507802559270963026565187034453351974582058996088047332369174796957463828318789356977235886826274374278661062491765217952160153422137352333848894812212152702501637332038347738300032867887438984020736993322888225436622058791171668410813256277008321487405047828151605770897960828536610600659768637536844909985744711847374768361724251487814532002975102604051695773182798523801613007914088927164193722273120644585818439132715796834361616398965414238462052354894884099183055574610072253737472602509347161801357437818048722019639979477162171266779583888590100303934325479835371600910191230917232529544196953921061705123380985047845704664484127198401734589176949694972248618146648878761090171174034424957542626022832867738377184779467878818214366234398038755228333791417041373234185206698686263446834425081952164573451090455116665761235822751498177802554015676296768094926526012411571672409201809115130483297017060319023031685243863114940684321488684620289277026632103330810698443480609637703989698494650374521444497509598411323059355173881603167514282798271864137610010193325241427221391481340101509344967391591862135237752655085406853680030699167385337149393214796007895839891061109300608025435060850649066008218017820545690814990045684065632772758343907062404705390947316967602601510428919156683195110145512289048149632734988490754778966960992104612169499381367203416783762796138614080036621515090952269507461419286908054164531245714685121965321061093185057725718209249627248238475615754382741394847178640320385541356783479579403543207760252196485711223673906455288029955368198276717320372905962098009709397565655391059638279223466557278539604569705757819527888606403624373804341214171837130947955171114292989143110172391425615656365220265945938865816515330412570209326130846342545916345963250560342479780370302630651955527693027316384691506866210397778043743130962418549723997610095507094099863529161541306333586420213475519851515719273487452057016729786708315587653772159272275514882317270827416923775660848517414031266659943332103051905257673107193214051720698244729518651768962121403902616979050825211980441238021040579314518397471196522459378445047543120780585246209387881799744213827372198996358062148100336701377127041760207710195873114484898066268110849070705723193160232065718143121600738119897012085293106714838818618904730261559095919599853216311232121129978181286762670587274825402749211255780195154852137515387814323323402885489378649101598827914169314546535737124747567868811067671853826459607805791527584986108325637907398667334064345280648867600643633328236309304252245378068999788206069227915475783668585547884296977794721597748282359662400368574658398084915085304608029485754421247748071228626637322271552341822898462754216215859231842175404863240234947793373722819835335148340049115816401131214851779074759264707947459789194942105569849885977342288555463574311893027724749713603282583151780916024756862479936649034962452700982475638348144367153664980445590154615761716497546993579861792899007288892752069733217602993483664936483912230647197707717881160825851649197393105591158064358744515391289010616250393243672263934424234429981216188519313456939478329612185056122044470126768974210470881758459971381574908514883253527335991439200767928385056301740631000200946766257146065501669297781853621460223631134716552947620563995415244646285597097377944766884677219893805916032538933032460424443703672933544461283826322828990813447268667061406273621062760508998208950319437111786126390970606294348091207791999967933245828561522495778326824117909115118353626842496344259505456785225533967301613565219563301589587088880374821127293172633908563892929520394273836324398381724407324429523192885792585607658571835925692749056960581596463311419327275420379448620523024271500103598039400465008507079667764854365157070280147765518785267916217917010728606295784765790106839688247170134596958909755841161664016372771928641915596729651712389593881745117360662741662574531740838570514818101564656187206777664593605404002419816610542443273712152151981624212149381887900233168587991624743992895530807734252449709145488778121348817556270403764270661438256047571110910513271971267882063910743718904149284365859434505315760332630328975566750460156564984690872337383407103495876726063269820091869532211036582824198984055679410867122081637050071443164690401784287219274938013050522430167993361797642423150884993438150282730386475432182585363701649855686258349277719684560694581877162082540587111112820261409140652736934736261638996152832018990559200514120779343749664992690971465719015320195280961083794788743075389686554282745262022751868171275092836365333890621318757358558217647561402812865264973374981744124853532733780336400886905684704209953872296156995866697729962488902396155761213851191000409476655608528033918458807261921119455349119935228713129902653485787352021800785290042311937547477388346547621479556592810700051449374828041732936173105234355311747949107686778377000588765105336181352346432798777364569349763207701580547090961290095045239102441586910542990365219604881855218163015195278303611401695339516184166329455100974441113532553372211614193050983769864449129058569115314214536441739399600580363443934900857161236743874867976331411749273312444781255471425130410487171416170811238411580982399742016618252919044679230062847862578957101092043268642897373855638389723022548468080223778182415934955109986425415200674132936076328378455482587070118152894449305321293407540066335147289476722110667419441867029991021725614437872284077969477160162735157587302220803520148931072077253062017327070022387222506347787936657375817777017095537150387128862043108407606918297542022010687050899526936074949130061219576957253770273320711352130716243031261953062021091507987451828318334041825557381453290880919980447488987099476463167396358133297981159855527577283110976414216072573000654357581876896080287583507282393381896557434193042542741045890705452130455394716261638802862564562249259093461935144223686684836861571797065208875244729037641399451368698603773059423648123281870147536858786259229757218652324381409003106836220711016673213389594478156627331519621860440356179196376474228808067677013772658466351295651245788847623796434267405689350675482436046586629386875446532395058106388731679294261131977373773960457931497873321897205594796347547997733439024168100010243058007644489511513847362995051726054618911858122116717334563391339824946175149236264253666818766552139043595799279136598443528865051459554825366258436906372963553310594850882289286962283917388064537686579975545558417854301125734628819973316194837796705460089589025750203241756994438633426600086843086786391268585954504709524411650452741233850498418759960390472150419264411372478595689507943384376717058206635432734953038822054312784196152949681513835799218050561183153944544511590439491410678020598545169839500365237214176693698868719132762184603342495267061077405234031976638569940876226624675489946820643535563154261135453819531917399631860648148143087299375098626494898928531968337274163099085620975195218413361039099969057279976103355388698745437257932679167824632059611334770441996143861735232761822246516750444624803674598859769025071674224803561461093918868862489552435516148982871605385776683846496281116309142562815142335383528878912319879403708881621924428220071960732550234860445008575555423766506380865809194681074475568769317973941112262008356141354631457438578394350157183164944722023963980927245901020773084111845735084442715771492478834052149155690141130699060257968027115117960542600940462473650475780632229568496879858142495191980290210542198478883807167402490448343669141060888603002032928247632957590044197014770355241670103610869343228519862011109203429522086475096484792139610276313727600719230528821747622543645870586789902032841274867479062931062516706122443786191353213399079831545705225568374695754810919817871631009944833208023775286876808292233972934129014935552793783493318614305331528688989824318699051004380551685580443360532382391825432330876897784909519251103285037038731798900675853972384928171032182387169686330421007186382854626771595043369804540692365269506659793630519716012749004387224785506109426643229164147950442232261510859999508713902304954594083556567607335552961995858319420198471641028979443163130319119609313904130468166056729253393072578092314578723071477273407772659411783887762123136607397918330864471215374371424964408615408858331921076114123545865260215717706026728437389542377791605219001238368250071299330701836457870975618532845706042613444395696067508158280326840809527725744956690354197481886479426160846423918586203496953474157709167122017202111621727526934252040810569572856350764661214902161890893627617868051208574950440905650739070940568304997168821228666011334607397972111855482952045806926351111948428597219723780170269875312927678291590754252487509511384277966408920425187829577659687334364749112480344566133794820758345204969500982915219336247646128653370448941630290774848272563231726569149355682698039927129038340449778867943937399947990102567327662666421501442845719919816206619333671806285454719238585652684259140231878354674940890989644209276228791739203939676206900594127652077917744582414009580248886228813838407260777134938313849108853128377882286993191841761515692669993500233547457304169903591819719414379386067862340642846791093054646215152479107407328478323281336465866569456851634065321785900249970417539386853283193633147428934351751405897010164060449297752385780291555366191523192014931847391593031893471529999550270841761464578158763880671840759725526453868907363184983262822649368499376571871372003518099181817337658611054586856352934699844219812340833101261980752958379482959215441727483189379575182103012562402856617018596960360984194869144308083170228203991469341950400152649478236573103541534744963279969354471055608806327211189106690744469284386831593305412886480898206692718931317167148566225887412655262478801188123945774125756359014578957426021756969221265046041704541292761688766595805206736807735334695622080526204842030747741244742094584916436949985073597738256830399011488120485744763580009416937749384031706707466758755303433932316236289561006783992316137313458063074050716115133593797215971779845288648342909542050288388486786285479952032958134590639673717348163855755221664194105732606439360861684993438802883093401628278586920507778224273955127122616750733241857773622821383670516726225657996627682037571771262403137752799295374514278195896358570458582556752970864179543906753720808064225103217982859005907584945436165017305619499131872886040661281849074826089131119714928732743072599345829365147260034632282597822530911100969305040071951425735205758402463551154509529604925234750932301214181123225014161819087235853044841636193033715569898423632700115213041865931604529074648149811677731293966557179205148607974744857495677380511041969582800092432486809627337368724423498407190063791494994367329341522246614259505496219269099539674568781581338581722700916425969612480344675882347977637315854343006094713366451987265599798306206192504761342022609001568772378074281213415140407866334735862272823935347888392762810868614404314529068088736939235023071730992212268186676585913922653306862044601848438736577644718287764729094426471129729800862934244997827615624518328293100897827309552075052905194189906749874877799907533957895410736890235131854262643045490001731166367546204247874706874469333547862391378497258674312940826833788176340263238390464576431887686499894508402638061200021843276678512916196346405114262418266042317876260629674510457659764249735706075243853223378051108260801641858299515806452888432300470172970922884625293125877346792285809603244205584414998320838590413108530658526983399470066292350298967344577786203975044482516885479573699293559341595486630803921307709593338181893625610950858227329439803352250508544390419304146703254058552041493738733328779647080391731508495362256706279139406849151569294434645508327831095047952982609968634703533872834671194149079586130742385506637066480285080297246006259286350609553856381128408444308841635507140136954858505898592174806839817460441309587354906539661949997828252260436310754445612519529524628526817338395201647509404920166382080471908991208971468733984665710840059515800549472013842456437752633101640034247046250478734064542218441319032741939924266771019519938883352395571059791243670659919339883901377173509605417977612698007254940776863151416690271010511989785159671682719516629805533044049523660847476303276909982944238237192990870182192221785928370641037885958853054870239130076843388359217133333037888216404812490699093641601636386153937066797101200367403163590356076250228259358926309312667649857842106160595154717257551025997254687775180800580459054749886602576653473649625571871326106914281064477275731811179438838834297163183579867041557915391865649341830867788926319904344874846388092302174727809224613532508153394081396266519962724085191866472486059463042016868400601362837428225107331850467731102310818161572015216050880050593299343487935509041426793980284188784081283500690170043810492140885992793790483498443930876277574602993423334803033013853635686906293820758041051962470032988544533022694471570407098347644896282233359316186970464520206769171203496093413005676151037390810966476678207810370330885951802093083852433572829817115732714528710994553533173000300061361394797770540487396932113265606195586564525889283015726688150638373834321022855246652826060203748497633528213639140988549001790430863246111537293607831214353839370197714627090016954750624306566228628949858863690400093256371992452202736835468478798835421837087118965746324291628285592533924325095427880300373351294479752120056824677615200155947333070125608154110263807024126447630423868744601418363391519735398513527303059173731767781799399354543361335633424598008862710249873276174826711717707892852378545102115743755096644377414930072779822938242290152264973199205814073235049833921930503708566698871622221668378055370772635562637792689321250587861325624095135644217790482829504318658479033384761021791658932709890129363637655929845265735588541371028524424204288012741049043808107300885042140926885014805400800239134862841402260489726452013651029837965695514057168802021005950563700853476260562748050234242760289302715296743197041381188789460165151043071808291969536306891720546017790232273059983346236251096500363497209794364974754895473698794881999490503807894733943247208445268927504355386015126641866134272976332004759832576611469453162484196574545368385632561513832284834340983259358957663949238386909489847330575056106433637166037952913461378515560459326591996393376909047763272801751836897994593721700593298303216301388990365815739310964260185277555025591483778478348472037713674008069071623411532406288704920067544355860095636492000167545979778550028346901424291214932126310974187590089776409399889451181695264078725318918827768135720844305708787297563848226498677695320281102850287334133982117689103134912598007856773195843014552267506026920776361488499058346757036952103578247864231506924348649013997037580755013230165701122406259980527224816906287078210755150389906318973204238337932865428407479164174792196750666770530180653562919514802692949025502626730993091414754705597349505666237255095895871280185369025479181188716237858901118211205629643521500918505666456440905942508017885982313163517393093691277650497618528499077256150352845251259663432960303526032063673847069334114202379287823568033274549648815783307700677058778313237602637752686968530435575903216101659522484124000355446043594094133310587195337669528041504423953332716199502083722794428168442987809772653829657405346322194534514800624845518671267757434949343173369093207623805859465679732767721995269884207118489014602054431796412919540276932293846802181662746821650265228438130869201471887052507860850683978509146643108577040435735058611102425176847089756072934338012950852185241806400890961062303547152200785323037873592336058436146007759098367254636233818103941963802788511053449708578149826495000896417175906857900407601260398012937807826624816309770580403172876998145156587562526308201731283239162987832024308122377740809173173772445730244261086523920941190694438678231436807537593375882088744379693218045350527527901080696042765263340456527238964485777611878937225865665688850069335940561165412928034591012031876104033824763353454175486990024450245446375540644413485458190111597739780112642032382650615983026615825284894786006124593984873963053415453123563934932270261592358234504851082430471005057558765996851827977787717441711911870370774757890211215048318346285714029047107560912860895446340737875722204959662485237622902795088971163277985803571630442393207895741245675444566288326588492902912214104887604559988757046468558149398685392422639489914874473669347890390135436900717184514076072782165418020831220230804949288490820500794307281104508865329434055888351663210928806573173513653383832982430895640824396453373786060309916444816088998104417170193182959092176692824710051737844042809045419874821179994601822376181914523556114777697336615584426655218210183478895545560066920872644434502898865401269101626757401602924128301597208337928911084866437276024893072580639315237804372842383661724742762580553484539295252097423091278100344695174590706144344440158328556559566609582664740017214551348279843530843998946568515372992485972334553882150114198991568259223382018673384330436723878391594836568666711457283725634513119673772557979464917041317293497717302617733363440863596280911837618292189830630174159558107528268318861851918589417066592116704944802250460078728433820081650274545433078080016275382710150292917363361886048031599741678980851395438288058168373596400275401960771780008687807602829422230445345041697276570332202893506742462699367047439990709316937098972918078848973831790007198341197287514652085582951662066896639702962273035901655085587463930925079207786507853850240285151542123801892817765002607531566307517919846306412558070792951684765671872360644391152047712029105569209002608641704363558421117424083177655216228027860948086274700858155259004862182622008104271608244048617380162073156191351430261216701634633913383131676817831847149122516151790423293560237777682303298407682379807900903594512166320018056385730284396399806503859372002203061483650768887013554175200710829370739520611259403207619399938937243841005854115388473465392219265320981987418620659831980818499376449711079225446629669842211793999615991068593396656813692707493972709074813261971773559640211689284672724250306080209275610321216462021171838265328219825994417651252942279054932735361189224418589984806526803008255569906486380980261065087274899840743573116450599873344126341105046730674676753722141178414258403043183928995346612005603182414003084206286052139141462071106137855979868369994667524804313130858683630286606943074429905660524302025618200128184199161700629625386789700299406122536811653466803016456333969486556566849742850010222533322510831087350037627947241549327186511479683648132452148414941535935981286719186167620384487599956961363432403858149700683354533037351448401578894578347082460998115222372205240784766462406747184855847025817704049082588695438821552032025874385175815208129182197544370721448178619916676573227475493986505247334347591366401071337196132209729981444102006883144578292012814906328958271326059953437634827993135296456891718850441046806210581941630556634692468520440348457907903990027841407526943628047025190885520646834169289914630583971136230480720733305078016951956652959144217938334776115764970735053286276227911865277328606815593830937133424089143807127131146180817686109439381305173304895169067403320408151823203854330407443057095701810857913697938440278261523893662287972713972273066144871161725121517843202134117163767554933876507965324152651195345408263785322250109751502174721822242682099446967972411177999106304045464134557106446793066626057614858857724020629206915142474642730327582349444794540349760399185504272909420432160186358341616561765293685010528179051399363620470633962247028879544036639720677145601042344246956604764673038133955244673484008402070639186687584414979470997543519231985264497268358745815179272704747013950744464366710713461028094225513391040875901292687140717546487491554922457237249884889805870155475369015281351503515009743891396860130396266718342787620204037084569026001857391370874903206306948375783277224239222696713688031495490586329967070103051371075323090250192288256178028436610246619909547744835058869666013419584619712466115325544497570267200335523489355697914301832408408292166387533843813364072227579361936445661616699784160628689008099228785673234514329073331283036856025174146650122714609346779071366419236121736188691306121212509937479274117351134192736426303855076509710164408937617334619963115995112791556409677895435233773483298796770170821543089755243886963521545725678181055900895033110564818050492977028333800574166839329905070218322398896732038265845189767925838867662697077959192585609051870162833312819700363144019184712631414683849486356733469475738321786406207692759257467283758423983941254192059600012193220330090311913955946231517171514450650003232333130754161251915827254840707082186362652753409195059082501142718581183534231849669637400395514765573290864290892565284861523287809712922097035188184187636362163817021101479225532407192620715431800627713434886620035594697200162793638707958490247197782084955094524056969854779812893374629442520171046612753794212593732178969623321421840835342468617644771591003520273945131197641583193525132756599804716907798109190377920411903746016571042555012171749621456507567311451090315460499423635306260951209204759621270411725777203897192474510239466428818404207834647448865621448998764515457554130533966084633488734832790359687281533660036565844005724143696776260079475138476246086161839495477202355223904729683084922972983582601387619074712141585733612146243734884260353712223288465976200439191102453137315359966913167224708409936882978039609606644589984648590111674284225007214021434306152186353530593015612100725922485822723772806649021839481093274473995886609322758624521249767786816369710192972364771068497066235688824424608764034729282698464901902962867692397244492017866619673217289988842329968888824587425918141315507663601593737091798760860194252717987476922738027514278164648753742313787739198203701601832746185239886839345481261305437260341995923978370126299116879713835993085439211695079089844156490634575477118544226804741485906373277082605014778025364297269247827622712405880032101315796274644807353574921121873838566385197374569325013648668707111540577738124019865242692126006934130765396278092744160934547061276545109617498513930790312525920546941776563283725662224318392469926571219085599907741160106362767430406538464485041299154625315207317712715506269796268203346032192228372118009310418849920784180829710147371428453428068645535458173843203055817719681535118068354597236176964279382876767501792050911780128672209570335681781508627589993392848084109781451502977877924416009326576092979858347175547616537263245953658801406205474511703942977819948845634238441441872886811294999377672143762459732144683901535708977433084236868137537106376166838596574089007199281022006776805010923570554883188010002419002497821699630219622143677534989521026604149181040881641293708336185952792801618830944295833767334777966827833732333354769516147813223273143456522681624437985467717916357136954787724309978594004597524839275999760083085779384045494240331652856110599304088672662742054381489533134881983571784042926865646049786711410804316246752783130024145146096279526278484327883514770935366644043839118346312669911848866609594473762381427768777098718930171275231452812678282208058268682427861190736685483284526254569796245463466840399775002299332916509766453932183710440947703631456473482061096224732132749467505801517597302314637099396769204114538591561823153130818905343319464195211402550701432232974475765160279831868762372192308808035140848107397758009799882512329761875855665120382261827225788205764024661558302492019872651284298912920208144183934220540403817796736566851063444006113749917835254880703270345760377867572183871705926783751131934722541002214125284030099159592515268169481826943047310431762254879044034750204619761145898612733575428480596632512586686248644987304800469140987130794222792754305221693113673344173001532504536101181334155344629757389912742818366087193201033468060604117234392946756296564472383094435307173443655144611687453354008779419914757058480937583364178633293166486261493091680878250145793152757500273232969586319432746169053407892998144470627367913183239347650185038883551258560232036965432283787213701806837506290956842165619531763034217572680201695545298561879760273202205926716060839340826167528661994946638489066621209069510881721743404359951078347658969786162760898420746597141680961293204898448922096484373055477993069616701790799691876569741515756829366291458374530781226195060801130289129196805008866332361517699731992889979540114504187112996621339398230837427432817807706672622159202749450947739428690502651334930896354562341520874613053182503239733769228996712338311548729421251214636164988338122428045303652611801303617996331848996662167948210537629084311321352863604893236826852865829636219677752085133653552295622361212396371096580569061994914445855311744705205901990614205870330489703206294424439236079036042854299355648288001533094003481531805483824387454548675182445627162147600269875863204859823541396208797614683229033979938389814462115122672797418125169061437935634052362043754173034598552561363207960369967037182519439334108465139548455151042944724252581420842679217000860766360978523865089906609937920821404802605249928428664415537579737094146415662648257216099989846488838143079640646488109034516417912501018227173465308711841683583927399642998686500114756821045296194915986666497081595273977822511842716081793606555961430777379184044253345702420737466039505628827920332666628183250433926255711933288936915844995905283234719895106696695947465136925049566462184971412218914155377773915265319499728324849078625458538348435212186529733041321523678251842568089751509092484797126869302455528173595365596752803217056561037399568978893602262580391611001386200760185285009995083940139575505093003778768440281461416077970148333332531935852448840451817162342183401153191103140768431527238788247619410654191355681569675765119961620135389465751404218638385545145886280352716104632859127101132973799108829360121240510188877268841463209009997273963097337833237362732853543273590791792311130781904880880561754122552554277773079234987164828967548046770670507071600866681356352903430743869959145296207254109415559704946154125574522371508491662111774516487177255484716215094186659151273244628864675018561878955376238479464575504911071721238843025013845488124695578312764700422606586752240114183957587374624537834305704009373845772552868377618212584110991675853877574409816720124603519547331269114447126538700839741972331899613158920595999191874677585879032375469637498613459670611566022986029016472199108948016855550332366709316961855957976906065262833661430224367290274940280389433149963514890895294454493703450805801539905470201643035315982069653568398915030707411565324119721736778899910716098793394745698497581362620812576905486134764242843881805299135228085352500141572837748869896375652316504172953501577631440061233614617927656107202282381447425675221606755005643403038790518401640735355720292073147188461256007102554633901487686529641255264437017924549377542813159870234573809028037872744347788265949579879412482003142359449167794993015277537212066490746610007209501080556223674764264888285547627520714147594771789702609631953613713270887829716471114473988681770610187033898876501262043648236999984741203402826815898965363164370661618810712738885741779535374627352428965955418286733362357020037686673681649439895379186520531797500285079228102988677185892211270726608456425761554208809874211575800086101677649769125397298931616226889347399509258981602280893921213306143266577037674793144710830415789863424632788209209573077312384958254267393776741936396930279160204968026582770415484560880072597110063578747802478232412040056358621209884885958656372778653351862095807266262809427575261130477842047319328734422536778871133657696409370247826203967359666538076049048477331559638946312452040229371755046736867605466745422500811757077759092750427703391210794300993921824300224579195450847429239012463570963722721230112755635287698806668764089011528447899548998778983519773596939514031970616852066129506180091167205139448714693198684085053424496905321673453748633312956812618024109783843462863646294681044059584368669883905223328437726946747598716507625728659842206274967854406114067655487335624516573916138052074127873896329767199096714563978990062498623158163886993763607999599694664056118753274228439223806442984568729867909376188048497045073025975378456556318200065259070342786273875947631901531102862820297682571329002198239559529215296156590738338460978580706533357070188489831076643972446691395155983731611439948858841670752272328600355905099592752955665738168675785589937818934053829921343349359232822166467341505567900581477933349009371444459285265212196640744562415869669894812587447702567072001509592714089655493594128402147402634308659822685424871594091603432592139495763740822992947922157585333876086287535115300227884645903947900458248724086626353990055637545164516319072468846230666159946084603826872364266537819611285623685521008883021222443019851881696648321718265579124090897850877459844665601464614903364239315358373335112478153710411767406576881582989239937367873556639445756163163365928074377322373705931198110635037805920795801807799475361210265663258701832796827914385006107845598900237274255401491502288033126846340971466581299730445779417775678435770565166458676579817396672496477422763725427253942465724883753221570630137837924690525919438714788709400659318261141702164001412759914227939728764466739357320034514995483896791593279756016828083841135561223154879610958750116251564614726264330305156647552294918296567994173708229179929122911473887272467017502589134322027766989441069468675367143794658864828469462562792143567430859851952055099985485895845549386881493876560385325949434411692855782963842080754817724861865393919235137322944907545558044920591202844837814318807659787135093255515076204064389443588766100086767150056985364342321356892045693189131762847082746694115944176240891035032982993244103579660203565779235505572228596904472849731521133237337762616009158856021424412767941000536339732805232328468077253346299852403171713094949743027655415724100288427270753008261183429136423972228347402971770896436460080156417601821159647068795308697825847336645072206534703800609822808509806959320911365983049584620447074325334557580573513274010283171436832508888260523453063707250803315724403194711494404229398341256779352763226825565830014733394385425001419743332053202933194870885378975493690264247039603315817256632044269526948141664521543470790168160311407256477724517081114552456888603465116193237039245737083995961058851940287046029118863765914138223637467498197676531297301913632958730009731646227062801528533185224787421587411632547231794216683856652296263539928349805970206014586096267906352576537798811789576661328868651062643775261286588442458849530201718370016944043771510859630057688687739455153898793135411088478479934517042611496890318518746381753658330773896963066010454341500476169035950090369186650197967762168153048517847407192713839900466794505597345296768917417753606482281977730603846775004143159405201461476297346610435023482678038169839857885301536899549586624870315428154196571246316671782323382680542943739564730569345747916952054518036016206790183061569279072148088732374946979478346098651451331743835424139232869607242205539789553236460070288904611150659465246543632408738129515751480581343343697132711337960804579893919313244387413084338631019029362136666830284387258317157041193098255313668177674706930098508025073007476155534334053682688056891310262022126121126701391214101591029610110314736324118541363204262866843469761031443829640384534102343758091677319017072835298947751310108036063344655576210333197216883847598443305752430084344147053941158378874845908259903131261271349157731308675495292530646923394802852265344665273374942444227050296308393267437918965278726637427384013092927526318469896620597269115572625965016826498345372250198977551949512496427864321819642198338963978049165619802954425406524754143870123819285633116330238503304071626304550174771291991074139278080057007337567494071698279363997246538806255847853235529939711326028499560329088369747496186676290303651389190199548046800688993774593342886666911136916865845876439056979745974118486773430775655757412466506630875221880273417535988064380546098893883919816029780618154010476673805153097658889440897762309401949966923489710967712451752118572989152766216777194760198117473658488292873645940407149758753951109760556304201143436563143231171395776814939428580919804178860896998866399497441560456658099568877697737910218953925780703412191935573863677233192987168483814290042952554769858129534049733337454311914652794087866652621537008042014481137949844055617034214137877295856069367526704288273948720468942343117056924026872215407628727061187175418600742312391267490307032477842117887551903531758155580589083960598930245453480893946810096504765758017234124757202920911190776626094324787177834108537214694112707233273461165521970404207655554336889428419887108694856420965290574229033073786278927284829483917734715002689958636807704297160625549387485124292673117866047382550367274293700450486884850976099852365430191333516126810238694328148895245905824313486995680737309601818299401984550524165129687766557302395854727699061589728941324741111354216184070544998940019571037579265314080811830614738836081376697390501894931588002047738730470974466389870766029617902905098859033502061156857106612504584105742813545458262778823008325279754424209136570408702911205562200607406064436566845115805617271203305611993525276101600245609849297693060215326652395573841435064145705628838911215019267926707716589493786209062071597205039151383914500035482020840492532938272092912519264666438745335807838166778170961331926798081283820075076125987781722841571583092247589839126822519779878457531944535051205165033106729873423014691350983605198983715193824900658266798851671027574652364537312457963418629661461584719691282680316829259809470666514508758843758895676457247932252363467101267593759194734515487480208206096673459563019001646043103382783227633343823488125702923408101126608967518931249604704237167765212928979903778424253243066058938180274782664199263251530161930228066581822296866712592730153479463392522110557889010241117999890579486583623608610066104694513472630173094506788015759326076130010955447082371292163247424059709831174063213815274275328623451115504600943190743309335481071017784938211530650092546554309454066044904656310301758457925766910210808359965536665431914084363384524211149292657684781061298010671309556396725438690566994546338770039752393061599618404591113544276795764175412128157791443083569566203141807095415589857760761070799275818165243432496222787348565000663211982054712762926951306203736835605269326426747882702459753463716386903886100906159470854582657428241174374045863946361335945597745419422549742609918435054795361945769804626812741906788527412380249713263518621215291140239261197902780244766047114125999656699653873000244848179781053984496294588100526742630548447415446883789221268855951152340011245789554552977317955525588397976699587915666601783823692154050201136993039085971989195221522223828586984965743076061773168937582150350064505347596486984678213396608893281247864973082208175192582768969576889370054098758050347894736394368021075354662633209824247200357141113523508423791921062694579625261335954478307630436991840943021031090501106923977760807892596517946806528739858858185016655907641380824539748712398926560337923209615271479130557844737795445321244627545118074136323547082825561049034084423090245333642893658664265469572445503843238404775508951723062392980842147813358571492982502251400068761452208487541405358254575661910492219175484864102804504882175853635110477083400023354094874551422567059226298558345447098362203207377088066462622587174027511174633794548669360147918258742396438421183317411098171661443956498311551621001562153428686473362956945769675555240651164585103492349221582553587362668115530551660813805951636310976975307442676302299991518811617267472753331299611837664889370541641718955336795830097033886877130962481103333544113761147251585147789139007675922902170986611932201617983478244427854697588781461536220506160455717528293642131073171753432981999888365031054732809705491920060129415164208622402179107893256652819031484269040296280715149498827696195659585368449169629469731916764376476807539210378765509722691364616708872587557626466558485666324964594018208217062436690125650035723493438397524553778935885223566965037204669047057096093789404567946452461010456634342832156973550171892144408708664217038419684897602325264143531811755332968950365078397114487717179492071209652720829758356304984036140356499449231282943543561097644070623890877660671117340194666580364607362440767076339577954474838663937844628040957353717520588206949658830400371353461506005137382180143326126034718709044566731243203691640010911130701186706367558695764305608656693855547119365508723443847319828321970479155242704677361877007218448447038967646387880916504208922924582224008832880767233494229864104927742890066078326919780054982281932403038371864674765547471115289352033067859627094156642286474213805536540301478173479914567700271447515689782500966293617572409416403617659970651899743126503285396435980701196062098991527595529476671345679449054917054416342935722557782731213638049134693095610480424777115805980966179430682981030082694232406213230749531834946648587568308614999157346465482525914971337364375298573196858834641944675548897521779663695724257628254525383102424327529446921289294391400957151150598103302330995050903967205196602532903907418239187311621626838313386298888686272035381456920086525622459063288716356817434915514009185013338002390702949868243796856093408460261222653603514204100801988778663396698365006509016098788747327877601294411441063922340903922815342479899565440928714066489509875331724997592683637196787114941168143327046822381239446258877234873758643338085441131854036147503360262686448637657739830582937410432788446776732110109043679753857798160435297690796730019931773448796724204952722640111308944355923067008884719041221347886305964379975323716807596892152832830367788955966694066597727125110605686523041532115699718046393774561807920545093304852658694072118236347187034996011283292618150107368655862926562341483096933609582185078640660794668751681472703698166687266491757979851790875201937133179868558847694851624818207230098587917003586919267566126354755261206078537172213259233286161059262910840654731697301869302154790711872360154853985489368737427552864820350793675914125434163819697964974177935055157217055098702741496218008691640551417953811409104678493907921840134014399410579402256829093733897632237190892219539773015390903745035541776410808144966690295772678364007705048983217083165182476227761857511461169282926620547701116362047816527656139453768293095026479998480682936747567176558439000391566631472063718798922731601101042845564895211111607205751008485135786514685497418910522584558702968308533284452201052155114919661327130971520020293986089516103503522539803650679015833497979132125895447476749424002222197174831513594589246831688457553428837932751355737057535881995125851706280154522600680085901257748542936825413105956043927618068567712296975329797725169688845277093938300234000040847683231043317406652326821683883814438986239085548678817272191777654831235712574400572871890910426394807039058353951730032997181461454510081350704656583607616753613507790312808295271047208207747036262016179802843500357843176614137462385398850344571835341645849219208506297281073610697812391364523447716565419971294336707591953385187630553663463286575606715540960101969296317033585446583243663651402327046060470236540734869513429169445363660663024819982647661449439766931058539544431541031009473109316644462457952717646942947624187038958702836514805282677999256182686319016792702899167564352564079652433173509738999565968263500633481156142627583177472087914032603587813916533588871962633518810755277931055382421775405821550984925772828050268421955278459258675584272264431357981523373306005809800685611052519317843760831781940735402865562110198574105296085323266760795625662863449556087560365048218064636689539648641768719276821460687158347856302483473230611889883265807289534119606165220536634138892409682133281763713225041078313061085202486415758511610176907850217696232683388137711181321644879246162517301859790444113249867761620712523340865600876160465463082513695854701473170543964791317134645767128809346780081132676585301871711811405425647878018465029775443503442964335365715512629062611016523452131613076788804153283655120935635370456377732527143530936551266174205289022275646280472501060189937599380442036409256524066274919906111800266683878067960941976368715646179458565914598910526889347128318516017696821165439770581477410406904205873834070260467103258312169416017808599317176022501475636409159377690010805061172812956049985185770403969005983373282354434654102656927858635499538064164653221007397330343912380716422901987563518180864284701166922624005922121642349196489324906434120740892732906634890019687117195541296293518564297319966103089484789067426223879101216593155039836261244887301272512670292677359340889430662976230932056970098010318747237261094599805896896164721438279842336246088796033266923746528047042588742332495569099870410893494309104983253503067521017202314286847208175345829954903354969119253287711357292602909745383118370700193340427463905290848361565462020951000306604194287119600474659283592843435312235186557355641615929061512750686197108140016668707917223230696091468287760086022206819360285417610640945253252028345012191818254542829066959213623731042294562394875399755784340984877396295963071065576193893242271132901568818273152459733138781972046917326757422760521751390356103209276570696113105917518317678954303368780066853828368601538879615573348556201836673594413078392875666368815479853553820733376627766321941712345458228297184069137487224058361434776744670178684897711268193336799815943809148271180293893418085881988985960168195982528753434797145039476122359648460609908169529457796436976223681051841494726218327813256453639588941388872491592775131370801665171228850543374934683797793555233205336553257200778867734322243048489635216192508638494930569845968504703212628753583748011988946659454798118767171112705630534399134112739230756609754966003442302950146141179082225501110681299153643766815607436924130363024523577542288672722065503937452370705639845509770018560436489391098427645777712077875349956278697525483389879987569384053769718887219768512512367107812143338470599612447833747055662398838100835429191908720889085180640176096590165857007246839522002197991308006482079733647109433237230684939836465854160028253577984664408803276431405030614567322307961371520080008027695456723451808336349372320453481303191984999992798210090809947376656232223487415748671490138920124219531405843368859109220538437640024499819000916071047306502303048704018999005542125729535321844378067814237627474484630493274427446683693955371099152688880413763537646392738365160876787209585348285881575328619364232048031996541609461468531129102150546753010969024755446018694558320561909894824711274818061952268481131322495361087664483112630366127803626076438073395181674404098314838806229248822040439283198377703777115781350866602913865096212496310878259452848590292559647712556455840868187166302433976657450030768269306205056453021791501243890119100962784746755962639528084987148255289960021413035122433801103414704412979897630377640386527159593366179199032782776636710521446320097330813350807202254663152615878034210762430804438271915004611296048419675295330025574499740752598974300607797181473038967456190588531200611596244382022705901843534253073520921450540762672540507454113223714483646999492164391792817900795977153082153226376154454839269931834807880299841369194218703000302847330633558621886769413910930873840974319698610374858792693021145662594340525066934204798532475722766435486172246749709765001475734752094298902412370185341611021766322641528751242663733042241510532410190611110784423561747077665926810208791481788886095379798711853145305523238465971354101318095637671099856381768659969538593587781647154948226408451902611433887116136622875506804876056392488636542869056090457012808832024179444456422719526384808293737104822605136925037327141904872127042289304569092391419963488612114293760542695467446573513960238115556926052445308586724687847187418016966564437291123621499857625898391754025760917637931276218426706330243522705976930269665335021411740634703729271684565938627224029196656439960045088235526414477758557380622855932495102338856933183171534116157504895715548090636433507848948238465649911616242418840538992368727751474312777244347165975613778385117670887024181802703379828387593595301702991733550170629549719666198958862056596892773096603183462305321208787840851335697489710910581337709243412897429367716446955958553589428610193751262894960027864102349541294340575246659122216644692261978663151834649124041337286041051073501808546788186130357397313180646868164186243562500447600145335418686617340816840258101632315937299842305352093074286571960684612380557822912970379180935726115229241928380054603456356209707261995659312803660129296657909001725894955184557711952480702319289636659466157760627210567952138146466846498679313996133879483248104766590180921715020310557194931267031464982861366836063052132016608021808172782592124691167736248060223847869587211317407811501911027657479751693371974245558746257414347628833457776338695826052122402409443428127389023393670334794021460340850072176116769606815967033784391778552123911901100344823926937924655577872633741977862581112010098263141612958525933925631204888215100025910620478232034863465951832175031570100074667036208109940611344627919481589968708526705910077974907249432181387738572271999566170019624288848575767818929792749339944132426558272486255049614223026693807204852346496273041839262851043714008071792139801324624783565086146495277210073279509832084279401031309582047450900052792625947447684193942047724056941784030601140371139544686770488828787766677333159021952245435180048083266159281305290913399892152866289444139999145349510205581601105847486569228210590886999293008134431627864005027777084937200470386348168889872926878743805985308982134977970983916288811129544634347493905658068937529391538698116866942347026235936153734003497868505290730614507484331522403035529389220858456407485361822652542812518186962256880659100452113055944555738547019139898161499025247412484857751779714759563248308370738755254730257616523054542926672636301208203091685126518598020621542959114619564186214433842965835936678409501599137978755747130761103931542363977507137573632857170059864685928258759123835491350018700651183290296272134708728498836410026654219684958896673368190017715060679301101269369059597801871565011867840457613289965279863504057621642604638909354951490402208455757151310097512859647975289928319431851040323748278679676055387599198078840182372598618293896348207429830592683655739094974944120421263518332450706891244436884645928348374730842560035748207136357231896042947932470810650937723450146459997547988646679090307260823353880468742049335988612326877476538361719020409258917597926591992504233390660527750044212393757927515340216424006834092984337373898754579066928104733986823506222377340698833247003804212089648753092417238242798105662790682098998758312970570018342802692235657638115646141194037323988025481713239083806663706385299757514465945037142052867797055682257403521391294060450178792324001927665380218516234821399606443561064510630800277814029782066806151250482784185868831622340296797893812600677999377058208697997134334173255663005510380575176457876488430058772639908224635132582880453226031268545375349960689783036816735749677759821865969321259960590003616758086845516070696836478152850514719182144256442498737177407924508537270260572382525227566325340201920601187977139717876895776255888284746587320083283479357121908403235237118763349231615602597637616704124756407746197257208019822462408775157828008154480340363021510273052262686883534608505351954644672476625836816991472774315394829622657320298362394773455120675302827234573680160822926224694428175229947874753429634622946551096858131826069888858701624638295907348607092929172285265660964088563125310107763172359405567515550146955508123783919619467821029887961389849095915716216797603730387942542965545213296390757345008538373038487037697222148494638025450371488432239737976688872396727019295851572865481330681618692186687978432282745402499040872833350504173515940406633820764590596043876978434687549252334614395417206499524104111750689292623819467242662059606508461548519453923850639076754019754788748415734610143758186572506000943203013488716830579453173642427548662273137353061856833770906153276529819598663257380943963268311614591360228472557989046200867553613505691021744205043485338469211627747108541315457695445277300854318703408258683801906549097076045448558780636066331414150430740891904336543943171251092452659818467856115146171793186488356696160528290148450922120365245941936248593751062250756780492329911273743939804597393547365893887346335650359071325655898116015604427101519297726440736893829193488527754325773380564857593582799501933157771815023523942701386579062235856086105189831082247013899639000434211767129043523657830051809109121618065156413372320310071770463331447250400483751309510599464154317370314930115241132821283002104026095842181399387579929307253876651770883470230299646016952715215375213010693177732165372323013403811012398483393793211483051812138258417967366664889931166012224475484242086931996382111906497397633584111987805076329069981962676788504738568826545162243589602653072252244169899991213109357116252915907568150363304070413709598563147217464547731376960972543981294319715465855334520427534246296692923448265811901462828778156181663815328537816483781554334448015030589755298373757223744520541913262436824617189769260178207017380843241896131800463761298042135392632836157148164398652453978228689607819508099876167083959258003424538473581178280148038627952546362994092589482802640262151982276453701968851163805070785620909719275568000575317681679821656410949162308912234575251707564895116692929539571136727856767212580318007132082366035130324646121004277324056768495048408999617045693463389983144723199427262553052368884756815105656227390105056607093158696114793369958116839391147708736494032879137950188292238664448013242316607917557825483786471524439429690949748912590900114858745796126081706014217007526644278955554286486845906250039420328486488160073036426723102674613538497135991513771994887358954542337097136835906256414645131154383200858865508077817353216971830388295367942124690291621300743561671725999739164410142947500045805887063384244433331663799627000962049460951796824225017599474167950610580716952591108952394428892597442381197241118219272679880466750221163197859640385155718976093488286468142785488503431980157110319991802837692684222546682437080950369681638937878685158369813490643203323322162267039150956515916529578405957387182013002726744183251815692976341894160921808376566518210241559334293771778222118445632944910399655996326537534598115295624202615826123392682508426799458073831362475748928111333388147289504954032039464167834485144359931626726657439875881365608630213572975176875269774386459297616142092380176040106831821199370539699086151925485024842349315343149158776738454757085847683635433682685981492477019574040960540267200721866980589967879992519850031578736969343306088229985020959337790887480341690064502813357153621647820459486705568603818827548263135082678643776292256816305430651921971665565249083333633969860530145381908644461296878395379057006863593665954079461486978245824491621748760077423084731790101683101263678942022514727647335891814793093092917678658396691883837786222408643491050673952261596485660254568690889415528207548688985852225663601563775178776099553556879415280999906333104527809715923313618269899876261637115544136524940981257897324566962348504643808261984516739602004425853394177026157301665275375985352875395058748411020037143251332911625523169668133207275965016007334596716502133772414355853322262464436390545908053577666190433443785292427707695236114016185816121946013515400937033930542774279231194779292690023619389177696981532994651372225660810332174872663146877893205481644961570995510718215285617711496007811367114327710031990123534915439952024667655110515366163411898357741916117702766611137836342737438563614108621900859091587697713661540078712479342583040493799537283081559563833577283617445606950244098407012563288924590644715052292908609369341217146469860704576622374674638342754816898510528888405855858761074229967768063215891287506000924918618276372138822402503650707954833127250631177898180778784002619788592561955675866866662617033885960872969690990828622236462703250381631871932855022792966824048157660837711572377066712930304101912888915339785025758588403306755898144977120751685010947822782713516163218954975875810194775674169295846015526696830991726295455817704479284061305031236239981060752745372334775054452509974465724446129568577859881317916106515337676540566300935428344476278964003488595590524117353524590077369653769692563210978056024381242011523127616182351123458708530009717348499493835083240582963817837133219557459754197625082384137829245415386414883819692652468448764099409635648468577579707148616189602215000252059886666817130703630449548887201601238053243978716166798864751072705109155675353478761523982390871630177819365794056442774500937312250966885514701242956964797878286240886401698412484175994174395247457572757725690289235057385342296077387664117531703244936862231170142236918404583891818143971039436104547069892715771693549574862739669472969296578921578861445733976906497734015130357665915531678853852490603461022701099131102142727724068551083156655870689133074478901945307218573808094748567519798094228051685470563747975961267992329386347243789399350600717808719047629337405549046619175039889130221774851742458112568422605592108787192228890880927734551869229543386836156371851700492455407603243894899407384585156001309448755151793542988214683317724738259945252695209978573731244900049382340791149042244876159673965501188144003822423016000380312485869921136420814981531247757591728692853854501340142859770680000340888940116881302761336023180980884325782116588338650939717901634414244458803666388323950493160395255997200494963891979724103023449580169769433976547811489215036372858657594598350457519443004465294601537286293421017775808711322775330186327186065787877850430063268853713144426978562404035698777657115086712932696283927382205918407075336728412012068329639708356112858861799702861594779816262065778992177694743164716276183889860684380752578492456551377961771426571736423160016698768948435457347025202830541720103603436231313021509388862523833893870220337350921430785482350583443758776929170302968081299476104773874702518721203224263621260698942730961873290975756026319979793808193505793403711271928632542847700255083890454700008301658408848094973497764387215208514214241225328525333087866489797880105370240953564120317468071236301630936606002807868735765486545988586756813531425940926390159667810113530815132588711849787928442108350853121302027147336020896704456409043515534170414910651449241779114307357578757909572129453660831490229099158145329544465923561603687745875928658022674595802168722329850097944293332345382309924751247302435582469434388441832032827656440934536765841909628287203470906517066115216258741394115675442440806972883688601566555220069557392226029266763421174449080646346830505536809207454002112507376478126036586062507977308764416515197188401102400147056748362379704593343998862645512764339495942392011468818904343719004294835004012120888044665621797596990633519935873782622317701646293406796220637200820454619392324337899968413077808889775465457550015861038410604464588006752995228047691139740771408873339697466422290352527135882850676289599730941288748801465434686150730249285227000130548987656307901175957628486802301715637104376135190899566299115438618330441602085653238621482522043949387336665479289176238343057858906296429420782556733954089976463672577462292683800373443242185814675968878961457291852145400972960216647013466059376073496267557456398065610284396706554539172947240430677164644559913943577447907340866130393159847414741018503054012856735703217604778489815227957516232688612446145198162829338745614643797384183040873765722539702422549188298154727583530750998780486914183322841919021118760253331860852513645446503181105239522723205768052193803501930411089902443615255310346068183584462186830138780678780322037663167926321773395982179560956889620316356380737746787706726883451327302554586702854008932099283046231483163957048753253588321311706862664850560902975763585592852613508691756804780004855112907411999719167157901443948372725941226982941689894166554084715165665170959727287898300312627965865738573729254995451718427913775875835910701473860718632288131433303846513978251072682521371940680314608607734021230387743865302381747798863899078595527435109757736127550421301308535075476853915955696515380544154184525935963678146760066576749903933647970968390944921261605037860940791871680275340921233299911208426437836296323712251149711407667372430114774445935046163405742693300419921805297219505530783695790267772081555275772929826439950860320779452971109796697418803969251496321532938858232017033260052213592659266978523224793059646354582416841626686250419093855734931222491057318953917656728054048037220596754426868086213779591782645838049178902497705096577272596953319369904404227189521830335981320228248800823225224228703707987853213799485424779681921017363573849522546756269892970649325160043828587556258004018335873932738211886010213674682592087946614758563614452242553617940984496559639063743315141194948367603353269148854148308460713640143511552112176425038359722333099879657062895705243004298120839438965959165068216032548006103104793065818642061344853305388618627464218848936182925617800262890506547538403743486995470756955887638353795170985575033870499683563259818077176640285847462639400801764699870720332746036024467671843613388294605950359969611239570454937946450217952476401847801651636634015914222096968636188462102043813981484763580547749729726654067926458302510501119389919382096387082336287064522666486587790423317187231139147503449217955364189807361144940358052995599062599738433616784283565609743490900239967974059334555905486496468526126624558306948710941727221610410419047320876020258226404100010042938112156073355768947188814304498860169679567730947813981376823760388655776904496441496711666813945237256456992192635091397550113561589737261103738518026822842174821959702026939386206285214658106394999010788685561522561124144801604896344014706100539688975489683606433870831689295518600145603251348258958302777945604636913252896119169157932057270317685752331205112902704939566190633504979804480614535625307917645514172949141831635253148190281983760860005355311221324866367660419615696997807204171740260151948392902378324698944970547283624129314806492232919933310501540218384340244339469211890263761633123438560379133128494930887280980784388966329432152029692494035826875049643637724711991259953139106304505492944236796398353408418574982953831146125586284253224701820752200991270030750991700696334955922961465776211182321741792526939061336703130033613639328966381291907975728868561877692180917948463852092356737241576014131618323154739501725348283635282731528900298021982913383084545096922643135738082313701973523809767700488787859206927846514659871222899781027627585531842764015096638008669695059032963158801281214712570288486151228827192156313762682038137681925119412120733860336125639932856737411067914611157873696203712653755333749752693736359271798328831511681290753599543052705681317714155610395106894774905079853341488425939320451012512387341155588505774564603844775618061812745781990219155068486212217529716361495467030768895133630498601273035354139515566653533379725727454641733825196200507494941147262896635125654176381387950870188667014092400522650913623181181938642147990034290394747491149676541143091311626454089372033892487851315466638901642682749954628326189396766101637864108867943718752990230698265829560026245651551616241792447185701896446414929806578716440588143404050588524998433680425247097874723265716361234982218132249326808313024734830258963800803329791523355161426893492571953694196706895882465749073292964355694882034186703642045842269731509507650117655864936714485544340398963371194141812210951481787288979062706887829855899469348101403634063795941996327218301685343121199299492840336221384585224118986379369686908452144754387444932382462423738290701232904848576916814336139799922464603712468738200675366868080673868638420649325256344390100013273197302097687215979771482206193634383618515642843656592526033247925618964235876516069689501944245797941569819641960326660177359466394496777828947757476981835811232998859214147478827093669167935989883375578065735868296061492320908977951654596105322645407868940500434650717528920096855632761222170011928989367414507194483244679565037781395003918597812237734412221938583308969556766029940297436300846340327610707591064513503288610427841723754110546311747807737449550945450593298490527859655097247954812816823480929835023856138284745356222364501615465753704668237614372268247576699223794325798203405162449329678480783061984275069689021993401222493802225998379503239702788167527672722945337469046878506354908180741493340800726673249141911511346791442292907939498555189334966618036144175190119892512033559479800293554510095078772206365987090451591627473031486557826764192890506909613395454721104841057431905782367820150727780674017031054768885113910453117427050900001016296643649049114083352959585545240370625696651514270861819899969748400325666195230544978925344471703360547568537913694869519603431648784919937964711077594945409416857485579955307501670486631612359637531090970900294675366054800296941181375855139032717715500950260108743290707578387515692121901797658568902585404830131620987384936189390508200294587683832929317068229890521538567539346121697916388052299699981541673311806375772573900969493682925843113839530201627111157547236089558872855812534290154302150669707576630720418088939292292230363301881676546312372038799739765845586079291716949198417531373502055851886362155932690469584435360616274827363224838723655926293992806910841925182114665924805299075939882222982471764361428649140242999835873234801205089273484444214333844715849671957207978110853678626946943218193661122379140774483715660841310458900315210037760270835646712238413378348507477539316336797165232751098233950682371423217088161328799802665735251435542804359963080462483942244264739508557873718368318739390703956890313086566830354078853420377045168659637491573995833490419305438685884957890776159057838157209114340568991834155462530005100856476631744576361357824762285892824598776710581398285596173926445366347439138541344943528614209905457074648104458534477356668767006597419392015037261266995396753823045616232380069884530904032700015089468965506036072583577214753077580458835070717345663787664949808826624891195374904740350228602219433781141512611455274288177194714014979341612409292084760583890288114856466201201219939565210278098505561473112822718595918028113678740519137396635029920111123859728071943609811394780100483919681313429701701780689801034142998436397492100924127014671506925356460842619043572700904897067615351484087886746493943858312547028435071836108579349275827933773389871917881220774454755277805720246566064138365076681039958273383438962712221595644731925103055297384714157748863304902466017060281412864320686306891705988626363267961287943300138734602661479957157887506491978478716074287660968688597518731476002147529781199026982181347790563967964518271568205471420270272834617438362291173097603003220197402789761066214526932008584557275109601362165619707625576748188571860973990812168416304035312389658484694607965339855366038876956262715561929547907649661592758363336816716525699151317996017283543089181780126925531476257078210961820321803885532919775334376163627745413100697251154568280593858680442436452364090412282116608954818695505030616879789102316505242986835177385711645989155322763301000660790407626151478064481790266722056045860093525897891147866890546897701228711021692904189980575312324237130625650733588363360671144235844691429504069345578775935629752734735355952607963381363669137734934703646457773381882353707739878811407494031308016704529601442249956181824020765980302185508309242520752824253194804784899297342819341994563088935978524921088987037303592447418392945266454161855286722382101526742903152461075369294172067828761689458424067826215408087348370512072396514694814798766454226734736873996980698897117638369903650868145730625732977345450305607149873282761450377439067522611734085976832601390562469964761926080522826575344945513247178819266301961015466451556466207623633620670651510190816908218432581618545331341256411465141269264902818059158569203956341552702629622231524321816246962573078289114943450692993381410292456672003920397420645112355956098971892378516440735676250575126943697430017334462855693412060522221712843379220219932830847611476105493462170703331243804964990363640062970357411236204247314918566617564071235828279023695042357585187397557595715205570694426672198753992150298219383243956706461483295285184057814559584980881610365372603519368665676389461914826597925917193828856623545419373420083269625720964655926749385509841242414754175836969447951990679556545253955704329255851855704957325921971593035476736469559662878032307929952051461442976053697081557032158640766375114129652055512341473894348271874365812125707027505006753909290379205789799006920812303665393431147125789850742089247481688873304792550574198101911427790041350638181310479574907950136613631280059537423422560637968837673535076584735885646411571693562082759645870525571071459196976482802119699013364341713517534108469613119291628439279673065791938174515295593597012944858976093485783623038459700279961781174462192514767736204746252684007688353703899079796009916855960832021889284843017945735675494883588028209022399329795706041300965517686307335417024908268385833362422070428496838341664994653068689200713692738729471310060460804856689011807102126864792052680430713318910137218781932481493935013698808096188559956131889994254983040908461150891921217981977046244376353413638251578677879583904307497026101174955740654738502707323161902621110816001311451694901527602273863312050516493306047361618766617534365836387137835175348554754405306859838112085833086039576580853308628168598666161155459564181889920220093747605471956770234018534136688421310746208652546861476385501984550800601370230282051269862727752578606480545277455118085867711997618835677111774389948079892713442947664417524943027283963804643527568303424284540786601406282557413896410572415345430288848495876328258028340452894502027103640231702065735015251042214569631669388526863730758582896455634373416938989038773967988109913314547054248561758211664573085508603334238484153001172427674773359080428263456642445625642095962480412918843996617490519489632365198183680908762252400168523249909564029167111753697195349715437927986883417541360418595034127286306904667331222194273987407932165086969078203652874568143919811907007328099613061655873116001492672360451204361746487645022645706744791220642497016547081867016250309850208636497797866665257920854510833948572827682478093976818650223353325379127864947824372341632672151301477958118632914854555085471737838073537223813276469856735355935783222611666618267025021934530465636653181585978004340819680087821243601900275970295952555494529778164724398851196253465537465025260386418731547067424009485605657768371158119945511968649077790027239135236357887393636722065458946095600247900475762920722057964294106962272380464264121713499470503208103014313592454894449482277695961217293416771187255008867295374136803376195029714058246080870218159553963968822300842284824690508648116072828827406459742165893393394805158807339325011707947739052812412421830566493384595470705621017155385628185665202157437920765409640010996664080531151358723498002709133522015027940230510848527952002058165105522191678043855656209553855849724571348824912400464729708018264557318382529454783697466781183648058288002884155759345340089492416160380895858438129562816918502240355154254347193603301531804418271100109450467102543660595585793424694674086445265298357216622232020941215489632225296157665932022392901799122964351228454360428230619264589650444734451360273989955379700096688020080564105225755549222883089580550844994492340540156226961074416129024864173608202174481617827374705011688873520947697835393078137039353813544974490472831008073356890845185400527811169079112415803340305268898881280801327714634674543873925838156876357279279617941618133192769728500514332093453448858228474164874443187132042615936368251089642360948749967631268403527301407561375807840590892302604147348493129279679989862902927575409254898080674698675102560377439914802871805260517442308320171088861982090252517886511531526056528400062615407604089873730543185828211340278186638653096663271387112998359223310557250595294976871009376901146437842201850801221718398210295753845665557860297430123733561075322234159987603764312658876397548855665972573371046218190562329715977808223743702765611130832688156363228395211163801264449846740780911973639031845428295942283908663591225380101635988529982360408270906997086653920749491632980862793846727261555487767345798094387253659440337086541257738496763137511156313830244357973781420417594745561254944014361241910571844481617771987426061053277760641455834064575302393296728915027772297655605760710514267475883027172285771080275106091241189092877414751506952617308926972006351388266476641277536626391584529081306371040355616183472607439780461874945578068589358344858985429111380469295118201997432910181236212680111506614994006383396534509942978593284718718432935295322191397898377299398741079485921111164233729952978166235046242941242427973282364602928035246301775667571466750463649676155033261970073113861696841543516635776974415205639928188828983191171725748961391580862234440041196098225302811543146734646279614389837080147057720584089905238974411895270898691644004853156420352470785408023874916775057785609097399986626846187063229401620489869176527771394633062622112507845850461392107526119916649026822406651871888359968814421830510388801462387854647265315526008760587262791304195274262432631755064460151431994740766332383392271143791591878150284067492918913192051347975690047694111988373141793188660278582706803864606289892350665170516504384770993145233570266237790706569850706918371091312111488945093088103904266915541643575595743821784197048110458197519105684937059587390758054201488678767406430183122163988824613883151603099725332840637136355470748959666242925121741616693057172244640752096167104859438277152510351308224044095711237744816822162954775081973255199665888462148087116621095719504153740670087014309374267158390437988410526333804639603569760677009871103445852478016014234540702988831737278221437425884580543219989981980382416656406497186729506861212980391822944986095345848379388917064522981724258071555271980861382971055031823991345594281355873190174547495250298987294894885849936736025085611491399607746666323346145301634416607431177182294513969756629922043392925043087627294012138511364243808161004904809537788031795563875275701423279190988226193666851161580567376994213054352263260209784911279517794943781441067285159845260193933644691419459656056994664050410518468692762717244530747620482906388115717326215354820107034857499429058246433319009620036319347589435569148503296789373521568856486627766097685757166726858003931041497625976531952316112546113790258368214465892708808588158987745643877470956695040688565604039180155580365899138225520632198170654433842579572665272754079756115986259707240107652916656821702324273168758294590965650632999395209848501476988182244099717459900426559413177010332012671910507023202481195127304191153646118648325358077265668038875664398238876512256999414230726099420828950548007631501775787459512339683781271880258255321753349183208679713462798538935141681974779802878033828979035645567570142693924016403320440048859335196721584491894725366401607783283364041223147843755212573686321000930883424489098212927156953764345204179102556972442050786204575056947779785936332269251825946202933940061448915399307725100030259489000953381895565312898937861662096284533459269248965508382639087604909844680495913940894402970000043102239146720077680925299123205563925730451511170391014071733063743056175399591161266725892732967944194590897514233981091071650545142925944282205379868337911679203615109783182782306083458268547989891475061204211546442846510353005927288712067415127865296889056486361691004265726223018162797679049198669565094846068721528788631422745404670414542024483886659955161908939655887868873058486585084551481308627734835821722340523603078846293565935797758389614936858408982742718486086219948164783747476161178998724718504480335262563899827241820762906397991289161548187975448932433221625412616523101119090581379871173068418846950834974348438178217494269630469880022869149263004354370964103404560856808205234931729726428556560353521543329224374752208210657644523937571601781290929675708227681218139744908952547779802566681645874878565274035408869483445475382506654506950381348985300153650714129876110397224106207382754322114748725695869879058847905977273170621923017600483269133090496482522679516843777398087531986272954234187995775123356756786200085177587270434603130577919485068762052879497185230204979560770477468804156734932604984724782936630248738614477113755768941028315986156034282300586562691964173008235456944327400833059942480808761341933263964761845493236609378459026785414115891343268958169087449229068438990307811141779540024690367506465482761463334641309880359735494444417017205550537450257621584239209296015777132826304011253272551309765382920635839591399959431433781012955034881507543543925753950740660305354735024865244879990127010464612121107978698437349843981601261926337685285211238827085687956027378630702585396311968280768839329085817390395042637308413917299331881569550901213835133233611401317344582761867493506811583051566487103265439729994258817673588852256854533806938720898068456089017658265287854090169947675605329586580857762602893711605908655726673256790708208745599731155469973307317653395711750430029808005377218712311006665605625072174077520942559006812476919337503720837960505461340025654615055928999458742567565918282986510244498902957573190551062581730927048743796900030659056519262545028873242257870657944959166039155276202206571310773314421865413903589233076274600952476067705989192970083420375857056676190048346970926278639855756843443699748458503756017806378651999958514771696192767122393652683944151513923755906905614680395720687431637478159326876426687271865770909967168777818341998113781298898487953380249668873106694198610053569983334923253801354998603075795400673140988484059760506822570735915532606619316766074970487261981845672845425703825885245357532225358202742488967494885286180701789780696141013382342567084289257518978451154835937130540935276401950251486069380491635184174147225816577444151783212258514737318341873438640703514289514479833134753643246514226585694907427875145808032378612426561417827308070175208585305958922265869391635351441587918150172033351883515601313666701085638289067800555039223792626629292525183293997433221266757344838883968684914901935069351193232339506633230020578318004492025251629615577810426227196906376238266502392209712891035067439083582896842028788333677935792017010353943181565622615505617933842810459869282217203214215760212143973378941780809771611659295040829123220875888422269023995010131068249388731976748951881314413283489182564943962528255268303064723999685651639407924788427484751186456182911659219724171288849532790647661958194795115473289452300676770481759477671548822088761806915124655781035215442705652857659212651794121852345315669166284716171243261012981960216797932965153131006103781434715242855275101386360881250752836649427345500324741279546841226853414935585355838437218827124484235527086254347766770135092259119408398986114623392037523830455356813685966064922722167063228589286451346022261699562176775735619988456491430391109790298306650940395750535147649546479723423911852816629034823934029132647508851437317380901177567303102861275643283514436323196244378104016857657886363908994206928889112275711371241669443383040400090306478539054417052148151428104052377008395993015694608551448337697856254451681127821969095138346534473907521699148759024320027635286596448752490038859661435268991848881583061265645864830230838532745089023537017147764238803787238366301434881310093897482715924267118131978467916853092366444083963237383332867410652254739155177069424106957126227405643514215451165696821290541544064186312153380373654028864025920370384867456837307211258935949762323869321808658295556638589889590923331148175661070196166519294445684054709278690313084015956709512921492944162171916041406080370953970445623168946550410398602482655885946387925237229821843337536692112581541409730890894722832865954159466088927340139595932392029326296724292863937028337040897221080993621010741723305069696944524728619702739322652401877091309026357068600694239134925372472495080375874981248762791764280994905251226051857823345250492150174247074103028709442082032921180003460257789997647398794905311681321739793788712362386086940410656778242194927552936147701720393522020578720063808790255092564033795031514123708155938288649976930998682302718743555208023070852189288172376035001753914379734211330472282207890167946573097004855864876854674468409503079414865077813502603181326081699068202930496092651279829986229875162171763464727099665428567315700034592694729662431606828403292172246319783945001687547946629533778346120794108756379312115310980443284611594380884285287009477749483471585457751181149238018514389507040029734825709891427245321517133418958028130702835664040973404720359365200563948550840906231281689506997828871241502507383090859720760021081965946365853835611003005947511540214067105408554494717981925108229111653701027536093774727337543798889821489305963520730564209151156859254399044431637215456971565087437597856442890683577892274049171281476606588764121870106538813292489761051134343823404529534119109822697330578543769294754497370152962222853455212029265083835052784415874318092642843342331423780333869354734291949105474750744718951681632204088215531370637194401907114169909806394512541038525396957515284020836957592475981753280870349866424449832804949852296511428097136084686688397883546160655013171432925124831500838212403295699354833708578623837218251456371902299219138463590235205102346625059190486292820322593257078786043103298068994962195782095641470811147303676193603139093464993822463347204102761349705191937080121735369862992490772130760066523587938905537045020222911964840161511816522348748180243647457328346402741252717723620975647856668448398526396185117050504204588894796392782838795160122005479851239679466635394201666587217065761711184834024042465154370228338265888705007386601401724416005283788231941260341221553550577708411708374071250093717864403349122102819779915238745379799613575781645131006812897298253088424865013920507539292774368772078750782530377540049954197730819402103546044653657520002248106504654866308559271662613442107913695674138642962685339289974518216456241422713794268626378618492851752501890969603801806019933461427070672810025212709545522038836142365454529614383279112911977526584526819125618426738354467319956159891254536599266979400521505788049986049128400532440371705791038248201972668001234514193127086688983675025177480463037880344385156759272746286710386732074695342691419241723063234129880768442816058834679335119289282296101314842670960976271653536220953617166657173605085713975767784743214991579922463948436657378905073976561092488116554814373081636997146469120974590420456590973337796716663500637519744017919466415868114650351451686670410243582276032595879909050652886960941458368257603633226056369571329056752785491270625062339947311599610820016740475478993198115739638279598284882624043667628119779405867622291127250307694828383500132380538932656543124484405783735712840481113459547412845531525979852060877054203931147306821623471995773277275260336443985078856177035556669808507485935409822090815662371799200668441421340819262073383029135259188909587691681621871650713392659174991370233981385673976076797833631998785470857710887586549017254360547655660985115145983843136515605269040432351373407692138364025641749155679640964940454603997083538390973133928096108703927827361095294100109621042706584900901228716337834796495735709335113445752053499353022483368770760665819747552865801582336389399752358893115723590381223865738423087437623179741600978554481746392712611192449845851271183452019124184054515330795504225312514433296957766235202340884479102903121358059495117171139576081043435572158600824143469166669865972218099819490972676173300668736868462973352427002469266965645133470940658279297609921986855808161418249944065535006573546984221020235961396609337898618761300158121521083759556942905891250647925580242134816784231449357034981694237289756558854300700878772426059519653460815630581003524429652353701070685409719642061526074432721274080658267203839371206679934610352636647751745645830982848031675348071974595315321627655522195284025947084864591689190861265258699118207694737284081334500757288093670656966421208359792258928235493889101676868054708021304297519553027674095507233245493845453367792137740308990958208305951385761164922872726510025018016602999342939253025033587193721500413463845231823722754112323551355826381888480799323762175283959861651574362156745078559167891205053459095899156220347606726726787383979579346189829299192078520194978398970831494369610006980502503853360826307313986345558716453203898993722344807525774633156308749539555586771213784242474612318806622447410709832509534294173521023596431154991705836272133771885474524553766210272650334136186572920453280952670893688085985477823676026660844867059553429045143946194185638307996969517354662633075617964409415024777828865658459702829206202240097297943635202208819880226921796719531716516511007819796115960777280598823292187729052650323518082699580606714239000038004399202882703597475348308003755354806076117978685171373163937206222341715298456342841820939115596956196503818614305937053261483388177267285112122357999982339934737464819545149148404442650566514050021051480343960412802457117745356850077564058637923634468786329417447935485313757267251737325759112074155291189053112840103045842052068271795278104021728168985638627028222722494916202923340077177619805591021317900040373730673879785528096341565170114614971560256903944938804483810890233373183451749876836183671904585659048619182250790287491155542297917271927930721049630424229003900865903089044839209555124376629154633443380190885278239783800141814918089824227277736592397036975104606535162785874914239664609577491304575463309822025658621228228927323571468599337826297220406347826156451169095398466953549412934782592214969887127686411023411920875291876679694605949366379810553029775925218867004322546769037132821643326916937375012645140934579449040579728408416407220559304015245312430226996574326356849423139693699224058881323801275098381023534312252048612349533101184949918076864704018774846358916700071487925790823695885083010710409399722929337378772838028643370318516418616033341940365359602600276625913126538196641805711110995780974918088946865627470000464614569067358452440355608067109685791448216165018480851251037998901676475686541636880406422076746967135746758074228584482837950149831155496759357909675092839765210429093611277854207266438787265185083733001800381451352202921294674033700818734464609514326350563325154553453044579570477701016011595466262997653902652853628869611740453956522716585000139037792851131640590729843386602108441043285032909680986494182040520532125715741224743885359116975781185160381463003362982975574277207329038983493993099289994885099190177117403263083547194182499036137213059362084502885519419110509470644099098454560720550202989818268041521876605813463246327013240332814100421849306152427016428419503952380733460985758233331644121220057242723830203440201852764426690293321954525833950840060775080517532269692231543908777056999102110440386783316860174745869065768582879819542982169062818889150656611508317232916909777967472012943021291054651051350379414705473995627850916504547792037029112312168457506093266425905356307197591899039581276420941994687370985952535033780977737045599323854890358453612703389819693263120131031631967733578215535168547843268206041137556194870283765155623989059176551165869618812805613693141503006002319960198238110138320870883406996508867609373927620951171618908084252766876743613844906501992736817469748751565774477523928544562968643368270214712253955656390612655336171734845882240511700382471264075947760217785078590170135379977981272662752177009328677250335297136962651874466031619317611494271585306857417758905740119664285563566940002901338158862511715001472451923078501603619419629715008089502150301555770982047689587393674768426090243393505502014856173614755305125847235403527546988337361599178307259464336331097952966012558731907705427605863193742332160610619559762771717184469229759192990518559745836796148520699261180798626306038252160175055954594910467212320993810054290325810848150708001963777294873324569376388458652999580378501764206885698119936995737439509615292798643628636725490918282016474033141441427275395077573968036989657068476648854848848928842736601837691828825625307347864323877847824231064185481427017716722413970216672883600428059486971434382711930922585737089074954008469007258262638726391977083208286032354960187795848914726091525635838186877557230917155314548262012238499729428783731913952595624666814803243772465944421392947728324301211275071217648517051104840907795633456832320446937225676871398496755045030040558964301092155107266847389443323002857445840054263977115325546870106921943126268764091410436194308036456631151653120803788879540111434940985810817724565866064619094415811609305483834357067597739843393891533471988195694620859727904092443137672084760562895140672306374300836135167250644895419129968167530299300362024489469852191260017150623385073156393044431108652732139281575879390100869465068936281900887292647823892274833016048799383520772702060684637876663393181933466024559812432611507327992094744111753999069817695118959853673645222697780603109413412322225265409174763095082781229365023475913703844734514165431475145839234978151387916222387203430126862753058928876446239963187162598596834806078231263278724650524510144390890794779761232356482103692393691669847584544406498322893366855265230651129542609625973265051756229162876025821000974120580468762234443523947241539678062850078215653413767191892602297523888907174916175318093543851975913438840600907772561376304792680233779729047864258880803092941357657332610626182503661145701971828490567357952214563300955548160271716366658563346917597661426041220858032123018550137405623607666262873736944444981270758258904867559338109608849676903632731529700933661894755537307151124571212188811323102248414756356185848810082918132490833257010975918073082107313073106101201023907083606513672719676325008895056582235430950103837094615027516740139501364952393405869325016493445317994859271209852836859046265942187494954676098622613131482456447958530812527665135939325591298949723334308422357872504873097598169130619772112139632329610081409652210726017973744334243287820886868293198108929407447559229664254653396338956829805142078470224362852834833595681540190294602145648160665573258108182691451347862062431939135174624152299640465680547424925230076029395716306015620543343903000544152924570994349494897641700675226968909583806315017646606646647966033546794570130466821851445335696736156125672960364096449119174694132486624131533368409739218497069143250914576813053288324987762082120882410718845542686455538396399262595651472678138949992308087712015978653573092706884534056579932298139739784502010576602196455766204745692345972885173752291814199083964046546238590937997760771599281322678497609209354718964543138646560851587011526690049556826886464183972349646018000847788601282481564015183709088052679347548696916382474965102192987591780927785398944358876952100726250571856787503436456387672490270143341185116888051649579336196779600627205637342019405633300946983978866405415952644763778438421575152640360408261756859181455067637996950274207459445132963129144631663787546184813968178448550969123606362996597751683815213552175013519051078351378643841234851128975036474325392794277229890495739561117965236002957210107062319823579026274464353315865221774952410653490604179603740227028980686708842917906484489152407250525153403139306961169151277085509740265236635798848535681867137991667783351847099549542619821242003855237187666375138343445548439594028201621978785426948826809442520275881428295479470148651748737840224314050149783777622962570650065522726341437745192970603909212832406689131167894007949058691856130812260052355352349757740197851201069766408432439884977723759016983743099049075299657853869631256524839289417414213805858407674886459401034273868299007342806433650936143682664028617840414851186522192608472463683963217897934119269654948817988560527722873589434873633945794503948334903846176386313774968217571924843669986802866809410645522857360578313663574496722242873728299124464887749088786485771631012213451803152522023683858406627928067813423758000547331817142370105893670043999109509715157599720806117238482944810603541140255651280853737386787357034831884160575712673605526037588987762007704836294736952177661780544585994738812556596367480056906049159352904890138191506190889312197998471880897266934297519578465636709619906750956141140221530913662078956772918231260636692139429414553916984956935445885859196308568809178675151484375966805330606434473325146747683242057518769281066635135699437225137816286661020036669411281310224861526917421181330712797340531426453518398517804673969104529334718635661288447176306798884452867404154767104419342277558340322236328307464656877950478276236012566679217534203477340272376342288353694809190989694325849578706803919550983753968423904582465447824031256648593667368029507364387555430220370018296189989066319010560331480266967705606532435006795741711624514532406052276524342831639648413374231415770593963574268085459389519113457401776978089287346783670550767936054274586828282163280527193699463458143725669675507025558618371333922240639609170925493423942601958177156526057619551921479961867942071227606847239436854134571451008173359486620679864139816060154060817895365728513157641426174703479809812116891442377597157667315961982048898269813224817011469014897391353791208150378854099516872894055698472897545019859913410338386238268253753909899444813964906835193834181764065905011572502278366565700391569508246129071469402866184970357132971941802980503856381227952451186878481105506668537083309723393489134520467138814291199617806016001489658885080560471398407277246733476676662406891825291170496630813850364846548039369090986924379085264478339932650767526150768818448890472678218180252762563571663249343088873423337398799379262791748451814040860680729108329938562871840558306257269404996003113811328835654674561236643172946739426979018826331081942125755746218240619387034072148672870602163166905557177374916883903434740727567913341066323975746768851305557122316465802871846449934394326252259157193181262274592046384366745028013014573452061479537472957762619964590483756489419911689677924948832988666710273714401373917307967609345747615505255156482885838271962923814837747421293016232907039873727787915986837273814254230958421164200202154724454337986313034926133040241287757829407579383401235640288438083596631992361275957491724153913011909218959961415552690640539867496615580295339495812714221849114053583919433214620605375212449731228087415423551966325958055248960399796733608829162408219965925144659360233569825162307968713896259732600539142649025415978480533230881711579355687991430598945586649194718383438633389309433913646829937996100800223079474616721690039665339725033035761731259900785610864735323249868322038995008586005919855444994196458717205349766742074800108609993754361592928181942947767826546190755994219169174618657617422231175931092491580279715856572437569928427781360131741154926737740891285744539583803172611958325916653659115477800158846813188624873490174755756977968879200535600843405472258145802115377754742174866934964274985583464347810587942600011261534635815859088315197127712335228262242018099661778496525595136966994234461976255836097383101894860493237358174095904406454964800061079462051963888601307398099356623444948122142683585983026350835157295338526684685967301538574775986473595266488072346358457101084442176396657656016788840377370718971694894950967761642916097791703848093570458216733133909301338072239090942261976899374412854229950941872873996656919463010895646861438155668268306762161516220069724650566955252969858665780768671943128638389110040655349824313890796398637495764359469655864069712289738265908534116809923171869313025635343168096285442848577854114117536847423364591965607000725805356840517585411869711566708302814651926398476214111979067059323899062580550522363109063473366276341789406459996393929712443383658945716606350262151026542995862421836987089718622572419911710850957897075518110360001130967402543721700102794279257712065228251451468049305369920448815403566073802232215658407548529296644433281599668691768857655534301059988144983604204061280382923647112121125663811691070521653582645183480390563784258557889762500662808479412997670005237542584539357956327263568735122431091499395505060667483032030232908807443373547686489804678134440230148574466421865284676650281648375305188808747696881781481451535293678179957820776690004827694272899159766392906474886543669542033929799707494378124265030399463807971552608931503878864163920129206741448257612190831800311451966611740350395336091580703495316711511469697652982413616555341986225953501372785509238202904361727002441606393894101725384977395299918587728005148730954340373119103454174389218293419827880123114675022263902186346282757928707510778474384930367618379784777239483170403601799789490689530697401719075893679006893108451923615573235912447161467092867568295414657929922941707940906115765045811463189711045085661060078487482691885851442988687969357230795409767560931410023042228467405729384356813339595601580526694775191216090480972570425281929002074475828306447689168305216171883631597188774316992761354018040868692331557914778452164866664265307375768684401263052510989645965537112828030144278555843496535456420772773111756034568171570039117535309386076841311612323774711675200417217716340903588055959770918851662519408043090384152643037530108214406707387454582507880954252667677869446079543665600195557217603841044805864443627375928613373312934741145830178334853276776414797088154433548114747366374116061568567848683441778842130993868013571682923179659633903899398566349901998797038145612179443246393593436920431755369212168460986270858019908877016758508602683639253580941725185147899296414032073010715578235258176822117532442375638884196780953266741740494939130512669894596743217067964753931909998877689692120380877849760758485875720508532613313573897783179113114597040078518212391366531733746723120927130061526001176890587051864736323266198382962614985284296621649558605214168338041808744624753939162073942030995106042308721256539088912384563025784167049325634077707276597207621426238874633028280328804964745426492180858975076790743639070363171224022563024390981085423719892271655321819712148216279151653382798347103782916906584355244767761168638155556830603817541366568346152517706932368059281311492345024493962058109773658324624350247859311327936403166228486025293398015889838159199891083923749817951700422748758572496059003538687829646749649729451363825585787449171141760022295600553853393862345390162165395748225667426926407897012463285135202438135395139111310296461451446210439218386159540844937757665105383362588300367298145877439564504565446946677194737728707171085008192945849100832558853325345341548078159036875674782406366221315210782880070664478825819504411620704081230067378485276061521535581535393271110804978018493701216841653423144141415488023896869349955856093909012169903414646975541867172936950839440521160471224287685035991425747060256776304392397001005250020762477939675242566144570479972625131645809460599277752755686104074045245794957414775010369561291431224645489089334360070397828181894291745157315430755441916512421794387385416436000173845241223681553137875320382661951495146334266017361473834649499768582654613261383452175762733017384437730708306331739390588438404096323411109511377797011300401623972258831102346254212711155551415243415958019693417407337686085585734228082136703838988935097293864786960965151633912478319621099924213838716519312500652955369430470758906952569237032195896369617955765685748744204491867659143229295351707982563971846205865837348088184461622967436554113271376246625060313990638766978201764129711418636503830703240998266152796828124572271898145944165177450643420939705531587137410966621136037558752649820837743197656145814721065565909996329394398584791534884013757822264477420680806290536218716890464994656163468618467333511004975366345475007962697590261637282046262151212876849463080224656058718839436910585245884095904635571397024240154838687770318141269996516482023092838362293178248241389028115302067862617726869363274453471606363909316050097635994874111543344796696238516190213381939257115481864713092371627688772828605416371684104739636140047388820114501739363951371212414996689838648813119327898327377593313729739538050199542624078259643016900764441403798177452884391709878467226786465837291940402445798882639418904744316991676682629512231232408920961431602569671581852204829251862241334791840728221042998800006247965478327155695881436120493491044514390147244184930964634765949548538908771331826555878786529807555610131463764877847861958770016143137576021150045612443917459816474955469973615030784284219021030887981958794373948572170851278523050771514770157257855766277727183113624657365900057631809565359190064081053547240010773670543257774003952910074921899682789060268645574238231426015912039625877129963234113953560571010292219836291690903186820339631526049381390853949322558145604123083148423030192315523608487743678167040802741351850522343726229778593222679800612383686218790366438324369406810853431842068823851465289507320469099277505686104339499988737609937807932952459395480604290148097233183617117761745706109569874180097045200395591225994276278702130590244093634249053323061820906767717564604874626503261850157772149065866631405446068554648519887275426841017493295366523840395962915529902249005913432277551554707661995929862234298147436933960756318225647304246821861017822972176243490483775362987276134675902603029771125652981857822262640960795006659810256248614412195383509252646581447277453371049928777019822743492132503343957533997388304813635245302868376845372179288513586285061909311033906617715817927876159222939758957499592673740333880126630392366677777118521670877343013576712559571798569928688281145259912436637311121842252215227716717847697563615468829673240015436193906258958639449049879176099008948507563017206743448131892632482448176017094050562921900641950468192202751418032578748747107367702961528361852596449840398417905596392608214544103516388642505769687719421752365744950902221057227749486429314124486754138840755985146595368737155046504669312637121843552524495997520497908631798482093393721772782202513636519581219899943678696797581572426921016566124933257611029359559891653707067087026053399530267594192905319909207826052047819588049486810963958603664917451968283107603049059898496088543941621207794969538035485235538594009612470373763026302577106645998704335705506261190583666856425478398357111571821518777489821681427440116709552552873269718861583839532757486935737002892237080851898193314506145371027251451747181249551050300863730475007181794934934383943558867028127569427511531062610854513150081340497705123720005620714227787778917034708062313834426338454922778068562569352260491198632521118293163617908531755260288836486101932470561186408442023932445940850001190284041621331495900239577164278032906256471555213490206261929816500978006769792628728877692019037293587862773877953419961183624843925370757194130986205192073713733645348748106544354750520646700170121580140371821604996613444860007385945336822570572261205724671688581836657086245579310051719445816847622449681335803372507928475607454576018231801829779593273946274258315113695575394295521199599016037810231135158712326708429202874182610914312775213380271279720956279686555792945162007464383724647501272688804678378055961808564325669991671202319272213847304934072241802330982810472304520644917435410044314177121646214522826700528614884961329031721987376349447588563185559517379298859282586731398197813410712831492309913848162038153675761220582751507270723834718882344275293529059526868706943887609693081309758000777122783726073532926352908703138619694342941708946862834705937411984576649260663292873844056366018909446819826361237106277529181171099616443935283962789658541105455897191340624878799608491072478155186511148070585351939993541762669510170613276916434164564263360865340803365195534090197209834126654567531281657808490084371799009243510618857459117535426961937388826429832956761022405378282971560555134547112778780540444867070297281615878539000230523354525042552612698687499935372683063109212391631329466985615496062936228153865089907625879714639611407587244114961990517102034641924675278971261449510681202177682554070710420544297008163635695675409521758768371372710489237774581784623135772207924150614111322713939044814080965462916276167755585568672211974688612640634753815073512058930708570552692587096418410266941541071558381775424878463696074086072484106342323837538721438887701494605398059512220699641348516875612782568414983907664263563940523002166305307360935758667070042608296618060527307223579355750975333662636791707636228982555092291207166267775413664047011181124088826306789015278436910721244383851358228703589665645758993800713110031595449492261907314352989012994788217531787063195036908237887812236567850318994304106199753917898916969451317027724676093812800988106467089398318696830564266960508338312313979151168946208576058853527420947295881544941642053471106754374169668197335467279826623783132359462256566817497212202723027625419726294538579336950718821079546310211761024128483845375402827662727719526973363110139472937341814127546019695080868304033622868757388277243302057235856111944380717661341481683428117014770664915712091250916808646610804718829734940967380009757768864518504209671476384267773452456212218236608587244380360867644699239667793941617496681938472457729749921718835507901012963059038054969034596775871268955921876554012589847835369476714575974096051669969271452057109051485296809572012803001193803642255868975649416536434625646993965263852548410160989767604746594588284738127474889048955258018937656353517397828459050211864505247461174053955038314427712567774444982230670903463512658260729112391409540788254934105870168804099331658245851640295229290958142272344501952757917881711348828131891576844873557719620643720819221683878641033838524603727030681281450318177518130371279304780023054798192333227350531190921770421425602047827025088091956154652903160711441657743348695148549274182226428811138171094569505167874162943437689148052307254313987752160098946109829930251494909356332540997365767134503403142040703721830643815580868744812204439680103952385795043194872037558836974832956511594954729161693886245714737576350440456974592145516554707155528451760210149136816725064750890305785738930634894448524213708493580066541231582796455843069549578967064847389217786671868218768671396834457041009282938758430290078519772466294920334423189439853989966390986513935513114212563266151535381541462320591685718451582838291868109551532995985262212630316975259674935902605655083093411468405353848204981716390629265458705259854959624998596002255676165934437008962305896593135178926260734835684558473503569063774567801969207100365400769146519491910531284071703757968433582523542529566200531458883263435629345243377536153451821260508269653125389673360882987818440891961190422570753613092998074163638676265217085018023222161126553304357065349445538673004552145346723184230878762889838405774246727166039251408291875271976768811005524454845492386369620864668809436099224636998787536414905121426729497878340631162258174238979085271512302549355196092683715175127346838059850927930864478155751073873661328242365289583542518187511464500288295666595567379488930191958411451552012160140418859383455031065264289775354253038471009059228895330443914855042396329104224854449018264103695568050843233684858383406288375562174197309073238858759292813412568039846445694712937297941622201099692726816238081464777013668135434916387332681599434540432410220969131692097414873248433201510098884130127144076975297352622975823127625634901013159339354844769682857495071504421587858202381399926038734418084871903217032587626539627252232610867147076350867011286957325894193191853934413627160598648482544840519333131518526835973749926134867407506930189409150390855268923053990417500933636586865162969786069927782153180654895960324444530207218648337675920279749674843377251486628800261528306975878995511621782004986768698863343535232323449311071529366911050152409096005238015912647133801091435995193688406342137449768755554855031396470957886550409438358811373858457296792520991795382545795337696205867282882498221139542024845830178621856035397290767492514425184658962317198821234376537125032256480316980477016098042996149369363430286091599158245571309150796982193917910877225922874316947575618440877136575288743393425244179333705124662806769416475067698893629553400877719460766265064941353351174638043596774169000261417403922075242137351202054830142480550598342816092197871156641597695269860289291118196737823976329122920942044729515031752633008606535678803945252349397361640605037444434816535005862255896892650718470201530339235273154765167036293787312644547908155230090597391355931339836264851465743615466189205006063861860001652059053248981367642996939066262379309869410725253293049212225022507563023474957465269100220853669203697410893358339665085029353391283633527774043451917722039077345130845824222012269625829776615938956749394832218585285326389111959524228460751670851649261689401383051960760816813880563476785735581047009354277016574075849165124125139550291615536108353092341307461087437046501624235066944667468852336460296293560485694989226729633990483199804574856990778233727154033376363845776874327984288002638244580717959100701699873668671179754845546007983529225690642928097625670584772945392768574601433241111304299190360051260795398606134892513439358487039933486954775101403920482375802214716092068723263112314093196619695832973745855278164180087691682975819220746151103462755521374319673125962055733310699128861052961665719006719770599376871079264923089545390018391671409665202435568776474872249840752462464209187040046440612570805868590328112051893066227337664540237346598321871692559883649708063547568444892972871206350986567273278036860537548908555448285451633546938389159915349123916413998685613602260459207780323968103904130565238544719142013268214578406809936251806672392885257993794438790435232669713116414155611788589508946380761067683527072018617692427583225282956129371072511007954438739164828700583417177146539882373538478410173233296680545217883930905553467919055185709593068865663864245270541988599617437351592724889958941052492255058824353632297412494750792157798181639817678191034949339130753443304705814743322727228874607082909323339889174553515894068799712313664175175761201690033752617872234772825010400784928019915711855154657388252473558391585798126195846291446236005852639008328522034926513387737237895495042082706436368351822713941902377900007596496145767835497968631804190406386991320287941310207014827572905847353237568163358611912230064781867435108870548188798478155212385532721210227849255690354455076114522172970824373390507475763224651696944133623006894561810051047156567246329236251684103982958544482476776539358293378647262600960330249253429004172413314224539640766233525513727467331404024834624319513305752173447614541062996899641956633862268339755267515216329371278019526840955937279258968167672526154661160826197405026966792998786676138900964869433064479157328349977901234400700989406622959734472859635419628298425692158689848545261402842808505728146875159992049990603258614659429914684743387500716759035440464517740437034160046067364823559301666628375173975284282507885998113860523086693654235108483161055784246665702893571197487383297930504461086394116202805682149720210004040857507030661345375176143730031183304049685499071735850687044813758130393178135461818326417528192692567324030984821433938803052950243400628011941692034006406049656184706943485412638959412951143507022413975380819964725906895257309561740465204041037105845349159041814366774533238323271443560753119201360814303721745458295244095459032087056245140487285627940258891325488734748137270865534011845904683390928691491632681230030749305269752069652753634746636701225687868935804583678086087721070491149466822190504000037520201200170068516639166264548323835008653152476061979609554755150192643799440662002596763943296163757354338610978095674042929519267764989031685145803886274929650130243955780278198436981462849649515382155093204814540131064267782447412962125352043809029276004618454625220949281148254102851130321816375857268712217913164781935279031465918266345092220043886257288386282795003704980159258950172222013605823363830127254912160680651415048799461215547270934115863436274133032483065512706024951337456106230849060200067775331307397309340738152176818199352629902422217513590669994014907376527724304900609934236206277283264290719040339006383377833747697435375020159988574040993163710766884741168185709577459676507952895517611667355429967937586223942604216812244123705664962207418079718097932994875694926704907341174621992959370175139039688069827227059443389783323985895195556645792616407471169481041822607406045156198067715186813542950310193228863001773863573197337140341198987809895524420298858466149380558205050724937686128984497418797050155188095667567664730801626016799358525783448214412612101338624000679020866345797643922656682530479215732231402440379281390506813975114976317581777180404390749461437362117472770477116109028231541853044562451670936005549371821887286998678355298507228891402801974388357934954971739700546056295286523694893675790841875148853178411152045530717319601851714844492768872191274702000406883982780949197506101845941805588181309475759691549283890515998595127255474128960032764608855978852034868669773917683262740694369214123105032763539702248303298834002160630668394389842450287442495817866114698840081948236427808036943556182239308079168558646171990707273725875094161665549283512292779757870660637313908163592332542677674348796474300899951869141540174130225600909470361972647210779415594690712740945119142859667998609924165395115430493602562825643403785452940404444930122829623703113597914256681999195974026230974994270310020486102452917020420679851573184157703333303272249673790870371289056809495788730600056385754467087417679845623710322163790685045053321232663767700470729654367304039245512365727322924773385116542188663986833095742044058027233003829346694383073669148191622249796148180378764458253829915875146901374219685374308348437589048584071852693143052772489932927090072344412844578583376743834385879949798053731235538352725417592615018082790155056759755522734953904409111852159799883935872026823996580391816687969833547974794723286006401320109778096051190732597509186134352662241017670863867349820542751956389004155357169834155763766963728704136382475380323311788604029129249842504245618146136492998716212094332260491293076297885453161051818961439650572356621949547601557084281570631321350676090453451202718363830384530423621805080754174575058166857441767443653143529760236755079273804257343163564414440113611945138086605703194684746835879127207941332777641141493686517872611042597216019719028474843276653139369119523988507202138148147734084634654983159379867655506990801553120835113506247357292488658416205254608549136313385364086986269921367868747002789661102054028032548919688468314647593532688033101849677285209707922624099084140085924755574710207868794007489980343730744742878868839843301603342014419821551772393685338427219361726925098290193783499208426927154163093792724502180885632352557173500577553058087986657051667658537047023126487462526718149249068063337458611655253314729110407595925566342364186242875998008824646457737287116646782533801200215184772014080069860654907338225431508674036860207932189499429349562409771942777300232894241097308494956348613692905550301758743956025323223412438691222005439564787363966082161493849109069817156446746789118699245078899025633894769420357261085367403459914811226200216328716805218688111489661646321418078726345026260341060392874091994761190149312351543331175794815253354203955847528389977679256022915836935841704982062545888243872091279374060063083621693901670739347366054339423654611958809132177464227644190160771485549487541897918825737119867415915561761109535164354787825752226587492468232035757993583295597170825502855413225420572684635413278087429817292044325157844302771978399161056019248298270154438632431344350398513496558489681295808027024405691120043109114942995743794077527048730616903573783108550936016770322600346471527328661792074528186410352828571530535589532865357075348671945128756252052422666115941469611300717040560286569448467099480825442734508161957363957636376420003383229372862047665875487040069539166771470908250041799126581831413498643410373477046137932902079943674812635048425132539744561397664962452660922032675224271480939796863296597065443965523968398943634994806536256722142610931141447272027152165647496964616409988963461402520164639009699421389253762368505588017787247764734497179081658112309164326095656848759066475666696994841605094388000108353479895430644204557589695954173447841463000959843396390648964009795445974103497445305226723349288490735970297057755947852978413281820400156304249051805315989220817383585425335370617810392595826124841358309755092891158567426670633439956726305106569457283994279482381662152724394496458290684976211034911223208976857432893814215281139219774728131667615281668485904214114604799200772123908564839616286110322664053785941678675311987254416053541854746084976223950404580771972712652589849175457383019579409961528974124021392623073332915664626441554640419931222065575871438819044976943829763038739952926150371537227678114150297491407477201186406071028996662955213341132499382972071736758222700513886695684022366737396280294682828103186234100642873840776423939064051519988066898452494452747805252763256050455797105298298598362840135872591207241178350288645914085602471090400917790673832332912049075457648354642979640860282763595959130293193256909860345156065344456876055203714910503456337583972287331021443130762058351400418079721401454112502153459384457251288072511449670240538524651323099554991439189624297639501233150683060291062702122145402078409597843635371269202612129427992033649784452149540309419333277473430536064717616832997864230816039968217907362480638406823338330071099019036611168363283802090542180248405316308259664484217654013596746568868740414178944609860719426178839946465725019611011109697318314285138637549709277232501815257677357292216920864730242102680794812501845449263853016531672100668638661444432749533019185333732058108855714349572860667392852166232515918465285061171107847836999144065529858254202586429541508591113961055952166692714024361593778563805537117772462198703337890090901983830248054654581913535796697022352107803857922809440677983146381997269066406467658162076206740245828336910123289339905775499616422423939708910128013878354511835586751385525869130350528414829753670101336605390847395254392615664753424580074902134703777795199025864969996010545233774913129919359912595391384765854296259252448735127503584515252604346069502657101882275093850256999227712482255293864041290897776846498037424272291664941429137478364150416272494962855034900073096669885134153673356114159239488866619397828022414578210518798249841308728799034721680319434128373935548396840267558807226653558244609628810789740717974128868111821798274641786274102115933352551893963522291440424216250983916093801666264791902332643559716934010390689423657532016667902990424095177345721280904209684530013348480060534107228183493185288650881033599588396286833697307626220006854899448012325984422100447824534593547050331420491937135869909019867292437024430622162928679667236349185512180260967066055542973390245212680001079974206874446422082112790519597642346045304109924338274028674630941469919238199473161504042244883889820794671539561634342145050020198040963939192121730996407072758414090807261384865947231194359730850644766089501462843390403170336334276456604769396952585732096296468453051443492730879688068503983203032138363986047519068458771623184425716951422754815689656997358971788089499973548305704023152073754005305286621412831268799587747060058123727298150323354251385430825090107165409437927406755832328368048355526125333090316261228826060584925785933792236572254508519491041630724032133652473259904747634832569254913018946183688586663120102008660791218653681225218630538196335217527039404318112599726140348757244935719663960752421473369064415195815956127933985467140599575303525311829687570700218326193925647572851470451513491790486974623340432973324512595507293554832589916155463794753196176403586462749271526015187007854278522672022605698188402182060190064961302075787107009141392454005493882468728383520544459405442209146813913937170296037477715784304381638331735917438836814298085875527658081042313082503608775568779237074792868003463499079882792025532003957790935833813773429423863904917660922313866175309414731895326593497901544242906027662379843100747270906937538804445629836750346315379911391471692284091904186666426116403690506051710207526485861918197121243472496622576351771854262156283156475242707232965285133594495679369409689999458945382787459421265931653440174825201303330738673847561432129859192241613777407725618511739264751662985568702894014839125055495538912376548062050404887618700532891855054238086258849740525775762858488028562567134837606522490736698081192240418626749041815611763882562828817402575471953854165925655112370536437338291149461523199035100562801667496513999521501373140981469198187360461419660523886165806435480142818532569886757649946095566588896284981487659996920288990480352875407718340436826023947229251436594901997837815113526400070178447663627086966844097565181685691170799275516270364785263766133167278794471787874508832291552835603833808923318293528519316877962257084137486849583294902342470820952894602205401819264015554725295484025428331862267440112811549572877851502631831367771271288456571449498808648052717736250142112404206669875759765822083180673594709913730671579385069349225540873730264984360684838349406058465429574599628016621904328697178537526408827745413806005557770936683433809862245311536284161067184411059843404168938366477170735978875410701998272565376392480000215721151577917956586025746206595283798164245613652779731497859716692230640793944557671898401705900513195068350560803282599068015416900409152770332123626581909618257809649945678858400607226145937598422644284947808547835052393600403565911740311948527837378125741113247455731245548638325404454513631870269442184089554662950508447921598326162555991572517090886164520373598508522298092806081006393040135440915932432145883051956432769472814199828651409308163057433167664921875330132689365861404321656784616932216858513466132078889038407081002643798441755284796682328435947722842967858434034616213050136623603881657428401921823503222276068097738642205457718585049662578769135627658498362167302165075630877848354199845197447338427479798372168495748517591186188453634897771357059473359902679658725190302665964136360060352900133024885277636142741859701889022791632960335399773929367215281150768666370717168198052802393792587399579963832563517778923259879071713045452024354669024966879684089115663857060682792268022948248605002466913040340056100970968061175915943862132168529007376715213177699417755966791152890466287325852821708339065095114067635925884617662597905745164561105480668870035820484142887093114984454147251870837595793861326527988704926506537720669534467786814153222850519194554069720466388616045785197620227484547760712420299123293202975481382241098503095610549459065827128308708981018794577233971498630581996427027090917783508212614626926966158526407540282428048456157839374983585950297787527334351690396179502783459474361094895560058519490860841368880186208240219821427441399353384524621823465847162517590114545677344818469967178774399556436786766658428691142814141258995985760693036492040152540701422046184633499377441295779872051817576195376112723034492975638834057350670949502051043204530419538175447120690773050748435075421806835148168173918096330754755884827086251745398705190434529457138493868414131698109561480307211881456845421377294610689627310659421330302734961951037306216432286566757865337421135738800262187893268647609504501686332355964206589887439579012037534595280066583224392730055499597985596217050160245768523891308149333218416648546587947951647225684867498547324148277411357692006594681716558252727004356645189325205942827104626015707253712675080453597488062068772681042159895453492880092482401573466385600132618374313333589361580853691699094203556384064232265620727092898012731405954012861814225348348748578145707697444541704639807898662347659613938714636988278872579596201332150071853239561153627732526263601943326178433660060242251381260015833003293045232851788225613008525352015056850814580613260024638066194428719473421528171657262606698992674822649330339466581976191103719684038068667757688398075884432448951408060545982253729679915668719344027741747434162635067541456910492552240545319464183132691380846407608186199002712239411525599661798023326078676430080590613629966369821287994435825608078291303889525059088539847990629257360615715193552368927681049381360366987897409853032410147213395299419783267524314009876829770844761651425498347895164992971399137625798751097254007903158818426996733232992139387930556192190028134720907237449160546824286622176842306580193891395314458022848902512208940738228858823488518243060216168451998545310845047699100554720213075929567477915608074008497922493984118892449974341502796216554413339666716335683718913603836590791925873840861033788695576964646510228324197294325576471571870103482943415491734474077445345049358519984204031819060992526334799037953411781881383994931799123756693328856047361471272624102090143004906262802647793464319310134790976123510778714836080840710980741263635807434614587426986835006028188104682541835847398573929654630668898004113204118716846574118019853881483794583183815169836116970012160178408861094032920115041202725037236419575451808909143944704896874900415261410005496460462574027243982986496848257548952970895114554896796864091232391034339880017761540790615475462151022849973715772918665796238099161438243036233085585269173233830077106229542312103804923555930171250441651738428580232801256284730749069595411842517631853502475149518988670806766264963503749803697064003599865569894816910399581281959176006185870274502384556837726597850375470148308177092740941064213455559607275739281862455642472763586454853461225574464533214900149272810333287221645804358086829258711057594917760934416819528129396460191376197899954568377701330792503994792766327046879506735676611137311470256558449588255319590573833542902785104784044544627562467151058163184221457094675113898647724293068828769892563530362236337067102979699467488973730629346179287221133170064311244397142999043296530848320968478628280017482556190435859349685437703350334735731153758611722513666642837016348852663235352059593084090275157203966933779022690216902107601056044966538701823153133475453038315527291633428912057726528444128272510896933401337368999554882326264324744006932121809068391565359883227568977545242380357799102207603130573691188319861755299659192862406590737714507114564049707144804944736863558676678510458639039036038749711857925975612433712851098857434441438803670738068606560698895028766472270360152835470623469937860596652469548869619209990738482243799419455746695924650602860070899655647505078899191276552786845307799801859060797432103379143605406388494251400201940060530375634043184608142236265557205889536684351734337402952832427151685924571057191803556208114207381344521774704735238015099293082906668276286991468781612496178179674173019205520206053763823830890192840101471240543755837734039613380788676586984635554868575372772355040473332351296805897926344828183514084396725326020199865414955944603440222988133639962559438996142753510531191486623749463199997422058418277709280115484622574165093352649375162611480563936318522856185498825105879863367720781468638944056971693494244991078737388972721849250188217674832670196571800197251422705007941368765398216733543042506183405487602708519423489110454353991057961852455231526470768011583465461817805012607733402596130630298644160060511911298920655696781090441567763501090035950391230533577615134091131792244955298244122707415475732370532571151781437458254406736636621052048848223359535815509499881114943758557336132049699178758432923759013774518198483940787426308527750977145382545111779310957251530946989378673599039638606367035292627931556978919461877179432904731963855471926769091406786726323306089633400341297555433298216352540705491725128397692268309565081588622171155746572612302535430730125063667753446181257194369120332206058622798576005941020430059216321076350055599512422582512626897720537176625185456127562938893544782186841179463870011182876953626951106021252925388365111239633680899587783072883814336055305214581346186799986829746744876540106562951445472118794947563626799485123942885871161368690188009431029728033401438356490342316160289136834928212893912426423686135015094609547062967648280510740698371954034387177014246801054517870834096602312761903922704339095528105372631268351770111855785638563627311207554705591753987079490566831880900771558259043871499499313383910054433774833138783881621227018296939237033065498484958366123031966528689666566945358347309978205426090422417109929401221030499870566070489875762201684709929470639609757814461023017844098429697074061917186523023045652944916548170932503917099055552349471807173822136949905670901146075704365998615929166693166460845907826488240449611784529403977949844633855336165158131453156242058639350920143542003292924245604942664586171071131410320473822534845411950622334714189742880784590256356276452219011282187407839103171922963978144788597515784707682751280565979670263094353211150616873887592264783187612011606028962854341330783540686264426509737118316239312787305507862070565123009549500801945289468801395478277104608373958178347811355737082814605575809763928137131266226935619728363856389913936460705709878477461862668782299429935245752292470402869406909668907056749989487551599950190177880551124886093080405717919009382331433903324001449744146736568298483445127329078898658494861723296913583417140942569829200800808966677937215791014820063664818237972006761478663814476524105415402187159270512149851426037164338848817552755958098848536329251165593862960328828756387946807153082900893643287658772870267622480818951383830436000056603084077657354978476808083256555457546788775093417381185547637920361896492817942572607173888083659424662573652135297255446495168808920365103207331586931830655308268398001922117964938326566858162839109695767541104560559207868538437764812171617026245311543510251478898633540154697696096786950394391425307061006673304651564343184273924812517581410231053895668986180344401612540648811946306476131252670950594842345180985762509696861869784899966931157701914951666678220182940015468878014322504429676407054940128087484346771238553091856724643010057589537558174286800674666299818961681783888610108021170003199173505419735226590942916618323515790871330511271722004363347276537217515490132884855873468782831637486656435100158550452459193028521570644736325638486215796511945082688007696890014240147947492584310830979000443688460943581121485535237781338837645271674740856221888534801932254414549319568813549762667598815538017762433354180577171101384114081633528037303580961470706934811691863622333204767363541166675182418237892335460803351909085324816563276367287578131965713583791922381911005540130394120499468161154154677810489301023496055465672527775864786079681733889034286793843980144696338652891250190115163522867206610457979942094934325971640746343930458354093428371474884567698449053065651779663237708740857638289058102737181717471551382526825951759943153951891708637650656803732234103976753958550980735984266229889472768457160782302100920989214331259598688716677483828110761791953399027713328957633185972205526023013392224707687140439265628912038983202655634443307437026580390164359850541001551575739880873657311561310516714240416712464251509117801610330321256126940771263752316362624237867281062582646127470529740891038309414681657511428944162838700090359149070954452993400009272080776660582139224055416143724027662751014326131688571844839283531116574939686163348192223828118570045688158167825011749793245052038252246111172190201326577427235663176662208749746392622638964655933045925667176567168355796878962776285651188416318680256158298468128723790855203862881170028675080934517757373749544785137764310187134701437467645396139194497195213927775871280161758273128990642538283588444694030625836019026407409377376039102442211672269381688436564095220894822207315431713222484780888709763918773008980310989501328346466091827690955172756393128676518117486908258325828544222280023501349992884562759407170771677343204938656597998931572347698831688461724195965971754151257203933102073004241065775781117733574410655327768783967110883366567873199248162219413260654337159977669354617081802191564965215080526739637443321140722665057019137280148119663535426303522222053270352617781757104035513950808442340319640411353665399312837793606726206072946222407405416576627991910827301796275883141327551863881124315251707967759743781756637958892898344703979493774174618064837568221012560622356982230969930405503974749064723923369466010987817713277667028931108054612265554466976230085222776964957517693330421754305476269635677088417403815681913210716005585875340096961045124561010592736477649775525106345129508689702782545809444611848490300115096412775794350507637991560847403823422845002713843598544356666794177789960500720577504067703411744923099853920306092059580496745119065997916232105947633821238965456152611104886909917292000784689678046267804395974036021532956963255801444783103734234765295122295104621068808848050215017347525842870715889443530837847854940146265238933032016582705537264409663753720140443155181781442597142978447717799640243266971820213339749420077903254139183197024743918989876087332328362252881987754386443646883249155800655708708731412104104869534832188327506952942920050969394157213564051009251881327841423471585509211907000224810868416036024175817202580860527505252710102585571927407899375590503647109058642675752501381626650849309507637186936060822521014033542172541706595540221905972513736335354682126101828908515252374162705278845926513257184695447015728664912714805287691696361904843758557732392363672568163800871059171661867051108554155501555998786456880125595954597422254858046366480283019554863232094904718727667890946807817269829216502035863215030108521436034213358970638924640428316747876263870379500349151641936897950064336652131565561953663171663281047502353126689227628437394598819073373105307765566910695507901386699882399769032753367390519437209021613856042302149783541047099772105713988623445387335143639460245003303040217322005119055757087690181011518532727629158643666430128496919545922457363804849393536369417468657792725742987608660039857435280697661113375374380941779491139196220254722667959511929111898172306122042477561942398216780149143045167671766783450307297812836509241422574632515870717131180303576135337761705249327152483829308892147459105224581712212375477425591733037824309288176743146627082976039420889494645947415648381590345425823692582496805846171062847446743944388475171427056080504936932353913919245526066342223358838176792599547386476808654313318560159548782712224630243434166865782002319523012971622035086344349783664308853544281649635313144917665586580776991106080830792448082090575126619413643599713031779336642242769193140776083182553998375836592636371058855993472059459410106703049982896179870001598129048186522792894687895460919526899492846220750251914562802890888262025270165833523635196879834559600142241827234228153365501031798568267683804187164838539989417994541240381618424811959285051071075118267486683928436317756033538237048617600929275815199039434569053335588653643625984743827440243923014858606686015945040665863227882062574873938170238773350999297356852172964785381906860393743409409686516892526171472603238214796956787911720945805502505460806669515217755951614278668734442731984345104415180131548719768190982843507056980638516502460095297648655415364733979362426741169597553201405194120075711457666851021288447011121418105663022387847680482627751875954544665913024746657039414709298292144036095338476518764094728630256313102227030885901610328129816412540511132663625693758049269567867734147299174206630684397137694295987535384684742165159823485989902803737969287920188316960966706475566859280759668349763753619752209805934016942511849670572191074217050168555003940319383041785594488482824214763423055127577923189848027919215493394335652244298225608227949855935123237796514450024297219039475958115811018430311751705351145349160774706575070786570721209895093360078036262497534299239503819008118807089376774772747234620916844343196656904311956002435872670313723378446357441176544409637549460884921040243901362036736077356577921364120784150925360867285770745197919153341769417498076865379786397903260647265199879244179048862202740822837626091356330614320162228954740448491787740387862689773453931507605781710275390941272134602886072981372545996125531164059921649470187553012767107138460789015495823368853864909399389649773170422828698781188205973342661205065202142686838010428952747321667571091323571737095933887050215557286382281726882353463737002065921944169353914636887463367773593860689054228266857853978777617563271497626111186381372695860882222442237738746712627540072040725861704934733610874852380515185876103111856870484560393594105856019480387304724770447423035749998215064338145771802545561154477904042874015954037294162581938872127235569442563329979985464786902215901918635708422340471612582099542720063417394802986436800970537304435235216149520085330868130274639557945346731362037443113547254921161753277849009140175215792448998388735056416822945988529860978648969056272391482478270807937813656514884072335912510888232262290772211985469464693797271746992058471657795353127911216493558286836401790543287730996334973657541607555095106833969896782811325476000018024667425093488964047831286549978441170406490536165150190798913379162570857293628770050635986238675647642953129672438477212697406848412514607691606206249138345920983150609108264876589837087088062892827406197774735011499247324363075580627782969435134184584048633231735744564962194052087000459407430076384496799863037805205291772971882216797513724147453016254621200218271752860833676255508861539080429718160568814218297983674577580035755266740684380792242618078119357645078949146082855731979251578173558738212398483648898330657284129951899216453569272839157928701920671575184772370867294627402420652532573733117067139669839325117417006413120458698312629629000158050768188536881551613474599694305021866591061029177100587117773173881087427422433697763046174627189986583798707887534377801488439274827076651978293240596240783736967356150464455232194929530313487271276330917078755496931363084014925689239970225812056510382553348985674532596618052562469507647696567559302018731821722218827101267178809413585310948232023297862885348071077806488252031267755098331347085774530918825992452593506740227391227146332590406598130473826610788107375995275288251346072611440504671417972793361529615390657877834808695364144835436178992923322995533840265991119680961809454795428115469568135208616711102730831201960258263620052187033022746725490018883070038685866346727678107733117690357877104408789284943050711633687560468580558976243286943532797075434756225833793296971046978828402235060560772748775076165061929996057525725322522420158190345183848236244033943894366553544736407869124939716439499476006545355762168898272182393158656281541832398570461880267927159435442688152328110679315951827619790615779440787382038972917945519266792600886463031740645767488184499173314903041113435059680935239032647940860876598025476447519494854576644990048327395609458179731307870343918659239934767174906096627264521259405327340367959992551633580519176262501303664028775907818983629089960766667849577461848163312113335885407430110908121909976020758971405751336549571832925733544669736263161681984754841497091693161975827109661971468504944230825873747252424146124219407182354272298235128307680771360013345183418529323335123412071523493464879515148758417481753220605207302981166161665995468955701378321966729303206644639706856484263458072497477754254142207580708099989606352879759862410799078619299180887410137012561907020528982986510755117177288541244072018276226351114852596439585512838554357387428265842813468195418238642106643787563070443219299924925498919448542030580536845831520085741374496096229487109067836475725956477180166343613673626670437492569855443135966383228035925060455808180120114937063727534808690785740643457565824944826515442331016164936927937574785961542450667843069018393676070568027717729207197742317110693413454402406864641841284463737589116075660797152807805583098066203899761708749450134504355840030575730575805087346860730346496375492807238490765280996987800743336881004499731534990886092395855048152156546514688589163363219418505593886149415270535709254050612041721249051848967746405089732665810795827296833012914854062077235204924580477617389342019433473356844647128661809204319398964374625372102482085539287339586013561437377146030174825679400463952766758939892657865714517982676225224165311828242216980738608701482694496030344299529864584722871333500116026623543905415765231621479922439077767110288836480356241105468978115390754524922140155461437663185084245013788545936659695225719612102788161808966863769038032783297113222109959036911198782318824640758899043975427321888816452240151943196800573700447946589480382160076580513379090412935930116729310009921750750679728626991410406341114842264273969670526180716156399352997917304476876556047213482478303723088167590928909568780407810210329401217320183113064415779607309155277284598399745211736448335037357359001882511737384389616512208696639738254240318600536492914254990451945422813140938432324953482997271262494838673334880003241898196602927381045671699312260488550911008795040495053009132985348756958358039593386077471619462887584395852554915360352484821855325526334054100057759754079623241598777398985298380377563164354151130231881007051440886415139525425983136002848196379199327691784906815511736007128835989172168088251965247249392292135610839611450998161309632047931670018925779059371335576489050423500402725179486800623264713879196576280412568261686808314135872537332661528414116336666960334702866650589319244203942871553781288670077991222442964302968442794139674684031878707378019387182331746352507532650196040305801221882171641445915668133675883096928312931391172655738402323277271821409287475951855179227069717025807536313903832684260121016762786892455427570666941138754497666460841459784643626307745785863695924510447861325532839632574727773117713271089323716025155632780072576866958288731572028092371801161344062087133667243917066418485083202187826917089478121310423104805740664880425723575607592411052628778729567263767513566068490173847215064728307728942933523347784532773705161618849272761098573117240690116121930782991191406519481203235773001244632660557051291790185911511887421781574974899327099402683834675627555537128003572158762070188950111717642703448943792448827406899706234253520674696503812880848659004239933999049602379168364624386287613368437633828315333399602992564264351589775394996375745933289953961445865669105781302072245496923711234583540002653454026504354016039043417617950671021794566204765882347704053238189801429715372434484369535973454931056668830406750009931974014794312615102623891113716249762187013864950016890940582512862357662665154328570425316138592903581929682014096572870143310220371011567701587945275595326477156354648612407041144501388507051402542424173692663979595525668873627026402697230737248604359385848853463721463962140188306207781503386042869050087076168217075629797336671218882412870518704171502535851158767340426975134806676009605006505170653182597663475251623752346539750445886481420085457140315939682816767090745897861299092580597772155500113530899082409389218682958977746935336677117818587934885651619763060266997609644130206783974429427637444843245305738022844430064269119373752633415914845397136534122916904254083125941589379119319705778844451112762393900428836575819660634260852317917888954964950080523004490937162577190397447974103084536916282761457780674675526312816864861739866202315006417595340817366649413030453597134966667622363479761570063181390579859532891676483596544985174595125567850330681277618033214415473713754552935601688395681178040230405207966010177690844388932653570895186170242530966001260008089629873570930842840181909921678951651458184500054595868962197672349522848781477850129045475959132036675654899361032346646581417992118260569317132734485987240307449913063715006115580860661273645552052583091530299595440418699384863578517936248202789766738955119026244815084827980137734536541847980438588075083318161491775748271986398859027713744427487840561744541427043412967885448075224729013206819179805317791275721873339445152576313892156467080632901566110726940296147599793006252295511704320907153669507504276571495757612111778152724569537841607340219180729749307054288354721744786860433850245912029519831512692629061747649724658739411998296582397689058778080307512936022073757362322967561319156604411732578164105219552401641144830537052067347895291431584797281680462794410537415233970323025754004869843597637171782026313705565832980197371494766081228213184181402959087229403973445944220862855104273480097667411042804330240901991576687678228012486277149605065217938333801419406211564075249364770572818798229324351764275418997294128306040535294054339244087669246544905229165322170611892181651575459268962525589535635169135270441373807296362543994152079136940357620200431993273692286472264962128392910307740748332429885385632723295093467213233284112804567033728965120031667911669060267771022975556343311725224359508463137881170441606101413133170053432388020436701451985654087833827434201772786895209532671257582918887184669977798791062708702334457694291023240998928683883702273707276259695924916199131430854087229603087455026001302307978352279915942351797377825352015824414057112548798682826759872667031169934009281867329938009291351248436965046478797511012393935742734568021706398441462037392867678337207099538803604683584402858111699211004191488965362324655970499096448718046894113926500530558419922172555800041490599571227067559729265258271534026673490079582415368175905724678152572646224317540322364353980255139424753411806419053383513569416560458633514472519195292454644151299552731425773020849595153497140896009245837547688831490714208273423344410931577393391158045659329959829646159249113438703840054402944288038558090008321943112451574165947168543149813376403940437175393204498672286803111976084692934512116147615909032157196940790779754277529764912528476845273703140247946106845478032725600056247029105546232397590202686434887514781154841343064155346380037265707120253298643958106783251877632065669355246563143263341644712187755601964915501464073358955793006807059708303145012083355106639569319971799496745174316528824097782187464868101279789953891267955111552492764908817316027037386261311274574902535209179265745299843237261109629772837623803626637759724993566757749014045730531869127592050408569862701630226244659238281936075410714464488348409384038844462588057557406115554267480924424127246303970321598463596041937631716192506586772097343422907806126963660351577942635380623902849939713138774495148302260975033083527297646688082073852803881811568874015818460457707754591140995188377049777986903931055445494292462044870297061827897474393352563196993543578128671624830350201345367076123127105773698781835464518919400424724632762424391975493950919121230180249888403795274664654822131319710841556590516557946355088642630629352483192309843918841194563462560004104508618505574288823158213512908759595144881840096911129292684888256390885300018532091659609182476287765113456085018837684655320346406011227646198961607980761378846306212219210810130627118640388621599914828726418037727914470760449313999446518351779824470439789718741637729434707268742583516784795033374987839594514494151131869249060218901903955103808864883469251843504451939358007188751297392775339365386531768464838312818999839595733642901581173677511600254224711323296109244417884365207877989976450707015481932221759472805002882975277521317486572434442261025638146834437788834210783644898505102921651139190097055669903178784936521125939704481875596864913541448254312074824345387847270279040588712518719932979923434292266239779979500844832418987394178560325666227056643156126708628060858068736712428851389822240398171752096863626627966040051772701504505474150455848119371699627323209775406932618238285471112534005500539372023499183219256708401908484578997663090172610046131446768794221248479301284785903084232794385586239763786839074106830724629884051538654295366373156599262023214556058579347290538103111064279158820917339205549340491530636825914549337361077238520566521220283392042292500344938732349220978929013799127475549918791007164330649758347602818259750630153804490755707288513018116719936136206239961349895847458914043447181076868731871348615943216869943343665814144825628928139136739876613334203771075714799446139105680694279023962204389171770663926298522633410164315100099617289177239773460598420804338331395498601395193882126824011058890643011697068425370689540955661163576422647849980800627085489204146311108717452413729437451661113904272657742640517886902792282102743414968768340932238032315131480839704636151990335047634190696581000283516837749320023117930462734929599314337196782840997084464734260486518150250204565712180374760697987521285830728867713309786108625031281474316272068116890548972024848223179046176776106855006352180958401924689123711778511940040856405235346170386556075692034775338836144844797920159591390350667255741165399487500155725325711173437324501119749039000756993982155414490168628697840936714059996848049452576506325400940264339244476323527115728206307983277186547763868901807707261306915922910464163343443341392620329296753835430213134950068035891836234754338285221902240941626448764027950279991424898463918323181666768008369329526726227792749272203935804539437480190319115900145118974331625683673428062207401595010445700647373289437456129463358281397720460032212688700913162960689963897434877884733926566355967066941781513152872733787310927486914362574593998278977931122532480622641065084126709389117561921920279750911438500449791921134929675617022976388298708008284042502251379131607871632206149536677652604638990735536459071274505688539313187856044803516099915404558497170109914626456034476964074908492107159408361936199730710238497914299344386297841106707423159583097393391441744526768110987624680386228591127971090154617990551527310274551228186025825425720634811331978928437660994812471939340243727145016553730202246440560678070482951828765347440943869437329172000964635363005027658614821970481243881920365046241243540250241123137731943321954650613289358510994687062132751047647573343324786724001830223129992973790000383816902832139313751992248949686687765631757467769259468566773420717746124633257744014692185389689535051826367280702212282515627677230690185312207048975061295717588376139383646133636696208412661498965831355261047416173191850017226733074812689867710482923227304477688934842857817547262316002537372247899779503481566538662119524114640117785944509027530796558411075917528448445426842391553720699174448885412668016374736652657884363800439595432763256211371969687368488606563085215138331559111123298976741424939930410425910619723462654477126232889400862065485897755001569696551627253389609712031877770758383742968728579435031649616808783536810353713557893207716580396965920140084419144293244635300782078175195641291961704576725798596758473534529610934560891356521532741761535749247851986824117956278344532502177102113025564700787971245235811655667273704207312561441644552600207690228849495756184650478867885905911776253041188629186698262256556218999362264760506422043079011259436478266633923289089708897604282747995287424376874485222071814875355876373057116791383991326196916452030320881693018908787763080945490784955872322347166120824254889796447939077031597005326362500065964916002711875029902100839990673858764757533457196694829418550689039090402887383262270690939183499159577823043325754365962572016698367483145838786836511717355659909761344585785561991887203128269966422957756159343904732400332727074389785858150082312664414615950453120417178976156924680138854970018973037721433147946591027488508522082212224234918758719608111215392793260945134238167236843593674572732079388745510592710590776590979092837287658555104799353549426484472682024282035891957159035238466122111280297801268159960755103464229841695782911563798443319038341141702490399434163261947123416848930688965438950943892154054984658718961635864691853404648784918600094561958253418131078203660600221031483083669456949502507142006919676181683623376864926776144246506114473399094954837172356041108044885106494609327153747117102353542513119216363821652996380174961551650537610636984500198400805003421492778666474274171405893857468428945097612407614154798444150470418637896192253711009109503769831738321391654748091369528774786434207223370972390922426480807271118021779262550194939736408966823120348171051556263240982664385152812876044004531893364356775825775297473356197001336938506196868308865087679871432534479967336345757255753751844656005215484498280269920014251286153900232730800067412152457395267941127003051845883712984400780531032631160241088474890182792200916373351255102752567887754239480574214828669323458121752547913799819514400132004342089908998455860669644795016747019015870507630693027822664947321311776913092659030837973655455486214902620746656201496426888886077044769045964357041568379037524146734029256590461619187388191452416863889198212057336869946618539587585257364623631421532523322944816232839660954937523184991221325777942768101412688210318966348866520384728418087039533346791700150982965425427201198742320682127258182832826559485949319774497622690181089081115705451369470365706846955823147567630927352599172003916791350837127673212062689692491456875870460780416892920557928146343578720668983017848625378508615452249453876270847870391854605218020534699455854967161960171600165971777238044576305021344331576986676557827871650640983021641173667113198605622688224801297065813436279267085880471179944238947364177224775004064886205985676063961340029956169374411409478015462459345559663515669676519903109459936248258277190516698038508870347756652065315535404948160742359406808344871003274907138002754594201444429644388979495132243577448959736998732175311661383190730720792614777785464378629404258278831430579516726668241013024017121351464513562705210585752146893453139486605874154239774515591263005643724736440914216004181175849974748308581865008365802413870715140683677348946792778678669986971492599551164187368754813692633316560654190667144149746151447357689829371677931090994783041945419089319429509471553200507861981393448546118198307368302819538687224556655369758960518301003320677060214565150688475184206335135689293833433415226795873277230283662700891129528613860923052418762921082071247850370337497152384103320055825342016700585951099079556231393601609877061108227463961946899675600225552093381264116264137281452594746495361430535516862662836621209118480768350497939945787222423834053217774915777438542117182015954421423978181450015495594393363694759512475622585345365814568701842531950762651332953054157774572209497237566700431491249003113499610764995562379800780888037074988207745165164203447754150466649358654519162464779279109576059055123520944243396085163221745031421515790900252738701947913982356090943102002337794090908096808491835158130324558982390787526004114896660948675714965558711264480849341176511990585094719644257152856858167605067447857172562313977637865624203850409125534888357547703911929435311879992214722596014189926698558891033320259213694466275344990854655928230640631207852218630564522739842378577961404351368757241817370796329957686158713289848042390351793289141187344172227281192053134516672851684986085780328933140778164074507804623910033914921834588779009492775554889369288622142816743872966051880160964797799630743096911031561185444199649254879168274819310974043607194472647904473035252183696004807334971792717685679471223140234528381056436635606836882470156924847814699093840200105934495329739980388477290601635767866100388079498247857931062442390317710484339997852517918238920167881019667650106087872398726521169140237295597986362598142923868754107803344301059759271350993152223753710477311121814799854427118941183215093978005966363822027466987682313934243401531665140331965858779236085149963343608768107294444159415986178864764697484328584928615158530533790575338743384551556067601308093830913589443766584284909190798137469693497589043556576189468272026249228907970537303881831241070154239967641329312972844297397544215018377493620443912357442546875673160073057690343502369882364775633237287729336202024462116796941473506381597223434518620936600791550121482314037974955624423635277481740782000879928534513264072097177369910672374403312688985655883752998159650132211618144489137524328028028932607676873200941474068385278657827778971725234654947946425489686104476164305521817498912643181448351638388917623958055153045189635670915387352390976515385893345636509716543014244749840465787662966898007519982328240914709794596249028739398259092988481916955838486453925270484767803717048502208390939097022235947448579916207186776465852534718799016538639868279386163043044045087791284714208788252916087287223811158070715042625393389083444519006432194923587806994125866287271793960899835125979134292731553253517612581307020723536038369620601672796391155141750970293708422861962591718774404063074638311195856983103080132865211036406045661755507027586873848239219135152643544206949193705366689383995409053359314262726976425519918785960431127695560660054211598761185463041496338236734025553588166246797598503971133233574092235505624596612623071170956319631905394225043282472629919048513993989492572668719160640425137481057465254674820085619903993982570087373412774177610105243912492089754798906416421270067888555845617869859036942173726284230413501173883318452272101997671588563798067379157838179755089925798193302925991372815435881174125799422780673392714863460232444876229991983242202823385665338150705724579173998860767207655826059348541046824952039641376112276594771720477896093101094773900147256308484675549520640658965187984226337681814638263803836668216001185618821328511864091691218844425453875659448751093790213722691896726681830686873529994165096159659484186050106158524626903800766333334293914221450355691665371746788769615523350405089905463528900265118052278521148690512793348204545276435462299277497729078707351511402804690752578364522281145345733470133520990292079050182974667427965099366567130605887168811149143357351237992300071365266885131193460407823212005406943710774082493712875220440464950847381067536577664509697002251099583143404356898669655967750534135151179511725235543966988886316929132464838960211895966414727931882614116765578205994781530624861164515739289766314685303067311588372728347780934747142423228459379823769270940962351977330586349227387758870862714685908495663151268246442982309299416535951687275026696869440163313478091491575493490854369977335411618199973369113899864963245105917320189193304460443053048378836558188702303852516146927832631961787968265725219500157973476857690406173334945860486355261453225203080585095302860290483389075029333210533956116573336010762182436220899540399692235404896537559133095928927174012913072984488080672058161814782653481835997929806863492889687524761018185759591489112311723908463532395045786535627885315802121325440106048942351916932035360007334075823576796585411663524054265409152876515098432609439985292415462001252993146353280938807405064577059822086901570767609056557935660278596130825986922065125901469235084041546673480327729397641764638760797033571141641008086377051093276378432560422874374518345024776272127668600396203940989135978624718833143382736912585365381778153424891931162727159554883182706042138701554443436931178485003131898613193795545195188874657324954611172310779162793440993755556779715508763516226039986637839075545328707682764109582394358077336596761669469496025352855023869237819350480408148493039436193051349601872454676540736990000173316676696977565060469605571406894801884434361781729128586066888381564301250406671561526141956430419023365287131230858868206872546600426990236981512183224285489261143404458774617231866485216113012523659728693047738040493977260612373750046887981462353732328318996814153804582013353291426750950237644413812472671478493002881720331992506962125205266556517907778172273654127014850120451200874995276139817734319150702039186170028515532070743437930516038519178447880168460136770610769098517432933158863900712581923006571888852812092814565180099816582088112785043621369591096206945899493408251872400446097213561250529883390771407605122393219150940365617287317373822619511218610208548493618887827139050304256231720220429204120182326784234648280605872035387188554738613557311046545891042244560391622495569161756492657536251259886357181781781523885102033050533638074174195942801626220189644949085868016327598990243934722299494695146188772105852181085404473632948175096668081822946650288928360350416341291354676829585143423998005497090550842946751980501210493673756116656633777876754717294731855269130821581469705294359479841013501405386917580178466444626024085921406348758645337959964374280336756841745712905723148956103783989740771910664233052779372874981686847634034745904144657302280807562500225828860314160496642583276418589326172019110227308214783120190756804504122650972096344555629088996036364700874269798084968144415889235826904483869599427863775844389697059431691635840096862550586548839368792636524777133764205515206834847345580767507349668176287773849186308561928961968331879980453456671756482578279892703695989958840903066459562549291346944835988706014805974288579109673366413624235325546033322489184719098789676598850216176708293419173984908379881685978763401951465560312171168869360053641275123483030045627264515771383980557293724835704758493496284003546658754226548353915364771397098708337006879216553474555305040076037739674335618204102207144526661249290716327890928040530961339030267714890796864026772466962482597188669014051076352135275264902514511028845518254692963584319572109541201887288360266230972780295895713556555207376390391888838657422116247797316970727175974777380703651418573815449195597984972440406135409827802814059823384797629945027766616330112157190866007719244942177340120259683813287024781749972575230462883609916209765574361137375691027592100582603075972594679898625448876647662848161617139197164376469289405581283241659018381696995738933198825599387851517190403261617407166144981128092627100317105502035349506431077658000528546243835445063402805350361557898381889440773590753766879766084591915724742832583592235020003899932151631986067327004582621701280864602655106870675698765752160867046520955985352465623208220878886302252814807596671366398004055419209527483706032556788073241625103689536740280586080729779788483980498825517425707828992718660443599679027997672383007416094229260860647670378043800712181106963706395154233902896542371768596263934619926971472072084402916008937518780138268082250773782245784938304200436762473891343539342262046984476580176061703543329094257735003157104595834635884531466353947704730113287416748641168852866916622684576920061295761800610727271222521247812980267301855131435008340750272648406092924700166676905249766503284744848875280390130087590601882042375900107469034418629361875592491888340545873329024663662501078122357389499671605945779666987655047773657136524183837046014072883162893477814571418978961535083721334088890562221864729835915115466473669393045045441816426368656010948382643560962036204585971803306536592198149843953716574778569871118263076344925703889287614822940054007954047936627496820325598182960101662102846024294480820287052865182661560309167956198725121409931206359552176409034081902836599769746816271862261497763807224077695878213800717739732431245251298135690165701972725254199087230970247792648758847629294845106195629237744337375810197266024284915695637864939764445166929079291789546787467146399624075354666865387422669203063968831905864157025393652203060096704113343095096946719125054702831744654748521443487237217013907195660641376566827100673909436530690672191042406589831938931750371221407137352723486232114736670634528494337113143774885954545536346587234834373885909426068123200243156415525569118441443704308939572721045882018215289189114052658140858982698691618232602553970909113704482243604714127844826428367743962303896326070869834800981167659336811605178343847928345264998406059048114051086103045110353854518681877676656845846790217892324843526875653910962584303736218396805908522476655171643906025458590561153546434111314781071040654591084407084465888271189217343426898403295781484399070379173975754427654991852504931319268778619380442480801813150993076240999737030244591994425561057469059656928851561576603314441637097834632233269030860411383582455153461117868351666502861055595521654492042048475031709385489319112579602456197930799378022477782431571204413818180924413788628811080709037538166737284726961761030497898639098007233741737720721496008057843742557539298421975698443839172582052646132009353937897092975887323156217914331707839898997289764653010352297477434934818999356114570820726940543929894430548595029605355345696722916146562356195646943876653552270815637875347300550832740941661643385757857461973212519730214530490305115591625598431294196033904622811492987298982723968116879931592414855315576964424865498783159055598683054009199337419344122402429116428204847584401881827911103505979135653335510064609261509227301316145772381987464220837639950508021295273347335685102885643785882192614828982660036727008830938531753819090619879879337281673406372381902307984854190842726823708985948692237612086420913508729775852803184453548145544158202611446109429201467570693519680997104400790526401082563848129540924066743392896409471354888250674964405942855779433811325998283799140877779107078177744250663734557958250870060165609549873517533508976316708695470074719851860515611872947172053136700751815268057471200176886029228107044139556016395891343475224479143151205262637938471552857352070341196585975790834182609929613165032515645823892023573983097682671408016233460229103641463799432264274335148596780102514135862994175680718352095219237182708246698665939174545631213816683876679573385188555255794800880999017962148617215679914749881249235142974605567560773538657093976910695174126371140200024920178004442653061320124134282293180925588490317429370465607353499665564131541825907170416789460007280214614999498640529708726496107082299113073428371142799403737835720515606558259255055606346855002077930302242316044598467471732928676642130733195495744237245300534957768933135218794520666939242171583760246018458981117999730032762771964844109426084264528491038283666103195637716733528359970390818701400002459394120476629051654405943957512856616841435105326228492043671984190215936744146627269037221168178217619496311348973498007685286646648047294240422884584789050540291033063648968736490223525172465832336297119806209861869043904746246329277165844904685714038502175448043474439022667153119759910838943479734135829545283909618450070634691721412346550981939700723828252967015521023865812734284504175981431568605124507290534996611612546454222709824469470414759996749921708361792368428943558009819365693607442723414026582862061635056071348260335189180431525813143231313590107530773210223441060525964847034031860086770417194555134723384172556840743228097912780661709971508083127044667348309469605037860492734864353213367902853639150626136857591159195482925821872585660721920780327432791023539468497085805034728199905496040852048338657611108453899132271376354702537047510297036597915254248720069015889581701520448085340581056113351110654173417148530422714496459047586304532088165149991358878693270545318393537621122427900842419742669426948440939979170233788217189509114776751243044973061607005165235269674763308673322932799522194475804304376884055356098827961292948114438368389325637126156324344894296826469182662783195566961294916162546150712368131936525309065613929234135835793982439734580673309284216438207493638517474871634516674250865421335528572570773844792402232210389672181902067984611037563565272795769328610681155723736917396067549950467221468976622612830221894997930614657008802066192945824600502113051975797116393031554425825397858481114471027355489808289264057555081713211529749210408912674279908353604149144104420936335329425102305490509048564057671724735061648514807469029300193040513681642122634291264067827340529145749622824016243231185495158434289257924268968693848737044556080662133744185772305871698098918219352586661092619526515595731256141510800373158641409018592109306070860482825505786780064954671884955518804657710166718873655798743402891610671247573183556825554878129581475489626914530639112897764508055798849548908389154235051079926346471922127968302136294999797901678166354914462536705938600708248946390180977013499105950192117979330070871706918210220502692141379275664917133709745228221959597665176380250320007602968277527682891626355557126747908384787396324207241542979382938190786697369656330445930427666035666554454888088420751977151935077676562437911357471264963352547427156270323367092467946893387030214993510442424694298701629241539665794202971388844877194509746090241718004306497512625136414740591452496625401448768918956231023375849608278837046874333278775971673862543697656523279277752423449155221005669213053375474056658773953634564941122159893726067636139619482618263143000697964288190657443696407925026307905873300660212496873893982245078242974299427932555185217834585305907273137128543350504449747788448128950800190031474284697390179099436476043799238566419105039442267673097148220907947144966666699000517917816272413494676065082079466501418347407479178706372774094148514512250693997555623484205018964280521551878368392603081052217858254577730390233923272443124544518851178149392733180101505276793155155160253703847220564568170275206938533345365074924545130020063975105880466583387759214070034686943545116395507229831145361725460682109023570453316059660382621991773606721592611733450896373514803186917325310980940029729499601553726958091709153253667447201702108126106409228085920536039537328379167529768285281798848085749216983943891766446441996455442066137027795317756005385459043609110053579216649485576669963758382391446907035497799036052129610372716506540261249666502087329319412633761256261776564903995676913116903989446733156529750005023450255267029580829406897789695578774458099726014245809374844214962063092115446337160700008215715398428789402322979303098444301660929670722842731325057663694594557411690500926381056343086459938444798527334551665632115988314118946856786300964345137033425520402087209119204328797772945647969634992486648651310943479941889322975419460389360764126546760780735116689906357663653209056066935935690850874337416010421030277932797257842045429599638623107749039268146118989548165739082541167899086229269851312706914485361610614624128620873122380459652671258550330721017067465156457647523105130020941338775367350677056453369670109182582159019172966791109966317160391958003776213334098548839896032417619700457934035727845047551015075040653114128117669621783499302577878827303566553476528683792196379077497368781404510229988827619956645137561238883859929998061649715591922454819045726989972143127934232626509440543628086700065106302081226399067241812053680200188871720081142524611181046758012606781612143403294451367024335241156913640982637463835764329229841951124677351933734160877726202560215871951109355387994984077759400534820599236327292555984512073373075981918024105291235441833797946692098620706160917346132943910547794512391801453383227364187262211529728594278566129849450916004341941561731830199289885011975132498857882907650326331670883677408723623110949457992851715571163573194873373506523897445355505907102658301425750167775143899262035343322427368326692762448187664461807304284645706676915348521488781086873382055537309545175972465172357419791012059937002455612625230245524257600271455739949804699231965738425660613825428205917690630152401278316114593203238318458750780508195338556748799061437896476426794999417040005495328220802746838729775156349259771808926840181020185497033028847649838591292651836282137980867824743919482951738331387779202705192201505795189627011380154148118876982630026349276558962925042361648507733845677211946081942722455356448522122729383305817698383698480302739647697857637034848753385566242344570049775476220991272893707610389344796117316363805168526739299394610056263360830444396559864709597051721837837253306004022820030682275353191445155243204695487695384209267402104756757029555785007209477499353483774573250050124431275918105690849095426361651013836981261745606045826341300781055568378614362961682062787857749014570578350903649230242759950300035880661819438800096483788536747594541958219823121741000661561499055462437115664372109185375589406283247499766080263016046009720115573818595249687372126345746565414977852936493918478966668878397630894159606325451233381288612842881747173165359761550104657261802238493535085435112323603071021047235134105729831008223672713439988108653769914531809626980705113958271432559789074691127056338527002944067989299590413925345140028914605057570165190674197965299981918887802750041864459070587883011625893643076774040935287976163266508021018723806808052782550001029487141615943141859835323905597973118674524399017739727203251890994141226023923910409193351284899759995910388054014761489727051031280055163099817965915397905500602485715695419328796717787766598959035007638544671522275205504738875520223449880233294749478491192200758879842256579493586853426745914219191286722216952102591176246840221493286599637239650089094558828444312050923852515824877006614998021683312996337653844160500552346410159052811300266756552451349110066239500156650109091922136457958091900734716340116239626336013848901498027610179687486691311194755228149065925255183644695920990562546864448250372967821492365079924400971248741862679783877597274556334241952819110822011080530494234311894975143100509897457492677544586555757854127713100481240484770892325876935517274785988297340692584050098740132853736873781355218942427259501380743295709313280156977347839220218861865548450514552844917014428326027269072296939709940798481717775262834821690095281284735792275970186554809868344322925069596047659462681120230024119442224292864640941323578136875824222644044423129757529420315142754332945842358341719809751136225969559904698972041199452428815078722828926581925524538260813993300328915571420906143893143895450320209749301103898727286701729435234004600459049182623782052336093456347466418139279239328832635423906983816760759253406205893667545519793099624278771752702568726335414445356300090614326256534539588962996824826767024201045097583710878701763863774803261527697825924715840841448713589234994906430279975524963991595823016358840378250628631862137883881771545637788321484886908857223158064869929638378097722778224996695165076270829514690301358465395323840655888939889919669472841086275872538959050586923858677627423981864881226351222846665867911870752271741682936086524412537102839235114876279929543530048266558401011009280078230341455030231986955731754860062128011759075778247807886627507532334716099615640077410768886856284940584003344321554905693617103704202444487507250880182663620406038338467846761553911016324025786242509922811488025151526416667893511433696263337572960914394416543300429621834582792942317412127445581919011524623946657604389441630419674966720130698737691480471357315980451900510117546146342398632158141646543577902150644911478516493252253295169440950344576405449729783264465665822681497835081776577884843202693088842659958482638997429507631020629161511851181681481581596630839272126778962618601720225293275196505849699543125313941423232809581473238838711791283114235083095093751648731806819566929204968147380377302731303360579233409754061387257386923185424096299771866333020378310996055151708996998618148640407384029223458672192970392317700693659084442893760903922320388769026125814323061782756871372667350154684565141802738282845163258335314793878505084806386478744352408174999259868448616265504268825625653217831733892001213093321831281323144077555773405643897770936397902433805256127622452873641306805290822676206633200046062173431935099366846503097058786492600131974377191910627139579596160403633132290411617924801129165654568697970286590980609805657079915060194316549177193660009830265243940390970862011117636575585060153519723731200686791184586228145846285326486764731252971087768714753968202892542706818531061758077009776532243264453162775765291597919090513248209122837003708691264804103283618770450708813009258525390701898501075031155807009601596268443511608689399275065215511240557788812508092073917363955708509352911916849358702551758382816274147984622929942181967231608700075689332745075725408543680713562148180540396998524913368443098473353303370341940218633218947148418149475836953930652838585434556288821901428317191440390805672776821941661522516289691520353813527764021653177664523533214377175442283744646629685950322939563374458282773502308279801865083904355094266257603022512374892585573747003224645044668492487161114665827374171607128195350928254645373753017972345888502934412516994811172648935457440030111387731818481438706344726991534799010025032542628302349896324606401097084969241294047774245592278469791211059426862771207295162209882956964059647705918297647098265810981781406697474892398017540992249203689715193449646140603840448499355105959750380053355269205211378925627324207222247680195403581490607690715241341652947533040514935787527787770140773162081826547025720581551412217208537532929626538306719454283644864603315457753561967733241384314435497183543549294062241553590434338492053296631624826919158465133786482184167158147456190695190189222456731354411497958228068984956812971363020923430634928185724458169319341114757086241675481496299397455127644535787313665556660179699363648128155355574731043328995095796241658742424818677666009994171674035789381212666830587400745747788178975384658788049182200783507731585950308387629377983764245394147000191518697571218038633124908774362796644980141108347425966288418320890141162353454383477510892145374538973158473429608528077443114340475088333635830020798380971235351910119152550141800263197192061941017495854047657116198427925517406135790038355236779646767692271418493485269339087411409633111271721918181220993564538608103419118708233482936681290356962436046642968660841393945589358161426726744099064186232446453617059516171477031819488456514779195079765273469143479343790805307885634285698199394727941386617264283860610028145344855688637286705494229561383275717536146663876720642414480614258870927114192296908441525914498410414896900397162228808378741391860616549267196438030726699053472332417334745195067406158359784699534020348649268506808599634284342763463525301192105954019315293912094802594664773903853735189347667740308745011834687246379830486718773468713259469381643742052515922515627652598573578563917974797249584200047886404594556221317353070738060082689311971924152477860221027305598488796172612765304512194463928308075614889452171313380176977986896484775226642122288272346682642395355533006282606300189031175737056704875873323754705881680782609431181613150487012864293337291145591323088684303498847590056290676320894391549450083423552572014874377102831547449162461408875109413932165430001445351774793909109332145860827215553600808278447984539730536961395327730617761175388871071304286718599919986582480287050906862287221288619047765136938093718502690407951938262984108506739363288600500949482584457748478467635688849297745613086344063298821375662964621198604407492192641438656441430463591834776803412534232919165235911695008143591867284272610239473041769237783498324208655451897633627372734782270767311824285789924819211557380030160235924557786316693668183627888775113416299394238493276722829728777434780088762042660739772707603206722201093011762022316763539371209696178895308730025471844200371476283915753764905143562733726163344112724207597104287347936884100888240576714048529382626857789373376120727349349560619330502816444573783036425223442805386181653346976054165436853933975906677603993198271426052124227810103762611151578230220410285650739331124323628179899285069410096197377854689191945117848746611086268898612508082100231282283790233155897225828219371987765242399685350341840113426626218618949174008702982367390286685991826199261848107065581615477231697122895208172630063437602994415078641638863336689399100641688377256514884899044230557239038490428666900806450803278951409023154790494988116154953247324517158405535528779783056473719361696869120956079769348821916932675438686386772138003791892510293637884272711805105745047065848544690848984037534118760362903145148243918233347313778038158892721485916346745771925446474378992175517202726160909737226171509456885358984260620287429742518386262835068239679571095493886576779427935594485246644543842891567435725703694088830515353975577279933415052541935368709055648243605507536582617700213411456911975663005974551310098210984529669467362778303354982717348731347828546149543134713536545645675295032254410403413513702742079430865889663250926119314522828689112881885347268079090737543777096990871480839887964414492544491085382294185923696564079120798600335604520248150262594677285691788881095070089234787225554382420648993678569471702875331699671573971678345726539320463948449882828066896753217259820987272559196957338105780189542973061232733471214334722827672755013048044541368552305857767916382774465880418622749586886125123410870678299958470601341383607883354923930842702320388653239354392302521146990486567486829224632983978806828060155974292255585887854378136846064342867647800415988190655413761842107103545960195135208215761764384967702534326265079844238031192306005602211355905117779301395355306772463291037317451852034655941203907151868299483356329566164141540278248564060027669975363106074093004667791701908560632378397748738137183805741863328479415211883523075521782663635255528672482088090268646285452240381830824101654766898016436689418701493012038872573449476025373781184995639041914213575629776035906451776533063723817180866550099096758561737319956584174825764007870226860492302139770448046003853967149523034172719540007766672766058920025479831753195149884125456050664526858084509127587678811067218055118079994291142863364895248197072045134406648869641929248448254049886304900957173315080487396022092353419080654360931633059553465000906846974838921534760201447213408113175435459038149328169175641847381832656204319590028514741616371741200238269887285441302843918596650630389558271184048414790450995194451380902916483732768304522465308304111496368229275239682695338331301880575200031172158878692590143852220715006437360810751449313943877605576005379645411587721626166426776138147360368705087746445605137131815235324095353917462169619901832386784042786250977262530278671610174852123344286654149830152848361815235772175851354761835222164721261576449234294310441518069372141735442965713064471385916652427978803602701628395890907523913030909030820500081492620191152010151719002340835552869581879783252241804992297315592662787201496895144950506378585899259817303135810563281887164438063146393875754006610062642882398381811751920705361298585319519046369288211982927310614278713315775755819457944325038917451110945665198693535572079726705894467828671052299072663037062222078217719276736141173050067482686428488637254988298917490425999205637033993935311821638133543521264579964265478320900899088132961996870712471808316481431562991387035236458410658369308640770403789599421216099137172476276426458866071494487125506819446091003817258804631360181869279291822104300851638556527697468554130488751516639909939575246360090577847723290504069088246549583840646207479904403359602381471354633551165879768338828975741867234385902947999147045802115100385465531236280967330875604233504093735694910496958851657743508306162432438793279830463182109441697320173002228153711859638081332536386042063923941967215664718831628359332439156634395024707653997678942986874377585365066280915072530306166319770697521047007375573063369454993433017192997582555421741760602759370977878589009835598699945143778132102860886338734457418173937610678074247209804931591655920685181417280162817195989030734147507731447830780268540067525515727119654121019031857100888442306337957533100136430684296041710147711226753519696182107467896068774786174165874938925166777578707928251233237608669285123660045567802226280181965927711277021648796587160447349189647961589932141495781993514836560349201744400081772721174238555297452967023195224356030497760592920300210090312899504256168572986029795792944523796459829694367068380600349858840807545768870910201771214881915412634519192752169962951857285335719984048218063373311745570810242766078758893134692283580639053977170318314049921699024217032894604494978549897331892645358679726996831312709149652200804768734724716928631230325478183501877738233031433499388292255091621985237320340270343020512476720309960673368261059030403360382727229100060352308194603564971860243770177008749888212263608580470650197996032030016020729133577463273101049005870293520481282812167598007830214862642439551857441646170369444155408527000581654479414772217050611216183236453480057928207037236526149676413569851280397934266202574863629100545109506252676130688091890462574224237625142203237022625887985332791383299946143348691590243616137538548017059458346779887326293000517924679132420989441130973063976530210355742696366161868552303947603076718610450928066625240721486870852333455514162952794832995513810993244100279878981991226272536295843977703336852907999176054867316589543339512225099688466167877996861637545044022106299666649466275394542622190709696917464836469603237245318425772728230133249334372675946564099752078075805086949890926339999154422736858728643456844344072890497783333463320055976105792900567960453050367678761245662546542684561672757418108779459040910574189145960020200462492670745589321883897619240259332829109016716597443519122208880550547142370708168491330863471622738118291377090680151760171579805405042784594946428458852926285281698711387710083320649458621915230224682847111552724100432378069415882686895992420125540330681031931398519656500450577876298430166072404383240034581408410226763484616940391657757074970954979224921018879648883382906266929906602977430554917340640958551293477412382313702831245612915012596614110472222704406380537518269522174222001041553225317831606506473199094160115547427188550848301661062212984764044843164820765044897332525770717526964274070952050342273455083422459020315156983163138972105906303091506721494402888872305149260756353244706623241910322812004989202594229248714614493586966421018790851251649823398386989788988629775924844314528339063124215067165249922297291828444231111516364569468539199658766078284690045926338864324683244834038494947792771289720403186227270323033967716796448232697911833698390367581496714063545801494187099532704910398897746652421979527602733415747345248243461409007909560340830648120997334505972928078520250494016341183377084430561441340713201766518419382673962039579829186424744276925393254049029265305062149713294112207833965555887644588976455468453401286591185528670319142827907326600332561257278720256862981640083747696467320118416008858117839001984644226985330453587250712328092773031575142176143410175928908894763295325560324236339035119907697631369363246603447354671634445968674046711668399607317072088863844849089510103788510677883302015976923842668608545203664794959758663845180112681229591452222118413044438122735559735148655048048528632670636743687696519977589521044000269857966254507031789522692096265961636177672059329752632941044333419285416991499271876483349696532408331638771742438601052640661253988396849383727760123174678140598902897343389893020961281078349007128933669030771917063069521588954042725955873115743199147050602631717001011842122473293808669209370572327180319492824123112822338237492406143870553807595562445127628202224643130007376576867955678431069476649614728129479827146958949206825767059236622741053239319515822235120663499720076747124105614540708016487156516410215751894114487371220262884956474707977158091212464593608765300757848788764890971233452159680136075358865756794212215445945259267855662486213380407679620416085436849121431889966448490407595191127149848034267589130901412062259447137158887066230536286623812852836740896104744879505678942754629868483822189657336870498682397228089137299415554180536471758077743218519682678173847069809523577448084643996724430431745233357670252571619508114308267901267790520208120793069210170070591948594462750690748357499497346552331621925624808434850166263194687879408187521074916653114947958057245791310180759388631795137450519619404551472204218322624038787751009847889652798945408307541637414539913858161148568170081179348332814645334176527963245842366885792092956472153043936839925134060100095834438284615401069730763244420925200511611106942719998993050168446239543943067708299282344038353486699792341279222101930072444297898955643261278966512383391035639726467531350811973255952755954132358375057984048293275259464724322032933233705034703940062999471874049622986939343218655663749053557426970012011741109508037548793743483086536564703052971911481381595006378590157554172212327266388792934891375965305626753044570701805647704845277453978442137803621078264295298502913382295782480991461990988278518373167993366625726469652614010816719637146675383496837930011594238945502882792692633454753441584314769107381040619775170656705753585401534242081454075615045665809036510225828665827197194743142862882868257956155296981341098993237911553387040333587506271349860470524608488094617239788487291542231847525053663001939324772993732806746819550697698080065091996020938239468646753901178093111368072375898262930787853209026796117513948098394967595591155900308660639656756045139849843063061594832362905402335767032505798018590909172783388186346333788804604225570007381233357674263759639135601835585443068597481151004775749835095440837658925378690526957615932393393755324701764598146443591524057174906405088076832509199753922447353958182194917418982745950595778843304817881691266291927063550939742873380254358961798718212284083995856868789587682880866183100144720223015446334190349296311249269568170620563625836788989796986511629216221483745801778217985571115400906896364164121436303309328326168924631890316717747193818658111453748629761703823728724808447587616929747997373715231297544123200856362583991097824698421254460111125591203183091013315230569076461395332148939837604592654561164210087817482879233305605736264290892001038901152889047934846882822850410643613835983886612685900611606271413894739956544326322972392353877016626534687940717944610834795650206091437465134841072150853537317160403740721622906282644951623326038926314498527953014242769625730932909445685636846021339108060320889282458012143221705621918415725074541874476595597885173480904560285650370012552009373226168836535987293552052747274423899625458958446326056208800464749522559601673276210446376598274652371366561519202250946256271393876715813359657127798159674846659439917750913873814947716238182699293743609404076280513088947886450992418355338356024801553095812714069930663090866241530161866537273044028701720555581038513387467990712721482969420352217080801961357612216596806995324231974576027906008537966459228492849994228202617740309245323685231960802195465688561599360564692159038194614271973335989790911000817287828433807741777708434376027186682428711184852520655403843469449460995050199222505721768258382413410354960092685580838377578267127667510035590437050750822815341408266649399044396138486681490556445377221146651989995475983385327826208307958792497776649741456097095124823075011168430555168953972467213718159133634869748719893223731244645447188367460347464439512618180152387751626055664927358941111729859676541594936463947731091506454205931846132510251667273874112916956986612641262843877348579788482256844269300371833212081693591606366971499225450601953700167635201028701522659004060740290330396240266226895738881965370247318136812785599942549184385977687564690100028835203312337119563828355524390938527000335733807095278589816341245157527316345512897093330188105245899392101581671802305885697197038160756071430161486272756958134251296968431088414973130668726604741620654862887905381546894154745661028531866222596488472115553156647595278959798542625518171224001854803080702314814791553242296958798164955307035092100232530091644463227856241302492044898864809915610632011705732561670393627931419842134041781740273656606974992820945894793538660412863864261254497783539479998772536572495382998871306913509092625814123573541267920437727069231404270316116219649187632854806950085939466854191434849328268767122168849334761528643450645153816372704285618467391882609610577549864046865211304379863482434879507828889702554110884377018659910172684163545646823273812647177007465871381930180389100893220128821160782003157240406330564777271795829405207867061202427242766299235899823222630142434141990307737792081643054525111294411337647026234424196587162183490591214295360567401740085287392276317043324088749457596390297470906889035230623138085935014536157456090529398469578310997754988013110042649281900978484649205872845876366383787384378793069398727151756135982367859396979660579268298810298474245944338401761616794792567920333289012205723044201105083027434071156394346282647945417349373748464675413379495640486424549535026013655084037757675546502370119886730587673463562275510504636742882190410097328183260506302939058713381036186936308743766431646920455085051640623902068960604522679578113970365196274058938473767629075981429242725768060457985469473146933343276608687180391356592403153835905467650373108065872610133122853370865160763766913287768170109247441228341347806397775628446111811822352487131345294220010548049133349100942663945390571860167629210282283060724879546431192098307284154861355369194668502090624736400249041044788973542567966691391430529304507791604382483739699892770579026876532504338453254698383633042939721766978426550541139737836347569765219084419664472196457221645014223085372412297784403267132340672094597431817280611770181130410609914051849432164150081657711094458001401910551016211062116551361821805519061387619251995209815179552660779583155745450238195097454306112845760077698782485001235754306254123477765681431704526370823847326773646755752883669807639995125795023768757806954961018585109472158405391589072379739218501753518898148328048744566356718813850070645460549705527701016840371780276212598552870965756217164034000862687275137675965782663689734962324049521257068292505663376316335977816191174577277813304064095881137961681698735567213138787076073070841685026710120778396499569231250308647878001403619570070693400966814025732387454722437432701354400371096744153823879481820560448805644033636280029873200060309025834759181637878456055514499018543560827295119650465512792313961204617347253266647693540424983945199129337246381563302630929454801953324887911031533555587787319405827164269582934202106466231816410365348875211818959271224401169683229234358464600835812168397273668947879084409804293358786316255793066295023547710275428083797642066514895726662361705126927401273911639414134596461249886715826244085457953350323559076176209171362679316859794506862252324016967984211023218960285119109759928679088026451538276111928717811884193095324121471814616134913596583749717765354964073841791496099657610460774281285384773253334218367339001574109901441383610016782424145617893523825464676637332588984066865897689857012804019215315781966434973618035949809490866511405391370558973006613073512493754148508906348294064542043564006850706999000071398426743417368973100305779362032418380189306140176566890784036098346769642574227969210449684646730967185807412233580655303848874373136058825954872609202691115982783261705980357886719754786250173589406251526374470960621551794288754382500064001945963869387767269241749107859516930195758456886916247792315073810168848271499684726620635652822429980898694552567599924020438163866625283514962070860262984659585514211839398888057973877969548961765573404755725640608966803032943804481837558594181693030586943814474047748031566178901058465899461042389913786002875535347785912075949017418375589284020280024914087347170850783417763103922622054733947224673036119140678754111178827554818699113958801240966601481703192522403204825653771463395476349297630720519062852311344454392085597039344487180955281729120939376076726688919261921956691717994699264185686161720375530430733626674689281312719729751651060389424928772604253985045338873462341504426971780912038817796269036714054984201158202845283660903460156980050089261479511154973417354742745665412920822736441732349981540661052613543373442311078781972574899243957380347296833631865026083805528144793803431371753191204251229930782905976819704108915162815696762888830559560118775796629244168623878462336458135273928461387415170094386674208271072334416105574187160372242045773027453151138907920209824328056458287410242410287036676157408684688740213476281457026694661780956326036709650907715549901631342463875692949697932476551366612495519486592133064041325991419855748699500930300936830929424905647484163822326576015193083607122776860679234139310742209466753753665370115881570798570586944473980682383613088338351766924744734848249902610471351221369720201685366907267350262696872956566276046946269596543925291829415403853876329761883509745950471185353959970318737000598552727054955604568083982313291530528680769403275648300561011603222286919151556402358216219715070486267382362212554886584605029017943192752734112057698088472540481075896238551498356166499836118214087636399806532475891568663878225463978801739340033842923418171953391098712125276094072342820650118359385443179506834453463085593126929419514149631313572549944717355356638085547788135563906544437147728039157632236772122461771912422901223118079160267918519877343130820059187575854237488332274726280223664567712042462673265211457045899134318405153709615094880139709679684811739031075473059220498140580490320928294894100517260425039324973587658396412053542855239279605383174503783782030610808737873908104705575958355226879559405315353866422464670523158366277423471413233979549540366204404226515464919234361554740873861523910094179391899318192519602799813495619349487067580687789283017361939614207722344014789297023241549714197575552476398671593438620334267379728287096767290778723988478817694328222854497518237455072982899354861383531477194444643840905602509095588421839436390912791953052188137917635568143171268087152834885029947149058676438870187539690097928725513023483062096071891112212184723699549768025885053009837886308446045618432963237275043034850425329171417914386605441520664069448464877299733788345304835496890505511285435072398771271945258506618051519220187693585019669439095010060710797511915120719587824367800112185838291965014803374300630316017347504829909955882676211705014113687385433790011439930037583614501830758600135867701104998370480272431451520047446957318348121472189348030624027498697435823923068365584122556547130481241949847772230424346968263494563720595197104526104371619033697045394609925561311885509182754582736400222905027110701870611917600527234638292094928047635290771874565999158747335218469586049248787750781546373342028578962549398564306859185406611996299648928893035649412562585408493568259605245225451908865200503194640151929709588084345394601626399886114435175519083404518382490522802193097252497610805697510345776140403230890760896783809552652445326958339268346893613140049771716007500077205267271864789583926298242366710165766771892307423623119708398070303862985248357517114702114400589187903822315978931804785860525693995047504306365112635745795017518327552303483916750715716750694480085552233632798028853559151676737658288788593309741082719867574463756735045359111593841593354866484894474523183112857242303575763018883369963025132970667108202470605067476641262594342652453473275686724357258144326815032833315632457812439484256784579848339335252674057227203211562319929301913736275471446328996533914295659952210486109357931940788255554557123813459373720608687674715238296976241652871589017656720569857608151106039157281470849920445197541269135599274633688911513820432281925622574072437361773214691079767059818050446785325056214336925165476661920155207090641112790114831902332781522989850407223860917700549606522054543589541152702604911098341829202668144845582749173397107119655328532974354562568706114134439322987276929160892751406059772561508214517691761709769381358272699806597596486279255118280438085477082985843006791496117219229080160254889709539548432780681115163004192099856834842615611819119898311836009987032090273970642739833641268346919892916313713129404950547690561925941351642952804689136198053468253616363949724889082246308849308177435128052175195172993936364101423104868138356785238313796132450602004344684280144301149112213522942868979560881549539286013866620059832395624196520891546673261926057037554931479530764881909420711606250901721775418662231987235583966635707939528167553069466322239618181913442429428705533402437907415231569234774820119430243058570732485510796420090059484506488322610070943872881022981174602687878413012678488771845761326412717596831939086271173761173722925281200281554321360492894596364231844397504010693664655297090115635779004697644512124285825661696172987085558135801330978674936796690638731760897696057702642040679912723613540548736626596120708667158793539435137573061373347908818169370241427693020372846906355851056735545406329391853930821856436113519508690265121861127953712770485440132637603514740205089614850197915137110381007548396744378875626415332470027250176970240444691192350013757668083292056932788286776661920421262584753374053766224459740469919634983624177993980560035755890048766365163524923038358099949643835316574588133857307795234195711672529647714106170658431763769972922873555530133709017157985397688250035042819235350338760586446853361881325884269982593554001162465873386418746257167957601160751304895181068654850262631129296084881954391515388289710495550412809004011678939280995862873878599137821900588877834593178449392807720732538892253981158759719669026272466786449596785806272484578657508171290918309381433410857466706612805770000111565915675016699757100437389392549470705891316036334784369668745685187418500970691970628136147634795820839698518909526130399936960168121799642791096489933531640855371063637221528012742866234521905246887644752341381411024388570711617174434676406806229165518374564837688326799216620903057192270144220684397548035634944340471151458861138203029813248044543112224013846044453391214588402405628743619508824454209329871089304810877922977639226543009921047844255518376209420656339008654699009742445502149012214064492063433225856971026196302568192385653047866180268699669036667356413444354288132677290096568970374450956648288261086029787018191071016139272758588270144583153927101237390096473749223422410384305510470163308209017814520358906222330571378777541067278856255030920485116691026764416916897058311746700993656015528342835510115035560862480864247057674419844068689823136984820581788331480001498260377760331767641180682584496564558061533171620237718259833877860601451693268530252969665183852629425065484944851719308838711836288865404347621585991233851573898894003893733963762912706306324069798824251888987749842060042406661863337457913671963993333094249961960555216872600855402782750608535015304119792630587722856842861948009767918877526912914246970938434038525612160262486858213736783777513458357130953755592153771472827827634413078405072701152463037858940813410751094273847055397218202621422803157297730812780431663303546784560826315864916374355114817845714748261031686773414236315198996019237756866021590171278514108748933207542008292426576991880206918888240406362039642085824257587695549720315472134566487261379943206517114988033167884609644728554416207068517410945304527668859127529102313821476745382000008559842019238514495615160844351437888329938267416827561277852771958419689255780659973429259314620532242501792042990254319799898428172713214767307776115661322343620414292711383473032897550703578224954689220969341075250136261761099035484509751941214398020841855006625054617374407825984635221382450876960971342008848394912517587286214810148935464271874056746910227696279901235417756346454657473647785436751942870200674606451148382938689064035944810258859561821025778368906163130663166876763796822508608675144966184874818085957294869615706664241691003516311500530481922137725343915359809606889905198299568135087819711197718906455820777053245487425447185507716628602345391681626895919257845053098808831621519736979369219297270585459097698974700329186375343252471908732859161826937585009661529205527692498164494424369319437994028020184942174254666084950946590932193416874348136291408365724728761675261058531425360470756260299512701269588735225892701944711255314264712987120380151527256715503231803215950855410789108909054504666057920940107271837492001467371655911534724339578786016974301025408607705360878895969461372803893869359350551087417922210997972684935411606427893157003115597421327109660612330603736399361779623942726678032665797718229009730617005319560180433743541861775880436799634551720484598190287010465995189395611031300519747046834537185262676051199492140722694087564702630432617274109871482109794896076785212568067036874757704987623816985587507292105018888629570851133090741925509858411284137493295445513986052956224629838198635589414280177511242445337417299490187200602577382143265160615112955018052368199670342870324463985267539790545559798290604266280229361046004084487233764683499595618325614425297189744870862740166102766464999060891000294300529256369534827570085179890864294311360082692364027851478815190783621979213414387197756104846636492461690173120310826222677805105680251624288245262463402265555751788522281902256933257423368691851759117423319349269264066240857546032293862245107564433928632438403807588010857146794442334478776882258323840916820395599440850580820548142366742788324183263121714373761068329548261060587508092087291499296659656186588812959685006510659245681507958535599955064796526656434675247752411723447565678937290154651185609662682399102837618356935160282239965278834292897318366388234857380211323930187479899007374783540818544227228940860455361562829274526171639145662128365886265624346810243885592170298683131256098241666671178621387537816073256738359491213173729755290129330609580386080989291425544365004279391364935305873813110732457199153269366444500260254894601266957984819867973138247948713268736217707003152026198345803629395441404313627285563680951984516933744026093887937237746267635825839711229938248551471732492621593061001421596081112806062139326056458700264787055226735403999474340636319358580468499303822897324840259749594742540160202659525655051219343727347125842759627388625655718804384700866580830414630773859837114128044025392362594196686130822832904605008383690611458623088045455387791212420019666729941276264634111530646901203042300790479779798964168175652304714259080281952905243184809877167939131941816604164483453938797770447923512151279692349316915625391336638931572540546599312594636382882497739650911653303117347221976565610813622624697472722882005847688553135668646394822323015764582352635849158782920180534365445856522008334804671390166565630856481632122083908547447893432620980802537323984126777555377496318178256860623288358800025967584943875138706162766800226650080755986548304598911764487245709841877332378053084929323016838410947087844344339349857447709815905270740997614433808954444092879390521399749937960555649703044102645669696365054024743483921875608245917145823650179222050908891848120027546044718615054675450045054074457669375106554277479896109682316319842991565171445387592264904483537521248469245869646583937776609674077949611290434373224866685837412601406424026568496685141106513639044509819994150162115439928773807336644673593155298533544021747565892222813160637981599764557762880144476812712045540562764405274794100588353627296956290408174936401016395716501885440041149378698083594480715516105584192143546933080910652966343482098280956875183002747313880787768308474050195804965770980427854268835032045663262740765825176452326580058561729340620620505904450417041008649278204641672399644528778420269720942827245735357018953179308612784352005202650242047039689144662708066368944207442139742144619516348255895568072065163367791732516543446577813831822541163787752374662203413417102106079356107376321151865773513312671746825259688826272131290339548335533179502868379157009920580543950470652216099720219605815459303789964880753463223371466366397759738128892268975309450911290744323578378569371000277475768938036554184071444274060693702140738125623953926600418946100579499189924633569808115711466869738266952868945647277579332504132256798178776545877437850996135810389330341678247280904275856317877424590285756600733693810726473473143912881615275785616848784811513221709648957419828161335341579485031243204626270243542114841073114712541682798331100131564610325078628365116320336904941451449181696455564141071033907698046381036168327850787819536687697773172071027006182898656208324922574581641056709622602838794279222918690970016692924836997008592063183329150300648057435948835358773341299489670408212311902985923839703855699660592544349418314104626813867839559633681959902662928022891067482327964527587578980271091134407924843990904345764741323961948411351375623102059862590704114388688975674449632119985151177764361374740066205882200827664230394050837463688826500635299641106388839826069220926911488304081499141318101941945620266466452753592321217084900482767425418868891129184577893749275198881258444066244643533645771624656090444824145464808915988246476661346651144209924138897570402931169750667555742021135777363668105830399455822078849004172112640240258637260244763983185210587535295184194665636315307054982742425172074197397419302175253352072789637998293392734883725348155939666489262413978721380014191900473404927106951356238066677585418738310080773412941917943007606514213826131866303549154590391964902144244733734880112147470165044790658885871563588585062608060844902764893224259886148634970038681484246335530613804211714420623876091391862558737372921515937686591655836473171217860926715843644825914499735588684674239836448223143392596591526167219936683060047782491685835072771761340680978768923625901597784042616147457951792087331175896233759905896442651807094480562339933753512353615043680121817346621913265611301514185174964943490419495558834358059506907247874722026451333130876778886616601076095603201624612331071219533533768136099564949016039110946168720429187106871974963246855915917132885209500911549637222677202108458250509341910017782775744781475350729346673930966903025107024532300430483019147964109079608379792619529935324093903721036164794722973873887417628824368747280544169215610738203830847395783749890962032995394832288040413284630297701422480082471602440896875137031105505651054748716702260510661743384373088731496504961624553392206025646045279390331744790363840470836294928278903955642760228763776670500896112710357137448027516851646428392600705946003527212545496467775443153786112918053830156279910862196572542564863504424406377240861123063488221124451299575673011632615103968523022951709829787254627706701120523114568065343657603898889977750282415619044767540787282269770370184317798289359901769356086005993262005392955664678111952797695448724687867678518908120712323104285272304915995584795311016087443699552096949234457812412221608925771426215230854527654254398930159284517977557585031383256232772203774587853955120403082487606203014301040964290140664738521622591843442392250325933047074356838415515076670659974695682872078643144144774881070609620541562992785748531089541200198926264960340184609276879269962580741016258908520391135714010833431355800880800951364957910027399606703407841065131858861173714016633927359222030616018059858771939045085158020846587756062064985557777851728945587395223117964279378128659162021589567870584763186180557045445195010395886285826802151156684149887233992984919039381302931055117301066701292085900020062138424036031904909038360644752835527867602980382623949281107328542161069756692202990054541968080506937655373521661515215571724721273259522729854819724686358221408168816309782770481833815315434342101589563418174992582851274811320211611903505081091601363957621442589307549672962719597755111343923404837936223773712580276096101905757215613244197150515663088205812583839663795088217657115190747782011218123843731767831254899055734609898903006815594599625803550719315263105938838464222849832357913222362289686697041870921107096334346940357411769838193526882501424767738203516284505979708824694714378136334430849604702815988105904188017768814339158242004273582478408822371267374067305144832227596102064716179028680669894378374772474043751234864209594827921713337056130249176235003154197831614140340858508133194168018249129968845146150483561697557848677654754700879364928524650358574709273603427749496852346171951540595165876238628753664134131040113773399908182648213281005346501280123089399944946667041923260661498081590241192215779699552537963178380138845374608443141833838307185187824516225333217927612048647471100009648439214991325460944713998666676787614178327836672648238897613013433651681500657969063335111282982558060087001151242292304521802466050878014730871443885008211780369213520911849256138048204958600090247566013830925598526015271777302993196474512062896600019806168851314453748889986983445329162150241991664108776998404088439224863357746083924574652219839958168886129086836394767933098824008533884170217050578030965262689798334588479042870705938309396220609611076353334957276720041117285737972056497079352135957920878043418048471749030674607326792426198862771729242785797946873397545558279143617721316625834009105905859707532794050810676642221278502877556437566841879785035787332437585087121327510207882014558471537126952611660235996498543408469142611117413521028529896409974213568921880674621155534463273334630214219599834444921045174825481074153364824822629373993858886762217443643946674390122652313684285396683067150566714651437521163363088726589193752662263694438449612097998761587290984257168268593393329836498635777760780007275430768267277113417766028663728803973631472111836159610798005900082815006110658515298737157532270651469677030985544352518079852841353869758227810468155777562922204653420630362364507281163449265613535628031648365840492766726958960809707496326760911161747178492521122523074742114570726135835954216784962435342532998542711177703867459517857612840005905846581998777661474767972930181427608642175318653492999346657108298295782053822604528124742595516069726370304587812594507508577104926683033489302495095580205280581747723348427367519278090911387868727523297219974161842366037209328743789338049310394788048376003308926113898162804724386124548978628819123060262647044902526083057837953143607750971343816864937889890473983248717986077083259150925288130594299771346826127784173491490771097989894695432149286590505068050851839174494440464698883895817560832676242875703000397816073862207579358129402338794056812593862990230296271032522983799534702590551611373822793204263046826535832324752460807704214150275426738339025745983229980351189861931040866147051566441773677863070273261349905010970941932681449117681095733754422454755725736183533385837863177928974740254444931968846544357772889772628240654217112033612259844321170500854266277387988588147652009010497641101118924780398144496578925072861885540092351176877574402287130762898196350277570208430269717739960246023286696589423021005583102911746474308276840796852732041181239548889514706343738016391973130103873075027416297781009381510690602291614361144286668861388176841364823638132572668983891902270328930993420150502166071196582186489588852251360247410715721472659521453663105877209887516534870821623864758839955187725942281756520571893520121264290575723672165354208254803723748841589463428180461495557373175110631789150389803876830614000704807724150492183076376295810935099351860377949106010718846464472465648199069915600164283916875519857977773041273932681274126291401946045911692282267486577340289900635863866703602380631894362058793230186450045450586731150538703920828976424502700111332277073854058500414526900156929809726924066416180198675324321531830075610075229717115157715120672190287402649331386477726690462268020286376356284723963468838419601404467305626272646063521570913657574985779701853894673405462617109402912927634194659863598140763068551852527694561464747729829065342508976631302005416375718347407433686171444312682918286571966656648160861865958020905748582652864730849957898218679946935909825231585456859650256627992622531913843300964077062285648567837523732563401190103569530495049490841131479212154651902873198618838799598650302139283880256337025322940848344605059194674251492571465250985884231736918346445632025850461864067462210306280133430370773986802109384523994452466046297376297957341552601616511671769008623132860435178058909761676575241163279450027444998259666039122194374013550476846042473474479737952798894335524787566257869345293656400557499098117533221346571866029904296121437298960187359322603430848672964645841858939527617861630200184214006968573658912645449666181488772654017577051300093141313418831017293559124304472243204807430343151660600541385361100974919250797884280890331449498849243713368841995535604305629665391847920194162203325412057534702425034107192860164307935907401010266662957284629527175251207180607564837169204571124827253940336110634832582221696838517599806367614236739579928347865777453081290214620539655046945006417588473073651651104689510343050586085480381727450059847044613009567910604910324708907040625714193170610281436387468204684951598417714069895816987097586498130196959997086103791062339494347571401902937258054062152843160264660679013857588393982080965528205250330244825522755749720185401628026395609740360120003055832304307678894159437230146977507294258675774548751798096618459173672274008120425309318800318574801308497352305484596858715408377896288220578316816547661951549160611296765091898261283512845602787941013752222468079850115537578491883702097660991206453662780337674439525865710678143891189985927473347255012199826700113653714725391017569315947305781718782023364235105079549202775595505705920577316710216286653442695093084560317495467222000933147232187809865073847787072784669891668312230277112317233034490500034867341841014758745198387723170145008014301875218813084372906619098395291833262996938779510504073722904076981695240835840698183041302587602915800874029617087502481921169525910381911843510344989158162800190496187599455570820172189215636962205220325569841802521624609960514580866223446015902159657955757597070184596789415628192024919658640246488322608551940649776003553910325863790961623330491760455138525540029212491097186550613030272638968626258502385074114722832090666411379476853705760719282375153756693548041770509212339494356097962694502659117890120525141189821686263293536183733776510109342488072235169897062915204578446739930523939310736126839637580374593156549944299900116920809900840309836062461380339272420516065736342344062425354915177171044083877718972041913793130752204073615428865180167341291216474103814411480676142448269842814889545070281105375636803098247300085958757910691218910597508127636033822597981321491052842350171905429728858755832181400322921400424610417156516923178755243369554008676107016398106543913087148796861279425460489880440694359456316048183738136089782043226650700392300282919066077184911511184950254178581514843371776906349868673349386342667242621766731158651712040230514105787830364203817456195896846625289266149239053053526991571573120838276109150706918794092957388240642199213039316568600872717877432770451336635074344007166847565910683064684174389874459565825604171393895177607964353500272101303153550147696924805850062875980009734646359447903342663154182616603950154990043321713176960823452931774899490904857841161771977344784258487043269339770590131226552954619679437617113704715616193731107915722505812800177466067950801340937368088058282002123785583834627726559896702882025721027980580173041359221237955079494687223665384882229795008475412413733602133780025674305390164116191990225674214262842096372955873046189021739896928569164871556182014029763787831000255954267833981838220382500559937710383276956276325391255532607742841889596747888944898817240227978457766797937484729388960770704003790242790894495409721027648786658216522772618829347347008793552231498754206755406954579329439782414419462836796094921884167037159914763765206888322800200430570477249599062016338480405807500266513914997126870945979322624087047553809068975257613458647480845328829815520768616935525634253995785302910926567078378532845804614506197700666394421300210058268184489025971970603431669357095801341813211222233315034784493581300169603961111742262005568588920709883369977983227133507740721456915629928012776257201947750923178251973372264325545099141115110731005641909164877974747728929048801214252245917108247114569014176750922922001507790820242227579533717629881195674604477464372541705762515512664323808453243189005546841714200834587225828975641560139410885426272055308799022023490450999175630847639277366342867584494790862313017112348627624172395982345545977793891041752052592057061201181226811772286973578313501508318434631536857187203376870081500001544555443422547259913433866007018269703267347039643042958606865836214456735123439396230107718974349180308726581160347296958105338835343234286579869470933456106270741728937824625304640930529433161414782848315182751585358108203469573922708703377346380744967511540392004196157612799022697601632555112553856849213920773280887960792994601817721541878520375647225311138273888184955544022119437972363787199546806159395820639432304928443556416231313777742396938863034632452556188181566151583223173598119346945993262398870942482645875954175779410444182691854381813729730170630422464098577210018739656424097783111376380762904133097635843223661607335283900936257271928606703083625749866441536440143627913636795602463109882604349936806268677362862282163648708044585368334158313355714115113851540536327707947892330643605137724907902733047952637664460706642931874530759870842582642538934422075903295735904079145320296880471007964078494956167581700383917702435356815934483651532876914053993739351326027624067863307438082050693973445154973063861553829877442773282192218255080621745783772221856559804495281017723911354605691425863073579941000710503036429047543718998739208469477753716871033808589267860382943776593745521480069899565310324242030145759667025962668347894308696964901001533951273424526794909865251092188597665973183832982668982928513659984554197684913641299069605483169924155770300740959132162836220947187499173518215975573264579030997849277053359330290918734007609782556579151058110696850795290612236125173035770894727671579182905547148319085739306209227802622900366763459030981175777955195179010302378642051322024019416894954415637168432019946178071354725816597033542041610173028431341287399645811692708524757046908360955917608284715237817035520530039203386847691325819551592979665027162428901378554717469205659719445755153620973163110353029367904814002144385458408380866409514484602820980054975032633355222078020462211249818338773795922272423784858391102087129760345161755247281745590668507915753625687813272993775963647332921724566825799552563427095233035858700266574808092065392819978743512226768257267642971687503775374160208548175807125937544696596112494608137234331945167693885022194888327481149749862289250896379032797279559314244867785964828690305305826685544469270129270244260345332126784438520294624678846597711874753706228226784451782068737662957326456274422235563139562907627903220561009926106208952866345841730030876660415064520371122616215373000683682044292917927612773219268251197924760259296751470263780959460672098574650442975891597337883507711018962311536353863443476013099015247232562529233297739489509230878495691892734479980592873783768768499096677082258803521659656197664250179930791355894871585620451656194902965656480420779642768273625421671303094425977894712651614326119499342763835026148186710313098149201498815044401741722907048135928243806401553435410307125432467873480474124896062053660261028840773253337051088440565932884901774641752060505861090059529653204395068068901299366573571892462238834425084516767459746013026000307093006998130678613250729915351443555011633862985148284908115058452037167487487388450484541505551368502821521087869185226967418154162418108105729263521062060412509328105427319657566376967497948408923617441307163734946525257881035440010813271920617021083404009145933878978769214610089621076012563245954596991284725909553326145082827968601867083778193317066753734466715586495273551780175954056305248704373789711676298229483159111967140090752378908148287700251906912346138979050904114597186651307223555415554425142157294067160102097876224365038220982807860185252630595350636108126255075392173527052128802004417963144567383947420571241821687934527613422975139775886895055946548328232569432712217772377537363819437740112643706165472183062078358495101563671273542323783798023282561186507264915468945752954627731805717193429279892684037174348919041951382060152334078893172985850244153221303825273913991030928054540271021969901508313802064654851119045215224488208015346226769029784546996607093851224211371999385452462179829484388763088711881659833705790304404946686089352955619575598543530282203053634598969270726251387026083395038452529130888299645707455146486530110436513441901521275467388222877079666810639580214972057375710807967988820158618732447019320017639916332596275175187704245453620503258362584592789469575171321444885661884477215086584018225382949587753644032114409077331484899439537359281164146953518534953482212772847335382707007250134276264944135430554265360847739223181888686363455291360251369695637924690196113052690280423065126923636823739668798975223989856082657322780419463516040559895129043229750240534740251526011423481331360753520196884861497655367086194965918354177772616542232979467144383284076265156390385045468138193888558678851378956715191503519380692063613966040757017333762996942905734948364543799242489276134716030952884305675919650730616657179710844640006898024350491056560606447214956513534829937457422178313867134363589757353874656623254417851204707679381246013160240114684911933520490616884604619854266943784043713632132159058895564737745967491642120081162438771903572954266648670796068837371025104955022705826110414871165702292622805296733105613986051513439098102582937280358494913648983830629992088436396181992315512877827153170452576302516593187608192477065594030287820935481187301365144230083473732845261264994895029379103292646267929177177771558822714564508892456304609510348449098222659412170079660366549142388784935693062093682747404938093598226617829928577888413001609570645022331355478089250948979045820029253426820524230246164329337464671929683379438282428728332947045008660382900347367411069532776250735678975859310947915986706562158274693147392129239639481855201675128350720517858755942129344269403100798076076059556109199517864232638071633518560138190317130986658338418686843073816374092327342202444990487121265121306264387224381647696942924566371373945633254183055015234034897297012707463177931074452341841742424608065784604518342045359346027988471281122317280510090800065911052465556308150675071054553242736389177147019524764366783526472190478800549704131313962505873386539211158338910584489159277422223909610553182120224710501483770257798532934584109830737960172298311933001973936219465907444403970428919851708721485208465151973832024522845118837189767234978983523306339726216667752734450543676808180593868283015651176199713667665853336844899570413355113962215491498377119527133653975896154546669082976735747805897700288938956225523695196580149724317811331448435706234580729200233646823811738640382027903741539512618612783020220948699758043834280659990714869959332140329686132775591346731971215499019946401314335257356088548439598608542367509310187063888597831469839729930255806692952620189999807368573470646900195658782816924565714405538656078125883498743721610134427728068545105612154914546170288829417408825817984186729152285695594898299696881735729981562533886306611869598530701346613170667007927433244985701756788957332084974290562867134175005765734962707458058207415286661581045716233270929228412457486478791743360210208495970813809888372552607431541160432750022182497438403487007492142728751100264676777927419921720128952195371499870460013545059877076308592379893145882691520673434383364914502471757628606063344245177944110820991190327557801553787192717306764441886010378500059874156375474164075241291804161270060252665925456507622996393220200201535917360387305908692711570905546880649922375851625333983663063154608827437617926086868809806644482537243207964037695527026964257810922535812026895988886004063788645923578203302343388859494414050488513747541243141912695014914400860712154341077904342564457888012397925890359555520185021196177771301857096692273189822599615272857764099520647469650367815065693757844933699889040584298892743193030480530826766102728672537754909854031853775486883207507667713689697175425418278741425517238250793646013971306229902634997516349251148697100886649805187742854731154536040872107930678849145907743425408478993834161853735565589960391183628357774555368328157550316344822482126257824054289214435076417596771592170662670297661740450653979042715186460691292042964907181294329667472067189538475712430727203107540462027760150806964271801094308108936082668346753628226438095420164230342426557986372104535709878094148471494811351805659834368858768353876269487271402606216801951451102338291945807472799495522925316215754759225774503838130179894669356184648212785537881227820781867479368519043349574020726403487415155394947275305720363981320775366068058911445444271525676045922134726496663567566825085267441821648521500745526003820368079467956120947461911120204877649420376179999257656756504514142575439518958284466083343164955411148214944528515226396208408707145336173599505097596701142859982867384250719155731630245107389982070414023402776722482961549162437820763835585593497348234193890837663164061396245313603083254136123668547621294833851982255305684540967818599602234296858711304944537816947494028129415325656264456525863460912733216474131234810452414373843618978053820559897556487823749752639276218511841625978463964155225344469539110400560899814739185968319810727220482951013887791445801413114488268284518570062060801188642324017414143313450200165787414454918918176779672100380089829367316242106449474296696094317997519867756747025755262389921784324102508344870997091185224676586007213260201882808588732109333180165625577660941775188363106062310198065565671122811659976493537914830137533664474226126766043614739130793417623556097131582065455627025873030660717446706639868543995786925162110990707345909421864988773943675098187841484485195210410776764076410544646481666027716051778113904702511917138934116609573478443319749374276636726628412846117766359272137059651787866641296712210767198840132518172702120891560663589746263250492528314138770799703469922828721482475653800178750878169273556615751296814864581780225684055060084318522552232477126128209831106521640802907508281674301066368304918615315740067864422997061979038019804566128206444096571356254877284471255424577273979294040349014520644311877217666800682285146079514223367858181964427947711081013564408007590167106886726429839676266756247207914865495520659072423920319674628143128672525964426447270963122966840858749173560214880288409505066153049467015973821925775580739054135371589035396330350646335846728506119199170773842141256119717793095083466461298770398632402810083868048949382178549562638924992854154663143729550416147575886682871895929615183860607089175127462862519066480466807569618555912352978539194723415456989029163379431059239742880515961179249078403458336295896652678084911615780168851233215452857554869704028543071784791517751233552524165516314433688498934956153276032616734592077301488978914761204238909037786437821624829614526258098028309511670620061151643885323908754650997876968714517982674049809216880898684540580146813780623476353512678264605813265690208374277305616724464620847179380201446163757164521918758656859047567996118408632664904870440139295204793062969750728242355352180423782962426597295897302775468507425860885665013659946786994301742104765519998879678189743341918905063023516773073446599081454775186860754013783377997668573331357698254587286431865322540722185547453341166939829864494449393719251568246235841634911747941609220128449904196461218154194552827812200639900378536692024296515825987916076018615453979846469864530806204089494215490936205548801133965876944877140534622534126111634702704092215885717500797540067686144392882375979793253412454666389156905579294082976126530958863214580664163575215530987251370208407937206409739459171991475168563252449023656606270439812280338477092419502700063413333698311727444975507432697828428171832391736030845228246485927404844425481103913658265468065470171074073596986246607193369436690038201020712909927911363966874671354444889926055316757477920295263529168630061038808994285935063496768293653836652898551506041165333075748405051869775017808165013649105881853522761105658010637656339250719007393377159903485964221066106878760368151832871911793862791591597207276820282293912147479206613814864309962116924728214473024794608025672696732881902825077925508720792745976770179493832053457907816279038869741622188539278778473829356321343916993684628813242222303290124681167018674533507458594147565431634098257519456111440329147502484236646592570399048364536084116269547849815119247756739692359558005538315924865447860830328188808349117004161628548881880665591205731495033969632974905561952190425739211506762768412849746056467225104152720287912498917099413288573249451517994170023779083069531853157091918799721102750970207189553243189639739481371302175108856521018456679704882020700863245633519155804557465338570139435370775350443732134936575616434239121504931464808365735080966547463879372972874433381632864296354877354166592232722026714966619511201285417003404076356120860199672901952603113155863827407161900798142667287099808977317896534299902429821270182004012927220888143822810225147509561635034260537472839819134236717582316372871809487601766727830041605958181850351855590317141494252478202916582864328915698194590494547579241342262649460212730920958373829348385407964639815110376373184168786240625784583407072369136082142176690758483987336722597414629840435933117481732543458146244827179057282531410132442483979400621276066514074162160342192155915326333648195482032646025312064517139083669512424384628906673270849177512697444563959944819912569736415843260893739929048396036233962918352167478185283051042800961718823809252457880596566571427624454035815848973836311874098492301648567348583270534614395515700824222472311136312147141945036939899137102189884656822728920635857184900645871322242864038916446379862619892330488358323623651085020194558871301240051049838063845115480798046511150360794561509354054700821631171826125597763223901318134666804980677664847202752175482461830396381549160076130723811755086789339702144404619061415899668710023342209976020297887715447309651706892718416766475877592414203454697387709669636209021385275710933218191203608170444875474456035087332171095277416093823338825191867520184652541927322564694966319328646652176114164585209647654678279422975999264170685018579230728057370836634217303103133373807185097478051432641872702985260296251156004492031484218912341302086148494159562825966379427346528081071452267569071925168612522191060387793329832516208715725194687912773549823011225312568750040473863996970091482531357639345302252269613153025214699634982038060606239440061713621739563624911638271580413932528140077191515830651288844428630581587262954909923027868015834077801502760588649480665809606700690195451734173284837326797872360853826342932736460681365979596848724131832907290674149924652299460373448875640767963334674523967047191418802433750557309791343513647758667072933811967241427725636623401675743319857688180513084757499983178528757296890303140329564617235746397905944792683999511612986292652900232368022356880885673941289334285900998065312400141854823663985828698601064165990845801830861439194606594578917218629944608791591715434592695096502515913350714845215239347197788109371152980490171610811843958110576800377238749234701463507783262323804852736467229740814379051861804086263281363772592621177562258112027475952288109688762327584165603811713129840923632576905130265321793994618782361258349768501971834418317866389684877464315111903220442012531432603248308784992802955913961631077751414621544394632310050231706881454870802012502998954363758415131020306941311073064681807880202743429036689953226718476673031182635666557359992936678317943881579133165552789521941318084387761910752839472930517675944119085814929473060923247438977190670750437249453785905693854681709734095901215292122493664409829630113550933552772420051395075309271264619929840172113889099313194979100492610184078987651193545713043369851326760588321466036528250472130930477154490059398753803629259103245395327339110266396160305310165884548785669011388234152595670404171073932151218862605840328387379822257972099836621075625920585961058978734780601997300385415802359575473717568502933246354126398494919251454257128866738546936832715758626439824357022250125781791709957813460065633462446618305733821206507635609729616054285887797967767433013162285781927444964188584030104483528479370135670387183405119561254927183103264655551479176303713434552521262831595421930741083256835710597678720972679036743855862478968819906116243298232603745445537257021450778367398806500833292508693105427644432406791710832013550493150081992583708549986740205349199950259917380613297230549244648922945888494644063711897311617383007688897143636448383887765623947374311375864217135458087130945585580274540513856793396042740987983138637863824394605166446990502673360214165795118378039831817514102204091150627725230949204397549750766156937431994424187398115329522960031460140235114851895900521013353811823316791661529277117068527601649788417466812294817986846592803987288032982518766984868057916496209980285062302986736797224246459604508003475983434094730017224487307358084138925761291002041906642113828465331108139512154281143483900270908113495481128674015307968578311431034398289407185449764481153310982163936450752366479551716906036183426620295708371842266290393808143211337257619434172669029032592264404125132741529729895971607272903067647134436189403766213363481274437997881505581658870884599973777946617763724002519750916086825501544815389152034483635451715124919271855234788171297098994998355397453433001130397985715054233779143084479311270741193492260508992166161777405946981772251563408152427335414298824661759828473540063464492858587597460443015595111353911915728501781420838142287751728059489456075391584790001993785223137544586450822912713332417857652879033665210745187222010536851699179456501980985964036076759366082947359649988595462362266380907882453178585752774743458642744161937285610525805643965988082383492199388205084328168898259239763901255733773426960276921322699550723329202236306543655919501854925968490467241590511766657709633316204856018980513522403637844956807368058145519825028347739079470421534302201962265474863049401315233332546057785002899467387351123788495062517247236252117129597608364884687802511064149486886820921981242666692546484378295729337563617013726663167434100412625633845333735816616210409037192051908738566665499046077737782786718598126004155902185924696778220939222871163990352882520137285531652803125596996207486686268371886446642796803906752507876169096035030794063838294528764350497586649407168913118378940038341798563790287450527209346279010549564533424856022589411425111677747295157387863694537729498741022201419830988752074258767449658908758664258281872837396010147071755410245411475444894507094903494872945254485963967795331107846978470766216617275960368617286933535408244661486826753157408042726125481776680253075026911257950770691265726602432003077741107921658054942960238578289398905823575677895023493660294752996838011464053964448151091531400188208667427742821922126143049389967782869881238113455323516410878620109598605792304509398904504586921711793693555565449440513722990956300342873790167878764027124577377917312332766768804602039406815408922733481875539738867885762902510210843195797956300276943133697603894020258116907939077014814073923767887577472408569059088712548806428601546107520668803485295751031693478926370282422966846139040919163555063682494537065454067803317991352078227727722616362417239167048000165647613950113110665911319569064671903139885748776309549211282982754036739158127934584258115730017740715858222623908881293738676836980605334832107514426389898005575711325597453451512715285753900081600731249349892732069879462964000214297912496395888326189929510967571229109598406759270517398133978110517284286132877497838317093218477393339430517304861809726801379646894501530611986641462361198789777900887187614408091190429008655462524126447381966975120279048230965495364072270346261495487057013193933870774132116666766374138921735633668681562356510430635319381445996098609753292411267575950903421889260067057976784006457477549014563389000569762962618277021979181187849366479264426441281516055131974580953396358684562321664302510665258570156000400600197391001838550890315159419260576439594776398646962859504670364468885242174400798169087453082447903945128428243661712344881253377109441633089382679962798101586015103117311565112630759980443033531719536729487242547139356658245127415867755059618465936369814631381761400576782686264955080645438152572748292457535670775646179398841392627099824354539073713576982095446907053537892487333961498954434491260922672498613427825073638577965927163871571107518689429496818673130476301040387158035081857756044179126470464746283582856945348167051152841642091565209679225681177467144996152134909790988402255509041469098905329757521947241056382255202691861509668414048398477708073636171143528051408533226770172968747530405305024390045216977932738085582106818724544103607741173900671010096228112308762813231220565363205452403446243745424955281673823007606050805361913996846321452664098772962341729595157784750555772212037332145405110586853823823146960698886400620564785114585666219296659114557133742931825449060758153909610166640062653681407784111618700187092372252642548111352433253503966802991207652964637882035520453030794424980941311018591869243494853236599591470040151711983915464186815800113840246442335366063281862995006744629722934345928558964938334927679150846604492889005001093371400721354297531517639363891959667112743799021907947831976630625715627791081633464219994966727002086003642459751333375225685299571312818463160429196975268448671158836729164287791884591081857497707732988642017899528434690365103007304557569472973822875512447730153176001059905718022987053918431989844876287592218716768720549300702158313338179024631364212824276248346066075520671239560792524569177789070338540410750971650149360954329308207521053157133096263442106156496556278477587798601208564884529519164894139153731825000509777105073075034135219900393008747143960401122259165677885929192584642085040430801576852812841981432671885208904211942816519735755492133822182985704853601900499235738788636405239685156543948285444153178877504612928920508716942458484839407398630035768146927387913520678280386397228272856916631195433967179279433408763082018587469377807852010240946172547205890265890293068836309645859663164885939084291233627359018526823988139510243136046739563082243684999431168046426196460072823480164923911374556777125214843315971357112094689015247894402215809368070319137657893822032101923356645823540653701275822694986446915071676205035467210512626155245470838485011210005547928274324029297113230267249741844166215592818112691886702520582091400905908780775249889670413725928415079744829393229911027814720966141042956242165702118842078357578351752925183769757150499344761065113527228682256542002649603778148490477037031271719703668416508006893347221061748568860969614926198020305653140920819259679914355320054003956495139919448262089900166757224632809627488406144062805138259505858977523856885708718977549856399316282758772278452228688799590708857245456575445108274763540124722841756153013995843283692231270822349279846093254196641484032354037299733261175372900450855353275704114494010187914949671738219320934823967580959458483107630621865636632089733412663865950865037406934588383745895085410396643200876064330587448873902315012316390757468199619052862684513007574652285357687784195418908900632580514928579403222853844648532056638341190011906164327075057027070300830916240680587683432923372142085414970371121379736138008276103822401965302755490441774366788217917981968902589866464623288255495738270111660157670554771306486769385175443951785301789875479144096040242186614320987964666248808097864893418425386654694349111553352414425673284120314361433006681264372227857424586104922366952103187432252388789223727898576327795279729436037948194604893010295407887890658715789369302088017782858405222205383716517770997396665029446355259819817220381039872253206844655112389719580187034461295078084040611857957462741145233080983663014928110381437522595006478536215491164692094403675242420222718918408223432727081458520553454562943549803405319749614097645301976765848806540613475047312637801554664957832263847676481555105936546355936985003538592168063937889112774900216198244096593837542127191595939642839753817285142418276072931438063912714081907489010912939254248004776385081439643763791682719644331642692171269675233559190519557994712226589785505202247850304391758604793966487279271222068954794020083604956152413688785514202313173875351868920840100672838002764461912257957809601250325440246584766246648803145470693289149432783765040921353414601162135548640388885799304387427020823459570692950044490238221698101900376584108894532997034048517716656106739748140332568405144336924786835820742606429455809983255108014933935328027059431508241542047282562921874439367378148758067492650901447862904823474076803697380692044364018384280935119397106692465223789562987764742995908398672394962735157101162548417515604124648164436092642996754638141989571645267922127708474210606573874475374450886583794054741108190619058550224895801844869704604881754311638030540283101856389413780802177442198568154942688813870308550018915437139845078959634532933748458600804448970542151292986047289624678885628977272083153852328560958063905163895559236692931640934679699732912785926182967045060628339707696747955769588605177347259132787075839985813647506997907789419591533136591043216035961073383685988700956712334069637506865363475238603892858767376110244792998802070222274423869125310132545002033835825081421359102364907570377455286338006172965029316606981260811432676253025887596265009018488630923627667085028920138563668607420173089694122822257867957032592106684995617620299943488924667196062723813718651921842768090074019552811377570140083325134827548487719856999785927224443026410171827484803733490717524645496683200083110153352354846403557065114229544580524706233849695688166477264423459323822894382153246526868182418451049661491156440872062174510513121938011427959539878070751810391499569619877408743915888449330271209251854189260348004208716773909574069145215702735473932051435196466287841997635137109929064537066252217037062105634515049074569747339250250030133932997785655161937834671285380089328525987859544301725257191735260623517115285166516633290374540759158976191222180695415406076605575996801909217745787936102189627926620637016169319557648902816528652854064507119437194389750842414224879849638244151862214847679613088347198779192945191040297077215736996491615577214349478255318709070265411683420762749812447818991155790341730464984326892362660485276793004187273079338372108104450937410592868179677851948200132432062729317673952735148869402161987363230605601926805451366823530063064874779170780769045218725329600767706484579283410737380035904874328116800396484270165602769361480663069104882130687347995156506239103708595920168441287338131560870261887807137386578300879568143940216293517859796368920878292529025464615175147070558107560006491119127798459181707244808301253833447693629151847946114682659721778947564152863621391571853556561338494424339771036758752056249274892690882994318313987378065840554456196252214275671296051320254671827331622712060924516380513436774716279280381788028781632198703450372692896225057180995152070936134207136527314640200689066984261353118330178703144477575032858595001807401372562759035951352801889847606840169077930483514553515022516103514143415516393169898362284999227157320962098629708668538160064266717136603082863018260526275972944618790188893415141744773485253126582778374045200399736250797738464492306445354125407046505509613805927579634507017561735837623619334331907572175229153693266719902688378281602662447456143153417116116642814541630023275502139198949426334881223245621851857284082674552459779143031624411657806964271695552782364393307404989383889241359359897791369445978913955113983878824670029722623257511374980142557382811325824641829432482280198698102489116927253239444441579306199515474617230532596133165961925035633675259187733744159881725650431839956302904431842134062261068599761453946708540933044115136917046020898369768305146870735586235589544717081179391868369019024197234841469063816802762389472970618493866887246043302762029338825549745208104627414589329391421437801674996858194466044849211141337083485628317343030557893252439694886716625239019205656076784248131319683533161133975566285614044086443713924626070492181461748481065852120299043229231406880229942948396902337260541544455062113487931741188919655335584610628230222877090705414812698131338383068565145312493973180766887443374084613365838697330060957816442635539751621069834126646121096716280183714008369939680886957717781443676896767956689340631570997852214180958990314063073664763262552588761651470694717447227514817548095063612097040890172355211905160003041638360605407247975841349722315671869822226355390650899010804875303739571127245940225420133578827276832205914293557093740947699904956827500471693984792790631075334456261108624701957711697191751389221357633819619494991599718581850276140056177300475564500986327643782560264224751714908439600015146309627309390171662843829169264167326109235729347130510327862746200809563131739078461720577502675634763443937548959377026085127774485860913808997563052953086001237131626220103380454101203316628769689059500495745788451012123715596790896550077751124340553033120562618720590667064573484869804239435853076052414235936160690901011394774583780300717390094460623392413272297318132932602907174206541479403572473235664012291504748566044446528325552172056678905638023005875327157292852535180438985163881280403788433067411903052504898981288704828342212076710777967879246097916410621948051966088650969638965298692444352440119283832112118445904921673736631571488015562691911873847638033807166460319888788796563875546432302786353193395977005804990538568494592366271330273805021324147806267618333339649752125203824314576205544662069973045745116584469946146897189000979899936936557687413457790233752998912759158582444322893400753519211402871150389628894611436497616878356213749125800917262707503385990203391117906026361028599056260505834679672005993509152913775007582427827288607320461212453659991237838235598649438918355537331852580139107442492556247628544345529783209991686591671528530574817078001732691142259394037599573947041744246667451761517050683212396475243008012977424406922030374765507149427053492092203843204914659975575375669975286807498492416077402937107374015007168612338379879378562698816367132555978879100579392149013269253406525821449545133646264154289230181975527848559049010575383934351764308606641436378788179558441224350134233424062185452023194877666373174836383608381143172734719956706660253412649962122249184784601494860754583910243941569592877890531589677022658533227954833809697853022696494975489203754629591583272619659719559357297048193789305535342654147850965750681946595483255729171041319534039863055987442945499626833697793106980241608114210575227976799565278776685336071768243503518536987884593415364946231714035685512831660372306230728972503583775452151094387135694668901244416655748650257711720643975001497629081521058239313244794686325487751581041052230541265568026325807695274619072505515213795952761464094721612492829134864571343753416203045310654134190054024865572702810714817009336606203926369041195135788957017799404984381960971652644763273004153629136926708154864074020038246319840273237569637367797313150565541632993581531834151649936190542663453032591503840378764384867816140935459431707115838864114824834461969266749785305664595734423635589570767826974165457201137791072182373070075028421806361983191157699834485377852236016612461278503268930497264537324577383835200223802057755482029844382034180573837012160778647960644093410990705086405356537759507698644380330310534525779439931322322994235192243468009180151831278623404535626487881867945422254908163177737755314470420328302802680138124850419253772463343505209271180944349956504079524671918472051298496055664830165143383230851296876679438964107679467081147898762504523094394040010600668003217538526418824063930087720704217607228132249665094478241841571647825255038797329814638022027105505181559466642400009372524426403080670845249846088883963285221346768882008633920716049286283433906711625681286454452770953259598606127573635984305534321555144542692359248119206571279693666504433768315943927029183739938907218784845459437156906981479225377523919333686433670669049021292135270946722497412924051918993680996233364972991457281701384215372048691582116272007239712018680552623158032963179235170929033978356160593323174309109882465838238650321572305831899929126625113959139941889785160889023232482773546458061730023706666189722872617146849870397147843620279722558931720100089095842587802972158993210336733532733797209093321052443412486784802379440177506723318611411689649692083809089784448283026280583921087038178025611723146806148831497866503521985165825210354525150776955462545724527959795209697138938117489334095978398177996166601863860004452948798561616986169136750482224966431344856206237978109252780341259991080729351712432646037038349769143835140171438430171663249738549694725723187809345819683306219778319244156787994365773748682148093981661830177009457092001878718933857315116250336233746641149045767411746140233836438294815310626419753882500526817336667013032403088789533588851288695401531558055371942704545018288220913759667842324264379475498062338649382025153588020704083649195902219766952935841015875761457349542053337949993763359345813310453972692552945769721752494934268426467377451039152710461853838637393984411921781994797352535908525967055195128487681367397541094173762630469946519036002396455819854560085129277776040045087565253594702077505980442331508673377451375669227472808004459284013283846602010088390733151411266905882878692805974306632243943170951164476288354084973271721488899045834058806247290959006761862762434572092995993786150631376142676287982570706137654029518886890241953470956125768846025717992222041625489469828894842040483106888172464159124336674495040436805733724040322451845982958737846386401084931698501235824165803922430645939237421811304901754081309871549232497046838925585963645844490276320166036775040118987831602581205571425428199774433694728404898139460027507191987705426707089038702275167333732203512671675694878001518152902628342817024691693960104992707348304358743836226472615305505439321234487760983827542926751719667385129678280875140330542988605099923726536084591338439486604149992265377161438375919999658945431536300089086192134561548902876612289606270513263978371620092723661332208535911545804258765833424466499590038067631991922938672368533822075066642853153355004361940356013285567644349531319898133863064993733309778305639128850815536137910111285387026269991557030489042316485866264711117195557087181652704385709859935210827517054739982018417585562743606751125364978043739498508632760109609813967455627058278878228761906477172668982921366381388847867194003549519100005987765078784933604792798027031007909526125333779765137557209451063178782254889737905168004832476656950677722098646778082788609181753535123554722137440244945721092391829336215662605636846875272411711729249255399037028572533522886451467574616706125689034646256402655228990014281215451695170091805138124942992056533934268392979735001742948632265437035155696716207268575111185948662665886067646512540067618388260313253439707502146354767300116818957696347382452995338274134299678647958227584667074752708879336501631634121797480442050005379407175584588170072788789750879175087504307753373062333657735601089427259673356610006759911635624940735825368863765129358989965847325242546430538112716389135678621972046143857176236626268024433232869638460750396241382377867525381901400497882446793663024523609787467458055285943400459733087269051056238841817122426518682619077749661789070436661806075987325732565555377890194159682974756693800925612895080543640557327238936712768161879592705972373063707006621002365361923965168298897937858159158739218024697102048602057422726040771099473925569505330880993223131650594289751573318658657199173996802586643809595024134965349449180606874390833670927400432381351781375963820400506095884596553094351283337419001142211319938495959728973896808032831573448132329926640626770775375311245315592139159616092527483115853838951660149382291744963384630044659682323699306856497825904694257493017566670983765875131598035285934355612482492303195291103813910082997317000129878888381469165880308217559195876027293912863522280006625718837762861038523112712742125030086603346075999167462430546627387555504302831570148512796014342985221521252561088073437797753371904290511309409511503663802310416148227189342807770742872811006634203242019132297046203259854501960501766473454330051389664819367098656920195440255391099467303537746814209517044685926984065451921374341543988904358541879468164252060605386401486668002298574950764277599185974261927803652566067740006735947880247637555630642776039554787750624247450570197248665396005106721702682825917135077064694562199960692009140154541302117260694956730428792336358956446194299918519331927760677984172437008456684152442406870918277145397788842820543434606096981380256923922735693850320292496688187853477707684091946444091507697675619643050536139387073839583630317907739068970202621000153826061375474326312197704856134373711201852688482581623305039288196619366267993547203510884155640571686403688573097654449412709555711647218437744015522924520737150510584035192096705381551061296025313981869203103540890829633809642180157871925984456964300562053407696224343438605899232182443986364707241823146540824213484563997926345965250757629770671491832075101349512327758873644431656105452005967253098364392459720795097951863379708448989522842824859383541421636489139533237753361848107937411335626364463574344213552717490539467783774688429195556945753356820771649794981422158514498024735039661119284842346915157934094247510372177051042851600782501118108237611587457474578035160410390324509440021748544332298996879738501041694715894925023025692201978322478560207126764923443046302805095608126380622909000616640090876503956620935803153981619463849314704645578355381484806938782568640253870948123148043897573144331766754122748496814642424532404496659052967219346481841097867053415959115118963128634311585538854267029822080206837043177892534723712612277746904677453294715508447378535186719656633711653636767338808150573646582477497894550410677661633063466155593813403794791494974995089283780625579107013503690304790119125033003503956516592744960788892202161396290071142590214228593246858296394822044081105691022394905619120750210732313765822724617023117979241758183772384898559654353660112877320361022148191706155828217186117304503330485868372198816590265099185898378223191965238619085964049620132264043221136058041550844823572758234568903970791958964090420005270267708448218088365613131057197822053082903977771535461434585932726463518533033834662139340864382835765651983059316142584894228953624404445818839685614191185686250727339278245015626351926638893028162133513704218624667889450317641257084072735930334482857586933469864954247513310540250357318612242030223866769244519378321064692135553484619381751818556756584088686221452284025635763939765219790776874946339386117206508654739830866626769472353168100643199748487175588213823903471504536771634581964194225166014540437902099368183101686744311629291356194675750048833768793399587684933052656978308500709308748892698953885890156722401678272634819140751001230406403301064558493556899840120052447700930962771671641422594210950660106632937100504294124957179028984726490578368613855664754652437435311953258205854073497889420108925477928138365161809710034518573001578555513686044108230037348976534369193471537055096082113540928605137177005465582897704344075248436517821922161638747191615790328093180742079584695642108976707472883144627588477702675745386444380006261293091869090610994621115584696213525678731042468043737266573194883401369857206422309077142293586159892408168463528409345047879607532630424348424162869888621698762467612044937057033382765711041110377641018432706298772154727855055464436824639107720692326727209072225582768373823796831251668186551951423840869898916527491030105471313514711841481894718223941075237750926753966092675939930031008751363582912451610873335113846342330831306945638244279390039403404080823885833087393677460652398905233176757558337630616317237974233397656099383445148761804098326453356398803177074608328367581278215656425512038779582539092523790778740617485969103977739493549218006808423164312169579565254388443856271285658596780965490975657059122886465156001489887426011846268174432872477754054914726947598340483069604091486269316103741426262290391454661965576383752428044082856476210654870459221437200188582651663940009596756163286318649699051169839796049313241280674624992154770051832323576331918745254702979802347235050331585184196690443747631790892331967850881048646032776127983594501100769862282744437254852103850468675779127240430704289016106150551505938324685621996516260273870810278195548475123390694017044804579911784953851365399070943451724699118542960658835640961613838646330630573312074705832854447117831390040420474013061235487849641996975791725640695476237848232804937044726236736522346052299040017845973929415888276101260936672094432481508801835032749870225443532851651151448898118674700642716167108760024745686931725855382813023748031330557453820849947025174889617621964671232702635578025629842435540061161336513526760049733796447134396919959351086589263855823604362931947213374520006055567686342865224860823185581455951131111398712862202794015234236894635047046703531240548209203924408515959291004641564344732924045375149478983552463502003948127239802965858897882988369643681079548756534106269002512792904510176723316305345110348202882185679994681441538368056048735738847456887747101473246355412287707820400462132201463181799220469807023380056508757270993027024511837930853910446677532070771169303362929160335367501923271851865700112784555738583979361488735859166796967850821160975398701291260273686221211621179857838076573735830696221323553759606788144880055725806403012051143121589216713957565963432294259108262544571305363262368485897786921334777898571875339585637323395577375164074055551248888308801347313287722344126328944332930992354956725924101945046472807297036407203449538996164376489150306746256379876193558324800243911180546022154432927712040179363085075980995104021629833156701708052517859166198810823079092856914553059707639296071321901212258177510593421252121955955411074371982997650601950545468877069921654657872534211726707911443732126342160196958511420844002832580836359333224911897636110054889730370922754029269214139552554036087369591226720760611519700563740966290116673915263908683791612585675676690432433128949168128508882908652555597085183195612983210322897310256979366995036939855983517568694957597899827597615341826050261254892716252560114587865219676870608931513383502895252934644600070210864271076815740974711307617731313743957831714763096375484174051943870221740649241092634303277162102797964218908067161316072738999073479108750045286489401670328942474546516942651364165348561930432637689788535905258350462813387813950295753617468657101580016016159164237804898558475223908535080836471649907072184384213191399903886848871047911819237058154212238991745313460990335207048066129312854183820600543133712593651553745295183863137168658025226683838940323208327797428942618302472596446398465764016138758399163786443460846430319289151438119782278198017424265696320674432230723624903783542011484060772573748414861812462343855640751849030207268340089689716375834693539965275805904328613150896210587412507911824636644634828971649586118273593465979163096668133393139143274369263258003886335440589718527603278979933798831440823548830121168482568694271697723000143406047738840482665099516671306202530576048519153474339052876520277473558125111166900302964645588139896404792860562079457562285725485885092999491853171796585079495454330650460821379410599053276519141009503669205431660004427718404130540678063430106742482585406581320910007789773008155798122340414187159614854016217293369877123906481813061237015765001178072405136840890404039296341478785687310927984120875064233471467156078338844952566832772054151316841953142819698025324937317708293279822278577349553650015247343638946936796034225516671364609739470010757820164350536202002268190317325651114241509037195609581265458554501912395988685904768219644937901761000383001747107496805870914171762195208892517072412612739143216644758023961490991291979676767429230475746349465009396719540701418148335303797483398498558143777408803070896893965673169745913485690318607392033675575302109461034587845924914136005756307318200679099567804849854327196445146587920071976949141404554063314308783888264493284891114302527581651202333967296845225009040513984218297129910997287768380875273902949707312607286867521004258789362399693923798463059956205336152671269635239514394682631464602102321662190382772585172210057992412906012789256425755553579280414911561093624574973782103087419131285771113736096691102571338776127317806101631791567603824198161580933473055036667807586561797610888177118654100880894169787711074012590027755704774416427875968547867373524759605051841513386010942668112924100230485462836778251419089635784460973102251429053380107193255976430708835568833869356823810973227424547794970017882814402193063153671606507107896836834604968744395415506744214232362707219210342437110574805255035383957650141509672093020351265341298730332971675507782758314992319457252956044727040643095708070522754632764964386657691564515191990429303205689558231164798050557463261947351993613804781310806652436493116501670705156127964757508315641155209335086786576296545403830670557518561695878410606834153412028227572275812276510605722771075988126555939404872796217965636874463666721825721608941921807526501490325291362183753993191490590607672374227276616259394048692444265935798107413118547497110786029355895641621093129652473604548579727750542820323227377709567902249346451240160152417360227805828810537696662007212304141287301007333655250791215792327170655815656638640070623504714282792121395088530766520162336709457750123995176383032575554338229205003938768784039445728453292893501319683988275168721888802261686493479564903780603874302540309539651310166078816731194870017243316238424884942493040026458447824223919944681746637663199517096392952711734742127876534421459705333234459859776447997762071438361955845286026368333258018124622540305314769794951118525205045562994845770318050550217683720831300082158258795567069469110842826357267457802551277230174873066001865803813402145298802224691257420163173489320670918515191055594878978316669776272304246628443006756081748435031784473305798497160628776452220036576191809592152061516834883051035681330686067407301517329756166324404489590037479180708900280399596806719948085285637562034334859701731078070162630355361710361560331941436890318018582930993243786898347672808692247104827288096349217019078308184909222483963775647457697245873336153281872058609520014409828548886135414125411359407681339558886598063905048539756406599573796224038398754490521560060437898327622296251249508511926379021097697374955369138729853895943511692096579534219091597734819851773615034051066792212619984865128314758598763337169850124141912665500092478604374240896295107641714966882988189151961574921414635158701651742131421254076413845551729539196926164502663443064191916591088553632863057108315403090204823472242031298322756505362591889850408614311863253075050484344502144348650209416202601818520982218881336912404797345156664588440744596985247947444652682186873602442658493619465179847725071101845879876766091702724299334168190928795239174859274497211987177379667856519996436987154213458536545605944762083622505145678852280627550526162845737673716636784332021021586504075198306598182535755100204590853461907575021423779264528710518367883225484473896404506550138863466700221040392228008506500262862458253232403954980614801950333872315836530661446979484191796720181818309206636806408029792911626821120634760498124679438563653406333638820551186589276180534898170939624885478926033184052266497255703907976537944139353642448183857453222987988481232641846132901937937205128328040276226894132260438828683354884569047934893766029693874944157306864634328475647881356427625003488739361909693339712757875780633477731422143919488453394921666390434100939947680337046992226250157480498949451767442695954303593274944690352555539883885868763979042902601878500070795970433061671318659618306555477621987812260517573208823723628960027175291927424636310083896950119797870346493238497168433219412323442548487302074654273577511434505978970819104739580682685983466836367056431636429785347053930771351233562948523832396743943360211888110641332141345779256919053991567488154358628808483376756489037758960238248893675485207061311441691396035499096297186045009444514229390099269085807581823828743935043827601937163625530594212169344466600802224014908951482677304590354136280932156484673588890395824470580550671954019542074795624996550099822124634007022256027662271868885899547517965530663801177746665212021606366800731654420812730302386087109032949367298356656883043898106094433728133416802918598288095078471704669779151146057520150837875527390767294580826286320447326113829920303940781563901803561696214162509805900896560787650940421462858047363419904176221874200698087809189688227527537886149355214233990511371474492880106530549915800527688902518827430479704772708850597745357327719354394616430046094593027258771103018970049599916370342814820496654460204176332746293165125006580590881116200531672903109991901358186524660491595045117833976359968171601084279227010306273988276705441028342615953991740035956655885533414883748610950378643166657480611625260881163803783121375676550732206153718390270328823953310028063611531852805608720245252698479816271205931984471767705639649190309905871850019191978077938664063663191002560661908413968695455342399892825881857486502783035491917091866352839515939198975112476880808549542921562840203697534131858257956319497665535155146666983553250799627573524570102692240753618636225874514110893000021070419613372613046080798662141060965231618650948321049065758099263912220776303256818772505702558278370706405019417682590485365078833813681677440219220233840090062152754551411712874647343450085639024807752467569650014979735124735230710874939965288650201213870171567732805669724754810893224869805436423005428423186438854236138340501882321632454201307803421422390727571623619574826740240831227107386127099845728721840005099719927122657647032570273232357111379562342831931683831484783343162824670372558323604369292099256129830824143173860839267745376405592448224036288429762383782873927950671287097376138412679736800905495349703799785033502698393097302925919977433516562384883757540476093448027409994219929277913028053288321518662474815829825161547597193904133402005177463766085014799830174157538506486850020943375082580038667602671975424898016856552214923994883468829335414389381435914583157625007969575715766695740878143058957471745506492127542513861999025992533469153601108669515384323188366114167783934660026647962075950728159291516902519411408901528543444027969904739871164497838026552355504160550542201991169011226261316793472324487767336175636848388201908885919679754461962460976643521377769135765863701132093527211608937815504313357837125223549664156284795884125350834599857574238263125631599912846610920309237590712599973435273233650972924515659094692651243296637629938270014536314057807123372852595141997209248474212205475123154436871769934964979449882641827871132351339243626485003343687860038554825986610893866891534861131839014594465935211127707156974313839120310535831380128134512497915882108762832971795231194750408323794372658001983824766735839642578698901794932955122675965980299296098142054482999058731699662858363909318296350155621064114307874653735450418329061796482175816041700863114977233502321994995755008361189460041173599924495521510147792804603341244336739649287878214639212394959822439864416013779012364882948208202688788581658539747573189746924943208988432208791700550282224869444886263738846099364007381902251752033344393268781233985888896576754236420351036641324660004361645749121510107396317115670590881080081687954233242607568038242613728167568988197225618462813369519937301090575861351867534004008313535347749979266483948504034807585864947136306477298039788246517933275210900300327657820389744749831016402478650152561552189964578316235716214877012992883282115447938794668700520471637985445335572650485368834772909257477549307542465439724690580226933995380631184599654163481421537377913180443591465894715094431466768801386725713509449826395321395954384870463332133362191812339895998371135959636394440971256893244201972206364647096577923133923439507849708688970776492793507661786523011016858146654475090768411271936672094068194457030344346644812472632941081917580391848138608969892191887643663142255026953859657769131242736537329758779135924402895747638757980287502011131109710611454065734345112666169125780654325452197165893491499835992739459003338877250070947910878530491150850765090577592431477054555730323681731429167806151730804317104508166403059592902826602786960181078184191674592231331399622002797138402405899295279784371207515725041601579168621996958920874309684524915007415455733423674300974553353443077475319535810724160166551817839096628213905155392636018158928623050666273481399586283706221465805745906123964382653246736812545641091480775503836994982071907795701335058771418077314448960033154587044345339087036150452555521354787815586749384223369753924397700527717925573453326744554185260276818707337708359849698691378673494310886016139381782321960961973326609562687561893710456843116596927319540036895046992313889252644721564978920052433579639937544632909675953241261219162072288275091752276908263021467265532132231262344091896576666415432275776158132725061260732842892539964444695362924495948592964246009444414345966664042532296750789769935203588312719342642964391163753427117095731813335053688039085583556385792957073937996772370107543658282172352556775236980526807913834034396336276207228060161796813518986492484121795647382597223122252613174325332105353459050665204916755094974028143976045890686538024303908692089343691041306450693043712052632481998102635129131788052053820714335485615155899754047247568831772700449782232790643521205611750409295838828342838878551140849787400365307729171336965658697261097659317548452473981600108438630666274335736802966465180792584357610740880074998557407539375643303776594227984155649642329701899095672066356874571494705386165244795538529684399814530004770400103919026060748018008292346983267290616114351977722255779934776028444996307248382103799730372140776625205684085768082641301786027152541056193348259625921251877468534415928349169379058063555696521652589500997247540390873144166460767244478982817575324977114973240413866333681503421537962383515912629912208195254786723774965942199158079762648839223404755720697337913252463208995304902258974057059827149800029073766864300501554184888379761408559563130610326125535298779266317083115837463690189026337234440233564406533988342012208825566675339564278883838053483511396852005864828087253767309370989696843413590521981609116681574854488154226045646947870006827730875233574839036100222654569721802687537390751335517821208381534316916611282383027426826663244266594217136137529974395989293503181940469391127074841429892567644205316564854571942488811849280881210663689302802627327912558113017991654704278828393281376068073584242407112108410292450609758712996221477015616550236033013118005178800698974518514167899970309223232392202751719699491238845343902664927461233669617967694857180614202693959847811205940875958632862480601798369380589682994627081593431410058597751571967677970934931980616733052547463907395980836511554671198256542706120669911272624526010781374406164042469344115384678962351680436254909745394146395478453483066945954139459853595524447524521917143780528807113123100681860697672487311491228775717325445705858714973884225159990386051543324194032308226966081378695703992015537135887063648653831942745435403892492298627092844796080345967610318254656727239156446041707342900139227292583341760762363824362750220180537819006516795148942000820136190206211100825732304970909961035759483572111060583628009061628747142563299397203194340924293512614888499190326846120597001867104095695971597500995425022355690131005927106972799293058735781334825518036423736770987627724434945225391622206696558483102574477981468604960914990708539647920775351203621867580750485332608541245168085343758026124560979747922077011559456961538640741907848380030403826224183889542709123359957962146540696378891913332971848158518408987185344677170787248151969323527571388250737407933075739349822157213605450414901804027038394911980336910471827700970749651367783069458163829630765058138104161609625799202528394016002066619785452026720642306260921752398007122148653305626587891739157251494848439868932795231418632998602388248438820552759962944485377387776392585727980096216360992080378106954878884263319571294917077299110922933103584773165779204335670615329712792481880031797234948984372169651588614981535111454686115356157372571480076157891981272366590304408576338726834144516754782080780394696599115958432564954529847556096658760509874866589338869070947237320819949669631585930035645123308590565592803569360953651450345195866668881910621092643505455466494119539339938935110214647912221443927558267246734681914317151848137940145652737324238271633732669798159080397265359498503899841399597457703784352953151140025008426194453978731944214518006897229747090177647211836595603192629032156088908359042372547838914561260647953450083443221990108669299448351432910423328862788072478290616534090430254533937555501793839684366407688182421519536595937465056921062972782060954599016971707315664397310159895598382220961563079843106531432344900604769732028165752360686873646791166869720205280777842137085796637934542888400000768122571269766205487491120863192814237725464711996036344133446396535185357019565236389316988536169010728428537315680527594148207485186255657261475286803942330189902112118302822564162142233510859338810379045553431714183364809053437333206462583022359916947895991529074447579233799009614937173619557413423174663337154039642337005599931698965350332949946251979380523548045523579200268894803775399223455400365804427144792753883408343625358982161089954582744298189909508104586966948802760422713994138888478691492527266112071261956630016690699036226243757645239783997631786486017309601643182722176114958583187400703234246172761165176144765300183164220915000097598506416539477150554281953772720444558628267014575071175966053232773951744973638130879403658480424998982515119665584788778999526587869207429450738350458705349847730458405528731886089352783997968295763473887309917584908723383729555414764733101161468905971532220428660114083078786833807459601067365579796336994529504662279698423637103907604156911639251360772038739211290038452710710380541405375860939369719099810799505817092016175464015227371869223418098340378668116775744145753222026175123453715128947419390906503020568747748024567782132813352116619930543987774796075875573230668192732092909290041730440978510694870206688957242540651132801761844339431521839064603338214919744489428978628689786211727925754653730693474619717740941320078230499013540583082142122985474207424575877503997186993185721976588326604590558392143542140937108877712865676155390551558096821715683314900635385927190085616720426074734165392358582085219436489812979689539217165179726436451309270470013996773679329566140290366655274138391193447340743769861098375261932374183229058051533090470915487525583906630926443727186556786571319392659264598716675669908316697765036720535710518940025007743538608317575341810119115896814701234527461893006358363690065188146435793001623352566005767383826124475229365611259542064722830077689082215520317283375963154107927701661369868941815408818618106762553834134614632725703073636846161936424950310727132491543927847217337496116554646347626343224111892652688363551425254414755054619546061446945846787049476215819724007914214449168724800142212148699812363581197454112067359724261767344352790395784904218374552918545495598701541033126071404213133753058006913405560122998273990954749262739002758256991846320551447401292595889534650450548139555190647599153022138300257872249019328893497560786259070375932065538473605264897705285447091003567190069017774457137688440662465263766027985780888164106338716731399800680515034372839828391752133931898175895688877502649655751311617764736878456585821390333095792561743167687694481682422074254669369437606752554441262828622772612348978065581762686254344613547559198791877106933551493741613415637571792975142489954744376370597608953838138674057185733632349535792486317079025127083731208167460668446676623191025476316564546280302153054727170034980717593538524863103794893497502832502005395081903174339887350246480601859805788631973718126343156682122847164583886694675524406426441521777064745739159926922491101942817036065143658143826725145371437229296868473738201779775986826119884584390564632672444227117288732088706456013683917373463462796096767028769976904774715612237062409322393125227666640000896397122830741167670866908504011205463393525458712559393525996528704538263584673510268736703451201475442172031468789489211082747260697353760705347668631420782258625718026700890306165227495852982398501400060066906628013538693825506617983648891514499402975166352349890007325922958808431097896676074140574995061036287658494732043255423498565346873113075762346652849323747278003314497094657736211690236245190087351467759413919467393990922371346471045396268343701851120801906111394838136170325717754494946826493106876765115479771127854639527272521279151283022389706337237231927938239995698755044115862857140443040632245126142067094442246071863914890839840601004469413184771086288568814795164314006608045059240038873621062883929233770027043403315343573230651567555847834330942658794296321637445787111053382067675536755935762627645661758501884892636490669181344849835848855017371928372421983782019191579965046934330260571594790031940648604338001282888580033039166221035811298263737228191691496385716436715467961520180733201728736622742382752566452731104342174831225398403406645465696657673465067684475418484392044368226849152443808458859913339092798024919233197844875045633229985966696073225282147028968398218188342544548294963776115827119432192629967514194512065051921968861537216956039578684444022062623104010078118119312007869437761612353203934793042928298159251018277996605923254968935966532550682445166180694351481317867324913375583258951466270446646304036768742902586932929040641634878907482713655082052593200048219183812070726592388666302914901880851652801776038473410753802575389624852229993236566786300071642013727263111348656309293264066119593138672007107615318542738881472323979872323773329425932251587553960603223954043690495481303811851892778234595886340787355710998718502085673855860656209194634222174928821603510571247464734191084458535908547315159247398441464931263459369198018638453668595982539238694925392027513710325497706277374476719329335332946477972289111907980918830183004269439592661785280554297185836310199719117718380807742161890185244019101473739442016668386862090809985608425080932936308838180335983558742265662386248515841311479615318865031169068733619113804343596948773784690546065314305091734581577345791809759115006327766516867002107228918663309181901128485401058118346930301510666558418252636629874545727624447150728063260420854466004248758118292970742674140514473115779916507202657793308382036144689529871805016604716165836887979530769105370491722204878709500709144411030675443152806479940249439087313553823192270681227888513539309980352416305609729448205451916825641981421856014827630688486491680679234995566588815615062092340850289132904097416929142957027667682968239289485719742718115442377309585632957534855479069425069689521187022726422944636938893168531561396098520392893576252604932491029540244309380781565977568692433360187763385385818157998932987565332801856948632457973361496230282724447851615897109151588849903968500152653772988462824780502189078370833106235601620154179866103372996375766454726373886023208326476679071825752886708092135248435211864018026308043840328031897704786744090832283298562013119512808561197582540064957190342799675899108456633357831962215655635673755079727283754456202109362030786006097713937539194154937300602827687522999385607771982984040882617191450314325940882823884196417069569584921009255418159681582783756492369868582881900263923919312073150542956711493304372077555220151189065501853944666493053107260094257716374695131723961956067437849300837615787352278360535546563217954160129153291513390388454654878758968087136016527432926498542413698929330778000818583146344279884264267261219368960623714829213254044810151405163471262389741336579034676589359147404205231486517486040138490817808512150698979291114507170409762988362843594776868491419706357300472934596033068576014321849008454445937185536059596322784438071985920468406934201896986676571976789706335755904757096382290015388860409247647410500959444637219327610461175455382225300126755963643493232485598310375386000224648024035549317565656376031249343101663645601085207248406983877431108884123888777395301559240662366827537987469497476347528400244646908689617497333692271256587064883878897969162978036421761928805111914085813621687193973035789098703084947628753635626758792379137377989181958155027135339279053664357307842826358434822991414793368704949751958603492754177921665328853751072409798257664465992859142997063003919382209870504187249978130487518766743140660053152960628118362048053237706289732641972150534321767987912616288295404207473471077745958494016907073580886537461264337022157256493195401756047930194888161692043116866794158640199121125327163913972600463406125201444784739589398698504216809829565513812573250848061744308064910032269981496366850082967141076102682297682993439859390526818534216060862437873677638082722229721253163524453942237822801822700252965498713646106451892074142913264546193185494790280163014428597092869246927865076566118570786596252235120146153583366423810540657473591687328168659952650524181433224321830127089141125960582727632200059260355930569516540597189343401552605900870377167351444478312789362083032176983926818665730416717666218689512103970366355701098473213199485895660139322730743280123871255003653264038911380019263785006602417763329634887206554137534785054787429399079248075009629419556581987402046731881463220346835773988053132345389266785642932422009007274764959230554513446389612596431462581386667725398080498421174072383015709763877869017880783568998412355862952877447384702415229928411529882248718843653945751475618179343308434263707399728454315038719795382774702485198344487783305865471841892772959148073850219530445190963366551195167012345849023929735075502631997404187917064765212757067475317424622182541553416534699041880606483559109296176438499458575240368902025497347467520869225316565395520425761940941705723722275395103484273587034332382932494460420062851851120600950721109454629936955557186529131672831000329759936328959685659906975062258946142905644186914217800604467263920762221079976888451299164798554575134652072253431781079311235791108782720116750962263423540815849701887971031024740164671692730471262681083058104398273739283739650595911448052030199814678138749026761150983705278833085621738240866920400807251604374539939272248383363802450897176871044461958281410123902953148600192323610188909502865006625028554455309373555887564158437069364491739296809290034763459501742367134365100448008848992567982775374842844478542939970321239268463086454069714557304624800623137819311863814127145657436240575912430451591384091059581657434687162808440439045929118738714040308062110205372215312364085698543442164401468983479021445200176224192721469486448269412379271824787080452136662960924041467590240395856355913067464733303924885446868468699988831188969002495643827511984075988094650221675755635706709252542969507475006261457723913171967693796314281871040065918131652369224704998256605007737010031018536031288914095518089011310487362602622567066880254872333875579801383700563652092864352424979166090664705163701775672742954774739588165584591668092242311504737009364432324112111655976020606054127617371065628362920855924226104838198192702989738467017700096881661924059172081400597324218675934329076606439322869137536433772657122825783018920684224567167879618677116392044845417475284910517747727679746561113813821106527785980857269542398023671912250377693782365918773187748385326716962107756706687526731781453951574365421676876591958639320938529411789839788048413109661469298397906799426338154367139723970179571581236567882459973531852901973937770008313025279663295034055243122803149117916722926807545337668842723981361862187156624965004406389423631007146211717744478568961911467528697326632008156344554918691203464147849190161045807468711890304532661999148585144862488732638379441701941389240816710961671116897009438820934327548021792546155130395027784916303569665853030517353429806616049743315953712986610950849700298854157219555893214279348509978751852279429789470784240066734599459408270454752809987141187026867735231904365113599468553913781579352067935519833684821498259516582208267341262640728207904292888527500073916927987887689991859976458691862262474439564819425158434713231860637481162411400808154354193033446515604527483040559545243747180949658502842307086773725095481494941269107354881182976035989560371106284682435775345571166656466514457447539591898269175416823674756150155687025081786630799225834175403076738796327920895286785593820635041309953021034124671497981264759914667254325463736697168144351191708934458448518181744365413579025248388684050327992447741820046959368770166030823445991218258497475873643660593361112382280793520177487946913054192266113329924896132667291171317719352588443744467664159289958822970346602461020660914914129191746009432926957184487852370088333510054951323938545923024900898043694694233116188959437595643249090078207703217622117425124843510585201724720689612345996904440539363416225011196826043301357691135531555518966006371068233216771573134094517849758815422976990078838687491861407907936274873405643718873242554286480808789465159236003331675592973421862900253779819294135322034362952772046314143681815469271133440426675510144756729930773590899594603632508632758131395285286916477811538630825146623577562127648747839317057337989850907892949852936833453971213286667751842642981600085184532569442998572783310390880529314426609441432016752336652829311374400892879948679531537225705130384040105434466526905946642495920700726334161239911417506772850525544292018969247773980120793731676093502109696179111335335594061350596698417729740874372575984538867819847302600877265418984481334288824588370924921878975019770119627863747125506531004855280232269277155976629312293338089997155079256241192091629551029878233328745263386726731054338904180390224192533253329642200670747529694087146179171415149659074183321435296885201610576620996127668705740252749466109677475082451204063678205771442440553096258052764680904985634629358727915780038894803416332915720210174002751005959828294641466548251873255061191503442366509533185387641161170223123089714451467084232169132346973003429574923860805771185830295949842959796403309140312473932159648922377402628094561103587542902913496482546664099897001740047105653195283171560860239043505552488346014322590383940267967428657422396720858853930692780730260530964627714085508822884683604232845941342566110869620246637609200345850673646166742372336189130847230583345389736846938848072286528233698888315215966990805386199698757510624820589578024509281642437959745749950799821018754334176291640766026504840929950029081990301469700647746870404492970623706654886059667617930556579184576921896989059270360486832825555220137091710492527504491615844742899009087088236401592565436860306381911313214150729776618100651481935926458099243244583402732565205212181740906852844526627002222910138366492255614069291987229330171560077530479173216887436683589567432939365714903918788690168509725572494378531191294820360732083091096212672534833966375144478178676832919010778595750879396279280600848787374730384242197749549853366830605298439867588565328497899135587033554962471380869320886171549529869431013290844057276135857002189104772375239557087442482677159116961035126327787723869806091548927836173425946109553344975847435581732174009235541044966249811617988946947788260615696836129331126017152072640066944975726318555256721473351089996414295593830184231312295437038033319167126940087289451375970337595755978781782143845988690195686800631682444151825857469645975506243890820742756651286625917543271930502064408181024923404437615537066399662129177525572733848304057061619400866650469989031767006101794658826259737479164104726014656940682002264307894608027305130781196202624839536926697985257431631504380309101598970812259639050023948816450107894883655898031198273618623237310255904235303634492522190675951566166642473168392401211054114454610457167795901576993189583300897649423690434988479953135975231439303469855663527152650570793309406292929591062925047227256455607821503481996073650059855753233103930341287395591107971925716981258043518426028698059347283672320118787074575208690735545280888807918470290222556570820317535758197085213258760989046662598648692212323626103599641783403590784369006826452617617107936514637325613521315510843350014942263020765220151027153398350111170129599070543281745006866328352752236916944048607368482661821042663520932115155025080427597180610832348061426629846519361181855940351013409190952539474510357852835191183257147066995367891784916216096762951197848318484806154081595537959674088990280462720139071369862358859450968277586650790925215476067696162441275208834331686537343072922437956029871640124511047873442360307590321619921925094358518916865933606066847640757784846884595824352451762704864863328399581283044304282448803420445168046918377375153738605090187096861463832525634635223301361943018312876204573787500942595762940430032477084546412410596752942082250498869669520604117144104375056342308456144940908659808893463682876221209062583122652500631568705570253896282045833476352215027286309825813198958063536718357281303643325627318624203853336035128254696991639310047392916362059551874065032672823535085760510898568660062129365842921923460961724987214519176429424561002890621814608666239471245940348363319379211461869282821657797452867270237346225799794166673018142163242225675732556089338730862186756234400743545740801009049055163827643410773122795085588897689840046569198273619206387004495742347551862132747464075127773447543709674916466292043596466512305345904910463952976170372733986054564123738594449219875693432409747495155818294348179249258563313897897190497664274750941332093457004284380497214983667597470047351393150135925460604133556875433957529951757245005099922642507621502642112988115297151600822595739102681269868039541560384155464541785727744822869960918617186302268983457743463453156220540029694642006088138219231370871314783964472291968495609609676362778002928933567630969562543294161627114795687746699194577405539060205687941765618897254540227464212677789149996977352402402847567524441584837800262691643591849903452948633758107544432353885474736106099336415176173657877787017504165178217406561620889693795913256278323210294044024115291898020844313327593861930803566429144249165048607823342001833661796196023657915883010035078097383649161268544001051591159512263705961098067694948034776230859210086470624767776713040290325330507301636857091093238461201228748191610870224972782149983636929839495021745697549111493609573543712180300544539438509395801923244868897252578793256195399271878044728419474438138557874259333675594245176245298562657003716201728073938910727978612668164486031390886695213759292614253252913493134372568472673827806953873106441832082402558492871722544242467344502108601803421868234116435725338490403032393154347711452833238949679089401728936685695061785196002167465141668000226453330354330607714379570098743775414149178223400180729992269147128038372464077863365896057041591933153273976965988020311855278759253317916969798472350981215053313111101103758735308359250041138264457681088904873971383392433794160564071576062980043009498173627962381447412219142616128241059697210739894047327214714318765834835857682441038681476609778005015774418031503556603835172345109054967471351108418911923441440884620400296446936998652634187836731001445445744434480698838349195772376546339959067266659507848426066986753963359574292024282131122708470328499146144568181643074196954911432748915340008988558795848645019076266675204453284062733026722187809504081246728839746672231461008009179930082199481696754798057431419711214432462541358414111882512676352382098897858935319814096005226839355541993955795715108868654070258050071399049772786633611655490491847508969395406689375225682920179923710331271438189505257917500635269931967727079263455752007817033485195162089494534799883595577444454071849120551396075752892384277697277500968996394509932763531587044789384782798289062278866691817238578322747109405662615887834628079880039004646699195843092116860831209064400252724080895188895196942008286935133121632316993856704028515964583135970394916324785991598610433385904502214759115478002561591467419082886393633065288801779551498906626748199497888236459457734138875019443327765669282536341157173655380968200851231870993964305209846686183871340870512813293166860159684453817335362812396922230905029105570294884360606464510449627892032906522213378136456794367949347194421120826150992705587361385176597843075598086972688024123468235260095649936606589321594116420545876646524320241175959303020228731818806302243174221712774096416673781511158802082363765391237281819064370438468986333141688871017055682563212559317347001795190163950664999974368557831990167684926657324212554881633801659197082654110413990054780956823923559966508801547423976308790997394216233009035771983125898370119316391779738016931773088176172972207432646542011949084007001180371039225213529808429360735165296090285048301523508720070890063880559591551649823845990615559179387452043891006023688669571154533621133319613780353563815992341586641895119678177426271173727428788900660476708669483496391139248915433155795712177821968066447370433087515555231359790599920517804402122656878310959949142082085123599042748181191826110011839839507615431675243176221898983702348160603194083364845701413349665639171359399996715952962344441288818729944428478457963592333386163480693993120463347594211991969246794660553304419006465593245213547891232997984945079774380013477043637089180034117944311788615844305527617239760303554480512183121489968464043264175892491766998759996964205831169041924029105448441137850632687264190096381774382822108427312120751156953433200463033407115712592948462084139054645641948010730416448223213827014589887217700436657810616465842400054305433075759116001133420675212689672328716735733923225542642312489067840100721743066698983465305176338422612913085124050331768377572084406458011950113330327071471210030253961345074813945106219869727221612864058220248615773501370318038738396569451162315364158561863079109198568993908241861920843710815886331318519125545316201306702101731750893820102283443820507683235975591606825754315167123043996703270547324632143947093116834440253166378644302965639664351888235254633761488644295772645113269042729763574873894651016164910593828481093278061631532764163539641336258258076177108213940242318296862128530549106951750662055076018638488223373726462945512957785530382939553317651459844190672338872603893706105116984860307480487521944336533669207666074738365264652455848438421216873563634614321659967651990857582376326426501572569616472928342227625268202239524882081492775210873975267665187121706408656402148263678780927782011500229678022504425014182360693932585847302010017112914827715879415291260213346094151723580181732104838752464124011971226240931608473163097984611875157042369923834146048217255604766827666869482818277759195056689111652334737136243865198791538522792838740002966737057889520728931947814421505739410356685071419691010919846096611927079495638866806704730336584618459025217487362971130861397646641455287004872283733585218501305845282994732696553888966128317023440589252401382644665933955920021093658146751983626650411359526548901060505952543133332289963322246686878155576060532631419521703742577044934774497787958741436354461098494453949255194091519599768129804486845732967964409256415091237971133809101115394894057685904119372283783981822002071293803680871276021877207214193921878581257706648783705043383255660323041694288418548442740078611506105719176928771688947831168956260893836334891088400619617296498916833089847715391548596907220087346530584657062000183654527711344175977224921568879130090547675123667050508491544553300209523514281076950437413524279848333530919119061052563752548953637119818439113412744030281550189270661933859524698285481761195199489980998797900783474987726173834458554904123420165834049034391983511600096877456549261317750023077361340117006902941908768632019430594940916410557962739101626306138704885191431013161056269001209676271384353156441678485368437893499020446658589499577409833576475150494657479340956466217154067003303801077885097286592878684509702104047973275432567974700284831648466023660130528706416939320685874893278354574824764881863340138607233809976555646986361857286427392138013462550062505494040130608196986869699173244431003359865087810630188239186001464461327858942643015172994177700255700654316199673924966705660741792365653393984601400863962322493031646888285980689901580457255016014807002908335369851393143201888387592005382681272484671096316786844071046057373268910157479634347714097392321255783458937422627882567371905420252700642074307501467312133041704240454645707780257250012490418801078299689110446176741398930660541077707583038040688372592142577468488014122347262911912029005651348818215287005487735694443600538198980363456315853140121077155299692705767093610512548232952615379375518456934532205822164704208372326008861488642411183949595978015985829947760757953632858377331415789168674125165607451956974011937561652138828801039117288244701536861010677684119383466098425867287582001813814025362049853803627544644885012924606939565988000774454427826047969457997292624886435764883714032744497362017648619419477598373014921349856424206372367034964174482310798146543347337871492498216799808805832868986563506827964001548384371870328454728440451199614640872053104014379525175452194080652556515240253004797251711600924263418678740396936259688441738085674012872540475590448958404667914106574493087519825715349582898604547232882987324637970734481492658499188791335326389030141531491872632494704810001164249099939435459628984662205400326765040094581164412256653216744254918168025963714262784899923151935727498209491688435605237345314339874820179746294179205553369261744689885376043461177209561711270806257444351822455675790086212756843351077413848306223333088776808859991319504392476699248422775629104791543612766409772168020979095316331613936930258160807747058483442800575601095802093687998619425781656364480229288718545159584015715312436867536384109890250474675011683225735438232161740307196811205727402235486467046752807868942763770686063242960018752002061129041196812762050180151113192423860696533440659874980335676368316257203267448866909583989691081945981749879391469612994478594341991675202530407137739496591539998653357823309091543471046334433854348087433922566992230892531248871182903240734861835326112683057490031275288992636386195718847326356167565844035949959269796060111261281369875870675981455816733748090857231495476737748115479116051087345928701040521581116681401748399542153242849858361952843933789261020550855291544898629921026154815515031785740697437956188017715936376577103082023424635703456525714036032108622277305476108926746188198501832844315890568378147467741763746352252660703644125074073426131822588681301401061882944004721014282718405360008692031144476282933551015277456854977817363414089256263035016956085794779529814064530402892146657305977349136611405149225138782749344020476782634364154241362965234347363450610225663724391619547472583067433393833873379284168126002929038651487590291004390680355371130561861732188868368031576601616157336305667479698123776190337685320708100327330111406299096664459126453855492797916389232267516131301804795472311091292923667358076505694490546312997049613981821367910348173649975495806391770931015668533931653830130391152007885320040064235396700893085550039683348322343216099987060543035726383055734069736817069056396110114952248805071528759008519145282593271116646669450222348002553334666886375217848836368129787021928043259641651979698631553029172709144914083451880099174512196375356008153104482203635666928411650254019107116636201985356147026850340200284514248617063064387364697427458546189316713579360576554278743357058870056166195126442343854609308296813984487697105576462224144035640560021191573311786386231626485109491272853412567705691670074509136208485997275860407421267621333120794820987188560028577096332355137931392977507722196145217630216855629180343362245564789858561510663872900678971155449926263487318810403487835599837974551670002369223125817071331678553559539004420151252965645432803360783221826996882889534271906292622698985929324829649336557436366367909030911104951374542942306172665559861145113286603699936755552253568023695936961149546712022005163483054094768509247629068727471628735544454005232684913646877174252506590811782504361342238092510862896469000935966095746514972448451032704573663202384037759623896550272617150952502026128373572529491190410210361166620717769676183182000392961689692463334801915913817812825264768793141763446183710683463379113149654318701444315822242953227215792037150744497800378143684527356710770246899337424618900405433374822730852441290593145653485236927585760388505369012272232957552111272835937264727740922421933286559583221595708334542889576789677707030319895225102383640465344388396010423630462742999963892065239567238714900209835133156445921676728513130344427798362449283587222354801380208119009501479971986574673597452796791946671806974275078672395757970348735369884276577123325468739188088077157515051596373922158957443133164834260118968948523776878078417255456435947496874432185023471897500577084957360941672849316327338343585899883204170614547755516957777754954637713405954677806625467540692783115187315908610365211465023011530040085771364580327317974498594223296996540580488548322234470086053383707316845210487020715684220788347440242835319885186388581812500460255144532525256115321375125146768789811749948245805188451932572719650895276718268226373995932729414566611564413390930058990667114767576808295243384939260162069786984665089875708322101912909375635089747439415859193737071784864751793497421117797490206564395108672339603150575428207879604536448151811304255329330191083910391492788046297436449752411071200321199793392228688231678245419544205171677942256720008596983546426158123420983862206289940532270033181271770715202606537405501056167421973685906341915994418213549402968768311598181402025523656910443673054831457501057501301872151722371818490680014686996925552142292687386030708167646418225578655863936977753038100239523136045043152638914523692216141279723321699312421120197319709967278843686752806776949047718662782524433987821984015503392846688644505428602648483772023958065738494133059522045108990103872456319967434246857887713935394076429986451890467550454972981044065966600324185655283161023347275749774486123334485990312577664360354403864919817354597797778857594754969811967116526175955535592680769725199096781202734450193197857871684912398182040290063564686365523457407167862477769663296308677171318407756887217287024009112597086354766834821226956327312962674085407079635071660173119970190662966284329702118343916160024049516003547638741581675342319793841532649232295470376366092616360601840310477777837077423059356691759709621647050925985600213740911122080057150542309583147092235953360116046014410278677942669778874848401686492349108360651725796994015098870851427033639228085507746148254663847398248308635692813109297269839102680095897818337291667455828651066475442623397817582036686792050782753806475553004839380875794588889445262561192687641271363720544204198897562822868381011447461116882706629674400308005765396077849728101032497860133988657237676283626119278086902566115368328315402225784670069224339832457279235619156470333773922100261480431874260236293840973692775579454060878957119879103365164779751692594420140122186646487271774784683351552061907030738506316189958072445037438521094201236486078933216534942414447054284263797570622142982874835148338006688801637623980504753906601675353476162530869432624624298019077048842133749338654587222331632767773862411342723570778861602031261616975431501966724399081993717312162367381293848759831901652280335443940705607225970588474071196114017997072367381516237281643844800616815840207551651182647155904358645196550021336893650898489515381521781392254360191738952877883875958577909099218612518590902016657665613073985162916212003951642853956552889304301114321527209466413983469272230674207419922029176569927225970570181717132720602459237988812154723209860348108043481781875193760343429762039250835330409131422829186391941360616980678627294764464575780099233728831859176906336384796017595894171418783057961136419495253612707731692938479129555181240927965508494222517903997208637204658486762412511710613907237182834179819392146343004588262176370541633425309561204834291794037505929307337716632835139587639265982304424362624478207567424364005414448353302200618560801599524497313645675498792042419423783716946229452553171130432526835654508394294987222124371615599956538431629846779202099984114189130052206342042520283796107938100209741928039742447898160652345771236829490035566356670174258607256296876797200205573002642076437706292425349069742902068699077968374369443046102432318167246659223240682255353846133307522175582512692753573743411732950235136929649515317764904844956293972855545977341937190193474879892679345218354603514772282214036394375987964621231368073123777809667442844519132284894900376089462012603412828075333883856750386978871476456459470133842596368377048805341360196897138732669977301536509840785858891948444716942674917091956040168180790161614281836601933025555368504734666851983567600328180244778422123091835329696318279626476299806248363123020958057317614867437005687923430929137558177108818962877001487275318936885270869671087024558469269795336129752733243565159753587081854719399137484594492616297495988116898917199299086510720418508980677621163405004643343211521523690474101467188131868443560436341422285324174898803004314040686286701553364556473868376271157886048669593300587223938529624783138395726120279077378537717533928900907473935748940325263053176080888710226273301017409626307767405420081527407413404666206836027118230112227073784486135053376879033886930720619719527132536329479674775401030125989123296954357993735660269967992478797398539430256505845405101284869674401042847012217111163202528928995300514852108300387746010316173175536310005161663297085421415605695291618725201443022720982350002172763420279092995913232031068544749813862463691726016027803042244553721411480911732873919963495307260994912580330052317991024558824082806604085404496433958157415595572933432268999413030637233081630370975774679448148851614356456955263151128007820472972216851952157935183755855073995148166857444810141223408559590850607827496753081437610230758028428688669848956228963317193727455234971881210424147231979347020619063359740712809878473451987263088855024744086480344528286061560432613931352181025392339227028089707888805142179673968028526069744274857742008350683164241191696137583095370042296711795299227060336211221072905294498770123777142497836429007766158449617938552077333503285874068367375484718584003664213187758629744312201200714290923590936270983853303679111386395245395049051988138673476758959065976674788177168308182189615879048125134999320649055826032229845321834931625649131716402085132902303796526812720468448563978300108795109028916119710079409538476442214107299288001108322189418829328210615848028854881834580620202301325511866604117571202087206322385554597939733294008174587481252825811339273752922059648068212586047234414860021240084604418096764252812719521548281888483256824688222349299450462309701316563342169088797477466835938633583982415486390965553379189232157183583529426084322918559679218835952634187609637889981810657611496547008682427884142100840410270983998460268393623983322552870203095522018074855178471152980162647888504691665295956859418098577103345530471117840533627368732377881521148878854791986637761271797698122868564783185249397588960887401396690109270794634061573897792419890524717993311292319125088458691641014343931634197456964471897888201820901528210644289095385684493292540340434475392882658592573128805422555494153683179291263162231853996977989624621596614107943388913138956450951530932153731524750397330945856303156606907302924292465525854306942529148466713236896088163944136451442647894300222498587295577676890197465147910532260470084302423072523137520866150598665903238515762878609529449860244682063173541521907486182726179667218743882946489718973352298842437040267020857207619796467393855305358096100215042146111654812563839566987963612228659346831736902682020139459565902492474415557078132967378761024473209776645605785585565206103378233865016233798145400636384500382443906786954401816474791507558676592741199507171633663857160739403923816064358674677431316837993705469329724747490248112626880536576605342605429316218181726211022838389347047529754031296471375959739955142394047838864668058911856419147576663591618869951218823226519475702598905222587854344282745743498023980483088020415320208900393655714178155261224628796119330068608694117775093917591963579088838056615302784310175314980605891177470096362802273050777087549501815881253220731851311260503735310706567848087815259805987838545200189540514030695622717119627136839266526394367596859895463826412220450175174079907439623151355978485918751585271153228223557538096190872275416824250323156448326347333185255144915932909600550388686226235332759061211761958189269166677120059590823481692092216796501916521944447424433513029934124142086900664509310342889018815929140968277310863693111715651708551424674820484729542200820847041012585858230479356324570400321822226778556588728509948663044502246081456274851098680429365210138848011036896276370671392502753451713144124452272203798687528267228353190308995991693186549339423095894661687927257572473060434481647280011880036000278285149036167826892175187176853794726194012323312657284655470084433531149842518949199084061004924975507097136320700982025940469142790715243533109786951387743463362828628495044221708481033307220986337663017062699019902745673245005335590302586258360903229937722290534297254300425581603807390340415519807945911750673231808527603874087734913429805638736667616543501604986531260197250363940931798107456948832072527086550140195957988615499190232596500256176503772645300944997659782602243939806646308487435644832384027150460535177945273361371567953710533467993048795347033360943710814679966637984273849341405886460827231237255252240777030171791549418409462489805597108748514863620463779967162887132116403886464563963039972988811050277371302743434674363411765600722079213203632491200254215065684370575857340893505316137566027282639049216945851974743359487818293903954512598302922065008938768090701101695337705353549235054761910065814085118675557202739263735682718077259554740115429322971265257873056524825414412181619547783805466244004101325838604871141947857216045707917557931284456734348793425266428131993493385298432154810393290171577900803884616790473729365098890767831792273059976012166338037758902106635636205056121986223045532289076232746907104757450538675627807521884947919796685475449234990053955741341970565354605642026569139430481805963699781408255333844255795117583500604911285054196075640640385664258511184310593596225414982435916313521450695792438037470167374577505174900313657548316780602579813974625981872227855652388547811797055727533504687337294995749916248766305202699027778952952407912526345754840636059752520104707740711864633244551273185604267067942658334459050910858415784647523038675705918267397221410542175579730119264837148745752310076650712829233320604347225664704504951998743591496702698484175663041692373470583632481138328129547954845953461521799024940652078232722477243630236788728842541102550115107524236515735251118305868106579763218613111516322988756272294939610152448730839081012494400688117486731062348905306077599642513624925202651883493472034537714369193375669680435094540096389210242172694436771913871797027817129689183200912707276889614414778624503586053891392465675703097559666770728494559155844152784855948721722879421318867294811919791534678840236967607917086502144979814627589381202023792822051117892497645697883689527472392009786980900053433208261796932289039763923210258024046571925251973298035952235323604960376583717340089195603395549840882473903047071731430843961144216364395301814585958467044859869738959686073544482455988957292151510872688276048408006692239488118905686021909071739036828441159137640492006087159955683020421170571520762221508504793634061262484974937080389137570869792526850092062599247290384580653304669377403587371075602277360454594037333991488518943241438789531306951211775131638085642104393570907014991638391612307836652806966385223039369611945888568799719158169144023626710426349243891260900773037397294892046429873385623359101699671617245179898952264442246802859808873006332485849265871847599148604784332310878393933718825233137630753391126037971943312323210845757748352303795547794725137502130139644205484903575120731382506745019772582462478838031299851689049793552033511787921370748733452989503569478290356530913976875309520017041477645546128305260162856826064898255934049256274458314746032067380644294092263849366147296429853498308793786151276962157803802864191761876022540397477879213861337789699015298978521456520161582403566551012019914272314828771525236895641980286127301762537828212491336430515817044029923317563000092263246494072757495550525407961512066837693081295207288155515421347468228029803641349178723358817560078358314803117574955295897516552220016446167620101860675341293262957742006200827420466575932903130743963616166752672168107026127262811065636663994591148573515446916868046836305194080266819659991874377336828598571399805802724916524539180650366048021414890209657541048438905841758401041459841677553716217156929245494158220571045427510135559522676301448893747073919216077249010916360107918176441475305905394556593764302450821368847927519261275594195948701230753447166168973641807087899950134148585475516693826853470077078878699330213519668911040026211837775019519211029540260183426469227454108295982777131539633574695651503130843402423400830475474054028014013878834759432820949757833456615030407464977812777267577401389370180949345905474311621413826161517913017704495936577101603366689973875636713399401853322235706256955905897446144963594730567747725087030922670375298620595178527559891466946587864267280424725674769022660904812833563795854618746901486467528317245654243502894232294335881016942218965609156470194693177466827939960500180058245936873567837721385859362578002143619843234184507172271141402543111586890263033892610566469482448807113419568614821645104133593084687129320298679027899982777189043290353536884642675271877986816546157903020103598212229886580211059153584153047046774315120337398371017242599496728712107290284512645042022012329762569048875658267297052070744459981293451430122107912822177000074197903898268452016237451633743153805549248288540149350902880818604270134028361156612833973651605312882004018301805625645343037854792908092467536138333583762790442715088913022596012236708723273355657519241085485473226952077139102107445623264880716387594270602477095271080421643348234826974910152052816721915307960713202119490963642440575916189406354070986197688301847117846383719594266048466030528177269869745347882074990032393532879381029092874142568026295282074911096332221270081584665252382919370222510613588785016073839827847088123250207711719864654975192705875254431892642640052835848587153242003022844341297126756501584914324479461665374848804936387129823525498600723416966217262994699304344075888978913018659650876549927521782336679134545445884577108629988350627069214498456682129539450059889508564731464263872237652597213652271026384577818514774159261629038064324498394048481903973363409038883607443974828747649261336998352325097906963828031807638844746753043326439366227202965470381791965989144380201224909947825869829818562992705855638481070874719152932737578512167541769663054197165027157446068082972189279285020263614803109233056446372291785088239192944629219689449193702044709630814560063620044995735841573535680173399704300918187192925852060950355608532556384712253378262569213223978362071536770979972030866004203544460741671259277103369622240995942462946095564246507209323501731414618739037998328287618855745238595625724719868164746951100240534541622202406886164268741078384389536816135412589136690727987372303268746823512029780529980463708536739435616023565748665554841258240383581397867343945338320446118059887755664211696657120352982889667460754907164544215238843989961864805225702847410747734540918084677724848712539505626264994473944075917106918813521092021872559808910638368811480666666629795322409244911841808391566690806007333194009656859413016716087235169224197427884978286790372134959274454363537606515461449021872218948260103367996427297865036397941308851678861781924219235078732398510982320758762185899015613040473874317019661447710549722612452679124210458067131843359821261774481510620910763269011725381179952431155138691256468812365091910534757115774019689693334942403399746120778380188072810396770252280037489794072545075076462249148605649714353335168265438009787701131427453617952336085517674304094823241606209574890441631623512041744714667734738038652128575054314720414122118215285035013744683540599530733190638178757709326798657423555787458537192624292351632489187378751569530603160137209347554875369252187751353743384416650297149030763957644410608260898632896880352927730920304400727278339013880050034092506483759412211892860899211488181025727848409167411651349824916680793082813117265621145216416868530740026855387955703302828673279191478789025229769969305996935313906554427296604171510947010829209314475445898113186933692072854713130436997208479385241439252190991599745911382340977887048462964982357784067952104357457090861978708298011563931668555152069911580166392679058155681155344040655410001081145932593051400218019339856592403642063792923783527511051270682024819752779880926452220844939149861290680215994746739918575130765222331234125985926716563543328356736156388693223444412191307792887681773332060110796854148486175405684488267245390505281873723397767206377829756793926848179743132722629984186048130832547222797804941067741506090106554563708798170275605442712446378143069075246758136242866175770916508281100609125111993784251237532616906621311516647900338079090151698781697204350708365833526323058100156362889716704890250308476721744704339676773103551375735518082291990611845617704864607512515283606147736786911097949344481412621105814071138847957939870605016438742789822061485720582336483524256669394282027864238860721790331927279858809560573610484254128498090853705162026866616846729799733489487407457618857233509541367861586685065997150368347798572088487870510177323708855439333639513826948575933106217117691547334823520995355662432354178442450818994816940705794413647790533139741982084833600434831863531936384177102424377889891667472810465937415165368767901408928157480442070398799522150247307405537421493083098763929000250812901697988987290912404022605955639839003861520939188489608009391758808627320848917192888929993312647068913250780969775403929602655347646731440688190627783047713895473294518808955617760378516441509724575099742981170152619883246740511525466271042078103457880982156976342532085381649557606050967279971136059101983865545246427499384468826136054282140409495579926897970645472805569905646733928735219433360805701908212125095041341898237393573964459427507955072517031600058794379681466660383698540014475960644990794232546065898526219688308677094714553393833022382341862458790913208178464074978578054036329187429651537855567256400837074638178917665466357521878271970398407004187987714829363373457389726473520467617497395270836953935547619826325925987804247943804140367070682721077789890270555965389733310176433199590436841119838692177164331840773779623221765842411695832139781604840175471820500518474098448625042890259947687712361820573151595174313883823575265585346046680204005674752251174329722428830927754989080143186430001878338394409691570775437060005890440107135352310142130306952442887188486078007978340213392938783867047309485926285196874960935215312306311360380015046073130573146964764393804724371145451971806961980158065176633784188277132828750991537909811324606699616289590405354209078226761029976752556204082152657299509189293247243627161541775585090755194725136667041714654779270083564732567489009795641345743008246910097862385272833053359934147190728112225073048532408623875313773732968817580893106701035884294457183738252919065106440123126110167574493303555292803221056031949877491313809714091400549423656568049520379237249183829161981786990084900236251383721303572871377139930788528752283500324857172128363343801174202961242589891173406895257069454816196223703052058908470755016831561208079767408947289897504359501543004256082898986285276278775399543532387467223523140175959282145165344640580477438178256306681688195309099734373572580566725593492192455489818488886589351171501226688521347347800111187798235000659663813427042083401959463983102651332574925978347611648043066433642651025277305538528272676246092171523629758779454793610888993144734757049983431363197646525363115563336081981509145215849308149294621378988464841032420620818214860247129459658621106724958448191817519697644658310642507334979116461622317719608888199740074360528517188765769751545994105006696279054503562138398079495824971443254568918461680949457263574001163613575979361366399604697739365592429803954476653700182363139776420840494249648362202018658460150898198661645205106541998769697468766767716122036048590102571145039323433307288692509167438645579833788707026748074790962797849468752194306703050707282829104077904630123997250005066341041763801753072908024961244462660463348687755878361529519976099100378247510360871867754172600601581010907839709961040977722549798645713572267327580911063322573377732867476658125117274250858186136914107259250559742639781841111322493199454245977947964857302163812044682755324785259269746858470270758012164403123605920481899351061300527700135544347627475440430452318968861640261760909778643218551820187139217959218651303605050611879314950886157748790630400491823448522028341026635238134101167691528854908185077993665797821613542817562307917093234262490238901521027215935865399954384607483461748125007944939130822967094345758465608653757364064608328453329788500750997240315382159786001618434878787487109365375415663551179225079279845932484323826028428893967876985834141846823776541982025256974893680135574331586334761956820350730373886646110203091007767573756944577885049075293186920757315046563761613456848916328962793917690287109576056293024658742692540379645412112329158994014598985015405256066123446646552213042369011000643547397926937791405771952412720309605974746826330212769940555687694083394067227770355037089895093356725617606520303652128351339088713153146929040617137019606328405950587796409191675666905699011367857626790014931610342258451051663652632974912797697003816723876250392886426173940411062368140637569161492157555294281151900922838342907999069237194510341965862972676968231555819422491308720889934770524567431548658702678399927962789466937662522661486504692666382755335811424852805407250081747616855990261139772641893427578140325607360870233342063294882592384562771408327849882499370418996516229610635973716100381214469783998855202965290135837839811165553970240870772081217368152475483520437782700774792164978768709656571838215443486666594116692567861878289972380588048114947611651585810467680609311038660175868986740652661636588099753750821040630102235083465092103281621475349659230265249292878250883877581927080717156608906979645230983696184262443860787798051782262955093759351658379299791456691884091217178031068582314288906668948308553692373566501490071597669401541214506204085623256710295031980854008860841059131305678486507825241169312201634325618614187432725915214619420511366197687677662058764799962948851848303292619107706225777944209113736627483081700090291214792310901202234725677566964165303384521384526597092461250820888066622083964355694945367121271801016196187894820597731645702298119850698092664188233683429623585589299315383719238844506324854688206651173701809177977287244720826712713734400444296527170314625608860639991000955859888851728253215321951705197544360117685607227517275905154074037930142056337647961101595406243184084458433832240942912654302895560690892080100037663223279279163523082135975576047001482089414152590577077639935129855356066174646888574347375622989351528449257276592038809914532940198802173521247967891725211521427721411282832949529680497333812216247301043503558338632362262483338477882248493390211317298673201713297139665158370983709296110541367549330172616984975001928032594066196351430482552503681445665089053346264823490883332545090755293127400281569415942617450938931918351235026608231978622966239653708514125450042835163738764229230444029810407530265034994801304299547355810406808435117262805802965857424040567096121510853671711072097215756117250946538023174040098870744060055621912614549358454409149266947518928770943880898701436214332798750664979800298418068125427072757365958179389476668261436435810123407549671404490734167944751136474111222666541236021868502019952427247604064797197623307239706220528040773548316049907980232224902576608725084654178981315466925400763987085414815327505240804370962764035346355835622705711118291964697051006860015860711420421181962455956393571289615886023058737646519914581047673732492173775606490642107618781599228086561221712214948895585252401134854613176422854439250760302050722271507450890493699608518921225154241883034869500427737182362980841153456669505049021392239776285999466262046636308406925705115519198543150088451835820921986300111441372873270025168627459227778771167474979062148542052445376289565153784423205333931960555230431123978343987561963594904735763615045344559810140092556111376285358558925576298499418268116859394989260539290055646195174771974679209202713369092495694901918015401658946866473422852452781854115703060998724467677805961505921644804128587978671836900019536918801938932347689168265674279529054165230843881330195047290617445072363789393103344473672120734502810726292169287478100417688128584562956523901740353869373685865626959790102796525709672882216874073054968161632074911768158840154258079630033217959053597494375365138965902558750343844822379322443391890532955094323802191039684567025579585630758760752606825569284834130481286366253126181773700691774835210939507817401714566499528617641724955216062688674874492855215599580773183771381364987493515561823049389835544050138190645266902273030629002270494912801616336484384813331655509010619790106686327023254001762381916631277896304126376371534328059325905629852452569997915551647196412451987220859030164866507885852895869356525009003471685681115371801209232594967326361184567209050030305454298331840820474164573259016582547770660382791533759046035053192843125314874687930216957272075599052759306283305810550385858565701224038519474195390567414512687674222810256801994923238804479845966322652057299800352141580419091886022603156653103881640101466600368295445408474524839328539100416840960831876590222813640416052484423501264156105403430899167339795647351531551085519246510812290739133693823615628404934283833551383040930387197422507639772327331372998059129810373621413001910662466391009271216989139593913855674417124112555403421032798083541621573185292948619786969663787916064921199826090768700069961243601080044797070362713898579398060114204354524263627209760630420959888745990793886239065872354799652603651225965877360981702319364917834788402533396889976539344610447063276896393810476620208026829521962930413159941386609322571030453831103916125403059903253510312768205614456555779141464664934380085360301204536686590483300898739941246344208480867644026374173443495960326111915497179020322347524026460598260216289574462172341845075911811950114458715800070843750300420583988136100025985420214694319619284266783188939409456060653744358652985179371703242355708319620110626346312846576334923969474565264040786244491966678036811208211456515525998302874578480945617904950171322122619478302808328903546177958705911988871018495784512347407569391442904268633103187505116055730010297263359029550569159248735180946127474535605080226447148670387646912414212626747716786100339854611446199605376569326021849828052645369869891324356424504040831093465507094297869382211495317552758026273501703357485123585386028710003266603656900027497942980388722115300202882846660587563795947395325875895524532717647495068902299046512033157548400632720481639424852642457535662904761285001069283510023255121315136345665562396061275492922814764334529960240807362396843985121429153237661420123397552331730384910364141914579133289379578796212979686752922063224759991845657081282957492542062825968926398569647032713628916287286554860857216978912141046029344148531811264249234695767353316174257844738412342274142216216246949141376553721494698944424722247031178381827654252776824022319553937386887107385726381354147420165210869886865146445644081660426378739039123039738335592956147833828117337966798047659781666534387064289309859573376641888229647752079636286059474006703062055352269155166979038819696525793331504268644821772448940004957223472591332247282862446666430670465935043147717911646796120883556403072112296780112427797151797633033164573319866341482359264101038159646896362655731323581629429132152783240526088142513340005295194746156535257306874564917242027152293063735730840730938596210328675592080551673141133167989127701906976831248170842326308752071659393715760826866088929626115803679718779935382135418958658705431898863929884967613167628714558996048918760804444692500566302667306337575672921704072187595694107155393455470536719346769941977580257474341656910139611832496865039353733091236709965437848783715297571004980107663266185231380465911858811981808635458333024173342608808832454187628575876290160930706263512985299921870520557178563382205270174847212617673197471399714246081201287006909589701126631621291924584982739499152082161673371006145185142135277504911998981240161087254986930325841626726135877236464791659953405070459813666465516042603543612685195977615481757890945798901873417795002318353587460093739482509311397410240995742467509438203606249319459156643750319431624632219497670021417755769723161399368086165477439455222909740831817908169437444354129584725916922680253209216974575795847052600082165982517024715497160836907390814430015966472338266572172564044811373127811186907411697854344203840204056122990792656133941052413393253917475717546399123634751421553932114363061615620010694640409037512846234331927827311278967383484219896511597842671814037199275474204492649367463393722281061523587449901471500286778388542579353749323250708502367793064436221364623306390483506794154587688011371476986640077883670148899594561281586700039430247830533108908615703605440332568230251096722963820558354447756813534876657616939098476500264019189580841478410693625451094273412165726194054380117277128450464825678722218700915693222396838472371591774751271148476044261372261779737870794819474960191455810864019960247933711243386991706047207100100148182091752147462316119175677501635826259352500104520794599923745830010697739452184873496686968737147265145370416620611122911330864937746598602315283342103773187803672019987076415078304545465816021543530762054638603195200890329029767863671785732046045982826924450738921537574064712970868077590959450295303508834115638416223790198601792677982894338859767106331786706173267945681269446365478570980551464396167297755583815380992020411175097265645600352598055130339096876929650871615620786794067140542224140128105423908587955601658488285759441032955037955716975203992068531175534054884975371876806211522735806377739170864829296698814180518022672366133623633039006675424470612071745812476196805318005608212298072277962498035510471764521470339999290281060979413593983839594342594730072056624097939375134659142639075425256170550273515747326757451051930409397431022275362835229149574733909454990721087687799874890114809890110598138443918252325556982422587575680318695945999600380620459235760512398909621184393386358498527561606587926095309771953614853696204300975523144178133522179304596308981586756362971777510567118058885083616474133158504511729921823891739324556277897323895924649807808645334079840403607732956652324043646306774233976510553171013175336345614518938788458564258364468264023208208357367927550824195338310715676927518098022056547613283228624074614428354832726438971995829486002406266305816629503098615008630838682030644092373908686925441093842763305021370706743397205802340994691444827244950762462335837766633896794439318670373966982010610785622722770815540699284804931292287606672382554361575304515258359429057414349132332388569050714325351070109197389321002114891560655864947676175871677197043600983439759712881303821684609728198000658911806533677484359131792333213464821933976297343674212349109856087122599601377306307687261436801872873503656121628382328984943098474158528855605316846978870443953451251307702308132692243386040991881963097851191400853076831935992722432410436706583105318129557877321069685633395614291964550527937572253612582224063596208870815042803376209306009936208106520586966583347269478394980861698468997555371205163073021665562502300880509036998237712308448416572757293082185532790381719095172485151426062449878867053981547981162112167273339465548738730833740426059150288490946622046060195653259943670135945680484784127318302566859782765596810762067446958991774540854285363685392359498690645142637367151924040650214443571304968631821567444095962871107916349755929862511473407980883167186791774070716639552734160560416009438651964725646455354597685721088072024105736191235376132803701573506618702225653032730349062413465649035353138079751330501157484585283453639203891400395280581535311466262924483366826050718951083870365123998687522646842421965596638421232155869613247639786048583746322973430290562996683473643741815248803048549889745910224852126718653740297045879675834557795566676461840007956633467047956096538641192311369062289454141518948349201207961513159832563704576342740975967036881931314219100256720030496129595635232608819067791747869823979795288554504472971246688165329548266188296586914460443811979026004434887046508312433217543304294734099657511725387298069260029032732191938757656534961007789065224199566932824219321456756710184857100928068171197459960638291703593114423041837318539782665348431910994636316558696246059056180122289859103902709318288607991457626798956880950881736933286109415532654468209024840773911872321356045622143303150612644614782185218818835410926201459438252681086883844819634467436321175734168343734948609432259180112598829319886855593847137071397274480639856401962915634813213245019902141034192203725934659350890833395737270333492627867304833429293543652208696046882645115058871193890275571563027486863030967561911747561325784717997651489011086145077426344629082929815647181748000564080223061766913187477218360471702726003674021742989363499086345693668572468820389241073048124053032460511520482534517425218703870154129115049655424067247895720587670646413572321123488687285049589352277923010926430848704085271045162611763964852008802336408824034893334061009033419136331247977827786470804522675762224045319536384249256746319220947321383632185226969635600357353264176554182527437726735851369681253554303130923318023899444349766064810382571502580847661721014805436904303907019031541909506433857916145239544827651912765767253681484159527744194623264711792758999612925820140317121122576250468574918234695017038914666656721699138704057418970091144204432537652869375058706862663657613346191317976128276825530557503782127363704951557459917339557665638655259658474774292201862410676515639473667776194134645699803404824445646088565872426653829700508543015368102546964940793873946376698072369819071578442894312737290574581656232106213794262882725528579883321352416308301154812515166641496954684593944419142442413741371306893719387954709729130155860384229765421429293100789668228572726490015217750201815703785663236335656180418574360499868564525549509298715710984431468752275063732227249488450305623005096770898625531835512698097827246701074458868906520984945531051502416122724984344066531045781393525072280223446416203595578463758271752848511804705933606982289638018613814173785655150687954388976964000206613328162858355550249069757064116522145355430916089492892601176642121486684746262980583674273685943376412541502575986814211342522602483350239649327282146155429783178730234275839050304217517454303113680369339800183426966009320151364646161577162598092938961844440764090401636517669244337661716043807704986704830056994714643760786761492639852503033375920078848835387329062836541855075200257151102994595345266869297695930274611257234301863455525781239628472318203601898590250923376624408915350899042907348886026139459964179756071204409988816859117826572326576247374140691969965489284182595371019440547725531895257562371051954410338224240255166159128934555222180601605928344550876722105262706888183002120943547050060692996573690701073908718235014781893129005464638955845718937050495182140640859406704393481123823841892239740234055500842729932692719692282526573082284188135045320185210253872320413411488662373832863902293627635319684936614337020662104900989478009350639810375443022086534417070888296724618309720625404227106093844858533086252792932851926334494075353649128504898775116417534814550115388628351109402975184979564762850858769324329802195576156802624113926939296159075343441477806030940037738740660893411201684997096121823357930432561213929071520001927931982280711585470665400139899932738440067994962505431940252140143079944436327000928053976113047379916183949211070685201699647651094532876930399539504363795408023480211332709665785832104272156954627668285950288310025104282898399287695276913818182108796604428267765589326790042331198104896513179446441344292514245782804092511004148168386416395940596909513148516825462959507776532446357916214459922454691313384941118066537718730501978984351323912349366686262184028919173147977940322865221285588274248204347224267264256733101098203320163999966084064683521062889747628811348481956493638102542564947558014146890708135964800610972275901512229242232071125295379802688848260937119297897464264063371844313236893630128085350810562388563587562944360015911601087582998018084405188515983501353199385392211708443031892739363036476922681639941148682652550089991693994304512458854255513369243008008827296513734981258414751339035763228218317837077777816495686291204908319627680668107443500541749911993191516300934108266375174238854990259933639640240725978096571523730378309418795766791589295824483129532709812147935359229749709859546751329138381729135302851064233776375576905456725643167684963965279751508041048241103908977298213992356421506572352335969810873719567590811312717859809689696987045277016503194029926803836733076236261999096871581434186689407062757840825426869382862820859339776830389020787433773483121313476275495494617569338803020761519612600236752706517558512482915022500604212823248580211882427840284440450142264100933145317647593900812976530478187851735470000971204900900799867396851132012127771825754662114774925370991943997372201768314778658198362299992028233491516226237853912771220067853442882890766727284019000409845454529773225456868257778507239014328773502468951602614277076477714443691683389317191235946385405243813245685008491202391165265300526736040029858337681076840958437073135833757192347462599303717402233856327643435744403767960028299739792542894411157159507255705139649306938651871025821916851846005788836566916051643939831007594651760954398317428885300682404963648821373981995228093800705987728192951192853805119634619082806362112131243928191720475182194100147182491462846052359932885483912881420829301044922770078042288710283828426972628509218320210244731731615683058193284836101150617094257489920671520094792886406655322192692899823759337637666179383934228484152975971396657360786587942248631475191393379751326777538994200771145336010998902121097036451613331015877631582769450134039656332726443765625079053631382492693140003060386453945089170236477932803660346117891150122475039566719045969345944437525020277171229167637264011523443877366582530221009771477233997923354756655204317564571814807002759218708076498736003962921372576494904065852033353679006720872772629767319771794311350623180717024618281817780373871001465030611788276892297578083361601460849459454419618744090730574972739374706392109157002208234961422787901087660513877602354668457338938441802721482016184151871001061415742890897613923375469660057888588459227591780646495124987397041328400396254893390225191128112791491749371852719216794684943055096185983283829464436240853222394077300637741371349400095251961698076458883769393578478775736943881367456293389079296405687219772631527241358680267977888282217434742845760267271961944658047905333825344169526048329868850849562759974248310420800974114278230407435504199561565966280336983069186674443783213381989193597831349977840643908922462124768470844067528950003000846767507862098110475017810645357936674876582967532859535189972942490702204354398919847215189521792177688281927909569729938980326776925573729365907460666140641878816073856439477459307314575263235670515469093013997365745462010155423219100889982006106895370374580833365596214776087571374455878542643069103133555373556999420828068494789576736293811842413910419749951793399521438700732514957367884196436069048049318616623993304716284299366649157644719657282363823415208773947746264173506561225673816323251857406964356685138240428013428647097006017519401864553976782687125162559364715926879960400612987890571031338059753545724843899726468886096795607716091796174615704394801773529313779980461181515292216897424605593771402540659803788781249964324981645742490737673180122818270264562476909770343997826059236310578583970052820589736690035711830221725669441819852822849371559153217116340682524253809854194214987680588595844855638851281923908207003552131770653915377223248722161000462548940816799359591271393127210805346461038656269675410292121202671321954799536686027443558856610070356843721062684454446701100252474415839756173898657168175241295706260273392930984685172251904048150057296940893641694840828115638917024329970037152137868651025272341656924677457215132179586616324034100463597640375252255656583875678970020299177210542591502603033733631869143353137576584434104228439990342519735986477047255717390200405180881298630881588114524206251261579287582971661405534931706521891087312844144155698764914396466873987685991064484445244944604314229706020033173377727466667132806831171695004234478784109036120278797762902459275458390601732987699493691047269551815510457176923895622293061884142027840307379807646450683197477474641499800253823645733985662849231568577896615484794940528942793953164910826063303863715549452835023421849022023903309862503911243808890953505912325536251935622066743845148125573868956452096582280849991054414646908278054486264756176089972107095310105330610261254915356649730669166523340849132266805578835393109925672012359219741805818005488735732686141924180676787859131551619631560677672844027894703571863027837204101284386563308971177666651376487148953022790305426764416926359002571661041891497236732381786947983323670851636220249588131036370038994352920335575043909085189475197645510957385661411840561712127957326950482366043446076508522651384853639748759845665790197266407329219706088240584437861333407488849324613354683974429900432695415162663050754097142855569247213173541352509666355995700841427823330866368963526621165742604025677377438523391008958505107889591575919926010970277299998735453793617829042611320020525290580582251553971347988052688742047924914042275472540440256108016943488678166233954748162676715619256781068813396424544223669453412514901899959093443050291089003847594507288896266987941332790317143039183883273345652486459722800347240739755613232223040747848805139122640671779898397028362416145051536732627667974773670474728291410383600446068221335987944110993115531742840698986715615229869684354820098105023943776591568506466106338323061045232958752798997031575633361938619586189269826068572446571149586770743264272336880567760075073998616017692555407432814918037952028369767959459380944311716313318844208830626257474770481132056121554850615602915303239570690577174701080490095135255868749244157063348335682751964797599021110969839003311765619927767584193016931681494192532414437370422246188761914986144579242872432457707814328984583797041874907117585093460070602640191648483529548928519609958589013605587185543551082881940331485447557501289074704993804321071265811959139765823384774013813130526489784600733899710227243675471248716345257920431438674865068615624745147800315516091554710725958178332948723169858634429299305690517966527684022162173358105873756220092339714433431125857480031676643876892192222132798287828731157395592801004327943172095064742307245795983701859647416492267051098482895924237985711694156641432543891826712893543539059922520541878225343868165273985868843582647685488418892048886585578510814778254677957537187150881008086276977150339515925881172711506266394054741882792661785239268669970975184883767144035568845805016698337838489125987147767812200865229142701972040967769798855106310626697071111908141925378473290133583570852529905872641129119666468473319524969847558308296442478976632013635873809153596831280376585727568957503891547394141692056624586782180492902742076526592462208893028917127591498394202727319433404618775802924316356897740814522729498108222313940988275691695522857880640533612407507106199868686951229372497136249568173767730940459426335413875541238243374492683196139920774217129222250511904443478543722392701097364269049421773032351754112497353089346593887824434097256563674831778811394645422492446151303564816733297479401292884287844747413166165692889956177198494837748152472220641375879721723365229559659370252543301978747897835945684947760043782845954214195707448415952767111767294085352178415224518771912781859278949396396707476500148905514922031208866808713799111685330851032996395265028588719003695450906700673042658441083492541131026089166753547257823823245845021835905110301896822905926571691348456224931773777370192920303823932384739627426935647379399453423694780879934595104189099848087675254962266884501450610223247912595557129140423947987404275233409631420934946380727508930535910127450674421383586590109346424944636155138977823333357612161135802905637061855520743236383937551914262572278630719091817340006081785907791400559624830921424220840698645213861651904478461792366029052366575564156309248010026207009981519097460348247904811507422431883988109565406946712892410132152738815113513681325189166856738852489021350101012158946628173364673029037149701062505505280375389904305364779571687969548235998561646169814660576917266411551493678887412798515316173018577911679077995307380445549248352934081289087676885934614317170595880673418358949627160558013801864778372148268092096879189253460829461037301328961452167794248740093907750433768539637268043259327916255096937409945182584066045513696770404550761962316195062140059866801138978337341839001867977654994750689739910862301700722003948526725620929478863148615414159312838106819085830380688616730732293648101149266308080484900057915544315493868770149221632699760345862425251898953543723681679249489998989378157254177912417244976413786583216884831761882259770929030614539118662278109695942427058087745383016961208316273551463354085824242343863149143181341482295352888557341126510118867649052865061211373673537365615421285141197567773221181291620320509591200500478972989969179628820157182732862894481096054072084314981780136453441433842216814465536524746356636687163316176349500568820155567409642796978017668280578738483911439869753215067586217234436045402523842466191580551608290884133690890247220887740433958873397059973310234581642823682185115622129167079656860526424331038905200310117088607674505139436830552158751808073193976454125556367682503236055513621266286984293130007172205650469047747200004198989562580446663550468178707784473014669638217218675059443026892899368356103687380337749588138185623239510392089009299395048573100152398629838244727264557967265331105501899634945921283128443862880578134190921111133392862739099990554193053301856027417718689704230840967717710330632792362271207282082591296827870856662412060555170429842701377928707022598000751331922255779914332222095419094296061490461154675489241267182648575311281154921418664459152032132130559633401890140113862070661370529290671681414224277512035575292200258915626977360012140135282088161382439177846150616273214930627814755598425900020266004003240630801906153070789927135681254534952720762958840293945412821542343852053432269122023080304558212994343642257132430913305239515455291669697885264002200088366022074186180803039291746553063231260907926135994501306466904195515770542913485730009757640957708067338655856086306428723299488029218514560287456636604865157110464128827097910427687932028661086322117418718826441931889465789495204322538405925798052431124230876593536986745032200431648777294750467807975007345393529827943192807765372467590354414797764584833791141645054639115511301531159511983407639503482479372198697951660185894576822487813579350853947970314401043154324360974047515345361464240325462987015477353130760217678546581979116705523901659160742756622861608737872972533347264791686552249153530723394898625277275938124232646222634323270669052929803465060605617541272518187784387537761428233546307295554778404380524841594818524175507034491288950120655197755449830321723495442289600190348764572888969150886156867308490467409266605290887769788002183967762812702908702827822470482796076934704543946395651611210535207482380852743951000311924278168319161110359101375593764780981660427599138160962242477859110416268530398859048705259217996612640079525090808324811094727266219348399235145714029217946441899742566139747451200779613373366374797951555924818770163080279346253059530525834173583328623089737178610364677974250032143150201801450460220128974860555310908720271590521587214084859877303237337053345699464001532598886641437928855395609626256672986582253578123186961612558362771892225092259575006193043990507257169364659448024733996001056780522888471980235019379755167553568399469793235609725093016484015400342439656782072353272670266185182185991327890118922143578189940779179086072947875398838498717963519912725032166368116129859383818386187343531729043770719299767223834352872657332321643056613648931366546918448511831559291452346707246851493085536181186694255463854940210385600958478153748620934653769821354949614147103400327363249554890565289996300823436768965083730764216225877209146182382729739777449906749200803624185118035401324397903073121031998783139307602831690602251539193062065927677445598197345607015416682743015859399793809017281868096980123437355624850464202059816106866765649046929810835352029237469978273536218854688517029177999084508003466461291857121550239373590330686078143945888618504011886264545420503533203714349092167705387133132366471004150860996759134553225810226815878024325338911976385537440287816983752566664981908190959886669222687370632148093873992199069242494046115048159540074395936407166883543225396849846487628344804130692150967499490069197657247394570316222359021514326204793658252318907414793249648585799479250745444490742551302187955507193562859026591412366045178252905404031765093479489571267981725219572542586864296205933712436861379854278661197188784876714374404174825873583594370997187509426161372404487269762210339269726445377458712300446503102072658987184573009111286734706146756945924119097029827862102456888435884403965032701798766145406470298055001375385466720837858055035751423437365664475500400185087555532653925097000206543218585314616758369081175417695955115719819735654723430208694656428846828926383750268135532123774509143530547763164189962676463592167791666607273605648207994976036238425315851504217076446483484471529221113025159963590441347413387425286873003462130703983741687103208202010815483788158028296560993113369346564381679047908993116507046640386884436840938726944795158636739264815770632325852416484309223172940300645770905530988325117720370389237459755104974461513147775468492464699502782248251190352441903972804761092274339362589798756827215404723050898911327627190258650990974930712038822135721134620033780306368862586838695037012612396839307954451564806508323915330254963519371873208010784583156144473709280981655049445107511254834962406622012894558557374140539892696427673692975726221903086767145421975017147867001755316120714609178525999598896165115869317710763861780322246728575407238713820473809291152237503383543850856026616826803912466894311232202812401739969980270354642320063670397050355158183344191665584487024311362976813996086660111612099645709173179403101753196585856541676351247171978213270092901441576921565841251825525459974046773271125272947935706540401617314794090426285371789487703111533310140632276224175510975208362760967840220173678293176425531468293863207723744430702321273644941040049461127342297320282030641519361831014391754677289528010351190255751946292374427116597721980522581218399643800484759753495642331907521307474057899097920828459048676397687787556121474562913201424148172126608091709723348221246873456654330494473696346631668492281120034224019626086902708427733359031644847418990342655685239995424618066307222117709798035618665856899155090239507821949369268734245162162065404878916384048420581764047115784704960103304307532459834455104504760892620756925989550647082089959128274920832003271200678014560593208816321621617751865713249723661052349650735719571262131109684005760687756109402188389587261673642370703993294198163972015063771849488560715935541111266037141896320257541932650403003829319954057141071430641728210548168334697157701761922310776398779904951555153366895846918978637010897284112786355794249721408799551621705716661532811943180925550062987650768236385412498534697824875371761772483175322920990267335304500721108668288258419745016591853992780105736452912202176508099989290340743094064801754729646073963691419978869676217301361004854233045961521163656245589865978225182305888174126317888222539788317101197232877806513672015009728905752976691480268362240107627634819263891858023650046482877459120742989171466421267315096425871159383196809629340550883316960178887131291612459847759590409456866752392095171206989544538767285971288759871102023220421186889865603916237506235858201970668190677165557922579272868350374629502710992722880408795218801222436906182804112003561426479173371964656255037317254040493100261333234900472619841612662247246983484815049797806213500041629208368209593569239213504461329161992019294019478403601781071576946833813554379727157959423135960249614188546449541451258918388866219992429019096094215903623451587521505897913900499993386816288698965316223975883454420926730279708257637411927468869355007801503708886418606371329466734016006580219488219699861788754256381078842071422961377780536007015772002206240007002625415968593585256344927198190258488513820881840906160313563654997933486679354334741667035859202979571987981895498869227378688267479397883668323343354066820418353714925577094850143264104758439995129889006857106374046894312709809776710662235968689836772429363496845262900475005574124389875573152383483723885429087377991310291464696279453437459366549833621858136487636654842720377241991916391482898733729714634707529900171143257447467019748390035138912958237182949887343515898578378873039167680267257025926350815205581575092294625719530402716494265022464063658892677535925280236464869119653162573676254336058187857835142829155981643276762367924840303591679759007412342733090927418125797193292211798293728409066605660373199167454390332991857525438439692894493599788091698098377376049268828752889074745403477381548147689382429193435552257083207607450675016296978240888501265069287381996218412523621534991205966296013664468867212232843515755837366117162751567515181296004292344189420882882386902323034985219638750548740769197069731830113872868806478433143434048692492305282647148553808254045610945148928091401465890097307950985858418478182998288721637158071915587814091111200887610622771668130631328894398619506043879263782838954934880830697863397222050760082548199324076748962233094924110758885504923455039232351162063802627035746779360341499107387196823491249479034374718691769134551108768384989766603029911073402833077225034145721961008264852961298512986592905583439117117774473770545656626987808997344798525272832808293649431105940750693798244560310438985664734539843080934313775295455299713183726369253074074868774346037905633683900579968034064726864291518740863771918341451098993453710355247995700397840970101294546660174820089804536182974625320965018670327385990715870079020726519452884279135474356825383905148769592431161539192701780974146573415672647373512142905176304080116023454168091539138629829561884576990611890180410122495890034404187594849373160951928280086670334562012561741772144247333054168575792749985924091948382213994387644177891186888837549653556637455239605882336133157575387668304063633108353737601391544620388952017798796912509731049053139872783967793194142731926982016889691975647298584747821098679893818968529630002796950867489520549334425973008416183035029318828653766692653502563389341101221605000415945266932785315905274353365614638502007859762329323018162897638254906553065145014056172599919400919823687796846451050939477717959753600909376522749588594906441096936457674263616553599243439630093058565559868986989151838066324083858985074146746858886216814433724203387067191848887440204228943418554921816531010561563238402093310016605425808380981122963739813153817055986731961550699519918514245903921818434567878739153813736126631283625123981956464682344747406314925050857899796767665084983956682857886482357012554109805120091937853333567084759871599520947819346801337475350994153973288855250289180281170150693592999949735861417603667218992868372322551354751249048454143394287738015036983955634101315575672397755960363647521867241715234648720010268934021650390188781516020946222463434342083344460326227646265908316320888145292842721120066895819668443265819568158516834366651542251059438830387032523906727668219904242117794679892893372630267058399819849060880394112569940898566874384391906133374856609274505538372855190321451659982104784705664856201520481353618616611651928544444020917299699557171715901674651176362542138691766930165411242440817621769020005927676394836737582601588751930578650025985367003232053532674959353931076796348056215887678709188187782949815707216751387755733634092251529523349357045891353764594042865682922074031050458100176003895019875093620106344138021363682306006367886838435298889697210310336728907972288339537171337822610293736073686452009611285251494456259343567091107311283061143400387173735561165612351961608546848184454112854214105210358082860118270577822894425203483291377229952453547308122369198716182179176242847013352211396403434655235846421840541662496248596622737126448435528842513715735533789898523015331638999232824169490537001119935998182309639910083554829642536512462287094017353548994976626850430046979038240522297394558789092754633558912533813493033367948727447407194022381686533443241549266069742847660885783595235408029762728238167724659924153556845243129824082427814981625009689165734392269684624822445815742961200046181048106178016899608079043182532999736375331672725456300883739978119753668925107338619713799219529843944018325765663295822004098157661233399345005430346791969050912693930531444380068104093425638642456246299669340228933072913850476849095077174488784828950536838305994527830877400970937679504288095341689641727100596853063627016814617848279427364607820784479283791001211783235522794366053736168206769703948434196841800220120963946052591076220337601176499979122472071713830115166247928171434460035425489115963011343068226508105782750174678113941596622959899885991325496970266381908978901452983017224661461625780989737909144816371278019121131584946158377148597899701863628510180567087328451850637365361787976535122762245477976848368101016094205207100813772379105521513352526782193517334158969472750335258870768437028608573729319404174891718768395946021039558330291062878558725999389679405532875320674268751129740306972287238953868384766938089812225243067095808984143525642328713943795638204995179803963304594677127762241134984823953438954036614014522441204956582786646933888861688782184071214456847196684911526309807023470563915418160887609388891116373655908573934821501685579595850438303793517943528256422734878274937721389781257739777571404855270283375546629475654736468087339823474351503392402804715427698724248262524256228176732475904547449370763007390497597348736620115823212305107363896864052549095499264730798122726932119941678969996591250157876353859524960586707257824448443061537548405013700988322820638895339440821554848495650871790486219147622204660401902087441491388294245560470852205568513065915511597083817879507162115662060545791151385363144257013750434692776520363452934551709734858280826897104531279547314172680857939205406552597522107511470166707885718127265566779285025534105053968608963477145982202459485459397836452002477823924977022209375429598092381449408128010831857439372157605987285737344956885945760202256294025399261105247035081356979992870616991681744907179621806745479702684615832255162759796272692170963016655363188658991375057821659771142280155854073247585029267657260027458269790877693265165001357164905490631399301020666353719815415597860827088824123347049750742330110227962873043486376238576631617124656547868228376277850399447494351856061999256687695916953088125039450850588192868032293628732868041657692198047519129819041060015749573933714425178301501503522561213434065717040146249571839760742881116232803479071557261112090506810232025999904114610780460845382351802480131829888893261897097636445657446988973611702077373800421211198549272659605530971294777398138478913583706141755299330807300311378839210978861839618860053097207045270953412978261671804064330316784361391084792063420947818517047216270092309775557190776515992872898581889182106693735198429047726493954867179250099619145450392934856811763551534863690021461462861720082278291946259424225849324783729942995834009261030296493424411862333874161021902109765201780189005120817939155422665589323924095855823853583121580057844168740241463304059894689794595126948680158295417973753353263518046635374867198782747576617989102542119307541768779951626667563672255863443673999941948215111939985750159426019461951882133285168045171762886082079972364310662649796176692282110312530349314573419420753519760504692631082884073927881721097722204222624945205488584736534810573669016033570236516258242720788100515278789033690242354845376813762540360141994073755437731902537601157604143627948422409856557199838113700710350117852840837611958728302114034352801055021359678783390412099945680038920942817280476690846401550828547547008877400395129150114625132982905022554220649107803975186928128718862658612351353001820706443576222103240656258728704309705149873255488938458135870769635030093514453949058431263560758176245316638080056334181309132442755442400981733396720871443022343315682828416870260311983492115488874547660032550604747560129173115800504865929446359705387326672256307633759956295629276536018861873468552163987237052935845476265112013862418820011738552184630529259054199136317915274348573953897848446652576525194812034697278927198550878484270161861284093614609015096849865180894451096776154165127713296083167697686919934809158164587209548327573669933813705533280057532080898380777070213257431720993588959808347344418403382295113824336670628217167671866034153771629641073682738572640616245888254328786170872855305426347547611674425109243995548882609695529955074037030370604899409619225288228649069287440728829882444908265162012186074589584720268796112216231155355620832978426565957967694365573920250505903781657422661318038610651078356016744828680179671355108149195943847501622449148227161723909975877768260015426630931253496414735293317711238895828396168985403844171999033868865735945300993203908882158803214510942545245032852994357849162512452404153679688860967782853568924471907467929396273882343171756376479715428721222834353581508625727401203605335367798919641843015271313190717871012419563863871959524303693716396356999191383452702548888681252192296741222749025351756634255845308870937085737170355349603663966875673551134982356271611122570073441449664817524489864738056751333182829690872588162833880373500236157324805860376545707657660819271106703542647228190578543563273151382572830766755779699223940949830890233026858973329572204173215150819695462348947917244572271222321426784658325239020150203559196730662474204493099959614588486700513977936158547950777792453630871353251699390441357492412303886154893899713495244299198113001386482937008871827619421992185336657667915550970078612338213227462585133479238853409372582402670238450302191529407838982280800126673726914370317365509571676835556329532287788390496348057979932892616484027252234451037422036818931819394798111677898348426967085973723752974347542379571819355215616939655650201986658306179895812857255669616465786762850053744958379104436338815417278936789435773935716567748968473654121784731280373827240303347422750257349092940372023069380615518861089316692273396722229082416422555717713363543653000570892252299217634788678132734534823282073474788900051987331388179548022324062385103737455097234322636669162188969573956919084597633240239166260550518963411566681254495418371229025277630621448831865432171313854407671569454576387904743934441975159929179066910161712374501824610072206016071673365323827035972100364129915155842611177430210086820384320337979483237956962580909076389768293718916686984542407694912744760735384146255098442029933567236525571675906021170247605770233742775645181581643427879265115505626799982897624368088135193723234395262642927362084201689491065658480142003072571207449961269901689087653114213575606898225186958371102356100195197759993048131819913561553331964600365106674881274946269432093064773077998658784922163130421685710363825404991139072924123055300653097224966781210656414791934806726600787438457896773470897246663034461376626442367782968457026972286869758171088429068560656310945329833804005013869726694639851002755010939268191596662822318934605237242083159533567975650352857178899306594549476221117879808171224020570857698430895900196308639461118618910730378798884318498796073441552323788031965282099360421369471877470659380219810639143522300433313251141756400980505950067021585755377343299889365623725951704310344812109313609484497990530086534476092227995853448341933358196063518819557565921218499212355642720260222330103653214600685143319845497794317614909697341659934993811184923198220041283295455806624455624274140120206720765158282823708344790675984217236961623402746266432237951425237610961251946718679106905153802193321590854775803196910103986364577493268132458023293587817910067624333308221058310996988157592123655275559349093442913994161885780634845641214003337175363769168083318569387763152650677792463588269935205238282449326557215405862639233525633190131673204008430364034992550399978095805556441081828534496447408042519885041035957094535729327590107142742620214639147519916583954445580810201751071182260232747774729997210681435340123689393718101954665868563454710314906854969270386516197320626000859875803319689053922170966104012063120004373713112901159135973730725595608041991686493136517528884219216173266909847682350274649798782088093110918633747010011118082686470032060249851318898594837721055190877418801645789579507333311726976310959989667620110945319353635214395563509049863246035985285898895276650915668893299582717345654474124396777555230318251198305259036880121825062265331246717350374865737022968454455758561091352770308057188104357891363416164361653941327411856306214470052010344342096787375597039753458026239961348667602070276835940166894323387529523748857963682950171427535406753635425506420320583732243144477989404932328154241547014584170652828401533558682932678482210490675862248027214599810011315103830197046758520973051121993694101690013300196154477970363090675148980652335108908383613214521799603423054691978023643452839549394742538670672102770692595593440290367147659128055420584919671534169927469661690338579277850598940078619357017260150929565486899571858105734619669098573369405080166792515057881811810678037563282472982842208367689835164864040598338640299494460532296309107497373215741624107760213622261467385483361347454495216178984011723766315595774632344708052693852484670863601603702232171951287606288776413394953814016524536030731894116491662122169159484327855719855727982080933331214034493371170880406185279598739295516381705294084162510101002375907976874495922311504254330245732366757028517940329003140346100859634655877460665696363695421138596332168651394814018792970979998026131452860811421599616281387978749241410204203414931287016315615486614200496282643367606034207373326090203098936135592455505960749456614906211202002443339288260559979473019266884604164113852662294637944284750078480574184822291981526827157539823639585858350622838851537215279415866833887891840692731476589409027594629827633392473234810228008557995274029975630670131785992633165564514395240635194893305190283894641837232820309268313104301131738392828099841849147748815512663253739869579824280433350037924851774032844800946201289961044436386726535621596672900470068830237282855956447876911636301729678855458151860754959695638099162403789615237643203097268927014632158168684894521910270445889459127146250967142499954943542028570135436091473554558754226315731812840819271585859787649240754574573569678068290682203943081426732276750528812267950033974227967793300532164135342248050636419020303020136772508124754271371375425818142229124328862205790335482656249021095792239679842234276168729086269256266156806538187656101525657159010206557708064027329452687410723519967843894520880444561995663745264101913374952329789166137722135226723619465100661089010993130480649390840825572587820146738033967710527635203708920048946879141596620445039013389448717525605700648224573394270082894297831470435041279894458997166460040282541193542690306747526817990857738271260533342633549260205624618576913291961830675476515119478124868916572776905154957937046359442387309945855218287585742163860106515136124884853934494146063654015331115567488327630365428838548154455110834087418671038959024190578426128884937806509199469225979176146656901889588208904241821895053030199059016244419890943914669260304979177243251784352782454844171827302392889934256284677288728449555305927939489895140559466840231251298665132722049117289571398242242312516810535824319927757272427633561961144877051637274790971539548082863245857590378713293108649473953927411423103182340829077038204749362367923629696966523427626312786132572761791981347708224916310464854320648098319445802154224158131703377284672471163650573738534542883789248251277447222738637668809068954225903016644493060062719775935471076094638016315489590395255287961819343263218183908639928184212756972665117743716831889171944893336523172146465938330506496653021627541877359067762821167133750802818385833624825307823815940719229929452308923720806527642280073289394580860339560877201351393660324154149179314115903692422141952212292280266870890683509795901211006315410319620796596133182629331047609545905702194287026170851921566105095833392715048029977312963421999529202308413266731361201781906204087459556960662080760963481698293687790605575015918375589185735078899348107598528044286634625045547368514482478783625440120676568989489264344785040004512853099661104327584940600589460539067331460152023102711934600039657077755592159783580281691650239470222766835748647715922034301752068522804005621845746029165456756426513610488185957802342844090390049965604742406810055224579424790426110552125170983960565254471388622891696240228293261340725188206483154589782902728370741258212976055967320342368466996959185641623819703823859594045581971904259193713248039778787495644095832795864177882140357186780095605113304628522042227373776511918419190506017416116904862561078841748834596036367577994767535167503554981550535796713081674898125597369331710056720161081550382113462575460879536938211991856879994202741349495934849862487580469427235265387093948584453194151097481635420210443776809062715506637352319005324809015153223266988508023317079020726506828272333507675495385702670720918355124542142120927728164767995359195565328618885072717814196484754865083941412287108231523319773294589095095302470290900202862731139428145529674349316816687996130157553982081789504922205725091296106081291814064857999389255464045394045506342240590875358277817199007726082120115562972305169144233807065176883809837525261955081104814296683880709334142220112177347948960404008853029309207033771848514867819802798796291503700335779767807989504071144731445903402987923229465668026691080646859936266745501024782345728302783365018735977030821549957363010390078201750859497737723490288130100113341234414880848593046486710582310157267399496535258074342701844288556596456611905660173976630394404226525509171538878597830505413852783835623596916813745610440467548964395836350175135018326910409023006643820378186614607086286756276112022569656735046388975078081465818177108802995534107789982419232254310559536737049944119753990417626535790070400040021901873015891154566136298542873014400788553324528257631494559151185720056376287320158439240110863904549713947082933349374454423650804063550942501961005928947983254954036151868816790351498361300684825166248349969406491375110466070323798597664131976372397609423239500135725545058528954679363146236287722876986630054395007490441959302351954117001451191464048991369081203636312432061211994285000825368610175493523857447619859522434831846851492966402324902467760851776312775241041256139421115226372344382261778448386303174909592759384026435883033106150136129982457698112181545079266713144690418139119738547413192214591706384468269364449179290918713096119708766512899765405555380823337316181434642235590530875821246720807115225021882980463084567499979239782020008048221506517200024172592710577783982351811396803295955806840990837765639870231573720627962285020374816880662683704417744404357705237313814812692056553774947046450927220751527120543195691319150550961022806402073317827466659048937075787352699399907847212759513583598204499094518456352239131888441145852323232916091985937365209634556588054148484419162083106900742251996816608560584383324106420149535120557733102184523351685934034594757342700725300075543909196505353315116797306080966570527915545196298786803835536605266918408907959250460983692214898232885729371991064948381537080596295237801900077425536987670422301855312664232992141618666466303819810493718193207839745440167551659946547824471966407399418214510615245017813383589622006504530341817311625047410266175789518822523651430812648659687630653442996629063256270558241507500253398290665072707277199387418348244130748396748091759859332779286762989483071153920702430149531829267837748401074929197666316144846618232779627220392418112419001746024285289325335017978348816578106635253108486436337336986860191451130502762893966969918792902897792661559197133690451413390570359007326838297302141613667793321661015167928224945087624471278759755982568079612368172008551158018879132749140724038432924702526097771622672828946497608996862163945708601318055945849238877102498399402687663259186967931892796358480682743467338597735341478784205908622628605754528123208367288970888495650128372280231793883352668803544221190807664537432813850945381699803187257156303496741177537493776241546467585115554909873614163901910479905830739240991371108025719177228738394901392513000632391845624557327863751122911551632473294276030748486796040175080892519812261344620745870483235173601766221313995373289829290979583393867094296254923916223383990666291588318056155293056640047682974943078731059265064485943736320842817805469185011350195524508337669459993010828861584746430117297676946070935841677931816460165576750840729072868423612469384940908762632679779153703145586221197194631476718255092000202800645507691802994545249519798603946382397628314931759132041961741167284988522787940654502017688314173707634130252010054539761018334334577889995829826006684000183282477246800184936283911878397049828686393472984822360901916037392085845861379854686241674083850328912585062869679637027490463352589796176444551475396461659511501312445038779876885727934708466070321479171072211607511670371006649238794835502001501893945116971287777068435126035500564854204879965303564313823890495040751922965999660406843176324704073263571808198167449499048387768656990729438675790704176319916396021715504040432415986637586500716955337169731588594656402305612251292957174937129472826180738386285683762610145401016731609454637036131468973762984297654280783272276042598597344498062977272222564410576402616547396891648108914698615483157956650070186581514867752395054483715920093660493248903005222302738775533413953189569661851669987058951135174976237256205604198298533363172948638624297694174877738103903272054274283714042392917413291999756635077465770904643358329211063107308072991380142945172683456510199574092681701348212472128405765922693382169879372880611921066477678121345416647094669573892906575445162398148488223318527653368023948321391146142175908282816124175305904281682966940127673815008383064446461502024818245783093930475185619163454418035878727665893176156778495555422032501156840932870546130334786584401056693018786392614428229242952214155698234589396929305803215299307615279554219254982585453803152460784081668090542327060278770515305747122471291645337840450284478680846011616096855465862226775067701764961669567763286659174607356337330336229552591835795071060350027306798859998360724409616278807872353354439559047814109457041363618656548413484858993043797665264526416356054393271194930837874058856526915758489507699836037651036867312815987236819209434823156474166581350895129741883655421378898221188331038364579216587718145765613531090872626004809509024475537840137207749423148260298989204723948466440634004440836913471127990612258857371928280196761955416820576702448078192819907195423462092069735667588547482247463761220761263980298316091624248695964877322654507765768425424941540850109250577961508361118226806311139997919707311282189512657327387331506745939406346428064767940891947929307652516034252340485877084806183975699214635203592886504533532254704635369873732055498824640164044641613302478322095846564659560159620142061217077422876035327520159222564012265326697385694322136466575968472342529866549900611982323375830764869795595300265746802471625389155304587959402679559432235096484353608421569397124193376843300559145415778433931169493147707697770898918531896026424755073736427363727013257319083609066486028926810707206637267261879393829674204003552774686017392560695618541824010297984074767062631484068516869594436956292866696126066149701574608043106372779011304565201784660720240817522520972693620889522989741873398829607836164889878310905282993059569236181489919963898924014175069986626273260355027891017933485284994011789036276111712088793217455368082588887289963547205647970675756028384435297158652892064369016281307134701340653946409073442605054842054446838937701788718269080736146079406283763613626815961060334851909376325402952370861337187631390899327807211836268847825035074166671452947195827311870062831489483501902757446660131917479882322289790923689172680427889967771718292729375731411456170507056064062668389097427712455352170689028615965936600013200185740550844555562191454070028449146436407164898372995351016303074598858010327770048643562581829029283888043807926671981484805886121900634445287014146994889206594668041984597549143825538034332107120420636851672404091917355698091499516457040951371045389851486311083415902732228981948463849713557780952662943703319148671317154436952278961035457549739339842414249530695690267530907729740404147720981624010827871016529967083029756988031412507088066230389100384457602275603442812464469639301938182882027910446025952118651323407471714962958743017442319808880900154020606445770259911093738311521320257712445133279311594296149774450621467978264995739825196381216521434572642323825603464241470137709803036805537808922502039101961185567031920287024877124195486089221005237749000626535018731928480349658309028219575889336049411704925409193875555925914360889809184013346379107838711833792367332633131116954485245674816021719753049625817577845157532383674106134150884736853041207476627156848885549283391818367839847843134591532328772839291875788781552098770010886088006622046000397314871680726014433350980695472123058711715908004219489195511249494417467235936680627424329181176303849220076090722602072123664470251839275546543088375072123399694570486458184380461441004292671481055524464017051733540078401139770229586247593560058441033527097543592012664553772310181217799713853813788742485560321381494529474597272025740550804423879822300667079616753864467260261839887209005372154278852907108036525828999652997245649820847267592085490751854749047771499308144508958689825876606398138289850690984841863036202051802343858512584605866083146330142606987622140051779920268196166364705469778695351744975611572528206299686159708155481914127300810801541456346785278546955881996767642197001857944717889432013080211135916120346176129289902802657492850758045052435533353554394406860886509483527785943059782466327746979982833315994921508886699822595576724092050444002954642998470246761468303419690318941199201889169402026396629027745950059314328181939716646905342630500281701692460004451995041856893403646339409809315312089097133633796120439997613175130871663731540131266022118027211383026156767461112179732538437213483926822745660349865532442823362623003926359691312914613535955723218246766411256535607044894229111711743028817318702067229656687307554136997118456701031493815158581312247327045903393607446915164976341028277718727366657720371373883592467040043359977348968715258659587880167352214019657426056252311672675478832552739059555977912139778418588746284862154964805768921668283933870079419243978273881590026263579249869728996913527163842856635630748150553385124649021592544342530337777926578705457562689705854518177355478072703865538389776148123770267211341148114332042660923678960730190413886502490596676529720447790526537224402053683007223073967363316427991545758347580346674729837702627664262942691476508639549300685112168667821614611071668818181941490945513267981190329189606631966184267953021998491890910618121964724861126461945976267492091404388949474809235032828832007051567167890624107985654515476326338808000457641305809126466744707560354067972988748570408899451634352810604896333894101830300190959410287073292891498063695355834309496845918105006091253135335546990055650607790731481660516982121021632293625549409807668630229203868983952761276613457089357253516116786112539423224224829642545116261062253137722041341575838743699310006924967172581486104219609803226609457494648750269896027320557858505697182367345698246713183804339421536138439421157154788120447749855796737142012910177434873616545730920251060167889882554473262503257416997474231201254714820599668031282602958353212657718312325523508064261087038443709005609977754485699735442767629236290227575856349737123783428336442973802071365302097275458575164985783260458648095261895413890178254755452175327470632524847649794866685064793826677992388490524622952247593015162470581249849812657446431856962299056439167786484868987037237626513430246314781921709041152658593178221369379302900043724308892756561720259103155883893013145596176682972505527987327645993043680363487243642816122598385279090667752368487953941593311138290312438532223991297657622350961452797518294699491517202339043093762310114814890051417145207848268783630716629464074364558522245279905464138648307242110064046279034624771342823141432068544475750778520492767669436596355348550684115588816417549826815155159558613570673146281522759372542940229461233510449508170582237599867501605216707759479332239033584471034536552981696720873292927914524821296939059012735158899421204337902814255416165097587223663599859659538050711678627117748530082942796736494831736968958593871240847032657011794518781600443639351413942784330912405451912447571385088033309416326260040902895677738120437245602424690997838297847429886003114882786771680801918739606383678396470930148883521146872436069184276090631749421398912757041165037886113781943250114432392228308724848054270230940611320636441218233152929293326793295996599619624307465589460133378297084217120929117011041820160866406566873866030526869124236254460393779750127216457152872034703405730094489519701647055110369970867210646056442761683916772484167177596905136455328358740787227885339726561832576156220390745490459042564289802176003907844140816101366596269105267403674323240077331256647805370388207340961355859484152139651684714685230344810881059142142798631078468238760970162393778954416252076368687377445009747217443166437767636139194023693036929068712417348435817032170666618098234743258904207412006359596039236816055294355388979228069033281340587294265364708827559908242284380669555160980866212754707491981186785165008342438688684735781366655465842136121087350285694404672310374107657500634743319437251857864091510189180921699227284135338515667295888119267397563344674149941374181127119704825887590972243248889085234833963886747597591199502521526463684552260476426366770998888390272693970443230533167924969456274411695633101154439019942065674133892989772645199829622196989596525833901455450405970326448373895276298472039390574311996566193713359249419825716140687741939956399446446575058568137558981240327614785043436447819735824927242451436488015333310571111147387738768140571566393827493769745166456381061553785169208668699896183233102461067185851845119146083269022050882901567089530793761013915944203206161970703044671330470485143555608103227370193021693293805912888443084226888992840062216929313810994566970557183831744022666421422510731237573662937881930047426882623086675078001661846907488544329266751828869736802358292377276887528349813917418263939453834266646942215307000648564420425819028356298005060134663847474267284362019944651866164481015150841925733308928744278591484438142257720759190028894888854966002052552214171674404809851797757841718884506391458430588987776442106373401146551454506058595779358738744558076650065066740103550301464352856741293931815456245799629192815875219797588102887747799067171171292728429581440228616640015511481332180291420348225437511191585420404361713562015941405625953784755765672874500465173728283759222738417520064788323067836374331162630792969609498892774500477634903079415163296223569318260099567900026339847641921804785385270495243055560529794064802847841799535907982255657218333845623943225260595953648938566879698109784803030672296384132665935207467595627310532797696414159142499912392894267184385284401695148266949237067313455137110591328850973036947700768831547927707007111454227333482471318076378262695425254937493814935153206301602383309734345608692737698335989316939601488909861004328173638306251242428144243695150623272979126482831295859468789455893385699718293377040007345251012728678299336398786207077226997585368375257918264130687224474267348579795393731141414185816905664944617952335359313383502577356456086330390571572587197109027809935507676992575328578272348774611248006859122579496510065499678328531740373569072743272596398611269672389442325747319692145095217504481145332285435459415902023260917372095533181125503767448065358621916349753512412047120186387205289002271527043896512024474487234597965774200698244687580423355186771717981944969520258264390881123027019723530045424708090967481858646999214539141916725291991563925605597697382564319709223044913329579674143103316281834693972899892482461214156509512475493714149507560450584699465555363723593917184500725117232577012926920080560219101054923460894122411346193427557819260220991937153706639637653489739028713215672261701608107073108583302033400304325581467693266664788582153399287487715399756093267224978765981532523169895080368624507646561702860991099903939509789993467842553887610984461383735336668817410322221011469430569522012086070524568080187889009428062449026130206060493055892948936953349020526214135062736820493815873101164624280763694297946560291365160694549925053114928656432596288888624088335988362782258940661700690354626541419563617925637137399436663016352046552521039773897457725664336418585618955495543855541688217523159069435669409887179805963561710062701137445236441315513282268318723382235508513468493131825323196146510179027195378210177905506342444630732499917437614077817398131859615348309732845286811814345893828695101262283154730065382312939365492847671988660501991888681709244773945043457200536246398448945489979779530557278167193524325205704970135323820416268497174394320142369070705821491943487683595108036987796320644635639612354200177149830041169010905617955427209008299420335571603033935359795223248591577518639577308004814787888789436011908261012896841810768786942003684833422476517485411131888602968575474336418615995555745211864055649512269673006278552351319185598440925128373448069085950009722420905206944573739874390173866528718064240869521565723805943636514121145608749513935390630352666590423130686101872495222577563694204334165418948474131339121250290160311182485741248662680349272944434618023972852969391507047436946121030479385549689707156109500561775577171034803485257740573819788213499914494339993562938422623380770912546430009069689214501910995876758663045161274843643496857248683816671225835595056709131906556840780772184793682323700450463039264159973391909193305068436812249674819963648927711777881129169751587766332097489997936798355650276429615721579002112073167790704976286128387115402570956011358939260766490357370536645611805504405697360186287546046211976265936241803451587320826670513379486570883951086585406088015513588730325621053135220193925957208329372472891160122833272259992538409217331827650632724247225461358840103140438556028740087915048323740163721636607354324043098556343961328955351927124389128988718264387140557282305399580549544052362928830032656760703853415124424236601507090052767743021898905755645822015849696210682689873232412884207401067565536020643741266583665847385319774776576309964503895483797110935529309496492501085116406221975569719699093843936626542500687816790653556948168943334945284818467067407971850802220248382808602044117282308347338285107988392785459250844551502561319711013778634079677582647665254681447275957365337660075277858715788183873602428713819665004116896960137119088100724841593245516599604756400672682738193364309240286570120750536500726988366028496079895916440174781324459638938528755025274813969119792206918805809232942988343224748482230668404869002055733647788579794762825726905127078809279262263769493742450978654169860929117530250142207725622188928988592481470755701284517481761690198208473546536798727576497845128390221785627302277150492172944232542408264972538234062429771965186818364013295265305994021528825286193784228220477419445245368726871726332665483418960578671291493374702890168086995107352385425425709414010418817874428824827592349236739767751216804348700568157404854451117693455286744296993608198493262566943255817903649707418453699469200888087524333101985617413719512255960464114818787972078254828497928623589039219452796205134237023978289330297487239011043187660456610699954963394049311765683601351319562833931430530503469879599083466179912462295475680789298096602150392423069524755875174881385586246751510749884792612017317802285957866453309644646077530510868979240873518156428870018443153318956285663729831356049708589646389872206792386561064503317064694903188833191836878161123283628889260245796525478416174616234511364487538500331800594767573268247158894228365790607627322777156561237033386109336057025005346791225340760648431224634674878761487556705268991312839025405008735148666916664205911673481545109308793269383221102015801037060963796984826429093171550732554656180945871616840767745845757150021273415503557350868789229066845904934907228575539645511961269377583255753049957423898860659948118503727303251836338192797560351150541302497035970611525561721055741878739352514960926232881310712623351550835774306718255000089057951279463689600582185939125124135448819224452305274200067534832835298087311959001250193057477772344338718883183713413435649582138946198644918108431067633636951332944309161473035515458311470758981084908196021007632671834475448005044329553573747983283475081395728993020881436944385888412072853087770358419728346087874298514219457683178285686928306126707652976735506655639225184989012505291375550182531898366684769195418865169008136839718113858403500021236600892826223234644366186310478222830521891662033459199549541941622146198358503417218144615669161016743218840916017396693285081483630017435438282525837918792103723237187851386855759357046343088433151493918095700833988620534054302060717846506291369647503846140904325661096869129089457873018806601975428976798353694142952981043490419463546510349003120964516322944007132051833851679986967694377642124379919073858021004263825954265539935452290155882956990408878723740748292580692647702455933987780398967761013062266651362120226586018738678492593594950689459223276712547233530481633102089930503320399353406553973667271895734026082219006426512494678650971712596163338709635638661000037422650035301845567449641435534392822910824834221948442430480388234441900067334785054127051470303391001561327369847421166637571084698853123472142299486972935344440434233605467813142782909269456718227985849950473404507964722510887168489857199611670241769202728560015309980558340389219921101989207182237726826444130265272049163494979486859866096079033198742443488981565339388370749311856323252396914637112352670533259707368059272709086564302233395406885015551312659958706607941747261500972946771899866037593179620464140386988731306084396515210437027082051555267640244933008212620444145426513562615279628753467826000625895992625918910425680908848384854545159147751661982171109745585471828095076432439552226188759826881798586623194266362206867361482839945075365064674156034173586899300553881191058479044313784020069617184954502406798703174967611102736261182729468954572375356042246664841848499721344575370288258637380779145170496193101648311012009752854378423636595480230229214777512235858362889321938647084227166467183843711204806575370208518535723165646797395456110667492575558497693865623657890274526151509535062146742636729313305494765090910403270483688056041868111657565335793730511601828192660899303860311584424310996455360410523690760032265184662859552215696827634464406697251850970699965573661389749347404288976657919941871375762406736366729973567500620065117120255995865935752499155669830331103468058771041343667669532575896172873147178935890116096427731942803589174515163025779790706272678249090270947158407278143656545378301741852817707643732475064356516755665404292449592056521755147147121221022032555639995107491035161944620247237906707517403664204605313483765951693030161580614693351378952003830488225867656588108315087707662309768485849207519568066164484565579078117888556883590339477593963310198404982128258288485730132932482015724121156306331536487562211203722964229060056829831228342045874644498164919965835127489437730437348060107375981579676836209473823849671529093491555766985204017221272193175040496427600695531039082664609838713141791949881857967308033508948266457847837759389893755492337567901586190207731593862810123650180453545510287048836333593207055170547634196666624431528380479061526003091173074320093578615371706889412981243560102541040657728682659376337888984749044012317844164819828418829405067730743044974558920216420850562109810092471548105212603000954467937471816957603009822562741641363113827313159402228828637438773840807811946979027413817990979136296447440559075165579967029249571061205295391759951875817439043225987711420432683164870285524449291123356276491557742873218441331345149217902885748513174867120839719150489669033601763407032699993907257935642962018309474172391610592676885815307911987010184159044413970506647285001777172666911768662878995491264337180286215421163163644244030183525318871281486142582597048808157361452678225810267879040018036178854807578987695892549017590488009877773751797553203617925028737796540378612526335066502438909497186723362453983075421905042334631215000065040387167777613740925056522830685317495202389970442375529244115822248392896007844271593563610269793287150240943105344357790647950955249955923307256267694523965352749765527552304470147915413309561226793779079501011760842970930058870014681185253120658733585844008258158195927137686190920084526830765945884226177380833321520456565998137283715428556617261532544644651903124617337749207975500783233075271274148865089520667788111881108827083527625169009214240122055384880329128641994468577481009995570385973367365738258017511708222978685796483420838730071140270543800134530673458940806907786129047522926386083231492415177266447543989017269045511379720455166448029495308390076032077641092075385485441428647514797387133289323361312976919205027682986857744974668131907922500596832245484186434628531998747738116326583367306594611084933678000015839210838760264055693370900643498441471465035084191043882966681607517591152520295063941392534848023523412486463092397615448507724135829732244883076814257686499435601591781458820217495262968376029549302342977614078950449266559424078395966894524979928470280567275202682695540197554829667585325277398264114185944507615550916598030263969956535146420709942083568691705689072512595961154586475774073748922830367300597167255673536130614915389327211849290313977983648033875200781094209193747103838938944072935768437053062600798009104751176700230491540948001696048416201158124898226438859786089310469410490131675955950468777916955887728851666587323606498170161978389144987414152464448158111803830373070042712381336775411335523445049309143254151015981847906847786492846584460595524968792772867097802289442413639760076831454144202340398536111654580666957313609080623357434405870763547839792832011310087728404097700578157065336177541050140254179116683640439754709812057486654317554662185219319780187592150328186334333076183079131690263424034536793477213197974180654373226154417586370807225278788526368052212696268083821587357264477469823177573640947168453812921671727890329907601699047325613060528942182188873511166079119309888604393186164003011319216555123244388007350220403526580206074136749313203548855998561988777043749382367774055470526922512032811327570544120527667074027687583242251423956880326013716596066318134490103822003680362269731961421599744727877817018975017501941706829725475245960406575299296904692385481585304425444726518597518961646466574121298531716181829231460607132161218951829302189444991636205236916662967646077050151400034948997010522615914799040410224035290594114070066200180553923803013818221127414965035171696021569004482086085093416687179260815645386028325702228029198196522741586505599592465083336011743934812034936838184396963308683873453354788888298485065277548701266567794892976965060831255964166816276801660778712099032034468916163781125655978004818425480822498501626574833032022062803247460386769285575016116164529018018717659836162066803793693980027552136603085001393617050395170459359843642491444169586081454513514154357133121256419420277406377738441173967950995849314543931352847461472017790378770706731289309549568680564400686076413990712425831495829149912580398243035891741717033569286196140530877704306601212410545711977257729034155850405485428979103483401570940336867949750532722655546354673676989947575661725524284798418106478347998561264720839416151571963218270571780858605321156740745201144194862074805009576708738633404782201465685940915970097800931342910237647710126626961511582703356716517232322424494747189747129139931721258436623002489845900752414804924729940387620602740834300663070629941695363504298142274651409017278347947827085852283227300868692966968425649964468569322494308162062708365191347457893649925150440153627362824042008896892910200317130525717206703876697398065149514871318525693406155298630610282760416436910699265633071965074754603068450435446424742866033874033959999287384500356730211554220782148376953655920030875763393346138525214835055654194787851137616371411078917860770263517967538691579696798282761043645191353302424690501606575032847978435611703022338823914596749201993111196125049906663138037102415458354030372314942618419167550358094111430699674250512794444299057483490081954126119349420506257845456264152383950894068931673993980015783509894395713446137410396478631411324110358053185107515954704008543294931170967770592595407760530006197410687661432357220262902697908539988640796477873012790853910310822058427204120071507532888791194388732680280995800906942466672813371567176883374418800382650009650931165825411641919439779916780502811175214345716393545569660697687615297278821707030288471139752648856323473891716475996860185741795943139276476905009927118923513222164306144750140164151438611438433883415914540526106765363370566172944427610984698413426966897174525887302193794718202438476172627978714437002979672021404622691374363361247466680596911025632716116196265344572731600144186360951870926218991351224771473268802524817697279268012972726723372263016883341425443722460808907284810715763827984400627741765654001053914721462084853923121709163684787431573105347654020400869993686180475179914414658526218858393813390191827943947433545232931291758333221063680183978531195842462175001372591519732087552616294812979552279158384038052057825076796810283981584923248316035029847289788659241677605727651392680535154457198096429135935235331703699390744793548788291459778909545894880322088068027186222736618958623535722664647978850285081606969575172893856048626729062805975517708932323504471332083346121928856661854206386902117041813949640423100999027391887107484280969169111986001132418891651944309876444684172161094356991480313455228993910506024312076250737490372062357793693197817224049957748019543969105286232384474608399184791361827699697535175548583934728660564745973223750183459004935780866326940547247475450726061508546484470033623273707683611485104975136515074493751216974787712498923213262741696597836181498377649666053037922665072173901569626864107193350045541087482755627627424635113938029509253288352095412312239276193534012012084478000232775496317516967737040537113644103637681808934965336669590270896765295808367479149797924805013388788462694784977302915544975109785844809767426507043376766268013526895069891411083291323796463661046094496120811951447049018719281083262601427351624876411457413743028114744680415961052360094309566454931912883607232365770168909161982421950688905579728664826478711496450109555058840991961016787078428987258654202148475610433337899242980750650203670006979181942341765258954828923768686226967074240654711591167648147411327996536315326453813270165986674467678690791882270556418275166519521312904371409583440060588342852171010152041459841895291846110974080444396795028911291584173698440506628761974608046871506166311426278868142793068452108425138982418754230755632311144584794378408926984348612811769842510105810799761466286333330098902979373561909448968071882842627298599270041897418496664633500210976026885311269550866625610390390954766308382023121912060648937164065036528045227968450333236978337360619137205848030804509255143334034713713115815470462015376849662085292044733057121227573828796827348511846690309271549366599610525752802882291351030738086119978207302659713506194402105294962307329635565365749392200871767492839797370638331418163636988885589850934344191388605519000432895595447012948263785082422301269679532318695241661197300026204712613280266710891612980475546511688653140256987448287860018609310160656326763041163651278240174255553335810709201472177319916612042287892827909985190832482505067126015091441043737289073168276280157349928371397698597535519952043467486584251376303907941749200888233941316593924348175036724342446890759220023021712079545476172220512595943023878447326084009133988128050992234443045510040812581841003350367678944003325046861831662111413708058966435333372605349022470062354757010242569383365400555204259097022486428237653417107943255051570271752361002331407060241441607838315734143004856510605035642773968219814762095727567749128130313746280876985470153125585561941267106832176060862561106510725887404655778678254605811477194805659437392487404562427382253972514922488046978870637835504439949565840569295130567887900695690533261119975038010782440616706841715873645035020992015111839407023880195017632097010099066971918846618272370191393207505817564334030806633016603421472527238610835757031458937751872717146804936378391875139814199187140350488965331018037678032483646212824260837701826427705948019778715651811920531343637113075478140261792332992787690451357505185177103158392836094219867794645335228447217063689634137013352023554348795773661729165863632220450645662227223874131933970668875701635387193788682436067497469513153546565501531392705408732321623793365106443925765522904126640200960952537494256630360023577924545258514981324699657388454368577220138388190240744620110988288387451517050242586736837687281633395179292463604727831117370986920401483443420148335657573798647759473478743773860315383303301972194516006413985009937519492078938072471547381997244073387874765066335712917269705615440066690620667193764295321361297081161976398522946656361096108787706795644980986463756325569044341745991841378568034908810961100977732526659249897248622838257237929221508780419945971129191746951977683837949713278659112526817971797857554721186199824330194185517204718735390826772139479435122583470745545589393807324242895976470339224904679717718862872894247312356093982875108464046556153298768919944922610331511755883967900364279645768483921406264155610580402388451491500376610442402665266902731831329170124924483528922590890414637228813158397985782184896876522266238006048627517684236705410237537146903226505339038458578852880031736735670680490682828177199500790992507167431370737431903406027604924004073420870128097681842091657153242751725429662456992739052296623354463029732931296583465960198500146352200392096370214415894562746948899145035613803829539181636536328007729108269137421636898334111789830176072476771081061240083620836583997565522135473395228396982040317763647395090631693233445780516358593238449478791983455444859260722660695750741865804496492987847539781428084052845485206215538083007764533073734919937151798027638711183394784792144220380483829947595560711092161734814840909551959839619705781320599885605845520287035464330887522849963350179230509321383483469196547142874002409585979028427290168198592309659649961154577702176512247329672021502351342846964079751674509670362260104165720739227385714782137591723119639996646332444145665614381658661825851744753184910684682505504910017022831420183141513447327781187178315370763624865578503087488329023588808772592907814878341614531021079523495747765150017087239570082573459156902874399048589309217727857641389906376398528628197322218706716538377207296283055399091935533643671973552924518285327184133213339693379169110706765540495604272072832311093028921290395741426074587524428860889591854808739373894442249253638625961637876306606876751325196682297260957120505573691143465269868488544130856965542701616435970799859135686327151312832078113485238695285622158755802382123841490855862982856119139567702426661376943623960465438582040764560035078009256223772349368814803394041586069009649395491040371838971586674349027354197943291058323552371244418759466571400211529386089321468190772988990910405556641114590217734720088123721863846367263519073050639670354920432767956176847112930358543162000418430792387831152560655443442848998667236982782081680495182084427915258339395408201936514558497694527688780084759043137197268574401280495171429243886414911689918429987919420653100472548599565981756714983482831732578074956514128835030620218949576054631137997158035116217962803340974326442426892888821675274067274074962386468441857080676905999097420393868406673624197414972826609991994058632103322160476520572294524256852908192010137953388653009005227470005519029135569450582532887538090195021249348258372802043760356188631649987240361094664817754255929480808887964579211403115211556926983110913923334768946866759992002001215705463173708658520644731011280616255300805065660254846936267216628391663297662435387559641187855213128109899117370087273851250300337253202022746919429055064230320950652935359979623647751128379162648254423226803496803089276866289436440445415823749557220131887273625092808304982186420480734545132161774361787803800681502508721451764722093995363298841002484277441080803936191799987962647416011744076624075211565092072161305965342873641546639379666985642129121499036732701344299252772276160966796427259869301155507139081100651279850268418986086893320479846465173808329768891874510186492621955100864111044530595855372515635685981356073321955899125479830901208961759725625398550902824834893944745402845416014679168378690879102597139899750176148742561386461124478944612367007229591373179814010431539651962912874918293703287170418248526118950358524418827883450828934809865756872762440835935417615850220330584750297509819307055515522397834870729281296849917533174536076284873648516806923109643440358208152642663398414565633824477199578322461990809979489195304675019243556862139736491613599943890981609588483766850631591486510848659312889739558447926797529268766073482866668904357401354901430421253026444827948031010469395025592949063134369814675283653095739885982832027531157701226085392015079391074976494332924110212968386147944354293480574302172959701855774725055687272093631696925384494493660814801057793946290563246950793039114732163933976576909141201368125019958679092512824838857659667545614062846836332950379788065462000667064136026192149233235311389867672393746835199691317898840829999088832015851894920317280486759311050842378121861713640019538170425025227570513198986782567407703181140730493063180547834317825238924613324541120716805292139286669465643620245223109984761952866722217759863095997587151922106723779891990214774565608574806911324936481596578951285971321891417615003109128673473847944479608266530738380779964626563084869673471581166392974885402288569821337874986553750439924906641208964252498256745836784119763478614912791553963446670484160219140334018977070103187238546406096897099005253708117574395087772616513583339125719959134326803051681943413445406328380200614653324829738270084190294477140687386364546673379463275740138986364602674480487202977807681617513647093536650379337974015878812925924486216007144602763136932279894426419714606169484012877401695600724942789741305044397593434331551965581244940807785541166710740475893527985619833070639561447887076545814719571132833713495985077441067894575647459052816271977619699109636916400250257839772680624116785476196278936910739544641464802753498243734367237511304526472558455713678647381184505348851135996967582853836103681307237527596234806251401038007150508537900812310557949529674163310702314762802524086418723510188414580195998099600484295994284973904401972552797707921995240546377131766474872806429282900663213349774318531626652860633773079809000090791462066279290197017064889119913727815730381643303027031367708002622002060638174700826196014391835298452762012709625700304187808525291556448437692092262127818655331400659391862023964541151026475115140648269511742483941479345875179693126120745815264664444258035657385872231683392637118517724459412038822838836685960081925213181749019225715780042117180421668796514923980597924591931876395872127595245089369364154856179624351595354474817203435980252806697860347429794626221165806274205447345846868512080950536666102008275032159097672857772984570753869086758739880673529932823669484099235144644244683178232233344673749079425570181898398787904586795293702708716425434787232098875745002793541856804515330343970426291082395665744376566412313316916021881291800923053551309147574478478862013668976072076617076545586651196161283220381900466052891606046285860798171073897166984103480854791555546691966672141576633055172085866635283261473138351556874526235530214535955307377653817267691477415611539752459267048819487866816103082153500610424940757218442956199991124088271657731743612971999422889661384919157624664779010458419551887754330983469007506988530472793132151178061816175547861792756751170214589123902913083383265976545594798289622541090786387204783508374206181078817836454718780354684841606801894964749164448072355506110866010205384712049747526610293992461340588086418560876533407274575854882938353004257113129687553940321532470710699720023141456875022658530864620310863233167983559810960992300586334941930942627448808743394198669948281743917360819082749048937029721221098319910469879664972946071446690212827738197086849039581556676951842046313169930409064684581704999941308185703073855891950214664981610624893744519589026095522381091821743260955287216478503635491052915468390121890189088399831418004137626482645881616855093682197785210564209324897764162835274309687974982084705473047174535145655408245000587374582706753181235662665800917640335054695278747563716468546215626642091941517391653875788592824172577397668363235051324287878553575203408061712130717356986340301133009533581526494759810584843947315238318002710133498403904077371851083729405379797433224158186757326775102200750535097913260975247434996152421617770573520516263323688556729872316557548420963587583385365988921326365603629362690405708524047660559734556162987066095675072500442849090070850155543294717807402721357941776098776095146714324208099179635351691988105780359508022002646963935938495151051917003335490597919005598687286306171454098830764032818188254695012966359196274562434218905822691424212323382307927751579726891645529548494591183621232320087267030200891114141784560312009972235489246065545076843882814864778087238153164591309919739742588857758886708764710692331591375939179857092755135638051541608088748780039883669979482337868186182072946218428560271729922064918935038967854624318718283499061723339149819495000697935277163680408834537183860994513721806422001583812095874510969168579583578070500585781571540374344789445614871103065681327680763141903551581368906349231578150572537052591629375133074901933723034504499320513065889953466929345472056290417772021826492314918099140297952840286612332153195434193604010424384220665823241476956429262450744007164434386489742099368905949475231688109696344397757461061285761873534563681794972589645329030370910155116650412086793341121645822357892340344067865068093298089937526367314874228579087318310633995523318964019915442494615421444984774383018963890618979677240630508964860652595679071039438956318038113529440417206218402537892074636653779243443832881227699003126359105781354300227400503079155148078779041370901736109423844616569658426671498723863747814263781561652317368804580853439519900471277840816374311917965018017184680122116231704129269939321546049582715632828677751670581985554131542922898251874059724955096648130048964287620094843187067835024806250003174909299755314091146948558497047115137380179575707760091842964403351854303259859811988800583092220702835860205700973636593974853460671450230243528565207809730717809215979543296440113653764946709341328725390679971190949878762212487845606843742926808190270652302546631985570173364530839973320966058933636259107210749497678156630990979567506496126152025036559152389101098009845429262663431359256055771911045675847940816433199714882866406011314299518369078379921766162431573028898550179712370880650807982693224376457573745021293479999773437796224155214369745685272180357371604156607687217375649769792868613399174838946536961046516385878274713814767006409248167519502524102492417200908428922177060323463555713543542500625971187339721463628148610541092254050660943336160257973654862494394821326708331244101056254643677519514722023286871605410513981159121494277345665029954663815379080265187338595784707773902217846560697752041609604316462205600250064180674788089658522066794533577493786460825833274983811045472573302239652892718348255836314529897303186612711230620411189134109981864655114911622818342840247388857797452508522808285168610351811437263388239258228213873193639533801264056395813866746045265150568293081383581038538389899116547085788397380128493064970690780965659833919442139631276315338607080370410993210025436764315407081031711751244341742393020824370841434738139890955226052334384605015679183443250294648674611577782132293630379235624338427798696542735075496835988063749783592516350547168591662159297173440689555019103028438458485051896410627087715878488593747744639697520286959934780839980084310306932269772284214698572950624223538381487552665494090187861459101735058082084905108922948018668791025744478549064054963556233101056424288045509696905856677891426891652122044927849932123430513433862916140080812521189802299307872721258264659658267631274069878123958303115541837978502571298648798731899871279348281023276501374648982578130362042320108024827883362561608715633556027533629381999773436349660517732504910952908119713925676508977091833813851686717639070213196910719912350077430314595878469778636320848698592007866446474969017332328412265407178329737089171431935068230819233804567506965196390684820734680150224532595187318350235412371335428858359935229476240706388051672068863904896402273506879882711723301438152727164354848338401398915053535200769133150977842829504612094889829214983133495518161887941709952974893257265443003025073357588502743711102279852893676312051265158059301757721811176254866198223702223685115512609914292379150192885151301803739257194568513097145473168094475323920484819420459230786460510747527582865998790543858259326314003750441951649186043944215982163046490789465984013995785443257935938367015719853743949685977292664019661303231303829429214803365838017662701147400346997846315829748440421273431714156619430753717800252792516985294945764842493720224794976857275506941724118781852394309387364579895961514521836154520036175013598882180719668691239707497336788227394272702096157897817722989580415601362269268629500660570149770822754548210808071418178837769367823797899951341152507003475144653985560711363740895462841743979745127971373715383025484863974022709424605405104791056928192824263380969655770423500190133310308776970845722399844519600901244980594190119098273546198872175291013784610820311973480235557917656684336459349014029855322542656816904561078916774605443431940229802400103515627881471094509635291819353501351691865299488762716140463824817857398293753373534888091818732616092846255230459769921829120130401211399934403593864439750322963276520982429815546771098174486683800885194493078121926840753929629610093912451409420341951208977390741444843705762893601256101103803482817712554144928935547571101966101699297990081942754812911024966651420859878418515642174565434237450620656091459369235752517820602233833150236745754133510668622961665431101142505720910726087319325175849053883054206182371132267364982654452629139174134203890646361904857623353650719240000847432586668262406962237836364367315770786998489881149977072285437534535045015630767587677232700600158854725708779695731867849814205408911334302599448804905616884491899414315426449883966649659258306696314634018963407719348153214904132755792661422023026609118641612282814200745973842083107074974424697605193020041458198264376558016587037928479285565473733422338688217021713899992184660322794946897865712222091715515145572976571055893499051586465779039045971636598841601352031028957593450598526679702605753747211147871165235260523927877263828571381903036927029585141815188793059334159604490978931671654924746313423018872914728802980964305110733018921711178205269332468539881597831565469579967675606798163316929380342613828372906440932023358970846918376794337567197954475166243124749901111095696718781913472786507173687306456191253911437663540517418497902068029148560122401358415283318704576231845772672016867972749154753359807120861858615618414575645812667080393734938119860502558005345045158728262583154737727456090408248840335994859276821525651237954570582086818981265384388895427405413396834321905175431192169163635339282409177683004607578268975456357749696776336843910442796193832005726926126298570334188821340546920199197654585135225142043773910565294150882059631230918940598369570901994239156879180386185344693882144954253366525969335971812606233106359767812521788411984757717874107448966872467696649795632798669563993118059651713713179280557469817484770740448160314300185185096892087964030749163709815037991515836433227734827246463947467197804758178005124434361043590853554192550152420541972464257913068636205044748262676949488655737793120422296364445033495082289315198662084945580636981396399879920387823997433534934697722163649945820455126555818195995423436494921134858955065456202814115919422555754533570785391812511623349630092903561741521311120894230734423229453472215515446742757820087601823838592370590488837883324444223474842444008763885583028548365047067343422373979920887298974617589209422690170919479940869445770045536791574784566946931671998568503990534355636926241468972508910729334736196478666793193047754046384033625364077339453932823109369535667178242421604418301704755717697775573708080845114311345528462265777257641213010740839830212812236725795712133049349063255597963142687224787309949510754237617675446199996015702038426232899405523612832717388899443886930109872175594980750489346708712772586322976282071232492442632127442628688960389791173143520015549167338594500530768835516533430064384897778075647310414977566365672213623975233300099159260959179018705493848771160617376401193888888692775913437020689659380750599104164021646785999879501035006029073332193460625206709602829493658326021667752417078160090580044483602039362691804347334547430264018719757613673321703696034112765921610462248862420066154033040920347397109941106833756428029443223854293228213090588495197801576049948482265716260912179880687099641983699118239039873922835249118249961311076906220034285584614858118182129815135156180356303440475878271651279463260625073210157499210455279433762172971147710681025489044597801253070889757933931572076361445631146692469038911981157748362031533499021604802413966664793143669379071489259642784987185592259094869949872182154274661712182775494602828120591687102829319082631396285006041068665346982707038411708250749504697278177941899093548444887708569375950899773721178088975420883219767146664406962796322842461494562855165837432980521311965741282925715532593187759142817853582707211868656070835411076503483485747056452793052920032443147792407648619020307962394621843601539317286631856055098372161845759257175235135408041864180140939897861010842291352987184107920234346120124331133022931548460248514117656581171604070509652112890367744342961866588786328241425231567812351560005950982837003534692495270364042466797276731451247884156029603342686549518661645677340239449566679006448258259105955038700552272422132635835120039796375885570696809639169959294168405684927202651276823417458985686285227956719912662691260441749497197057342737404444319728289690326945061400504577775959322169250574377934521203154691210823520533536451748965500854535406297068188163121336033113058747129890685858797035789599089530456332177567675582455595260460191265910519723419916551819682870433197490596627013065606035338948945299175563359511634117546449206594504175027367667018362728987280463095410821342816415234931877771545508495552732397340264646008036219313838392047404676708931861866098058848206259046144372402903873775879011684811522481830034100861458804984329417138459052238629896638103030306614527973645667664328738707710781816307612727034821764665569186793319024437738513187551939630896679236396850401051968557805038530853324550445781270276138691916814137643395979940916717148080591994410795893869317721353210600339342398005982818702177534287891391998804117812796520019916218723169759125329425744709107571377473798723475796023657591860976300473869496504613664274626540314663699639141958485687143801228624273982933624651894602229025944403285547277539128285021874437008694187236564785344679392871202241857504013115087104460578246569514836257239092298150548566677510231593053885598474045313508542834545007820635383453465598847629093316255750839238500806852108685982130981235797266211097140955356626165066174303355553178342050824916673438964497890130366372171428657554898136212896474998575764962214613970636520177403846685721325733321049469975827830083684727657363461384597907328337958985176971498612823029248744610239801393764673022377707497710863098888921720477044285576654513485427139897987895413733910018829212503217706753161030995704517355667016384380854935641471338443066570022535677650720932768312329564999536432673327160313457069358755725286531994682759148668730264714991766892996267420265771545616756856317535417937677334409871072575322645373660236747587644400290873714927000746293437215901864272217305477584508704802770313687659276625662438238041169461211848126185803800313808364845300381230943320423677253352720665782846927535696755468062760398354610950834217288833697473166374872566765989447165748336113136632468802018740799642368375000299017045831020922153473318018492087351696661974001529562855176448665068040470026203593502821875337041076791869352222743643976025221334566084805768530360434391748542424144813578735101182646107148039346931591914086936833791873150009396450114301216859574789456501618836335988264635842408597147191576080032951282474191522893612657672145041537934241056512105234122307980566032027271276960860008225592711134952717646820846266839844478249837578710788109189045101120668288019239309889702576859015483561984861868346437766978972824827348724309379534662643238945171830658773813759596779427004461725908443986114071991817737858626780069964100509085757416238621200819389924339624941738074977766990413744152313239124460706523564234683126608440747465234528740534060217901785792762667515798845277833924980022511189672659786576191794319288607636659177454459877353176110213180003235730823370655920776741049296802319981878109647445215974539223300214016462882453513392836145424135239613333786416349531704275419661600013421302786629480211300465461314129314738406555450225399433309509332755832770487366787678588959815569494707314934736859519901547640653942741615018285647830419732145346996110024641335173747234631887892877599728768680836195317486138080167598141541697364291573785116359136112147688539033554162099703842995912521060102745667451857110214598136657678233112614857720601225662442275461573285918391061920083581217194729123995472418386222293959128876261468483216873824931360107287172966713328389765877798524494046405453773700648310642871354890603224896439690947686607711872288719122564362663725956624003115948450850552626058106673147348096111253031831010735984257086226294067322337544477031334780621252023621315081372967058215415740079503786702428339153278995875224626410313214251357127407088301495414594979989923992338185585087406710443174889111705097913807547093966578609852382047962107264958356790817202403875468310812679436074601791212732308084080266715673768515785192877650708774736926359205945164675583558211073978647344259178368793166301146249493290990663558268943825511645603232980374639258791315145025767076214468582844954598212675274624309212010257541083255580047162804982019041963108185920683222894008198799364935265460040455699631504595259764738328980126623711771422415154591389103073585128193752248968931001588048105506698437575474615099298636731809844749589176053895703971196975529885009022379944260281918032373447302496667901433046775486373519043473291986458799035065473906121054725487743021308328854873332143639018696152104599833345544072170748629371818833158016244108121159677232888073872967896054991341173974194543930864958849727884580303737122524677929037629414601487488906520258814808910023051986415018377339913221642023247398005698107413140092096536215149776703810200453024843379722672303639891388387717891396701966560633148611516034092403684968578742739672116427631024841657862994891236472583212096261488911955218888427202519411049549906056689406823250290726074266444912150599146572447907708734414298242172071244288760630456986042880779775002971942927594039877956614716885672251654610172013708228076679918250981523303516114616328486080127706121576107660918798686838792520998105633958551003922740652058583111863332134244448238371958448823545916036448977377671551519676474180885125209116653136850181519765959281987172693380139840084319335474228631850252336912606075951888678941473762651007560979904051589681471464324368243096943968276781708531810959785315989766565363820396237533929247219949912627772263053001338172517289885182623225289395188767145586828225312712574051569291756573727358873121493619951476649818421051471133930429352536272028633450165128129765191392481749903717131730143689456304091614783406520531410427755753041838928861440941240992575273812123731439296293456168516288786916420038297986252684097778865269240751816578069238600335608347865079281713439956238235277692277235307520721974294465228897446318611227405836267092918259882405931559307248345807066675652478327959867624964856837525331537736478042608525515468898421581667493992784299380004318673177798444018139317821617834902271295421619989625975524721286529394522533775525627393722105592317709812490088579809814017881605246990225100265014356974053942180311419863880370432364667565854174268279140566904908953987584408279300776708845574241229422218389878298550976862915106072919049282502882402014202055409264662393665233343180839898464432465684127558865517470237434496606434833033123512381878722213636061889798103789040256963508461513926278773493809940872604593879309377907129826208703263649779676561936685253267959815702929217371039203506199750371372107249301946949362448685566324584323735426605495879321542311903663474636672115862083643384795788777131258077818253891209649085394900397263391023901005541831429348065173324556703047075915109691105987259372745416105528141168551175477502375512206007515325191750316244677647757800507763059157000699606681070797250438337268331860917473906658023281765166407465124908939880484009394891236302236384246776806514618185314289414434408154799823021233174582825844244786326153893648404851261378409106074077082810234455789541520317013774007161813404538802341653266011356333172429177834305101414326545028481232290795255275217785540356575907271017080600314823049341917799111506297494825442371550355297546450616156114118663609543666918897480981855481511170942338851342519148590994361646485118740103995120492013557878240907577760782322893856923989153720928630803521256598054893534884367663994728444920116707314592126998046411217567510953669609530209454748966737724059533899101624867266170916926422641416936980175600177369589916552798781580192285853727578131123153851962724609987217237393335375866658078182933031507362488928395323953213977414158611742241749243889833321229893832583095225087021224589336613043841700292097212385993830316836154647631913351931098219829220689430027306876000481040756906103577058335643040887710097474602601354349152162359428471573009617285675171983014852290795971838054866186886699241697169112764612078837075480104424777066258155655517680204545641476393121710500036275472521842511189540145267197798645598798526064247409661027689763101689311640886866457733618411711785547898500158908425310428432655657002877711215200348063202112421728775907342645097502967022163128440214050728659845227022279405351905611017883143472590833615629568730466907021933220549316255635898952047341763198430367741777782719730416551501278441885614330370899642073761101914051776795598320014203065354109884613919217291499745039485273703004115161633150148999691135364085307447872616151150343710682628227790025573572926909185264155973580851879165172437300620728596428868848287796399394388558813283065920138181449870267472998169697555603829736416502871150956101286745619963307430209272016427494813098055889064317933536186731782897752484265789215934367391155544617634487651091525156741645563085995838854068223735555162521137450944539890914388650813227286096335776647068850714681864000248084255558743374881330426727309525749464525523665788752805861868737079323600566235651844611743484003853371024935184747152953492165679172003339369949247305911175539638707796767994606695250738202639908067339763168770812940088414473963074435017443044434650780694788700083553956772658089090417204456686788675080842305737467710222103675697776648876194065296405866342995995936633929433637339436694254001180476277154805120182893128913401170738936288146662095330161418946805702151816509226547898025708105738679342742813908213455527212677218543349481818347493582640079735958117203699431900061118282002599195072069735969417293321961795603919357886071838158449102152211932464131118482261172005554469690732287851919356723222364598210364497656985764121763296955491250550951360498970593009918839220810827484730550237903840393909725787942104619434278235147749289118782000260916356913733199345955307905321947051951600334187099500609613613955625418642597033630884824831642933487634530603312938783405851747779685949423031659690176764516572034374319953373616516982967392954897178935883725593185091161962838245738993305093461152557931542672684765016743805638996769418688067291607471622515258331371970372520528003669013539963532704589038425779109372727861822748967773145345683246482273383237116857406940853655557547976653916275364501579350642774977828090123082233639687290741703721912357946657382367518827846130187727648835499972973308422224976687190831267764590486623805577125313359404781182519334074309970139931040357696561123170751682954385670255926620027525373453441729312457538079263426368244165976676869220058398943542096828390052345317536774534655945417593864358062722404018742377015687265746232669738939400120529855171708231775604767768684242749486391673983380819586951031056381199576038617360467364043487514262520183890258476273400939154517175477193338324093891659231370951805270930765240351479150676857177852232226697937323177874020622218331035793475521387237823342464060567213486915039954795619632745832803025376527787564187408277978624530806546394598981945016052253070313837975979529102045099503975981169498480537048992393563277103206967927213669122380290599999084647274328067240843178169656003736061198794127321412322622323238520777546234711816227951739689912454435594516090923245307159667193755572574810293843918635468339991268308669036715767582612417588891102926792165066297481679501100304309222573254431782438885874334184638875603970748221333832969253399844087547111077237818994057559872410340383960954803010702506684094935540444025105431083008868336926000815981557624302470850160972742122956733879365537234455442605260850627716311817088561336494251816568047240335165591573733614451399417818149589515770890765358994123736081696700412833284000925714431091178672154399521940641252677891824513752187299047007738731335432426078753316074787916665633620782567755577985459966277907706373682789966412821080665200048688012874047780416181312853255456880507274635641652455279664021182309947757501249331421211885327711751908583732495975834013528875054798221614547277256274009472405838480087740601083073848555463154362126381734431565493303910099581558292562647316821739448989900193160538455936608914082658047376859006594508941574974508528073158731854156473460977297456243751214620308647518001458879066007694781903032500288522595879715633006419369025589783809300039276256809909853613588898441445243944470875884077468003118053802026628500810175632327667986549967208529869664377584244027647836058978942565944163966074161165701609165447566021564257601802387497533076866178951471023491997560036687539017187097022300114655267222585614374845689833523603068599795721404994482027459431112442751502889094607979518269026024362418253444448777081793144711431107706616666234481412607197032686818978745301374870179810211975077508562459523288606974626405073129565147158200428595116351242913029460059971202378288868617904338636049360531486168619964116045902023371223594388228797421391421264515391031112273497576415381515896242675564365323452766657592566498275146662852787530170383359035341770413811599964120574112459159286146246909171090264950050190700275871465081787620574985776908668272535643867962770909106628272945722596135457864892027317419086755910015013239072030417201202373655756598868217746080841531927172381091333231287039962110612762474152418772493757825626681773638870549482028644053248393006424877530414579744100768025457340071348535622107242854555293761724498385057801445478337798754399274124749678467444114984788922323781066117959666262194971645375958228859511868172842511955411777927032830421101428513910621934300746029814342478736959741145984289628899600432509264057217453218523905149957242157304760532920310920440863157214892026614886629346403341456825178694009627837233497522418056834604145198812333377242061342528061151787102947081305259158774843557391508224416999155831475523998519126638182748527514681186988226234948471745912805002819532849618752032251015545415453700247867135063684017454538159224960818010165949995162550369037805733616988571576378511352392503557195135174450550341569798906465378817629981857713236191539804306321611234342763806877531952082172605056140477918128909481156923064518639503287533747371804278624059550408168392740246885233374570977776594988343460939574360846185649444208542868664052606208091016897967597983189095563075852554017278962431233573654919140393619084705547238218555341501075801191702399380246728836920735308826712993953885887854678449828115050981459572271570286554905901966640066839922475655268121285648484909724887652164734668993675274521480484010029746769390640994142089320690384377107597272772052127505614883750012184485608123039416463427175991766309178748992905429186799710837299350574613137454669075529736246514546841830263201994056840258979235537781488860196782784820670010249251372148845461749369787594811440233827255411051985892901279111414149877414083759517568127929148532126684764200859035659778015865592287282347431055527482787348070215162385237087254741592338129354149128835708130547742817549187952889780985225066529851834329668316343660729305830308472221169814452632488542263681095537876363892683893299101613306345920184278892838638131145441375095355166466872476395611666776597459838216454443645536832485116623434135013130888484982123400168051326613592026693524587926112529519123652892130867641187888443846459442370302661845148193062383793711783998777741468001285467546093212652991945436449705841993571932506146949431012507526199211650747687935909985882430324177580878612463667669299859580324693705102382754864724012454259642192025180769108925408905435023785507296216535473650697140967438768382375281648243135639849592940767404284205798523016116267316464965483587199670234271526066458248384458100489154271173087298642144947687858532263148593448546738088275644139112917408573885288058469700082996096432410787003084623240632426996406544862671320907881207368855003077194656103251050189224180708456920659483977374586624608339859673110609671081859657149812015809377015931825177310043491174771341652167710921014177717961510598734522438169466195493934461211620067104378192313551875099850755055664311587051447323947742835579232802035167515767590104209107407293209029820156163434703982167508620741748222920355435568524742632829732152252819698113501704435756528768306465399548851515554692051642724046453205382404110239556945636066673389679678847966422242536584642516023620206114461100835899501917500739963091654211725293043838838060038387554579076752625070136418512511453701050732692386941831606356468353221972083327922673876904297485451664135234674229480767762579972709825859279516365854515709075809226230562082945306263615475341597799303707234258899890649380518140729484904885591130056849174423294215150892507547014113605046831899079047624271629865767948577001061438209285372017462091178473780065362354744248014911436977533755770676600597430830066684446481530933031993886037230852802686384974519008808537766596923934082960297093581568918366694976445975406409300915547895540045037349517404894891131465790946477813802122802834209277931941439655396079260902253972597590120182854926975417829191542930770201081809869331216405964467545313473359234815198163403010957530144954738389062460990345935979118767947060358168968809673824672848637463618776321489778675954635829353154630510295045515669866636748528774521394996861263042438650177048867421893789292687456141872988358669264832368055965674617234710229412006687239813155461039424979587388385598554314759560027929645768922926261737062803784454224325121557808369729831281770069926590925891677109688303247343982885159399263173430506672739913936485588359380476748404813904413766436238085710932348657803551820486512774096936315283918242594783970063751488099095860924820878861326695150296399684194623188451536153528391531124029040772537004700347884838428265558585146118643728701346626205044812435441459155397195764892971921560369176250382296106241257015912405874710560666606380818060121932791358125570570177296308833051371275282754206832945176459997575992882055714310191079323132927916079917706751564848922463468202830330763644171820737814488969613184421026034089673134734431737813384485421889540524653661416093953918648319170829063426137653617563592119195910390395451524112325400469906718976021481149719261244204819214828579981237676506473450627727013084645532461784127620753041873515309525747696925923544498188830899563622878101214763717956240263647255278303533040085427085594793238544297518214921036928937526193697680917879899178934995837388061438244297947589704416866779076935451615198140878720465241857921784115184659736912928261641122479808829459462204602479978720608912250688261549640775246650132945228761957980773365696425876152889237500036255362186610222264786634641336208708640469094678420125048411235303542609821646375405842690534957304998767592489620746867368739061164160203442538008576603151590654190108068995371869799683605949619902420661151350746790614297830118304924693728467815815825632453793711718017247942321454201741541983521441324477571588612515132818905792894661192005459224969299270985218536542109593389158261779688813317099901138453454966712359278226948705109501621679828060709844347449493711830878097268464250483671138020025894383522230226521143142754655579508003264576902589704804081733350730170058101658393700803549951421397920574571059817908466871864052984267665464409124661582919527606517855100548261198930255709581520802682909042193938258401502050925035985139014908963779302527692849082212753534746674940402983222248140152263866142034067040843178065808704499412448374295671970341272633937416965964106340172883651591118450634024381370304539515125562792077293279327467376743882480973892671365871105675122417792673963371878334911664152328152012905488439607400025301290471919966984488025968041407711930040835913800221603690680716677367697188250462029870450451718216511023726612049421757667241994475065250338575439814625929230620449853854304156795840158519427108449495908169902401475827433499087209996974719349186660691955963226068789254574649679649739644194584214981493750050107425697581719966389446357239570294244375258486540148116780558976745194485434551627707303343829251823366288931489674917681739568868766017776413082911218688593104460584508448719069885889036775768942164021414578600656599033889334644638167382060798672184161536609300247936784952534499707601276272406518045494507822002412557330207547359568278561556918024878947921644937180919253530524013203035331743943954447440857309958451174494275594742213988916279121916838966726297445747797056467504961469537235102945012011127126224030951773136243819357171085624523054846200209193671258494627083755598933713291060761295446142301607607218583840403138105758057630084534297380313317738190979938683345586644822641905416776869517110386297099810581102471811247316599294175185107185426406983277828434879533934100531789606370445174594560147020420879011462698044742669586634361435002146324818628346275554755750698770199061781836091538290760410764249307084150883456890905305711604459519211738936946689402706004918359445615132673658134228161333836123369011881904135219112878652768557701345390851216159655507763338388880556661988536620992500326899210444577973585967922149444226813468079686411373568929475281465954915684990145915947194981421404582267747249314073548694171479316113082425045000193912013089076890528078496253190649989415067497980466528672438806743245806166422924175035474001197046385805061216152735441188177737874710980469288967886149636620830722763652609600739998819014941345532278144560849026286609418017327634424981601084267967937788763536366657647665374986026562549090841514489321006217616995298759297319923802558370842236214511915672650137809007783956984593339577026975921164473282936996029551664244582818450922593686644628757275892558958178884315547584237221701458330644438816408357522482063123388908316891912972798689533427414574418909265407229261187940771166276014036016900958492412063374400708434003663424484394500970292685005168146390568701295465687977914280134941755486442091370796436200957950312197048477932437002221210063440228623569486028483007688214243895717329716022948213145504858111540903500659794881452868199833917712595064241018579036854254873210913509395290086130229043499849872761139132128292529475283135425990035503638407428606390936673626143523946691125464383181818372003815232600178612620071871444688173343056977314177461622882404946504966572420674510859793813566143180587943441821213205405701796268271891271786800181656011011738512883058533501210952170429576980887011732472136033710851299030880345709421558456831696722325266657909940030740047061759436740376084531411011610787653085885001860413510416388332535878390742032598467581533331583035620839528068904838222258594043490705541844188824685713233200308451754633875300112367096047704405514801714540496017868572841479561360375765902902713407125024469427626073386363481431051058078131591228959003364023547744204552365050060454568038392788763142994736550969271105781231563075552553141213784308651036071233412980021664401911487046305488285091968114305512044794676741835517956675110605666905341983871823924908840975162046277110217598886705403114594825441488321630615213800455331332250755469505931453298382072865291687585240652353571161385636609428066249430012178675530360231649567767293504241945063808977504254188250469736774765193130950235151644111728314161427432289701238852998627727425307735075230175787957047243341594064480445065640309671825886863266046014060677324806139634570125452497213876084892522254044764419489140193160808891771221766431571754179750633316657405484476199647847590880679790508729461711785349999165272201822955281398548668617176162150875040218242642980883999084034620395794099854555881066051921856545623934258065747382672144200977253597817389187986095285597814037228600139029505503758061120796963214227295139148900216576731685900769384849432740466832790420880623201932101670550256025473708881426144967835206275126976959627934242673963793995753317529900360776932273862906462391606759514247702401300783369041998411737211310434052772228145212397686847560885139861283747012810180572055865956467643991046596321886196206277104650999906709096811316910716062036846611642368808077626167686969267446856385354059301573263500875655700869946932660466547130975657852021299195301064210062377859654237274091746699950917243028597306965974927547238226413145575186482893723147994256166021137300138271714394971443921618177988532219007816863702428093286412185449656555292272557535510384164548662747658707756215575734572326227204300506458876479504931674914581289366559049360462209211692518294212537168203355759532481014840230868941019753891663191618758039522950321912540474112737616010121560277462913579340917134906129782114374603760805673668487603102978459167570043816935028510633554198417048200673654733478421676622006337589118706204300939825932881859988489982929248275629088400447744557005494628119465051013008145828252091009614871212498199831912444244218600010078244652836446865711170638529580318678026676121572206154148303912662393294920188170168095247275309696783271137994808915991702943684946637297967788074100041477847599896397504960990344876925045269192075724420488095535358008922041678201138978670472041157310209649628477770235158285518254778835083997674750310478352978407638120670423040847598001760396686523554805129515180782812222611334524794868686605404988561028466936925770230699271994883410111895997728231161229489908195574288342864849124494326769139745519482888703359599794460079916441583714066589224458314969538642333233279196800079726631831622119356588313035088074909153251505832451675793168908840407749066896416312021077507637066990893771693387640672833557632444204648248113497689868527952846642601884237851492929785100894715565172001066979014963187573906900713259636971739386054242412648456690067468034980859831739878012209663227831398497290314867957157925521621040563153866791325446420424017371600042823536399311481588798516793113353242533666520476768925753141563499980297460211968207628566347883354501960786097046115341333580734492982724721868812987720818211107706388850821717318613198245128224345914812150725063994441831236137997673586578326363068348778106350625062614344031644362827796291749443631794195901905636528810343072173321866040328247821678821627702327053526529490647404391503660424258894726140441936138456388358219360205900638193087080740019232958735908740202530342624731483423177354886906626735935452699269578439412435876888051194514840252246049953377877705406492248183932644989545369217704333013822548509431620454977671517591438014656066172116593660633971180780529206533368259694654731524730618365454321691950272314790594303087217136737398737107659460963199369884017648740838451821755209351152641882022761554412524184761832724017158712285980726210684062945403778264920161228953406874192604777830062301996576716627099446028981902293759988802410672661615633803655992399448453838444323777699960166744644479871376140872464327409922946668957071091665673453056757471287668165493126922875029659368174626487249501148497041623336588650282170056486358549676336721864528378992218529636252150602369883994434917062722776618089737640298406988346072411067218300750642410583601168273906663223664367561982445767725794194318368395437754222939278122016262081133543161921479230740179199393743207584888561352792238045996644978543595950191229056018951504439170223575882330652645001501881854100448358800069512320906394304523967602296983401179716640839224291408513076814027002905862570088735161533469343568848100667848340190277424741106201755346593899709818908496146963288786144967372589600744602922555652402679031614385038679283129117336855242206471996709191225819439542296921991366895286937338736536753822517210015824957344065936547237207630132193464092344117147276350640963706010795113386834020556889248531139316879924918035830452407034958467079040060794982379004687136092891847649938219833764345954148535351919631323768208985495930001764306224950287193861323254493778734032354502149790363407014427950656527021838765418949510233881832816081148527175697473674948596679812601920616218804816047412778955428228114587299899803624819556801098125943945507671739965507251347430023545721171872638078042761081078979687321288095290270878356442916488118264158939768082630093076396653763138260415600955106845503519585776266892357856682154945350286689479632140275934049468107444652227986992290106938803503162225062391146276033581357985498402643077912223371637979221522924087044770836786760430663312619170669836451437221809692679413307383623657368125537547246929370947370925992442478752262594557471518913044680393137826859725517643830535572235285629823326804440730228042405601040998756579657202053805662991436255398685621590295048782678304553307602707953380735137825547147312487576869562100896130453499108944617871434258471867177331935002459568222699231469841437932122639689747861252726728600251313808913416626966509609005569572236909570129877091911169864759201270741200097949507760605946657114757805217887581874700527521446675614510503340311352946599411420791247248273143367919174673330457990916359029804898712212762571770782568626186463815027428902050487611388212937271856847994166443269201514407579488054358914115998252986365408751340826796057746501167049602671738162522939840965578843232967358738043862367612163248083801562274046272649939111964167373847572531666543179208475145041911558297598753986655886326974470990128511252137145236134635894283268880629891864636543081376876812277306654087239676039956216863788767250026514578369394094109428281326100957923804987162724490345296104194296731063354193861353198530473780836225528906767749227570069615813482609636375519741208813745662170066404737806179516108232455602512964966830360054868197134886880256163725546462396227956776685755550960724559672196768713472656886360394025422413648485435388463749290677005159553080497441039362985449281640527294731797882860680085309431868525723073157739436109053249551096419429660851086748595284445320134185357185982184447261817376471967168367391250497434490204449575696303284478545153071213728372315966663134208803474029589437741849102253432023020982933550339419611228091678362388044823455562127049814016967149179833457893667315922218612130750553732353216709533449127970290166844064126775679274984822413187250253542482839347121755746459981838519699071715561515401268361475614944932238137037388626349201762074580847552452794220654960579805303338301867481634926502006738367561674741422650079991964886175381186414106660168545867630898655337012486362390357016230787277182782850739007138495410432444813441545277149680783508660378635358602502264052254139092507055743764034897457236776196321565547268041360834579839143151699479806173600512074326224974753146463203106331077891639114206455111481386188679771572619472401044276738820541755596515956368104306490109332090725766679167607005557586569043665697316099902992610145915072407643627668563906881516620411800809318505770592583844958443191587638660296583755311516699047477722298135476804616141366667457762762043134802289292664321956041023755739118802290554475912488291549439034853290247813380991583149059732430789899610453344936830834284158600914252701459132699295742200088917108004547054724052653168409369991642965647807281080092948332547461671669474923060594352722462920014914084685164068446788111315408460686735722716343275492019479790237291834032985796998680635253898949868694491671604448214393868536395078112270360346598080121521397215694409285515341718822994452751757512479190930791314844690641165652985106543230617496613007660898621634299544332520137530149790099785877376854972479478684999344860616834610198252517592147130925297854632224877300576654006596930206282249820130716339174638126108422863205642641832982989788943425078008662629148760549623835703237253106867621775754265940309642302652880191591913797821267478303086857248928823389324331758208646095205989792065213223352243670531815041070743503924475031524753329468949634423750750209373268414598349848167891673604659365662340736563532789824449097205856914078277434266306755177179002125455192992500672436651507035415284644965914818458388724207851594476666627757964859439203908404203578795906277486792856594999734309606553735291910743933421628369538419617474104581178224821098652211032609858181939798598549964860426116640052112608743305019496784821552415905798519149331813604098392908930905514259230243666985167330748750136652730915899634718186380800366757985489486984363811302463395046874578504194476862984764089911872100400663036183682619720650034884527597602676387897072541828966645721148598280168702394149807111637745408190293297953757147120652618315809057722982616061240964661614542857506662439178372805829786104512829260839819597583399554217353841814727320430826534536723171237443181012943290370911493505904061405841549803554487917203979976926138207878663075184562612607020233896503553176417209612014140047923257412137965760522574551849768460183969563168339978760990106277679117356127017062901290231272582212836810537571766786954301608633722350153133031315836426887574957296413566596155327412671045928935970168575317588596116270551675440806550352256905267651583686596752470165237441253379592350197259190734208330355779144754872348441381341970366722312732968559518691913118202557753543035003639721893674204016039640632666063074581999905036022044901259676299990345361613104947931537382480885226428708646676161152896077823994928637627927538490956711855095907921874756668657856062259375507971247692639272743432438324284402311546194853838041264014333084683300051573615740768905274591001350508387665008370054534386274964678625675904869231942354699990976117195229114235234345159136138786223008375454080244953620617261533910965974172573799628266147230596642923316365430548890201585724878869055709377301899101540337736927159198551931429527250987962763949498955351161390851026567886251722839115620428488769009994284131154417477580325714215255083000140048137042463028261157279144778931684316253250907666054471438000114986378123710323758801466401547449563836683670200362328538133087857970881124736610016253178155345392236903260198026626002002419454503193068652348560289770984970324967568957014018717607425133465391615833398830020232453756294847333762545948451533079944899657384818631649680393114973611951178440529853668479578071158754010442258903298007990154917628036773070600766564170209339237221267893942483239500516650386458408753391675440904646716923560047356187722433684623800570518606549020364962981796138396268333855409030001496681093366361297280408475127327947680922839244564721940422800156724449421959981022436893443563243905094735487193397628771732540091077379754967433574283165114590553164103599941173373225431465400055176358455340189684731533297260060161911778667157849366196204509385785037673549571272505304194101406935181269130773462235448041823734561262105841254353765152911310869712103246091699328327530633072765620596498965146548350404271248977980369191081381318124763615530166853596860604845963992761376952989287850969141416790337426807935470768847258170369872237889073013848907290746320882935961978942113983534461456621717688183459270356712590031721349025665555900856900794471528908746466881858268751679761188398107113454531307510282595065806679089350835441273524949836916278335547247318856177886120792862462248906395378395173391435002701765637785154380098672287982622663645172642387178864533392498844574990068915283149940747809392720966060265400008588136845118574838043069491695365278327874402984733360347747329279651585782663876172865980777379711139329762240745600248478848316256988243028680235829869605967291959577461988765801727521134706920454458820686754675130085828096058399400545762372248382809406715165487056032742143161705768980341472886851659320482779873563153789506544093530620472251181225441777507050414096004868891776347945894307455142343240590103356489041551952159529326017263252264692456713927128597423326384319934372867271736378450870814199266085228318391013707680003238721823984848772325481463185079681374154653750636973938553007825896096258909746543029890025380651667935211825689321916536747684439394389110328263210701495826408799436965995129129200068653626084559007125442045344575244089358592375053385583142312698290590812141576111223928516208941245475391219492992595810480137005697197779135477257983431552131867022506602816813808670814176230163320831495913762237196921681727241905347435476566564096781643120644613757228953118043705106384286483801755650807043333812748894008749547840118897214397134796009786185628793713556714845535132269401277158031083326920640809416679252482060831605601946553734313265082969818153401916828230251066586740374353912596483698061653886402217839314302619485269247817005876845752044874110611675280077741853993682592367781333977031905164819404917374200194211705659699214302159662111395205856562166459813148756215092786820245824745973704023347708815757741031866994023160408179511879623414437871598256619487262012023588239885387536544569997189476537325407987107148730450298387009286267976821376098028499761283675284430726491032887299403840778382227172206672446464936536856320591142103375899122187761053898882832651645111771295323259161806527282935899948124207966342022699086309668983068636274477869806388666652652493242510930651503005958019812418368233298253295019540877256302777143189265135303516176515813452011930987076563457398657025361676583966069441476727456982154478238986080239604641317994454560196059299784286478743013273535212341374457801450210504117980024777778593802527466025552766181980688643352352937222093909123390115572913468226525547844914697796806314013364782632882572735289960391890149267805425575723322052492472059052317311446437663299619788606364998353640414609217674605270658031935861300590565347799731790769054377918605603864879002269109920473907947054540680991347010199819110275887322333396572409966488341637586802517607943888431170719090879486800814640754490526291599947654576771928172698465111056167328618216180872443620061393197598965894106880447236504085694383563347369680117246590189293669765472770165606742465909359225819495524372434696433055254322335208392835090975420678431950419572783462421231557638550875410945376092632588367399626240626740467494167714049367748253319121233743353543401274814390834321023834446177401016985289152397329721607836605274071867355188700153486536491449306742354364832152355531505593980582804730529899331399445320957560374763777881874428517945377371951740699542368244323978211676349447510395060779381605754399921979243544488599015644605665974108981958231708040095976340372130023702857468229338080697045359937011258951698561321193610603494584132398370955767300490564081327774105183005347467564904595515699111572479661620462497380697532933054640816245462716203150717972112212887215962166302583148266708611710004624125692098241231143539508778551995510422047393966644450988953400860371167238827054319877094451594966963620837828904155697323155381758972975331864595784304994260396228588137970537382668118149344796352104978674010633375874308354738839241560967635635980096838209489850489703421038926398340265775828867558499345330642681213949431085453262475609495585055231602277537808759149234865126347686888719988125441116821449760263512245530787026542045643131938564116335514248586397182666605033908641892397151355000782533410288264924799213662444662376838321556160647436076869420994730204133432621318165219778410191143402685473765711709460762446191621771055475014601925841182569468600587254593018067020428301998683948181026756915634896432675899459835976236782924343317466141777019698641633802785171580438720905511139828013163839639742749149732742777872959247109016053084066720611010020264901400463130992173121807322347832333075711951543611155130393694878327307166154984246313735430296206407542871222549392415649573787856839669226487001191471866822388473244993228806476647944386366344081982808045691523270268873605821762731540427373125981015507298189013050426351844548428657621427963728018303449518625581173349374493212596148118939002740728488001471419724954008572791146300702357243748111655825856512099585289963141288791991430973066887756411502477391410285394311513919469105505225982018378283196316476399577283077570935538993474493790714720021854803067015687050348771620176776630321577428367082692446545618238381056904526084874479189445921405393148503483280136201697995872559885759854620309142057981709638364096198601618095432085004235366683466538531673097790492616860925771335886634345770395827429584323850258211524862561413286211892182707765305109571585232661262562994586026074896593161332076406088482761755356455071445518355917939774247005257998919482002824162713168008998214770370842649183456782571336782503770617262671610786525342869721947567092605119760361705922255015056127975909367308241431908206703686259534565767661562586948694632884201202024335256141914526860161460359768551851110826926576226702242028573451179877588788059667177837731463806035511719602512028773359629994808592959182681868936745388321823534627154298885236592411980326893919069432583080304784023584095398525920771602579522820274265868670889245731593045639853603497910260407574926247165842660778868268393125073856041258447792169477507648359201270798811569352332843568592623308485339956106954308261068455521213331772020833581261846757491556099581832208721942256764846332302274630087997509069224370721729924185290284449780074288452637635179342436744713366255452527270377648393669525981821792294912063416323518889449378537034304771840607586271567736523097770997248489232206044966962253697449185684690041335775209038210926405496016796564184652729894358449424079323144818823437794270222640495826497198497188409247291383514155261626329709496247718619812824286413534651006925485639840471631603911575909330073812390999816151875687457501060662430840971176848908255724814079529487423423116437196024921185747334184332897383908671775642473184235579039489075495990020693838991877776075040793753229306480471229899358172924935906469973865867389938225315340159266670866267607606198909805865053687731864799450120801362759694224648166490960791974148294615504130129690705677004240836443078263862010054177366381920188296290461039061085176067153843559686730853969090894358875673874940832106333586766102034085617459387929847691556280866670218559315242038712167955128630327277883650322811132795930137495533968353350617979881934702762482982460325475171390823224342520084817288850123503717523045951327438721394206363670071791382634698920837677237352487213322467358626492777760786008191371879087246342273765923712779842040654081731729582999136084907000715600865552802441992611734819353370554285209993923777491486938449023585613223994114778266920561068614421271274017220131028650136514580657182933194587137818949767052009858862048505066742260287490733337469753230005586323284664801436716675714035511375536297847011270268326362660183711382466273410678468318594306457213050226585059372201715109055923453059893322236022249465326641876366205189826813396689439665546569286842780486722238857827525661067764053796010613121948757035697421951569495222524033222823691558493504203569385310259540511433138513443654164974922193760616057873192683935126168788142809106889350714906889918360634356219042629653403417265489190213369366440270628108529311807951205197849493216441071725712932826179553961486327338820174608228001221201556940135600753843104805295559941881301004089585115298592173001049074213240364755401105599806488770436900880965460117212015026307424870173352298674640120358082240720120025742387412734820401962982418429399880236757192933953791301966509160142425255786003826705366101854640733203472989924148917991990310183766859518977213362772043117109455328151852545445537119085305831911256888126253339865719825049633163450625948903139640980689534497558592997125647703450614521047705402938801526310222825221287503441582349568279148277978131468939017758646546739427885677531303885468865837762679245746354603662409811285889877598279877421987116434801515054526345713536007556996730466435422836048159605460532032635357654955671376993367914729389657206586454869747176857711467692391346726413212767665415973950943468685430802800550642541613351076723274893861194099742837927748083783912703729324708735733994360979180491695789416706877890986055862160662937174831464208359661614609970915515148127301540484537082794898301373778966607236675194624013285595784866206954129648916137486183147487028328218500925377286432504396217079076274728058307718908239817433367728729498242659473723661600332897403026656303650164302473844631258989186358638910638516735609027027447748839400785305743574526062559168469187449233594744227232771372404460380335856208277745028013246658523628933987371134940455639374217606818312210694314605380549820134666609611599333533678394931301809779214232955535413037558777431787758021787584351575502919028511263920542449309875939542600011667379582942049999226137211056001893544297577401601976809419365917030755474527853767730972901015913897208291489013161000864994933508669403349588362198766591499857308620148319131473769745968556837633790187383284764340246531570925439447540980071127431106198009418988315893636586067019565933457057080187523414081974684457334934874418823450518735858483463579609963068359643444682075368526439147600631162750625363882672677605586647243972798133054114795514360048999378495973406262172919364845318172943379886416902187302690080434866653463027232368835616578807274779162133239192949309883478307174955426122840379224103107532872696329213680982939031751584654948741031714921735912858630901544918266155304314142282183566482319750607109827021861487867742309144204204791102203632403270843451709438381494959707359414033488269160433125299776272664557634300145023561217075287562045958657428650951914421078030029015130350803722836389107045317791997861480918663002897434655270554334135392367276595318118128007085858500150049121408702473566925887946444396322568804339354724251745843107028452821149364487040148421225717858187650692786355705787745022203777775457529553822026028727604800819652517870058892361959744605784291121051996635437600037618881295789288122076472368270704718622898633887050907278327538893376744795151315104632356245571668312773404146716419804477668771816201062495735802417789354728024985147650203075818980382513059183863898514552684763500658414565395552450443093711773278894170379513515625002530049295571082924039334231762093182378825647141914528165793578329098721414712269406995556036261635194187613376621875303216101232304800954456321222915411441505977799565180612806868550911538277405408627007277434471716320143709947646429404945746801436531606584589093204722626219571030248365476927020577695409335843402798091529250424381732866990765524846631651087295064749326447653601399883449972505889287180635979361922314832187552332282209243984821188445138394909666066300089215478804247004238370629530969241158135205161752369646909704911058347939626530882914266366911433403709083233215702508553632532916568641559804555922861832292956093225019673746091225758899936154246219554342933894205764321637434266489437529415565004409220486706309902042815469447247963715132734684734903491382154885020789488781658576515549745834793118557729351549206749322944428853605039140384362342672619831276132163022817347692049555272238693422816383631239196129895819734295984337150966631115647138440403228071592763998415573745846465190318410985245271750707411132443833198546116665970029505248432858414319071498326883208259142359571173512515615766151531111086341902946613458471982363112138994261772332443451177757719487642082217847059237440680669852954527184463167044835052527859201409613319330440865529160596345269135330901871759824438146434888407963868651936084268025298943234424166079425774312596818543973409502403181631648213851640007404747664074798962904763516830534309871662702507326787398412675154384369341449635999882836769432800576998255313515577017229945478516189326760253534974713969637076617628582759444273931558433921460359948779052869561250051454523086610051241015624766545429450227862070634348862177515249833961268289312531990497765928756394772035393953192695931688769265438839619486968845596444514970910478097628364421105826624140374573234611651942054486349354522217394177819310153700652505506547820640698142259942750048741015318531644962409153602974502204506174162771548454541042571399796749107659321519392653624037427205090363027003892756940254786407651903836199866996446507606133443755623233426433043028180942432890859549574460882314596225427482619301890762704073482449178899924922050780159875942044008671332776505511726333710214019987235893803225839331979825458178872333712468828207155815681644332423927124605856811186232714952520954878234195748888478587787998754510914560023521179512692568557347896339729833857756008389377390861141809496208791887248143202979575538808410399224879359616778479960243752019863724949147943644481970295735350686808448893783534148739134160301120790093190184059845947563714736380250355510432052299981383075360408939493784155002299244517337554974088807105468409908636276049342764625606309856479160380905821914959207263036206238441741077341831197850881570980644596189553797660797273530643354116761724876793298544990388187916708071792260321992026245217299345044390096081785933823872076156892173056454192685969699040021334707596575882083694497245002019046110579708860167144043678221316880586883241527724390923933464669573310506464862208645134942913677859976727931299274097449765928693543830385855994436783489420309525761588295490823381290356810277709690060801838032752416925480710182454376315714287916149157573207018026654039478883925038186597851674394292787012827253491974192473999083922215029423950998469889252784973704963068024509114667685516527619866723377762781680911588439259640612178212373898359356794748395003575360767731994999339459806036425948971234632664489578486157805344386664557890373793263120852734695004846799378241884192094030873869666031441731508853845751813564644304157867211659338305897331037613567296576883234718650799145576189094859734921944693580525329802755774302292430506202150298479252655480483878391983032490997267919578466484532069806941628216185003495577541626779852649767239203484249310756482355107032915367728369456102549580035686144284871122303547185768717363701851491293037006153922666849399326099777148929354705787800409066968366093302961177658345846533585561750715142770098523476432669947929391443431669322409361996575341953259567988992075566153787920319773270054345336621878617560691980062483347724069887672747012882768981277768510180574163202470146856142887701988058766749598696923619651554008028642616741691573526666518407018123460936069928826740380962368083508743749032476452815685571846405774056374563108957576169928145433445143700603034616098914119014697471978331793640220077107032998025314433071727524278509350570791083517931756732771016596301415891394032942198267433699259350075047446551701058917081180696155613767848349994619528648167715727338934456976506855535584317953441909007435874424951102674690029483573374747547909075609604912811184833412324433517850890540255596827048528642491847999093163665289743664600798701435296092404696114655442818755703210546144519995538420585765878205754547484450782697293446990592032251655963498362264167780845393546781751776864288943461116418716507613487579112592608288263009128579573350831139888751891813175119185642808787639069642997075870115800196591031299718366274967243749266649654578671467231585738992374975237295367228892454803416302342833830098545592577026647751601696470380588511958334337864605856957159556152431208649009969656104455023394294630539911960188484372667407705322943083984444360606888888070068828662786905974195687929524988147313151604667453225832635994152478026293101888056328935509200446945560978125896508924254454588944260632933295709684787013084431108046960561014102127488506586196675059607185522414950118338129021477453267700400202969848232204836491795057288691351734958865236764106006543318835141863853126815261031097725576507525627761120643892324308326203919946841829731690852183272565028941084187156072039285279067319225494918383546323651105590800174278719540818430995988487253468368655620925832372848860995300270517916400444557602998666796109549757541276274896808028815805401141380819073554210693951384967960036575704208175913408809736655145131020140084626684898999699973496901767136071142045947425076787633225327417765276283748180754840873531818697058023885635434331601276031289519071502590972815390832501910168187799778974871249352829204761864185312830873234433367950572996789789776023607235437867815235012409455273849922043768092407104913249338749603747919538545805848773480590821540872932562751790995690502544992017945766725042271732428494524226212535533376574956609532106462150514140933821853500353912297570325365793380648482007538933868840335304857535951514081303525717422508049976653865277236568359170940740327800225697938032007468558040284935227722803344999823063110907175572465650393277620732967320706940485641835359308783436362196050754151739662101126677477706369052701871653655388518755024164614267646366052398442751775716022239486281171188625257078859514419086420597690786153257785641287962778240085047827509620284995694130821306772933510351320421595441415757749630615468769823405945361651909521543142691691560361866495868130728227658258900011680067395440937774707176996709972521296784288800558574255798532356542152577039553187564432787907501705976469012189847295680858064582992310091339396038632801796391450232529305527770046864300452631963486273467674015779659937933522026868405694652914530134204450884646988373012386074182830407983069436534195988838276609617763481278230651393591884721368060148172369724037425740464271297665019740988756120614299873099095535062857806397768848185695767442108179619313109007361842838485738029783787247070649086598459518355054431428958238203425867326262828526359223139750672417634296216786986286515009388508314800622404718217926271643033232109530360422812054997871766494408757279707698090929384684891051461725616332572165053186756266913312496636544471025944598565403830487192429203344081185421903147230166086715713750316789958130818321500861235601962171798730625834187828295347508490818878794133564001598532910560496503376960488773859516076377443656961188271334009706105310166264437405636457240676390874563340213148207859742569207562428641857347473001876375946165407016801224587477143155653151150806786330035431750183479822971136029993275397794875458619804568206261805501221391105955073690835399548651400730586156965348828794076731416528726132251536026818064282133641354749117927179778212596608457445639428792948517970587159784509778888058328536897304868513727572355433301831262966075910345409666236157501709465638888683702912748799834166094038927099392278322151005346770671409322005320011836212742690007691798683661406368298364617284352906843383506901922334706363071993261136824689705878798538409149814144280651678823844523082910090837671950135328463596963073598388252704804465701454158153716525499542874154971781770836720544024472724688456477589031135434585729478428809789008188107678317992973713566065636388527260599533748211210271940587275084682112543570950353761042592749533467653165337645409073354359838694157004418741663010930996173356278863062816726024791720665960283047772393158425747482229124515676925550303954491333294754184258130988257272188713692580551556164327649375673307718344473829721193089084643962109821479000285427386117166035136393781867976229986614487342298044420592331297492146289899454503712389483577677399397897110672566426225997933492239451360259467741785117272873221581128503167183197192515641503594807846707667854649715045659579898915499738005241006068609764777459075389706104509647195653937480331113295916361330907779385886093101320122257223638695158229063988501252587819580895277577146962806173040734495567506533795872227888947353423751566339904305144411520078898155378166947003407645502232289541338419762300787148982201188875531264574367967403399975832773533153603689729585594498804831164968600575884942344206464653908746661348179537989165142282097448974290589102880790328759367168576223352266653839862714960733956343615713190848679809177629895120337293878505944187084235377730403395080921549961192956082098868077106340527315846479355674540824401054035948917544280108960691484078049641890460014193129810817814868685148125921531667751051172103225337730330145255268919116761061201129092351476018336653159849523566277030789530382609427458672647395507755915528358403950751131008971200989530304199517532147365573387334727534852327143338683515909546579649579043140025760153888645147211927232229418922214432087360838295925023957403232699312127725332410547668606269140735426869767811930036073212636670613304167653507738965523689962265082828479162107008868519900282650039874350361208354685056659813904946795548751062388514545712878530444107043367379817598788216410593477026508754449087601084371081607508756700231057509650775441567904245783395822255567621277174647199391901231536446967215239253886353755976421043628043733665241127282633774803066774888226734064254480472190586684091658616969470457293597645473035118006305810180918740246650515266705519445630233201335858266526947413994796923828951521433648099785493418882797179117059924954384458102610909929611576706604005111132889080158994864050174596936870445084778896219136364591976518897364739835886288250680502003691767239585119120795144856989610146975184491461883653466094608638758111305956757538097962837578860681267323729846271436265552073172226155994735784669532528959209968427379212238889785787609569690030687508381660009585320424616172974157299278985036691610577332047214383046652920303883205478556069854624066010379308632381688425195573663126388441700430045962159832328563994142867522924139496087145348203490232193924185800999670036326209852545548543692348621698682045726465723487742566071389808044508590521627070139290080248332530057593486458730951468582339251855229331638399122708612972697529087397791674104079368061752225091523444731272911226300903215854677039123002281556684756094138612745869766434079023631058799924195923745253112544111630317683834864223991817984155681900582438673251494614592377330016442503815942001728830772623753202906699550500974809969083334043345939176539577949523168727696184291836590941851195142327522214068717879150392082690379224067165759135892455381288314952982916093686644167515503569428591517878879905794492794755294567772566533007057667584574897895249532613606724561058229924946503479814524018494905973340175598291460940727292345593156120722561591429449213993046504583244519990409715325358418609760549575947224600636715866551933929081619847145278763658621133365521251792481783113233826900793789420297810784249454879578157080225793580951295628337902028954851660765266234696625987125091909375604650635350955841452744845556503906539787756556690488078091105673879242873937808901142134119061445747171326989329642463974968568809157088265177451851483962972006687797554261026290695480300337306047832413165289932930894115127747284548142738208252040312537537987704753906020662116053208633595565361486795754856274552127586763422821127369058749255074047050320029907958027204005725822814972710302552649947451103197440900046516434914810850668214566275243299308010083648456095185446329578241263764309176818274267116248931815600352118832385162774359457835986828848047752889521723695681029609140635340773008898896286779767562629997413900987281590577027965445628233058007012128482648022149544974714557245760498865823947595932790975991301091470253240300718567665703778107788066787752363410427686391321835748933557949487317449352920953864739632027159477257365181865171815243642996123360478806985060683413518745063194388883357597842066292108620220751974787411020253467699625694069728850767846947980683472012742432360482371772013468401370839321987026745992244337480399862466429754659250628355709659983116913155670416890686957182566497244214180011945149041165866284182612589524188787707594288425257676236366255749289152544478170047438659562949272499231842460319476283521254149927819298956622266651764092672906103117997526751350241063872281997311334610997703332865738057351369677950484563006369206271874698721067311458313499193365728696061581468201929645686450117773047668683879973843078091125580110699574605922804777978662229209144066567899318801847023118214591310074404881019483203894716090692984482224600540874010665796880020580864935672869116982850614417720539986607355647490300884415590975153913845299238809809081903587630315819788071972887946101492214631740731681682644529694893309334854471321065551469909296718082923720068686452964915409196558881625686866352421147186235947339286104477986717911958479694406819205611879078306044879126823430025746940992743967479239627158610214648493354517575256508998369869433500042277842576183014682416769887185402159743303682372940478073032040207201657274689498522343010896729315995201990890516792414458351737543698734310573077738745396505762404923982985175855125011139424679052193308066307305318239100568364470916452192108573680556518892966398183338707202365788918869430918375809679398563927426994451114962477014146686432939507484638646778882841021818049913253519219367015366484242757381087992450456889345005802727571033180981508280873651659000093539351054712957082383394679361949256228445294481343651688618480145796987886842816989337459318339293267887289990084592124517853797748104725116234410398581152986703233839320959908834240997949469279131843622768927006661541449099167677107520499848344549621812590252399956062335975418977573706140551523496387634564298576505141732286044400926934163794233034815426374769862248661360311867188693789921385791830621787730002513057366388569989836937885042473167044061619693669900462879098141194469811184193638859408938549855950848775057068668833472676145777559492105450304496837002182039831921522699582901621106173550979712672785119829003270140872130634128889774251637114835803074776136083072416672009663106197634331972412679751106099359205377134846374824670142318807262601450053853399081938640347540674273665122385868923024205016686809150953055995357965904981991241256319628665780308838033194849936958070176902130888161861241450969895316455268960795956811984138523119339522384222898976235614907897482001651954884352943367406655270987507904492079928645353759488289032592210949890064581131452332451751340878169269919653986290961976708064291801213628240645760704100306897019642844200292759544503856598129105581727073505198801316383314281447777930303089079768901486348896913740608604986416529938071652486543099580415406119756128851845497552824524464912467663870740049441930356319281379487010303307978712786660010829273789597938199425049649821268039144768941600583537156092826510543337311491938807934579508420911605653832132365069451890931351645691146650155081437154366758068417506245475501849429284248968587241213136433848662184934645827577451419033339456037603897726924862860151880535708712240705585198291674038366545118151754441966694868570676583725941469129094223687836012843457946950645063645968645271415405465389435841472883085904616801320839782927099358518691738613121123644095077136960306069249036026483607613493675729196974358391212465554440306372836985979122244739746777464439804428701330922658946619377631278817627103361312311881677834797037423987689391295368566491596625623526592139446619358117785166320407730926668863136017178012659416911205268541809106871377527036065564074108548204336452967051396932032718011929007839148394930501931826483300523466984162509742352091318399379536250946053720847652593812445011880928844310076556530503155517981843599438089264415749927274564092593262811377295640645176732393823986373714132989450883077241309004834479286627471291156544143081887676428418502744922683230584065298525903545912165493657312639494568562860982240491997677837326510532846242435883244605080083349292855806899163162974534018631150948900922209563096325750458880877506442955631231337328023261521742716682132133109434601737263133676137285186343426354526549997635705073007029696666725940112710535604041607745195093302248000608779237893423062723956068572720491612850591649548618787345336058235760215431409277872731154440353000834391192551176297254515364615375471584957912595049946059396323159091905311337320811436958689522889326201723617402108098191545811491533889868385024345944629140606793416004672849673249142360670551461786497076190820330497021327020515403536653328619339159092455780420218722620175244803533753984285431668001277935262924851482878285223410104576547731766866701819428735083454007953962026480857808435305048857193286415121485643850449016809307022177203004068880340585113088221394007916095401784812481083363731618617946811921467027108740068696604583553101861996253816795841444239797150395469883272915547953654953600008288717506295293992942946006265743544982460213444452680772139705663431221123256591496628544876055364060115608059928761949882768033784748352726180433457603195964799065566502482559116036231266387842710500932400783827063386233442904729152799444151667664129068146115296493238228285364756567702961488065476510019762473175662872657501111058603574197969552470275918186644968114223700130612881963122980339346110894523552238278690822001267588910366318522237423831117462863994565027212591668636646346366789301652267828578902282996509984791312542669898708393783360939955935622738174022024396194069976313328252891449882245116587994207784273880122712071109577443711980926556345116638584483332670830564198399387556433222685221146432234039231050508222532813717020484708582476380704245774682733612578974696061777267164653006896479799432995494402616421803106978892380198132531194809495228372517676107138113798879252934967958211080242742654280776351250825111233233554323667665318237684370944628045256825306735653122763701556384327810088516524210129826681295751239535180233985247474551619304356725603208242770898759885281952019258734857063609069615959362096740648033487831903042555410002381245260239154706441692038580144496212760572360081841396386434594178855464130903231731731398875270814660636126086079766584629476819434671902038937913073851480301489300652859392210475728217260520240137779258699503079128111681061001118285038837253750178197435945723775015284586370492122208634008447163412262717723593174294403842540686094380473146653212065817618773937487069790646317054904367944536825632406962268847414446313776268634838824289249938989902102211048248067634971443135326409450346863145238672438080414409079394423209362231945534681211628062881094215308001936098369941466414779674561008025850144606745239873779476638436482924236732982928102024199750598108125616231033288165351982594982971896009929835939974272545757988239859464002057647489519497570110255703336712770720484057555921837389811559620218371072369232809618466480199793256248453405049091537951391017116745125795977478867226982753337515994421359283723632299039591614397724063636937080515246599833310771121013363226220518427526290966693266676197674547184801799358688202900670486706957054520946949571627379184500513781086025960723095654382224910756225072072146843672956920744987847621482201889025779758690005289960602629142273459538483387973925171247260119653432408608393473171532614780874222220068665839065418045851600090303157069266630469778803508254411186622971236193327556048803149691824926187545306307955099270765974663727369348296678964788337302250660925490308584607195347540240142793865754568705556594850440918729963409280972216519020052146647058399599769181877191453952342554294637951244881910306938964061980804982006438144298079007858886338798164170791678254595221875298289035663206803767057285526266824809317072108106923855319965619994744092439287895020328045681527837294566459001801379878497912709073957054350972030803631572925665711624325105832064333162227396630897380650066014027915502003681684707770255431240001433155606125478343463124754633187012131112848436704379578190498017096390097567738197740155939195307476540525847098474522370685431626402186040038062068439643146560454918527748378284340390370128017561971328171996659137444891600627713935172468860719936659732870170560759749236147357311459293519225512421458815976975926403229849823292797235452661195783195909207705155397071035290139996318806591619875984459246424364169264708681301768695071176660946350889748641510988951713592129981688888323931427022053969307419086039303506731599096644347472287725790330124475947312841058580039628735606348382939822675819607582147503680671147480786387177838712954180301586178028761344497867770567696339872809055976970483258297747952296384577408580088559363055314646765444230266916116834131256594213566032904987138744751571863222080093501723409683312248264948278677955125804769568556079940596586643316719783745778344837750617828897160059231637883294224454484439769551307396144321297635685694496457427427912998927952255748062424024360710505742222834999847017559759845439935874371311257820247497931032827949898524641116751681081326908567495308906207320839918415128456999584301788842911764681683883442093472296205731876883736555329961858447420893992266993975427804864753373657793982412647851633345619503977146798280397020952820383492356974371290037570793065413918071158301458654626679445534298327229912190444076875410525646594295959584957282157914480879669762450916925368435158173339924033930416945399376004405632914542342597654962151466199321254618558339032210952565227803194333134151095654674956946864011048525618605163752828068848631090388787145357394801217468446361423629279885607931136731601899296709673083472843634884173410516265084314881338287688861029351617258931019305531572203137602734670092337388887899657918125467620400474080542011202326598212579257037625330374275993406568019556751723226063587181833746945198228149233136103437966815917168781719413802312557386205532886945840402881239082904326884249253645070699967572303580089651534017071376178721919644875556178652702168680467476666232598216899473304355804182096820957669628386015973146412845942570520511815791816248428281106225507407329535835606743367157482624495501425467237545029973709640354009106803972944942296544101099924220315308601937128252038634912610276761401216303080602758581829852093832623704439203820739393190587324489839683336694067600375070340697375619640712902154674770776196428646351272660761463524560934795951994922284877296650016292282321619348750248161053387864405141722788476073897807617912544221883689647230549282325022529168618869957008159026731381300652922217775930412223961666798979701733546074683425531588096392793499218632619153418126304161451376653483658616764540450467091549250087684105947282493242245206533833169590964358251831952273885208938833484124222221585505484673956024574977257012636694218797025674091128549780078924740085261959277316392924408629817737103946698009057243307495162592043608987984840871137916947198344191384998639139572182487085396069654880075878462411541058822778449532626212365365807713061432509022985276726928324659393251606458782928033079488162311040358538897464734951653002080621017149826876576118486950503095012080746113065598643621922151405611926791822083495793923777403699900000226018922673240267798311945005718904306009915226792928647643777291481483366001050595726736159188576764134216360792554597690529975773842889036436320960940302507646007744217510642596983930944041544041425620426237767978856629811210505760156156080925024753203298659552953153372665996429038042956323575176027495793089778748674578231118449891010324765768509358991232629892955103785779302954866815911674378590852504866724060905118250076905829915753955120459381123635608569594746707336647648596597311287736419270035126396793413642872883535904287819537824681031732237597802330007741729135837110422940513425148463434054252567639220786676558463413803826304728503351307327593969897804812473111518443109634115112473609367533975815186156133677723843799348185046958219971545338908083208107044139360468757161556688245125128465323480006023186370262634174233422163404251193986465534315967136749495741006424623593858690210489314436904972694786859486346741310716406824805953701136041260066657144388848589006555336502284130153028732873582800345088209013879134447365986134171511462418191582473489625749552102849336274083138099746312369175906819188649321773222889919997914418274004654797822991224477655619740104230802561537302730478596669977791332286557169928111455050321411196704888042957727993600497610241788455437008492597202418559110108809753517351316638901453693399586551153984137176113901116386221355224060926987745404995286364633545045328142161904398292429359773479992963508280026849659677695320881239101337918779670427136601068648065307086709581863014945681777902799913325203024238979057656196128902513810095897033101478476073597284810420791204546410907420827942968630182917753600668497389320855429545677304055481003520382416434638721881324952871134265453011582276253740382534474015773883649039292827487330073071170884974401952666076899532781290589303503227902286395619090963906580068718427027662363235347090020399590503467120844760154361075434166364278992647669397498109072613751823270738772975146373415706956084100566285650506412334679024894390122116954549783770287498738795318177092809980868482209769763784726547651401961469302294836868525187902093886575551426229234047658230020693690355039526781205723980260979765700043890136296021941304353500207936615454747253016898539475149288825491014267431844135789320031780921399455019479497239756085926995713642629901431286554525378908169964818929455896756356659404123769618760354701263411951710621048306201678184383634640903108184750500966927773338653617575038135813524155082904357560118118015749551812622523675169935048777957224448384529055031871828435104423147975129605833281571018263913995638046821813865367530759086608546494754099036157844757681569720840980585806489106151314415192424367909610050619028311881363217662588449567207231112873167727166937923490034301650521319475564971141133495825074854876679729023508943183326233840428455243231735751920870870620372006887945109262391386678230378068385091747267177341251821217690221707208638019957667940601246591634183412810411246961534497395114682019198149273781559669664070512124142926928313916785850601352231936767103499341688211702116212922999632621566003253699933696471036317567285701133245019037116006494422587987909864337167450474303809537744486755102122031261297453433269211318203458872538957616716055630038830180123451982704574361227196292578927225484055889260726750335136078035271806772568806311964704672625331855268139129794531335367456873831562399247670419140302831393433802103548888516094134573542741204475080319574551313072174623146329613661253250594838688798557194955127280117173093898841867771677134909942446278150513052432677819478357319719284241838658050452364413799635272258650099342098590279937951841888343394828980502180263568069862093481412120467320280312495670569990729872739307381140065151242186374296676855622823125507875438453154155200013291707901683705922603362430012908248133105961027666229195523684735513565222449375737985879168896065858079135471036518282436304882237986950284936051612552000854193042211882435978814656950749027152893048805510582703880222448554480701123166735655554199968537939128355602550794236652500698289031358197246629721566520067130115857034780630158728000485745554032866143142444539856713763596027871653531284830797442653744642026297212329070274484159683222468676227787357299408286981699724791360900751577951796296790636167369183440469529849613286518093342568464846132546771295760586234453308333709920560756962938170379665327836900296491202461089474295266550250193239932205161649237633448551235218844737080614682508795286768012859384144971088685476384363222429905651804103981494508782269007732347309206411213434889971214375415302737939850888071345390519249169796420340946557656572442512032715576335351062249590687465750513555548688479630877205225932859327325929950037089840302351154688277903786134290415226721559875096315004140490082488304907826573991689344822694158540798137776112725720557915529806437511755517307751663754820487341962290658224007048045030620286958360643248251806434022630888517280945760796338687337885947115719201601338825796338156416372070449569919335699159175612842870839676464019431431528720526907258580894928313204568305896788455766314669514545443182031352306797069937995777277896510670259515683248234159367505886879049476869726876714482138219104001664882979876945229663891588515823116237026575676012929920582404114722788795790663710353455143660879710358797233822185682598562628618261087568544827367499448134706666201518558344380940663412841377066255787774069326286753341436452847945052862682770704419500461588965777965509308448923116416432411804285376749090240418608301046414479501817054652242939287099854647871287368400594866769384882553190043346217429561923120560683378267975180389237369795707656549829513517452405657161633430753543324910823809111576302368860289423656217020031303419391738023371704776640735160070599492750116475550793718101236827346387422759520300042007232620660342428437462039151266650775096828016017281574513731591064978202605406102693190953736564416198834209123754367860422005825408689683807439669000560287504121831712139421281559049491900049314963359777575542534613620130331667746300180566295382005203082103350136126788535205506083677752623194261227874310439517628656685420259182693360197291651852186830864439575524263590669811122985582424514125773636482341449338080664903668828685844692651716254756361330935742778528962330714777414733727205842257471400133258093972621758917651166355032173825730093730342209955233395848647242743920919241053329559363129314702993773590003731781399644660596228365288755698238895679326498188277926178645269216893069193571709380923657222586896322058676484654979057803428814916934391971352293661663476438110514122753908733250530587307809450060809633189928824323918912895939593229110212025530016788237324111765446331903259108400905421296707718596922911277564404288389972493801807193638092163934563719099392328438951151689054939805275396794887472025067682636118074225473657764024371416997074916058297328081399910760972992965645253088750058981412559570179239036283931113097668951526409552870441092024056064750196356105137151827272076036874094239616937810280040774615038107070495171051380492859387994189206508862268494211932558490710610709800109135711629724175681201863418960712561417374119368245926897633778384610170767690705659231938365184892753972532283966752828773711280144948643466753739444925385320181022831086351611046210177619552071171853445418199888110286294809217410704505842419252103662292454104292065983747022158989868045715421517698251675756684777319283603625679148866530005943450759087576850838009416855139665945104189112466562966167869332031019176908472382490357602929142291527151404576806598317104657891998253982538120119894249557151333528746157926559277585776302991550466010469439023108492895412165302351681364476033850103421573022906647680343093333285810534546511089964181838427752252298728298659878763050190134508280378324578333018646923620247126072475812454445206141563926052218278820081310625085035325688628280469774550883786636203942219418372359960357851817308891189795927731023741395529737636613340751114475900199975170267694225189525815663480461030637322767430030662500158761041509663138063125081613478254196585951689120318415724864776650005976610946538775582076154619661895829063772364566098291074232667232809581559369833382859964136512886720110909763763682224758722978369976663713426591054002195292197612285357071138587063997822005361607399765944851339933852979614639934385418300220662011350605378974231924108668935998157628081147681184247876499169549771832955044502537350223037945521792628976135124572313495375095785087900409210130132701169603101632201225759877310432416185479253426343191634377149279974914791077941862131510467542233297165012356833466260389158976354302436366528835372876827411908216595594421429217167575790857986555176807489734126244993490093269365649767767055952044410808699743833232970126467974165324178427680037845224389737797285792222473507824359443454943914232841556101255679621566279376343311532141805477738333785573096282559903997234316865303860203777742819032315080516084043746295151610123095200257740950656486669721274105735162072095030224133674322276051937312431611718828037593254779919571587256207123607889648157664859412576131186206573539080895232861547494301562759015301044580948423683964030735013782404576470825343182568794525713840557781497353551324453678749405175376551993781645647424512669731199665967798692045001770545998735000299770933401081694192288910344260453377654200983604051869768339345644101078822195327269936691145632034113288203847717863679728974306773671010726946635884000997094670234662453591160473638307774743723692113370925489713292182469923524475551011424694561099841378071224551869767766734269150702097874050936031942182172416830460955558192155100928890484032620581622484153693580300247389563186650935435446769243773694874820509349962278565272387742871931975219259242172858390857615070881091979274056267631157974804782850907179070113785299621090532724218342809496442962538867092034614794009336350421600769861551097433596612731343083766625506395866838684421287770693380624642463165223559142287006991624789044732134614155331927165042703380081853917401133609477012148433919302528618367843428018740456144059001136796584029242172893053494356634169806409819727568855926221261674770108579952055742512775121537364935044228628305523824333135548714308270844168042238362579145151185499921552282740660330910978970904318046445082844698730265707284070071979142554311857688160976186255945315955228280217886017047172824535899933475461691661980493690574389025027654021716081650051180259565996196770255912388616837946932565632307973178129573957972403380744371817379252228753524824346779580463742244684743408921923858490754212189751460984071163371869587450225375459862694580162563493908850509137077742494743510977550884906422643926935298945217542058340691185795956073698072736659733966710782980374788698202515717529886909733363533677671510768918648290368346967454142034422880950765778908603370892924991234365625555584712243837295389242388764397444960686736122317490558170238937426592517981806275792347236065262631734775311763601659638932910061261648128857578005610529321034997472198546404658496248557375681632970420664658981111259322242829452194437272383388516561658049096657217403898647330054781672932277420857068685932066092831396104104443841277233680327383504626706057363164571310822795510184149473510880816250817914316656278345534596646287328066168960334581684259293795945621630279018633358335811738409193687270053884987629137703880309776949990170355527975441667951230167559897641865450632023576995242678860673611630296166534023721781448495356165315890628448152123153213248426328086528340226087565533384058187582622792261334438664997414928362949842069916736727046764447256813961310287105159812219317790796795907008297382738794997619770423826240224060667587392056153449329494275156977716661844032352777881632788763930804751333297475581588121748442363502050702119205693436792939675678013805260225727184325528464252345066936160714164640579239392815495983214541959688046905140205892462110991379914692317006293225541218986854822560825043011948541350093775618690545776486552539544657337648957670622683163891891164334615574788558628677553702480415803297082617554941785893920529325489733417663045663492046927085963494825679022566808987992107167762233317221265669263297912996888966821133525267165750386379460490860821679195997229857413912946698356991161890463437630753750304604186625409404841992522822091990383276503545746924804620927317405073339358741813054582230047865915741173973427025229954253370928600228897786837046731985776920892309655734128451430891750156649977242231530819466633794726083924622960797813910866356629802685276039764654924075293680448140857932989725027856626772421976239738766948457300768181910320396482689276819923454476956151069803105487055841457511483827600235237426610751576651208266749683413927630303623351687119837666219139424397139554968116773321167625527087639044244513501742530620659748371977896279717354807573708501049909969052321683162631409428453777121966382038376295366245740004311283338526420984177523750920316216705802261162793603845775656510066610612857324626175304583841569248691817482941161782879271845242232050821044269070849149082089020765194208230720298231538541297713406057725291555978028357961824686863139573312629066175244878422457493956962689977420622986472202671693902137189807528021589291200643700734673239523758191325149361927943089996944064054499100847932472079704412503157441538843088247353339403793431369935535302214662410779005973493331521333046890136158124418117608547282606088922884046168981836761081957402033799772245627652618095904346368035314430080588438928222705430648762455571839715427351449410273737319702107385268439399852364184802172469888314906951139230082047333631821411272583028238195782547283999596716652239386978795792893494459851770502501349338068105497361743770069392178205389956190869737291090731773604166205444728111146874368349990505396420303477138680362356507138597049326903802569786581885802884503638221074998622464540430092702692708417846501531544282629492010899059225091294194430924494772685213608822172270432609943027478807160216830688876690486989649573376921786350453300458354406487733353841895132336164794962624403996286497126861991669613222848399888103243953446199089000037378264468243229883421836715326070571790626791534179403748816699649809222416533703905090274603483679335791518967221074531218531580776855032609362360047183225831465498205200057151281911339305385778653514105266971738657366199798874903030918686399311059171945848784194826465356360465464149431242986453334497395202813983681867881605738212002529365801388244405088381411275927229240350942594698657618690684148367435627174236676456376437897622147470079575850556813624975406771860235150509119838156357368209281382991873622456240572380367471668324606473135336793105329014607776126410331473366560639825050800608706011744080222574496875630176734054568043547488909610141078794686147020529317784189724925716454844757298723881377656371719510261008895205282158107647743044895818731957791929136843116492069547764275049141353074905688888489828645487353924443386078023084194174144697441766690701570360474780091739406329855531811536730443605380958088185924410108852734271575382298077371450591711599805128711750350482255476436690742272059614376272778400592565266716975906199320680738288877184857159460738289755494040753203376893189382813067109445451032802622722823600611096232978783644658519527976236705101221599517677981553347087858467416129215838386250210356182380656102155972482094220553440020778310083858157646927443909582013440003327962874245884219400850342382625612938593538975550326955847648663212336126596469806293285960675429373765150148784974427201238305894903649317444827157410375124034436746976992753566515463240210975311888899834172462160142984584314335977532660264270687367954340426720079802387146229484549700796777982784823675140449283561419284650304096795106716371828500407397601821926633405733093506784385749824920940428771498987607914018602340111420918570873050457170738675699371500209845214724904045830169907753462922845310586387133848533112078973597541241533532215821660419143819967429679874424149381442288850219278733959228272076351078693376854701291398814105688978427192990980271496522861928431628098023968900493000482828617859418890295784714814751916788167769384809075119975494950948254709047271899666558460183807095457237203694616047076524727409253317564850290241886193871940384622650103955117340721842853064120729544900061349305380026093785236068632027461767634869383812833855634592548078332306846505100540749898305749972447471227957509462095868367009960725245847051902345445038898425701226921588649663087978793235436115525643053424685134625825300894871232453861683734693081229454933729615805961516591787326926850505208736368543927691086155577748780894188769528228601648446661665756252570723835305289177098430577925365972645632982075142846071913795300894905754027489304271363759093839200136291655859856216750811203197112224964081335562612066579340917945348456882998136187758993871655063133819114258212103004063013260859146920454821050303577128719490016963016157364945508917079238859375585358377882271195336624095104058854507894169725364226152993949330060911004183616141099467713341393929733837484704481977750563195492845654672941358033085043052036138658979281048948549394318175405458680226375612871261296600978588334437773336475320964789095674340727046164930444550221498556179772072791096216072055429884797863062810011431901773841266398068481599531796898188040002741432665464587593297065742642827364551042892877681488038499333968257736851105004914169173682992590158613755664499847013418182912224753357036855276310752347001914932872181387198712643181731281852980874242267501392873919180855315976842886108955206065524593216298893792449305247125851422607147667350492064817976167608615837976302018127238280564165473949486419568392781356585746688151347652840684404090741103231809151709880265755139306366728392837127617283885428821584465609550353462699877246937196808303899393174693175232011497249424532753237181486846780573730705244068557350704257507899986167741493835907401275001119666212534034960915976998480370283444371512534750303818130014865527118094201609630310695171967078357551610987261978959474082224591871725160554724475096211470207605300108838344815960143889997328262776093756561370013199747292491878578249725483209555621109655632317095111887327626280295456116563827047862268038988719493830827356213964348598126436068331351902046229472775108206838738179824206187362772677257298277331351595956839099372276794161596889815411621240869837104644449772076919011941872311212123478844526140039882887792070467754895418121525552131014258795596865270712026355685568896347141228872952313251204951274038742489814103298037541822621672402353851995312304960947529088865938105943171549085636536559113121274296535599965049343472656163862445471640711785515838006377910680748314121091966180104872349899582769395428397249636985395790310363409998784090276347352721807230960612279067065527494447827296325554133450587404755817432933785909216171283588466623651004957398278714010923396402459436583439019229813477698594012753501119086661155467260320737907067501478760052977414826298175553123055440290660001129526802954867529935412648331064956022868670486773070054022379618986590510085671134592486295211032472014770767064860338656834593575226779755785463190326988292315030078162353378848853345074779252013853131174935942574066797412459845254769178170290404883189016002911912477452698502868739765139369477956183367558042076505386652882681040442690951670859812992557550206911389314212933841300885110362645260109912800761045046178890047460207546846192001841760325388642838762342206251919890463259114325110887090157012297173032802246891928310704376699515156041241215796431661022754641469149835482338553385738088809224885043983497566951010627435248216224964992928179535682726457479042087664181578052489577492151105447126992776066447811895515273103434478201965414916815256632645061182454672540066770802098621863318105028790695084861946518010416748261311139949660243267318277181023067145389446797935194512743691726958330071133064297902252871806836208695314922889386249069449003119872121264587478721573105272299985057943485348752673937163809919898105572742203098488862156924136017981142411737158866112320384774508121126375266919255580809819903289314598673500804726827227412150890836625516309525057504027094006909652112809589882583900038398610302162695453288725525054943881345040163124855339111970413876312204963009088510240757422184877246842103356642459108541719016000761749648184539520398230548845998341147535215122580902186264339641436349809113328016758287554180636442645552008799654961333453477223871399092357551460293149230176801526969766048690115671668656663766384121268134052444931394638168535662429714012480062814788722976553585404067020476108056310348883476959098909127845036168488773989112274589234705416266022258969092471186115317435988374917200765277504425286199563683227326063548927335359629309666371112064884812220433324780377890155357021346605517712949955016325728843408687563123887379035843845113581220076856944862556839946951905340441516642626276795500599691728945841096621928721341013810702013351693029575449958695510217560659059080687922706947010888667781423949162370044862295544725759969842118987953783735042835378722923691540274905628576302113431699378816723200554707449264519054573088668074145846537711355342469026418164642049095922016502908020919869891075290217950698226956910689621465024472882498884862882979010793947733727158836597481379950832897619696078742493242878152463635547728970461316247373122249769208715322004600628909881871843740046866471762857866029799898474174673143040081096617350102780539131166220292350133976474696533742626737826450549872252825991763793499960570238335195359314533040354851091177367851183035153557315770519874108250346462628065427980316347186850831136102321917021652267049160693456037732159225444734864546220896533470734369560536192486633432605268149506700224959241295511169630183551364359350522818172093275331875061403868006396027049906458847719636895418473000388326181549853276369357428140435442826317007127817451224400069880478532846895978647896469267931573109563985090286702582611994254761216934990359692002346317905789182741481361665101960019662276898906880059368018108973944904953523404238191629013354444964075249986403192776114570173091115279762136532608272125015983029467154915379138893379343562634631711344306877684980423510256349863945308235073242712558593867773525083178672379621744243016921865351260923327442958340793255641742090078647156215346339861135532195515533275656516313449165532132309606005817071331796693767692521233090872785215000649668137172772706944163699687375917613456572201485625392128732305703199899672371558742997853498577331161420040151729620221468269976220231208122551918245051118576630124287964887414249139715872406712253927828024264586734444879355670867024663423596095521188149055430728607584657987137004947857534042593810317889586124257399717589755976109689960473685552250813038415608174503867817364890856474196707326085065595742249994877377724396864547964003344695446760165821378525220101425642729094140442354781520969463825756833210159965734194707650522159771627061605396476438524825555028618733923199427474132441113243841652290661661976744303430006455850265479981609443231301640614919805759676702122089690612827176498293784211626831835818959755821769196762259044740481624037706854293370554872844920352924499723056153043838067769252948998788257149856771773785997159119478355115138374876315433704969853677189649729814888920084677250535856236245789255001130161758694401955025439609303407239653808761888491921331352023248885687695991728272467592978416312280193264176736486687544933938562045470594779190182705965360358383942278783548789399496914245087578402514030179245846134221201966842346832594471086739594078916578825069072066896691334544944354757809352276102183008510974898881167512236108366175350120896216711960235046120172649283822049525664047436259821113160833746098342384195957892473775099999179711523036610316919353227351669806982669792867105403063673690752413990139867232628252801014129020621394947956416608624555170834616633573710033453887956188651903494554160513508838098897759068029229287139378750834056914402601094101045785162837908394134379109446594044066928530128421051965101290382815867109900706709582798896746691265112820192943798383134990052941311432818740253644653580110986622254465822720623294472055302586451219643062191076459908206772862774103630997109335405747137839100351716179970691399698480540987408675490295054416932204046145876710159597523390108262985987636545184715691258430058129468253534007375868355713676588661874318012983319326832257806752932429170925587769186475557696401313859876202508675777044452248219905152367337732495332024993374124577013910219902387415063668916715770520258419670813540842956894546728209963503458220558586967665539381487058298083389163259820467992034726576456173637760332466045348536593645211747644745434102067205115614007871573632953403936330304871758478608759462102366473280360155560184809660130813433076547164054904284662009318260787306957407674746874512927099678455033037144982711889495723912209861675329320415802180088705658858796528269289889416362165244244879525967513186678612540923440085239505885061250868014718230271173406065040215026954890653687305066499975625135546049755555737977822753317021553118679419472172725675373120109162781272279249227874224652174685007409999350761404429576961150211101443805711999563116925015020539368705930940675419794538797920757264716457998654448340296244681590405215651863923924532791693412056422904923435218279300007046592972561832320135128929862431015497906124862125444299430641611278044187110195297779950194943713728654730286209827327703678208006317975459149459886867313345998785296369956193410399381868656659907644686916948000169718026389018676906198550482851042806379309046910979183903536049505980606240234099521785007992471969671674639911182606763750653955727052422813092270568194358578966935736097559384267296578249885206331424897500184943751458248435806687182971891682270360296422194129776338265450968283819427414521910430168299642977843896349237530391183050576454101746390921805118594063173729401839485290615118079315853737155270661251490051437624110231769717771479086647688308649564026020403813196809923628543331102973704710976787685612510131381180530166538314412498896173833759538393246419402213014050013071393137898935565640578813542801596123023424811487697369035025896426823892257356176507528497290085320538128635396620192233608907515715673465191945002233967911580523641213538028138091446085310105246460416066947239744771936363207367963428778726977283646751185349141097381213881354548257560622213361848390237650506188277269100470700574819912268525750986564876937111036888301273370176215691259245948946271731635732531255810053079675778181727857929189988222440902080279697925031647288930846698165401160787169841594155654160020843694669034391903320744791088158144467766028828544948950649576065753533444829382056555950613808952759363398552482511784601656997998055445288323073316088590523108245518996812276563911966417894012321138269352140021510634974687472099152019944126186591453323843835955350381418446973272414603658663276314809255799200306782364035559296978314204326183710687374654043810035219440182574178387203893751842076835930717534553737155083715243517033595525726449802810246701357285639931321654370174023321464058025596817823811173172905864363009931144171426312807515925924030752451559609923365199275303552309555398836261282551061566055444545397031792515960428493871195825169885019674951682470414607036505298562439056015287530990257761770479471519272661315528010115033069239098826324674538188093026285252367226685840826476433314710492357926554822437040080722230147781358563099302066007069157777282478492381108825282516710459323978762431229670378928261214888823397472322995513716268757670879369430455266187270446739812235227903125570218891695284985084772066004405100172642314862763991319848574062320814641729219242613738704336810810582820431278645984852741566888417012906890719783517948701565033123141671261768651555940917324715431812179385871468205837560843115995400275541801950439872485651929840257933016144236431916465131968082530830042836570537994280002348247448186523574071908317041613255104805218212300969052254635890567063029185592799823350267239399974862249871245324612384745915912069330530589233004022812767209755541726969841680096475033428984583475350563323062804753334908375587282042474918946077069046568039144736947992238077227773272246447344667043654860461667704939477053666973480873302592340386070329130947261894256828859482641107040415502017625579137087363666880258206299685346559394761669647806677202486664739563109786916624980489474412227397055472233562563314006635199832747917836412687818549491868433911697786654689594516448191755306274999977029475605231953817562121063577187473895189854402193092597554490488886278164410899243890951130965499737143332640495895266673525820404366179955319916719213783599343730531340411641118132311687289387723515313884475620871810291749620219163912389521614428592398208989230600791531532586136129583955333369649406719506741227278584369040301877429572714751521942867848292022755857230607551374440878075059987067545371309270106888720967501838951203183169426919352965039544776750926960001808830425278595941591026867366790845018022461872449587351890435364274118927928713631793145908835006765799183961237466821146808047379187828842475655262215008316323848899622697068223353344870375805243675997560608877564237427733447776951992935349115649178305654027202047767081856429853643568688248289181902623866762857129976075939983402238960506947248265770956316920848290412429107021570338576642002107092080649925574074763752707292836606532175617853014639701374160419178183731870356566464707325416685377160885766337312671402441943294508663763067164004785499966343055659026676486358601202601729241177591531276206929482470343741797282746478384321599554054269865885528731649115117153492876685036711477016353869509810496456207020810404692807190684540797986521917487636881721839885119317389931969617790778399405584177866693148260687835648593011059841253791868913644296850458807532312286113831297616226664873434110818221225737594078789493628342653647491648164036598870510476775628139022425906542275432771183507394992669210923226625609993537199366187202529802771265820555199022047331298749266341399913744667772259214740762520544203438327266077431783852796731370068738335141513167783174764559751237483531936608880801763758273981403889719965410161675220422945019427616991070118749578207699585108748227530950220496179618653326231146931335950195364161608731832966577712584064638882660303943174822178090511089568422939147827119729535403762837338092023156558150412974997089105064007170662324089043540754483509973874247553867603000303460564235463425540301333205920864679235023152804646826483165996566887042166043652673335278855655368244449003436222708626068402379765622958013783375998043575924997994187664201923578116092304621333493215862015701224650623169556306191747916718392849906442861472997670650024092713165667300233127906680750497131265593499001694624193975645183065405688708858470175766426424268138325479785463642157719107164318101732881711974545983360966144679666669126536966809511788331863851974943486616758527481536011410904561817363414870317550301634198465471884462393793165737178081824066586399091111642380462001008427880139618168579415749504533665829571092907940524090782722252596989235635150508944002931815154078803281876642195388266125146539780825275473298253898035464945954647026079455506853256191603905618605922743380661194762115199321774710039609862377072950303082335449041252834129243584497538226305462746571703581809604702937150867483145077720554152283264448366077234998707099601268836115747025215039917401035078828971930964162481087824635139630372892919779593007468866418744894448433184823913984626643859066067222360004765524163666217159800544915413980922057077635082222276006900799155550224827249990887750187700436300446886416173266037189525427816683388443283846576923072992728500786037935740186106961986110686898652079794462732741863376545945832842346275234515159463628561561467545871056606005390159180633165500846837650006942059057914626044180311682552325896258928415551284846623662281631062710592051987237061949034768022154999036599257833730552815649622007985894193066776108265605414895910378095474458809041149662489756992481645080190663475969391459479556426486561021092287501131296725535471000717977533692739431031099675353543604029679366036601388845594233139992812585428299277022546440503343270877254495195053952366075883551289144414944637031910427853810201728996674314939975076281171828593158765661266362694812109953058588522370869729610653353586602133497278773175119723575430610195470402274775690360028669618356632579128718379220522319401944738958213207389279869133556834890696553551493544438589612629956892529991219014329970851114670527448026689977125347502450303065605449444728816192115511294769343595452555704039954243947139449879292132085495189715571161444835671875604486886984911700063353924749217672441302971248973988350944359978161343143330350778380868257306686489371079105046774284724445399603592927086381642585772030036231763504778044124366084604604544612072100105543236514873752985479551006491163941135134195509170904710764313345070317994507554930656317124645694099915472267992592237276604128227691745434803821902285969266333546879789259716962190029967445322065232861000664026345769467692778373811411050813123327273815342956000350829076734686174746883338075992973977698148262606624916251029053109575236422986209821001742532599158570788863300640562910721041971640171596082091656056287318996991492258449645725474240720780477510083935490352543765453853099807030177522253808028859544626929499338900887173655149108878129691571379235110447802507380012595828779151120944102955302568168823744012681880654026520993204583159184444399323264492995323208777530206121115037847528035832773737849122523051714653470199756812323247659297646363085932886494534927600520139588188705795908659291996564611029392884338656736530549984006377081194548113497695056614561878750976764157314130813294782969160349744153151608710334350394462770041240792948593395022719368466835902829052214551902108020666671514464553238864205985546806611332138401200897381876621144277142801855077688696086411386323263951039574748296304046094177239670166204161648743507146207664275257773595086792613812611416493326428040046955899686127186116521809988334956178316894497939082987086228480593363438935339447696111598540843221460786786650054163945128950544109052157163586409831899724446532458563149848668384611837846832007734203466990565220123088548031797896979882407232913800160403341213805959589630254599735522991449440307871060905616666464730671138515114036498208807960492538564518878651404253042045793485599249567780934967481187377227985689895784857103891623161796222855085764866641951331097235437271763677696974117816224986643154350318021958287646235857693619476222721729333169370577165719840343435894655944595303388710113587962001726227895923261112558563451773195251230213315194227476150442445549652017648204555750753815061546443076196324401101847037649223579289647939439117610232045813753275761624872887267128447418011317990976185775878362155454760485785097355539845319427005628349150092368480684523281772291627585080126103676634068737810722846899649706181522123949868396114929297400881513475468317382053484940069019787043433567327308024367537196610524047806401361165101149294248893810208410551869994449918455714024465113013287237730395583592268662767309178824307984988478497913653118978726164265392630271310432413684568026381830703915022342032467508266513084996605110946384636946245152166287400318336718784637223887034666604671747144726465280809116522852317014512440388964138123440680488359596293962519475430720419576580639016213640812462296288284961786980141958245271573361245292086307458769483013723801481454182379654471158074389518439139804329214932689560505953732761228999584054041635460540997214078395679883623414163571353291179966516755870751413956668283611486200155813662492373023787563714335000422555092241257466583700149162916159807474150803821027583260865178423336685851162098419880942771259880611096914567521087422520701645643463271619728497829863070403774087047980007123170592833368162504463421226358617555881107157931966340021899363240915389429294879378804867087203579448818646365665397874612093786264793489872892921255535295731994759898347814871057505918731574587681295653192908185248201199479828908396131632034428729374550073424056023395640198113457794963957467727241758694224486916657556142344882771782654309021690046417160305669308241742068203533258073438168355477631667261623720913923016187980940553542901595478102072131338241744492515754649126103954763845669896097044467301912946135914584762511191373073847957862592566515857710421107199304399863129652292459080876825077926147478527041422653637402062672370161693159784067840781590399397351800238737417348709098808644201680691214488393187809525160005778652359042648952770018642142985497520599588684053595955597896189115158859224194096117694646257179825629600284617140268665118143297403633403208099496628287551271986498107506568912436169536431177655246218934266128721880031671259632423338032544957066399662818589755282607466100948202694034873698784635809676976365551932403561080897543097625502587560469468879340438986684059151261120839416008743956892436497236802202459552482582379164653440459994659362259741122590273480209003055458725822470231100307470345246978278832498917209669840383301909759599437423487183495051033976807734915369160248841048498990830373704172747792859903185352572197555883072909064708016359850909335178086354891972502020237775161487952944219990924962186886289492440580580337691043735878090184552179249086378430908420130904696691875994256349874689765303383824035207893691974660330081765955702862937149234846587795802745418449094147332666028908514232525578678204957436538735361225736670417964033953431972331597103115648181149680787755956650296462493055206296909609440307720620949080866977717389278522272187243969754315403175628308350265173914362340525422351934699437174516543462452485903730298540569732899137179336358339402536778082715456740992411971068862587706765813445183079045825256919779460411397353404982446075517876365437476901587017354210385626079835434020095710764166997058298451732497034517227104996863161634241161437454414111770630416684444995919727784335314525218528197632870335543263833958654599731069929995750060132394919399863324036359257493369740031773832770354090678688279537824405754252444193858655714395565969156840623725279347257019640338260509868362842732879482890992249625788132899935845738123982967897754825496356821946373034796454332203888897046377251795449159975228761558365120649635447039792378854416766091607028964974991710037986372390618684937614005302849286975839819306756803207709983061052022170658785891690332916926279928947627725755728971758752455419867903913961224216033849001606746220571554548880061175964081012641762480181109814173115309041352882435353277086806237084497263871057578368490603061975948459333505169502457801441800197042875214350961222679935055383880655701538370419613522464639479998931621693265628267027070037790270650579867256464644053832065656415111971323393480213135114728931995264907411730416587730488905147224188881388934727138851510579276607331400602195572046771180445425223508656800327384745911956161048448842651115100847796958367077209232273990491556527092647348865227390810346906030104026784227984308530455956331706009807415251610041757524491219088807627787123718532990297242593515187423258611162424433784991136187286734801398890832867371812825227126142360371182828797864351785249625330099863063714772108868534312951043946768732721033055647920300870550991220693896758387447203451504945997710837319368706899968262968279985666869837190737032589711190661405410121798359379216417520680475880868648377736433352391244495319179622478575730810435113411022688308328340522472846087875162379970827541727774402464161373961411663371042265414513440415117720436172312631361617882489318186620983676764293822317665080980811091220831133945062649562099010921576766795387657730137881148773811173588020772646182217473325888329586569539839762387285250747841393927783515716501222161762303219629337325960278139706265032317516555716381752762747555687880155658130112408102860270568357516108664987000106610438879177210531179113618062005548729945097778197913262512175633187590145607287303511366582774472668620210728755848432954876051569589623195023444745400328758230765348893680401028772500092409799189356066847775050246602499851366500931369435413552178776422035892953339146425085131529083771585477661126219186642644977641105051344074583779623231105206982012314317295082796575923718609990177153180738406235798803310475673600738204716265570068775255957242252848164205474872944456484506821848980426100087830515389148951669968747526621797270270238718373456320676284563952559471383526266348622006476909391840803159226529951842340229202578422961600741568607367025701835179967471216814226963650963818443753318942220626275257636065674573606002236617155529279379788769891494596942417621219819145292528271585032163541355046773158205275344979452695289925941665812164174296834959120752685557261878004186618618236272310039497141666769640713446092636958242973037162855933263477031238975325407524508639495604456996664823024928479838772994443307083931806928983339754707551102139802942246570584026627869983463913629373713911850093965321973232004770551860707510480981432327629695111151751040082742315252297919241227113262867338436670727066228782563304168824023160540817677854703754240489477639303828261243707211850664170363431656905185762085013091822762033668161708391405021318879814592589640079426459106102396534082597338908241009155614020925441507791958496654622492362481606468650648215669782574257256095736473172719604717637055672328483191894746835389906508616354584598500720097848399874828152157212528789569786456590732551553761721770106973232266315737162339600677027040181427551855475755059300373410575865010917484211136279082016233843732752919388577924019096605076205528663740114996521545701772793757726272862082542263753767294884137391632818388386986125221656229316393154971069785603786923009257725875307404065055738383571196747696139049880698186040527145696482039030732381452355012419892067653385108792671585324582535306244325738160842042844960429867376719878817569515272661178162913017013459439954018358901271853411928600149480737709936944106541965265476195355811603687897781835248941660592442248254120168163755850900442897136130726498914330280051811736731999456235240373596363408456681165296928738699992894242408593069407863996973343224422602584176792833231260871018068176446481268806199253412682067892237572708108694889892309452357976102143480347847579381054818000845491972999198914998957470845897971732901547150622459724551854104083001822859962285019276502587322933460532761388525419047741594458786795119206263154021654846901266450545204026598115932356983138417995520149751655142316254999918138422751479886698954213940634830679584078620397831761146100333079436911374297395371253317589280071946070933267891933319890058837763437589536167001531714463042518636280350951964797646136685687016396284824518322609532556023966956739151382256897494835551866957651500202683474416486772267387248521046344883045063271235955820481570268474846468804192685620768554048092724439542446813395843585925624250170773993164710431040737837703836916685562690052240800124943055852261320381644527207818670003405876549814698012193325453671944859790678031136368070571760310286594924817076074377460298104768056496904206462452539064357157906995013069483986369658108100160097944556522298835927621108262232132988980283592568491027123205325734838388264841235453854711592498396307533924446904890678100340155910933922815440760845417544139899945856163131247053213382262427350637639758911196251244318466393677958494694903880367505742369364720807871723400379207861035621317939356472291724831757616384494876062780724642442077527530847142427773557620534247225208903070780620960563329994615823676673608916337142199248769305144794967262878753096567311135522957223130177047174969822452247105475711085147667253889928221090665001970257572101711310082448116053447036836632969504657667410731086475355287762272469688673836635291250186435195351890800858335923715503288118320518278957991963604194436658935032036433225489402810986139744614159968577979767962765172278234324526323100348984537300956498258840837612835510192002069740222349236623521628768438413644856567389830899431170946178515600333180574337311052300310818188694555158022900941830081409919827183680714463368000968311096363231253137598870992995401408986285586567810172002959404076914301120986167470477166804444493047306698379850345781318268009816052619384356829056651721049502482226186094885009552503060203662846045815778071337577559668993319032761507111533995972108875237673388335615533647405815509319606784320965500930766594767142542197508321707944299302155007498476427961471286315941177455279743277958874386412519173656995564475700495892485732707015706335909628332280727940110509298970097664857128864141259989443476528579644345990263649751181687767229930551037342073726070347999252832995600417280411710363836022269108686792283534664950733338377666163266870981112570761078124730797946499287678313806560540553293918727898476038035933110359039531535333331672070919787885024537568897309808334647922991148678290468871685196086853658656205438348038592727601401325724046385030080854354289230490995594416435911308703751386275578313815767421067069207457458287985369672543905913769309235425118171366126114489956826843105666102307923699067754618704002665996002717532603969979953401008995736812286400578664612208585980634353293828549211142417447193193974009674795722943946671023230272913721988912908213929727948521081922712481651609776056748102974195842204460740301594896895587853031763941709403931748745337569008513810764700983929617332776317023225845298031634151565563702726985497235488199561557949505845066323440777210738909072505896513374844490548531420579778161620233184591014040997363436087324660331544157518727260395282235802426594450682981184787888398982711283330225636189178448090520998644987218841622272378757519325549996346746879458278717720967803104395531536538738192263316290549840325210277839348953377309200837656740589405159892807947835181685244437380133817359351124166704293826486964541041788856934796589917766778572392669416609368205364620263393856717571772748309421599542632230916559145394728224522903633400459371521417660985794796112581072043401406878091041592743149899655013082803146169919812399991580350506131253356684516133865816491075716143217361265679988177678423491268798137007748300168412992110844949879993657574817750891457266940211373267914146508502424142668839948174010800980638687266137625716477646279745828851186297233357523647292629741741327034917523791562815817617264985428381990311334622383328895291479082313449091906522123931722010693357977637649575446673545011128631719966244721124095870025123546784174570851681450002796795897839458840741416753956419295211591073836239729404227247566750050397407980025289642835958311068393362968258939630361619698929499226294055203143348069902378385201655855855004287331901796782934170252149967777385351179184394899243763572785345755171276265884045076653627239374202217448507485364710371979048490723680096680040602505352729390605661557055649843789827181294750851450373771166034690545573560371901030134216599333107541403238477721842038095734572101868467163440234531167022824268811528335378822819288694745301169041446743910161084248428631624452516567147053046635180241502464296035553485672141835931416183794580276045353009527373562253240260413373263214741137022230786541058730908448899278632503396869225519613100747555151184360141040199439544694230113014471936504546610375957739617895732044948077333144014242087974623380351137224538294014286741163040214067983056525935881288889395018519054819707000604065247265435259480638128769889699500830027839796971985198760954473725875002564022842586773768754175383984428350102975649813912485964055105942925272897357434861690190775446549450152371569659287757602599497143355401079996022393162497724104921385694904528265710568380672678444231767910012797932984425076383739941170783425950782284438996778624124525432825652470345958394742510098102363180692362002139752630596601216707394032210162057901776746547083407835202131384422038902255439616609208550326662766263777408845678119008176351305799972623266669135532423394763566184938471147224775368842647192598188267489937210819068733646742387015291315377177866045952412262360597535335802142341851846348599299750103436057091643500280952220847473173019476138034991926056195283737207795291331256095882978282842607428358357419089131325251326870860883151290617867156103749474423421044143483441215340293086088623221994832419162042411403650822698544782334374469056411043974023389485396666891689587625078624949241307163842051566950056886803073030235381571675847146834924125824669109836045443839025642387436931290833900582515794101016457169913858465141298230478830398787473273941362202998941438452196317510474130300118547816473151593949556607283311039774241170536786531478686825001245563979207802593300053456182834602168337781147742538297271531206833207484514246161903456242163527636611206162425646903372942153388361408438492022886452906676982999450202398456149859391923077719374734188326070371899538257465298662265117282693787513614488609605916855707631861754952834897730126419642880066612437857047308699507118771872164445667100832754961957431922399364221982471739121200609469799564963305176144791081509049797598230065694788987452879672720080966034598906356995685634143592078435532860448624002460334294619305614182775794401206927920028043185175536894654035444834881949096911839446968780997995969518688416894538139004348526173215877506458633465774475748014131003047716306622198618171436978053465000219988623864184945024834035133788630494186980870536241600207838242996288744549132985057869770631130758216016265681120650327523097665761603505575177733953139287527415235487549274046236569770132617947078925829723908602247770515379399533676290090213089771851319552807591162863232680460776130865247569202633810205434649620246931868067780708294339509128829422015361458975081239317782255530250868278060251118485823541942534369355437412275975203455598577997604530075622319209693035799246582818076347688523640279039799836939448585902845405260530140012886493778385867578829894118342575140713457341978205517814882722591400826287517678346666296418339692665371910376995528636883059826225551772837453402387289779701030098680940587111864268903736845501002415558486119760832422676669784489036586871740706183738627156694570429582436977223039118424763519204520223758020263360232942858096371064692213567816264218980649278146667741716896540305202923850009788170895577191869612746858416799725448058914732694510184913556694481931572665436216409647609735890880255576908175983646440680756691884191160988348417544889194766813114938066717928838052613725172543966997883165156697905782211924406765255794002613936931510895217526846169512594785798732338146772063857450622325953966455332277135130703074851073205848551676510659960337209508718302448302639950339837464890551478605003822133661148918049547223244787293014005046687421054625862143989263143372941538787443703232793538787943404723010860934427284218536614893728661142480170132235096169628697551376362423792990513434580090958444848761933001721755383752094178918832980130421398384375295588003865421361204729242209080919851421872178529622888543331285433461123261955095765005857246723834721973578324749722559738180264531013864409309263117239638130974632068343331930099164729134183822138406407757935912555142372942400165997918595649309555948585452903952203964066100675498785446562438870503271217423269330743928478759443156383341639259962483576904183816149449926348816075782713068747482995834100632377202067970734130829318127233347672649447136036993466089513968512551872097071528179140950005416466593921641079643554369485344674331104561772308263840285121039557913178733217691610635263240002483929062659547952586797828597526639856998051661753583668353918921623210905809836246908857017939589001773773883963614782710383324735994379368716091562592040156334376085091497525602580031332240623501545876243006608724095017741507801089987400711661433052824640305410887775780558436943716666115696075099829309060488149411170768789108705997496378648699423390344863407776496160432211646947411236940566061027615849131604383964612006120536907505566861695685317938327044893539253620447888417095671272563564645977928361917536253966827557053111308546837536511991540348729034349521502690345567569592196822108404556211212619446837275067109200051882028526168378505127367169847419114850663083962455610684080898859844481556791711518143562092832173809509814787657657071217991528293354307171348552721935515222737841523430604010696696927962371411267891329323208840302883191733100713741225708208516996546097481448218430539341314561510251468079777733200516175372465853202170323663906675649790807199150968001282192345845668149988096100312853076041288954996321554991353804454775691637815955511793919175589379024437503421024277805941122272292829904301549390012802781341652427514304805105844630811933809230703802471797115579019137299103431930908028561028666677321545418393550437754383308485416878147351514932624690047962276157336965900077575935757111747201589039104271121386716009324841100525941318633767297181246566010846324763835084590615584734038875074938338919101334383771448593446546336669639103995188252719380933436739407860138116323496543496769703101457811434282823777317918993851115250971872892483318054238728627494764026515447344443057806720758329820104444377269716970499726545392141041262343554086446844070400087484091745217269640052542157867147676624925092445640638923838263473894686613388771199840468989726896924657024030735406388401206741110030245790265199446085968271720713552096548917168831350773482879522462063304042570792619740748980753008970370057903522387324524382939590833535111102039046242602301570635742803983423068659408490352606760515825092190403715394404007168760767893760792835702851066169679121894108295180926047806591933488099043399181291508229747946627058060398543911609064650055467484936540871389585108250289289253741707692822729680169800987192515932237191911011458891410883217422990534256720833909542699334016083711326936610093741856363722397467706883478598587469911934261976316385775633490131706966352479029271031161519376698104677681505494483662562417847165424293861319143776072212736625021294597790859634907725695263823880296159750369450056497230517598119125787837255977498360580021489134309661696768089198642180531586648967464385981066324613496324727558309620861137238875891425929527889412004271064492014346522928240210377210989114794833241579242804118509131690866603185728193360780827226932874904859244902808996516662020941540941538150849683201398142762704604665130160014630102100273164404614112821571945061803548097430029460138531598970886462729704541147613578337496357655004874273231706527524982074873160734805329851831684757924899142942842921992571791867934147285742409832233473681040585444846233303011213267520298192077521448839777640169072779445552515031405988238893641522338779039409487214813006104936530651739881375322498391171853921886579148501769882321880154728045187452867071112381020783539860664088042677875082415126994909944463280066410668908520325970908403327479608133695825667072429000663435584915524108311249129070715992555248100581984254829990726470405375823498145137612439247840888929811568400968478597823017381035312380202058242177311510288508288686044763922203191251433402790086209361503897790072666802361635753127960662439097974689120622670474127679432872543725658636547264068864516980234123917778970275198465147883368527129554610823246511382908955214750648511324935106060382939545651475215568103150465418572384686640745570379174812222298365011936235734383075333179578470892801776842970954322771999826353409159348759282069442977317359082035071810108708368204897790262450671461118814458421605204671526090473164371704721123210862561461258365788149996337843177304747868780613285618732179827238350836141760915784115519561089192729736733172681692709013698502418149345319174539175328309819378508678714334221710469744193163794899426798639675085151426893831722626709770254607495943207918147643595429900919303395651851936336270346526688394662599911351824392387709615414716480185651221465301031059701105481048741862831402214520537461807406319753310068951610600251436755544532034294450780416847930386775045103111403221302393880539663238829501003948105761872191777218311896271955493406642156609491655149982460067938153999753845714814314002822672280146032705443629135436486729233957945523514556492528531588218246170883213182459082236410310980884516855237210291265908932895794308031674184628413759272499842616937485352389074779501796716161687732292112710542138693541755231592905365908172938140409332199087688019429912851887611515817082328069353128458827296105558421930070472153643829349711034504761513140140743536166016200734050082282735208059936634117294503057475955274634734566379221258175313177069922940779447597836080211467494184013136146391601928104414904457117219135790159991107277063683370365445962591283033563399056698794146658539035769680948210779154082214852903192028700673702272808766582542615096807929986289048953730414885207735726247886206658676915358497827408577031053667029681411743150094995544817016283061216946372099268486021879803794208974409284173030076850721042661490882171895079026896394785791099610934186710215159473662815328993209395534607355933907507931928779395379947883304585015491712826041041333513217363031675657713508995050043139196367820988300931143575871032562715409495477811546380985202404631169204395567946864633164142842365516900406010882678449744944523083285188960890199392803167421998466389565103005613484164670822413415138839464870615753238809676713208148911997563914897760296126078347841463975886266468909680388543539407899209456322329475225444192750980243744900906438599033098856370591604314423541159214934850555359271092815304606767708945686497039620441666623339256441511528020396831852913130126397452055038328320472208587418238429181923825752806567852654108724140175211611491640437582166993654451189247926417934922477381943154725432236416710532951856723306993882737673608843774331729028129301453011652059262339421903311826222862160124417142533692079949324133191285742521019069200503173812413886289788474127758207920531841249521950888515504893608753391217173786435723912181946532272663595291211856019795634512691897780130455316653073574327636349071132659686950143091264631735602047846897976241868330534611362952858537620034677798473426052005006578831229892452712772340221173553424141296910344859288918280658569564948176512060963922989220434960788678132053801465929976269864561016967650868087885858289894321657454483954137039335649716359462718183979899558277311861974276556421875665840929638837345697143024688572490762612642293338093200456743357301048985555410115332036840769471033533956898636790924593947208749464898720339761408016311611576415254080671144015116387240538134906466532596380793790149012257853562624708552798772029183258132163166706599051613890147321262301414420718576676501317254692033734573517035177028034368191820942694262540372617908818976788947261312255595403134367878358638772906886985872023817393161246112489479552667270867226785442034997974282141244677381686957722988562986105549063417497278861201348439154142841209831642072764516848247754910372336997908872323858768169878630425597331334086829770673367114327086864376676061499257090189174287465438926729835326436949961355728990072294882104916594834874154675484744451751851700776046186506979301878950147233359601981083914809741123098127763866419631841241156802600042851793459105395081405085942389556135743343742870008793886926809924087991087635470575108359580532440815079347157848103216417998625089591508286716156210136594621794488024759422282344224183247131696087632727381056492200235687619403387802092908730763582676949582462847343073582164457984767604550142057984012281622172348143722760707580302902475561947909462828536020995835019981408907632547050352766741469350250730928933494521193257958394570481241477743617514070470096075945344029701096087733838344759247046814087360454472770501946226415902703000305054252207318060510893275184168808660137337432788322298195623177780990873409049380578322475590177758612679212696899347918859335351505509856934947258520150211050201513757056170501306017064019417772075391830335822254347516121348527544903825745711735047100371412161029809106689378216522305020953503975007540157549544856069524180938536174295349762183007918718896483660134327793983827594224805242780842169941475475236892580805292781152911749993051671106516569985026175540751645041054595115226394810546434231445076515801329800804103733724133607240351849709394403015298680434366906294131117767724123328854067944754266626157601318095624029341847193400847109812918799566066895659740546223381423674852069700495370575346746340133438439951324396200183932465358548832924743544876313445435487622627353358982081033216184438514817318581592410553019379126985842204030726236375193789560929284780505721866511065078945462849911365276515302895320999653470576490144191790048676571956180469004712519908664000626603257935691283333216987398217767766507815554730831563911844439530545296034992811087015089687783072704818306545852124875491238285011807095984595504599838348815920811175380798799946197408696614642165553530477580836075323712750599907923908332742447209977663933365933612546293884791323814276747150096690919192090314126608280426304737760599204826095844914481123599863562492335152284754208109803417943470559133283745163414808135103285863289910626295348830300913516799911779284984326993685827751447803446600076819788353711964605194378019375485689328100612460633515359083979758653632748077502996453393434381205968413455255374102247944106151934804229558086837304181379320252597206545961001650893571836818628344346184438812380587168575543838125413460946602174912878877485903994864980331701044947072100707550821527395933148373222857032293904286233461044578558369791240268716079698956966009446261029557738148428001885094533330681767915716362320992405972771631312114034440192829052698345018332956952552422710133682952447557910411654016872069555959429585816747898078790531793394469396843526875669017330378327698490855622591281363507636375107125750576666075416517257793707132060713750538154944452230949535736563084785817743009930030457106145247318773817492774090884746432747375536103916827482970497820417431807661914750201809686350238219432576762240276464512973375185546527567611404628247123541795134632751048041147537197379654553245084134421100942060288435564375371647479812930404868083618354640397765664979136658909657072876892862305697773827277222147167647593305161446647741896470945394053917102754208399945567494485209689779500192059574567752868814210148784643200644721747519387326828781534317099867671192411922714158042206930166277003339729226412490515107267456711440591360724832555391703018722567554038127661643174988729053998263528947946367371525866229728713828455525480370273059097976229752306030295495665164717608184669164006524684802937220234981597293407703624503373947359333930973354716230841609795652938542080542438680153893796255233302106719213763330118583712103136468912024150406848183180487598739348424226517531523937752433012600358534535002202587697818940265939283986450452591725259356953574436764774375660349931240767888697899861502533732593710676476021569483684356034430412730719031011693395330151798542516133773110322308724567576419527103457818755997314137796862686309985148531875206255760890176330342273979297800612495450459003969211592996841030699748276668228550393537528105697508658898477241744213491827630517455289604724215990628716378191796199956644020431614473183433303170644009550565561970955028789685593881099311366720086644257079233550059399909132389633769721047185840520671838736894882801348967149322647348275563471216409057292666576547704826896702084186085151282276684189754457003085616330783217210574540818445578344786400607117148169491834707107428180083121699435054272227482425471489414553837777677325417630415919881158974238777726510174386772431829737383436457707712989765982238954895769624205636912592410150653446364503679526429911300160308163833637878278687620798934274505517925897927258489596367131202874123852480640806124609681670547193574058579431275871430769799779766666530052162310931764985757275069361428692419660522998306446358464255003799191895972037579302718819582580441428130963693779275885003482150418301448439531241615540165957088666269710935570664815451965866049836831545767716074657342813572323665292857778015846580117791952059446876891458160755258587572513980748526101382643498484200723199037723449860645872435060022520897269246909954025395180087361762673319474239785008421984624405890910981082140003332344436454650011683965299369831319558617192413382442104354799186008826842901378458397449133751883591186941464004576995274984929528198601503248402657089662912937421153694461873344334235888334648015955719386523440122901708995047457670625068481319283153050657658131816921007983018128358301443279523534557700551690677414957809242865815345255896923257648435641349539731805977471204912389630772067943758146719454314155005764071796684340813924393224915139718072666222811108833447885250486575366444315528577544002149691142735270322634738496766175151989882200155374996887299413338280961864126172330269328629053720698322029127833085400857827313207149035708290873815039108572768225733974727799654157167110098490843838936526389605599290291521900275736564786111294253655566806789419335779473877790535234457158232019227083489023596202244227407758375831141976648962814554983569839356289718240337104916820019237525711133128322959312438743940133293479053743303079807377330773962462286907485145741054321493783373092776260732301664506480201475469936598625207160228230183549750533116077182689387184021439369204445545442697646943999948871596416802616164060358773755971887228187890497940909642349752585805722767270825731509625571282730914419941520542009596645185692102297214729543964674327877542179264575152256468455951320199279027534000826983286501641554524468584027755986216908024964928151476065267987300048500776907418422332328056068129293394480541999273386453314592759108918126964418862944087158118299077245423246791562745601782829092248885251693200533620676140493321609271859118707688884037197374473091687801171064446347720530318001519438206788817615226102973920422159362610650476274978188102173790374729958570739334195496035613974517071279252888068728685085106114542565929961254819029408392228258270561616473050367269424384740088021760507974349777668973290234584146639919282109834846737843398458115757992034415445666606276395992138476282732775372672659535534508154300179221621944426309575108523301871546505627226607559725569550133838553336285359655174140559939170430648670478152408994412668322896298748366030048859674545890133656455897709447704131635477513460603259273231243441251572037855523507989406127283671216611385332159021298829970118977686188562927819679307727276920864995735382535567360958712565520995829434911674496602165327948383757538445302417658718718270763873455126711873979348977804567798252523540866878760786906440811304197558909606574471854362180844421768935085980993774208774057241465044055621154627442099431451954879779932750469953921022089865763223941855594167431886729471274344640263569490190488030877772539555894678473701187555046975570673486774046554471189449577317697673873768133819935934597620907484121980538011747611173634558805356461561488950020099738266846915511812893947283306040763083189722956057515308753760927398533493555270095142251745930924990932655714013891880594485551620080430534194048715920696141084425253892427097490212705251284455305584060829280024972162152497361646372610725312983678270599658162917599757780859831371700300250507021784039428631608562666505105103295928656646500392776750188984231140774298733007511302812035383450869416415178749305936774939279013583592345228726364271904001075567920869414159186650205243254275626933194752112907350684464632061767431985743649142063986869239884287499887541140309786582257314483633243797807356003482408920264039286519633949212213875787955891676016988577424123469978117471742698237474872428946857659003086277180631952004987923926353069377775094864098582510172338280297978594193639124628107668973268934768983991629961592576664087251705136609837144963960458668495799721370328487671402694804979464554456048307986016995410972514150186907596922207206319423182733965270225974169090273125554250363945824371056370814488493289505224733359150279514349149401732459865403252644497927876263107072403816303577421308660896718874505637082140494199148945182111013128118596805156270793152128409120276761489425653120309103304763769030492020590346152281273471838930555701354750423972935496603604028854933867955358823242916268709145612292021897984332773386160418688431083331545363188566198909366325042759494315162540502486662074963492294022988356879246315714728389078694933288127430228543375728218923832487965127734606703975815201863418936119031766449211168416782512250915790581798131340593546691862765346893025170439219385177155083023700183208113624728775317339522691278224432220893922653163539021520313022513733971925741175666509286214559697696309269579974573853154432424415585647300079557930305760973876042071650723361243458134571508706840229512222979475182086734201092957137875254077561851572042090296263981436218703645070732725484208074605764632155193560953214347685904935046618906746589704569166162605814959396542914150180318764840327329169077334766182310131245819433913623454569922820745788840841055305890622555456785943792973150688965501889310856769158388229037653761196408479466123531871944648459552187166019493119656215730902176374970648190386319356887635269886011412937538852976017094413232016075636019556985764546635396067194433490950303577650847414115924582539201348457627644297133228012855239015759668125994801873588470861758767463542267055230106353859646278823999457482956007904909672805378562250110816653613246304101176746851941089173610334622542929696231559202661653143598758062609874032357450592850802575871324111677704492020152550955022913679701341362247157716733662549218865570210284058139382171062980920363699853074605151161451776608632898980072248614528328225022913517588089293121460814693550242538458156606390437066566881862387005587809466505865271554384780751282403542788626082423432281180833121673438354917638899238468629513558388064060853692763546495413633692040132755707056629630674277964007257314341437241451661845533723051020147101679807089565477709865261646568590002073562411513639623754876630336537517718770536236220581882739255806140746174014050889212157946236910812645336584771182438254264482485613531278820531132587285612672645856382348242722010593936173579805796752091955417619118402221273308715792937406768988238666632019385183087710400440650258826254123959122373575125369573152566573491039105339451794626398339932465290473447449944691263692651503712190975473832729804842996050325286801710964401587942236615793199772660251175644395002829266422622519937934432156810424662431310452309362094243395616276780967542261528106979977749420782974857539486483005101901415259653276176182794688380558732678514598197082431439601474972275699435453000938340725772490677978158253742727812339759790698460909745336407784353380410795169520376777354264855197780061087268618287284975641110965725495014286599258865951718915648316427635293448828118142566806714022319679515000276572956060272796646074044374263754540918337567457876829375672019945655536956821895851998857522691834474577828157094727271819878741505845348411871892220330334661941993272882418707058743783167653744311343237584527360411870535951797143465516132358306463198011990765189553086896870821168420488168600399585833513073589262794365309571465774366745546982872776331281007347860634582303364170267090543557806033675583155416304636603239241707361912103056168720798525182988603400157212460328039270179903526929734152394069670756261031074608574781287721774984062238550287508536963513961151101013479898401052056816621070587858168376314924305958875882710328136628841831256753653915202603989504198847398486040941464267620143739077435283999552771945151872258559563269960205249163884909012232597441963904579508918440647503220847456065202649924441159972003694666291996094677273549703866045931819005887186492533210349987242942465204513663278723121245409991938011840082339351778128497649535398077155457848653460045831217719590881444944031536254328356678891863945370122895211621717803144760340497623912632401446180974880298249859875601675315546619412147804490596386564622762403355969944752278570516508695483968148280846286611473214653099181038031039140815660763718022199584663471680506578457415281389054504177850161376055402921650467735770998570528052465426566411404175673700709721979428337859924740100843474643918074433613494041075250751673421139862533139070023399656488926719928257616936843906273708142560599203519518839552033991556272662412346931744697563923563127927289077022225358388357053087239199864181635237028522270727177799518935348646881431932757307743126692788485593631273018130258024397461213595656685417477409687404484459905859984850883900711429193119868874681840130714385779592066517843391588851530950325340053584508860143686936824246258887210216188014086714959552740473191328965880175984533272428300881881400823370637805613450428469752382541418300583447102655689372863684130500663224171474914537146325398423530712350935271332722426782911515388068508897565562368977220419867184660071053337443957874204692334166872190486146796238195206727725967371526076888532664312647211705814800741159520258192908099823455241865245380342240695693046019545873634044592454871656791087117271730161419734279320021011632931141906374294557562857980271328585279361155787309149217696582552504875552670156759627565376722609321420676915786252527814240194049309685726328187143240380201693366173427513176110307032696515387821036036817658393039265018259316501421280092950226848929123353450071708558195764283867754697884993207625638811386934527230264372972889968340934828991117052481288728368068972242709283616240345139119056686273740461505189095120433645586070193968471112913806427420077171140755844256209677635412586001589635853676963122029555402762536947821509379540668724832551240996023705604034417397869733803014234093005255402865516942052944722845331980356586038457548587759593387125614956058710507252594682826772681640536340856956849823949172511198223231351535661039773976380923005086561624966956364714957040333396476388661422323347345102960878469054300611260937097248870820537196120855627733532164025755095942395452092167122662429350828710648927128691957474499455036083616528057172453230065588962658865116834066504765556470734081137202786875188064570669591225521459195163164072074388768979954850093040060879810826960327707742883288442849570331621654675057933967066724052391102725811570772264901296265358350629588759739912975004001855075376675927651889974290552029537121577087136102861565890194626642779366893821526463088447035781484568066343211128923499754436204989828379341893367956823289674483132705553302029268313529749876597120989959432241210750553965703832999544827196652555718860524615355170180596781923117320682462560356776413500371117036487307061447065712256817985080654039475161856750113633926683262486089576304450685487611458004011263064208174390624155981624006121275724470168426683493243823961998656450008637233593720246305688049832756707021820371292503948192373788685948067176079640482505232950718209661293974027135890117896276424016045533498677721773166747796429337519832197445966847045718710117935488368284720762356795571133082271224247396482035773364150534381797147226543381674395076980306603856974841866521303841158698400252748298172010005272876834006228969059756761734157168909364689087248116556211229554258574110684602629704360819729564589489849199160077200268999780432281849163245291629922882354292779220254844272085875504548485532989248546232406518714620648781101127706081377322467982653302656755549394970803353536002648167865061745406085968692272805098370425366502792212921215563951077869892904716146572198675277634449952988724187792061333322780457308314069390312877014313517021528581919474663820066313055892472972477161295976618871781518017161386977774055306939683142743842808191533201747845630863663648396177047656849548264464713217319460204711662615358737063560933634689830920722809625828150829455173570081447662939151753826192256381850477247375356868823262553308411148762441837980968846346302794513309565183994877945728383683562250080512746880624852862509322490440521640142715034219304612711822359932908770511087433608631939511591756806528766706895220288601044504922417561825262853827546738538681252572224764711847468297154048421112886627833087696706201595053522798322811218057075360643378824599639929660468181243008581866494074765606827095418140495835569092016970629441638579653561267957409188120107666679766693986879543921743967787044318583802259024593633653232638468149100111639818795517935241806958770566827643717985026515316404691950001739638173112964208176178782407323546140497689336424839542966366006825927628962824548472775275829585056620921352342422547867081168173080220012256788654261359501328973643049860300099810867405369540785829636683023523278726132714797854413651536479667042723790725595427375489468822290445253804215975698754341502275871179270100511214921228616614241670779060253920989597490986623026598799424512769675928131103079040694918497723981276714736413617944820659444929686873444722029990424938683773652872326923746857025040193022565810779878694493291810821770375702485219332866217623743334627693572546064425908851326428425208572269689348698739079851208611861386079010668132580558601874966680451910685948716006869572885545908134447349987359312630960407142133425535880016841462587362912555075902226394040523375338405650084225051364360711777691156793988061366338692513009850285232990394885016326027088572389240444160162506634300881684213735462015427748503005084080627018834287356705383035517943130246971314444852284050236287517018498132690492306102859010886947869939024980160032256328699676418672445503900668861035539833492135436932253450694542828847595498938359898368533656538669580320075467651890980482951549470787170310789309962191647475522591567146130135460037093573540656870264409337942306822524362939842874460938441458940418741415761844880058275202491951723920642420379493514882083337656417323541146625500321310415468256965066291783381748504744158011680525805487471280544406675030051178666557059345018288651211672847338992962641436521084745249609307139395009234928890309368176808218566055117731182055072051545314207313613218668779918939437072364008832627928946440478345138318050308082514837500736245656651543617195285970086580761913512628571253115229874145020290601389810763475697828319594741253766450900649122580399089551820775301122405781259908372890958429606525796424359238057596014287077102423993672418783442322917479939798636657441178251983369511681932179737501759324908613106049469983095232438389386173110392726904660380356579170203620241185252496043434526154448934998629816889962231068946760237810861957783656861421180031144748592868963818975677984256962718766320679967872701733234766058283847093964781572707044761697122827270438266907917386377274615068070429384498389496504914807988811625346920562662860210283029913432443757655061598740768035860247946741290951010524868437348982834299457216700282426998558511673036071470628484622696549364175577859932206096607417405485412019419144667831625187206289965394866805167890888547016658089575698440567146395802709867144328857396561055828644015915917270502706003696074604185914250658000989727398910585819811513667508799195043677125159125229985264135828126877638587810097207790733089518746597043580317418562507901942467279924206916604314374105022167370767092555715756474638381339989367397425983368119526955785231150875549114582635053867956723649812206488866326869736677926270741902031955631242202691717379710145535097498931864828560009208317366014230137760270264979414430652279362822048453085822069656443151670585353540143508666161988724345781307355807895679118582804222545113930558087522128221775859237646917801503074737733396344020434633305303859839832455474805296006814674888629132174648305808995678094999068782598585778017609640202846630638397220519246157195565928453155120761977587555725619088820780117301483522720194941771352156945432808044633654374612598087301645014074221526771886410052183725997512408451021282762256298696952501295954570415396419002062736839744877100022044455298473918902556507866162466122654032879342231583689088743590877991073281064972418779014805485444630585510572725474901924644885430368048999528182055941874374783062925509686984734474084762769578915095343485419633848281555454973900740666616216599645599616477904460759759494544062154831959575166532563976292682272766271889590454060982786861484662009922889251088295469060051265424875112682159877925495957463006571328775697760216450081077667300319401595379596784503342034892796774516545768157570611822661089037971419986779058075624998027380347044905197874781042697114367998732482734526046986048576839907659680419808164866258071496081472496222323546758900131257500819383758643883174117858367630058524645712514269371702269533271889469469428815730051416362497296804353526539950760603111656568712573973417772351636515617049305199958609458546931246907469547308907279516033255202312466450354086469508773731425999224435842965119656320597054556057342541685215994374210743225218817375374481756516992125230935560528734119095299171231840972601911833230713298656528476874697899851157149037153715569723304151463009484884057119265784663199891295732677614940010241530137864265719290587385215839828371828203960747365304947149287660961335471943176860369608190964969917067898598475935642649207949861765240917604688351625447425879789109722837410240332373899231793177224873782814565020744220151749370498191097783713612678614485444358106864340587930325622173611588092368822746258079902544978629311952483049772851737586045744453649178447639176806103755886903830662616401313168785093378181630256077697581145671231418236793488818847923333855891956984383384973075595764011495746506967523079252575171464562759598644236877928688794044410833051689833668917641709907054749979372381503473859450254797899704679463730055624598019509500470551451153144217316193631630941598749962756069110965897424006273366477492119173026135054569811239539210664658241270786494326776471603935026318042640892073632127833029562239143604454229395031244685561450682964962520464196469665212078451805101755690855233490195665841650248132367398717945549437579537413190439365263831451477816045254031989951705500707137249381182213660784722940771570674129313269252862232105326239878836030300368503670127314569431407496467707328381489950251643048475296171505852980722991955691449139176428673755845559299373448703356054757366928590310077497094466002560927690482046028735432563050062289781674324788611174463819487642361031994293027726058701732194569455386727396653192684881368155330637811781392802891436705005068782905785491047009019346837775976447442804102132537844526871041486083209958561854148978850745607375411635340492547566242358965666558468620346176558354371551106739412962220167840468773191359319425960207434554556958306290985301223480372231777649823801215409750609313323386178629306926095161853132398536851203989934632106293414994819502423652182175431338364844414200817324030870797318256046854508280781482291187577406237147595562806415510788137124205906145155768882871865759627299587864262098601974433547818097709314822594251916881614175921036757631725476817460094478706837678151740224048966198116481079218454679606276374350979943156448015400497099451773580050505385653901951246464996165057586498310642711968894874216785703563329596279095699321747113960361338109455617960784828953310962618690956577526640871874380148466792258298754555228975793396305860743698182993739037025800838222509995076764458635060434247463691567876663833529028158233916459376584128071926043475362558782418413688230357134495169333101118394371875856234439104531966462431227129888557872092159170538199746254471080578446685865761370157654088690468021415331212415003327212650271231959549478620777512963958083929183002696933834409893460326461250179060630367682950144453824597214859965258613259497620151037775356238899160645803092405122923968077917352510028929398146773845307633409728947455467046283948386418953761919320441044533655297747483165678610148994401033475638975055517678086760586375130254331423375772290846182750666276551925567792652182330255429234049164098523579735223128718827107574761389219473175476314086043575159165440146405095418782155761050916784759480916217738661831394678916461023523946724804038881404450824834288082217032254731438038781897025334697620240582293109594050190854547780062773437883842168857538378328962701641028934331011658282372978497483446965554133939615854230364137100899610674462925469857064414216241343501548764910497435710698253454564619479741849032465720776007650876482422950326033074357844652731645042556213366874330229843229384099730020383318561613492568863086093838432224879794551790268501673603346668728950962830013589819608660999632120110009109407997294631168126606094645936769237461527476170056307800341975249601440156465806061992136072345282128876978898362544359076964874879556538943169147307841586423870009201001180009717697779035974829812193508058206047808157863638928520919305739269072229955348476467024194138364750156474930580568980062535067799214592896984873017940834602066534996941970521167537657512626814360487887127582452246724428389392541517672487302808905370262115759299241691584397509506126473651788638255417667959336784940090708304298561219881002756841017424600867047141303750808630282331442728717173014926897545380133990769958932868429797876997517016205369272995036254567616746660423424110596353898794762335900494138028626183042037628634177445219531534540936996379655688692112528082172444770663813911318001558405356836035914442658502403832004219820132777405503039658174416302658257829456910952395241571321785128635404135441147524536027732410177155303276451735576622666792132330727387985235682315437184051595751580937840875647259053432798355376409593649381411156648440855257728102032840611506440273806983099710025668149009834249182445542609360764245701815198921525892469857014329472938555563375079680073991856544429073190050766877688831552604261908477675358021315271555910875763278405260683248118774594928778996634787598599180085688956317965773614393144114564507608662160607779338287849335379715081468968786210107102011453413019853586052732637776205911564398527943583910293371779920794894643349220289971004473543626008439057534673912438174132600682178072052178102303718570197316347145266097013693201800199390921086015267601756524616199932872952666857397400721826448253970112870570488115288233554123264143232074328829261508436936299431934113145981639575666477722422073552424585297515062073981109445945090305113944569186278903633350840993351512148281804092465427919161518902164007099186326044027705436092044519663160830260243829230942525391049560099185742131510358545978648535576356751233081412519091095058104778646431118467222799912412657943299423887807935416333568225518948611019661391724944798099901625554753254634147221697528843755518893376674425749874038194611905891389889191512803812441994481588210811690526586221695356615901680889621196887083940094658772816072371435938493212644513169624871656927054089684534994325008434958520691908905920888652160049095079721703791940605670176686084550863355249884581153064005376745216378558932404288490535576257650444607019857704511126735439433022625499283612111942701786366194906047563043259351528946051981482335841743882574751290628311353505973561388465623922381108252266597582014313049895276941840579965766243438398746519940268023523049870816209947309847852272527607795210801821224907373363864138724465134082676223191498440861638304001288766064811358537098853855188703509757056154356535621387523050871620493929565351409205332432456950369527063499740162399670251492658135178442681508407413303405887082249368688878651177561259651710341448801256015891531163710436875532255818040886846431090406927989429825280188041832170857833460011685708235055983289319999874225606541977758481541593699838232997834577782111916442125348280006812069061408159479548143795815157056005980092544654486392407961559038149292963100863594923399008449088934828366090117481487325310161817699766701280365842754638552848622465047393486149595736533017800335820191223191483469719162669314545619412662734723054116756380640825814405595650602562341338336880375514560367364410015138201542180620686456303022688625019690502881676190333707068399393241447656212820252284205169360776177788346163741307988566617468683246488056992794785199005022400510842949371472654508552397166250926059757889818245926533720145222882857232802302742262408327927881553001703268537090292687990663493484039007859043199607697109542726174082196746328942208241740699892361558163285353985118696841136287722523695898570874055627050090447715892338791523775228040896743081143790544820224909923008962099113815658453809110919869813815834322030065524162156606128586850727100234413474910315899644618650736741282859708254465432772128465254402725124570784476359322538446099359744558497137893520420047290627654795114358922059357293980113796121905102675085108605264983758694273596726569524780536696892673723068500220404408632185268756686564852610529093578883933652361970414924662878037665030804935354708015126842693983184542103392080108508881598088461046424165946483979738516919400083599166776387680959859232298064383972994314166886349497894615388357700861400659919037167562143480787626779183936262344778219718248271860087040917640454183944555701228195990393443526263594409407905932877555267549458283354612620045348805974687684505021239004016834010583136183450610911007095292492453118749516807608720276955322352696068631509412933968003625844579337836966498033618400687288117506752051568690829466605737639403711538379781025434623306148084093325034230375418517421030882779884274629126363851307216041939091579700269754139310111182183696948982519460459626968095089883789301771992579914589721639807220091357303810623834718560258611808027833568517840236849241869994606441062858690697795151215222429023761483471616706769804644964545010845930032996601602300957545814686955134022290771142352242600325528821374222737078055061341980920300774272564083762806334894580821601375830323614323997656776244905228494674106759187874656103240470051324194801249001164419206223502323109112678274600919104188655107988691508624778424354737182663598620337440830148316357226629468412261123109477984403457701621109870808136987161712297501239880511972386853288346777023035801909413576555576095569404971152822268302912628637697875427872647289168294076454184656368380292808116569103755721627031859770736508741754809005758369060517336313710625062041031086226134278914171904426163119176619197585053571319063870478451394448547377610675910608264721312259351147545137919549323831564063016909531052795978744999695664997971991498346420990474279616835761704948088340459950681167508237232172354265542576858717637899741497315746396531016583141306837732434801294885833798896189862115502997026516597219517845716180652566166205273183748459461816364179676132935065439693057703702398159785051488735633756766307240973088223775570560723880758660931071723130833333451952676280750902460964531976504152036035796897036102748006500365101573026190167045718553818590561797868722874532907843961790134883393260877779018700531529241641449616384740530836547850921408621565038333535069398257991207003406252603831622800490751688834657087138329326647790849877349758041797848964252147721058768581066157063076365651020563280163420952750805772022498355242370761845886946286448131797319024522955625336565127944700334760156399973127802922324286499533813641906096677743801825172125438562407557997952651145999014642434240468109993876638157541104103752545623343967732848138624149336720424057852672274625402592392164689471372818478124712146957879684792517816623492034730327143090872692415973681075177315820809006238220317921206691966952982185976617618856511999142701374521768669953925423103833717538978678437890083041887813820835604474506955051197079220845470171631892954824912713605144331840306878434840034308833589436305217480792177221561774984093930827652125677474390854809667237662490721235882611343474671607098098022436685067479330193555773772171432141543597453930564418961978624305874252054836683256567593630594120315531873946974096523699810010310822844513611059750367104205818052271163727424766412604191258617561886991611405936191246058008000531792327247781857190818475644549221667805523668801240788464538405014988947047971777016274606699032344096681737695963493589538778003841810695897793748124836985650642469548419954186506651939524623216261200549323913818714274411898829676211022309385500602051458154613245110864408347324429765844181566622258838811939705947079888206509998928106579913250362162173897800124168584131228597889270070685708219772606528427176095629660142199521125468044799744302593453912851977925757136504500218751902272326130067427421497774291662448733557332021950713817950453696484716307702499358150687604746188314575661080449048733421388702694087237323953741704400135218323586174965824947205499273682453466767430691857685671734319879237924356979432638968703594791698720988082259907766577248968939011453432560874706179201141783340881465737975866163283159840217020763023198333550577823296780755686460783329395960164623161854475458692972860114064238301110992620253143389358650170228648616189969527647447093562409788272869907071755435103336476115185591429470806859653229614122285469266387382024708981216998713913022890552874145934782755646059652096957137864419524288565118116587183663537022804163945681344331671297145242125766713835793192118112667423930550804685661854762247637662738989152785101313022897913348556310050596934753100568330163727286522461408520256463005682044806570401319139100361720555764936630304169179177463166818548041419761062541232285730639634939976242333621683628080400640372726180332915742453792908847893315921545123667194829416763269959752599884471783585362462704630172809335316660877549277533909957980764057546954371781937405455770832167059550043964571633061334936893851712015938558301565080153326040728925752161154903804493332891829712002725618663611069371632852780842211360438102208255213306741907270694357086969708185469322054940357286780971637876769266297514648683544544047919873509166604114774651805151847098681614229326274381697032968704528242379909803733958033951960348550044654036284155332037907772939053276177383424154363353711808799392000550268361816336826360320661582487158045786096116179641826160053127422501685714522982344757170268877353385686948619834156520113541924805919141337918755417310662574734522258275263343618407156443736239447151270013025479109257156139815102184922376297851744391793926967161770228110514928422499582005169473189420868228438219487012332824641563893893555953243917972813468861681240146719830227867206447437350809306871761506607524625542171142077508302741336020266246115574442985147078812405899968307715790811902454056264311482304921077134511265743387214473587014656371012222019728650637425686195460251002855873082881348559210232981681362622821113960207909744099633218180437621628430532834172989713738975493051738338184947988450273698854556608837578746922360304502177309539588471442663294373322127836766707783376630651005601574076143046925587532077088092895025232804402552849654764097715946780036814348775301443416475659243393176929197295716325876773318881084794984196325569619514976442310207038742534216787306287673676254033533949761940974274696205262514175508261916925426880486154844655191914595270362247249055248228012157706830032523945698390507892379809807911359522410208063004206032458566835101907456817515772546053866442278345663327916355044790023367123434737302966548101745721940733358046411805059212461057987397797585602895692455111024425090806347517821957446721015421786763099650221426068871830533449302276793421473804566193282408746144568290661484423193921303165307838319666922539113000159246890175600034646424424243073283212711870667845525326427462949986168917874175152984233788061272255649551534512092745285858317165958865930318292106615511084628681342362644239817986456915673958077128187496425139807463619353457408744927100021055339496463771354800548801041612754656942470950761171368078206000470413200644941556706874777711851260528130119716918773190898638282140939384058410937676120458697725247906082477719935568672725310453582594339764055530298419761410873813936514546251213490106194551336441383247499389740664412350547316620223638157447471982337761080901022044408458324711052098581565532843581785817410789822652531501212352224741561123214483423349742517730937093262810223885952695177066996853558330499872958636739281661857463701067056430512721185281250770911194362526658556920355460000923831020011109316769943184007629598259826601999428737969042352839823522113128111786462956602696609211790804755354377922629515261282337936303521834117614421162004037966377744005062567232956551220674955113295279543242190574898784177168249323429980182900054620284978619086933517111438288977009057385286440366328575873278094245200203089863574426550507898393241854711606993540288709706980916497981827054082776649321331799038790294638065561685299917057027470120925231517337328000434353993672267213694924881444081801820017129729202669316975463599831105998935269149231160809202544963571172821633545505783729299061822644006904130572857131439306564153081751430641966447814720725678614212616689906314057091112583860095457632411948704464707970871952805390753820065531845759844099127421240498960880110640021582551573063744441995819001030612979116711695956819445909497885332920536700929892371646439074453987139224819258909379676857015768083258382513116795329790080671431003244787293980337976473629232466608075444164056825746515793994955527828553556316079664018421513471396284842691498202150393477073542188877219275409947043855857031613941242869350237769718759368267211059130160185633906604782225601253229110061766737259878944078760790923363313779481585859384565404822088796754601640581751388418337153695328072818328161221670008595708537701222510820167084087672973156462084619327443969585879319569527663181812326526481580826773037336635782859711857782340051741177857600577616801949577500915817257947933208695530757323696530980115366678393701047625543860191022426804517141889363522582909010315842395451390824391732063361258609906738833172328117738089485122187628231211125109239761134616877588221780832960471567847614327982399441786358060933276492697609240564047425129612847252350451755832039224865688145367437308069101005412902101215047279988623796699613702789020631644068388184352745568024142847814084401711164685597518061014362921537137081934045618868006041173955546566842149218649404016896081561040936450763651469586421728203628604855210434200435785450734065000317857232293861549466244898434195061206699398438449667056693279735248957116740817990584352488909920595357273506232543799479850406922428941677923010361637650008511495599768043527297990373710573704420985409901592427770201872892619669358932548324684508377746830046252038481386636993452102798840925932079285686107833092221547153319156141936895651809093167601229934758271144281540339851299573290710397144890609423053964901123620698589743051297372076637305839273480853884809345477811680037125842120251892922372027996556493223511889270320581377352662805296253951998004414103151301211920652365044286984554482331633733057070787162524303131534226097077866090669507813237418007991224837968465943593296947286183294461089956805324625799168444986008417188409142844890068787878145462293867099931301390170137191682374517353940334749550418918808622724473383786241260431467620562680831766470762142778410037532131360205571098536112529244212771135787015804568521871642319659281362776948270154638685743044337766733100177793812437064575972479208673516362381414325418434667844210775055433533190728901607738728484536964948749057427549191880259407008712875084902694229297381157529330761515064614753507883744933011497307252218484058233157254615878456078205139850198168584119903008300890705262890828766951246854877994338971463177522942018035499150217124205911379296897375795797582689449484371704428841177966342802987147012704036743995836613698417103840652033248803306118441953838727282944987422089322424593645370115795049876649636612689361822111487515446276657549291984612639084677105254854811566315226119321587485353746821060225283337701280924718378304493770463281727433880859120807503891495411274868563336209092821907205988435367699277391630656450675725601552928919479804967286146730056448138051499183690572331993443915071921650736540633433239756508354606763423823978301165676545869607172081412186125606129974884881992343889253521036145371858512873081542027155779247820862362244636581020549349559516246428486978351185573136886548661181771389342827888504484708487820335602419042258215611427109310962148767014539330946948418798202561991811164955240164144667030861663343325373026577138681467248439077274064737541385466174113770154656967442004876369586066254433486218983059559200068571459661935982153270387869964433185246427304722333795121494356489408642419686629502780877110381125923644817164737914230177490425792925997638164507966761096171509410909802177824920442281484005945944120393064686835947787144211036772463826961887434364746970263181611193352072193055851145314521424085506841672980920091687428396479708909097425218690230461833134064415886018437597719780488096725812405751008047391995047352576476077348149539398137817185871451992133062616754172926079008855444541679694745099077424723700601640463912021270387773168210167579494082548197694667927922536829510767477531647814310827231638480059643256900851560286004526908466409937119914163783372630276519054090465065192291035790266529742420876195227956974767888462261369966737562560248915813844650512072882987843647595861098275535404080911719991739111615619995980042053436359667154881877865934397256752514032286649090045304592294796073577470887046776262069984067505684586545799483554150037833885733061748075412188162557935276419455688606041835701853346910876802693147541792776390270133556717423095306414768791871614284337478476412774991024265714938963990177140046992787335432931275886165887502552035639419403586591911314160085026459629581381471327330103500484821116222397494869449909769792901017348295562406328375858313049790709424502861611877161506133231204435738651106067305905993118240171417852499738100430401910817861422997812205510168503466008864152854086681466932758035248449258908341673556836605875790638171743283675647712150267543242193402308098915721822808403804213891081502849300468374736692205622665172327434966894830503152498443980740076910543423159697564824790149124308822077780990651779940841688783750427818869331751397859598992098840496117224747171708052600879003634691775159303550998796564611422226474181165765417836328408543571558723690432442427719461624609844196058208505756274424043707573920372275943101861707348771002817780177310970239149106460575341871083484651087435048479181461051878324148356367227901806745011850295659653808317496340000362735592439730248624820221241729103123436407911491359054349686396329735579716358556617702255612045403144794198902722808973256981405498156399752927280546023562012941555827379883330193536697850553710690355115739503014387054276795574546979031818464705254560545490486348998507229521556444983184089129399613284349555204603715762936074331401877536760384688458764174142102869386923415722296567845337195765661121527193498474161694929800800813383077769783090198662152804854617125578600959343688383728004572020963141527218347675570271137153294180699158260196900835746555863553683309132479942279342108736150996474311440129137736065756704056379403441638479131524463718918424782749316895071446891523645849827755296650964490277261092121104684047362912139528202943631966837585578599680245043387311396643820344595708239706128285265470564584981396322076861989527854118064886698527961807203283119928408180094748376370213235380218344763254369888412833532248106192610157508108004166891454179975298516002382641693466537811931668230677240343978394152150440899414553872863269861673473798061864326021890025145252300542719471209404457226461145517743256314955846481653627735698933789495424255547202883890315732375376804204586347528146484936376531007907073440258244470590679610347761599211287592134509946770411999085474774558344300814694531240097186779417230562110593834731718458623783269349882381029791023285571914182462600267144477687466403125607118879548994837603172306845511979167430380581374643589915997790104368763950559224205530569034839947523867779138822578591375290347641623710160596470862629854247121701761746354699286791046939477174555650930515765375248893702547678428595976523390355962859040615293751278968326610947536547648356882828915920766468397078151406405978582165858656851130003153373176123155053227330751723324217015341817704715420404967299582345653872853878224786630296869590033246244973594777137269470459926866240449500902144974737510490956247380545232499111297894324101842258945653688626482526870153663823135148768291733977902731454136694650118914876047952924867299594487484579498263071043228458042760196809767504353405064303882030178128034422136858658442853957795259930800163836857503630173484621700496966115146154459460532208068381887789661225997356293003152860188662145791184120977567997319081340336202221769856735143637747514879047397866027716086936749225597566024402019068742342857549466986062670159299923505431286653462251169622177796698509915280743577667782652676975028779006832121417149418845658213204231973859792878481125237058397670429427217506082250773916787878101733128898492115362128304929745812917264670672060240873435305380989579190062364971676292514261375998093276575963910031069286000819102757502127836795348157802850323110365798642284723489210257031278279402656670646342687763222768505178654294057007963371477763747172633570931610044221025318214569096266736943401985035887340949322979202562498900149125304174912162044491314047370134422193823512949135346650452030204362132153783513028117515045787978633310338444892423182563718950183569413695568217201188159005384307599427283450447929865588885734385345689695197581388291407318146405538968194373470908606356411621167274658499132622515611008089950715513715493145576781825692140401850461624277987510060538030176738741311828788588085423155322431632139674837791895811122612682119860896159011230747320079320275425410520633594927115676072896770770575191447115523086715164540530189251944335488300190971161835875227706936280541119060301669511449422439706603051876074453612837976459082327479374269719211008358198377795653252656909888951810851598380297067322549093752981262298855806660178883853264268637416628536644323526333856675063781276710666747269800892169762398833236753297611137131871232473583823850179895944678139477668984511465710874306702955163768485975155598616342467535943730923224746255367465480837777353084292666024786995555935278093651180167048207387913103612806067634089242194847977342279204204079362329232108434039502248367762818086205727040182851470241146968545061320540277006500512632358866621300336662068432563003026790894596564664660841721077124417950759266325276605217354753796344577951274075331517262884909958123338583516110120121735896781247517327428429610763386205493860219407085856981228299390385389383815188726828644337717405911136787845767065486109848551179207790295293292018244343278850392016241006640211575826113079965535854806571309253337594872625666006688249851903381494919181417543358034385624772055489867608321784443126150197665410819898201337294267386158843669134073840413013404936760639237009895380739263916586313501509170635474973950508136693459252965663884644372303705808770993233418880963229330857031099928955710281007197687116195778237700257926377150301194925252616360095056996599535831092717774207644918696686642017722172897337611202594613041076076020802843141730294661367125354887792522243450879924136094104073352115135056815395873969613697266283562109897116550438570998704763820446247578240429309536605087555249006253403291761834919124531076814623497688405778786829987260540176170001586210540632066333018207269659205026301439534565269735820567978443333236040105315567668759299305995220260568039200627994117637135756841424415966501360307318043611669684937806921119723132231186586728307581784342050143236969674175488128490712014165455543735837496653235417878088734061847464789778966818282409134524047614778028587233521691719336338368500397798718021633266831371501695952077179699233383809181263622026697324140885767277719748869516632560111430808635667011688307866413786531888423034475047824118810727570145951346200865076605861704559538470441259870992485047102394420007810293570675821277300240415834621863781768752770211710071390776288452940544577739356626089257946329465191295336994430729373683007648758524689439144742676780575778595064716899377925963337524219880103770504368532161682653511201798344868316989100208814000383142158907685795376551726487653102048696909997187375696093986897917021740884802557889727185822843501055462311995228240517709226026901916368338925895560827203309431390893217418876693910708671800854203110540228318418940792010554153228355219479570252810105514065936317775497071183653105461808318815042388700871275524418271479434410326852000660742335972845632534680398954823572709594033181095071369502664318076445473281623199999961977410753740305194884902654990217170495113284485051308441737221727482639348359613511481067833270723614752947569361425907604239965402019083849532554581405934711145693751537587694683228404510415609108153082213015898256536520979183146811463784576884266135495522050039043408711789348883739713396224273610884355330659848795990826848896688506667229968820147036577330250045621548313998560210371905364163796904877855799764409239446913099855484770708616970008364969187064566485975853450131854816037838947729521704547750889592683970362186792849091188029418791044058911080696586206029665018279711422894525502949471104648354049207258115420733829140762013481114253487924551844756824138222147227375046173718960964627980482059805277601150478833945046524167654990549322821405443602865566839892618034731860517008025083802443070997605131564228782687454647159640650256093015144315434867840502385387772390617976063901444118034543765353822397614437958462034362413563985241540068767088277295243689981587018751811233987009419448570831653053210105933423455534617155417411085663972481200369333706569001400580441217047760618725500171773702881080658569314681357423712777483309387946389750483601615545921709445047815846942482266844811552210997462587134824263081899619169426814899619048225462393682762952851398218237151087214370194781336744917955829542019805342268842549673036941203719743234474146478940801750583921037238893229073864645304927250736955655892051100208925667096919266461848612477389487957775714337348644013910599128981604463664385754174573989035765154357594888719217063477867857976099842499973937294341116407508794878369103459420293509300607189956135391151634675078194958061779664925247793957552096915373353032174947120561581608379951288553281160248809757768931994991514747802625706171791543683830722055191988910919164521685738491789715859861613338163460214787220854687168120722375381962129762856438108733028501337473478884029638137443907892683417428667745509323681149350620468303343772586331767975571618152634008406747083933762508258684101785560953289147877628516110483871918820260558953861109977741108590491599006541115822363906481839591544519426913270232653836377098745110995852622084039257925993538048832610509019121887967614794077667024258415913711336066550173134430093002642638799937738423065507069339894098861563662686258487230360797606524835231882417087988929876301681756038954655851214644891661238107800477584583792989997292405805375289517831340616916427797762171800811888594868378813193914460831497387397634290465959600189006956699868715284517703734420329110324737447128585856374481208073739319266946610204388148652582608627964004944211904470031594261108047304843154512042530498771133984841549702746162029032497573014964924984131924353336450582616775560024903470748278915433484008984053325029618062972058129671869812262322781377218286902195539929005381072679776648520954438789899213326555238322696437426955334755880521309410153003005103281495762954241826512762564209504979823367785366222413823887994525261365810792178743866971810557271086355528415672948584576732494427111781491819447356125834585986472831564291373880539780720173950744937115653611809736860850786426763487259581708116347059869019134318267315336600842630774184335864360668511148415432790972824092059533229989782363475787245147284858727500366065403858426861611522758309739811870610383039807547291175469076928437157940656918490593158712432069170057425407966101218417234472469469550999643707911258455648826505836059189454913736533783313900503761387646932512337920701623100263309751340546807457621810082753055676996804351029196095158517363038414048646431127888575783371705161520109468599724860184791235818367984344926947613739209286598181567892694164892476364091102369899806329816488421486588952331330819126002237708714706641601922661525599638358129366796923121496904749007857551776945381760759098548073319347914138187424249522000879038765683966424211179194489714330118768630092084576571946586990073624782768413938856023300106048632805568613045207702282570722962030790533571523434519048740855194523231851750954115551240175304900710873671751429403053050555918412606082372634492723543775288565405254359334524730829908868876459552634533722587938708512089433157672812091591746794526278625017679154370517699160810227798604620325746555451383149272570411783303576602144952727457642611903117416185372614547823089086017175981486465424907991705521578145238841683152442980804494330505200052611621331905174021022388799846481067354161254029967044870894215664439764288641069762467253679499722424825995181075884480078481121417700412007588359912995030337640283196387152788536463613155872598177442510609658893894254866635532992286958538526072132946035092982610118906097773216651641929998547537774422162907892899300171885685461996884665578126676931665046670272214714633834216328718371203904371335797673391286157734712067534165011311322859449107137446321270675829285752410209109638359724334611440638165875099366953635081605383397380423127624582849059278992757635693458812222518986033319435545752179017571808782755847731875052684447292522124862627820536702779739328049892826986375245634187229198879881967403023018970704790654953813410677762669277076874890782610656845726949333898750947187323030222960078578882586617409885842586201453954767335618653574845993890203353371896667826327354774083288919567789017034287400178669737923973040100666909042630284056938187876751593038508605524599357571404742127909909208356172725542566169134907186001070706881404971541595568708408388578011443252072401460840417810583058992765334466779539961468319222330976503694374334566524684276556559674152472298096902724244990784412684163118747031567869940498421012158198749524143913956826394072680186113776953432519485193976997759593944675541042798149082352581898790172272610302367616129396489932232230729462948019202892191312124514004800414389659559099525733191927448554429468484143042729058811456041334419310992887811914102094847537734093587873625941293831821133700277145047200676464812385202462131511536003022595107090394724970041786634525979436328495210466654341144311644199169540175050573633915102495830268286926581622101067745605065334245617034586416501830427935664379641769332693031583509704942478849854791535459695538173095787415349873421521899769109171171023492028438760073104236508946752303626613239352337100114165821104293581368661777893408857533798733266794130575319763752651984242020726309791837597774288451073720600554153221476456144369063151834818558096276810348436498100845885105014570773745791121153623968498054800286182624107097738544082560190703389821810675730215057384595016465104399844807469713660676758243624677840079317267180410863445822957863791231070184376240507786200074579695498519640367073779157496152464361117553199782020285409814954986518433477409032934939844352441281184746515964212265465773553361388201024067705881830628198732235182886838994201118984604796706241178469620099862954721528871609612526032115084598731596362668493620340515702408692745347914602350076524001138015984993954991960415676718189515308609845757052270665560367852835035464551356920962242836135776207590014108959124523259726432507030102424599556454033648767479124234606129965474359944781802372570349567208946899112878479308052741445429606341969667112831870991588710876199225449701706323709663379459577710747780575463131368531591098850281653175179197455490389476335994847003735633773110817413998117243480713555454994636286907507762096152400835147020566080133052160746338570507516416447510317420417729041209382723725458878742382853765275180012831944450532779414957408382727199751802629131454208616440262636402143550122388648433294789355556346689748186312958390006888155255210997164545136928334799774986535563734677880483062706395694107668365547503391762861849552838541370366092621331775768843847001622893864040564885842175028963331126069820059219136520960210694983308951952156562753386864174614063578914180581441397104241375118705930741444394157015279904733974081118192689988464345576522976908170241924675154925169268957789053378307058123349837953636347444943873739756507418716527590867239867294629162986881268422376261953692023660894905954211248702271583912541885330793226694016451927342322499855285479899654830943399773985676358736781874021834692332094838415685195840279227083994890693255399593094669652976388451787571258395427592291530112450937297339728401872089866533897046815237079691012726386754000081079944986673262507344378677802374020461023500163920561351585678349400627068732081997665848507035697972118797597247508470254199778367832361625623738679454963166843523037059333341234691594342928039230300678777426725314778537093097805806180069563013187651072911524914150079319331099178430658012965194402023619243836972668638649533972874625239609209959088129706347125172618645713794362010246861652671460817247302181162385013973044291362545716850169926971144851469343506989017865140439320680264366729229080985742727297014789128900368585194753051406856794750576914593911983994091645475331575395482795734514929668727575839476306420170160206713512711311743132856530577371271156641981545064979635031051640336903216128449911948170398475557315520383749572842722735882626859353700866883893997298664889432789750795636887574732157486769817101445974547692440913744897356985219388469057688553485681877133313639342963195043915546884962552480808113515712976499850860934151634792650575915011132565508027475071006107721620681975658478532793243592337457401830261396537769918186629265573310064440012381336107630626888487692046445972142739734562274857643139454738314996332716554259768275539866892175261394326809194229357243835783017828113347427648266416154241696841033321327149932011893263234141487548191215015875975346906906512587172305363388661286688746222720538831051987521262121703060074313862564186534078564348271939820002186289056066334494144564427488273333390374353943403815693358629959903908802139392531142391164841096916700371348526125401268952299337765997523384724588645049925804551846869381016307056462835335084047888421545119173965033104729804541293012592732726112416222037372583120899087775405375055766270746937264488027072814057051293096268416386831589175219049235723703363008473906319842232197293273242106625162001351696312304662997589998522850716315690462057313820668709984432541227092439457288955472782745979194347260737908230441498858098253717869456523897396758647911374461530001952372098621865909026154920624771416604828941172039005504380558934037458744812163611562029031617420451467787894960060805231467349915083926721454185833216194542609428810627179966768460127332033417313962034988755109660655915405677833181944970371826381089877898153104095462338872817907804413091847763565519808948768953224357880193975031570023972878390872363865295566271830480379853932960972375599700113841270730241422207478637702290313373420524388649874770087748673432641208172759835628286735084764807208318590687064143338694303043756081149986300071423783641437283922904697017517571804282123252703453940543399418431999964112777393853070714725976756838122881586794597827084416160333131252648307184176443808312241618236919828342113584610213407943287755118927095513706361502775161326061815299607175515298534499820418459154746895581697965637313505610943056615922583396357651759075663201586648194830780149092513776860175222592953218075175656865300885826079323024930299262507514669901377352772299684000588064317386650505941667813852656151707977332327908706402239910662054872209782954199196900939921101384784752089527227395313676673130018078922280070990175526342024970331673382800657621293643289907737797747571729528068418607822782956800277042538625435625873731781708037791048521213984998162241559479355099617162461045746074099827605786953125470005849055903931822833913665381997334651822936998189462621393167102387776692293699637102988112216972642797826735322046657914708976388475254550222905161456659254316854550690065931440490856991929285461531062930179307544593693521195054778847693486698307359838243130739063175655600330528181551199513052942059591318781734897997088473655370053403376388857677186929117982457484376250953662439952465443657694396142777526056879012813093039051588663596852904218974849057977423362439270231486112245574470353159008225224131325155350339684891542053978733801893395195180723314225997993220691234892927502798563947477687377400530573254106380865209171346331828320999695676503808888241191938717842663439881028045160405944110235285613031275006710508088033337242764278424579824108879351615089791496746586769266859604764278029191267218453372185263050582340056842122044383866573719534697388311028956943153432218090339869386383621315752351959954669086932715322425567259717894315552987042675929058858134636096203830268245024933019299552144438298770377539530397386633545625042849902064837734553728327093350607864014101799266466467695780171784825087206195068721958235679822958755335048302476421941985711959043331909832938531230852651073972005393686137516177344110489951192747224396583282122151880707982554312224897428916083983920549965855411241724258041373514186978653047587216305233384885202397476399604966887278217498658698922345002032746813512493798169983111340058124922064408285765075191414255916801868507201302748945419343161871885821911116447533239137085153397684077157105140449526783437868655101952959610134529433964359070935305716902308691102431226565670018216892418883136034762389092517686342197345079590694687752196671086437797467677789711464817542439750963905407856293346055121792859058827923667073021130966631044614676449703674313889520470658702541517650013099846426704432159410080517251358091281511019452108368008723846956737609112890027436196129316850922748447618349533936621750310716812593774330056224265632522042437252409478671983782760912528341571762163388161728140202081265839985212436083495726480520908983129767029363671962206567379640227515887249704985972656438055091400086185905100039812826808879420482141123678343977674568698097730625096014584262342684438459211445623617025188346971661573730916475495669247986620363685532001936892712200741858755299753727624958501602576324155593998518783146052305259678883578466985737246522159990867898856983882572720888132377440352990719220149539648164350049584570910065688051976013937230032643723733387692479951436789151313176068336444030922677553463051165384893991320320702133825502324536459170165429378208390535489411460271934216037393217797380928539245156473984706862805713320794067589837613937407510683216778265215268930642203716398916677915533383082763044584197272379296218687642944708586053471247837893038639390596835522884197207265547210692249997407718564938950127683680375194138955971689059852469763194130915376380999359906639414833125772654021760926813983127537874657583344023298382858529843247563386801963637803663731591219430095650363097941275858574693116943097567530723300925763553653867730358481145176090444765132945845226843634428607062994079317160854024986833852649978193971398738628652856112504998750022713999234904323227215546702670106191645085201576395337573511442165954300603501087980523172159732101899573459823994298919753493925531674217514904030314431832896388767390527107983487520586058986000379550016261730462230092609451582501140334341111342389726953964204983160253126350637213093684728226230049679135862482739387919663988292934251958631919989882060322183409698766119436918189475850641685420848781565299709317955501867809352460987996827884503634294415590427997386112704348398982901516855446873280607796894111680924344260719678568646665325934944701646529757122620447476620564347479892996795711403842133333439985783264443240449528116472796748799425988959420244273642994373934537545957253173964813954513539123484970064479183149147526706148712790421026453873157346589557725757738396659036712243217928989424101428007067373471516827040250217646902909777956707980944965106303007743894642182080941088373322875002115454867805963412638324840887489393255050437823427292776477759890623714210191389799597323059803025874394949142055793963382095509589488770564187440514027364256976229063403265488379061339439055938757167498639220643234742493816254044954417744904630931072008254151815765201456216916511094533911724254610272580465315293186286899161967337710020891129202512616959978646069536550382290877548292341044309119933138778335497628159108500415053735936741050897595129095327261619941128829244686976630041052383314919706657630849625082676946460176892828461149434462979809565270769368478942797759454180850857005443351836466241940076909220480798201030684210877812395249840802381085017363779112492606036417877142804726656723134252854547342437049333730533199244312273294404530638071942054109265540312988197141888059297879658381774948919898108194333108255361671238564662142131470785194187572121166252100174998724910083945645658650097431171252788647792259271055915539211569077941594197459938164475837013466686434973663793289033164195422101801736285306801219410663185225260842192215282724628943249360774676953713526422290568412449834973729716919791415973730649054679095557232048924342247643694928173764976748702288164431512621508603201000417037758585022290328906843860323762053166450276142374500591003790525579704023146916515768635214534788675001421168464010575347176096996514359747383033144102122016646365064401682575024076694293333641885459474448448553393339653905383861081558902122918969254090430893929455873202674086622775476799705136530783251218089980171498669817419276490142078313187610135034419609238188649012408463953279930727134660823536664510730454654043654616280699630069771078469679732544391691293223983655339496151304071341176204965254634140377999798765502211713273767344711430300741762927449680216825512765646155696197329560960591727130950166644891217836337766972429752790230837664548309499984204378795971078049535309357963548763581088960625933129757021363045661462130085561851314215945564177946366104005245163550841126083097697941740262753435723978537851072442092499045591754490542936175547015339349669790786244997893523119012421887238966521619885063002963074561290168034216144137928580545792342613793905674865629093235513126340597572981072581743816420610050396932860195764474782246712351491315448600953178617025403894765240236036195566572392740688419369425988122113514695402293642007400388344840840190553683428980249918842041066089101723574356561777369318063423048400511234321622716692942816117584828748164134569038956639340161687089155067066196056364209543841353911785500093888900185045939156860437469240526531255755674187724901045351104845360113395278424937150879925426370850284505334324533128249667401110263288805794353476697311977978771830914642330230437132478911550061307607091986239267677193421870475648956243522111042819305740965812995907235342280701144902108774514961998307645921656180759795007574053512791083884150716479989932155017757725242588763327035340243282098668636532090556415392553495800367264170681957021669979084518014336964041332978092536227432980389918067542740963408653894462136485312832887866225186185911426065923595486019736135867758790747116415469748210132993202127535720645427099613785608528859852377768970101746278659595389598965872866989740940470762472014462128185602701595266900732878522460081873754490018726544326227422951157284214626435776656975381955981585009213655381001801821801435944790897851562936894222467808188096073153841759756888895551874742226396408223589797283357267908125768687984808935652343691091240483363970079210906822191959387859937558404380343557881347259287374445254479341000103494550909865350124638749024659272173730615095809811543772265086257688450699209282527801467600145307468579079856102807005544692786377139151711082898211760412339970410470086891361117378549884086155163707863715877807657478896614886569827560338686391479981080026312904512825815138073666406090664169064283936841338592184461745881073597610533755138767566730809977577680063116392077165825486945778582383294998327837208440625873615500165619527337459500787437351630392597015480082606507262352037977952567056620280438037631405180107741831972030225653141989334749835927548312177232862908811059107316072952482375830119282139568378227174400799647604983184699849567356783125297883666878464569187582453168998060981602974308950701342367208723864197852732787351034746509522679297246794768437309942276779765903895601489896862325977159304856019853769691195081609977537340125979875741089046826544841213415578418988534005971540248497827620005645430506992736763721908676500729748601687548144330288183596161170503605554968917846475254229667462301714694083018676804169034879644867284801949248292948685718332775193025371291612616260951874002807200647124577094445803703532429509580506981185079757887925120299526822532704924022114335199042767421767002983109229797818576139440688964903164581742137686490777058507266412867494639628638022084437672452153286093396575257582019791561804905669328101859840598310595474096804936583116096674723614380321930609468511742292334357083948747542631169511912905508155318550523848041589429546670659191689203710082203320474150901305740232897565284185680418697494833831913746347974035646436242609957993705073418690350869158857941837106863899415278912327631565439260699526126694242053254368664895341108674480495247832660416186968083711342672091102687705021866576984061303037290905628957648813273727827207366188908863970130786188716846628056708799925205426959230339982328649847921684971180725119971790430930827641083774568085633061533201674032908764469665074600119229966300972815860197034682197499438867488980952644844722519037546472905044177600944351326345981567980783043413260604508494425338972032664687850235985093981877312427592297171469689110278686139367818334136828165826100686608210506115795495424173554647758006011762776512416627097590269591822129525925629022681261604985059107372898467829898050924091884772974993855135148414267848778596033713044992961367172005041846690960110341539423016470139370971297575200807104786298087488162666922838754032632415592505509166730887659285700049107715740507664673237682501141872353250570050253642161042756385677467405556668886449556641054469265567033951636635545734259997485716993696991907759089078436913663134641260831814536607899517352528132453030273167566831365350258155800692741984942618742655193035700801441596330162474393914217854724412926753474954685577024776272504381412675153527779419053556503205506091800326630535095588977442414387544537430756169797399257236263516955453118827137476589099045126424497214381003203686037253860989330097454485236472780446197849532760479574159457132300113443306599420619617182163516361200560652078241123253933721018832492364509422405523707505166326474689826884899704044911504974578046241898962776793868224757086873779904560829982748219631111386483318425978550697587896640957944119459763741825411860453664506665050486720307617397529849428725045291563876125120737407548869639590196020936198584173964882144460373634895005651276759623584431961931220816012100000138226491971107293787630870490985397140040735139177282437106327634635173207438444972457268682066523942823531945716417681226130876317939391348740067411380354691310207306625284355200209272334350607241527229867233933462104153578544614983639561120838100077959423344153072989667470961629622940312214374918798885681660285552238111193603282409804573685752095825794148271148801436874723020705738086592459895061669819285583621759194367897138371672308012608284596285921503152116202287931373189350960110317190684940216891855254618572036222715533316384563179147004521274434953852155756501408976368899753408491186200685516068439182413939771896785199289475991453374252555403245926873008573499898137782733918431808796965126627576472576115447124859201730125532044419867600307417354101814376525066947373226175053943355618700040159437789644627599374599255246390134822133345961149419145786211758737955092581573142736903758840839437255439307440633006842464599662174251725927765659928341643933576566918545650105365173021205153132896283532814016858316130937873614906484493729837523548319222215848046596616076916757958530639455199181417562605386414971712142470341255911845176992858615549055096822960598011618980104974106602662805076873547755397341531309191476431529633470436027343163645346324618244738816683500807690857940662288635025024053887624024309901826409740802391344042478868153215733469528702177041020298091568340436864544573116710233973509650013603189239511888528512442050806546467462367383396221309978623255724077437151792025942165128724627522981801138490050355915489571383242250310377461105543771747646079185833447867048159418134563040094727556189335150760393795088757830670343058773968002390820435711595677397989204935606263088728979034190475369278657606858211999358200415273190128515073393321345409486766267653080074675408367498877913679525306426115655571962080705845989433130552874095290851178877739699706948637927141189889545806500839370852262782723476795850728148389738373765434111710103969295480359224988672037820910519950577756248805146502648210397598068300265442565147745068496427199403446618864407069850773032160768186593778917188924162030604743486169554537648029599213583942349085955519764526542145550908798291829107305731834078382100570277658369249172314969566488012950171013874553042904162589909986088405378056714488187334880453752655014785749214745595315691036866592996287966414016127737204328616979685600692552884266405954643284846094062744727437989559621051581347953752229832959678869962490512958846878295932934973803545451011402825220835081695399073138795747476367539232157863183577609809562675563130142573515486521312212500031632250169677441817813008367379369362582982826344318243502752578101412876357379023466222846534764441003284587270482408670594975230649744801144732332648474377880499109185881857642287388085694172763532049439623889709921930481817067539904725900350608402670686946398789044103922745920472619383157394101151698854843537133524372784011617177810558361017451539437134277753338379358635150566874625968430217448357694821332070658607025103767889053440081839145118644309338567299274308334290513126228451988192899936028602341324853375231675247973000153665371106249916290469521171455488650912813847257115749663836066125805821838461187742595165783133947513839060606163212120059515399828602409820814573075563730130629850967064837166752610144781943435130078433939724299850295230867634376632976586308347741659446816204139293445469638333841245143171767671816291359936931374630232177866729668969812828869647454325032631070318777388210979846763959374937387822317525013156506061634141432835281446877238696802974100539415963495815895463394436473430555212096056661443803168272353149650337193171288075715685967053665390199336828370422304391959682090168951202865918254623427977399875143155172609487404884066331471099607938108879313618113559340776623956369955149940376419032741006153661640326190355372593362055341603984688085569735994844102965307957190679699918998341086084458162864749520696918601167413951037308700443562665704614746886455774664345504516633065931978395169843375234583597352499834765419142629141075181436644912943062088376620371539008672560338697698160189491809142765092861013337581078131992364994301111287348898401824622286068350237376159944907173371339276545527082256454301059064886308348240973839157880747977159224207812897814578821073034364685721674311004679784382385486895948591877680425001092694744158212932341859503431814490356880098218101009669347171248110348712319117324441109579173003939068119695171922097795040259513275724978460954391580238555558686971416831304505899136707501513578169685473724827623805262187052319996567268148645960371783454487433485097127382809038123643329221201081214078685037234143202543235698814028668769271426378486799761868317423626379163084146110606162259882187409776357710851211018940276595244273502422065134347764532816132734265198093735837072453361126063908914935953536012163425546436030200880921127689483965245479325484270947640418337700829681496098688118476971884795745181712269537527611674375556906987045673463233941002901672443543205471834626062093941362094964835340320943061978242519657306806669685212485432995092959403088595699284119009309096402903554335319524632378569545930454855668989877230508053573446414759390948520825971522002430518402493229045084697286214211725358887239694144058082439222350043493725692813055201274021443626853866381208015434765093775439487622631220300674071774729432119735893925088397699370223689057142277760050477929678475022330679607204249947324641488146141722408312444629823078637395399964195289017264413396447957986437583832674095662692254385388537198766682018285195469841173225331072876579945235904794113184321058557728872079217670353419234814136389445123751155609541673191407418456635294546338597945566689107564334345323987169198692345498344360947907294413226901796022832192448727525530538328189249642780567527145777084624109524243072951678465697300606548084329185545467884327443417770452683465066504335081328540767469192171910552962664418370223166755053412638688032832324719046294848886684654988390826835349826971282146235896912423868217481323464933273472118445046166837552543488271451251563039189706871640171535090606459853333285246323170300723647701267452756721089607320393746675438105721177334555364387855551341774589672067284541534547742146292008365969304690654733201435426608513040346535135054941844011118591218961723658857235489813972698495468180820147123909713599682677248524343741215922758745318507883510911909095493249850989906727864124892007398549445884867819536681228461845459543858433550560371125915499734203143487626792117169206527436156732303853097446882687078407361204954653128593277961961001974131229571866844255648858440101668825961850435126398235397550371863071586368778215433322198731777471135520459700259138817910053172239613988286000361198301261130328774146899074170536237138012698292318494391660616932689832732823645389297386372688306760677870784140711037012061779070336662259036159017075038014129260496967537801294508233913770054209496126282491420266967475980098232910293664512441486334166294752284078877832908296094622108314809695902777675104855845780364434490780145312861413745336407236041412303897860742489524535665915505334190542446641072863004008297595714455677930037699756998606606934249738166332372779308204621168872255143223447167406811848558809066273856378616106279037894769692816421727159358144318743421354079619395093775759174457410176101596905524747296929210079993226723375914204810222795768672231039477359215984426251915905454343500988814461538653862136929176547132149147676358628205488540431400825442266218275329967972731275962278788362118324379735591111270420834265489106997658275316794802744491233129990103359561095991997972427323789092499887295275491983311997930971420399647767743133810431628911030274615393940433991531817897719587883479255964259852046868818643635479550471590380104257633669986064354538832236654438486185920464476848193759680783237941765994070213196204614208494686349044789806248833634153421215099899791753410303452766410757144716936641599353699427247048145874547671153613741380915895324265297819448184458639190543964958559632412996810392906135982064777005100598268861942822447845346945645848721604069276911651185294817723923764838649486998461118678247202191069118630031867863936431304913249492665922888219060800880835954147796716096811846330948742006260627870879767662203456037599981914775722151815766307960485212439295944613983598655519979642145712151244414706225051161274056091709809180468416683620896182077018337857540726051168012689693852342388175055206055949580620362653409146685529588089499226750894410114245112536005018068043117654577145948073968648826766541564597388120686954134961439099458414998180276478995712580965341382624480727786780143962733891333897993479313821371715994540453654003554801376199481188562142522415339545636223855719327647572220184580356972030386705543123830310519008451930331894150470858970561255058785301402339503459412129098358732398103607900397318365940266803259774422412722678028722202055581400621405232069837660242397076040600599267676482925618928340530743067885433314654631796884200486091728719163409810309049706236231166181217180638860985046636833984434159730322202324780454857088073980898753191864070315526604186767815375964317876263585215162405074280988657592882896230041723420338003952943485379010719843204813525558498291706587976467909272134424004205659340367455089512012472472995256790603334576731993621009667880430788735043487397260239200100561213385424550179057229782973090544478854276993831970653224388918205995822409010962651150082413095694880523519445641558945659111826880203122063093947345625343471607220681546367736331451875686202619660064386769601376873244703070592607952183099959986728724750524697311135906845554739426776999758964437796006922551788711006352452561601373972396450250160552747165029769400548637005251260333372634661545042067908166227352012498076566038598117398878195906348955384357564744749624643938863553691778093638077089235434800383388436924284939335789912323784894234270078097301554447553779798063917941406045764283998388143804366294663290167566975850756747980721724383921155225185906360078386779407401319162248641477649310288198829685574546263989283813763537838448364489102513377997712890933007907285855447013882385886771710199110635210488397615843389253344287141959331348528259614584686448460901471773801062441852513030012303055008881311652545927520702732276331917167203143881354977694064157544741074420972855078637015535566396495921626561401603616416612461482051023995518332062549726408287379767441143528546259508228882543414472020505161733476152126226578696553107611372866218922562219540249008517421816662262971988663141828990097318351167882849590477711442307453261511081609027847152905344339391475060377532046585150790885124138990635495138388318202937492263516461545300206421201649810160157868873463318926169236002565522978101963745898746999680917013882076182178117119279721254971725597980994398239741290701153637312758830378581999341405776201721407155227724276509356787008452841046423189706804581502222916494501872317265747173790435362705547483685985389155578481532112795149876523695356461167538187382554527280157679429946942968459757220585547551909698479200409280481678646470400401915125924875379181192380298713599674770071745176107761527176362490917478131822779505299663866912421690038413064580263364234075926724741583688648753190932281645750335468312558242329056559713023096107269955776525346011233745113690260070624813688867080881133282341898203370604269066394633642713264150514355539088994754505443972643272288902747358220848001272020168301160359747943732150559136968679877154806397996817008987977723448144363672553884368258814581694825232387348513069409724972233033331284718736445600650526022703974851612212775488655653568672526598255361170221951717413579418832710321851223934991565709392258183295065874928009928149916890107652439418697678919157181820516999721094933127509950993498331150947075088841183689764832869621353665054691483238331643865959429500096142098593604833860121512352974788532725365221774592865213068793056993839257250079303720362342698229751666089256664107025882320414828876423276004028443815675504779187859997533429725448460073646393727578833165705140694904531313971798099500714375539888422574542158654750304738454778900391355917971878794545184768062374040478547913074784424983037299756083622688542230035976724458688189430186962740909501725679363717128921994368638914216977521320141162067042616004597769301692084441398313055048864215887985244044275093913591053777227705803730636507484503312920156702549388297408572013747805781096442470243209903901991269684183674809798131492093862453048379384945934915474343848141955223612657885137189943993445928797997975511311076717796282002680016630029764540565513034770698346723127395526979498121508339176201870627165666894182674956999923676333981880677517839753065824977045079398497300157593757433855982236176977150617593072998777214780612696518703198292544778840075674815544012172427613493760635666269398386747290344353859434489699724613016597842140114504342807005931892335410727930651846201349468086477846597123628075124820527463707966920984930732138574391175249323446216402209792109719497085662817228124417595260910641645780177876422032241687407523774255765205145291299906911554689566638257526161313278706915208718182903478790748171716953660662836311204305687803272964929792324622064192565845064001010588075576269632260517828562643304134626520712733400462841152957606889272762229030740902655373558714978481832192593807112585976247527055048751769877531754512475401065127471097435951509671645483926259435462179191571960596604018728250622341520667028462688656987808301311685624886553994011909311365707178701888969588949473225489567826204560593754301054959629271068010470807821760837231001151938035151757001223895478085510821053834696803710928035940747663047590024151049441294979512745705171334741135738169080469559686529672267308786286712274186407226092053710046435890752117954171781150871850613289239353972776489726667089572434391054379931020187978752815240954144615797353140475055142952678638474076025176414443999915439479260357391474738700057543709228938189578697463341135803313620282038669758087369423972556369345393564548275868776529016877786316271977784002890496323495603561456431620018420129724116845678480819605549277402260533214568918102332157266756186195393034603637183948521104115290837790135366779709857699153968341390701148298506518268089403684894231487177392314112821179895808889652438393928625793470809225408535738899849641614944568982385651820450602845896848471965135057061289370816025707863860369815587248009042656864415450947414003957341203445418936966205584778958853404275603033645133380298648528979480818602604215043584416066275006973067312570354916101907162068198251169959270019778756940597544353129171856411212619963780168738409238128352704764786083093674083119187581100433832590959845554200334432765122665721983415874327161496898870555336909301655571753114108932331775761702873304718757733255258173668075975499154473614606808950762681781179021142967420191383398876892695305082416453368515106164268893279568972842443574022150363411541233556031993980292037689126196934264348767087312752842937810138750952028257237196604004836933905873298920822108852814450022631929514735476322090988102096372570425618963008665672821417032466860918318996667327695120826514893647950706591012144338446900135125742131982292679644028485787293884906807854423784265353671930962446963375519855018645319289019580059606205371195294453689887082516291445152384588821803127711230454653884272458403388273361932501903214011950529864156820596959206058311715165542833881914427562851886222099841542626073530827137284410147637819079141070597857591076264613404683314275750283940816164696731793028424921148692210848052628313509836589862300544581078449755118810914032981089936428983200852336147997467049469392544420245305651992518606203508780417986833183789490914464582656025399165645590659239764175827780933966072311599714005168942232172395016493053830446842986808846332766112473130722720694447519676312750573443816199789420691393597689622701371663420053965545248594791953256647024385356415918633071225394123865441457682714907494589147752037438977720680878576895132326659539199017604482351479359602306085609045854970582163460651693119062440185646575145308537039408920202967813811965384464981732761465673307333526076426257073090757229482875537288807311572907350090889873699782698544425827434049209060763482100110677366030514778580218951935784985688813164143364947517270724738404145329982983786713311450642254782963721174842549914206944404496380627440977290200824646225020013487444841489594618160551680969177669109223460422849124780598200807076399388991289441756499152696323694591478223072895873488830787571670441365971654903263770647455839125271500792274545790731966322589212990825300674599426226117534345897918206055217564605939371323551089187647670857299873222691536811256919009239748711596884136285891572635065559459840478082543956457208606651296955066127335736244292898096776210709490062009479525745540346753127274385150639926240434525387057359177138876153081943691220819288721901437554460102367252443079828026506869061115033645995925762354107940045386225958837578729750493548321062124525763729262903883015915289362228305849739359556705938321926236884411692737203803576257616132646983325646806564184353998976248611442556106859568211760549749637462427538798046386758947975477188060302407018346340827196105991791205360756626930490756903547333276398791374547568098293447449999124461285864939800340713449623945807422721607188684364092022452562500375631843784621092019791658799991726962608589270312095697874864684034429938916572715565754882042475017402743467729409603996882082315973695048078288516057685566535112645568798655354598219267163249593398862882735323460513867304978535969464447316207408709321720908416745547140366712782758528983503185769673293919644341410850643819597661439700961412342048801066590670143934957694739190745375178734663062712002027459447034053207716652291418921493913174922273423505286636654138488947435372756814910754221299874336541297189305430037123366012363183402427313446185744191512625947474241277368764644344026279060619655145163459622397488059423620619101082853688134940843517387717976097149089813003441791846479142925200547472408033460942303141214786487992332464083594597060234635460575832697861253635710033141218962518038982766776294323444819421284205389261806843252784059280493222568121275995798230217036929764553511192948604040391090923875880370952178301796411733681643307341368140691580783853677711170497485923173233614226826067945957956651579234170455789895960485711766521797862401856316445505646745424501070396649443714704000158811951113623454235014435314915642126981803814625558875402265038538846527440186886564215707393959536052439201799190936250808011735825972718729407507674969957896553253467483993330336118421967892319883645850842197627769831550287914555383422888852837949098488656794050578987486609755584909839328280925521647449902886976963640612523366988996317259128326797506755805310831645890776063782358200491594840020282220059004428610658253459866680843994095817441674481800622360575183114030689898165698867751755114773296501586926914536939990642301125412359225325890130833160643211592394967312796112474118048623540703622556576954215579637509522242995740656429208711215485813837080412057233162524796168420477487300023604474348452535279100205135850511415581052659327829950890682938353364341089459719429934854906407027302787504270905322879990518975278770916431024088938637140729526170187748857450950650747713488375078925961031163324437524188628272422838596522217009372622400537731764751273344490960891669952111387973529886565419567412449905041345237244264538880113068069258748571289107222649480176737323596185645736326157902483785631231235005806746178108864403423580224656551601931514111210164873129380947985540475898677184136764053120892448645761702883467613602336257001163230257213477477944516004247091478198476623092075233981044321284946630515723135130315526869233896362091580370293185634057357589565616815043273129519352947164058241614773286186505214239655112627301454736849963118305199705524012933679565954538361188835575606851271232205671014416514835964179351786305033515363012320778262891980789046358156341498051673101783622374423634655708359765761809859804284848633482076012824906597769504107618978240762035789881531634102917226230890316872573600044211450943474533134843997068293220665479410608361695764958216932739294626581328987863468798542591946399933387796532086746362399847460058147969929888507767824093445367867909948758141131665197851512869542872003912221732133584820482932958143851181837509072890585274085326963225934614267711752630858340134762386007859170147472443680191160195343598672161900746042256680853583252861839800517650321751080658707225318962354816915886127102033146178484896374063414110483149581678582269747307681445920716866898751308496216067786867831752035343949523383105308980378719517721369683588228746922872611694667035075601947576112542589230115078673302142715218763912470367837538528253740642325673204072640058130429903909771292673486791026196117237966502507251686021208215898330042162550778364087275025998663406576322761636687979317550173856284700721778049939043958651569235412833388391768683064412362592827668770982656869374130358248255964367284176404154635838255068935782898040977827153541877662855188502802949721387903345962527069041165089021329761641840814299189092955265236108464430519905749783477047333767244660928092594804135845734581159746336870701030221119692282079940479569304841473230264003091954845175110741693960553710057175791417406020967286187163769497836800997848062830023877013384966314955608283268121558608240491144221658117667291052048221579743280492088144633843992094255869380724726774883310733060140717708581754167959138351625132121832021383739666165466880018331105346076518985982438835141532197741050426815348978678122269785350649123558814195705738072609787878415346820249390486131091707128698978105734700656354455553960054439774585565860732418199591944563478390068970347631870702257206193920297237671606459058106444205605188954823875429831645754437614351092114208738516662501149277631166431503543440633853767751371513182345238609847723837744466779822845070667119440680978192755995542374838152420198395419262686641190552371489355382961346577157876048044773843791610560131647037399334851519631537589812967539030306807439892207833241539517575402519942474697073762556797940390156890487673131896958376654078652175508810155191673068636893025834968443536647855647883460945609253985980855885248835314986116140666692882000797683759331190694227957146121492509735341287059514182286317242390356143535534965551929421726165675066815404297143638160386605338028239554959979847869940035789205208722705928434390189958506168107660581139721585968234925359503494582470560733497324262381902308054529419142270081521076673274400707827564335051760510205812805674979481093529923288326779545696235387830940651867191340801167644492188278397517741334010032601412036630300238707461202236744230921603477572251848616691413665417948852150430729154976733014398237850766795945098227964264802987907696162806629418871736315307949356835540275075510170913445364694138552640507719596519532418598366341437992742586123043394690996508260751171350867472291976228797871848253576821550725670803081251890935451912647413402264901394078163209802991005880691237464325630787719516542408223277985925088605073044480304583996395516536827423338849247973369598751951671814604314640537209265062910341295287931471265057824345951975198474699943670508188823842821883266359945433510131162522016659245022843775659823091482051238440750127776891983339638658243650376728891285360144007186283448542985872177960423677905213613043643951267755629289210698338507920584116025079223217049003816302365260625078960075669599225421665529901787963064635282808370461179991975754473803440723802277567988413466381480487999155076431781707946445244602747250632774495819076831099551063106536090699378094310870046766383260771482568152316701923109942073195002172548487530830972138482399611099398542390080410598887378393382043771738033151353269420664027198140045071273778452971064685341660797265885599596096219429139014487585249514711077940925091898813350592945641666732798180346126592348559250074021190657843890152999428369744937762770108355686786103899002537798080106595425351183233678469683151180863711214191728416112760542118274251804421033331870387810793279723015469050847879565339256862465355623006432734749805267287397496229955284697033301625205277602656123848934466022094241305542142137854936559993307377251230627463260666772080558402679115051380147520769628777040730416695342983079303161979950960838911722018115148472703868375300451054723276787171211495107388188388120816451575772600834598564545631034380814258438888742066337384514642880729686569744772081880861354897582338352614210826671193711112687644217241678655462075947632937290770755618857291530448911727188298156433827367651460219119993290228409477493617184289245212829214806094858632487227813432479612077826576050395993096461190677665552080684252300924358616681967190133896410494627006468650036649292282248563344183168325366503652245136475304275759092216798563908833209110503736091473227805948148635295118110591358198214289662736719092142253867164616109392554206180954750612544949573401850859775571478933298290389631440037069051844515497977156462189236719700843708718111446445628494010229549260874166928416607801424589951101974511154642857999706211558427915524161701874429670762834709702265557779296823373078850202102134481257361026742426122196894298176368762147549955376939350703399784841823208850930055159245579270257456995578947452758367041241159257317764902475631111991110181213487308941001242115438517646814748287390256922472519690238013433770641214939201957681943322711195085103205632188694596467987153634795634243134332053109788348739325496017699970157361374464059336055403012658112123074892046959300025041850754257753765939566147856383121046282820106594186577072635181094858681447632466152622793763895760195336857965944213352839184511218509084552283504523701730798322740425324765263725276257271531756862991979120282377687681426382057202065724180788513767997780546952162758388827823309253500360154566009673980427156544717912056269861773789923370224534020851577221433498233219099886890160117761449296922001037541105633126770407545300868788471346138949267342256726505005184055296151430090920466164194456746349558026319784922385705582242267508338413810697040443574042020647826765424171852173079231759618718100007835922885287336239302653251398581495986147954766409154620949044177630290437016151742876565199548534904508496719236801819165786458955997545018639759576716065607085808942843858481288756444226790462417566431042780590300293041664609227586443347030638429495905460759906854079284011604295960683356106202297802594748910270310570596229773506537348182364327667260949637272584658137428670047759425272405718213469520549146467773081250606237535127795390289715235137664028089438547578552148440081679580604800971342067630698570347256871484558662775376105859329845822890523323120689957171636296225603882228585217542471222805785158400260253266582089711540819724227352298966966866684030957717773233847971441133199288394859956053877100407019232761837621994983728217286541180474755211925473439566326379796358688799765475649960454378174669322727256210166728675184749621008967554858106374842871449422280083901048183107891897293673437376159222504625041020421101137936768620303676569550649664121392789616375629676045014034865446354914090763367911478836170345793144642635242977460720127610192789099185834058724480643433682097031495089600370461362688467463463899977796056088298410955194451325225764363742149404142545468848594051291727476412300082592644396087500177771365011652711069882078128836781348559968839504421030243948588616742362391371564076311123390032699685527990410646752210528944177789925430184677840561755142474551751139064301102578868843885229881941764789976981244098845124566766396157004534868916607449923843146199176776128405409916400038439433173422318182051474633986651305964422603925457264315446682948002249623785420265786143737419495910543557246975167488394026390809138671956313616811958766040070967476844220830220161745420842714425870318764146527834873933140206420698521371588277140254779380763561405872710530385149758869231454640684095069353707517649590041259247234961810451219517781546540542442207015458893634625104969216802693768721006104600354898729008940181865730998683020443966382600921290786778716978352053768502508464646949680005927597638115760882649275316089357687484218426861113623430735908336482247751696990778230881753405186602862523656771689017491097683271121928169395876826635827511531750212445496153623564157681444884673539285541925409724154792079097846597657377831794323018976155305119119001597038747208735776917159151457112468526106520524937543269357313648941846438757759178875663511692957083401843710057593978293307527711455925529829389113090403242990996261471004686662833127899124905612967879545163077151355650366150583912438913124420251601273559568406783792311190308258013392990168467135605577513534156112374941340418213651342144307658099342976025312685953903072858285067362342387915343351404632448473747922039369225139910562304992867996854514653690138310828143261834652272309743957751742317382683106388549874469840223851724918148291811063919721753917531708546619096975038467838022755800043165615759554352410264344281533560164972114901658402620392485462421657573357995485100312607161492062113917949457776904935712616770080209958634706031178707684163436978929762683286814435845803791258808720583656872239396368535259420364842537037904846702102515182288557209501647969436164900977364433318036058377952454794618521256141898456212184208012185060058645465456736555906387727337429222245818041211492634702592270099551201760482657366379497533100503149193247174951417857797219609559663127203790883641375427181494190469515097535425819221756282545202465579213160561986699659968299350358150629836571879047865972466848428883575979456046499774594534271355858851981418031137480039698346810862148706066783775528658741863325801080674035513618955542954583364914226850204915681719617993835919152363324167779860487239719610758111823736369198233285866522688416509940023202147548804280845359384242707427202366885485684406653341179366144191454344600495528778343893014760490063948097639645376601310623392889210388651755540711330007425322310221805458500603926411570247157309060401232087289946359051646707811896734075897298783766937695736414131643246437934826443892835179710912826344308731158885267118365114029737696965435383517632094040466177481712057734770393208918265855411744667105649161960891391478179206645872157952589194590449720614125748188099913052628093408292744830988288031624762405272269433756856808908474152488598875398445721087627596069384732288260778327450600998460509883964272929518000845828004233199840167370479065087043197602127168308518927642193967711546977994010420047422197747689047533278784861842176444624713683403452039872510161150471425434338522064912417218942793562881296263118590358067640408245891840689837570899573606046298080899448245050637909070315324446288439782718658457582673480730425767348502070329557145229291158579437855656778336743707886493608036573250842486189426172560404274919518929884940694748834410182121370715247028307924736441901451280540009198025880956683920357616182499695524225392547034725425660039706034673857544636900450996487814902701374572408594949649838236533381647547581973524055329359877113068144100732979653842853337243333269117561262918171446547203954432387728395128930080079181450012137491329814809026642575028239440062954506210499603969829283521070099403905113001165613982406676119960819841387312963031308031960219980270320622731200762402608761080613471926994554502311093175199323834386992653050968485279962459966116038294432586775151979103334643734297880982037743907816944384767340705493204929795977086919892075892742041652559462038557147515845116651965986911132137113613698705737715958418524272281815220876450104011834083506944656898634905769661289852613215892638992207118225300002865468034271190225282412092320212487947907850405397201550532226830780941121646245052528357592866695671021599596313704633956593340484695891970387661033249879431835250633497196842960023726935213915782199821330043028227148796310756998471457036823350485566401880029329066114214055801582418691411574302044065695137828808743907861163451540333860095943460841007581984802520477154772778240016352823292573880561423819992866744693989932666110354774039079507743362037522624333942007101374453456742336846208996578153811923611628355360102579881237473910281167109532129975717922468401051970922056377070968063426530695713504636796522752172721433807851346069554152244158867391587702738963825508103633313298885722169314036488015534886370995310620561967631413089092514458230900780621605860889270879447549122264195636260397059764457932351142749932786545646716286929726376254898452563481752004007036824760099208726910716275300525418518601529996099710015317561497741088884286143033409164596593437162241345285143569191024117444830372969450758097183721997987124500304369970423680046024057500655810459318638414652442724307439652705834779226505729908933474931019298509547547667741005895638082102429677110047759287467611279804034571981518917784479700432924489671151796280338054584346685245706027547350495756751564531758394288161621079974421339642339115903578157098462621090668437879217363553172273811013042033838266208929397515305917745634797424147337319513790480208567963781948430998429441654485674943017002709345142026353639703922946037269459172997495943198417468299949066613408665162528935886802084437936904182689058666666389328246027014226693797839531652754072386480656006824506228823407990897715642711256317852012436179312972486449886026108026124761809935483804842717622770215606196372500848251057072190907689110429643421929870708319520301970152962993382646097842304334365271318331033504015267450763494424064987737306719365651785593843952732904280953072855780746737321313972385218658185240574383556565845164740607062032946352388146691345782063498485980306497096203552985224042186480950426546307845808309713491095043579399900546150890885946606875058246094669778455778330597185636276222416828677238997892517654165212930710980478377375168864264385440687983464091216180581380976909521103339078644508597730405777690984206287017147874051293429794122741840499270959585506596128767101370428040953177694363801508936093227963587877536179613959818699859206073872652050615147460572464698541729650222284372249958689615308504477002218500582212099409922109907873166937443782414937428215160595911205864610709252218633157789946352690386887392611423870409627623546662086882262251873683596443496968534263523277167468139127964402664040344088482210658203411990638045731386746941698294694923869755143661756789746170680833430434895457524777741926748747958647468302692122628003087069599296669559772708829051797129175249456159829522814923746583502631540220793361062270489312423775938710958721360365481914573387291995724725586896111862109722876382538458093412670375649629674562023166928386311800358996103247479412921334080036158767098857197056910910264045704518813555911222224389162450967077536564574863849792926150131368233976942537458756939592910869779252106625265975201132408680165860782765534417389361574968632700217176418508285826053887912091928467628562184263418669087227747618289866714678017564183425883199895598795512542552772322576081610379793322653120290314294573121809673927342452399553898407106166222542580675825705364270498086032012050936720682445301554905797000030092299912349485579482212846319727508112736489374887308828755612362237585650107683389078527246923613640790420562694649457806052772224618577017759446927307997806306166154637451894924151707589879410398169312424219662880533806381201390857871596750455382911358405365021791960028075520214558912972076714011125909810303380995333060688804493679776906780989796990703146052295081148521141697926596075550548180729134937007605393039257662684488129660845551667134357533656846718388853910689207512536980554971899934820886172825040892933812319463545123609994753640306001438416354247409526402503970380945117938618254086140186304083742367079549591056535625797465163939631810959592300140827478470803732391842519205155877461655398739751558010334055068269965063731423878358202648876474873558174250575651090119221397411455642276905810134195376932694084299877759035453304931526495718874426409702309230660380200127795155417088529052869908135727498576434876772747425533099973812533802092422131642630202827976343663317575467068862975321754672083914251206958586143445749174261259203675523450012784873228894971461595160935655187950238482756252751595417292541080354532554728798274123375833227314406035542768769422539830727957755054821907741615623266859996738989607783840806548704480262839961372389017462903183046266683396538425424979524715313808485031784408201399301026004925413389503177920743684850232798657823909955459815924274308146760384911381743225589619215378857460903982211868739975387806749681038423943893633367255051574168135862401079454764940064159602392622333868610253341986833397550583317090985767397864476111822644304080299724203859881291779504400757566526323877856857955130704478176564813454993699633124437742565126650305164725349389498273131565799313625238661586598560465033930304452984884313348569574295002168366299456392543446765248525724342623654910671017115690727689756539617763944209927179301425451501401878807654896651107262469474648411342197185178928772339963327876600158536832936480618700924346305271790620775941232004673916311440721765003678862563583325322251066872161986846840828310555479328210333553817076434520295987642322666153308702891751671103574140251484015851503349766682141185388417484313477413741082246104608392844576372763393045566565732415939111171007039585209985279498494539955577197118804348328701400742143117436190926961629901409534491082106312062377037002351329485778164624230028646611500194971590513878181307635662041400438171887002550846211019146034551718100706244160323542282047876880414661051594766465890521323255215742508816573652608246532617923380226858906913670892692242317236281006633443064214197020683923930303254365191728145128703590878378624611641889268091394818926901421892065290708146010456994588892793372722590647325844754505552741361713129922732565586165597459438228893208716237405776497510941975169462215568048830104763973955499189856385831632862065610455317785907054249892169753765443203241498083110766284652630123537471999014069225823325337030862225146646402538704717833151084645556878908068865325358282358746893694516174726410248978479026697942778365151839508895765308144646012757752992449601310892998550768276402660079239660824012735660581561691591737810943821659086599714054534818073698476080511589047947531573014775399303564889435980833684161611281315801864969409204480186721316935268130584005607769493537802817125797913931567015303107322432716986682978560341988197647070138790207566456378003236963516792271610562812474478593440094370698155721997956161516065987129349778459291280019408305015108580475812682374449307308590719569883531345721590524288346832847691070296823115209116142805468579566698737459493706343594619134008550948925859581544117730271875901854944120307309922759344843768922260173252122140370721779837724212198279298966666202036005297875362784064074958257607721966749742187497801142362098587601731927222750986311238724752492668340370809977539031917541701024429776232180112046467923022367863893236596774376150134748547350459152099454799964054764178839580438328921136794493367778887427626887424451425320697668827062530998477606982559268576222314874973482958153780792704503921092683618296959374037016667875517184892975466587265973014966446900363042612695591763624665249930526502584765546979856708947671875683923275608595448722499237718042478542857018892239721767807649054980280958529673674159965933557043602187296853395205201449527980094491611523930618684422328773118911456667046183308601755666249881494174346595467317282607927552350710913734763738192129676739371575414798583117752078686905168018052612716679804719552424908823157905878265974747452374696205643812751574879927284443577784940848857054548033963578685997379766148651012720921144007956065932485339401237606590230311634856599188817316967213620152778418773026128533001088116126746504954860497517801941531854226709315726052828085708113381772964720231580996182483646005822503061181243197874865708542940177105607973195860291218809586458756565483996424992049667933543324172402597990812668563781094556315105278350027621605241624989970277705580164020509955508072546198012536887128180934664316085338960186978772654383946126057187596484967461260796024125215836640893582075034307041056226146046935871127964142959186893559694850302343135074630568504411231807234572127141546426732789709493295917876697196150840013973016463273729231331270634016601939135414738551906582771576268762246983580900954023529719622984594499500673702777792331249968741095559266849477222496122169218839298098915733084346950850465203645953625819570477364045748345704993896980546188683895965553698104836526096183193530080748688819612835163802662835303138669572747624011865383919352579837258050080905794162994287020399284539523870119989147768761840733823271562960809436423730235355208789699315842780189429193549880124906747301764772256616569833561277389729470933421219990679958218332773581051833552174255551920195982899738238096782163186553264090819138953194436546620519118551819601611851065303465316311765002292307741107577444324584924533298744563752012741713540722423713970520475776744480341111261343860944852312321809996907963027290103577892271903039673565809781590565082166744081442782878599901526681435675419868335220282811293064807494708687518054252310320319298208845532165455620310743665097827543483559912419671936305415728710166825012766351524692250800340600276827379073865749937511150961322009903023463813402093960706361257522046618661739594833220823309490188219023273672842285638710353425595153423862499909472828074148487098458774065114619989814532112075484947093267720578129266204731241933937260687014718904208757577120988651615416238849688502881888489686224004332875429501421709635908136384405268405311163668987151818801250301791978920422875842858205799282351184071939646483131579968780446696332128869832664963325048557137751770250413685284272033859450135389530781808535642130595490132388342728611261408801999688286882833041972191518751241830864900568896088403609691625390082249837437955789469139754105400531047924128195642578710522679127934315826874644663302365096306132162728976029267648933863398502101526520949797098008163214570932533834451270058863636428520767176944734971068898490386683277770296481757991263242041590145944430808129595945702527624936250035438203384501110863419104573365016382181241666553437882174501180562729578068190954365836500329449015257893518084744184409522540754606828792355830066461610917749353787924877651713875323934113047100169990768347954985825066303477242649017738791524305767678589968358651124995773924909061742497422518034731639233018232481168991523146442932207835198455454735882494325539071121139066406336513802701895611870742229464963034849620100758467286824274330843437015615562791190863701191477526955885161854799432442752497547937202726908071284088134859759156260260657349004157079316421051662268431926425752154683745678866244121513693562636812311057834124078877974813295639149922385718061692056492314168547601408187452458661970108808349835551725932726637456469118986084099898348762696879468197396626085949083516579274355158493918942833543462700872235901319787951127682248174451186220283664162785261143429170796400551527236778604605769247648228116043514016921965190130951345526424794628948309447790136787110022394747972487747651273518958382552035843672693422130333506062614876254580682848473390642978727765253808112383542394792728174129775953197415990759461623279428048557127433680163692703929542627141944267739190499162586356705983387967305951981427130883449937571795447457736284508592429989062727712660363164888799643903846315372736347508627632520950427190811321562592137791640605168278802683146092981759424429839278653017863620030008817485478250006400670136575090518333700844683781795994967497140056495601106257121040838551937841122870553881652365895884421564514419865301086393859881613583766761008786119608019424177324999325147921491356892222541210196775710908623159562413741718455791517037641137152877207213332802256555399229338562953018557718059263976611551405433251551222133076885789214042599632096096438333975513721763962423496770216593698280606438632902332573272355921500565891560425644838473339946691456595055904764263946879016626576479216764469279312246595418745134567321787713550200897365125113173856994685358366618476813344424862550240303559277001872066482739453725286227053902489094055878790663841736723437895372017256109528302200368686840371310009580026496721040348459673192371753847327176548203648254447379318410670259579925094959280102082505448842172961602426817823198980056972525447644692494478542014899504355209004601919023160102802765787091263520833283444033677789379360262260285989291404516525006829728634160662537409679681531738775298126951310634639549921744322920252443709551224305418760958999575230377553212927214571904815921081988330414283957707140094804677742160573041377394370246464734134340346242963938975259099149844194534680644182349944486045242829764780469094294686865405462165315702172122102437234596645763334295944504769661273381762114190561324186585462449722148906299085506494460460943880665900957237868158063810574915856883845090360248075267120798154936514827733568793650608552164951335175025567074417541106299855530342888213893262631808850206082768424307824064362861194960058307656998385545933520127808935401973971982722235028142270012245100375113317996216386866232117143976289330073903316625712249655695848137350270862677443469241167357694739899252955415998051439149626787347606903970880900193309808948087875613687722915392430495127849517907705863737771734551831056977573469806022480792063136504551968306947771690030827396756916576655523008855247519540803871140166506716118548189240918960782180467160734241225321684351348244733444457493825274347946173400726254995708578282866221744020305561564571819941197495445425593902961860663852155905045108748141209725144042122288574512402285264149067095719962989533648036440193994675183972125454454372373682023869296143100985760680516598191608564886300487088646532111012781705538497275002805744929526610622467757012020786427002153399727541003559000295213542904444520170530220284455064286485754992430782987493146955004691071168274891979545971392487414894007119014872520796631526424116584757487040584390291448513030450211946942618550981376263894939354706523613667935819155745470449372390278139257272137025163057063069062815890799876156231749226053478267640048509662026846026062006704969788613778203685013515175315895229157956731347435370603371150331238768122901762380467849195102401724537114124045765049417308383896997518360226659047398904377766996290839339936998709360711035632878722469137673016717005721247177505606878360726895519842768342105842636734963973075772468174744617937482260185698197048315352045950376802345930339412947742509498968492063626272797878494979817586548180815862315718737572774478018522847154224403828998627673816912783119005322014659731929874819658871714141770579040874068272589358936662781168506628063500797348237860383841527764900418412197898197365389478502724073742679862096375392646446786947495669586338267278136388964462301922236509140950902470430122574047196250051191929105162252152044321774385143566693153246235926330532001838049445331799743182998097731587397004940852626173690654397204856398393362622030277358393366723191101018786251817049966928382730738643921134993316894294937232259723986147293197077544018557106362265143541949901742127268990219492656735428027478581175825971211173842713556408065690899685556068413299560316004474082664391516738103758442285214701075814576148758059402265958088570732564060865505321638658951686625798477164247731539282500466142635339674382778925362440214522651538238203069961478618535144277424359241316212834830751882973119809480933397072549137822066099499792271360463564017521908040108460250242603275979842959515382490123177847428698267916716138682265050675488897312613998598533015361245888829029423152647019657140707292469242446488867709690750827265600083015716770410499432187140764860821865536334427516411013927120501529400714840697845563598564237553293026626509361368094313356660468513795787421258612343943764058916316329820037115128256881580795497350233478835693883087259031077757128411308830703055961228992215354069977071825769926423570054268748432362592013422640380065141627645351076542022076001850102198375956169173660286737449979456014892189841660796520445080951677445863922608282701779597304315401146116287587625564745496004744266160600987422324142598003309940386257471867209554148954192056791347642106720349965990721670814837985350657581783316362344413484904115394926730669662369257234392686861181546294846118108145233180065654629150573658255231542379932321544435315375672873503179827240179165454169257554389345642037654769505628129237572433761861668106627128567049640868075514516947273024182836594313603859333869927997867779812791276066514223769356270303632923336231326240530605530036122618757216584895783234346559263444258046641206657364162590716006861298415619214696990209926086640304166422889486939585608088584065516286279134905072412933467735057008875395681526499139918351319678135917485090459176253644951740651532095427347851321212812531581893903222180948493606438266266892535399196915095520403125565949694392729101413151596348018727612924280120550424474647946646856766541343664230642394846756969185051299443329518145732864363728385302536625161765789880281897888524780767972672988056950721445199852939196363607608048327085078726464978101097231928482328572393224576113713197564131213975415623988829408516720997797261064316610754266308631255778174610400608744644127287642619616737919661306625686575919995068244370060241133725889748806441019275724096393533901785453085414576353636031241194973460955672239885024410449521600059288615342961852245839099997785686792812977042043012861082644690479771190783037221787112084786712047613231909772515268569853949401381517826844834318140567737969822371356118455602183034920500419424957018846895200341607977700916161962527549194442178324731661035296560620468971915590617991001946499186135613073336111762189664442597866548588802319128447113055756395872272083287933204516376367063651357803372372337634233622020481971003043291652768444665209473303371127789105939946080808271254846459308926997146724404297397812424074761172181096905194057392509619196744571479292873608234672016589074704344019125613894052008510824000913094547171061112661150012240375941384196331524298576189689457122359616907863450607221055758687234301899138555349591151679095902653625339104402658947683262282437755871925664219307402199708763553181920439006870101075102664941334151970536459631037524308632337375154477497600236938736174972127236812791446688933766123970282338456070552790297129151574695975074992887526885974945454763715532490469092933479548137162335373149571766221330233831623352114720556675968646238875647826610609232296612144270042831651226096825568228100466805267066851394007013056274652621933112251124605062904257456111297439464753167399107484980195475935535952065917932169628878546089273084296317718651071035043105591404518836668495186651107084152274829094573411880572236257114798266782756313109154719652099753953848632222420377269408135391746260386887111876366781929364898571430353086645777401533499567049124348656618899387040908674982680329654634334661418742940856974800193354246317060192536064159015089139779406991127837075827717385258173867301873097783556048332422951187659600163695645811054699228283600470380524349696060282009940464684707978398982660791480812380065002558341153202514811401028158187361480360308553509494621396047400789783021168853979003223294180451332175778724051576742321593187734354260524964680987305105669727371397079231440514310564374010280058827635646125241938253607165134786605182990160502969195105343146468744759105444164747454765600695021101058897823959229157620972554679306353855999907287992465891546819960776208118843674225254005678331106846965890160025705700811291867838512366794709976993018405870244110435970369334283718526205860882022083446400589142736903935010308001162880116158702200060649004401722578141821172768365799731538607320978081116287225299065399521031914996167252569481269782216673591836913315826368767402668615824177820233152452747558201516359580547767908976907042124578182300893437200707445398472169639534686087893290971235437955639275486072174653856125635928720284706577276051841488524263879650948141398719481327671220596693260935128679032782033337912276558590719372809372424789257635616458369056144595979974933167520134438381025780616236829429229690426760995612978515066827935033667028424942078079830672282700009376479349688146158543522999383760291264410467423724466371453199229874432782200533225418199639017313120017713509235785962091263223626554163777260231992429618781940663934223262310434503604944434449951373078005729785586795650998086016933300045017206158078522498773092229162970187782563296536944100028809027373451058096840281401752603686134447638217137432621923309217399457516212096376759658706199673570286704560251051309727699007195644777414354020201853260420577102563573008503412710601947252651577005376641801473851686608395801567377048622780816432626283910556976023363098498215731306664291118943357662357165343286548128443266404581067497737878563977858072791125370950769175928534986558094948241098258611603501764105656947704831390485857150193903254537566837659701467994373371753178956166675533041506874631527528191886341178697069433749567374000696706496602620156908683038609174400918436712472645787387868000461493153449578819142073227963441783299276238808543706619548190319456698589150870091205574472744648862635599508969222127574792340606803370426673694436940042852490205076163396727857180065921598451793011022421961432841841656911495970374569231973094736476976836619108433668218197992582348283889551037835770275262868183820347799915369849135336138901502062980772037178915480143237107039812219643310139756381568414840557880050207670150993939077618632100785315436140621519479569306730847461860910755456625628399231081602712323089768114869376245655510676920648632146239420515555566695633557315316461584568288712872288083395261163028017370973234947526861933496893012767526838780715945876510153668978515099458842278981295089300167543576993053574970180788103835633609657022541766990068664610089624143981314191712416838149765901428063294655327303257795209294567566046293392325753136291780948845919983685723750280896741873310075851794346381928219484092139612649904591465482820854297751413499526720520247711252859182315840683655092848288248662467361588783899372929424611987824358392672276127574712600235021234730609467086927461456244011240874933336853741435813850826427388455986017939520696709323336776639964155783529086397422296527262998783715918282082225960617311976356817774430287710506802514580985663263157455127637873740085546110621923744082756837691213267494926437549262385345156391154234461547793430611097115994116120042601117136012087238526239192087395531959508505285455880985229461815625935699617257238876488894754023545019458075145099229130320850220558943003559789760445862280730516398594767619153934372815793542285444122187195922418222453981342103173777722156565370557024887000825460911864705416593985423538957484949320477686295056944157090150878915874977974773788565049808480460639223969284515413096439447034545990398435751859374525593475157781080533860167895694096585103599987332846181797225441914015443184560681654616938928959195367923598728644747257273599234319618265736810696077663256069247063783424213476268206411196865252806790780348179212523750468760811623795592279780755031561994338799162756895675044364739967723954618820032986589944384418494190084667545624463394137982956749152197565283828086275799896721001007916132620607562673708414593618482251452075218835387820723768365211930965878040331813738748061898278740547057204897909675943450675956892353800344983549444987945676965591037893608025922412930312709769863273643097202115731309278949318858372752673322131098754949043463480976387001934450161141857454570878682764056279395010790101846002432574219418707543288407504378439066419518495395439084417067964362369289161864192570335522996873297063787939581283308187938809792005791449260642305569747629189219426277064414964515961117814650521376319538141485299900373051484459071496330125940417899534470263152289458438797205742957503568797112288829692485074297753491309173503590393007876946752769665737302712096552222627519280129830434504364902527192334133388718083568825456272253274939353192753324380649056882789093106741916764978339661027342085159000793195535948826748157208972774650657305815744438206927624095423618411864849538794349471292828538096984571420641457356769638753422911202289256610202533194107741247203832485454953023917031648036732921761131845781862987582743714842836127566988925636936753915832740913465519452750619152367187173961754009598975238435592836088413923249785470568948973263544215878767755086000829077975390876875264573798543943440421944614640928463332703721027998459458370187400149748062075518736103144476190713717615340168375708241291770030101677313382494744777759518994596712302843260823916781456891482358770353702588327023864463145290563207056372168205877592531795347665305482212691300270282887072399629946713980673303826263250377207262783597837747939411559751745853844237665606649953015446178811768686672964844004051847467571989502857862244150766656876130161488159515291434211492583759746761566751649045969002360666976420985443945744189677583180394271200480656195917910704180904746257492894951757255397054888649674054239981168431082349407329027093329023221472255202761773068641424517307782096166153205470242621979544918020829282771324739096911256827395419248558725606460398878788787000468845772391135105000284587587992809500295562394527885468754446299642471339836646880425051118599615648292990886039095314096805487579417007245303106382331492825626171050449226529249808893274177269046370739798180510677310873787988364741359539142541842464865317385351038442008547500829390939085098250985999041255763938027202075020124561772021760993743903766929557456198814969638312478101639233379163394757783987217977313071234230645727153789226056621749031246374261127681826890344430004298827897623555976736983798112058588934356167217870620085852153391985934297710218431800962405996399042941772483294986459125506501520297496763512487619706099469187030656169370321655093193499578456546996317109084200492444308763674285530215005410041287063461382335060481641369564109313044039513334167367389391340161337046852139653080594862301476243805433005997406081976439579932405854699939193307989225077811751117338388852897320289390692689366440774177039911206638184151713636104777937251406318874584813997187192314891516308667899473412641232272991975917590981553672538473454692138947211372796649139523846554071750089623313671776864203277479027346370089799254683815445236569219592332978942876386920232067992584022351172971316888351055670319167343908776680618015952026002571674158624088873591981052779837744743001370217875071449102542236066291691361319264745795503342874617101297064668837383196092278209452905845052449810461457797549639350792032232794271413755691264615036526020928328626502292238624711690279450943704650593731143013545329225427942023629019559658589491627424337260523472773802609645150251900723219386368558519304504868878172135774738376388126096875951711241073330553596621031248791959047852579032681243796212956106411545455542085224550566867097885356216488962658804580637038448524744786605093566422727671862147852060709543985971129897590743934935467593093704467483086639601120941463976826166897714209338675295886195759789311192976065649397355259396477955255560988603408560776243240260757561022231989219112633156579972184900658514504833874890083988990593965000950688016633610613150442811148465146340424055852832729786845010632332182691123569406783026047654244930341911057840219263974917451868776300724771582282024324122273215613531953068816272663606308570231081863137506303959847324018117162914948317257607330471168267414623040689141378477793051156033589891226703972985064087052162589818799407720464398777038489926664118311942241141418453980340463578133527782521363935159856641339250059042943743540772978605782576611120513563974382936498638631827440185168615956524820261725152189352810869582214543408333886066593683757967470974166160972799581926248050416572242914448256603931848944901642230985112689499288789577063421011706103308145078277912034534217486668969202006823232119085725714106825124459677294523659541217491791712939848344347773274478288662629056281539422525623461426566088013494491077085828395497163223400816780190807348871295896425438810671097670514473612003656168605509459666635049139872246759789785094131413259384766800524729654564025828158373064445779731137921050543201773521517526825707345397490081002413057051818014383230740361346070465623648504744121314198246488586633682097552457494839284196282905833650036410327864855747077206385762442685211969394255494904919055265569753205014362332702096592950713873816850009000630927783464520497133160425113625215628969763241391840831257114749880396114290347287128496747634589639626871374535143141219401380469208487086569098224522380494151630458559819017185093718583937332430142617958508808362075456911006727219140128886432614168736707547727569590794533693670504447684171188036980896921158132014558308097517673641707666755321879770593278837183692842997700929621661014917101997544394240741815705598076310220582908765003308402196762833885963155742803952783446838912433502665649661483661781943342162436250926653305274348941090701120613160426309446960298715830982717764993019706883672824595477186345100625497612949250222675060688493485090853337828377631146349069790784620725685006674839599388413053477395991050046691223108217252849321992341667514283386616133489984685142146680360452748105467823502666449158660862214731460478100630000811237844322397522410110678171474773791999109434388120207351241408088511892318579733018586480579988047448474587651516099865685560093654542816209919583585323491284410155350376478571289690219342217906164844873222051807600614924586397041417260025584800466506989913572592275545390481726778485869969473457582461734087670753007133125058337843593785215432554448095966603331065362802148618050010028325355172778826969095302589726848550627172286205455167072190366775222427936299761411240458870576983976173219250283701855098916932324357479824407127143229052936548136961855878654502603821503057939934194811094168294793637323668351817445138573183884698928676652521010629061789292147978386953467655442022849834931481053551467232695307424883006345115898412586864699786876982165946084240088331961877451171591947989162863891200432189492882338957054010945061393835416463110789823302216186973732197854275104038640251517684355619635022836619392513835738704470105689342015108661762386179650431709610211636817164800764881493756170156782352251341360546061054495543471474511075996080893395625431618323801771743359210417277117273374353070062431727317243757514309399584669624626639430531546588534875121236990999670142630391887138768062668028508835484116545817283552384632467823474695165749488453632946806994719744726497481849595309897180948198215147162481769553833897945140834112628646722791210407625434424511452211488899525171002393471585348189747736180050755717834871337620356828806886145785879027054969180956448684632587752982660439626787145885682833623672466426417427578831379469486647861326736650179164634299670691225998327918201309312713165636974743432121472181768069396333735268879110338081483976890153391279184548664338534232295770202533725409072935349119891762096049773433043192578432115592304481453904191918364751055933252620460904335206659550303119262992111758898660220770787412564199595012254084702002297491543993142915141504607939627628066006861954373658004004638869584762874393379668217126960724539998158273752163091214893206855886664703784116822547489139439037721152806725138677197505373958223105314074841281534148713824299475293769088483868927044407586091098995438985931421306542961815815558308200549743756631785798575063668725460361081844428926847385982128600482251634897571474492456044382297223113841673123347042403839539979567100180194362124040601343637439251801179257435785996556537321229199787269804574720438446234937981093904241427266641780073370111731644565260006083494054993610821691164536626870181130642454049824107919916650858071919502610490355385803158454833186602362379785921870158371047745176581383639503931671413060673328207893756840115796961806542261667282564416126455144000196987340069946566785536234336614894882062650876426398794245360950342504683521597424651557274599508455176732828453490550809038996514125237941719888459034379227639304698635944841272255496110047795097222456345644035462832550887541909588219004072803301022259912449457787264024911465952702483701903002467592966849608413852220332003941608890963595559019835919358002035814657092088946623871405820408202469270941845594534673086564769849805154621153222301370044216397560604709950600884994591225921036716911698242065788534592593096107501634548730966517581891671916550013376847327184431329292522210062900850264017198532305334180843037196881301736406799184673202962992210417055381898951955446093698103722120703543580259394817505444229113660999991064860365886995312345976762611492640360195817774336140288195628443797946500995930064117248030462102886941039856886201826996526329194304732227626085335323556422233634456120078375782208958537816268276222945827668007034815868568776033686066075259154269896526626391971691164992986328321143558893538617830720792944265288182111586812735166966665188789876557313051288727227498516007219223534295728300760101757438253182886016787294868006646531172862503987503529650739359845228305954698121343958620323571396235169780273022316231541393923750194787638691141937498797228079109531993776891015548480368732977792185815612664700523286290997139607787747381466017063072716040393146403755794904747863794670277876919573961709933671100794920804699370252488432209838837634707936010400242442864643939550213685332016663431090723634978263293945869269693866314817033219245637612518816642628732845722675427312071736697708818657658836651013576888341883400963666255920731935726944300332055968075569541383836070109136377535366648329650110423042342105070685132697326115402997543932647750749712121692631311891217740767760630346468967541708539296345489872505839056924432596928630349279171655372994613372067266380062014764892673567682285911199872293235047185005541127274876145060929053495621523501619427278222528220862311453876581691427848600937024132968469276580152913694092076400889208743993072678559396818666664865111034746069091994792250029008955041045519404902607049806372322654482845714271984444855746938758974903684697542669489420105265047505922541181703804283527279195112336435042107378862386347340130343021045176600757276064546841202348754508149939287237430636688436873077859656610024692402446462270158698286563132302925735110205238559904163957534113595319982687543472027182342794461980643017599715132503995973910208145404351594522693755706409445397648178177252329940889140843109760591839823412098825557050534761805310809685253341854452216299528787312834565270069398755174258348635815773339158237350347195723073230446859631195935198407816099832027668473925682939794801325772786144325355439461477321553405951188818002608836403388621496167290376054822028627298251259430425039394056505258898369301127393052010908723675903781088033042997816885371226554612338896578276799622320424610921746760644689544926206622665704796752649609052617214553412970069747342370348438622554233647456951854432015418589401977254034347816669583507937079835095825261444585605032077819091843977958429763717085890595023691317622068020368209753196887998217530213709825662798699777383731052230617329854118820398158994871902813977441787159603504429833648967334838212510874446447526680626155736301942135973196446891436539397227880649461370323496885242732586252340914246161558339834036958825497610880087463970852895893249673039292917718727355804444102633821265219721061807670782965940454031412510081225389159510773962030574744738727373066141975914312527844662528594028951230477775519306431690367097298172151414802524003996693876636041856235209139682425930957330609315644029247004495228261946221761230249343833224578378935152945716074741413672720118934495740947399319726579790449859341620918820013480628673396032965629902911098289222411407949172072373445451348662303195082507631759626833430796843123327578132584684725903384377255940499895650711058227323209134308526341367841461258739600399690026328615541875794662520577136912837095619421746045814160167617907040032106427863235082482628521894026296070238332813735814895671184962049128966613785261524138513174520009016805885205319362629163783234670502983532857267301759654842035837327647726020194870072106834830292704572639178510233566415473292387286837783480736641668843972964138510932892452612528715079690032834683644834563053424608099701543920588457896986223366103056114954610097507180274832020599132419953416926150895826824286535132374554462472559688424564460292278356775894414191495313320844431829747268661663260507475425858691784742339293403160785576534898930834561296487483912322508329094018265780574919100342874883245557283247328138970412836576536374132385282655964054449642493423437705865111090116011223838092101125402257851426865922910537864785333510029008480912963732023460750556453837723489669134334590823535045995050988626923748224564476526237988792841035672356394996227178233923079218199829688712782052152760893473525614514011267304281438452792890112709179169493069241338646657840378711852143680952261687003704286623434885900364548597117039997502088330105505691679561224492013736042735319101138454745292717938336604440972916849615330617209179963549633732422426061844320807157514149002262994176244297215460712296591690784669509576071130349586281198497692129674678006843604017168875615179768535337969745727654748856251657949016116561093558582550949298286476266766591370755660683053400032119163413495860994569908821203021881561384589235439621428444020383272676659930332774770828985586061739057035452372476128126179436594928380795589855383070305480872026594027664401804790662356566309551880765816659412945635481847223865210870178658125860975036767280810423333202277350299577871333373067670693279988015922379613866138700189615488369813852935209729545558468533254755578030732363187380988679022554440096719132350321129026220645133369458516010384513796535952783828419921352414543922265269319653483517023472994523229151066650307679160014332613757908665148402269364964348422478805373299461595569176892552044397762856414525124312458918413521395606534523919015376370168899465216703501921109809415978274383035768093943741616205413150659446663943976062918186599510348560289398913395476744683169381106388229556387784525805748978955448490945337847169271280343138524842299360658211934960792634205152488832226077831730529779038501432327019723929444871028627382929123479870266606483928895016071538633391128387210083648644067968894283621871515860288419622688932879765455765772435243009053592431389641483613789701861191066838396460638021726982456986313224094978120249048290629038425946986815716102284631033617310848333546912247730739429532650925665486798224048396547369914986543886288989049911112605082032061670189633111224857668338908426811179276796483174446318998281328828890796113365747064713707696193422146137634687157764507524026504836207046377509728986571408821925594298115558552419355471966484880544626632359306516815480413496365498325758820935477159639508374049864632164857082382223074639825922403412867640166325662979345880049405176393282695587211286123605291720590625200609998269572709837369351710989762274974905999957214592853365212375185795787233608067486892580250245548317362494152142648633694362369300332207167573078385941948789548012039408318382600948273467629230271945226303845316527522123270232257300067371130578387345006937072745488723028511373775656976058691453770082115473800360182874245737160033688399588406442886442100329473797363760694663185777966098285316891124129630223631424898577193117948491605126306389731183000433975896263855919738876467932311710963178435686868943120736137460730453254264195317420841434265684010423507276247272530585339387103309685060393391375632981092967433021211419401079110005213382029450454570708398497734174155668357818962992371403471783016044490647475413273465811509401934447277782874802017804994007888302721079455130664339995522081500927081011306288509439952679037354811883730613167395340821016879441417316750041165084628216156089765773494657652539638476686243845530346163754481679044367069278496315402316083850109949533652858651016704274534562490842972068832335460385215093165884988678706283752075801826112247379743961796001283676730411544365158214061686467113345688484486996468107358011311683918862573143528130330616906806722392061323105913324913908751148037830198380368115846382483192978336933929812252141982481790192677728122919952796111961695515169598877492620876270215382216406846246026663374765772307135366586269298690835823244973879156157777117055699647999909817293666100677120216770671660446315383684202124717735791008761081323571647247443246454652709099634428658886880565593688161249518161046993418688432011334666128545122213325092199147948777696507501003481930825353575288649304441968683404509820334253156472036580820265529276211667050684199279629904630208040262202228442787651319866156911904188430320269779308121554902844992432990086670661185462752288661378839492672371391069617189297350800292808816567260154838232764789867991510684689660430251333781405975366800366615851660150197539301383545847244034302291914485391384791177271772354379795072017612490610198557169078426581399153441311033219422316519614471043221933360295491103132256109201719203184121815615737124005930191690477515525621856068885998001755973308300684578099355198563577812571347373843965651949791055519022334033597037738714922571874625900193387485366346536336458634265548874885128000420371259101362865988786723000995319931758420146874945426247254784497950205616964019179586166504775913306445035525752943781697663044241908259967647018896004811962734497738150806209927170363915159200853056279538217721193331122866968841420569781208219121845301053163617716108600817920995846785745101231162298796364201900192050564959945610338068359710291745945165594282720762856453857393508744551213747034518945500522779605714402975535807040401836179580526444326747447041257875132569590080283708046358982028945341768593199963312919248912685117794088660709084964124314233014369195458206054841818215514314780365751244811490796667293292840093605294018692276547722920799924204588423632113771586738404228167785071267002862814961900749879828744899529173000147162641537630987363450683202137627424999476603612611287792334055210048514567356239490450134476206772992277054177951532088759020783272626233859766016937200042641548870776600223076171263320432996921286315406072831821288671689870984033611215042897956423976699137346924647722581644692665302417428374385267549698472413238747238014813866371618682843805526616440679102504407730400030470073772211636954113209808648344910779478252581211836995089682884056611358391597109057268646933730466944376801093876617780090807380383502757775948860109846496950264518763448401544777703281597522688912142484607867176564459111926021377952057482785758642946165087467012865416041167606474193364000292756682595996533155052232845554467596003751922075908002271920577652860887923716673250769078570094462743249905992396920926087657473061348886175169580548609791264732877737273943707805307965118517270895434955204746204270648239929755725757673156923543782884509881912699542859678774132070917426136095650450937529579964853224695909113901378938826516378595449344422089121869730414153486896394036294765105441833001472168502162464967233295178551265040594201172320898763419929234154648788908952313303646692035456314945548815178241313466619990759562944656765457174714564250732662648633773345100568210276229899194355828810585601707387193168099343214282724714586394898573494707419705465913996834477584020198295365995518226050414633071906734374950684943947280548238924107405612505534210933117246166291737667248400945463673321500127335808767193432048096325516179329825736180437464629517393750899878686504609105237684322801004828665733802689788062587023266525173047260212131282877967836364595757482948463175463728842179104104808842728728714343562581590210614137485110334543187591254141052659265169997956234508987581228465179710519979835274766312708683382410546911852639102505491697392305186484925911878231578701508636127025442003745404558451834374784248935835396579991010894160134811502875829643579732010567224869116121393967559718097156987219888524306175999788390394951199678465710678279804062718851705572833632469045271546910931542014811922173670270321888939002843438291748509807017247209404725398365622039680110055486890448760730741107354163658523017706048334012122775295224033148347385428339184244211254520863298109136490295239819966480891895370709818726737194678567987566373591797789590893753419792409389404293389281696394329305753486104148364662512445701333095165399706145839962340962609826515544486898379121185781138595995492846634779453437338661223002124852969341694263187540421014942973043431338661177632782143651440377725278772954754905819198575557267259680409353420995522973980628926865414540765247210947691212832565907426557197557228770841485227410883845647155726898615253940982392401652143156020672228905109907749659053398052857839579007329523605684107945957991935053741056577824589677420852120647041260593643430090537294707618781963026430082228809393345476179524709237509642091977026668746945331505212982497581204586052791418056357611380517914914170201586779141066426584812291096571938586354499303515553368280578422079760520783864593081152348726381338792825004017222434209462427855469353188610851568927992690415283201485919864764284786330237859824192049393663799247546389065235614027962709108362639209480763495452373966558009127615170692103142970377054377117584878338239265927577853383937818710250467797068485341367817350999419354037308228974723068434886511002086611655003626191390764099212676566895506860086507922912761393036350066902282002781242151415986978403548843529438351513147308974369308472832272178235106239311264536543960713695119156962919363367638249289394355493649969472568348558692223272518678524826891127727361226359950927226773256977072097374736630931083169952635897821838362856323058549707341297210113651816959476352392525374199242369218523775138141361965215116972820796340444118286089817944428200309821106847465896545158358697829626459833853641729861978278285703371432701101403037672092347223563797830006551701178119926803968796516700441381462603734860683800422740105987861427004681271538730845458434985471732831240047454149480018002611646103767232645138389617382782499689913830438045622922631129725446315813451617155106365767188121770885734137489230716019400150147674039417456764925990689416366054842682543534236859917420596404140181951812065946512244802124397600488463945041488499763511678727877449654278342621678354688103539530974337605381566700794689124906601122891536352722621879276697644250842162056722985317540351352602319216815373571040655527374694561011591713501033458140521461197072784755715040931324271523297716530844137240292393072880941415956038764946961055771842215014547945082590942438439182684817986094921637114102240505532423974583975656974642271212578789001142210172484708862036017806070327455903227295010689163235065041026176588754835938160146558026900794864029151985351289439342171102715969445627160045532667626892968691467892032501056107885592271368219463521701454772147728891544944573818915204806701774984354073118810203784151435855183515563087722285226205424779442423589597711806573856728647613165610386542709028538248323838635508342647045136794053487006739054708489930588646242124161553549639257710361961924753078652699251532503812229998567340309780937035329377152936646596745205292038468871138932564648396806121984430931525937002817519635106589847818777630701053630062181128783144877713066891970196263663771629937203748776132490934706413444144435715673057480110631272254684108245919509141212268854398449786506912927038087213654721925269493423668234368573924606426334684097108399524783001026361920516944900741558224905147402918498093133823274984720968729721770242647848696106889399430697490248083516921067022222456130827638349650646602265086623703951903801616264141952911199259642622988120264073470619834103834884160658162948755336215285312135835041485298232693585678184509246089285026935471044894808499889167735937217448151459935130339112808241096149496244432295650344570486868081604193774980601013153544803290977169688105211838688537841478118292719634576454543095860603151493603267543366628665859605946814827625877360034081305619148014283492749758796827618710128445105995167016905211733390591861220939173472788681072421964602957888523283741020006503796582020863801533879247527386118373461311834160430948846179909744836647954261292147473642336701520187365627232972234135619589977094740958544641108528823383081490895879528515706514966589698399578210181060857133121506262572236504926817739216627848395465406899278367084096259553035982770622908167672949211050549652198249731979480876482821661588135692792239350938776052259926622633994127787449276064606331135025758002801508679130232336253108250313961238581389383838745406726852050230623499041674212528757595669024554033095700765172882227667258657215170074446401218994749476584436995303845829831966891609771273277467822882686152476265247730551332598970845878759797901880518076019559679832430002084372522841001045600924566254814751144020635871557715168473923341694845557207647922806760677273778197340858082326143619590603012625179434047454537606345705035783828011553480982359849335368202526044716594372188983432467269213641979664714137336035695384155216001450639717965890914008601041285946053465228457419983611851583520859413422679860649624634986037842321255588581517353809603978957545450950293317890847648016446143204149519706439224870667137947233940250460998720825780786592355153874148781729563333030279992456611548289666685253839143143721977177845084180884891694586024806796508756738446747450915938241994569846406668402023408124677456901550461180665368061520784542912580868520434701352614294163691405643207525630992641970397105121058611611218244514992033891577197359444855338298063491073015533556344243663872828145422640910111171310339416649703000485301168280164101569766250868756210431904138254031515619171647668891294866475624973527356116662079507048365376538397371168470785335297689046988970461700815261402223354429584163253413395868005869167765489507367827810158717951141211212714323969493085722525481986669491331824408552251826474642519742737823732292176471864944004845193254598387049757304770273665759874678565524979937447306052050905514486811202845288339553094772365974941026812216306588664995120328989067262583123355729301967611122219784042201840816490404448218784782970438974432070645508906846561285041343753154703370200849063974174330279964800028717420623932993227195263563975512022146269971672375790276517833924223420581957586117618882037489136325445788303364938367749447073091167049246671805649614282406196762592369979849888002393884886770843479027648285370333115690548669570709393151410971901489078181361350088314599290914436955809523278241418212170926190177185327408313220955320812109752346122811919690234786353963328294052373954564812729190225034914769375605806460815517564373641388083454825426356072177825541940281041375399562950386313949875647080559869748134214994606155956118571338851958850696251951479426847311840670226310356744898373847358271038784171725855365702699768686381048583468312942145763201871347379051457936977591627073004834315711567925364438990083639329733040818075953915731197232303689208202324354080202806315008818621922595708942622028344613550579525311101452845339240963495996999880856404942381387005404056257946401907831229930896263317538104576094482660701647177608869684153626167165076230459342685445229435698529497629601157936410732163670628641415671966529996163550821765186663985639855371659636932971437128133330063126971138706662229664578271874958421413000607674845067654956892113203051712644567635723231235590365950129585849702299323471108928831284417877295999985181929415505620950842487578784503742529042746151461262153867016012963413267705370578812780830059480960781072362967653043529246271485144180864434620534615756343826191600300994501805322099832708115033401207860096488277433135146892663335714531835290382663141869459867332758894736327244954182966491650407565293247467188929414797347970380776041839937890930347233684119016262759362151526916164204590002999913149240867920570941738412880269562689753577272793137827948125319918482697023626447615673905955485635163410418613183225010404262365260812209884514249896855100056389873943282830081100060532046966399606127175747561917724661571362197239500663829028306719532742281194208365192618414994971614914833302983694882636609087931200990714766546734242217742156328559633193122859293892002190348525343737932349690657358764693228878279907103817627100558307564082577321065743707064484877523148692660576397254801947772119474219072716870873537250626111445180061513791465492020734779736189196923196040600691793879761740094202679092394851383981149334067939023887009893432705865704585489052961230248007094661477721930874194483075057692962371244369661966775168329290672387458405198750427472266465767101878600869605320777819302160899881427914689226286157158739413424659177911740653747448928441403893072591999368351848567952461840984014383141098826647161680792120886888944524987773663168405869601547838448006950206223741439474311922593842526223945792359397182041057464063231802708757322578225566495659138106522885235617753768082518352428259259014767905686983402837493753612548753883462218827538773780789429245738821200843739113202001028440452084244532266040927540967957660313161005979756338798778296683409161209288452702827617334335171457559893065260082172999226431371486443561321558790822203278364176259451596480223905923474838272901131484032319170236480254509826153622667498742240463099906175143751887094239045203401946715340716027341654047705459093836715898485286006115294882796217263588293064583516558368038974345972612622625169526396365803920816169737727576605802638009530484544435560429420457937074831310405243781126541607560881390767387753945523025808772852501059413573313295653545654292975311888389787380242574568359097638142289603421327267327177644232942437584181358319041871430016235050285450973052139239072005933600181195660010905670742349873380274112906451214331952799094386605552024829333018920273693127130852145627279513203021069200816875077885707119479641167973819785438893017390206789065930802775990483209380163462912052683013099929891712204251028445266555221539386491973862305152474449800897515945467716822680687674804812856302820993345461071079645710970740954495202725039669749552311192871844054322492124978391243883456822754687132347598765759717460048213026737797620275261184672441590497215073989149971445515596493539963647925126377391602421093283113548913690288036994435364697518892801968265359209532230943813081571096836612831180340196781730700386665121067942420097996387329941967267822532208849705499550183631418137886788944589005128042817557213523234527601037164445561001739961885747453262823936331672055192330863804900525012783529578774117816667202735714715615053320190432892399584905375263989000793992521036464210852117268266465357646225571640063871799459157042926386711422927314784071103866071077019831549797337736292380280510911446551642402016192435994198964163412294218382934811117573307693395979524707021850274445308023567177352308100303509591505667136670841425565069935964682652761251665446173655010683332625635001474420526322972493160364285021310091066834544436714921082898592077860517702006751043253977636187746561179609053616706958279926642825180867913304683702936863928498407133158249489003084423880831514655406583612767657763152543990018563979149837085405326994778789064467635804292541515950795848923650033701963866638930652144082443372046204140435928974277958437819092027742757710117702906574195425460392214057915946262858997093576305938557920723125747105304872904951253504848086864711519963222203070197229511920287946582136586015296087668182896774837921672832808128988037839513574491827732383484036517553663571340328174036630308774890038694685567116222298604590296698735331145144075926711937801849258792117882426636876711142280696326670703568477809526802774967514341058234238213686212845801322278084110802826204896070178779114701302727507105636262972717621666453795476664343417921735623924089968961803008098326885799610061366738979763010930128775007913016195002277957772213408699582721457429484907206911129613831277493681702290141852126776027050854838678601757079851671613771238039182029060689360219494743700284973146492353408228769855193245205764606672194626190573502608286641422220151570473986816860115228103449489567212537738333468201022875473856309853104893673113168129381312406327471882413577936732421471318447419519342825415595376904680457864063380898823337062225743961453343212725790463267214627492330328389317475610096950249452323541344562017587490512496899510801181638306331362447635327497612779680729780937939508234854865251447786778300660843296303456415263560329700169083473904181206317265502567133018515577539737767439665615451029516221549322596355742588162321577906898400866144268918729095225143907457540980765805850976416160662881211709465016328292449105373567530388084197730363734679609597957277029840871067391440998489060592107098809631492454226633939684709242113150123226827874018085075072926224164132749326326404760368480684864143324612172588311574905039580636128399555898811457709908320700768085916686941433079148608834361424996640909383267818005396553521762859918474069315321855122785460418036885816152185458434296583370308394019392183125397247647882030756960236489762065665511529832091611167604903192884838618628689000247506845201657842842916014027029963092036030556359249240947874239554910393734697466228064076471484564552856683139112633987836294108247836222163783450055331061001377378231777394192212420726542056945729258003788196928392301226433876722859654466275766949893144657679704428402076468620236505626932592106968626198587797679874107645126677104155858241972039224803245527047815447972938915395442815343246772985426958469719927419586491500601432441750410542032740985465480994268647955326535441051057977193751511030661941954845344529474380299988342988573062035858430798649830428831376023058171829627292601950642822867139605208739396948475974424699683102118827430483811052628420668228783690694597236165877327185685023935146574665232867097343363317941565499193535992303874256149148539664925251095732983595536225123519079475982972456640018479209925888174524246953364060814302801471017407535957978189431613950523894518348407195059472242846871791542039302696954017376752488445892693079877630016169527205803545547403133135875817443748593154244386965309105532133698859748547525824519440074385313819494840953597668834739810401187375374070554410331919211914247448376200480124708099327455942795645940644173997756451839438646820651241598560997591144169504680003328473287214480141458991952392000124968935101563331031697963373713210956229060698327016355763899874708516270962258313664467436097319998149526130996080391035495488110414947798260953062417834028751609774236693682317589012181172478359484176196634905039933606799911043225807031688382122841161207622965563843732114976923456222102142843506526356555431276643219267953134312936886665639691869933908729444965233053496966690378178484482824652649072781066577438941695934037977562455092641039921154661841199034877436582825111483700945796450095645086339508138680400516082880099110594126970748071534817943072158384010062266543582348299384827327817140108658500360991477071941801874282909181046423917916199675652607944190135209580849841281213577657021404979323045672455464248554602535593933939040668367307584252801539351012652432377712919904584071546890331850168514760519739840967369057515384863705304173198074055589662337216436323305652696503106795598928762856867799960081619749607394671197322899247344498516293906155190434295922499825907105521718251817285034620898850470211967808466735845248193110159394139077984221519263103252277026695530219037488974515192194406639714433906886412122622960137425636699613604994178111663528232953717716794946906546287837695006576921310501752495187148729127603772375068150542869970227744003762685622135314639083857246904901737248653982403353814269366350505171439801555302579933756024331202577600534608381198765056401987929792380938522281049296307356556274534948543563349687050138965071705930578624311755021431857288144073801683476157388824886811203146740545565313035658254527660759820423973536897478251474971263796057512683900544632023861507931949606766601575493809980805437608803594874405663898454533045979971516190781165128398734530711622969037603973655282239881870228741570882244276113919477483826758730200461087234675557899670518439817024425338627141698631534885572456077247654223851120407718355519872469006247717641789465332128677990580257235557037588246256008961596398880609476383661481683900535699211587503545511116108116156356172863591879926346466572705402097798266731896825799364202884904627921106607021897549659199063476524247275438024790951196577961243792758721762445323652148302205283990473527381681208237980119914951782951318254485464756808030822152845434919733273692982888568343183825728704970628882345658585017255059459211560336468584758171208203877953397030390225253957044159938038593128893418201788660926791499214733325005321610641092792516275049183326568957261139195631890584273543422922167790035350521954677469593062697247328528182304163306240578578705295294487656485379623556124128031877363343332062754482410076962017975514513439275863242890347931481649484289543722503121301034085922905634958275031684660844269247103079486704224216741692462860982478778980904161302538127699549472725045570399220756467480955711006304787684516222146904811211326040194332291501298822065773765325240988255973622652020318102686588934792373865942471686527046336022888189074502431424614562267388648076966725518116709030023263727773761589339591639186450023717075062847148010645101473246311886488662136662428232366833351558427811813370047688395616938838628766162975676699213955787537713282487781368237584825658206759529820851465570957038135559301477026458464939961971107404252749600789804391460995381628491939536284044042182448898732470809206941106583203390722524562335876396200392848763134160794325689858854797219473111549402197126550740554431850407034137689701146070102806297047470574951915203377260706697512143662651171402522839451306748476985504558124004489674318511338166496186967181632594203845969095120963808444335904504892942575677003016411108145366387179907748054660664593024277245173540706989748726826979389951450728381349601069509981542417148737917308371291756927224459874563023520746932900102924925799291851459918474730043468510237392991933580213377223337819121972276755196676525762758175004915913203142097047618526032629130618221682437323786250175303740322711065739389069415402302985748810192000860478024905029070149117790816708149991951975038546957088528848977436894639000360239292649615691710342246428104796494300370568405163976615424301223924233852199747737214713413320557465541016744358554745103179337207543160430189581236961678510548798996454228386675751939839853745204427617007934534666546923325417758407591678663542748031378770014144033959155768167362708160393781033515061661900759445144651391173317019559115566230026103385649162768367892281262841211144820053628630686437449869246796176482816872178060093096728504313916566463678188892833970866175906074403394893849620780191747661691120605507509217953556184226733902373953946094921673478882853417534341899170601526809028824012139621428006114137109077514244215859661016510009564880800377876335811531998555090501446139715775130981770694475860915975460258705096103062564039011022435609865509723471695520572345822475617692775722265909108879117099762121359216670189183258553542505798254546698429356674137680083832921651188507497068593919099909532694845989803299043144286412422585759775677722576864535622323587778780088947185409088037992809508903793291765339770720616818266051357082421450529709073220884233604136987543153289610319223343533312221139036218982448223037080000521147288334414556436670109423032098706801814541688288228649658795230152910217586100836605272025970732591892984627118629486983622659119862029501124541882708448195746422454618663974702860704231656721817563322814724661559174092292656626504556028049239441013633065555064389780412600392316050087643592308734849572593958639232821455879115801304733310289726597178541140390472080185642270697287953198505662420600521941827810570115221336891680598444016086761266880086733912519746284795284455522642387657220140235601986359688883140166664031133809510475931130507369003719371852002037956187549206256828027222863605144640128233843517154395720427581543790769665946952999648435874952565244437250259432253951937665246546496054995192913669076579960490393798651042301338479693000672116503216875147402187489904204321243797588328874538571675117090153689560359883575005440661408459719225926869121950233968512732818263240230842534159561342526046490296156959524016849464680939380461203553475492886821710840943533892961580029308053575954049744029522793225407165086696635784967379932198894397294121934030228506060988477817590796679484665781352472530421741772636755997334920341642213276000351518105162755210352437283188721915739288579350599577568999060335763883025163898102126143836960104188698232977592807080474038254622555471576820015496349991382072738667060620954910971511793413033493104064930668363230122461523345080055126582187253602278235043545391420694946418657587019119990977069413473032272904415840738318577338491195713902061017395386347058441303662091450995439981425790818586832304448335902783285970400206104607315570525931294842888425854746038323850292195636727561531270252253592685316789751043348025958684238418548463558811980566608739483027559532670398110379328937997109612103888592415496603233350130097171685585087331096285654850078878715009639147982209424777517096266884492659340698569890387266194199822304277628681772378849323344233741353512412533761640646885273356765444569855176954730322465712126808547468275102726683208161036192027977420134622733919454904583074863663645552837014018790794025435036807417913176321483484058543049515235994279799802518702288572295982493638227381520900135790064058216799463480323511673267121043534763772469816157864217705796332334970540637147081932418141020658341654034343103750596655629140092635774258167844527042308158341163002045361055723829087931681129753681594065018451516789934690752517538586183329780497117714337858304309700516526866146787416461742210899335634076295982095243825367168138866236040705309630007694984764051979309927963994566517755154548161959766252252431148790187353345314829187396697723046575453096531761888076303817989828780523954705428637607059548602244536309254541575807699289534506877018211313794054706640434638788390175238091023225201834804291800370528128134525817724768015785540517243932604765134146123434438624482788510198401630840734300621436594087904377306161053387146259756765080543708675943965280900736332083139804202038551934896959829413992448535401062149686637647985181562790588130681842503517042071343335289656032150892815230126909984380640144743526967490732292193108726159579836950810102712581558517410562509728105107669394041644488491847568945891059417390286200241618876373492650465113218480293148980104799368436263627485536148687757795345425035425051710650485843576199331101037282113911688934209507664833495561744429087085010437072162114566140974751292650907863093716723705120992631617418420802807790733892234812969645442593014167882265608088337666265866761886850918195496627218559616552734419459745646492299483710755321157413327342902180520466873641003469865135830623076878654720807522671946159525541744831990554866484649937059539886166002372198972971695264889480518792015064697552041540824412501591662094544784937632572205124890203384840051103461957756447027133661392354460877318308143851555337975211826606558495521319689847286260582731451121348300701367954885822802700253010868518898188723710816265857473611296037429671287481868633677572929203167180416994569861962010486630059039628955880052166444952577515967743684511370632043136927302591087136354307753925987129050380575001217692615991906302610119377182779177953304104889972424656016451762233456499676249565040120680759827034052279794378754196239457816071850502487682064958142023805131866143253944205151818108671708170599637058025702527834784384577639082478510253141375368527816235094911668290278735334155608612832438624484861255253661336161769192384299234710327353498012458258216968452191888280952020261874929032891066516926231577653495198048245683266615416177273795870544232136655031416872048093422094489631624923743322769593786895741637157520133167033509192048615678471122960107056815426987204719983073242701358604331658221869002045174242519702045560314774194257092206218061903586589262722702582035686339051395764211145416954214860577345346864026755538729632754124205871304063627855074762551720896578305359017710785977750453236725727235549548013607233842508332034890127514965370660913254981340378659975433869804211803203096317473592463659903264729192189662853093527297052936454336984138116766394556819905887460998266360510686914406955907464493672797085490614499480256096663244344441266855501238856469056428011864881935236195169734880671732148360270498039585529987316816594178808231491271013466814582007495988026904613374946202651218644968787452133286061571299464499645923441108557051747610102556005720469615500378729696600375269461253376526167176510820223436366592491067313011102552851461530773953992441995767416380705402362337815855155199232071202424126952977666778286488115643458501045882411966838742835196119902068108546522423735887350779344691850535098677388227586730644547546078690887591580661047248156345749690104488362674732754986986059613821093713166221932655265955150383403734065950919581476487528413396895251707224300795253230680909051873052248022694543394272256342409306440060277007075217392854495567262352761181928238889516203452065373760972638170392116957390811029669422467625666229141403142730765848953656045722296059001400613542956342925777425524934617498447641771434324765898843100041468668858487445242084309278875829880342546448171081714823566282118562086045098586815694920967616500010470889047396322334718101785952734042057193619940927518869782298525435037661791323373504470023373420505813888101267250347531787282157383098025811641263718740746963819146025654329483287100137052192385657292722106059945127751349774697427987062190127928911087476610323075974274595213531711094895241767984637557265643747252221819166037855755246659683935165747050484539736490150788820409019024830397625968677544602458174867196406463716155494795349237550902533153166197546366820845554143689982230065496635155640205192139791083736961405519905249775587053581442002913779504215804798373607879814372843207529435086582437619595188899870126332395629942170639277213341836328381713046961426341342055053734229775535387659119231222165838355224207289013409530642439363220745748086745930948770434087870838950947227621481374198421997686892786869434217465010261613306807367017543745742329294909515372576773958952446751406658691074817941037828365811514966324775253838895364389683007678246132211910642379582024404253114528266191461091342557877333088533918309126477074695425325700253596936729548748747613833028362213109149157695194309237893654018107764269816707100198178450988976597734783189345048892114691552642660138925817970839471167850469532923525386101684963281118977285648300338275396782592592912930572479205059522254609401913245817818650381492094818946162917295027490210520484024232771406738691975596323012810712146650097419612828448175743714149205266574349331941925998577950493253563597587448018410952196586231609715617798535283505125703011387564452008141020332286990500921258595478353904197397638843307035256132497963543918789801706494978105221105396938308549939501225235473466696924469458822607461693403416781970822941586029231535110384801870783045404861884556419163159804373973407286422445084139262944384119216216694348615142304765645752070437401229826677566016032904366277635442415284160992559280528051961924606243971842016346614217121500227313898667602299686077169414869225349995362552196591659662943025574919487824664050365627695756382339619458411648574736302197459867101956244800051740273391823190741337879483213447232455834343581326601061966100925631402968202093604018708963010794024536647222043430222381611908201313809926299294070667226318022151049382567917824098219165704312887110439325644218082255959690118921550204951988099777243233005441645875698405231400925111436431952460222693113372041870595303390148770101943634626706681781547936440032696292435878000093836509684455428478384619889628297573734962060502376357917544299478417748045832099893370035779122329174730249617965778135022841871434349881296028717816008940594711299751494158398191424677183761151640078926159976881186828894394769305984712685133415828162295305042636021388077551445013808056048818531189651891724703276406262580084387614705131372719583313910430957700628563715706624786988662419870910865693304000592946060672980881370133809181246187634496857126665388615342350074036730009732910474454240121126203569439964012607190508862137987219290215447743545512610922038989346918801179100874499002115320962681255071907877333670353092446694769519441750628889878791592247887943094388935163923614425879654349672488573888325714756504893818149358789137464772234548569878578734621562540725833563629764946310776921600263348569761411887324790561120812846719984372863129847999258152444196903954329542207585821769209925269367109779675032065893560271120439996951971977517469376675403167251283290155708540750229132635978175679432531029663891773945163830833198956527075196952017738887881858450629239159266967586121430660783555190129824661797701083466396333274060046254615775265147919228864552682243471869537779774885103147822579318324784670947272468203967820137804913394571967906957952086152428642289479576599424728120146966207498317163388502168869457014947787012084010329765876241737622231959637705984423419364658998564749847554926230941888434863748727160170396446413165667661567548019569740069241348483132786982702949726719270715349073136315840754210538439328623901198785023284724672144513494783779220655776525923680231919372256945897691300651205258023418984265991476431110896660036768673395092991695502799559350923889556863197098836813136043360834367511913553461916688639288320630336766681301328103965255832205573093842413898740181140260004963213068438901101596655790081188296802144614403598446841597666906077144584809616538974586223070783025000809568055191000275751856986003303253481940582913983398666984363254903364059315995005188224977585661248834421924988643488357370067343502547827981056830914131964570061851201170744196200464241847121545991696929212652550951393158775481166345842135202055069617649958158775953417881312488330970262053463076810421184610530333506840899307522718236323654557455751564450829880356958169525909462385091803830736336415981337727283895307738898438132476033324063939702647163075998196274440646761991584643830261762857026436724177720247802929263417760652505488044281174266725007653069222827315396681691335531229001483649178951910795210761297528294054374217067931151426920658021162430003281930301378386626427651580219463914053806150534189867721937544700485546045936750500248094219612134790472363227865397543410430168843451765136632644566343208981515772680669033667792623737561911237995018456367175710957183817253877254048637603662159883303766104137203635933518190692667281241139497119245876247418746285915558688211408109488655472188772458064997804435147034279744742498149430874582468190395615218687262740342107577414674958639232994556278704862064594261200693591236521005341147949836101959401796091391923812466171540681983487667387273955883925678008092529087215981874450197952092278091333523459879145055198823845416419253782023665610491823511366870893163049561829734612997930559152487396802971266396985898734586344386385730066633711400205848074475891847910628469013468677070967302366780783043405904832796998081948688049671082006626751454624376374496352146841920754394669484320884674149311861447658840745714753970302353492625368547484963659072093213464216865896417825579326519019123132365545763174348934572889388859733260908215957072608791430063979537267120374489315578529371046894511054746879014004528633867601622287901829448020383380000674847835540358484136416607632526867960674431246481318243645732257623387336382411066175364723884019494581892760128272776811105049868064767908531566258904808783732060334229038393076582255331688081157304431683928880011456624991736201452822536032098535463548386310227290006558651881199430593668503975844882390662958645956674113389689994557159172862512287067585550507923659629404925924448411252817329818437439196783182105995030813426413313958580302255666749567007564433990547814180497735066203355115816655979885882792648537891875715279847609796011841976885703693721819300150657224844411971812617082531285095862207435312365366203936859133261920684227664494744769018714877436265534988987882039961834640424519301088488014941283022164566754443640629373434225244815297748415640728976462878480674767721630055365096557770894559204706746881914052742544442826466573312773851933757002805072422553724093173866956270988232222651631563859347050742541882181077212928013193466377965012853927598542645867823406579507774905279494051167266275950629325412260211528585325468024187773327686040655306976114077918520810353598804674864048444634327373127362682239678268585188552891371443257035211493087174607359382888515105174118747323178927723678504888664902897020442935907885093908676345511946312490141620330189545139752364419243371768775905497381884856969477234097805207554243526455597860763875106506639795756061037812763834193938535324610568207963719801979954194156596314666870817963606483834601975884205401958872406881269693573105302067666880482174976935147870796251540320380560616858599746736311014256321679267652967584422654582355523665044011116728156163449231075207894973505192659513689111265493019951425548493615364963691607418791042318880021895118804785844692205852591200605337256634655891977896758717737086035443951307050478480072650803135884070183585325454768458796726493834738921503707103924531653142139379898486361153271854869358283229725420621746286237242469795095284925637110067430777157865402328038433648059622394008035142400081519835097622232924494395564729745198533739840461043392451094809277937300525567868039363699694208189284252631687445905460394891978157565125298877295051470390861204521841434337209312876915357630718875376493053957237874237767621241154550266178861667839811542690509894305159909974562465072739129373385612434366434128601623430965859576402565541591652137191260029381174633708978184981781953258993405200836040385953774342429631138511778604364088363892815803989302974738440724979959805547456945899978814892111745454048021145320859245720180536863639398045745065180479411282582025303657985330560036532619841502629248599343888782243500257525559964123779976561933446004383198346915537431193939344526996291174808372360303572806023202166024935668048887478493542527810386631394136268418720936435066227742233634270506803397235846220175695921997280423261499144792459474135689310020018719044351843232221571363054587026973049848488359661685335155949982689080239418338940436091076704676498902608576427262250011759684109900780707981513894811423486291147500267111330039391070086488690884274690818884070468673416921727766680906112681370807661541677779179182156761605778943216787859002105402579964260564785391947400524782405808459329359121917941730538375173364872979968515381684396006891408086301080801428075321240413811332985492547522096061471720148937588792286496754496915028009419927689023789307120346800295635279175367268672483137738834173574589930145351457052528261022094930112926788562512734501727519536898831972890946719953091914476681299256039085866408841198487129998739776609267711251726446649109270123777220159523379959688812927003412016307748663041614426752783314114673420109981632112457362142876523416717312433473836975693891722735399538243616256387745252846233060334713102651734945423426506257665569859858257500807003167581780036072704537485119851640305582465517110271900106553782749617498751349057696388945278803260781282751674514124492019042265761969670683911744922289789977555144069723776985974359546837726558584810748456786828871655357816509064890304991423570289856550608177446354491136407709713290440322733745947386153776925176919354373727127728653894828137760282901621668818903889729247857072477390152383509917067234913828764206416577636590324501105821428575373069634950206682671078483309870381528207886641920572617993769852885916893203465510394914549356120688035445103329170383699818684939782235589122100365672494637303409114771190034479416867820300957689367743377064924193168492983893899892071500342223903735877790211708133217425176468520330886218766550614576485480766505165501797673796208760917371642702489753574415158023362905589794987393746502316507592513676735796054106062182167736299594923002179812992147199833192871320655237768651546063843380259137826970074509060867012259706166924137994859717483967538813104888406454358127591792977342534767598968112538514923785333811321260531107342392986190057744012434874083438238333628527738295144894964266713850116919031117342153451905806218302735101770673374303816576243369522295327284684704645325985807208483177353625777529603948143920024081031395870320303392314575957095343443695348672915309403705305513028561072715482683757506886624135441610917330818403241899903996099401195267705549976372716807045849170156413303093861499253195278862160482964836288573757533317922498067549886047185613555993539115373203120346557329650129641835878695412490740958683901512652097181635120644593272486657066370957606746313416301827791963033850891459290578271020534542402364479399341625545189456356964480748858224220832641072083917420875294083702493656448555778478310113922196676816128136349262586776260447134998802379670854929061420905347979997703251503477479815463610210111434499130568263054258257547616085651469202421737308330790016588928082545714998041921246539039802120589913225974763718033152203794153922649543397467992391887517115832018972203450328104924646128679887758394894245991400344882407511422697282895037591686459333733418191945626456287638313312298889097996589978724542623927915079636827932687923999912216899079698274232308907520632044687733109914869425978134467200578665025459421689658208598636608411386953527820618944762483307959060247154674397328644132747835706899976160223028503930047911472946721322635908682530728663193514242585357607717067385768592405612872671739143317019269126718090397428049677877050235321834694503932062432950723971052676453284244356711779744692543012076539598723131817098893341923940901217924229934625925182192276223464642331259928151317437859103904493377782575068882034188262383119626095350537152242273321434780228920021623503608123459443362160814477747533893950404182240146528402440305517675257745288541060007395876573411153596731153858042721996605306960538921989212702904542493211106711265530435027437923365702886703361811857158243302919611489976439534793021213192623880142405023574815041098505263666497552642813708107690582988180099597689316884901486032143972527706159224699446849200867211621387826861467293885098087060798400164507337869344004862889166308087817456808017733481125424626499838427588310416202787100493707836798627016966172917502747939845187397251960529241587845609137378266214540019614506286855819667634905301082731140693203526562268425945993167979247784898523768886480569315999068933264191170201298649844845617554723474133870042243525562334392839049653568599270196194042876319920438646501621387431318706140919448243731601567411496781812792736458694191375004553695346639475595067099705847886867859104565878402616874426505693742543235560966042292938865654852362406184268937633841981718323495930387065380640427954530096910216378017808980167348893386525549621065200084231185516282606083420327304119042744925363960750219377100922344464346307326804089770219145669305562441977509723713645631663365748582262849055201185675663717381449936870039398092968339834014211173073020666455199338400307443490602241821371065944033271560940950121179575975558467798214115854470499187144635907397871706839328809171368845351916421976521965589619139017085297620651883846655839050732545894810923926617481440998448472323465852433595465681752834640750819226448551767158262868376651049551012140945156451168932408221806175942228539932039747912963201791373703128464641686388036218595125269975896617569464183870478152877255947754792940277849274499517354614160915496015020816913199799531200875094450872113960385303833948575318690980383557463390511598834483345100626144799845531181195973047314042680265671700196279041131605376128134575756037172328942164367783018103282529598346227014109856924859986560558811096143598652712393295993790636693960114433773080913266660095554435973044338921289488084430766916473200733664956919513322831766312914229226090237154514027276385411640602315427174443766347870803421884942824525697688025706196783965456271902027758581323731510011131327154646633067744295561052550435154613679236641425260720822584173259062905590702472374770300503154912153831495299958886586872371736533748803178546466827088031128415074563147282461023340658313185513407569995814288865895520886320966365704167592872542624036778964588120698832965051727258829273588286023280353651957103352584794484012888808887900562833313985456905705538927359549912703458000831177025062986091529602701754740470619391390906969083374356872647802972960227518713372609371988649179223375573044614090100588704963792660640181462979746155642631515029935069804393682912004634573275883440993355548028811988764662943025619617885077677894769254938749196856537458795659286806852895286402310673020949531138607212904489353576255888200902797913497252441414072562563272766608644141069500666797790990195158961421689386191781940004218444238203188350239318111523773464647967995827230512547545507803619193532489242353878820292707064434108330649159425549366258105729512942531089638588175714355398656175557060845894555848221275907196900324185206022477834205745860789296123672801416397158296004414207938413701849546300357437047863000949666213448967993196151223145891180335600227048101343696002012306275577779703718486686713478175685979762153140024237707973801694437700173302000318178354940947193627803868669448962075418798072598030076752667340084838562948416502019971855025444378232285109618595931345350306553788995026937411923656118978770470286376334946408321146204414421323447968841491827270962074933044538752743408441331234565032497913548740711960487362407061488538049560116560166135823438800415710639322568213674274718009492784359223838871530797143065808900271174806564579058689614253706841848843677977094861652311405215511043418475278827262234024809495391127256813696074880132721361072840734449222858516909573045737050116935327676329701634212224740926902075909362039490356529929675267188199689942963890454253800455971246231596919108574681931445016282884152137946015192803337494958578784879725644626161082534010925661444151531585891581162189306457691274654847912429453584787861330549617239850467595869089483095290875904950299789900482254719591351704445160736271773869716411924912765410307637445360847339159959686260062019317245556932233578792771989633352769618468517690400546194387495257355792461566287269506154651440598792625715114365699961596038419586857264551688957664221467139568694361491907264534061568471818284929368965498488958463724996991483269603608797449382503381080480225492839681039030130838087651173456109991739363647773183637482271803785173813644076376941948432910679405435327439149086916853889587656211646974065471510294416145078337462949238875405262289430276678916109366923306180160075175223590751742026542468794782873580063496375922544176670190751346973489673490335907364516879178816442855804259754542978806388753465677458359529065391170558421302750765937084534455500542083936582442499329204084524029883516640645062722289098973863997868973313050138879873791288168283431717146647193549603632329000175739702217270160498566627466838542344257752412602256416025911813035976509680738232135670581650941614983480654980264043656407578324066631807897708873918879964531934954284775919244821761247588629027322124419028775214985949520685409180650365686921974068982032501832110547116366122698263018564480559939690640718674742225696909144000433416233758819168669587673111332227163229021410586932758093951099122092164325865948900293414717254685367816440828032735238229918351237308108737136034943887379039497908570719097647890173192981033060861847411882503652369574740725217630354439037100320924562682859909431416726540942146797875382102792978280990116271217382494082455699727633508827932145412212561950012224549680269400372200795420660681451256524472845420156709647252673853384004521096868387918122625033598792608392233501322860856809103255632625924179824841817231252120065829976995218230362994626734407059691360508130635101481372694758987248379409007459125847782589716548207547713251026379528702756450488769908044440115390186755815058784105732473030681482875844747240777974506523362775342100187901285736077885364151762438712458757075439241389613526416049990568647530644526660980753950225345700407740769563986690370500645007993859972840231813938481734623888016262566299016725908093619053248827745447842462594856791743783806049465553770278070559422301991826125760590972749358678852148752558245480406089787679416664796574780204158798763518070123338992456931649952429215643445617774023821115729263915171812084802218017624830724487091697681119364666900818440786115423183443446287463604277454756238856298943927522310209245497624754459027455932634532399705744543053923751692699702304413668926782181627365114972551184216753407889436287402753238777361080731775518989145141252099360300373907262723369030463405428536956389828059406144000398789779220935160182421705569535153909986291583427588981937476291821166018507901590567461625961339028438746323708804767797291438824534773492524647432096147718010402200064041801610223290459807358913008258950265869176088117363680516970863746911076646066913123592711591388805616667890134310690839450759651739364288814231146381743120376960184348067487111717124671172375853214263308317887043646811920254651613466251308862332852962714418127686347239571236539675492557175229344855839935763488193269106726625330437937573482519914327699321410245828540031260231244917198679841620217766506037166333091485565151150057024546096819438179804616702846989866793077254560078725324011262112825279836433151227178027909602380891552090054719729478350925970750633013712044429710808552338254474384496173594388064868661674140891402480889968654494582326125709465161774967908549007779034989572909158603058971720999583844856158241549723185928592554659269006853963928278075268437117298150811636230845644199942832573225875203035839303774603399666554296462911689260177935837788284270437209457250069491518600886256406499167165587796544478518390672822227162191027096226047922337461397190278826562711973138069540676385250837359555335380308925474805238342928876335367127690277265994358069868854829434379747919385939211065730605469002192392615915437891919320341117888583629225311628845242458658615756794909085985956194282467110939252385948335480992782057124874317693127999973321416531907950817732940381177253977097749824079680154467246704332578552251797504860514067403682293190458861686761821433654430368420123974674727421316291423992825164968092522619113249208015588386842627414357233523716403513904842463770410989597036097897705469252594247411079612130259450877100846666755489464937434131771271487028783463567675505770581576801293481759299945285032708988006523858003544921578062369884518976314692605760107504643895500420771697698571488120416750553373990262736040409053612364926956037884540820055475932562398197845493245200057165422847636126799333049040404810544785462932276798868613975459712316466289016311542500097625623784966179616833742583175327921894332943773847734345251596470213814272478863859229044381037192447076871620778070624717263161864988704183823687451530866986338586304555286211631641792145109707713265816410811693923717258139520348721132782622484021206387500687373144334352904412910669011038348255132436218484287871169617069381920799063282038093837301613010670451543101227388137904105859677713712993780306632225346077078179543565826593950315900236847476726370342245305841472631732282832250698442127585170004189113322650933839955728894219852680822057132947277226273002587152118381905256430456962361195273683634744083631672654556477795181566414964716096356997647869282044474707302870965663932735240863970085159925677245587648100840822490616124295896770366334205489091214169831794812345327060535274369989587681767851898308969190582770185357628277004730810031938154221980600984498755935104912688598656254898676100371684854609049975254180851163540020976545431143998989784337022619596061516988594747574483982870524827547919555493064590740490385313960288533208232957685372165364407130656470068284344178196354350730621849715955541937825365335230734873991227471527236852606947420105858969938821796769966812401583715268987556776553666773001334266926427045214611704664827572169367518064598538145036487482874240634910986575145114118616154234461370262690244764690871570272039660034884819299582273301220927862884604533167884553290954847042006150952833316365777838366862311033201560537092674008456632187209565980739515192439189056566138323413856264208727926660410169328356249222154683473867610774231367906291842287122920907616393437531063966400538444950703698494503729850059403066832198526783046847168692134570247836460688098179933678204889784125198569321831366187517804509095028992018283931543733627302600456080318220001316897944198187232619416165526086861313295428531011464047153346329355618429222595581515513101879858761045054405623297582020052013022457571507090308435841141844828047112746049442483755339556728105551620921491379746299656032916665317587439230453324849612140423476899674170959867594028193050204093277039246397428021787353661051733437283694224663243099655567335623944522490969013259894596788563671724836541776102456240339032218114449609389285413667176811487937788677343044051242410859437794874044715854310383600445074247637584058222562896842605691764596249052185014155054401407249810348135430128717231431744268408650649495869303339135500294934940020470813714977029977300670098490889343486264824049045755465844253575202248745233815197236766116069679722461728629000960474642911988914006619880341316131578383946697522269240409917664083793209245351427453456167168666851134606553632788060856974995636023780555118069634060489940937006572827065978620770239502050504172244303209727217316689671488406581962204967832471904288891756976983834185690147262818366506065183414125823092117971435283983062532057827730868460861262542123802060613744572547456834318274311808366645708000841376655873856515590316803396333377767598481891793308357582779357453149032124986650613204960163845876103717278364621108431426582169351251372000042846083817447439886804027007756408070797757059615048554866895878502177456629235699269969464569569568268807018897552525513480540811502439712322581002414982819474330217680473714116678263341752997814153644791715513349644890092709847044131508587096736369365433315682243113328815019299372326584952227841416588293324004789376024715814849007442916738443307352906514356176305817931254043174423111094151907672756362122802989102854013835474406063050637266376195963001528993328256280913749942421637843894596653877355950333573898366258251371264305799367748576124018085320128829826335546609295233947298159006787348082141372589792601479814836134922595360854006124742419123704520707103577879092272293209056222887284959053271015988365405437794776858164641888590410676710607120270684996836892024454071885937424112478917425752800341650434944430329489758014789433229821597641885037304679314150645948355061755256788156669349597271099526210628269491833938447396386084954761374410559738366757973088413538706953864516925943937724354693559511372601619031856181521667411958497879210244814906883578305634661021612101278919505900551383140940191490160890539101697559292279812449345607135828386501883578726795042354217447336953286465864086536900391202154113088108784274760713427559725217755464826390467644038522598787783509623213837964416674411992317955515945902292816160647858349528864671287544254428096483255316766683973513482289591844312524754126778935090695852780971890761365391424071655599532947284902406822677418418981707352756762945038772688201845240866803905960274108051737753737438555354069375620659010494043813785739296915041440872271851351958172599162989095729450593591756955137482310093015963439321807922313190600483975025889358069685101885773246516054737185744629182701046559728183004660372196861107993493232959834396148022176069598305748706282099546049081071452187412913061890435527416158208147512635387959973419586916868316298332181654741163365162594132329804948109833338313277786675644730828004692200532741913026414510546536237943243011206486573514551396037603060369431273289415459800563023968170572144485415776714227965209866574290067565724996637995151791448757250450448716122935098444934986961239665140978986053562347698342916349033296946745106311478008480278259772858800104276572652851632783602685730709696805292491659639169931623618126087375176585053244040874639558111587180683355234057165886178120923058572001927461293188324965980262268489749670039559995940037901124253465744665089213538965318761130408107623057278412373886189514215037892061285588441966164041828100248410009220724650619730791183444573605385686775150939071458684883037775827279216579792341624411112362622721746795631057649397923536620624022059703483535098122064860896507072636080616550470662479347381348493354345330734046282225122822307233048359073784676925639859252579210251033897375264917333226168326303064488516226147562863802570124407381962318236327925594564978276267360029928299879049996279810116457649787567601162259782932195122296158313227159484097751147931800383389412554563846830702491416442353366373716779521456907643931753393605939458458595134561980718960070805315021684413203380086923423663635276679524407169018580910048102162645880146968653820375890318117996923244119943236197877785323451669498404308191772542470383292291016598871474497636951635617773940879187517066136904777570883886878601526803517068087791757504002502683767488884836066319172988917563206440096069264187600439310208165698676961064767456438102385360136747295436802718083606105988408549375533005115772913511943705000424011634898819455044464861955648367194779639513332924711983208840208725540956561542394361154758579207748757433604819864543297976403724144190881246508191984615724876473576000059802599602444450113606301564581186725772513644090390957941203705277688789699212505280705741951119511377700003095219627365633474368402063570816901107875399928440870833826430213807917040129241955840529746442641230675225473344553292829830771429417688046737654465408138987000919394803570697752439159409676603019234488078064307753791034670466203670004734380358214017986709178732841292290941799409350603232034632188949209909406403543617634580744558702473453179326959447614179162342632839785227705133283209024363359844173361859081174888968209649436696786985281058998916257572845688539336908113037054166469244436586097533704951050495234182892346102363664596116829636594836892968051828091601490619798327747838391552467891099386182373272188512747265364793948839517299688059705712688516128581545479262614803838082140792762619844267925715922297864473596503471856751743022952820600073045927280835290042142089322574058491009680912852003757030357677426479791423157049938969261005564528809748436362564571520265084126787829870434996155730505250304773886792854614619491290203617640996773404882721950405772983740164729973606567757868046234435043843124987458052144915061058904820554155154004561862654411167216080172117285016551403284679067029590457529771344953199307527898913266706173781693599279786942705647090554164959240237683377447222269643724483840632120229934653931449538085071102692382815526456886980517971345507509399337402169211888666154518108267878082205318426770643828054379603361639904395540125383863861192605778036241762763996339519215715579106708349601612397344973926646566822252082877046092757910121533232159846284247611738972703944206331252763459959085824595956379159301298156517192344416170700880785533911825451800048251072358493568598600252958611297330991592923061163791962121434500926845364862831739028385918261508174894281411622950820333641139942540407527326887690461076485139756325804265021550484951133145836098954814655452964599697519350510616898464361341348497736250333810265238693134512277194412035037485083308700558641043401774985732825290613311507542537614661383318336442721976864938248228083191322752390696287491706972218478787272171650376831995491865177837467264666986977857723515840999097383318020909084544145592235873735932484952868253285010125423418914441896033017335630325145478351138890243259941396639333878529453701467450584833197952531464141484622693364937500393800618850061457985915267063165197565889437424746237033486776734845130425294744839240021442843137410864378165251206006155715574387444202808842938115594886993121561860231936007576616525364114105474202142347554339095595186791780278849098007210132244976090720953171252893140471182231521018424383270373557762142969077165951027899590046623033208826173591235770380302579499024358289991178820653806705829286680782114709254355951440817101878651801341824073241866534113084472850660495519183298972914308605689467218666360375306385581620457032452952670802527286562126619155178434551329971531647833919182774683571130515405631041383500106427891658084645535512554821504845092662078511775160651651487810241082770223138612798765829127040548474928063652891059851007232272056700251076733598195355703145165037700793915036657443469463710256177377712046530765871483344442402591383151413020525843965547918699662338695876623718834071913028121285515475688261020068273288973082427382620539799942587979170083697098923303653745424700477673568450162431790375687113669143586723270907877608283350704696604153741183184091313041800994179295676230084150543722244081081516305157003791467900008959243011972235995942049592016583978355355569457268102354507009299339543996190070318166841507359857566502368523732132203626282275441790767117150870472189416771705667902535077969939099129534962499415345313586085715540853461228735097486231048532559438403594403963060446248624370332003273147425956304316932662155297853139107305147294750452360307357359145349345927607418516817830906381462370031541700174012620145312683299275588802601541505630068252629043154845979133227470098256226243345718708561907878156542823298836958948383582756226956491033454294246593583858682607653146517941428589446133214612219916766402329891241105334927010771700030018828720431171677601032544077666244941948872947931930208817239378176285535379038153853120682852749696732275930900744325278419538200016542463387273372493515049587664653349790667598766627248396131901260180883114437589435669098848146985073462449107670893596293924093109990978546132987255656966481733571606307494431700225950772724704625757770885328915542542944652350485160182809949179393212391203079590888683690843699459805729246321994518089664146035765530979514741910558347093800139417474318580014043624520556239584707112265424909118909239993128265883818268830114781809094718413345924126400692788943606428748829538832052464484088544184428180985362743591305239325482256132423779770947782222212246641697782631939745117272107828887736678383048567889593011198023272689680515142003544481011898429338432833464829415001842448011149338459120527433717582856993513298680264974898553273646215850226385094221992958308603353785701110462797454697549045313559762083278642598693131888028278762250157464270979772280761909315315322651989892780060186042112550308383377045383100748891562240728581479864420564896603460692884249006833785454701767497894252282609374705677181080155390949721983354234870805361688123339323644031764775268831503382148063793745954539372621703174614129389985012183681043680259996038144126126863646291177498192130673062253768717375302820705543345399415109425840932709712746331786787140411757432206472920433060798912432817973496173487301191555213766774853146029184675044000675062122105754680768079982748747626472905946596883273664163438588574114719584713966909497969450700601331619939862194433000159129225752922721172291096146867510950181532553874154923827195047404478660571323190438453843795111840839944592435723572028362528624893321034581452693479614422959038806334276999971061893276517705953603571493041586722604715521164364561090772228258999982443105940507827436139321146528503580371543371716996055545433915198893862561634367927669062981794085307084193407685650916511599666335330980072151618239690947729495690302325742024348423268740864693269588854614337628733337577640317061952930470115017892240702179697687718103639520725279212037580120050908640302939421294486519762829042963562656960768322511244991437187123778966082828707138745965920200240321742491016492020899703936010518440761879877941463471449727332928111032888614079936020160503490685183182947754751660991211856289785482235954581248718665530616796927566334107791774740099996687518102470557498612012975518103076290068418632742532262855520145370042781311157257119123569306266445494394799211865618753551417019870058079684282821767573510262268949036672309593468624750760187040183529990845758618650275989507996068040360692985740690901312447756462494338127929330512450140677960459616811986787407005891355274529319237569599624094342014089830164930032454438763067970419195347656836205214692834841226154934482307638135178024792364517173158335692740609461280433349423150173623081080467253783779424741785597539318856571756749161259469692201525591457989641551732587535200650845115207767852700037562619711239904756858894582943596682018461626059054444358055498258255492527587077774950095461192916548968651336599060048644083612125133710004907899602625958564643984968328461849603336552214202596863938984469698634311018739469767402512811313008220670225128862639789155759567717311663212306488175408510679925462910811457522441409370911964488784390537149566847949549569486609546758224974781952882551567921496291739855610025520163982586447875887500794355415217287417279061487000497949392066622910639596362690510931720393618089911629723469024008302404441642320080986015691657733433402573828045075090881645186511976775621571872220962009365606407000664890219901837260509749050935621235737764635594754791685411133309198350771429568931601008051940617400909373185290748207852417641164813681244064523848711696882184534369642164250068646810275228693389336512887277396335353416438518121029864997480570641062348555292432741459955873959846365793920857204919638119153989915960535274227298137192865936494010166921240026098194171549080576303759021352088913013955084573904953963378352415027571315192201546696426373039049724846958841213864203351582297817325763893328513876435222298478886604130758128581451349014554440526166220528590273586318194547296911255004627839206201545826493173548474306711265955822977059245171846689504896305688614112267125538973776687663806560728530018792564706841069024436366815847224223310980002048636536506062199801088977537039566756117307891207933115065934127041964715617187842654051385350442787795454733005716559739589255956880323053564539471938803122852275881451341409655139553769647971718631912984966910190090180805091536773481842672088277381771523216537523044150968596798758812565731339200090995409565545786662934571835296124050208849226369832137521490599188139989986324804736760089685215346614803781736339129006844942686966187778802554745176942220659731849313564036358859882568707135283786594746281786221722563853717364315418959189912795922862949924440046205613314974480046091141151229249886606327626415735866625112267292615978695113422240914362209487817320127594953939011455688179015170063469599502738392128513967958077076026662651218250607818255435579817815693966005203654526859316795341637809262733281870129113976543631083556582932774899194351909572514438256503053524051944605716151155658394636400186136135745367235946202055279596932777185515953175008578996984094763316394849391950306871063295083917848004677462974820455721444975520074737996574530298047852715510853864951597446855358059730260799518885031641563460373618824469483746126858528798473727445107863285734199767572562127224626114864583902889162140796477740836297481945274930487271216949348389013792318874425104868102568899456580916226364204467821035484294611060073249357085585050149316746795612214506487332152791467891959941758314206205316950254619999518540949105107706836655226741183904583617874919726208227657002211231915635023872636058612145708808503052551792963774796034178134825324459340887880342862111716385381084653089624681956330719588989559279982074535616387906562177924150507485076071323207171192768002782658221047174461544184103658236113239095288061127870361957665330050729265659431457170454792179254848836197609950941654257213005319831187144517031948138916412598501667132973663331828308252518606807023110440088211988552702526119825879935261024520226208032991193732872634501046081211508566418590806084594334806929629918336035348120985142024630667677506667421411744266038098271219494664408611428668688375666273781089791930685482857855051100294530332594077782507736168256828396899381343407767745211731576349517788487756414266730951832893334600351743052541336916591503395727380721440223480067080353970546900449312376387160976037221597142473813185759568602596329559868032289572039790450713945996972228034846159553910593423096242104561394891854480733694384979354351089209789709269204437499009092266937359090892713263012774339856881038410964115102692742098756231357548395507281684189447113550961831818302689966288983004396721873700791757184134129267099319670594285468698441838942922212504528341090125247113243632192546523391900500554646622089498148134129609111371532084186686541099843577768416345283168133270514235887106055742500569024618474591468958955538043036445049304923347927358216235596009062029604031143581153694602213315620751606575814684815006600811997154412718686210403221925736826595847479486396648296356893361760137671967357325647921655061730726032663723949236223460200978325295963669857057513325873131084040036511128829575600833684667807542537566881195759421961856731421007950280886793979319403691851652056591058592983207403179816602777289784121708223850628068448608215268223497779892295523206579597087250352552175330400890771104454860789081384003448705916344634821329453256674410060718307122244402154652990610623225510096064745695109440858251280454751736412479919087116923664081923519066823238865501079141427554077566209090292261577993472807534859805935102525275262518682092087171923070153087019012418121251481645354626771152175185979972279375110261856708989282423278242634050735205678943823491241558761401679878038561551078177338184380175763289349747542495625504509751459922088783823763731865810683990673855841593050403562088977441495240822467206202645945514401596252977323695450126890634557086256477457219390139180228727493671677516949314119694700820890348462680176982958345612609810911028641581021333670408936752224225917602897658260940197097275611857447963137488488510945696252683943532129433671828635024038319283628979268828756714774346364399161121938968737711109606918819587429180344837759174525455344130414641692278282505734747787743812350819498731040454222735562187074629635765827350876999617997766602090330154627501113768930500362472952646127152914211518197992202806052916846658432341971197406918995359318327500789554236527046330180145258782224531182263818209589768893644863015477273223303882374528501938161508809376446941431921628221654634574421480098547515497102579360240558541968789102912817901754038877948197798039580735118827162830748835015343522667585151340604654363158988482994509725327851563046082515143774837325866936259240803250037913103898918133798847260503344369745718508658669239221819766981773783329596832111050798686052678685668087241609698752475403909824832682849082248471340409899985892788039576302925828108593646733080366131912333321511020578776121891570662050881512332350965309667588427900049038036305649366029421766399373396990012563483014835131712016950776594106814691172864199383304286177003929810211991516043355569153937261695297128880594067722910056465093873350505163360615254854853927060271647322679995509863213254432932725325068731883754168516744440583560607290485504868220477983351660502236488803195170227749449282789579528461553201772797753002489260883389175374932380880742467945674210587954995372143537008603466737844738109739752838804986347405646908618608412600857865866727662632555329459368352335809302396041109761091671231164689187706317063087208236457439000346669510289580994078077154425373768233555668345199386814799385550180936043641653933379001300254344685878599460822161723468115257890618010908720496721037490681342129330495331511281369273544548683614343611328966523589484400587302032693650301438120554447456064415319455716455014815695824234954065480577987148319502637290857684436030818925731996895342190151199510691007288535017010530855501349320508013056483159566957696951376740750837694013419388938301877702036724449969456372937092160834397728325128099112906039332176085717910210497247207856935954600365745068788173590861365076954062693683590339896885897564158232240139268203659180035384562611971041888459940252674361945507248089730729061877661108932722381544870751879959186396482749965389886780426874972330226911096116279129612805587512707859065824075928962616431266038503567627170719603587140825345711876865358843534293287548921292324707857142617875361538645992504851890323997790259839764161264941986209806688448715578518591984284315972325109168210993468559173109969340387294007026658149889422277463875412382750532343129559316772910946142868038827279493532024387970550411977683629821089680931102204082440554827793593409949065902424500253523853534835151357602433971389077970496740576292324006535211992726303730726424393647958421106214691218186600579018344893784921776721015962431356014292410403129818431033547888498579775325295448907504347423740869586572328328368351908992046383355212560149127507527167878817723557845770330550136508891387214270224548362775141463709840901090932500605843700039065171469385382269146208583297143854381918490035857494991633425119231047864230127720425591000025040618521908970853336318343359761315600546546527574684970364131929904958867657184221386964613368364575818634411086313946438165253194516737978763352003813812613732407485804656229691254680519554159084970135712008500649389335940972204725578809025806087086015875729703699145026495821577126375930009977918456878422004074117708836400185873557329461624337678301345091662878942190694223815616107790821114617234242557885626589422662498487063490886201103213445129888745436017036515139423692250913182473093345424271862876748580520181709282843147621776189535709718881764295786010777485009451626291714982493400390192051389818215897873447322969916650190602599800770534834486272851944174448415812233857132237396443165543199845279419516417079326900742123674381442182745898546309871966987157754192560264277350406133951158539442729751941587371304483449108473581600068342677490534681574563065490004697694908658528707995395646898079906003801381086529122359177483575273092884589039606389894982681387192675803260343519799074058129355023511462502674874088116184186252242505637972337906692357252669628909322884240854420572259162170895367440477066932751785704307849549102125734914035997733942821499642983263697746555389569285486468787578711058007212642489048507012532027127476752145679736500796760800682842095139313192281352914954515176442413413510462695271738338664771544871789883179676032740019953949487953245894652847518148817778658085240741389746130584533266170648520238532559765708414191514819933902961304332945354651405582858633399985515201354042054612536077937957470031583034626586632718193194773091481058291875606660118097341471662728525044330811002678176279170544120274302831133169008182621876391292618693566404856946261391102886411665135056636411515035549516552501780647118147947490896888050801373853524355233774944389589690590336454337668852818446750080314305708614232276475352017597421093780545334751334654674100984033528983565406122607741912125163084202584838377370912208498305189856118653734767633551815411934078091526098223862608253227702163817001334540718608592251287672311602899598712958690759094380788228030789005428569146820433714210236319789839749283932965159879428531822424184664711622339160384627231657313704623242501580698861424468743061502787278123993668084276647392673060813009304511318507119384965244305300140956665494291113124516990191952351894110471087654763789108063165193175245292134760028142583688871628837491622828109401626875990509079030923098137033179919418494992199465085785133099067969577780134603233266493436449984061430208265520786291139712681002229322238785918151715948046273089225498432231263601066952555542929572845783111296330457654068317349046216280783963552389839405585302658732101191870017860815950066173708370367713427827993673820889835958000968844114882053185525147329568079544166488654298457255299345199353685452715404586765724905784402902378109433990105747144096615858885139725725592538635431367402343960318348975788839829125755826109107954207706008785047595847289097616103561002962550084887806442679098093836755054804067664085217199039383851022339898227336200630907179832738202556971360235289037505453148561323105769208396421249780337254503383485043555439753725868533715865722621297397837324993209622925227625791441730169262503163055979154301009975324955861112464224577980515134099899748807391253377729306018785247922468443669832477556205900336648679996802886611883958929491601961924671914817965223599595322072083109258115712935574786291934608448452954862272998511741245968758147954435540258589198191154828997304374112166101595132882155519514711149411079075116424064213776752968514068277664283091853939380375354108177850030030146720712571741813372315849295474271141860738302927138204287085054584759723963113842209664494291623012097035410353444551848963971120740274544143611752363241408114503365049110534452726165374525744697851260622449432311864821700267862104200691411862440592698117131943858350056235262642714672606616329712510925650433248551623174812913715696198087316648834303759952953662034559755514130476464517891200023479788725916880897522628000731804133120768919194404301063946433710493414128030773819748713532370380443563300786823687060729965257672544165674119302543339977212545828986890610236330680307127556903971513050092171804389881371671273749877661132864262465222331763418885197126007098883784840159248179760586169579125085832840250508908289977209951232132835040972115101872278066651009863900420822854776072742840561908200175583458272280586732446147249844609367494888756399460554931125574093874820931082955685455851198388698802826929940118184464907951353564243847530435183843990605015429738713748023473347454279808451638102473211142222408379752919131815888107987036559181824501562962710089462240583529788652726870152862400997476913154953044232480322105914406171040575622543468622260286865758577768954780551190981529549739490307543760484687347533252308385704106231732010797695286265690297487170076212350484655403032403586738278741468093494537627004490840129571671410619157901105442053759022292011413202273906593651001067447228468359541803272895679068275632835667101431903423800273206938493018964536457324790335329850472507895143457860287447771107579756595442167934994503830977667383409460082489881967997968512524103414023160124192662350437407028434694845626406902060870175000368753907657226921512070264689967939538058190422338145589886299206917477747180213121743979968405715842415996645002148782537107271196449665775209547657360588192258268542553172684602589149142188978557494035838728158049298264578210127770774747774250403556879055977250541491757713530498179886675561937634365657138787585643254223089770332302974167503200572993787548747308777565975127325580943812736807645180619255665755116603995477056156463789123030782671494619849897284210334450948198165931585007312805304516633588410189867673239508668085067295058701512614995947823007551506232155233268756977278647134604117646579663033723483909290273805881628356895990748176288582698954081561584470329067855086892347169025576373150951041259101917972374229036979042968752908025463984340896010356128272855655537192292585677732534424579783562073590474092926184964327430775022532521561158676390843274548140397931127303005947062732432516614650518388137787258209359216953037409482231438489533744658757629196515044013336787718266754410088230289643293507177167325317309936996864318193633027142625370306045536243059472320540927228855154934212793858221529720761073961349256054869882995158107872295954055540718324166839852595872674420820563279726349079407325864318195267373561332114694269266535087791980228380271143485758464003418426214363429414772469582216933148741815533672168066435747917194339832273644733700482936986108168331615487656507871458143050867456094425780360635553575377716942331886965147261109496427444412454535434401100394735461042741650611664212023921866830141167469144513363870042765887711318368663034524689182443625139435599014145861302510190048711022122447165090060681584438623393449073671465720093585968258579073596038147615550583174527778088581328689213096558783405557315517024673853227340540883674694680538733393876256032952909342439363522894590524136697539534769792136794986781549244585885709040545321675320261810324384531004339356650030451676117036153354428116095437025568846532629764568279681578912947078337927177478355468379958222436620486990888898379190550239307810019791630792933401592761292507774705757452934452880703442213425802413618248413549450370627910170888919192599987103887242290765602853815261612650972210940240895254997191518152708051024233352521392608382918309654091396625311135040908873623731169795262515744866692840359590373330179251596995269838380701966613871141292904195948443281264626089778857147004657098901654191727533391392677693233620145554167089980007403888593322606766755934623804107174856570679589936676446812662113870305373839136588286960558535024393846163681663656701334267614000460361411586156747896477039453411618053573608459978200485777483432815346643192968937143467424052100775136256050544663313231682637829261937935233926179719547391943089262404414643659008664680023882535368183921489257540080298889895891393061709689491705289226621502602382513914621232072205098657886371924191221146804469205029828339533808431773857594658620894248245608110050488993645677670269743785672110740780852126684426202360881264598456378180710892930368259977574944635874278880093348702548953841674943633894692534869657066523451952063621877335541329924216919238345181054873448961510849384568596200549208819107296675553660580737211900590726613762966744015167036848658105966436327729955235955818256181266230008617703668650173750485826106626317639964221526520359109663794051031655635211558251045362826771478904986678259516139326587714988389606394567868486303438712381695687389789810244627967336439744474690222715341735656057332082906119568088579554618332469885500670918246353586071078422612379999316688647980613953681340675123326891737989543902471366785010091225606594058252804429338275170204602326507353699028393784201043181907557361927969003103022807236387695223680386146747968554897868041516569194005507718922145734284346771478591302519390180955116676025042212368417638518586507826951961742168246635422798542533610622896551922334777957757763078800319419261484068434977525542481555303075907023005144276735921858650020789437804823624354191895059962537257907209580452268088279583857542684881970753010655184200696346473881894280029804550890427233183206892787549481751873143319463025358076073802792722206758388290179653062322942604352465463461169716979084516572624283465698474719168974037728664257609074063843152985905935932738470073804487418638033664147203280824641440120394889548002313626024441129473403888659241140543493350834581346685644546562247293812046737355216658876642707332736314323631255509592735464020381906217549244317491037599417389040876549228104283110091810873590292450868629216466864207514439167294008299150434503718855143739209514359974841853888788562909248493642864047859122030409137009013478733202897997702630303294407482206572293704440493219019677853364841932992135476174465450913659554839011051849555135085476695589469941465709195938351503429140049847056922435818517019518058925113109717075766368400087648070964426128863940493290649824311576162650631732728611483825778261843091184044872515295143345737932506163517598021142827271855985309232777696390492480605561598541042896246319761922928942754800667307364117482301167541909633079069824849237861127168242448876247123989619524450660012063340796805962250221571426732690991518168708132520971759882015970242179684818655158165035588276266208648117197841784883272123886175536533832645603515097641409690702014908624844485191206435047328157365413262860488184010546808305811697764125630829822645960840332999975755862571231644603576220563226576708722096230688338363182382995997938390200132051008017976172823473874719063206511927795673245341540240415296959274106088150600163581425865567363747982128423892094134881856174525916986450713104526169581736559078777388243413592589344065996602294508017025475620670989954759428844755094239815640294501677707073601842427904338535684915076401151353068435045978852860303028942348206637068631529765913389886863338812657645727917501365361240324381358690582648569080711364070228151968011019523545562735313081559665184990368083434775935064013522743441561216167398261041081591527763380568916537351374536264060222586364901301104206935197882529026812225284955704657284301557374272723487474676336496889940233737688946991361940701286058950904047817044850686942694955385263476980598447964771784473067949772569779068035086200321209242061141337473667998815165176861179893904195373935211507673316164638908746047912343593513802685718039394904149238505912323110345377197884768655654096035805824019586148147464478335362830706637333843119749645772906295359453457779871107970345049112946315325478222004917638160311364265663145011253331456503217966597024310505930323539571138299113049441362977653222409370037859936509133349258158707474242560351560955438689377167588097487846282171110964648402260774583632756844248285461515391306774579760553364676754538796540327876896781285742359504523113129977170238633947625725865632077289222883916307891834648059866327368708583844837595615532959629005909405408445469522141767269109590817035527002378551186556526805113859636075219943554609924765674343262787444012565523552962835866247774963503579489004606234250983291301369561847990644256363156820524581767270135811326872105170438847565867755042651325048783230789250220310691972222014791987436335668072754690046073001797458530429769886310811613842277534017416648108167173254388213898979476454369679743060576149917458434717273960158793255344417265360641540672713792462975702232961899111309937918736589417531627482563148394675700124033697705852128905074057221923413132327722017201208905176448480606326381082435452158001117818997677509756142190796150197977781882252737119454233232598599774365669077521738097538682339917760985744900522459909795634701550827773978421720071279596491655541169480951504308621762996489381333708216038674359976827187788360860838067237541584386122901731304527978291393156008198133266494770053734562115889784259520363656024091694244555752017890702644183484979671981805446962718940500618893968404911465753613046880927281836321277745140632953657290385596973599458080957987963344986632559338464780221769020502868813233675222817486701583494313879081761991927782631244554294320509961448459642559432423519606186077582720485266853406410582459811985652415655841476322590802132312142659908648429643194567515053574604078557886379697439447497769071964338678567772072113524998141143552170417484194059596720360465448015416203837184448754987923816711633600852258870091661002730890246441391498569853177268274479684956230390152313292349947591443002625543715526558248852505168188935770024095693935407399450504617148785212670804407941072826138706916570604371945929320037610803824923107690354195799529575316883733592615937119815114951291998813493138214820402296340669588250305086530053624219358569006939753956490736660869194661171576367753390472489235095895949714696349443790430341714833255886799092649063510755153959078069808747419365133401645291808195575398388618872762132827519688567225132335585484709270529758928021228464611112840824422092444843594671139808242121644947980036545479400848062892279687909184522921669899423682679356192588637408652402440162446709405121772425543772747379698080885260889245140066623792878627445765095261428659033933112786350244705511786705579057133805278846574087785958714098168967748225874464545485936030040326647948316008677394954397648146547667423546323654557931925471695532382048065204217226228350575193018782169720441480480695989197966625187042174102886145489663054602902027318203601528608731523179956591026289385346027830133509711761727546263368186497640110379045565469455796245368221217028001486098394332318208137420868071046660860345853238444243093715366945899605909322640807576575766121261871846480430090461915461029264885545470236802765120562108356978940890862070575449697925033903243093075745036410612658585888552334397238778681873458578002384535590768251434422005396778312748897674478707891208496102245608280195639226428193886864071365812334226326038673239638572818232577216380544251308196983483546638683819686963251006819606803718183322836331676684855950956606437253383334255917925607919181107805509847371917293067857057110770147825294173758412649135701544128561739548478561763752382174082889589450423301316686295192684916806189510611828189214739534470354425545736301740152033165441768094926857381554644761444115923840197967954663155293746409425672512212079267626848600583818240920823665557843858725522155770555894017291490750896241986455879442399327614436328145403095789910987196116401805163343473901679350564819377410687080680988252192616754729627318397685414726341934414680201388780776750204178539261708456087751950009650776624441887479407266690172039621388813389701477245376038641248799591904246089636357299431019869119012883554189090359829276924634032590508876278841006553596090848777292968856812555189516109832252510937580850268011125639897387325358931207700404000904989459120794699599652454581840378960419531326071491030130352349713720740367257558643461548177783855943573433967337309354948829156689676466529136574295254308395056298261473419007292092248497505362551240853852068574690075193099305399699930113637304120328081479299299594236255949302299793689587865249937888347353648745963710606324367299940936362899001240666108581277267894305278072532649762366153160180783070697847244019097650292791257616473219328538387729193522308064475467010969854510331078043697431448585748435457471258685330740931360806907344285664971184756250485863287400172089984939766273782667478179168593733591546558676501652634209337887482722638715552275700662438610025639414143594177027660563865883881460373069738108284597261142768221394162685654047613764204661619190419143992173061219939218572591089312711656969977299773585055103424600336594695784662307988381687386372699347068033260547517885098805882332932908341712931779043988987553519132306703281617716082232510060250611320605425866422498602230847456022073614514615449088861776558434072866598110957311376463651215362472907226210839930294303605748461719794016567033234643290098906543657609587390018641803937288712066762250617855872827631227621941135821330660648806539037481395271463664960931573542651629197339375078411948976876065482000781079791013178255196456291343037981499490787869390922434043853477682762506704370694765318980783214363991283034713000565163814265082858795402676281967094142295472696000096450597210127527211805521792637344451397258352451428954423412414654712353141162559072417069743180558603576557089462287349746524748611533244509227908428747859094123012304128675283699279412516099985859774844509963426433656585382972078686869299880583818203691596195006907867096422130313858072377533336777968378153344619606632197266416640715400831336508123032651559803549396911078340924183318803973633802845197801767602985774301100855610475421734779226702436637324593148348662916049769922635162419564876736679835884174215007031202450600808202735675803423420493889231711235669555265532545447653927619736536746325756733382410211587143326866125264289432183638070793677336262496849057247225772512085358441621540019164924825882453767623148237966643311324336430827291630038336351372241445900552779102689534265601979331598381229847220310545799239770431664954845795336362443985251736584368155940896426749013716197813644291427277719334580591301257013279397254198966017131875396943534506739260306031841585070354932288719580794011902653881321615410942259833537086136119044661281079656534431997191151519770109969845671047181222661926568970925157245545672693089345032943570296505371573115748256101297468600991173244842539418778751512440270200426821689289505198085950082245104724122621746949970765969897555063830840743883318464253359862932331127977323914604034132545949690546408840737598233486642307214734489988015362144484796829246104552813341632658275617578360641183236756506574230215575944054221850318634825619853847513686605126295810806692089357295381339680314626447835517659291839576605489786282650004693144028433921137626269951485856928894171594505924437331766286183069687464068284825508263611832446500487579023255281406067243842611767492174031899935653306146997980294607071154623022117853629169228528980460898809755752315284968840933779943257012100297802737015646212064496476781543643129841192075519237729573240654893787792753486849965159540451253585508507203768493050471657994523435010920408673797976971244681402600516842397302381133872890547293195416286364057073993429528601880109493937511421208859292303656986309147949617325504770163613415495641525641105728417897982747831652902282130074865535455253981516150818070980596052038956018294304782531947583468695935726614367610016177271305737780226511837131259491802274444275773356586027233549864760524510285557332868631638202913451130840054517716756903081076063422252247883730378194667794078452775916940466911424849371857063941958970575977898384750699994707616571038748204790711238470352863736762759556467564399463483533102155645741882611223493701657853805543298127106374845288805669221544052103490727088218434321599633329963978262948201291374152042927418417275601732775666073942330576250872218309700230651142562044517549697046762784352530820981541364671996346758283061173438443464782359425539922025382517612268844873434195732342849699455456672764507429144533062220044506821631339197911103271199070812509430972177549784265605214750027174923147478318680381497224072643106214408724043451738648255186630638895901875931257121273908386479867484957704721453415977718186340833654747027363843016584227020932315346554373414670057733275143249951099355804649752095753294954001354670197550799535501505516646702605741179845528197068724229586636585497716552165435209428513607814496357613297950748472200992125542171733405086307085482370023694433421053326954335765923659466912112716450261065719143776497771616021867919979053196935284786213150219073061340882457964734623488270372452305603343298648575955578538480809085223464511413985293252289328169320930003442138615204259376827175671663707326355590453279523452574180803500999582214089880556979222973753928074256489949092697286525375272267167189289246233370117165586990285773570270553534123049390407835845718011723611751036583803426155047980923085553113155626761256371200403265417932685793718998846513157645440839838037629585027138974543759965227958482846446816567038451572276818066272956312042250434251430425272967460697545736380790376365007299837968765647634213891043500919662330115218501010605050795010650381753796904699443325580129922500592691332501007174022291379692814907879577186536667782030612559783493242641317354336692470480734220037516050028876739246017291398984421341062396659148327685575133803538252902512155739524302579733315004117357473311917942814919299629792865353196173198779295551810730385595772782451993515114511421661829955068416455135757058910459744880801905881748982059420993380507156318935770719971607066775322456449577609023674228844432582852282241843086736801898481458886368361031378915465662107593824965627460742523901264852837056287004119250331236259211960383578141488340747351836399618639121944808187231530544373057171346064955811507631516118401233711553252055176435382490353295238704132163699315446653899373207048202584573241681164729468306538626249018334153666110575110364122567810475233158872209885142228743664024223953750821578609232300001415533309328619352350294802514299315396607049533008018067039744415947429863356077466890506194681469896219811324612825237329927301793558440786473257147459005526279858310248853937166994500061268753493273292786331874631458304493212355417174879550583542574502508805454421665026228785454776201700786962683130146232150936615204822692382732439028847382403501568994247383173249943746396541901134694413948869605858013253684706551561893142145237995544310987968807972561700554850035456924862645924830936525735249566375938821389948988174531653909700461283108074714449886552229198073487519119862458087234930003131305293601846558836135537626730905544580443796756017867044494291464993132116610958532834805926437779287719343041480409313358815526116418393230944901598229978933654168566072098366715339164848189165377933727482630997230879247618519369394236791033281057377956385546372902045077045357406382120198043916253742233780493947612092268378517630501704734343662672602228446693200865531528787785341547767725222051099898710315903782884246896115171750074383003236975009018881325355581981054898327114062025073336096149121414371015876677201558755857306892439169987091678576044113785426418467238576846975851631912595377861996357420824337364505175206797502561628182254565396861711520291448107199657162966131564301865396515284567439078893737077431033647085825647861946248358414995037849795649415887966483655127096229159437595602343405672478038457092943610874655646000472779963134258368071301739918453621352690040039151235752248094389821822231421774684283773474937189721639346426562666940380699337477795473492148500086691967317512191097273928476919948831992769329505352746795977098201828005679247211715099780213650604461947107386903850178402318921463457589581497250701189131043684664457588056702924385799217051792530792268283772931643724736207806394770860305673008574014396267059928779575715245023874703078977732585543808667553286569114008993612181535110332863169328986990668757053425577578499257296571117768480605703838799049436720411776598535220323957621365072078833281837011002329543605089636724945554177011771988765085071243276379895652010055929948770515995943884848177298666021555834022252945764628514397454510229646120893513796334871065813020493167844364135752244164331797919367931581467059331324822332513182086246428327224320995751043951189084123566845310681932524759623701325531915658635396632306587311961744377864090808631802197637830730314119304991607649861691021600262001638348523305863091036600520001239198685732833438242299400256779136271594106314950655053637786310543773096299586761235543859612996510583925015345798505514322305136200765462357719749696646978398735984582830985953102865684345715168206265939931373044323953152976142473455870184328573674216756956274229569649108492533796188323237642090620614782882383532142702883711220046556890523412556787899310386637797082568496526576393959606187299094113278326699213799510906011530934217597057288845775720686485110441067046712967226178460675663217468955175365193768107439643118644298582333342917444794125767457018909991956014702480251462462837969803634797563002197543992387988259327807689985084920008437971745336394115379869277584512572009294351874841190951470825611762390529829565287364787951755427961264675535592440322164574630518298243446132913928466639515752061722738636217818011420048467142313604013132199260316773579463349054442269754771965369908663323939511169771475558997180746764495274898109624393467572360098720427993018910795706812025773196483265698397482818107299576792822394377970952309617301461766221190349962261327629493119462877007091160191357944598121111072246319373371496244047294278587196061295814901331924012169633863977029219542904461667698950993286693719141192416111742306270990539475276457798766121189205662744991558385770311141793706227902470785819707202582174482848031998641728360923712022976629763081429790109984422736160782397870871925260042238882861959455633656322438752386282110701572020027868722243597010264046811491983158783067259957319118638315111479846041893201568433675915071384327035614027799803193522661977490059381372285591690013686061404134817005411935836383490552035090826005057498325023392550319536277899960188114089001509784187720329887990867264506852700340351175940970659174200065255630306993452431099572144339280288992695651847382742107698015869817503776351751633892385551702958507017416757784649788102796861305466069486954730783382955293490947637426672676980866200145938153187794463125497565239104743840835695235261619136075919235546090241788123437715035026114564994702315770082614132120457883811333132504671002040906746995992991669179831244067919384802382819674607498019449280302244714018511173227655213157290125027925015473155378137862153183522822637155822977543561133712125444093616096522328765023083271877455093477083355524886674555116359938561605161714287215957710428617578047822263125117074578453146556911603392486181445032341467976307634687944756337793255589395696632186333385706643189258883856406690666427532102799556434877449044673569074893284656110915274385576387796070883239320151147854134684850494153064570460059881861439862203635239282351345364529365561009631435117399895025505554984115748172162136201297166014363781781957946619502589143115841360980242353508467029625655689542397275375716305996908664799854109011038827091176747679484218008167359279435253471924907939414783975375852390906945060125853309965617899387184776703817485553255263432467656845498017755451970911605296881820277353814184582557883099461925557462018804301570399384581800901983905384870663137311932765131787031503042061107180763868972476597479996411310071611793562416834707228258791205099709747957426720530717701969342993351203439419122265843401941297101763958339551861291640777974053439823538824880942940204914047031340582742116969344714410896285114046619530142111865351477854127668222911755836964805647047766068020541154101225413574926039638853890168147319518875132526683163138365024570374779805813881359878253305821644737400130262640056377668209160468694221542379812865913802415462383219251844642600971523719876593296859039114038554344461038066035356388477745033545710243960070156262878773391002660185578842891065177425856229959186232900782393257953799128769022114789078762891805378802613308767307110895580750456507404227357162850764118083252504287249277223505386869286075931228421312806878328137251911071512575741676308173520817324957470872514220338100757566578672612976980124823408513558259708544286489769210603646219403977263041854360338588429741135217031534315790945865549385865594706432550468968957239504612879800988547798215880305999209108642327566460329527020915893653902884383558110646335533437104946552218291555707681700206245508375009214660295326011645466253751605198846514969265164634338079033996099203312667848919915698733375661467417925588121846254522880810161619686394320626788718232088067562994417890080586751453419235902960835820551162736907048371109001816049356888191145411172864612240605782746972657894084315094585988444038145243445233169656171017212700618615963888137127832351353164211247979484102512384313842326743622891175950117915540626089236671633503972956768089222935227898660428965710432240144011214135391974270133997350069995607323336242598805592894481762583733534493014323939053382275467332021661496489608375491873209723828670820093665815160184692475620063430184466451267248067441910671091641993460501185949190158431562408168141071676325461510568288649319815557964415956800920574125627798775188092456383692107434510178191946424914089276766778737612275245822543170653214836989539551403018882034898696543680075098326239060592875588883343571086121539825412215173084451957100618387638977725011336250923125596321962972577501593116899035833327969431890632826178073326857092912033061274805084290672228710111626428707020272092617786960337116901132661129526242381026711089925207952620801773991924610660950364381999516788606029219291809995170014986470923481762029692305347868139376406804049677705051067569334526810213826979066684167860459709692079797190412336709924596018514121609935392150315387974004752262853465183526228590816848133574075678223775429561905115015412376642532380202834572242011177425085687200955994497577849494864086961418087118348439180037924642606240099341919792162029693981187017210119225515729611819493765292885587881542360370231945731686778048049205084381749384075893090601331869747311664377003702012329656712362324001345923818106954793845310872204568575071449080388453909245833651347620819443144480751560209574959958414792593986854501097389243982870433946571131807506121711343345519176364792704410968553646228295263210663480812302995555618681351656702398905466440211751525607353843227055073756406422702151096559529397619967654367710082266030963774062729586474501633202299475480530897975860713750686133580822046481831986736303285063369218584832293753203334849243200583138141544191097024925512260492037266722023018274415127152893640039680886378600214939530194176781003198054968616247221435769425613947088150064857928518146592972664085009303841387274479376706160906762167080410861506185795044054768672080171398985766712427625362348908428737171518546020350368509009353807192088234580940597018754654806646161384261200759655455124496492782242520603467174200162169352234920339487820956066063184762268959337831170328706101422084355982188119592315009016824598970090789051467007572505560106952242230597056144738531307781482027502589771873147985783027407248369555221311571334630303687689440932874151854116684243590529821864103875770842804801282837368688585654133560396179004476682370994905343923938791246206922608611037376896346967117503845024680179511290603457641728910471446650312801469765096186057071511648775697336978108567870175104265965994557185332353346206199432142930854120710279630375569871065228563733701982280783575294845843077846729910279452108295049689730822308643924414348769693688396104262802417498424686766368123700752414013250874400974868488122873615254274121975027069046828202897595451528971941692583926860121894779150978862724642957578757017390014535322065372721835590745765081082334951100992709255978899263971828107391498027576541953763848222563518306019023476305296801044490190357163815767789228293198601452848605720793676907782670129369909294926242657910261394789628776772224724710585358751042731563651564159404864003666864295444736109681853281767277633487254191021319313470012944548671822533138035851562240742426144999756041571083433929768152931587460857761953887264040390704894115819929230695441642425414817453765954964210226061289375548315994263040307747351770406164395296385115294038053049367056568546165239097866816658770172118205264742015807895210126838740109884847527416491516212448605636518946030976416779537468790074653301687390545558080580458263916500946128249942321699679257773007616536625789080502253132192837618632107445734049167461221854637606497098940132579149088251321380223748919269550755003075080209634826500466377368375383651112633487110772099270258320501649122543805787171216657132243568067941321128035815760824306185485535214418190332322103741852621150089346303091269605053214355233495189166072255944632129896541222593535347826595626799004432252399639402927075477896816886174376418336951091483672129381382202151498237952361211554600531210106057024289932578813130430954565049601217525273364305709284542269010790330301312006269960117993365065197132626498037034616329736709916353988844643032100876954451546096486643740538486757976349849473945775544321441817594140212228712110290010914350572521368395526700150159191555532183842959972928892619434523108734798624015711630995180669641315675659589640057571786723270161544674937840699257784084199018927966001665453556294407186336212672428725220862404621323856096086126254158181541664989055429797495890085025128929914416223922135517917490822615827698115601959269163014509825072262951293159845173097747506732292210970356628576755081181737825667947640118202874315173208928395992815944553876302128658169538880858336116050905295845692575693331102910709525504622913692558619398024102231766031739157086059139564525415473080209985084132518790607178705037576675826800469261784208419713236182713605952460020535543170366161077212853550664092488047361149133138529518649036504796302985356334496464071517141608911499829579246216132800409177927070820110749793067783812482402903629062029204251785240563432305490603938848329195821831067074533773918193991659537245103017352191403745073938956310329574648559271356874477019937936215821197771925421849395214523507601806341427137250819313157474764850879128650968671420494364633702415342403169552986524765926727191592004079045541990879742858264487514242652538951975510941863966033759152059239813921833956959169443481244886128914955944841210999219503241225895944795607828547601180107827056876317031173390956456257645170850159581026655451828596395513906183189938503118659873096979922832643402636251239066470452947300787603539187041974227419117560453134570033413944847189400268392644258906914340581421117241439394456316355435614764005281276380729427362813624900219029600373025294570532948248578143011141558995798650371301084905674064070946947875790656495871061273716862254116768373357909589779498051211695111221676277101373949457854682081074557944259641288455655784646838231135899065025120768500677741542156639704958596003810011790939941224254708723163680873716132942135434333423292634761886437558898123842208476487715185300058089658409417531772649953039760799225442513209886406232510213957523284720619336830437946178440740820772089659131543190662097525679524977300934816867267387610753277504565907059276341831019531612325975737470578308149032479412383879746830013564569360624082099915157207925029887194265958464512265806021352083280985675998558883777130621264880915671268956052399369643724024227475374294342633495266829276680971428418726525020434979303368190371354010125209070959406014508688425045184630238255053592737592519124843320036167107917096647415442954190672465564731721092086729302795959813161036264272326872426837088865287844943882817116152476420862327909443487286154151633621606361437690468579588836227606538288067281060911075516467634592470140928785283651450867474028466673477312715974140419799903185993326801755450566680892085102083980021437320351626035701527458485517843752840224506033627548137933671942810346974837901095917823029179734884272799930395751154162756982098814299780902495911179022924461526852362444497894853219663645885842288924222042994744334919466599276013341476327098121606303731598243751076254943267384150109214548660268791514228736392450015387527079975945090485399493513328584924933955333724630218693810480027591688441936184991256017765387181098690118330351596949535521371589280310833929972822976075419456242317699029490911118383638025219655736658065650756356024753697311128888207225772402883209589050270746956490443066928165676593682510655580966945760264569358654597311022619917082221749496035242167496740522408330081376900278988709911539235894750798959232465525388062620955468441221180511768927775106579907619551756083607327130140270856725927247733924081841408469333528268707278900218504966384498526601575458096131159977724333267995980453728735325671798346091136852864019896434482760421871576398340882988569891934487552265678490150575152146259221199506810426394700252634817360800214284619913725604941200934938388839363090261290467662402223090348489943718263252719573521733516750334187428656984722169974471032295432431902173292388820740791671521969502786249039664471120323644453031397217090870146550475212857648573713076588016440697515417736769735422296002257516205856577533251257594600143854387206230721224588236050731843747573240703838616560767467474706458893499614600180083905148266485841353362463815402368621984087266945448463720983520063286355818275090499148652988695742391026269862296562820770868432804985774960926892163743431972065678681952753893517896487157193967174746624298320741813612543019299523941344054932278238227447336852502052716969223204675498835792251860141322254530655447255769733731893954066626173747216565169272147290403338496472469936970246584990136051409300598687395050496087993040232888082378699005620684943059428246788218572926541469212589195100277217408673908842306869445122079381261237912057453288414762733704056561057993143369523186835244070048351743981602491107393532115706858866062156141902506092583052259562138888714560130648674355707371167653290295498561660934367991755840319934620225731642469936953927454669531406993028041573610145682410829489249821988154601539286912515721322186053346197593270079378376383240838096972164172723583935411101177532761581152153665587245223804055027053282489104983829951736649954516753564400310146741447712073208504788347651787025361036122825635897395402323360481988451409330826578114695777321105960597009507147470547360706031016545886647354047724560359770424706197132371601449191071522321310225449529988269811048948742108319148456784705476845973144662388263737350843100193067884221482612801824432936065699969688804493509592040747644954466891723921494985429776736660809954260964688513561914302991380946706067010154249396859160104762632435309835058257991110053018638363660717264505295899298860312420962973894905514897282923570785235412730909689496093694184291862361188020681728398768419959423355512547422275563777101304482608830504153709969096919631958807633687177238060371617851508575257982861720739692296361471407955261316081071611967761211929295749816034631616678832038010410453482359315186124167701955387370848426280478680403938645676395518530395747659502333688610500391407034625756917497921840080633708996116573125581038749612708722608695363974832455640777144349527562057546558799190453436707132372638437615644198514204139067644816967594985860529091279028725747025471433671446681151961300144232284643358870382196008365889379197313687915828614783936323333626016436073130888225573522970722647310256767454057035183445637396201502016628566107289928353346276886562799652554655023120451460213659685227085626717397685065254477431903182259131304439423076254543961187013516096563692277172887319753786487436592883144541646792289381507921368295976333603970804928192887873772393167912332972081661056833099316807654147425357816488947901997038116346756496032897917190124857475234727412907298211464870601435108143299656898077294536560528225915912289393772148247272781023585194467104703704019442741887025324599246537605473684144496248148298570015676951707918722518319099904918399723976690224267908020855705344443282962513534285627787430878694007100940119548487905942843263286157577260869222704952631196049743648761385160606855662565555989448634452895818060981553830239033049307989022946987807646120765611880318775447991402300925938704645228457974629466347158618271568458778295562954460198074991185815366736083655607807968668815407517151885725213720156264279643695272511847432245327248042369383939365134184909768073044086027184361261819562587503444490222160209220359143928326388070884373664106804134570832261917745563529598099690935587004806085967091728917934851009259559781447401780568095496617320190444485472761907547226191864875969329604939040022743269826332276778375726148007906540681870213614134392514296211650152077224290221639410298425442191161084713495644726999665150189456018105548846736406690082256883313440957237965526236533691040723116637059521407549629770704788969833726305563126589043526660021290244598340368432580755452775839719942130116977233607524659141842227334946345987459791668258310199633259479468670724356211441854887855142269287331103778760235594936930421500221042698438981713084910633373381973144200582165146353618923876055456665854183431996197065674272659338776218820044184121088221944583702460270666292490482894384406178929359247794252889736833809374005407636329788912902951647178633920476267585326939687610646760366477879776166373912689538751219343788792372314473285136455417215827993923195329995160559085025103878713213972058232748952828452399885430898210129243474529582461333177715052966414228331088001418506996222338035976019589942379673165826779058771645742338263860748559778787653647218212100494191110150651094782200176326472865365002552402797358854467909741668200689694952199809752601120690665111264876416447802970293663768425273772721225510857100613552376295913585274750885030332723536792917063157227916979442195301288016599101688512087720344171898541915111022511509884920475112546224646919402610757221611960187814078540219905542391439030994828586481519306535745949207757816297062833607806577855529590143006463766536126630072172914392670176869571118755580342845031782207182935687554669196155039618788303559138327852691160662713808379019652145720164671248166700754015447384764905863438534104992106691900399616495545314568131675449566161290719697169725270207549622124366063530772082548673563263589858437842195764999952003308339107243855863563117847534935467343227004199241946506531070917853150275258154602051814184738318812366703808273260343129437232701485070096255055579201380072178118544331017812207637881963621521124708027066137848000730043082472422549976862124678974961214277638893737013237486272146453747995566681302215445856427227178539978809667453878286193757007877014302657411883186419382521411930161228108770220012663356069298733914896270820351262961755993727002862875222340447739885510066526732271055241863439251308238170730562600764164533447491738936790771007998816567943920148966490897294140953396440022938595326926947563221468355423356089437259696578141944929921739278840510859877650290161398050599264033908408785113853637539133831357317736017598463977005348837123462059590860733419255741249364117384385707526436031963189047065336086513545073869104919987078912622636425823308886077025856869629014123192087178680013141162176139133783809283322193703082176052573196513656083171965602641865817114943565527200673504065324303855909435217513999545606572496688884311925993312181048169088952104179223869609785679386541855952224946511486677104883406288991704106925278584130394419317906084643381126108801235875672802607806475776425444212538611810180010199013675185408433065054939414793415348046964045428309112890520919478758970645449968661148352619104777411297875063007543353634855071417956561872148147235009000179151507918614781269543442356883428245410687327817887810213303374957527677068785169897277230396285148762652192139549056695242845059606369428975368591585472574418619014339350295896816265804545179577877330922411093779058351345809897124695350537645488980714129466108237882109625762319974387134621938660690302420150031297587061161747241259405536609399510567328941811638581469165034369981645519964804603851686513461719201855448832270284332627708391242778145214805946206773151282636172823990358415710432368363658483404378792576808396245170426635765032701685114922842507993637873306733054697100766165546919900498928916775280665992339277211468514481536051897281242338722792223504108085015240333948628495565546906909469565671691346585863296147914928087445202531190696570034525027094522048866372166131224794208511127271532575384385054967342767080413651889444289265428168579758373442203145606784071755498045898431136430718656412693282135183433525192961313416957527975816029292052911267713544070326638421614820026880852437106008128904678900726713363179423078241616071159489337651550246272617872546729866052372947687504119986103741859991837419171441374900029425441638182021073924404778783515686342408128963541210846711394649422711049800731282607976986548987035050278231599108768675712844898146535345817643277345489458298067219126861855538655628887225820283355425132004906258145365510236118850422852360220831010834548011235626128633645333453488100041870230433935951425571151107485900113264027103430594375999923846697754216389075882347153271891314866425701258028743198882351840002190619903616198781990240383026794371886119624243174455171506499061027053524186640995944757390566590998682027196627921411232143892083952934246088829849024041182747127108247189643579566027169648493807392077266516008151304228731103619976849744105624154260582657012349570208687232347920208974534998659060875467217788695452075673020506579578377440268654379471373193809223884442914298891944340493071040468851067205045207482697265054357468317405096746552920443990283682355347705338595393185218213398028269089080869077644955585629396526417665266821025905593709244980069729932829222905682441792685583111687119287147645672916476711752483952931728240006115401868456739247076980535552123215269660395111733853229232510056113617381106950339981422082448259405335648908738285251653109213209131927824748338329943977422391686953501013928437069188798158544844191937673048076695738955657821482936665444140793085346633971984650166228905928046480023630709590179060195099858764866820070181326714338931569410272121829487297901701006288580451946352344852081121733018085761790664885771189366978507698487443641306041883095007831449814821238585078166130512999240799691553430684267006495417035577764345758966223257827349519694197696089099792069361567530689107868725874447456562244011769081575169082234380950189237236981141818039822801178667474958256930339103079824226213028311511689904854395944310509964575356312695410812780410625861495518704752802819860427165864867020593193380300597058190015823439517081432068818870492090119501372695565059903352369851509318142594209996383747889819624597167552248450785837688537885045718990820474605267352824913391796686064200914243097914575149216163923479511791795256916177675403418070465640354779349692796797690630950977543544668955083523148125467268584221896964901337843780164458099304417164950571943847113458539441099953628533908061477343580034531786025798903713844476171651934703375583816763694431835746734524030698829155734876516013522617865506155184033889034458252505224164157918984084828905416525122459624285153945480662052931854297906310027441577777359186258592398218620829549089391717799866394845390824368081524936419925635582327369152579426071914101549913683638309078604194714046184128808902819390516036112009145011958956013718267685308183508522756057855290915336731315659475590647807180605159824749372656462189144994257630385742855707727756948533572392983382619438935155743267515737058224411143202053459981008917778643382049321097042830252232116907750875324787326377614085667721582719049461619554368847934268429733269536491367601592972684294770416719668335105913103664331021040344302207517202747111685866883708187584889522474449432363937119072509531599904249043591147226423704441534056785045843934365146105398559108578793357326132256350309991046881845334102751532362643117215161247012599689361329229593966044389037203702122157829177816111690500294086377981929207604319857378192362393318763256885252383346879703900507186070360447755077893800018283497518338191473481972160191024620131195509796464392394788233303915305237851452825420741234237528390226365748105827989436264698143042760950974551258440780066470117504440341736327118153029238113065691530680397589001722056324048819277410177342689089704945976297737295520116870720526064767777557775395797896167590129513367396670093480080032280495004315449227371985192945591667380202480807881533960207202092040613248087650983050425846573095996238483165300901341433082884864603637670171157083756899742796068502233244458221854579334233480636101278137777668743208686142661075044328375728395180264761569573585754128053350279617259626737166767510370863715084407375043173782241319852990978951754121613990974148129418223183757825485163390560744628622377451896538102697138503487121353658774912820449487040878692219610917053622451032013713932464417163142978552728224599808562490717828397223583627348828267011267175918455497531152914561035446851172962771070747639682071000898157840368991601893311558270700995008905263084535009423336741124282281587388872089836676896602959066996989005435031800046497820908713019855564476351565113532045314194599843692927542388882187593983890651558162897312993653772234189138208764499557235824982666596361828132377354167134578807350844384174508962755529356937894411575794100698606588835776760220954572712347479148187163290940105284974549805674391583071444389582696361945704987216761027809989840988810769169268924803205843314073265653397421609842864544700514398672790713800822962277991042028996467638153170887668807417436009472878429325842911461303656624179860018350283840906830730983853395265076265072358480305689046201664141676428064775719825203758598750791807767016692175492215226160668336624138411432957649899325036789867518398498521614111398673920238797225264091340942007969575342641573270038267897453540897389289235189294276547403851106938588070821425168085294083485033809011318665930176944473211148704419279947071282521386042022699621663086421351754794492576681290220133218129786640178077099472102954859597673739570281153199676654971682163652784924835574533321825745175089340225208877495417775825102558451846622239969852130152683621044919493289136015520581009226296272474307863796024507275163829950791477252830864882070001083739269897497132298076383595563894396166646125521797265743739148864537915400917026479836339581458453963418669106850644180006834573600893385439340702466258431005965025533367961933094317288972386201481896581816909330831333937609973670119045510830162048143756975303545481421550972335490585388509821598563074664428201517053193070215681280270434357392891792132998239131770996685125934577504547360248117498224537851750022168784005615564467264665344912245659198179708065586180914006712436622022000483679879223941955833440538498646619724166941547899431595038862421758138621827976816713166619050621160850515549150379205398057458144501180583043846633493097812297530846329656174492374162469403759715144768413788504887543441318013992035218181928328864587432391694731375148264133151773396075190257660595326397723755259242982051872177645828275299627184827742976008361033352715753964966215398867016063664096278672655172645483319834170228059331257478728588058761809035132819869795587704929754601117020293933030428130437631667881924799406552442491182398402335224758151983990213509864910842337699310376274514335445803557048851981675255663521127395441481030312210070282023587833397662213537285176795141691924287175916970683869193813373692618334887456460485926638646525855776987733300119711903945109989923440591688500474972548708277794707621382259001057111146340869298839140054790276236454889455114738266585703009138365237394655803044830673166654754544683740820700730549000403259222116775669964276857723364978115227521623947957604661502434650222950519898326976098191961231156550818678331079307686389148163832136979579880287507183600133866899509977949595783526384341509452943375100392030526589650840703687631847979974512327958921904541519852912391923215622629182804079370732722113321295525504262387139666856670029777545470890913392763207392255114968994116594862466365627355796465225998013072619721450468674911675673992360006458305776544128872231611321332844037101192155462604600209475019848668829364111692239822492364702378045939086742560278491487732526498255615179385728485659201607335803661553730548440270589439870208463772965291137067277593111787828121554262159286111748782511486116872506352854624750772764468157261528865038715882806418660596722928941662427051921154214401537436214172335707980130370410421290678645091275619213569750149194623883564929366592978458101474464194410407268834894485125771335856455593965181807806494587451889736855558040943608941565165463154220741836842826219996829567582316411153121299599055927548391557819251579379739190101327139727596612859314770266648713225291527241117825682951775077288258222363047722711138082243791710974889694716747599238217199713085574225688533070502307567778328641095649156305198330489344539700763768470563624794095187399616370298950456980136824007009215647864729062030114128128310812905977356646617554450630806447318626164347108499611494375719413494710265724227502582105945100980637541148355113428209273635056683432400283678405404998212168138355519421983887903291078990963268654345010671221399742446145260511039112938209017921218398436622280526378405673799127262563715302099680873190129662612434593508249079373901716388850409810248885481204955135859163829001798826032724241506059138589840909432366309925350576768153640295688553046106479705469205699934815934889628136034722678160643457089435025947006448062807384969141186178957961267473384922835402243716635751441467163828449181658158059180267689156621926446770746798334666992886885595615740699545295135558170727836223115414367966178207924511106498787309419268303097229286169306094956316186147247572909239775251006356914875418769703618690822609902424789711907354765800368062352443546373740419559774204319839663660965739026489402201241893358154209952450895210926576266869039928444780996994785752568518528312245528020952619081255156294613671835026337921920465326498905855953808058444077662541259105021147456059679108684176859235201222716832934660529538672312826103874943723119792394821595112866119653709552019251468334203695494022182507199177864294852519298676764823815138850093579486394235841753364831495987243043521876779088604774137592480169593330587281078112393389032337356172422669423565498138778634421441907348776219995051594605483399574447554766286351934791421084615653622480068551227395970737388005464176949658315871277295266990414652113589392529093331044780951006360670247874274261384427030097199849326933393102606087331912472633620975671738252920115469947489964334205608426682418043963268434949219522773434827515634195975614054390597406171229994826055182483166924746681137138386821860280446506698470583633673673866144602903149849206423491075460155764574687632943194445323475123642024578155840285226993966053114080493949830257382505508087199781795209340396455355735680861301611658412651916198657326796634141042071932996446446001188441641179690765976918286931558444297540424966991470842116154798919795072208982648438698515956003816586909140083880548960627897363152747874372270575032811967499543840001830510478530525732397579684351050748707944590714031498156940216338913662582467394462790581124234975416314341592950869083768257334685387182903213503191287161424927625888847951733577184242222046745595455190334247409433470400656215617315509267819690084807154856788939243389850675800492526373259326906024635547502558094424878779375582919943158157127809498076585593155655960370930263646594068531696744767889923274912373897746657690196435027248390787730302936561074619743722426110976191744390475417352933207556692789600644694744939263205336801078582257444170057785552579184973386436763755530359486227286380584621138421216389146368011168418040043875921339093247964303242207934719251932073811124776475608335912460828401751386942244146023820227565497685951435525005087400165662534662409498887953732865171927207320860659545292602467995796266390643096160200275913353343313012808790133468758275177908106435984142049969434791509797863712061740936746803155144922080216097519158834452108876550566304721498095227303561808268408423224725853001504936162333223680773489412203078742615540761711575041568842717088374855973905855679950261564362224801614147143210224019253596738193878389572461524430235867820534558813196096865445201554198674920803510487246681577612282669384663069818911461039509526831993476401078681475916518436093152848317659639157658392730406900211002619746569486495632967572542781623005973798807752257554617164266888153496842902581941727721189175080110563500857114728777226238085833095794090044467332196165809347930170280960400047127774107608630698095242607433595776955237323181732932602622205061335007426094440536993319800649388312805426412660219073143735747843878282682107394413732911917552207961195569549874750833045607170757625505059285272571338017798385245413946588722063276498693242950354237299144375283512281669437414478249856162848613568962258216042120519179745867159905200144892422061570185438038196871261971047349191712405950778936756283328304474076712473460178294236960947212544651198275917591585736045564468059213626297560275669572984370050561196146123324316885850708585010532156107654662735670566222294652289568366618925951644539686474039032958021697641757122092781226610765242343414303294479542799383177264754821008753684258584594900975691421117664153955475620867458704813356893033326321381131794748580026072266441410657635926238963472040657374767051764612574721083386511275720229077307829056895454962321754307130723189802641434713691861194994796940766734941178691304472120784174733143153037219503602590351066611134722202662491227199750252444163955635959330717893284562170822485219055370093264333765892440230082199040542741910579987325779194716888470046362168295655705296410254343774524311357124284132660308717208767072007755714433548698550166003315444736107670329355715081076888616648114169879821999805190826802740309722983831446361923963020031975048295083699727727712855422392809406998221082785569876833832752578612776325306432291297872813906421095965165601186167311515241289114870307595801452179978618051909630792908619487531531879682757184844225544352296674323034260220098118511431101624216156328984420841283612391839043945610553162338524515214211693221448135950710472565318269046510605102009325646723451932507590684436587539729231347952546013538936992199078202935780011039622059859348022273908154145581539640294020384331639099177324435300224623178103092401773617129506493491734438077507268141594986303244279338184371654136690748625823750773162449076835889700946604819694550008848264295953656408954556850251797739912955287255699639301196916162367190599916780526281474408931872591122473432535583354310516308018608276258212921678533568656913619705958766641398814019173140370763834900606040862253109917841397631510843853177659416041260889726142685677905670268638201124572210923337496978447067780644849768494402039388056719460494743705204215049061858119624416910783404771125644125900369139675086534050199332877269511576068508887671534249004960123887517493578038867866172668149953999722607445235837251399773633663644246284246872981848380926904721858133620585714750217761497596614318337724923886863721191543916431167236234542715597640694400130146806854318161545705026566682924769627431455888178542524632315054406524686657963302622725459497082422327996128764796927858162813769142158360643264911379675373170127264613166281131261235671831412504336716908202509288887052474967189426480468461495211986844305714017922552515766629245540695866691964647910308482053118139123841009970107993831461411851685327924108954255663202816321624165831815218756454845823078500475854695060213185192898497760283306936962795203038882586558396697819853375588813688566092591382147235265084164704632191733710739099412426015788327830966852641603285184609832434745134571131508187691957093850480926832892513641882291178752756477792402443068678598399002622996138865361781041153488882474316316679806781647524852724132608500796542812033328752575740188449543933304699065477317759159729641896627591187981408395791443181306826604907715670521011448558014383037384443906001922707484454409287085356398374018778388441020272833997304863053150147871956005581178267928655447642924510409085500511401078242661176371723979834566603247935929460070484297105715206629807687509569489223268864093378706001503785545556498175636823301013247671083781235394196638778926584338539026225492609392978828320557045375926427023975530417131661230886076250306681194006108511218297885884734323206217447738845094497542788020234916889306127343962953348248512020372508027323976506048439640549122052855271668780357316483335944331031630137006922943744173253883159511360853536094211813394624268445108906264935442518129425883602466090174135690706444074107113076067766367442578238263113724764110448175802228431723043637339908646624535847364003195224735960570463996874123918503558254662985446588370223218203211290495164810429970695610958715468014412387558890888064611320719302696942952904541089435093522111103409559683981477696553299953018997470540423190397808238384960074531771922849669301505471663608310878125708104323048983744016795874924907639204244346385969112260369939745749201460034015157997999038951934239835644624996831966942473561650496406600805197774999036194809908747726973978393170830096462510622087376563856007417042535775398969549985095425378169659687074344179893758857863010805911017661152169143391411331514282165983333377252913519912842401248916760438419805870979321124839173684122404606255511927932863609772018472097670428446644510837448210720157686314322324484070498147932218363316895927937360183451945582786966173359848704926307508221049595655165578702581841368009661018188816666932910879327580818899764246075518552737009606293666239106937235408786453358693629314850891615319581401343056786444245250234186455993684991713160907102456787754922833688072230292478932505303161867028632247842117811393745732921263065095563147729341611556872153402506531973372334168072033240147305630136587607604683488311037285684852317129041030032979277357919930596926016883555543999639845678967013219407759513007456734805867422394699306874498163878194811821169861524681531892448628414494260177104423809762144381355970026071253184564381008272316156268621374251719672752200813152476853861291407941916204407701577836814800313954193228317518393144030267020180902370318694143774968885066764091442690882281635097575136402926779654020398956059514531150019838153369263809859746932089938747079259724730312321884311883813469336968697217102071323660213718450297365852613967773405305125077281485622241946844780161206093365979893002795351136832822528997540961633101239127587069854632053057594192615362477512678101784536086964714355450621260594285865019595017231168826603411052483018875600515352445644553965654943315519312049893557582742419571257733983613809116886137187591256456373798970652432250963253652105759953255733535290451314081240078353229912734272162256160973464600373328764270152655702020721996803117579943871415773974091313700846749267544319476034825771761022688320561609412948760313444093209390899141674920060619042415939072445179319158380852191512409735443391982364209552190865374816771666152221563906381418255981330856506381076065816314738602554912163543357074152638106777741509640757346288706638587410962349603678023343603461714194387633175740775885589373910126198529943622224865572475220566689126236529851202610737762526833987605215441354184585658434462220177525646275268877279917689663335581898984019448080296168776441730280243757844788635206411448440579659649536587810200881245542330005758683782413986468739903458081643548070507296396350361514160988928443013845712363628200688766371440568450085949009093409276173426297365622028885504564737856057571909048616917786036690214622329395901124415642564675637010990218481541488525659067532234578724102081837632873777150044115029921875198369170606869039146034660809600993505968592442846249768679812862040774638761303988491970830432291554818034698260915516205230504594159238178967197709672526538314236420160139036515188569640015855853947243767250386469947394794250637867870299620823963735525085054531633766347931891586478070621249956881864675919925045211429896533379587789720978379715252801297357965071524125046151521760633477796560584718867062304800619623517708197295261732300784717760308711871958083583269787024667134810055933960865921871355922371237621312141802057222842916727110595353527269200939694614739041550962740129354883511955604930281464571608881304809106347271580051861011820948314740184267969930778323757118015150013193711854927532033997182659846383404890875316642115597361252706541402821027390952952365878224892496735723485758048780145576040854583434776241267645086342355092473199936398234601299639376326365714639521111683369301003299748513551055360898185847878388803049996232615980731759178742746448621932484574299483072590636579871776134071859099172089251178614012399429819828332819808115563873265922966027414904262075707178355365964389625149169704660697944152089458671390944404243644241850273505206812695609932328368365339623439895608840133105145713049187741092544332891159192019632881183614631039604017943039703387138453681962770105388916390291968104752129980695167028131895197356386466652388220274539198065085574552152350507438347261555786325139624946106172845406489248574867890696239010995236769796740034773305008880317668823348080273980180107395448973475710731576181081507739448728707707915112217965441656110565338374801982458286193430685977496500492657554753105244044034742472593957159161690045913651766547208751654430186973878806965042186908801102198661700925685944281922695585493668143641327263661260384054525730118253750426715467948043547923834287098028278552166630552677572331655522701952938925767176411676473419565685823716857479545889993016217537209474078077199442986245427015772273350894590691337294060772451984817500983055127412196637360078504109028807726804506700968842181533483790469398372737735981825026531833958775588721204139543437710789967738682478063495914791064537689976010389781440455973579444696190370985963807206817548539458238791012252923825061393212922824481584712908502068866726043067870028402617781793017098546555342567240843016506939209680222440946151781730984755244841965957435355614698295784485272185274736152177405456213680588583600416673147405014401667372953750390786144535905165709035461890775157421493190108650070598406615351254435083821005611398508080834396903966223090944885133557307543217376380126713617640947128464319385547777137369347542930498218870022379406445765471975118743048550503957283191775655233630768828364261048642459294285867370159059147902322379107993512725997569108650185358034491817369356242953308214453201646013778723025599485845593144240039858926643855484658040378482852749900064282889829628914068650335225660101514181837307832605734858145406715042180809447311954585810782800159876034511747740852943626824914022128040411528255407052512751178788204688997459490561745121633618597720111417362329608038025045524798099012849884583107504833260691708352486174083202058608140736266411922506486579014596588939328486626794753010339550616745962049364294938097138168430139062949685033167917171899583240529514321894145190794460300767246798601820708789268099996782214268175607376501505935725616902789165768666428411428644759201885403072035742388115649637392273766072034067066836047881231719620934482756960234697591759030428243938582207112869764971871565826001744331098421338985025710226003266655967403829304583489414584757259719406527952050242436931696616990976256021409698824059467774790027597235778919043073047761296784131612027186118833282614978759516684217292308373205259736924533444417174128256464319576027874066185091879334792884207446207469267464438783481286641124596875608115541133006840753163312186000250138135626351634114873820439956347033873835771891189158821068890872614272774353754834975534417088742864901712235741533647821872197282658129486703443399231740291506965360744080409750910662812324410978842923181721246692913330369328311653978881531016418668947531548675227663345218883494391989648781891819449279565579786212473620650179809403059054527270000312418754993634085908564332895801091791750594519404409669445592626626574808250053374242467492429716816132896550977692475547554568875869363401306497666104530349364808847008965879535356972343571890174699012644350462897053613668329147770851022565365680574973922677156570354093646576339606652973115582357453091186882941463844330395195254123726008345024354558426845088486564322330495051765862761303700199759427735356499105350849372483431856135232893466540581980351865112255415092974293907193667655210376403462134405891709145998905421946224714741951806240493463650017969464965368242219169353049529337228879509952014710766172589263409719056998701647997808410293368552622640997721347402609985094281896117643051195619115815002196467315590405310129352145481119774626023455526522979614951727457082431281986990891408094764441046679391555882072717198868933003920493943882639057460468706391315934132850585813246294153193858402108327063418454385271963728594021551568812532812144575255083337507189716460652301236114976213803235206285817313928149337141719841528133173857904639476976948385503612741586650765286040581283243457057805669523129819172929443643259660440827272382533824680121265995842532521600556473573813266565220352533261081847671005241675323267523479412532943686357921362938845851438385719764558966662149539194337181564875140620132122208382026498204895275875028314725700918671078381562876172002473964548502928979595911921402018822992368813526874810278759466715258202644531738093879055245386173830439437068679593840071365489621748765573189219313551295587530310566317156757791549593821646906287528097797055659408509022886544847186422150687748293533387468460015767750582870034118173271757856193271385703853557715781465353959667176863924305639049543057202634544474673322757342209592123240700985869625170728952485738678335790083991784408789216760826787676743268642733360384908325329557705444479840514149379574683033822445772947797039290948231318963698444967074233911276547385563925473935553038511651377303392949776984643420859298915071363324040079944347890233550848631807568921648517767845758982316681950344992703384374844476193539485131912000051277687419751898566568669617804371133926561516914975683870113112451843517054535797099868431158991172149264732984929425081806727030907682584318627629237565527850839300857775954583679548186249227233643158681761360127369902114645060934668180759724198991519952261274709258609199532087251193159200318364863253082803200003025933569548207694073249102226814415249508478398231254697925577908114254951386349659993284471391159847167712970925394362990025928369539607169767673721094085123712302964358147798268120998804610092131022758953674202263559125517300494929106509081655471332727056701174738786278240805270951425865345171655347672243825717376476624420019677819331523768355088406862562476547741249756370433512327893584582354815710330634991575313171585795605165815136590963715861251135097661511137749910716047095844850033901513011321766978249719486037009665136669671421943382653344887057076132673399432838823432465158125586155274416659273220091790707971946410270896701521175126804468992159045114902033222571267752917218356150278576577344447528889552730927173869463930966554056535424488957946530354749528887523033111211609874530808030245944559711678487901913224516030893107366884965525656373972939478979539441490095114846563834349425314322256563837215436621680035369489666301741421103387689385961510781469591699549501636931886609775053739842962369080795743677580070923792290037223842079225693161751032700040691904627384677805829912983493673160337089192813966106015679831063604745300664149443654653602036743765717364797504638312181888008281826801388324725225566739203772217756865891640761668318660543781205981508420203458439986547361703821535086907743592451831666320208495551513908318542321531718040176691722978784230875721893457959082137413357399334823283290759059622330594673799510562731194540537799761750279856679392056994363194366658941644152015083417351623406505985627613141758379632452482237945323953588377584565073295556648376074526129777741151292809656307435269234045164523155567883851077445698600618137094985705949672370841464119612277800066374661828457151438242200240166477745262294027462123615845570104055680208032550884686488698011711225045867216942109951493805030334280310835222185020914409600614663961218118184900816140397359891170561448105220559702882480202653538932575872323250022688488554885492397666398850206544345620413469179447361355046047274370576187399197914037129269759912304467516373843235409058444373797471218787377981364439220631442839412729021000496684117090350001814914005557388678465615853630913134774908556069651679617295433511020410783582755714451076467134887000593626437149925444603539840462664673307396523497742994288425818012613448911961058885046509661013532499586195094199917968789817330161153763890332579987211408291133655986673047563045551888328938721768503903160980468131002123600368117533979742169204044513250418614537854915113749997060934434575709227864072029379899450242252216814463369253739694410259682689715841180759848631212321912664685716059099876158589803849378356298909006304470038599099114582994425321603403718224022636353205658630564691858902466840876862023473290471059111041641764431046098118321496026805653627265093789268542110900710741912315042394202835702124336084988055333012153886203603355464965369420762800898693499165884712381333640978466847697812241717405679054781305954304864919969392607975731066432224168635520518935471344380789405975437587429822810041306004532937614718583622213181487846501993316444502886319665940467052725919309019077662276524719644877041601480252922268903858750064967439283556676685839712134359050300502472430295551918171555883726661702200558483631220570875556401780521226856706070363561426142502196253265528629912282150630344338539174971451010475738787131627583229167284294725712174383716115392879581594470732330364627440021757549937628949551210106772195919390243738142576892477461795024073294183733614351828603728024107535745277555316899996113731345529568685683566250301636153181883825567637596225370381756019167665928637683621100400182224623851819297200280975989772349248450004729960736101612898102172454883528478252561737805233134005224721017342483958411901197376459033802160940965984719152253156787699753474150900509053094900140954745281275940699239315270978774836005322482931055063943005885701440222256614193344362464359693202873946421799512808628921974160294339667932649477974322250541364563587244770536874163564503146451501408721652359059300730554353020174153624858680020258408170989562754495313816510151451480636280709732313022229003004136373029767625818712899595114719503286659278241805470979283427746413575330202668814167347004832062955776086872470878534630283420557560227028136674441844901198033242616090768095760791999182373534805054513484913405244262197995973314846143150991783689725194079685080385702962702906815622928221367906313709188065135355867170312753017693767678224195057607198094184005991684958311698712301414341842535794504568750809573287699316984885503738811997643910420083723452939821822367798477324176513039844735464397320128363472946851915685785411510901281194295319538537281529485478029767661987181625645837768120918438148660030741472383756417214751142553170302010505486563591783858429070548962848638109392046429299285629945899124702210643006271351454321983042647735728323517157730338928610302658302801228023464613320783962942306341421476058145895391128641987541641244972973423503772910804428662444711281706592792072533221392351905070088473943961633165583566198819082325923017328065381137215950088400479699039409846089891307625554472351951134958811529807531503547951048862568045547679606378552312787854410522818848029574646789848531241134196622941698716284452974176901112745408993637781880031682975264954088053488422457562923327224702387763033719533323586337164415713753753950392137072927801577685131193874551376479669354935025953443908063797122601179698243215531874692574932079951570841019724799623611658856041417959329663879255487330935999804150456207150408937545254039941383300261653429087088555340795195218550375086071011673277313541549417144406256448175817560052669441318421442965389914942268901577644957280006567998990134043669837889968265797200018329153291764467277274591113791787458133586994032555564941509625341016178687311990991719833963532213294484542649563734008253983505008730957601838211824973963977649958535330925080027449858887995179754025314071929056984798288143986484518429545677540791424838492897494237827441531783504437278334238930584359222441100453558716407752764196049787650323345651086329341984344062149272148512813475735930777951733665615415392977440273798210036241351212073509686249817060380600688959390069075515157786672402403592885018273812328843152001174975699333684123315947950069040828906522920543373927665613791460959913823620911081724665168777552367229168115610245971312333747083849613497967142352599348776896930464995945749544672785329315333497943535981071503270830501598115712291626180212262497786063516346641893119753906372922355208213953720709277850673469222868881896601812149056742265460498384612306868935413017426124473823147076766172121251933483576494551325717941095490323145000350755782219273605168890537276917005323618840511415085690925016236671644818820392576672707684024291749178915850783881715287470666422924828669504453000643109001010929695202139041230294467035389947752219444955299640774706883988375574044168859716998803870791625345490755229748735249972398279885891758268271516747639582343820271201432026497772939083545141802608926138601402913405925723356630398816776575194668323092872382130906466063142834637836837066563038984040934582939960914204285840183520720607584535653641665919003728932393810440549740351335047548538581156662313994919962188037208901131120174258534605682890960948707934255696073462446071207227810520073437211644887697206274868986928114402087745394572838262753275361470098613370665221269103440198352402436721365827197172445632385909086844129306514851291708260436904596379074339510137167910478513609383586004619033397859199275816541482943513018892756326161263283807632650828548860736808506848512880925670996499370733918552455010504686859226948769182340982056140463206695416249443819546887492610702925795807984206058068724793038533241507881994868675640032501764424421936722414199828328452543580519414712322580197540838757981226539434293689036866625836229077209470897561331406350420581344217255218575421486632075966253886080182557636284078205121103976932737408049602767920861798963327698244108506893916285593057093088870109927473600653564880270087710992289079664135947384975583663080280948622861637906755525092872563469900542783598944246295816359221260112793567098463754239012317783953991419544180386881380006424954713097333129570069086829704424175735955326222219153038090259695985566469165656607195594294978486568703825815012644867902713710454711364423165451078498742306117118581554747129824408543760593903176627798844475606018132746955896935534101759737704447046817192666476184861027425339022570946480662788043745568533891410068399049575015681043206860649226428840852175128743648984312656885305053512334595629971809962491006237266080748533843455907117914052352408240318311410921644827530641791571134803095037418246774476721581146503846492544086731374700191712909884775625469162758178711798213539043144816437043697290937319805188758667886976518185635194821725402960271194825469344158050048811287477352335790443555447325063259179249105660659800464016676166913078745336097286215801805370500449391910565245263410348681488828723688445668294001077457794055415677407408145514629912151124027087254612640266498966026649541980642228108402102743055096141029316087793493239977183304479981045893729655395336627534306410072103447646284037024146872107872305471356620033061737315678133625274142978522044208272603680761152624000477530667300207957784288298703363760562906214560049733364387366524064869973330140662781367549158302705884829879211459107511888409220316014341598484456086844345450155913621433613958458312742416814811835629265746033813738800759213243704118646000637684723912994528165529773248714452163997837487888974517864447816870756309199645857418041466336203485960291425181387481580548680200672396320197609860077485754128869831621515573296934042073579243030151262858819990141151114025505211038830901921687614022019778741701138054336954614267892922975716433801838548984022441442877718230214821876045613684119366694824125031245452037383488001419586187666947195753638550040363230360289035576795320999121085902978714133326676630092013575298778963178103006492154659095131615360667886271774205279407881866064062735394076258926946056354338871350262197158240388485030552739402427810438897444484759613194520115951854848103683836734771029808901142922811921059314996069363744966118160177683855016112234421819614740862654074956187296525910199701250154343039604919105330664093131834178026919147740421530971201584138603950014016568247890332815404219919997227073059114669759411427093682735223161207918754774210099467231785831604708572886503010974167830628632381422669005682357228485399263801485588990580484937985694191646185097206570709076705355290750272544532108727881095428555559080095314463902625930300351448107580873558720791234234370547959215065730102212956783851195115152716473019497465238672257014233193425959275173772556456656902600921817509445410275081194947241222287476720448599480697941587513160532075980005449510487984069293426304897548381505366729675263340678314493783317596127299082655743526276656313466802753626873717980895051553375462019679207128089742354838831394595346260402938442742815416904173165279691636531601204045033886310986929951606405843367048509748859313447677517795288419136959469304749934285755418750536805834457350256225992625182040395829178720462673750265785675484723942838764183160225046470023461556628267010352520148269378583064226347348095544349486846573643834272561935289152853333264251059075346249081482544380685686772364778174831967865693309995749452493622769852661850334966536997023882352423133819398394457094932782158864966985744139266590701280630374887971097087154451814043693789594462031017653537569108138224868795999065610710506542299141340755016939926202213602889297933586495620126779748030362739514924995191162403554214321139914249153113601857911125502197878267292102893789610189077585231450298726616547671972138666856079524280641577815497217999350470856815100656695145569949776261296786088266463630009618924534020307089034154690898270213286684467005020062132843369861987538743417944900451408155855349672973332552457731439983519067653693436827780466248740646723829101639091329455992711853855525227407859842677670100304064870856687402236905091962937029891681862622682592056952932549296517140086427998747497201016163744936044285852853125345404877438369429456070236918487034694290476314993341377459876622586269391042948248886914251891174973258697247519182972133979028083468432236091777653424645589447352186027752441849998903573645492521148831291967658436943943592847093121263873044690497121396618255153010977261383731483878509912077623179504521579287815487224446185544687399403505283954662042486718585575251330507892289665880238200989103977866432156590220256043509889626141489225957886194929607181722241932281442661455607353025057031472102624174590417534139384119915832873876968136994168261284804981412771188960353139059905997388021643447864196954431592399715670239031211663047280616255627200875669515030267992617990792380945327651784618298281796869741203615432106300605222641242862348800794961365507887867816601246915033460970889803931787261732879605580448237832893688265625203888604555882273003236912675539636615706701289877438179274586377934527968260303055482772970727022851857373185355270571789571838280710566802823698667549389607200609519419298163034130161478035436022037603877712341478673846129911681511704553585562964498783987728623249588914689813502307817239260310435106521500309716728950347886939089255676829074204627140582592657900835439439483724834341629414657533131717111311387827158432937299621368419179261627947319502504933896818157171931726799485930321816303697489131683324178023477948930406463599359166450367585198589127310532459551931808106247865731286798998086775075094053947215501414152116970347848996373407787229141864657363802192593107130199695982711810083945606760432374713735353722157920780585664989060511575027900985442726605856076238571766596262201293183467846144109845682262172980996840777590647698734719860217288934300469442901404518277277816547873671084963967121679551617426503903712596780128326312930325884691192595931290349986175587352989358904785914896803753890579817745849638647170613576638819880377238360520567908929349520964964357304749002934135072771856126679244757170856932124564923604610403260279315074345910740118079494973621762963198851101708374667193736172474513371263863516094194146568229577137485363812247205236461822944054681091268762046930428833226004217255154235782139984687641939110736663595028015072259630650706832655186310320084355270059891808135934875905030283917982880620152786643051518207709711975555946671234750011402876940136142220863710352596285691651642496608326480174030578713501981404222758571354215427924359487228279847715110068801716292677408518030968969903066497023472347934022674334517698682611860932027514111213074424667258361456965558599086615916457032092680064001194615407388645924084508082404341618403500096168176489466151392949350995093814615435991098223860613527012647169658509561494613666877446228743386917697149071733842622043020943077705184879245829209527578614145697574543665544014781465995418598045619917628622299508764133763464767219140784808228162343731095826330699831789821748019241144825252289123070965542022827779177725390844833397617121903106702407728872869975891193005914040697370113152019318923363247283831061720054417286542702391840935963282836167722455210461493927668891302794269060739443867451102561168559662359487375902270930976472726422060086763214126509546440749043807321029087445162879362762798695353586791365395458480004872071452302826959299999156435929705001927245126714060333990823875340473647771678144707583739182558604892676653088566670239984516384967778682000426659330908053302604211812845846365271815260588927132725001167622445458005724411650449406324577717771781424140755599495149659715154922595859638879410148063134884984615763635411351447675685411532070879107894708343697278081980865579197355195309616630939200059367375612977420621829752087239081695026924406775642075515672357333087738743636723844540634341520343443067480578188920767422809463202196452561025780621894658078377056323790388425765652107224994252184696329728409804763681519785881304228262080841299666665485645344414503322431853647048357836067650972387803471317228581051419229796263225878164252911140306067330520379566441083950123095212966019667435393605667445721391688900765820134287617347725131537280997201313626934919972768755057281983574974161437091352447766104831520808891084935210869985241093833294925742643097218522170842122356330254750942245782326859548555889445769528422877537845383013031002470710326254173416051676429587917479042182603680648221344496980507144256120105628837765236616860766201356608553891989844427236833810296383755513864081976585661073447516808441260142330780530071505519584483939261488981844556094001947464110323018542849291055342076365257955500823092524848504591398701753227567347424658010174171869262725605841822787940269773643724443998093737730161232010297645035351496393467956933428609110185463659160886763058162241362436752119288567954581095726622312711471964391381980683756010327481341958780587354801348628944700704929240980673017796509232044781277745956609875297891565366031725637729811569416725347072597329372233432710790196865101707081324598539466619959583240441132386310510128468346575943880690416663707269093412779372784608984123353595643402173420323238734532581250163512887579905100613844417544916924959152231416040090323595883134683525759487395621922492856929405478355721594334498874359703894744664649311826033316778657983001708647428981723318946505782892748735249571719868206160376383734139286566633485082471892028691202639660878651492456224870838531168659426656570441150174347211387044308941192687311123464136602384387278777793979402233707422057523264612590817469641614865403908786828058290543208662713143660139491989254350756396730449596211248992769417042668824115664994350646380607418541294662219821274987943593469330942337286467711773877683606934162646974462059919782459525008414163022207678443526034537974567391367879699879229989232661265630093070084699417519971595926430866793971442740714171202685305602478264119130557052074960005361747917565887584474241900674713788497581308605340884891752121610712757358557686789603919550664062589002616115854391041994332262134840461136441147866516081773848425499515483044412454258079610867122325779697880731490789945881468448315249708478373002031731404281904342541422530388663223520785495269171560657630213157646224596618956800797744708423234925828746941629564269537426994791578864789241411188567514946921162061747485576818851188116911481056133896477274252185752862599870764402444561208237720770273432983094237737543552151673276550127565408294878369335011573725753166786289194519109797362773664050942049432881039666227805449093904998492646230853177755275747221915402699405770593667044162643760622417912304633841669467997755036556795790343797947505402886713333515906318641913167408280426384482105444189344577067354997860679576890641329846631991577326653829372893176554696720109725360360378609726322017624626493216686121875153936057067701364330647802893067050064106353631626606920108399855305457108470488334734461836776123393616276234405875517749932059049938746630273838455250628359246048412191701321012169939618815031913541394127503004782228692606326157801285294335035413113892599149838683584399764583505548466853111815396419125063117105869555389105899998991037583210201591199501048571834676747567798224747424296493008705127042383768065604543633381818480705603408148693095425817705077269121382068184411739495294084609457806377129333412306476691384381432880849736996107558737760119548844013934458798638644679148156691610152455163745587603492593400801859415247681776155520759375541161121412061010878821324805292447620306918836420658332918680800410787913071842013556431674864172440008342943503809028408590766616706130248652801524567460857795685733822515652690772828033715764716556964745796265038981885730389483671513481223072074442204071233492232812071743503230894665322000718705004326784355785427725734850323488141129206534879199699922503248452150749215073944327282652584477092604578760742268535084227473125938193784112409467153194866973034282598481647204385377479331846667732431049973872517459866775106264470667770625130942846953900336951126454312679602841195025070615062862959450435674580132322796361808324052333096650651387749433737399167892068471154839917133568141683241452716605062236497192665834575196667082970465723813869241177927542055061585506265927507438602119657484227947892474801838932959171864043789473591713790410466024479264743844596573118457562277167402230967597406643731605279292754286868666756173552301890056204652384436693118065468426707530009220662953062433252575880853110334461427697790337182366225301489794440873296339921701126965694594215204905653226921437514243925462160345697013948368919895048886735336145437944438876461354463515234823887165921185602790982546691414943727132547952437586658332152874681724157946063700256361255181771054218704216772076657352563882106221233712451010720176058969688190848299168566220116617210961795853295323087533409236670634063496320703279701895269552459646513026615240269772133221270431639921599181799760842406981774452458054431564086832334514772972050908151874164570792676003775216045637904902345495148630700711096705355338761077507844802705765253808623173296654739362588980320772256809273270743369093766861854893803807102417100440097390286872096199376743223716379538426201632926212429297303038447721153229367036562003103033567207904125239057332351833048758327408188477186170952034133365015061747585841462308564790733646193938701790455682262072542317351748027068462745189996071555215600934271826974972671883906145123280950579917735734277846111410410991968915779677584066930531342372608329892122494360957837170357706435610227429130611297552363885256079833942647024962932319226326990939568566920313692991042235663235555162400464852060955669682417975559497059301599401617305374408401203364514652885172331225707507940510739745985957294538631025044993931342199970846163711190458683614869156768373599935993253505856301657131295863932537353312536320497466821723902957925294713052455308566728922601963973180951977593055906501777825290155183158717971109756616551361294063339276499738438347451912826904353678969241308027763771562741120315062207267398786449527742803959965253230355653231471282134456041422602424614569661069360287103049470216093371382552391411496997191038489904078412919715720140539822328503764025972497535959763035965694784208476459424577036629461240265511285384150070344392357231047450226931609055303330538528767160509434757547883745790266239327776418798492533408453431699416110436693205863098603822748849097114399707161049635173331220352390757810414065733402896056155984832935022312213743408309401982890406545826742018841366357498901756406759868375857324254008181434370838231685599283587593683620455794821401461104124734273669275694526303286535505690006022113961172915734732072347640981423617439840300247982232682422114644387241238329509479238071553417720636950821356129224893759200671871016655875532490723410872835082927248297250387807977030145245965013837239373723326777955711792488142475463234507330523590136494141226202556055989346258099454723205022342071645473423644535100804315859373795882219317446471999365307616429863134767753044117251781720895580348336480567319743513944318037758951325666170296578834161284795478922708676815670526026023680074934058827160351289224289557772540113680805133292742593830634855225317177026828605130117932633483057537457916736160116534053471299977721164322755633213565027997822918803879944758277182958298428694449141715874167205301208849864846751525564613479351002144522007297533834559134839841446480530136338390550184084879421076558800866842616092548711828435190067867533626726496289727961819750298836313257065103827903762532779683043833378681311186711148247667810770855490485058629556819561141586208278768341870833857671428206404945331528568947148269432014381254994537379357507177124576493611564493585778029472762834082674029675784410626878320398368226792053480385626656802725169697382984257876493398440629853083877325929742088697485989183504936168785334794350674018757744554681237007147754280634023437968945585362900755396751250134457516355946637457441805968882213230147406535197466536099887648541325303614634235952300754855343851080756012828278947512942841139452728591341677159009723754890679778653940716118973009968764170903974130582199261907718888093990926810711854625189742578638366077013015541852948032376960020824205155532684184705821092422830719669992691178662266506940440363441074064131868483200973099650561071350289591267639860530544037734745544672731735526563929724320051683761014127729303074090606839006637738720624402755052712676976468147509241607725440223804067254721162379229706079839811960485868162854399596734438026124708704487663575911905113557011330183319490606675117628061355874994962122753820289257381191666984361189914777492243722525838075141836484083703192640179096969281831733369365438637203179519262023046208251265069885792760922840059915967486984660384924658159639701065028093892212670347035379810324629705220905242791676819065901409428278283342432023383692275909573599478134500419628231086372563905057486371324359288102341351370516276453605958301404106269780744187682348769252159489824382343461944091838921922453872702105194994677586556378194523537641172757912774143885176128084717501116789877875485546356574772434771054245014209469203561962701914398771379488523702863913835591494061135042073466662799188748894630455754774392648832493297897566247061005272550676425880057747287200789974570902798462727911548150404222558545123834615268078617447946015240085002613000399396022946843792531392875998182818897088024268180913406704949695274907480602142002604908037439709221701157774259289853990256568154686935272576391595093225832339911544359300038563543078587778586354899046665898904481713851221942344758789629785054073553593166208050878079943894703340409858982828453579566814433224854812280623298476323959484509098029165626185144144228723721903679762798800357353952728046409669239000299779750315988137896148977604215533642621261469304424608788155389606665659859278142265248539200685690348974609411004773031975651584859231708720583046822506435870021336113731361794149754251456604997867276033096705150074375981943836657522390007948686780968494507674562644817041279295741505761339727727646868137495202385650070998079094821812132093868154123153355712893517774878614716793828786301479057465299051815538210760285913015597062385813275644180006471969085737923866823507963307847166002645072060469710170079078758756936577190686984573210002075802131658669100655044448175850474286537008859550485904675776384743691109196040861182678703817512991620040781390549270486624731652137122693152515712925196478712977566924329999247449592668457067284815309660504915933558907249731465633035280897931332263569543290130872805754829009679921335637525109283915891157306769780184695650686509093138409962969652343703882149209232258623549907225420596046978425878675905323652289830648912086832937748104645276759219062976559289349892641027648174893677511113380439644738105774845220068293783882732735902139868777887496867461459416964334645013185904719776421554075239519572886835067678812111118723285982411882677907823546985798196272948663937149692834577921222758361419509216709306334381493944015949562034406365975955332059454806006596759004436517931806879209625768573750417611150358894627429653438734799639195432385881720675080238263526568800502015173498236793230412067889292494146487277561550659251575687495687819103974846565562320997365963945502783260858222690931976134240269286170959943960479360548656492606512843143842292617863621679137534645406981043240644314519624903191940915889079393806469835026498036979012346489005942964028472525279160625088301284471934688594063279932293374848771542182543950822639903276964661687698795776115549523969994563221427246079087034734358372711041963103757052874585880184277957175374886566281928460673309741855168100725100308894195542666919135762596337247187285511601545634015915251744706660999700986679368511678201167577765918303309982990999606641310299250113057701454994585024706881210220245550075784730520323887655069086484696930123526688613639406479045189880448288246976892739109683338032553765132418693748364423308892448759701951803070887207654442279078115867040618920396322420132672586565308671993097857797440285956494097152405958091156097741780918835400797753923307270530876401502228587874105630969686512535097940899025655375911116465230971746008007319219141825278107664322443909646509391694472060436986557912232643308000177783477064774780229341888954866938409301341395930114297754928840663676787990828390786875576480119635271803864968461873556803235771979106368576941209641971367758941808994144035706130553510305696051265304164974264113253004781553199827446589098098587580861471368956616232193965379242564871565612028521693012670176769856941472081343269631614882420526814466510530376182738927273381021395097122558637563920705653351327738583945904132330140360172075586811762147845504300889250123880883299349690839617313719695851180492603187334572462990626860249188454373279403281740300890166068227569893799162324391128805806858005100350905572824160329876679610914765184659146918902232525902934210282269992887448520262022159325714535747555863164241065804954873161215326584393488849172194090045840914100401770887684285375027775236871147802903956345601761118522105177322707630045929527992189686785543125360100012622470410456771069377989504233971823990154052995720694720274650599522689199413745225568258971756503038058568044735425692729243670652408631371080817955760521142707590444936355280852405114762757546036101447085790900524766988464024469816337111017675095980266558055302355167825897895673137349205607807357076584372063444346049478933691054018192779092971003244488211596402409919776371456795352369668718298508891011108394606634050916334451126526115117072047321453277095106058796397851408295455456866553072229458677842581172208041510423089962185152020594526216731708112411891689741300368985721068911523548607543777398484917548573204277942531112627650239406201810869392906191682633243729764064560386155220631333433570945313698936614379777348956800199341159618306387393008935745055531296244891647471215220944877896632974300353969620426422516324168908093995250936248245407602191310123051828862496831277036828814144885055499169020859892094300541087938670749128829700879949670357197005363523507830565018072117483629367672556769722582023420942329197757501334274903273902077145397016256122335970986911332531110312919906273544497006545075881030511671438127162885861450049350906655378210237066744629371060208272982641077603531315872388800132142446176351052529441145624638191862864549378353393521798886426985053458960455965414796013491328397948044569964681935871017447837283063348461004274338589454259718672890906596842010018091516490124861474342294367966433984894826037602994150517527322396970545250844457557869120271935100316413111565152447246769706456944707356498522234188556266790024750604121867429131238552874155518244231216020336120219109549484779124748264394884045509861666004868444891606426023370814421890278381563551672813429425943481318731571776155311730066815352184074400448098423056854005493431652224662645509338163835394651129725769188352236413307379526938368970210664610004797742151546103056886264975879162996098387734285582742816627605897803560186030264916171816689848011408897124993935497274976919691263487380497201903729611326226155777450605107433242700225723132711142564689890351234176941238466483932738293741831168700271144336408916492778171513942043593014555412720068208405626132188088867823380919355916569512572958308895245864250647519500657767121669523054485623642728951185150363950017487642172296637614572134488699830361160340503146073730439332245199742029336260654271901310790519021787429626290452439698761625939367628883592772221479908948744269634997226566997051287910540264317839535626435409326446987803036908163735163504519755821160353614036299874605027718905812349916946926061008574953702236635506891791385581417386936235764139630343681663973030809343261764720271177529304870347218390274405387331057355353529746821868861220706514107498648865741651515855543412817717854707989173562201004211557018991227152715485150778947270079791517785689245708196618848977142248943188218525171343755755150077948991673945486655558000721358029911687324973751202744254841224839635994451097910250413557486876061629762020529778089304671663058768256097763484990758372964146835789022406812326505759357671662823763631952529522266522452893161662478003222704097330522997473236730590781222465426457556892320521970004413140983525770748031146856887010936789919962816248485165303386340805552197588740372670447789919902394134035886076036638504625074439113974672384045922295270459572154212482012586438882422755437313320707912574992290163566576768432768786510302375410916369130416003546185971512334486605665884245537036409205128868570091027394156937356651598953329756544785427245669332108145476495034567166345846867465441187930338203548157287076097014299893727652052955941724733110015762569800595327371676732933997159400249031934425767795804863348247280495625017443334593876274409064942691977746136150628598237291197970851689369049058864633775237611147477764691680302761346270876977350074307595182857238233954489048870286957010453106944140274366978281583109296190112087154996550353041974849623601238070110142290613598646550680904044760545135864945160072370616071601463074140696772330800324811664977566466621709177001546040611434152237187509487389091309377809421695414231892278279689335432854164869251553427670258430228937260538707273519619308858166824319572546372774151141339773997032978993614303699696871937089285004472326989696107938757982345018503505812464259429525274918922335588981452953449427256671157374428806427199107231316502320089938739404477701678607286107759936460785188270842946344421760684265114821099782769935331852133862669375909605829015235228494198520687783507315160070867066353507774528914302599635893941626019423616812820535717723455314914889351995403604123591176253679537419717904820796130826037808148605653687497079041170888726857268031828269848250035077908848519814086223412772879013786516280413413206565710990472853081732523305560392788421474396519509944897336117895901093709549426172290381351320634037745076334882773992469191338041310486885626241192699938467783781648713381264914909543410182575714101775481427024743638961477322639421625853275331976479284417330483287053663317959219177690647005909356640313597515344125091272484263169028106442886177909506198781608915074219028489911965320252711266410360412757623953728251206217177064345234395349135264409572683648913404484435155771090325159154945215258021372872011008808239610470962807167883046312071434312236191259946769934735015602100499985060574396682314503328085183009922874305979054205171022008079743504692352235971266969416311921881827452275894267137106707099406360735548992302993707197496382989749646483466288275306262294591870932912307191780556924853959735775803955278107813443719392897238292290686360344562743588238138219716283102578558596571420110756681687945845773554939140211588476833808201480323773551784747664769322325988038743075248143114416991983980679906158492885887852911022848333442712813010563448457091944833294480750081268524288228552257069233141101473683626741220278726764866801099537945719809451858596979896194447626411649883580990384456183822017659202426441486004354428394859594933199771919650740448352299239976768680759443683476664083058618307838000646495194045092710138831461633195352600401888557809476155949136346725224612179744011506018984900988482120034251016838280888950286451887730837567787038122931182545010389931597460976425803977428128472634984655656288338383225360121714182037866665547763221734630390559944517595102508572012221879738814084671886166541183777765174893278176744907942006455399684294632567565070722845912818348201286098767023613901517451760368416569745994871976889975318675735694038560369898336567021134144881993343597508073706850655951955280016516838423116099352193837160102030705715719691534392997610428629268471666548618485113957718257879697400106717167853727634471144238790096750665088236071184689332678108901784181173866408626272702123436796916113533302512050709947500928208877362300686726397501823802079679642175337869983339347948154768728880675828426382760977292467858351482355198485491914574461141939835877992668459445148704618060707889501860892125013206432498456011748661744358071361574261973701098978798304687235175800849109587782085303124744723046283908650492018599646590474213477947641268930442484186381471155592648865515992628696188153105859081322205074253011805609097144533082030573259276396298318754507989072037094924987027915962994697727377225406916196735724384354215694294312872216321147929671089061514269645502782528631607806727906392248521032985035812593831194223620211514587548717312707983962212171434946370250751297136139617831444499045528208285028258618464534636585879423081809584060721456933046428456507115633669968706263131089187747555675304540865150728507714959251710252302971618165275408879690384508526120710647391831543358458793574138084775618271829201032904195046374027744143575407902482025168507724297255543921247122455218179544172949714826232055346266674450535095588490680344794454557895199717078014854826759852166352022734498271312799561245639844342853972471900118736709314243142643483608627411654183335120572187206605640929774746335774223105595061713348164479427827556502047013251951719762082220516212319379456825560755420175585718170379790558117148294236083468136674940151324368371162432124574413674278805353742673418158013711382040522377277320584335678390297011323269472442061417792863294926412412585371991259928996478206431625919615264261806252633118632371452577572481288726043081721953197790763647671646972851685764564807744645016974030566858993227979903372619909879525273975390812143617272435230547187622580487120926605563985831795700827166837923502581120694248392058069251779444326917116892492939030676203573751459361954033368943109994952878848964139143016567632659365233136197588857824169078707810899352121506624600000610462592626042648858011818734625527174086585478906125021063853709514336850882542572271275643109738995669588410410379194066752517458828856128373371093227985067051961719230415014611843695056965605430310455892049507160739755501469776490923920813961514127298308387512861413549561958359320470466309030061046755147407166743035965703438329694231204124163812961429950797491103669458660066704239657832318766251682870095865905824895088061233260229153211353184518304917286268670243300611479228275996702154306069730682490181503235265924821016657111175138424088411916719857329630988355571234758572148804519920436343947871824183963970931760129928701883990023944541937348572391156544521562093117573997495840089412854875658721502541217335874344863062705443212563258435767312958113220233857210044068904767400016250353583591375654691858453625537664245337701893799063793624452757056992944977976539182436657105734986555821165920646856278887132203736407242044699852329342348578626602458906441928983459314054694097821100709043899888712596030087332776313699779963068421412381167442243974120876161649944822171903083386610355820531233740927586768530494624800136849513782208336335155612444672151488252248217533709134148505537739563492941105110059439733678039821666731194988574833576669957592515921021611037386326699463997792240962679672312723417340999286411015899335928816373028274639871818061615793986199269443736725883621897901559327771755446750492332512259942042168520256384136530465680800753266841703735613672055406827392008058890013253740904829126298455789486379896093762753090267062955451702306284449861849410056680042135968542835363773013556600752688090802767765556274613091189487475994064035742311211544697539519122239119394302348956066553096827518198661432380129171074804898230727301450922180916379348121536775444499203031245745619355239377945595271317931642698452360878945994630297534142968361752505896534939369348040544508009943959337590048852894525886058815206399060198649625714098600752778359878424315070277802204824469885994877935303941383180823032527466174439616883128452899732475026305281916235102787002531976300190432721818316522751635402167217324922570448236292638766327178076079566776541521257113814911962325456342751520145583756870899921483036180352469772100656399660894670879472527417139591560903802914849493106742758183257479980803898932612669423419654426647634641842442019674737673828105291625702709075729451550586845362869653058510389980045214092927190167347088023656212506932699842318324752189150768127630270791177569150969829307478392321713320420820593184484404715995016531326158529559491744075394157019147039756161034023196363089639773999763533348008370621484028849649659861520723863377293327624129441330866699861587694652377786406383946611761129076068532382087782090362851730026046528203693056860582713641458034463891415655251289578114405001655310454323707607047105137148749704654750463424147825064223799422111790965265162246424829834459809666385225577974720686355552189621376420265995453676646200347114583571543139997304245317457818111257607137935403935084601603602963183721561461753708195838846285303758807285520431301112910383070406899313211575996415606072710244729515847074187901999515656465787744302947623165299972386148067094894616236222871765667482142784765777209384053049230747721713148714476829939967395954663539187194126563784773686102580021983338221965320893533125060109357944442694484433266845869492204682316258580046400045579296780506401941683183953904332583176631543378741368687248069949193219650300906131876671653399594811439143346109344991162757572383758901106670081553840013676577113164362941320112323774215226065168754818017117499724670808436651217603473806235987332888565525858791696818473312764544119725888478340035823522818417881439586357829171621971289973520133071381208479826098808307612261905047929887811401789065291251673096899126143163255979738179221188538524878501206233727973557748235221186876271989793333159511908522474289399492257777893752748356107292450600086541308315879812659684270304208216481316781559714271935042710210675242126484131712893156942114853833491498748850490508290416355028400233389803869440965783621816615639924563411345844270454261507717658206772996084754818360586786194763265569512977828291588359717398948018257313342584041808952945595924826021920905218098482653859990515572372155982040446020511340299091336232592557167575811177241966634883667018564733022338388040854653117920496258185730344382481471282109608842608393487442450226429251689384689570951145332810781871058251745979960312577190080122257977975114046773347248705456566954699931322264771889841545153183922848908264234849571965202659340599372666913503155296604442984540472428790953252161820801301006547375521633382798716676168801205911937056538317145178813240563783322242511334208733289596119845789194248610663356900047534159636848643658959746849008021077913791362445026943946864930102228585668112509869837011587894931045177972842804217182081539898510784795238647397626442692684172392119019473193518999442401151873216011038591001826313235596879135271844515011308880760976415248369524064287862878856856001609345906526366348518435352053508884290282781741089398849944759099063652214143469764284460818338721622556070668299380472357222738453199502949819760445947522993620694541707527644181480437625710358161960919239990356933596057230208348236675261052745805889134033432432830745795107412751304045194488869617546860639485855862696704766343320666066554792967536147178119775939966663872592388808926480751109528342953322339389635621293913402802047694748569042524698554030702388587334189738083344533353826091095685347629217665161642058855624650891952328707749162828112873734263727863610153515420438961692055450963890000918766613766733113958424410469365305301206646274207444777712443767210007364578039224825723696507851523321163888839798778636934544473418505829363344096030762730291458628875480983819113404867841361072839444313623238736614682965638135516952001203741334833914713246637609499334847731961559471769472512939743676345594134471922007692573070510558208689864746930777682728719486531247906636743406873915025627465578207983886272019921962351079918964491458852780718268215358816274987765521439589943380929183550906534838580524034883874598470289684745491749367479397825160398994274012633956250256541003228854080184066474760879434997300375096958778123195444077207889210629930284773842855493835526888572980461831498621060747696900222324259285225189741459914584325302715549170457593365266170808512463538588934321271712607450970146844016027875292521109091048618253010589929381461943125277917215494966887722987524670665000623206538508773197482487068687797944568988154165434879321937547736489261719843790596582592279549843556511972610464857622141370710846534277226970039661077311865931620702237810229630544836882443316339921790485131705200456443117596191889245373260096671940561843971803680687960104231044612382640875654583508192017431002222324966574439471508302066422521984297721338006961313333216081798567951943386550268596349932882645606440919385206248856457279158430190527706245464813126111779968055328134523400064059858553954140018508792387598668139883354733999880696671471185195720446132061809098192958431937288284983593808494910478718586746259566220257201820885977654841893025294977310909526763114440772475081487380469165767258419669455509944699187597218504084318860590357685927217999097321529209754621116461134425835908972659861562524936906263957582166810983635980523007531790020095681120670230913630823972558473723730751080211417723790133470874223199084520513889987343313051663011715972043422287546191092621727429643716140625374020285735977215430238830799997024359818081924344482052228351800667507929737894202126672455196367633889711126950032337913835364853823540043245991558046015422604481206468525400855442173407967760639696750035968384012979704700392836707282135426694007975680498690463618131866243102611593370082339861937847221600560975381119597407239852518746930208424724874670175768515259086269084339741527382031604730346399410215232719555313622636021872504540652902538981245847353221689914689567245802035595014498790096558205733064753918708304267815942634049136098675320914012792615018961295768164112845704174912380188005351370912194671628697484231049006913476576978868516235979098872656690902485756069196947031787166564795602108585059121669528449456498660270840181992702188112685591802992227784720236599275482302540396895847127254276492028998695658251337884346141798952637998482903630777825239529763390036494931994888963307910079274563177414082942936885850951203864954601339462605449531559720466365734153276451750373331682453220747773581026073791471566767173092754690442681102100137996742642987561816351422154935655680622926318356412487133441565590447570941947249184824301045817881078358181876549193605827727584692966045268029130354917332360856391628850054024349866185095346376215328907234799906950100335410277302570651021757636912866589264176686184098532553786376713866951646818165496084397224071190894581403458341598770364505208910992627466310158044570094909532461234876371696764929945373247599858811886486610333524905216213842577325321777904288554285954936062010161253817105113547121844039359918338532951643593530735686455448603031099064754598604431139569160104828032534100594165492685395684042238154217949781981881915216378668243610894795713242892950063896932298643142303077446658969169898857619263137704137237316860461916874715135305870992093866975501984991941524099246430411006360343200215164352160985284736099170639715445989441031688122054894602974247646235842328603747379832469441255636660176567978340386624698790039844886050389503572958656970161783127660864111655542103743902498439419106419958986101212576971618941253707500156181429846892685239396653666571689998327488236996579133464892158191287922767682254577372534905253504535783003962178107780191217755851416725466471407126374362371302331026233072498564042064234976162505000415832951484244770105233724721589737099997000251861510796434045652255677338502567380678292848187458634849316988169794307581841004246864989520132746833159432902011421444414964956638523976494781676313152329719906074152566429527759993490570557752216200585170323556851523283751016883955494745350728677967082426795914218623601621529530372185656391451498532834802948441490193606421228549584633808921286738975048683003130417002456923855748412442306573913920074263952227037672633581996972174392921463819651006277906900516724640815496973722529005136661057927754691567828342775123407419112281734184132807076040875987744391614834195336729802607520510819241600099692538326242710143217391675017263000439116467106508293835915703849039341640844734470163101803623021770351953032288238731827686555404984223390819962414467342922934346643471714550568671754322133359209933891784249680845095646057515759139378959230362513173918574744117071917869424048897616166292298123690023424049809525502964845713435568420523855291902825294907178859362546456483933562713344404184030751266973000573660589085716270635963608596854744546565154818029334819840808530466072591180924919803441963932525562972285712228741829635655756572444896819341752811383682754851770933491354633943868197271912997882958863980444173232394602043806211850944283490221387938895960997453658029019364712763311439021477334270120220638968372029850801410723722767059454665810903529911286365333722764377117709230747003813503229065276694157615793022817879117126717486838389883538587636140685044898275361380101895513450756950401464727595490381409407768287127697660583150261004052072408323829049947123358026801306682196393212566608022666625314252530116412559099202503055649052029266824340062878644545389903314405579571883326103011429021457208418027535697477388175920328248832876251918045715038882677492185840047793486510381142478373446216258287664335503213672991634509769873812888593401939996674284789087802624797438596560053345171501600579044051521866478076116685761787934059316935051178309160217437609178808789320567821535512482346652344514878144233925675202666504679368460194910764520408011930924331808878538173453650320053254679261904639527330205966902884474614548776430848801845662976587248820679310824083945052152385587525546371034670938324510404531694406541354714119543142780223440124305828724283611069753968186509486243760349658170861668022032286518359097238611058635887012764835087190355344597438502636858152572580518397191547871152998056067208349096236811363473060098176703363139518192415580185875370022680667743560978196394876156317176613393057263031506703032225007267599048522202932013279725044817111547237877841517796814669451078474537175443128662649786878005660376072533104610860492176563632015410567743788015376431649197816253174084944883186623245901767425774589284238275144529584486559847582843591751459294378384071536199834058766289088957745435157852740260562113066465111677932094844439133657618940578455637974705901372165570604872118478069935050992737583852965246868334642551890596475676118642074160455094302628202790164296262625392264122769093089396889961768393922175735398491691278924529372091755152407368270667072793729937694362552478444381984131475243785942478637537672753106711778538653837189547529941202005389745203715808752804188652051471330602907873122666788322933370877575274899926035353180093043037548421837793839105072095817599400093709914009446612360521786050510214348594002316011244243282430779719902487247505606083175716647998213141153293034293051027815222279133765774504291015067859914077644556426574150859706362682709343476707695418291965670312139905961507891534641028355279269248189377962969792819244840473317124356819707512954794163138841683395733786960522926142554018569381704015805529338762110657662410550988160572961565413770745786860979054977058695441778316401402269905949650670704803067509295398307950504341593520145036935579683499413001783549683093157886857828427458175968604578651551762605906417281450701450034428796136181829031369327411254101342554758709844347027446155612846214048319425793663531028469282517734737532930195195660061895066247546297135196597609895216007741998224194069103595542231520620771068675032624396688734267407392300533731102538450856857041779414078225522950348305507415279747835708649340507390180693628915648096156455821397339881804318404189387793864910763094233586553727837099576807460729008709340710335642442130942136650059852278034093421125942688461272023854954904910414608987800228198672280252222763751603123133095863903642836776758657529826286201664036775790453251044573441405850608616948937883467428437843692082304144877588643381151953095210317436868858139698971742110221564118816900944045490290567898358939796492543759968107808632791217446459993336321096708247623455892494097891768244216201760063780869011498997603071271942785387915795802556551915217303633203854538634286623340975370517866411475350348297969765924478361526203874612690277549380121156733722012484623936490348453248761258226317852741722429805006366818017562460666417964934960227248328254028382201474908916190250795630794515630134769926582197566946106639205264629487426298408576166520827157579081358000288586106788499288314352861291518878960097289125924321699415627457012154615909438448762604725900171852085567139169666390814841020288732946186503252301973676294274392609272542009259101921613857956178662796737947064634403877869843010912070236711873358653428325082410946580818311950412426031102490074864925141854554690543766579545346321433301220553832078156829681798944760568343660545688412126115349362883881993777308293030924601925433974813511156012865610162411951702563908024825497803712120452915069823440804463824942826903804572538265253487962850189346389742687310250613499851535666027224643987096974860641988181680164038177832799930628337471138179949587552155933473342884635007193346694676409198688551919918921826648937983493715266770033836345816338060234413171774415562880632202634318504061509701126471369963694312844414411834847781299897952345394211214489483730093108973945341322923337230646576994285734363702562846544813152122086352211844055688034295305726369489955258635539985260380940954582969715470295567826556010862216636387889698731125143474636016529015855138201825282395245838453602281077565623075164409740397676921059785569853360452784014258999958800143998297075140378933486176671374255159974705273183574148648902250140745484357715381852905464716507913386114814720428595770221702839328804142409005002514764190474593246102785328316447752456647327098061190721561676686898500942005393807043275235840378049568401298140319000825347865961107656415130522539986521719349892161847376595894599189565852463473118169441885293705355499602421009255761874026084771150221753348722844284474815348556018687042263654655862931068311930012378379393451387745245388851795912889080460186017375625064213236132149265487036662437628664454348225866988632223231451045760504471106325079288213593539067770224527849267513336507734367730001646479827648479880418312830584002908171714993994983862016426528456163714245340833215247814442724034876743507854617710829596543208650053556834351737441648838976268010799254608089538651302062665648197678691957490912401088625943605041400846921649277332356464134943168749694982948647350944462498748022977027667801382991393769470033975734044433482019746948258095650857839282761997274579672133013156103980695106453187127919389245555465971448041243499815774982925062529563900084551490337343378873988405779005961308160947588599355207431118405994253384872737597587678522659239569226812217609987736723339162723437976023258319751135837597795455928326463135084752820846957740538128469072562792936905196519340216193648811439237219944403128655498744172779186428278519987616920715779182693864421494725491287451461936113042638888649846606743632432180302705849001550444684509278555182492973617231394080004740430163697850093839266960651284559632744474745910309845851319960000976203417281248699257266670357238547243309915969441607470077049030735438777886539116868441676745155813560214671006543366442940006125555478312115501209489297925421646388939622732764331630384075924769132780821002942117203730796034113819304918069421603505073215804794149723987714744041572303022722767587251971732260167157841867883798000097076375401902250492004290806872583683269090923335548936241342632060769176878325510758143771047863631562405329638474825510358056991245252254403412477597142857716687664913354574426832842210104148243132719846627740428137904746333437030501407049939167176083762973948276266738190650652285134389325443752919584857465964412998218785761016651695651156738569807575025594494293619987035263039221091850993817273164895814367579420819665535747226554198711619683289853157343075927236040395940446120060028661284104919505691471079157969192914197935725226289422716516562492953053140064502302309293078565511546903412203961354316410607905614247209122650022837736088337494513835526149288511205313358547515030335598825423994686816622842550821820607927502564277345658375996437987457041226721426402303196549972470819022741126742502963074916085945787039097921112852158153395254702992358383704247610366766900262719824285216786374122188280794170762438482142225168574418335684537731248986045867722878903069400721100249240979361644725581768662581091879217384017021244016787027272796541284607203713067390478907254143306612726946185158887741688426123121124448683726928337288262900932935619650205850188575029386007434370128232249833559680248233236435716164489231581017442991317369839213250303878586678608231750604927394836742264434851788225969114620613214634728381690543859154776140027967504478435840010743512021842156864144403471638353258276141849960169294199719479267871125097848767129097146585286072383894030299445313895146304946508278454442850341112869163017921416424803762408036631530277432926380128169593417456706776155066409976684235911788896475421899674803532929773591653179095936368028634980065087186893633524964626101333195100235217173249392111777748079732777990754971119568750981183687139565566529041983348584780253568112821480537495334735273110964339657912663990883851628441646173314992546845663670909650296721026682290054510503135757748315630367186145744539369776349731303994742901923739572524099178226873668855226653226416519867941621924811285633793173204921074713093968180969715344885795542341063509780412648993501485361868128785506360827299184874548220438506331141195085359908050893165474089627561594173999136701111103578361970070108063591062380416486960588425333804238321805834835696660104701510415807336414082043267050783579760107313227660144243633470160544621216314482766154392272930352385337865695359415537961393420635689245769097167068643957407476900322702647218771435035826536947730131727786328676643518809106850821184384099585482757186847105569101050449714684431359085011760821963993406189886380205850032296186930624145472043924076466559341989397193566942554685746924249048904203346450092204141059145593320690149490948366050662766084917735907397637502697492531745423278732927125556520286999594934090245740448664563618684286000255841070902752105285100256547921795508151263558861664696678459189392202134264931692203879960667839197735086444803500441794990028517910055363134935352675920683280084592780932979090713201063215156055401137235764052405183978705103684804807401952013101467410202036280841737704070532342125494039989962736890891023317393810272896974648165872768656540323022679618837625555043453527913913258013489113992143188968898373971946328043779207928156656828020469653224181386973947816405789195698261764577318980770610139499758737806837496141199261354716613790101268717558717855012823585559604850215126429425512926113763338617034590323522585549594445313287087187073011086293962757949284135055501241339754386484722056669614510049056744419287099859921621841895623623901425435990223641197832796245749703664237092834893403842686708692578817163849440381637467379632776079556257702186577484528714383340150046907667500281168679074161488554962538170576547827861695336278172221247658447839074972796612793772313991149537853207006650630688007198013344217482617024952814655171859322031827616043127568210128079065205268953214329654422476582992151537486529415195550828039279100748252987352831155523056702958820493463122106526263021876839983961894965330942021638528221059582464726806573970815313194117907254847608235807709966439946716107878331124542051497285944929711489034072882529726964415049725348382926834712886947908107573713623100935357800315067900880771486725999837648833947140503867867632009795365817912603921348321942221691369621869667251403420304513769518018600708172516979416236166261355032159568959623579797181541754382415351994579614357002927266333613188204822537303822437422480353064828153969729041705503872619999844730935420431888795293129329930950796393173820449320552598755893247451387604233530304722097116341642953756987619478547055131234820825877949740408398292828176491345715951880367381498432641870490421944559496228627589991959085752814542333844713546753633364263119099723335514506290362041596978729581139955157085077886633062041523972683328559684639892948426886392268129963627439048768688638565458733960566725334875663700938765947399454912514806288628003550460688122622453265628804093910015691652952086125592553594255733306481637591714414067067678242109109872445173852390917888508552245663083801066166829015710794805748772178601977486455229503798678824586682023146346577998812986561800850423317137545148747137967902227447546412729776342224865746564013535377903110986981043919539299425711006024269536431633679345048228189603618472652492610857169522513548177137150606318971378658319797396649688610712016020115207104239538134004258573229915291790774654320218608919155581805226400960983495276120191405366130828808282723931648891214169776535799010079700150483193149418721231637689680054421373168510222062345155716264165954359550039472663585466155288311634202439452685002025647309422308841929065290464939717286617150560598718230359374739959905455296126218315362720872561979337495815823819322487094847397712135707267355077037452997983409849284940030157223640751480126684116892261991991521684213451495983555121165359054555266381059679461048497722374395786454935415098992639248336278677406555434853806059736746049092720344331181772374781624879554724733653029312497663341234943451516398149427902510180614932035478881378649054267103627970790497951525703242236058121850601916959442905129225236513531112134941134606784156771278119528480145644870109106451558032324125415118148044283623858873664776204123490762202083325425169524621313588802543926033256029519597193223178821337985386610648378182678780195199024205810098589907603285607505711088124094068949273260802201126704651408552067509908660557898202742634789862828739081156588529288310977169293960621739299861091128220658400962914493565216008813144713903407082822367663152720049008608634353771841793743451357094897989384070345938310034069576458747553440671089666065213782057718883442027817326624873003030347995229600001202971252116688306708619330970910597320181893035554129441719950625744600502712691575069064500975464962481651632449184151287348951949928471529229887526719933480168583069211930273716884248393695190854589658843053670640337295548144702140977485338221325719614994707883676293374111106396365194067274651071785565874647834858770714965085376101970803380350429499360227937140878033051893852173439452536430361402848971052061972748311463479364857011529610748305224821298036411803093992183381221841330492710040481171995004003886113099709941439557764877051840505356441830711117723580248455026965937881420040983249158009516874320435469105902622600339084875532021195843226450798992825516035520518081969984255766570441399447134718169876507735766831219866229216575565303929847927833032185272370545740054532630506153886190598982878703104778689351852142129353022028532040766569901020579959185575920947905517099253524898522542022683680019869782559675333063541774135582107994715054612677162840382831374983523228198406023915982417896256502451930771774460868501879623266084276946164763525334608799596057776920500953121878773975460981073459007723077714757214888109937449519681633970372447609040763513415880955006216403918491250563474826875791872979007270393508902638210097747227771483667126742112637459734769994879467464468386262497632020555837176656064458760165581644639763830159333329055953512540135941411397451192118943719847810907027469406273439934574250810815758876029916458628030813313274423319769433759308155809568836034079893249162908392236440373698628645182435488226147895103529161023347969062626578603939507831176026129741477989939014346773041828445887357608726506601773361632062098001077521040312854095442095456182079497190064791434374838301519590237569121647915999200912608101785842054858011392517345715383911870964912704362523304699343637418439719813670840916544931955853123254196755215460896642684635387727769588231349817257974745373645804618116333855263421810782919555805937806936114857856116450094402590263403250323430732590732726724624043285441785461058805939704828854667641069110621469164635148526580806989340312853478942068190357038847250361103397300890542827712132531758529594773733069687350533060597914106422668222645949886887508552165951406218881087632425998385840674629278841265733759242196040962278068710684723081121736827683140847662554948743809493502815389837073782926731443846660324298977841923044774055960988078945440377697551729331547925222824197333654451095312972720400533218156655826465342658002770234671663924064589896062779070143935674423647761702261453648920450046492760624872942402832338644797026005460716227613053683727523548633489783108519557154974461500434363890180450196608549734482656929106274136921669446187127120974782328256005476380397151731642943822211994566164486028622254859255801208764677281342944905523112819974321004237613813729976418812109378485610836194633000448003491436774117153445203782239026113607845961869999670203588616904741669327283189920820519532975803734383491830883053459626860471749857401941897412090273000564155024066340782842196398914541763395938727790527372663139816003277007028043946912724795377052825294098523589417509615288982705441407616060566846040533344457187295843556355100006168438130105225163498775769079996490076107409843620948342982572273949524144050935854165008660220222036743715475625136867834174054745193255889425227862977600152177068500352652538895680939196317060013243287566256627677257525241958028741397564445190421633667826854438799612878566018388467349913556734673156487187703626305248065347225569600430600435489422545796016321061374545391357292800742676906548617867069423892729370256685595424787652335589560655747121301569478667556435424769620571363262494503078125198340168035157493064206055794948909194744858228221973007463870901329013050166401994340252039352611973446654774187340984169556201291519488571168627629789771181714010274296054423486759018823465580627273001336002966020199931748390888925855817639867696580629112802395641488024701435444273606683555483258973880868838894768319611976094472254158858826054735051398436788912872915459990555720876697234325207850366687658257569800644544804633003967203809045398784666309034920893591148468005073828629270233141970344811435693641731956365833344711168721986367264287075199003809981794085608264051591692773622844270741796540111352402436211141386112933517345565907057295337736560846254570568413212423595472686053789005015847574598385840347438940134361937969273387136606766198830565511842128663156899840667747269446449712122376953769012831913468248613201274011926762080234407991946831776959577537581918928805746255857153078434297825294167207648498425780730344509977066167768413423446150375701512911412215230738745154289512456732200184325009096044862418360236052133984753715541460962526123927484442261948725074538745228476644216268017152364781691697178153420307749429534699036175628581027615692546868151682181264481004630278417674459212074422736359973493222246786713784730166295217795185542769592220067746143856955489243696651051685514036139659962230617496478519125055157552855565179835620520730808104633502463185130932066855810127621389649366428562957790379506106851700827414526635572755941878029510751917078139322628379188479201034481553500185747151492427919410938893380716347971333108216832829015323921194281492227787152452359219145103895615695088995795573675698430267008026501531997862703151262276099489901308681515485451309956274173018361394050324867945990277017906315679557183824990371501806187707160766953407986341262494205376683765419100148150281495414222213948049367953158422331561014058559042215219818692058274761949974405931934154662088331344927524030805401684134498975800119344929519532576539280297242888352015140693366174994014903145738642832193604803725034397182889048199110653411350739118217356785374073550737070190548648440802553095849967250815497010762916860153913260808164884538600772101331425296338247360391630190991318245003112751481231937519596418526878562763369189213755205885546930939023985299346857780676237732256365685212757565742065098345977310365758220327682686036193201568556146991810281815390876580944202725916364117769554068226427814084221606318908868972698156090255167436943755368082810994429588331526472084633991554343449409706514993327124399405893301343256659672868282734757297365937929336205176250216115317981585737539939917773540226196786416931501147895774897019697197459773855701971253517383743408568676804006971608502204600786764802559493544825035345281097365072227810067773045392697448590365173365701252302943565313760338215414655924090996858450548994938474109563104916283271304682227779604283464046428741428630672368673767551568362494572332010893304196271132514417890920931651468758243177584860445398491347706641135030507102935243670646621205611650023833643846180042836429097811299724471347644900803047187489503359086543460633358878537462966460548759636984524054294300050085413097604891273902771576378346045079015838443877318279581469121933828651850820076988255221163965525461994534029135736600143481621576444111412123488692622703961640248665024071924775826199508898479264098177132826249999779607551266272630133890717085453030888720970132720553541260390917728003839228732764186590720573036873335687373993391354192515471485989741392397054812664840795541140139682114162601146566330520325425314006616603545892385939130863874503535635665198977061524206730926219951918449273496568062771238942124579130325864857596204886165459047322164073509326629423608757290194672147533581294469895302972379850395716358197839726876125816510032604527335366678820848172680655467683287792094648657396778122942674545778185011257570514897901548742513502412039429261176304887851985215023237777473503708293723844033936061073181633819560364022228135773894850892758985681865782938879441673091977091309450742914146827422853358743940290962265822474582136799960139332832834129336180314821614973428582360718213298115545877248868293205499478563928924604261739094934196753405661029585767169043483126930273271107589539911227505880380890686419192637968887996334927973581730485370980035098881745224335956305980650818840227705417619496739476629208256920681454960988748450655429679813435551143152258036303956800666858450495392943943142723815515894806948453017291960582293702598419494906412644492675510672629978347657404794554346650183962359116701988023333483115398763626986516731078673156385978732691408473887974954246454146576847660644186386770310202668517717280931044533500256616572278071769130496582260511105580487226149384843871911724351015532298847804435084175469954155692268556890587097209862014581097659524330713419396631464895526357199226240068123728233684082005128583787484481515838814713051230168319865775886134462911349900324293492808383915225387672337286371207777969582222039314915839861665697439325625924962505642821271991772915333676695865435454657462984117033946584050898801608520017669430264182089474490607056790931587039861153466885277451558272539853951992490734762932334283874700251829884549201208974156791131403865203256333557835425035695184349858323574978480480127032609668102386852701520904107776068862980022457773372199911589512344905076043670364872155183146961903616991428127380535185142911416207691911015849401189553579945824524772479009495806140661151349556028813554347496224641448045662967397809273894636459035457176754841852017668825932486677904424993001581336347109212084548579222365598640454874104519040431557939112696239296451281067899958431241811684886395975352308746052213692443124099537120202852851459120853639618716647272926193058183659036906045442758203109125404065234507252047492547231627005178811594926837856609306418840098734940878007886365925587284373709036723575708080496437756725118518774133140427995576536068137949295884392652752909090026616651089736924550665389560274978829896306307803550254814596063682597973238746202367713441045589562326982413466346599559989521834262664941474930182905196845584096482444080902104950239727477298482245937552697292916704706680164456213678210532696486852857754808007982026429378056918359470019708394761252951686984308463252713532856727305742321236939186889744553847557632510709742898895126880885037851554348181403996996988175374097446772962410863408909056748731384483237268057101055122845044040133002327468780031902674787198671674621486809419700057367857078937037411662783946358890960612246628825018151917968600672244267858242796414382752359816076137906270647238929171286499059235080627909130814159445244163052871371554753423123911775623650531318260739333513699144376308067126278462066331544738228291432458100027350614328857432788846123627507224437704472926847016142649432343401228071842129976630058142241958681716057531145901227977910824423530422779534781075018147694466116187669368882450376117756650353836628428042863749220543597167526902580728145319388307363209716232207217755600654034997682554441599020644335866152056694211546395877314397725387989895336101974098929689192346566342439850586358356614467753495606211357504091622798280510084674486066685854315513236119540636358330836339242549728589070985792563399011374500981196739817057783103954904700920474257151205982032913248507938877012102244210350411414325289471783680442032492170795898645496881954355936202314748840267075972131587375561587604795292831423960548620321552155447171935676203447396317402644346570079280279087339501196274686999640164877733941873218321285647482186115154950771904955607162423032169877362319307276587216842446514528003089260794532910198171618755549230830571783205060227845797892664474491981054217681699382642208431988026836140479357490849721842857582390075215782111755882407465536378011767972412962073870157739791518078410612060683418505013904801454282255021256760940905906345890047079075391527410460594480793760958601416967623202974088250905170360863001428533492910573738602792270701829936375103116517235057148578302258932649176044610277092381214308860281781347963660837084423897582649049605577036256192026940334873280274585774099766501662251783934623633576899247764863466791665948525693088496338539971798629247149891089471971548294239113724371028122018556442980837127033452154493832273240928359175868749564023510531960765516558885668125820764618454753306714727181755316724634991749414089069414536608625340206071114934089874798566328345109508682422645702378546109289724990705510362084497400160261388617346840848226259368052544930498436494684276538485275198767563903817647633892142062520614765561479429566254717733937143143086275397245450484648925960484957799006829642604162382136298122794924472341584092382108086440117582966121241294295805259858118127363524644822566604860802171555904510142582941902820560988549952234168534068838120823725365751336956528497551125439048891112200460292431789014908690026506327933222216153885046960520734480461436691024302392033224176246376842829602768430509429354645581577520971804259473977600278508129367445500313688697573243051199967657186424443327465619329696470732792309458043525760217244272910747178167278901920558073022281770438946148193566733156557004397825826738599290711156854831809444178595777255130383556021299213527354339841513990821519114798897553515071955809977955470710938798575009921646056746143635590502515361577570544685488779534713151903043057704702372290970522235224983280253445506407441680665677634029684672726716597866377595787646812205752060977637481312249748982848243053257346499247975742787520721092222636119043927229229248758614225665426652627365235961714082459861893888708018287724233924632151540196802869623120204253229966475528357753573511382720172152394697451666655216549436335523576716101069308073227268522973220928907926842965271256297712417460295850450017008794366601328955644780455098574223674843024029322806521979611966703655801154834873688060977287446704885737468480938919530761707881775934812697131337172494963623818214701436638202773792159745578839191797084035132157609338538560903024215810188443499528034756786648846874147014691240011520961468028921152824110965729341474050205200772462176140525263949359052820025040788094685104422740375738937732913833472777126882760993336852159120804965639963344335523206005062266512234356338063291653409882811872098646884713135853742063525494150429070345755584353663193989495978266514134289112764719347341731992170805207020759969676822523375890916896689768701716732263933170878926546461711876017094303018800518723992054582170410417479273238016844999759455536240330566125291633368616394573344327317990046409867448069862891821920027155820826915389961750440610366670873469483566448968159253388599143525537465945465706071175663218427160309791486317387712634209658540300437819551791140856139446664267798904694645334935745539571175834825308780428870365201533005266041061998997247166851880062037979762798441298382386353266977495830601311305368477856543153467785936399283470409697190592194028711941715700318105519634094252669043401217062769837330020314884358620822028256615077506081004359279593471831106146144168260862733199400493771536029600324595715366259675548443460776203477651689308248059619137241009760629711558151126567671956565516030910704294466099083199164106381346267800688829652080588251524249235746600892567254017898960259329571675231849139769736822920316317784806324192317549287868239331846682829714776649309862263188821864107651193708310716533316236421965379903478268662563236685520266736257159512468916898567993517510123595937530205052483308996171181008015918569788700346049218455739419930238145835225883319963680437724209196307627305191035279605068944473216212529464278682211412052793071330460580707753569381873186560800705591492953381957401120434908503133943837301141711162851431960245435539465233525032110376846268764443782966263762066873189396995078558994479036941418983930141281439528008291383063125063972266387969253862436061866103337830264260947545515531728757383647386267394170349322185122382591330891679115858905657574300449352720986378842502611961742648060302180032586767638723177537482202492025334525262506516057042674316454785497015015432985926471265404159358449443287615869808425695915334150133295808874160033826538036301863260167781000276800844986377788822298325767883242220642124145654556796803721726826125913906817894712047287190070224501779819283096996767565299464359565619667760815883324823750618044876427525258916171849594190205348379590446480180673466074971024228327458781839599484415017244262508854510569690875721902856199729169888080965000826621958836970259295762168672998691541740714205697764425397694751827905523738646797787699426154539378638677219699708504507201789536262372603608036104750675869297118472360561928267063319905113335800083626604849795369127400753517120699447738280827080233908411492677179668055123704053747740920544554944839515799783915220003070281123111346446383906989313478245474011762900727896269399129505152672254654257621621375852859694885410393652451344167137835930179991664676882924873692157234093152958313308571583078944709879868233126371896043167970718811314902663717453086385531608095078021556440239239002061685258824498935832009237808274137641592714847046885384303052911984826927017246252934837264311357450726055663942108988617185831700465891772206306942665948472583184540657293591581133175984221556226800832936941058710076248720167407615916271018887603478760569217577087891615883710522713017344724672779749766505084839693642197035682039937138606295356646158891237701591461826358566943533773850685166695952867534528909505114362065024005612672894880545553385105252391878785449485494054149995818904316583540187739497961339528678258626034891737404564166583294428210650650149367743717441923682586788661483710516772401072958923891913954591385710212135130485036670333215531969620544325714126146240753344947151601950317194400169661863409996094412295387627740113096329407398222228977574134609058927465006797883739481610109085383208146609248144754385629010463763899521873206044594863144978217204768746930841840475763703077790068696818093193397691924161786085242168606323509495851371690743258791216703839657428524038417425895104524420440820093104439327160348400393670098856278388420917831801096563030724486678975002458031210777266581980596077663079847121158426376590521474790780141238079070657456899718670664091429415407211821411715753995636375139547940277531873500042426315302981015933222840669882223327711664963276533873074404339202102937283887499850399347144202322847120311818552655571183345368368755524409789059396285757046816055705853737851025314878176459683442805356693041366164252086469095953435478169333039571638808150659612781461481948715201578943177471336907446729392604412817410719543857076106342721534064729659859476035281207487918300980530328667483112311974775369805640583949833355923639164223168928792932408263703994733091036710997682255120440601710128101319638224618582347774572044684714069398184171355254199116359830428373677803913689419187551905250966415342130155353962415570664310516996530466868391017841799103420866779783679727610534824809080418490830784572743590083747467245483317114922677638619994528616994663250117353069823916408720835742681849028160663259342449230397522626539376901699484834212897497790120477342302016366791907130155924418424524739700420164307062348192877837992358060467442947697952151418850273962660760820731238185998447261854244451556951077667879893271855121145545396703523204809833720361076236642872633532515510079607781755884021264248926658377683441838601050946187166898470411234329412799359953345916169820714793929258869103408804346635710850136712448266305880277557751324247153234630782895132246931380400822048458256423938621789855272885457932806715434512509340602301111200524556794777801766053909851801179336212614289002878163996180490807615448905456838293249202570895549778350516581031993839405872097627660902803118263840815669648325981193201854989841036605454902491416926741097166425116820611463508675441260043926673345790480048338041743509608229609136424734177619422477777180521488508449587621678924969404968243989887851526294009006419814942826522954029673349546527768629067885931988551198695188727954487433199472136021027110476630551850385600192185499958290821244568268161883214128376044351815030097924120796349733621147039257560385303418334304707164981120288167401876851854114366478409304590172098750280116307288857805869947925786693669995853877059899166880504760273989724193035463604754480333691960653999798199074799036977739441972931434328351040640592858321926747089271846691143085428743648335949428068642920455739787085566093536136037238997227932725214425145858444562171173025339246664561249316084265406069875809214244634593019236783687735773065525397680372386179166918029025650572277848668481765912250314949502935645120343055892996389512863907447148554837109629774299849137975751039489312189505269571779622811238369366388429605197562656803425797447015221094911226028285938664597464429420451598734718455516062752382627170577589274602157556380367466881928525980481269392882089783211115580062183923223270903594981938124609788022493670533765068836680904569666562937920590460906274312018062212785549167759747527206176252941758987923939180502886220940685792313597708687005395535153126735651538331692180162965841692895233181325524000570881681814101260360127265093907767789072546985783423704795046783376660946429614085625544898142344538016736026325863644231089270347128881012124138234401698764924485783762064776247721895482325985793726107623151539477709034941288316058552423010918848630072959942847250353067357088686646332989051774210078296812955924691617906974472407066448508130791704865451325901427718876590824157252344221993623029441823025558481243889337005860529973292447852510589034318548466086950301651666125843754719702172783361781069692150624080743468837889480230328988847500128580713944701948490310695497618390710699683914020610333939387500044336932766574139627049994697570971600683757134531873854348668730921851671561825443579466969974540721902108525782963846655649450470812841958782509349383527981682201484583756290421238336252559304491441483576364214353248873525233037740483202519720414463649306972429371480836012625201095972585508083418626233053949203688399707144423105862698880809401743748186467678246367471828447511780489765101037960977085965193200213895962210918108604795517262939141126498126500268106401730944191921870278216819599150377751115813869805367755155375814647105290043925329733488955151821665994106663878358852733197500047104209066523503423732400858605500861438853976421705734859223536609922446409591815813504509986183824552621322116989283243323982267361294432280602211115500880171635708900769183173448682225604750129122029162062899939452593993891299358223675723185797431383006982755278711668091630496055148070043096292725846268406148222180299607720002522007697408987917276708507507774743031679281351290946325623347443689500193308425703560725548568836707095729550835167953691820165958499983547485799490860148137999236748093258490890685735332733270160007442081059157174603941993931408225789999598576409135132025241942768004003978217552881797684131365770744573373378217652405476734928660211640076143384218903485545268250358685735960613376208226644193369379062146376289058054390339886254861644208434211429189395264130737195923768545801362690269552644804684288740820455901850774390796518439473474948021720927847758258909262739917575082798578534807244245992712748750168164247335602968499544260661724180189525029118009621148276233773506511371055743801871404871734620219361714120691999587443283313882846268917732013649326463407201865336228607588931320508471378259398853984040573673673685396037001896810865651650974849340340234150324238649033960019782389121360140425523808868887825579684064219495741295131321020071061716637126148163207323378243248153105340779362010118361187031479044864645059365504905582214890697025279943663616814216818866778822322355921989961240451261557638901202072105307278436346241833509654968063770272648936355106598745507381785514624101967151196290494200378657931094370465041724526195193448652324822853406658471705413521181073749352778213771008546787817248714957027109357697768400199435931873607101113893684555445822498690282310350186850303416686228946732188929889490494230879088878601498682278488490607327512650966767696297407461624780680400553269909105384273218796279108524864543358858247105794338329811889619801787067877297600705498732718817840925509181451016218069283226115957741328349013332713772684088839929048768774887837649867970957538071787427709847657392901232993377655337147557435133954630535760283363512604241531293303071745997431139184542795185595477863404234827551534365578842960065961664509609812013996881807805577539781517597515646819760846534084980956334838137402065416042872616672882073814977943507188420468953599929238251851607312743832313301918062300522231767543672724699030330028563556250063257906995737492621534969107166445886147846348524558622807770058173838837621472991291208950492193460116543956401944268509467503080791756947156478356431149264208602208711977710690548415873644130092685600091354243835596537875983752090059649368808270664406707563882404610817264259070773109966502471616301995351647144557905548311021113115043595098705092760672424809725479858280861837548230900914098562187544735074425872925852059434835106116030422821098803635538778814742741842079055893266363312950721086173545852318120839530548691527716061593470617795060588274476072546683726873420728514236319300112513442176744400365788019716043115823934492885728355382304965557292418852974608175358637244625982501688454901459805029020926328351790896119717716330071298361806384408462642213253219157212873520319298994250906142610847977731269657040369582397403975976809236484634582108894983929474520158040582499214954059972117388785890509338127652860180194750490177891714562591169794276846629908585763575860709175326179795352954252445291719063026846926399821724134469936877375644779419310142522303510047102377442398603154097906248130236637205223358001655227021683731561716492769646728583145943609632083903823742068498048791582912276352661741250158182411145508028899527617802126833158335339935155800493937628164549390525097918447366763925400000692134214884329687937165442845791250751631258629557095984041467681113624295925135952089533491318408391357866608925432375547220647201244042390709024327324636614001369335289799660404693912300503659691842617733752168134457709883985649904065994583376041063910292390074022415490303579223406127119690417835194650053776387195865559820317169120482476548885108913659044552932527083359575670152775641803926519835573982461693529597128033186070113486631583456694035912909933182294378816337699079626088383501564108696924302701540289942801028903461051906705309751643656245122108923361228953249202398588967785343657668719491081120391916132397223709555717868550008120858316215690887202828783974039081875545099595021249051668385902703432144787199567380331114798333540414470677969761542953748883438417205313393792470440568017479211080912667476927408864067931846209455700912864544409317835079848833562688813888206676557930492238246690896431213665033479641395874793374895711429582008880324636941074968732633890297116971626246721487517260784415013546580195827747303116241353222286137769872041381971179919952526296376232364907426147829422348032967264778852666223914011340388016988517086702838221452691774607262988257347178341222287511073635280111617261508929441993285548787831213684179265494007593324022301962668123245336996080626823178301981415243621555633952780721655168721571226356172196174627413145734721396458664590859837092523281304473950516358322345792713952650777934155582631820984149295761302103421787018340993341282477901359393071697381425852593693609577776493638493942014257857272726417190314894913087556758665653018846379623499691418881997326430078960735178428636652551927640091475363969807282992485519392299568252839864459143277672493307027001922411774793599443558792200372228442189865457571133042204060366506851831087564154316106775700011282921742776269425513656124789030160170888461846575619701189595554899961964910104336385219817818025062706267477335370830637415054767970117755112086662621390475016149670718078664469861835726622264116219968910327336188028960818041795325155742222866679491820690499212359429117057239430718804898771835487859942283107179879662736054104951209104974177898809261882894832983190502839982482987513443911303898086884280150929705496354006785612715657941284553274947896014941474426906687304167637430271417854597562309111210354853605761946856041978728423609857520909677577113539324222087324390029302494229622685188281951666952080101334181241631272294593655324938321308823931762386551060949028484509674976808156952047683965167596708273515092644833948758381689109632962800642000427530172890329405684031395476846051946362947528900004599921714858448432727892551365202702506823875385752430549759933604147702013944534867896636536464456887672456363087854660036061616508046883655560931696522302515465496426679539756259412949608850483733264273184848653483698740304796825697150687159159554251630680799762711480944893128027326035905760624428667607373701099522749683546555730929297853038494795205186915914362868021914359061264813810751087241833073501337066438044718354346122594659111344029304175158893642131208043012080546611681010608490667619143824678944618092133137514796797873519187201002813673921024010064791527049023935478233282103607213922358331959807151044772166351947937638152242032372711120969764869695271161668288528289757985712280477216743746765691343038263962240471632384604633436021291111428728885280207745068085533319938209197259110800443369433883462529937432302880792819363599146865506907885073126686062336750842753998069831474174937381485941314877887716886340974291995526497617151882574619000984764703378933646692261185550115517368285242721679580937077796772027710564793496142026339482944906164683440789935058944534973836354868717262736328773730990821921942987048648386683859922155445757807548890952056546318924669006116685954463209038748405700856729482077008171565579890208363668869835042980379092320054181849805903210720996021451810710253276956342091047616527629033226346902022555323101171520739386260850604451957676079756354918852677718276668366628584918018881193848315722049729494244707220312902182694223871863718994169547577126510374646000966603679453975804697433778732476548854942217571310005110595149033926246040749122301535456341457964749508684689575862967486388879101965625086543205224338859635297190179414065369920049680769428437541674620801080900779676447706538275554227437889755379931581195603609183142686180495070763488091787395944472513613227711960657711591731349016198284979087807518601140177546896719685530011521207438461927344634419999195185948172205060298112007469477164094173062230105697427598502561054516156389089420550007790314043789927096988799586935328040944310681284231620814924484057313697014688510254530122089229814665335152524081904393269195178004728287033370165356723076751871341459798202337433781768771852501478933287671131818008601007690819726920306642943662110818458770108759233898305883530841880416039958284724305017220564778614210636679476817798516261748485752749896648824345160036529678967873149660067833191338532438288962883964632991026283604646324782422955244673956093642188395555066901876741725188032865872510713038235281270627756761519279837415652091114380621221511044936609087899625065923867158746987733311318649128147624777165010861568253624036131510256227287415069010550493473328074634660811568857527705093023931241995682972828510947301618783425733957861814186069993527976865846343100006891495144115330140998510639424948228583175074936633074806497513962667091497080864794906704094511203519296725641343906852572718449991946174143952671782887730871660851852377788779638623778393740483109550900370307139186796314932675795097425546762511291883494628702996166209846923796483330283642004185776535515317439740081004649665319141951224932881683077563811444663551031897295754102913314266717142118969635067633037907508886360789062516788028295381948899537020838362797255993925353873921981107751211109278418521538523253408787687313628954006136624847004685560824149024550285228149193663187828743613740107853276899248394085816526500651331668597694932184311145572173925640751356724252598449585757243022150801916344513652648817419922460261849366932642027798978970930039710985189207311374860451887271032820774744740379970132140853647449267951996375137765985562120159622480688596967166127643945099101226925876504739786500296103801126767339145048213042800150745934322829432125528091694697040676640297175647715083275207771504515019176200699727530244425287170526825370834424063487104594186408160186691740779507920904975069673888018209861587391794926653569203778033755858810990895194594283106162011010123984155113793367087701480638679969515578716759499235014254205353677550005081371704625420471284575865300351694733828628012875432584455842904132610080934099382489728220243898580224122524370287963651756085651946531488744697406710190540546841459755309765619560515185379952099165351088020013201486441027477754767557100032153454911723105139025796450742999210689126870381262211440018263055944599305951554287782270586092138211265702767922354310214520633413084376501094897744322313787766435897961874435182188285593900560875895732540803737731033772298668993705890335972612821298150733155799772125980946216446770436964851786381301521362178859818435582963375687789971541187988507556048684563425245608224510663295812080630772580498237882592583328891714875077288274816892047249756705854839365978079584087012804408413127192166913894385453140449921226254366113354870289650051803013389530094413902998403623746501270677198768917411285409472747755341346944844849386130809952968571847845975716743144032830478146193534954929258210976138246604814114416980871960807096167603440492752891180502289722420840262597868613561621725283025623794715111876183618414706929533171677988963994514503421896833564563144373688212232621944340103523558107296222082250684939149161766170907976854525084452999661547343660029780673655663084774383512203594165721318029711095605096872079065423438498923799372433048321052426667304213544542212052237548927504427441578589196438526128961290360958430224820610523923834147447950901752549632259799234234195215817528233025087996012701666770096926059783035424937919988462602731567847412227325301536809798674184762543922382220181442293420968111177124072080678901586838387307794441621559741993616939051565432836828380035308214287929966490415264023125498824419173319680221213690541719155177075952699768342448584131455177261054014226120866121889666489595902086967352042340331221087989818804838389227903429265450404704959052983662452321300049390678261678991726444365894039582976822342250116689136996488673818056364537601614654533894741191876458257502792421028454579929083898160997743087427301726046708977219726302970445170626691619496047188833342419680439058667153099725269460383575941630853554401377014352862536723204971828544206040853964317664669748456431759339175865469956500478469198853829426473705224991378997409908722251774322076682775694795309388140360561465919404710070462841252449498160921231783091820705560808204882203709912630507402056864453721323782919900528611064620079609801165454581787338919121285362857704690039524240338486895933303933459952492776432621569964525717719228681538388984980988949589487851350737385934181190566020953179077345411277595533007693129538334066275420250466162274877876219284091051954573196768742840809148428863227577731574064669577442857301407613634146483508098289612993767139784049850501261388007484434400071738194744848742680495822755136101572130447322055178241058667449608729112776432892661908142869268055798928067659560255529373405415698306251200366766062784112640613297784580795270791859301149531522433371259510663904785704067781310520541937069408121217982112810771121610006753208332492005560766886965255614145669039177551798382453140899087085081561725617617163218265637636994338323116740347187873288317873510565502581633242739107868958513254079680960091507492381190727957377742925167768930372757008878626880925029533371447970830702174343566911571924783894510387727540001392866183261556227276758960667700354969565012935985769001944540162937586776220208904952379074137521213906816195447887269792864253764339169773915676828159372981067482231271669794049569062119558766257035328497999721158444321834928963787038825753897027080825808943600710354012076478370448625214170610812182068062629492065723739042650950657052176767260380717911355291295996425486645351627484408369742105144784028630617848045188521963671353548342759291275551658677941845316085301015573728143864670705817795274401886072453230773201506287046112336136306691756813301877252713399397094409626798542982185139695529791982664580723759684067418066554127996535254390968487825685039372559051520399690733623058605491677387139143224959210493578316777250904008016440332865709788240074541910355201110691538280282818381132894725385587135337975352527886818263212559868065803999340768906394872379709606135626106357238434894849517745764251064554960591900891922971004798989760138459455824278458097955404402515312083372850957416163882663005564273416139012427492599436443768705879696944431373809420488736204659598971773262595872710929054257658703602377845230523308974422114629431302452487315862964832330469382636998434841450745470409425189270028852782641355014872860013418394503558672714452062699143362117861802409039521758990526528561991474370529117406641483960883459740897161325748310114244683130869952231787311573051011818044904985776620288770101633417277115268161160880870917107013627557995389550151961287183769357464519861155156420983814685988271221237377205899114310951182422296941665175806103735537996085195356283833415745421605418453833143172312655275519975882573576176307953433548967606929266069439609928736244537854170577041072872137170323139476340966054542215132033825874980685230504944221181018153348876341059959491350694667429250849444041754699482741997064127731157545666258264632770997346128013615258309359933532216261126276926892208438926049529607780197991034839525849010392643965476880280267951715051108268492365979329654879177409627577379754206256027289178949628730751044125741774720846023070225917881447259376101953824272718662223444776193744609553776925202487098666912133536425810824256775419454715279756080870184563882722140881023973453418410175777655460645331405303792087005179390526902224318025998010484450128619976578637249870148383605097907353027342648813650673481212317889284719775641984585441061914126169243154688424646476485226184477800233958148866009880110327857389766640678858380771915654903573611353965624815390033089462135583693396508411720148032106100293493504132404517833724516284174667319927602036658445400316623600396340509015416385369774148783173126646248666205326134643593994189236817723996856267742477070844919442460189096507201835098271740619072837552491427545422279758867793240815758472720335960665693325244200689418015714256233384452711320545886530052732837429712692523597520093426014789894555285073196373358085109650694196680874628648177654736568287082221192639437822067366638799222723997301973000392143104192045553656592750116412735883294328715423701459725692977608321837049907028813952334636947429701290362959280982942407328253857825109830806731560416975415478565939388723931982736587366573971088346365661404838450892445820707288182244315443762055574713819778785264346869664403118116326183203098033335823451621799742800417127162611382619340043132904871122793713507385933619142769236351405541153885105330293796830172225594097729739319450841023530454922565649220351494390800398123397961919913556467728284237363478477078481250452763382474818296143923533278117785068627441297784517549046747111922590259185176826319032499490009122573269615315116086145337315095634249575155208550036636013316159580252750406473024844018535744021902730046594921540254392409851479594944508517880440979844147970294274849271436996801794857865309419901367822481895460329808246013930174790349573628093180252800517357212583746299147620711634967340868237684766266706061939576685636790033026278382699153643824588757776973649732893362253972358544104757670848557430506091580984086202093273284487171777552150980785498835025732161663007468125178053218910322986812247997968311744509873713601121581939768958344570789409324420176902082561494131651577412548999161930492440318106739674693963798182607197357655155711673198186669748641018420602914271602648575823487647346536095971766757057758444733225165927219565254069205004957477485675369937352434861592614434632523018005499498670675704511327357326708459091228107099211688540102782136313843033508966690098904932615678164687477817663847244340065123580897649811239810146388869936938844951187851390408625136972548060410879364566408230712047999228462660061053276036980099423388390063850583988226273471821893823750920185697692801844211876640953825926813031502323498996853760129200244725722354611930187880159117371953392780568875944861458250210239839332284650437833644452927172172345291993371632090531894431804307777165870331161853016142230999027609590835273775987028107814452657634244078036541510004659066301892238803502986949638633093241857456608710214100630429205169301028462523324045197057027540004493020516462804489852377901747506593334397588261026753216472067647353198012585701523332279290399977461466411909973969763705512766524516363118423407015227052264280406159714976357533117777410132073197982914504789442561221937112292747152350613599043451898659280116707594262307318344971025405935256647832683482867491387377969991976162559472976084525249138239565432408374292406061611703691669857874087263982574651692242353576127483842716419726076220742408124041586356888915913433534104614304654265047996555671591124332695773272524601922898644250748748576208495929751767056816971178312075968122809072586911530653325216140057999828425023705115942159452209136937540450667955875767896475198350536796969049269585275330158638090700439536228511218031563178258024396430991782944680724719586558727221744412843482567630114163156786788897816366403372377082753130996766191123724340792540100691442614547309288175316552731053196550625672070900304035792426716865120450631815933959141797262580005837605676576342746619430949436855851918695506964939457626388660481096870288422115976482684840765778875998116602725771520021526305349464346749392968608482232077006363762971449360972702867820728323626030658295561140859217665612694156593470575845517570251763273434545686407413242909119137333779171455176368261030811820708426766941644086041836885503650524697243944153320540103151996290897716445613119311591678113704735825044722718829409063016331658136665206657180976312721972778001686678168276903469244871407411107227579172732791756565479280615728844568588591563747728550914549181179387231811980615948847479619460418422648478518083673777478183228775377895070757911057130305082314431927559674150265859803673688327475772411095678477797906268786003937945128383229468232232576039732535566408808943547168267413173643558155081424669673073167805758995731543636751102247975041733999225379155209096973445754251247266515830920737858248033378183897900111682786170382291392833893659887769857325208750486270398349487996504636182408150720039168974787189051791207077082977434137241900032693594730263362329027063941316722498829399732666186624198235821569634315491412829766080070558608696775081726480073939947958087668729487848073847806749164122141870040649348447062353706585680000588625106622557331625076722530285267248231417576824957578573659669971533758251287719127645494726715463980809912636446985146262408015685335986258785168302465238848032752556715997472745615889825825082702754118335098216095977604096026139158814952198634851737180362631345986786262493971471494123227052654446184293021432767192106151883872855532431591160052973325445841298747996775476114166234710388872811534781553921572969587486470339822501616643056792254204650573907804139497208035255742661751748114234265367131699364961213648716558517292109026257830503533965046299724733784037188605281650497269080560399143914421328688040814520818430507541913717519980510301981028934083171930894844024289149090616777687473682774118188421887939679835077260464084352209517557467034125960442404461167632233516069808961822049583390051157235483656680302872680545789944255228829937311129580754179753768685707989848575354523250578144002821786097202823969072211343626089394873875250032312224781877390381476330249661470777772500414745002110238673606117349263285456716515815304752504733801165184111919911900489560346903823746986056210145926830539606295360342930249890403778739879776583047763401614894862081085564569164015707382612065777131602473326347528703397566517193225905944546425237711305882098125685169537687828371550431421527835312491851269209082525751388087962265819242459629641197255447733734937072392570220461469748669085650934740974922891303113492072943895308937623578590270335730461264756737822088976292570745708415481307664230821882697209491697773936699654757650339943533006519189608382859889212569093064210330696046268953568127621750417429667755367565191406881034634796932840949185220383324554761423299794460644732019537138075107529052481446056836472823469600683563738874107125179661426659586077124101468765805758343333709587336576736684144572188121737930356624430030973311696606486689712114762484018860240470052320309993053800885078591441459235844705707481619557373487371022656666820028323523121717087926941246848756792186413337808699067657701980909541887900136896134522802231229252276955091905277768898140536230389259731518641845765365725137816282148675440950129078639058105292629061442738868717774592529704592479227354496871876680614232123940546949707318251914255498500331816080949656228406616745504441665187688418647442356974596252370889061639987332810912593323039660268275897645893700832290039659861157463439915666415660548375042184908191949558406304237045850719745129967441141936829004254925268925881876670904299545654173635107037531451662807576021270633035982590395940895145936440037761446672190713256491791630896790311272603631267605224142706596589721685956292242087628919534006459563994797819927237201528040244549348307985284105638218305646135342041451310217357381142240269794581583667761196306735849355755729426253366746059415690928158038160135476298230821774088447034538922391167799263336635491190707523176882850466366648670061558298369452966158269413272851653722978826370960437517300286405126971732553118110616852013787985776470194430257071905915947251021632123875103564083433389578609889181724244711103240651179288473712890507839188525579670118669060936707592625212896936122204673719574774318970487659486025403569832492630120961372362816991951761342556062224651877967470167495700641156140858592753918336182148249279356906846764951276029432135490137238726152930231451156665992544856594398151238583623290330503274358266754858694361117332035782787588451497318492967799453489386196401414708332996419495460351914466677826403348486186700442183245076224028684788526728800417019522619152977053144477250135514374186193211514984212380090765958154648313259441459493349985361842016266105077449231008003093862197925119723734036371467279828914145776292202629039355363330857696591133006696869445237477433697641382789779665180408106239480781425949121480666577470441527380031378567745191646003357222504167702986202308075054238086979859423431567991903766178369476116664538804919205670055073398721512134996491296094446567380519248414239511373442986202460675229392654116554840683726480805930426848367200722714058879965434254563488089598171725668564891445971507627203928377591726933083090572906541349378695977335184660070598937127914557310783970579814813861134697112807250593840008126101876182549840610133390382605035115201739639982997592927015414044374290115805635930455930504411410360960044175051990197377529660815158475179939016370686254862251016430445606937482449380212375955201860083545146993072490284496554026610685305858024258712491449466144943931462043665277565301596228106070482404468275047888879641552537208108435705333139210373805201477244770879200914033141869409517150961463120958937332757860808944459824865234119245558151974687982740408232287928001654119247639641103968838077878225361185439121396077457090836384485157648418942966918773808592380271500963027702192298636071803679758710837140664581954309437904252229187672403658387660660156710981971091945608106943400638377270065927391539506015161765371148292874614324680832537522648184619208809212833248057079279080525906660909915318180685704154864802614782317152756409442467070035484138212757773445905621492415724044259849786642205265134523016097773213306648996928856390782203165614539117432869185206978721506492772270056536444347050232740611645009327541923565241311277164533688336918008786450677849195683431460849843257027983200471164887545836809624277897591763680245907283963085084293808443358641172639825279303886406296396490567744084364273339160758782755032391511250441404504196218147573243503560936207184892233556728798307157702444850829752565634870286679128773712076096233313018449718191470557207099572236824704512409517970764880735937399290156862362498282300949930608550175704752362193500296528149506812966171293127686179287451469926598203586525258730866680217538531014381403756247992813255116207297166406092664552428316612324964705730399262015936089782217146028837323178188659962463078726727143389853368020808981412349218054334314912981359092759660600903376627256020010100593288156332643737372781651113126579383752827376750831684749574852539074898961533887054893333238562683314634445490312677564158500125068443514463564960422664863093756468377450348740028783716136658499784146922076239178384856417133523887807301478706800054950816520394527200532559628729413033683562495588899932032212751913615581640336293579458991317121214482661704878679520044153610371782781052233542517952442951792190003135512809006090411686603114161246362232708891807569074954568307915550110777198486847604415541078036479754271641692282494139992253238227054327198135497311304365601837115053213245174472642703403058437253849000425824011022603532289013798482149582223960203034012726995233030589160509449504263347721812476390656103820323876764227124746860516728786118228812712230214112049577553060356418268085606683118527916672698773860262011162969631706610051627301820505517040527775940558895056884932648792612820554632913946502366230349993578406516731682354956476659753771235316049136446779616021592719128106677556475605217653831283465760540874747791377737065824955855455735161828254938919444127493753147989382808306353212234758704626947569474317873811688505517523561643233321512155455940400396344201761101476828951039678176155802892418221709135375990166863059101835826773975988759730592917766606826762052001671053140690403606197706713043068953816301703899196106485622138907184824274063316208841144421011994005786055419138187862748254803519491120800626567308828214850535577035983493567902979834110449703690316017440212287947903617540813607849249691384747643198203991508961735986349546512905672718245156195457714319279033462444904580747727505086676209429513922907437747997240598676964804549414728496048540338582392589990286657185587594471746829872060852155117602295912909572448613942406186290648368022559137007398474883388028646485666186091918580618188582539030815602461801719815645628023141414218504986203184672747173478230168631431709507091592517551960944715571500939947528262835929109090061235526179007856294406091619176506817808372283515980636212038758553150728695741979510435947431255548093762515082640293379454570376655881766820496986640173720985934100994850637484068378195791719121947787745218700383963598922059530108887972154111334379714799352078683701650693688814186147218654865918643060424612780977221716859865916874166030985641594974840459673100837412424116330047098517543706761167646297245996338252563713120570737952534849250020693086518342797777690919648675477237575064087208963473514514989995939337115031413406482494812570914929308905506399094928352419177792138900670749522991890795776954102060225950506590438394582017131745495867091777136965038822411362218200306274058173817953040759036945163256174293814111550229952354408880258856117820174642584904981176592424411966952562376413655648623867439876995490425940480248988462821100447092187430237253013843529218246917197973453769942545519612645524778029501330826347260074838619311460059936315156401481302062276484487410887048232236920769406065145234874964215166130251328909948076216786528978342719838245570903213420593205504881851634877627469874677278756593659407099612262032430409677059998001497383008525217235653367828424393171393121908553877582951065322762506089472433697778535882293951735830559106690123517790275879289569510600840995816643551144823752807009526947559180815851864125966968786506422557597485534372413607901899949478203998688847910979652908047915781957020838834264683953618300741892978560419641633458279740851675159359390035895235066830028317421522905090594669465621696917322252128340487404673229986500375619540019082325771676276936612637860218500179008109806270795753866286390872324667545727855702980769879183263703450589972427661950979989598927747918692697622297767087182237596865747537934602968236763976050010443085470144352097314394526645214445265887387679295244953260066606686988800603469785438886643692429409254420836846830983387654585401848453618769285053889950715983999515039996383361677619004362154893110910525238614580579561958284806110533087510640080045703177804313847689812298162439521412622280802154988953083120296392340631144665672842499239982990389613718769634986369473852502715401588433895018315076323017605835679573540369531469368112336923503031655777027584865997644288308801500179044890462411087390809408931955802563602620552507728665766957701909443920838164213629445850398283578352901101901738023354825553701465262817372797483680271560430117266643417791301563041416382780905504496800324558050479931568950461270375258284718774683392966213859892590179340212032859680983262837107475272693675019981436773424922195671667138427316210962029194847811952467277908233548644106976319654476519895267054250833275394462274784282133532257295922235051812352022875114756176096915119258266408231920724405617950728413178098572933981555983262475321465279892526591548734989487232637003028532222184643208157826075562219046997189445307061990672513709992167232796946003780905548105723026025124367626081958721564490197651616674973479345928941201290025781460966215102057585548345840570931049822954743661604703345015004574821929025572212915682019756820545695539219220115178553312164087312327620137692060465873428213670958512664051084464103399646261603836175015250615751302468884969468934850980212921920266055539428504025711616648042480015349199393860961914042013212560678941370833960738933087780239423907360931135186471224259797052935416465399226885745783105073978788380717782557586830250653860028404081033095404651850408275227948169382601393873040893647538911533559443687523419643561257684023963736331298289454282232166985830205861820614912165132835652364347491567770151064904507150283418862616430407935743123637788042083029422089562664942918809589148023252117633219349291615023850387717955393362949718805568759770209507667301057181078551522809774676425180919974819085801194767924740599872444399472588545299960291437927982312052260867459810914142413638315371591119979469340818554491671528276968448767846232145793362585411142825668368227194768912129574217275833669966304058106052329042601068247773124670052537996236696389942915119470324828142655382481154056798216957951879428706374292351889311658452372218745546522715485066936965144477330338198374998619304266291871697093836996631547570843924666151401391639594123809480914484879545504105549783029317881663124124894097877059274260238509109214166936819857121802626376113357699543384039255700227540884042066199171130551484236617563707482717730061840163046383154915403023795505552472955484753010153071977162896384087019411407715549799430575405017421909857181259977677788094052610506899476870873194846498825124811577692692727305203831169215532764410037927223595515714717184031544652580987106278173121796251022405174993460997963506305697699082313038781752361825529337725522749846613652407546290975347380118106468069368049613053851119495711589617121048446793880512916030529111463218996669089180123807148361045781524939652443294829810601923548442476128165037543982055952176458800181350829411171601286106960042421374374310816783359093048106817107910248423004956272132327253983461684267352173822823329474798396569491496190682854873497008300318496643068056120275767390956057475818027973078486470978476956315335495278226707185372358821493754770707567432537914929839835020507215707553577240611494819492987183503685335152354484680249707939463530090202319215264978868764538226463863930753537137017131878671511565126883048637638716507269037859590791277780235837740531972182941992517618859731044513084380593854174088204420440057592680118464574621091669320759434035976855763715924665556062017960688771713536031812525333882646736847709014746070166452382136703811308531832664900679522326434761104284152460329960788227924667826192435948944067052127956276334320088598378565743456110022123002543248629561112108780914697139803524174723837652970310543875483690308365380022871780954812909016794744506656354179399964584567409277776265153287500229122270959888235967690407626210876971848521970645879650056445933229967106058545684311894770825574039065822429838300930193597598570701498973542214395948568105657965224778427494803921030798974871197607600217517974044622783039823560632768303767313570768754351742948478072570010971074777751265393138584439842195949096518196456975375055049356461061197912154496892505265253023513508786522211479910652680734453753129124250445701630635485147111423010958395086989735996502015272151332847901544346531388175702871345855277112481938484957796583037026056057118364773371526344286273159745945815218509576662022826382892093524583517712928580629264106178664083803013743141971946998829654115121452662655791238743658330762157236520852659921847851418814935744908636782323219566491081194234181866942801902193771889298074277214775287555724330959723394702960454893563448597843435809174594733208685047084904558982824507030572950683364517065467394123097513522623178586669060346257849023684155133240420493150598198838555646868492365072832881036334259882393036065016268856973432509500679690308272466545057352887711949744471584874092689746387826660196707865936537831529818272378672625684512015623467859703754940702068358173292891884004171273426829934137816499027257098522619794766402903875113606955826264409014404450509780696440964396054839186697829262736885187634834392402623528997029499317089469170596068639310876324922640331145772235482284098814277998589917297305405374326459897678162408320178430099751174839800973205698562106715653418499374761281827444111985704277247211791149900921037480780101868240933606966160030449356082866587331451405997484199922988363620577101445901868050205598383019002445615582085419964520391356859959945916574325828596849525181048308937870514663655063065313038391757173487435911428491433994873365981739740326911700052352109242847731367235752710515664419283566630506157562544195627566795346281722140686541627652400597341698764903871796715733150874588993989753566500538355386943839205462690409030130080013557232971495366758585882104146201587044145054259214264152378077078431853669306653776947115820855053856876870500992436662385712656295323287150579033981387946760387755500743496584750840419637679326301934046131242503255072673929947278907178528792831646876452817871448907353181303438641588941824468033754995237245940687658957668225342244003477785834861925680904343138001119840679448529288676580406708073664136025629393379134584283602260060205692083896681477455924977468366213717080243817268117625671377252634879481226705886705576008773208071518944438315512881370982072051460339371144972869048317555404136800790367598348359057861359894042379186827157791315488054733081805005754103038904932448674522237638874586740405342333759506625787104739136560630341134300973098516743321409363482287825490486883428000760571001865966827643624641381756401203389490827754596889949660802916799167758337217903983010549767168583984148192924159877830085237801226065538143270987977329686686137038770827657783551253174657273855194999827797460346788315095565121165808188195216776541476868166674858135698775826606416105556782836123709787523638541603499075956093169471602715137932966320551663002326888623269702096883984657291776398362349596798375918767082101315661571822737841760209583188245129582832893698965960692275399554111745947991682552305867048893537560064879458056412567814113101921864696688594767875276981502877157370202564546422951122328310466982855958983290626936762494570726325102064158106727225911970226848517829962354593918391581382273085930645681674830559436968149277133521979648081658537183878348436301677463742960762440029416706110325829783538355776730308066601616179242790250549411387289413049558082447826347731103352566724068965380608727176944935092817882655411754262222978548628576725649785556759427376398866139614620089387218050606100223649082606268407460498851831933803273528830855798240563880238883199972400881810690289577997360094769995084961245218475660248181928325182809057142953621405651225626616311722805550360898661921950491053426046488168474693570864674426753626504680137689078167422434102022358797685602788956223668444897673631245950128417837587335281702310353195015411501418445109325963894508406882523236897629964984575461901635724388267638682256705473832497130878331305640855106389583824752956485837553262120755299981846143210232784798651095251411866661195500822955347126336193670788589593399389057808923645433158882713900239240840308236608745267214455024942760311141106137160276472251912357751254465284017255647890348882221112050006056797678682457502677456214161965189680252250623780821733752832195868168821356045117148384085858777890913786247280759409659669483379770899581227971270412926552138494044507424787915918952604244411273617816547136055833433033607913472034345136437622676906576338667389039709032088128829577659365756082467437930309421560900315931266356901163164599840742601986568202599319381193139683968658774000865666422775941187694680581342437867806026631952262424957410542514381674288604750553000747969398553315362960021316484273523058377930042875309752813648467806316632278947302958209019697246265143739091395849233393134033314076443698638768526588556658952284373478132931372836348287276975119706891716639157380721007640093709895582609260874565916003470629407390392463402131857292494490048178284175166200913133243989249046063924466681982039393003685613519695203903409701949550351867750006118362196628312708813571068890833707703906694045143543121335942128625944704965264647062836641587985245092309751717337006021957103527272813887261093291896582388981337390743958138784976954839172700273600431307041444077723700632121250089655176458992048811037295195948281198222928014698092814837910248221840174902268762316762938685493989897812326760893297001221885292961799058681015078135047991555381226670805101611783260219477839436096234100094576650195464460938371089531296747111719181812215442186465323363529059449711114460613808934423111134537394119378144829491904437752858098867005685462066161108664276738886845537225995608521920290499674874935824916953393141624759075131397524554752873823620056056629889514449910092181362999070809436076809767782242679110587363293047553563782363467279943428465561873712203569083189756210575961711215991915069088345420931054260667995295399479099925004137303842151511005969173703793672260572418357385632823820375345334239215303163702088581006056497942357053789088841620157482987922523582219292026502922812445648700810275898961701506478222085835042975805039477913772906857381998921794700598530489687024729748970242523112035019394584255087887602123169430976998242758420316865234180635969651439807831676643561920896096515595081780152457798802480529737227021361471782567924369941231846267651746261197092641919897578095118274607458803818362218904496749834065073834436965530448444493206743419996674932796048523337243813372403858713533907260933454016912010097270508530891016394452351141585656366804938345279854717886604671345818251736627098328592622754110665169371662362779535630789664958207933006579049217643801944400017751665098106141641545001522040862700410602599754368149882508445293522193072202654059432764424629898895882499074221437432434330446708377950791285326213709914128729826382323035267040748242340027917581183958999586028571356399578955167287456595313312804515524133498878690625246325269074723970570894580767049960734596378790567269161259132292277258788012233370039184849228995535935409478543840904142480783753933462953678566955927972307088340949201157464684275011637603470084681363569766878685698451858731890574849306414216307866202322073499602482396639316870963374000583614630638225722973742918111657384901477165311643373654218706804092602118843455673749418571470854996194700418475179081331300028527665008619945676523465378651183469007404950680326658524317827140328674104939445239139811256263274003310704014528555225358459811470889205385723963567599216870572301068318618196360184829085312253824136864522364679906616827199764250885335380538658602814333809692712403536326838616419744564223891792127121320963433678779261750057653573818229141263239622172194436608207400898747558556706987536142048081958205930961150937721188375463747743258179226304092709909009738597153142879675240389010247943234636298489236409946670738391305247534224290137195898471065202594298944287484097197289767536326569128283010836739872857003572509977117692053729316286087718600540305726705903986217099714573177213704998466334788719998052248613243284151649907990349685593494517254372992575860331218809142720229566717936005157036004103510610666044101541769757221484297196199231079781145329252668059244296854955718896205742847339922074840012940469928033333706887403861330497857962839210475687429855532053413928834324982429038204589613819711588576835092093292299697591948089538006074494784100191907817085323873770882011923952105123717440487197741911604422463193586380096421902522291330780907152880050032276158892315456331961343589099202354088117541825627985665089560654086773525581679522678960171086911330898344689930741162196061095032815451112616055158940481552167346517794894844944385844093608370063374086447674553597830272816049818244892769901866249435490633874731110751825770230220316992346264160322856698782501694259144466943172422627288874968605479435257704872538392236121258001830197498304050928316374648956464842861715872734561027065766325697364419051079461152918331281850230044588809511398779826425122893211089977127153810136154386675028163668524534411687294101155916429577535805188933216923201387708522155610135083512520040901835227356953871182866860704090212841465524048857071097277457520920509834069162243463354114416365829921054807140220564467360528886823656478639470168758092830663131227681305773040310871781011404599095333926303576952180472088376801880094855315432027695381014655783529590459554320113104615577543039892777768265404569201396290188183207390175401470905955794377126942686317251827971528294146105667388016867353253391671649800156999209591629027949460072862587124644074244815903647350767453952382582021700647551639133036450927586543112455162574036994564565459428691145642910063354647176517655667908938400288048248974336297133741481895784089292727570925112785488503903170941288368553416049795397479626547960866992942873131383772156815357932035100761128265648024183934693088373317867362006646738160423540683885266300355697363081380886214121812314224236653285726457979365382340129429800930219578487299214043379650265887297084453096454509507365849148459929215440818366236566761198682838871581822644042252214493151112551494878916626698800217829365789969700695817634924646064038115169412101311325536150608163968931818281622292560706094801247047343776667959869554240671137755146386308906403820542016391268238922325673202852358188270499717287427149930026135404957885633932622447098203398838499461448488986887680422266792003018331124977262821798401546757024828022442705533889660175712218751716061406945386129665992240118331838697321594501011839647208642001030934281384403729393956899738025203406658932672784440584404540137308664715674015125121547052568414273393608178109400075720798658931040219433211109044082205580202362514364952890617443861345212007511508108643682910393081199765928698276083314624059573982023533476055636281705872955703938810656658479776298966222239874088785535496625832861032607223863433169832600015608398036100208704599838000727731235586610006881051124562303795785188820561371504714653393411125168073889533274973136438440198755513715084264033271831046159529865219601402936853375246029897248261858360016868957640616073256067942343355007800798670282225380346914839139746939797014277429573855812622603536745147926829335378736251649246862977483461995355355793128347116469423332429298097495507490397741202702888130705504402813303192663468594544702802376836389582236439350809178156775598301284589243391029060665783687700690539429939750232727211295763153113779277071078591550487950361426265183332288519491548538519139195941520121429290864726490557476643990560724908650355347923256550406743501909590727282954681191542165452316278599696854578071711394304964511732653879110592386619537956342875213729280826138251014238073122296385266628827004510966148759291551584449826717956324646881639761495004074627629588143049021643246561332167004418166541250723363628426978619043987493846740421825327598220698848386728138617245798228048357290037287568178943685790767125715116222268903436144997902166357862395285936060534639494291115681111469169591050251095166677895779320444015454384865527768711793517301468975839558115297822728622778586430181428376308520919604944482363213420731506874911182776162575820847948014585357134448734414782999566550913487057562198256895825436713983675555652000291111245835508886758513832103502152731644226416465118211104198948554441576111926215277126202774038883969462561753626652556989335312092748427424879066799476303527141035556838689647243244336403803840900716086886446592906362962422698012858521202840099169367546772488119328304199901718604088053656602223237862164845485381094578761446758919021257094787614516526391683052282196839269411533043658282930693404583472513614379679386981876343596151548458768856869583297595613085415561795941003540761498519395041900319085539267122133154333142386866018253783694280358355849436937405714023114882075379775812476422835726799796267715437508356174645456928889791138953020250076853288007580576023259384352591386868149292294390813458461466070577255995644758307112792283663823793322314123431796690558642678178944984568181067777792542731460319090840986976325718391292432401862976907393572896383320637766787468388892723165606781394736089138789903700803870148575421431489624272907471182187918411764757878838503656961430115076851022861904334906538072065555445398925225938861237739238131300586107997632043923045179072263117157233403196327720051442533024552040431498299972360945231447399449929330688751563146364995205713563892702276380778655411492949217663734036918841314955028123876703921800164621371183367619991543489148075730834489908416197719465833543459935698251763881682681478033015963798652369519748883398579853367506067780859308695515257966232450081158334485213021911071678779791194611954953685979071055830658487879943407702314205678662595294630679226189708844513513261618432988744217190955884612051916899021006816441980783450795511770643481642819459650277787364174377934542415259184290119556073032510388571070513000447123157479564564293193283120570645907202892654391073289547151326927538872109162373154052341291381664800332540812825998644891456194854675585082746713702065087993079817486314373862654139874463411100445207531795587407164628491311526539675678059803926664330206104102799436658120007124591995035487354233544756553920633681084416897473685286760068331976743067539333131463137605776100687703831308193331398849303030690895708312255518479400094662177146465380556459956677859380802771519838785063659410134032947095789212974971099641338435987368053543303143031233139126869747983258962911029261410106469095015889628876329483960522063708565798672346069194960912442984119623809041404300172351964674897529035359786942378980024367140323173380026331334514708074000872657749417434604416291743914599819746556502539324181349275977088564841948995519605012858639280887230255512528586829365079955309725801169302735200124834595641374766437987725275717261693876031119045658045682170617766494708803684915460261087516478803995621673402110498567411301050961422314038352918512314641037164597195402509771421297996947151611075455957645426719647779625737724976087346537327276338318571738750088951057560645319215206118974151309468769572232106053145786882655063010042989598093357398453480581901271264565941697568225416608553339038148092643173756357892523409697832317501904015324863049443022966111253768165925004798263415751644773119248420002916482492838645745570560439517122424453553503264236417422006876420578658262729208020940526770706023817429640392363138335253973084913458085110052617437888022053088845407581143194193635614323646840376595149667497218799175048047624507647222491655896303395020450010614846790193401875479591829873076427502665200270341113188637057610994652727934381897388331933239552150587000118938059370808296984167161618359952575165293366776385247302369751831045438348489310882868226741800106208802950138818945099709005662233744145465491328207319838526467479119112694726572697103777631796433604498688090733962625719633278063098942812836919027809014898400061494748122301569268871682190659390327802768421429881572498594775012544197362106495157838941869341888754725264724378665065997683020099397022439972942352905601899410923652091999268233826380099224317699769990839474602341980597425468231663522032072804517354576981126835838953793595405645847929728343400146667677883185446938753983593954040559796693159021503339516793842781388899172780516492181576326921722502363695002160297733862130790874248004914556130169106752065041709862585370874839913994110491468238879836856793912716940406459994590166931960601549826447635105929058467287140543920420229759760485380027985226479342164015035117655374879720706353534954791639991098801848904522834881436214955712257841252418708745639785368907051470404356910221963528798975971906324845274858257423803640168072959997223040698559385113684561520008142136163769467335774211065730553582316707039119191677102093748638990571820497996215221011790583082897403998967655224011334499729866227863762913501834030484036662882399796554180091524911246585317566732179926321323120917492635177229284985221343328791999742586350603614275033523776377452448205188733651897570637114023236776451958410807327728028270282030770233041062008690918788277359499524403088798758671924642450868756278166566336895197506053031217789107578032061395697228354890484063322823553634849692930380774718156940539925667796443335050161313426750748864475310739693999519470502001970237498262452429880439450094042258955740451364027536185532900116864257432052592694365284358039993019824720317479481427566817841843190046794431173709062676944358342001075611553467877833466231081903970224535873855454048277460878969282828090928701364229024562682721362224390708761093444533906373442544154481884398796867608581071395044110615343227984572346986698465435998527381117961139706361397922901996591329502811909777151697312957427344264182412825662920393883095333469540633423291991978821863694061788648096618973992079322370482542044787068053909938901951096084487340218103347818383869114700925359795997506770075516338317925963659948817591372623580448506577524771437490203801272891058504986067397027372074555569437666012364609450129928285981629585485743967458613471618431817603446834634253544162869740730402856751431750204275727279381709015591628856310230477246334732396764149213768603179451638655694485017983172017779062692784789054213867179103945662891864614295294522387270055388895201232569118073976299085640958557615307277570214452635942786111988751210267591040827038612911219507697336213406420193495395350508218880532698614925691749761594388976459832182752018639924715544367491403028878497155794359867710284367542300165715579304427072814701081543534143440183268020437789924523615974323543061379428072393637765599672960350188508144208228125693371202125913015268795412917225634440456300059604011123416518098408008116010526753860800642399799386862602726094313335083464006351588405130689358091507994680818276907825691405233307312273869213882697608309592607713094267742727141325819239118011096673002612847489970796240737085770904719806388668210657190258661231192209117884627467997865076677677977664544908603684374967463752818616098013862926976868576606494419906985030225789662496656072263023968088077754733612935268601720018889908813577433702393119602898259854595182806018497418623367901702984487003542773922532102075568778953040548331647857992312587906235699550127422228515787647809327460458593689216070188728842722296756119259778660988476823130898214847979015090756392903316713622628520881701733776522627595422372886935833721989224157932986140098083728235767634097588329472752439271781727255943281585103012628193591478177156298571694191681258541521094376033465251426855724455558920483665729565911226766340291046682178073255618103810410426569091029864849781131006994837830900579101770099205659201382433433051946003630859103955472059224180695404411587345535126749694862543832367910603217209625679316244367289573681354259821226666742571300667418168491236951093440741574215145178159794487036631467191840047629063127188758996656164944379290114305955365975875702109904879712179622793989710447541869161976400902830487650187618495541585440467623354121596124060315491826842085163918233505327050416157341472496777553346288959769710160700039137609220459785043331882175427826802779639182366171172336191229949522665471540034015217160824394922477776715386999789772693520559003661403239958513790744172523501474736217768410473325218829017183352771827474190504883735101559796364627080359036376953745872544693336706006890367012205069363946206390677364745329022479427761569283537311111003929019778343645187722650400237028939624448412348226195059954721810981584848306168999789887332888728088247963093936807136383595030596089816268503394119713803184527282797928847984661023663759411010481665237914203558823429242950588009781800178573141355662706589329427694569408654207965252644913029229746428465837124105693453674040216158657128652472766021387173272445972259946366528118360507822389016408252257828971875360864911711184326390924779797988994428783819315935106798293832539156753678398290030505873565000774712719800072845532644256290149745114987077749471334760542029203039974083651888710247380617235214191458846495573800711465615282598913808070637910650249088852487851018484852698587344718963679595664014597370980384166836782799045264808692622452824252569740262551043050824489926013664649543795712350928211374950029749954945571064397747904557184000438188933206521410590641702430501673016954868516039360598572916836320219612458743177657196291253441105635343609214462471722488456748796032577913333562514977195981845705923147758196376844993165004129642136829863283982933448481911867948404096887933268545444834810750938016382593200082175040868905421413783085405033684751558983675759562966562255336709346668668406172756040983613132454145444040240787869797236375565669652678358657616443479558230099278305596350877217146392259523731240682619865818674187722045116858533162948882338681273921043369134881246934328324118217483810438163162564304471477508563286980416453384740398210160336210273026488891288045141191840069104765906413772430267797203421696803373400497792430054618226141507340694307925939704457395034450743948807909875546761584012239120253038616434111412289805109351664232676183789523557965127996302803436882633932341248050808679957793990252797556200835416058697185810617032678919022160736447591758552190583759183913631767825478179218210391879041053125369487034835414587172327414277995390215492269146948018695504548289195732997456816576116556508915652420195816324293298236081900618458529946552291883783859422741310811162814271392499958235583931729372526880410069257310358713608900680422252517133828038144138011930364777534060953668415578141130173687070098612487063841837809599111226511463318634621267175761959911511673586146670558288580739894657820110390087014688589429894599467040848907868230533067137005618002861288379550096994553534492249790083452345732974179614078721072146024401981928808342436689201538126580997911829994652266091838265589286387855779285100557349343328117927438738034454639710203217466367551318636157411547585295046575231121689783840377061682298125452019915910894802038317726515563376372560169568718232339466406180463363342701949738399762713624089738227644674987676134240771443534258391482986163476850405183746894036717472857533540884851195302449168945463075616600696735955595807200530102063767443818364200564639392121350767177376566585591188996451053067101400485290632016404708151102821571266755633171019522726373366595954768331385516802074709248952810355868451712801997838958073682261574887067865447862257038886464031458339258631397697587531486890986738511856110373636185306664437731583431690896164611419194349546766939408701757721268784122147683105404032332967603351574593983846637720767445446573928023606484875114789996909184935028679799625025715254873633273510278316110687894649004420217065149190486135855420434643420286886421643940641425959408700283453638337861005275298746477387155056655737374438198983126851449942427063414986308396636305311409650168440915528823713565896693642063951981380403768389916345881260626819513873113468743622414599425529315056972626141897944360059927333456129260771259657076521540708502687290395327139639201141901847263630609483950499236528371329301644994544755979637610312831539604331163075325999375777848582292218737604874052421666169538817373028056038281302182682712364976448085555182919289330802906516662893696144525870571817248991822003630772920363512042929562665263650936925979195347548552995875951026535195506293438084880334134440098992150025988095715838325776309534523472320337553789713849723413933166990546917498474922196947905202869451422926585338857798511741203823138920375181086904393210649319838550356677397132111636835627961631601545348776234468411607148080303271827662219865527505662458472132847723144619344041146655646529698640996727064646084061319604092823329049996508175374558477353552491223922456853703230694590170594611533431178485911854124161591236571454329660525310241239551050404709798740700112123988368101142096617435925500835457925467153674962651862979097237317608534771464935402196151669915536185484308819932837430780148536006915841047712279924103297647143281575675816768206729045245551067653679720763262436132309671004689991570231254452445446212923719941187432432794429047149677362296877934004431140883071470831203895944552213911614848109191276462962369126092952860340739366868761764783730273312106002155635509584204422713769386133648699855947165772228412968909860237810398706930674545620915685495709346184296421201109806170658978839295557894580292055945392463965344106964959160279322864979997037047366851342227881453799572326567108548466038886675028484991070645463179324809737802022015543526800100615539034578959959740354654228192687562274713314541983013523114146855758766966454526314762408719763527211537904394289217161753562262159678472010956431242795312440406826166118537519809085357900676393787335096188905992958646974514077939332902780446651236084310164768373410553030298109131993013869870661536251834563442297971093809406164221359866136437494979079587111215565020405728790369216389127436576363526787527751429384248116311951302301880105447124496066869478708037715582618696293586091439029778364600501509892560801545463622333845426521917780530577203412884794368573826806596291941549216493932452069737336103093345186646550306331007587505597818281815182126902129962545755588276234198556625121769453090656876022647593440333439942250787639334111915548824565034856160136902436134077482032225391581666411031519225372086160028670787191729366760013285471606992977913372335200558510089197892983696688782927012367041595743526456264468912564525697698643367362605777060782314862569283654477591935792334431457211114960109226997527426922566066501666577288738351783957298573842381554387163877583910369169803273028845818535707894082091956749591959927735137705110828670369730200767360163242205590998076929447250467017955293699782433151073429869357342330490454008910644000510614941927360422124431738480411808579126178257494842543987482392325605254385117756593538752913098445715689980731030966562281870442783681028766054847552861520281655281597718331469056790376335805473267496169989253307221000860534301903835880627790690266845253801314050573268995132781121758039370831919452676692448805547582004451139053770423443245389162988489033863326698399835078647657260932149617214165619920951119009716731914089761504795249279700856911797772093112485018816878940455718041339886636982905420208263615675755648314033646348384784164082535743313283059346176597864125492779867294286625284692471192558567197527546665249369136909736570721038190950393991671679854224881722308576943447087916669386786730986525527276809714873999177099335050055907934650908010960090207209071133806472343300396192576539965955246509170640928290813890524572770553077593096074599226920943019473255354416335108436208637265860718767703433779041743780102554892282436536044756050218987161613797116184048575307307915276061942124197574775654475131972852171102258650939900652769712581309211480714202510907456594251462860410062914435301935132100377576277555945049812137188939441566591817131537789967333707284424811009565547104642277493487481503546816179982510658053723121657550776083896896538670947989187064215014159655376708863506643692066559868544625633222085864985307280256801357774616943532751414146826052146208323975331542455205001164594575359120212584034435344190331083974295312205027161570787716954102792021270318574593065338960223071318716861244948905153610632344528445377587941249256488513588854838709606971688762399507546263009556187704218767781998418169053420464930790703191400605563695184257683490313903765004589414841786914966102558878943571487232690655731515761465947241761080101239745704513760739194168146887566272471417896958909100509937389997585615295967263937160279809812110601576021402623164036220072032497918821550039719722761850035753965712929081426396400201975436405163512992732842935187954695001882637497114791236396200696048359259849247978020635792243262324271068363406860234807194996692752999713049150498089139219621945600627646005361241191327995028208024298909832819591005569744912183043134069021991319457369572051323817492667876837913188106810739682108111390394224746740258636594736840435476037557906260595672904180850152993860730308005493191084654856289795577928081548653721563578140444976298211257786992649181693266277762824990795693276960669498625174014901516141557954842447025834969206574804700763395805318856987389471821976455478214629799238376832240001641210710853518601544600177584533592751175941260735972619209624139914035451709075549587425754386596926472552895376151343330037445020308372175223785312071487144973031461812409499431227052559556098185609174229415969425780817304651018402789094512470877925232506659575398746572401864613398042043210990174836430077482601776385351657408966478034934640068748079089654049281842909026515529007845311435481027658921875635769812984676408231029390089929517303534675322571526041897957375403401774997499411483348467884434862777702071342118467555976910265307082714214451834385385932747080252158920215738371464004279492984160343050062034486817184223518870224147421826083099183946896174257198073734924031820348090557973387476841592593051955853909198828282187012358764673331013013468543507269502663999723057390487222528826308331277619613090504464467696313578657795378624867598665575581247456296210997069424554035363311671709182017114978948079007350823500145572508279117737669523448245281042398891481591329814460485890682140646270710372652450959951276104973578081030411356084429527041454591279880401927067158168056012238803060352420292550286709594176751510738874919047605602668446881463359162620391784494416334156126271339457425833549841199924823138320292084583744613510141036092698192226638886360498840173363957355266475540419652621362431759071708778993931077169318366951421471366958052091002308244528719484652838443511083557718632268429327466997325341778840108382818769392325561441892845357675725362931645598486678440983013947482405297745383017501659544939297234343429646199673441452818887070481305257745925839487789254266883091368674229830775075482181362892733339885468467177970944885570959316189827914368093275205644616249663887268785630215715238702907993211879747801825611681649639085667132035412115416554699365849594845870653745180432335842676695747152369888239710037448459674053900192747480695323300190244363200785275223468035021780357929595216017081458015931757846853053400886359320282932351730387531836115439423915697864967023959066882465765554485604302380337468570073351483526266304897242418981430475774964941422166823442833109981242633141986670990309642153849681621303706433640781714491843531010781238286662829633614427492425265168357492210046333324944282206219859381745188736760068367099954294618273746851231941907011522871094171667466421523658281858832385815786788506453113223082152430492245410472887597596534321626589328207465049110907878615704911957243456839796561036898385436519260115291943482966134231113526831838370942593186373299372397809808744429120752499363027386002658866234887085732699046759060919536669777395407771797636174730834445794572651766907075021223127911086810322345062930335596062327077668935104408910850182813759128231704169847768585287136085169896247585984554122028186456856716496453824328170653635291839535872386092363645559315507486445724739867085730144557275467292761952207105633367770340735665537534059032097967034092125956197572932997270973460014705828204741420792678200286021365907743737935296218290405473932119646494998081036645744266480163144965546956270856270015531604806643542603947512359536664559925134609599154239625749312101945361005814573383564417107163966811642992595760217248364780342221762052055444823594400597942810955406930054598202336226967398678479826757586195661099976053186349723200827142066053886215290342217874031963464855712291944689910823754948451768578905944680691544175283953781032760762643939415181891595594232694678143319447916636519040830674523227230494776541275334965470711062877014027343162503573858279275186628774538431964860650954064915373614361481242529926256803820481041779688024554261545020776940403240628883603618795775367868560908731730928646212120860073863331866630998622391095682084380038259607387900742656463288202236321337242443554902702852338955498960092514327170292459128722558213998297180063451104030006446214339949550729880632544608570838704228092844374347256543301798612400011377791005572832874140723610005434346239681199787286915317576579537323803818589085446712350866185188613001371459378552294740629843817355130189812591108170087958722903732547256932948171752551654968217142646944118362954647421144475664200339672570244872969481130907695554188528435744544330500416903544867197767632369134225559829705952280266144337052040798256980952716959111464010733857558776496223275294458672821020637345738849892505151056979994025040509392758240060761411276394632739219759743505647719233335830008029896739658799488268175954684923035874701834840688161799754595552920681989008926065200403293702448984218635350763949517200544691059683790070551517333780988032518508055103994499277400388310111475214517313166054592689978515187549623344856339649708232184459211748624427125716069088299974352286236445761922354650387337147587707670664823573167998729675291679679930906463374939119969569939155460991479427817737307461910165472880845786235158100111565800620814733064641180118190341607606551525443014360140911188782149052249716002748576985552056421303266287468593081366258763561167410533828125546977334983478202243021117961991631021526200828526907387750141832816181212986698686072001263489359811201667685184003564954865549022387686293118057329424915227257877571653528716303397975020688677751405874855644356893900667145017757500047360796010655892220761463266362524051946704280323136313736559179852930995548395581492096519470074927380825966751026777081069243103261235099978979905046538549169541643576218472021678472412342445721911475363852432041526316040313524287782417939585155263930256761973163054713761345359407233065647570434590573488671133056586164702408345036930558955985836157488448994709718120882171875583885426474168199710857234367071293554630281855012117502584864487358123011746861734416361012123004873837849310114874546630605276960264777849241092302377161622991032043323308528866045269002564420246910251867619431476905271747413437880794413498631603023580644946691763108788933300717305765980373953937075670915841590089462312406507051441305339391678679179963632793823298162803291894093526698554869355604403010957441232966845568572114604162552866193898761445482395146493383816344794973722201130506018325705542484640523853669825080899545826301089881294686401537365894689044277323266966395138818739607849901323491160899019422672301462139682562807478122459722153728187756780213024243965295146215674286906161013063405737577955816057438093939942444470283399779326239028031828676536127047070012941556720133615492017266516462368262001327662452373718989690515121499936323490559854113434166679597831874837645786401181137632983775875231790376081763991170695228820448813722407593133383761894438875164946173012995285791945852211199138247687202902119501449145982626258654553521426404887311431092034581583036908859173704198695201746045635823479027210951001525945391498015617166748847637918045123617412862057015966714418807770968727568613539760086702978017573854151933630173359271864660398711518756888207039192469735423656124808688952842992124978807098763683308321142930499289024568945901506827098212896765499783510836089535764870199613057124318415796812156875434960180367488183097208637670387093607145910865323579246140966762365271074661725341740765981700349404107032295023214258519033663833026942287785669446080258358324040532390709558557768754016669859891904339602428941421194168525589008564283307749541914727275742547200785752746408554282274757024714585694333310228688878325676869004073502509290214203429891237171746522380700062097470103692488278109778923535258421554370714516778333507662381147189806934060648804894720459367521212238432490804964814326371924882638358740556119441287624292844033142889045087031506444503507497214671737676675314818437265559919261709171004134092980715991231701107484005317890251394549376422451577926116682149133521166362426291298912887271126643650437128602524529826978614998237698301473861653705571498018725954575567602149624442519830535880714439665579231945801633314324176393988433685911502610622405366411391322715467846840240584557706112144551901672246301006169287390406667697489046585321312660942874517681065318779018176442444489180735351405312526217313931579213497928509993290887108363471749294131243943733826390122509835370526587205586967660210405166290618595590081725678778884329378282009924516051519514431755397717018374288617563474657212753125068132717177623653274604546583914202890904087573895576835320484940078687703024319068235650587672871878665943860050032777904621785503838968416037801847608132381536011432317011676627288829145363654905008369303564183208913192623251670419566939482606714701452224395149553374811750548728167721088920200568531270847307379239800277350595683522164900969417901072668384605019148870112814904064009188182577906184796383145903749719746960735510110667533245541117670562975000412687255319589302090049254821965001597689023647638521337966026393611588092299517238123332179469967271458835679931960408433107008125915347682848217500900422291581602193024653804322799713011898796661574046082823959774402345919335808136477655109165103398493582217857779042965913698930261177729791402199155915308796789741342267211690122438341433348795273351500791557671918921030751208087138426755759639607590584738310877266994967162701727563350577215150716455077041531016277249210304774039833726982497347012186196675286130645610922069065854002654682331100875349275140431203058806135921080239919994796629735190915084990048879065327389886735398053069299389636411266523708374511144092316524341674863794452024042847151419235199631048681206764571412107388397157513139362773925332101625633838275216921676425412753504136695907957053157315265732313391709590129574244723383027729273009092976290187085350939681948696384587511868460165992356624950883398190380475083443483723821119503967210129180493006496836616933101901510719450410567873869388430091082100218841636130850575136184349644726713544934848305529771216144549303888491333635337607396320738503718773559973639130027096895324820569731102090919074850103231946070066550540571821806948825258738097572022256820022377530141427663778233173441181282014233715924672459652984884459302748305309697059042480505026457831258862412198148864505818147433966888202651415357805460248273226617494755804477492629053053706820630469537126043571243031029786726123623824457071501397544479642372663826693947534788213617542269396529715920481659648224931775858077609204858265496375615796624302677560771768964585493334589820318619860013966070639652973004579291351231662094243558518540951318937361250555956785250049030601641369703615677375338743934594697115362324956318564729301954487030425535848098610237849265926691471506581409293595959781077148669078844713465795281016477462628772474228796088773441827153695477585656632278046730434461572832430010810000631260548027004928200954126339594744882959321372352850695263435321659023561299765200191896584514305113036171437059050673933461865618846793411879735125633444293746662973098041797422783663149981456266747903327532539000798692275420103684269201713460520155828233874745338457493331182013378085586794666594419450354486120362329552924265120728567964124984017124666351103165045453247158039686311133942895855375625286565533630890083860107873889388463969896737727975889291830761419456506609253168381978676677488667055205599189110403705782661529202706298535437385453711895760292569835841570420093842173779740740806420570470793737653973777092577323452502926286972545477188206263619605305857747747164688346728492034882703676045453089088795205487263024737198479886795959596147020520949987385927146721001796401674774541313524317424396363551798804475135977963163599768182484698548550579143425728681542832927316632358418337090698434146254986945343049075098715257892627186989833181534159017995921851058798868553282813871915415546123150949077796940553624594080206326873637551098749067729804361582417541302641059128755474927724511829457286269845660343742780636820789591321004617155826230215978089522185970223544527453075746884889449146481680113114975962855518010262265878683588866367528673131270795419743306782182291200747840876996477234515365179213522451650579578826695917795785092023205227562339500575761406577337938672938927800078970694509189793009382328232185752794272387351449117998682275755611810357820405700235054058050430058736973054339264201391140550791082189041337582712578406648200037761194636237497003047240154559717727408268024218922262499982748167671076910810300969355219688638536018795046840297286752855366256134086211306747602133451637101014768548435528612770386841354476167503736217649199598714611433611218738856369049188570989822828582548498835680056198252737695388329218644803136932155399788142421567010716091395410069003227090669924338699404134026769663916771597819492316655137963567939144944857452484469773846711211702562466218547273575174025968168271832214501798536489863468926054609846090643319726345019340818891759160357677411510243506700439566840485214648027026946633374780667357975483880281049520504578089728655578565918743905801105902054813704187648850918598446295384701551616828337066159121197487278972031741249462585737721388021339241408984564326930388549079779400596030149897586682283589542219117331517567101813351694958847711060420715350797716553604850444021767159120209646724215900184224510472293307213006370275747134774341300654669949508947565862355908223649551882132012482442024458295483411179512542304322798662103901052888141140468237431807783103345423348260686752653458743329670819725064264365169665012858652770084458782650736703868418770950618620209230917824904822981018570159700568626092263577653162552736969995519982057407545404094336311969704401823728088348625634423060625430683623864994333053917204196349622483890057052055638573912574305785518748939311934215713872382697232100093514716528257257656373495740365173887232454846159795619642489695980746257378630792859534394583577392713785305046193793745297447934461766419661870349677076698200485849962862281032204353987332966489883279008747223073503413144827933564163635092155441775145777163954103032748199207176582908056167388191848200615591991465521788650555474335433463894801955209925873062755023687719525287799061561563408550683076249452699328799471920630991948582804081127643581277073662111068417160660864656061401348631152256818461926349476367650191726473585668953299168269345382509334336600095099325659984016270563811488269331673891322633573225525587486565621269023489071733619113245594603359812414160720104341912692170182272554353677345612073169919049048284474255128199650961345226647385154765134311109988056870275463970922175394291224565081033166320084443722932357510118930772190888128556006125538590273526472198705121655405348102893283195072531780711859341806479341171162725359994042666432146684569496574409141272863968950893799423663333225192231104506439736526340438553049611931509024458994726899788979357004524418597307614413727026495974590998590885071731196349969545089089324670430174383700299757133202890245058491893293325059997588873604623388051551461615478573867755515050086352101050092372599132614834035783807651374185212826592966014997760805346116925573680774224963936412730851813924787554674610031550911279498377569225609595339647223374441314812371443427666736718756029484549208539259182454015447917434116828252484629241382527931650819126591312993050184280917488377446944600868213117281196615829766080451206536923308883522569743796365530647917244933333810202181922607718305376776957464755214940447933369867894702595579945871911651397205383084232925510542508534634921699155270654630140496630864062384276834916945766482491363800216735442004581099743635238084656692208326107845146554633705961487704807348889760204731208058973429139150426611878778131095292366914436848607683617265449658438798154562526276418038219335519307216203558883752859329734843406685416602991896986779538324332573949325384577127529968504349951737708215593762464503208197207858106212386896044919694419238559276625575829554174568330459377589675829874663306748890645135216474832637761957511854467427414860429227333978752295091579629042575109577234070050831081748092845843951162641821290889187738599541636060970322772873449207617920153376002910555858808589298645394796175656080466803981153574753423183821041227547273135790301812406182239517076294246328399119585202752806740487790659989853692543525086372317607931295648236208108862643686217947213325038728339247227293696742827810247423143232807486037689015826141254257055756583664551944406213719024987617229987623471173196816968161662943859477953720336863468378027196330127814498279006573277405817322706535531929602083660590980967719149272896616571567908025553438842935149326806524990375358467996888961333249841788138791311466189577128383660871735507345398933961574345338075985493600850264207549889808175584540950389279098663524575856853322074445387603046233017965990280879108037000654482859950680554736103257717096518250011597930681598653366484293630383834310303802770305210100992990591130945663272705999649461299451116504260086998256004648429143312175069997059000414299132555019334695020069659067386383515728624440094818392958714960356768983002866766524833526912491430554729489582696136509587355976532843199640045832922990664019516271620772795343857384438487356775021991732706853441605886853833911037079258476352095544937113295442713387750971944458525426760514079948859377579674081191995137021194091780255464579817514720803452744723508867959807756039961001760588610887556119490026909732788177254960359436464946397644614009065355692009844970519180029985344606583377413620971853221279030301537269518872760247319336030670730383349768422193502811461706453353990424263276291387007406181615861780287089547917332497976442140980115697034514224122768985499261529815543098443008573601464007724283951681366156587621147024256366262325433378789127602056112437735934293629003447166355723451149077466463271748496481596413864662217607574681477267021579270851670673834262314406839910096947744541573504709443263206640401244047996105629240287177214691759750788959936452517996066675191842215037393339272977359977788792342901365116704709412035585732065559770139463279753760245956529029184664102041080980374601640527559532296081972489700885207066374937547622736582012080547200162183066514618357259936275108664121345957668524852789896293230420913083595162982883864841295183120313584684814977596250185474235046637803062724857699793382943506473944031686556104586668191033369253430489201343954986185001184412776466643388850607436023632370723680344312678117332584040635601740955915331989204716104895239410563461858998961366944750945626584445724264492131546082251045838688260118974315259506360703705545405895836160049497106273972254577708867418306381088783371973269606963692631435343503875449108210628870832383074472185379118121454898438505355135920896893987435074120951320401253758794074937460612905254638783372909198807082028629453557246318491378542785266095016426362367450615434917253245053887657985737621089622672890156401053346391501756791544844651413826796284536967141290824905521885669063993584909514816984523568182914088438758886964644139242605014952706023351302782196717999856478645225452327410315344135905738741351673163820117045813089649789269429539189226358976948912636611242590915749086670170332877509769286069948886126272053944633490937309423126671210257918546872838080942272026016241396847858140542259071777973782913870176576291321210638977861487743417794985398042862731096414294978385032931485797493010630412967801918655806593436992074654312463169390550104259312768739509555289852319929473487951348177596157975746252428246689759171901793564265205728857646211493473324502906425454066060518032189041517055111965007008455433641409399619876577813653845846488106126228148039012108233135765836619688753895950015058281021709065091096267758335170900733940404081526456992041272747891362186671062996536163927087341634876060145192219278611634491150345499480042840049147081086711160676053311138595116874879551457850422025355041456026219064802647294541334434992180159198371533725524451064147034393897764738576357111653245351794447184597883942738715245678242044039038873940318874550097649025142223327980028315351281391852389822851440028869864077085441719516594731768912272749149545385608326340935965412629684121178940412811497347039412370450587539854987885270211302722022708457652103541091478234055294286149566182666523623821562615526467101311536513554374826438826759374857886552420773524757193198710224890376460985549452908178110660865365210441862430919691302782887781740767168034747282426958408195000889524488514105114683375290555917280594471489195450359933225415846374251101416261889176092263144382814265724312545601594646615927763863070174631514290876538911113487422991571691577064225729728905658097313637834702610019994078553620615692740913140490230594478512860405744476270919861778043547850368027396157718046393970859962054071367743449909008905274710448238089688736209913312425711961973250073097442275913965155631968037697779532236024060861046153344056241659945226787988893583375421327752363412097104730758913787094797056580454887552449326473071965695274022542820001326094151194068863415672223451811413758446349461538060898204642235610603033050469445999421444007497933783917664030382137195596816483012178196385305737357480099785101040505489606103849855352168878026070209390849265564888203684391675287164542875044717475559098458278121770635241176809295130049371855328846960135508164073473487600615385245517325949471349023638481450803859012760595303898253267643633995455832674108973616794370309016004689000485185727595016311775862305267431301754772050413027277948919014524722087903596940076320137224496054198192776526182552374304639929930384306664552854596487111330961289409719611787195171392919035321489853514296058975719525943113689785012165909282173682364463449672310735563278561233034238982894748206449297938671837099738826080984733021616116119320186804800390443540026206274293306300150534484273326999500626739576141014114982796253191354748540614348280624456833468205401719380043759624233188228964257085440045949268429674046012818785153357515951104560156470734462535063599730760391032623642765158413729449347943326373134456481020606991743527235623477692921567334805122969988434008286687342466073246065903100707309222061792683588584633380987237769760226843888246417996758116102176150141066675518961109929518226264626619045113136509619006326619789418477759324448346546697025962865149392692023206005707640289479983369490168378321933799428818018490773596456841739979089546561252576339491877635482816493373546197984336792295517319395172203358603164321625369565064242382616332782521095275856744411756062690707595192903534477173369538440161432814466757625276600456016945198016331027958791083262339604866525937598183721287492824012708969822879475271076159124742017077238206105413214266949771121621286368127144808512446732665188446522896707857785896004811620385847115315540836474721086370148408857323939034959997717919991226119086002285890570389293570893829616372199883185117535957771668398827449469999003327217605526644380458878514846008562900376086395174875367446710791617353555659909782368184830146263585520503554760780006082251150589562812941021678944679541897601751310128324342648298485578310908262571444503084288368423042858469416506323665460255580384668022549474615077210015867485187150806035838749325583806817352991566620906077644169767330237815050190697377033955583944705998165507397156841299735114427529026995796714537712934713968514177930670503926440327043287557224073770078531376185226239789891043280461271004400633388020561762167111060356428161866696581565059800765425774927870193484799220761280219034126572558060533711132277189945228674577198588408917475785506798390245363402314925012693035248779138411367282284822717081783863914560759388809891757635002463421207917903178508691173626123006011856178095280403176266562341100113826179501165203700003503712298647365222768513727835391346205220562921207350996008265943080438790795085754362900802407406128174521500973636866110176973293791524523118508275997574107379202357188189900490837189802473420474865423558314490191413106856773252662917932240005919911661636946355795555607716568018954410769879239462359989372666345292422028984980569363323881556925788730008282503317502310416219817743890138992223057750055255894805489658134533360897670722312334096684595371554241414494414093495938620722701726269100189476220319492278395750123732499926912613835225633952951454659327698054469152369643743074680518414184410795340693442895804612653316536371617099707936244213033205331551046248764117510838182546232198078023405538612633756533958366113140486965707430781191373485924801836750189391875684095477786428714969164955268132513252475223498242656884294546486476194295922244256897859757957907676241788320058588944411418837943316566730747017957071150026193844790823854836712966982690767914861464334710137516288808462493652684511706984845557285985813052057241691599703968773127533311030980122515027469794205126137249285551572947526167639963611914257198229020647843391885774438706140630663371253685401846781264361181114985130892728331237509161416785311796668223450769745474287415050928067116787782525732293345740562713966944625254640661824224616622662283465964730961346068464039791134499179299151191204005163160965976023484306923034347398726324369507493806650342021845267363348342654624843572075526406785189294558986914409856749929439138412822767116938098334195315510012828658913672684464926028896073538568827384310677224261356313029576737673227953682729274008938484850900343883078871934176143034301565615925914349437319377030827206945884217423171206371204154804528145068105104447052571677479526791263107452055281977212559844065317839924321714998825648414051336370871625878349793260082487772425590763425863999647351065047803739172683612050017750081070850114497560086115309343420539695271885848612374039923083385378110898387015257306366120318741814184242885199967643128288437071125351286894320227715622460055891467862516176491899354286062720887432130782579755224639934890315716463816967373412596519664578276285106538029461068390262926950116978278397490742007088089288960508628868042652888076545635342251319501493962703332242166071825772527986735042812717277951689000994318243799730022282208372716388516046323180225043824942374936000410713419023070565721360732012469512102871159370636519503620698840052946234961122372183494581414774944616265180168766001764824011769075808089528636142990733427809425358878712433749915472374736163863522913940552039786370692983458961653060587205112176744661154901096199024635990438765301738533282615644463872484339265618660831278854506079451988522025695941816633276860546372131476425228688819144755818028618681457819829811081260209561090975625048281265455820716235148484911803536055329636713764496691623732666050842655301394774415911709477860769475245368053931049998281754157845648474329942817302662814818919005471117229878041329620502993267718097060621454062717986818272890481772178227018031891009479015568146149405050732384962902371512865664330363948281757485655332435463448069420952130008366863035617361080876561887710629358646920911425941166248354424369049830004214298369603866720514692371233928622254356774879556143946568663425991467394511575491979203799900374144414683687945376706431288442044262926691409593393770893238749254957344731106015461243004567807741255826223507910413103284350881183578874095642834875011195852345548890672346735614757023545969419965605389113716413017026310310960998898279799249486446044810878034324977908508698686503274760722545598071774370581170914658042478668736975607335837181037425019769433896701600574138479005020991623049443346077022214823382605954780469623421487874343920615351493631539215175712903478871343934194716981693968128742225765306048331600657464718086283530621599828253593684717572141386135203685573056419181468869403388719962912834076174234128178583362633334099260870357158568464516369832945147671335313491412906534185955988965125257865195230738962395788466996082493515381698093766155721053493889599050008832573760952524172088364753287463872511689102999941611191113583240716810810078156999166546896036346431959147645621032822576680916411038571700493099023481459873654233572883272677696002275415076460181402063091000547693067374375633037809264989591126131514895830103681532450712164565414481203491927014250718257839251698716544431676248929612280160683040574942440174250609699734836768243296192423118894400743775906579547931179040551372838740944339024143230235292704307988286769430135017621275959422246409886795677906668688376252483878877675216765125964709847587756858322124882187776969021589237898251789342670808131169422514237161939527115937509411767432878910739776347212220337630107413215719142001517207235385963138440738429966563625329850631721501060415516394406962228038976047219474236368351263158137346056539286011235627357591247720871959266576687419541159049352481045952222181485505196179739826934645553441333681140362780816246383439699371148602798753038145750704675043961955276148513837963691575675193312001137667919084856288155234240223233445632573243696955878584813080278584419387804840143625577235273753857939002397194561368020937766081754731822879297859241654408758935953005810296880710886270909689055442812865015345000552164604040674218529205996198231201293074022660603518443551904935271791637115659005384276646977837834724679367620034700519509319600513426455224935038730712322613751924731468806838358599439589487583811819752025544718499027920837919488109166792461113641733702753999571548130198850682498441910123880602503019814185286264795876694599687819766257047656624131781099159305100837974875065531706750895725766153064540929990275178350087232050768330095789656976881877206222019558000063159087671393570062068560596319140515918562095819875781223544902157493733475059456025923085076454568024493903284337915820765164056552734851844968501461001061485816939840937337079934386531253950611088305235931501107190966604073792465746990194694541428817670487733044818983825745710442625269366491813365042686889100140720823258235369275023001828071543327552983468126207543999122598459685267839315760245103918496345290378382622919536794653955729606626064117389173270999917834392492811877582230076753011000415789143123269758760948231448743647187887031273502488882892312832121547709171572067195554673035055059231041447339291505979920461457114284297239990419637916235258725315387543214998080536139808978933035387679327378960366315056187164633945838547419113978575079831932404694003737789124678070620113931037777787066497709437078769541838531278346434480287958057799544004373142121311134052254033657195814748564579967858788326561654457320101561237225330079704458612109755388012904521837939305801019982520843754268291334653057629461834688546196987811893232276227464533468596599583242680473722433227450176270128046615646558349778182413147316690858338915069563469475689443381440291633608583915745147423663820518224983671216247926494694134952231728712893169922070537755757209963919178216906765541406787500625516051558506899751683008643260612166151417714951598334347685783048371268054669016081556295290139573934662170804002927527901330021289649695952260371792729492562062074283709293693065800234065891921342000313574322241830012558183339416729677135921363871980243723360784321519784996524643043693759225940948342153481985124261724180156520412669412013994602441291126488459590101569289636759791704453581533048019288996323887912629579445012238930201320362634267207447147518213382453894284382387986922634232425171095824396917258038723211176150311310370533032254595347572367324861504409980281054893656781307421174121227483694943261341946475817095697488015039599116680606422158487167743129634740939277222810648693828681387035642098509362370864445510667687481775850876188024331532424444954734955875157699806972276116314412662192199041793063495200993225289077822839963461759493480730602778409124999246906565788376982742899341632726115267706641969438519284016144783532629995767625187524327979397062811845763219206635642584157026515188754624888824340220850128701870271630115707072653257070970703032054431949160995460395627737275183121566942361948361243995534526487175717259115336390664499725134487827272318536173022249823328589549702237502342323579422150023800870637535221004706263041206916683778790849807987739912675444480027417692846301772280068407811898791680046376910726604176363861705777829553446541089921821416336539547475114130856647246778301827911148113267941652118650760814735650655406867801333142481508768757344713587351586457367781125485071559694969968369809130783368166307280089016257416845233966382958452887302457017992161932604517276217243010763551760825412570286178746617021648040332858872683108642770787205898123520994204558923186280938466949689571164452494106078439507963489129975909494437217617606011025682092780231290293799144101958763332359221643265904265133028554537073823064355288480270653965485783905225142034244789418966512011031022045450058672376850971963973372031089347501514865998924519953963465367298073057622748247401135283962892083110685567540115304878165964952874578797371445032637410441739284006313320821365579351457143383446567480223359101809734178256607914474609582891856223429741018115870762465656082889685048697406422469500357074917371679056404305810054002011679412067108254029720983307882651494980100309055075338904858871934288300130744505708251792637205969937696821442784855751143065605739158739353770860780300042909625174170306165801002754736875003663961554359022967371821271909229779825914127431351976068021767241500237788159226723583148458882074946446322510888216339581294394440896207967483091533682149186340753001679425647470319439811934234809826278600492600628039137476691769248532894284187581224977076560161686506599331052661607507422021922121602263073195533076794625791080797692029251103967549282173691178800810065760782589163189812278542777364179172379543811125126371192415568442854572697760698331087166479748200307500733828861080457931056810239227475607512006516002397442231023399808965336139201008045137932659314974721691062348190712557877740389271919339893816778744692107602400038441317695923718673674547640715579506721890623090782367352445121917194105477496748906060909304449859248351430067243690106468072541862465141210652020196647026763935763640001668015687204913223036329135025463471292399776510506096998301904358660263667988923329528436003914916318419483635020975182173502998045240514556219359165187186034620422286586335168742218794110773835284096050924994375932596345189439848728626388237820883984306817799992465067752308341207853697760335961146974586198046038245716285077042565935232172469493393821738092176074837762722461443770457177766145828383582490262583409006793584452737711462415066652173252864489805731520587036897589686775131616611537366856856910116956801045282615713442593635821133047814704227801248313638553102771355969529576674119023979389915546546076703127512057487110483959930231779279371872755558945553290580254414391468216896080046824603032902264315391050171655566712736398135551286330817742990870530808753791688880017335898394023944142399037433823985958325045175959321424015054048221154988731565678805047514362688571739402030933406501771854459847559285295442765339377771315545286171001076741992529468196119832239443988422061819461308963513279472043065093100605932416678085528577895011255411705390991969270824672943445858882034682489864313852265750340396310266392947091604526745799642714529423770559328648812346397613126785213104728100926086992140164152834430566334957487337893672692566272154059977123617076374650799474246039214671926244704178604775034196329095176454593492678819357277566511687713597975774268808618426536300306958211613677202302254475749206344090219932478500472543482601578471356998674754375435546982862364873980749164144011593213352468974235506887064342028665436786701708101309714993737328712111231292665335798610143593281868514034871903960118884969404702884057418610733674124271081739690362478558582447470455630513187340059123092891237920127136250366317193752376385058207431317510945202660601750139758783493100551579511817524702725954358329838057871862063522816978758059835249320868868750467411013367538097458578022441824641936809907516827759578230544825141098862257662560424749291600209516449413686935193411044010843698590230250208411662297159942717738327862898323844385919092847600525105063237190591507789521227239270323492167220989130004416939386778182876292835994119462913078884649766048747943299582272631486842098255978945009829093675828194878013036189283120485267421223437423729504164719514205573897674981053089637336549383965384158466297490027978896646637075088263361091216683698718810584293728843336131495494334607108284712109863054183990802857907417227240310805810622983762957950001814246861334184474789494628269142613257201157491181325166236217220840056726074288717855097001919046490136342164804545712580857948795712563818256720789171232154552100814814403002704025321895702518751375944018766236955153043786448724784507115389134837983337935358193180719422975609010212856574166921205816613351732810013396517909716766552219483687070624479286135952141435675490980853603723716145650264214662777473652313924587336839064362622799201175010395409684360081494557011862147681320243688163129900242198465401317819919165934059240530113468800148378481755157210343627784625813485346103252165792693664436013563218555853258130463345875707939673312799903015614491820731026956989958948621602947148278854453952410887571322453746024820840898951864005531546644086268337757079806719648623822944286398666809877876508069341447096874650565440672576516065108431394078953149015732992269378557242080326917041951059420357858866547175949837064020164159517471072151408482571900300975461012530646972903341481616170035371861743059006185403808881640903488654022173257675377582747633518354188985668008744037092355559783247682516149848863163131064628384544949745429469169524221770449197126215603637461061644086254748235648113279566791349218962578010848754223545454441513950247804189766501322650617099590715079784786618597701638875703986827380109977026339570973663644536248686441924061121656995847659947845026953065098584427563529875672595465642787960296502955812826976114609220991024553112765416826799560495151538726554442108617642126931045091465499630396754665850412210617784088854455329217375366705818261641666656755433209366990127655883682240635858991240666117957275354455826013752419530261501506275182135563317718406889820609563310081816975810707403566113293157755903789934921662037886188148340138267278250587980015091249040239848685274381667826782441267342887969852440955008475536813602557467953376608453459787958666181161281425561865307347199018958625896812308444944019420779387975730671506853883724996144866130064746424418576547611860313586548657149907835282860057390336208198861758048543773458545390747857276173972979905069990061268166852888672475357417443614838578607482195908285109011495949142019673306258192344692501846142302861002549359601607699447129434011298098959962416906122463845248997908572838395040472846477252586270577434656373068954875650641819746439524170932146642319060916062563058267577515742846412050999372225076656257214550788620882139368340684794058816832318986550311504049789273266907031755729733794763732766999697976860339438595274156329923654330450343832700947170030184463411997825594981300874896703494971465175317468624427731401597343696080345366926302965750964263903090252153031198219593879130431324794331792813659115822649940284155228022460851216364506242744631554700111565708213976846027989506268815047082708767739212407739301895278227516199849949141753295986387770203856979888851521511687920694953985312447075743835973075085162027682391942499503921181920341086574396087353471198278366255207280707766750328061905087924420341172997648131312344651845533468187509966110346871882629548766134579559806682308418305867843489845819421666838729841965251512185653275286331792842049947458402952887707550059054420118111379104729325215765321330515790616849923984876480489699814814778715999678596093956495180866033494976846421692779005692247910314180261447316005391226679503848105470649030672512263795249087842730544610998279774992520944711874782106497057885659125145604544215975683758132639188240616795726762658500119109492001913797072373439442023296329412692064033967556031123490423852547927626709370851395786715693940298890755911781798226410840519088711092318249630845820408497455249974852355014750050054631703757661995752067213927224637395415266139693368919258545828242091310432195507604510733258544358220142395557654553646224988391500304350555429007326271081971440020495748452102137619293972536911265147461044838618504513023448874544873275455746447928030912595686629809968751248148828076787513483193861152662171531279648190275513760167726998112849526501450495880722107055452277095152067988647640793375742210500038466315252033833691313658697858806017185780920426920176394251812525366554701606446904916952810687883770918227235482290302294967036992165345493858872301899830086188871317730663286566716681480889422659232254813612107867978623789696470018869030147547168024708042873339150743495416963522037144932335010930163690327077547193937602900337450641791083478137248141591503604812242281309778248870328424908865523385418900475530943362501787918056711093641567495914494444340388815345318691939120903194480299788318104322727136048795848288356035042724381347384357522524307166389497780003033615338308034011124056050492419583017219047011258437244214024225543977220865107285902532118546013873802064476841597888928368180589401072600959063059552920565182839925666462110891436761821459457080093321554391933651268069404744318853145988840026297544268049154672419054567229111287503732085589813312171452789344841176205985915196718014286928367726977897545457241214754933966349285523028148080175525215385708849176845125255818087940261618187025851451182996147632232036474612164066656614302039039663739158670925830433052539029114134541086190441446529594651191693128236863478242332960276301533978156952565828035289833721431574149476175803759475460351080612060329985400642144068614840927349311900586937383274730579134336041156054933124094586047326482852821069077236011915692098603934877919832307193921569972761128013077166725345083315826014279163435168258342849003379689163787597881965725882169005732257213510852189238255570224853236985296113497269140170439841657163934908461091740115598988158313221059498648678123495074149623394904397141759505428707112683610141898401099453859404584154047386594382117042021981996147729307180833494800144199542903371659738802435101795591834147798421990672653948377564197262159540470514371933694517193214010925570344391215644647614736311393691754909508538014348628144416602286438320893667709931775740931288008234195976718732339119466260798104245535520008535876212141202588621247992269584005364638621643775683625335559169698565732181395760174763311898964359967325647016163148075961517158219248134665293931665860076499671222301537251225629556130300204568885250348210135773068695517950556921658722519335021514451362537402340512823332228481090222270244595982154866735127204736286947931666950981868256821826465577410510214532175483888239398269248668182247514135695134606237730349302216836968574949911815999775201334110693411932879156989962279322176773127852957377588051532107001514318954504341944025623092022540000578405366479327088609793581818421398213156546921640619505825300562142762968024708064170213340974286948143826427424669753224220653242830878738793227032845549486001831619813478058314613628879642558849854545967353030891483909837489607568841048670410136154986212506389518519244713867340205828118367714478558351854558780358637429050221121002637345851320532042687807410346461867289081011106204523554150725304319694268561328856291586573350934890877795376475953106336126131814403162598610606424764863562551164601160201624987705948511205077506227268552251106921640295668947636928194320774537939372143999179713910749744146642280490587804909355536879166811944727778752895583963254469059968370495210592627298566003158946265329384089433948462959367490300927203105737135923253652410275243435758934442883589549063594261511383340114296470515927019485687087364584155058006736139131035282961972409842188745305118971648937174765568817251258224376744709086946678544141786729954910780070180231872315735456995586512767382118328256858376005357892867025191644244180803152869615500430824580656464587008285584445795970364786300400989554625386638133892483837681007535996476878461851633030682407328260828247133584928614449303932490452636816933015477435220775330167314034156618299628477252349857129081432388691094285259113607724992558564100570360819545508985921506249930434449991186456078282603799881592167166856982785311007173334216617633805502278706946743028540555234626142397492228386100618234997686478971108396651666585366390076320417194072483431363286485659752764913240991077955781389516678927882546747402715243324538297496875805023981416375979923761773146283529473959296342687450453653098828558981018640099516183156827170407062948382775344264689645117025715782588343928498917030472263416709206366391910376726908644810756421260787860255070853481738079492272636043893746887353755940935158967292491361616210627083892259478109941839304700119450655313076626271054009036896233949692911990405736718461108534911906235959337197531309591776774519519703354294677980046038102313770717801459761369621542398464359008526541351717999160844595314346263054355001119847881182358892239010248351416424749349190314786304167070931980526762005727767416222153810912846706710884994206026599135262755453466828966479020949715217691725163925451858872390489800580262852294221394785574035690806037538678471196935199575374467724578518184197733790931662620178749494427556733718962603559258944038435218467017178664055608893135347568596780599911622502895312219687053770415009107926581260551705618959698740151994061174304089226259416173709291277846278478498139953004259982237396209319367107032802898079387530129381447517111467618546526394166225127659207793128437730783659422796977598897829239960654945095655005198129662461941536065058504606902482235756596253645695398797751146936180932612001446483771504501966104468514529073176485422057864643787823264562790822227239492956828927388009449868960729721606402734734543255948425211344603410756608230543733695218673025279495749243261972672855780116925308449821689188327298078892104710712825355094670003647581390589871041437929470017376289276566687461116056964257446865906704874509838437313449991207619452835558395440238610301263472314181057223076756792267967009106436933316655288676036560445355440947110328482086445778170542211978846201809380471917565461979913875919252765618607557585995505978439669447703757501629797018548162246925644390301765451834955703727930517636841865939443500828258886170759725866536090001296503249999187918449086639435522498617651370522283710865171540963270956219995319798854855594203774033336340652675321328121822826428893450594039746447760674190134826786145464656889378116079352758380744435532322536312381651839440787540739159821353015354624720260799473084936436989421647902527905098727282228354572660035563272380369299889749948307361851059483429857676939657612660683428559904418724523562073563680466513300929970107709898555225124602120554668142076827404037396889859128756848801991792508333332751457691419287808758539997355800366643908473379227820768215327315312988253689079251980397777019216800771405088842583152210616907632946272827904457039321729249169915707714993680193989263788822437964942036511443869776352979750277960376359813282148129742280329821955795650679593657088231323674408219260046857867510094241150868427283516188881461856188695416148452735719497244506544197636278237105830343831509730829822804780738821193852533707547412315140642040243268493107495083812044382100606244968505370263382970821775977300698047229719270244804689882877956358551665693743869888302481194600041189374190875027440405733688065853544178994531392403087294660035280084468307438800265058600935246045944272149440353817294896436801907909359478369280000286351458937789018133630527547253519364334349981437364219258839597523527740653949901389227411317959628524958816602816997977616936779977442362179283618446016788594843244035911450541918781191221246291329234703754949195777750096500633665761952314281537013122325531455531487462707355856637598954080089867684032220444785979298570814023819717974921792384150069863461609810447966619685305222263764826642705880949788917671533593481871643309863418829731020720585453807064739001589476162253539497750082855967730018324014717303576274365825926910329396676893613751035964696699609152687451450248256330816855513779896686844537787767671477292348282440959611838813783652206275809669144222041762703900394814397791684260494874588840543088089908238063095610255376298582715070022442283038978107646941527640731069565901335076367243407461689450970691324704792436668308093322163347911877083745162868681063293981455435193106605110138909206861113208241255997151479191120595118019888805153738846550973061771415411990510010347136844128272437813449694633217814182683458236381520934454299450145491579929668755204590103075412473993617304173524702004654908378188918552252676789386560063056060121310874251104069642655447197279530843463662865206759662315483460199989279196614604125061356047221490454310308818868306256404711488195457347681504562441300320749588209565660980780398586279490672576318033448961493079611524028037176262115932513560543598200149318988805870479957412361740871580353565643070732941041598925335890177167625697920975952008052121047460283407456969315737193137280922360308438474691890526268280544556370768504706302636855064333709317614197911392604364880655235841257989828105611348687481815751595347221165584850109817680997619597622373924258584566615123906893643173874529288791689438250004228881589953039108510389200119873180613999168263431864778926876849635438543628002641696504560870207268585824100934067279916363928361541263173307165947783113493855072279191129100765273440196053133827645027122919078545054246387327339902686137688164960885795835518777287818722851934695110517424497879395775525723603722727106993200149634937303432210756932202360027572325886840905910384426935788045283901130861087853345679576367489950794957933598705868275195690435453795786901430241717710208625204307961528613369446420440201342696543583381950228247673495378907602381554056197681951575476971573226103845978761677701459355364137007031488869653332354332871484867026789479847604431276744062478817068030048447422234274741720423797125893461244452933298554379300314428415048574142337559177865742821422380751393617762179105602460327604324400431647142195058349769025898819146594197234804658217840319357812972422761944027049792266160320845654367654512981317686876132776651850624898935634217863342462738340273636545459114262857547948065462639652772473754952572115317330031450521710246530588070474006751617811429621121477168216470267670411160917240517031220151966347461164674420033119574413484720364880804730073212622638787349377739589959131968097309131571447637973879074553582355327930591915497330322178140326234815978549831725053701645621245336570887496084787132486143825478072662823856019195351994338743128637826988674802112089108108403949878424492224270571650603192289728045318730961362711330290588150748423650650125961038653602687469099009710154622961415037917434447499788751217598495858045748212525833089664018580460041768794226350321010358788502820277179249172096996666135792071393334272163067490974450303290370594607041262294309077553470360861490915414055572245605454967236533246909652149754050700945287212417957577425560222990051117539336675748602146003240546010402278280179627413734500491821286333241721520003241811840725087702828409384885873535626451886574521075732970501043093223651486575257069590505414249281644072456946528401016462661265646594966193276099910702677262799550176098353319535540852324116135178517253071055769837237818719076665575285337442512961948929993700479900346249972808291700447845238996261090284794796374762729651220411254303330446547599571806686296917137421880361404678669578187633463632340393030232947610884046551402662790284387141283570202906625301370891906664320556967971425125388110252100750777861777058072065811114139173665624729136271817691405998284860350649871096755751074823792397604548756172963114277533980963270166527689846742116809877352370649350977966834411987699499177877091328365315564940026090477789321209499924188974178432534702075209194910492020096098065984523718851522227103357878685493216290135291501256988872274731668366217287548950860713066899673278449482623033726890832233064444203683378673438354945861471396774412117968758056842716369456598965119888211113302825922562077939809298145845512221048328008967469818560874425426632420292931974245113505136757722757098500805059393247758129744863700732116113383435176811936242368222221055266905726541426051183075061348898512727404995041033969710136140795843538797638436113106689216428784508911101404591542179230344193632395868563716752173273268474842178209135774961578744995039623959531942210180866268603969482134404468315826521898902929625948549425274846322546465677263298812486853572688902130340340517766887591290663202050038778829140495316891888865584914775801387642430045774110348441283941582299051065502832719340927070385165044543671900575216105642702210201383840694311241115434442565494385511824001568342451811029444532834110554275820631550530332685706394083548170903033156137239147175412486793938116859262865242788491803223736259755768001268677873260868773792569351206550128503472481806752266804129747541434722324037482619050080162777741208583034808517267889084973339044103959146124018259752350468444424839587796809576655274987740085513825898010848551302749972454733072008780699077144970890015069252655308305379794921164788651897575248312733653756903459979500302779895439641707659099317021966658577620007117981907066930064219513046008486247251092049503321224367693774255119067191436401571183405932265504492618796452929105649316102030702576561893483284567068766715138346955714774085045653065000513053652764252182050427996731680687122339350475591885977421594948249137664800848671615588864253257531205910522089588408229588363614709083557506525746717305813236483092532156129503536820930727943588451480417052877616697301970499490802936293991689160021970536535406314720239090204731287018431959605434268900210842206277987440887168517897884095973308353383743987614518925677644599948880307315132150801021607801590615287094515537523435362613929054484183416327106921915612969191674659581476606386438621891426908382785718064855232581807231573901041512582472648408585935212419850167439986976933234614126256962534843405803003281631915289456980156558282029606384968719120970836536865225616842613008281460235257673064044029929558899826555681965290217256247920396154627895616029790566390978010989582830843422758029569632836790580072307754057184101104418958851636473018089314756615657868926233756357797206043944320999881741854250560377290262368068010730023553858863498733878406658181510472613137927752302702153451646196069411107018714817113421726955180344823886715443472853175069984762654012450393892950380393276430305379862179397945209535183817299608328821738489658716733041997056939924175042057894084077287591564543037367448088968815176530157076541988979764384512341712759832370404409545248525736998687892977403299186100787878060357700356808601597132273649501483646775741668044732580994602966980400365081813855774854217928727023345979861377125617439125932136383835666878348607362220664560738101906778200512787226497011200629689881800163120183829153088484333693456872300952246483083712267135359021315795280154647567608488871379023824725821125413756889716197391636400369689341826225058597665971126356739477619433145558107492906451946544039821657863461277737475082362092031593364733387353045757621626066045316884800125574707648351175181941315131797566095732490665779550502723797866394610586640985276663634760519574845443988958602913977185443269479865841094525470214577171404061097217208034367713273494466753857834658027990218657282099270174681268351490822161405039935922438492300494534915824549457463152248352240860639748875934070169952376418555520630531109461013025341546948529988395645469133929942751220699867137478096167729807320881749734522070369877114735277753145791251434877219564418128919858747696372760366908470609720878411857814825783186094409787680603292134516466620844610570489938847209457483169496929102610946113640129758139737447527236968742641680946792790655117196399462583511503427856023270541437986731191426492548023561632516442042770298644291588759391318555896440117708380189119511365751404634466269292450386492765818802751889214918824461521095000746663090242845775893359708041249651966241207513952908337962823648572446587954976412806874406412475318962824891841781006760756781436447744556279432172821906531601273258204034900654788564244975498663511806491273490937156817015252886684747616764674533848823371161392961525591948300627627607197710721062208210313764858088020938270416908067215660018233015726812494787970503652827312330942427280266357438323009606622388695559104704451953638915773354375037437132942085625830188705885016030334116931128377515582859310619207002847592057975157542689835886919425248079130989679311724636422537144423921838649752316814026652154778273157639449455489387901853348774598555771654134478675735338263627006850342051709443851361363969528023072617585369533840957827103173090738821830672579950713705035417011942332690815906018520861738088725774641346548660983196978306503843782771596929657899049180097446286011247730414340716074216466134548733460525662918006171036183284711220227211771785949348239387631948577784685385453306637040594244006774728836557942864317707260599999118168910166064427781725077339517455520680201854193361840133944690960857457890027524480395959314270401292200415489728921155695480454198051594355513281694197585965208887588310044581798645168944345792423919264551989340981317959648705328861507517397228864562131487187973701187651689555956956112590757688152363540136480660344437753019830238881940683760976037185986611953755616612907548496295832489282915448367452501971674013610117121335273646068668637876464588175181522349283755197406332215909136645463138482915309880215671666133104039186783200999821093631299942046322777436478482065135805684630714092175155405075032586224751135463479440548028809563739505716937391075153523174337564007850950543209892997042759136203839373448704486199905929014900842065422751182474375353617519214322502135575141370545007039461614344040808380177972169748106461738521871058739186230571604570690749840277431572189452931451315927385916494984634103218446564388155898334154336775471980061269725273019209486020985641957095063736163405778058824831983183916185220658423897559026915385962508259952958210112301173860475857239977529865616868187798360716692987185470288436119714615212661468642182253710791106586391666158787141390598821213056516165726464948684940859392986667470214213740175124343715790714842980041247679601480104181452017775484374321809568510582989995580340068746066072500515196648599529987056939752477296086379909148040391403405121078246765878362357352015176126728971341913037373157770096343416008181027348770131983624215399983818956463986978092958973680409543360907699019194834162162215020739326458092222446229424435302053066612941294376595614245512403057649351686296364363157000228957275657282231446273920131718962687619497917759336591057787309955996282536806113391941574605467918602170906449021821655138725104249630148998590037036659989566741083826801733963576349281337823700190943373458782046170258336881317457987566632399122429335469640322198297626954855051828300918236411071116830128279784629308218969940297713949537316381372606323601006493222931046774199076716723273823499188610880149121176639115861667306058872164495061268533112770351907962280487557102900390099502766277068120949789171018822416892115727063585671280664133816794532747984647379741439894006357008804162603609475152582909297575883337910794548278956639355953774958434181620813854572711223751585870849723538516544055154472344828127232175455426439885400710735940906223223609283793988880688761834729931989488639116930767145127807821326501256499477249291650187677717587518724554463645953307612515716406023641760754191990087078815812279863470038278250021278104438170328937602402758250758167651518734038754123586752848052207063087019858937854499628280617951570332528510393161778368497091584526612346701785794726486823143245619076560534164893189577849654194851051371082681529731055577039357591201060163630040465117279855061310977986370584757126459820128699632926751312345860509168207293040020378175711532197521784093821395264283039839071779947022674054260236829603959395816478525245549152636515380002445968082950243446179574154409191648842074773619894316134999950586414146254216460719808217390237037457081591439956305290873555369756114123520089056208320933087348483589002080093686671706098069693831214095642884808986100934217638004493619255059342737699810940179354239007032567159241285946961587878272456406277055795797996498787406421196315405149996534686037161325032627239747354649412273221517171045505794681860219502829920113165163764393797548203030877671785171784154178603839808322235109338226490078028347221351109712066423186826514419845462569593333780161648843544493722527970773918693833678528244157824390892449174820093515758706763542249388233421607755810902474677899943891743528195160293628980595771439557975858964255639503161682402432582075646898123479371019210158249380522280446824113153313907990323180858896982061114450220545483903552464428647897038571396998645916500181813758192396295087753869112369842746837544631344026569696781982963354408422219728240315289281724787907773379467009694093433526570194378397219221394064108520958771978621503266740806648686457598956515508270127806600323457225955707566711187194270082547637822694115328800099044667039908550249411716564485481489031555945531086255416272325577752610297563164346047923384262755697661381750643738756067620841029084362763613905670732208151300037866390666112855651266647370899189503053222131851899690354474639838217780016237891199085548158013342804288698226258471710832675186515064497091558888367701563398041504920416801613480695799350419645493560529623552825457470753859955217879391318802220803219692386165230108753626711740149855721130200190714917481986266038285589609969444124062886561531452953075402355145768763352637011667259648102187195432511166611965188921437688798037995929556070806031283108741583675181356730414394937447953783326521084409407816262060453395093539125143426264609461382096446006624933400725644213239596767714881464976082980049218719536048099382146979373475934384863447411656006034548665691745964916323199013233042743800951630665183506777395669563718576364197451498595929232175746933959807940868887728783961420955641252529002196689026230556125301053517672337925075127293793096758987188539766040633436871002161379656808943407153358013240059199003307198458809418973959010261955333854891202995156485801902555105164074230641560579991192467725068090078853732730114023254658919323138392324819190642944620736607662293181892086414982878601684935837965798185941383940143893912043648068151816519998768243928244125143955578046592906157379368159379326866994600595220154698252249961538776641558439296948268279564554758715254312894001456569394995054447534335183997786121130009980592025158551512420951921476483666910754257324667415025517985684486944964887807378839089100829861362910451166492833428342040248621765954719583850761100693806169880125355962182676886512957678522895710372712738926639288148268838998373290765695861868513844979790225038278054471608409450215351671440959444527543057794972359330271293270694790408699292158072464210301676711080773466537367204613395912679298627604397062501620405368378165861724021368743386481240646654947877247895472942466472790906121802058238274076178984362186818370777801303980139027058079021356083118309128716373396107191446725239699948111102786494692658893306921018017448283838353092155870837226163458936802800160275238076665788573719299343310317436366693697875397163747463414824244902058956389701999799956331698794721776042436926042099455933454460524583177005407301028763442940078210667143302026587312560086306254465828661425525210264995504664547592454929671419562538465808513607693303574892578970989770704726760378689614258720222847854785597738542293167844756415051686143861171728142979188596374082383635914408935356105680178938423600443133157069354361941891506762203613407064555901951361685166937509078244387333093564984357465711612517542283701233223192845745535859493328469482943405675970565865520754764063360878020128215699835516353260903363356697754409008550191271134925093365323838459808990892820757142924575340153307718145317867487279460667261986439720335671124965252923469931163564684313678211229145161134929547335829824344232010057031507693975450455229559990803330941418116353632101684102652206434496582150485168090728563078346878797713335812258356844414208340122897076306176826934928013288567881053066062381317342205247767050909962903989616489197026459952679258821930032535307075146276075836650652913050334596031313913847002670441596788794257989768342821129476811370536932811129935944800401589207207903647533228557517834119609611884292329668595531166785063239041401724027613344709660416946351732258903142065787914466703448276139928282467252851226197031215990852998120497422406475556692202134123273358029406008355830173381337213613951133847441261180320363132420270540934562628220137023707482497951427415056806751998913386499819205073000008803668360894599786126564046323188123600035062574709490577850098823093050924544141543248263915139365132964332080971266988749422811255389583924604959665223557537491383494180239225354875077329640680391085478485694589731864048978682156072648756586134474319933506374223793338884703448133007818331289517392741709802966532650856628690111930578221520108654102727612237587632001708651481396293535555846862412563513349703229740756228673936369485073133453230844292028931283782654494871981239069719992990406337305143743832349222137467239105436771532481802282906317420271009953752325848487142962807067983974737554018033256347903754208522837904722081613742450970143805677906767486867027066992309675630609379584588104790059994473290172594738758355570946530295318525139322816402565150605375721190233773451239398105758341056251179730304026381533848359820065919848344415648125662643493742672268550601252539199321610534934274518154686996056087401818903832393480612542661873902587881420429855267243743421821574594881548765483955555410666633888392132560476681396707437106092037496896258566549553771382241435590044861220976354827283947472873301734580144009633569138145267540657787467662890793979740575746999595455555255887038460736975262997771755667145338145308685945324807574055645622039972716443626918662639687084132411056379080922625572474090771312326052435768899444973471406296600901598408255954971414579282978315417511255458516949866291242938226013535035862484039047850744368021605616401423518230005823978471326765668793714428800197304937916812942097631528498195717630665023033856418691069958818407371622969291993014935271439832872941248260980539495467211769650480716528292927195337384058997060254116617552921239912408930355231350160714423108376966545981694268670231818406785935912612967063148831476624035594420919841271223968955403336508982655823286300313024028819092569496708768204780963241989246958110477602083021498634382966573678368181133979092740093949724724509037765214871233036105917466982522151124443932882672191221612226077264459621172998444140792807614448189735683153727830083862676557533650846515155955834284339934087314772739011839980546328803834769463159926215985992250112784715387980886233557875190509417278066671232606585196014342355457082584914369205236061726541165644437329963577175109959185966207552444721476963253745914290300242424693341969802193093653638802025646682801838307028352321936701976023596546751794385362900330828888800950587114099048021307846133376465131827501529009636674210748380649828873398307777903404527924053473943654874340373278302296807076484033479003638831433823054630247207976011110078276775625583178803789416064760056466973920788378926876387416499179935172938601025322557473203689369202734667759624658921897215365106066563019945882763310254411605772163521792153503169130689334432209331940667018570277297162095745793759397084057884761819760371143115210001641104589206482878815570928168462070765995696955658085712636408793247062302447643978868487818774177622695901341907116601945230091060844112178794898687611097770428664806929848448293963783182852152769006988212075110190314572626280946533349064844593100584703996718172637837655977104046021893912866090376144407073644957271901180449908324711704261670036083819185693265487992968378520044612487549736967322600244319278379226407109363778224417592543345917334858185390564086441274335851505260456323671323533340652050132605970214809918166735105045997275229964129454922760041100287096724733300590219946549163360525200662972391502917680707030851154545742871281889410245600786441949396862460850466456198040827877017558028348943994102261757182812955246431103801912277957053992837236435805886001375147877878582655316895304084932395377747077396735174531166187503246255435878054613053719173342708364449314522573694707254497228168456509780454747031846626932293106075835693429111638053670409588349867767338552192123213491575903837786562329851242441843351723966762758613747132572897064453276370424967750324326309835621696881064166153292910858189932740355607103296934496023890892855178829985108121439647263130810917166710130182958620246911947385700207425230449721975442273044533983278407335571420518665267884301761913896271563302566244824777968248085017317626224566313574622104193127856123402900875240678706394081161186175536694732676839630405232563832152752080224069007714469287061489509063179621051635425042739566159983266081126596622464230175104053378391330763522720771875052635101294696039012544688926469714568550162438586314701618947885694490959988910851095882857827761381275477655439425889286853685164743214974020312146410866570734278200630854067909889456143919794313073261767524397940272147249613392357210552801150586833475730553849762826012173176485714715074997071469864589750638473326118355512385973316503648451052132066268997103835011091439517400531040647735990955729303494048366145885261228792786297492400777352625964332519196448877586247287058588055605985890865839655578530614613878966401662688102450507906308305784946983629618707997800835482717300403236895404018258762161517144269541032350500033354777030614561668105605130475277655071140987754736332913273230520519338159313343039351177648941673608761018535364306151715023736920281392254049355549892501511827937823262613115686855840818321560688789517216865316692918496478480005222720100130014659859165158625441789163752463435538526211754438699549985138360462727884288221078356456905174858883938935250435538688228813905191893524806606875224890356461240486901245615508588611626257678376588737131770730773449671770429161170919427032865666196990398949192857186809238994475607861066458770980600818214847288689548339194816637340594897138175249369566941490779790548373396522875035534434362452967464344886550480536210793021856111344607694747754002535488380132042346341817171888633895341662405781608095628451743229620973134834480951005708878225202073593734370402087595637032330417505940479216587029136180889643343564610147975609011706536488191457102998441357705573628432823978901985476493666149875190983603069925755150127207784024328077553327238383472706374703607779512846136857238898308204658288543955166923076279181617813675679303914644135745152538867424328747920772253793988415057910944521172846384405479041518143359397943226393796615942445410775113741960531845480111888554597022034246817108268236391539001863928174392553565305396743066481929603705493967964702944150997044646242001149706744989822393564916900606804772194127852092725198872371358433009203219344205526173741272073977970549556177817584799264696570797828588274973193313294776242085738719757631059559194231546777500688694628410219126675230654443472031714150909062387172009558232576724619470446744251600516207621119126736244689217605436710463324331386152037529252347276880743540826356115732446003858126476267947322457758958802662120920666282513319732386856767804052989414079819978929280550496148824753863765599768511311307612698096118081672258097092676033016330749558158983609771779247209111971477414844651322050744396909191561123483534008999490305458860724093016063565331942633983206727305657185393036335562419137867054639170119273451578812302160884392220449821921728802487118876734067896337344295636591550943678021652952776457009485510851391321611053216499354406988767739405301255725988707186417988276898995435184395123180227154449960789598968257986697930219775555153230461518038167761752279332229962965434050234056947360385769829524656843089476654804917575103228639668254062542459426890683594781949497377087131944682909223952703327124623202211949294142766022461981391398045592329658981842581042584586320428187776735358899077717813255880895860714408965542969228923834094878846092599487557750204178250012366149183358070352839698767867463065218113876084068946515967899358856101476685697018460657398140966457769488701595287085682453020726207283447888437296170268456052170544755915974387610558159425554339867356794304667400745305932163703184125054132996825464797992827081366874573394743201006397279701387654976460107372853022302619720204046061079160194292386525889897380879494162639260878804871954075515345256199597673117134627269257951916568627341762278216297515640021844637303661097509118860220498851413689985772633897538200056487479453512534294498059849039077853381214994799645014697446472759007144051515299324299254342859591000426641625144739770044381895418280768574346399571746951723757582994612700780248700427792029239285263416066777125571988390201445013691497517603829924058438966232271679711882716394794456972205326335322474831173226303822585190011796108230316783417032823248909684798762065465866434936751715620706236101954025801912239535772068779349595085461488948148497440972739812085659968839707921808501502189255997718325762896040178256063084441796714085014121913958079786231039441448821587993626600329275597199525393052236818051058343996951142527596378221034159780317416666966262504331068992564101760053521278856017059845282150026764061975533838184042243556445525384250109341464587049021544197541921948897763154017350860733332629953963631501128030860466833018334296848565593104540522987874482077528465573924785576330327824910187322083152887048857887516033639745528945697541831901835942097480910960206634140387466364883717974678357049767788482165893223487869442345789348236093819634323354955081604913425300659780199384096870289266355374607505953447964647551559150571312330802730995467258967559051509336927129264744395949376685983863944647614539359889243914115046080595041549523289905445126285559040303648522168902811189469846068368752940138579268241667560757572564408754151833142164000809121845332843828766615639590366192649659548320736675647882547991312687827424364679160319619076633575952701776892230364164453527213715301716488374876489182065352514147006097279709005025400235806727145609547487432933691370915702703983435036944410506574798816790123146691592500694540794615352082243449504110280643589563126255324793569410280654383587458340335911470588561266391228076567945986645381397923348730821912252722720148841534077810113421254036592013335270331578714042610290838027437003863590249635707981602014042838481077338425801025260151408108142665092470958896035760536103154791472434200159181244490815598128698036723230087448449922179616244642442802221767209693444535866548884959990893177829232699289135204571006158812836329227596620225253632126885397661934838464917526566410770764978392199862572487755999099653217008749790697599056840372619326290249834361881221109638602399243362993691535406944067648660349600566288081542997037980653737186355119027566848439409360173642872827009885246243900829501184239063894654344417116880195975869546080052643012518182205294217905422919308800834978063566454172353683921017263654149973086759108527190530240489451356655362075295775387136154637665811968519336014031944230589129595927094423063919500505547954074768372722048798517654973436712808317466604113700039742832975500086406275880956289647521786661651261544907889347822504510103838937908789371937886799699924630062935936468783415500866632139332253766355381250895368322947061169835962051664857832008050220275380707340061030681732803303450531424052140491492558330089770191883511791961224906868480044933477786969759043963842952130541515996612518888312965210317344033283524282737692948585166277276675324980275587860288427093874630297885491115862627601513093024227391353507151425070028662310747753935571247181673472473792136165410308445184168294690321293533754518777080430367835960502484027188015803979283841954390774688839353958661969544704916734066222692281410806215871169712243268000227388977991933951190264075235465921344240000875983441653818548703722147781882917682669759025196427622068792522225099218582258030440230614068755881534779771671702285812126450949831331658286659679894075052986426461647484487398520127266353585718881696082228874518341404197328231978823627133809739620392521062510167702367420012343174855076915928585141252816890794506418679296304185004259654202368806232790101389374260476657431692073997673338066982404080063863690450797250641350104214820842650733465428796280186459980909020421309204224403061650219145486585714253214618066494052582797595351774604031086963146434701922556113283503080945794386222940370158351034676827013024730388908934264739696235503411722355884810218797887118515942110770396318758454325392092872967585274981605121082145855978898762814044916451252150059825750448257497687565911837278683428573392190305669956101184023669147299034322203274665948744525398161494348756443240796498173927276043146764311901839623753820225676280920742275936481641593977802003530676378768367518852242451463790957028711880501883329229236230064104564241527045692245203239791467258361397766356973208000949954249752233134207163648215434246200442698314653741433719366187269912331665554882386107850566458891391438294034139578669013200727221443470277425494801470442186659333908080855687703251989130427072591435642241728454166570335188688371315391060133972952978628148904592009351326292227091555711988619378423542741010478821669804264832585427170440749748604525405502587715254203266684395413041355295271913987675632963832124880162326285830096293301350683805997705628842137428412341409997295657094922950555837212369747446468262012114733521712585736294886579454604546924919100985144475528841089195175371505085136097730711950605334743388605673284400354417521488856108593281919641224344273626027018728005086397940942485794059722868737761201750901621188120025615679968387711947305224522568124302433687133684566846628630281012795476382957385732758810363846394983428097785093768793080107024843894007067999688568341345776066910161462259989666712481891543465430051809988617040360631344629840078399847597505486451960051676155315850974788792115092864167978749802160392605170008802327688723531519819111678387818982605733551856533787850077754174743417196188997461642823984286901463522459467028268473026265541924766461291518967811583229678495591013392696940093159451474560543146935546380683089351952124355079047359321167339408506405867636951424521415121857106601258156293395089028623378847866654603677192242273221806879754955610656363169667175777502927080688840694946039599307262201621261665872021911036188705995926779619342137600392791678966786444866171474480693331266103615816412654464772763020392441381042192552940882426761004598411982346174898860994881789404454888935428456469443405854358188165320333704319445149517555073524297779078563376971054647538409627876712917763502778256579204322017188884033740557186787152433485802936449682221414600968934574721595166188216052018903752084700457268026312816414116798078081895718205015559087855964359379584964675407739221976900681937260533231690787115452488057846076064825522740683454312503707410940239450693309660513325431512832886371199766073309722426787380550466011106613779760659766273269950628994662999941271544145376980886206238537468452691645804575073347454675093558109842696792502475706941971624864130578661769508936571361607141936894781873443526992387492138098937329839141981392173496742886684628720735014418988543834326042514277936181830385372536222027380218600903802202671540189364288676498514568817728114338938265376610172779822505146934088994438446955097338772508247490924292061604479152387133071425943599836696888820833835404073133521159731553175603950170555111912291509075341453940229861697162414840320762049522067067593895964042740968045336534751971308420733416183289754102095233960185941783969746394120405869326499421303449188885984252158560759974752247534720034495850638050699565772943507235571664059982123045352281257626794500818431888365340580794140344035378289126437926230309378222884736884850738543197073273393901479307863356889815274503432090333075457333866597438825879706223063501035930639073290968781984683513379957472526240245535450979845084843876124773971871202738459703552921297529406289227273402132203800463240946764977740004544363934038642796712615403042780905241594525455922301290866409464254284402452621515825788944673341354163660254276674798482397681456879647739487007265022183092681626476000012842138654135492453028008427213760189961925723280266663830719507297572721893597710035078483458740969824673336345011380238079416634517853904347859709746368905495788718670423388308830395063768810760648942835502027218706114771794775958748683503850079289793992824621436251746013544947009496037806291291352757313217916324315395955509895333330777284447233252335487503418102074887419123202379210571005037231774176635688390100942849136658810838498313174191574957280956744921910244236770519692532514779395670097187290860512618562762302937263802270809210214425836719485812120771543083846539743718207166812596592837971310875417486250534158662979950572995554532885490427802909429631484964122262856246591380705494039751629218726365262875652284368197662844834892777955281846134370189655618138935045942775274747008320187221146247320167564403817065027094695388218810387664822400881824160439023940266730407934957889127141303811222285086424849223124038397181976784703160980878207412329950823628786437065180029511445721520542764839494470182770828554142531381923927746697027450007519879723732343602059076053140684525781428872381052021430201144581861653111174724715834918608598751130319017313322190895221002672898765265429337917196813769279019486354482580085474341310713688610943919769352807779660338892246129788326491396389878376349355366120960323083301477673111260841307368157577758254177719756388272287671045266204421052245947806017458111261576774555026719778057501829452831127452416810945216871132545935294637004893649104410516512856891553911622620338935011352057856416431594582115232269575851960461107547071848486583768230630525043617016632517218389122260237820570748601018363574904175361482012976970233376121208974592667173679764835868849625125994736968666494481674969642417431066439020118314803304735874110917832021840656740247606275504394019466506867722311132494006757462931753781427113800730676593038358277983219369868036679517675444397914540835504593327628861318673180387353127279178349091142434851111019146046670095853256160240149782515918255487508175369689006713070818388647228520436964468355877513044566526291475515203577488036337502989973082378348942610298616262713138762593042285547004402777910229713249999202915121198307156153628561230020420472288178761588152813423121211582286265282533443424883872270704848606010478549528124822387646614348458588005189111160014803244589119510753787316192780547150861201571493795323505661760238173688255445143959980685363663095464077628486585514014721577655475064319585333549664012979908649089908339560085680035681739552818738321777934307324327591898555878793610424744067090946193080975999274911109496847777610466759490893094267320525626321992169928061994953294621340920372531642219257117333537885560057992016890977262556872390906089652770603599314026705182712945990873679632521907441119874355099671339010620734765313270215460980537330491454552031908013661591985490073991671244217261094147216884501067771217170900822009015121090495786912594144830131688441881777707551028425568148024839823267222064319805322068211574159958021453219826273708228276633693222941098570025124494265985650435207610631766949747259659560884623406204871633816716409734560222202961680675128852222431089752282210141778660416024062401892394765612782265786774205873730748449079952346006352556048934432954276546354045929408195441392852682284912971288099596821765231997497018622315881350301590226807298130947143249884303733145879312995509905651025713136905775716962741579820008569948252962228249572520888967173344753046288976474450464789652265431072939477573629505701006626685188417888344918117982329593845564335002500164738459782430412099021832765265957122024281291952980592289277278919524278345073651023523758579013993161756561735455075556886594422047859217548770074870061135349262861119989734714865348043434247646095726181228076634172292477567833740715547005758144053160282248808810954647790633271869889628991461606083219652593957737826213323467753266272771414273664170897651059221843901654085954764825457391551760961452086326474265609957489154700356138406846171146690185306217496885570331068624980097896372638942659105895806343194053709632355752190230282452115959090431577281381974639132386113299242533084465519099463280271856587670135826155372115950410860293375360647765193288472101095968754264802605340103047437079553018999293702365797219586633004446977211289032490808152012663374687374907703642514457627374999600935208989825974754153080143054705956906224670386281347119216775755640607834391509136252458317777950092433456455310361247314788227770940153807361243475937708042084536944712115344435084645230525138774753729320821510372633099554891234869171174014755599039929984690404421488396246359451465558333990818923495106327237412916402403688284608622828585487430374550980419250649043988888679742334618368205735564118525828151175198657960524436290349842544974664869626988183363024212876562315885445827123261617047626735621747194655480718165986112934331221311866153907728759628374380835287706831045774804394446304227266301141836590985133797008296525932705021728183051723935213686125782907482098226802860046783495298076679771559476877699399913943785936102873804551075848678372478162930039025304780961238140832105171091668645682411196616720683487665808286594940917262847646533443817476247898348169714457063075380500777853253311543271993294681612676433361622045103912357674070977314541465840080934881409120326664844760461879098235825101560373877883556635892484008605640623103307446160400698015926927544924676152560024890925581515002515534320993475715403813600811697191613769503749232061538697733584756717079285690644903409757619558098725831812388064466556468756716569741303427194812088019366393701568849502514765075345208571803001743008705312449453970140790542301731253976337181349174291550044407234948120478283181737702450111809632948492652554152262169047385986581749275256240839564901163793333540360970104155393429389211116310044133031838150405433986839364198300441797276585891682053137902996129861902581655255102030047256607442124496458464691080290712439587790944484647772478192449215643400023711929693045470601831049744582004118809573025088194108226567150036747166128632554039699504187053465485061971363791484915981874604796781604874171542662464618874561418250636442500903534327412983125254445988937210042573435874332220244309912200476873595490829969286855187116037263601571901770941382526933507626125538888277955755631221635261283747082095340734935218578452329409016408807813694477247630621545628109596419805139865779350825846108093954344665542795777953658098046460756207590115617375802682909942401118935208653586427839776985390747931250524155510608879596192063835721745129517076266281169372876740807923407797926706341042900247058851840112554327415454013114354304811457560900755110941477603789663417812778829672120913397020003186506950574596231228720004590599279564551784558689372261793300590606736654456750083858271232096231501307640706668797107324818056133208272143868906538154717832013512372274748337930882129144607210332389500664632616025932491807885989927954930649043400262059934526302633621190164692582778569682832752286176410504793488049008210155598804060897679617768750995063029157829947164469335702223298913856409412197543331703474274716552393894354116992096871192034185827096567861238400422195447295971002150381241614349509623245568136134707933052861925386344470067840291240344929336766128824126151476804015690303172292762799568568458365727090975150707101180140810589837758988000632708331514571264479335445148680963869980600926735655557607819964123066733520653555494125963791057974540237631341216688808103693841142197845278660775312736461669974043043134051169152335282697413125280314416093704919534047609464715260221632922550012581514851455827922168291182260789997880976556948553145817549682426550422880921052558265922132531257344238608993385356000832777489433760243452017591457196180671241044059357204063327155441991519619815602670541690588443707297212568418984450400863945964795074458944201626730093751004875332491325569712691237706944135543986362713886919615092287528717318924875715222942366628409884664598639131500560761377342076779052474623541917937052904927452151159031078182008951551133542681244197119677686668483546342888114786912265022467296062799239169766322007810888078148758283154045466097561055256469649370459977664731806209131693262602758664850453580191747435285608758830366864562482348552218571153763016515444740299385746453041103381780961866953282494034397382870538825993375105899466368284981819319151123252474288505990240447031213723666659041900528522703304542822022964851832799872986952204821165017219574483759845220961213821612821955585864116894555366484281818716656717822409274374240465508228404305176839431984214111675295687551834183932927759310777614860425136405966211827571844147052724399360317866020269401297185795664044985804814838742312267809774185815156764531729698628729346190776888561295916319822890377022837461432972503086352263662319712123660485158391400286337782473510527071482537880986603753521951906019809290901306066509145116872194135358578258488584844727521190292757476702115507360079944214989818376126118930976859816978138045865808280719563190633373765924331293106262071360847360976033091889957890751005681023684995899377486823792385850429111599509857883443208494650745716662103808479803666317260095500907813997436100152344444557700508077735255317372029945444113795543754528071774245721156504197661438239862277103962225078310390960685570668817863997544834506913535494688681757609021278281835614443374717180612042447409098373801721974387954553120276215146373231968965724600053166609281778899398722753178025050188632303680826497997134760347391058091802560730719631540760330804323587674013110924610365410122751012200817867863418629406833952043767439179747667446979430247220907848041890638194611896133580538464228394758090690982671334036496648990189162050406766148215996259951287299316301232709668858050365457744846015749837159492581371881273797034353083773929421408679706958729705345546202882985213545958106483827666413830218675225568157330050588686418952997561209647633889637984450184507258385225269460794440981703054466417656520772181707176518260285055027910661650876225880438585176893930919173037983750694406554414149814728458159800397577231743819595279150977831892568540418049544302764311041649061364668791495332288921688480770930664864559830351444359313032711693397076701001059208360199314873989199015939509017211099528329040344096198000567814361666913950754806654701088046941402961025094240413726958383483252846530126317966284755188004747974892239044669072935858264152146938279284461397030155931498580750031015693702085524088500812719856235427860427256838937185845682316328489658207437981151340668675756535266802786107298893475761559523436087209159332073749359710719980656289972263113277247527288201133842957397118272154789990092129535084353234058299617481857523280494319487399401625930565986871416410846657644898543860564355860606119266870511066456134563992636340188168088155781350773490452190939734108347346828333017979376408295521023516977340739982729080608499350635064830381694140242352118120083345679560529504834250611480835288738012155427044141602083502562410433957364779947121540264444061878538913362038912437042530575338774366786358072234716167509698874848575717181399010916671551252008007266215876933878170612414891406088770601179069746263072768606542229833601088310156995747960359922657583940282450171373448721519290452506565775952601540605704250558650718073185830169147427807755896862528977189823834847410188573094432372235050539220541283432751558954025790774349282152981909030844585307912272559674710795380989123877756215583698480989144676224128774969708296172623194120919426224878380082476066763127524274839560912935522254942115914277585885323701425878149043208181293460379530624459754251281664181460818854400556787783756902177228792108082061012248270016355683403089746888932403997870926231088062395310147110224709913593817780925694415403667605449355668550382319407384730974165034536613464229912036229802553707008968119182195944087426411977619414894845212194747101773934819483873237561874093852126514641325009564276922935142732817453881520212873415573229212050586158536176768671632064475608206300366556473685209749735512680741369593118055275020387955425250525264206340344040579978599232144437392220781404437482838606541447119505532573371837587359812851490086046872657538546233426728519230231875875975927048052799412857393208506700133550724027083008303984802670221740575384707385743299561142112564498428290609616096049954220840924217082761033987226677642734753971507447808329437312584154652253658188271691755510565456065516778916180016704187748240953035748482753859826495308954449780854405209496957707327454987216967460069456584432933226055120987880485900975800064020770587316658319890548387702313087879875095859962936222540691157224460680839428270518613096466740817951390914048597430165278414940461805772379487937653586531614632691160709914238852202860476217961373034273677289438279111681248269872767802003499396644500226094236864993840256953420126469234025817426436538855657520140980330395043568626142769679701296237096884553201551259988553934422676074890092159870538065552543495963973919008324837284981251651547129820547920986798550952459296882786207771254228333762443749999787594138274623759795730312851689903342269802222655944415827568869667954260963110841432597372396020268791400841844927557591906106275252532957263634231475397512147414071859885793145255935726105108140873567416725632772683043180952168368438670533768741914836996403302644645641529881393779640817823140388677340000630989576729854280420032159878730675659469465433384969072946514845049711522185884145862998589737967767366992448849354030782564850021253671057637462363589757581327819679455967884401084030481180337899654346204507373589798054064401947249718788021651059256390400294304334963191760164505154095024673574477329530592911048036373517337633084146037783065527461787187342441655596372315669556795376116006078509476112240183498121530512636343976920915797150303048230657289581095012536984960418903046346046605092989631832880004291907678651406836032477038361890597748532095043797815043458083083986644829045349527110767433121531150397099529805748146285311216749130594414393759400986595505591930414530151298099316020605096267048931011178360506295932948930005898553964653773265135859417511981233250023795946957140400335597425094087116016672730712095924043934355545289176181214689420717678356556729246426567151089106592494403939544179342598236377509157907529498229740546557895145188295023160441814053536009169605768789910810664775069085682199873492457140058356278228247151986447151414479926484379139628221082071832780112808637124936998163767509821316808048690871533898073709655921935750046599318014464730968185606185999679669467988055822591401651623993075916908738036361586722990271994412860019149008015301636648732571283025047534380955617681793810258189243499705263844763308676876117347889685507896494687998472098534482428779805671737156332547602536973903898552452839885619176795928503588542315676883822736183320261664818689311071787358801763331721300428592621622017200303348443535198772307749750648504621175783629066056928109748913629983461414807572106212015545117317463158963033824834823375079416863656440368390348531994149911007734668796550156141403368105086689327333757082296959612490204413739647607697546246231306878815697067145671175160090219453049083080562240493478947275315656884649239227553165577745246716244756009734576455783589844947191308214181608373456496355271050603321196349359523072182880105961836858430705828723926760417689917885977378624866890522848871095448351272701831777069824715028132054771579617987262255087754011436095408693897443906209265953124884205333890632478219052932340425131990124589870426715814118703457903490651211673591871327730142577403794737116293979849892405836826769713351429272678229915564763831548831407373490520136224536754354900736636789787060956264336875616168089106274780133276807262354421133445406159824754817632546980198585919508509950752776622826424563788682161818555294053105693241872805574216391878862945469471851356936291348806455950479766993873945399645889041936367286719929851251592676315236011279941736973653364092660739323264305340749846165177637982198923499258192701335205095351546954374763174963374863790853066353453425403242417395803209412433681476437364704264682461415117464592497061317313414655260824341489663397313462977493372879181548618072906252522697211518794276110428470396853626962445381953147866833670194900068896182035576278056578733917853042398564897254689095579762566527039637327167214546028304635309972970747812049920046782787945421176910041559105113429443026680975787865556047112371221836050810467521251527961288883093955461465668379467431609479433927653495973572116943091818691201189278685922601330105462565913115582536404712823093732065848912975388363090009764765453869929650804536869461244086803999748958849759443334626183671487729311250567754563471794649453192967231450484036186719147044342089936618372217721985148406199285872070006443294020827016177525287170346923494207794839302934593702639372937597679239562663374977722174587005067176571443609910978401926499997247331588822912470987472093843691871844673532674373746693046405673119111105643198877666977531947648674650346152787890718623202569894369496924552944167203048096842108525589335503958873652609589404208194590525926630152609097387204445363004956479537719966221727483070839042045320015151047864643653896351573509282123589179558668335225399153602266164970677493443709229040140497660978363759648802630754702802292392760933840724898226616221961456841281427802008757636653895629035522288826664024071927742757991894960606540258712526575579098965412026818306963888927437439699151380216469573441173278980052382733146340080407410452043967942025077599820838192472231297088032354948588224493340175169139968789158162207761180781283295309577134086247883412585164605374303697852319736277132142193463663071415116859124185795935771848629748881032629195861044597646552940532382467251043302699787039696288341965591271158095199965788989670446974329786377193633878934012118793269242142063356130272287410841167083529341388019352306042347105492456391631381316941789921468410467715426342298581040068692555300895804242909695050388097116166440357972351983645254301832026823343281824781056387302692047653571112801132483786360906365077916156790731515157505541918013555290048883567849623545399787846173206670690042053971306841429766583809632447793266102207656612007704700925940676245124184639701511398217311504640681146980118875950239503194951979730214380975588226025347019404191081108998950278810845083826958882496630877326351410915364384388891003971701419750757177411311751557344498392799803164045564281471770706281919243050629767331579251607806423956698442979743677052709489428077185438204687743872689787691560817822094443209566853466973053232725911584519723805367371122296191325132184263496254223105632345690794215983952497356754659843807677894562700558659158963331353432008410975013806296629109579592447801401578118928662509776437105512546820824696625747196399226905115951695949440791485983414532919845486209412036531123941513077816950577942278732801567235375869997003404645106089275236745345824096513671767570184863905650713841279305486047188120113439770487963049219825489645732637001332195438936135671975887498000913390491866792980234538669308686844400416202224785418742724047663891010016914039947867946270175602686256976928620552870865947143347230463481459847565367850672134410826475935523827814952800493662798851318559364989207936762565463376540271719671740869533802946949907717543697597650742043990538972359755218770033375146764966871177211134633815437462257982625129387001477523876687862417048590327066439860316950038830623502314893148359696420164338928102268423968948117318274975572240477164213191027741103927549524387235289602821764767922987926935257722780045122979671415762522757177477248720632758553052583814104042416920258977844334071901117265401967869865237579639540526964930178763012833805547133637346311689864965898104730751935510973531919257329668894959691712260979985836891323201973070954145997491839687329941723564648399595367954361670692282301799598624854053925877963812450273018170796963384724292197760441995246312341390793605333624827004852124231429431130553581121480848646783947756718953724851824295644911153894902402695895099803899184365162145212649837971327841564048280240082308560877286573901540172559262900006492744226538926067311194926086328849781230206396562184329775577150120298372835916323979330938055994884574611658083925079103541806205423763228595859327704650262209445039045317564170080492190618050065831046999107072192660441054983910245523342040189870459393058118984050231080159474271741798650900700831024335394945587188139090631175919451337479284484652311016838526392966136204778653365541146965638712915499598805285874507158437587258029275046014857296515753148019684608498807292700114741752922669510681442245083808267980547195707642626550517407454389596290350968506309714345957309601029443754454237476146770312638085782220914268951586872126914528791398967867332575606599568099192817531190092361212219596180270197696168148608223937203493955205052890201697244259811776097277146306415511812647565156097306079628303351944309391551746279849261469824324894846019055384715135168785947493614299425648315627539406393473494874460035191675469090784910053871856441453209484119327965417795755337377339175752211035671268281860269797996208950993845558406372953908626751101869182110467819901371877581926769576813026638594464753626793824075599964078821366736216179171164799852513377812997972478614399313859437868631387012977566277824636016005121140229032981320307809444453586364897718100299045389712791563771854564569226017996575988096646680319068547530300648734525629304327611231615596789690554385120253229196770455920404907591283638793921726446597207535724710872874449584709323600026538212739222770385738251149862141526026784126011563828576181510139192572900135477171383760335583982898289989218261968310345968320106646037899066861446735936839060775198519323072587668017729822292683946189028083317062508589428996314894808489932066331217822325941506302723098349332736650735610268379895114474525092425833650852736531108050308014544243226716331526329054607436032523139893806642300876449026060377468004046632039186504240401052665171116401844743641728297891106857978225823249647060974805699454102331592092399022216062917911846788061236074045489811001274938013699536000239374101025767494008739847115122928795137139402921405903814818213855870810987984820406571188262622477142830739969376173945260412598728617968585189692887388498658072538939268537493894076501517743129881698184353989044266456065028183950781563301558802294526535626887780947541883019755643936891153383016190948229102733273824587447263380283973077111028096486906284674016792809667954961304710517927755540746430594198686743434146944920305794752974119587455246294095228300245431855480292237018962375018309896262665826163023313775327806829771140081042117614274199309717631556297846995624313322953259004205080614118871735226405528996808808974049131470971492258438672005617216283108967562635077047410986727422983384102006229418389850532096107790124672845393920764085313384732096762829992520072258980272139916663340019927013720236380637737615619515821964000966124458087886576537770692615270179082490558830751663408303872591229302542672161421739662120069821782182327375617234339688450383407981041136026638727173286047653164150361617560491207803363574191862077608119755875264493460505033020149583745946458361893189566481505473576166575276643280043721001374411581000490197324005597007422481186791033929264858036208975740516388628641610958794463885301602148292479884544652747309265184794603190308230449155325425117663179649246946515133614180280658168160834356663655034489014447079069297815087362747430772000224384926883595675721264545701316613779237580453837371767772071473388148132133296844937656690286891962724269993847524238611584204435058735135804911715558729221448155254305997954049777038648846044592841786624211862810650321095878829273564397428940736573712678375013714521930764672127860300141938707064664089608284954823538614866603245380300556478901549229880075639816523354853569886760277237999184988226438132299367572782195620852483571304048833980031914405129849268151771843386339082158033880182608026690527436907643546025592572133568798945598662760289691320931920164160123667324896911150983069336473482807519258331140807663121153773461731503155377331107477335862951961256573296987025301392963029960591261649168452397289206271178595794384853113192043457268206988464033882821232396595101652379925161813603450687128967476836127752930976401418018074363328522719281178436243302615348046808699033622309888180417802562398472720818550698614483517604669804306412851647799433812975865788753719266308743962799538487289205896055081271823433479458114631896410042596477706921424026709324870900910793284554788293736110742192254308777034692858576615725628754281567017950911736480018306601490529774035864462577519119388302349905552984437230629435312044935206430566010911287521738910420997387419260404736794694640303772712973337030241610214863595189531457700746054849021826126614541209688304724123270293890337452099708546372786950217035947788541442611114928294516842497833635914852708016004797813109417942396075141696980776558130589579646137281640017507883371145871607601321689298557662599219115535795812734819457178004950005919075839477868967100356077503362145029307954748358719873451060874958464615019123127613434563429011868384388369745163239930263755113232573657364471537934700408727067403412160583558326206788762185937131075078879162331016012164791469056101915087576369230701012148669736998459466661524413590106704561892567072219143915500527837437464191156347152295316325545706762600039286304095932066915086514075321942136180280660349899126219388885584881678995254877358608875205221693321474042545583140264011000984228607864052595980700240039107246867381749068351615066166106015281658159230462352621181069769717871876865138565118386816097306370105888674482369652465983933361309115144153957086293980634341934457884803105851901972922341210297082819162559307965821892444506923301119295982385158719831015101059632667631731276214833594527599379340903185348494986473819758885112896404971140105060347304668744008819765266160562732998999640894989318340583989258022107871289938386852446554410973381804959110980756321577311342065379974520769022780953579547120353135743549080438657020935857776122641920730251396493970500011380113240575727914381306478871298529863216717005453069179436569454913342038112484171976324852356072416451204998985130032076857472153529374686884058878071200391098120852328625508097892623412486268674177254209368975277619553731194638784264793506918760927744968936799192444775400893965434296261124440894707436899795382920783367577489198174548926405152857520454499430757595916257979851874901957982686077557996067821555902126998553471749770866888943170435758530627609935808915533928468702721706338300051883635038598281153834329477072825455875531391749928387029110153502490486303248030007832987899116680705758059605385273472504854675812367305638145642015892454399820721580550232677817414269125468872700898877628303104542764047477370516006246478880200908391436455808821078897511373172519024683345126976605283325203526611663134074247516691446233753928223546301053735508257221646958192102187983033570031352585298277271218748936959825773536108083698683244097410662559990535020478300411395834998697988949541098561943919602155743149574644647457839990119096970742118597999309384474442654439343597927459522398296986264633840841337713800338103551832324122574186292095945190905715218612326798740212967471372301976973084466774561137810398284994407033332874767354397921074727669906108742684181481857977088092316241770984003039144611444538887427754912042845291420987794507720439136091738064341677000457129625848063596074984982254639876897068409356818078023103163577185709847183507494957044302423564311586846780066628927061260539995456955254595304613048910258435438206443770389715228896898624511656420239349046775354506965462841979563741001421550317941601460528216526401419015944680886812963988086396083716914743013293190367558290788888785280601618720490601943994350916480870936993885892616173043730369031408487526455952034039694976662352456203929177929913921347800700362536179048632984848650607906024077421692607061430581067223527400423277462119418238553949148148580881324973892831736382859149135553489607474155672738272521074902968089933330393849201269100476517945596666800409961922462782392963295994478257767758390887921506693645686058249269412614000064827713370757094731890245102700322434740536520912772234638765468301378720729377849541154710116923916795978179469738369228926455412568913703839949999483587159622846820123369124044686925910113645440630192670305512679270174622742687948868120542832368728267249023962926675618956734092179771835415002341702301359671231365336479140829896448082878514616381261785082862045249321596860075993941195946444007989724246069795761504253750974340191794732363014183297816327148854777153294389458406120344134707580245866294088599732514725606732503436035536993936817493395408775769401660161305217395850585638050446666364625408339829423377203562633221609699110085804422649454819202657802306012435428749298684115430618264048597396592413972550456375086492639812199941123694624297677686068616380228830989110518261671984301065655677799579731780106504025908978018559643125754031602059907217247507178644059920944497748250295878648211686730383118990534669715783597937033933802436585406597275826808649837999335017918150433059984393957108514961184008342660483060614074582741281597687485673065499828212587693622517221486041153218744708632735377026875070473258277986559320901510171359947451308397063970833414526774070537247160647415337950081009203435036682284660011951914495166340306449949174705663487461587283692757215113259918300463345101735978378594030505815116588287644358596359507310588225770153117478543830341719100427079954731804137590989830315799274148086800185225173601494099310932462883920079534195578598027063844626703773805585348939352472136343829732755624379126324511009427405422267078314895526140594164444473167299729791663792391922897530659874528637699904686863973299993814879734421007711903716643382034489541990000280912432071010052785174615690915987454604500208511602296136265065498686232068208315196221562319591030374406156233419447971411164979429648826296411067235910475093781916661188338018172244779426468476887576831964695351807875592875189297988227472726665438630655107969785888408902591666468839935755018199731618426656999899905144793599940953513679673430886011643696018501764527425669215241587905170391582171504063921604951140447106867157228490844865356981945903611945305682805323997653898611954992105179238775364456044202882435022507390150796664970227903658510438253364151763568719973869980390022793249137269904188129873029745440906820841438360185448879181273251772361207696422502069080401916767377834860505225266458292886668779579897655575543665143806208183749582059485429355393159167608553457975527039952066229541624918523222710535256206390255036930053734328180691541843907150739290195493168729399603718657508990537501862940735408313196988378030423496978384906885084231415022104502180212544775564344739770344023147129553249314766035736466112790816361001326268457691038072603879471015208725657286155042086837700187392801671252684068367351953014769632506995803858701378432096816590807196808622941402397593799546029354988885395235389829342806274274449647107820368156489958125086631166008509425513079146220072737585154312535829537965569144534404298590999514803393522498509885813182878444105487846135925843911330636078601243990164321957640429970318752264083642246905880528848263827045538861742048664851868144898292958071562631791813740899255154098069513315833733846093700902472306011563046456612281737338083598904987505283213371934407474064695891425407410261552278512413340119818057544110722564132690349417039844108390189635206975428480336781361259449462763394160003552611181713294463495583971332589141693825180250945862362798147732406226369958899378223847205437547683443327446603518757026947273666602214881776904825538315722946437203106090216558257901123773700967183096099257796627135817973053477181604529046548042812732527641904374877379246707895837916577732694131611082170543394789330184050431595200741530363654491044588198302999058248019565490006101310689458436301764582788308383119531497923959847060280330893299495567183245158209021367509758941954581051262271898116279955656386645888576833908587510252484455544778856985557451121292096305238727060391137736242371404132606518574125071035989249952474679280745786171059093100775685172993978703492724289188418502362512913407059002536775746138133303419541978780115829720662712879220692364194489945854335943052016393086062004818485202334977518676696634633646401237528752305103518001702160268233508644724925171325564704474538820008303855350570617579893128130646266149060166901847610493496405492944726513668305633827187690645297130955130824934178715834607348201315850914577363683577375011840692607223491865535993826454366179059468963838930907955709451403168297410553510585455520408370432612302580878771240770606460145979821529771237077265681971765939067082594657983335154022381419788079108773048048072449002063222854222105985669625777516519187233377326368053385521626943397304681059277547151222998594748738935377726934385805053540861177975918667160297097561311702104286916959466534658839841584218894045421749616542284933927991977963534972838955134248579200939826380874696728934554930330558557499799891355450873269588846066324852735955911699717061870210892333346565008733988718162210855700491612678615096031770928924636947265628056404824187284422107410235880821300854066452801293060940809462893061774013210225264275821271389478749111958186648843193707248982288519262376885498297726140922204507452416342145167615382495402125592949996890279795205324557821750503102303712147330248477736735684338480352909613971950447714908276953623417300561883300206423833481962465142178754089504697175440307918804685712888151026117350813322983629559309234558840381412606280546655375002901508358653144860886836736392349705479242144870813867220127923619823660009579157552149950639000917574791522598429125132190611335093486712519278072144939467683731046921246697277511331012601179494375745513521638398186619808548684218724141438864167116827271444804488781249956213722106208597420333761771987327797974228692097074888470248575245360207307903556315621050046021213366851022925321560848257580636889287285707736221322424699244589223656417784330348437641658910284793553586056390021880856849928726680653876832194575690190057559031544130344574460281634392235310815034476225803072300375002258187235895332726254251127537003961857461603626194202966323925135098923218107091653735601685896112630186476974244412197422155409848604298939937796260390401311655652692153255373527706727981625288579585394703006535848370259734282645496827285416624465861251882401449026297079446808406095037051385396413491760862847898678723931337025161120421472682792850829706739239242187970756611678354876646796392107642718243567560104708986280192079871522680465086887703942404842530976563954708741531946493582130923802455501553474779732595309662974772538062903451268319734214634122245617705189743576824906648499212931467236885960979698642238094188712382361300541752240925546955445001067424261695673172354215565799272903481840165986877602986433389160884004887043991637875247168525994537652122763936194563837821622822450344728794902102501684441063236976258329208153068877141124352537542585178608643607996004646009706695420346643566785800694777338085909377554407896085984280915602500900861505503640135535123682707113230932781609846452672119713966345061802229929039373467951135252539725971340932524898503235587859330059519733138071989793456733976665658470023973951865358179845607509503585760700978671977252362595734248397583968897422281280328665336684689222351045233245224943819139302303294768778461710140509512601241463319577307211736304000431369738302945122401859304619915173410327895415334901391776617239932462308569697508202262391615325195502242024471113671603876695694331094530754935179806870411332677805768623644270919254913353363869363981883790038770164886192513173415555879343662380512864386437145087906254761243799514973189102713717933038367096304480338080139512187830519653134630832794514396348105167403032324195951604499426914025388161641196711252208124215134377647651671364078882915000095584370185402035112844638569719064101526933781047082265983018268985949052728499293172147695238577721498803160255872459598982683213045225051808823134449279028771526523768215143539937070380799560774686225252215046271562096612679034558954837860803551163830172207275130557954585259140460805086058417317632706436773828457170539594316846851528107607773834247407872803107640460915648455665813536978502786712770603444714441098866029947953600476559517971716191481764185446370008937483656293616757147711530931626394601682441110668626889254870457854061499056912037519908293747414092162511517353492215321832218252338885822627071034553056716812381908456430375301903212320522894358289371530760613349582133298199147060797568960685079616876487166983961125194326267737257086428290838330623411045355783559331850370397458585609831024412731905528948504557466522636528940421098731378614708222790692031759435916784582163251808676917808381128849555889694430547987340139650464552995677053115022507363943765074539036195986519627463552775742674337647911671605885596959878853561214140929724175598347622225412810160119996334037192141778373296183647788890179919622174833321106610750533640703702508341282497936503127107265962411994205928127802450312170599648723644819968677927357650299235811985194149388706584911517396014375333006424269256532048521937827368808125622260724020972947633754727669380229441138851073084377671244571256643912773588153714874930794627652142984032006535804357922394560374293562568778977293235926187447682647683493168291108906180026265558781710228122395104030678282987575192817740805859825579746473765447289755187560057536379572156684556326195056775541122873338843118350885221125891871685324706218368969513828656829655711123071132200662664170769150240432520788883859093246972082163216839913059397057635864212422078315556296335359059382241713884348007072612919743971493399764114712128610346004368596257722049216089954565063216704982051999696237784963266231536549768898203551060561381104084000082063635271858609147191320900375279705661927817776223351383236981400592137765559697755201082204318367886300117546087584398987874481189360035971992937580716950149044399991274437542909919414541612729453861633550273559087491875716992675733531352459225768728077856702537287546061179771298166453544909202389073817040002029099147472353875239045185067333889604855447964113194023471190039058995931909261376545904999825973780517552931541473335957415832865257823825320849806234858294079052304280543337245051521555444193810781654353278112334780348299198115641220090894969791895300539958597802593580702903267612756414360350119053537154667427926921798054414210885086030356788998257165147545927353368304413141256392143910098386509252002732502123701458800735678606516518814091933545433205763941418455034999521837894625747759020497756404123871584713479464925299051312472073668813678747721431454911183872994516408897959746081856286512504825314197603328171021352178278718945999036312180905999296171914651797516713424212563046668520585346579096612198060500536359805057615347387582847664767109418158665318250799136753742625944262506967841742950263173575749402766167754068040290097975444390546375604205905672093180017231742126408035130406097705425083492512705012831076780700076740648588374908585089029130296498867817520004381129974199575288915911121152186799909357586212300982153682515742216176698170686395895344216943427309799289574161782712324126981435187221467723736769868644543475351477146641432321192478517982434110725053993772142538203053523087619679287188007524879706540177734619603812371090161564487692954928389049340873693989622404966507731437203388173159988115261058267114764901521263173141685897891885125430301646379259949169829092599292026308300600926865655279181711085842022507898747639997641284919586963624008154476199443879610943338818572228276863262686711069379874897127756367476343333724602534560348902176928356045496848947418176191443876865552258219628532972931975702332288355861623940168612786882907909728689442280073963339828885206206733392629703922914103360873787793219867074274107770861652457465871090678046653970520883772525289233516173690057040673743342149749272389445637907481315093749271907994545968903934034252189147145991544601608775723074818227222930197170966029222704485745417062251068709049840815949495643824923816846134564656669974700512797451678395924621649858408474147037278839531393666505714351093524030961709415933435508146010425409168491196693859755411719823632479937639712925577373093778671237827567509175354652345043149545208429500585287902585101651156596380749057255103090829232762358221155227160655286596731074832728295475686079962532665795681925020379656614532201274686791280246100644694096353700571422319759778120274022129072486434476367664428940498712731781462345558059417393875752521085358796246980881429908131574448274304734011004100752804126149062013094272703231598286055769777796469322216756324006408337381259095784507054534460817090670354354551385773794017694940047955734662010330913794378033984627763550364521158520486115905134860351634195893059726278499551319010352364289689102884528342562558996009923256365481060902828752596427952244992079762697475147286071216868341050422278685020518945436835827735369827053697197406315980870357992625480011580667055124578107088959681152604671529639839431834704509185293071413640510292345394881218361529740866417992074522552672450202119412743225763135563757924229577675870300789636451796624219295542871286307469433016824475864279534347268303624521036898893805121143539079291520303118500818790681138229271610879892504800740668579289432511847036246818527712618152169180869772462153344826461347763467436575869748858662864834508164165680325026117212978240811006390838740803608846264555517715434624159919307917139362418265298405460951951309273432021970211725636645985849599344619573188468281914349837213570795700630538479570011942840619176907114378338340807495411795983128623358014041717769422621085822654969939960131489763981369214736213401947163668456977479341738100071986330451369649416279703060192101885582473023457635892203875311668793652156789016219575420754804322404945239089053711356022887363262933510884399752694789683270003837245355385495166658819177556082367349366696109745497147480807408228833329303547127957538796979143978240581341149841841787181815127255303672116251815346803622363982367787704652776378502550321658724401476364275586788744436280035865385131578240536057140192256859439236035008325042221192622482773264857311788987127767809701458898531647840652755771687590296338793049840546370125966001268187397979723128203855170425999644006310087341260758718828328401952231664096492285609163030818511998075558068200405737570306022818836971343103437346743989992342477565362820754872815855866873223585603499991792388776733943560395852824730197056872484564877006884979622042268464704964707477239536051875773089578141562653188877697409072249328616305746221523856892417969590244194983702406216284831107141367490781796702847952171806057580024349676408052254813986791980142108322504435540804066080771928875018076365548000418589043910401673671818095055315081205609068552889086060391688018422395810916901129729328212464530146904750089471033666035664106089134944617320966699580281840707379632264300560627444699798155341113472682330895559970205336356310120644000846604445525252555318947545771963575905920979735812623420062052200865427031598063992570428024807379872871086105461326387293580462927083107017125833635916232800853760717377684089202709127707678452205659173801015529250024957290092804622147406205234625341603508644807552282214274404584678833575824870921630105365682804346470477253325672015042848810559027568081406606028282864279541929588264547049880338542305774120936789704740651570828829554108494454927407788055827339633668226581583315327720213562947496000265233392442023646644015924110906376074109070297978142525491008116352490618765796652364496102321106783784056322578970150495759599030212605064341263612402077245887372610098870736795897559012038914581477675886182928612338479394265654707042169502508356889841052811523891920404888648479279006052095626625140350039480935745833671594235628170837112516336989423164814691195937544551199232555263688297952545152925675001414846268865419406790465916875516816652625299486762517646364598707242987477690674023441695344515874307769348593076030432316118504784052200353183796828774777618953405941919914331197027741559581755514500135752302558788443510497851059256112026202788383694978049112617594081528078456042641368835947977461954590373521274935904356638614155868163772799158372120534895369327906355833457148459585964510737593958369615242075958787173529022041322599620833020134658666505242404598934310965553280893098656549539799300498692659024789922671105914305662627546662294726207754425215299292027544052672039534580156372400671210906197396785731363945336127239702728534266660792107034622353974631472558536544931111680763674959239080751237664839930907655425982611702871251714327505598019043484457986552078268744002136719437991771101937627081094813031285998405703589948568999277682665797852400947396848375816924234817934301706472039550972432768091095331782197974044876272485974718106177216533669850050037556408972857989565924393801002329356409155155570811830483216836231155971888421905860983167766471245737670490598464953836927971058667537172956011893729312171409792001932225206319380181357618840824856487398195060983478263946298103831304481342158190571856489044813449838722658439652799480643996365656467775486212672781821376427174420374794265792931628698314120908826535639536702548090536781973205329025364625247314594622151603342285429720036220984443279748510685100474858869654510697775305486653585549711472050770405107503863746326269390155229718055501144742407632510199842195459147921209262014629825491463861663171527641163072386774399889975599468536660774712469529095460206628488566884007300511732738857688792742337313038776976235339945284682182141726013100592014572561159267993060673675357451596242126769706727831251581881664245332072434813265558406803655229030284010325858017534008117597406240586567130608977800236637460923750352701011403644683442363952286905575476662003641241920823706641026553615463696717030632962545318356513671846490538053262428805619737838372896964580134017238819764690322434131099662577301023658301953750817018870492989857372383447869914789067107067450477018755387618062942594758686851214760652167068500329356818785801919227481939798823401796634332688451678687817305822852057723172051180052718953319962766698747995688937795317502673540078593969404721753040293271272711118557303972881948871959104809755842891713569775931158707992875425054487186469630699072483852512397700750036795282044218405851138131925491817109121226302372855024447459280794912114926878871990874724932009822755552199456264742273715137403216630059287742118858387070160560643506700000480605298205370032767287799130394764618719408727625227488568078022972018231866917338016356261037398223300387321064365409090532836585515739287529497371591889193804837970921349555331289308327474783735179204601399828743127495016805383113085066144674819247920442486131367406210450149757594047403828328802841988829786424168521140320988397726311281836664488243478603820253694506603557348338126937381750630667897781108733373886322648398815421823450180569058115120234634858605327325154942399601966923026951520180085143551283306926372868043645336074365049719056107229418218115173913409734074708116008069235428051462241498113349504501003972464208806444558180029624037586610529845093441913131252097676185246323798148161409509405102448222774137151813893332983139434047025775731338422031280565242497832896627656935613355184666174123355181845992671333912188028820058625402258719617226160102257146723538119428499428797739970313214381095860169684293877231218474445123588505732445660097549385818931977578138636349940102632868255629683860011256929775503754255206998237552772389573004567506779468278970565152027656097049776710773973765675398146863737196591973750556135949747757534784764024332727326760440269791835992286715074736110290131560481966499967071449285101971237932768236728955634915684128745207788151128579778088326177272096791295383082770199543984659253471512237596920324505773385074374471232482116503848504641627398508431320421324575799939770809345281398503106401616388103191795141370986118751523070072083789370080681623353719008201475526888151168288743012819598787545681456192074441918167321805718003924752914396913883726101211502575153668171472444471000940363952776292816616853983809180393824360516240445837389709113881830819048504253965321717989931424628772022120813028376368730913106866391111960858837614150351308148738239373442663977193986452545952960600807290646336538447463925173916510853653931097586612379393890706386158868255382219864901679218882006131856503769295552358105204198920613125591593713846195498769926925317740546723739081261514680356688297887276166471292912870112903530961663074973149246249518828979340014654166671134756042141031610327152142375503670772849624974090278379908368882718555577877847629333912449771357191601232430276237269059121895777102223919193938049097198485021504611478643915704581788728118881732146267723793290259943806636540572253255753481567367358477859342741387939282953633802751540030242113767321765296918389486568062359387045334376816229866187600892610431316291266812566024222845183293162188530531711767747488217124914612034213395552953607376840296045697353504911508478775947100430113230499705263476979204213502747322432738418232574779136355050907462882831803023684010885536562413160716389245881886703403647874511371936119815743858896174912952911584629991863259002644085584004216845583462950167911556194528938732846294883478786503799196335685471245142116848335265996670201304825847377592488100514864645709091087112819100613424961788813799106012955984372106987292661447650191823046425974820646423255020318948276946677570316784023184369346572492530681462520954023385308789360538578295312981718177887559692787454671736915347930226408053136448357551947052086486993928995255120236451499386939203249603197961822256559373142327763961585284315023780728414232650956490376364841619400106536401537667158093321805869456743069249094111902803675935233936721008102944657363887041581162351946016228953978928344275266238493953828895097225462543770963253197663217037890484566163454409041148833391379351943120972538373275816762155345121640992649830898108836966031753053900478404324636913632553816345845274882415364041125209945068626441276100784490284426361350239042992307487936504470426361183820085707002602666291859402166286070669023758390279481481621648391299285142523414547021028507469831485658447518042808426087491657388298403395210990316414336416276995381248026059323951433584492939854167111638091661567487578693590466700256840329134291855654263477493728096478226486950201957175508296211765266715273170866139561615692000928142820816899797330930380227381008661444835115237603923103119519208015356630410853375268927516355053602928892973333474928608270965289369139127282988641603840581979475519349938714975956076611522530790710813078521739132583009342594976542889284709345613024145507835358400621148475303483093653928180172852443167295962495007695336669852613228877512885238988511882386958695175097957109687163988847752296048681971977486570079111267767370266825781004161365972609988904010564032787519619533725086173491636389230115540197301637576525207583951447505251452687968376173196927321992021170111777003256473090232097116023998805059333050027663673945438307127969279782951209263550006894892042628737488967525825329384395745013951582801343077537595992627609653357365550215806559115144559795445769942173299502492484259986573344646101690389967683470945331244888677389452792036018987581595664776798568002536426966331168937218428384349848123050890036756382380296868307828687788252510101775734997657388991135557633653266159401078410536673411899193595176019762784399531299463806289427582825102219187230036513438107247105955569910105225466648181233573398096222281584872752159407190565663374158678709600924165924525291081235609919567583794108557904530153924117739034906729315129940143886290914390857446340759023288663793825809558717599390806361694223469586264051906258163776386966238554162362602574643144465721670147165722291319584444466185885898936925990646282732646008372134488496488906409260985558852500946860888648954090104676707926952358740186334228564815831227029341417233010880953222220300135709745771484419110099462912572594601526706580909345434458437780714943617117630817317265206415121453702968597848169634483851336539245466260046376848358506799122809765144048210635271369077262109280114127645260277097421440664817529986298228812464703683097191077761720157117734824541112400030102049018818352937800605452810635762135458004598827265185540334978793651946004609517445702654344905371201231355666632095155737912950213115502819916564510931184204203583663377702900469284410955542566680942353231463787832277981243328359073732972219946016380761246232651906691154240202895858211959919616890853322187566952588987953792683364653852291998825020551903766437261391126889164420758165012548200150870630559163909237398333860785214618568161962501817476481736735540183217161810972382928062608635435182736764663329528665146471147557531181957479490887278297906728099491949292166937493412877333464046727645866055533199816569215269310226041943654960660704087124199530872762264676220175192162049328102987878221899835426949649014698400401026146666364391951630408504121196427102747733908430096352301208914781464147809084181015717670980177687146014924906027103491359252054515210114411752606461455784810741067953021460908397320759137185386607977339932716315254946032191760080482785994170291294478547105324884508201480566608895482220565779256078337296391171884449486414116123375041437374780330440811410684697073893334263599442635449035552826747915333242637275638093290844118661863787768360325139096093098768507133329737366922511887105845845535077267762362497145041602844768684016514356742788917433664096743110573093032460435882698810350713631298596065447662475468794079614542958871097055644850072199420745228585759655558185738105384557516550564144849518865642603093662934139458003892231913710070574648323507413403334815682774743151176022198080779860503902166900391166401431281025574770813802241950487586599656609112941972747938732714984159157646683151489506364193795774991754996427701604948067386020758983930836737676772152795587098027493693694573008719501231016730959088798253832833931619639671364663061349634146371618979424613773366185049267630539903298015851551822794683045140290881895256704859798831321712297419430653331318902155063951076983263817571207677636578442503609634773212371793764530586915198294261546253798820732799077198987376134015339564536834060756190866337612062201668595267825572449617955726529748112649508409187906937117983258549385157132385594624193265946835337576193573579284738476633838047573587664004685695529728474018845455416684297540656313183119867475993072818529147853522061553040640682666709815270528337729850769044345416007756249726283655755015305322571328080415172523047502450748891602504993666281572905788757928898084664520718020291397440977970578222951621554302134138764558704388946524327231727298907664596664745437123070900621108869234799177150620264242122556992257065260812862358916190903808947890663282239881787952953575939687286093810915757978203066434335100895338500727520291789573466651748448473742127548875377011898869665537296546419880891386529303997239857372711057194295033188092952607102192504079959498182155780057801556952313371922690799899194307203149043642552252075787813044770462447623882392089118320285658781396312641320143626312311208750661584263307209368602511465945410774242145634510431248216970645101891440284441560996570463540276437670794823366368032553209510106641455433945960206186256608428966775652278470612987190520299827254057940912598189568249448505559523817748102415478951695726907945628974051594199116648961052774192507359914836478157379191954350859232152057031658950376564444965562034809428623457976891370791037979713384814812723944089910398147607945136988290305360594065497897678541411234570907750519934044307870966167240706804107525021824778903312706798532924144705837190691414713877705902400464413879718270622600551935594118810148183337100780780757714707512387028087663341540266740142548519705592868535234836664022683939215785003691700793143879241213644482980111242252182446624836615248349730006376441901083762353136760487904766578264601312818134432843367300628489668242456402465852291330922198591166447069670531621609945467410214544019301699661994829996780408648938377776762681937549926363190050214572424305904802025098387127195379853978390317346665051572837084866605981332528278837545289157174877486103169103658515423233962998353732281970119641614912226533743788842105670476705534818245510087640614630524442780459326762446516521796834234194484350442182839656270367559933783844710838764890479256983887153375305823731128906189067883370736201378176563550071155725240656331166912041700597561553733058902192686977692580079802734398367546628317219423600422865452979964639414873162650323471053248610357429829569313941518099493998965786129102741797681870261877605351592788019121689977423189018575745892325185333931247871012574637083973591844533494586085891557716272344311161513458890850773706128904557591323723398262690858816067844510562878459521573481863068909459159867772765712104464738419426951161988740999382009855443830755066273272243416642531903076054061089632882633301045028440949584467533584775322565130470436362896456955286899864417773432588907629582756906495184303314277819192770821561117821476808082079124024360359058290811015404794381580922801423567359107823969403381293012231881466603170388195422576371948572714660981208959532404473517334765204029628245161130235065912189580089237788355456914261387036169551265086460400127245473180770286248860613024248126140223370315617328680193147891371013007691712049164658870574628828512126677785693540771978433197578791165154762053507994580117902866129988214787882910340754718797071336018689976906427020265843621809957662200375560129300687811570160151111624972446369324047460718959787433091404970790042615824873757665020998235603297114449559753839522153128075387727202094371202933573439007720256692356059315028935590140578863639936278223219526382658755063585388069392791876464229113607655261551002541999654509494634067623122045979913776552763889018550122474178415680515937180139281875651551646508638442439159669771469286242993419046405471496410482352406447220831866606445653059004144042801405665279010429857553763435693193513305969606571058689838490254942177837098047763115287712650169178443845269645038308336793080894295057558614628264035948754568972886438908741185710140463663605920952378173371678441426881611093526418355535850880357414982216575535957224060114481565914090827111931901346010502864721738513436547808332074479273337799744956314154140895283918952220032029493376474319943535892019718091957229291963442436659084068209987705619450018959186457913425917949273645556112106828228190210903997824670210917936862854399599177688876126649076138767948834116025729310456047013345294994696766326334429039169497980130865493466520405294007887449597555613718960724967059232024999328969616405926177278942679691629714912236342763470084591162254316263656665348286947259313974943911217141993237331423038549763913319959719491156248854529356377109638879829432949498713602348320595353226092147195008710091205135280694128966512142640573829410906835713755001168194352006179450152349851240497518778263621688889565113766444467953151427729719733268288554350225374558484260784184929282276357461410688578981898259403945162372420320854291531326507957255336325302448928507282696811868572654481538551795242483783319342708282601887014968434844079041985015326121208892623226701253588883068033211986583580412447401010336648363618251828566993223180555585005047181795376852470630261967838179608109582711132620375538992848164831745783067912471025222163167210960157048567290613944527632105936330588020575626395243146014307335597871540231080339874177210160969331841596118636750867686391321466231989033356533606706334925784302891972505330903261598877628843329288111111420722217608235485715941389748574699102014387933145950786040801035692702307452252089503070825196908129914947400809412752743277914646320965951616325143268392435772840872902066345358067752237721245395774988155801267180732809003788461251308258311892926594081110964839741856730909649080632658955210641772717039738774656490114388745388091876442544381733662054431331747781999869354716890561551072824261580948402931339296758351042256017628412058990902166090096180955364165176943235869435544823219533172947812934962563521950999940549329927476148037173667536990673597919089855972691826936357685064292325647452163965796847341939467498180691051763311109864002203648766523094190266216976287344636262878872437044413192398634830110065519934402029710599375296074857079636693752123108332730552593212116687232546044937975020729241006416956812413206514901468871057783446299706971627984943540501725337170921532277128315390837429959981592824735891832695233283177788496100492841792672563967329887421677787672552365110866304961549442504037126983324703040202039318488147311351000113072720994836759045317449101750242474302005177254639792935548980582059035087021346339479919906807234669784769696193950063626275173762927152193511077963051609098379792672433641040986478808961036760129881421499126933817461791074888829008779534296352370355870090357619293396008354852346442754147541602894158777823099644084102358773621580927775776906067863765341569054148107224567915405175066654064066372707652425890565066221001863884837312508164051129683276507947271547016554237153948571553986549639041819712352083108449641769009324415890914669634161066129985548051921989478142147795305982329560114402437480517482709195218332675584494672553756212431000441506029393428153683401569998354067462449905129995360023842176607602973386517434228638931365178050457332778397066924679544459187669179848781471814477426769007665617622972154688110923013910371849132603497859368963932359551750367362584893908192132417300911994427503579592357126384737312007252574821420749803078502991425555841485986464269566058358488256160188719231894159384757565554209071196067172687168759574505622542549549828621536545300479429306987524738137462427385047342780507435717460902823963054314906372456601107905887427269823346364426012167534542256097949764875456051425550780112154781034766901950412182527639246636056185416385537336573360493668893453343173198016448499955045663058279895214255194681443946513841478997376272268736070433032988720722865364172026696740189210519606062047660753381008956266913321751339352834286152324738390753357578151959513975232384038790317323898897490955781130094307709792380242639322464499702962672022255782674601449427360464953126407466046969914836596652566996395130859482233360981726941202047010719986682869104696024557930693537827258985852287976459511846822795406946000096933515548608687785541058727806786769918259307751183151177824031604674431557905903444863393112091832893751906108075144833782779683479883438199032176081739895196402010066841292647684465249044781490134932429741802221732497564518266128413643729759155553874760776501789070478969329314055087224785709852588158544150624146821540435531560734585045126053520805264422392544348139820462294792025558322080569226615387645536620612985955720007781273304020953225901562782412970049995208241332813591563178760104629972293731644185467287946503737133267227069560435998627642292968026444990796110642095915464879117527914796125199162313375755948589690459475361261874143512240990233724146816215277330122627238729476782735882307250332981630394926580970830499794204635470503685042681377799943118686620363364863564369425653978357065666419991403933570896173288440007755025507895960339812451999129071520001882822525281947342128570713084929419618799154223070409055484042943480721367398642082353112723644419319346504392295158952489213039736845832512037271804689440647562595354120220518959111386578356472609785990697126181431691948987229917259610692653930013791901505826764625634465937002636885811794404047305868569876280589000819551254143330534964791255035551709035111718850423597697601816974508337395386568908516037615314995675105783830444516551568064895482760447783216689515805402814341853783153234192442160524197447084009740368768170222942781361654602382431021599848478215483675328343781333327021127356681588396574539092091683652945817538069061956911996531578084684294575208795936052863075490821886611200423542282265171422017462251099019836591885943783157868402864819791073790315336625031477361285358927468279876847810143487663454787195836657947771483231334493585048516986394544669856186974349569646168351754332569989086569502022004417572308540317338396849409031881162220006593275304503473383262187578826416007892288602829650653751561557764192395626965642215231887550701552593993084679812720290313586834593669017598589853092625055062731738337204773099613473481794371762545151638354618090983981576737901009865945738469127776003611533305462434048655267019855126274877063255603728224938223162285132243910238239352563527106699680844340279798447056703080669350363181532774747276509942917406298570662988817943768066543639201236515420970135937992465501024843702929159401514079087306743207715344203930330582812200700186701736654947554440371417555549017938348534946208097694270438945318122405274972772473586856138194122775229317857934749452830883104123350343456922951111687299989693453344574489456712751728999903649107608354462411334212195315803589262733064762760850096837731137352449937784882324954544763273383135758667993719669227968727706015672762417577740200799346850652600704340993348098319784623246180280146211401805203779206848746213315221450886185343166757990853612184921056953490797637299465688956502460703605793818687488203633883598688302729897899670658720389161808950381322531307260899790569020355038144650228197531193485373965955258959341958649274904447139762187759018303565490415823575399373972609763716910582619938225163780366132318267543249400060270096854187457069228391937905114374003967001440353887600964647700600206640317656169634313235446924452841112800451807863884700342181557381136820609485932918954224311929751315286993642186932999915873569724937516917219847215574642242838299674899087403107594750324179153503989662084806167100816786966071632748782727697564597152198833493938283261237780250088894152722253262370501370477778767165353292028883002158517827380436557795302103057829758232851624740853587660523731800927858432764327106764867065532675636796105916197414896592544605662806412581911856276391955436296213787459387719231454884595234373053251105189975448546736976771141900387002876638239905283307474016565821462254560729536770563516104734789301964400239639255428809820971029973668385097997369036454685283340652083838519436032460623943065317438757302310499962697676494252261871613474650530009023848250268932724622893973729893606463456809535619453189056961623031390317270782814364755515611876478025900711563374585260871921805900892944276789608407971206945094466432510151330406610969147451075052950714979362406290871168492493320124560836808210976942271661523249264182363499057258163114688856475352124447120139878591202689851742488078305130867434622144157113339259545754284197138105148540313980925959880581188153297767426316240126844972479869801236510192639423931679027971867310850346680718410445625542579384756949138895342145796631900985577267491933616653593378848767093689609843049695948938576000400467255521147035478584846591996979972025017587956512012942610041850348220806658303034355816290496871808370271407012574365730511846622198171945269582408673944216870116224421502516936364509094446724383339788516325273140183960974874164951046156982886875495838783484826893943667336848943373114171859853645280028939266489665606140103083880391768121849671361523553676867778386485500551172404289737569254430074647359109033195390834665117169475210434887299365995528024210023007958534012136445392642759593784399494829145659356214246037848190660407092365950215378261469225347923501546486618645860740868022491313855627202141483576939618082908250865236423258553929064261648724855663531024760154050816286298861861009418578238357547964945153568187827980039131575880417751318863963655736121095758724883296742707979991708719358850967177757523167323276343970901882643008144089385386015252056612333266675194037841396834398444017354149394967389127533774568963287507407414431425970215806369356566542726389341420188263951339034232004780506343837774915648078896780347530302263904053192359372047430375483000333530294064616013828724708222656748242081260049812320239132941881181200140478994518928829187914107990176647509786141014312635028756711921320772402294557960648108188245283345835744905427916097497719486082584814825641271643722854054927071043614588167876899913454836436930342259729098284543551651610326565505892599584061552497449935954908649175298415611611245756607956466241267045913488619186577811955361109392412366641330669842456839540609745354421174651435416672625528230043540045850884889707445805075724272907110663710131988958725813970285639001440426776350619483207784378309556441686686479908676142118371496924032574044874147588390569579793943502783765327633216219061965404779664921417522921030586570920056965428938575151228313815926990858920530214279212382330113651047431431271043678812826176597613183157300617931884357174552857979544056406070937938203826487491986733137376637864646599831276952337860807000326501689961723417392529264743749844040399523355568321631947847708749139269817153871503885219979461927790311368520830278716479308714203712305929937331357786491790997094634862871867625069151141957860613653076677750945038515443857109856212056290358219248941278215873208931479513319112819190921562576511787613368062172535251851420204654770113639139559380613825631180708194830537572866716586026029072274581737741684681269034445337087336007689399944806232378422326553591446941045455617510546467860514885768830607505266109100359355817035774049413201362186730918994482095119195154650972169338981573887188514820325901179750438446181762132568967524743968047474096808824126721588053951514388812690905598288406192340240072778381403682751811220794119405855066660183385941204177141857588404205505424223568225931472877024937805232193758956440137598926224858186313429464435314280753496302863350394298254783542156593463721149843017436133118259650543577539029760567419166039054888444010017297979464813795445595870512548791243792953690751723920729744822616702572238560497117764208724307344408006441554607727751162038581931221175304581421565544949468698682468789907291458042654821790354252554013071502200019280921354169411083606001333099260849528654737933890149748270934548829620110293303877975346434156078142797353509540823744530416526804761032545933035091984248435965679071155223845375632549273650376248863549485175594610655666218251940452611886973820993965847790630094505740242955799000860348583949060057836337003180247150865766338628889130277949565809644021945509167603074831373743556602174984877096532983898458879045504549685890027344471438960714780250756172992107048851275570657042941478892763601280853211973166420000511981897448783771505272485740745270556011545293968564614339454494456827531700579945014605842529977304027203403619956722676181816996457677407440092632481142420439641316237178271259472110562701896799648060780129138323425780815214835533417530695071507990909921149846278579634420965602655972728967848276608867410736712278758870212733553169248485891766096794732049420834784330859102023218182152217711297831233755550683811487981772176560107117236141292075101948983327674518658245815539588060689440627873656657971892421975044283696959056966278925759374970879101107540040105312800436728860216945043566148902764954503306768219451386613826191763850800642892223931648397785832740887169582636237801029974739783066814366127587583957213927219131936667133682156280485840150328132233209981912412931773635011983280565191942819304476807941236249513151903462839776763217496333602663612027214131022000844587726576245317473399808640302700961810699825929985060563425015497805406565135034408977499614660344937433304687547685552340127546387520161287340334932966246365804904876538825120849930032950789256747502627954041909864891167647598535560733056911554404642976695594788971549794337134314780562605312360983183169009310299816569484508115672652556036092757311670175447081013963789040071084576790268245013811861952091918602073353999829956053079411929223971569386631716090177444395975217548126229836404212028747321224542739620619973435416062307769956103810184583529018506130199852541148363415227345208555896339377076431793743354284642938368507677925806332159914036166396857872751211521095643205161724614135239044420966523231366895084299864498630904986403951192291245596919198435255220278960780009158903399358495416461898208223010776277603577585438208170959568365112435892206380074024427710329351040446666724787626753251170370837060552154469243435005067539867006052409264169038713639675198793143462144432787593277073711805628287586331369492159972079531868816351940238159512339097925765535284731758557265550733457248594266994203113830049594472884516577819092572786684620863643914553946436748284273508463179306004764197918207274702547212964664644768053675932256771715985449155393242985915662777383867179152074289101737259927075828466109716837761627198389963333073802041383487332606478283058514809347121228992556690649873810335484184601725659460090693275170104102916885900795020009064014059879357352725078278874497099921883905443492054144601849279914813891813094287297012704664840333187552030158156420133001229330297855955951190277391930826578810205396763967684060322907449042372328361997109023302825485714955190703252357940901111275612860396112399755598391868553167476329807441044314847965603788621324882157567904995246436812854853397601253340278319245892914715662117101566319083161981267298014499264874530526231013713573747508636763837912739282261593214508695095480136336721347406648324640249965091044462216709977064134521953240848396395982638277652294620891000028391619153410336070411139976685639694297209414406768074994098472805768185678920545652585513223796899955046963227160685339233474785613552057359717606810198567200933681885391007466783859507777830395101985919611390539200951088729666630053047871106334768074278615634750320399725223172529286360338665025036481781542250701070374634464829675979458269884230304145823041356317113013963347800924248082747261575721434867698570071240912492659333463528364087430160726672239068518793317133224624296361040816890586887995269997751945516078729956644981341814814492596542895400118568636413164770567658405160645587247808176798171619039584801056862437551126023355599396426470064526906219042967642027017770377844645550939480579798552112540225956550849352685257818433381099901514276467814145821177157468524043161108277410480497600429277402929557322785619258564489811743779467209124714037299785398924787879477621103943980646730682764047096784771067708317666118224844341093071145026944862005665270885212965119501735995912290388480256532934839750939848706733406583732997833956195690714683266883379124036366301048153661945973934733209347878513578791861244124789351269267400613331839088933108379791048708768674817413721352918900432315143639068451603520201051722074003467015101383921801999321767938136522027862160467092364346960368371658929909977261007558439281777583109530025346446395704002604092474925280287854747488572918464536122311566510734889479434405440877779762169110566010857629763957111517477630002759184964549013892442880538458719457744410240543982703314491094251255774533540919140008621915520667591359826154349249197562428732473521609644506287283268761166209814521362380618691774795237648956108860375342280559279464238379562679327506926763718535440218015475520313147599758685015687494132948682413312577069443168835361659483597760743954646776270660732857263270862325507924798100306100001093294002808840567685343728543672112309359768376860252186569967028132445302270953703782720042578276033871074855955593989430501631917319016859375045175818101205157100550032536513221150662034953368056914350576982731840888861834807471071323680240080852461305692148244306269215599897970291535078092182419738405172883497570297341126934772165630875867082485079501345885001130050319720522387046020028325509528019681345700855007757147868667138400144229396824249700851768166028229832361369717084272449843135921665876502233439014756367368692936285358168163848511210869764519191315576880802160650892542672772813280247037217046483199737678510138263435385138719328823678741837314595113895355949350208423965421773807898003078651296882472525524853406531012798229646063505146254913838227632938687707926442371316069740222831286398741784079433741378989841239135438975914915838777530473603292658744404976122330923241524838062320028527577797802895789407615039493174904820722476139692853799709456911292355770157687758091729156363872931978075050428469300054166727084634172865855481205215546187085821768294055177041214314044427321055113339465104622058505702373635751967990512070813716972501666692045609996968028670558408066308452027656360100237573176662778225666117448651553741891546999468443503754155402903678994743932506640243682518665133376860117412725125604572159135059872384204599498370767357091567123268400787854256530772895327744182379750495207300091789384829703471214494005830652390854612811631455981870025531241024779251707626206053049874902143239124534359471146588898812002069094405036205660234856695247328813537838339528660859518733840206581463658689266250393834255095048970702235080888072184420718196915790108591843712032558302797776253288775555528103906708553211067982163411866522323723313357383595714726874390698895530106777543479625515841828317225787147844968290451336724431029446676248576282157008129677738929636845308770638020071965800809017896875437809821613025956752026738147825042373470304825416860776601495735225999676578982563358116397735742658888874082550207002822240264703562345768255602813800331333385321140579904257440203159956851667715972677310050689824392335232586497017254899090345800725621998605649965691503292320101605821602955211193045913769426972737412994970775111154460877171825111700784031690976273402571405192041269749150408740536974430964539415691559514035043468027870045991570506000433003614820014008368899754857331027116350903795248639018781979976594355292251289412817047953436571878832755960513781339772765811957694990344458331139704944089274759011287669382710548586970415165470041492628804365499374319972979635944808839444204350510710837005414272277628009079369005282661931773488792333898218369679897409077913813190293560465507102400868517653501097026272940174075042414514202078822086167906109550799274966827436816383363361943141850631071174489284582514695169403757747452798147591482530819764046310151492119121182574665354062519527077887251417032262804775704546459731847833117183437179076445493649636401699061866437721271161398381528897443092522276643262182856435795114526118226771078491260230093340673489350540571500699299020257383542298444826630945355782420372969574700543851046977188317177389753014771124083329378342939842291492076487037360477766766283624096568418856817349820373258139131664200263850591441452482055014999352549037620536117094322883803276603382746318672500756845426119491775258296796124073902110008576295162188503199108558107179334920696411884449831296953561287263265148661450304541508353129484851922888162880646550270873037849216557933576401838857226070940871755856853920399974336862218455761437715489900710399271081769119958348230990516514180487841818889411204625640028968679514145276028133344052048600799604819969841069192497861903956907782552515827989335934252336272894685007670375092687396185677880726012643003733147862400032028376313681467820374236697461026792695741246091995172926759603588845774866057414321150512296584781119548373697802182335761169288845290493082206596645341917000231642962158034452693241317682349873451316267804530516324273268610204155530873248927706607844976318479720016686384809391456573207198907459869519206120280077277109144599110322302860576488794882637572714724568577747554372822910953293911827165697301603856878270341967187023776465020374343125035079128822670931949611006017250948581546129071326546150031216961786134749359947118836538499208940921941571721872322964427646103774407953123406336254169189799520720317408213710907511603516881877496553782752686023154165945345270910934534495493805164183013543770300266124365379276018241780136493996634964556908911019251705499605900136313082296449910995296764206666461848972273723532121969698950962900413284706941916651543075141381653740023628797270204064896194507488365771267903531711674932765399719582324000313660898820477395037016985280642350430033639188664540144330692072279120960092648356850137020850054341099237106918951697855488805337864633216053423428579320582770737705157161123184008838951721368126275630051658328421077590995841483759132966335778343549759323687742455640714090229688299204967257693836943099109612122487331420100735132750717181802245405145942440598437112799047292930375124294235902982981299229621574815180337592305605685614912554404204395880576431395042117407736009989145474122501493032100353765854072186202640986403941905762350762756137862540496601071766240665877531756240821338757139221807932804967505980984085843656266605203946735687268000152989550929904322729181315790224346943069770882427140227004948125461618813576347797997827846172212534816480541324212603611608720692923713456478156351933867247738224165247234417498708465799290634244717360173143907368402490664881143326051587720990994199547339481878632263460190738342758509163292999575078218671719184954828445861079281677042602312712295817455557891283474033029829009778369527238656369811127264889755932016496642719896237280830066535795334543231767124100439301335525941717586074286686465610112164407770982386250999160668038103531082720952252901650756012335236592260363845093505814827389272207415442360196908261819344640874842631571615491330142163080453693480013858990107734686966181671531044033424287921311813362982004727005193859450453900772620006005536464569848540672712973018900079101724216013673467257163906615157790259141407432770814219570137238093125561185606317908912856702317571789480812260017287556145039504912891443127615102504251518249848959370410447792729049855032090337719953083852442387108820360598884085969350327212946141948858352578677057706347554587456620549955554547830422415323963579093718524819006669776749638690226904743964588245459033651230116027036773031896699057117243215209819371030714999769637012315999930700055005512162345951319422820194600270852919523210869413884280847984695814447488227752093249089230444724076276757966373133290102992819796935049363669840776634028379139455319593375395395788677720116222064043345496299796777945848840794081209358893307861978827660823210038835336548806114852196229193205635384061719935250069108048619540176888261369375467012754835681504428352870901134112029208862387465807590553696070842379702468185728227407124084408301452186225137519391227414377452217826298098853349438782125295626700075763375258468502103885118107106238785766629087106002233287689392930913624723105258228961357984244669811805274511801885401654592724729963809068951405708537884427212435378684105408056859591050780266034400988395435182490286039493014457951571165427576218321027133965221033495403718092378052715229111152915254849329821740890907882607024683301957299108974374193681858522724786023155136604560973827300681753643807184064899806027595148943310846995371476468113943494571139505510100396740647020233784868058187733377680268565440231494869411026512610593585995438958610380879990233387832564952620302471341796825727210647385344702322749661662323889321024175904333467577222900900124313293690985335521825739748017256095822034099137110444455531672283490278070550053692226502120645814334734489089014077020896697743194255036560093343342025840290390738822979526875491708702968052014448985369424516588519437152362670988516280445461333337654915229363010795165093309105622354713636579103580789536882818986365261875706822876137003091680827664385109563476632528750244141052041482785903319595499106079661927036819360003385800699905562488333309928031731893078347793765802194703530924881355798431186773677148245610742944506841038109409542549252697185087819650214348645460174523230391651115485907434640157638849478957033097538603532163162266872068292171825755181187995783277362301038108264116279275978640883985362094230490203135876108234990659836570661773703161132304843521600759475617894257617696447970967042894594766491454179688725409476777489245892470035003778547330587554357143036149585521387331308638390314153487611048248505488844138092652336435056475737302002941565470540543325389431097389344149024895925890979002286124780683235986614036971430267334087985879802837076274520323386118240021827952073359112884906317451017073132258209679014304387763359946869500754040548053668717847384855343416678227711332757280970491692562070606928277074446325898897146576262107457933796413816310541625574766288803584831441448349024740904925222860192823579731316580456169824934611141635643762143976833402290843234488500822839688681560693384728375171560039204623960183636037423527911962068488868795413161233387689093224727086095084411386928396433371062416377647895182196431430708219329452588348020779092991763712731360175566459760687036910553268589578808980569292703687840879959940679339357958720796241590086500471124712483233644985517012946276199777254110942804340592202173857094857695652514656765231786706381778201416720060916428125120502486233708828007127768697277458551802304001495058134523123948754417604424553262753566841357040882647003748281633571273923623016040882446783717639407009088459763940644198851991134114032782000999245419555483346414208354959076585966261096726927354690449762264811030634122918146936533208779363424890783561802833250988035322271745564195295963265875843492049708010094159346090861686023494221902851185807195997786246134756689196041478311524470742885808490252672709203731480152426384058290602705657106791145567503589225323366701246150024670282349852973498730500561606421566426334106464453131107366872809916633120100534973991313207572291067935348816453047520371589951546753861062666588304184551435627446800156881701314049757013596238923938772219708430544013467863570098488613688602976018391388842202513797453028975013372551008152175847296086060828254509507730691412941167547528057908746475353266933883063810032678373046652454727486665734682812078811245680015034101296274186997422708137616665253203273763942982693185352901948311239425517356883490483750822636178137242736849528442806655745360337883654973772643561176017332981736167650288737695771345560229851288351423854595749673355133326732888208399198316448248819427181293838394115089414436891928701479520764070427548245031711412912818857043010397794382839122102246850411467800172712184604953495275002675079646581512173367578002175253542702324911221533831393260366597779868892213535375462492733244068563331336774858396343856249190517594837350209213756713170085209833373936227373291653060874180312570688447256609141117751538795010397440570918221272683867795003864188916345944716897793334588463322464830011156774636634825219550677622368242030807763234344459820961084453765816093454578691165430256739791653215151934057643877293144167849191224605046603585176535430932791461079890674918563272285139369875362433871661500932989179883171603994020099254508874441387375653170488871967192404233996582170014544150231053402279717442659065609801907108530935420183402424881257784132255110087072785467788613958849366507340177432110608323785485959837727497819183585072193629668795755852038590663254118110157339061170426918828373364968422348947525013728713820509986102733929607019123338827758830903980002548467899327139072245173892910387876242410807136380905849494883845470951192830317081307804092453829951510825842564979123157455483880122682569139421333213172386915600826017260133151122015689298687702680184164523659525478022058784240822420531117721547035481182577306664274143092949207224707837103151900664299748873880877311170651726953344398792359657686505259354419698725300617649999709904976056724621488635764540079633153191901882479748463504570780757612387429506056532887585553135119243326306526920600740569346865707131379895338792595229025490532325490637830133377893747530442294916058469495315212776251329727855310504658129188189466183804328457817139855541121246937945648254506383597026980594989790334766744895609076978163292384036693812599571838337629424971632257143468595347086726369529122474206972641426726514908465799747818061831309164179433324797308244947212756025417842694976832588394906377432857645428975655723678840493024097309859442804138349448779425096894333871742891841265772834488305651604302237983041843028682919923236179528670559431368983893867152092506932855151438867347385115030448832020035413127517550075871017381890421021308705856190569701474871014504319371213510066010062423783785203127457025288369189007687575586901334019100665344346696076167278677015682994101009132585169809729355155659229902441834147390616593970361889908062568742179333770752302599751751752390859197469438420434608769669128807577527623206455919791733371913726795028404629733878921748234453186626396852816646171389018779440601129312764812399530003295336202029159245593147868085920049831328994205764010805994379097504945685238357124473016597962308494955208847939459720139641338271512972586751559525204917869632744324690370518864871744965210067756692244002953668506816096010923174500332575189711136473353419016109158566278495847775419268614192008294279469190870351182947993685213506226292848317778052949109493763877571100513225058955264227272566949249118730994018535425070028489664668685610542979425697329463026525111960207313027266912624472348847934835013677829126674008934737823688766781438958441483516211979024557743471303187911121212493752811392420751787916455106458119399919304885423623360680920218293857742862438114080277460673027452839464614035935075154202213619727412182235179776375830012905598566994887602618354490334506870868500487896316962403872164983951280870478844696486312868138750513837746825111540336405766131467720798905975001335435028822297736360969751552106435750057247656727531621291413482743006199840519256932535482613815045777214783712659758084712981486794070667657708547358785016387370324112366971992640842222678424722054495993815236941451090731243393934715369142288864894212999952442963163877941062898779560825721998303678554430432733187594680257398085128216823939370775858708610774541235938482638841993120642550805361216566557048274926949819436371276290446178976266581893864005698650607305844011995569919706455924035391421316432760931353461201406882072538958302645403498585868377146825651516917788655519163010799245042755085972128199205372892962871618737269740969257655827982592794759147443832299831546587729580649766685726943376136069872146874262008150530194202987433390144122385956252974889690311712389267057706368495339769614747028920750516894906176866276774764222272830132341633905207819871230606693039223444660252845899987244940410323191341920369328045397000279736064797026649342575131452365909699954654058361239707028401757536243071750284948098106147267293460358392917449307651361359607443824206196825498120587379020523531365229462343055180530037303244611350378950604230303475662697523784442026628688145547064842941781883212213067986165663181084002057145000398992540930495561494082085578584760626105470728975669885597153038686342553509940644569375302730190656584936814135406557433539594610807962193112596413815457554921590443371586053744802515685043369483209045100277121207882760904238352016495549981436560304930803160288525221542248200096701002318289038799190149790045629358220432575852285985990932530313795347915251169658313801617249355836028219572518044466115096686630343950071298844858182153205536544402164219487908606293150082888491031274624949945430896343894214599487410794238212729409072693134613880802810681922410190330866585825974125880693262841267401832841819834239052384698909872194305811722767003984705512861412702718539630511136262174155072442560493798969116990186720262578718336368209046105195805125626258297474046436263737084547501856442794156816929316857917695894818782483752144024516038347012370492211081379901518219600635180654116436354752745514039934727282649212098015025816148883195782433862112902237884287193099035577268296412506708565158076019354355793196718440929166689997360158326961062241740453537782477436602860261922333000862746108142500109524341715428293735545140153248800498870382352152591040704193005091718128680060455643799548696770664933774056949049502007478236914904749280679466982194971975913125949166019143498375339964789249926407606874014317926038464243863036351698975774103928645825880050660420664627125984743536727980720074383461993711421564055270112680125855394299540417328932486485417738027891864253861279571785206876604960020407261053734310231172593700313017261523503342820561823381686840457773834880737837659558515496568325285430484848003541537393120961112557778851638563492656930625997435437068782832350064291041461787124560144072815767009334978456104572839079265336930225469400334070464575700040316381788241002495528628967535171278215280405236319819576962835539018958471967325074379829376643918531516206993104693245023356847134891581954485916325878690298776091429717743593003887833066440011476886356811529992776225492464239244184137725236735390650181153862707810415215678023304396210627310685828185939033239620197406822836598301951760795525597206845173433024656698409165150495849684095010316308978710456373944539455350694020932018913131782652853596271430781167050733305286601479637438793411466681375284184202540977285880846190980764028883833951815762594093023029819603995876501457912519339168668993853683451682041173804177375481601883060436112920544181935041932523092975754881896246038429781140609263521081638904136681997333599413068784013679404416215779623525178480390537047558636223741049225373638816807601782351022593806823872797879007767520651266286078880073882394694277721006701137456659166302258390672649050975989697673650119021326564132443675474489245941125123396948586519478289270426467940047934374449865774097097527249375379158579098465488261186574829788290624834429905475892805681315425220528800752346048038385371250705311754056045682037011092693086713015725947962682959558553406886178898860840378344954224235299579146231822618470046141580064034268127771733233470683702650434752790908440836404984663553080746259701275841882068379708754927486181601493972451027382217278186932550766211884446826534231213181093882546311609739095251170886101091321160807880867637966088544892445076321330549006169755579014580839384801779866064343195528172585177504549397206640432988617077851008695100580172954611556493420153554557570031452913032962013918168990059673707493553729604050953038113762935700467034006238482923581181118752360496689313132569942700462223825042108333176076125102052809425434069782309987588076742566132901109289672525485487770476282135980557281828983627911000169794170873472663925306174934766016616246733229923271847799904833435631112982977657939405568086941809376157656879112508670963825439174422648404699008169376561661853306479988835134520407977751777192588438898280938209714877825785792987257145340679709700624060415373011330792421425105017051956754414550557275116289906512633398997206999060841875967049955893928069304488568555106968285575833560634332033688442705017893441703690474250406989091265859940286448277764031550193410755075757184861627666503182366762956031084118269383351473300048190041109477505271813113870543407393603068344160522908514525591760891904532929813650126488689414687503852433656849670260382088591324430819204038417437144575000957404423213623730528024777479417960286606333195954574188272582072051763765053038614608343340559017803144564292780681587670526628611366310497597642949231032797382738263876257096160812115775397846805183119991755212493475570976874080935775643603676422392213360678453415453446839426779519414450860065724424779965211054331303014816081868033852451652197096376312478632964038345685637931675525399714157436338939215514952407293555171606365520045417087039482627757322296430882442508495163137997512847347934849966578689803455811997557384363948303955324667738294597790112180918937694981939909859835921360705548724437947907751958763178464605454738213217407708556720869451163993904724708819702511497015814608946807114008740300064179380841004249315359245644501014798584945307867173026732855262628835918516205811310447072717166221178352913072384217485918527375181704179940744488707779346859227851555520484054719252234560057747480631635612772161391690851473841546575253487665216742414057442670070795415555066478552012217275839863375374066592110740693283102207730593185082993536151084212121190821422337357135198602314862769961597834517720197426906945812980071596047086903036113082095809385692825061882040700119283433069203277804562573606749758798102810673071639822307400217256752993620316673228474830973011485180008190824102955666523716043600204156957144271109076589854636667308120109348700757419873223443297279393004741693725173189462083308619148227879065006261895669026471839726527375155444004226345286397749428509344368682641821860691347791873397958706826549705224566538321570251313992792638056511084263122453380511426251830412322959470533199765949593677132320372968150400826515231168690676099581748801442892658507930161201089513480307722073114156879559162214404046485165279794306243017954049447802702018326890057915142969507495232490313876424218553137627845715109002514775219275033325220687807715917333543949100391035180076923296444602793862042373652422091056971241236835454450877326151845509370812773926735367981295575521355786844376061851474604475434648345625097439318350787498229051222617320414079685465181121830074681374151249247150625367308130065386797499803427018951234479260696615633602681456821126977445115577751488747626380990311165573257936881489129975804391708841160644641649125481970175604962011882410294417816542266550479663917943138998479783982059697126272944957173314448726547854931408163658854965043395725163996499052560267481560107407222560976013542520426920186117740202939852896824749689293082731228708565658858688828811801320386779867160809431262489332428966147886090812536860017970305417642748397072436451133896413708455993963905235540652801233860995839159530916392639912509009776517628296073240119135300534240060948053830541160432559068400041114395796279546792355717171925811773869725820084815113920209205495991664220543775319257427446740900975630042702019987487631028076435492295721535919272273784525964463999171099116325645842728507995060399693545534701279560116845995144398860915578697994760335952436961185006840422375014679401614818087547995448937930132838454881036746503774423029671998203243793806655582316417322407604669905784719617936517098962677373462438965839797839340355767547181478467937331605342931171297456990065291758123880687207352309434262043865301365375965223707392029571518019071349338930196022329896514945383174400889519077130367763226627272158017069120542579841309423283212249824124010736727167032432190643869069297553485544999673226283973780834875478847742793953126187617465730291875059090960862904311006251964899819086406430438728049984993360516532002727911489989756739215461620352559497034282361162514997749493707924001281047241025631550343808418599869839811344866652652582642791476956156265594097051427132428818993993047965203403653423491839407386804784292982567557881392930383426086306791314450783848098506391721224078823140611221598461719154443439107892808141755587231288684068330459328415795197546098581353753966082448384357579582532565354534307470221564227155477828826101729553022650851907339835550814858049614578556723289370111973128015648142053193601689841243403101338717385622174421651758757695188929572052355572801445088080588857688993379365915079612968775323512370651783542773501002586125527731425319861766300661271727984515985137009631412002894712292864698361690000610279615836967160508924555567149450190367245526602851878553098031877758507537552276726414527880420586024060391741317092912345980284086216489989536522779413962873474754513777824230180862999658800225987173581352931148744535277143434028769092938319213307122303699131697663306573773021610218589577197448027485551979561606956391376871284355795500943445181113098090778970272407354170556826212195597594065752350057767655801903643660920791279117006392083139650816371977957524429774329049036266534357793293838428409121448341641153807331436851258347285936588224627581939891162487460163868512332926348622468787605901234196392638757638706113078405266299425157361083260111296237916224599550709004444563763935612358578744888934629553476894468151779232283293254074825990602091580481425341124308513830208798716251236394564727058032088955835023108144081187177331926806686697382823053098134369070530733850998370854715463905382743076169574157332993369892547706898802240126921237402383013564194695250126680797572732199418124799602008026509159034668844050148809050432033495246181623504533366450059637937746116203441740819742841049795996450896449270627539934298157127901220321333122149509659036866131221974130382061441812991953820333440931953811874914602373056626200439700932155805153470461001365552098917214557228492781134860737286609317332109655862296407097670351385004835857047222535927931571279545467768568175837006501459274955904531938029668493299017010735261542015855360865554961910969882284121677077796987564340289558139399235880120160678551934625110922442916010248503039811646137240056150973375570973961678404279535758606481521993191152200121830413174709495040234530189010086686696512165852236555432332503329017094936926098049486280325689527673174812449744396739521360702656834193425991046725131667587712489140660618766122278343958534412001935247336301138187191574148346968008330196617478992976264204327278952302615562320202188405226598245499722101108410631583571182125481381644816650948645248032023243855867054800422510601380884515944409160731110773886909531772260203599304433959979919069089066726519794790473494515435824561808245827407688651671048657921111466057730128636488730892881124158984624224014448961450789823506862934662067386567001330577287948948972175895342359279504238398074244713420904514669278296126747180298714136643524702391378150516825472406599797050069775480127434403842884935732473985216641770496334499773574807980325405745499482483432345091451621935161525110522544937781028756902620594128088565439533122887508256450320068313424047798027340480466553675491600608927268625529252856615728349362815194987156991030397108922879471018043253005338066496395097044901381931319311340209115956340582986675637418566489166771121886997321633857411098552868484665094509523275636545287392981135502764832341640910888358030986385227215471112828088209698188339366382346762940541585206492302250942096468595877737435092090512254550728439826610356264462566638295261956289424158386363485483080915240388150565551820583412795720827563661489991558373874892005488717142755311913471063656138757981085244555322715091277450388937046370505534063659022914360019550335741561741247064965227709859646519954504318876226260921841228758617754104009723135700048534790122201462360501981480634597464693708809306296199239031061876414759007064758140734185401430375369028479255415056303996232424877148081572869214428515491906396970940516654756568190425768942509473305971208789727321160929275451830660524686499087256167652649585977778287239216701789896773214469289957527376291844322200649442981418415703550725886619961948802077420669651748374543751338301513061962431837563468468162773571275028523602869283714093757605528242665728205477944399534273043124519851237073271929633668131295735631080627625975656801905373294038382332460859904589007671069934494328071312502772852254217139351040764785827617858457920250492419438944782773969891816722433024923907439134065506721149673879959494575807843933758074394991638957556147890125023705796542539610943999491114721886196712945898067152447623314948321255602980179494500893738174996103512586589044237149487438638838806973368583616448358573531073141156806131945130541134476224168819861557625368225841074252255402836365174082533219185882864115854683089556431249273875142237042769372689667639873976322306219523186591359020602346782840652483464361155227275245512887089086611082000404179038484416405026571854261475162441598218605465446087225342883301388137062113665498170553167237211481208978110986317946606051892577920545802455483732401930288375930758632946820306534142952500477821383882649302626697631531482254386512760236597545685447722931635410785880848032253993247699400435214031165719801170168365377732270054481032859263945755852390919941465513478254633678375695491227329418792400267975147415676977007694655284784420012710776635563750307359154369022772642559069839811888861190018012877259541160898074493104943743459552234079529880384367931701992576193462660956260942541413237583627237850692207639564322144590582408686229222417007256390192275210940454776674972853382389576312125821380082771847575979092814677364529487332669003981022235490320618493387637821302896353130182826908092145664931842420338667579608515443488337501199796535528024275859147911002340575708815452890602188500425419532482190271974938343084231441081078557427003424813142756885120232219055153931112151114873247378585400741750019233196860025646484532894391834146141726540731272534190768077996422968584915526032640574998628462195778688643317343337854931000471673458143671757108024433869857904041938144353153269128079915592306483871091502763850774286217196216588071163912547566705905816600311550099926992501052482262101264978549299844527058914336834955670549156367427777718327275385103472545467211632149555240999873244634021662778881466706102883520181932890940624948388859194005079100257926889890445155236404329440827911538559210641455579873325490210108767614208045735899108954885227730140589972948564005178079795663180413882237929424328701824711218425660387509301556412792589263888360592723081129159604606604548468479150880009892634543742171774335136704392213851523152270811805056160544769910141624019749564318296719575719734449976420130761095535799864581160813790780448944378678535220878083428842916535534094160332702844289102023483111736145508032675173337489144094281480230181094251240596609762316059227289938209597247640619655176483709410107764752317453701039769024404910495511150954291938486028571552948962228584935364830363469354201989094863177674368670547861283949528033403820434548609625846336815115346049322400770551215741785382605382107018569688933584240745634528101524598537255649445168792631570853630958049931831172218533350188868108285625024066255042122927793012836371333639034274061934180544299993498142452277094078489552446032389177091739816219579482043935876213669618517120927282828221213775473574594381472938525463019300614971045655522419761564596426583904210735444513645865660597836350723194658165805285219763599209958830246789157249432037082397343128843680070033026235266314587388368346300703329693900619995934703248217854452717609243741889534079914818161421267019781830437376070560074592404101409668904572010610296707049917571271827581068310807546454828084517684877489435406906207459953638250569305503975886391638297805246784385688991479388359858729090574101480620576750891634610725257090741895476441263413962917544242814156260073194025213075058134058645471773634614128391106456155283961933814589901250755379009572408135175492942267684616076436440877817278717779724507733153332690450848442826464354107312025589375199672513389072322314682593234785558508304464793700128500901640762684885324760677480570356632953739933069451233413713775391574991802446602592544362455714609623254650543326525823460093994269115098384308058624176431647065226617999606962676296444783884975142921039969091395356805639132051054307910864770841491685966321382857233299196285040319374870046931366445665797020061688889450292620339582337876771831306500527743782657568804337368781684576811018497151484204463380699790560020459766276954195864743030311373377720906990662510092440633330681658481945740681091824991825247621873446721586185404777285228212868950240904878867830180007141409572597289361187263388824862158069325261646739907375167934160684004946518195190910693621760816063377131646681949142400899323422344332398330250480358479929305085742967479930372995776439592911402180122192403792207239483710912074650406830246200127596895415775476472856343016037531805319032804113349747664861003572533432605995200590655747208632969617242141408887404826177635990093987557369939794189105960927899052443599108293363406591858835314409012523038141794432424220002923211704197762288699890916927804113636618732500462837496572092630473487863561714570974208605227382293766385353471282267411804672961148571782598891589208658492134477036445025202390384550158175713838963467003007297552059209537220767908584452556390505754091607368433637586849573398706727922277862433229119247050006388438870879150815241272245147363833306216177223277446361439542498502968106564055346693654487188575867160486317131436041425732868634870443878284528174831301621985338819598289063047718174219938372907922766307032115033055829655841184761429681242865672694942631324515620467743788720147476209979829886775198104980321025717039605420691522276679277121804311812379805384745904568805957656608895957508613381730862616311862451859900226811810950829210155687997576594019737519511842181531941535290727322146282351030627636624324258106730899988062646129934522980579417601121048205137828560615736238073744404849951419576263223529135739414078561466956071795350827192701977544823280078039233624258519637751201204952898518873460355176725760937400481947108826531670462511069968282238153570046831988193724412889046889533669533927033201942825963022148044273216852412685772271328315360848631242571269048149218712025025741490307593158308003901883909655355955315692212962518139452329553799664364087367746858768137246894007110234677170788682736426893671473082157840121169661999238767061621749493250547058567558105303151585323554709161166501433903161925134436710764386964691808882380470539310570311675533575132326135751302530622912253135549202525944808562273165248758073396961397192877645030188718401537651845777501625709659200968991865695113332096982045944389961541154139612045048653696611661181492511061006251341961855999835626927767711608083062850917753749985875078352266324519813630191274632401137786334744919144697251561500135761137691161849813437150612102234156117120541118873666902920897656225129581671239609780859836884367750474793851933724629776161515771602528114524710598193164223664548176369997022770569185073342804610377101973078514402041580429746795046054857703780031092246123701147332959886860900148165310806871281246577804674999058140855762531630296035322475788095647316078831944480005737081511079817194832433673930792922786352784284346676212270471696842489137529440199902626738299814385654130195409491855833483794290188300370772575996735461327835960072349623368419017086754515507827769894447572274611252088474416719224224340630924103293843931387388927822462974670919238195012117702810467605496880322782942921222070952923660291821369008615247952185599269962897294125723126411799121398016280731539931487755246368954645841701671611426623640226521514820081564756383381437639680783843464675339727318528908071644936291486589072327160044753590091125062833711822945817444196085973828382219821982624026256791316410028979795923130320523635755371880278137797827546615408327314001965070161682748601786523012872395515332887578480017333362626594141832904466879993741709368043524697453145934595369093497200787086673334941185547615846489022378529374218786906745692346485102715223599779620569318173517981080475248090394792062303101374296815630760689524553895274054046053382067376699019705065798475688403970841171614125979630058976440612727076392612190371193521191272452457503242610761557746304509985688463774860713504642655364544052870164434853065059899080403586650706993149404154246958804010951082715582060153542248287025561013220198937783218219833822432401547542487216063611391484148616312623676528598431648589803533482217250667639817547316618945311180401366091096037669617082514810707544891998061864954507645341140014690558058262326650411523926874002679591389447443395789995469335259489631690847594476115205881527937355396116649107235442803902168425304808062301775556284335672331372895453274715008973677044863126873095082652779059160531221725982520590153827591593503150406411239232452713265803729625017423742482834213117046812282319487091617466552142527724663715739951844124585118698574835059882482386035550981880731636063750125616372867817381127885550814546774264075649093603125605209712242282145476819965418102760348013810586144762485465864150720913449993591487158331400166770408030410858329110213778426501512250105413442151085420706725884452529969965135018369323903340617448532854431560633473019537755675725482896481496435248616156024841015800281020456335577485113942990440345062165954901154070258232225153364458454347655141305894440360946299232155827447736874415285106353105608265666930920463087349146279484878038541565961667622839810490301258838332728196145276908026232354428556202482206230800442352851982248800172231947429093695835420489522610842045167884291045080086281002550767341772035218093584667283664276998075664284649262919972206563517212280933551636733594128580379414849325656534400026259953569520082521721493369929882155215295011113637138817248912854443177549395757828963246663087662661825617875494580920246361097386628599022862347093502656118782269245839099131746963409390381161502093892035399383168434997567301103482140766820793366502705170543805976273643838066323989316453253523634768734266460165046005384767830491489647570402159659061733158484179884125280811546500297393420745685572353745753892384976586362405287331378169088534618328995693838809804400737260588716023320078798990212529135163939761357815989122752296270879155399313112471965388818521019465891000246303288863645932729476999350959639790542042378048844337239581545369844554436516796361069793593559863039386655430751637970668969934201798622643240074800702957818158117618144119889182883347670949075052186537359023862137240939636839833417434177207034441515448392154120390704875780927644586999980757186298459649760728561924716126123452878184613941221615316763266201919481210921319662245777283642380305839676181901929924652033706461628946586775586766676422457590337556531792182343808099792491850948646196988029258449489671860191926729898536016482969218573397219001814123334618517659281583139524038642984562476286054227774339168939089268287158874539862628621882047423339591509779111811874282035379055714799950367576843785206903105748502787734698120016455568827825611186595109430845642672030880940591984544294061214096389259694859409702275564540520506351970854888748275891973458805239798005462654332742539792298250684803657903037801045297092108310127455065085391302632415287900672004039011526974014988353839310801927319117925822613983352173010103186733610044846339246678072604079038524924302461285121470564051529261231741593654213503923693160314298213232269292891743698363205109433743362913462664989144785810404740538081038724362811626647075393448326381845186069922356511123946034549388342466444647621405571793827687764514623833677674985687048556228618946451609367626816633355368975267543172871401883609793635104133476247615101680360434524738732043464735659222249033091384124678407552764285267043666975552816086495152665590134310579171163326689659745820311009041710286864793636970088972253194324396113646973000289613085683708957550757889794889009805121902704149545607559315066162015124114222276830742129718103307633170820247850840941239717180203532581469395073990490640199185021333044121239769804127275093686165282471776721508656657979268567514644766025536578084347466987990902366249111983138638167422086170106311376060372057414956927540010376413194750636567539814695963544415876470541407271447029686830192738443959225810797242459897380944618352877651308771322081608512078758325488159982756989950372597642501078510846549166858162278510221084140189345261094520126728018986116909447361225814180293529818925702936587260940003053175004670495178271034072009540204043784953825706539307875165576553131836611651689039598950835123071159924763839246776360733872576176787159093829542806526507947543763081199981555712428664546697542476993234034466272769386638636411798180833428575307921665409402332015797047297809189503301662629623357686026817052285117716744589326001300135986640764749443355782106606576642069105055899035769501620000936898171538357489039435572565990047999652455753986001696371919510948239855770607802900786960227186271257168332749955969457758404087025986891184349561320083047229367316388328463532256728796658235259131927765735816862501816764023496110939428812456183040437850451356512034383271351944609268446523426428047177159115520496905067566769700498747525810617418539049639497912223999220921711614248268432143341711203100944987665407144791929895719903592170495794929852004105352432792680630799571503710353789063111572669012774148027260883305311199963479171295865073434143115157723676822589574832769699313982799430334966130048345166259957282869751429098012671390536102076925503333861646917609050241447342485693506139450675440317784793202754353041058532268013281720148034370189836199369736219648539059193875924749301299780927288353619405928852870928828529317957920656392782854765156646802810355608100611334409781959559201903427212413538049962829969721912436717168984616398208213813436220415662337649632983293511699213153268620689114309874618395992818991676142684196195494279095688871260595434128828214236280073412044318999220743596677337632000214181573520562715269917935729144838207435924756817213909101222276212637328124198965752273664859755814927686517010585241517373540069689507223536624803087441414811661228227487146876109285728191243588643206632094595754400574919912249424678758595820628775302413406690057978096179262787581920422942174523910067036217994537219754125124463022669407701058601850304247926604753089356366905371836594154742643774488492459343054199274731218299184544020557340664982255521121456028615746859000304310559816559203674843896949613487474630742443312565657087028047816602364297626666367173529870005241568820962162905892340868619196900264569782789917389142881220327037062124373077882504055657893100656913143825614944358832548810400820796664752263914331756337719866394341787402516415500322006977260379576089452842208244263469915753355612368519004086591553147123954713423575155710391846401003004543943304181059292664395791525017583496834788323538628333121011312370072303571767404220107312824295761223006383943693955767998100662296684567591050274722896500831617761335222232139966972654776579234064123587274442906950755982888250593174389304683924007900635305554103037710624222325803811862380178877835808406636547797634748699604124837283186669162759799169702012822710799623898083050295831428181313022318283755290986331498010542127843803946376334862887174127536001159580398763815084833794083767295630700148686495632500545971291790754533061940152988667237861080943889900604294494389120528252250649172469119815558671998805760701830291997160693157679108615223795509249525362965568973973970202277381424652785983992122654662830628658626564197016631200652637066560028198960242652541935800244654687090013745818339307990007291457325487324012580307693442022831558554952412585141493173446766014802537796624787110160330121700557893761126699811100262700059814468691529170456715036655187286807096804484273218699753659195316149951874302141572320585891892968776701388224929640241907472884995526693812411472881721605755731553446906332341163832993471955286378070935839474060848382191098373110377535700339187701665950830232518574360287373229607381783331339079030074475608056679101434449786263280029051727286254136789714540958496387226548220570271702416519742188970530843028131508671774733429830481552438688635784332801860323644770891237346367044929931934799407175087641299338726549186559378759796694571750230395644488950274894318472993237573066312348542978524799152525237226727542987180517230322049270459676543363394105381029975414255799443888141366881662455956118286102753910187463403491258623568887917085272720340746847949581597341780676566434210941149576539499512601508847291456352688213210975266692973274194218419867488031234499281468416989633059168619076949816080098952793446554317684640468949150826886496957002266480991592606406465085294135910503447694433601217795933361188991735505896392353971104192132526978899772917162632726346696076334979889921995690659825105566045457612677162270374327443612912542897297864107979898200305744641997251533567059975911258329344014044651323015147610006272985506215025995647592937909025792027890744894207421957082114803183815659816489244585310313697482126438395778243623123402491237683113461820193028676456323986832831209556470427090560314112043316509978088796464489309773379901084572680134498733368186998951393860611722261759492430749294555902608216665800457306706413103455531378937369738983591641894779159416553107281142333477004923445797368285534884813428696574877900458983012922054617353585868013883008741946332799671091686779470939568495946093923661947096527236969181718545903236573621830912709220249189487767901180393871451703870943582498293351457296783489463452709089084702173161418453704069988719143739606085295246995039152114132297927593955513258440768709934141799582762650668611721661243521650452297606277929947123002516218844487835895854729458227670538983741883296684804754723343408096138943514107175379095782503094920269375418289209664384053686261248434597042681898243476964477746083153651873033440221578300268530580745311674159162752982822077146923823507463281526539083439905588617214286396235512591887663398730794401333113985243004883971883094082877239183852136800650235576553898126698900811144633979039762653713476286710892212369184940961346082557567502518706315044808388344982003070060885717509656983274936635658659391922496768133318535579538001854000062187138907519579254207543810698185607011215536893424465595195781169844223265306363403559621294654546875038077443903398052633397513311569112709522101111923305695534319803751791579078014625191699821443337171792858077526305626271942732336781364623524007457470887856283602452779745830701840855708294573248733705028356866233148511918589844893503346729174462084001078028866047285783605929415620695057225138987093426022342902989991595456222953986544853577891015226172251951271318488323300753973005915162787895834721589306215136302327712183729580008863771934966831171220233431039536937770790634606291465341402636620278109677254278188171422107026213530861433532030535978345563232895904379132727028550898661571267128979359608798982407172189978804208785951919311933865112066686706743699836339326764159827836512743931032900280479874233712300087738606888321625431352381397234578334037870694480061417422974054292871716578802339364413063584024353589462086451320993780949476508717139167246613068196086095631866189876029200223433816970572258626840061960410130055460914291693341870537298355412546484321963269043847452250838073683912081577169487237742724489673760348501309989403748534406094936569752062306534978662118548115465469554017494509805996270489137175060292336221698238878066773741265899308028399858808897590560673332504499285730862277397801164286848902722270494959868402822087498757089490221120135606053062191368207727223230952773440173999920403023811877946630860888763241071500880552358225504996610381311434160293111173257899640347829826126116927897536242253682883114437706648877456424145392503768113211244035003765573901494088475716290329278488852949284835313165394908428740288995391860336917451929321730892309591249127312202030173215255171299069902984205220782196664907866696746911650949583784045924627764853633377760393749353629651652867287033831033112510697581101438112708288582346094139070462360743232280845304056986674224919857475600936327133044256749147494919184299434102188909300540892635584780030977278800482855058967644673976638350943235250731868705312440256885521579755479475796202999636661619589646312867184810785239140429328544542034124296831395540341550033228526190397019677949119813005071117385323780055745638369460499502115488013855890833167204378583866214934075664995593267165426359744262485501858895238713180235882397344605956057011358328049914777757616477846429131460457154208028277217944824005122405444013591656557716389830425678772544551326287885404206267544462350246676271565278002740941447697203820817691375939681733716721605850044057746775046240546908683933242567103435691773789142713895240141941576236797790393561600345562130735261561138777425897346995615237501819674686858681664178402173923947855135078650240350879466493750339207630799376867406411101609470231226297172954432539184836203151085489547397269687133096123611850736990168823229075827962111824907112096144258925430811002005415831845803339608301575465986525092285920626426550809473293510197400699556985557782653088137439537209255992971114207386359253846119191826083940413560791789347631754101028264160354448067210422440330969390243228468877533532171687076298547231057477064564379963051138079845438369383270436104577508835342331805380987594184174122397184688738574090011956820694528156304084035391412836161629529034762617031037528543863729662890823570895770975222019608242857652481055330738682309939957246337159036596351498774781617576643633857334341014490586941675896153949072833201801459614602867710526478181515148192254170981955394720449379523788275216458275008734397195677036527990554011187268198084479057357374563489499436826803817187339252114543132640410770582763217473598537090556678819358936909002421434763269655739315474805545158013667746526740923077972727882390525655950803402424696451454864467602198591506283085506077375085400824597504796181306698994020976858149664296218270748484289011243668873468285191259072322668088920971758903674488863138026373578402825755575196292026145048650880999738538672181571635533312450298850626043150389187488522412425335687112307279811545834977675473613736669197578165667978581709114104482369467248013932224105351606678523908315778340687069722914787237635965085213727118585013335775908498651276583764470220195215303496091566848123518294747276508878711099727949251946274551160741109708342698464275550497871087762547074746399496912635105807876486663110400072196424791286557712518930323722506912434290325957662875566145002374491061165043789142822627422985755357342045628880405314274562897411156682000472672874468818617506221816348853260726773054662616383329210826736983702395902274381653883139613839943995206790051041808754187645614946668764704298529653996231463448800988790248604125842955576842663978366474704986215189548033139941981438332333876344249339891707265703587092191157564142536107993325088353481526672798221339065331229388616273299571516662241563690911974503927896528295259555974846987987105447036671499464955642371524255808274498130183384366256430370905594035840207875766353406795423269482675170430797632380059494938190109004954031675520980719053764118528977607123239514461365292797312060204341827552629952783987058731732798913514030394180789351210287405757731265484328404951297403607903819433524109125108822799413409594072926347686918656071830444606304570477215894325070638522149665677785813596817590920399192904089165865004288686705549177185828698892408922335981071669393210564353714328105861202943975898111731126631636099896220719710322225029810102825156307096628626897136316016809812644463050245640775968147162626435595268719976996280845436974803863637189610342720654699753986218808034281350330706294468851443083150879974782027338139156809122597278899556521079666459470740773872500330254668666182044236717155146387406267902670835502322771566927034815479347060858407995672769838254525324906135057772473945589165138968589676650357871131460023191659466660391253782490161156531578390622624006622652732236543016528873089694373975483414160097696618302557402322140284086699662667349277166589603018413943132887571320320524291055171768566407305042188381015031991814627601468555597795778606977352365517757254759803633868459933679386040748155586960045180725105499240306070354652818653234962788867472255310536490416875259700443410109299524385623851760110025588954695530908162468275732261993183092873728135577599460571534969101829588093765336382490973020199396829987114245121382043410568093954861288935700791892983393402024736549985112996329228220668680150609511453578227342667437944788646030447082037578360757794544031602003564253022007204745215802730180019464581823983774969449933152486114119095307838928332441774136677463913627608164495561211642923621883784042146100602381897509837894393573058797892702158833924982878544135882533680057227165141883885814929540766296498598285728587843048811526876892259300112031037413756362971571507516248662640391240330805404620734048104595277554168980313964980262019478106491159755846564338483580810670483484284254382305570050823586300010660321836144913879497240985990706055353620704407997790293434932647785659889711457902418250128174770555273010406206298518755030866859986889885168496806138943305738676831914300855638527809103344696301245725761279657333528765303814276239378371009069192361135767395584988003369288678636098314787921013480704916781268401805729940543866335251741754775860392317399370283207770716707885005822136029288296448514294876740891920818941993031246343479601050038758950073492271636242020003958896357639241749143277392167475492852101492190550430854885440685606270039967444027631961964699318993697584102483471242990053592848634940711597730444216067603799019422414229914706905375504841054623166423001541870084655476920096682189778650672607641204240034627238472947218366979520661724335520042007314234269059550816052135181911949873540314833296674211422384609724473036416517673911489021581335294700177779196469402612861774536339173625587644177216749147220991695435473828699193183530113129192038700414455807522482885314398787912586544617029790089895317739539672565440798896083337022918064256266933827087836518708043280181217236221095326421124512618064011932645555859768377822005942564403511435178149259759600076920276976035563231201475536621680163196134318709529931069722690160837677980997116915000128882602014607092148843311120531797562099278682128193320805820470001638167736109239462965189151405211515138527733009913004488276556318293735948919449297996944120907623208108513697971651316600891866432352501365980855742960038936453237934326302125883033383433055679399004521359286810337364174637279803089533642791979683895484969879984593186224142335441911888382099860192534041825238144133699106067117687029106360024145195064291945177681045536018450277027309669626439547568104329239327901983947402331676697177146329776867130911452713680911968391654526114674123429628588064090862251061460726256537245905887165629665998686081463885770574559993789498330629958385755994842939000103515596997136019623848133625443503164212169592811062808846757460426709129669151041415933209148894980771500250555666540943109534937106375471197571603129432702462807876141342998683477949079183715670451670331553578737986020257252839789082059667205293916297425738706899537897970344749078778926214918139886687492352520201561699009538140586903180864265141642445103342558453847124051303221660140355874076512848680924610271438880165323072879835017367117408137217913885633574053622827333218609685788886237491668203122681761928070569295133605547435855349419757347184748073492626538516396300597493651295694369788866570177426736796442698882134882016232064569363650766508110859251595327452719379817574475421590025988867576085913684856305750368795448664347332457291231484197399687339584428764357432969856437450373114037279877937326792144738927760449503964539879919654000423608882074707753823221209069907065721361672085712552141734640284958405055804983964342046513573687004166316644394828633122152444564708979847185979390082368572735555998925024047586620425301231074596666809184460789786658372898307407478933327516351606567634368116662658211047318596440579117587825555496176740332704350847954591570386757225890388867266929973030820516652188647113525913820965052556706994612774998414037148473362518417084896206359262687825674951803527186087291005961632830516454523956679275923561737119250097272856659851246445558739702556787669437031825286993270312681660240198858166514784153875622751343243391090226272845709260222675821188150356141536739269197941243561892072679241518301939470607592324997803179660929404583110445997546404161098896035111124917942980297509825962661795956962626848851857403262787489515311495135091751318037268411182554874822872049274696208711227342383774009377253904802148571333315160298528775208608604834319326481713395962896674359310908007628264067275268649327090189861937077642494376653712172319615092380481941373338150264364869286269293808286036973252598203738481720853732926845067565371783212788084970643553057179914729866594486683278826816769350181339241113405634162561060078899486785594377952374306649470561136722744064857001283436005697797823989873006257100982735197122502512122401246208335497155220514419715561713936865440352201731172988438489935209749788297310315985859257239419375214585582799193324828741868194349191841980682131777017367163683654908621988201652975334840436112563724019023092396098165045531712886452659325525202575888989803738368871826332059061145205113214981659014651240166806374139473540840633844194890403136076632903794140556753283214396008129461695058612880311841043097121281374118722025727969091316317081143413478030283575449459268749975897887148680932010945018798955728594637574155190934059211874851341801525134172504172190476109923909783069007601446643255204283665765307831590067803371277462630978485511282578513545272035351475482432966190406661973632806050289771828950912036422909917123087393816399342166688960709611072207369325378154622360286930873928156394673255927830823012942465058931628871690828967806927965479772167655189884452950464529735894610523781361756042643052575169041566578391458803764069728036231509585134232146599508468130702033582732839346170606278049705522026139829234273701971783425517832943384382459640518496569411747527456783023222570302743607298601095476542416835279231991886968658836026145952362559491596092475260736691430664871103329994231097083308630960322236492645474979495271432842307434077675634072271555515570251822654132482634890128496514001763899311313534358386096864105303448745448726877673296370536568293804644605318659674515392792705914926522169987310568436454462678450377887783794844014560274644118988450874024177805673479333752662778297107422271327602512159435763665983960106484363334568217382179091834608421550036912471270163788094266482784738348749392378016831256273192753698107390918916973823667984779851018195930817448217062546837172731457495074206771157491569182303073036045713383027230396268157127125342557025794296313437497546483836101891516500117680979750640482362638912183117138620834708868382767687707561428725666482616490647890731153858116655276641160185241204904489465564740438983490969408587955932170331926523922652350375144483100351417355375047297641934295678196695136498426960516346266009329052694499816064898501295042196589900065694619255795896540089272559648442119096546961184177918574837631044925203553246601297845456640637643635438281131192682637231973999705116355939065769403780866921426458538499844674095955026755779385409813287529466157996605059452416029523203145836893296882368639052620849037937176734667988183977612563889030285693994823048745657910534191392069599349900867962163047579514118633103292404390154364812357539864044711943103137164870698239382018435097988001340488236278837587431065415282696990315851505829906651467512947863756740656847527006593009483168984454090018486685147881463253365861260827210287254704855843198124157507913822031758303151226288389029250131264013148581613562076795334781171788161430151011276560093973768367632031395611560613965703437541045650013477152781299341117633553455648664267959896422394418306542830055782236768176924348165975985618228615978281233015094344525080898097200419337373701437360621010903272650631639113012385879117733812908085282161677414774650063913669408976982775327794275570513940462176805092430439160030743418304725813523323547336731258958737886405773525047897920041852904358591140038529047671458529514008460288869894507427157546606370101743581921199296433197696494839315640564994087200359014026244780644492602103899019456409433759640042466078239050921958234742982672785539417963300254512929323982702144826073053820853807376796065439511430960769855807729485972316628633320040799220998560777947727893340634710657078678417862530894499336527862644436484256155750517958228431419905547229288510581164814731339615960056780006822720715838796475048659285142581878670204749195675619604405729439125661815227333658622889511901637318702673484144632596908732117481464290050546822241200690086997061703859978880898176559976219045025111788187947053541585292695972400755534624946603596128657426268894067017386281862226322937229742770625265467604018920718246762538137047951911211071798236958965649661573811635131617784816972770713191276183279053516917257667527862506625840802019271979905342042269314793456794232293926544470248197466110439647048587266543304616502607159459053963920470680412161968573459169560754150836558524698187860045320858171595221388414009543470830621510042505593054502506465559322316071268371765175755864366271333790561458906446679552583356228046189321590292273828221058152472648820051138467442861857454305815565958420609409078717195919975024169727527939578568365993430558914331034869341150863214372010831795948219763372910735873724674107577506499396365830610481795476320149540235686558436069869632890443571813439376273862676635647192358897578924985955503227925811276538047660245144300323167830068776406578883201932398508586692359632832461710585629486594764994379742514634088491441620405861044275012006919171864410310720929331875390044360526468892199088017250728197232217783680377342344586937556517050565205238698216136440917045153408773477773421267568087940600767100174691149694193096519048719096701713256028267528667084945648391799767077313243771315867608144795099716762185633872367625565839800639822717679241243173286341218894752047455257323552885977451225188433067015212445978220846082552017397953677884150056036234157645948878212388735584370678191753022684760255000771950987270596944897117961551026151471509470435151094461566056034234766603466543302487100815686104899175525475346247296829310989553362453911514436328628045851003953930304707290980847914007520910942708957255554576208535964463718993214651140760293643468799698600458410117568597802916713529802623452017738901251205491981402618443772970346004120532232792169536922522314687157393357792490143695497498588917340644781702591047122540465457831162642282464478163861188557423703937176773758373875102242063156018194921764988731350833736321055208631547843681959105897371713282916042974532707612193213525319381206401898262593353009993949785374009983235495041192770573977756094513817800055866476685821009219233705459555843871506194814836682840857214465687096244942423641039492031249463101106011793991040678470037388993358677704030021625987436371255703159634496708343004151632835896311661978109335507749579598986755957642901307975574091419220032526268524581403352959566353604953237636810151355277163617022362369111882385403473959370312502483413049413961902222435398576938254342799669722420845086122507947821890791014331581521485137208701861570585926118743945487425670129827679437219455306595914160727602423389141748314929167501453254849909351117776990270165905881107190633644504481616345659333230981788798535199967696238975279856835826597462475723089513185742182262421626947320980561008602291842416326179292464162639920699335958914584461798481248518691016009696792644119337512527149051306156057063896985808789914064383257895746462978852356305836046645547984339032094208969924174730279151008540245285149356307264845315307156779744442255101561150479419259180789074652153291831115458951664261298895146628524774320395651734940071464092131205735971623398148988833558942878367912666061198544892381829011159989845032485883456347896521929022803105716155668530064204975068850044776314744637908422709386914956527842123647398525560410984191198497251191460704668559100271762322143584970175503373150871461617941074941942652759816319030132272769449727299955240298631631914299373061306403440916408535438344295172192826110878223524979759639495691813599235430761050792615366327795797269378147161280776976988523821878598229791758355049428882345613446731185519808566948084037462721980058427466208031197983390048147323642503302256186733256018861366174873889323717098260966624383517655045505015690345171064142364744819945741201432672082055708116350886535094689340791450361311617575591044998594974300759717355605228865458141443059072564109877758046078770794487677396877526200619738143432113982716997134979973925469773061666091276999674518034009540418944026213974880122120286607736767778536888004330841044096424145441133500618116230662414836899879008722679043639532624386987749587487847636285504434824565659512869226289868706687459883697745983412394783525351376010526185360460905961417477675180940640222915564820339674919078284581194830562429155649123834912821328138079583152855154063093350696569801134053052775519594759452149161410839233335796105106753342405428722845765087513933808040189719017622431401760750581739876926781050484158044130020400572184124279003270860252757148337203414231997482806960431612267566412409429995520130732903851636293283195042048909223681634393469374170549417977067718989663460110710093795420919916054136178178145370225494280041732549843405910659050090514426433703391882882153427856144663011505392549989163888678889556926480826676976295253147252716724072421642402811558638225760921706706900029729202930790574209110817840811242788705095152456343832738543620698142556812040394946324754103783377289893170204931707806560668262064314876482204067335261082101593167309376547518922941390980067742451944037164503933844985802421996775647239654960174291180950139837493170180921883993246012045427491551817961581792154457690474898158800937301005399420083707978533221726483106265340209661757795837455698082766774512259597205165785096575139308005526611268266527486321023753504755096574041926008535815790000597582765832743828430997425742946252039673263109905072679464115037252553917862767772516065075950366466548499781154426828002210895916280965888893787828881395564844766462481877718596915033992645348125750419242833272806910738627755298423652803972804283087715277983302670611451176468700572052017901873262895790191228550157324119946408251337510391473973471093424574664709836556801647615794790674428757973595770030456980666751722050023841055450541348241021202070932467806802005935429762743542847012995841855328848676918962319411510268117231606123099413517918113709485785538306219180295299493677157386982414617658376924099453439363051349739666617596927998728235176570757353270901382683729543935602451805233249975119346776744448026810432348714176232175238809435461824507972680972124980313077052723499843880502629250746511596789973927535592349202779699102360275927810591829626454018997180739511225445161882131848114929801147350075816176905319123656337249684540035375871355842291257683073026293155045572867562464061301523519328430815191371338908848243702170270715776253497831367244694539008725339603833128882407217283757494161094938487384936309474863891069484302101261225747016556506523240879659395289292592554620868033261587998607902188461094565641971213700869479729013668664119688347888168806740021996937966460732082634589125510039140259389064472670428326546643801591153626669201165684472137697045597325932782618037343858331098043649240590638025168481099081846052613842303793688520035283196805381252290850437545233019348836304437766946152780702568366691437842316349104503846610932323855364186945345317154766551616916914908099664586408019564498672384938853131554581598375851732866795388137670027794156381848120558801810497213751279498362595913521278377382464254516716382690985334895170531617331968606167478949657220413680655417436729477489409091003705543095038271057118020456068674437544673900291505485708307146612986050010956269430634017627976055984488701566332116034384286645829319443324452994033722087950183836678974628415205297964976499228020030139793912619851263541061332738630762570745486779213361305994209112430568267402192718198153145752330515137374075771539658002526948054671389227579034750702178150379230215499669818856578534618169099289514233904422493275084971176820390481497851984381172448587385208018282319873365238674353136634912220126191620503121446990694366022024035915565785404205367602310078016511781756765790587511364313753429026633265280036190423518569829244410050526468266014318655056429325127278511897754931347014593640313862631525938271263508705776052147051405281534243230031524070396055965792790531268745261597726044387489231599127606815001661910924328734855419934013917550111960425253868452143664095986807385352428289319709053664927752779781480164995581105190667718595508815315070876489108792098399344707649497815990847559263007762253390571157202817744948614409332649266647118368940117913071012792179187204272437140852677162618387199426049112548025644606631868832806205384108234347538901008736280214044372464491197470456754621871553698640707402628103289206629262966699410314118291774411154385639474358997203551036021091469913208250872376395880967289619266971268859771050523539333751315815409743661082286930369857733406254364670913289408903493792278761398597253949767973493334554142253284500502677510007886010257128758571993450452023088393242883488255228680128790606060968252326531819535885895581213002838298012105299305838391204583579775793163057165796598798282535052042651992475789724332522857334713656736578847259073526886001053564189213658202410653203154845382375914864020992964862431798271270323213440664025511495788788049021922014637826056315459827623069426483076322619249456889534249281225771183007605448489926158923275739700997467492294341647321246496846012968916330731411834034864292385886289620019260189868759302903365205633735102387066186091639785436921552270639451251290510623955248040868033143155037120646314007763390186348519743401107216051319129145207978302047507929489556100255945248764991481956322442526781210327836271069942948733005850384303261015094104646916442508828076969428551842483878695431489701196156258532307827447115657787741437842950991890494089029016282926013564698865609736764369889608327711827452878683253194980329104333307606344185297824366820862626499368050594146076729891179756251433896214734203063932119636332056706350592500303777229779394726098395073523505561529832343596880000682013067894240940540819638276389193912256579726590112274689592915883847527429963132246224811487046945671068645554518346702495312230356930364896379560009096065874313477110262473480983778407331320126349749537334417791522028780126420579257308867338580422183789630797438142875892767814289267128317992016175641941260284752389797962954768191109456897671627536480000365882397261368409017632673828258403268691997888464724380448437931136668031158917486599073095794782678061751697162110441414537413668066701057633573424140196810142752440313125287841305930626575474309735535252063032276476272455786094018541247075624221812446512990667258455647694281014193284428938760066024362326476374708330934393657546806322641689400294368887909354200743471142049790347884400596963283184678711858863683522719021798944611039095011177627423638012696955251806396335325496598246181110610412103812102043083913558171520424822927075893417626550015776865966380625455382661536871620115115716734223683300351747242959969687762099134297171498141002711119558063396726471391793853992441541572587970011101591829079702378488713293501701532184929532446870209403801641112777612720307446246277517566935216244688622328930648193551178092053787860284516223910603433062276022354265119893601868068601478091258162800857377662921056256992264103145453945051167592977664133317083991216363509588939125997234480212242780495815630747734179225617957061921946176747857326955008625668670512320841642242852490487635915058187252942632521758573667099642810823342399215757812173073973116294554116561674351987442898977652716522580339213423568297142306975039654098426865320102041914554097422883365385888642604309482419202009951389000432979396744500437708710835420010809313216609759232931610941237892919176720152293960955993747197767642110035427031277655583165863757480095511723200474586027402681345355630130293891978093782865863677769070093173812290517528774510164346848772996365049017663954173064832295669797748585059322878665512539082008593037875396308818624569202890242040066837005680434074227691855435360391907607010973084251624992486913134538289783943402761158380820709551082578362939806250754848868050500925418443297894031768413130481699323869034563354479917227182157792522876444532869309339515436983300528363385137437343789644988254473492002769966981473341721276735396328696705298183046757930426199109037060376609195067541013994142563608681488750066291789726461408877056981185472910719425656694613752985332674917749837609365290896413978578542345105020616817074472030705979616537243827930443949398657573611342320244771473731925176752167282750016248148787307774601482616720604099026717787961880522026041566538615815292892600073078219028439494445283140549355663524846991904168140059640108246844410823207169894087087303653682801614333122964493055840131400899269006178190507553753670538215093027299074437219903745638549484353619195400577343493228697446164606915750746698063965537622012881036535554437685803533427694321540622390399764570456013357033811208021802736016336848559074419140601050905657569023305625421985060426871308574071637147216181364368031605889022605050260345222980357760427603621501567506634712263086588661389034569352835894127319135123739385221671175490991315641215019679576546716386850991680730550941665813166964031506421891453718486798931387174496776423189091289009306039636702219023895681042536657170676388032622961482928075909763776753404065108730076279000590376769458777376965145663027606250714124316793295527094235315890120238070752482153199567491379036103798160510583192293334793855355701603500862548304380794515266678414950098482308135784900561251423932098648468276766827814623137560845824234477635490513050013166206219265953170379326293718103319901840763848457406491099154344385279797058605164730354501532709356818568994152864628095544314274052739088445535291663038486277456636362014202366236578146548823107937642578112590581943125298216890561733254382104783046686260669038867832606925935312785029014866157304891780012260865925840277251099111694075188877724429833467423547158665523639614562443247303044897566793669624492783681793715680554909702632195647862112078649613933792335152495542097547918126711347797473988786375945088357059371407725910892697952726177854323241268741728403940919777025808933696043036611600546490239301852492528631579661401599015190158092892594423405393853633164629492437585849385181176821073593490281104516599270202098851603875015427701149226067715359127404514104409293194098841902017569198483395568884130714026904238560553473870188926596176037254965746974449286672264113724488634627545006184238123737038848316832454244964489719266152443529971995555299164025620921249628145303999584089637536466369986905961970212301641896539431466756842796616509934128971961247802059108949420820344616202704773931477137811731697134484634082366794816285282275661181666628920704691363192479983542696215483784645095158541059767549885050419567338462084382110519625667447139614491377512523919959052916420946907331369112124888893545947485537034838332563778948298230254922894328293710994653462451075826840006939454244926052200666964171717061576314488813651930888130239682500906074335334784473668855046282917506031341536359164476504312877982487649533672390733947985824234272665792481175677838998846100848254027460280792687743169400721447433385022291758992614990270963861058704646137262481285597686155885213544020144423543493534050541449884807429613071780644612191621183849266645158483149429565549177871737313773369427367507619186895581170678233352275884252734162689956204262312495499708846720879341285591238365322280460071561243302850922762567349630498019881640872861039594540749764529895198333197251895048855953414619262351611120645365288501474882927452976009519247957700882548134986480068605153319415960412414275276642721965543499343756385810192647720379679361344393568483213522929788597983796046291265448907120918461643984356128140700398758558167632152168277941323703368492499683426641074078794698013983568184959454298096417373166864700035917335710781312466867134486824277402423396397236392714347491026678014935819785051141869640170566995535660206116305916139317905100966353260178642244890158564718153737799079702185140614424293564667052511183943301078363142564372378864459833311244807941759218523267839802602117736517575109184496562752280064938866785834632975900196206834551328835842093470179627361005971200954476018092523476676947630696280492920614156814618699889527605869632634884084808245592682388059542907204091121173377932422859514640839398943212761574624597259301047954021744095011078654067317059000312440192675077891012321954640444026877257467880796381960593734696158151435563958168214730748175727368203680578016696905499921149298295689365228718238853074199814761160899729453451605952012530238231219350001552474656688614428993957149433019047691829969253602971351593001113653918814575871032349758359090814128227773556871611262210387033163852245783059987341448303441654391317395725367917380353738728554053780784883424319993162972604980290929469123697296863413909125707208621350397271784795501277262671885142653306845980715155414343817848962896517307101582174617057137929161482737108046345976205569347735618789316241498106229671727515281772937171352451942135953634548280125075401638519354136378550686225300097827019875206607838193399154483267718481977982499748712647688472357402394375791443713787105524604351476725745049292156488617737590803317083327117112294505951277660402720979829701973823681899687836306772119645578550200083634834055243675907004403180665515502563413392056301731046153778755861793646383638601789946157847509136615573206551816099901170915041953662006449033030072097631161479239364073926649666379925424946442041638852813352310071470800422236324832196796034974511864211271860813508999181614038018860340806723699035732362640753561232099931784083964105691170157670663728138631704145956050712716195848251877045325292975138247093233495951913015838170791649428796510274364482476900294225025670526847930014471905701224069237300118014821833156130695377539452614559179853703738421946950957331238156995285831829905543496602137549703988309550677647533979281148543991378625845568833753265729910906823518642362242645448754669047008790592868206745493761615982057587726267633170544996996284941573333450904265400966202263057027539667457002027323557799187980676306004018773058177509464676057772342888420735358658467457986915069847525998915464599967490496631153755646345327731988852269841409084231412118287670599347475255125190402436829734285889819177109641952751248643692193804029243080003067581538800541299466170994446180021304765700174257442075983518127947123892755754763991516944004149657689111236602721637912875751445265400147775421414826295238207109522207834565910969412841805494295512751709054348337194870056963250194664342994059230596508595725108707312679116186264679282596293864344795542171922027514751865023705868171287235931757062370839505213512914900875975082188863723551792198650349410870973440711909183939339179347753204355420416518776513183027279865910525178736699475858434788469160239528892754964676460834855773168565198545324360292578227260591499088931356260891599827357086005158691382456572788606078000925385445427462972713938212250593505019060493738640755050740400702598897863270300610070634391763724385871961371429841245171162767858761545308890474443267273584844477607872392270715534922004658771167403747651848001737521296382122289233494302677447218589356574439130832798860983235201961501932075970842259292885977808631404033059618282916734958114040531231613142652079594424280695111360815910822745221245108162455662405837139427854064953278003493920559471616153003017489488365063712733563281377460211653151595857333631700322679202985811742723169892145623376283793103794904922907289433595438370280339781448804227440202397689722921289608876480348423938576489037250619724871377477024448369959008623569827112603642641434897826181065023963377127863467961125061700462207669659886210463414148460269001677750327198581152718362546407568386352394301687761924372791506500480134201677870893285590719828230465335673513373931124445488356584060305410712694774539556671989631172777230688719851683416118684225187500199361847203004619445735969136185778791614867648860674546322199262873190675270389229311913253291732644410585194443751875298530799447025367536011136049529345817914434872019535256947886716842442576729242757752916154017116615565486254102500363453996849530344379095944238948703119624195190143388883682601878524401303246469212074906503108590307306360566180993482382968984321328105726349089343745414518834479708153286060860196145697448517059824129926170069020062312474497910183238876443809534386453801481203170384368635319404990191204892899846547277889054406040817683071993135912407014719824532640811735531815816570556421630668409575660559859052941531987143802568097276259984038665546724281037574102081085050089634380942342047998740499841404580978369760848635607544408738829510273498196694451775032365023549111904922173615798067610280304234589442171277015346572646149541002735428136508248326990468214269232011737622727124086405124227901312103898736141372801857558815165316063415348215357196337296057720410421446472799906878850095909595989487049330811051112749542122918650786047778433810341918739826260497338900675964316136237786653486085951934532707048283724987237637787812395238891398873352418356699958207807409333335894847640599526902414875420837416180406440595712310095791254488784491120665100191824785812707274823003778703199272805257094505505990079360246884835884943102460214949133160970180597636228148956151318807534973313566008930249581364524851774205160335434103399645880132425225091405760162668033706619322147157800366503607064116823777260210997973649481913953899856648438925217643592323667372108139507883469933984861470029193371424628737205774166483537580306365647087020850123932214183459062308012073027800950610653079250755744372086342016107819961575592274200016340958155459017605882944125586191941830767665604867463347891948962465421223306660450844088823937330146341567074195583310735821213778318898724280836493794872211743036633772164400151790447606361288943936263828864896126348564595925384510381951419761710467613924490410720105183023219456374582343335229485842657302846361323605659930267032231464672427170802864651514448164792252705575986014014912124688064923023374257842598431816092561603906372381156379360468739398879011741960488595186585763774825396691727477864800440704946110177551126301521438165483241833251350016275952386572940404204007349144642571452465983324802614839404113172681663197791044868168332247535837966148904658193252600729865914655932702686462948854440126241347787327968241949343073784443869381662977550625952248681505024966428432644532129317199653970241513087781795472246390457957364808520145791987594627974746112219431380910666243728951667454027689111677104716018713442760962367488585647393942822533856982982712619873635498241767844393003022007849339338607367925968360004896470619036925784836488400643321759692536893969726403026684324105487108632314646425466221477656784451625779135148646385122035591197007384242255583604654728275553105131272729588183306629286230522628533960585137166338321168676823946837986312368940126061574838676072741449563531076343345759404298401737662354260386223136645980163665725404917073521408067359171652251229741314575151888567248903149950028563063032476770990483719892367185031001919704899092819680002706917032574704065296468034309265029026443296112824806356450359695745062687529830866802376607052540092435822712119864217742341568281155577311394732954165206463053120064875169485883227683149852025354355510713713234614099636180273359432007565965839750561283792022208866789212838386070547778305916390951599000429188441757583953996697801167847308172716459614087225159000330066081185820305109499873130425196029203524298855308192305450816627957915242247744458248695458461181480226214444969584000299954416397504513475861730633820599876138083927887366162231094743387142725962653008649464376910654315560987802579511740589127283064737990876365299767961623392017635731725922914734122613124093432724099551573966745212746430785310983509396394515219190805982579005559807806299309147390888487019712320779128567993494569124658897885170306883125832461889775125324633868696856860064387701076518630302108162369217756493802548531596665482178624346588340585891392364751397494475369088198590776910559318615584417773797838872990160226858188376477448625636714627619204326069395913248514602360389165918890591430244103154212141786674878357555306858185196459415303267850080159622225738288297521449826661752022836728018360606767395514155240125181747392825765795604510540249582631099510618979611560509532135135364868754369741202653985735022757666695254101166381604525637308748429676674920417130160702378332562461146415182342172792387356676031459139722403106166621475189382975566779216715618363229772665896334770377684831112367413529362448851725777234232167714613913731690188991920155280752871092752862171686187683693875536668482647782276864182079068430740067779970238540573206104052043267389948221842632702056602622633318714604498667248424325590451473053209157480257483047422556536566392923139201643073723016215648718322776366152649240198331731524569206313766035583691636118381711508764561852996871633303519204352225078850879676632949153373040647164782725772043172134316277613629966278572520385688778186283479838336515231297183867422776908053752499423691519632775547406626931692701547671609006728898153372223209758250636577551460444123295416811214621056509781663338301803586616505712623921360287525412911067775175802937238209928669575019434669579123166543403917971816038142368786074634042722097428350968010622685394612650572110237337070556603898347036450209271349651307769835124699619289305169629938175538495812513009022976667129713237397284099143312651131462004753409963924311861243981859181015695465740212050729373738001601690206830829526615492055352479935001962300534468206565111019826800224229136301134869110483146026162355331951636426614860490823263040879360679675143074645447706105630575278427913181755916318394531518622007420354358315470782812955645262972262056915160612406965982655645327632111958870206247700806724200192612230887642132689004642312647890666091434290824836783287248796639717482118473543447828598083903242592485092251881502906548689662304802332979770020792941709874269407096702778796272948629301064759883004580779751119126139350400473843587755237502414862917121166554020447824247225178648479910461603545085168804431699870319892257246647320361772328763880858712098349353423012340939589033902544352416897109151388124288373017872591253543060866834658431893033119505948100455832629934443994736891076357106307019945092401610018223633145841887032359577008153840068297417198895728009065313431000253545626088612478884539240173398400486200391418419048816211757720101088803468114466776796379000356520171642292922360397076679677125111436147603867208241800798960694589904884259578543592786631226139896542731696407942594856024908437077728860308610076513542492679696218063484381711347929784739443595947357713904515208931743826049427491097539321144131014669167688625284465661058429628389179727449398448496024445270007954595622968084713493253245773264671696596630690770175592060777652718891830049612141959913109949113140259485755561278910363032659414560867603478094550135288503201879469740118861825324158107061951290832394552912231587306907407498622304651270304840519878087847338077397381240242918212994288720840001610458741034882537031648128674219974213310673077566184610100477222094760310529841487036967251305600148173665806384729540352642468693679676898385367302775268584618165684409362139078624361343402009683253779482490350663169332743094128220211364840551198242556187076428412425928473325612398192066180318891438552860429054188399845386943982368074635059814663681821467322279164619879799312770734288346615883968449267241462185043195754080685976153580234095269016611919774397699500673115137318373551782460513149047294832279468434253182272900176968105304008642795441134522988165882914429995754684873036241737696680287916209241478752589753723201398681541560146536733801175062596139636421083281431828552943332674463221098160829568025613026588015340294940725727850283626055325345792130405423632254738306848476775018530489189172363765418111885206291403219203871111092251752819092197747170916803380226509672154974003118319162386448187298134064362812453924335662596728035585309629497746296597204895439730982829652686611010393110905374215264161085575097744122175860964060908077640870494563429282757893931752164899933011151772363686577221479248615260214970285687552688102267046021323359984391369046398240452313667596986020145793178819154037852207275016350129090084004511190395752098420039792751766535751727814406858914445228180718939895877445939428768196614152558952850480067533898884638409754068516122915581251609534052615714515151721009009258707966138523261223210148858776973488638748578122174257846182357412861731846116076045399530653905545321850173734843821570145731749367153103661738932656991677591488702854383756990010114449497472085021234937944000111093163435666211180136679294663261831339521494150686063872731377694418937222914168125066143546027082970286987107852063478062381968174142307581233070721598862451901817134984726141667374142060271137019866273192239081922860885064448199839799752566729257162491970589451908640952680059618706340251353168905034722596408092280865483054555710883411648984078839272739361719133662884027713577260954542704900215057039779439169332357265085434532818723573186236614758889085504196761734996602066459095586330652977915685413701807926688220443251074364555579534696631635892469808147020516233520700093221025581047260360200552133109489696612397236379164352686990309078826187520060936310003307209182629510254420182110750051406256285385268123385693727573633547291053413336569701517945193352931003699263540925970760706717809319081116891190010362176630446608302790043720931750921209849329798959237471301043932120555271642698444106334207630131543858786375937465481983634820676276339116497862801110527574198965809396684253826773093160800805808909920871975891593074204631676872784169832340103571475522525644240356302172665804435642950026125862093229085334242425877022643337532625810539755017024802468603156302351329455053548685956837242961469918915728311447492981436808033031703519410375076905825173460055915882037514129227876200090054476897794010253454497187623978231316920520300743908491026910851107040977536751536202267630402295690430116368918085998633824581536879244670362549356415402268731491235677965272277891046659950448572355779342566307616969798034235663641029194817065065721964239089025463966487767255036407913011673594959201838653231195070879087428107007816807684241033450161154600219408529901002535138465229085766714441114029262203989994280402440437871083568820128226313543740101273482281689914141041090714399978789151881240920776710650994772529944381802357709170923986967887838719480207980095963934578730478767103625982024914810474819125303107302969306344079204749238687092839444170070073225618575551231597356824654204569020427081447346105982052953357983336135423626074068819344238400914058432960203972407439723383908398664336655604049642300113094219070329536960458770427570253535494021648402569916572549434545928779982833308598738951558813296610648113241999710067039273292327760684548455005513702067837461590083079196638560511686939018619231244663945409549136760656109790699218731261463011463075017265225106467372474519367780063269117587074945377230358158010628927154757737100140445842505189900757078313631833889997772789853942431447319130879616940703633848519715698064168341165223009893012756411306357435555224140636684178219833638377849487977258944519323507810233023929998071425005976337593228686696883966597054916852009085816457608088658145700359229913878427604715405810166922784442465379610762121823043500101582752549083532385527804630865662447056816495140885654926457345705448573776920743622482233851806468652638950415518798685144367299933627162807353402743640865758641628450979245713469515737016708550555800536771255992215003023470586818535982908326907687006814678008722976629347520119042761755575239850890245382481376594657776255878116030113821384183696961961441878483649668927048785091930553408362884583268072059319227298151415174488557570429786647617795448723305553280148786315003288799854042863854082637581449920240952938993848106873489748693409200861778401024380866332873485057449053343284324540497067108978391013204073368188218751717937630262820184558047116654107840304707544622457395036037874731105108336918763861574211030651105516103058626382482771919802439921402046396889431803136954882372542148978094711997342317580227926740584959832517616992681624630978120682823475788326184793541808475158039599275001063467625103376598882636535624115363176491169413588371446195460666260286116055461202128602335609518358514815760927961639443315797380448954251426637286330888447363924495904182711902814695804556914578953477935859439137743960519598960156041522256749271772547179290534477632727445262387969341498026988505548375873186395153772224602324415321794717098662729979331198018245493575155704376966528195118454317872132370006487500842971869533380178296096123001588730309424997399446970201390636792926198300315953852703214773117248608419339219546428030375388643118774394985570429772441938398427776406131735259343132043310540216212279853611303312179593629386029759138704798977202494677523846800735794099606250462805008053823221011109987043172110048016154742561669729378145258607543873579680088898228620777234859695840377227210560371629325805067093739499320017026244228451182732097485135710447423857491093831338506559485267972127118968131038334492297781663680943026218510567125028765920331720010949301070217145435641875678748181606182949182227284187570175800899065838603332980189350300019981977063443572887938637592076920272507964642384943744900121817891784697772814454143656836394806985467931946946905113729706545146784483756077365515250834935649986183079430648848941185509855083993388717352512495605184997913458427840441113045960405501519447284346877012729332214499153723885306909212197233766947866497593245456663952014690977388498466024427370038826713861230628911335546680741744483332219774338507104061400563795435778685587904334264925737881007977831926514767466911255875869406114205014194480269897667970052569952910617414807319741973629727223634677577979376257398745314474757533402796873394151570539829273498171538024254965099832333381462123856104037549481939989297245369375831461674305219252194122089135150160709635366048229701874641253221433524355131236382242662656896747754811461021158143414209045825202207894554915409769591606079245936224054602170037135029860329817714595920691750727054026394283234790912148631261456148296317926792340382576638786479426605408521504357747758417741519494757565946007815922808801493880412216373732289506194543260797086557875112213906815539561037497204052465656671292926907189775667221459715810661021893119980051069403763564695207953735411955070866216260651426027430326227181282888315744273195012266796107510310938240042608773805202673896607120285470539795574125068258236988471280054808322356558421072212843813233513985762489539847069679463151296062117117758200250730995159047159748276099828451064674416097528561054642541665019413712560672987247134940540939039204803903080356002145021505446221165816785167042578943194568978773045177866069157289347386011911276154538450359475778001465604419855769179150165534139894025021919282956586968732507551775274520133134614371697789268532553266952061639754784165949887008829552980290253129789919345156938149559549524785026104216910035744231540400285739315513918805603343453175760913596604025912663986784893247614030431018677189068728664899393053734602173097994674831843897076186499518148436628381824294478038787910790962859425618598938819021969064800810519555188924549309088877674118571313569362019935188784103886815097933082711421882974173576465279154795163007997569068055233270738815858378399046532642151238565546009782652286497281800885105752494499988444688991671207578231791153316711643082664598768516231604787357683970759207955377069821442540658532925724955845776071277173392886495852651600052073903346050400070849999972943897945773310056643330446796736335053908201569906312172952074746517378352661831649874045664597268414552707209829868816535866057131622984985256692956474682815624359140850384221951730926976481271219260967448421724010768683305041008373757041387367608775347552606914981068296264859430441745378467144650504984179184427328235122127115573082506596626427266549255301274816533770094125120345830323513526489711011945033218655993663942060870926683419985907575859791265529689864351273461453029897917813959325502307535782051222580437874891743959923349436708176300828814652517606695529203624403288283412263406597513186619892586832350147072794290692429857069401436603497332549888533133561067505819635906002695216705056366790622700962277734167382641583219434758749754837227636077627067266339582150395835739661058605122937739022316836015224123806119148843080456537003372900267307440232629172972647206900340035810940277621462645778142698208709724730137359065957701981602396748951723911573027975926560216792199052232077876679814560514058194248432473501352057521063660483678686849625806957226062890055881946641210274587354976509202853396883112423421595226861951749596390449112575533656025442576148311912398163114798555303592857268293153288263522302617344216826229374330453971992452833914041556463679621830029376680180281523430943401620318901370490982310975227733092574660513348028251523134266304873093061997283833013538543614068187823246106233529436242300859999407943335488475274559412898682461357809111690532138523278001443587891612946245250532033810383819357723056200213960264636765132496628149867887928927731292329821035323714657421381359905440734862750450916264097643159224306749638714256188375242143994531163951279838882009585794606688296616556641387293129317497308348609385534266166165434892771514500110397576225875459470306878949810840552388696903788100603159280805788642483450275303023240902324117057573976891493817479643975635237017346673021802499833047853947967855018124955313200666052794352098428210080741312553880932950598085261598624017190062893122044792568206868941162504822784162340955227527391114476281474130025455886161867000589801053967860882798678153234038370429497725284624632539225145167477167186886376804486457542655153567203193295626259482113787157524102123695899158649411623473574906135064384364561220215808631105068365623601385510503075325365317197133768527662813189889656997229237521978491725265114481639551246805723471275301605098824747675610646210146575677908053715120808532185071637778538276064718050928371226764229300892877538844249979871866571644025652418571634912671368446474085110215458966806881918031059110714648835810404037963871913839617606427870076953625903662909212479384166932290373145825915305809952567635564334959897211324124743520939845396958957427321790822820280803718056352359851082355109850573234113405210338234863825603468944328940308831413504279314191950994245687531963447711662055104995302555017893671552324721907585016592185584146808217545891669049691326824154691072098837438250289754297743748663394893529364686911751703195048630470914511563790548405468582165389334294485369319006980802218025225972896161571739000259713562255517785292410845589107490217839676558097680942662851924824405846271532937680877731058240663959665065742478670621201411588517739629409548171136396237967376775979068767683010229089783933995869664556943868773777338882839931525694591906233148219134940784718762297833964416201013125515762664969574323578237474675843317074823350613550545868061622646850154386795123250766154235844409264010574293395416439742747887771333291477205501512665795379826137312319646949221193248040970100919736591838839445362226435621212838033188275184954574234891974919820971017252746045304209377835023490344248363809448191418204387142651919245337817772026907564148454392721145519146990720706150356639066284397720315883109129768124005802979307617606648779040523960162388324497926350251938069738175735218027572306762221263239551784650608667407869528812308225897435517701941662564279064521852798359584408291999835457070605329462073978644093829154615470536981343515857760793880096615881569335356624034671544752158962558199590045662962483660556213818577576593006873133945215256331595479313336825366117984926401668427042486178956915192608968932860946737205854493858251695134986730598117000039152872173866611259885107524442660038702358967728549955405803891883308813987981678693629262014473524115431432828823307458739828490358034039676163824384724038964893741652168782194979230145123796836212162914667877821556792234998348146030337274804329235228590852134435912527712577285423358958175467059328358612451325301801905820802102721259127547888180906081577040837730248625380831508455572897729060879145561257206829896552235281026116213892263660809617408509525900875405432987897080732226084800724144979777863997298651020198691518459695531286825506721534069097780755100254745124405719687348615443650160295448720781389179329494732127440472320801725808163537337519497674798579056416986629248208261443727309705092227962052611165105991482039620110259639707897306824031199617298271549678769333555099682305988547559126141314573641313071787642425267254805464327090426208625295485662119398234117447477501266854507007566804826140808351919370636511017424959251483861715562275102981518720503089885348574459364549472287781556042620702786801145810010440928315261556382243119170861854910268649009418271458383660576798349950260242453066570475392636319635641673471064372602595708475853181716670540502888849185219675499326769039486189307818148684357395051418962857909422008488515866529519522819506780186786725506811837063956996949532775317330706888259699653364969960485878560078052009743555139119442858600849414683307327498186744532720015591127348729641740684452063911386012441309144096443165825645258625567181709337171990763332001675662300291271177572409949504262091139232625942122761440886681850443232781324330296919831152985994254509000166621111089387381585652092041514751801111198612061235522730492955630290129012722533037506040901929249331041499502377904373500526825090042360791354220557806151897123550015757205281929450295223406750129021173446614209170843193646754847989307963904672668858666272613196467835035890849461275638920820715355360655180566114154615018782395022541586311105641501503601339343922354137607210290170902878159632361136757417428370420752807523545428214177427013847947625941276545834380042385881044055044945115743256688229922233390109221439803059828771129743663375224556492695978885751537290816387780155294674632131198762109875342826577443435269937759561228840483815403369721444724584959372028344413129168575598900592861440090435910024979494640013808669453447088328201271125689372300059025192805437578481663571157489051034515734488788463949387046046868003650867330996857379476930439296056210170344938625449242630704438920279706973270621614994895063347267982768185901008515896048519902902032036756585564944042007686308722097728038909272804905011290330657970144543818042602131492296341696138693155049577426603044656896283662389343238493337667751535997039904409262588084074490443877634546622042528540512750567373170761536868070984643690145816959575222861386047815840291337313897452394355046224063136290264128460684623067937771082636589233270638507714606535452263648031571510255066725723443616885794003585680908789816949369320280081634475776840090574385762778711992278289708582399083472465986013289249534265916993964279589623344679290240864581972271995377470832006998244545051108314163016817506107610829483358387928029541726009562602505488250783248143512037621621443945193691441797610065739532844980724623333195032223498057525235271502613187056058453451520543816720893631871792252618798701092141221313231175565909514650547410227570776175726031416498797643994879998363966993260763736342860216815892623302816729649599592561498096050666860469656133180607518802187635000966910829870414078564768371892739575020806054834988580002301493965815752857100793169241990892125569769604635984380990435817923497071303535969542006058373676661032051740936627811843431437405956553454273611310455939268552825042061529748822488951026577128332063083720041139397996856246793143880254428444446465435572584462618352180816071221764799406719090898705642022646704022355168051777199879651061469645120630833099010659266398500814403834478597432804055231316055701151656862721642535372719450402744094934128709868550472885232476949848596509384329417546922448657730428639531734260143045886328541954043358506190670538982285687640884723342770746195562759041368100326968046729346594512606252000023883094801653425020770679353218044951752802616248427632009409223255733680382015902006804603763695900030149898484896691862075719451073772797109472986275112500530827667956353885921650228020195784868392178240346132953480767117703475373416448517612684697949404241994694677117899060440222422561959973391767749459858530153801378448284255492532941550117649669265037353470170947514103615908296910277447114923038288637724072642221935015864420566896040446799868334770893725396165900712958702657436125870294674699197564133935164991191135539674882329875856031190396662422502911811301349798205245579887651433096407819807389379742763002707527207156625191703580396718240268299737972760361115648933009769836802024486910767093363111768348335474266421790161531942091371115115800554829353818436033801687382563784761879149976872997521520349256201293329490194955206547746830076198465271487434082899037128893177682041950614226722902714316226723846079842430090497684777957541684684190356300391217182282187541459909557621368830785662178281527365501774192126852723590630797015825734032714223180672086540563902801004669556738762948079267480067496448723552706615961960771684268963929286051962997568651870784913787975334258573834828351541208422996031156398208144867789372103129962769889080332447914081451871350411125765581826909056736324639947371929318749107675527154731132403620652638923931594353891092794387916392461869289783338235018106684431695435388270071450668332377506833604529858457120804865424630261744670170359004267993310936220195934526577870524367358063781244287332608794106036190455364808566997004611018126927020348697116754455867717046087029039459290104001660122651802677598807702797747361156528263607778172002206287091810567601116208643971505819351955893925642914395332152753586940864424409581569405128499362486806633522693580681732300491937506053670396806678875816559677840444691753883880121788474520086572942725796853261194891597324120709633689570631752123773870664637949217591066040378137575808696849062806072757452951575254700567804779478339797458082206808391057021300568380731948517441705228128933648251354238551889782671463783812702471840816769738339255391864063220281425897659542588847773315275748776975582403645078151615829837083833756561483972498102497308015689228396453152633061081061030075777835993254755800376730909762955064670315001707384279305435855358109951371447062664873421852711599553246196672499578530707296204212529544240281893301651709858284326433991985851503745172844606153237129387714452694877480945105488119402903819017019720434137863211682937359441383924810615768519994291564731751229986115300733859326858197665442742276860562238559653185758886628361075676541007934674775196882011303547258734426095452841309249633058044538636130932049004016735259232326154131515306283221425994323705124224951231968209659907658897006547971380741387296096195507530537395767953911488665512939650913997209466106779685224736918881198203857776871462229136366355552265707374345185091860493755372926130953477076931801192665275523779912843727166871926208898924283890341552914600087802778790573014680048002196996854317911975033382070701763760207798053266057738292027408727204943405882574353626340012911668754323831851820441960099515828302053933006517368873269635221704635723278943410208054061458128123807309234939529361661530747374175191684625269861984288564659535802208369253064326820581983442263871390544355304229832392185502073335096426646845755504160683067493087819795466950834889493044945552603786769929099066423901904691118611863401624907357687020379375983253434036679375204750702266852556333561721578244786222104939481033557213766647003527872677917698253030107335773651819854457786635001617825013679224784857787072310540587503098605165753326032083781636629617484363631415221331109610285017753834749763196723585029063945265097694138281493360835830767989113021683610676125176756225163958279585964041732906069844763780850418383494707418183683661726787432904325081891693388326929194772485698666546099025545569316276948877969529054185698407534543007509602945326623798822758441124868653580993364381647851502758209029492747186792968491134363331496719500200914285871963046814515918625965717142531886412852694197448044954305218562255858042681740142400636153731800341464163081320198218605258500250795985148505918652626260725698754352581343425963484418557692701519993149556378797595834197668540287452079752427402896145713095115022831530266699756286344835609686045131085807012329931737210621227639159843941770504233315772100756782262395844384728210195460481024754561967200717540468322457644584360522040004331499061306101176368526229657219068567186594676101870175979210706075030204702848681757903462516911115971102095693474482713943887764978596351309610948821428609307474021305340158343873544529249427958245897270809528808252007750504232157945079144536645713004746463731209225187222565885253754402561030937932022106026485069460063507660847690759292045389406259003887096232759724439417476746969280557802366990591707591291868044359970659517598510334430063761387774392337249824679025395238991779590876048022522603830369166858134987564481432928563063815885850952539992032184692684294931711866329116302448255405463816146959020041374845815747647869144128200745611918118703905865954816506624931092119334607819304856972826156195417598954850850754280565309703997220485822651062798742190096960177161948332579928373633230684164867188724486231267028301230579002524612748273665181207368498753651033046061541669432707492146038438013072578855734465603329457299990905644313495018039574325959999120907573448078819606577293522924195269554109663533837335741630904304727709647435119548742736856924054124859163939645660718813247820171846650683415062173276592988391908734353446402914866336705270435703812582805077233033821082398334411121255518018972925808810787489662750188329348769535850878765126506379557513701089174919323819213176378976661276378959960047666795443639317151253849206688556148090757812656932734330658229052749899907888871118913085131321923538202567139477945560034510309542042489020431427346606773206541148970983295103426037186437114187696066828789779198524631359420464835979136126699223145865299016374791868495389391393610862961282327391156668774564440354432421090658711513206150150825960804204475391443462080038480976371668248338541633013915879671210329680141101217585545890935281816602966141160736284215597127238178980549649511776259903399858588194296111895627281542023570444197132367679845463583203281977740763051286817374078386672856151929931174515801399737871955394270050720331643466255284093548640395029922992126650446293365298826766495573450628896120292600957587121300476837073261267504748257846326845209090928269378336025775034182510203019748501596151410447952200511082530326340903356782400607596976599099572056387520551708469212993294359591958326646699266049482285832432256145525059185384869967774334638740921343493502008929768098597173529885911987775180800624698823669513481819858236520072554817101980092198460327700598953470001006395285660511175638903329043596954123226853463701338841427316914848397596178978950736715123803019315895887694160453631460020783659602559030542225708497820810999220639404674899524917392957656577660858370916611450807435497826995515685210621969937231433548435471019949301013423341020809985025815137358176839122318586510617888588187240387293059656429945317986387167422695133526477064486359032974124175746781874701175090520250714772317068962908939759399204545178226242706335119259198144295134432117870996168765554697048398730665890542201376133328892412804674556873749627061552037667726831979592188031383127489842916418627495707358740565710217367620214461985997205501168698376983796196773421082353233069362996486811135363461410306769842717536941408586380618837263559592792269356098397159284877888159616390561509254965097258488482939047661890408337897176643022206074426240069976884678460572754384416484428101427571166188422641313205257960010118792372309177844476687634494238376449144986694146643476927997478111873510153012653863044983050539836910111055853896060397646684888268430991380119350577402109071105484596914364451320212255965232688283808713097179255294528107053011371448772850997768167008821964019800739511656063196759433161488431427668475447408618111598125550819038711012911667628687747187601856435198551395114602292117796393712764638088961026276315946561107081531397230638052247962554123012388663699768704610183724853237189462688136741158841557241917629417123655748459326308426884991032836695969575958723088545060750519718486426230052254589238757304977192359709465274972968837387462551551280907909113981474214140311243596802728925432824687604918512176378968089983113691335088239657874407707199322863715718370627852152733087638172224021739590233556403867646701273604380893247908106527550215770099215241524473493811698565984071880961298940113875515512492078062371779072061722919929283203885572811879910008203065142802343453457748335188926385814556628477810966259999341457904877101052826075058102725352332080518326048538125890509764002806530019624381048012690231894933246089401131687877796957223409130896637963373191505548419639375987858273862254162438916848203774600906169875394340842370804212851192931676471784639525935655228642475467128899939941405643197248764372576655822416722188538303473141759508704398374390535886063775444512237317255652722487860774739290108771372381128355295931249013594445066747627946300238019787490333935031495181300621022818671751919382793091574857729570718727059414928278856805679933885435910500228922795558387224084834648569013804938998026889882624651157598901583250371847612403677335497097614377576442881222551678291501221092911684864922706192599002634601674123480523467531052011506137470054357101321628883268405297289501548646322465868796765770482778427725321189198274387486556503093218264387865035570923683983570054957796116177568328848063438618088163932983443587432213247726355412759040417906873509673443510077284108065885756592356237356352998597187221275746488339240655605975151743936044411104377119283972270592282747378789962697394161249274008175428591628003119098312732683338150877812142982605045949029401993670212240968544836564150872094702958754239324136132110729578866458841104452927845177659033629410119458327648678863807453010291379718409376666268079120258950265504490654327196291750900924538165551295467728857725052321377366827926273470478015052004254959356232446293788344709767965945621304764070786631596525803161197575179966994708959033077201952498410012357704184187963917463718833819870143040102078374048178234394662984118088474022481645590358045148938540008311646376903410583249840790979999087275111217661859074090563537483077212279637496271010619023276765574812064590086539921477780377453489277480888979844098856437104024271985156449947953066818179381109126616757078124983465648391419725910749147145688930231467828700846148782418234824974503899567975760679329284256399360302279467548033299350241063551035095536344452010147641177451651630214939046372684764115054957217552654622790838555404226922852565251925968635183487249069309461867087302415175561289734449091742463203682608483377465316479282501147119285274668352781939029602463141697466484905227277978591737310625053591813650025036557272546420320747670053462466987316682836859174351325954649968509954346661011229181370352054886314608879461623026733747493711014136636515928281066767480433565360170029879440272927044344630271848038503404415935517398254888398434996720446584365726101133660259803641943729227711103310184283243807837293016790525551563425643441356890932649632446671119494193068227501914495201929489099304508817048357174427051653631530849506413380318671535678245116495126934465772029909550833394416664105517642615564801095742844831310072475479303160722844577818972440704101016569332183169539071117833787614153973662028521859909999645962841722761189062536927002493133766809955927135637882933230873801211529209614822479481905668465728890901650876340714724582755260726776214915559446510191814329098565880504067310309593290334765997389967977585569341069537229926316530616149352935577999884842465343564242820286345907330507071506483055034059499564576684551901589183235528863128872178870456428806938062243477220164989535589678461718375978838501682982792899349934903251762811839503810834217267039314817276816917085073787239309491944650151910912204692291499932101214638566118643225233621907980804392060979392775336149590973052939923480431750847401990815774729563562834127138739038244256717982902389749643573787419802038695938508218056137004800213563789132869406872712152485238390427068453832402593491818899509931486761235702690402962923289023849812382521319575489627300708171391084603014335059974803239596199413216593050433284259803213231695503302983343758230491723291937071344575621395575826665514747520672219695056431967407607611752695999218004209639990350920350517767005979566300588999872305054266461844117570218957684932280607603291815300834245204862724145242449815224037823151310719090189640059992066334652499179425184354961607594689326860286899455823806502146172659395148668022802430940231717731648155786938483857717513887285635895694455206985890185685657123238569084290925450579489703143151193598110627925736800280779060999003491827446885916569526824633951575356300520946168442988186813491600775338614990991588821206217094297592583460607320143118316350669970876397697494887048631175686330620883734125321665711993975915629956161740893149673314040936017808658776728170258125683136274944496585043464129022085955549850069746707635981430038631604154319056820042857169618821754339843879805852355067253731494921484656009209375644653571724013923335911948259100459170787847542103692297496053753123160202438401071044852901423148591315574128966122066330144332124019561558561272399569494705880343262023129494915131196802264160363272657828833693480042626124136696067195072228427619207126052566897531493845032643570366453479200064653012409835724577139830541615351815888111761085481213492614597868559230311485526841143203907506835734538930920124822773674687253900042941088370644850147024356618682238933255864473281422294927791517973109544702162400354704242282891324239201515040685165530670767174996333001982012159883606721433127587439337430772699390876438841955100790982583929626854146794503611207108735189717591730478447494701690348056593093028766403904482015048900024853466257331397070625778367450415106407861877164174958202731470110037400482209632539617855669169492233025371914702990513869661298636763301421654899366912574967520002853529066119277855198654181322808579919420229067058251455631057577030055848227694200162168164004029211802309745638281624918568227191373957625204848333272026296090787668928598685779166785086419758411415450715153026579908409859216048097314284298592429767599136408964048274191757659838304887821083278341579880393752065271672382269342595597496792972974578912645779791398036975130543878406128438510954814306697209444228334453992924579049124993674040435047546704532287672235405319638084788800150780569620921620402692759042685220192843789782607063203245637241756321949261008588128275019534425320542825249913413272078525675702521566344048659741074587061574971596265406623172456280437654048158183367679803927616676052140796158298385526093794161047357578498322270041100510949607675847093903304480828420046617586058189437790074260448203751474492563361894040546611689862732126000342262300566322138432378278947823190622898865602656404998295117105295916870609547822103649344951472774919002931178709706243573530868627689107673146124914056175888839370531360739784082478007589510436965153650401302545762846894902244087803117018625740953011887538005867105813756395043917417263678679063726786167718826139911722952362241408684908089565402119321741876215437860500723630228363572639091667171057900532911267037603116231250848215677077522242725889436658081978965824070940003560025744065086925424792671063769815665195301558432518280436813934572178852793810996735235406336066246255439562405021924296249806982136058031785868372909928877450086758046917167010142733056059240961115193045016620409880436513525658746184280211791163004529141218484450612693007882988799541084756607683670945199516462738054283739558130593384847965600814888274437095590146933769449008587288959886976198598394299782020792021954773656924030865830575156501338722628660789514474128226709938114928211588615627383414185497274973358533225130157353707960289582461911749764243073155047233711425253519657168993851092488889114597310245351901750563459624254381779401970056205620554313650759011101304195320181291338362596369647228567159378192212493935423518599060829778805688340274522274805141173498766584670309117544784166213612558692314649448330813448761389766042282881825386290003111334234127125793348480791649909967793449298456052624893652973471652870142827889485423350256401253712814236996319388966956416728179703959472804812250442426408909976417901011356930545699083865152261628373979938376753082070664734484004122185290722606246328017631294248805890536208948248150870110779279258491221001844728903608148881588697197657440244640505718394226484388192557022280049333378783360315971883855686810624557193647406609433180544312971378336612345152734811918071350319943616351222048488552945478097416075806834512381286574788975299463219850575363958481530017002674627838845798013837868679992669542960637522550411377730724525377241757371554456980802731946166671498870602451485816422113740391899079264259822182000431625653019528777230044497466295586138175052825136039110961741965015697528634113047716526219155595740176673756516812898152935088442890202416380050871118889916819849775515544388016270454658802223991581271163478484835539887996064460289882813873974603044382594857414409066349991164600731750359943282257021317710643276032825147787811737764930338234517380298054064376889953800973078868273649876205020813418893304484795358041351707272868573886994396801479626661934259960729303084950691022372498232722927333831919901690724171491824850508934918602685457717343993601902617365991765366577754025331035351790940479804692209285736069760967005654469668441350490807736212699375131897523582543813915092159939670685342683970711999864162477192971375333634489258282695094106748354879987954735858044371538761453587118688809329518244892131089789594690709472509618560230839439331828765306296486663005874827368294268723787257567565569953262809410570331264045020213057529059961858975642431110271368714516860627876355455983138541280661719428963741164550947351294361657767230623579512789198570281508814965489236975900004257558171872807404239432855498194219906658671529525944923786770688655337498652219191480209910485820521171501719969729128136659738905962889823573681819179120648239622617394470433700130293992763347063693216673671458708957267949903873717807704391950526194573837244315523622457140228247569311511216739709368496657181923193735472900082542948658752100399339223586574209383107572177850047111863886894166504039817177480165839560202801888042808564223806613030122922695224248872078471210229313318264394723830108841330035456259490830939117428634073735068068685726737608812456078161509600279569573231217927668172560280972936005547412895640349960642733353573363679511739976849175036883194145436547280650395284496946385654442531044105000030938450226683772887933428531916427025927927484750195626437918027946056455041521276138033795776604579935412403487753561038547757820535930000075868539981768973564460107842251683292495283402111285170048530524087619976455238106824023820111354224924402132416293029576238046160600715257026909303163165414223190619078680924834734150124577830667589140652861876353610293011641831259940132305858607056494321356092264840591994896089419535510854552694284661877219439469746095198700045181490807649391718377923367979918026760992385368353051875730164902607135451505695041194962903776027343608398053183676348515306354104974425812438710918798998339613943742184455536684859451910167367402159991632527369379713386751207206529642602286118335490555902974559369312103660746226028219008946032477121065584846851555781759914634010562977272784192220855128823672564489622919039045175410932936275520813203790119375899278843848430082609604827383932713998284213002352858322913609276972547826243652448987459897461115983110494561406714166263978114289341524923547713144872993039683239299387736181138161927550276925110772741790122814975013620430451655628040360644072158377526104278426141885165340116312030563650460659164987992473419582117863232579112121671451727603456647311260414241513402454802648364102937572602893061375969564525091431100797714083383397391040124872422862585334947428443941219877027424281812812281606178174732342642474783328250645726130564915028908694850489083028926771534454848567778518716061970861710937262185668451945677242929463281554023904283381208284017902836110203406415262016856889875373274782439433405835210683990824670134125804440718107424998138852745430105133324265887656861702104321376716828387351915066994431476614000929391485077654742601944646826268861208018922963459430774384410446714695732783407406977851240286150419802363331905686172537128574878993779664431882683788921860113143177266830098762962450808291829121045902417853374678891017544668597779523517775407969047807518675442002319922769390459656181612645852703308874764157202690559281738572271628996174213110088450990450388093086364490156962711234882386755319793752737256629690570611651441928529144956839688412555144259728578486488336232872409271691449534988786942505548537039017785163378641709140415803548001865376100588174681786065277897232437627836284372790718126342910215551551069740684007026652692929280774824274866633748401228156472264839193598119752160678514148493501615384181239311072793689378304788191369028474095079725854529508943625316044508731492469800949739480690362062339846033170772275461466175485351053781622645966179053466940870149297419985545127435242102093475988927703975362144105861797016540843191787352215234962122024847863322122923282466572357643947862541218195420777828730465610882095342794905856798194041357216082172784427397521388211912059680626793575870383164675114261522282965970651015559198601980723503952768031085222216883242075580334889392170362740868366066332982947332902062686406108382747034741655540418925938710567888815907386646059929408473631329176447868331084445418245297393392337290150762347846437715062017359045209791454227034851945469457926909138600271000966995554909240772325142062251117381764217080362047276782024249822722930072620993560568486223272129982551706282491919653477790606428417969367425651893910122145849493848210752774679677124956828500720924433330590232087675226275860504818263956307379110069860175453694921314780317066522460911416456092846134199783516512463121651514189215821416257417196680346814851725401161106390056725554184675003497948118875374422339593466651353397802877888709102853647955686129245502518177444665993029828534061361188963192413280780951638287328087060350981808458415351802857895937113716283722294593660473544133645101115320976217629267772087533607577934296454493134987814924835265589618007616789682360799231137632450707025390139037655805291996423170135080548702255226092357266910537015471455237460414609396816262995894420048326050602882326729021310208184197668954972499955522551282232612207621478488808022186624442449303004780753619844466949734411643850645937697022491931431558410060921175780733625152008417333517344139487045995872507020135051445093839475001496868570611110989785535933509149100387147762441925348745620632885853474531612847570036138608396406948320168824616565664028748479512021330245427575104165008329421357948120540329714036791121235877074269038878130643602428051390867672754040576180347377923840505553937059605482280338531064577505273083062692357030156315151185878857771756163820786789058475371143098637275158118501281117932329051798887970530308233969052158391244098420219647832817233354658327762063892895425849304682971053809318833875974290634220614571225571789144492247694407177907141242652557510260479839380106690045208211664963449875399015821646514254276861770483863785782225337108484708957981746731908033740444502965997951082256755661113412707372168917510596882677341419857208512574768793459345332401906604369086369062277614044958585990871414007285378126107397122438226059265045849187711476199122014377910999362407336790246797104242631563216254160159210011065586839594581452840998465682885864542356256615900735823183662979214833891873313234539396488109857821051475415139724843040249278209386378831491125110657916824356193253355131339872744770508340027775810351182655932878526420847124631395370020018600385420189923596513759989359612896829038077912833014926575057148533872501891255566968850159121098933213811256929652268914008619048085374964797516369785239270329647777629183202040362534114378432752777830087425861716033401399452141070017471504104783669380817206036910148542600626641061876629966873509993396011228916491897077817620043216664975085212628946598396146796258021425733798725621325852168386011633314486874743565237987110585723760866667391367646349405442142585582445171293663362391972903842714302968725161921185847526536862495060700647749861569075093792276052691313924671858357699554775456363991038054380143621521496159062634255151249589911119299679201007561275858010861891941926551550948516372169354845407000167266913754235870292280983844584975694179939996898420496635615068116875448471285622144308779324417960286207086095288722912024757087727768603305069903388900885895984665903206479712808397219049316090890360945641810773819823965835640782081864787083137706261843379351357935270424964834691501338333317515760775816517503538519031652339883078603122911941241628828023604179762661701739937373655906662667774763420687234484503144715056657462018855270446531444406239671060842179559638357965676243555719634145272245815310352274587301913902269697209290164617525473750443732694437891978332721352447657509645823780360444234664718801663805970720250083960411747585456259590635938480614002826171588979334698001928267211726885278101658347270830899357391365691230633786938489500796397270752756810357620083479138387518230239190552697341837655444251223974531262646889147835996673203444682934369565700776993970448336265318525296571514506568979990503013697420692574907457725441438603169446407276179160789499841570929234110761023876666994365292785696544357791958423615243039510711978538184579460115460646354975616648583073955450013002333831812984630506493861443488559124848500408018753160563358087614026650522215347742684735923689249235248136100523751461147068559069056196802450760862282578556918515613163829247971854957502210301404972102006553965018350994296186106461348631960097730726976555090905746789487966294055827226108222767952061089918542214639063016703530057988071054793629149351627220920209013203356234640147927397271671597205670515516150495090128146120274222156762192138720660279050534070493186622538844644169226148335614277949841161787304933228464151741684924435468611990837831623309201865869718941600385367517575744785650003912707855132389694919951631036613240566790176902686134812632532584503383670575282835512266591730159094724051384527565129250605866832616123874970533998152861535809930549649213541279733547943522588796045799247315359508643715308967191846607052388200752205679441500849422382279760331182160253235009944111877254533383083268539158311848317415088548716399082930445368313886586209141821827182654864218247323921645946254960252014330407350960988064617769692703677691118223833323264477505668605612192876791740111491437463325560841622680833713011306968020006129993328308322612018731497331972689696849659150474951078445415726742307279693201413757460511262023187531221217976415644195992794932694756306488998920652977033284848100052802017510973580060337633777711977965824218607580989498082916496862767331019004541476531195975241509648229229974998815321843088728495549888180548005724737769979407086133027022461053124798255092349210246052464713829291672402480628921841841879941042704937795796842129115945485904257086443373999024432193619702816991728916118096940725969287852151208658506401165371318445096478338954583605950702834511172495281639210187775647705778298791499664349670013645685039941059213084396682824755924857067455960457433647663556265266762475380329756859683985817598467900944336362929873953390468386405570267311446298937572358317129187037955203764044010731181953526674103481682046301652402703791758718585503493281308989533573540977482606814965544967900645327316408047712822166092417785485182062224280230984579500312991098285779681138335102587017332744539985820524192646627894745832073107212682772737008826289633761499378329342966642522511885446712811674866903511574238167444438984725399339136478121097682154470260933433613798657510362117353431584620572532791449805995458576126945391826906471491804442934891700674678728627806036529134867648622893340891135391546520822509041293773191837292560591997279353677942712833747155490316392580696547552814821793161330855387889494020474209720633626657048486736457640325408777209977257012835282989437860466140060455905220053030301445937962997417644480439887417196792218900813294771864197969993491185604783847780219032848022369794110288549095718803723792541671999195158317077033543154452979532742623778884758050329000753434527030280272154245945371469680201720330043335252675555339578033324671672610857874015725703371594506481705433333928939347858359025551648449745962884827264235802040751270307282735081811534341888920096103236094200716871771298917098164299172220844409340196140789937436755733171301164959594759683577379634136623492936091970601536467292233286958862799673452092333505938561974412101534259909440535947743237592728376554650285691054683497702680418403986731725806046551821097356830842643216618031086487594542987722851255398120172378891764118775844349921204979303689586881272477898243979739655708037150842288742743293775098439674133541985878044670231579151405300669250962076345677037260444022363752804108746380730910098389102694359081343735460415241778658717045503345936549637267055583697498524232423643425143787610049622650728366097569982086861086021442087983448980923977315028530342608981383639661596277026227818514027643469924720018724940921646889487461319405685093209648430152901763118888103358858500329293264433797697693095459786532274138946046990894481315111831958399042431652814604946883116246366890128498974484503430743363031302735463898283541321631983213388464921029495750709390022841445513723501714606081460129223193854167180496411383675129793887825702949473587460370350404161165319292317025968511999584359082233492414245107240050811762963907287110304837875083910759570536573176658013146989248153949860105291990536982362093060965861356213913152766546310220157488156610923721306948010024643823783766740147720213599449515674456772957889897351541038675630966459483448465520912940081930172828056320194966133850873813166585770339843293151684964624399955193589650114195235222822419059587728176381158474058306822493754680728320291420025388668197096802965372086434288106660469293508178856202595819509419585004958496372441505377509518500954335787286410748910674918117974373496443292796127719261935238902871805091846629543248136330220970437352955391174455991477969268069919393939192741308014434641949222988753899159615366046726537246236333691760926665451717854541255176762277307874650929182204509845000986243725003646562900137699563470075758309090154042345636480358021793825953735460248316168760361178826505991496665523144211456113769567162016196902718098283630843443540133994620779303356713409274439052199359970236230203654190689629634662640833533438433447271187002047855692896274117157940367365895630109170797267315081262815648844009713462418032817093557001546680225304618238004330507293148751194478682177260034912030912755670548354910249463932948601278984053865942041841946836723518395691998634399088278916378317883287445309205514175999497375795720242327901869166114902874411650491224938256375284769405119678229417731573656271450157038697370158438421698055929791954150452361045156104873858144279745677515205010133663031805847773767283186544044135155861653244182452128080982287016088441546083170217920249110041157062800618604492319882225233384673589257985925205233347193478774492611356696716364765309138565060811008385919026438293863570545885861079135659909291809616363198926621508007760721796012473236322542100762185223396274501882912268418825700338818595185116118122057533328227514598595687978114025160287192433233212300462720912117367395280481624670318485814879639107860660183944410076405064766398392571067096039397881353798728689622161189929830484075953588504891012042842061099380309817126048797561734830751496472467614847819269390334156250409908621568810185072177390836313484842383241572949294026730136381065129949591004875945752854148777269168533208456056393219087495802494420043144836868664001011546651980460431606983527175598073601581214280638140823674758369806148344803078508826607641847198699478887164361371567108909419966136620633613800412473163954322181308586495290284871988023401210966117676969458736370527472237082209306792857453680658589217084717307428862782958232872685048555676665331190997430235477328292923865105470289150981073316873282227576150220407814801312714003468947244589707537284757545988703782429748891307947735630110852925974071205699961677599744908677081652244136432882326831277759393395099014922715373062358439440217897211469187559457918965365417015160672707783338090970214773657223801976785527253756434711374752783117401508804314104048052882211623853055125841570505572159056502371635997641563377003001238968803215181976658866159101076262253038393725275147167684821839996107637375546570222129823301763191673980199321712455173019685202373933501526400752997912060369672497572767919366008131407561624508384361957530877374224040439848629394965290325914029711234329722422551293016123113246599844333512627368874708283274748742118168080346676550668635110734979190663459834861928258018167176442757594912104284963739437434742882138854330065319028072264611661770382324026089979168263063848147080073869556772012812597692238866665343289013445463333503531552226142984446782038126366528686252407559965265904825847741896809260130499780182131485162877441537335909668633328872014963054218525199308072668568955544214169978879836757277774876548184793505565493775262712634405642075968685071905422949672710279410866183227554476102825892668978351382970498740248116368051295593421557951143252001060756463184055886728216914845001057639324639159947600947369129378579634189481864215934215899676283511366513397287773751176808832102425053936526253681695577527700871311728939061481419000887615972378813672680338934096391555040290536724324082818104857417018485224775643924810001633996473431225799475296102223797466534898895933256710824932129479318828669673333189591418196210529353379839688182223143603520709264891159823814651485338856978242595711455389261332201303973112475599603716155023811092281054669815371826253725404344218691297642468228871510301749230493840533933605176985011490278097718810950733834814462165796623391639661871558603069449603508556335016116823658067304636598309219283457935864633044078429386903577929811465594522920260061821261990766081993845724151812240360274717649499682617658655525002225589721920746782237997251008381251837558417629846947329357064782536175629676091865910263683511297319219156952770161639459235203872213718292638932659689214574410016561323104656979938075473894696018238812462067590116305186581214318067421189206059565491577203582470265985021216890791038617512432955582452064742896023047802089930935134033276033087544289496738191703534319815972854922906618355845754945186503030249440344928661034768344432248372996570671258287509469832203510948375530504207555648111516520911069348827383306209708537302138036575381005556289752462173496228428897117532728620595485142482250990437159233575155248159390660137301416124738111312431552038576040529174447448875552102170575614814931759845669769785136840188432113528846372619962586603136716029786742309282208682964641073544658712933994108145231081698427883311418944765432991164712878971912989947118695473703828015150772278592769669988604227084709842560826450033218003105169893152416327804602621511469975316999586078332027268065699707152232803792345443284861592387033703402895324009922270993448203992423614973558606875169172817239439932946891578199960936632796338955799236583873112185768735265848221704746440293717469302195504913727666627531483067529865170511731506445715262700825603167611432750788204076336475545369433762761746070752698007289139074842945297255497525107994387275125649203893494955918520995643724314520921844165915006608655147098435631725371138065628030845754985475417191468994038456833774379995792908490351773671208784514600612342996502010691639195771020418568790212711281002243660959721775860310133817766552941516260690878930168589536831051675948447253473313976769339333403439532244487429754092372983820759309995080864734091778964442096940920849053541818799813214831599062435566568545448269107862417707848553828706369432411796337074126465113700774748759142486144912786626870646567216651630084039932459559124717736613808049160109897855680695094795720611516251522453011408999797798907447170229625486113199452286837309587790320508334919326495434598253423115544095874710210864885298289055787194108234172773898314543382489344578338809207471162046205465025921470043997743911824401653410080579252109745242116999804083474638380468332799980493202426234738175695318569389569492253290863407727488890152597761123527121972712310519804358727988293460490107442092679868484299519064470142499371244070054750019887323463864046181745705653547873018622019410185988385560294032451197955567637347654340836416423672538961846703662606793403260711652937144613374503317167580625713366103635723749940884905771775141635853008938363319649795170213054586272381948862484323218467328492642830486877043047224990685546962849296056871385856846316159950872307458574743247974193577942994790114425896884378615982277999944424932777347274803557605590109992684086798914988500621779271954186590855809235832914210655673736430839804591830455933139226955303208467591972111387270895867634655053591830674788079290072904236954202024912611369654818373433740597893937156187640791193186325770892592432073338380199903517428352252603922850517460070825223843374594417526391454427964098756298552587945200104577408211596307365982472591022922434581067495237327122904722781565038172435766932321879887002556350376646711314375259734886389693568690227247571130439840612096741442178951999235961832889689282465114601460305292709730859809025208851898361339174676049933962002642735062122427159091287360869186218135847588613007978331674112140420157659401859062231115562920505376247719716213271768449947069464855383339664998551705483035478746242635508799116689370759094491444804693837306722179611594580409863528492608898597007122676517135668362921354853195767767803997377837384610031755573000234767299009642307183934654735937085436127321943542008791378134905887231981502476917614000634276972529259751627769865492044914150154894553818180568111083168706338283177115966409125623207588297602063859982807948610134542997383798331256891945587352012540973527422766976652743624585537117716780843275342939930692046130142427300718915043925400906103637160014601233876358224910935466311362889328989740531648841932341094647370161615073019115762404518856793156849068540557800364339832191048511144377252692145344052265667332781592223649607321021267194599034779252851486265479545844114918083419341796914292832961698019557837425070987532425398633555655300051686315810108118610508700108401520876726312079439301783294779720243164855868848924565995699766311145715100701962936820743853692600970433038763244630235974115216746795898852326794943594281310679850468584664839615248357777834186793505277278083933486035583419631213618462386922273170346392804531412006747244425360753911609915140754850360821534237270156988712456626877324346585792631783296279686956504697134412111096127965511997381374203318684968000592789365551223040592214800067254529646074157639404609885254482714862576685311019641549806641456400256622770541417290184561069671076013726515740348218024924189753575393097320101572143727098645796373136917603396802558376187946977914319938396623642970573509235314291626277595456666419477352937529099122177213944449358669629042356947687951107707281917345749554604492804441539686102567103220382153195761108629352403757508019066308243499679102875080959852694442845862669202813876202636599034648122951202754541237468095957443433721216949910383986112712684250085414750527006479434864552298395516383703806632945432373184716678013883333269650245524665126309657378215685874673825624211512237283990417213698940040836521670997389924517315258781664022177757050697899078876079712783356938727621757377759937654782546943836368215762014041010089045489422268118724088852904908978170559473492682369191746345618403731112192365826598002444807316591583534588748977219353357322565853096527464779749879569132174775901417412191937126493722228144654450706854836142105872067425182877086329560094346658818942401291358187831518106625643202717668051782943871524228037121950365632506197847103306848367303317480151381160362856327957042091652431100791399729693782979493848355180096155832248671383103410125384771851681669094195656650466938588564925971361089155592700291209992574305435693412995265359483861777467110178277830772047980896245115498517695602422610189040361893860828128740327285902976568796239238561185525512054852677936379757628736543766472990419173005951221414250097826894280706501062313369374626612589800806289632524872816568003659677019828267753176451654561061320794747331976907217513423195744357310004456329385006059782679186314692733653676258816820603699926484209307450764239293677643167788626752124848151868366250486169556044414195654936634580293375067316943039863333562254234819719490159599426548820385679186869169494962180185606150661354769637731931039208996178874243918877191676939044546970661003537562353230730192599078312085850587268068968236084957838350843029886596934335956262329390439860463960499073526793153878813058039753325738060277798721421174638401074201364401705215064096111959976308125818416515698743002084574231321436330793480420595340842282303271892971253278227446063038491037489543460804588861899851837506734224097602689548928024185584146576214071143352460740118722135816091849486885868083676445574306436203286836570282483653620001168185872719789857798699954632779916337299967865010731823012492662747922724843870988186227110310537713204282027105973927425142680775402256397469466974894056862318957870550404698349592921773242040647771898311551337546256091082714451589255931864508440249956181395015772494775523614522267546698213485714776892015176979168073978926210768851804348065923208943933172954595865738440623771170754524803902006249036278838060166933782447865794622505199062410719769464048152832472403636323183570520803956125892656972897582060694257726742310909308360423981357974849473655539511103003172175356741923097142587724158652470799070428560331801296890846675865428050588545145908414522548363778251994976245276868767062218001032745417455550127179576602979177571681967748985588298583839743976229249014931620309896724514758898200516406103793332648703569703276200440878106034140050152235662712926233661368931383464121707420144863995108552803817590559686201458698578581720001010219863652586328792309491109212548250721095093783238691617596543137968939852760545960406357974203864476035675986976647540665921415587323869863983992103358014737187660125664781493202999142334533095368429542311214412418762293185546213378548501580354817060609224558427411622781922732654541888257481997293614676375849994625467540714512552569329942728317211624572921738981719068981169912623290322389438633870845482693289153207087519718697237319219856318851233470372908809473548557186716989553828949214759743906441424009250380760454145731394285643863947164675887563718191872153882886993028855392786033984762539541704961616183140519077820914837588976972658070158488317685237841463151549509943417522318169983957846614523988838237613826954254137035239393783368397908254867530963655520531595811675747444044983659930028251756881698510872591333638147740527292088372126962090737780970202254529673140819715321259176484379595498616679074322905502884426497823520036910473888893058302273241171151986372703787556543302820922269001935695218794009146553385253424635653880793347292589390786060849916793727016526198630064236625450949183002235673153889848512854828817572980466223566772250606126978699856540810705349500125286223331038821682428026624375273657494710614950556806969867047565608241106973170001250642476552317675765343275422831117303084123382559950360189977496031266234228714582481789442808376133312731300492354845329324511085824826357809434504379427389623396155553233177451912693344666510631875794322072974685297253273061825612435074050930493772668433079128315884909917008203546463181663794667614409657962293871057173771470005867687130687287581767143102394987662970455269897150609254865723908680875896980569821698254492143118858621459106544521088235433357554814166277688626022327781923089457735476368528592641637462077471381416487590115185840502646518834310283191654354019355409057596404160197504509185151927148273803588262821323210973910210969554274370153618535621175278778881742299661337745443533226142035093838664409507916512187583290941407794497396756122787659587637458549983377095857973696245107243101127456316189744281659663155488095689490093806082458348305660202538349806457206569403695568066952202675618516164762811887241390944511440560504456432406684346186272953661838610891426646272934176253814942092669720744495244517777153524121781127156031009233249683041444469429859417350913971515125368298266662471070050119581677061269731703307816387193072775955136995293009943996041161143615959225619247712307165716514850714775377021803683377342138719418837519727523200430553047029492293197119100089620767691320317389449220447426050125933838128587568632255577559197110879107298135138434089597490336708579501535691008329417491925151515018583887159918509452635155628135113522887545832752092634896570097485296319890854908596129827561036995561225590042203261572135193337912750741086868109366356265580470100705540385590947330800553415594683389894316817934406891926512618340872214190574880170740180549672300699821019401973440397471513946675923532270821193087084282287415884176062026542300829989169882431195989882603492502977006166996913934589732648895965971135373505450425705688680986097253153342034063805040170965476197746434816110068643432006697332546243411065828591786724170948809754969682071443683736921412697057558581507603979309758433307226107751210748209557479257573877647915556758323258022228532529884266121898336712490152117227783465358014968437458598746674427023360267702112210408027064642609552222719246116436880781678036708471057446430623360990125506919080357182464821484161800519186506556965737202124981177400724317139971862917661245643803160405384147983414439798630456207395683020619328572739903186935396672430676413181449633029736674900990751761294951369535428947061966496348335028361268697971482994647609283307593122509625546589787815329060434175316076014667223763129710505294445818703106211622338874719801137761393713024691172305694543439030529394751700858333708394748677875759071022712194707466440161316345062406166489575220470707501420346341115743222228874376663768122782641100621639550187739604022323921154282268274498450062449367693106084780905905627782573324135378758845221441536886214239604024042439896327762060021907585094935100443498937202704376475747740166984575275610788162555497806081287587336807457775590233782529050918959981215130250559970388154269281573084559331888708664586343591459204491369434944061721120746132961531875535007497258788338172640701386096009852602367477872912204071784334084484151699571204074810637233053495342786286663974221814123511477018740172825716327105823812960505664285107574137414479671498104559908833524317395333292735023533232054329631817451802890009147449796823228851278064332267013253626788252967684463859075462035326714085941342619167229428451056138944560604352880362495296463914715164829052704325026533434824369629910242255281566967051843262166582130962527884542086434733875327200782048426560862393656581269197788377405439092846678737801575741465576323408780192924109642297974982626428507901566741039615319528913983785164893099755069956441586107565203373988722825929573319360356909849623029688909174802381613007978253943961391335019334017715125684691065067586912735064308992552711995150059951927779283997724415324297546757641929308855191172671075941053513413751396727871360070710154392426398087389663790448915543560878602256242099287466042784481367005975815726361955906900369155019188513215763190688177795657817280500606989797733962649877815901672559379097050845827896666069981378318870773066599858692789446615713011820957697255988530916464419962308138562723792924929729428831179165296371138308759812947622118556159315131224319272789246488772851386326528905001841080172285081149389352115878286789194783068578811461256715283275944067431908867673923349223602243657050724554254366228177391812889276417064773225956356327294406042085013449704377654155183272236386489465694681946932738216819772840202323521059757192695480923025947090279993866800244862061043172881035136418006772762467118252527736489114134612676803566189752393072795408072221069624695586372296888708122137015751230635199303443396897627520425630338433421350985007623588551799355905459313846173581449750347465019199330531844988175101516978164733441382857860495755201040783557104182991436879560757201729595526596107108853121290217038571470820497374475626035156915221515120167321730041693749375115457698317786481311222107437836982377363946082524994769957464030800513769374489188159002515543426750977497688784056537765999788902643786697474196317444975876658602542992187431325111446581370761500614928793484995096638755695127735096486722779851448379496291504561772725134973640528993798661549310815106686212162535265792612992404233039188186888894728826874363788635102686002728853076685103955335909730997593462088916731445390318882323129035248593302958866156802678215826459754563275986124174263872494233067702296477867804203822809777840559576962337473945363032044616104748992296501396238580736231961185848863290321031723715762246049189643146302676343346546898685608266352746986348675746785434895060344870521140186096173614939474261225791249408465596138232630976646145890512142273593676331664485754752671777379384870383622933166854814514765307313113454152886086632761585890559421746638860256254968815169574779949360410214748473790513152082437406544945957398408954134261608704096107272772750445869274821137342257720704657560275083956756353611384269842053732000843335459537781572640038727369956839499205362888303879693465911991680026518995630092208893074557731774402233090568872396351502918180752061867168003321282669380570615407253937626893241370175255617593425296037222738395888141367792869619597570814032008238178276868015695527383170846709860635326823626317806001868893321808623405886644948116775997353523105424420956153316256179736308587938271414514625373497439977023418294253393640867195391503070131643201180521391620529489869041734032069985726184188158293283338506635240161885858860017377281617218139378925942750339660042658438370659273347864330415916097582020347346470326022307898291759207393143329243969810852601982934358592133593112647431428600095540088777012430936042302016272331562386930553513915761340205432090405821644980772813048775898433919384956399372213925974410617610959842611556111344638618047646162902395528405814925952880746906291821548428550147580073403196922540201882208732050497418316590473066459730479794311224906074756903319372400230309181906999448142741116484883320584582821538016070217040449403325024047702230517854193335214323377393098213784019435779458614933811227566906849331691306096241028614631561685864824557909791075741405403689144416629774468917038460613178606836043775784538352346403698941236709368175734480859806237002237875270820317270438791933341513214873819173768218292503160557248468630273553934718721238614848449525627463659115060997527939405249228143996650518943860167510660124632261505612683999726485347953876203429857825392124914866525560627390110484931543237180398281906939948343631057805189932598424286340979287869421584312579516787341988658871293139566577267293829811553433388273847525302082694422957312125247512727626510412002282337570019561092539629832987325758627071742122910674924328885692541646599023325376135005429564461903090465227587370459325313070852843225384076749296616296143820873082897846617323780024458917041865868949876279429959905489732624607091068014801743760531715465362315160273660137805841126543164112278676656595907300240574816246965493592553857503406035707748764765550759240111569325539262198683965620434636235001789467777497143591629767939227702033014880804180584953861631384447639300219055294662035388459886988953470945169913966590273994668752003342422292152634573915723252199962635013514452081659723443709608303890916584445513140176231017841366545676622675172310293762748033136326437098815653126679503054038416888247168059296074143467757722271300723370423416823311256621191392529815884483462223694541964009249094095328229987631406334646272932006819791833252400454841419028086630345713912341625788621912259471392578959181175832525734012374672840496146519667645846905563780023100398660416736409779180927824384882914633949305405267476329663994607160726491096307892371416588741010500368564217766545718117311796394186248642335091847451307749308546906991277564426462905567888333442037735659857960396813226774721010550436206836974653702140938251070923754665500406511724207587337739770069852119071399529337876979419168946690409764094824476124595681661884449648196495968620787934865208504716451862556129791345393621910318732647284948866234115707653079256741734498114752103232166919566880839189088629231209066712930641201204100652021591753100448032774673671924548258112003579664652874741997607241848985780178416075258161821278777662537953638962152990077872444743934935527222432814533832853755869983213925097148628663104550607675667188418124916121371436703483650024780360361360855188572293493810266837549231494575806030546688157719741994065844384372114660942818432565251124839221712003268330384378732037841977199815983044665277785139740537557657380848308250145702781665435878267958871109668730929227400707708482451678767922580458118347571471312463499983136605784335259517741481082528804352944877463909351403864073831244981204210579319021510176667089657887545344574275619115551408475156125513097421898809231667376293726072193812500123848606533617631956453999873463666053023160380963495687199076891886164426432691364658340475542718046597468571753663497517846853357171693479283493574431426794525233697703548587386284134609744953354970818023358486489860154957317725309763816617714029487038497129604173182693485005102993066200397799827196965233399842145784335968771644128068335635586133003657792870428878065127148905160247768959334438421205470828353957374576841653250208450852094377642169867513298427605101650376921330058249528616312672010962542438192968407975407955212306225130903732920299430047010939824679152387078920787234473086251401844877159910535399065489728598112631033419950192675870004375713856067462869268613322005803125705517617744053299629109814841280864569835570171730035644815577390258575349404083607194290946236758493116292192367429788229643209567460031811879525662588990360343318721798495558009765650305448308914168897741368343876710819368865860285044147031944240953676796085661776563275343639527010025329011882843948619896687761645949469485226397976373170586365353990873547077843397886535387230578266319907759902616688417089392686035196010169923491651471692426588647576786570991062516417295630915384272293582986534018284040899730270082969246173383960238970242186677490745879116769591336925960436482533968306840704567558476457371298429086128092229127632614012218512402655029691036583908683610906475676928748247121581575697462199078005487301273719922490275007549847145105960521834648033210951512703099018868348044642734424698067547336190597728473715855573792635687699579127701719625623723335513493719003619724880006695616360412266236682835431384542594200390884034167136477158352096008088254824986914494618417469659750681988785906852223580661426779828875778242776368161916792623217605251301602605578588666149712068118115700193504609684061452917203404577465214639223512457536452088540720004379260800397214631941735643372237284011641883989430880143449885970294087735186976930232528067114728422808793902908998332002507280848962275613621496818439765105066830199647929383577241297480806817015861587336000013576049142143807275506969113555968057179623703594235661581125646132605626964324243130035997764685431409536747790789390207674707341590408574012019557812669390527372697294724590264672871226906945296710480617705589012425050846701716675040814800039258461828351302914145924337456489160933235768765002251078353891211528911404209435410712047862013803921828326601664818931808821379966991352246128323665035509165225543602826403564679153323425849355925537271593547183656256903036647317431752238650902077978256490335528045999273510060479971838410030749334896132387518717022364835362355278013124388610355052833184602176228309422375290818686267080765919075597632038156167036487993404441704893913758501337722341284466929081536265488209959405460753989894344941874200082533331663485220588887104839284343939026732919113424706898568368593440667873131310702190465177451717257883700672735371468263906278142992597900209219618271254714271817268751012695834600436021504290002651427463108518223726084440011289678764185552451901369915862039174036010573229011735522533586997095831146051548734437363697985236542129365828372048291666265691160067445779920612739815300230729991957086448982410255938377983901422171140503823009346539551750842009546033971336666420052048321783831904639735091755976405696874993963938047072418534630352422742403156242115216027572244207611008302402907626948226571242234003509405959121650661394471537333577410234333097109442435039793696754148021598605863321513028862684349048233867462566851928028373457854949613320979174238792974031769125074905057569433174789710274937683673588870781421968873082421448611891809979271534951863496470690522101213755329333484093020488938703199953524929364872725532669574645336440101548230056040516733032120081549691405665808244588172558164250958519316532842640882159969595089797980728777932668247642769045737512424714434238880960975344908075874359869357426499585001809844779598640074686403758161644854745771407133202322602274147863347469911712241732547572263182526280430383884676465949860074160330156233847405197879939908175637265799157718418268584569165484343947797517989708089027105098303158910744337285073114812796283557904222812306486894649735043992107277824683856840482907694846937615917249985953279711229759718655888170410252316078302513864500394332410144056511404961077653521988645391802317885057055789040669480313979270767218601217164932563687513882527847294439954444862303086777142922854758333913018761323958913553989946283466221038217364327912734419611116156031152344035769072229837621494826585840485504270795099411954860439096760172690057455577638780948434128317871330385583403291829556128192160404870939022196015878461540825430239739411891773186505016103816121275233558130606350958278260244282995624155952990071353573692384649435494741050323880614309260367951492247107491754692683135542338891197210752961616140961437297602946977133981449562148247056398661430100431496823109688454692682700935645074251986235013509866039016226827096487862339886562158277061508168382636994280891595927502452347083601408847494073565494559418829395579497818940356864550978706565988607948200976935890159601243851063569915154796838947168525400631749444510900245854048752048193113613614029543181809310664047266880213205174041072027219860861883307631066004652255436673780499733707382246954050743747273123374300274561432773232529933870078320660831413397086800718183735147634750570496379542138639278170278705931776343161836506935370126686658583630561457099626343806953065609591889641252384019826668897718338509516808115642398130654168195652282003144625679132547106412689195213737249151585689859801723725827175361658325853848635996662838325215245220645101274084018851133893326264178865846614495260652875521386661852698090607274487398284000807532901831614750695466913364368535207259353805908181367758937265993225163683183956699535200620447213236520795247169869007593718020697454050086807890420617484555634539613613307026775677222116898619286464144996204329282491562992642652972141774224682488773974299486488799730339823569895298353997759202036680726237905892696454164641203747317319916036209085116052237278644706266612668277941231269172368536274838653370139222153667606132907494120290780790937224344880971795628053136310191247174809406893941694261287556666362307453989542236168404144944999970048979649823591135512021085615048332806515419287928909518371270435829328197683520262315807217042734509750800299806686034781172009462164518400512175190327522672807012664330377395507608215492595200098575030635346586396760558575718469383994010737409264476184529832979317445714492000660372691990840361442762203649702932719394917207389385949138854340539543497661262468262702670433353265843785333907898878598065334007896792374678887180612693339976287623452951624856239595737210039669335200463217525719443565561705802600666801063403986455352988255519577576795513071032044803263703150633067026647343605596630626219347539819153564392920368422416515677246775284988253533565897844380199470051533316182447891903656976295320801097001967316570011902509539680028513672583891387830856861850638799986029575397652746929729674203949552159642032258358228952558106043350667180516273825227021023346993273789293994676081022177472357983454650517152598090444494703226127205968975876974675926946892706729795448251803010848051003163613635638750475481294865729297278903811093275186799781041481930240542386565194721196727709131402090230174071626720302148059977963309911693457074191647425546916396503772110343192567099032741295260286564738284036339774942229654372250619830562790262297837690953542827873759290128568515850213541438678630561312079400848124808379476642283113256779186126704782206152071195200046009973312314809555996933149778727851437078228922811576554106034755367572368674656495785471241578019309918643577835560650425911960853219078288728758605295945243603946261210638791371580742509405694059243657530270660867705459504590522625005984963416711587057798488600377892867649110085074795640294905753933271838536009884692105486062140503465560293280937887405689609069846966968898201065251269411998454996556689338822811111777052072650870011060970699800568874189673039182504206272604429292856216687127150755919267922547680979876429741871300564914375713482308006120311296275946702579500993166316973994650963607972365222530903225045150763292985783570474849017591024631460728145728149003022453758700119069420879882983372307667106188433320846315359364751571316757530432009938057039887815758012410333310025577107653861726277717292610307624645985989271395718102016960248032963885610814375769076916347639520008398359625417159943183572491956648701181807389913450148140529749835439856345624051866831015921826915962936478699287580720095797103733330092538185641441956084242758834723445781096429487652835554403690958849650099199787262888484213622294167099097243252793754308102973870615863720000483380013075327829534964388199653574652805915087845384908570622678048424968004329687761769674871642731241888451605605778570465253627342432648143592233186422189791634633795155484794475777380979554900610482544105703711067222446032424783015203676124621110333308890479351272160033472662908835271802465111097413081560800092500115618283851290330803997913816799616623062717419630514939987729707269800431701009776712295340352543960916343803863899675993469302705349377446636249659329199850418021504844936569520137003053751375425666330373695859181430640977571208954907084147352804477207952901539386623293453261479837840843792937607130647255363489120893776236800501283769524338865396815160815633260443253765832741609779767937997388253088059872535152591766109764705765514932989137692952411513594251467161779506899393402594964191118231686032684954482942192954892445708405725485397859581199149126476758108322891993379015082074116405398977807493157274002659669022761138949826305743008707924331122136647362963375549274369526503052003641889465510178637723531539758525741889638446632660428947743367592180689965368641832076907166702766679896304013936907070629095719740002274849051854202257967798358499181895776439762114873661163679738283817646893049520260772438702240359153194795401241230585026104197465551760742845312884268531994535668240655057669865259975662075902881790385014231480208393416169620599727066801524552123544388327018374161160478553672234738985527913053877373665431231611097574495419445496025325480416894405603019683144912547133277020853591186015966718658707295131414739426977054884703087587370014502529717878643151526627784868823982027764965661873295996688872676020118417913490693919230732683485811423216783634104242413919938669167102188880020412026600455764573822161174729542079974002319151193888136169337993832460200063683282049019009827719091697435901266461606025377082535526186367778348682617263406659313195392910501924158820024827739989634836967254316261386906261341498805089222916113513043798640702628742185138130974592412397112138127321743310965228668403636840608409727315564272091742665951350061006781889667903109007723975842986195969770423167363460972142352024993656326732875012763586082442014752532076780969014882472299713610731373386633692500813188183683573021857586198652379508906660465995007372018749511039056917329670126666978567932331880649188215910078164967854444578073211273080230358585638551585269012439497552421922962759579834688582645804095938949365412892250622592890445657910019247035764738292866258177866169141062589387666008755814344776076643884644284155658693297632124821159033295507371652996647174384033886375509590153746781428153401438995387216763282331276806237567185121846958857672813201269348510804492232239237680507742741102863955177872950622492837646302273893433480388008943944218432831684099432969583707744312545873924689236280147412289716690299291082371498836821790362760460131521520518969124639069688948974263117047864788751956252670869981354982209398052272582355234961875314373700412496003217412854707715350188970079851541134175619348449638580271912109005562873733677881698136702016473773942972026460673074465991945415645017659643184773911891050947551391624113248729878908586286461982608859591942764458076623826955247442700586745280154679839296960677744658766287562659230980067892946573178662589917860149268020739687632433709024986898874171998136995304898891519698232487847409687834076090882262390361130756218012981238263028975092863291609394758108333466910224922557224209660650646352508869494741739151476470822037724496092091022289246006707059224037405097625994985576541670847518423672379790890273422321241006007570358131157369693596598650554973027396533001046217938037051730119223438883247889354100056791777750613285530570576704734373296120191857795040578983389251048257225041610275261660554501655939065113973872382750114115546929465753874728755889278150499273209855165826045695065240593544354369084903786004025370958318102701213580190935442429555005730134903822380150707897020535826778781703749136156572828358741375897465564730978732637426546680944693749957874649792428050322419487966729589383463745388406826123244572537948471624320280045744742041971919113732699033481338811435205127521389980210807009342460717942271951146827438068220680242577677589939640666937936416701115991138936370867913232901934009066810842194501285875401614751874295317866346571978667654156371438862205051703018514773953522643060181020654176608848888500009469309811019671427551175323909748252636761461509472858633859842258430849175584784611146474989977701334630756087765639998820876275759894106614389933863146047271153456504847140952109283760786016228618597696595379099730799899748133715589644519449451104962436692522225142512921070883317865428538351700312423957972807643214491795906311426813463624878930029378262621354884634065499804636424422923289966994468344069334577318990199672024665206757508879190414159894090903505892586213498397370330833549526495526867514053758061957736541472467137753365056463762293712832401558386826976875715630100759352399614124358174657172108945188930395986684345582787798264455000772549393121976844580318220903378346495785143085800714388039803561228716434678198814679395716332915679599428593568652903832822813063867222598419083902592296929503886026920626701627629076621296072270153060979212392774000270831333696700378236061919677162150409170468550705938597420484363988462166854232546342044126187708236343359069230738226630140498644562709555442763606374223280045470140085257806074271489222469837297027055838954154030559499579523707970627338941983547819408347956821298038572954191522912232146076395526492298592366568777742475425856316456484086902465226859314984406914504127375084692315318781265261811007824284371132130049529666022183445306314549347076978606462647927725114369912154174658727355665709325305788310538705921426255609820129577345580469949438765088922050412753101803404004348806586519479741575921045361366813338121317889025307171108048434737067935839578847407342818062427958608337199517286058484977284392988020852466905693310933506321334675325081741974803184608866931949703255967896153765242026377519347180184072169318469382063546461694677805491867031728295736566983079919744251185301771490565742285396329278947022434313828840094678874121431848494386059793065263398644304892361978161109137641828998210279047474622780854753595104937192959166170147435756158944130591833739293701407995361352306767612052868564748114263518111471340768445322880746060479555934867281481506234602738381886154594422483924155797653779606646021536084254980189257247696865110113463373260788850273868270571598478747579210273711066374856730593053075087616191050957350355349321208535454779754521110165739294330516906291726874210845553337507598610438214718567472626397268247849078431987459347082111793987037472485760910522465588948606823616040962937254186505116010264353312546716302743182608442081076202523377185791656740479246432382045973882222951145192337182646005132323605352247484026871050263034174681578175604309406742566184919551158931595845933814844511834696068972768578498814924138980922124177784801612066322848846129572742661962224627777514281651097982920162620979021777696269415672563062584931743394045205057669411941910852711014207524530476834856647025060383711638552361790516738343499847200599731997499412120091289471258613095172203065769647750477843154480305099142231799298469554327791318812329046708746325556575721562996771883312638379246309736526511663735741336379431466617607767542129052809440600113946993734839392801668798297497954364233582241736686299501908859758775080660723605134083857380121668003346692170138353927400824770140705533202255684738982767850652843682976723283350090892687200794533385584207395864317908806014718153017873262895016084651366749509641247407475453878246502833140107303972310842640284052360165033989462588677636841787067440821901575159804861862954545386742280094907084131149598870520061786556885140523607747360055867634829245839816066551237646249822824271480985169515906654859719268761684248208511311773533217865034201111375188639814640534839959411727106343104020462074933910648054288431295382516369714796516095241267379930707403777649743260260134174633046180332117381441623106715427714141749685047857236898013310709299122782220975505802697463840708783255096435396417878009161843137568152981582377007466985912945483491044316750166639248769134048813626655682078883077714733378002793461725637289013060660709746496627636616647540600100569887648967497167823837083113763804524895271182481704020979083210010319286087182416857979291553230039242375922582873490609840624565268966733100731463809877033498409506173618217715092601364033576352372335312851748057285269575063360751406840825149008854920875322855470087540564147391703973330074752894590599502899917439092438717398784766234799608112164482597819770029374729423911838173414521909601217033769565165317496447406500337187022571682707290463844680389148983116731530099140284611905457949631452351065081784498337472824221346810764082259434334484410802996736778731184321152818167246716293569685874718553772238631319627203381640511984214896861539687043874012271351377885526567047545819438885136792199941425104643476046298711706713950004934008639866254707732808050759462113904009297471196555725266569986602614085247194430019595649382323457707349138346917966329885129505892689605650066550924347554080595781240227264840077306923082964786386441487673677862627268134235355612300135058718819565554561231410279891793086391524139424181568497066071721646285743546822844339390024360185049552457600193256370001035542989537018537474309743769971008050451467468132938181372403924484826661262315586362140790883650579667746258115919665043792817808653522551642755887699407186826683402019063093883553795684031246409143278965703368663098568468158280853110798786768721891247303401427320666059503643934002168626376337091660631778345923831364721438499897365750682641967074408067155798785586338813355945041886539515062703531861507452414977264236742576923297921317113618453561834653293588588650489450643209429250816455178477289229196695266028261171959780034858182741700883788001029663547501963437490677699494032488642660510161638771770465257153311517835798946777352820942646774466179704204237019138932267743880397317274295097543066106440105788380999671598519631619242899050553414991890476044833795675744240442312028001471716994737220416147551148272207543759600212412550209346902815768205211457183906701523762171795944222836017269000752650810963406874323616129103864388407486348160631896056388360277789648965122417039162937125862545865309848792234636591431394054743411886831674614738837845844802872957141193157997483453229067856048703149378299718402818736312368079536345784159667093662940212216888310004525095164416440327440234612248778501788022210959049860352385598946391357371539242812794273447059016933393625466469337452633283026060119317772264678445637981921026710183380779661857766362336121801414290255320738676720027166780847106242314059740381254533265734613891404252689816715906561497331396856823681742471895130982679559976478758693800720850477793785975178702708249204569514563265966086020815857908440663724106867925531353590136010221972485536960539973707646116167584002182787914256986482105074108328704765563100678189267941963110044434074622049907852298259495769040085929688753156860103469465322057833461749776532133999330274541469082596105937180498560239594104569283841690154887187906175545699784127398101485206223004637714644301156767928887811691898382923631343872509221040148308657868076694839615639393082244922951884968209535895187347224122698802363010480409485032944049053511543506088049649225841291224669416558140789097618804569594419318371188785387331154164621988518635637563457292841678497405774049654266928873738325215051511350085218834506586806104061977583869433241196939623159825753616234075131803204525974133207511223200282972111004122744516394856088140797980012697967266609449186523337654300029430458110383666534276653187176370989892211726384794615771117729707787845096184703594978316030351271848333060558263717921742843769567765412495447641023797867079511545869763785270371596072150639450370693914891396330995427761632998670406153483868010500682264084913040505407069957213812193882523411835686493562899992293055236550824257249140604668653663788604323692860012267209493980247233754658032989037780212189903857103794036477445970072213173153671885141000290310418576346667115313486152364494585674560143192786851020064061379702006865507648143442958180285020019979334395688801549628649447704400226949016763316209886097857738719740402254226036283578285102446187727816590621722447118443053241882965120026392985013793712670185705643129179551889434615205937652279666401716566697740163187285024449778459070947362719454453008610434173043491394295515781118496619654062681801394757164054185570386010251742610869637828483185558420479506404867575292556884034714101739297611328504925044181569017314454396278434133749418214453281061017604103444045401837430757094140317165589459934756704971632881300016389715763114652624341307927544776597346475481662957715162559475752914042038378500519698300357095972598769411356531468170328450452141741203634813801712280727797577148322421531744344678265370399352932952395712855499766298288183861063381144857106057257335236114356580220614115481627093310259286254146739018307102050892106784556311551211172721504642826439654261200579671008992451081927298198239447833320862397671533851773523876099627675425236144855327302155839186507217365072551686897500835975260234144313666730403864240613985506566550441403044921127112131340010867429542876153920636946048960132578720876134728972358626414953168277258893090555861440820796710020780764462736663670823595354748183405596379247234491645895566273899663223901036496669430989672220172236700701492964442186062431229981546141382614325009196906909622829044313018420113324467325785773334801610036155119769320833225527252452949294162349604067990107948170725161891587786875863683695959792437800371542016694892654109037607382619272328650298223132951591524358202672847973840584388544805177099467954533123424490839475814105217426977941859493928879160962529571241471075419002853324501144648774686577136587115860550857114700197570820786164673905857725271969183618699621278922208539259402926919469876576517912127928390429904293528891688554140874221623665819279881228765887000703364131387668915932331403938990019622116572519682016921544873252278952825530145742194713740739890329972410363605411664460402144996667464957709408002466631741082059561280973030890455202757285328874697408629167621275666348477703523226555306014229073569966606909699126196555621743214996453012615252629471012667889577053671274033555800776202337461848434020194531356388693653608691112608647233141714073566503648210329413784436353933571478797112599237064072422769490331387320464995240084667738445488539642354577764621452464708914770226673386271190200388712065594930624379006800200753060976331355636695927967642820497490920201033538021380311260048030889514595856065753799317399386473032112394902762561169931736549908659904480643511444172204103868974790821346214460710061668742119065074736789643172820694049390326945051650676849149073600676607253471008964384910173608968328679026355055439076388159458091302883450081407938666425040965291743993278191402287712623141129702495107322708652728055519712056717395910691695034396658964837445710723346158384952478599375504483367427246155376081795320611085753824808011570092633035346591015484589122551053398615386936028140023055295782646975405555225864190570187893614981480077907454809607009057245563407721664950302062228745483106711563363162447342654892667928825999980512860850840385427491607590260893731891606979514580533354865843429186697985674812540026923478744045400557380612013981184570720122112443051243324586182789806307156469003644398821561185921402193207650936954113498496274860592801267638012493584157073505902387037299795001931773337566452006244135199745171147520258469203158163572396843165735178599147252516353680611274126069139830735806352637150317988529011422976442750147140425517917148052643594840465603140223380904703386705538965031412358037534219347474866702103691459592143424975967820204214910915069696820184964717025712055962198446395222903348763474656863249004462803693769020153844450265523629785941897014038739520563831380779266237762522026164169631600686082987578769506943481335538781445437782094829305591616501145517724082938629001632884229144169821464842953067145983837658240223595745009838075310990629549739546266432002654238162194545211323041318646123107575162354288476884604305143909578039686016479691095265122161345832827201575133459038177666256477379880122262747774511500647409912859729460732298889498542151324818301474289177902496824244905790129933072592929098647113973983666645576560895266140538470928791567426255718240887007216651450858013866024014734850829039796697158609815272862565077081260326139119869174687087920913218798263315296611155020581619438902971567472258701948150824445387028729535833006072491071313185292301425054312084028133318217185836105083931685966183564808019356035425696085981505786369618622956523589977283077572503619634353910563586495080396943248769505663118817126006843042194617646562324754585976560453732081781903579492183286466173037780516088658922027711881487446627806749704924110769711121915887438506998172042556213668847043588304086677565059452508925564957777628661609594302727032344106154541538414917383733122300867001665049073096495005486502090292904218715251785394691539554044041493844176073338584684618724818458560387966277015654790841521045135577567347234486161048585722039396695239572417561986183536324130491274959715661672786461840807081048142383363071349962214242129669946022999894886166244645389080724067644688137842405356278383061789343821418877737478640860684033816864780794138231415080138243936672267985770659824917258947697969444901646078728236467297583786329461148043706901797525143683913259113667701594416603028157403237704625137803795100196474348862253705698240656897952843949330158232181890697008561030476280983038310467705264283479652552127408838731985331180964329288344225037817519330780554980332526556803008704342072968248982405702960135722862593744903017819376595792374506350794682578010538493442455661310019251135745601571119609051266577628405460498192217126820707490845439816976125058709808119078240602648457870138145876209408710198833209437050446773546216842148949219449334720428786277945858135541406674986300171400694772273197596008723986565684570747087410001091299806977263531056524333010774313963116204455392435764297838072866992644717142154398974578260745184742003676020090631018089098014103117130643664570646649558093289168381355327630986764268984108926268984910400338890855563791235028028486983246175721694424129462161570044140623458248034748135586717572543283420313019373153464117028745732929403630541232568070259131101042171877903155526235849974124468253690172387847199412925793532402070550230303206468424775375737516351104276259929373139342839378820754433573832037287284873648316752029329438363673067226650588630343299974729148350111741739576690115156908200788560971485723294746293058031404079302694329527519382846911059512825373335281252690916406317841160531902683921969697555420748210426168694882469411060645270920811009973738951910797223832253907447362440010458934838343251273536784356231227375308440643502895319382351843737865186916353044658077275533451238542362277476041018869835903047569366685953333924370078106532225870806956684490444944115327317090784557519391917120290235696900412092888461331312853167516746193888545226236238645427440706845792122212874501922202265090826995259912735906674121254334652899246482339161125873636751076900911626716106858062884653610335551787747007794873821002340643729019838577573322834176706634956046561102648487310090065008588902290292340976434934090572990561885504568064013442029325861157541431825538895722816145927716833325501293457012604570883471816619615010078056310164819367747928923751732858844934229475397911734055639647688027656891886713987533735544903548613546083747420443991319198287792059760505169677704691885155274965513011065160316508271532885335585197385652579790679915335015304551404488867780045932929592542799016754542595904703213830254834053100353680265415351838802904123127865816331828053942897226662148791474911450570389399674656389855385587001348256868916150841216609899719936595366965187171047967927192178423404905266463004793451298090373805712134225911736955975790356889983823308587948065260149317757080098719796488059757209656421488513780921931737312146115796348752081359713072963548772728226834490223384600761311635706583519465534341013354905974185067515291999633909311180636551644890986020018114181290173029180497031815711789906009725060651660653683923498334196280928197645591408166229762697997762067503066347390653729435305186094385357662173348970792357175338719061859617123261791592266191085637312296058218416209685877537089389598963802569444676491065519683121507059094346945886271916675490979960605861897490836819379524109230534242534990031389997652116921916928006981256092633342947763057169611940381179894476117215326335710708127546196260974185627322732212436853209207758813432578245421205669038818818214262649506968932727411634450009425144387538659368603493248842824082465701078946283932604398178857873556238021856951889364278244437696307390878012404948794237509046950790138410329811434316479583800112005588803472750249330287674684035813539363918685168106032136861431933450688633519497858267069067790434323531303966228464154813217732983396310385717892396146302077566921360880763448264752821473254375984453983223162228979611141762458994043695531622013942370180813672101048813199084548932171573706436761978014341240431664731710130635459229955568314638010119556816945482368689739672816647656431071666324380417624932924792111473467864323356309657818737977025683167892975477160655783842073516697735719469401944021997823711942183686760879674734439458698365047480145088782298307573580761509738150891204883347619025154869725101683650681579001076148704103668358068316223218839834146986087297112964830077738856938508706923484355529418752005279411400812812472695474212202972875695105453208422894090405136087912184815700527616678221926091694253549487417295988411310063752777828475326812593774418166655870873773646032804642885554777442672890545252254239753217308851208047525644160201357845270427143614963996973338119504356933285135131483006178161193630010842662976104377186942420918510390740186207068812313385491372068027957962017532743081928226624090740164424019573750958556844350624382197849935232286504926729478436750914291571516173090545140522303104705643366923373771805571211381731015765285796098757670313389622085592188581174894945403598181936230393601991453757593138173404380521319566842393660107532591419084202659432428072162516752861345026102516439639064872961389690799357295593422366869037700349294467274696307188939275869926263263530928440454233798175073118260924292704204880964634579991950180496732250420902233801234762199914153358234514793030355766284585903625940632154587505427885150020600404442381274638113241037179361017921425919421312967193274263142009470236411296069836076352797788335390764606313638523328980629630428743567540548121458521342328965533362045697151915599421942073058208109865284675184157768795844663304527515043598612128345771556205669745523729919181751266972961182169057657851814924929943527162498839375862058622932039931583359851036035454187763399686026982694808403471469591926505318902832830324469916728964373349119687056484284032365767308011358057943767030466875248884267992910858725024599218140406150772613911478762436718082006468231693389580919309128093074263355947601859635616803195402310074559428474259589311743376662495974146996417628797032110226762349691657423822397759030309488743125022186524261071883176507308879476892541489979929142391435355384846857006932549344771503831612776455214619679352314389295529803691175923838629486061914107463670728725144405363544921815632177027726952994368067652546628917889835490261598248441560390687295560691608891001174169070447558533707621188037914121966193330013953245765545051914790471912179919569322917736763737444582488330987925998940965908509402802480767530158293308932311403999258184217354280185455418952012277236365625085296606675354511705266142973013510228327967457446928483437838177252077070585409462751423747154532576563622338505843223541063016564095095313146638901543031894623312123716188510304323054715081465192615621819696292840580561352488412484340068594660736256942132768442074167277053114281352065264232215356514831760439840001189265517585468573124443540857529276987711045040981243161253750265561359543683076881635768702093368625972634791232091519757460006171106457025526422818364466083486915596238446703783534848294330932261248033647755958303379668348197988072026089847189924430094955046490829679479069212682082797509685816271506195847101019362968880057021109243971551294358667435339637040525650882536839063920051915834349365492855334496064736422682499045296556899923798185074733352771739024259044443188747601189685063982007658764017003375950617263548514880326908552626941885922285857392415073399159028279699179296333885540743065894928461521446044809822976407604344857190531549908088508435482647708597343373769265753990842574588331818619187990531301420235669950671544304137438339688646371971006724197252246965528031036591919035780640969903969626434892755018778274276496794826147746470037404199250559997360452460256316167026635678055967813614444548637918870912477314774564353139645029422807615510035645260642714313997604651530679358771843159019264165695446338212235451159370542618554732434179848162315177902946787997136883154485995498686034955574874037904387063674252967866734210694919250724188214982258752059926579487723542286163477723659050834652899822033121776574349638644008477437429265931981887095086373620447371401651947374922703167470467322059065052520719392795486201752703162869195487858070057169881646253859243114682465077844028148618728926844113782891127562962456805432734787290973642454238605658242020377327003090867100170480048365593661042438751241372320649251760704411361030466924526600036829652287157140734684181570500899365008671566970753009276259005849670264180899331547031763422773082670485005908528490349612010724793068571837583230836546007477192496143154252145471315630531968776300073452297494380745626199708111366447498207132689050271558460057280161357464998922984544907867584208686712218463939165418348728837025454059893530181891811417943802730068376770825791502792817623319350012360837220014817759647034694215634569794292438790131575354092189479718942251219800642513993124423471528468432460427917941809516292760466384351885426957115221887141350010745062471911752732813716458564682369504785600775848115320970468871918937889532473136850418872681844914882470319475639178167046997971779547185722253246537143084087705197600564491470171567443183428530183850463650859151272487087261127950870524397878539257222759093867738465613100286093233798695693032572635600333304583367407980761881336659790590023989981924853362004612453535925352926658262600241679750371043998065344378123161401627920566163385219218246920124150473809663411361814563234096524019227765484900174917245873689365031562367704675094700221543944460154975037398203090079921223560048684126880284738402593260570583304216897991020848558645181051484896177154996680822425295965758913086737704089682269330532736114199605494987465187976484054899583582838673380818392536495062256146529047914164096596386829041777349367007118461146628515083663241168971158245867130540299273925720183493828484363936916220505662059971364388983506261687545743485692400437222158332307384901080044666335983021185647320941091364938934301518928732628160188699541682525412443307445180651250550711123598705008761767333297760954267279914196057685525063761104744704921083446985880163213845637227263127511155304932322570898307118056254478237039168262241384934655073405643439334283864123816501377839440656491467743710413396964604126211957157794276259229369369178309263370048412125468494769212432899723526709917571906451417480140174021511706056679180769223937570203460178570811959498077714998012689180939698377568014462041511926538647694721315302293900948438111718166639599187945574255491557382205312606305255961867308072133650138558411232432500771729541053012306444663850597612962042664022744991953046364321942695987243953021380593863777871183563318781060998138615901799752543314048364303183390567466951432172387464592181870607014039654286233105634708623777201480716835888032127656427584553939781959171086006869800650200629945229953320693284484401756414316112987570318518841649491219199702010927239040427515548403870401450747864641300271713963782272991464427046064588425570616217375313909209854669347480138223639238777076834261822249641900720701446933879628507525014157015423132518977583269148205009397151247182367691314521418188826470057523565006015549985504788061906329127078166556683294122069096741176807660107295359750675410223289935772684889572699449375547074545125908203525204459953031488101344676750925675734182181199836322041573575133263363205808443657236947257561687817516293870738234611707813030948268445455893047899328545935065230872148189047142131172423034033197947368182112236081987015973737111699283134381759350281915167306454301273064587565749867950206787998033398075729115746855849581920630424810856712963823439967962148012991903949564846356153043390735222414013144870575303783464368041403514945677877040895604851949171957572827891368922899337766979671604767818168161787512810757208961037573631349167486577897053903799086502601471966824663357875092551589384403510388246923063554678422613728763882882913052360953958374669068279621966003722099182824225948610628811942937435179182074301188768737202533433292287405948622899543393179881690103238591636004844584807767904070649334380296595188315593779830078308673545279787144143102904894397225298563849072500239624678060063494924276362731176011377886185293484977031201598969256200383343455312250547917659558445868744655869208428644459984410429811304618412648051461881749657281927893169725936659169034409238543523130045636636552536488692599465797070398629897853899894508104404030018220932375861373494861920986211510318864934336546170652852495718479909159359088638034547166436770556743952726363848296409391948818853956366368522226064081294939342452641531746826161817417248705444278197540033086564535709360111215215385200151593636730235986279402089510520445483368317266906508704115046735145174809142706569462011889072456662235858210499777405628005392691338139530586550482456414384890539774620042971616606620319856712123783681281958949688550104251236897054372910879092739301888387764243810903391906788945497957414825648826515776510743112801333131370716016984349799465718757490273679635969532775630804602196243431348273066788974260444209752756413358573301895280801303765142702907366113028313943339434243839470767087585776181268304205722454680122904328941413204808198092742346421163372453579366215950043545407927623566479165036609274755110097627431430477737982667423091180364421501360516099375032897925015294703460916623844131199460443424031509876029864504442356059397834563892706544378332646736935677619414910040015838343873016959816993815233405774824408994022077157592577837322006400263483948758885503578659048303689688813513913948085679548741106090409626217120854080754228320416952372810671936976097878941768499034202467979871302320469260753586891268269291230149159425952797740733720447700898036659872772331245962117116270792207430421266151483179006659384427312401869842065781246727110949480279525654754166138227659136712661284686871287872330984533361329631916895200470519835868791123225883421958454613854305104123896941950465967330227698719742006589785989150459016262869916633008847606154219986154626730779805630425325999946803622696181240352633821836080984973546523324433122586850795850646701169373075814166426804810377524779302081062883730646331445079950825813612225625953876242038044602676348980425651245343009468928638138768724200734712984901929687861626392443657771349709200769102082867782618426064295215677036583805683737334873541501091971295465654499714142126984773691692634405574463992192748205494044528863717967701219249415133787833314467292949403274295564786102536056893085438099443697219012634482137124625195126291032505820562182957766243568934605819602218208407920777831773177610932801180680117851828336040396711818520066977800698572384499579500143964655428195833390910174558416196505333705610930486891708690181387474506019471568369622351148591731482082912470858346044602139406177420636751690962714963046394018481922236702579074907199042850122443823335941670574985459342198122515049895177893345745164175721356749613491542342012233616032938848505089624054878964640818206888231666196299849917279906635590616865937964030271096832713076792577006515036197246393007846154206683315113928639381160483374837306878755152386284652570644707540783082696534187507832509371098440611957993918233538276924961332651717802171075445107367288749218774802029494628066908924235471213350058806519518762319673767390517757505557052574401197425327119407363852106327225918520560330924981478295338455123797772433370620892268118930583986521840390394859689563344123711077373152926954258441183989872776540198728373180177870777431652091521094175711970675097595868742435964743556256455144963061601731037301777850800923664266490129401958979452170418252055079320642336902888835904581830433223007502536753718526468552629651768598176239665741768909845261228143670277192065000457085529635417857818673668554623889761869690326452850177538138475175745386573819239611137149080474244287816510738304645897056846881570040432552112501674400320745713014103584045616258163764811757732383697242001156138403982636424152185598185545068589607166696652346052688983041576109102564630431057775085135209497361185349208470638995627189537235614019469969874825469634315397358726573920418942857581125875214936687463745007741882325678312216824122673770983624913178733629947710455954883858075468912396277537417177470441466276159371841135896420820718945352606536993904530685913980100333968912297736817590625640694278123423992459787614622704718378608880904637843241905463024914379082109753486984345092315130607972585803356054683388182767919051275865111595017590340514446011840631522693250369806633094011684975377719165855016292276343367720696849347762126897478727356888735900326341664229698225209353666833750128959427194862609031604881775094065822136165175944574768399476078706959177761087643434862388257929350822077831826290070167220982842934420671951278431579033986547949405224154919458476132757557655713823062434096712571823284112097327270835430717116800548883882714529938886770994730843669441010403920863244907846188312116048919425836623991269402638217555604642627567438832632678550138215248853987351585205950477914490684491396331212306117725451474903112006008544096090457971768805809789352445770408600168957088692895992181607623617291085650848373506303575857427451873500464707037115913869163266990303163135739721449800436185499576962182731194903833484399790251568889301373036365711084340240384018017439949799598859737474488454091370994634326505090462387214217311721762736951831165795621515966225150252992427265003015555457712156362428607308743260637216496279668518800153110188347940829039106708725309225930493169403832904479592851365801250730492185268643943798745014138965859098045484397663110752763435189594528601290154215247277508616663039655738826344747401206512016193104674227812786154589960789624769152137217051865217696559201116380501459146575245868736962183737837021237426096285177802669446896915205212146047759051260147627827028169892913443540224898239646748093156597688731680130939500818963575346776996613131262406805810228922740504536296826470116907485625790280420450916096097080499398859832902651055761844878423295148840184709884811351138811548011037930426686709867099145051154849208551149982206901756057868223521523628231869119422223046271466806824047221191040766964518666635533048918959311593123855553425570243302665413213284104603790668397925988328854668153546316059669932922990867068580349644526682584648291078178533127908184451559618920828985437162193104474475293103640612111739545706730258625212835168760416046516422977789090064241738535541543939876898220907459974984696110422489740713890663092072944323720079343000121783341618523741829529696569950875045726612889623586536007790653472582468561884937559229785623971799064017223397669846051806585290770971081302789212291295498213802141895756689280717572914563878778012422314296358095782743351147565529764911930556576097210761137470205994983173194500010900593305626575050402272757297250809391597717377629256363594942840749240672627301007117730823694725260557099752190937642812582785741214408431389942813827747335555093435676575492881244626380339848420572661402726319625485596508643658684924713840988754241628800425602612198742752265481967685320312203005175257303468213649729834836179611288038722302680577392932141759526904656165571642905055936378585389412276947950563884994432563538171320610719283986134490200537326694815011272454098983082857391805999292207347272751049833671263506115563918858321029546181649857904060093954212564588657381358475177695382740837817374736466440705261180372065486221094599038238546874529346094787610363333179548772824852378384828569968633812243700618473702204692423771791201136300422852024868123659742721218063749708196525630093921552371075841023785566430707980540290706469684943856062850812430082652737740254969303201606124846297582162943266349415484008292125215053024448515960523135038988924047820990374522659610774029231470898176509960838859842358422037000604620458250242600471795542013188779939136555804616909182104996189977196944797524518692517037236990913062216955866216214248372006170484548600145179292844243362935601903628269987314716731360046213574556806758037727396834930139529022664486810327680248581884189710473843380217975712243182045666356604197776833546644798912439665425912806694725505923027568299419813630170846267857496302905145512849343798714167487799727714685089773674990633431007361917799078064539402311989799214842284042047874630336247674995184879157406122086212415256257875359060136923232397118954033022627784248376465773477695428756642907554471662420205978650791224885582805337486344501995607772920576448459050246907272071718771011589047197073146919214924414894432681524331838775787733045398647420889767083706656855254642214159749284197552554970456048975414508204538870578719399935066227571330552961953407177217598258935386720733199830552772278937206464359459395841669809330162704705027658397970805213767967717860290581262126614127131084411696480611007345468068163928066242834339786988006970035107364642431788979305571927683716439090004583460463358802374438304934160921926410148248155647522522692239163681574784921765918271471080645339359789540130797927322616544192831992094044566126713055769829955516482338409447037910512444701981255680775355840047537599658754035445649101972748326459571821448710581449499136332358620360140233965719744938122364688872767717885265310455301980166528976644397998576954531412695086933108405709614270497502104921617948333963444275183344600077461194845016320343643948342936636705839660252050085748646070604952764823306332089940364795066564884074475998663477974599900916215524989335197853587820372019255060248717920088719614888403357778307103269325213423384180655954460389715778088305660395638898154075104009753439525821000983618289656022895002905032830168452689308099609943540649510659428086464203237704055312147290934210623816769988496392614879914122418168537019374260062033855858551261369610117241233968856414218072038430071012398495761299344483029112805240883064179034309089878292674074681098179888906991682655336155516262114233023942625153018410879839049653419795195296218327660800422143742587441262622257986026264375097915896402298703788530732632200689915605418101081286706687774332864154864580328137246230824056114726281838881855788318050422188834578151699680027544413765721325285645168328833241941783125201116187756404768157224869630511722001180211443077772033086657641326968642968243621039463486104086713564558445827062607343383304234279090281444979385847487658672411666193944695099960861052730912923924423795629304357562523456809654116638957475504226406930697812215904563990240227965246993145587128497626728106554999207443945975500973009326490788811331125537693017379032137634948433816016602212841055253564700347633930864863007419794104850459331816309455772320056512283763464358517455873046069623361335158943662284664108348577496823930157067107481657659607752057194732734221787964514534925998384123949655498845403333987003771325542807469376291675160719141032906944569963176329548939278253688416181284642453618332949718713349262909766558543196288703766480526348434849563240073405325178361342305005697089566522856333447069477998604634499127123790453029768332958937374615664252373186143291262620338923378958958202718173392789761021285728110517313252452143028992412453119365872470090110061889302974827472738096132220488031473913717678058492538129655801571459040883530014878822663654728104325236719226046870086688624667257761545587201756165506351609469448718397200584602402821674880408998303859950324789566331608578249507882538047666945100869192562986177489869982003585260018447387896677864342007406153891832644302996530935879701786242868194128557279515394709401118290239961907249679120545925444197679553593073502179770288552501374386923707415911150159458195082925601371971166106581588297994210479148092381164734329982641830474731709719059512253415744901264749581398327968216620208158915230159949144734589593772115343892857600491025157862894740121782310338882088449476263501267546310245754025555203643275824980219601555333450081116876514545753950174063825022435315105974780178939654250728809483192111584066548615897765803632576887711815778623043698718554864460156832283174932778415624659936725374101792832226012516577884976015504773158785686367073242298525342823996464985036413323314385929450847796722911410906427340078443134468777182672221666906357923756472554004074625900497875095424064254470205981685645850034345487955100074319253445350329673971955964155851169837977619097947721423371988244355889449580005287188925187563525919515585622586902191141665559406440397514282625756608501921868222114681776360859281173839316488177899669967868060843132621105319336687825756821002320488824087676065555045483390483983731998315567455082259814116082212763586469277053529689127827741615575767892019176945491575425809752019850858038905910928234970678240349324502854841956459890365281722370725569526933621605661516502996092704571784061607839436121353515861608346638247950468191888566710870759920698741214804205194135230025027738737714222047774816146287931876247544480556616076529913655640375470242292081428692435997573180606141089009927069416132113422662544639054365198772436482184131404383500000815848105318963980926574589292749605249066221554910322785736690782470683374802485788488166020738685755152423209324634829615546509600459513600490094105534707461905035627415736026397992553923795446315307645466197144460348490052246336531848944305143452343277749150006280107594204991116292594220081903567674366629484879868526594008730871301601016414836040551978751276728408333327260641232170031532243460622011891533935273699857128893883804086755954358437618062075426629019939179829215501642814350290152853595303182664834501244362802636352950383963096181071682960452828459004837111761731089492574813534081436858611579122782217583389796816893136039197605815060749154802479863863640062085184481037191704208260703634135500382459023179056391846503774540078629262325720455130697073242364308753544859502152434683729218226956679107670415347253370958063517152128125673899395724349700283607675193579319205317921014576644010486471699806916666874720925679492654305739451774733554140618139512256830560673694143116065457584217492130149344914077561453102255452754168356390106297208480601121791679815770211481447374751629408413090273232395030449135220589076239361408562865519852018214654867256321821742530197131804296886166007210107061285353573847058625162238819681718664798673148385660784926628810141709077541414232358630851093874476974220820674004913134400232683854542607252701077709605715078266429468842926403056416120394845349837141206843658933245382720940083495055149114633595437504621120082514699885040930106495257528583748533752561311262599647060171176772035295231245417645738501248924624969542677693674923011250221767247191855652485835236044138111599121972203273779889713926712094994490543093005617545800744531590118628152668152176668543906391041154678733229232409951134200567705074088873194813804235376550020824634489099552060289847602381476737195619364160933343281619980213104588859338763379691936291308107618359541333834313362153400862838658662172851676834671662188395757160646092364986555972095178798106885091976175214426054782569043919098819962795654868821593502013513902503355761272177559201950327357942329819431113199313309233774253444020291431163407373848099355875491305119632076721908293227117524131566042292281975319353333486533134275888360144561157602547053810780006523808102201175628327988453028199751204078512483737539893340527641854885735343488337594918748715223184698547393632729403392594783051295927237273348737309777848692281244466087260511277929864834284274800245627018187574643529546517459146969553725311003145882824280364507001930245144368204248022260317367336763175399067488441470500615281360235111197220220541155432291894665416148276384512817776611334521715063900273918577011896498239945942748517815923290952812426314105132287233950432871270925901783601818878135296257233494199353437588334825501180527876353368733275311227688541098686774979286835405973382503443622515608021281057282950334717952909934827730791820095591374895581897906182168977579361860674092196469220489775822928663926166983964677032578595676776880133329392714577340113685985698397193872999187858295339862912172766871901159819271605612243494016192699367102683993998393742211035532452620058967882223299505798520184470710283418595380230839270601767683715132487265137568110049766150499885705906582954948839912155495018898416352692790673419227117367867067613373442727389159228577404209217270218766817529169395101671519978142303132324677543643526768585468932049821870322872348311453674345429796376863956198923447652546064509926736131415330640995091999789223974064810876504426662966283154289766684558828000557407574929623808743947948201733839986547583819789729326008490222147526710885073206886269325110733495256773048917211559906434654349394249435933779503364993378171294637231972891324023867058948806517743814835583112336797199887105881960065717736212420167370718222083982817207324749713899599138010744506276615294096659191962079872103616619477805093373127685459987604909950132020027742743773483576484336731038372253142629694930388309015295047290050614307040368180358195099256231442823116952948398957219961345865503477976826724466885428206413929037524374910725260857941017747146242621166294717041654446422172525207120117589215334967936110723351423944065705486417072396161776884542789306982113328770614866232346436879641334683427094035099787711693135088261151048392126920537658560088286771190156667564404874865418227085481964110160529742319089776878606901921305163132476805004839903120938800386634907415931190599498044839095097007720634417046681677023712189054260028973202658979743685017852835956039737724392204216630242514001681108986476912832071829984332394665549820066237698838311121542011077601545791907924058794701918046109871088952110377964604725846416104847904173014218762476735829715946765762106527901410312753048936837073056496501775975782682224550442407757822538573911214165324423639466611443324622876283934597579545676389353895317505674870798487500148731895499875321260763184346675513835229997519022702034033909187861243209873845649596912856307092025823698081396688958173081696825242621948127197556146695940834766884723515226553847812239448134343898937777090863382051722365531937622903922082679401642377280964010792378010401782667108921708118034374835988228888990975462053328015880731275916400982339599908835266953920973262219620731436357434354383779647210062915740920104344852648153213544179471298543454925419628358416364850171682184694237547324040933840302149364583998716485095809577362814959339472648341564908677279235908451650645591873250095864195390910963166506144268539581359726958006288663897967973839296442408831212841682707377018948165352999705595502274324147808506863289781236502694714479487145390096573858157901773962673602910531162225925177738521235879197273161661933418673533618473208016914734361755412139250189267591622209384631278513549299275234108523654772770351343383915077436149081190782564788136094501590788115108169648256619444566641685447145678374275965044138451319350161413731421388631496217891425394621581227365202438545022579835773521795511192281968916399478689841496761182175618195097375195568187388575910822298538617977763155562979975993292929882975916328411607671561834533272683957558588004779653095674887832473351872921733562342667232566706539844773500535178729917847015980535365576205212741639935214049439668093690251022307505617983432062044193343864596450282873729734077446570528608679880634857464639658245744082828458845486850896026593697155113604558008148521273490766757584914560824915353986123317369782302270047638945636701001559371248796426570066557433610180885933378238914298802542418532612818383255743687638131848196614487775368412578046230714559489319713528389185429730500978245391103684431763474070107762214689836373117027226430002717786988014437558978530977365825969940419640349566730657059267194619625533316247803521159000229650727817976445923676916766879548763212480434861502396959973120248517470045492024434193708837873830483966102680149398088026271862410991815707350070761483296025969909641395114378977448429955995410695346414003594300522784738588729427606478315491135271667673590004243665171443081022715979993081128242666712526353059597100143202286045865615998990783781752627125250547386157537363686290844818871959834813881372881685939176471493890077378024514457141352508677057914370150418375279221629954401317414150213125613774016520608315515362052581091389675756253915444560931158257027567188365793899444315792546805973563317835345659992708198634495238091487403624281890692167483801818634367445585395181061913607884077449139618230413257993266564397484394581582329721687790049791466282167207247997339213931228734265930914618884009385919297575447242227162201804084536405013862838593347409459179935935379440365779846409895222100541490826141957577752970116817389762670916565751672381340477941993105838197062093160091708428501020439615019115017296828794354277715192083711904643400055655382768718502033796405764183516654320245921577636560045849553768918068228336004690340291676371143036798997085307195791095456400419322106456249759648527380135107204086975545063641765868272677082910722777068878212695621687325363941271098726378679231216813326715652184163231408593754910176815025830303534260712919801245449449101440163065545447080814321102037022279096129177392029874037294817945130529186968258173717131104933377282056021446098792958914969524122534593645120672496650041960864272120627014192670624798726879006151606342647040631813442260339263372042329841032715681643570385682584234491580010440987255976282666546317862037161719296077438163243423530779032829945065283332771317563732425757776226550448012054844323366748943072229227521551046312773582508510501470357989976735644839290021986544681204755614899221361906220043459660604743075944707498854271151418494352030291622876521344343235174717058876561523876696476537567175550216163562308615940662295704036524404737113084448737781275709869195531244301004312361084811855230228338529647837051048033770085109162998934888897024317156546136054133285496346727263114808447297730638265995526550947291159404654910704505777947158404081392450477713569209031120320358662739321075274179147988821108648754804008150957358186329607425125006113908400248111717324373827027678762056869661119170263196466369063805469540163300847255792807363275748109789036460330336762872924689509667584964568038802803112613835966552804348901207764526210785635639469119110441030839417858150017228691905080377921124189433634715653370754933375460899138428239303338594072022276000209617115797896863582818351591621146486615906358949077560454301888372838468217638520367373529631639888469507614271377005866746306514261877073526349180236280896932180533191271709582521426589547423123926397635001814760610220825233419876534993315789770175589066417156957515980594889999551490150404753992766221616855170817854408920876344896021726880098254503561831266924850765246359402898948750451410119687958293574988005462686355479923049000237099809135311157276363140167148631777739066137557090528782601722161236002187974052384000803067051601486188817364907580310052703764559670869897614276676002776103582686571801203308950099061067756996533979066551650794811086845968611456524522976377981949247073971424949049099086388906363103711983161542265427753907950754306443380681700907883821233363002762585293646910751160589373612037597714763999471657262117428829258723959212894472554815281729880333855793190894191062249453813118750410275433740645956673694613266301534676659469818212743812858558680241280197304131316270417174459637064411754022314260732306894487188112188804371585969083914526418975330750672804712539583715135400386791390027712633830241555246636135489705140671202953028829669050927776749226104671670550964798118239691243431751245045001658457596349418236834383955815023390121774874742397345967824648445648598426558404048849204257913327034578444237199169374626864187086305764603926705309440335973554562212681804085619763661962122612612930802017781073033158080351259415484037518752239863796634538428899340725671429448617710518200477300714329070418424997891593886857701090700579166469626831100098163807975938723814124619568449863593000634772707719581240995488234109798830524693343716856239481940464014595003210036661260447648470705346702879839922931065557417248723189545906768590558448026286885871764022254143172060037748766325497819343815452333951961521069791860292467405068225670545102170716412382992252334302567788608892790077297067349859280869912145586387221197471095750573134680585966314411676790769500961543268564445182287085494774185133286287639446033047075362490236843205582268862306695457323846273849182835780387220841980859656227077530640095471381956976775341501282918391077455537787353281778832876544762641855221353927141548614800092367275796075929861315303950099839032614499448316418414491056534364060910021048389845767679816089763620025140021072236630730279281275339984251427250810744315022329789279731443920770443576055965242313723531716709602115209847464873540381000681484501043013345280605643155009752954561495531973911732543233801751113688333258548853898519204331003374768463035195680468316904202951090009839383919748218076364489244306793476988149219559661742761162385166062592279609159599698064300116357020017019713853310751435351899417287166200275850964384651081487083552926826013847016889253404502465262594277528750858458855402817167097587948300663383504259133028320725341677363837618785299844975839942634490908997834430565895658519857543665221171797825648345696966401739543835862317622866769703603941215931169025227054365242159313351844456416674242724428418431580041327983155156112800909949022071769381052374060238150093014291056620794701362362695717450080914996362548974419801269049700722668247686265808904094228637320124173518620291624193363269757396013805981023589293216142530278605410519728979086068721523145209737629429617237601795346584428674414486661285841889580555071632696955573857679092181404518684727529403588789551618847796431124425100738284491415008256164404510408028145680494105540386614831531725545958387650182329331597959829871112040207962059276659757364575409250137390946714298425223852096927754659734280535272128087273840270945677592218308981078724377664671875226773038547025441702368292367343272598083659527365319747001714681774404412665114091747330522546955484049899146174132080885169522300443678108865332490332492241083760339371339524434266442577169538746600737313700021606225207805814858343277824512143208732483516845070693473349894484990963256504883481826069226847175167330715878554891180041322891227001017689908383513468820328909096513809373764079992363111043513404614995331449996429149459785491834006449597428020854999186827449558803737610898240595940331711936781660056720787232543612663181438607263323661921511365686669575723718498222656278345138297638377630379884285098052138724172126694717914238636501251798247583676258083736205623386236208720957969149245479011836123727688921533659593914693868948441334836060046355816362763232554582942100442092859001224224575150912976446444386480919193768811224745956992974825382461121444497045035119523282394815087326871913124254282660992410840460000190031269815579815531280517887744512841206084130101738550462179128553656822898819142120079941636307887471997431431407524845185020757637654826470972348061116611477462936810792639254941423569070245977344362896057648983942451586916039051063134190688024249229735361691375510430081375735136384641013508720413121102652912207076168615554873760277554983999070734580240420316360590163671205056148825035462810511039024123861991017599833753901282923231910650008269901160253334535711398834604311534610070281055875884024400290960750369531462114116467871276401568247407732774861025764164722011570372769346659656138391410996625832691805039232688061306135704186324922672850182919815685051230373490165504542215875613213135683038642499938862227805859976290521813401704508963698494752276650345040189363190678103378068737239495619062382141020311662850301831933768031217461032099557088342776932205109732583872609267505405856488140428809798865591191446019485633938148144511133849970327071884682168480607197618145472000038184450573546608157215009851576635977483497823331152494325326256468244386697288918152008266209547631824570441247865672161207563279756833315964165005988181484344313731967860868080848376789979561127416394776711216508190263711932063078911370965678346325590752650966065293756208390322283826882204039495749868854788514053067180239223467856277348483685703259015454245231902656648441523177861597906605547373045432244762898336964689950915163041894732042555810265417407861895426816780562437432346546889616551988551355863635125149705886325845427614490425153265254602709186393496441625994912240992067112523018859679484752427734953133678499806344936720747577298429736563704844545682448186760627743496900523745556755074729609750864817702732070908058511245186995400026703797360611341514150041735779959168946829085680348561364415680137713804068317416986557262596201227910403992048511021034723034259376032164412090901918458753082137081540922192037952484118035168541775516120240049873285007100686126721088366507587080527795786011521644907310233453435728446028982045910838507287655478204064432055965435118960612503124050669985595033907359110292205220269035426300160656528780689523474959436155620686149911572250801670014478916419915354886804444230453053637449113099500611460942455671895696763034833638725226661183037023121030296273296973371726065256738065117136010225018642101701283547006223972838911176762292850871700514864689139419424216202962068913221552529946289836647950167694869463342256343960830650108294536893746717678709131082485757769451879156285195930280713792118450022673962127988453796178135490279951018511913906416862996404423445714752306830441130162171863519865447876562584245215890984925992727203626452548726060704787742584260415654320957116096815533254561682590845529350438923302055984058613417298446659259574408049681107270699414586833470494589498510406600202461175994194987064097857348492156985687035384600976592873573610933502246736467149188065179925100041159412810161476015629756612055076176033697442054168961885605362699938761891355518397030474583606855283063869756663047568109408048335874802798239712369259663000390580760896258232928637372487141984051441818096944458447395734608937266450315791388956916201361322095939735111304678748100807704641054906421099457616285936096912628596139010419274336325369277372725803755251900744305784619526220394636435739335618448442529407338432969120229609246520631171623897205053837613868504893220674193925493306258580562485097871828856088135446478305746992326873658166418769291861383395075603295019724414155839250841734666777926403093533584643888748827810435072018027005718567079918777953836837556964935943142598964375991453868395566790037359767246184035369585196588236265129099877990956983135945536781692098587215485291524566308644787713128399241495439925015390310502763990258018772719128364967309904226955045225993228505663068738729379523833171757168490236208690236487257996734844282063657777759594008131573753882630929191986696526319663268778925667818105159389838387139978102852754770815971845036312106414833089558928588301383541651994532360931927817778870786498812200263870949312249309679571774253148866465911735268147739275416197463611669155649712629337759988741642429810236525085509591092584265121297147091607607295291158830192379176240319072262723711124677698810459138547999886397758508423604706026144672376464463990248733829639763477458112193615915458665557879831759776446248824053880465484260842517574710121609031654556776744711641937429582233793470939477965216273039285450917751467262166876434886527281768810655383143227373411230756717781603171138894889936299206753100216091890572325928567725122301431363213493735367071683035458684321776725321775688700820102616027107567711282168768137267680364004844460374366272321991358356226241629287831106957045805488279898408314407847798711371649759980305828589793801883613170447036879846989436305108428407586842526038325783029840207342726319991063884681189495553044897006612443329930591333402692393443171632014829402028253504246376820057584717741966735588762493951713007824841291020965937245886384535069024864761649467710780205166220293843254077009698770611809267964350713837390127511709880161603197778127008613136600299964445615600647279904931059257556189503233995143712313897484816918181696965439031718491778906079635822753621926028373865937939725122322057671177955978329861649091223727239457680949884241768367584903009805001628207762645096133412038448670054008656100616805552038216004583458200133534663488961927360302654532101611801598539006083198781846221659783463100328676898918071456540114785242394043382576570406606023995635881825469917961598256405272001428562307113728994895245799575432782423118154946646627646461313682427415245931880693886530035357104401320089889981384348025865835998351217080596056850088832112593526466833609448370571410989602512970606890576804155340446710680061279654634412579021925877201383710310021374306952825707084531657821326203262069129018039231095992417776481625060830861369488443494769402694973310589015626949302758424737499547512569452994595026629052120848486319415699455230821397069807007239114989080867751920197518421507221147581858898820925040783778794049900698572951337858223738266387386969398089753364379485310171944257435108124712402440585321732042338644410988864438424969901281401913928634754033115328039901901847780913576872780022260663110981403629465814168649073713765735061993700810958789278954512581676396923810018275923877030433700713966302264564085542227116546715455853026456762256560233583718785712781612255259938031211092266425670512560771656791094109985575558907156879954754876593376117365762945885398205727607321367285648673836175928724173271124142533492054955518956805083069749903986053365945557943530799190302210304972098630830675631313009452176999617974279887585654349074469665470507694542515251045473336238186375463166905536901607452451271694542714866075332215779950099424414481431841630533329799152529545561408801445053806197192097266980083786716864243349626835293258791099591198024800303326456140597184916006292692379271902561165923754230131515978134372410755346075988830131429952643056278718400912843192636675282028285712799888797382825248490317774551026955082530836832903175853321653845364562830402675217266936749837969883851055995202336470402566584825595946322319597411734092126151880563337816233481194970520544251520698574834222129643340551563302638340284651680689467871294502432239597105355273392641390111037265863786251597497181116613141506803697325843894824876864557517391874285046694140704726695570903512857985878285756658628927784477613840118385848311389289741903120206881223789410101136544869024868779722707757799898071369429000084027225459356739220937719702979390996060040839655767125947180609134857142481060872841493594186300050979244465213614389080576186313827566618780050699302152232041353815567874270847721424736996104790768020812048712210234926229916365413328580864698214579252294366943098471395562047682319315123459200554484506616565380707688178942130446892671856254900893199353882459635031769136740066108026420901037380716493532108487932929050866279620396094696358763775921754649604136102092186017668597512736308229316378982054193151377717498780854753959213994575477610467057898752073413406167976986260303854452740409155915711648503240791189421514750660168843367672455070190060690141374909428240041450515103995622101345481580797668585276830695902820728106667926371581612517935810204070357226416965133396664405428522051339006078526318666483246502313126282611887573754382175186579425060594261983991165452978582981358927751632972570678631228155300859903878768167300077078761534174651755433035896765589845698607761739162228144813170369850243815396791298032025230047593722380366346288749003185595051615975289282632196453207783159819387288999558935044100191402567527506769904591459949750413562488318162399246969351322268778463872536933469898378808643590806288020284532987794362300410605776966025313618648102311339717331191508292588500460885674940157607923418945216422191339029191853118979332576652217348380584933091044730970278796210227274196760002063012096406750392013198514693143003035067062738379016591507690132020419599107550519901276219668856238270995893170486762942821919901000705734712975826236114414900860357934223939796286353039185044508642147152886111869887769524890088803687446812362912784930376664623129033894878886662826356576452102972069843777044766712168267838850081130344897305806739537062525817884076553068709530642267808518087984542106274566409238767039797176089613768106108236241319524634230221407693660299217466729252643897984528914122664764913197761210527225127072955755515694562868275025023442546838957938067604169081090348890383645326042475357047390214916506249454663454313049893507986729047401991271235545079397803648206615250465473314957197118813544048823206286116425758515725375523162359297757295968950402799594035247165647310819834940486595523344296198217899529405382119776646207745351235476898988635535448347082896374747069574837014172323842022634923047729548877997775229251733247067526206869566111326858166388466224687767309072091716318873473820155529784924141710965889084585041029814371478755112241333773767884349698583158806700454203900293182786974918220874234996709529776685995671381165932377612059084647122932484314415653944334014383307184471505630978572783017669464559205397477591745300442293691169404071517044870726716436592741998725864660017905949249902846071367552669058198218329277884334560334401600478341127227643237261215971426171403320600408550251494072110276305100500060718194012643540324450224632046846377984885671869634114891734802936590732204874835968389880494444840692034072129962372837289879996042705672138002331572432547099765788659434419928170979124205803572090951152747716588176230703901571342757695373013747860590709100846285021003178945576211989637203967990214364770059524910250200321523256987104711194182712692129666394831909608199285105349214330053247180478455390723131311948229924938621522602191515198898327191083066501843377809049746736312812208372236545589361572101301780020269346258429622270018532522705714356218508824771396936347434515868853304105157828579282279305840069083804648641184588416295519480831221988546767868346568609687615918562922381403250794716987942503489983489381484095976372615686845089392774361448707277595588554034750155548306774806333828693641523848881606846994328542647073879031762903817945707761949840541462284031726446853553167561299435510464497534043538445520153631933777898954758558626469769950294731064168099546835953139925903948836875988531434673476758766855917539644661100524492409323553320461799981751872705750988608827948358899563939819616358219287534587955694672842373322156252430994015871113971457313240099808044595401015496270616237681062033578328121500814719551343759680855100205940935114680753325097124272543447649381773196987883214242733231907007928403543587429007404785797463333837130584980266574691970519796466235038951420722938988313680168154837543435108748182064573474605787475092978388403484225126180665310944152575659977130164997901446760730033142793480957480175567693458605633917855621385450753798813693957234559379964638776982549556980012418724981508679503246695620890818040368507098224021537891761966498528491602167392415684009993322216018729883789194627265370156032493127674116891151484412990033087031010643077287968875304339207388294140122649440017706126101088938744391278475240845912407523010762732360141002392430973604573885381547612289039325236207601656903051136511122502828785858051080213492464126542465834007922478417424786773229222382631254917992920718862473886849355007227435206145608731940283573729981230543714330281498253303688716528581135405411956477063178815643410640247171400182742165875786803600108865733390278308485329894003456892785718202777949098836945939498145339665315562344805162431254774675801147812818450618273345136059643336951050360762788334088293958663994644987578443952662538144928061874660385192422449126943946337416030101455338435134438666504487916656778988281364643378063975343609875195393760844033790673149419442716217971109696235609653596051971327549975537033234471082030410018032010527716620008183356941768796837262756567921035212229030283915820508103108900597025626368227816122622233215368034811205302487997167834200601007230203328405942003661929952982337588666849473980272755519974201271284445429267999566677251376380590333010105587958389069645543751376478445485259888252898240118053057136705619480281597513039508658035235095407644013575911092358466286263669010821452377925328708524567721035782826021633860303581298354309346622622178431323094152429027033690015881330050013497848277585064353564214240307399226057523083622128002695224282164301518912257838261217164502169697793401761455617136380160792135524766877321372991767718939437213833544265751912591234566658221263582335960343366113766299275041596783280452866736265481120014563240121137525761452073668678980040305212135868681258434118892179247900392185284862531034454293279776285244814707305112560945026406881557902280532393357763687898977996016564510397017986487761417427872227175979284255695178459546103517203932733824184868902510226016467108418626934942757336068510027415948374962452020640500777386554242567901449230502167247059802459987562393225778877171861310481137273198466407049188279555558558725987452578709841058633118901458203904118359732034114249682282680263339751476170315164081968804339386438162558210213891155157140424464122029217751725655249107176746431616062942829609526785567840643598842242915454427563728222782887119330169563874626679685430398118453676631889557947876102363500784571666123999240453115277668451492549782196528738441059132192363251947634980551292305711907340270134910869726518932016032299758126226486690520442727288959816055729709007777888378117708116882841888635888803482315768243091210652663611245811819129924994518251489086492344815685113122435599760239224161210800513245406586798337307641197158538248072722669891825787136032151101196618516214981939825293089028009204015868070369807409849285325609878639942566641112482114275789487890033594592372308999236912831380505209318950887406418578080574505770155743037976254201811491286788430273822466528671871906897412592368238282690179669872202516852243064559796119631292791537820956545197733032632728762536546611838369634493227208577935368847705147071125195287379345024332046191286075175991613442060173568416846616824560070545779587792516573335276185279540524348836683922525254303071491180043650937518772040365610774560401597441350043822452676556556774146872746171409603420677725097376553608101956720973578050297935809419911386971278622576786813705340491746592371700636274706228644030630502857521400138574022436324542680900882274536475602988889712926639218730964399729436652198864400066259212926376294489869847290683307854442436866257903711379872312995445099994730764200028388858151002470249666742382861545700777535950336386577008553106878725002399339235526332179678794529276638058515078733580312723049977934641747054438717351149792302341492324040704804115082421999825642564458661127747378222117885392014253108744369391642999630665162722071444526044857836337946397003491222771092990172331695234632242279608356541519936043543656448967875692709833848310017868959340265619729963073222302040185804356121321258379465360988598696732741229400792213899943663914486132680371148248956219616568448732707123359886498215184627202077594971683870165658478880465906259404991306967962866453581900030846363480440897373714670012605609779012216771783006907910710768336841805973252455902105096092418491952340608329107186625140173386520628319485811172744050242737318944346887915099513860002501928153219269614653956894154151504844545418893767693915182555178764609012192167419373512770471271016630732324107065756926257290489283330881272974094653461969275965247098014632022218800706086496374044697485749524590236282281079694057121579367437295285363346554319542106953538268167353610052006340839157443177589994338711676192005188068620409399854431697942038319695689530634690837977727051788165277150621880003755258385412198282572025142989957218269452047827421337144624780731379057590595538136175135042949814914710050852731204935775023172074950253186210216706601701065421780568856549284806156876968508688374155114265157186757214298905192364920560403002068843507265422633545581647737526203857331543624317512584754747252254696072821164485957098353758872473299935628509164890357818600886796101363910926959836732703094523703068684497213826271955641377735342313074043765372822690805102813353106586084972129327621300625015067469863706817799172208166670833945093881135587698322956686137459025236576994204936948210147475982413620812648752779017391985194713519037155799670285414601882485541248381841411805405853247854098693197075070972996375713986315755769729271044707654609717309309068170933762817479549955281574760157067936265163508408135649550292116743099365854638855092639472759434133984916234855213172162459408696866927521674884681219972859060733261710769214443014767439110546353925418963156386457073697348067316661515878890145887055508820402205052521617692698722798055513193528982430277528028928620563916968740692934157134427680755885299432967648094014298386525957543586644926657980164507716587029124984452544657796228703672812435041410226613593908301611600602809943383540061611079248999456792522534639274128694017620946292762797473108715218639560869777666613072113919060506457315976291588324266137084557738382850684146078826610803888541658085848478059155967097489918137163821272454074907542172071478829940266072784874167786931342806410467462789337975060766977554963312944216518764479586056015870484624896301801059938356454178183269027920505626981304428787618166234783310362211864305408511356132336578104012849940281636080990670226536064844791297692942530141213346962695812022942227875393143048006462164455820385704178832313989982853353686292925465233494628305099577392811023962784273517311357791807919699040964626609168525213246705111444361031254263823421885978626442049436756676866793845430657400642135852473145446962585886657885191677428161991700241116109358962109059734941382527459204330521201915183462555321854864082844360565436926780955917446778221402933648386778812353280973169471817312180233941315675783194902284976384260473552627299360418577773336108873425427757047133601468745270856481998589766361357103550556282204334853703294624624350008247542964178794385811982561266553094026313347341705591499086324496242356026429129428950756725147659372346921683188809070009036084573840084166579008454538635617617014855743990822933567773877286462771567032955074965172414837552177600562402654571420956003498255529106416095306237408165336912763108900208547996315999729996629331481371284008058101945448406388430888213923799226375703744565396563843042032320527193084879813720480390369716906930005847512739617042369724951710062847395472725715192974574338330024253778833777201535236637820366638760737813884391764449713318843386596588358570839571572634055248742755412174661464303991653445384393330296107983970187800169428175955185611064316559165597872179714639437856396782537303166362651627390546842528000680637487817116661024381546672767940842753439298348184585755953083609661812995187593065086009529854797227558390229703732382115141802660293303630089786863523115395481838620615039513218297009384975034348071614827582799353732178191287999572842307689074809073245176385545925746277287553802545818459926623915156854329249594513442251742011251510345986487110486368027489514988351801983387359458852075369621625764629048014183196437192188104656426504591618199922104174096553178890990710701220312931142288450966522627852551100267955824556920347825417834139783831610508717073563396272389568027381457140873476065276506350555046102465699329112221841455574410218502791905472060248840810842641136829925910064377013756788632005154613104139507074017908592052088199879057146537924993012202478058952778961692882637278014907025026947580343270298703194266330785218061517473585694195846935476060352856441504263154187446906635498947105873732746867338723895120186065102412268523475473466360767748086571345560231999934677838798998705058883190549356871620653425222403191340860159644368477443944843557858644011277103212720841762178525345863698304787017592776604928961982021192456775804353337708752640406954848798386948948547216189788725738289253824130517848096653920835800682418803827293862710317452576474925087050424191047841567873190006306788771274172165334207721728416552459681116169427035582867174319253378225802061360005690484984561815465716593664005464566322603496575355005289458631209059222720854728450829628788395233763491637582518781114421843676706482400265698459606759385956294612713670119613130315436836477739920070686054832113926826128227694026728823205952608033552331005431644898854365840893416609175110708278906544416022442060562440407867353768125507410486324692493894095828689995266861801847081442541368328441505809472344794308526786452992558908248657902348027085065652746758079961664445736658192111345777968123654528970996170625396173883305297586009243697020888868979833026382043161651758963709850699505563685521228729974584293828347326168704166295380021298903852369367930642708740856086591209629894607794767392180368965166767132010900239382287927571864756986646910083915521200892878742540514977445904938204655125786897391925153701280865859652616767582612487300688985336297311456895032795918652456466706800928012080589485703143029924054425829294944856568003906047372775342858113468426153919311784528302903933417266466119768915637714148981291383144788972018087769589552696010261920967831651512904558150731564932979225475657337421464086341045320902314363011535882655347412070344903749532846392258638206771583453399717463925872014999352576420717771936252886290659834379584403798945299341759984745486014484238283634586064335366428431839243080167099576825718020162275756095398919662168225146620215825822146728528556287784005001250285568585177242554215455428435083552137227994855487975010152482802352445303973605178529137449745378798900646537988791157328751267907312582494781238451015643525417408403827530050098708459317208577703269431893781815495221681377056440394298645376776268325207102367581653468109303240509925508126964397118946869523213138378285449631041760895574721967765608796871097340257831243764451530690883031988911924573941832659121174871051375001337817799132959160385292277904215679945003846444386995439562980309476605904439805495655126503438730720511536590383762559707300450370212292668632131116209671875592461185395320075540838529306585994962664822276626754154648624742725309622204851181312196863940017587382837141870441996147434971868946448323191522712336309392871673828242857410947343711856224216769993535800895146515232158485526893614397125536708736025404748039320677007245399084833390937486791145549499854064078790715851122677259946990756678765885334473589214929797671765096637451213125616220922069930108833326073605461640317444533351644264560514067972891803695478613288569108586393987348328595762656480038020154835639633479645160975062852482318577512213169260934672712859736422284016615207477204550020731827856528063548187668470924147593238005654041798044478818412755836838796326967747093280956282269759626222329486636557528541016729236029565464819170217415200442670931192571528164054374075432342993674548056365355612523503335959163385426316769710235864395558480083490575983273005382206782258900764288809563019487390983574337765208035124221778945409757737946672188376337796530988758511761756315024738099060531905119525449978664290691019305958701878303857094566795045757555198371304352779260232771639134150885318279739167828144489380135361022587653849443846192014522630163647297784956654189203023004905170991835126376149976497525370758725524803110758683555383870574996551771149502996492667056341869239845114878214003007320578700552475148571618418122762141875109282294205585967404196084043820706132705462202037473675161984133243661684081354538161175942047855533936183829247888612191903482659059533047540576225625744577541501077849980357777845285718543243036525197518057263257835419553736943551998083192496692543122235277245242704279253861871307669131163737500137695463900129299521847028006821320105211152917533299675235992228760934402278535396892884721021043584415053040674420925668630704574175255019803094030547000312767170200584073226776604769630564762069996825882739801018660422914463101591382519300037556704004841415661499763542678024818585092770221671141446647745778369653326354138809700818475791312349814708367355905393060818001197858361291026620142190399443180401728114171321177364084142742737372301347626068679210419301542206317885022244157234365612347825084657522759914589617928074844327131258618412482172457632224250033140344649702780713508433450225775696742793558322563041829420730553864741132627776279360729103415847376852464681898889099202783651031808609200113405402372146574812754577921260247770080133249522538576799189582417175649268872442345703374186197032921447804563245602975347403751057453730112331079318609322605831490527983495640263561703077028349502449060425731572421355989094185252958511664617302478258223299039482456132264508198765319511813378185857708174916028374655761062070206280463087488860001415451602654183877006888882661559892000787711438677339619691502926722864086010186357284588769387280417893117068657382564523994991668009471557938513882020582241500837620090615979035709571364495126849186017922639949427231194477422809127684900910957642484590974525293786334267143745377078934906902327943677493379846972909112870225991429257813003200368187681048177274939436634028722726764134733152741703645205907084782278917105936017513117518249971297818010102961791013110816995573794840526999666708761863295183148162352207624961352820399070079155596204437643949173082781129834142549315102395510339594661152723956537745513911596682128268603625557109100169865306227848902165892538969309616729114028180170634848394729747046710480952189038788538173502640462032045150576942475264975201462993854314089547593739460818753944498415469690479664232865408245741288158829730158169020508879496220266102175116371057015325522320343594118059326140544954846622897754346779175006765885111058900679276990256648134733171404030852238889294471479133795391854497548027957433170719971963386112947636819175642794603584156296967087092786454693319982470428236241750018442620272813272954733805363961019850143788547793980103723515757109771489587948769372892420588792275329005450963597167690774270652663281886257352832272230378560714762577198609109268342225273152044652251510634873062523490322479740720360609243556775701107880418788678839962076518390700169397084682297576449177394956843558712876090536849680059931038390378969006616577907067985209565025651292929193905456138029886461319003624923782146083828738279043585149177157319476854403303250288701401357231276949515816233384569079290857074464428358960639548769801816734728192861569136889841199763803230230977695453306351247844315796618373178455685561578145595808883446954867621852033044552824583297974238129498038965236518712201954203332342032223634609057018006200986875639337607271442860214048074182876923691358478932957852224642947388226843542480575723705973909086744258193408015047569286209178615718485244709989396164523519461292872673044713553789058225449798816561000642905966411251073535558307822813207434799542137616963874993122463392784176434880544379032732923930121498763884651026266088859281224082891872748799968687936615857642091191151390875295774596880947865620254113626394209615795135831679964646220866729264531381826291227918300509078387937920669195644383669283216235715133741738942250905979568082628854160291151623396158596219678294667328711429958399449623173546136374844974823163542114534992262406127907888305095699662021512294034976683741350445387322291861293738090884962929446464201326673962641285144802326773199462490868783263025630239420886209452218036650152238428483040931678184718753795287908554321385136102782152971493316803182874526626374721898987059596327686990518113524505342568773516443179364929161030382550806564782207165029794878764865399500876388686110939233253010680391054601833020022100818608407601732320375082606127729057428477386367074160646664072559850450894976783275124725334784258945156613557232087137819871777297273745762028675150672047445920243503608091206121828792347160852880804175995262353603172543337924259014347221416337208250623397452471346332955720999770063534483567991750390564861126877979594717318690508778175926969032381784344208539280027141418788434090709992091500382274429963708367338907131562894694727627689105060154228760238649237957862779883289555916545706753239489318851172081009443793753815263669751587861166711374411244015338061803962137176668471553824561722023181350182187045227685215270648794523218187815799693810419545524482366769597218301745900920582929847297843108285034658997673607965362987388988301588439834062303157658393164890713681653699472803379725313518267234205780203625282464545768969284502327094418722413450146254642927741351749966066570627937221053492238286438104016970154864216322360476337275592509841850767255326417927318217107906658068965144939831991320815291088180009564502398168983737173970323983660833136122211946859856788409455520362906209118311144430306598291191178702510572583041018924845365019808042401051875134633630943883410489299076847878111643583411898959565037339388257779987816859237294662959132217468580756913014934179634102840897613994784814928302185089663992129174078878138064599915115842715461736924140975281255155113362176437355933443457291164055467931201875632531876275581403685098482044120136646585745305842002271701511368796544524310717027321589125631452161483211014326571987449854568537366163998625889440877219941599568545894570654655798583111769379720552376820081519439652911349615801860507067721716471754471318472715643863143714966512919100185624519316368454230969921597807309392274263419173989858477688387843612446504707196155637555284213262063218212607472333926305490004299193562876245144849438101897541653519827803548831302147148892436231917262733888362981020205440477687176138063419469525912095002097003932089804757296640749593948904176453567595999530961057801533504010985517189548046334513945801972518947588802315628776386400926492047245263458690630381683423970392639715904490057207262593636827173106341544532364020197581851751887880710957355007991763704145809000646379866639023057641361910648335007271415024204829848679643461549776642566906750914187816110803341222616271252490664956728269830596362718404052271563163867746350594176766184192582278571586156595171085055166363388248171874592636436147872562168779831480889015251736195759895356543422728712374661479922104507253932577808162744926921165261885962784678885157945100746755550075548142508801341070382953177977495041905776671329602238535868496307579799036171285304431797944692986854952910112803370514121134988766978467278220456481839007730664058420200171587399312934675307468066555431385408438630793588063891665250880458789678324882696623711337022745161144371862705983554056795744113256283418936310646933150179328051097464246621805268079327502965761163902164022198241659301933330940280174589701948648728114728915042917047811214001822058989839554324431719574077502116423244228990284397469660080216280517167256007974372740479649116076593674532436248705203158424188259775344573897999553747040331324256754060212860809239570557835332916905451820705094113628505100614036187925098481482186446908368492391434552994845545127650809229879922922197951632340949600152491508629192807872354989129680903539773812317570721373140154884024785954188536925745692017392114107978892994198684390813440244804989049863968626630244236155672650467606623734706445608975343883064222356470747483026299307825411436980319642932948351570599348398310405992218167777170393227505649814336913765211754139970992144714310685145290562957763196989346926842030622331749729707919973515274808952377837267985929162732796898339380767317880371895870820581762994233080349682324921843892533838370419642169474100003737574751667245112548461420820460597297030076339281534362263957420498869750740574462762529788133114736672771275618642047922220137305786387926504670890011540115231315755407467621042641344659306525634530552406756429599559788942274910244824910899974427168338376027868695955686133212125269674662666867591174473136843178051717110396221454828332571740365369072769263081255322337167078654769833779087337651404263412598222259839217548413961762114778249294755827331327117119097265842537323338644820597115270861596267677317817034650279920326351475779020109236428031582742082249727960736935935466418832327068510150159683987181364091282126718746709475385119709909880871121547328005557895784892329375290279180304094672457302884217691653267653016914995708651102501359528493103813256843224694661972813342056856692753458015269222625950541379417274215317182523511642375073726579668984543315804958566153047964669430618194717081231976536968573756742940814169540438234876978154400127375500675352044845884261132522437042514952860175114288043929867040742837326425208338861898220527238880587414791954422454606780786630945506707837421002255690016561159481481875365856487765513932088643254342111554119629100643131900420722936235728040261437657019381926945353095038966877162202685361764603332636121398432165064722838201723993545582862949904740585754765386776350512985740178755793987114398220160392252319054540269653590269106317317422230006277223046364860129608380364257653835510412484613835359917505561397974277116134012103204851148636271000202056150640151223598657223948950824338071903802248593325652556211799019953844304876417347312476532666885529228149661465551753148311841557847275755714531101018725967950257454108414486010565855441311436246106203780424172922457123260831721942544631576050113090095895740548283763237914332360725412490053495878508870122248468046667197723228802312465377528556938288187783189336022706696013177120583391269569461696036860058082514192209218319653258420335234838441245034870365530325199281776194459366868716496480214074489247525266122826045350022592718565322323200340775376229613433851832062401934336555945224358308453530565003252451730653101848677226948699230451029019662081135638685250473499724565330740413341465486549604094602176817396108554557276641367741603615209509390671004076236682130489873939910345895952680095894538899187720216484129307675044638886164838781871048646048828570807006820512870655433030398515209453026516719804604542035974508579664750744852594007034799128984751056208090635716170313467083876049905038417964890007443147807424551171988343693094143017888616050889289933845292574130695409882602939156768996416833657393937461499748013578340988442294691395258337483872838843132413144441445765581989507220572109782500155602416374184228779771780298852503289452449713013975848751683867789356009526690084754027489695590636288168409298836992762598157216421071669406143367085199054984250397442073379571516781981000930582208099192243716946359640585635131113522446923010885236254671287387763945066265535311465679720106416126606912699985702911829325835946013010596198100379592962591189839554509941376962258518727989989417990694581273370728008255914532191013548010708245977385581533874790740733283367314002847047931509187779868608479588241000612636657193851978837401365709752587280121506279904979526692884729867680920122880164613051605850635877897936556641029242508479333252119929206358242637058699129310444231452248208572017060683153914163685654412910089924022465134753349665866203127170188730242224192521460894884187137476046691245194418624712321280339395239368886183612756690875311465574820737352750575018837320254714496844625545172582278454435406176995207151591801464013819007504036254630828643482791396090348971465089283711548848012803989266930642993582614662427856996984920846774332338714939732054682913515650054040097401141462445256734371574685900094976104661676728604823076006975648942689309005330247528752826485922195864432596690101855505578336249309583808071652756117010257961563078716759861666053299069779836405747741230817091113057541895194983613896186090855793349835848872436394396388050341645235226184718638511942003790460007295334880408461464949954220342189523004266679914612863718120725561201965618315094721084319093304025699149025146184569116249482525038572853927021218956733519091392489910198446599045035738138856102868590328001932403069990997776745240662935954308338742964491204898486855209272529118123476248042852913948044998658827043331956235426755984639634375342134840476196319084029258005387823660343864103302400952266764541188901928857567745694969814823518411506770370177186605846850624859745624147395150922718343218595222768424119948976743535694735980029038814143289796927386175471521372786348132428101620295506914499947224075885247639888143724025797116706264689820863498632757917141520729803541728551560932856343489284754896293445539374526604313745435275848216144112246774033016653204696554886154505553534344507549035698049730687805576659657358459201113932697730520157755335060460482851078648826009584416620427121849351958874204120250060443097175603860018014983860173437143075897592392584037034059477687078535391325424313509537527118980081521461258089686638507999120132901918547923716541113540642668692134959633637951006489625384352427895372674453206339865457116277020285632287633169760493947953793920722270341184363763212169522760612409533613704163916071706407527111766005196239126889240989543883624444961372407039200346709418880246426371843938371301522176808883098890849468274062977672305622082464529348170700513695641859234948781972126406970635314153674818664155923317430367299528828972413729235974794729477791743112214910420968715131864498736107934553025132533043476537540639473750057285740656128262002485265747610314358410751151252891607908708247716868054115586571090991735772051866808896543058269990838140474486922532484124605045014989197672908498670130156251637863218686219785887420922946567945839711994401680111505722335400881026770800477401145590531030651566704760641979514397106048420759747330706265580832003033169675789645450065220653153911524303774861255802497368525174100183477675952080561004667904608355832090387141298626009637485400722821820584544117481310791524010673329155566413710594106652026895075892839590757900579760453180640427436881468555806262538825327612333327713785676170603006221933857772909768909527017262597323251469884518195039451519331877529962081692233682328892766781161942314035559336235486979038558054018376279091039956292750597857945668312574211714746344309983761145815549522650682171600302122477620353593048600741342685159359199259413109047103060489496395322185463550479818463916001324381799436235021360096031272342537091481567372720984177145035789847864577189461629856079052718359541664950941523547814876436123048959937356698387037770657548930412604121226426908656761210892139640838535752091369955348160455494201404084080302612153305459612973721489880539288942045522261461396860307321047096631299147610939703397424887976463412667424580001320872556756764627534898769682126142468173213397376743294488451682143009516128522670236413378564987945333573655503775627458152898161400084640028323419502159558389700317634183005490500505314594657635994412514812329582811685505267092145649199916974268282088480822950168448864381333350377501759671561327196369815002856178998557450182002472002791478589319782671979753113840025268607780321230971657052776707672394340622421038127282784133744165633923735495402207728121077142550401005559333775826144155180344062542956682367150058212813678059006314800370919059070112203450323326393347156757436765943085980743670280080459339221960397146189982424285742132401718804868921857569319514810511621860059288542038202494858522696896492920914496539117688794252880309874422556237721258199013509093589345152294174690279523157129672047362978435205413280280488867683969649172394953355789581654122877145722015778929675593647287910438691269579333748961659872579249024999564427075133097263518672238139204782872437014034700568730065141189361233488155618678713195383028316688314686722361058973088392504496037712527892382291791844778053496744244780024673402091576574489581273733770624448314410521795606810462083978038133187849921585211844541621537260597767068685461420411925824596272255407576663985463848574041804595359806930782019492575450667819265028833606964702607948253723759862252016804412518461086841048052673800506950920126308372384067809168808348311054904443138692717060736239414675841232789821100544059348072282704702950800481405091909345422055483991428520378752556892324930590384211689377975632877721554263719074890848479764366516905863894168832794617138120449187380491752960137415637084313624558795279092338837151764678718302798411971450935754145235895760321150006694832215578230143564907116358996350871798180488037672161830016983676353253881165574760526006600752195564756290299535879291041477410686447543313494000880736897526537136640155210737370665494444858506650811610128694867319805027217583805445352197843140065948799406188996355564821078387382002554534085639236291880350939966054985032974335416312760573320265488036487721390426714544125083980133962902161048356747823059381487798458145859565736914868902880156161368402917213545785128204963426006113402791601030557859142691712969516367361206101658914440851956981353620982989915954128515198486468989420056863067758925537731649008256689286302657403157153529597042174345093454768905492413155939088285447927445945851809067156922871466719803323995128329213781899780659841259627031883876750117635927434696879118910239030604024901162266241625687480256334786481570902133479486468307027256442358434654911524551841120448606191238143994516179206981577455893898282396357491702489846365097987131497409322186264378141287649341249647869099561737018290694766331402555605337406027312236116958557503421256602566013478101756890313214080984159027713144900350278053218079165782504854545392713102054482497808102874892195516085256846207028347680664347238645949330825954927621996714181201995088015105824434871320250333031316904404656063539958547523128541025220975794413890188953744115904842660536054419739015014694506733991322949301525478750729739213427259520985566362787328750076297904043622161956535101168069333439486792309275517223963363238556652465622232334724646250154883308043745346711266572960457953470166533489136959247297606062771164765699949965002466660859100354522103950369057930839606600175171791186361196672210240003829434696547197662714011648673716093069148039597137629337127225800773132783504833151636881645058967884715972771803464155365408610576262566799330443194684403290214005588306460299959596714124180234635199574687110497628091056305335399219991820309966608475730190341111822870217484738042094806610627196828611720334993373631152686066977160317697984651590365011888048945575573501292489571698225023052042145136106295720187642746619340965863648501825843959377733057912754681524881418942070337625536887277200566297273326598745536668809555635589752570575292479960721029186347476520792275558740221445837964129833003221170667549303134547643193448501427142289243095352875119205120258325011490401606031239409225451265064760481567288838197256084080032360593328030429228998235331248563030106500979555907533229795352408170117907028222899389416996059933669374693507307158029921191854074860049058351281604062461928858341808146420529429482908649912017163283731335084765902933190041248041092341348201826284348196996020404998176539566853390065017988321984518588350824025505566769787802789610483445653888706543802049723887765842523647015574022777969921591757098716264446919626871868227911677944507399669389361372746133958190637577005151066284296173570921800829378212726383391997081526355584338425344287347545673566657277420121341564964493087595573829872633155675593420947211442802662072809288295386215778861641472111146882675917302437934949659038409448298555150991817204012999934871999126873820178384076617992599195563308630461592099107772863853809415151826470619620020914178314772892290363117710651057235693741884891803436628533185226800263724579498442781419590036769009072434850291600930523079887805183277936660625519091999032347919665503359914186948638369768265843876132312674362692353746659187812290485088244192085890790556931106077851912962363841528954002761740540564880806065098031427694287146594328888646606463106355951033967650229409450835000091206982330020981369602905311519920003723981238705378282694692491809598209643702952064685422333580774398220750678546573437103418777976461651797212686833769419720877474813419254079065961332100876339418741763775555555120789234798453973839607222912549697153201902321686912303812328473219709491362534604141328940451335049877655063529413062856400599498349726952742231630104019723357978720790966484714760878502872584681213539726672676963873014485959320865681482547399414319147129590961413063232552251902694676498786156317555620968438918999738050981224404540782986669146524503272067848009631676500291925163878336263287529736985729473530436814152368957512115176223843285028293190009260677010845578465176864542885695943446247703586986708433741125390730275584081470279582809335723010279453118909512653780257931404079478573480646346483389125512387909555203611247324775566932689205756197287625235297701221045397230385340291109763920289086171549637419808566653206921790700279981657661742455450634645369871892504413113037375888941865130789013593665039676680254917524606093885397734097628216394136177913576335771169087659233673966626039428239610412308029367571598061200925569107410666427480394861816233548261326511729969656166869281914865183151126336685330866705421996290166525862054644566437591843350258008481090405689378536598671697358053408483569317917154231331718898390797756150793987030042802188305650373839551319735759108659980976279434816702738923438361044271756342223178619577944186611045374709355053919651755662109005032519825323672720224563604274454069858583977902976559044386546247327864821702533744051918747915414177920119279252558441792942945846725137081388484079151045005115333914471410629826387150115116152429515032036140225240269854147878251491222334894421203860646986762036589820073465846514400322201423209516628273259589557025522915054844534513040391791593098396855556106145584460095932181594483557036672940699831168805609053859136365908012099544942263945524519481527950590613255332754366660538921294358179983272776269623007089090107980097971077249850840488002551670629680014708154538832390912621882031515737441438944293170352076077348295739135968562616039503558173749402242397289487426675425881573295743822786287097830316387684085579476893160638805746471530141210677224507242055909279238758027860373950233313358857090059947215252192825476048899062483618657240640433846686821083203109017004210133809169222364790512623004819781748340139997189095190391766850298020291032274210755904155294958149003150628357380785465328563747986795156206895501607263048639290242415389417008229711294392586362871206368298343669931348898569833438265853704035644410032657780113038697835865770126569939771440382901622988602405903033536708176677712051488766635187668521970503568847902545183393099436504315603302436302697364881292064814576810383459171391478231474416856890728283391322955817186824947968301067331455357547497369693915953183843428777533469655816740254328188152516793635768625485402610185899310465975161099013973477385874498140761880630942919474859693424266958323835872011187464698847000380640859025072227151881365665738506323777522262186330640178745636933972066484533778692079239204888526576039551167468600980797965351435351133147985440811359582128716463756685036152564618281667160776860531813103502047604788250091160815876857394629535330616890115894628269834654813679244396549141550211779226143158956042576635289143877072148044281877897024501247907643165963495223113537380094543873244160196574917919698710698119253868221412832857803504836373251874256668422380095319231390117423142755107030445260093221735990739815949013621148348720906419260626382292177361585092155584112580277873966212665258850022629141136561519086999239790739310268976109043311402063396078964427367330415628904334212541750806419458486618246544255701230529246443456101319526994788688737382016286334517492862298833044981284188503008605812288361018944424328372635146253915665983326303047617232904714480766605417575328517641915317999502651278535241418433848613657165259382742451062100089508020924144676020993800692115591549985689335471487174569445159569783384141125063229368486235766362953767719325247299537113667494357129394713560797444497113186542779217627962825233277716547608779877709390305933342135351207416210989140811865817235091299434424601937437635775228836114298178961567446512197076221570511647446289102753125750560139862699588071574981192192409019079363941024452869773512459298742541007414804476164409910377627989346661559953082926881897289341257096865956666831681100543832457159867817199619200327112109249312004947367418839326643574198877955400658575503535261785041290203143863148829905967181883982949091591500822085503115209839949147372670057347708686766931454861016082333390303688624629160732893064683242352056731952298776545044734794413984925756270447696383447046688240777102719290858103486928863272698827875732696288308973535007349502289923564569099478887289825622301407773720883338578765141280453868118828509775769750680522203710205635971697393347685250651664631854800099957773468996915911304728877792101455842524823110990477140258622040209200872150105715723599023430848924852479427675427947024400960948538108421325395609541123680282960180258242663795575301201680204767139378272380808361523379894726539426226904562769636269828099236337851540105992100641290597727680068762023021063618361766428259229748821666239273885469245335024200038600512804226669646487755278542630156545099603743470689904856229288218000587392350288246850030718355868192552025126557201329198338151708868083454244959042550593598720514011592134286625196894893712324017091241534234344758359009612205986672582993763302270479259320463875191479909360333322030226552974020077502718295826866712993487621679160917517913600468409123397157376489712737982494585471796662699948662036190211340179257038515587213990051394634239797358159454990059887712982769512423566490970995019731466436821516581240850926672584783427184130400074849180516558962401545253047027234333393181507636728730692812434338648734909530201916907926242683765287713487855016213836923857271842847240260459183458681895500846546088165720662179256748913335360773203579851012675716290683568467710833354727594937922037124328182231092422232820086438366640127585906137858616730320276818234476403002583245706980361862328108099761018857829440913020311013475173683184860861057530627902444104604707708594810284863426517629996809581227759223685989949819928969783439504279246293799750582856070317310875175714473230278462592797869268530699224279123547580357263599132046592223785501113547607224466929197369634754298066373432099015684841672126612607234843941329885731036130133356011580279606775841154832352124545413150149432615491320158472852758008816224001574225949672220150768740040999077142624802295556904060347006380258004385240339561919997891871417972451498795418332742995292650045066194494444694178571173758841648721571340980664923119365141939789458508302120400503125160372971994201610244424654852073745229916466134234809207335558593316079667403256347581475325710091093521231747192874287693744766337630057115243668891630472854425762862319040708727465099502525272238777724467706801224362110556762686464592221230707787545692638807529204860023334588675770504845083153975115058993302598316965082442056238862319796707030244115842761796197077209856531741289094900430827091677278113142896214633284375138270083069235594338277497901611635278436501973504455117062567442646290714881545493045812417597070223582372148389701264588017766637619203789407266828239168781465632701966831231014230461404768369287321741094964399789404898850555026427298878440235801839067533509413282933425981794038327350111721193970965988106250757511675427873055291000362905060010816810015610901681339769043893498107998443079872637325132747977857377964794855329343860663610687209429675102818824231537794777231952204247222899536175335449617188091640190224262612560826514613696351599397014071600156524370017989474767748260492515024558366656362788444087004165136746655279568113710972195955649505013053970945731391837159986682000284816478642789926129808262098979625891838546957024595813764801953032288389794435138532629974539058528199081488036105941373563479761240261847999053701752196264587941932749310878340943389040100260346530050378965076098679734881788152540220366868947795265057430078940610130711272331717146010218039780033299351965213179731198696564769124320517035002761489305884056841654346479504353670061420163389853737899460466515173142730111652554050144362633714779547028705974997678817978060090821499350559179858926274105043505023457375476478433000945936750340969774043753333995128693834499362820842267505626247816477594311509156069023476461852663924438593545424698866054264044262785353350747762170373349069740534964952830414963956414091479879102858411692063250181300614193442114952945264322872652145851912964684088169606620729667536121185874906304915625154593124619202849390422096800966366861051404583463249787048089016769870028354632388858117824964207591286863160050346876932431109455899179894107157890380772522692161184265397355720289540997011708178126332000645236397499936067327663333827870750671134845500322681008834974713865890553332569722721297988374963986862893187855870897017894565135551152074560454509061125999099909402402995500857274191649376487994174409458267247709864420880809990803158046950511914914677758707103326799876010475997298166757708308216877396047038303546399621629572652680335509053722266688118946923257365886231594434331643082530174992068244205946587550418512322476206953885354427173874627767180988417859676714977331098472387304545554610855698881207092068862074427363050456169762636786622558321172224145305079221690734677665431012917444724893165464377347476961620540339510613764470819314493026282570840357727816489628705647906579887560082304837239481007483899701105858216274836778373860577088327145645868967613991034343478353612833875903311455270340313844277855290962780509724025779122668808710137424552583759327756839056042029692094185934657041736103203583556612008624431434021942047842478937657051055245930753683626225240281866605078154214213485026459276031355224739454541755997684226072957506858154297935218698022060102416686101855369652192106475320616272111039857908470741465410207965870737345122213781112291184683459161810082162113531785143486544238192596838468903694193627701770389534295454997262128743117821460685756179020236891641915208852848169322248872825054644631823415247863715171565144448176703097859383655001427377453107712262300152217816271244829277237679735924213243440146494069199892447992162689340801671956099832835879696957525277043657821376862985191753988601329126140604732074001757836043554571204874530834136721077913065221538622828924496942034038525268057488285553630536031328843583392862135936089677786887776760697451032512016191986693810244453457245487188444321174540020134758175447835946653673844296859165717383209486963073090087816823934707406179320631043877231685764880228861933357182665925128511514907864826584102689341279722834730955706187116440738110450750505461342345404238455263404989531496281589586676199896920736289195571576862805506084256213068177851599639643492691794820801956455176919499887298105480188983704052022333166519992602454342206003315121570858921253399862458367909043248043163746012874653399623184638000600885735489491912829965960176195374443728079433390381494480001747003283974227061634401869202075991998966207228631436349861707617033681908999228670139540523254378117376708015466691074961941039780290166487852053837415457675417893499294683873988465111655366694781290887070868319804222694325441704731684299246073636967788350979747831366809005062414518585494279846106184830431501405468889223007027870100944551707987998899940224212504592548532977795286290976987382965064668759884971622733509232915232188108412119884519663500294967191331549167988420654227308671128730964708743235448971029073967546364121644086754734028264728539457822321788008351444850993718717228642101605822802174224628752407738954774998984274578927004997082604127025023945897623390839006755123014726028409822750206122213833631878018290712840595774705848698492580010249839448187675237847961583855914349663343015779648554168166410691714691126610694895720891837772933382079147494372346735584120384374698959235714196592609457359352634491887618787561268967139167909615565740265026472754609258532247807115108028116578077852636278581344011334386267787205210379404967940395330651028680634691508789778058340616800216665939748878417514368952750304624446630639786440057526322266206519469974736515041009024780187004045022547147943159384279695348621157227403426422953293137892746305773022733616585986496496073310563197448828804034268211630174268038346031418144147958275370648492772718904629054122290073221168734496504924685954907237202838572447838059432721262989271087733543301476003579117321257783752715624875899002431705620971362690247611269739610709758163885734627135345741088144687571164095847708855023490963925481513160085428626044462142586285567242847024178833379403861486841313949132040827071408900928095831083050133445956409359103351057978848556919944010856893835714099070390815765539909076680178518308900318600760979862526980287210205474642479409579407550899197890059077677420457421385954356566075851681432276931770649065691826720072801594642779945810807434216055647442911112506518482928271745262643527750135440050980693608895181690109044690075166510949497996904246542783383303377013420216243324772713839878263928780982687732546054959923197553109948357279967389446491820778046385267225823546445473439830474977132215690707599615853698122710113271989315713260461619023557081421139812158532693912231495359159645518852546679320623670611900642409883708266210733483408525701778742099434774544352330254473250282802929353481747211494777501743354232668420135795156471195932509953211835206335520016016540754858396112983927976326007353746614492047926905373559680838097487951046336727657637505382420677607309428900472159780662283801342744753187227646107702203922152312893800910497444462986782114867018410040953948451505610521736107146676449303188507023701896130056475994893224759389283669852907097403921565495000395315373065907877164727350197933085473696535460687573600951672440066552018069557968533444001904250771481864338795380976098947360818863813490948323222716365511844917707722059258335838477724389709815889617053297352616872766265111970558945414454295334117515535554320564915676473529421531769528688776602402384310897100461564183927632447763769917481205343952907089204558811173700814175544967221579900763633949199484497552719838142124132339797662003047089359538144704706778491714137439029204928161465333595088048191383809341232346558267311317621203304039691599786681451301774386565583874154680165452639180927089864297574582856867806948747259135652285725835316282102505011882843555711582268888500584587334218889717297568215236836523290095972798981342752755893569256337492169243918479498363833874192852993776894454913003625782318104665517911275052987628862260198847930432191497463838003994272597442263391558777430397602098439607045613705661127898017815522143291029355505760956372673318990782816092559893298535869516438822416639315847612193887786250203341672334952565164217429781816911379923753840656535967301698986391818257811383255255998219443537868193260609807391104857443874297144204383486503736624472960741409314678657041420904447533932899320780051463620934280025274982336102545728065903740785918245337340095654859666608115654796951754090141817984322719743282719301079563624212411248049960978195120639175548341988385173854891912538964438765507236297290812766508658429779550313491048448571890308674401712683064095033574253437809582415229256078434192228894789767842836073035134854462689059979571018032996783782067037599864067615519734041852274970253420876982453545185439652494546683738197236542470390516637178567677609681546848534160557319325040031852764691284914626226939187811906777637443818967427056220327356629435866693073951704790979892284052553772368858975379882125185367894629634574276343066914029578695437967144847380235578812326159479216382039851336234936723211599453147838643889835628788246513162266405772240691179018093262704617191472859479573552639860756439666783647086774386853518321325470091249891201488896253216877815101193385350530983139056264251102249947596361554491870066808707933550484928827285269349633786157263692986887836791798355074998968411752828474245590951756906828973770381798083429683304470796278356312816104672948490447033072911671746689883472879971539328529250155534754244940344581416648487420119573818762736480257605436680762564721034134516632297941181102044906248119976942971134523842420079221491242306136180006673009483128134642146288253644586881144387597559586564795034941308087132587402127361444088758584306016320726216961119198153538043317456515714973466487360314688232613146992518702254561916113960539957887409755446840854470418458229779874150965908116175046670593234601386271680815063112377287403030146568174601436604706206118337254984589630946611064823213449006648806849604336943615910380659888757956708107385600809193877695575962785747172369755612180466093039872226927499838868641173500618016993681918285071375159161852460679947157576348117477914963329606849545553658525332785621830161266044609747440545540713896495616314064452374817008047199305596447458315171230544276647038419190873658255686169311065877973540898753534875903660893399200932591818973591447780576791197945549283192263838985521350966496690770802020948438608890238847994327794545784295010552595012561437392673307517400876694996113436534466213055545060069295611131644176031189274306512422970191200912668727925489531913454554466082124528935167544930593670310747052381324713265543561405301877466018858072780229348533609414538035191113790626163213652074408165634402769687336156144036147211709724986640978186625477657671456308203893284098306331272530082594278338619609580739683601562721409594127270566003767958166384916842133921441324943820052890939430267055806738314173183168006989312310822911884698806577780745609373582724270560274462746764723247892423550356809233104723727932862929783284936734694492459906877626194141143159306939809727124140352786305151383949464094177931134155819641894959046470868192874332204971895094290430571421455406165965814940057007625547908138256118071113460846567268509939706519611710956864128942683931576386709423184954105822941665107820423024213717958721856636820778058668169929708648707893606956669968859628258584000263582946624355958526883655774441150520893508878539881455798851546385784158521744494417794867751229535698608725712101621229874644642970863292675718642042377381708304698806733943278372767688257942147258353280043935052476642762660080999669265087644048881882149138892335846852435215135510469963732395669399574183278232572645977031608472430340913830788593186188524618967138831249363368730075328298998112014866841855686650482951153396560525960136011712042954714545808595714160529268697392037133378044997674200216050778363221262569819861206481206855173117841329577136315779452345983957977097715409385881209535820746599882265162614365436600203477165383129056520735105650036203019178184252824881988703434642756695321462959695993131345101650376533877626221749269970980924520326364289739489639524016827050234791495407766826146032918005569526943946584059925202901885481909506057047249322912066407484470114240281213546252475217613420046292817995785173397745610563616831407865094846814203450014828888026685071751224552168307894466095719641306862305072339118459203420305753222162983052163450764208053288693668309957410349749930308109052454196629686002604421083898339225678665914454383961692524916442381993372314542583987015682312532312512945509200160473157730725512484299975997576406633064697659145758159292111561441950246259459674799187098285511899884153729750809165809513694348942311484583904506235324038983443453714076254283134355077158755343021557075133341097701911208497568446760606054056048455236350332543318561044123038631477627355056038336659475229684256923022151880128363237199598868429187224046355665957789461845553464958438559086424972530826285957141861687054125369134179617776725759600993484317817206026672105046194911022100461885625434542161048005685698007756937925847410237302787455202582804043923626552030318178640757701295564263389442858895531745580183748090415096385278713866203285746829809117814287640342539920883055514367710372348816591877098582787608732773570568322463553363757435690242531537909767803877578209509597790772807660914442106190922091875448191557554269395835976271846131764528808080691586825613665250555053434192580454717586362915907815093067200610796354522554600505866125514209789009852654818181610761737692818137820763855938691084899571594519973650404497719722429703820051312268771639572714970838742900464869499751757249709170968470502466863143270467756752069424348350274713876921842025240725120335548075870745403862530429090267979227827568018650926827168236595000399331780689215005869831271214676370531448093996540543043223962829209651198839908693648000577643489610057693589582586427639715994737695306641301162322600706698808021337568766668286746714883749030974074771401859759556590888824690895095052835131058231436567581549947057870540846298570354186943500295949776163721422400759439701679998716490738664762141497465798735822631069283349546684765816986732389366231251533503751363329040381803647582715755358205160245053057285577138924944774484284542493594962392996889273592550790665681041746297566453441907798732416501170693170228049632721328272789374969958358831825976442564102665041781585483506439459212822855032979465736973637678781481242302092682295234539610670038081718831181447369130046960455674494410905285886504946641269913839298325696913089804344898147397956249605081866006696545789163225806508622943838884343514566954428897581610323509194589552782922966249838329814762803980815649781405843391859472603595347621203409051462259319027987111588570125176945476400131486175672018071936389074306548134694361276959136806038941017724283776649311852313257109672620405327341669153565572598966757312408257765816508373418000260320003512338764568865362552669725314894619032025752115375368268547187099533642550204928690075484780862813687882945999318948074169730952582708949418991661578713196169786355862851373818094278053699657281710635396727156415964306538624818266807587263144345078959533832419200093856971580650656259629815431654303178253483919442207420940709045442560709772639680824520642439093603975460712603886301148745810633410261653948936564850387410877430850944588311883707966725225212860453268353297566536054025263229629871734611639455469127976954435182064495498646859137791284868368031459217482801926933606210800744971602688879390470504151500491648958475320595276538423360415364101864914931679470077926582909303811343321482213711959141082742944904083152603214572613260750644818568501248829926666339180694152543202793423408906857617111857509045920820320097249983388309115583073933216542319105486677466178591525861722873110176062248422065688250374691538489452141271273865235614160470178360782977469333790596221054236945039191621191277667537267404298464713879637046583428750118039049453138237355181600110645703598160945671541431498085700425254297562748704802285700700057910546976970762560205183496885091564093140889277320317335437544725690992867429847583319058599670653114457522809633548515681008611728163910847082678452135459248046331198087201454621626905325007985464611235010753660148253248503756303986621633138908335130992898423522462775572662453799086687005326991745446613680636548881572501539993336806123808545422732883244907555775428815203045336165976743921759770108167259730609894554388841884720796711018743663823755410674956036736018505989759610912320481105397356512240619398566918900647075631095969087826102208424580119952713023448479517779503273684769167808469586822842785799713053004706830268432335077329683487167286065426184861822594609059862366312564646661917487962120456335320440580251938830302674576766746270382942692369827514529209971035120064531155762715971334811330904596005492091995219048933229718924132742637796050865702283821101373562340157178949060109011370974928756333252879531948336213388313240638660312022104763819758884899668594845474128042468673596428124961002332342787922463533983551995636192774458832265433804401485076145154750148415677730639501309138480270635905926762939525379223839703863025914800595186639605408795717433167699170304945310246039851125125172562641332024539343287544096933443017761498933971735947337350136650814749236323986183550236144077450135252983538940297281129852844093183291896129867781585827164642032705935619639254568708489465506935388517838297491983975299552197131076182521926017025024288320812423358385557474744327986013482828240988760653212538431409041338735795774371334944002158545385785062122171362436041293347905965875853253986060451150401036574199019994765935878845551271000530144199670913663377685814680743806084353365712676960668313951861972309242790364542112286706087769190591831866774623433232004071587611196450031693836522276367797351682281773873611778132124555277722658403740516083950160098957839834682634762656641150590943812490753165298385806088822630239805400212265620982580787061223901022429392252505569898949005415190876300728071641880931946445359748018554484221196933597804580639798906248219061015307336187430329232297171038878886947644159576861506467907087602215534847522697881977193308951023608142734197292132965649499998393616137869248990917059113375131802237935739497500781032723691233755873393746359291202631575095995352236380235310973590190597445562856732102034372651614995349605461722888413651012648338930110091257283508617976397144415794619067150190754796888676553551930876018586229764406342511398427350601572362785379441814778393060111006230440630329849556715618879452903745682966488289762783560915943908222206232873228653230717405597564607261717831461017028781527345571507276635527605817583457285281039750663262209574712711146972172957840583285774727288832451653312702742968507269842090849447777529640512413684683044511134614356694246209820260150233057908924041935131702892046004231146725954831920506108332829279134975614696421682594536717386633752664707254960849983902890840328494975419879390887537911308403018536672038204547407146213939770424643932968662605895374026602536874985483344363388446301701892381214202525618406475374657780904591590213070515864351415285244932851685113489379773552644059848706009937509190363323745532195440183315719190604943125528711140948904061758848725239361929018418077478626913236182752809870687489365558789196749661869452971144300077458029607294878470351767792552285723242124301583080239821146064931102541004220414249123269201726613986985055996205327732749572031444895870208041644581731694197719103662922314632029057084942088720184666450168144789315969241257547627775985548723577017429115973264433953803432240156969308564662976368940046662865738695483567197945462726615474256089262658077661667437345316167032797743242306892040431913134148363754089377973965056788603089624656968826763605482480318482156360453562067715626550236525349763758178172825938744570840183855933649662132586641208373841426977845500319063153796935785264909044631251451686550319286278187103071982242946195096189874680672978770799937650757592822611453048972644469151214057589646751398340077192790533042117914593021569312959199024784450867151859611907832027637232663837531602431452017182063646163529157191387264789118842536452299156144696853761724487770449999692902914795381190185478097225012383152990761655293511309711582407359360244119288312128716251240201057304028468320926896651038143151253082024388724644327192957756955022897127349217325138179800222754889836463731795590124696907425864718965543518955078751412352976105066634256327390539821678849060769854817831550270435056265916743538545150123853756621972045830606970294908191879774183588355883012394113354981249182670633497309114701642663739681164334730875460434165751725923496810413129263189401002870943133801804071988853789975332876279507789190189125643028568054257375236977310285000644711959117593537411278054440697616601422714412804755913568739718812282947011364189054833742017925122349068167816130806681897037115793712858674264660951654930626303015889318128237021384177542312749205055087579624697029064020630388657091436645992087908254682294798247410547765253164289773419762493842242962800335152462069417374001301731246564418076930141860465174199162435417534306198073023629186347058732675802150957924896614341360235299175024612704863972813891883055203148658592030082549674575445118634824351196443274284866131289920299417502089639243682271935456529059635872710230784879711722257311009138790146684794989294694439806925671563880636511595839873548652571637607782960907371475879805483504506330411741747660491536949483637422646706405506375807641711721594525601024105075252656405824482383838743222672080728198971364426487184363405335643494615861621850047853262952382295744912442426357125695636274327898133658831940786801649696430186878842365235083627206551569113933582635355810105393606311389164609250628986978251295079128791786774334126389983940669175854638321974416492407372940274156246187105483901154769414570697471067131910179645231386666585682008745967002329436460229365981692214112072317826378637065925057177445959952493795856352808243241130488788680992864049695798402553405156107094086679097132077688896948111143773311404683820969127488211907166597848941519747373932729861696799008957233249745428065610930828318302566155324786687538601841738841068134509662771324453321474112204405548622255446558340138100595552945413549745858929422432873731355073577451228780384824305655044080232840006005472975531018908503099793522201614527192711814685287990863817933935195798465250902721957169814084552868295701821308250580385073343638374028982892359333185089292259426946140812982790114963486008021087684736216529179144172153032357016902272846081833831016287461089536981028757000731354947396284058146719788106285850835023087114057409900681343833531363787648717294698430334462036916598303182872066423357410785558345814145024531435813075273215760472208117004812610800788740049064518998321005825316637792665866227416112014037680204659729212235817942411393404579535243848511025571392822516383424649118384509983376176394752422495964299970086630535874041582248521377231832588305837052609434639793339959847007543637605695891490551636649542536808082837399941152264460293267061940858673282116325590959786502796040753744106038907439237696455657547266735408365172462753182216641149626838294455514422617517063189502390827335210593839396016500035473620968696401386788724219382872475814588573681446613316360589135892201670672301867671665772686007477008000624298709881817672195755407222546626260462668064597052090935258132459810652200796422659739487108460009022660217749813014202993955711617337120716960224909466367948344398690755415131267239390693065408214295580181995059225511645448527388221010496139975105163850097528427719859130872163264028211804083592364037066677920297756168082215049372449768623867375507109711767284574342357911526073678604017633018392466727909153813257942130350544344662660444745626596592257498663660921475823775256312770256323054407585787379220005545271454726996159250915000323673578541243041234934241315385783657311953271492577594396987872044075186229172377849162935102479172880620753026077515334223770580728748050105562015619023393974966151803718582882566618977310335901851021629051012155988184498125841921275248349564337199669830664943409732029197643190395664254749509926214275553509306481204236783709429873906064185583197639318769235341174154974580423104150176990722648553828568802927420953010297060009871442963870802913707363464679517883177179842315694823553901945666105427257429352604854650844589466248997383412248506456502087339186995560726735826062717770430573481506640084297128001185886363642336851853115585168742375358870903153699603291923877099447933244369070161592778721918943929405639971785837436450809761698386251191162114679641156037712496842042867580642525533256830625832646038464729404067975248476508508588193460101191986408098448961739522613558304871209825250298260859375571916558131435955095759807491509518465448520137832162036776727453041985696364437266755687924562129915985026732566920024641768394147854070790320609985948912579701420157242891129044542730195533665802341471069116588256626554487910644540288529100246843111438814511006271146493394150432620677440787905917433403332657436825159595837671628751224386395447107651152848092580507407369957846710252504237297379801053596604474309649557020471199881418486697559871689666940062835176827629790619256930175311780933557426372225365953843077848849185979742990986999246498413758043260574611742858142724355813938287139997327825071084337750506714249285176370963978320177722963988649476793806856624305605454942884317973728950513690336799009093297778667056351417226106008804573777383441896301169944662342503631615911575137210579415718144997693069500924644647730812889733424639946156051895052491164369208294341999032099612454411371168333025561482197342891238761974251523663735452324100862821888733917636814159976781832686779250456421296056630718426236400655573087681536994435136558130988916522186114179822185997622076461819469406171879978797263969661642994577756618532160662686565661962562640675847355149440611144695044886530266500824947139695423708849624964926424692495734441307740099676470194042352410886233520533665148347315841003331468434368483050891023145171137410670765040768618898488256998644861736261769414062277534625159534571302533530448527389669634497370797572698592606993069345504521333065813980895557212231616725363619364835666592034762730393112114233219384876643686789102279946152019007612826759698726430912061640518664402188607205429821789842257635091020520865193024391222489642259761310369207887006052323259485172621125382427196712331080749041470097395833199303360821541830951977644654901353058116442050105872193066129998897034862668214181486796231737733815966939609800723142992820679350016025961145009502196001495236763064215260662514364256096403835089557803896189751194656699323456432709395121351627186517019533260977188750667558909649179057648098102675362760314395181420530062239313573896426625159618371458758614658099052480873251720974696226709177785104323937439937875418948411251719037957788323871798311530962816913400642613285203630018033200506960190834016460497423510044394090393648520335708907594977659901410192431047723464855228903023654312787939445876241508364090040259841857247557467351560440628419191653113386384439273323485389610892300656925950384551174788829864044632631344316827701709832161139452827976928021583004919680473896012413535339230658544269406203079749815060674650403958387463591194779004211499844440112891166412541206004146195283798586295800169345769056687616461769342350276840362269175395366320568594721120115788196163733340615514063229772224276642224062860597127101032166737468729691023803373202532758568809531990393171167480952911060278201801177552434613530306887267613634524404043961413116308769989333836689099923539303012962810007863642495867418587832198881240866460153424238826973121214888825052374688987472050955945055504201313806628548621728483975279476845669862470487838672283702371672604981030895423650033477173619571938809720458500194128165988459855276306051777055191062856084600661447011040031487523833249346462521706360231872318885513165952180444281954634397319693898276203323136683602104045547739160657289749525311685560169815744296103620157831454109652851506162165820795219763294636066758448781387653738096657467731332217024405124602494305991181011282047207129484950596933327672464441952253163177131062166924372320171428583227936456530029918701866499032833072601873959567617004129788027502961115442429743917880129471312840947422557856369294641211216567280906615651594518427573874884126284304930137514536714826508959748679929073784211929858335063559694228195817179324499336651135684833378796456866064109274571482666860251609089748710024763873290072942617723887948619802212774744099966810265442323587595581130839336150415063922583044513389548197021221747909194408361544096861319704684046484110457073667969706605823546027377455388027160159972786416235716349262312103335689129988769941524402095636307585751773135349798975974984671539884975928962923440288715466876911263436491272503999044554854380663314901417913081004146144449308787420160203784030863995476596620476749746761587925753451562400170782177712951592008261696088785072686094762092559493733471850704442585466714495026108201523948205852618405849276728158731303967830179123341845558107933419076395279351452544712700488731674610183823667148985302616659075858554442167171666262516981335679382888678522856866711768712979507178263248747444277696967789193688914297872258483201632003547009821632315670737723476103087231776833972303480230703928572630387004479779349278651211810432758229394606229227637755678238900488206045716176056406062464858281384428280888818989545340413704205379845378704427063353382380142762385816981599094502153074104328382360996135026443004452610492509679219660626525793296517722228883813159654101287427457190018473798189179759106417414378982430305255468133506641967448631713392814680652802067213841076068873837399981148466022394594155311045173613287285560471868892113368312615976391188239055173091535641256671976088481418237836369421049402733268999436899208752962658443984881953562795222657847208316531581576828230268058422244542481911355845528709498113273851148102307296085519021499361653612115755356805891937807251232834762495045802061092771701856352376483168418068491710851072927081193884729220532832257808902883821544526121125301297055319347263327019018183521778316993860257841867918316205248762008934017871187277456808948642112686433437180329718871639985890723009318514219779742384495585493910990481407348619797123361652354757913601784465909913103133328807637321035056197839729180228746794739643991556592981474866436533525631326376610746494780101499489399738202834751342274062300661359525792659270149374729009160140284428942067751061420286935184549520685158521395645624885836125965822354710320039001268321706953449051161468160068705811867515689822027137505904868678203846348798765583298949243242890687305384703952698937429406400098357307033850593193756576733249593390141625369866894689782992282308193955422887354580347144195047684614528811341241078078262439592939241095416828820429176980377800645696282910784306517845056699209314939891536661726420199909839099578735797388712978605118457878480284072102238499078225043920780980511068275685318151087196056670325942010768099441651167838136366441979810817724517979747022691411982467881823849899703971449773112739122547184328837440280017189847059427839107467096153740531569850398887399517684911254862609399725945530260269970944724210357978022320036971816000163522033981069310274081493761079932552516164613897014186991092331814692424356864164199958779678367768009339282308387308823493258919880379729616543503503202541194262038776960239036224577722000160620079533944176683799248831980352735353975835193497666966514200600750744466475295520010538520431017021033644107851451403565476927928621434309182220805810864377503448725928350965206667105193501352518010569766346405787310534710092136218770038719765642488519352714023404534169463544088221118263869199035543633270753787523861867182977592436080535266226737420838229117494503912517026865430806182496025735331567705902001598949681216413000448815208826555361018047900253686495002084012228867527689694131444218066407766236369494860768068338658516866833389714074275175616284081392780300258556623489513154666009993062857890577682200859577222384720226765876622980070579389271761045393974297559709572424196457308814287511205804362047775773545507488736962837817522621202955702349213536722870775448571891760566688441065739054370739431234219529681002624830506070775214976391292481903633536068192689887560093369319973745589940917812091773956591950436006227608671321417974766429592607082793146275340670724216214561542868051059309753759094384863662352556123408454275477437503676423411332534608510315636839410800968659764762552962205763855246498357717134535414197823879001676927113077019826828993204065404926617047065832747880976922308526173752753536619342316349322426188937590644485235901991553485890241783100181218725258226069918930759481169280627009874548356940983399757106776714626933667041603876422720315344792701348810282124086091116303533518389835098087074266420136254787388874801431845492344924964404310386518400684711675672084550262239264956690496179426539956328225256575077667856356083809653202567684369626453117413711501599933492744535058296945384287336873468901049085722815375119131500122752418116874462241875747972473137800610571899337244295463325133513021293704909537529737605196901864204138806759391661722367575727568774419530010731918710215485478490184666001341688050332378894973007190449158462087397677055014340171605958711483318845167636847245007414717453179132975056925121357722095168137990873912247029856284662950462929194592300337196345862593807094545132600012117163739728869267367202976472165092348171854814386015578068262663419105051029248527653249812027641582696031503380833316968366694254261830316069927611532652028662996650584647809013446367471356628626780084346865382199619931186529189989153730542447438218510118447354668251366580335535635707923756566651315255196108583128321464113367941755830727930990284402150963194845064065547743233355862913254030129974318572010413786639211860496678256760780313935475520977033363247960100406667670586390824206105910286679722171439599033389076832485648183699487197887453635141841210333104222132739641098256726926725136736563370196773212129153287110246084980571200304176259948004406774485689962336111100738848426097578640553972014153526142207101204636932911459439094418582367925629642184045869364359245507346489802333301368597487780699805192116793335743042813901369169730983620293335727167270116966982432875400533405349585486359186340411834562607066280675581593521280092244133116994367594980496244729899696272694669683223711636059489177167371868116504758521923330850007174448470768669849321732838906667610398627942536748389156459096385712083052995695209438051099658093954977471987679807713295067602257791529369722924920390348288338136238960877038123932037341726204479853048672299332933897904258399728416538122007070320964348689154443695064177408812660571514682523567004492521051765244049726045080488297108015346651404754382343893155503765821775695380487787612764226719108260987462051010029932714358727593883333655530613571581478270178192999597672257607499086975615014577916621612425195761658740912312113810849874374674067697430750867804292919860496425231338293212410408913879129519210672555032499490399966560450046507931896338014418675549043183805628596827727663170331183407117911152066041860423975461637415568942026398507823125328106178497904420545342692026379479015807138101019946161121492678365326563271808666911522721592590424615533331327847063006646441769024666428205747116802402075125067774869491201738885655505538449292804706211574568607817403903307021338400714088124042865941865150385609943097081933462897972379343817194667262975222440664068077397046360290028151648078754679166157922586277484369091459715673447710586485882049657963137303294672019153990401093509733529446937143025960636355920839083809964052603597883098472895424304827349644938160569331918941441889801922686529591704232256964178342001600234679281681415216158044082998089299777647441044021714687448572587436858542656704905836225686790330735269919436671008389509424691890843523456354005300305450041794869648842544167970723548586062027365280539248497479380468762670192032967787587283077898054713086935636099246402428108935923230209876640635018411661387980797025512299967250889723967174795775540018816509582432595162259942785483716879924765518404358454996299234262760026351913814555189596671698865186927944391502279821767448504255870282522138582984181924733703943245338885793018623012988418156158356492641153310913104096226690488091212684722999132663830392479578529570044479817526524768045105316909888910289549854844460270948560695113533284918885178124470902498409017189875955064836456171760188213462079045887274915979579879423031490138135704749688136182529614152885951481582525029363169150747621465704593699838601501983561384498076143320646933825783297972245835535703828854941706124528369253566294733071501705634251099211569511161803946754395846707279083663331493092946482746855574268162591002381389851445592928937245138794262881984977078028744029771607238808648002688749553530996942136681649718836243948041814891357767860789089990341527599690844737954996173482070209033869112649817553535681126476206564570895608632583909103514646665894695842846307669877886014666604047912098593829360552907550474631792642637017978714419606464831280742821441044609583333292107716027809212266256446878850170116477038384834531582790630591166230533237943813489926235603868142516932468528554835077925139673670902576518467703215792145197145749565068563463658685709096107032564272371806829246103308664614899490838125298752862192128825156062064310071786370106085287389701904727172053861859345674855340811490872325132520160188673243392922702517430403048461333451261683795467377008055135222030911102098817004777950621062999853110992701574981213595860957355585650415568809880453357191725006518050051541610640119011879402001929514630886660792331556437857133648663280611305985067859985639559043359278006674472247253251369098748311540759894707863242645426378859551713857744336807063299858599355218776742857234924279721297060960403956405846228396714522162893495349412326274437739218158445202273290932359726509901810783087440544425148352315531057299904407346578356069506928413059189064182146245013664596700371047871656263385490284294906783735906516430620559359782078482639943019035672051528075770412995838152167434506246576558107769496274039809504171774001976888107109561256508362912043838792678749304638548243428881741597684267340052974296209268046456412419846566211190315957148238656289263635047292796424867462552352876865813357745508778542815441768198306191092665523668434528492879602785450548256099837426223110432446473367219160770268708073496029538181488358647075169684422088078263152622632723482708057701738977063413728379917940580517591528205314791947676304107518329284386684386414497895286124947402089181400914128813890141650558169816788288126282475858789926435210596375871123643149810048148294195688244615167818493377615310426992810653160724551177937711394924555378312055967370686538049476048140757484490184591466452298988386017993773699461329841281413092300947667443226430167956413280986595951553909697555822430551469971802029043214382401808493556981994495955493501792695151794746517268809916887320221564322690213449550068043188056458653250793694248451124116928546556222404720427353644458219549250483668570081088402873202543066327987671677199305605461559295424709791881932509996934089868887987896117474076891153083885225229276784251207102074473298444020441346893733855539575269321798394681551022091710000297160090239490020764366433098521731559645643737489245878708207976971431008605547283964178975744699677110386950342680895993306944280456705526721843113004249503956955924057636093068413873796527020495485364828118412105667356643556794278385564512735767691163026130415780180515410662641660083365429382190477204421022845850962625600592241305738260825750299488210745102611507489887392264084419982873356608721415798997519379263997001728876161103920762199072371877972579543115254763932392828496317731887224364160977730374745054989845877899046206600192510358038426386251205773189004849251484405822519890052061075407259151083989624119398950542654112460058520042087651915272307494234888264363614531814320917747036292257097286308004513432659821560152514353734388456062067317640540414312618473750402365892646546667491810870934454346504920411654399198546537609655886897122822045580033700951859047177655206527742943984724970853910593970130865808979946752845397739325398205199081124786158077440968133325244029044708083724815677378980365044862287581744907575511109722145874235167658177581677077957044581709291924002759545904473604052727108584873551429629829098658301186970459236095114755166192928157839926824334467498849090254382693885721981388871352250728957417531508759885298082849887332629147899401191674440749075397013814601662151640695900139297286128536931057771812951168353884642556658388498448313289480721969593568702982203287774575850666553046198257618376392652822597943274115248924442253830863464873975125057249707639569382819948182586953769725154717895281230772166983556819695259496492767123809877115532282750258502381301935086610021352827717861983921312150371311432566914919434121739850078422485767745261516054086064267469228488652315345430446250063434280952701464164309733397627943993419754841064908376098122406332979701037712859021226610897887536803511113277294505981238800719536929910436455085833896443050084217798781248168532096465166368962312343071649009743662803807541770817468303030323504159146586916444763394154498987856104401537919535443826323818807347888306239052838916529542424253149001559382553462150931209578693009410809971844918587989326878423065042780196583900737700964672135664641226561120540276727761665784373618550087051755377729126591919721140498510843340605507748286465354145015339900600034239978168317823174553143241329099778712213494890696373322121689677816225842407466707804759862241657798778216963046025519784499844784228767070584591766248699415513607829889545870000750186088853409789786943010839128337536339909275022561238482324319241740688096972700689725133652543881175180534617636708397435633755950358750622918271639541091234003322366533287581375376517570822841413406300266200390357477466148394891502632546513401892562125655561340635809437526924671306217245370694670280604446940416189140129593542794613689536158783428718918147419660851205454297501561069893288780583965237113286476914092414152566995099180300977384379630982776211357632426437534297756817103162323352850685666214563026916393723063471692734166178897136641307013877062169621831920092915413883937151010640103176505561377851453820584587936663401948770721712248253233186936782633314846634319641904205872379660891136684177730096486611359625710257523813989539110967180664242232252866203963004568460691253626210941951721004395954115089304047407614840240701631963260770096335675799758663862847405709813179770130124733489632789420889195601915774624576247613996572382950451441088487314194615797587734953793739006911790138601629812912636805206539748786017601290142532220061523108997738569149383175686159745938975862931630690210846794905784071776938823627312151307829404413643225028744327442003795421695899858559886130194970414882441209727902416397846344287135394378816507829550158871662489583867269109659735367695513746408453571591036034217016387206529658533076818103693303540777101590640242837753776303995586790788716465795334833344096444026885550804618632889168987715392062167926756067261139465403223507562809661091863658185013769034612278781415077132337488155716346568920831431094130484966045117480250566574726612465431922604147669728834544442731708960505397722766825668270815223080423463682375625644796393290493351533748033706915285984203437701242007898230539781475272587860406219303367331614542739138261616488023832380726237924397574190548889662987872954981899016711707136406653096138274329933500657744538398230244138353825105624234026764162015491728532268538192739368201019363758737591298416139150699215178588906783367277962082685859346160816573791929557367437659368546382000213094228073764084193858065467960620343328527867446913897429371245213531416962119716469940596594349887543007515692124855249505509127969902232924168587482725846735527308491615591627871356818585304073567906247970771644701622767529399296465529493634980924110203802140443618983190753939795346723927583650606556745502247025939433128365977784296751439046471623298595426675618697563775121788649945291997468850402441041077294322488457202859961143046314861407106203959663848287866017004593497370639908685666435905361845236641283379528440321686297801940727139873063155601999094548024492986622040490737006986927442044430855847648472773223310428204905223498371257153746307239639870878926201727090880845571773550837956194885930421927162402300964587961069699930672048332398879872419850008492625825653620576653878350751622064778884612000512912479103622936294228283399599286220014248636590514251331800726167899806981662516858962867611598497433600662151815929710219835809948644683670495508832009084464139746414936963631928066207761020422136747695076180962929628407557002409229573869853352164447859346606317809904639688099745673074502758004127886692060291173298480466880815333126249698573018911833155658994752049595601842700214963590264097353756550469640981581736273104301155720768837679465413463407043610295293413131267370897179786607295458171503478227898062281946628169731653996493140373185642863942033863664946379763165209426999426426596631680218506751831751557181354862820648593629883656561647449737084491509018436067897800029722178920167347601307047718809020562655620827514812130053586550915671280559265798046229486797673695044902587898298105088953303435542659969153631217215642504571420553915949800493811656569996065434929304908716840010796317638032069433043369878177778634879149368020237405905930500375555375024234621349786380772590750834960838715259982570778752402274521252781073323179702647658100325146548881245546826307079857906391307586221992264083737956350907535525297946879579735990349044700344589032707435331418171467667184383510701269598807092185457383231726173684020327167833652132215321614268157220078466828805230876926520092351685194540953909997657797513692314597917538803046027349777657363037190422249872492267334767082756873044951483799643776421368223351348994333033594476663419374378842550515086940718284035307158983028470739888497936860107086078414938833336484773660129914596039121881524960672929316323293081185947085492710219213620343389433193792207479831333596736395248287989247302328352115717530494140608438904579104018643834337925706464705613417618001521893631716371158798235977953847528896494846427093823950947781274745254945380669049029157035409055504186954755345553077878787534060643902211556385259039013096867780463699446993231198751692701693689302549839611799905907573563588854053810445093765590394206135711387384653280193048958813344236927665390821417513776868694768539309060373824567586884743246378573411742575181911646780918695414172563675068469480415504495983693103153733347487093020472022423994018876091015249510370817429978881505011281873972430790655895060751654803067721707994395529063221711524163523172957248341583850155031596853717975498450177946953495450867414772726111194587254186824404763235833839252758188287670033767649607052711254777479527670745019420424556474163859742552249903897232932322421918577910078690106132786972113096332720654963010274262101225074569350184819648873357367755935916351111456904098728810453178580226544577246028799450664760768870745749955281570143267307913145830811731126391871759090528787630351837338425642863737236858439728357902898681245943613087235638945079633727058751699501777673524627961107723811418709067621038956456637604444900334877759320907200828239096373074838425866776847229825493172651534219074342386730818719175960121744977515160967239261012983978986807937967775803996521601644733332029772633160570010283483148061205926018019836967276900726417244331350234262655525241828647531188393217149863978430504979214374135701632219087958558325609022298510447307208434554383309521541085906913794376800128986678404698025904831150530945443455774250675511302658121630125104845786192253946114370691571847384979907490479554850527892603491437876437938919265479704355953830956579873754820944379409947139049505115664373246852348580652229808673982913500841113228435992631592483955768430545676788391044012869891851171572859015012985618740880083579714308069933601842145964157467779429482692820164875239792754571653424488044808292161624827850640499789315097478927103811329234221313749980039713725525926440451579895022482887678971309745248656194177162578176695376555311476755673549000576335281397576811885209027284827769746877626441216720206310509181546479101284742525559497894626146305450166238923229622093434508864405348200281482598679550895037700130988580976732250778410090813198118738051169394418456446694344224516157679210050453279559164491166555962448229826612831917774156841149037969320134542295951830587611734762056112994060025087053401829384327776145627456070294048592586673290938419429857637698226551993323622909309189322844233167177655025321329546830782982025025040578737950404148210427893151062981260912697356787717263855653564799592516278727452759544420260817371423317384450798001314957768696305668401030997968966531950931146200891172469944037495733197333509448044667661012153297702273453668465276336163698207932304936818270878575324095842761034042148740818956723113664896272280421775903339378456604218023395152911097770303418657577685175209708439971888975714339214947490529379994691325050847181067540704810970428959863719594114434306378448903623361401531073635761690962163320870456761962505650190131698900975710601889897611078272048322539769685301851194624737279654192417978012728694252711249495104449146938090329587927714530276584795879212017357266306029194575752462106744770558433915656804272352473294660584274584807354216292299892379010420723109255373033188709123290253200630489680123107198767479491723729757660347973913277653992554649384339593761068041700130579327152525655061577506004687741916432646731430428377122214713440226467353987507193427802959399995051667325202764543433423699808921939477633879722600998697293605936968727814180544571532464393833433549447711325197136369158046954502637100487824069633302839980258054238255544303487079880099619529155894677126766652466819767404630513350788115019030810547160921183271177250749961040085202699928643573491703895822438723830147333451020348162001801002276732909829742984938595328849252084911314826003945049344019246620376029876911176765625840764826391400040096246243274472619064790469259270420456627376578893221363309944768298393836240904588357658732351270666812125250863959723081440994589676551728873560353989178034983587896330308140510224860396123954888337481111899439030204788528707660990549772735769728091062819263219090226929127454258163280024534074683887496501519149613923002918978747873214738026191886299880617009379748046100706110315643755676828267569793145869896493039543794778712819931913958326496394831984965428390290004025290567655364077077105020521966628713769300859904253365056431703718263896217170773314542571246435312787097175767513707581642536766649243054641364843824931269398338589239378872948999059873464543982984397545712410741330232265283261046419181681457865341603512574415148449437013563569411622333784564084654952748934743371133374996515637641157118699315505955342320946097874955037527192440216143914513275271063897583113422819973646975839793233442130168864726176946630573914238090552568989719728086722696370177957172153843704071411863949547146504462148415619566137276133812549840444160650351110412651804712581164071062751159635265862704430052996717446427221419032381185269445991906781677182498778549835691218688779764138284136439718044343336678435264929563854937384292974215973251373418284043369779987298768494488996745227643763714299566972293201575822401877052037244795439882155182140463031252984086976955228457650374543357945622952935064569400518086889739729073757007930112927603262146044488077253799637281648838118208766163188787772698279943759421585113749576012406505509700302756534851975730551136999717416721666414155423326382445332656578304244124530377895538242077867321014632773811578135262363412136939291283650051946732161834804947831670578964615251799708512890781724599004938173266319288617064381836968835990579449573164856929260114770977120465193379470022710018546886328812022333903904038651619765537000505120350582244641476558169753393855790866462856315421516694196785266623394722575301865534858378234404262619593344898345839881276084711642347508194240733520620410855545721941492866834700716537366579235581770726510346564969243739718924728005642502054305228258319657577668839566944209722521767126306940848538806322764211743411939177927265669695670683114458448414467620920758908742012136233075685120122806203158229407489741359138486338934120971088461388280293182152825562542234750288032017252269498048042449720575623361995951450830054568837219792580570618970400759006860418821739736982335782745210087219413151444746942995898150664702890912408727782578453216826680625269281277279285793498069565756572175276301742162347137566151264128695446055515959849700208944233933631187939407079176083438295366406650843835656549755142901089097676521795879697251954475428622187256176472475516690029271172774295126205640909943768909139852281023039465627168831957665964635100383533678778448191779631330259404600612397938871237679267624117148031608099950183503833637828386178199109824183741097689658873899536333271153653366252998357179428626991640155902987313430383654122822554383538851143610697740604426994826659261436273139647641933938303645986242539038119405451730591751231057196123812097308107725747740175223596081982968188441999544369831987755179695736577903655671397917176289128066765235142922420887388888835001091528609280797589282710644176283319990103054364056852098822429670880707731023779552139768194794187234161222013244973986701958338301191849569318610773202149744087571229223126092070889864156668094459962459276116350039182623322717049350843946881685287226910083269866038201796338915973342188267874790304101463640137543395434164977952579194895764959130131906716894287158267586824757990236667762564631102123875915668819527394250826898443009135316025175641206617182766190507765282140817015559894547471454581901438803067367326821716907904350982407451622840583851695954380348457042295462920743655190929139789057284646747394390929908254177442154574689469872591462422241553785155187773410405149551965104363525915806188954978922352297065862539313498242350196279242680199687180211480086360869513478393911230903794874119937312902258105779451098795770166203153724388486234524285282329563049000535509710592498856156945162302270720058942185754731835855160788879996858288525682884963957140099757723881442293849288558981135945308244935780702653759033231961845769499407346366387911921225368072852303736748267187340074296419812312551428206826882225017594697099816059065071999540286347717453542702677111039593815567326816965651054269417081369858817244571194629356027737595957886863004498253764597987589000517511413583295152527509153682160287743080348923684503804263089783954069207313333199583008905363071447232554481649558280231437183125932058261109137623300215988233995073929575771326684034526470009335312790312478646460326968736429081102155941901642667419402874749367921895734665756208876612041888958359806508846232108002966319502175517420336059422438703268186049709831222121277291048943859936777667348428887457939814875711045806327158291359000732567528547323560489336385579740635835539653098136498981645126188364345257608162593655749637674091334381472501942140493232744999594270324701150047024164928523341336807162072788150929042094013346677853255417295404168292651324911328118665299336795067621029231371473630630535744326816259292715366191444729405240323931432564730815461136334021707028722438487817472703357241792484638656106399383501415815089433324017151555896258391812848677252190913202085602141470171994275635037692733403524993171097261326493154442080086627599992895873246103610088895199727776606033012058273942186017753143454297459061993290760952170627445954254185636113930184918580985195443920738929206164423547718932931937779463733140902988998630953311434030867171735864537310249382488571894092731622136146773484319738846354976800575304347635990736544896641041534909883635578926623811337408114229177315043585170171742899252725754486360948748270454072736583500492252806861904893659768933059222014659805473152718180839931711245746512096321984369458990754730662031723431653818997496303333344163456338959402931559261419491389119493679505174554776452884413896790009738452374247415443824422342953993042944411531526659274417441086673346278085791648334226080332198278923207807197048624794610780181378162416120775804755222981348483577195545911056534552001391327912909983743258287560760554700702819426204671676131796041487887805281034912325705123195013073610172020787568654130268492301939790310737823727920509993721952872245674045214290870890560622327693690825628367978720617945214091256355459729896092863071228492584394271744559049839430463852712326709181732142620748798998147920544693503046800003408973794767452754299695754082616798199258586635150576476039796335351600550707222849442680533128617946466638508063491160046709725422599271922402727858591030118816993878800908418952650742767937523505038942324259330428461782976730214557494504480412009875453530373968099821200245863358438565656617357182617040501081192977873913759515489295573085789817652739756969534615532071228602706930056200256034458467547009537963245872398142666355581086102036668902118159181761495877067813873428457191680314417804000545834080191948167445471736862090077815621925021756998538519413330314939737829283039080141784724605967089740428800741680593736342550656710190934582350860165193464359353836959921981700486917552132174900085708008619745027264881242014141482970712020822986801902919923755773991026797255383268349640424124763980386526740332662500019206616506450222448432412361322404873737342928195141433256226959385602955243040057284559755947057234202005455702703677070419910503713856320439795452680365881303964762570001275784328504002355038423645822093461806104886156810682109270451650986820903844933223070527184656325127901559809437393764030868324160536406389137047883260103834687387511594191594880926704992362108610420608876897991008546717101107881604227219966566227012472708307308592040584941182194789008674169055716048616112166363686172241547320662182568331552761016015822228672134564872330425683329920237735433834863749847079655521758622123956255738606075778921694945933018017336726321986862460001163659532346429211424928347541322777505482996612252919559106549169530678588033291046371485858557571940321367624183260134576374454679623267599013485988227068178686645181477378660340987311864738929353592811059507793201219221504405166103314366403168292074083223595643090605368837577767250103359185340299184348262895014579275796625471692040962193979731002834377251603210107042860636220449742789976661098561133030471382873715851176092796038820900709294689785866436332727668483693562583267501401857291930134994765764351307679430200199294457167555960817220159562662193855755823678553735628658405112719850916264653314018380974871602713811205226898126123662278230792340192546865924863460952119495230263814844255759916630094282126517693662230307758868633507338820886761864768887527712030036084713929100546978613608787674121031052971553913541341701272329667587989874665162904872809402132799686790564817190217236907543549415392944298542437438716405039862549150528668552624775052194476939483581575490744755717267691412705186461272485887067043509858887017860763030092530873397532827970258289157083151969996141802765344076271795262762215192314974713003467783048346858350872904068321712245876086946873946294214969747410242394503909982888850835089891126952670079431787398789997640520957765210696540250176759793699370800471724878452963204509243664123426132732861786778860423460900405808270983102760486311758855318829741652500928733427355803427660538177881244673850057672680289692287285083836907388408411494517015823974295042038512748023368355553807379733628266757318177343276528090347618892439099187604281747441197550433560960360665323734718367120393479160233474620590985356053564102926091410699850040351201176299165197717048407599195043594225148320320178004539861744891435705028028464842953656123195661139706768071064910287657506710194057663381694081351807499855049130726746634572924044036244261582151256499829738806353999653020061554337630862752716201134987681972862163121645545388560367064532318377726413989810745276815051930934578370805444737968823570647971529967619599864459294788922832751910078172936694252290406587910413083866231107754328959594978107429391776884424876967835265663055213701123343316958444433448900299125686303748017946756754408870020325293588747121859922895724452623275230753448087335584753740218735038747291235070999311687253240975186945607619787877260156716281571567284573517890117956442067982982476797462178597378122217845290171001522714858518855018769993430665912787204521402762158623269684927613936313611545915361081214663575952391982149286726117899093380021888369241809795528964134217885536135026905373216937350540152436448759624808962765249615288479507757360742912217218020685426691095239385188685721441363244194372890110606452373182744283668590864163327497549351429008700315459080533116116479496836443058573307725974197210392829088854252677665310437020905223196717476107147893538081281343117984903683955104613780537381033540768682357425430947291785108617462020519101456277240818142397315215406723390832965792081994663340055610473705275602446198146516450995447299912206387414051979092499157803201307769858639377898109029376699842730118778284192700859965245632109384767993191068258374123067318089904271408779388151841430007138919628035760707469102762576952256499815332817110677094124726498590133641986127727500281656071660228799244454643404509980694543149653789783133173902266302849766554190328337246691547047591055961663334761012502006957771528034448390862971056082980233144791851277263955737899483545612939210015869890316630099980933172534058021491659020106071499395996481005302210831518979140751211406159492377573749543539924461381536270999788446507150468894287072277244576495119047285121576402177004939264485076979049247595458668724375646686279053008495621299350075337124594616072859030433341743445803292351570617785209668871787052153831629443507081890967143238902354469963622057106606404702929088253779713738508995534435746918526659449193424170936839900980082408304300131187249091696353419340006617986309515674499398176189554274759856122783075210518789176395418488821929138997296016568914270401720624546760431159468515575416044254182015249284009703916507362200525566675031114455675239181278838494467767343145468423471041055478103302792543674587735498896863857658629317781522426062024358895689486362380165170725542648454767692686281629323192417264935692436641960354186703790160035320518075156410230395609419399209633433456924952876269724902994512226381983674287496351339765642652869762949447612819358489851115199874046224444201417733925330792450759120913450176782656584531648839896337408450833209938974322961854466204623544005517119580628235874755691714059367973045063543283119591877817217728120381706811453391775611456454581467442868972834737072951260855714150579792370568204003344758246425444396689645192949112948222730175661380809841535875872732674970421017024295610688230786761368748348733741060102468694097654524644601477395085731210616088108732772199360741540969723003652637679048642082995785337977295648426120102210139370679835355795925285096976802069283419397654998260752440414173609296852762153414017704212203019320439002906670694720389751562254326166860779702091961292847356722577124275155646795064198605374486255525280377793668790807499571261859977915758434347532771448136608128844478363551478638833615156593614657748096070880586501115122670484309456065636357098079527658184379695259992172090560726386841415008720986337881462995544635776777078186405527362412704584069893324230835229094108582796974770471029881722741632180237619175968690753276377519914488399634042609498995923227931989411050664987011247370655321319655089432164476840817725881587979675929392082051491838360639064565239042949376967686674774942394753502581652899282813233966151675150692329012440448925946556804455395418297664468050312010678284728906803635945807094655031200828263425618588317857294539516026076164206638439623944020845247271621849772782231092138544981023395411875214049354351260979799345373001590199943913999042820359599535979420249311404947876089200394587262768578707941428791552039332077642328055701211897523126614270529027158804614490659730631949604538183316832702979926739864865100555488551073707454319004013250149775132714723244447494416759178329305954734891239548098966239183727642376573604613143985038821604675330588778436808860415241253853083264706980741638363394060975917010364640257641138786465803971633396602529564615365644269922205512250576343206351956641087011013966753468787909780423657363587886451631864964816316212947180482105315133641884573437781323900757055519569098483536808995020118398507737964369842428550838083400904631092527407572387681954294732627494255678162626367813544369449555348958478414992721921336254225782351878440808482504823672074710557476680075513240270055883529251117959905971809147337760427886940791138338497659245123092026102783876787981236929229470152388643016454687081406397962103534105885348648774153441894714423763325717611320709743972811057669519186266033541352426897800885094275838819923199069333788093462012439015049641550589587361449383617844790335198528225057277087101529937070864806203322577496827274759670330287925296648049769993308086084089207877275153639502214100947563278122489596472348433303231975414055265985913512513807189128211836590862309389241436447891309720995843764134312294338268079308856580785889846294805651830402579331827476574932472653701024732306723108631224918386381552531701376961361184418690388208672658639720545066815666134960854263938775225245397281108284572866879045339565324690716205233079128256780429012040466782991692744181931750069957265343901919412819914662216378779330138843808705389225893661981263222194793347210175123164407790465526198090564742250172771168118213001972587639992469404784659101550096883064232619601891539838497223129176236339286241406148782759271137503469987832470040680465259705339358506157421908871063624402089077008536577726205884183171975919322829010543042855919923350884500814489151214393709381480286248201674586876367329466558619638754929220775471102321922734366071475668447008624634296940079165231248289889241653994150716488382848655020767301788191918289613624526001766042232286494415919398225394867395470226677056393042091134645321522085682157433594138900222921542412723836363595145625189148851324364098357319662128410560075674811108251966806445991962754463888511075006242769852468678688861409108869767105207248730032054072480262797972302080492598789563338127930356014666279679025840472300375179922025672590485663052165298191536542529041312995380717949401932499734659491145929662441466676059489735088369530740368626688950999876163546845393946153774002568627900863886960660128344018920171722530163766391670397781349025089532760327147800232047358890882749365426590477860549164305306896896079002971130208488518546226146236369944062056552095885755012896908336155643973963395188206773549817342198221822543163488931158408076591203561751811583192588786299124238435717162202378326711911964885741763426870925592844420457840317129120334693708268281010158934919591095004138865815088925046952452894886687846727259839296261373051974425685214042698621794270733032215594999097601906629232584063825039806022501029406762045786802166170172505028501325240758909348022840538871391579697203361015556420424097321425006815859422343000911334179820711397644190533402026791125588752495940607871675635380736905805908946291067935802871076426935281116697241412780630955833677638434311523064026694091192582004614436847058983292170223383929278454979469018742871751282762139216277235061722159764249058097701021836919451651304094931514013247268022933892958438726531468691036449168668842236026412500702431899467281790190745398686716180817807731729171276509170167904446687419083684348282775420787019153717883390797014836189377730581849127387986836491887923675694966465559614804638632706725517559949347294295433415898764101427041623402109770459694775428224708652993715367254938213790880132811381363217413726827904498101377499678729475264303624938078807624750163486602767831033631679757225637370517163732911492414025005859017470457229992281726164462203486723037377576842471269250951454506267396322399126192588362020738937056042920676868743060423352986804536933844829437391757190019466538322800519095933535834217910662235073201927443529872595366378016055699727011415934196411017032058372165442228404083285846065795535809596136682753837368327293410208223834683646807797402163750455798783397419802559120756772817746883823630494892456735208721273639706334260719664572528638378699365154379635622719160862392696961515985353521864147640566163995148295022502835125927134030018906026033381346863625203657956928689032730799685234832812753595258830397569775955092269084732952335145481444674594221219239342945146064627481992129007410001091851941907745694336789722482811841231880400795044941852774217040783500260905614190088322151666034041491586717741921718017168178615358355085247097331659288659795944187040718457938787213046803721231549921635609669493147171829389172306140234028307064922443830931471311642181446225354955693616265283013680176990809921478322543988207652293956004845305947385029189233627878523015774284950468881924373185840856197718158268084480809418053960962124921009553195301403956148609065733742295743212728134810467302745284010553520799620253652287915182878006103884686526691762590449710027205926949828196123359436471584637044607219850834365341446064327468420556815705453623165519685361386174397726436284502561494390444949160087872528646975346555935683318921660106411077449526683232904263155295066244341826794047994224974839107563490685727954613915095751105152454969600277462848503743235410499318247361344854078798218341973987433492275931115147460788016004613090843698533626085571393352347376019503492105698474613689828174492742885202464224510916846291660305527659768980823383219001275669707893651917099147932922643706049235456627561148774220744164816042271042467590532773668395223265182240920038928625425657528666964884330563963632434644010695205197091206558697542527565618659391552109696843394959272758057146868952919041325454185948419190480353859495516619412336884303047687504680834170102826132234409657271458561685682148989974859515572002569587009832890416028555776981653915602693084799654615932101805199735520963158793304511889582817500455301779550697624926777788699661850312003379727435149974135976507150258435515471109570399405270459040808325818531493513704478258029123201899477401375087406847811180392619720888560363471337838463779821567633064713358209346757195897669082605114026693261789384079843183250059018003971932276732968145938510561538357971309912314193945936242159061584188011352924226178121100341502904496001336146382236803097113305629094109900278564294572615357336329427828555391189811021894237372057761624537814875739765812188913578542876397009036480684811291474188285601820561028936758579294970309574374142576090454594816114466046042113576468760077369771962683770054136635882648789483807142398221017066174778576092917429703313031729087791339010026081874519378415885356478696175527614599057519133102193439942739900926847660718846249630306170925369761886359225386298294914727865404123166348759113970683833142200429515344694333742382140900802670413577005300686900995621995690955318131753229309285032833235498158141977773469952814091995254406475358240929164974394751362144547972502843206253182569596065252274271665094713577915141141793006252913803751888764538062421815534744604584275461723769216846847804790960057067192905473885477534893427677060340661757346052286640165680046569957856004575100467876849745905126328837794855452110648043676492723728464920909196157320376148335360379701350616434344273214724022948787943542886564092995938516635829899458619608772860246055757343206844540251844009402262267595694599608641923736356924847407252091690358674817326943444611475292087148653145056705362968793285633035636997868458956523506755856385529877609903705523355776495076832587909739531620330545039702252091492308697149009599907284434843245541519387286364391645056174961781560595226854857007531197355767630526987841641062123805774316384105098127134938090180559491116937249707318282317972388981385405101774600329753996549808004771189900081626466509387256323657605288277197032781044537958029237116954594260546575980486550652229996969287322511675509909858116870140006875377766103783750241672767876959857487809319768302836601812848321573443524359376711914355381949614706991577433743052623873338274459660920657088196162052861133948015408979700442825021710670767678427151460576396739492311889399617960223610951270164922714751757459850036002223011937909626676652325864164687411232549064480129251521080790199012976359330988613211186887946679519323591111925570512344965106903648245430160543138465970584637466798040048236627358214920348384719106166422858757680945870790066853355048194268776017616006980343857786424235048542663784616489013496435466269737912801321511249292392113170919859678961242220536491803814854148789575741996334075973590593299555109041854577678072818563970626860670177962915983188023498026330667771579378246951246990163736583681900092893510972251739346767050900890636571672300330968095411323512174031368799232716599095671491804784825611052723981527326615830833062421648263053161301364618331494630759129742245139551855805714681029268236266249031711564292008590134926784348297361697076501018464198471203864853310901746733530612056128981811184568061873060067075814668298273840851376870814202421737496461880074805002384194635801301672304457571300123376476516591716068967929605880829338645196281906712665446589794675987377341756729533632174165711435011153733550471711807912272281773685986781221529662114021582230177951786323098805669462283377054679075723902909526341287200901986569293989345379820004035592040208236219626236783521386187593673520584618791551876581744957466486074549537959032448599392528740831549169755217501313924041736974977280357342066007200421523646963841414962907660780015654163326041258695569538985720509191454812679133976109912524905723078183551324688485356331726014914827159973143945746947556906084450629774762517583336345751708597905259999179330623477209692070996721235629181855941975692966369033173893215403863024397546889508307005205862819168936073759784302549464131385551843833428929126138862486924152753363996882409621427764226964483907451202321748812148145525224781316723074377164797378655343351409899258567667573950713891455121357464484686839033211318478563277681790374289281049269853363116094777690742419858277462365431070399377526622168333187429982084966412313063163414714373408308163169747067208488421122667079937130117615674533197867100148206487533895288350491497656624784826316605715664549516995073388929523230876302462345814557324146768171970333505127616216923766463428862574565284268450178147649183573802156420379454387073576902282825230188517027704317533292111032212981102407271115695106864487038731627078224354794814496414576241916000400788723848543098045736995682540449121679202374618695919902860021920993258872664558352323565555757789688606684009795284700654728052133374537652816249503489528188788529528208198992740199730516786921999584115198472016062712996585319799485602550519144237313952170695200148779936306695348894728330288569235308892445903995235549299016037939483740724572756898228160320444681657120214007613559908760626431665844277718999110128205476512228645475135913094598661350401071438118822242887342662494634573536633232077608031889237349759602633112206673682252100050575607972833722502919543306628336499577238867690927530855848526656410881929176291014959955957500104691399208683875122721449801971523615118003167965197529095025930537333721564225623515022784544322703667310396357600577918851696634357125249237674180773226847403677670333605502987598986320811165108252372921406649573155114761866574220686613275612114044766678938284566645536010823666478026916845890861884209026738979359631691322353780384857440097683082367968189244912730451467768500917566679090900094067242549658329132290614368681301011261605931807482970082302029528470695235536626573465251871580816163675395614009305924444093888266695339356153214725107852104425672726173511947231700339809999397665036992493834988748923308562629109369117546710961347729553075423935960676240040443945547935855640378515342802130629123280167407404553416466316942163950501834380546121743111185914220501489129521990183636477707359591147065149373776482043498357205935428262507656808451186276488001818746628926130150892813720325312836150244349631138061623508275708541242288900651089785276524037630854818949469199150880573226658128136174207533998796058108796596435934491230403294652159646193386619483279301957478294229661514772948016779912750096214731645979624371369618619259221473445517523884375288160099966214201873973705155999509764946517326701663980232907197638022815586460415134191790294915673075234192381353940160400582217771431039745183573696886217093404283168249185443377471450209937224564362630282852869437424729237806940212726532373805808110830286319044321592406470383137083747645801708438220697836371722501364002261128901343895837148358727110782897017292827772103416407836064683346219563989212812797503781610127836840225326872613179455381547163606260243198074803448877084169349383637379339084603719161343949178950985197434380690421774994557113023082969888375542400934303622342995968862992484474634677214131183821143277375654616917075023495700144945245125198493277901911163104673871404604483349766276828086720873836066959598515222127682771997907769328242986286012021543831546634096383970155693214074945748373546061355021911801154155962062965287903756436859370566219759654197610015994490670348833689862692491040486364455381001520191698567744363906661177757317783619203561371441133377811591324185291172194706262567311863660979584283735902072315566333781653091877267923210450542912643413459610867077567220221443378006347977961383710129599549663481093935761359927970040139923541146954164912565057422059943864226175507542785448905562329825385897934312864326641138049184798179540483392869652726746634914636070271571510471579927474607312111271901507342546995949070062113061763854391102456211069364087391844857527788295267714142795597943741608609634446002728602959697394838138534293619493253486844576411967513387729099707800201314862988476784247692753301183086606800294291220393105275976292080267066394097041178347145554567375651258464824795404486164905669636915465970067893336621171846932532985486805948652234662581339925439329096745033177035244750278127099992756655701801895023472542383376363851639474900914514538898481859368686069155761241697477680853528030789761694750520316609681362480127276067567011853993044553716836022841887473349229629123262876262430471837296703628779298288254116560381199887732273930747841029495504262264955765202707507481889355529086660580848897726835221373343468011335612130783098813202877475146090339347215418137592503341727882823938758584423385781883903694920508002950619620599427089938208236804929878469531496515969031367130596422439893029162340925366066499845670360077365267011973305487291613954668272954474855254632211587572890365670767481851988548932030078952270482643774967786994038854442655044323330198366651382550644067085620140282058873892829864878437729179496392799782111163921044675886917312591462007347698826057007331164005365278685353602753596001719836133558827668473460762915595338611417740922877298615667951622096855433184367273560756531025742536606481602754299188429865638038495879404316360706126389503309025836557182686089140027311379459733746063227149356575736220381966431218678019706824266828867132876294577324399279638833387774004223377871530835408908619820032304640950267520729715530598163314035834676867910151775211727468409452491197197260421755828481967775848976890734733196473609255573399345281723290390064419749741981432220493505909127826878610238940147660479903814834083179187893865182809981300673897168599802571872895921439394632042501724454913800796192448855899106310884713346622623486161011209100340297455687139980033538864431846656627744705020391292614241768363701667825754929558643106503843872639672030125325842969924667100361525466354695672142741605533239260087724600866001157033961989254394535214661149240130228622918482553513146013232396157006562272738690627601714834237898905329058844727175034345313076304869250231492323811626372699064621586603160586956073939012331849828440229437477559814979758399743709336499442626882676367485748097857311316377039611408496867013714696506341853876642248255158193333431693583272576497186860840262806711474943697071139751976232794551529529624636889704088254164659599208541678338869891226167090518258911507401068780108295455780340423395410679063604016530363477374297218835987747386912639184296905461121593753277127029793360482852484716812443244820273592548100716800155160255540439098668231608097324108923228725153347787334012830513034389925564694746730598752131757012008556476820446759309894427665573906365730321673488402221971208238732086643556213927538316567887875822556259973628883387499734881619825775267018623446116847789773161462504074412995059094062587515741517730499685384411328359685676988976619195680862236714670759302618120282935918855264166787174106300234438613473441416671849974996955834058490484227704872380374057279375654681102796225572787734427134303340529581459448690568299134287019357628707947334899826855219673035718510121590921911885913272110092625989924243328371088240968320011778655703624991437302365291851623796807618272350216637267364479626005675454347267700306867357532926081429581116739935238203298172425363210407287637209286010059996881996973350931816035384061468637973701815514640155371490133475724188640787354434094330549293984772763716302403986176651515635500748362165720146667050513073051452860534224505999581761730471626486291165860606234066893088039872517342874591419166251099815643804506597053014488068035581132040408315783561733066512427926065359761282673391293752864729230638658397381964249806866398628478850024647314590487408619737759785134154620245487805672291097460003729943177717073619144405776481818064892109341599263696822226357304587857485653942621530879521783812343563131220052773867911198675388894440024965594450255856288078169948904134882588983091928562126377091086376870381595752008913412167342234643454433744377540085045089212197073513446212479794304557594685045535145191695434179901068657396427660862782318548211853789419095458566460378335402185805225020384215410565282218449064987334871974199685633784347963382581063099591444760116703399708685199361046359265950515061993561631457702848104016501296890859097846572274727725465794614881192750513134577324495860697797004596875005044784273436632085994890784349272056424489489183940426280406845634373722237051144675990872391728528878949565725193654402505884347384672059257450910908057594218540726463162180335218196050290677071935589629046896712901808842455239347304384883126791434826256506923853690871453363442794144191657942378170628352892709637106746404734160032364950775057376217133638556940934195858061706908224360606615872315580776605948519604231712677394128875996812829376091414202724566437110373156568189764188060960804437153162211062894688499881097138752910591980662902452373310521247098410026156275790523760056154259611771072167908117536719712173368797836554441406172899415116916031927852896823252749062560551877895714351007303424117633182536944052553883516437242901462672768250242946949950798013011686131431712640090940188065545508618952961217466965474666394206042538347839666848422169453082276769222935310013187963587786180816695278641934967090526225240562013938060217501313271056415431121240968615790381545113430988486025216987041116736631109615820463901179968357883588002602964341763445634288524515874452540918073556860110035024921063450631912941874391873020014194915543206842962603309926988859445175640588789875251198286367596293529463598420518499053069483715729079101848178703681125212314279846740733258848726115882856801591998472458136079519275493784947457407151029673386603700864811746108388672782805414775345523536125988224442561376395589385387831674491438865226523222567638811911655296668677076692547530467766803825901167937240967626505932584357840640665166338838096696029450309103708361087711275942766299531115117947594320539273789837454824535945410344799254265733704179891302152720275624289257598312015878686308478296851212861313126965591022884822990153847050493444434742898956639277696437622440445021467847488159749366205066210052695781150324609229326470481369243594562751926507012575254901492828914084393233328838512421759447583483532319913954392888192846163218169089337402223894442881453561747804688124201762899032073345453409050470056218765511149281525981420127742726261783818772005836746063242490677976937188532625587085979128052478776729457417794106496767888459084007924984771352791681811562038179320959361385122703742843985831853143905120446490339003802601098626308879858129015756917542946837392382457156066025472971592099359245490277388984996501357825980446492130581435583676944527608931484689616202063227387515257600623408782860520042397269134878850821278308687109438608944802112944543043653771576627941958628801939607345723167681561869951264173618492393352444883560660795092365966601942010927921022631464625386485568120145627495104659502008551889804997466581947121014848596085115891920030336475352826128801308316562182626446231504806990732912409550334754756403745747820299204355592130996845168094759968425473820507237776275496545314210230754503017004527251028982103968209108105865017925861090009117310179682943207070506429117332321265617149397978617481447044120437426185024004927647293322940316137599217792839156125973407890703962802688928828435819975928765730111489927280514854241309755359064187507380917711500076611107947782711103239430742983562116564457399101098761550684016384339027022060738654711433150791444959518035445689833171669871428906325796710568616393553569559507729788632802026462959442425193041431641812487955837974687187362577538713442393169958228399740693262073084565397122929482554044975551311481623209472907478440516835171264949357478313092962829165264766508340776392171625048774205114983913231505703390718681011539662188338227622912603082803837998588634960474593344034845862127628500520808911000796176134636063619914162719684936182625586066970119552994491371579089878666036542042408091391842339806247846831981087914130414443896513433437383138815569955499634224451503846651280810389199053685531043154705797028969006219826735362207119444477636144366975332173585525726294891904059104649766806533971453583256567054835324312454399068455599647500590553986159466869415916888077213885502832410857980198948363349771001042902203987537517863313447823505852609139642821596895669908330227983695337637265992218196349959464424132507149128132742590610916277162884004538927504335858206928459459824140411985793798551399877830342482395160530949139022806621430529676177728004021741293117642611755586195723287825406430218887858908696724278913245804989319072589588760790435994968142608837879472542959202918686758459821084767484569347351066650578019183909613563174332487364546680102222130250506703931395849125670301789003577782869607545009792204992447395009321327170132858921959561170205856511438388020395564148421940318798350392209038783097411898956307955227372010746850667058340895736370035288566523303144068788721360241762699822669575424766490065177778321296169087927746672441791349692431769533758404952812856819886344170032986043435208855844176877744382639575699397990164290422468337965449222215320559934945052630584981409186972020707244435312609839420095061168175169720987780249231515953745885340500048089074161094730333819052002285629237903134924182750071986397156878281714947748869625587501998105992536737911807169732957488370110919114909359818658587023027343599857749272325365469449367217142827285236616998920777690572216411323915448752960318500410067936531541131054131704121070064627659998196918832342574612806154909044304842876261818997860027331447741321785303490209325470829941857293438053042404235798318610030570619966171403107561160253523737743995769957604727059687608293246986131112323833265852189010685773381459891157242805238903126885882621047015697814380371873148290678337589476157000962692964359608581435514508250982757566624532019504529717479806880641578775753443826364835921340126836167401235807993003884498710342669059902459104925998228465714394408673915634874840635855671162857652393591774055920787913161820583483026534080062798857805219655582446580006852506714291394427937283154075008733389311003361634381013922654987775768630264622964926650216668908257280734834218843378025694164230563856479699438536304897176108287677936141930080679183259723904515686191049797071401406843852639653455393457707899210066878248834560645495230942359595168920535495765144109863272192586238081410521343874401165473353007618799776445653570090055716000412659542964843692930564904313437870590120344557902877477727385147530283319401377315071172256790033983236572623540256893099757749801919275777147220806334964962013480105347069431735424233401913545180899443133956678386850768851075519799741254048892537082887669275256349566484701734176766709554817817507632535753878151806737520677908502902262249194991314673560709420293640965809265011492887597360074005208346599990798796103425931163790312544628267416461118522221037295928172371818268174886377605646950881584073696717009434858358894540917562309347940516335545946960531302007975760170339136224028842151989733317046091067789716552769071287776815927947028397202940113958413303270916713094311260733367537264003107626095649730482093525001370153862899066394907479608366180101665649800717129151364247404853921029500971782187903630464248932080015157416635830270091811102585034540138358101156377897032785898026682735411763915882079847426028960406274264536434154203689694728122071438883982023454560374422782813956802469164790435443169445193799799256224094551375760908440338567897313362263062554162333399748968615597842042637954966874173937896771174476020128145535900681998973872645782273674215080983346636837909352366451555755798833315939232598489456247566472550852405619520118027612835395243854746903290985748296947750087962153651162798025527190837800958114109358644441515800234644966296279431146240259954956046744373681059701064050852400885035065831467987446324026976575074164999657076982361545042568627744736654238469312282462479899524014674736828864668391657159332395578636755544727757427107465865777204279777517879598388766170559089320370663170924512001967834812000784790181839295095720823569252408714689552071528757110035757229318754810484634780421100877571292792743931280353944977417728773889695200417169802239130690732568941424024293662327924398636141690742003895293625161858999103894754673629695646424950296053582160617631266253458621044806179337442566612851455291190385345236018479029791385250406645940516347928896896162568124709895378986935973927459110881697683870000034705619557437770164808730716687529723172834997790635238906047256834374218982328834724027574665291808392558362045653785978530042097577288337431940979684206025983535130897143952284383860124498715601573356956596289286019278639285371040955442881822463475014760369822056474493358773062251005282877351387054104569903027636405947029417838614015706673834660707293697792255875272809969762818926364785972132336847090378070754441932631265295999446644705841845615610759724257438040479200523101071441904443305880070763394727100639331735952980707536423533607111695653656930532932939401812933224165623072452039088853060904152946163388947460549817544275578128296800004653263935772544917103317965670538331278113354243872399139648341476957947751447285346260443051792943727830867051743102478749185197758231251467699829414848585514949745175048881938165444046061170462923387048261817455572975925226957938395753825181944273649472781023567392051131153634735735604228168143182712545536509847618385762270459994650233676918165341318411261815555733498126743524885072733584721641014738960372283045279323832112179055627075439552726612487358600277618324612683934089529485117821876687304388294677473978859544194418581060520107156483160995292274722114488711337547178795000002676433960269217003808516568862890453698401681720984200279051202877721539942022261955994253584912202854548631344192688997833407504268501385573859515489070141319019688858602363896121684410978109597393909779513610961303625769391601079639214740402459922639231222027446933926563435345074336455584794868747350212682900218358022662719013308882464922667991568924049885272944236852402030645433220423986082817460944150049919252137921765815383097445516183743732106785702797261088160820215922748161998554294602329393343263270948424541743552671709058856107363780346032971022985050453415010739273020281950135932756459923029174077819109077390288774702203433563606538989032092059501759652901660163567773868678993630919661261565943156232349787001439036186137202982235815023191118743951113067491872022479404672567511418817215837313536536943415665723532041024584276284387787814756302436488657549781469236357850687792223347760363767728803481824635092545633578779620007148623103636822988747601617345208810483330994614588442756680543460509652688143154945414974473192527609698556859259408844917065087679406408656096722897530767446470054045379285844965652710139960657760892356356355168240303651565834286933642881991394689023745974268062972309274548255818822920642404352193236822784341353083489512501193779934354465954828442750046048827248834505754062772807261421954063919049341795070859113780471856371781833416866323784685093485263024355583156342097688794303944953448737855998165484958769856953918842530878097011499717734932274614533412238768559658028195700106633018585159236535452265133225548826174108544601041443995658984805066345702878635299832098715976778076977903328351672823649843627436062635565438990251432089276997805116365902298615355900432893376935265761027303052124789709718848810512257867810126290534801340256753641024642615921260129723432028023846239071115102087396122822334085205759353682292852680234543322286560582355177965841188755502829806102118685580269041933656837177491428314400886480986504189076680635567599512553739951286865523655512504813390031943677861552808679199924253558121264936999892479805320308129928805654558136045314411758378750060228788807296067260697351989337408648330019139273491471110627823380329979620343687632344678951535563419071114824628441259696877445055314362467263046510787383279255782104909259732866380961853475121872731803508558335853739901070659364820532153909828099841203735500171204229181970632413361490485569804728991056055497588700177066543471624150264543461466818979682169093536349398395699220140433921335193544880042808913017836940230878724759390308380311880967351344408809221860951383637722345459376235381282455985687650489193203630947365276204326514457760518571550450221966007083994476338206052683652392568093439164608556009166386663546512553898679270788097944994758008541627518198059383926689270456722219601497292458866842684866030970306924931195853113821512441518685410243380880287554798860332339739960672759210278557903954568066390317138122848213964753614768266257603052072641648665939654795111712886401837206714783805334387116865204714156531103369795623157955746509038120207605512311325257014549444192894884341249971111713101065514109514457709000375232762131169165513646820955084739566085819117893220997930453956692671931176200591842922785465184143656134886231471881248697823046802970170251942398715991208995621640202911228259452929446990846868978011965830587178041261991426579936253014833195472103439673214420958862553261938613267238585269155689052699890635567794869543236516055481048939625455543448985857026415153805043775892930824462543032263724093857357337991141330782276093788841171761083949378880275877598016483743428265202783884585842087299467525270810654623901064914364661378041608594935954968317977025011952723256512979274000727590499554492437834725011648266862846543117859433869203146765734225863589625865516433909289033546938853192618612002775895583340036054591095437267452662559177841953274276605665115154781842930228747508598237225853354124850152801998410498486674333800323178175711838785404778412827174689285357041419208337869048401307164452748138128623158555495236313125060659333886188186086635640376330470393022407431247753775129276839537272017739121056767067818051214168573767296409590655738999332055160446068626879757278090339562345712617976599876048161729862817781971108034871798898266735344857269766858128667530826366365007358518988907246969316873453760593429793688302746902984769358366782429844910963877743408683459459962908700490669046283856810549748685224510214714449204245255049363572803201957903859365821186474664415318928885211751006851795847044239985219724709688398824139633452325978423246325458250098228210767380078498453308195884679606343623685930500714285599070774262656728553687201120381323466389084585384094560249446547543882138662493127987864352855548434040172681002306577282136301111426212914506636790454654705092735518310593375877712838007377085725105000494323974021544295789276844309822411202110332390702550567787791408368567507439780340194978078981681155399001963746971594384184398550605107462634360156637849246557885392917382120864864861350043574180754142036781576849245552759647153092300369517361623609620091606616444250198917315669280455476922935083965309857995662421699082064250111702341650706328236463637800270592971889434568732457565170402963888230469144313420492417166703371235207811208826472700917991391467802697070824007064649074965818082579834039064203206435743627849253656012079545097200255789910344996354420007700818484357439465242956449124818726383918982120964299134898778351517597300545395379618810420313352519141403774258270519739237894295384393400743071964932549855760187965301799850068874751532521687356641608870173949991575631947551646582190744159764985654572466244882691726859451335021381589763009625074634967144858622775761276009533784677696419557429202113692775632236798854471089232559238268174305806665368380606674457560337375809747633207541014308874425819512387652093402838350252839184987490722407662979474673919450106407511877679679910068063810016934565961075303094658908412174529240924095521318089067451949068764008907538400066227894806627883093993428582257043145280900752393493594878242490085756674628043318453667118576783375260573926623622107675498820563317055248436683610236366359971143086140792656773194797140015107483910391218851140796077313322598461133691816394722607752307340378545887957357613479633880910947739431461042282370630876580681126094639220587722670921988531523090369935268310507990116793865234159888457398929937616419039679959182138913795263429120950019854707725899913308303680453097510430550142085050617743928231844288041524864609473401729189333936291330314571538701748235408118584481670050835478001724590640313958744934555472728704665215779197552120321442981388210221410381838089045058270194494679505034498902916961667975930742498442398812042731439330228561152938705590025100855239314912539346156116779681855891437759533646668884065624059915876581038144633799202858365515244160894903071178810337845208914994851898170383831567701054861431193173783622814915156575525137987742076572916527181918780718257266148463282662697488503033297549252779875991003251847631135027608179697408025243662025814911936267821304798431637222294273746879406243803807980203145945632175957213629652000174957153681143677138650940354898069437231717235208836458273104346552881983987310838919502750092563112974443738632104379855839426308429218552005622888953869358806552362369650337120280637660804888659495146667011140019399769594446895288511181527499165876749890725844971663222821330824120789442880318731841901385901438670649165343629963270889746891205834007689376488736874173498774053880040763439156522812805432621799897651192506710490007409493122485098979858078435518365653455481613127874797507474567028908148249259775702011347262569411861796224316024211244038465461093773533090551970414685673109457779562274072840608011893465945308199046673361939669681005650279167629801078989223798418209604965102954506461273415880097834243861412632260875895137905256487149971088715543839386591342558255393709701414521780472101105352488745964504892744122086340778312415042068587560420124588552659335458154623883088951606545022970985151674879938063323469015734452762265164384159275172304585604474909407566895527690557623324902720193969596273179844036392708827610227486481438124211304046414899328135381257339445331427076121543584248830764220300171845656279359904774483039805037667533227330809816518241088741347406253219697569791025480726885223477699553680496020386647119027505572021432523131604234635224452400641248112222656013788199524348475033708327395564083701900753978273522533267941047745920726765883395041185237884006562632624269825350608544825671809285903432560375915233358613209074064042195301695086008484599885115042103750706731731477764467738220716350292713841932259952317330310110722678741203910194987730813635917098339926793571609350504748712803980801633803304063171231143238663501127509451353477683568925642371257105160224940884972706926379090705146021914258530336831102741823133681047992324253382790836168590870291207817258262793087296780894934567958379080597732816044756514864323204897550583950745022415211506817525072222392569569571728209151574246012558511397697720567711881162441975677981885213309641152409036701909948032814943205142944577802143316133987325540405620514110294386259729266300045480472327260298166549336322662982131748983240485924124888595699786897553855596299943592916003564709603910067577132587107349414283959533192350873285303810382968641777266857845022433346632933667635858301101757390306179692372733936447931710237672346565297695144791839901271942726924559035195236497785923459543927909856919312593326504449333579895559797704373190573174563511912954056453948857393092374815589129195345945913161295083562191254019633887994871415243600090847450857571082152402354821892472001764339089168705421576902395918421118485206599945375290289696738922199428904506737756867237964474264999924089069259329978771538409635891124571626592515046050520558735394559013428375941222536172308657629908741435173664949372087126744488144259072390439146808465998646551788523708359492375528406050995234020841102781958327068701709827098586442700810933496274221040325865821043840100733404801464727942053253112079928247878792070064101622668658488420908543015810984638910649683819473511470895239286926553023542381600516606434543925072323737661919534579376272697384234911313664506129584427475858177387717449951550843208665974214182705169744411012718897218298177709009495382049373235231162077167680009629681673474401165149942331178255928928065540337226407532746168242819467010746568984177026085937186662524168099856676252286554659549890450158954511986674396623631606382229264246223227305932644922637399276777380978251808491834950493748807679326809934750212677571492696288738612476238581446150772592188343490530855690221417831279363356249759950040272596106311142041247951174486619074555985666555530441469737242459494086488948737142091569073553964273911991565187718292861466784636781719985311366205107598899181083426569171472924107218428921352084378739143790367206413306608480961980333163109209277707383197585582499140369069687213605172446725063968518762424052051241758834412689362128580926972073198332949192804160170022782665276651191291503712331331185408026524948196836428665742648369081688297633972022540769297989708903341239675132977618236374413119025531115030565992848522429314270544298905369747650361226683199765005229357909300975192122050488714260385434218984165254071283353227422360002442685539082248002677891312798618854208134174894516661963505825978866055336554960879106142418134830579996784398621684466785378303745260688506738259584685605872473439900075194321525692129480094982759913722053319701057911174757982172235769298534869428558631046498265081133894662409574515519013276802467455009944671181559117693768278885080843949027487533354492545145039438217548242177714763803009644947225011003947122386820918293059178268911096674317373766429538833228376967880369845279971686036285685771516971994031607144722302632860926399542713101111649783252558625647126201068980174924467679117346673581004289853653793048754649381291184502801501521875518146138208802329021595916590614037644264853350104315181701821917800461047613257624963827775950434367886542854998398822270933296691414422669982522631825819790362368521918215033114631541773276412172857826682248418220735625267391098266047903339270219887562466356667848642234054435207844613444762654617292793030222985860548204690322082975234378476603116223291310986494724939393399229965379188010244433200955582686165595475657695336982073794949857361729334641485650572863126666590887549375181484526300828606476428409343805020021437853115425792281056456928259261556850499217314047815642926845286504889997741308735374025508937256622285015897961320074038526787309052049337124259844305157956623789098184629854243580970086426135390497423888915723549294008674801037801874963328381276065332198988484675974968128274260366081138981349529892913242928581961322988058919484334623465761335167985538759433084003323114522410573898999465055918798679686046429629047865426911964411198047603575740387804151273974110534873577760550222855958900005485607411773512065625473228801915371689109081979023261849364503857224185370955238714209715948882310248951082686609292574552551332047294662681958405038007814766934028888508109878788394112783121915031693457093389933470664201056678021418858865026211858778569479930330044838537054858166103517335853301543429479837292269337887132223807734546639444362314338658939921213417717373921966014887837560950674821413161651807068785271905298528938643132139740630157161460794882039007132535083533840923453922119796871469484654316741448507340466109017107021653864474011611109978299484773306513018780802974066974168377639732253908113153926974870605841440167443587878413384464228682879289387224991475858356519031378657342277832318411894199047072684559228360563168603140895677790024024396672357605534972185916079770355916838133158087481819867655559382523254388903870968000214383602671412511779336872275074857455071385158234436553190135387565649097911293663921655861508899579466208844260926021669402516176945742603146502543650534774660114296140831650083581186647861085896799086872316911007853777065558150974013732170045039312887674839862107880828819554737043602997957541160767535892445647530881077429742975796134613702487942437194436287306402501428711884304942767715268447726335292805501153959151982223764920638872863390410717360017595413753694942490555688154977353181572500831671931931251018701044618728468447443174773348073174722269699200844701142764051127675936591812630673326050991513209022536426235500501260798117797106228693686023313697367755308135602004608797706907743045164051614286011715222400874114639980067195680722331873528675656996899369088037014623120306835823164877848939215315848005126803998787801889813949703338070510460960577993405669134131535916202776983852560359012770785303726810243678260548434242472233644697643058939343961682544847228000517642373064550666615742194361187733475655055329730486516010724052412053497606536349012958215754284482273893786132474132983407356402760828842596895902631676252721828051397212288496887491366378142905664620686344493552513628374059781761393464382461457076563589393342090143954259579042988620439755025413255953731474651429094942555014796629982073661696533165442825963153813615767934175193547164689200279696068834886088846348830234508079113297382194306700599418720196176761351669365419182590910772167407434360238963541096628781996248100448963187627257614491898101772526489075227941219753542075554830229314754618939428005448072947148505343486195356974453664522581923505244518254732163202458433783275733198804373503195304267939454199698979558849655894927288015139695578172585346184250700764885790743103091680615716881928834103834649414565062527565658166481787881499687308220953606488253291294311649800600214268286486336758680102904675628817048134133720675712889120230188534187050842119656996762689431687692090675814204639738079959764634032811213818320855961013817801549102857653687736742951410331130575012394504741193868116246015294102016918813581903301489187542456842198503972568482513522619853037130618328750949484906168600129430801798208329422357724283057504136090086811995281589267954002742338272660742330238435435409924105156764630067897956629102095632913408057943795513345541990310558730293132214602256713487391694468464707042184106502758152470551608464091479761715215695129988049557584503224022554397122174463033845902578262110424828496243978053870232731349384958571638102438337856645117346739175150040861806186353635575347037540240271999208984005293383040454796828864469476655525617668364786139337014868906791970223402469735339136502157319062652489358517533219360626350879219188573268518882029401944644244867604008459822058458157126415261658153091106232975172717614392348587197733284036701738460744613593251569423956151721606310631640438712684343442522080913668006294155959830417820077603247414025432138170860201187732570917610687451223729087258218974668611503371534931958666924220726844727350375948225920683376565923943659587684744095844889572302908497537806058750528234727237398062598005423351959928204566683920931356109833334755494983808287281785597964098447963875906624289187530060005545628898425850502454805124762091234596699478958916643115403611095095454301012955175271356837545017194213710056781619898638397638876237111318140855863743073290757742563075631603212131755924887132572916542895630318877392693656552656084626089235864130690723204777798555741051940944262801939911731569012737030706404956421243883747563551714958252494738156900392234615420282068378938264030882509330512229609184335823748267633976531746428428711911897502867480914828598260752837298841300268055292563049196423652003916119252885406371933195807891860409504857091843818814426012860372161939163270985184160634305230245373373294838918215109985290466926711619542318235864210163185492338103541196362408845173129400852236797487816618413618837105909611266287446254279024309778013215006301294566194897466105390992065663887031625799526441144771103784883435641856850347144576376871594984939834780797198398347073960805476250555553540611073727855910812890361348748705596364261652078934183257350465241613992569615904263037884370500651839847368796804753883617469414178371597424509053485580720722338358062435173763818343781728729879594882456421313980825621064104774860791281756022400686394399406444803087199045746440072635752138810812878639056661345088349719941390078407399160901934962770765362786589631665453458369861454150856507183201988379323538061744165157730398892607977336827106308742219480232678142683687408508783598375276277490227188628368799417543112762095352033358856893304611950582798491792584187680854447456109192906093547571518097429956909955685263370800103151669124363982809151983927401741496939841289931071623487325868965221571827405454416936035199270520576366144123825860295312555603800993714751433181445364849937355987405254263375701872554892629976890091002417834191983021115901860578706027858330979295737054523844701302381822066108515508067984395936620605743745074238824786812221651732114358370950447278158267748207819857205398292678821622850770010774219902710133756230577213273051141302457969399388856337353121428510094749752242670897570350332170557701797578741485510027756835455054173879470223479365203900997843439362514458896666676447255827685008502891883638417708768854239595912829034464026991759970597996561993364631915574214415011586011423416018098634184595870448874075332465116302511687295943416535423298293345362922537187942232781203405610466976513388859883934703923919976609097218650917608627786758305824282582060863978273498676540108248135450258040884443633438247239229517484215275903757844091985171040680913941025931264763422740487144325564851910572380324890961081826500278713136958436485020324610363720763264175064079091629734255210171802997820444884938275636222546585016651410121047677453843589380199556751807612062785984227061321178156536849089930833806741334331490327793754956673206175078086238269643368113492954570555490944846254735645496306112966205703287599316366610625749028460756800799552269641830769023534406003406411356065006128691848440874163023722579383304807751545084695565077006040018198040069116127424225699555512956133658806118494527079402632692638003569735907310473059821228610613442070690726374766058133593727578623320758183792535615040497193385911962050888972940086961665984206819642212538269369147525278599671516809530390203353357403017475192142700271294964461400371373198686424721092687814733687321612524834818982789412396998227136460246296852199035442992044566088413223622261643089992505876416007107101649496651691776794830054790745089392123766038733169497285343023449717014533643779964396340384767614819349766529060317073396473867201328334930471227957993221016857599328880280720420003290221059909771586291900326057017935727357324983796627652225646236842890531006515395067880049564019481328572772577157340536033041125087798608526630114112396754782461845016556746386966092218539169122182397373913224595623831112029648585028987683378900367998196543888470091800683204342083308473660581239200213386055615608951336158003473231881948577710067354462355425705377343977148336369048093743436597598875764729555863745404583366324210461198187620275490440760560576504241148433627790430489147619354135515216646469900871935806316674705721513576573163916546994996092748355290614523725601513935461424485173795416740283137446287379173365814745579377392382504786271244957363110983279210739296226316494834648713852429791939320810571285496739026006335766593265932269122776927519436896079695926462661598304331918497735216065718596746643677147956944765730998893607372466625744640984855659346319106583044528708900522580765064290751121042116684873932020931947471293125639444516693958274366659133993149257806386056374557667056990678133622630951843676499234501037858098554172483385466676611100746647068600308776285756191893061205863813754007444174848592629569818671125640422912081266654852600040133729598032003618013740897872951842979748852022766359861183998132042174259281961421746948770516353719986117037669171803890516480969739464673687002041951301506996157667151180131824863869066592572525276018122231042659727884135076752303280402750937108042348671999220278864791152835645206900504393911171888144785829039544245407662185766099781962682245872543816724110420422550284846243988320949826648026330609323898328879832855837830742275315158690536282021528375605331963283641077680390938867664268102431575778235674255783771471506714895044521708261197422575452302874289426665195842882501720355512011269716443858757701137638823551725674522481054879746276689749417519391549968580572078070763792044905345756471931566329050202855731558408583781556505110318487130293279459920189192692288365321757828217289753282301585005897347100156121401579786824829553874405964734725796178748121220897397986591860324345221983619995271298750307352234456416176659181213353353592508135093909790263966899124261122615939041215535876595009129726575951518854437581622606203808600474711936186887555883060163234441373031468357601235623199939077479281503713732694993555091418992425873836945727669332601555018306378970052213061976758429730798882665339784036571967851890287316726098502408700881981475598232955685537369268688159273916393740075779553023716857136767059021301962014479048006694179313240063748615329896520269624734935383941598768983194198959631835586659066607809066769166972073393831023106127839028173106697559602767914074551130569007321360126571144571170539981491534727593868917991838393293289061189449437661890111670539930161898200596396723214783791869033155368049204579764001915931603617006270728985008782361136892332873935584838915123671242438944148582352594243497582948971347840720904109716925419327695819640386051413696841505169131067981831943264394210904437544070329109883909646901772798374907017119051721456642873603885356876686837596494486463445747319802346806966488513532946249081944970604191962175777953135332801997118409718325656491168895550923171055581600661575080426246325464202716058575494527457633792114531440570681382698196814588156710136726751041696006243584482298896296613015856520796518892969008966041104148904259592993991040168750837152514361410523862942595013351218100958585470893908947621992559138865855896816262014520369374893050335128003777990467439969156768564911257025888796520605099716954579055336979911014270736992567344115677348757783680187805133208043184175343387657463514388253448561916022643650770107667520112410996218087478216949587483212716046653256431209057346257873839817059000352555547125968053340844679729401328837344448874322536683548158807142201975696969862019807721137243461843492510338792596517665049074417345498113818081711263318159454192788921243334335844555617229221601745812333186874042054003497955563715574083414431166033951416081765727681162660156432599911032371226756850096558244202538115513113222810948399880183799016168118279049827214515929284039658148741071268091859742553815203657693687243050522445534740948057983996630598753179255670429995907788130613874377349615222482435641126885808121934797766834779952132261279739618636545240939347577093202842147284344136785552194191930741752841482418981517780504121919402416561373851261737441093010892156230133318557840391353342654628063859035723245282651083912242520198490879566193762434156468611450034365893882636815953846216154644152088804194050101121240330500743667640986695234785736446330224146827937464748570814082880372867504474423915026030652897614176520519395413868548097474685623387321897495583961151455445128506214452869630131837459187269934403952720771361421717564786760413034007324796191220208052159161040875158715771609603323772587811395317339572581421170663817856982259165250648628763057167964182913703969535659269374804271075463702018231840732601703950645593737776246274950209328375287329406037902546420751430084782960172194063818388849165198359442216346113760108916153933031776345082997665006689279870577505691258629273649913953952932891064199333888168069068417961574113315011459684807610951701639731295365050159127580404241148473515676476658578374997573649610268953665439070101146866934609715459132062029375684462516371474966084652816536111008241661181533711453060329190508222760429504344387681244448736548749240473824671110383666835606461851103496923013108114992321610207123383223096487575459400604634408129519294590142284662581682596268149112271819525390307221129365924475766943507491370721621625698938991804172175174523068603688863035714325290423215015229466165525375802702364413057274498175340367355293370198074774393543447598033606010797880866357659861146964293616078067524825456579599937822641023355949720994368588432210996422895909797960343309101463824181030330543095895648402926005145151638082534964147027963368864722428567027023365762254611168512506690238538867527102257101037192921078722355306482938421243056892046313137193404116893678052936648494937533296172827521686536241577621936186620487979136608190125728191451150333205136463332370713308397923206884050803862654256631056278068294281846703365528699700590161701544416397121107233365129181425570762575008953452869084779621522073406982155275508217981221133052127424013781122859880037508224382439992727919913749023059345655078972595372724320961369464202284842464647331357736077922138632327366252991295691462850596364027415632924576992904874269733039073686102814970103639803153718327865634243470820568553284588491665851736592141974615007886787393591827922846374534859577484552123975752262942967484795528745330058187568377704103951697608569605324731754845272116875266057473315718470957454074523975452940515630414879415507414879490792625206498370167112659449589467242442751043238162980538205018627051505080912819694316213431719693417836928480420270730519074554692123355320251148245606356091935612812166496853232552742073141222627873371853377660139118437892891866884427886976205863912362750102406313846464026509447613801875145618813595906396182347953610535280468354508594984486663503994495645376628112754484023631551111804407714513755009818407802312818000305969943870756898509230625569133021915746858469651159548414019710854230164007633142380606209021592454411487738607872135655048843047382467978102137849809835947889288133463105704386599537054320466029375220112508332417921520030450484541423950660283534128476285285931334563332145129762332904024538188153170686593946947783836784585744182994420493073587553947857091002041535182332565572431048333422989554465170653554609380527678428760493422227508225737053867823571552652380348529598968809801733098537263136194630002171722726019837373930434566325429436059518220938299795188049636198077706933556741756888079227545575791736331563755411623151845151667335289131939689465691475024533548164569091075749259140059364307394056075051452710614099375795778958003196351182532161231948026179985303650207690390328352661002764005018650031303996040770201291471889028672131875750166240488345497536634828837325293524918243058440796809080048138330465890580038711102638085104213924030332627924799204149473695813887247578570912938720037393017766593873080469114806756564519303232476606732482022598104664927695555918314442752643600826362209616823930314395111900054505514048417024988598579867665270078071953822587074277385301582790375488027036921686681527112358820264556594093821044511498359668031219738330081136556475336475764774513812862790281882511732816552695749626820350462392624247140296776220346309251024540864130516635726543349172677643366392292523032213360940489568056724924178651601121133710146142805160488495436338015208411565815887901615312387736995166962880928562587874647747652185132096448676376879597980557131111646233916361941915086159075951184022895608925978919802855380829056014977260562895671410674865761889366382605050106732006024388719730230177812252251358189727951510488784010100481296235905803692918172173405039045552644468346710396840999105600663104208434264609509554210211319078967434527591312732601825266586060946348742758346885120358126841016586572460232626759629335526785212757072816082440550886818339439890632255213923466973753318553371285720655758530095944300585243757086145677023196214837119649028351753263938412520466397191182477459890828353378331863423898491927855135481161394695172649169023072098805197058886083666580709031425588034536988652093377701487408450623852817507111088267800418665561146113501943887935774222060771493088319303696883678053905643073509722604932478484806606331914638311532609348201490853465673101013262695786584767849914882967535556171680969921337931383194485544885262322026245620127557970867106632011222370328481132239066803228488593787419852489642761629523361484336792476784621144847627041956050137480492882679692924875863860352408441507837757912233977104843933027354143408659393904661103713564220835896624994066090444771543068991869842609107113782167914990992574272702651751984592475828271659247883408288621269469513747112089728336685952895662509731789407617377518340947436221443647042232972290718285358329643421071937881445947917805715479059430461964577807878149258619722543249976141205121127825478928539524968400322902172686994273785701833288484264175858086034726326186494406301601192965743599454263223913875057970356404041200482805332405608515697242397162653263641861916632735680777380886938558653903753898688359772979241475272332907371501144832033383284348203178117359197873385145181407089686505942339466731487294428164476304244367688061432103782352471853487719666462078682344923526160296462273890907624680673236597031956565614352270600053046460140648015863319626221425540654733562721791046791045459840161741555834063750687896477295269501844795557659071862932669992060962078663685518803185478938005034189722437796930078992857145422993048708075459851437627771033436098683787233419955176660136575325492959156613917664433255615502580379684946871121152609377287132774960040245142207422983850579230673814583252218883690078775640795056168447919406119858966136199543222397262807731257276774756983108461244435904680651781518739300225668813260617177642159840200957921774210857368077959672626336250911155610184153092597470598319302913325265101074904090693944476981024254074869937662676655896630448579876154454079139027481460400176366322535734021789324968741670202158919512031951448280687323327979156948668995371423902142502653575943467866948912287855485995291339331424120398316371906796056941921703317439093825467189770820534610068458890654576800364653128647669215583796809469608738109963274757420865651003340293708673567703993615024489015348898536653894604537176702475777507337216853949694609423957569645490392452372172990688666398472747685438548270155168602027948183404201471301067395237794885027920745295120200471517926810382037598752602477386022513488968704106668005311413279642717027399537410311988284985466487089137232976181837366776533740219534737181181272204942900416017607963740515813829080965925819541759677629539095636001438983124968295968180292742263683346679921083435678842216973880714420905859730697680761861722798922156614716227129804278847104307263811939205567171798459392484800058153253949157944265136109023372152087479425934939687038577867165548354406177667346851992110800602936686894675803611462240999745958577103290112765200610161905627925298063352666357097224625620586436351209959349531646454902275373025627480200378289615593251072163375704819951677157996477277857815570843280541341404632250533080467314676727335585102886614257623272595896850505385958077091572925474137651811996820067229232365245869328886124153730086329500302218451469483168852131445980494712028304932360650451592923384861656463330890022896762887142862420815700574524714315618274640401366397082250774771553305510150969567340808952001619964847110191262414643556212317011995550694509402286172362146296858187137423185259512346222924866150120611696323092367292853152188855693102176683213841827769863828939087568299796524368148497513293588726332725643149112269508334774938087063708934739836725927717732173677053098108187494184210546931615745168332213223324840053090317539672997386903404791204638944190937089329776437835487378433950995208401533749726007584595660901635851670948022164680138985296413937801401873769459802644633818032629020493538017149239062900120135292572302709738562049368636132455425501672507560662592365580069106472065934806756489434026716945019979130119286585971331924166818412629445863352045187007073003573534788158117613938539862457305483693861631552550679415526940381094242778361913018692869495732327109707535208384626047371494309389939444821566343562793777464667034620203303062157843102876421907989844821734969465734084270147974902955269751676592806087003927529995815414066676347895493295238150134135643276273221545978379957991089479687123401434092411306831007214667073441797931365523952137989027645995702667512449044441211140577829441068211516905207871156910284755502212791240516572683463666953399513468340473424674376778745608357534821799443119379886720038404400242387008264466039298446458135205001895027797949095850399710859449066729010185064550783085423577160622136719824801024269795222704832578807813986751761056106942726098228218333514942888503880402836715051629861706466096329503758613998709337662935444021126215904785238917832445380563808005598584313986705886888072595404638236970966346395012423893880476116810694890399611294293839634793262557554380864063586722106891205506673530600293387874509680432333034023656170436102538580169754929790115578744107175607974388731045420035779218204577431502489959059350755261712494783056293906701673444985336237001388678376766847604161832728336469976711797653403784478651690463762830158089553941724010885822093935077135121539154850192653723765408738485250352668450472162410437709936620674153220462190473367290324840341851695807561000404755969063011845911750969015331550967691881512391981278388304840270777971649202585011011360607930939408382869812266061148548546020455529982324226238083327470479400140804781816618004589324757655658511620812805334767681137725065583936500809783893935753698443561691573614533904762925739860826264661852410395819852378739774636223066455611151220500255899298488497753506623297644131655572590133652920459623771818816158425124286387656354500037951692188761908957102515004363498998625773193543533921765869457377327609832287439126512927056371791980949080067519455802612595283485018358058941083431031616454189653360983592487270474851966788098868111956926532387723700616604072509238395926495308977084439224936070930069255202236585591263476987670328845660059891303445939869560923512293108733790314456654416072394146837376439478700947663183818303270264862408964168951457971859124510639444306132125470976266998863455142399771647343973993284576158408255570611733403540887852660853497840566617780189901033478026007184541689393531185462843681152395846956528707090895192731492372447668557666516055450906883786220291797690192494256157130140976507602482324327194789452736842895383384358046901233083791988322478986478111603996061327144039462463547149157889582260888501254408175040776203350596998115118305987176557657973213472186987931876428547610397395112438852577893571007987354541245432989168241905312529677415704067927189035414768431307262300529408315738855777290753956588148350202710082605957481171862077631403499949069077453817969118268629688391549314154439738448262889293839052345439087740917512695344967207059340381300574782755114835570240579525729136656281454194093884475038741228490303312272530277311626939827840412579251354413186109660523763908585069064860565387214211277483244029779194027244149110927386133268602832133507084362673634896554247968872681254182440649356015356327916548480527723388830949384388475629852742039254057606713494568684578121594613285546387228215569594540252086234713785124021522573040917465256763791271848011283518315600952247892457373122273474903473414695951124999673039753776816203624028134811904877604106801436283835704470939421802510850355505458912690840818834715902918522994878541033851734935350453378417420456728827822981877229038855809370725575798219330745586057092335703067178107187351012479307112938976469764290262628608058494032876629170576822609071541464840822059897102597649439104555261906928082809908358279108062760437949785971700104188331406262695207123643373201957891317384222136258070065523174856803765663010164432767045167167204666533778739008311898997914921993023364670740248791590405240609508702771804915049548049115180692554885648508464788732752282227502733812156942529604365056163379645602863202787201964912975818744365964444038469438170704796382553096228568682437629670620660801043377869324240014735283596077311347824856525150527900555349081571659333075719866619060656041009002386183544882558497087350941648186700763915682297498941020668972007901424034208188439814090224569178641556586769282872880804217556702879337103663576534910063617317567544831139311448341800722580014789884290980983419823424097501552631219636244481384928213090728154179961493994011889173000971033089426428417128927242449694693496105305650186149995930564657571067663734986474977938431913584599980288460545679365437641709086182485184702635390551372135191515829705904423324321457710334777784022111680953413346772733766784888578095252340637378681294660090884311461776488106362274990469740616577452442569456500445865193223437572051428042764387012843361499351584581394052384845728066275753568693664068235512757570135711963938613610072411602653891766960331614075120322050647894680558664551431990634157727543704379003331525536049973039913505348006522509847403319138922901020623519026833487016135247589149970137307577125468843434341174412998844960685997395013249300428215932530454501610685163972812749674654656765527417650472050967140577096563417796184611000952198372353020025224935709902700865568619566451003979501929940833482414073201197361168604761156377872025115651877019088378623832707375523099859071813385639113491461991187527412614689022260431761627802347143183902744009723265240031675610422962435310410861766495023243596618371965763577520645539929143341988050765017922142446908213558545221298368573627989815361342893870309183410263957352966313074662442771780725198835032280508270704813659440453807776807454265077953191268492892469931640002137652781580806025993760429573565676285383388351692788907470267921218196298037783088345529644627397750841044100965325998684573308860416570192295621424648762880825537470142516918811246074715523288344064182472168460128720649236879855729560742349846534232964835019340366893832663908062118012099247602724209594331348698248388160842537691679164988414298733761957628224120415629304132105550340972266226816381584691542852458078119733007756375027066966428329121350591613622562367987258771454828882279503590611823852976470566938808486056105833560101086301153901596991802058295267696817336563351243884151485267856881650731122921471765515969158671840210224491790523820794306584247521973897654149201632132660305923357347133928205097274355383205452418637230993765934958705258522916362867936592817319567536512245541727281056160495047063339130874970263584956514889629870045382819446069980015730337963108211896808717426853554825836387338643763040805683048282935748902769105336438438611918967972407138173746684922429332751834403163891899700237058470486510825944355547994183851043027342047690212083709073879397032502366669530374297603597187772973215380608936125540301256866801822753680746636901967338405314501222646107530953195526505639764694906260161336415597347692773896211727067420499174787534619104916179742875127203120907209895062801202632277990849027350710201969701367713091518288243729200051171845241879794150858665232351806650086023023782805303941087049734669004626076330407733470656230053574029201011177240591182845821051929661751147825671814653626454796725530609377301691946230399907399203244338821326853376099329871344646957670159568843268175118253527816465202917452609923650795502499185403775406365959687477165645414139864170227495436846274035698787011245746661247784313186651007011668416722086129839929396454594394242368821360979226833629304831486253523555699037924072146463559724805931388181086729969149731856917952048684904182411461937874543899921416400445441020661230023399074124439426532537580562417921144709927403656154138380121428848682416551398537649991402575024217330081160564719941587888131440600468610113225821917032140159648093154774669584030160808669782020405896043296123102878814641831355468874019013447207644902048726155229934687918789578678385433090014468110842839320176716207631655459823768047735668399173428136585597964078659964779354543199371297497460340101216039720882291158128974284344278220600122489263573776865917830075783919196525666949396926700007847855222233421126969662454607783569751704319993013689117754028920212268793195199164941789797041452753903091314287079037134529706831840498907911721236567967475578099776892675580849505229790403529734794404466212418063309766841414051447089551514566369706536271049977066933765266685757306112493940326750377315203082668187191238981600004911698724345125139300338258938256697786820382609333723221568414254182314359869625493915732289847879978617349739836967699340551747436114075422286802331773927949104559400460464966351318653671807512678577176618909628437671504826967148763165468164862532729834234854187796622341235972740412824878302889145729753147684337288809394760715652658332856991151541212993872127845928440411296399430027229463998793764369101550064178388680282493395536486030936123239394674466118090907277037140590413809958303642759697496035672662616239717584385976888441016481254805954353388176160256346556734101016095488948458803789593367004904529174710515187866640785270691508765520878134374098872735660974863825979015837167525036974108703528875492996117571514234106380313417853571098775048686930243599201713098534655078677990872059338694594465929900727012100014729904376665688450996724764518534722271033436344472886930323054442680895519449249011016056827509286198500914453202379828060946443314110817292322858286089073790716020319818633074252597468473698384665224190656921415099004601394665294665710378174989655321504718694366799129056270652602216408752355999647585182164591022009273605935501086673110558572758114410486795466117462297372950936736054995053800067858654883096236268378718814975750416363478362405260139860435743388895119111112160215068363566581170270089376123456776393345484018493336868857289410723294071312432615729963606991062879622595490214233738640078406732137494337355729729679492364431982736052823572386824202693653186887049993432369821188817239179909251843842558014241427562308778096692585006666257459770147807610933875576477739289102071178344264061894426139809494187781049978346175979733536666241591274017848482129394596187483888781250796028941859457835243312329126782965422986713629926445332774915307770568306342710777445664746953341931720138081881059198368475814851611746332393541644807196357643694548010419823275300411903581191572972533660788624179937166659246798989784856103650976553932912577886628573640430241514756154416223798817164797778992968184553326643411788839258382113898222182691734378958496085121471953179585936940848357338905038230048497894843382931777965454049240061558378329483640605002726826576686312061732122381608098465375396522925321459385756074681107708909786854641759416914677214107298074329717207836805749618690460512437882754179033233061626617787560089407514197933605635857119981230849192952143121338138946704343086897738559736001121298998494579133191619379082046710229285710841075733072713043259512990885548181619946673930112346080672296093119063016203567303525643018849313433287862417545033725898891833931548889791444667679672201223276387200287756146843625746031003764575418928297458619695977396260796296341482563456572445888696536187515956367238455100577455397480196584977011315610831441953864840825290504133521536859979312464704530974625123145388271719554942488017931149058200197856344807335142673384048460074773440175288034778720404295433192459965449330521596653635377951376949340305268538846017300792708144838565198018651242003082418607577928472060362910423600714090809023079165658630217063857003285221126595749430624126567200142264131895848997068909740490194666789144264161299912634682717683446937614801695110758280227798695660721638142799909995860028206760574069720174408598675803756352268472224842371427426527439904815466616445439580880558954273237779978792993838636701248830816413725872813750899038701402247735505863900244684683323735402347567089106645922715800173911499832410015583959114131445231268131131587740767518032885988858515220336035118537184033951186022936052346049300789366262942094400393817393638166323959836542907210777042375922826724078880112752861037413654032058943517485963829855478449112671843861062022364662677605390917901518657391737934472802479607298534067538451374943155281135227941862305401792754768026242245999646376391372348401738155245435140902402822365432842345762234460030471234461817043030002309008077964586829712273674247788816279994491715495339822544353126078465740629414721243284866252566262226880844041401732330787550622940313689233094985903499301350023840285607510739208271613819205977569096395673858268882293130888022097893206564307890547753546104672158262134962197711858344763089831466550768246369238219068978335106794585229649625457958396636190872893904947673517108748806123646305811323794798324924658247850259494672445609573969289328161358661813799404255566791078394270213226739503292127231253124687557383083008364544363549670878588553597043127751545149537428016362736044982926817485456504685997460311654632165809702655293394794918640425495657958010977058869566566397854419941339932930103348717435684912859625315708170450544226966477629835949358350982774909405235161081185732949455402524573375563797397978510684780273930354529759442849646800897555985433008129792214421068527456037721648258260703990110175593315621033079965459291674260285271300895081267531635670570371028670110936940589918004614722842376909115170544939487542736355104619600800566299860513049408692145740498182701425069043203171444432841450418989235213665165559325860719506910983916097157268145862350823023021113007348207157191338352032240799282722016027102446718598207532950588713676676129885637946577585717094319460759115294018054038807001681550731634254838935148176353287394929218587002509012312879502258456709039959454520640864120141887123314819838429948571048596470133206080173579753602412977271163925824163972375231505171640812367225864488094656861743609497146212940460852261545064720018853605865812923255441399593883851072993646104750834662868672829594510298812104950543509576971291837712206476917686434840383811856181376810059857676254300179271804877631634083070174009409363043036438896516448930529254253484253001623250366849374733392081684909647006716606489915756565366790917466423968451221837027144619248496972626494880007637053908340193038345623782807532369945336952150427195709626795625969316832016573642221732257041798067275736763366700319620992835842056533322465196457743018075071536542772512641476602095712980686420369299002037231262877784553175498589971221232490806929888415047400420753336512448206694814883182807720142429382050096740479467438122311565261453725381465004491558088751016975409939176079972175389510966888005263888512464083896941024919658780459170272820485041671356354073463255020257671671248344095627571537105281242487089067345772817214048312722059079805578246693659503276568278213202247691049839859133463957967895324721824334021836400297768181460777806318605879145069786371372460845774729652180004539862254772882163772233127041622670223664275721848816265523776149746055456030618344496956552620113213308186539537072332686447296262205713541464703227214447251138363795850102998331404174265909352917074143649076488426616579827672051830030962068683231536768811286899705591202769743648071585596045976578591096706195287260873939036758631126071760989156224526261018433526840637145419311883354626380742573707733513274037716977516710090710941992895153026598973448127042400149155842532731233898421018092523533531194952878450584883078057514267554077269817038883414294340184715394983401651315854576950489847002151903805718277826614488441877275004973734541148466295003653586533640450568952292407171284004757895521959237144969179996719372808210271999151243759117757788618296398059843613671896305690054815424910727141239764844767385885869739138388831993900901394682645998093168757275112693752255395075801413240094646134334300867382346491143735198083460068410675292288586496029485900342793127783832556789205422759690371267361186072383654084071935005379608075476146819281713724879438547943921681829425438531404004700598324076974208815095344367013399676666645328655017063364221657565234096214436690678106699240742570274637995152573010722998533637627233321675500548881975149446184223971484208931865391399904738410790754736552515248315112179698908911519147242702556383642722386430040176147778818188902018638137301247719142925323922000655861955558404528270185414756491705653323327364659978307164578472889955977023350567632970679169459285044141952093692030876179485754333735172680700829658226093785984418916681511304855383152725795007201180159941033843404597379431632935015232713388492490145070539926201316554702236106121997393641796461295750005174863957405497016885089654349278251927897951750301352206127461746235445920487357849592751109755522734642332545334495108620459091454695266213467104366042885703684016036321342056843104784650000262628899170407374281934786528958798059371542463685736835532232723894423573093816220351039282723344241432354176346481812091320449537519201754087877753826911110917083543333758506481655469652795473094379055414264519786135735412118798171810894184669119611109104562528435965962677577376035089792504897444296243502273021335123017638885033208500063701445426989198249632935712157906485219343987926067681618765118208099583993644671660580695969696305164422220386363857334615822439195754990999342770014591700559694525362389232436585834791716752434612037378060988586004032355638062133829015069420705299612366335709186175731786127371170383206127959550788317155169587858119428462275421609757697269088124721640664078124279935991550648089201598159225104959252764027961884821524185215202479401081016207799114073881326238949249458526518322716675772628773838445141446244861073506391341521772166813714577400144886708570826938416566810586796224160790180560890026204971211299449760400389287586353567033403624825468774127233387544733846253335003620494076317125556546028118375789301934479572422914082250393415598715872664163378555212440474696284443943380591543481674063720578549785314487923026826606352321993166973185877235592522247669862252939315324140250747018595574780882564925402941222755315727950357069490853703735859719343102069940134541014629528040801519200102541678501719304278789593197967249133118608205270091362400630242506888006182107713239611465672801801596364969889214321863701209137799677188402886771859690202300779194395381853058198761336029340848411790265597737653882711502609402861164018776700052127008205982992232645803311469962488651840996993159937002779806570620007482491616835827808973836414290780375523138008555834616130586298694602404901783046824243395642275574270969422375649724076078211959357889813540431895295914671288646167345032537878335540932665228509268208569171562293749409147897353864772027695455772408711874180561770908496069728520744659081247903678973500144685650566970011236329712867399505069748318538859943801955109208362576061044411893453511570282909209493330439585056358107673654489859708388898512954137740734157265614567042408367595078820342596163127658691675262808072249580607628918262231092016621022803686006706317599617533108226249195164982826573183551768941762673037271488118440527166653322071122291463081737602105211489395331128290451028266060127377578291309430659039140838383221623495922184288079998580057542079521300838557295365441850177735654994555438242836864058059415791584066807923273472602812316776421187966402896461344449754731199376796334637759737752353976045393139938772004206193462319297956654978379593018954212342643533740460261611586869602196589782915703608379121240948759355554047859028528782889756112926036046937707353586371925693081619376780485029934066348908285896319128378334303641122962733630326035627358549322263872164461323807653484981677867544201519367249015736342545303762360881605273723108821986439897870612677024618195270505909930535493644013054594315920211287490027682125946279463172868921726493843106060819741024289118766676695093681169461707635541962738868116828332552463740154767568285748324301866066654132791387527636381565870960378820104355247072235234955769090401726459845699865997381819399404358004784680110398767891484623516372112269070201535907391254455753212822603918777170718313555256747661823222768433616994506495406971126678935312201671578904412804712007238259933729914227566265147797586246965311371957006613270945773125423695551505840572731977725675941060845132623259656040216766693474772256818568576393143189074484898223286288769920787144043315961798329604815474318388750710996551818246049573714599879457927267734790038385616623394314688006718274742531819520198737261366812121462592985077306432862447036148808541607126904759778928645564893729462144260502963419896354731731329730435548005182657093302651070027967151894839149846334830539615405282469937275649616788596838704887014667638748926819323785549187853331436068385867323635846966012925694299386198690810436617523989714790820782575292255375460208070509243593264603985983428529376996029331097417868821596333487588693024105207220208659531551380828600671737526636983774936924438745010456426752610251485579776491992217257526610984928498730432235305025643332738989073476100692701903009969064010336779765386999088201124151067820100815022170817084537512220767129917774061189074078150080218456035868223689926696548097368496911637899159658590159875130274106525930411880756706634571169145805774124185287799972189997412261834718190424255814799216167324754552188031690755299419299059462743803325916159482481541287410058890783170191316300570076400074845676110588641356720021160874325965368019766660246390852126556912334118118615925950589354537400326483201920253289009193228239742391236823456442401482882678058938366185252964211288932612279837416759537439284275701830149790191349862604193076264525977976338370498622301152014721991284620259135861451276305483831930375693523807557684276931317464974073210976150099176567779470388261130881260344345496926236827245374261003335508847340619950117817684132636335211562203899347389206922172952772755465528068667927262723552829846615128052098832202027127359795921417983346086150776901599299434981130727396701343790496351411365331861751933124977156606268545113153261469320426876071410138387018231223647754412887247520431942033416421038429749261078964894829632692570669062142920110987883896262487932722373631263158092764374018145889283878880712542100923901175885428118738871454877342546940162162459523889048044467145207920970562304251597842633655393586742084231249349329519514216462513248672633048807250138574122797447827432777706355459622154910242451426095008769716639163655078260318393417410991120938883075324727641310763626491282512730589637523772099605511447903074566324511492121606465731434033457200027421827505886878586365186832814574527992620753647442614924961391712839483389979824539379529199118171683432046445625297570182965795862997752053656040924551765911951858833613193845708982506134912906174141773318329904272415046234332071382245117389625315364589387638876117656229844636166284929510341799107506592032010973277449578067957515761270438960567822913102268447895290202246464233547267322111772390801270886316611248509330088169521829656646871320812514800186380053522438358594134281831554710152998177125844702651164453712633488305190374094103634348906466385573049670089811270027495889274959516111583460194188701113915164527891216820209544719802154942726013303788519400007692817767939383815063640853902925936914768984883199382192004462703805405572954959780498805394537560125713557840807688471047074099295017606003016484139823605910990426740066726577044992339999920427672050209536615099526260702388799557271875142004841872308825703437900812517635035790036129691710902241658236425544306749254045608786102500539994546880804102192032235004091977142208918519769058499760830270279053045821364607885465119347647981966884636069247002973740472562502960492035600308589024887334394829864117024359359228688986261142683096202724952600278284706216082106907006566154071082236256802750000365854443645556991504175966149744557951514408643190130154460388669123399090447430416839023258839772318368455470340246493982310624466936031404392423214614849963040061318259197070869657963451374417181009697614774645657300565090267213415482513916565859118548163197806838340690520081934669287565677727735753110130569221797062312540647953667835424210752912928099458993398496569230317207801517682826249383086998866048597881464698804551421418145803762746404878054151882392015912196400543609310488018321329329396040798799530924016977005230258926054826449202998322854539142848197627119875229571161514438512972372587436723115273934493715057238480578567321808422481766175950668903495437890708372058493962851746315203350182060035809119178975231484571924131406903124680096047589176679662075525546768241777699023650720964578569113306020662991195646198295899248078103585168868561350511382877910063011764341858487604305753745027402701139065537658121774869370711150664475620626387316409593213221562526139176197826059069749496405992214046819636466743009183761670376958094855361112180772641354562585328068128915675516431329777542261869022973827470748682481280679762260533193073214766229455939684767800705399082776327963929596991035579733292606688058364634198880323251786633411019668513404593433782684493315602106806053444290152791896000784697147941187725544471260472316743323329713512689580438580530535794403117679451761618185242909001371924266560812674990882764379954492474931286312844173026754797917343919308992067100725291211726707591766210354157627288588542396567090773718137331707596332167268875965084919041840620151922127319665610456103700187584667929637335162287346861690596178658836802427340820108520666447406915229772352624810656239906567635637456819522270675471217607676486803213212517438591707753998153935067530509691506136886982231337174671723134566972484478713963775311286111000002904765095995539243658693546558732013851235097430055225825692871646950969665266164118144321315898085362327684098804404924794402575537681364286317542512770073802724621783981335955160706526809041219042367358286391075038277834718128433768295134425397067160657343195842646860095568140363913416455233097512381444850698002374597776368536689467913578226169835232555359928092847586692486981086941425225963643061301129433010197904000090139932001446440567176032130515051952049778462300242707429691336104680187980502349386603306972711495714113445287909567437279115445003623973820022429223772599188624481259726227005501453060215870657037347884644029174738533948786313651868273017088274028747422785762404630313784169924760959230207612133579514041097331514820577575174278319166272025996750659858088096045623612309724896310303366965516025276646499774514010623991008462625602134930162794785248589834054609577851209767243028321915040261843525866805465594219291732566982543981898133222290775744924930844202510731732165248845960911283208908855040085824283632895121195925036828377424465563180410054781493794862309190681852585164730777840435660124658460290218240412413820929900868683130079917172442321199051878566581279500043594570501728135335636343725340780030040150600862399495035584142069607710494812780019029129791894902595036414683082961204219102932331884329397773771183416434246622660744055527185413298581457104739407159514277730565645349354814619502371991470726510369955061800814194838570656913003208388495348450173557608319677337722401268055432417889680126551839295188368215262603742986100302179354968201926546986132209049535660971715489702934791479983016949071804971409977993992554608981259412147815469080202562202805714130439620688722239017927907930196786740268186996042086808256906432105237007538819499908344419309772513523041032874540821121155861908149583610520230354152464140447692355289083760312506002756669421028768400210749566803360086512471399776954549261537507924293988547785002357678973938500522868099806312949441638900760815991711182892439723731480200196298881220181544875003269745286604699331811951573387310995658269491794571687965245019735880251664024283851022001795200132451851360644081513605554569177446764455844278832558552611526609201303852619662158258306354139081431692720872114464862077149846388402507223692674996135249694166635596453045853507941587417516977265716611698543907671609584915018305056667314415619474354243828045683927871017869826350925671122031060002707131933356650407978524363675519533521023001444232774801422759640500974974031037143019861856810262353172668281266356977830664624818393730050062686778440164178690115271610118199791227341418985086961031828950279120543916889957488960249381035357564024810111490952152809629406040519848444907949732589027345102431934241238474052380813327081067320858370014592271014780135287883139765391841633386951461571953067698016690295072149067369661793950817994220089307739671400955350020410178626878560619538519198088178183342355417830144660587887725508984832642804895392977576419454625675055446894311185621528356907704539965665830359686306273999011292043493491963617901793788930069272938766514073437087134115278338143009316950268664838693971259346249512003693867524851118959779062604764952239347373617208100074037900546209131549683055552717169487107652849047076341495484676627318365765477731533978543193019379488504765028272682705167074484809906870108061598421324841220370885953832987227193958506254312552074550817087472143036648919523100915173126374232987465648801438277246440798967737123247366612332633228189979417001267729200935237569183766182947994677761682127274060754568551376702140239922397989032698561596788485564158227397615073742568129909016604059845918466617174867577091435475630178419256739852363638237910217213996036302530659080354472937703692842811602378551596053884246073980237793658118207747458921999782413504329702936324278608799053625701962414555118298661224843897453907853304945042042125837507104022951652468381848959840159578829680714662459232246245297042224515119007411491207107906948869653384621510271621702377930364385245863697340331366085587129212934143973050399940327966634216363517489439250413022123572655619684229704847608332410730129433641929365244396444311848823789545918335833677907561354559648412622153167412399333313311086333801910437172328737900087239625992374854127710242429908238200570758533648835212036448609533983090531249782306018047311519160415157655608694056417348897635704002321338045840956743756826061041398741991274347919631016218386825482728023757194548647676842420108489914895678968918248250353046620278115142366054674505710219903192300809161900262904161170867506491126244108089210068604913015913789045162931770368914784447374189694510533785863125951866334449629909373557879080954952679860062145218994068602332605036819305402254608397006214846299868862800093505742298537658687077896525726570171640334276853628607334013559606058942404341832079041831517715489601514722812874690645799061165415689300052342665364405388284404097569807862989785962480736092946036079034187920544087296761110180367414868147039054067290490136568720549897825864916319607157805745527784870760751606160586363801076830568856952524100276505106694846662462841955003176191116959906182784464739313583255720545364815305955188325834797268935408037204744840396081589413242576811113635454989848522133442607037641838579235963477668657466062930876456184639405001490573609484408528351779242535976440972293575882897761121685506748944005316513265447713833209665509828806003830888145180375638340435008075218156654513789720154572783303543829026510160981377241425417885152089267249799753151410835897072277640852422777389847055354305232768870279353977824707981306160570935757313920400791635040597343663154425604797633447043114974140025695177606141973624706095306317650420494217525138135548246136848303020457306795802469032467288436234017730652465448782998388508157108483446480744388928721582078292473364721785631425408564404320997949124401580649400486764465569142411387222347340863224039759504163015546361314653868171846813279285162501005400080795838807586869711052878441167528083687654765971634725624099775326134694962560144438472026679592043564617326451055041226506414852312742921559992949004658846200527181978888463470828233232799126055734128590712081398088171988424006944741265325691383673341330034717617903614431920192473624271175483132593491862438395938428587390843038929325926226598254742267211834202844327958899983661118665663814380250011990868855378248670952753148528000017239696707241202886592848281294462451100917442894650519487950316985861080259448994321615319536496770060332547107459102025229126012332557793706047510634419642521344894653725029200881683256181170275249161425094716299814288806118603294759355246321705308300308285816399961637463582174500197888885688677560149181338727319051217318611306246486355477039414601295142037759540417935365682232646589673676133684772059149814086546305415116789027399216449752858615465707775801719658151958592990850166872218795984094705147246392146674366261792950368140867590154663433678330848129494939789687181097284889517255237175966579609249118735773369034707350401888396847031467855705625231909282212287295187863563200860841619401216400241812684647189699542812602924087613554040801953693391777654717756290085116337493536746130102798167104196806307585351756750999972190600906897090850860553787587577390282436984166978987971501078712954129961055259011334040323514076900862483025803627790563047037313397146591367742025186115258777874939004934577425728681280632965361333358292064529758609019482636765440833134691107568497754361564733516529506041417545282584458982471472586410999376115503762935039306612569266410885873204713413307371913862964571304089372511510255271909344048461503303034003293866097189791989693027389774191889880172059819222994027047915736981400085991745833910352447181573592812393489021863508090161072167921279964838985207714788100128047631052990685723725369086504234165702121210820990600392825779481869461131743803665194705830551514044997874274591006447255461669953409466216051622022512304833583877456898630832951347247004332062307891450693271450108764337787520735941741847527089943157848556157411721567185693190443044141966397086944667098787151567412639676905092306009541439992046138249232511363411711315986849724848967975519388765162745529535892896078400390992122828980051774940942087666744267938160543648409529591392656054500348752199294223322954948706910247225528936734902589326289697090515716608497297501472991002742327991931465975083843177155457814135873884819402029418110319614392015802867280061615816872823044162564808632185564009552119366652143573452975032334590212622837657831044192795655273414684177595538293347731421392268257942155872307838203987201501112125709584414801415665703348799327241413035419967859150520235165385111433131497594613701939348262650589067305501650366235599343101067977939120451997041935075791554588460018525915188945038386281519292622829320359266549945336456678926216483119787148829911734992430356572218475604706457081135746466702928786859935854636232036760762285218819114111581125363429649566159615829237368385524208843434043261972904912695410457419293331432652705504117314040034783280379889916780577965489897797933910940924563545927915981723021227214014020440915717234977480902110910296070618906500343929881675370514466500680505997174995203776586430286752337059377237947376872569417771466415925473552819939897030407851487680062699005501581547554508746825772624555586100213646910498501467493574417613765716936601484959942402560710021224275935018494467997827403611762976428575334178775225003663403815749076010655621011408169990587407009690725009893626803096826888821036082821075130232423233291955285845339063261952541979039272746769981885660998281670165185666756639711686303563177578777453016452423351649765794128712385131006000852222518780829930393185241072631008761643285125644637428577988268255720513178265088302157868992281843687534041668088268968299960084757671462705973122522143519912372574890033084962607894516621688288478937788856025942168944414678124973134094143215120004219212930239920633624250704814542388851460264967443240490932582207275936120084728008432442674449625791444219933005966849877832717563050115618219735873782673404591007240791127578866133146531648522524247398812196832353260009118230567160749974319364002275927934465997243040629739317382576034152300524187546876441427880853969199956051588309482513660376519546857668302298423424129759980387861694522519677668005491114379394512056519332447036013858302797553373465113272522628301870424727951256203072394555498532236946227183905460994425336581437533417250131927411592789598613732667389767678737083518855392519821581293332738940189016111364294210996189436808952525837263813162074782325365072360671149514892758034011313667234364508157694010838958842733020910904271275621969466402787202616412464319885773243512314991959927032865515097495846103091283400120544081867910171139667127793822698236170809506919519677270661016859593156075844986011904882222765379892537550386066256461361515270058825727955019249876977571370274139947523567868684505979393611301375002040385943079864132413657556951145898572611139602419750435048965366475228268835003975881889641335358201412958373528784698773860010358132885378725571005895404476278488911266193898783213165310983569016202343713236329486774205647895961763002704292096470537275723663931538414376119707299483201882982221586759495375460579491488784060852313637139252197094314844013272130768020505380842311055358849234784641003552037451836451854038208335653960603883662972686108073821880097874646513701749599063620281992619707597722833254953255008291841517030335184059745590249222137055417109574933853753844719232876425007337352878433281098854265285980576862627185981578773037027891089204384136004529285941124510631007262814257644110511070375347143714288675713023587175950515107940535390025509951497822235126966459453351588953791065604110873456407039141000305562212132230070962661009171896827054579067590253892122249364082111773909970344814013195317278632881007969696989042587689443561303728148999913859488662353096802800400649311221144475784849081298156631659320960589372091997409163110167564230794562295508018081203962812619151709422263837593521518357729574150291276329884681523309241188119281998402848965519576786639555299418326606149229327568128318327146866844223125227462816465324324877342081642431569359398819894718543177781664861764728752328111249934537739931109685875829614596128942843456849130542877210635655333520680839804267156421493314029022455579374779681720708726345994915051276907335536869177663693481050860116569911422874681654098855219238831005426864187297556166514347154956274229717230812731909844222561552339470953521922098510138098633260260488590606047772492931146491599765968486879416589604213820698107217045842874709866231422982322855952432211767565903931039650351897225400415445517361024846634168004242453992776660290718376945523079796731532667743712708159224357587218356277330426707811953328502075249810836303549367782299060626527677113752231518413475739090337243863283239266440786771276343050955390701722022919302085813440310833959256465484937268307372656061853784547863310444142154079091378902925978665353443530756539760029904219198964586064191375071812978993722176812490795346684031619937489046583555051246727348138976053504853339756593851779572794312636379851500569091266598410725561535974459887933452161913224961818611825948012764397280488129614114795744032761500865682210968675564802864919058925394329295868987263241558223244848209951727479946365846329486368018258991973116660995178747269056819395147818903288832837737554593055133082683872128068689108331952653868833470798754731536259420845060470550050968710288185894538536662346659676571145697998370399972838603775525082627395519390912272604662590005910649350830903698405437624849149438417902815751678458473201150217816740632601196749753995356577351611895876689577616002605513330571554795778126588622506380527619795359728161007978455672455306969252858736285553147369796292369177812411385385724676248629284581338543969405009816261302389702684866006850765720373966141898755117270208847027665445209228983484231234649206152578588893558064702450508156267450723799976224627710567580242070883454832256336205420263991527433284180096834766423188948719669394262003579991025710596924262466609263613760374065529119385518712916179077374862923612290340174006378065197790436914716699474410619493314330911221249786980919579386944591719173661758319932833447975434749452831155637591118685439445409245938219231971817362492064220276149911768189101690970055169103685824667917659371181226701825647269445711340035057761803081660025979841302690134527783520194712178429853201972183292886784054513942211801780806634874568878998588224200315724516379440299215577002578338391059432885258094414672061833522526029860900203386699239065990983563732186260333335399839574869465836399898125373875029166739654945694259992460645200204152596439672519502337503977923663326676689420433414814847634665256683748853662687311672334451359541743913689998945384461390114963366482001148755439955748509881302160184889349909388677836675940601832388493548375224929751537676273852023628925905930934817387521037730107859548145736174097985586748248483718818719027114867832518526948592361128340233499160803649241010932715476045769441651288630469654660130488919998406998282298425972055753406110491705117612193176613053749430446382040707129961569132101738339679088145884642799707017735453720685172693204104422833426382020592159540091754431748799573729742396049435566670576730763662879538582671370742853047967033608134624781103001359042842449160871222177584001568587940554215100325966417723731120630752961386109658981006343736398578649675915333408558567057205472323576760607975665766187896958177527589875771078464999839483580081273530105213378941687116994845590106904577656966063242546880622524301360571124619273897121800624136603353471356875679254670449817550782400720120984036335398844417465737666237511639878416990323835194390788468199941864138805981261513025245302888173246556839813943716818660896491462603628729721171967364793828497781717453066843021703498020486101495065577291838032053840341566740579729930005316792702582182567967283322799239114341948707569713949626286429446485656817614707454141657781454443459105505313688414629744014852367449127597893804953779277519188590274810751281101160982569293637256808175987654342921350720313802900563261673217390456898122279154559936032358292300878718264239720603923680858925434097131183184847901065821014781572733676282365031169319229970927334903140754313301170766528512588100223882252714320007050520589457922035292255042965721854354311919689937992589074975686011757051101360767090416569270651592561108830192535509275274129215714118334332708373682395363044489400479254124790722468371176105294049466001791164929612649677802256201068232144648822404820404861944187620208906908923059508662474831025387282714284573746598859568416237053965304816029030946029543287853061348622938239860600675941061347415686105077510014992097804894553644128328849996468215274558919230462839244249172498027064598029857408930107032715016600495864696315963876928842713429023759667606849000390687596458218062341333293278087716068335257470998245203195631927405607486435871320170232286171228487409342264131584577906783370402886807140964529715594496233322932513214915781665298895308729469242506329313040628396117796015193774287127979202469921916411706168736269476992356638680937272441364821280710395721344265743905164205225037987811341952459705927041806171794238912284212200114908874136252688549351414940838869384958401858896002093623460800528502676242847521045386879738298098974757919100084817969938389566793057893224134137220298126614704626157747668759713654960489905908270011095939330265063063098739250338374567901779964723572667408880182620077029058484462215483928507398887965262296708170004261453890486374341576916659259567223431390159101761459970398408347367968862157467130210272379404853610731339056834960266341625979070840458374684587541875766419016052082481310530302683086980840171014838939077333631379020226143617710857925270942472089973250157316353231824890376737996229496375301120627897316597171047210979129838504004451698290869884575160741733344397483238196600467529056864692029723004124853076017130350365034037018546347631298619919945457886916372688624124649906394144254287900957707120503012404812645335486500244047863518432936250498087464562081091600021374000750155474289319181151169477248350143364755440956870873895119641176256576025350404062385164116559319867566670910904715148245022816099656485328061977135398618465488297377025718757403562787439566626450725339181509214922929460000244780251794376887558434608508247152249329822661820767536983372472536247018708542918693489769279660596963024563531391951622426152225213397740231093517307429239630481011911308245146771922508597457472962800855690474013654751531120930754917581331935912722302580116594931744558830357505138390571557930757020108874630160268422962172579199841143863942046458210084670736897547777514616322349737227698293423168991974996401117152406564148965314394492163619790852421283814403257469396191517470507236714257048397281527242900023346754685548087181133619357947106824396757667323688182170817741008057914054517389946389030150913342273400375679341295756972310406476777313463510465504651357744830928919078434007172551843526254548679093199725649648982123710482408099633987790403528891641062335765225225057004813415787509951662045680838078618012517741192206941208912336886062704901475880152893166658624416713081166340089310548655429879825028529738475242818734961977458869972604774432239649921974127228850617938792881961477073191675014692389027960233797654135746580361616378468762695354170868396316786587632420603617239884462581621829572218499090950193674440531135594068839084707881413121844801033703609989444833117921340517666621280703789016672081050348617970076270628721748351224379671492681372391617776293701455043621197005055890470590356493062995062581623468551270402520061062253465286276283565326688932394529297882177439254333177081201518169550920943018125118501907285513224756733079969334486619272809179786703004209223074969760446553817350253522913482837506882393958852205169803636590448742831736906902300429588528599807327894038803872471797399901549483076031687335978846630301782977409660819536601192752334251320785782233540040875966419472749436930134533627146901826658309393642286454875848698936050485064245108554835090740306344795165081269265678273242295042586883049908619730396075125450351639814332796962856310398519678625167661905575960683442283846441314003340828535129896506175501888359057970728786526302077302735392575445981506158134626669934092963188497769976938808638495846681164335993442421218166106797235522065255297730241324776475392348491284281974225144890028948375783993580228468270859735809056524069517378703377025904414420446301435833409271284996764391996953040143620689230250832949318106312314371779752861331177136470385243267987520078537817410908760357746540883849671517745089870306647228682553305427217903599565987454373600017544335105137009375679181406823743171117725807296497416992684314821820903130308521853643995275102344365923131465907445596254364440951419210168819960427486787908782889049508459441095970300167162035151653013343288778465293725227909791900078241648268993751297177011857747031625647006775035376906434150221197014336963285700666685214342257959712563427577551267401210479808694643408386986875532867895418799549401234291727879625618445287024911065478473406962453648912132343930347831049893818348840039111892664966343874728058818643306238385591956193498861007453843494059025782877864745816855925927412579751841517750307966912140516831046336413539426159414421823551810738616781966643251599948804950549629582383658224412300475903399522729593982792801046362915646409206850425682873983360094002648204019068948840493192082440339630283900361330081008833695727277508814117278158450654752365468756041910363307589753842380571800546199320103455320294505263265816652108255638008168700848377738879399497352570481302353958672306690650208686438950277641984969789825967240365209116459357619979165525724150767621575354737010106836056961704801460384097488677056196566028533391760440095825030210971143669626796038735842568328208464198771821312701327837108974092103715525282426209312779756144160988499537960774125055240194728628820290999449891376025183377674693196062771497049410776479403204291415779685800879475302717541133620275846100900889702871235362269672036279690531650899175097557958956778424731213029090333013519441086648136519390484685534823542674946377801036262667940282869287063790193630417938501562914441302664008125842779317962916214890023321811210151491178919059084642569994650882073758112777899202070214872243200852047746933748190629050401817455944803801210212283590849621323477319559310032483904263885891085305730229773215166321689685958123739877583547628061347395933015030247722426827047327906764308883887072278057860225500230804540664308876084833663675779609137583280230052815695167287656203671610802852904108140581608816417203576941220551745934023626971551785321514589826001112655530937785855896940996349474423509309926161698519845767558335135166353861995856031545422963010015183780974979012537250071614501492858667264270952510304393093233032192553914326658893728084636224765630687127691370284742855210770131220580500404900345870539737545259466581680310332551319190447416385131999246693742033092204565662263646161861722531421405897351494824043379749365391933039949487904138877839453461087826471787271159015003441076210011911280955530258649129385068406670692909133661780915283432825103549832856863562918975947068149224728279229401376777296477656531800340786770821884389749216067281040738427273130834882199450019992911209337172666218027513260760668962124007472534291655131328947340389506982716675231166978209769534421332624377399907366735800744836117726463133170198023636285672401527109298877552999280245916223365901145162951373698868206570846717445072774786070168937276251581098786753053495747579326150364823798437607117292870450559996240321178153977245665664234254760638463989511145639887857997900067605075009029159272417215764151736166163428766068701832719551786123113693522243909062230171990066694031375564954123343047812977791381608904507543942536452599387936910636842343726302486807065377798029913579270502061757455727033623543845783996148224074355690096715856656411510267312134634663309526205675508685122836631839695941987038200209597667770091225247394827750726608313388170499071328515936184004333340495818825800278272248263396654486870983992212605147318567126346503387086185373804863062403968194601458853357328686310501149300563163812028375464197822612166784271477681457761715821815723103638707916819415686175840763752950770188680412104872709277121636311003112999696103377794472730476897765266749270195799466209257952821159432535281600550253425514572366826480235882652028104590591706740667860323773211946606375737959379831718730951569816966599459047346250152883359076373907980904164175965364423380285624977786095681290725849563534858544017997805967423260973738201792868591180080277496025369705403725631726877885879654417901015671026904654363292902716518946419828190256427401648308598959813343347729359460834475934730772473725266090139775289683127613300433248496053096981974241970046124440927960130888732412749462795050348394848425498935340043516892585312034502256609020063640466615059057126870540225616950913074762209534383754279622392162435618408529463429002981431536197854234385599519703754833302208675681684455984767272193851372590206309052734346558890312420521506164907069656787660573796186354334415760413227771610101856152042705695340228945418474597492750414553927083532409819898389671353810365766654756366206592736929984945401872120198069065715946395210702056964500701450212206429833019731941839769827839132319091259642308418541968093365912266987405401103738492927777915350373855514974259332951982560985296555274391073604827489011998077836411426281416112159736099648629206178667619968908493349861507445721971368390470216086007696950934028703130951712197615018420468756390729052812813687998234582185118878559094939839559419574295240558117482959213769393690361082769747442814095178127238677751929690530804971533214757213909032172861791560080778463939752269099690852606640945053171500004461922183766779977496083715222691653302217986221949125416225232479012183195610022543017809878424798123410461794531503903770988267004614775283084307039355534416017552505974599767276015864285043069457935151634139817868384287537502975950315342511548660245643799856750816089292778329472080538071562824892137503161665326192538399426799537549732815655214467977832182536302691936333286289571589054346594638349146150359183415168698875953272781229966234431660522193943291413589205032229982737109077920435102990822277194608697186179157237926502622873218585536661356156980903990410573429899393085081065838810146983755263660613748488862822468985530458107683969938244734324526991658740902582319650176227936896770703639278422549997620842052656063729239077189151005900295052935496864738286277328083896213175650767204533383543979809215053648246689736384196480473291454403965098761392349947917537051503084339925876713254287712177926995351117337350294375030076022375109238884004363367648921587414941756439180438747883683265207533967365578837187761939890969533523224823296391459888060740469120586013367028145173934825741708265775058895236970690832285588151512093131429277487648971009384021328506209453757709370336525921032330303120284791365984349037875564334181105508426840470743132240354142600533820996333875909464549851713610058504993988269119623574225841325132857665266371769056969698386798295487043160406793333002375553982102355280899308176082975675886897990039071938392777309192534989381966770764476748917844804727855258608257403301089772319334155565002753021648446483793754716318414730731461549401399220709845875527584712416438673530061481725126925769987022594460945192876288236802121893966064624636772858361022864931516189571101242630634755084805305173532401237842618411396977977458783812177640885369917062561633973512609236764567100383427257572728531465976142714928402082466353426083099739275065550578759021752647268731718330542801838493024319444408572336854052560903215358934279072798970386100223235899239639026874802759044152131977170451106831711192053520850170512528689466992833989151727662645690285709782613014826860801570624997429976888164421711473814157952145214976953964944057046002015344563232482168327545649734530239293171047751613614873273670762201294842463837373350531240464270101026748437881413762237541334888991038495541773621654959426299758971564157248917143188455221063869286400877997036873099180261264318019959445908695724813800020240759942437603589353161511074396195815369232881521190409278555936242507144061235192058782788183819567774727829427544444102090194287252091445234901137861857988470169291840764699235831379037057546916190494031591499695500217122026892646118542600426120263519502305233585090982001857579430280180450361481805501446397562371813794182218186982888613829102705473849186201783372654306805694656647464554536729881611178264887323278171221929531912353933150620479921505975839065956247668275477991344501342221627970490343070385563379233176260872971014706300382023282126726259945597619788775481835019400652279420344872884219072461942690917230454122956485173066491171102073137282789608351420099232890993803111556788181191877893719760244456509446822703269336728742845067676615740653800576000083646690605105649812449635746928734990186321752623678234570689752784388513841066538910926077151439217847384044808453858941693867040419292956721115926934940467392177294314948610156940958797203144264046489672634914943829834201313494845257687057181952159119496474665759613706258715615470789500697294200252683448168476723587204300885582932165920082897542738720844799841806425697281951208377386801291142784552730873747578487084432570847650299137004646800095265548146063460283993503860466493104440409731203683563817786879392755342186760826829778926545272602779344548459117329727581631338781667360142035755220549408642779604895562875570002557200306360380714981381688982347515116321466039964216957037313172226199534611989725244424514234324641330595533182187669118816493299070889923314829827597943443933615675436411247099847010842945784866123688956131671211275477707182051084787331771735324485912699734815180084787260476593119101154954199857258101144732973656321248395822114466282746212863077518433294270030519333920343167425194264621626331626218449793964113595388017474810810753691957838124842241363518204436550120427614241783948936823667482389082177000055781205227364109145059589347057791508267133092770081830348940454840017925716997406555253137331668502320424112424911285213100042926849401368627185936754750609327993608006090244122868930039162930765015804703162274059467487860104811029992688102712628867243378457638679303867778312535940083961622117574365136550010968428168656688487086425529340833646940921373359786431250636508250765483518507152005936486062880164077701649505739881588865035465960588076157677520498272598986243842144341296564467423581181558939440406669123909808176295636644192057095707774657262810489104515281438809881718825285943559800921980309016497534486597730618995187540149779335900505017320436941648121979141581579563549282577750562001577337050017409793009512555167370933949754897658579705789509134603738472916486146419838974898937680893574438150563125323444660609378580411053751129080257826335169481065170846508566779296252320486451802240198309491037849192731431633083977736245530907788165715857396827975769943522508210213785770027021498896487882462576021719237004149175809420069857346046182392546783923543436361695016629979059633409394219471429004693161444447262176560504323240977910466773775714224852638499710874489277708438869004241713688254642954434676347349503421529484900746158950624511619539232500610109592961062020135262158215923705039454830651637468555110034123305678893784742684550242413183328442131621103194187644893960290284355646285410494555662533652788326977051380436932256300224203209441284492357755488227382474478309475219607652375814388827153956976584568723673417723680968509155294486018759672659858115709857964168703917502539503708482396009711854307112439763997492577768026570768469253983221080549570596905986157997521096968018650676166387756259783804529240959379660928868797261512200733396184381954989256548098401333726674310428145856419927963531477590168144844759469557938381710526211703311266883348715112188630670514385049914397359445454743512714155977178676901572725917992977767900138522915330399542319469871832550913756304069456893584598248126637506822004825752077956528266733246060474818707577478014571981966371980165978204226513643648787390465712937466201776792987516120406347848995100332374333890668648377482449613096151553747241651879876233828107642381745765512779650892443382612437576765006972816457107047877346689793138268970905928746714989730162697610195280317408376260663048371681996396506923331007709379467943935527544733650679631252246056236791486050693351351502581069628731917703203701134495852705092582546120608772309808755812243733758335145531593608882224676179694012435534124992359677210699943557640803979920192367869896479049298588822494222793037695217811925290331221485168160390304253584268536898173655383077659485631308862900387944516435919422391453120587865603881266045314951286942005685220040537128045063188399674728422879628287752548215789570949557208472519199095340431461755834985978060533591129943536318563730230007413649836818566575393227014201268263611902855564463194931307715536524623686331404495170003105752764100731650508641726431105241613656251907057269291139114768146687897328800589388868876762698256301041789293581165447136721284093164755549188211986762662616786059298091375352645486644859139894658864684965321083568732684830559392192617160399777958591694047676764466418683856362097431710470738769198853037898935096899983734965527063811728813935932849154712089647021719160686074128564522475769883583147255808949959257809159984643818765450911310185151625049769446662955291875563647909104630870068230826667782011592747979655906086394937286055378918487613486570902658495838042572914487981878291389774452019742821370439849512901691961064058049760484201556460557896446217956251712420753020550643273386770736684639561824482751572096840210152586635718966447198618039009430831758652023499493084588367533033512660263956982856145821858026345790921901424077942473366659116278262190661306342234788502809436566550499378334758979141216243666389429872483278344177373823930827959724893071596009076180219428380420395624853100769216986068072208523472062172392271734905844344297573656603393741513496842488867943344084393713442031403714428604777771484106939497663474626379672349295394043881002565096928520567292768987951214005106238980334820083022162590976294757975904474762116493555471833631947575334420302763467396496387539634863862553406684996077148201192099446435003715587754745029935574251489285191549644767277300678310152381043488531656138896333285128195055649705056726868636432073300665231585816807203862638394013197407533036956366544891864956150736051408288129931040983229427080730116705505825225850230537739286490976477953678973385353977248743889099040645844374648436457225287221095036914668376264355216810739156792332923192466309074020160097931949724781286162112812300159481682105564815475054908459773147565862263566355474534207172618021692679520610968480632807999153573930791824981249685847907045155526283925463931635004640725193670404125926619237493630333473380732620292556779820533246471429808733538885750661398863214602185510214908655739493584617266052389184094621642459503602787731694352194861738235422518843859729053218640539142022240993435530000874585799545512275574750406683602792565332130576195416422953830852640289670647057829888013001725875800327314710173930190407759165129957226576958603198670359536185186853014417465560238196097992219347349517015173997976988977513605694784184095262948688394627832317158057153578682991286071781261616609335700397745982768794100606341879192967188101212884464790877282181638406166375348607160612279936999532000965527801427669742436364405538661338901836967502031091865877866078489204552486246832038642317123729811164548881851352395756696394153141911228457983481998556325633409050712510297693881549666223949327152499810245392023314419425869111886602934948998627292340136598057875210223130591966835677559418386604168745551140238628523692441454795422654807766022364699680942581329753559390065208871278239381278421215338743745750806919539661542277314807953866054726802370665479199303653406831962013547988733762991166801694154704255163268359722140623183227176752568991760064128190042075634095128064002903566035889035151342582128431920913073406518583765494767124584530330650850700307493482939353720880444753441175203007621869844181780970637801190115861494044387667866929766142967175528996978557202924091926539400920943946646894545580865629603292356385006939248252034431157139804483206171668196246506258351795964861432829085815905750898189368886807154904011350925498851671247659698331716920805561170792231349438167762994341348206938736492198935841024234295614101000230433567783226393251914089160708008096361458557888445282384246976534154709683051376741256043666090518413823665528875089513292274086456111625789267170858647752712270172781398204488961322551153466729842255872635865496247079163869837236326920488449840944261846285226012745290787441641838998119664002369762966560817959524238507745235788817478531256360876043128595902738457843610547429034618650731588911597873080893346706035664259124470858263677774542022953797142798997665732111149448075813749931478629212662993317706001610505662196265519587750369848155116300156385629493752597917589578605139916053069720532712618105337202860406793427894558295757769553257626202146992692099089633735259286119215514931512543669586619135555935778744077362022777199889774119230454974035736407644084662015643247932443350178600697284488296298457333405628472247722897360409707841157383858364003059081879357953239253695660738223475982819874840651202781587106520849233399034321436927469588812516444143472217685170236562765039505908718587306083212940221838788175496042565655057789863731448568698375756237563540377916738666078351968170626750294367255419050713153900007951439062713549108687571812032627408855815191127013609438418074143939585974512657776778103440373979667655260793397203279741376968297794214715563469571435212211047965638421267786219505639362831650804317947778571926060303700860462816635144061003890851670496136625297915565701055393271607396980394039487769018945332671305676388783110584435034979702220661285040326550738183621938292407015705863415579034566807114357593268020210716462182323187503599654169368724439618126730073119613200741540536087102951369904761018500200014336433727834802604268503345804653513889193169997253175500118868308552439918449172378982516577977908564056592459869668766882054624015734796391484784429459183329446705404257813919088446938138039868200237601006683859210185372584574582124616880058092338288396253361744759181423329774958955500032218051868853848277372494810733772767086170381725792700615446590806205275244078436536506660847777552614054555102820883088266560369559374507940376472741063047226635022638967214205048169971472792427929526150046801221841471352203649438080595773859015890107191445694748547832975050591799960808978358696701082446419598990687290930815670059763677125146021078428757357718220982656545913340514581912973167797690486478823385769979395388041455844643277680129551367378529979276197339880587085263119422358101082833093348724735377263095684115766679021914150584821050024723946674348298682706064001376892816272022871753826421972068513615513431978940406542634018115134771922214374512514184446118050120927108584739155278873275254081381829106847996363112841522855176913234841430766559799152932564782312247052655164411616057432084290181089609634509367566460937541067707053904161401095924647173468376256771119700299696263502297663461370083602482387585683137977777900134676279791884521217290287980396659182238940728609740986976582311823248526942620220484416343619265605740564818705043830050547744444170477423082017869196384327798376641032337740449213294003530360444249254092597191300669115662447629042352644326080255922357703889534378189859015730386357067131524606511691993835462091044382436877349531948057984041380940951789328197694399853656187725160335554690918176108576809486476445975916655429542458797496909057894814323438131261478183277952750505071935336643068076965867856375210726167881092733013853415384071528364631461549402015433682879082867598300304904793203876308614353316151047723935790700958424034913551551442223933437286498445773557295538222415770927883416161233920854576091479130534350636598492485799443836203679997847851847835880201657215060062888162910872176986062901541933083128805129846329629007953958044533453865177698620640175483517882197802660791869166982844333606457251616634471344625698804665202906552166655028396050290955030007339958865636057976542986736980538489526223241959599627420133742454316714193268306997242156927987382803269272857399320992390326589192295673672652483547467463741399734711832202376149005074751623406750809151080066555204709132902173813307687780810003099845582427449247991507114306400578947728602525902645460060782887456342694387506987527455187402410663575186413771475339913529289115885873483937511542064224286128489707294785152024999791495757358490664403475354234618866057227951403604911196017742008198379515989894769157793714923840387006119229690451276759475510629275246653594191912671458859845801992257612687196607998346543896344027956627195142648766695623304572502170753427651226904454389466450683658324050297449170405288854682158712701251510972463411312206142200673008588737386450039770501909976147789735392963989370215841844707288590874631340658146183135544387788907339952871681589709842423872888511676698775295475243983109649877631101676570915249540235249932438873756778713070274117822757658145636867885699970623999406477366145327197299918964134536037555589653571443986513420063771525524521737106118517319122490207768759475117176253038725856533400049919120303927175900500011217432152957972026311680504862820659093647439552930994202578508515521116045127937767430682539605452757144451341426109271392940190898875287879567210882222573835522346964750454498586449121180123162551839311510431823128008658702903480836025931043229262172571301193452616504058018917592133224914309594089601376932815108885507340270875642053439132732661740814189168449370262873599733616846429414532210923618250051437459975569733047983649798101966669374913255861805681355055346348826805977479573314750008183120799617472845151750778031610552936197972900422529493988289895017534240019753647911413480897141750458410155877760826059643320359809164846929460195323930394776150922618623033325342946398001044880047620894712481963403552166114568372753821951190139697655496236191296136462116696344754500147833393853626163619613136583816762893571420083815405037274649939206559937601423038865798601775314539349997919378675156678417683976364773990917605671022932672043308060613848355782165680334438069947443999713751317090719241147432868882448318073145446835517576232821023910113239590019690292533709713591311949044953239710966275852138644895859372280234404280314339759727847227091416968847809541664638640183575802480668148861355937266576704494567103801339116786274615522771667006415007258666285645348719689900865539817115604685789137472476492314496909170352276989617009308713909112003026059338029051928546868960411346290478070520818035105828283363138779611635459833564962444766298656615711227620649899994364495770531861242163475203367774158479137270507200172412793953126525056298006981593481541507977207801355412152765835160373804659492045430370319064608102001542512150157799081121627708534476903430864613978226883622528161998848482657916194423765776392552210910333281156456611791566326910703550905359058765884490601648043368475868351045885998596876352052661198087258317875988345109842933672117620102446407794425909468461420936389579399295027794882340607131825103769627236927822127997959169156163099357119097052802415275991037300881538847238081367670880311715753971966524963718096421255903112167529471245606960778166093155959435786877120736778644322895566250592624465254999381680147625960431011200076095990961768790232929602505714183352734680083024758713903273835746759910653066399190338811008265647234669513148733985074431196250325751560730299012974943478719912652553303984714677742295879932284027622956717479030018326037201610801912225753302015427578387442106205209034279240929288627955681173303187119369379862342116985765113409659744134095579900571153859516301955783683689241868800490492046388075165412151408414307080427415350143033058897580047292504459660272276459590263853847343573129034819006998537287193984708107476983548536322192030815445880833822457869012184216185006110388090322347012408372265509269983658766743953097829114103805841449627369746920194054890113181504561299709781530116056893446431414586623379370772013806383546073592296557429261129163849696028654796827144563366849815172757836217082726925959417814150659452614492952076010837916347836883831795811883292081897840326319161154567007990608004322392379732223324410109488147354677706653668372204462416660028885340529479446266487586906903335256952724351005644308077708254673755903116923733915477455262665263460456116103640585551431851173170699287325481053940717481179115608641225619906596151439708750780342416006866613575470301015790500651790800896947777115757132543661597386834094128808120987047452487810408752167288430652467129028122119176654750832140834036541597851845220797669857683297996393318891434770928784004191633128427087927639188229798798511923028315527680805309911717467757472634259715126423022037875547904975128708781990625342718187897654919000050536952977146398328576326369937765434676334282788535416674413443650160261495094279566083155575827627991608590655228350370590238377388246258422756536880727844909437638240423277128817475815181444646930888338831976129093913960258930164515556902002645224682193400315788942165262282838081393320529885694660118035773038940668952914671272145680242057653804839651351796597336757087536858678754056011488749084290319092212903212492043065647531257754508386947991305126894612903065746243000829587018240566274800828562721671854365734865414343047211315563642509670438983236327237817956459304872817063797348591960604099311375477776752809689499640497666546202523592707268760503505116161532544797667266601608478767050639238145885907009625557399383628076204276266545771385079116130967132883076704396790610150577424652570650158201874457816747295368911568904611383163784184983770102031001821452845701262720960140261317602825206880861879597256306150533543442265701913636264691316486261611016135259525370884476146535289154051226230440672892805014157053957879620954626433452812707431160159697534877821667107616903303186404390772025388663169449457746038245159077197372686726879646073192561268674210226654315969933008482505648566902011515589801716740559436643286345582312718958423886240057702257292665031046056144615123730305401926639854617207550362421555959334057184374938069857949227050560124136258856653901369845546397438990166363377820996677967996666739958086097046633651764409736208096760351370389544258510870999371296419617994375506337497351936095576565071832470770653798286073773865204766183249008360881303884136104222932944635999498902897432106946398518800848758804073815822016696230754541138229391467955693501460502797361175947290572143273268559496982770067765119645408030756431425220332203334860908580184203922021483832379510878009991082182996769124915809832106325828946406499375464522712929263152323136989579131015717489221122251693356016895369096652772756889095498634231987875276865374318428090637724269810297791697473989711389213925255147620399572358730828711323520106743057498680841090549759077396313073513168985465752230044457804713905085247774642479575216922671393694151290621042243953705025795368846652686045880912293050553526274835691723051910860358884674722351098060150309917563494540765718330570393779546699158160373558581728348973476414579184283450101758494342754077036952926954248000893066088954529287416313978384469974229632371876333993705708787579377314122394653562486446147813506294903305311939182594429876868037991992395543713026575286234772065824932855819836500025055290858303212440068621832776105155097817479438225274272426266087714884671268246771932411586764966353640934322635629823698154316880723885380504369403551133628796751135516297043806080636375718324990339705630778167477374352552340125341277856742083572865344073647892528179365208173377960803601191427872216274904620673180210383545935461755655583983377224574283382569107126938816520648563257840966954141841474362071521208392511899590812025985791165312590592143847366761459394814552229838076442352974353181992878527241667149647120489900859947349194714918816688524277202275188395494642512494780859848825370846308494511296627379207970118392857095929657697914505046151931985442814891470818453913085070220488814113665141420424439281577298306668706581758680443689447161481884509088580313231585501458778117736068658295781939354944421626179677068477001683888894308392897602054126610996353209210749592339113818593656353356549745140049705615095501268412163789025711620329629978459721868552974776459898188196920335965728014212179552743333639563984453278174059393891099397143720875943063715156254631322575379809380389279984043365199917750568779433517199094918699928480559449923187216242412181974069003725616820146461601010108769390664421796699567050741355949163033647662721357917121010978266872200582234662894789700135544095003207407881123185716782176492216610219141889778227193132770379737248537612976016794358915393456649703742294572355801511639473560974838507176102478850523175605755730978711120535801689381595522106148321580441298579414242590898528782776795122885623644345919177977240098632503855009640949773234682722163610523036704282981575827812858604624708170888842697046703506838438363857003837142851980314339169350541927342686248385258922671243395721360531390451165545014079518624707122221056453316012579487424280144677167653591098267437521990375101947622120774334348294247122381364258506921516412630848703694403804128433863078352114946870379792342257215147403903207490841260872732615368110126775049926798911608239352175936744736441822627219424145974322846049953979115787476800504009676267621865634195510898649665870395890516078563669675409389837521022719873026674930834242881326062500433598166450518383117647644538580864685852889518171815773897906412502923339133670787380786113584912162630047783507783000555795803116665235072512592733616642560493003085879459137260822450695340280434697237228273424521737306126775770761120779794384765753510673424271670115848615715939599739475277765395871038742972111448682985559531223825457617360333739698584388160094671706144552238664640416498395571421459416712036319280947671274603276006346337743248996230131594406859290662843829237794850272347540334624913814099098821993129720909167018184581795936706247320729757509176596391362591962505278714395688254181085768718243740585251807766182938234569632672518861836314749018588891892823752882044914121436300164323549909071318208505608329177355161987596539223038912850717946613955755958147766110427141709565013365401812242066493961194421610665670541970773331560354374610916333138317225259104374753241373422834551884338063012854782030939059074153767464271961992276081439762181475924858246414687950444322005122811861942767571528538822734437408532737896047235060326868242300416412590623015153272647904348008659879299808653344255298323108193423913016711239782854370112611371487908437619355830326161825344234985026180853965125812188318683643775809338743508266892433527070529815141634458204724409283118251778228877974752355076800129947289724921411633310303458146497473417767041747580513966421326605330224725797380732843928589968350302282268442615584588409995013309068656662681738426126424532158147308333717163132518082093231193295658642210317521943212453121103934909538740884101120429510043263949785246136983568353466627155149343199227990481563706646454395368145923488232195406108991800162097782069484420318202207407010429428744925205733792969434063257119484275861333642223385114336861943913499836093352688245271335652045847116823491284962309234848522792947334321604212786725363376197885177381646958053403381240303455676243852859723325343891971840083136459946163800908954509607154734159988623183881348836889249854025377444757757192068318404734482956989773770534433729155664775805529161162578440276497774137798883233519805928831296523328075019296776542656596105325324284953050903403052477040969979966273456256307901987495237948653312619182628060583175119044085495038672135067648645385436484137557890899468844426245398760723161926556797185483185550356652887372626842758006893910997437261803867186602093893135693893244057428340035885931295038159015344102792438633796536618603080568639613565787816838457468432592638208110235036256808214776049043838060536686380839233624102933218136078573979077439466905123357286035802307230573123667416060338326701062497918161233494733486626501775709263051947813593470076320778222315733530458539805223985568881271308950890990544566389462868098653123153535705715346148270463090363559872455173004494209196713549618400717931345283646440243488088331992813132857028004566389312727069666723183688214876800720414288062940526132733157871529620997332224952018048863995359174996265460848909346826287357131849005681081561995713162087083003606115607435771104134726404665906780181984433219895427238489718787042521779560213820983154331328441612605743902506037582235096309605551167937559698994742991992150399102213657064549971389982183798891528804191005954596847951914402560680606338536071717996325350105098828473517901013495551214390310710981594732180713561310680383303605915737096498609147039327552681192984434851690520681496794563497163447393032024617499221885879255175545728858444968432587003892704830872554604244920123190111947861684598516538795963799860833298456465884005014076567274120085583707937781535862111848644818692238929478482452591161155022727069466138373508378421304679821432425314648972597780384238785347615715017726410017982689853250356630115802913421547443426613288840043083666589853952545420796173389891805997021012471214734905978615735020127127121470169930801477002454213271427621508215517484436469054114084043199706446255151630330627953643771585325247006100641831539067494327574826052718533676375707020569345588462894337614741429981064956003281101067400925045869561057430184231654435281828978863007143732750561832982747163159346100031758065163752035523205673591218369097982501257483186632697608650338656315979080203170136870306321316068546043785381991857278685784095333884905256753293959759913279941845544394551265831022103915887352855568719933639563247129027545060623224512005598820248761722217021668803461115247369665929779231531441761569935488857200379306856608985413856783911201738342275377717159169256957992202843831249004655632602875593334077773203277841240204581936838108556440991128889359079298565697686885006978366962190711505887250715221146106680266238084662150489853783156096447983680188140526814867361968288007875185220270114082167760469831864374785482261673795994277586778146690141666958630151661748357084323996509600204357211535670290426540727313361853782059954216642228217909105088539540983236176750727918718514107066633190681833360623373423472660135742720961395695940144033882600090576803195074787203136330600152125729657688556994994920873734182507741147560213037231776604414276929563216729441238826063760375702349784270985532666656300510330183683325178021951281634180845184145670763001665984261060231863720876080500191159089279292053662302299002865381884929836866769707323426573426641118133155584620217035731496262969009245625455844784303070987913558053682910967321550900057840473623544363718574943642047737311824116043310145788895481956087966321189586308213153443089437428831551819999374875342728478855962273502763265760523247224241152128847914970106904086751303775511081011709415586812873787962365995846639351874580656638502083105687130557579428948036711242040448285151552906056255080721436325120360787420229036561924764432924924553021519237817379521923963294933588303345741217361510752506544347650173116068833434145951233467561766878167168257095734645192274456646311518351863995336636409624461424713479986294053854189391142952445666248613065264051514637782590567934200593523996508250608491928106508073287589424636409115756005118426611262014824449068010448628296058712183090906011861367029092367198434804994587673178712088293325243121557100275702134446848503159981022810970405831964726990783458215787039556862655116918239630758267551983513130251428870837067123169452155992737807933058530013296129908928219920279204812493371302148306432177331866729125992321493169006773097521459143171670971325538568107709018767506222867647958480953238173947839945685069180846308225140473638503476931785250057185632229640463802433826241607295249337519764499976251571407189485711593571155104940714208063295320701467442218142948921097622714588319520814919530576321956367685365787713666785175102879787594637055903074988153437134812202227442003225196672049618299076907123634591090060726137608996850247696119933065837181411669936685769387833921681531811492454208618552352858148800230579958405850140938203080888792073390928025373148055752284043668087773566893592582259864779014315393702803644754528863069998640373718618432207602115991902249690716406067909417782385895154186544873915070768223753776403443794959402947194575049902496738968626441494624752757048186815165592783994364239129353001082225729189581030406534450355609310832021477093149849311983128547818211122259007438346931969452999705141726105783194454533924379256527744349394151595399501289936453873962059033737618716837590647185668689565153022882308038570978328126675978652909519522432122126224242632654983760693963631276795636109701181144361182322955028891799396303610675472379147478462972128785636547732657308461995570059483833342864482868319315638298045555537482077982768475139507977277763054219777144729085218286822306596542873505608068441842182179444708545157757271979078574757737450550211370129589176629763157793184675454107472413171138649771767996771472292885921147701783417524960846246934498932174412859758775646776702793183613455528410180106127070859549038670451059394860926573683744805349223495863600068976556251813091737415284095677248953319020496836759407000411803268282248133920028521306526731460451516858658849010170444793074729823623069396754792183874174553375824309947731914289095144059801912049119208034184828025564403043944103100698030728795595889068438891992122108872828304398102982703081585691610995168066356265943622457209666171224848914294816215087870580580177035226533345258997070602399067924645495727559738936216239660882410320980110488450001361303771332195554433472889078432048621654827010428243772534608189764224659120326062288761994376914907025945080576864341880816334436841031244373849461100290455373756541243716290060541984712686339984062507354692287244183825029674868908286285926020922814644890502162858460554049758754659723183466708637232811346636978807190937800160322938481323023553872969515938644668346332517874637963116465517165671788351433641593614778782733964005737997051947265299221307386486468095755097927309356603898985468327102044217141432623775315686971288000281207405829344823487376772355270362758109871757599026349959628947224702473832806124483835926893326137352441260143504508059046262667992890979501871579799534447553715689921504050455118050903873091680505367934002138168092296919849055355699587960504925845701976242194048121485749776614882281559354038413048825516655607553365361824240906738755279366014766943592362092917561485015797796677662030208612082367411386067155767755344553980185431124868318965662533489512565506524636201648745366746349209891284292536519977196054401494446600276540536071960202003295160888546168793863047033170831121972073862278528886202940271774833775488166350462103059818170854648282342545942930408259745469769984466102588398711854757394865332297638680495923888705537272668705759800060277744814779007135371660228395075920110202118968320897208366555269044712811295277162920102111107631789776340886843889070448710759082496772375654882414443168180850622174470076897342048157818965932082120833049210181194646721859952651759665412761299060048456107708401293343959304934082166759125167907420284038293052421819106300773330988152958999013010425418281704565121100918749159104280764304147628053637431162883639782549669176477393733484471913612036197776521877363789475045042784059612965146018272225806024759472145008157634620414805628365801465449200685107504445584736572274932700931808806939266892900679837091762481963077877518762143930674031365812299571721528652199484448740485392775042558429474442217617452737277839616033897810100786237813044650026128234506442680612230722425217862486063513929304892076605342502953336698761100273456211703143240313951178255861673712102732051686798807518930281099691195609076994674369093571169507388206351772963568395423593309956489816125721871367132691500028945778501948497911663904678700643820280935955177644978181092650799665585478985386629465656033744099761968043913676596702631724459051568762228669125210468822889944461746116395155979002361225379789804023576637429835124334604393980558609335299397752860280011271045641624506359354408114086942863440370243296774692679132495768986680247736346076069156319977109948936269681655124792900591981091183764789567569967438638474496045654080613135431119464665934756795956163759060968025357422305015078779430606713851263495904349707311513317459296235707280729096396607004335041276105507295264443059143386235683985436008974945636322582537248302413491816439945598427603444330194665092546103313888654027694333320257398992090669321225115991482474465949965985743349417375331307088453899317782313178801711180461461889292530697683580694834571582794827872946509446559861920902362260672109860076067380127402311530832468428492640677991236436439094808334389814016339246127040111819600042950758380039856436798919445628997032019595056877335042990571852453897004307739577687455009190807754545763306353020645875673096785579754690836619084354660823465582716695472060395167931628573235012551501918720691494901181858605055665252053571466672708291140874784662480029565953128655729632767252154215954321157505522539531996666207836865430888239743297581339979662652739278651382469878046550755200490151974575997865486607508837276432939360713553174833982096257317536093894157708126313708773276416422127944621266288384432482074843964292608835367024833150805770463670351937017668969507777608573600313408870551932047323840215299035484743626593099534788696804693611780341351921128588201096081868055756592329387627722514496196043104308732342808117085070504772270393226117949868645721422430953013167822236846133317846585641761808468637527844614079482866319609263481960430073682159259353138099168991508677995328126883051827178759640960584737009461837973793713451504852624482891107874121981945616001321638887297716206180084542609378495434242138777521554434033072762779131186801866597756427217524859634119999106437460595863410125839146545525554123639449443556421735762027014823337416665812521896279117874629435894533269284147527608618058093792224985503598708773901517637329172988261473730572025214547229985745263210073567020853956183381504351350411884410837211464991936254246277483639329992884891910875766562704115029825779114198567320667003675303038069753532603005619555266136862868278518683723934319221797953554702016613349646149368778977169342022093724719752490826874208309954123382596343605701464782283900655705032239574453441677885747564515420542270540933391569602787598576721416030755936111941783748872941924933351523206541592944896947831593692752922103026533500164944197403019512982623383238966163633802235977777178288880180361994805098492832756398345537276757410092620547700655171826863508079985835594511015918040166857453621201275427172985475268512769058198457875485133970613588146041146441609924733294146937056761410804301568223909776073115962701883723405988758364337926479003540717882593660591048709988181881615609434925648622629449394201583427471156853159640016981146671732251557534166720250669831281349106047009577024974281211338045877211807492412372923835438208178494866179847638260858206342233418424915931322619319468172480318767874724940002715469807644320159434029663800537766347041043899287398906023503842933384831293171969675187091716383219868669077552616044311564834859094689693953799237826529605846697526247546976386989420854747968059078307819878617938098319908761176205637725182914239440519382408933323804375266339546424423366442480017251546172609789444033518626724222469684196749350584001194410083867387544632678648463122376678100214785458352306692015728850701624248392932534380735292721576567494767606910641964574477948886600896817862456791391700364366299863473370281294674867912507810206153093071977494606298440478220998938327148586369019049900146068327627513454635775875769800792017411495132854328854525497563572726872897250510958905694122410875436664133849233676111291632851430956107536300209053016184581879414592038437986657054152064781543588917723633303701258511187631586110404658628343470556999389419933611892601444989013278259038886750545257299660321574308870506943013095975326892607552028439895648016971484133743720519463479478275561297729417265461174082384533551360657627642677722348068460464644473003625399097885462114016590409822424906196156059991765090719002160046081563510131747387942409365616171680341403399300386888592442850047384232267049545590060260962602650088640644761096088557595293322018781468033994256802605981885007296500322177913942703469990671175429897537550883305184815749040280802499656827431307301870790184173264202731931158517557239632637926877193447583171117396597360377327397388072700998199514458399629156637281981783677916613642660655090886321694840629535594488681590666289117153980461036375076313652843755353451305870120437739205890165702356153244650271469494292460975492791831844023862889762988358173382424238593943713561027739302999700042113806431370927063405536645776403535027767437281607713501889252425202613953010079930003713637966592537012172435523720381351769754240745557126901212958384667677178752358572394889514989951580378472971763961547631698484876619663813263564309581162535092637678261895800244994938220191903634281701137229005482263134237209227924947537721458521210174003339849710636578767511862075412271370079566379445494758905648133957998008202911141123156236153317614410659461377080490799980294352628071856490953144508285397965584326705020914980319104087951916301759288298077269457565509418366098433907933871332017024177157597284591530948946028464363641969228746709005908657005613864594836004779763681053390469408883069807727160665823702268384311926704107807961730621407283474229460726839977109138861587651733958648628760492449547373234293901169159593919000477107885503923147942893202274042752504013255664585575629937868859804774247852310276026640625162610971344618123559157293954755116994087073438903271843816717281562236437777471333957010561326549783084141668428756521474274205269079675347494502721877349022601477891178359703874126046804319905298221008544306787748732449835620193311840924811606950794610504313383571669516706375739745631802721964929346419375148708836126194414541951042709192043191151008809149372967456361377547971904112426483128639603893264550058725507517895821041898864551506556187426360107958262634912394852626838932769466276233131942427533400417249345142212580763437861618657277575930953509012402946704803647595810736356945288046739067456839685906058317482444756963595840010323285625717359197834208299151392350148990552852631049140981544787449016258969984626437426286831857447411177869872773448511884194188877368642971218894719249980733064444690040097213622508692400944147074850863631666232912257063714425024129049843394712013550878391899456742712238505246324803909477030905472100418216651951199785509823920030955177369345305177590127158610243795750805223440598518071487504421914845284210483024307547116343149317807806109934015041569840641894682459266654440918995025427790726948709315712877230054073171244984280168605513638159721786629761646684267874949414146429649820916490792775663736884458411524732951361934001262788565448082838174950045945254470651454446185268206392259261512804479044836877058939718570976562007297403762524973833204242103046910282262366487366426785929240144821628396401168462844953044174671348206660685295155531277498684870395350096566384883040898382203991063931144462038206237947931948956637207676266881394770735102970070669770005108008711825434437685785469629319563427088601890900917945214776307196371190068276337691567680325518250608231007737009498408437457256957568036217768124565723046448841038895187621416538576676894953387144022855974948244505714402063757770860681895043496736830276265864515700776363987094418568587990686966839380252831852550396695682880002272266578047956942283135520131521259216216577985970788146450147552614820121420060572597432406792816726838681813399559221227968878561558208673948738708250785193947188839400013612935341435201343104328003471545924091219178162704874866639247332311670647623767764543943391933873620377262566789011752571881574874113422144740486354958248795140238921916599496070594849511246073517156759343510090690233308877898249989397071095835868147401647571091292442662717641940891881953359323768313455199118786801208937420954107855624706374697939675113904599154833262949181306070630759989598167366173837829229582537819976183271091169155853314017876078761696198151102296905735449209499798456909383365885025249285930151127945633613556790975943206299833332712496248069570545881900571516670013114495851134680408899377205883141347383910103198063697481071862255077203677958230071026329801975617611418874856597781507158785365744486436141455085086629848577694661278828221802160763365262495354828284934253358307611937568429895945265455187455130425875801524226627245542630380724275052315243528585862663087832910252430100850616232652559738200933938195947929745785262536580165123501653812915089939316221263633308006013293409090414466252524353705095980379439198948714507492084660882771636992736505525854515589257904520714481370253114652325261744515838592847797643424713226962686362184616742044314311014674325469411010564929192307848890374393381130538864371245316573003234170886264836028798366787369463352935779764348271919210869436990226485303717034958807863579027819038968617251336853117079450814102995393835028294176387215699875936272842656713855762424851725104239195316581212936426131507005605997755246963445875916668639952008796158576191775549850370100296030980035654735697856031082360661013481761357634070472820908951909505639113711765942354132305880175164231808416352074470740603137013473758331300002637531835706209733924490627392075844460509582959298050077138233541402995571199107685818433282069948198089984771644113988956767190023330034523859293142405206874693920308365183636356705240801254257841384438898168998992983591795180189119273544936080984000712413957302695931652379044964071676532915481983917818464976358508482776911796881906914770217085762036050961942804739176586660469212951395689046745190915691253412179886909601476416132073412838171913257480574812697589026378585872693672542699242069094563971419319489596424832353057231780928072477455890490803327814734986904424521215987793227174143243983206896862238213690096149834026514250757136417361961599114705510809638231216409115891066336704206375133616210238767025980196527137414781896735941196833082715307810468108783320589830387634362269194767879583089206307680697804901732683747498283410269937182471809875206886057125210065973063823851611018115006430128276056679227052072263861851803371845788590173998673279879137142819615358427709029319714648091517008474662757774243899254921349738935249676775452718743292874783317683432896867607844534413565722789520580914978274391079135801664284558848510117312940539765302399429379880306699930752301607922383020347389114111938345930860612241601566319022841284594727688238753846499932908369827869223651355115497629292721297436785165689961633412956322849632622031207471868722446023487338019796726816141607130727673856871782281971546713924801684803448973722909604335898583644513298907188971309727822964091967340420221741950372280586024469888174083621878715093250526089961929115372916242942634370243664216921340516539334260085391220571866566912068557767994775989958419398137933168061872594424456722152612602543681313552979917167377716465212928010939686709305770731436807085582886725514826836034701030930759832897141613418288394237810406362196795762464168731921175655560452255973825185901646125886908146996093768047161737199462596589310895854034841965054840492188010023581039988940979144675596792866890631639883085800378875757975757138581518957959768673957196093306950610889835001631884375639127421042403013636588177315981040230784686941433380874527473706862913818166413000950559237532801758258090662134862712258863092517133001037725408967596821494185964586877074100121289701336438026981406500761446517439603969619114050997393938995067535796671153385121655569658801047338748878003788963254474329697405747168100864130367550666155517303609508351649099393412105031168856541944318704697429165222510913950269892304706745436232201040995685172531093472718052827657522415785700756476082897400064458285415683188552290148104362063750871645698867614022657355678781586152078427013214415835611889222709646095816721414141143340647201885550049131296533219906420242053112087347168715839877641617734644143999798747051316057792087449191303167128962496927049816838302908251181582959923101393335194335664476999537205587858793399127758551848046988734762246669311531933923577401301867994353768089103971319526062260870861154052751806055152282721955117396643336178120746793029340956411203551912215075898648584359007907093813301131054925747445512404692767489694261658402896766424603656680559909182991644050945740246001064500419314268530315442938851689720309981780744714885170372839101583652246731064273540345731115180805175221029259709617560707815198484320217083668524178181099765575637677981499778062844174904070297434098004466763233083088420557474374393197088057826976610796119832199326548143407787392944775459879355345089578766849595586462053440380859597074311957121186546784598336760460744802296329852440803238261292649074977889704548087367133640014396185702780771234605813870861317702793562335961257517529761013520136760056677480361470532285412063684706425091050411829908962870106457241987123739028390131164285286585118120081842904421380039395965308209492865322255413023619914227533900046172960306434851994697273896250697215889125588423038249957864298521869057989552161881200879008234782329468392929895927382581503702957061827218444070375537449415792288296479975716262733848944235683076463207074275078049068912133122622018649934060933474160402787282210795050332566505574618197436855671730495142376709980851569292912927025748613763650094817957103595862584155863721716190622624616514413300977505988703530078364898678228440541966010657979194445661359461692578262774786820617051007827138156600754044972262603508183085245357411424835183028659979842841248155497384381037857839657168282081832862569606657365966288763443040198184416412160890214317455203980526140978153344304275513217884884615595292272471292535384529497754200912675272689570456683441618694287126562261722646150532965471571416698552052362060820524449644037679967591958243820543679095000923252174665650738508282075287749231217611317506794152377254045465080670940422643157972488924744621559847177778151375981778474310804945290877701851850339474470328394012802639651789963466927331588144537227059229328475514348269809132003077582606416654183352810511563595789545790103741783386169227553696477774339493192315374878628256507381332279206109376493400816626978463553182409258559832467681793503838968086639393029225956852070744820463813999372182584158130312688978841281772276918371500642224975002730192114098626650013813374625351372005588395761886761065730842866706176412956692025793636799666745423441243042634432306382238265975973560057678085095545307930940517208055792958915658816945426288046975260006277902419923477806992030783499737694768344116673503979983622510804157579991866147734648652852427989210221495142620848133954088153486743547981042214185236176652913702108122186130182895577202715428505680656606822508395059439092398122807531354010851984814611084069060451343416375407187703352859490221933765224849876229821262372726654360132043973977262636358795250331976528982024802859631231237159574043813096139636874935205813509056222970803810403858826308061769878263718798978582643869163001683100377270407352586725757018264014738162845987607079402528724614340734783972191596431090142462794086219049531373609149553136795309565355141321528307773436427078266225271596505721786290747612786782132943853891397296426912143460464641038112077515211624194978775465637370517856724212057861027057316411485540408277443676323010265035981110954079972857663498829961986977742557599873655549172603251224751614947263284467593116480719006194292258920119178890368154113261202232237996425291545209833100141755551051668641164453408862199072859988807101276870756645828775467012046601038118870786712213418327131894003164416742793571345494517765798580983907990930310973386591885240178910166347857351695424606611909004916613272853330186981820585555609421923072209809874589489302125571645832942293342918512027980279981410596355906844372706452349566103083381031692505381597683892805866560075855407076078386887768567198750805116641160715967144125857518399413429353181749603386303129559473108071546641167527359489015879528903182220460147645854549070925781344208418442661268270635381593726361117968911671033242465991615744179291247243702202401717856549658632079392897298625733883916552509890337488276210750537651709220631902571589734978270419336682398928351082429808358897156472922877687972343494112894966941902923236499735835561344726915339390579263166493910224177308242904984698575106878621276204124907152030247045171604696268946517602928151970594100270133589703577329731188868999753101445214568715884998277643238097207884036360843277844593432326040961190443886374458336244588398791717358714255407720432836506283383530684620062376518007927634871385619295594069643731720469974832203732184314835448070117305254045564498789597121543595890921031857876646940307339993423657001040044692603451884860466473657074638280704137287299458007093337794394129028703199914328919440973569031978020299315814974316342610378183375296714560459938741305723932955280225943702632668012821673301447058447095984411301564255361531486799021934583264377520166257303322100765938320399941891604294127664137664395530750550321909274424635227532878809359539232849734732119479667549550073541044473432298207433876387763005280009838637199389785042574078138972150261667011495070721583028608588989850558750052116391017955980010214984575567527511551162609220245680759257439821535382925046348990388577758140402122875455618340689241002955176895098537684368475225829333053582794749418049736845448926819611913833121542338405523565401872644522491692210751226662968408856566104766520020479369015689050373265235347486586201927118799500029864409859602618019123251250527895559801688594481634455443682002372862378418813989414696979386135972335260899504940012911302402786308379745850607145777291380414060237198365242550621664530811463442416133769322792338303391262669472929919436512270323437528598559798065005794482563029503196654733296791538361639474159094697903949022569105683827946488418764293410954425673176567182729556233777646706144046228341894837658800375254859819422980076755947777812772749703487830485120139619884882457092654672569408554677486809746276751165827721755279430898416243043142420402655182070433085066627124507537286637406463198111904920753478164940055056241329954355108497465364020720576193937302383454606716180839204068151076000070433708932232686733968153926153766942070298289207247264666913060569100932730489781480002003800890188229464032589775725958314228813718898847512131851896543772270856886468868043366684529527101918358121958517415162957063752672196167508497847147178437916470856154059182007639841345261604139281199980073412017224339761691891687004425590583554393768275273270199951454246226850674106122873102882967422804845967870817178009700698441769715799483820277090430881229588475476409898659722002025183487555905015277009227710976309742642376874626282754940185531769821143761631319029281057101548410955182936881247425612078898558675425848779466236242499676629290198957909000292875819632806660966106071491412777731437768024974358117005873923558770108554365179010695262365035815991847063141687746996478948652092508795425588882090188404043993341748281916527008530167860845615131765901804126300280450467258615965597628215881290827635207662486413928323201513893358950679855809477877538075687674668786916306773841535249025709218410696581527087573558895742129616195985159265207290129870912299535017972088952844815811142866402335176096477137938275636112558915448383030342638153897439568569130045795448536831441430103762853790155589821769607834064598484172540919476417726166027065385406352669093982138674773643817664256243761437207814496106152000674640039864964397102336594563070712914140854119385309892319244877371977238410789071100585458435996482253968102376428923053051482073609648798799469342238813250375742203246950666851368385217295008855741718193742070445623847776644896667869776538104927928546983000988865772756183093347383316692138501386016730958801887145649651297550635251749173583850624391284686217086293766136537674756033479211364170590078898640035087006581585620601539933260323558719286525343228815867953690811871337223000379086981235890380998068956031156807964411688225863801102607921900322811067114237446132611758775841120811022765928099090737437156155926367478692653342134842876533432012103777836771781601776768211127745795860857799377947459014291986204324353384175191935110484906304175004959321808889292179671756590420862931651524787846823911703059615285639897777774085432235987573934014155440743015003005742203289333026963195100988058596982697801349251978354921689923582301987185000168876576803008433629998220772687412777694004448905831898993590367715743959680903975511873313698678075256575993997986940053844741413636693296881874181329428801801024547736717593009975774472244091123134110518803399222755836891172605338613195403547602797071376714314297984761720666588186216926062803232165210469506156905399277762624461075844456335328446582051554039590582387900841992587725787757638998271611158799829178963413151931247155917931487563527288322788293259731265484713287829501530018057594462267464925314518176018310564685306684460929811171964396023783779711760369290673987063756732307960170242071751930696999459956888894247231935387142226589553701411781418511658621986745469934611395633210292556503058165536867959774730012994662864022757640645526882798371764995257078543726928011706910381014518301843588159450629283799339516210079595858039848147503639815045818430658134308200186221451151420220891347651149602031267610630724849433677068284055530328675820410865623624401585259659439373025940793983746754952505068780283607685422653208668900115681859669648979193987256262964262333518297304233015989072778595591642598570337695705344948568907690161655434886416425794408261006241873792226954721576103294101228392797952053525912284666586771569611365112215867215008968763719144543025205283528791002909798335744432128123584112153089213715082430932123108480640373683572640967454177079924348446944910392017193235275715238527412297478391545120238764749589158329613898338572679171931459420941091154269743151773154069200949696660264356012707558904422990450857521068027726742764785941850126053850693567063413719745300916588020699834846527057005187177640921155630339848820525928290800734416845440478779849175531763152992384768893177742281223108168574938152872146901126607669995818519567858140927080735469618709228967063925030245614532152736960312973131765022594753455375953099403570908461475786651860190573922389113526439066033752124272330984366585720192130729025230737980556759295079127147157861782069796945568051858329169490228326283623852850214131562497371188588733906464462451769171390178598738481823191534378582893041735256848740042929989857648264328793676874154343541198427074183377440605153963022935711926621534827866066781384857514043522964253459978975611171677015481551070497743933820418720214202528014766574718494740769055131309189079555240908554105520781913640207994457018385147104296198940972721897079970012667956496837315016674822298096185818190082054547242817590898406167910692622680530714534212755885769131733940065686614353268318503987375623181155791843458372235746007909704280601527520051194945070504268642612219120556590463908574781371918936440105136503659779634365650099032533516622416010223062922232737511391762033815590665382673226179264282465816690810123306869259580986585997209438872855809517487097524933720838997512291300307606773064465371332435461450517422402415376878707815556591275553876517504840713533752154364668285544718608016044648216054972644854772889130419023031199869876779857608051600752842339353555930732441059452551341541615406386930897150881553870130208556987966072985884873456489711638570207624581125055120095365755335591768589594987429184327578854126453116941930511999721253655469055427387046821344930485621463818349683105039329032163825609127262257057506431087183980490153701446126107478852247537985815838362199266888782864098053042672083968622380266736742189473191812767259639066586206749149804710599310103831434896709258610686225207797477011486468255157830915896887737848159287627996646570076808716830868090170082459324762420593500591121800301822249114692903801813899412786533329052497858686981393339394297936662707205772369647148234543430505012710778279318338726454627754919483176693669681492497217558988649506839660166163684182190008952912112739279018776427183780028276369502274880652036443617631001402067711469222266982102655827266876661521739048618913861743005055340139559531195645688179442147119170064161533963087447745593016873242266791548992864333600181758251715239107649038872425665403809794453576694056904438571248853250715532749557628682402139430617056853590108376483523733238919236266244175863156482741640594352719093136165426843514423848289157432912550493365315394893452915808499669962836078748598336248529788105980560256173809866495348945854567409648245066118143292530766577811372911488237728318900395750398782722253099633692795343181726991716102771165186042942164829480006382622376300750846668571728626844960605609160011872352831269449503215092518200154430661853600871272109698174990982002631500031606741710281711023409832698027442600835439686134607828174451122007361441647937801210500150594427379400059587821067779155661542084003149084205966662598686713319405791967940500166632624807774168614600491446178391245702919115673934728156136387757271089134878614932926969166276806119849971325680542312646918318289971573728337261179794568273864802077316415991055450088909015959212108559767150736009664442250622879949176310045384408776037740221972224872937559643758642498792142124636635421162607975193552457698752838453895211901275195535739551795603663743840988756911394801162625861299594613875674430214830505522762327771702393149908361807014620567381203598550216354147201123513880599172997237736483958467269061159883726084247534467920961275528464100560926380086385478458984081830428886490114152885726957350209704124289320158485865999985894531922534644275825653201941697837162739562859974990999793208360939858865626601779182824191859645802152078197451528354124437904121615819333452624831909080323687051944944234179480921038623442782209672458205103231401643201633885618738452856669995329579552992991582963713951579582347308289115457539373256783208258390033940400834176060662149142589273083796676514547357435627522845195169005229122979631319629346678544757460853438077309991621967757824646004212055904323125974069705465373440503616580742184541479055156515844482226159441451141632443691466081217113439538762853482360921526338679373081498639460016354542536608712038661842636143876892039905882770093269820766025991698571548505284303123370585813761257940470502109032845661840431605528990824618437786798327852616523444761798059425580199947202335903895139343586638559591659893583782720758315501280966682481384022217509411648464749989498279685896017709684372357369374468800778923231805579926633313810599225967063450476351622777872281777793305568921876910005826538172167986738282073630659773689294088133832566764794287989534189834293982657864986916283172211312802587798565971187488289920537693420923995683817959782522996021254980226333513490737563637607579510137359018212651433711440560129405984367355496279806672774722125948657745209643540309608205093003285459140698399792807197051471726450598196516953564707781313407853842188484526566133240954489904059498035648870813238239637742339748897562346354765331784342128281921801403275844915880086305656971790094593978492808694312106692023629208609819748305953486689592951162649892044382750630945358002831616782114422190544562474300490160042509626559585153099011522454883214613946516292006818792701461376204574905751175788594361238847808362898330507181155043350520225833699965635137150887873726688183273547837127172544822608755678498173437392779003845399880696681019918341705527895561158254710027565447683934701564466354675544226688615957224902158923172883401459470479929698846204826255135812790205539976636218759798501230295725664654595115998831497402366198868946274583437043564663962668447086210830146366680839072054823888258504246493751586916913265954217434886072632576287081720482783646655908570805847710343777146250843773148411482710646465914367687793548353114321228666336927950229880769987247153400253688663410524913342182381788315826666332654291845699032606996222294545735090497945239136113441557253718951301337265764530756279462034979561322498489208725414129056326808033766632471111286354780709066984281532403207642099732536097011170221725957962073743393003385690998737650398533414527660647748177641089845568067182165309536847651429055970683394812277488968363540689367620157730373005976978380477417146189647250624501312694548833112222822703944126612085935852077858611898528977941146913725589840953934537845507258631285650151692102994036836194533036747596053835383489525120658142066883941287505659204521135020812320532052338625708390421660619523306930612219145644531840003135887181307747419898743235773067591156291836432401095700914278044930277962540826530536406775634855072437381659985731062028972880772795615579025310851435476436816952107814820145641664116129619705360168258154285869966947727079757208814469746513653459936569676617177927254708336311691146420654803493659803175878748028626126112584198649170371802473759894065500492443972482793661774873663935301785697464594858505234747672184458048557707066399352579278319347173721374106897020480377913170743353627562950830892406662412764545194883065765540006605648911621787699408186499754734419183032334260471290589616443662517671734705984172273898686804000287919846959280744934488631758159357967322280422784861724903399464901908531631955673506592759186500349511119749062481923681341407031620135482319783427973034586991799389006969344941414196601703373944453147583250417778573081151791313705268085855995387267331711788337893994706604774865810991603499142877226800063156791461403989524571586654231863233463128862166422169307887310420927900244226326821282757101646330856028728557777715166055194180787356259600034621680978138407322748796062195123349296560043084141231549066246478059432032137739166796085562528206347862125473004746217984823647010097791399608500329311264181308775464582426928914716423552321105511783424351724681744073257092212076072339234530931716326290624815512733439548588969187588587259812892479406665656711084576616873439860488800098263530461972162729983281867696118729878994040129617977369575919700619315264798243777757359132003693753557197449451305750284473917639718283925251746325989595568022478696174194122078099850686774323550416404693264249315481363097376642577453142856408868960137029172833828585628805158174293983830841724221050282429836654032663113534218291583214760794662447817511414238018482326189209668846448741557628960900444909576089751375413372971918244743549161040682509743786173848962471796417576633947771466044058635437369535029853209551492728042252735390754202044977531010842365762871599921859000810402377354690909243184172890223618104432611979800103734989326273336762736222882004082087093829979792375029436115438641460331394648756743502772308703613238641582421037321880549652228717691840051278739472771371559627430460104521493688571421378975714882083974653414080157495846098272931356124360919166089423678066656916399052219468498112955589172603453508334379521879546475287398870771576099296601922652227837765203638415709634849901581557256378710746657543787890767804305442724561211656298150837378252105489621014162988950231240825625033959066351856102875773463319527819331337964361710379100296690163567340686213689311080199109248641459872141700802036232025901547982448552596474377168122425543670928289492287481858821081462043753287634976050577756465843207551790491034356387936001663246902309356477431352550112453274509114512343385238193175323864223174248189128639902675051280353394476835195551786130117970269405005777597070142071756853792907420377833077766748313189714035756353894442290835008709855265112856139295304442170164493362788252771670342630399422033301707796625969179116000948765066874261596334954945166735132148401038232810343090348020523282557936820170702196714195251819278140972977345059865146723104545760575662190154325615582031294832695603198083210878819002949031214103843970440457729788808563455151231169067174161338303775203947923879683179457429105589539528995373153894340060124037619820407870974240391565819575934813438868646479082443501657315779963958708756208594391575163537054369724160652092272373651052102474009948142538511800506895767526754062784239825998900240242098436913717005378558810596055766748711735190504401720897580393004525296264542711469826234059044771097798432787530853523446976746974863875748505508530882591626708779852640921031373682859388280950850929675211644970237427398098473102832562059641398742458915637736888246765732807118899441898176668217682422198272524164509888483526983252829837152779652723660267799004245364827403233525800495907195995040025522224915799454729458875817460043407891504969761682013904295925655226303023646594527267313796079364328023263500034090425806576746796222465303276168573736481692608792930947445496201216887613103693202843193961522635915234256122264587851316662066587095610464360902144401755621982964350010330453307422968542819936834957560862003177037752547083622062701186027256980769363312337343414412574284521491547587339057767348835531029421477980579584074252413852567235976384785871832229316824554268120279605349121996054664761575736873658028766177124888381879595430307709687256048957392131522308091808042247939877382666143087319140952763017647669914896098111318151366763503293939055886267861752412864445675516181680047423222901851871406402392428192618678204588550140454498090463460231868142663546957551436851496996948921003224161713478870444639199440276287603513160999696949681314439613551691863439804207275667779758136390238185678607990771759852022428020286747005330928103160776600501522863523468352949725736870057845155895641614946131164968385191955583592573817706112125829618001563450031332667344700976908752567756448245228569094096473126173525460378635589431190657616476661783748706842887214390819667725882683045909976814867383204452694637882739591314357189310131733138073007229153567375116082127035373383977510792059722268134869305084675535811196006733452826497982203096862255391026657849259903920063742522616484660124662341703182402178014547648394592535810313720806280869432954319004532193233164380710865413356504215855629290670327905005354483414329567714231208336901448749794690461408865323146349789814751472480148372359810212690987994281704996225161219519499848645552139880476167723566984823260961458493310109748203100292452262101852867844381323566701924352722133418183117811389692564226527449568657240896804128182915115681148561950588166408018696793710949257728241717698024384203875922631720197143464550236293069056858169185529786326496284369492590236059296108049077974089930219844979573791824669889328313178377191623841921389890760228912476721507748559090590330072395863875417753138784233829678034992862225364525594034182326386903000790259248268282771017002129268958462621614930576111132389088576960641772299189947220074349995823851790921904999106586279974314129367032069263684704240751214323266559522512951169246210465344857530885213134475052289584648810271745481553670864992028176486977324159936825418755148717598921756165896898744502542137820343779094559227714115915347819941863684838758124464966291852616306475022249663336166888954958222191904087144484098512228984205312239132025269029672338470750831359123734366691513030842022820858258620139036278099919333606502289247446842099545295128791490536106830898648291789958011792670049912463754712912500078358915459369503455967318115034600738170992409905733826593878244828986732125039007639631702685722793532402353636818477858270294929062825045852024618779210748638126122744811229158156645583074084688768275010455360552693710902871918555889663918329127308906648101325525065587427416871762000390022896803855312068087745658867838657667459110758868137757095532181589769220337145039351537644141178901488314930874431097265207145388886989435358688301505442984485000252788417674955675340795471809974067304285963390054936515239004243863093619897506367808063623566591446134724821553735062346780084065969459708841910609810822710873978502499040162594582895000203939738668682093673318792483996771684954550061447030628665011194379893426934366437074876059494054535595141320733985455632432522891792793943287527543097110106482829799084615592377402614883746287664194273131051234362456813064819832034931033434617151573348512491977402787985337943704071751270043145238258539264524174210384558373122511028137325824264633733171357675222759847454679523659058619986161737658732871492779665928619426371111404106286700667695559653379270292157180366633040550426471080716258979469857271280029105168832205010655922699061553281314139341580616479710522845571149576139063251151029491076933990341439575631201089661655198103284998353887926058785886868029707782463845708498369667884457169937109748757766762723886364327489711664899687584926422787452035235431642677655185346381369282753397287144258249391858397492542838425388847336081222317765415589181931733206825135785876919349576805225674925219192193421021914172945165716422188709184562114336039403228955735299933632504126850244271736100938144415763490992219368112717536958024323537781731345867090434915941337797918629939460015003276294472742927136569745278765596894257762940574820748227932741151735356589605942148711604132549397830863711543890308134295451737628456317291338301312637341764000672714189330113063132448878387723776309562946604905290752647974880330680077403554435872218361636013662203272771476283672627993245452257785600885904403946967328263071628934542215806432896197293848745993284620060587701681722308700647101834761897210639942196617118264900826350422616062085771349965597744391794350364158772793616278369312819963929474519125924361796709579913142595978609866284531289811355698528144545032151750982151476429601384098660052804121714639916189234999646539485659324242359358950715701113680485100969353555866773480769520445230053627988337738756086896627895845285467010868330017387433047203616493798814939109766516062526327068936461130011281712349594044767708469714827755337832641274994980109258032156975155534449315812199067894657954210070855416312477978226456239912408501640411945726938525496780903346992743709940980023750710054267170594834062691263177263022202305526177399311670062969667168982086624352403234119073358876909395289924792172712130577809908806921106598690032687460591468308737961692513600518814151581895932208430589189666595311847048572196998172401458502592400852796196467019985551974441031945803038068620174514798135407196032660171732178232690037338604088262823803790370776905660607153113196107771264904394560474915816087017453053864477373601724372811254754544228575422064884250393539197036083064102179350478379125348497510246899010775980391144926438911018350299727297520356051152270920855246780788122992227951380422918306917008831441344649464611494384976842317991154332124936643638095858186794206350521865403757088364697089782996131070048162962109692820314191428842419000129587731809907026220443317760062898197071453991900909408253138685847335252853455558191090902577581404814893511952282690310803785164329484779917525751468011995356410927477220204078417071413299024221090672368718681380866199932098209404356886158498155007789059976686110090070950005569312816159563219914876531724513816451360870050864732896581263374157845211850683402890126061357954165233004495985877086638005638485557579760000819798468479548482857455356570947661207256081336610358345300797286800240849396781193142414409120133277626237070543569923900990458399073695848386534653084441271717257758095889281812427898083204771494708005943605571612212449754406919309667762636176811023903927032532604306408386701546980117476382311343652280675177117494413722763443576140759097971695685408124886949999210869327363249426262190351957478854178241401529916484337179231168409333330166577594637212742441914489665663946339800162172163629827479881128373252886554345166886115866981463382862227409598770550853319332358348319104519464675639528795658554005003024954564231911401602751769381570084415658558909090901805196051040751647981736595516638893843074606126036122145905318051541810252707674692123911689375725064975521988207973084182254373976270393287373776231523870525627235377362197336424144385994783315943816971003423471962684822030290466169031431258490130873061247532046508016430584404880733328698885860660449892441199214498300130958314117741953564339105842000248875082793088262503749208006357420630967799351581613709063788585858105924876936371121403753385044605040819463609702179789709549589310384260990644508933052868107409370561635153370519856707002708776921537533532854137613536262012935844996368508901285427907051317945997390917526254683906400713565967205114745206563098830246368362034064927410567135122345426095609139785310965377330015835488103730349929213063585079764131930561901048133247008619518893513069898094585434240743636934719118448499012166790723795057508101032392450716224330088745636525390461951238779646632084666408066723448560746366165774446897134614945697066656012412786911894161586586889546777792855691131264392925815077786405499764335044550978116631003238354238014312136590387437245573872476880144611534895354884479039475128266239437247950801751757670192858447996962360170295239780619325758646040215606810067969890537248133047075058657148725971582434916213856476755156075438702191984421582885729446835817912249245793380901233594750026939621118090921465454641134399627199680978992771732822212623282121932289284590858306907713719760146804584828232114516677582303055682351490588890187759742037398973707693494955593150483370380413925760757512074467738609029990572911218122230264079393799466159884028066769066096959998519222237269749883354920094557083646341252713581715567816223819087553580153029787974961293154791464428155243870950259615461489851453099639189427178511226090569808872134050219380367995883000357907319171967986672155528531867451720359715307185454386658865589321985842238685851621902121579158051485821456234580717253564234650695655974873006907503638663597971478076181064092534048878389463249992761391631733193193405526433173412490334809980356515777453355385414949888486421387487326268788952022844679552722079843328745124354050926438795770918624549501300983869658987959854988026607818027450382945354656935898022274073463888031812186969510132102061134064542732696247728224556013199469063500772457887396423501208979558320579576412598957643803345506235012171949087843116507746457517099624149196400674690039865769706235650604714723090179433712142684350898430444158835949508867956409568082075929488382438915731034706865476834090688952310212151167824423974380342755887896145742559543850939656509664000399565381550362181873787577845218529117704940785254529494522638171739732024277676964602633926450796878563198949896538577851799855871954716121264786563947157561848350701570333327573090110914014590514175935514152741047488560425856329364390870864539899643563563670145890529605339235377911650387634845862911235888045447027315609189998134541969392418568853680039306448578635332998378040481847357842718013507616194547298917758163295040659773969798884067623014324997367644615931509258803080162790132964916924534550271024517079149166085794265962082084917902277551749769207824301447331767942333925651183655302228719763676922883709029693318335537023523844961711084850702449535919840948836682869066922385532445293526697714356147332720506311875673358533192306239091966434278254728434404949583406202580278372880655611112534087171322997518013655999470150868244315008353077219924435690388379407119965903301320402838933025943219354003451417848907275866769293123982500093364509772950422599896029493010997832014976027409702098397120245567281852264548657555955425847291122780749142261309864012899174736070634440742966231970508666878475849085140550685251833894157937227265529135094971786680094209155461296493406657066931138651270831448102958450449408546913758494308391521421893922383546961677863415776089909403006790154902861554548350810590222048175969450545705773795651622598935186294767577859528240425801468367263159123915142076292897782595879973744414034097676038606775698114839589031522425873390669572355346093761069046043066933199744987065639049842853778411383386491190847904234091627455064343364448390684554170834751207305374401225180521518714562722532143587993427955659134664726426804629873877831127247198392556249482921540587350675356565035117569590950661552623390759027645280029823680753207127671741929871021608692478383903167103318945605172867507125561941323378189982141310143685226580188292756592192222606003811187221295844568365188125713530335892245559506296012465658537088860214246485503108624979797098850537270953000797236784892556403021228451223168606205201446790873323237187169451986657252057565461865728382648439932724202542461925002844601635974226115848117879698427853689764347401145264349283318685712123271576015259851653545442058601737866160412745175256581639695486693653665149759479127985924177364120079896776826087183500637313078573966800274107523502127922676800779111785998830218511429246113671270976175023781647248990994792978630554178129158658100647324678658848512140350568030345955360683456896024895623295966234180875202990899248757990603128640296070858884085539274397662213018060932362765664228183417339048389907354657454186221350622718716759134427627171747467516460577040130111368473635376178912754888890389939650940489715073057661971280810788162936915560104636933551556035445950337034919495676935501114780995352835078523141814013692917575562838630316926426668362014496825474744000509994389704488358263933602699399823139419527489633283343767358940760826845287219728206261025225419779355478598307034175165574836421118674065472156174932927434841775817172417449916621792482381251682229288256001190907743930989853597786265670520992572437571654286284899276830147368504620148101015330992543169936180802006421576519480362714771931734094316217680646086631050075393105225895870758552192253847470989346239861179234038777704150774734440675766637999161389652348004220578424452193762053732226388395692360047751231246630609597458554268572315282328012727277312706850128671799603858015560819655553680396334176803843134800913248682167177470367989216682105946384645624691527445035879939348010818617352111925062929085412658583766610942119312054702443478722621111087323960040212275330213174992308468320977764474986711732322464679093584948372117063422694556079313367114051872691860503585452413045455074470052915126315083342300418444840422579068179013134200426631619151365948043659392923715243570504067195329504165251382292314590553431929892839940776449719021141125255152693304495896185836352296461914198833051291048035300482916182641756595226455086218729283463927516480610787822780062538394090816740802064752611974925264470839419039941428504164318621986240221038069875283843886631148437519167342293876681502016859564885475208005624070332710053285473774708272182489389386124044833446130063824481780567239891837133096310476613317410624581702382718669064594106202578780585839374976480433082514915334671755189272264335356472947248587978202947375285466550806500105014678386479919524977666964765471171850522597963463343453327681350106286163093909341828446286159025568073545476068725316717562329946256746338849518272134416165758262195964519567347475647943304233487107213186623292510005174451420155161051766784246836173315023366789083661325920027079116503475000560993183677969155405804406004692700592664639326354861756075151830656186464462409434815834284486759979266269261467697790532888417241085310227915107372756424045064530451224987015088666630804527644798514530392602136485595590400289202915269691066145548069615557447372415756720761907888911433459669311972314694123552238063026946047476577911019112625819560310470915977295266238652036805394386875362205162439386924514306049316278125237696368135762736371069433312757390198343764812319707210051118613634837537742228066135236266658398993622219498670454937294112815511012106944724611209440216415818865547399190410059405259772736708009061551190851022300402853579708747457237935852896055839712409760802104934700075216991645654341965301564181616565734605338147223404378827725130768442864892176230924809317163710490294597471446659390480922433563902660333169831871438475063979721624845679533704924110751375848541663355229996355231581790988774098512070821399121659620258448265360730370365179091950117475670129747251325086703527170851547005334255621381919938455641843487289701549590236738966422316097680158344622164056989946614544520703102465909180358095189742325497027796682279365923395584569140159941773531607916243844049747791063354947536842246205451217641750857414066507836935958002398441453660836766926607026117462473817283745585739631204230565414251093145114452698257313586823805309559661818819863595346214123285937071502121963242106607695122554178699227919295440803237449330790039841947951286639525031049716462714394281942655936124290175304020891657485628988549633603586575734833659506637065478633109902586523014403902650530596336503612836912282293197892472677284864542045856969011189306973634698808290828888126922944971703048363900068885486520464268309371335764865949060499778466908021463814873741390556692791781600417767997349739975949629389961937978591973152425199538435698417799393712925048620585232081788317368055968664086215137898749614717998704575389836479359663915765252535807248906282055508827376708349335086898192367397543023697114246241310120248804623319171472382378026204484371463776816149359781722467632283624315907281565744867776924928903977565554258694912787518237344936711509720350995325975008725864005957039367367789152315150482730630989838877616033644256706580116316787620986982534930214888596381689183996326835823255854920567103067046664515801811692335290774207689554919811914797656203894133681111516740930755470752015835330162071055075235273235872358787330468346348878107347574022873568959927504937025767778214946840284182247651042493771571455037522120650958428281088205654149436483386345910304720365213176544946262817796748077669540919279549122124994039007151641297814072077999308427910817937566713560266779377740712154085961582002430544937351220828940664832415469739378533159684085321108758536496593357937048951824249213752576813303937760079034381975013216200773202946999836345190025229012595315687680677724453224701439776256658435717819101275737300535081426874066837732243111129555983886832649981408402904494764236027134172166446691191969312751730584806016702038756328698022129040340829682835267628057036114691857319342192752749993366749110165761686790246073006913651104053252924345856910385564563696028144465816316060361783989065981236026487139814322856340549967713147974087851713912263508672211743382237328908554632738417880153655070267672749191789484419248912436893536152010644048675927697628789024653836753066612261474575168438915411334135413686734393837510951377536496913714057242977107918835047899138687059884192940988705380002621701487646447008709732225476052528027732000293515064884749018036775097509434234830415577602586461124812873661163735352428831241104741205657944787167556334672977599568547132990706050726233146264062168635829274711408052200642257126379514179099122213986011538964201154691915659091874579811910205673513197882905740545458262214158512498242717327468100240456530832899013756509050951802572176313823311267692733789513874870755452745690896070975891977300808699395159590300075905250358779705878564059280002472226947881936251066547300989918126079422807077041585127932179396506237906146972119237538726963677263167475111960248775035867963710415408923520853444412343483775904632732745908898077207067928806255769701554462294737749016199000536864244106296746870402325850913823437275118505297835464247722149388571191116544177661365972731946427617164007773777977244679045794575960786433988647619902453534442244800241892467547546227518188337980150510012356807143821599253448512949860933278441941866094405087955748090814111950703986070982233071664064035252059927670455983885836965847230850133321786444811973854235689823567519081608762358967523058104675881523484730637042023414794538886267415195890276511047347093277404421764080396955743464627353861948677072449581338046511623051383025943375668071829823012261490658742329012092228404646370222696641614824690250155309739397197384437483794907772153883466324560097549665058104276168226955756795819393195971448952671346357432873522545490973610427113039389204576439660095316343710628907089153702773036160103941367925539500108454657438292338928913789910932832307429142070732405188645862623267971734792506517765870652572656881159391929269308550304129580473348876623319381443213420007276115758206889507364875627392470820154789315743464496985126847652341279896424483115856122112897229669453933983804328608735426520179498743556618341180459175485723829057459154448768866152169990298269505089132245734322800607613687438822403075547593057916051966143241439216102063855878783817847131122693872277027693614117981511845126470369893512552937128148497420605676311692461994339873090936362345974030334059295345083306746411075130906048209384718364705369569962202535657625149241307888236180097699959134976815554118840603435394202258165159874404782932054383409928056450292567768778028847857043127734168071237674908797701398200489500117202486250279613452034206485500083238399927035578266054674745199839680824469997744210923731141177154425124280401842846259014759540730071041406393213179675035280243519214166764695708139679621935174930877162894370661956752960598562520671504521750065005034116050909148710511962916342075535542037152614497164866400828502874491392202461077543244270916320373008030924313822867575757034497953805495917376040345772897315260106372681427921625268379697384534299959637395411134678334512650463430773772171913680102730804054590243872780410638251384965466326279862194442906819606415806612352548276503436637381783962296460017180495282899455547848143118886835012785743340220190163061827411879219444076523062671351848257179487480610909008280122119838083128376298034602785379453463567635703891130195058656177326692684851965260396957357804158651994360753111558165946789893344804530577132035009313418861395053787733320209901667678712656711789290035133429010843801966525805629833923287040580892329585586327716207888163673319877281748001821797830942047395201903707300493193280056157666574845533188572560515382118047706745485603469104025465233688730675170142274323448188910430076806043396555657112078289887406462895038949989520278764820517431606146415451438808328287584366431711791949806381110623099141568350567390064166451340173115586683912632330646692131570755164058840767496277331483318452447545323134924078451787680725337477527138901608809182291899746878686434578671633328414605685101173345723223465399965049973480068489432721134825300420950236647785337827613269574892465697798802023651897562245042379340804776285679939228807984484415663980831866018734839555610426756544680423597409744146897861770233313935532941027803796949211197523622406671060484245675711615012866443181366548044229824919538271666662249919110249258160159703935434503149043060195893261026609374760939708490535670841117178325142893944115922815557549486820671149878829388790876798252500790484738569942249788940789714788522201173883617937030243856075368929053046774015714099493283305054919422449600137943775901920468466692145148870704147041168003136957564911572759618854633042448878153886888100701109873171786133546240502897305340446969174866409415271167514850016408714245130661430485163203565520419800217010125462959119536989838496003166054574993806544486399225076395611029173217537995216739140543138773590685698954034009903292069788596959102492610411808284581984734328287766187724612070466150555937868097537604004603442273970363636297661415567219556838734739225371335144737477551123180352136829820089704000658016245641276523864309322682067313942772838178244686194013635568238026025390347169885955350834278222576886357257473693917617897739723462506637195576345833443030217878704667132460076844431604125581489133291890263647450445263142073389559150944705937848575964286258846146695564162603846021045373833732374019341754466667545172393997798007644181406546431663368101982482752681862123201417666118522990683071423610640962309931338057941647762939882209859469015152975879470006666766745861322971526534157876394753349350355733689135310859830731220596285553620002462126877181317190949529950770398725295283667660958188405319278324476795547858963522587912643578120992645412481173131141995816695912774173789668616963075593395263593078216012215132963860501279296902255062914903984111085454265087965658989307567589731160383737110004482430144835963804711180999129977396089391043861616600316641818684585837712157283139658826033640018663552271091347163165191643763279190522385994178147157641354837055918672185797976205535427303103931966309841664746405143595738223932236971622998321449434218164724021720245663628170934992363527528183814309933447107510557469892610316144027614307098064202994798562138337730645144714124562610533545293598864109598897064950981284001296770665738952516617511018096653210836582161450802866560861574247919608149738644785441481158489588363254028978624716136433874428093829977118265424405276671264586459676908025210190970101581051875374675518733256112706198041670588519621411045636771268640586298335094522831249573683061287205443435259780765476014200541379218814873814100051379643567299360557621218421015215928170602097066426611018989203809878272905643876744587380280032763540697540758511555552160002637838762927295208001475358201814528695917805040101104824857028924489987679596787958231102665630873661485108448203627655471940960007582935612819365983522646348939671085107447042763882430686205769167695572150742826188977834518072250546799651311468996133536063687016869030330842754190131325428417397148795127403188228423650843712922635832775103608316027717906147438932992573247860288258398181597216725410412966203612599310110643473794134955440850951373364231072031232363397263319104350361830873674246529875792536950927617168120625864157844060600993745987305178799269684502356922403302211329311920377986848465918828540136889198862460583811269813873493249187614000261441231285548317979622146688052294016997806760209144444519823359719791853841434987368852410287324850677432588183855316868944678320416418089560725105966456784835597386353970686108249620633059644855589955374588882632088898654624648455272172944025612485756890373306699592159114393521415972960697817418932399089636222910608154130129134743934849679428711592775915986463743568012287062650986011134582401607816553124537761868261129543370686678043269839262827098763486246147154214522861484740794960741669409987810810189642606899347216255190564421906077589803236511514869415713920369789376729636222260071067851194254633977214812719210130753588489831374692510577091309375781850056241603973224798144310150776173612372802263731117874546464080958308812766154774707058469728039713864486851322065230595635693652967909120196471875234713550915665300753246444665230742524550031792876188420602123583022613102894042958016557765256748114739511440970783991976213657140047552564787817075922165687821098431734520427682301662359061219737268825162311044949727970137774973358895229114449126021147072605642187187332257234667379252662581249426543848584651380644674156572067777119512379107757416698173277159883171223006615370360025204278746359764402772257283333391642288988271910942205387010703042500634723308931103341211082755015850621048255460057810147134368519189132824142412926044666249824444327291119878608483749043692931079531575059312106918024553297243945008668947452452372242696107812334701160102284238677248451461337656317146220150811740810600493950804272833454842896613498672182983963393078095673920784675899603274610032293969222983830526100718239663344887371182810290012924019296901805315862456527874851563494772715575539644113423085614500225667973974561948283931383154630290100892894949134060906021981242276905100456748829948102953806038438747707436477015966005157810991507548696763519270409958621682221853593555496089105279236963468302767931181565077903557202316482550218675739098733660407677964683140054545851868244756108098346388209268982485611554071967075091775716623844481302485327450761324738276724040988057932950206180786631843717012694155874311502853399587139018859769692381490388566105740180392417301161262586398754553024990213899451263653980354571075358934204778237397919725980535500033656689218927530566064036380335674112026403978428641101590561279837280229065194659801045717873196629225009270514684202448231427388032074495565086161361432795089888244265964881272390015496511587113112401108443148065710660501954743954681512349945483913384784256072986385853035245232034030336571318579846590942382958706343346736738219374500186561965668158662635332162440706744128877029618263755926265350357004515063365100601546100655437067988071099674513100236255690670595154651000429642233991670424586996954848110682045866486045665994723217149146366234979458504228753263638881993984094933198321966684397825828932782162477758050944012802689111987589815758970236468241459890120005524388697712184835505566608206880566870971461460947819199676867631675327794109935468502979489487451695436437701029859700204772557202446606648672305106643836468760478761329426620862289203409822248526440796567543575195268903628244020701300250275313356115834708608751454184793246638428290062850616560958540182854676550519358231308465291857386306239519422573667560336315462000285811658234756649988169971157163308531411299097132373224517706648384928877320448479635640005856155160578939584594051370601227443332217309649230831111384871027654994967233279704784172071152418987345151881251479078584805267922876750669393103339218114421717096825406834623599851950004447765557449431586550181077872653560641036552504143362265970386423539438569629257382738417183072241472357335108875411823551911060060689649732357292359127029851916001088980274140889045603136371222056306468545095916969430024273884967411455981194294413083327259208105311836749493678725834678920818253787167477692689845921334611768131505443185391199342805039582000827122363819448959386832033874911733433441880927970379402293865123027226704840773314842923631403933569686260850168746013872420432615208475437171844795205751902089733909551684690244377222743626378201988702521396404281692646209672387965274033145897736363530433071612583633462407771205934301808579668966126376259216930278948170368019334426580459753980237669863702605037324281863643764705776960588831810890562528723849453473475435036242433411891636074043248713609095554948004684614224505107191806377034176297037807257764997759662920840546161969562547245891585114137943426389460731198060960503931930595657237984765336804727494302834662261679633824379731290164289190160596987576381958901139518218710601296918747145296649430839379323318012841175826677288695960232060802223354050417903885089738678439986814554784792145507076876322666917392410407334991800721270444417436890076425108973597521893601307227552421346429958467154101560237205846074907298905724704972039212737816024308437099060842209598562917002339565973007506355777235895014411624799529836438480784054877503484329326621078567894802441126306126952451831844803799830867835002731951107681128484021114717305739411373309938251529476425073089072966356046484863224243882641430531264612816555425763445093161965955163790494492328704617013452988251723846286933634659334086775051674591819181353903818970880114810029105076849359484644985071231524174216765680254858606090724600076301209777422650022826366075246269746104560808842135963938709407331857203247287008390524922032230753984649176722198617120548042425580039366066969612149401310802490457009291599259558663269891240232923568508093688532991268592696857798246092849251423161436671176904313476497414542468339202142160343938696970733381166213377796666815112158184159179481878970937630328017849600827989483529008432760812310348074759482134401701301885378872043418798085133386061905596074228179309832489214160094162687428995219547613853655574372694559937143151382052302721133515276249177846250914629628061531181717799332514190330373743389604807038828558773088908918886307445329787397028211723771477903171010572481302780065691259600114117559221676194281314261813106187805857744330100474992060404434051346751550188370599299942511753107043488611982273340276017076641573728162545572832221968082832564616070028961617864103709370409688009952630642212874172754259987518215218491595842637920150488013546385127181033416182807132396304769299327960286468014734435069251299025259748580603487605968293657971823438506068225868628631214379817631331687608677101613134379980045299013997153545983339244623327839317825655984061733649560968882035568451269213308389174772562803225669668612251208431318571933960675981277866103503699816337632272759742128251223847571789235266473517676296355479522550753123567390184356807421684052537551730552649113842201070899634904495908813973824951913084433702629316531382329509592455069593397891135320814610170678416390359099111324691507269786374500771315841694716348155712463367545701664704074739926510366187076329261917553775261053031555857902839128751148599472394537789764893956656503501810632629027489144509240283144849368855397699657367886696190607942320074350427761812301633099776360238869536534206144783805502965828261921994877275308570615529878786825941479004588988365027043141754441633908785583322705119017096290631370697272695567701696696567210090753109527250090283568939071780744408759232593081727507214275968782398820560973551176943176988308829971912909834981423530920934453099788483973650901522130989065155493155452727597587474046882299041387394396918190114864668154905894118297632119396634075362822464233493058702502278348937391589430711997311109221896478996529189599361712162604073662460959469704112762025868141079955570575149111063571713504657739995005774033371266364481508369870460210856283863625236047823510977098507815063715893691666552646294567819930096762176645385500456444850345039532027305014480845747224348908383887479406410678842771244699351508257056424459809240702996763665927744791021356773931077034825945910639824330272563381384554041240658852302029382404246528303079117771877842839933750323980480167348014835216657958759133319861564979132529095088816842705207844965473048805045410858997579700326624754629787979664437562051125008005878734687306165759022716570911908944465644959959410616709926374097637910789428695424609716868803742157496948743429721313440322611413481410277037007455575857431437739166094391417921015898411069481022702729115987571200850102222382934981208311975195178795089204551180528683243705488588792507933630673238990874164548458879446860494899708779110579907253634105908209981333273238131950218344467022265081633787564432052596444997173789190572339419373570745330196670120004722716458152237516448704813259141708783735481109954068229519185198339722890091025173241577671832880475604217728768681587152112770961527966847426362782129193410948001815905328170491845767481336247494974101586187981301118554100281768341340774205599983218085784377391250529944691566031331800705212792052470497504319029758253752599586660420129117300770036553509585174241763494662187098550438127833502274830575562861095645309105328062280392723043976576996320765254522371379299909890913180088555453102525447219653088675200276492423401014672500146340375404686571756764013650755764629707933950900384705458055665871803475466977186264631651910445462383192260752594757852015345778365056787413533439387905934158388208284287362318354135010092427676869268077042913533061437965119352809788126160626486061311560605479047467336234868463901932895148699786226247548432878397831984310841360881393584289892487322199629866279843389029310358005777182884748525536129966352066665580463645726355311353629808182891528860153766397414864525102257808395457947929934866747340155646885364553337714483138118069628938965246295742923429459978446799559730069572767132736000914639403958558310292657350382343108670362194666640894564860538898155717125990087696715551417317870381570962710699858038532902600959096392810406028881020401423301766970587184320283453961204638894547133543641753009751152011293178703472626599308762377531511736186042629114606623843847378312548703296213033246767211230412683590404008470044968853703812193234109247326822740043089136951817025701222978660819206761833816175526369845821662096720545170604224756237067818418012513297287000085150920345582250302644917105391741419107204969800372031114641773333903481317669384748319338374413947847568673338275317413012292987274762698797642808154559802065604125848758439130588763638599384548435778938569537926313054488362903012206584781050944662513875597749058869637115225886452240161429555220063688065465195334459060836423390000773790055487423392863233492639798583140907485955631900605104278519484294387450599774913621680529772118203971290778345334803163298546464873072785469063469425262679832863805023972276280531829782631852560553321879316918809583508231374299724362276484815818651064556128214663392384728570088776489532550038201539749824778456127709604876597458167072535553176268458698327879369967172235885206988156040833066561647781362325918802512506571403323408269096241265563653142860936947824116054254559716491162690991094720860460696169002200962606611761637405330845733752933445170804607696093856018260093649053793953133114672603891796087227127776618338995075478088246441137716857495036063448348711014334967057692536794201004431505360118448978126694219820122358036807564624907774006343737108275078777962873627332695477407531708339142669245010598607587682854876488570330511149974342476984116160538611028583586600351742784743817338095907248587115831174100859724740982902864365899148115213672447143172937165679239899514997588206361285590074912711856070315255700857546374876352400579835173390083500190547781788529437400613272806193946371289445229689009841727713692138889313680206259635354548984235648936711689715706577781868777641345505608284747165001770047507670452170212696980150444345781605987655307640212910325810339684610375358384215713107691605445848814460070382382112941094847087288065182806614464559706989909186489373525157035660087842274882836011346559688995996988190950566866979254775848835863096620533934927381965785050403082540967938685020614840561418213848534568648978010130410285226643745793104745385215761885477142324764121537786115608772182282353058848779469127608626401758265878338256071213979241526276691917855996558085747948345319797360048369380342672443059757738635602116372972039788872475367785355661097282761701656421749434181975984334584318418210834514390139360029731737115448135523421273731643178241309127908373853516808453733207111331651324985214344450136132421408237564800534932371112288649847637969044397236450796280927174676954798019034603965424439491042861293735334055060116547229128222781710001612795780434943783240822598957109229106506688319614926224462508682608813169899167252698052300411864944430422449342329572534033623841999729483484641766219781041362677515083818224539961878565529237245026597497259525872029555791915671794760381845506132988369438075369190902164804641910736964436046825634400179102420496564998504608721204236202267667983751226631533363695619622357105835825463135846810360485539921038185674559264266283806061227068038050734306022415799953924647546026335392573863536863898376677814293229413283326947171280448265047976357374519174243264119251481543534065582643195695347172000573670027161220198386262389441042889687006938275067045964488136041698617566520285407342886743949379340875200452349729397490675016971155145173418150113338307045764302949842303034043460641737346050721830875794381932887419324012802915752651060775664604542236672919380008518117993193198393832070138187344823133310635387883201738817252276526541488458581950454889381507710338608563719966071579045350704670213976648826611978894474669824370653909057636686173301508484205518925130644417773977421898157309744382087520410175556206864384483719994503692432954372583439109673830946417542980598359957934647298706292534287171577017142043856889268284553084752452011378686445246819179173251471981316835397722879258068717310890475823205686351876333553111807720239791499683763342404974852623506190443878309890343411301698171489067973255165641555657090375174316038319043801579108615376282514439864346253205079175317750294177695508980565579980592086480258428174769002572334945663074234990267410973150233017808379977647586394092621749939719206312106347421342547118241684274286293911231821743932169686171021130757103202518944327101623839493392058849820817189960326042489078733771951052529823688612672892896409405987003093654666292401425730680827990351843720351581669867921772300997786182624354010396289818821633874033510138886945551857712085613491768806057946391338985366449317951325557147021919211489400780060754249993662705979827703463506897011069655593138083289852570439833666119831491537261564416797721737830247091902433486785215482665355333794524248005455989437261929039100821481850412379871812058481173829253419666319693427965262746637838795364372136285767773493849158272608019447868819916016800186083066949658468361521538022766025824283753449136720889326382300426441709612816508448238760379257247134633501710375533396654745984637358439820945772455155250484667198526071539763592058629851343148955485977590098390932733162080783106749722853921801541404432240640765327208326778219644284765590193558347643575336149891877782278715975987062980082213015947228130533941513574765594804945772710946821913826292249992417029463943998214671968140819876158776677784091995570792688180545150485041209789812683938430354111225203274211490383922871648957888523759474087483247859992393896262238614857694436008531442372542813284501087029401123210348692580322059494845983901334274179078964951910967525492006337393385507299261333718134733587028113960709490536997091146071485560398335866068559309655885535345996655705885043419735138221197651936719896100963991051958172659679089684822722263211875681570814063637211458405406733842188545954436264643107188398769192896273875859920753908620763085161848287830557966731742102227419955518405119079698563924598501963906269105070879031554632146529526664545915248631890084211356460937551333772861031721385572467041842704504183327318373343747989301293931131454705434374486645291828855013144757900991784708403565901504080190164527027411275313058989555144891995231836992126830589915992319703540439741308114308424170444657802414199706896885780650637835439356638069873755877251276155223577967154514834192756332874259917585362742044647586193225342264370510083036398749335543501017312283389813813445672149116255161860334180658478925948031491395851393143181382788881211521753384435322411418869974208289638881162499804750754499382540137357835814615409533288345569384290261999483466129315417765435185192355459447257421196391175261384293126156705925199262893617843739337685811427154949018188046634971995418151956441231089709497707482852343417167986069427735485156196503987524604363442119707889909942402234568275022481354035220530401863073301387805397105508742909020159672994685305184083017828771385853322424265083686815662895790253975752584143479709785750072465066639269066336711666859078896313308085922498437443386026800763760683647076030901641036784560401677367493642850674335928757014755883091870833079770645055821473557274526435050062195442062348906144603475330822116476407402837977603517990409290638389287991279584788693295166069770858437587674802853726384991536715383422048129956349632001615094297583289914346413130026828537176346967448052935404793089726305164264373007647079157613249255399018647560694664336946009477830291335662235977792726279325065149536293988696099369613529149974430427488667127509579358690320211538601331258343045776039561227953892128986958683946495771799686326713669243654356653417473504278002402263631146662963156580963849803215113246843610072902155040558796005987926170370445166152405054520793068067027940142264685827157276011136399861769106827622355423737772369691408789955653050430927331890904056294155541150998659091317862667692929013173165494389927547442060648638181142526521924716087532472154551052877620682166116247741019734826026090604668179293514955509177228359674519051047355568430517879426403126374775253202299637902403932036604963903881098034174674063343408358595048452011669103135311420870957788860960282046841376167805983249336587609272277510523787892784278129364858315819896346815854824125845966612752575660904647360860235278051161105480308227017646077826867829689880829311189898550019120992178036921507286602743389419909256810038257753757295193806811352046131814187664842555928495752661969455608041344843127016887232961464458252626740088895699845896260740909489746315139866838998755027745892708342377394007366726344878779476048284516235514414191704786639729672045833342264770220861522020349627037282554842778733890761571004071428632929036194527520457802301542462061651044829082327491229070162910215069090157164894600302008083964616461767233702723349539297983527822474910696764528649811527072154966810129807920392413544830892859632738872549364445222220194751117381748358046472909250857729381505251415226400368026514317473006187811326776422064853771863003486088420806981966751754469115635479163947412872736840476893512593610799521909833240726320011017111901076948553542288235214141828828488527970998436904568280039216755687777553886910402934865106351935111335956425133934858724796102237890322923342893537863741169671231094751301629881088563091101371325707770372521627543929941272243484604416884254480690897596660854516002010897849408617073055987717585559311699625665415259613789285708906716844173948565639356702287173775179192781800766749379229357585240351475137088864064530294015391103812625878317982233748784602707079064824401787816812661835893514777187994161521784860956968317986766975170901555963458840844209796493528978583790810305515839971227330898677505053150939101733841595136297104944285041599868584162776970180260637046045368571216234968166088368336951005669817454396387310170691791336967665575504470136735784886345608222343270841474788223594398243251379797848394675946077393493799350164286193268550224730084900990728227779612245590749258994123390542205213984339709822623821479181166770452608142772187811205751321025056739931352933681117922275836534212406552485889749733540080923463137581410052450223252576434398548434615743744166603967492922079041832804842868935911117753498465898344259381963601522509471197022737656293911896526745151800307966378611630866733353033645010337919541547196581982677235452114833265123522026700992583668123731505368334561877829069047337885456539682056879896264073790804431004455803283340914381758545052637041728066518887762316850449824054912965512491788485908807055136362616140832565544970345955161083832655414094963507253670988470526295822031717210669990729425996076694285039151063749259733946357463715156470761422385246121524201947738029230744409757223098561549873486612245808147570678815509725373018463828074815018187810475448537958727387886245583938426324682739464984711407959101269591902313791717923334815098484245701422080943656258874276076118739869228327075128103059493777526004428987428907948961832593349697149750608259967344607963969366948150942333762629858376878152934784849626742922973779493871716412998565686154788539596202783444789743750692997940147267652491474244822462529170183456912972077119591566815052556531379359102751964420871283657859464210704616393381513526307528329851613637681016604452933807030272110807568994757770619208659940510600261662693905208503407114606545724001262542692705691441559733380574399060409233682285360446497910627054063046320936560499376895679826522550463794626140106122755498511516327000876040275975912973313961540326731422194186304172723527919742840436430788762934933715172036016917325499942096129249855714243020503197463657813318751422825980581471992579586244955106110133036911084908063671358054831152874483569146063298836363106977055571245578328672567034611003673468151655861446519765100509699874596313656683805407598716928793871929341981188199492388400124183222027897319410168027101965760854945545610519415776107607472778982578932673598358750314100546561753370229158645674547535216455071862156855710849940259024618660500778445616183642676253641381932741674493256243636655128530329410457437305306575291450696428704686299580785118005809632434461895346197000091894488477827595971756523741248046266039648339381308878019860452882170462428543011632754267676620341492504198757052144298561139080969222575837705459736592484854411128331342517466339535375238164658153929484096110283277670216813299665602889918493445671126289236389193174905303357375434041588155620182707306699210424210447072973468476786715999501707484276066356061690994783017938082371767274779594862859361786718284771874171044259278146808815242978770088405176318214000019987346090499202765565125840676016672354908661979562010437179005403402761436648529210752686145945595120030258039014701994276793769196245147757233681964280232820457918050403919555419359193727401592766524932690119934208357761247707677728875004032049340236786969804957046624824436420077490413617720272454624727848831111228301705977486660290192301024930347370574055333537395745335206240132384290246428728122686572212460866209043643876929274660497341710016916478635899856875701783864232346590383463384039486772779349634064491567362578663124372968936313663953180272114269477635533921983211294704348254908624212220854882706880580650391875653352133530224521512745145251139864404217650115693582495680938672267703862570994105937360299336902009230253852331423188464173512954380203904941616223073708733029469189810302894248990617855609463325601359556449650725728849112300238955181501623706140880402327654218799238460487375595517614331168067523905725008403234962679967719207980918509044890768632708905577560632067072238710071319758109416447684804753281659098237011172298623635931806706783915554895648718366926906896804605403518595257090519034528803127338720810377164180465168227168536892027364619036989291008081853731451965508828306817680906954024488540126764517903967748360864652345568713167330891159559220608994323686103379128019542878393517420255531109063760289467624293469416896013942080453345498889504988250545446437203996645399103752035233610308039416094303920374058563895911004547413174690598694127730630758313938470863837468848678638626755109302658292170083054505244233035337068785363511046906229062213932753689504550590043306823125345073254701718640300747459833611769050157479107217061361628936604762105019056934927674795842346449415576455631400012453702105703945813834659814881391462538035137476528672325434538074314337321061146458975484130773139665754730928837547640021696530958254932281984310693364950231595729172140256959792394494866120713256070738517519490125526340291072996415700606349131318981176847290792932624702683135651523558488137738576977800399574706219348847522604040314706859648791552996148972472290800512537663868765442640883926312823239393394282776314948922674114156864381745892643973161464650278189215026136476342619787410635406670208232865560804775800064098402229086838328646207193572871707715910444309535555750558717825106888756745277373432590108821196640192250805718107822817582643837202244973000502465117350198828701511025024488558647699611298371479752782558014337337589898103475380443938299928840620067676952276713261626101951709756573426071018643044520624479312095029926516012831905329233233489612008972822434909687656658935021505921316251207202996626312782603733327958620940842289265172510044523354792665052761870462249514585887605965703883861729418619926618892856474462932914098403291360264170781170524536435532076553228299060406798152897789971523476536737600113858323758475183911280657682333543436525261860826679156940478899518156083461963507390800970961221066087816406945539359808920116859810342978650260987677130576406438822924700467843313514203981236549163070867994313769487017116318520467700460463698574981068269535179729085852353444905077404903812670897022962480926850086415723912628849444475213373177078100895015391348167046303474878617108613841275417873022122648700710124926851138995350867824314860009830615978338202533844479390403450335085270529298107092412799476261454174811056814134048387695007772409683327667216115671995512696399776846130314701937506187329052273576907503986947198577096500448757133400708121502063156794630959083214895723741621552591946787004132263303664807055031890093888173352920766058874843549644752222010284335786035955169752241544954615304422643800398454796886392906696491021674338491788060945116173618119371348816880956853540127858278094190740157843908837646868897090304234797895269883873740237589386508287305389558258606934144360145610431785244970136015964123730420692263262318691502836234398225719929459280799796095261937336187942506082093348320734692239140287572047610745874214800713848257215605798838186592546001137641282844820633670674535064459564004537792002998210530948377317873257857769029280043616234486643289418769701921339130457097452033408313471985222678641733707241737474528945830820397397449020577259591597822444092022869923994562766298804792010912148454672858441979157936399325955314927524966153703433168615178849778118782151338967931829685463741664610535287920878083502786178751970200912595789540879101207661873196320663382770291958768350872499141056822500888206724962642057912377929248788012018386867111284101285437145005807788360587249927919742030366619059653126473020605703930012945750329445197575558278626739318042103845217604163531323859991398649069831014529972147044265732879515197422558100937603907382140269787251432446663296738716240162461424351277673465936068936319645202977621888718227489647766395046168240694066541763588017052201933785997282578182306107101029840332195020783526647916729588584244833818112005811924544284657133163797703594918445769064336010691746335197811030475463229559165716302758324178209509958584783458040126520782446595805532710196611558771156410221134070191059354999729480269591943028762676269721595962173479844718387124571242328498162370716505141876742479281721421386271955835412886623380047533946237465368681690900502920427848720347192892737463324869880510381720315762861296621216281502554988905417951028373032839541426609676634906666998596818410269618489880011370510889893640849484016777533779320612610386487910552980780811829650074714665343573736164649532600400998922551509685983178395991027023581615298435450252932267166330395986322170403535655020840568606671499769929350577977813367152190777737428486707438978553861972980622681418548163863394157753316772200744159242624733443094520910248732584929004908442657911230586726157550789274757432907685741535061127763169467467935649077895019095605012330515251048614876704064926143090303699854363295133180532850458269089865211569898160524122391414075232940839996428630702835667664987303196841512365667743457900561100803107595581996137297550818884612236051783875301963785422662332787596104628403032630183514533020987364953986689020345220419941482194702709641372897202589740766043351336464357268704161568282565686392506477911377365837853019430400769605668443431500466903098003070331491733419926944924524512465291806223025995408952543345885186415743190340256263546657271875996452241940771006108653029425597710764710737383377834826994334555439032142231357599848419183342473647362236444701007658075288516814799711271648765031522726895059088619355191301381860885231514904520395302690388652590467084340737302729226839707842234761331638644660242176911211692330140861013176572107709486383497238511046318581067208012092104728030834906308427111359337583986237895872441845766330371508203282233660428452605483060842046142135010405258992493308500493846646908286271304911324066283069490394669014419997696951755722587536016647431242697279664544307869035150312908307008234336584447952951418788274768706178492751143857677021089767742830174526106790996169964605800826013320485709496428192847100689473637877964893416392069045233187282865182149487131042405629509569600946657031478214804401877152420455832317464806381459017205237111014170499535887352823283543966284571303913893974494490474684005634914469526590444516325153506497120081411627512002220314620102579987981195700442817802048081139510659711337844378030450712216105501997542501077432313198788361496177514908151526784350014278431662807035129686395075190442065019426013075267155926079714678634427410797946974711077099404569719620407654599199566647997529375099688202145800976660935400432569656613313537226857670810936268298528623253335290344062967837832730488880025451063266041421695098658485448175650930472116088733362184985099462376589164336312905583644141990152847743541727166685271265420777995984057891678078145358598386648599437196926566211462591457180954378325573877509327751817326799846669697559819751455107037144305305697222880981341571282535439961483821239034601526135848124566879184343528119180271467001792298783696084239597514250248116033985617506459621273716586806520444022543891417026759585941071953759501696917545255076603128943799996580845926306238222537741002982826525510076095233510824648660602635358899566550502584626239976704099503539003845813074328445951237968479592615645094053072941010732194974937292955139637121114523055833495290961895341604055427172623082192623135836006805203002065312664880453834116791488294700971882813022658313624017017529136464860385728355511794076347066066876372792759833822130904418665225529610785853931623559691321583876078318881705184251739883462829315483986062531090245957765599360486637808668209896852114439300721836080760630502921244748544932291556625387303614378816128249306041179259615773488766702442810393150000594788515127990063936804804409204058331263773857736623377350328326855865145322285564038214495616906458934351163310687076429597313570576284920966085080324284667313858479259051722383957780476596795621788426493808680276928814735371759672170145407439770729943107244151629175340790879140968225195317274854231862232786168784246677067018192736248745006274451984137210908832256277876200252625810063507259553843319201568767231778111304684632198990956479895470907720172808316155745274740467740643356410916529013370992747099900920998598229190483441101467244133400033473081415424368094088949959676694808414326653402888540112451058293280403253946730475618811340920988050941970984704598837203874383348463341477772241502271276603507421157311148472720852587216802690964775108318128003229589825222735054956361491415934684044636931699162626617468273189150648005853903883417596757381583730698915903683621067388956937571919313226818783367653247904847573107561582298805801385008346753918501476049188543136428189541814482322015718091535179547288666049963287725831924809376979671528564662724352546872314218313223851010295993984841182614299083218977223781127178046266326468534929469724435858186958745670493646019908484971345608625062454477248840242733113741415402598754755044015592364200139821507365174878787711172750569717754047284374537600450207411377747419967487850208852834912451557089292385536728836964901652001885371019588246376402576137369389667616296216889820458772361720908790723259519525697097147227597754030486996926398275285962866482142409362102747967457956922837435530012129892131129309197390938185941806518902120038676482331997678962597114758300614734579872453625904765796881177815416696839008789566339277317495884459379865337984016951778516395617947804536475521884378893485349605671573035321097632361313961239627886914960090773870633370983450092049268880895372077250596317766624973703712178797645024436143581755236724316249705582336062320261017436504841572691629322707032098113281246422443145196135367474688315243823851839840289456610344015256437430169386586992447583678891764885200781477869428265376322607322380902146541162857972398138018225495151977259692775063868675823011728214199047302299255441216267084047534908638256626961615255100161594611848249382688405725812035355346996803281036839290615568025317128214906325798065904768243870429193514163999656028975883490185970059469321843086483267251156018656925064768278757576234045192995690932533852215619935851842518124863041178770937548445726727642706892906766069080173382641449158005372696999093325476695458535716524583603113473433083759690771707196599992257899448415790613317428542478881642695938487228221875575805306386304754317004571251251129086555955946771770616884455711671388834045506713812836607579121501679508396042885308803624309332374618990887520302843282645260878415077044757869091759533454586753525028001173198572510260075981600953466107883767369708604664974838739545176129190010856810112030227156039832057594456154255413449822409535585194159439308296894522218004573237246465810138354523110174330125049146536702416867343172801071307264431552736648665286470226717487770764556842835010598650031724001680500531044356668707218534269705268469907285082155515422937875606343333095602951644427247196793313736414432666091492258077211483952916301989550623183087752145908441180233106654392860592255385930137093148874213321872835737129391585013501443109114372625579123739067932675744340490188491644475982346165210936080146367623824064440328820294045805824775484611544338045995868388962116605844813442497271837642927986353141696692704983874689396315403263096190765742972025707848559589634274791236647286657869323172116729892151102358686287100104513965476730361105665839101204323496056616480740978986226180349554770033615329815807940110780622199639447211981705681622987587940389514522505401064986069963680141912163323950956108492915855086573624441210636324266390010826552112692362464855823895103510993603219001679629841694393105938190468399455548830531168489344946869565223083025426618098899723059170867054695795558605529804864534671893593658821378864584840902218278732840562796035078376354322700372557495767815279007939561517493744645958316087087987464485436482813747170525152565386686396585553477489635806111608134201004515972871964443935607152192823476447130304936013612825694574027179524674232496010923802463731496930609956535969799569693356960071760652113838704498183687689964846660357638773375634077554861899571066840597476053772078953685807788071768982033243552291732385109140116878118480630962503497089893063365571921923889397119900512708944833103443263870921714157811599578544777525929866854423678564243786393832133949673038335745200996382307783217827637644166055699336074696899958501713331254723265104307362972485645777651911477768649254300119605966795757862937912240109514180246276394515995650322391762007914326569619391637038917890666889920877012559413875488886889186481641759651208799379400120208212724359260662369846124451059151847170248384924296721602552014272922186882735050933104369686148052784757308122174051056133512854449198621452311202265510545624768495094092516252495232845205848160691211009298350055260873557524566926137516070321149193427688078195973685649095369885669143095680801367252108249555135067583433777061095575509874999027337803183263432828578607999814525992558605940446901718230251020524772076237062964662619121733726295929067985983502016907451842747229277584462578620011433114486039272274860470311873521818200201088706718000213132426415040848498736920889936991963672488295410015161511091234722008639234888072960259360707685183273349792887269846882189183290514188930225520225691314926882271612097022012462723637376242021198737339310236486391162533347189839897406596525001247815621003626959728677360210478812168978577989383892592986426522889460795061867817633706137146088501935756705276016237780416332928804081516640128627782422316852019906772738307957881757836205977257108557095597509397117111935139697659256002819811382609351093498001845072386141510122820760145894807648625588043680422483947710513653474855020067044173607163727726229755959266266837631852759789061078428715832188722799345499400329181231120836569091719395561665760800649111308737119818598688982560909239265255915278031409184038014371655127767345635921678002764430861284639717700847850365846738703754465880126304401122660148283499686765721016162036538422133942038746550031808673721068584854426680318676238383393827413464484841994023268394974843482580435133531604233728741698824518700957111226151482552484229544353795523472408736020975309210531323131760339771396149509732915212388819900798754644604455585768021641477884640642122313940041171101639579835868789922527916619755322068711112978887649906630856054467873015290418047408060523711051908191061006355480524266385492695411540838302230590159824676278707126781100705800592989179818538099760576685002937815585056055164957913263081038343921224445432185275067196628648680988293649288424434697412738212788438833327246409662021394315680302870335848337630224114789240708968563093502459603739054019133045472362096255206894203851735335317636117087046519041859001014197023653911205708483396436724554691250498677282672858505872408618598288991586723620775174427832628421453244661543942018687172225077854998188429036152750986102546414331654483611747081520614432494983590700718385635577540151892533606820962374916182728959880272595957337322522600875267125732190245207561611155735110983594376135273926539422621764294748826089601501699519726375354084400191352515853036376351808215772798271994937448883167140244660588004401727530242069138972250160921941606327657197296870464802800107535965722426756639331413677479663449029763323857397142376432854960547218865599990238589038093664662709401785561999075178516089360270123657028097526898782142199349374470360746989537527906377642526217432023811720818957216899187920780681798299579475505288194188315244653543422315624718802693094769868091139266410958009031454706940771416710441537193467876605860380762953304661214422911210240729324449938486914345181501794753238773867025809586152958598243526166431268300164800169356436930778300919206375335540281636629909653485229592221014000104104092318068961839513515705396163135307257545145301832162394105359678440379108391504458254288318934673986675350277311552958572253160022976374058679709381991317467513104465401498368687203734539887406911090886926156681373984734551374297355193884333130861073728675292631577409795967858805359412081391324301577881504725056970915018679992986357848995030162597887649948517503563391851415414781579363823075879692697384850797792098169215782769984383523711660209274144042051869343552936832380838317537928497658508343172518930892937936111453839456151492953112723667806821871817271257586327414168602995071229600758013914156611358384699502443162054725294439861005228986591702377007461159841436072771940988103187974153151456886141709998591656310019866319546249338214603767776022931648581215698302059619227419852826940592700719534445178716049665426265483657651938014812434478541492687328344161446356128212382726798655734374444465842576429303949800265484873111728772085856666883735477726803937730673561685956885166627704310256777011550441393759570188368248013377670477902697274588695945768818595083687032435937070232403179362282585392333708256201978810034812043683391582683872264035291613978735490259207387570118169706178090991404583419528790959879087417290211923469498234813435136833738628603460246462555087296333690804336163449223051884664948981392311330447335306203489543130794173161856710422479136475443352970862078228669562962990035746684372626213988093974978628828271530018529244173191456823422967432566609830776534699662017033049791317921858240400681604163828329395922911719862494614329178416284639396971215047039359982073020514145476525170352731498779803020131857537224964312686070894579668225932631263033092333960079336940975534733392508120793511637123182587364886271637394053411076560128139173402420796350194301325601113713168940610445248777359302214487280112965398850021949243643536927891219947383488610380555579583699025781717790006544414785659838395196240933846865899268407269814830068590621455755542742942600132874447485750538583626929979349836742646584829350608047111241468531460465678893495555997490871588674586207981708105754121052138729125260793618256515599465844328833518340338624324128635070227468073712108597968375239254681245150101190676872023331490058119548216604202739674313687513101163642853611613834501664908227156303270483497115500415157640575023165310694278549167754304450918577869067162212490529244094434303531957902136149312589472924665627725931542662705223845310528035093481996022327934553338914299615968861882993593168071769713510357793082454270698626840127451882478941360685087572755215153935687877517103995699823037890422430329016752831568126615838117150181371440004431093945876496396633565510156707835023734861188122721597617964230307842645303395301430598531599242339038450146327374889358880525416000147520278741677005040297614261475985493540158677683417106731709841965695770697840039553204940182183531672034564309396743953508273760693330796988869240589755797484521023685623335287172301640268488218821492089744353750192566489025649812264290887255712321714749044659794207114304494885625239155193241794970932979070983818579959437132403568322877331902790909412736320092922660422127638766337494891730251468135218802456951114825303256373572893781686053784716306414266484381231860365316189332039877960515960925956908403389083265902221965422642701886468573954312383395535057059045408407479047225446706840733387299717399511072365099457360211890455090091625572158175571524886479569007987283066966027570558163424563687670771150946265529689436174069298432683191904748707246778203164081749269376959087049936462436095193579388395040705668174417807525909563242275721933341267850281945250093917218849237581060476236831647595020840426961742118728975701639399196560902747736446835399678521220635257140202465059961535257085931332752673003457932368749734687734288559057462426140075995342063707219924428974785191350314275144595947511440334251698523201211449359809723426419941145048564021047071635912602551539963964821120100318952001971650712546603668819047249637516296135086322612799574037914231012629752148012794069131434330299136986344102862995918945112962439760601158517418690309170261376303288649018195180930505242186726814176314033834082413757497561615147893828940274161939531802411753740858903437454173056575621388186653994886305946026435944873549968291014820273720375873760394890404374248866131858751991498533991002635416256446810747561617688059155365134379888380620673131102346369611996354653126221860172739236614208339354189861826679451443319638709888907488283604505917823913875745861314549854041582525019456614163466006439727512134999003944610151487935250499580139784459896528400778580911738202786083193333458004144793243854081466892516307339679028796156148208277830707258247249050068021197317821180064278275767335980224321489185430110153828988243867004492853250537058465383573523666826847886372809114977006228744449935052506397648002112192086522609261936922911396516474456486633365292274799807204133523288723744222858351826845560034026579035627890681403666073848937740981966261058976034502958631025359999449899411765385140896033415590866259216646738446036606135942513998075627926611135941487535295502140959090446627967804820761677086103361112225829197286616358564555840920926263122258113777819433617664666899964962755231451014805438857445094552762308951906677621783786858861106484106386172872748897188579149115266576871533598947051655821440821414345587458609095683512201879166141326960227679738505273954472183483308218102274006734386147954053983785770540060869996046393404940968290553708609752435478127741892730472958153340854978931417936195842314947915664013905608591612994878863202480753882435944084151701523755751099047037056051559326806180598572575778891476529967232047586933741809548266487537756474744364407983838740315563152302504583135163012264848811451086039676965108120470591934959770335788443476381134957503101163717443065201967832499233183061610474036371613448693198327774254602347068494797565226196099568345524820303496997054271788190553342277615931489738067500619392228036877866203393995014157907597077038514840874336134110932143051907461117714377794899135405884914531262095468329758322238080109397374547145673637517011204468422670316051763528218118330072160191599562117546120667649797250312890104576925781416485408042435997475641825948932832548682166985436873661168534448134867186201549015386009515564092663330402996066751561728179832436813799867811029983779255054545204438319578036881295497216805298188240891673773360735264105971285217598059991840657165906504714065662121321929186236333757667862970311847915299228729500398202629969690424993868044270105060572963305249429038127422888947339076808643139941087259028523826037176081390473564300468142313789065883083198179581609247545775118252842858277001947904954698714091686866130294260073513919620901258011468425630723372342066133126773232535066974836676002598444259936228962581720268835652870482800199735667273057172369543680834552933195814922919836824874273716942502773535872984907761025994606044856693784562438273118492050378689494227547978595437301796310970273584248536733381663937078194750732824296730733530265986746305447949925153433327741233943973497235630720467609796889744781316201276689219966461751173805789419068526321873118977862848758805768928637642851118986964241367972045429883697101253981746325775266504715623997786035014930521659751329027219097869089588872602139061337463687345598733831485990938772127274351194645152821466101228394303161324050534446965946182810816523343260306974010727484112827537520422219513147226771550534611058045222515398883074391442297431718803472031297958305062344928255093602492287049305898431262414628399631638574600604567609282762936911533180934143067294574244143137364529841533691228737660275883402784700816215254659200422498120478121451874502177664544266339165412659670737476075234204539155678006163408906259213064964768498168704371739322092544152764000124245001002830349880757988375923044594162370524569080708389271020651340620367200327658784753630286888708867939190976606995042712559553193897562122687014039071187646247037150763161357427782280265069312538954170643272999027236767599410273390886333999351597447932009301454913098716975176194933514944964499352279361832119743049479806922835618335381420305745022058265726252937950376632335185391949379403882575355658775271453657935186281432152250629778038087436247992689557690969921193495089925420816139009367917383370878450166108372241623947432819462650853097652412263586660264212720402477293246728080926299945797626168055032039545477113797751366392236125811657244422499918629457950444425046132327804974486400242695460314747372409145836972345847477198769549528003827206488062847355706120590789665376433768233576827107148382143290365244927698921456930178591171584209019605699402610283108100976359945906173323985588653292042768403662541268530785660224033457549162439075338373896452258288968604684947632859655003019165330868679256597861117644293846422072511741946702981657097147914443211788638194014329393964590394359566468461820160189575142777264212495075682925367424660703423461880577665835920441217396370747777680437213311586092641954646232156298073440620304333096402552523172404113617496222041041953920819825735793317228974396730547970405912513422343049979794731933667317056971701413188544939426660471441092616256723423863563553767181380567049007603387523674018313933831550298669648237411944085140245531022750327479872936471109488531248632312630193860675340380287094208045556252282622384290130152834566567540437509672496555240935097324903420045264393990098069699692180730942918828261819968361064113026973172486692038709302506903106006798248172105833406882107762586369189656340831020321768472471382386528978029353649648353578164883503035631200555981223059064559428279200741888099931065246457820227342922425274221788829378838602457696563390077236912056815130369248931460994360633852639524356784731524053723276438204894742134616122253811576307284903356882819161846838684993756064666061404244859535641592248644891392120725007992592756477825711523880864232546369188403012828806936775951066382405505140873426769339588131366458084234660312051499948271053335127854493057559445837350589774333727310766009791588188247277065120730764104076288543605851190011458487175555812880592081866398986414801379765448799420327353261669019365723262387262824794685341625190659608243949772586655774588205018035314582514223551172416983762693257033927854070172262230643984704443472688373288132257724854936948254366130571942397147783700506220447397350185497759248588993530855220940717373865199414060941816608741279452631754781434610820205472625794387123008431663989520793823359851659717077292507448315745666614398568290178047413647277407075608153990956172277937688128656911145535650569842085095865229462910534752981125883409116146110821479185059178879825106666801374117755878642009664362543740649160278369808753087266424882988160371219372752074515386620654349035614061874544853852604453989283613137185976414674626138628304896116867675740311305598275223439060390135116787611441212195615314198070500989984896192470260764883690866337677365610070433272911571264557544605560072983459428158080166428918941658022262976082256678045047140112433432542424093471795582489035552299921468379173130327079821976144931982150799541840297898488704331531251637026362367823787197701791670662667513233565326516738051078759365438551792072944891410549755906059126536078794425121791745590940886951804275571303268093161856222693100976760622511526894703386781798408109525493550979460295426018685645500543130146901020612417943811436732909778156999504110514648477242846387323939528295366993197553590412998872479430230100937119103443485077260910722048399455332492264555671056771813048171801483702902278614556750717651750079746523561503068745537603700015640106479425392250319362225341604911716345093562444700024080118482728694258093212200969004947457338275440400819280494014951688939648508953604175201485341070842433916824213590994421454671917112698622431246195155315479762858305694438469217351238929901941149480539538518507321248972831339922643498368633117849852029114123909376369469998111821587025068931528834238608864255009970852829876905502554262429732305688854904256468219619832020377547552121342332811296114852664311554529796841989452026035212292137573837008545976925752518067502517295886166956582463181703659319785553494534328388567772689946980061395741548859496859237011045461705962427922771068143653571527936367423758587357787140387814147188749898567111731137852048648985304760010487647135950795084342459274187469833878574334916779411387221710328942678410112286022903408573623862495848451168504602680388478891382275309627361205258421894302042077626771681557521683066662886216465268996105917470161349846689311563199022871804515388819958331064499226241215740390538789619905101854933603546799821080994904128605771993579674564377210761234708553531708312830847619618353657075799196775372279679560926755363995230146619467227645751541848205568171943865748620413181850164541411653004382912523312358228732674646225262789449091592203298522107457130572072723173767480354277112082345279732520954174516163944619812349038035704552974403403535758155622302676968210011486986462023792936075693404079636182089087674576979497730235978165985982270948262057325186895691496571105702931046884249473034547625848645878070147379546382607258164803601827967336730513953934806610283292471030917611563553247089802276593499008139397265386399524997795355748696134846811314553500354765440117273178343770477572274735010878696586627759990965990036344918321497858553359362304242844848552963200233582915131280685554674583954296344429082707519014200220373309444957514806993577315139429838335732077424439153595360508270086259052048898908940749478509154539183630329396341292030258540001485746743295307613693000072258872385146489230875513779451960292413842622368019791106968391019082689288410708354834090867847969776767740637765825639507922262997003648965416241877708597128415586960000578240563161359893997899752596642002581043364952242785093214748672778638968435747804512340433796032751336571242239146229633422796102791062665042060179674984768249362571930490393798434664997117787894446102291491396268486253343879922861391474210130970967594511081553295965887176430531931717386840601215898092617328257913447581092163485362890529274183778529948635311023697320964546817126413366977383630703400586464334200108669981372861509075400734224846017205453969748639701047610702417959065642922368862527032417837528804029573066113106144425477263895322865610018752460464841084673643900146836622513646252863208502042259568818402848788065038764251118105392699959152042151833390253609771030098218370934468722681620138732580844303750618811979341319537901431943192516946001844826822369193061619665505332731439597418454829392708089120378627305338928219990494183208239530958465724337681543651851109891598528811163322901697049063001474997465863028296401763185506282696103912324816475711304215155084756172131842205853781925298658644093419469568848454257794678658363945199957661744959246407180754416059739109736480208693354753036607385684004640290242599367688055970793731815750703645995518519576436658657054989289283820779505508339558973299427242010067887498555814866549753040031837687904141899108114600852126486103508526848139005449067825406311010197966144585884313776989294013226996185100962440064787475451235437701128268735421531002449702842945218511301792025823355933413390322694375319251674985465464112397566024226150337979000737326752139874554994816224436895975239136657270757388043487701483618858765566639901335449730042023747936528077656830315545572387854851236138883221072440150324711228331156104218880662430620418762320249671190489478368179983558479858386126488181334599179366153523377516558963398675414454394825236665400687848085768366676394659978136006062069272178460993544693939735762031899363962620977334631293871571013214445245757471524777252894120044368914355423587926757663680083347879615648733773740761296578259365116464588459164331070299473451634723891098286339119895913943248708855184583927326153216359788217912442432987782841398755390519175967778861832984895051230512109696723676663460352097495948925755934844881185390992429722351912941417418565985091555001782562820319883142072967510037602489865409131335347206277567724038922491309713448212258941222734391916164935453520650480907382624701444837923389201610427508165757123064559580792130152356439837154071564305928347100561477281182884184969513047785984192526213732809895934928899813256427315502104902165116868535258780091687377216954846840885215185596783429479748709314410077073278179616260544639976643704258169870108744622246051093400948679441226556526211954422691329956368512183532072169670177099589169548120124721091683385575109837629662088603056434241588495481731628156250001847479237186537943052852363921249132899884977212974065537485625295842304718284127679652365108079576815937413627222791880139186446039467450926350386659914285270289385922687401174564138076394695987231639267259282417775944271985615109159810772605423544468366194242160507900941978441512389434110836630940936227681471647835805667899008697070915413986908743672017561713749128224712219157270783096421804963660705710905070526795212320274310006308524733018366912654215723415571399258340515268284625532773116874164567510975886839249429254750512936206984591063043066456912238118818504842570175626115758970801403678633614228961133832006013161380488731397590658210127947093297597773325213859525165690624690194607597411600966858687661391502687412824689339369865761487822710109316118672955391385092962483697947178090248674919288944771478242921514437742703551433848662234353368175689644867179887663463510706437565186115394300407522090376845959591937103885183375100166463656284073598585636198413115489415653948008244705301311020172539790024932814879619548258602840304807282975602829476605823087582136379932203310347763730623492121465447560815026946283652841907118386834442698051490275952494086400006030968290851690304950667529925133619832324751151755559043133411512251268957495472224139608339899648434901592281594325278965093968544691327433847316582475140914526700295971073096337523243833576845586679665082671092036763454383590560512082106116106969207283626902131659833398453809922702120567113803492172671175898877814309501569643029786340973340704778843411668413565268302483435065228094080466833183843044117345758695683721587047381407895703426125471522397969494319730309151694756393148822977557295417311766298690076722816846253154977132013171016100951040608026720269612442750863264324494762977407775176909977344287597338792808495925241708967901357289021891475827616742273265466008596570671057447737039126688488402237839489857876581077044064956315406970266193812454920369694671830055154712762745217759805632805624738330466772605951494729564718833019843845761865841453912325558792044854324350111426489314919008870598486228737806178751071097044066744883187363536635650759319909867205167005621184888531608974408260695621027780863519931620263816407228327593889269186225314034924273722575599970936165802892999718397945361947901964243235684962722626674021043105027797770395116650601644885699845257612384273660192066313913067892452895408105538008800111571118759880565815390861400726382527072889655878958400405136451902278574319787650970988883882503782189273331167398866361974002526720050671235106900720710207065692594636035176368893671017898238868934204358465117614717621777960269324817145212108407378951284412994084952498432687928144181028111443518161460865696087625492341067034519409348599259414266357187116285473278265997453615091505834045287778589908305217129701948744497318016097600079977913000290125852886308641978459430323331440625013124519640860424210524806808213332356139628508009876838336888979316817152133878755383101656112579708159239213382998573864115328177743544216117063222384617654476111267558289972215745740371262522869131365248684607141459866775947930983769514271805788934237988094829175709424814535264211956060468718444529808871634425809268086870952607663875789036450087323766266750830182797711558355791684133086531071943369669895767934228194324193973902935800904316966815757591601836982195570400864365670275776531092912398428739282082042556357372649629297440335032022336356172867871484551904273077164039794898751812644361191028463444256619989460729643838782231249012282931533991208249667901949464262699434579944115294629661235319788399817870593211615807197346609280542713021620688753907268548637375642193436904540674096260421613914515472811413765878737818472388201058434653470767104703884649007804064603090069645792564178591411665594628460631552619001641828208655809267288002594323928530273803543859113062722429489015858992716455034096168892417129718465375654723775962464820887649277098816618878607441391543771288100355598268531237085911586288504938750336592830778519331024552589344413857599140768910819232481780945156799979366421273795513662115054430687792780712565022187439409272723345612865059476757227396406446341767513069116568953426565618911372933718448917826508378731875629302831839702770190637552319702498116951326937924113767055711544003631571368757765241200376699160708923087225596242136797693422406949714118343839670580754768544133134633856912113533421040051880521278272441585515423421088397426380982160177259296819334602167987825423600990380060074986294748650426097196256761075590600253409786287152288027318807378227682660230371318735800730529281065358889922746510626924727333454342847650371325883212958580861905029681038102141311443561786698379756306515528779741673331981983861731165971832343147603617874220696864403178209023175496228671500223805509768412603360341834696914720761180914467457371851799048873877284990423133250427616157579188929420948205667840331250586246361782442878369977720301558004562223158271861303658867545858246579299650622711008388732857122491253214463993693732700668524953389730840691873224275724871600109659463198493101292982579554463450121239122728797777590271628736075436213439054823516465885069409970277469819810224823819122052070508903378468796019440001326768069581437644983925309579947794524852383564669331763286185390407594671660631147838971484515511023638276417284542771964938494328082581065444986437678407027610210298438879643058864297531827436323379258394160875769689432144970214133562600437285530037501049885551008168201968016046008704968947087914279057699447720544219740204743172787872547253396219235335942170524332752175630432797093796024410973215878099849008728096984875025614735338639317072331236901017577205219646906085047050850952356937990165707946403843581185065652501505775436902944550204165390124317813085452131278814909655049497573587133431073864392824649819861054541817726938350415853921788716225469242004417924002386729379238852490769567857079511729129498981995348432449999389726190354230909316343970139016965093716860648150575585033714756195579782747756116683261827215469304617403367909889568997141570262139333295318053023834138984282667809936505718084589181116455050458587354027115814972930483085153855686192190967460192958554038601478192670065004317705816056006100418303309434123769397942408041720638171672198981572256828704441515179433363709107401488524818155200554125841052064996551725384410558089120158573943435337782880186528259088716313239898263230897526455233542609561979242067219898103222014583205048186337602500753011600022078292458830934049301031030052011514884895839523493032929277796266545401586338073520425894519630909211418949100256390289321209996964333569220512236855197486601686994134952296607473386692350404358106043428888132866678216198845862147676155734573649325530233772005930856260656474806374095714118506799408326289510530327768897307340924004565953399802521862586081320571456813171660992783976158800378726556810815271961903912619676944656440458475437759741379881656839927636054022441182122117354598822725451113132412828873438687555052862514655376983503076580755329642066353922102717726189914660878250909187494757565917376602457528636104131521601627145086380606140630465699122608125974710302507778029335519297004744865267995286842125388421442149469945397480047782124457395874925401065095921106462856383914880596495585688401295021863293650528750756598108509332831224584774976558463144296692043728159522531039845032417674018543065117995136733017757302923718641622764192626372735169378968397795517132939994667689011745811912755324227191173705940438165879057463118929611395792629316318195729923850162481618272337525754094136579865267124661546856447361448869947709532299112876775880800950271311373704300429973863721690403172302084107255047782768999512076492363588096999266551572559104941610304112979846246487268933882547481210288318846407145081760099582865273027508561252024560833414023264428446385707345801980149428236589562126092883867276270421331714362324512029068939873378161077885018151748851436183749415117775021043373464569389883011543760999902432195007876718112410364268980022319251033063414190692763716519859026793665527693514295134016691368272563295328430308429646588441958025317031466869867501861191941210325310848033902733772237224415040804416967912485859483579652748502680210448468581435370699230662598333275463303860278723520814536035263250225675281875804553339017376806065632203393644714733851012180354077323450759495966242153238845068375527347931217837088011978679304633674757951448362074513396250291251844231008997299479923950521173030280818987383094088641270356331715990679791011693105300442534218931388110862183817679367457088102165043493408092551941641446284839960776365071369773620588574646170214762124556188353139059340028175804682327687596022860733876521638720459567513426484311567721014732993646583181149200174505950355122203980400882982467126390130555497107621513654707637482132304196414830386290751191351098019773560538462175747460194786469073438355100196679059850578868297157632542660847950630918002313473721385537358203355933958208548301005028569936219211310309139933495768834401846420925300061981218941044138045599215928582044700651800280878988950970634364733306426307342382053062228229574317485547641130322831511212103851098138100811982621900053789041250407703516263813653147636110971380091432017794951473853471443303769940962854715862961529950163903452992822111862324023104948676899207162927338634513286197632776403909472365509244495096233361242865231137032554832567706969747499978517030242169060166994443944790874949495755372930080469904807982027702346834181798852154305321645090749389144631980886493612948529032004119819994876172941161449028158333695319158767145199504559867853603473712325644020825106217290807788235433841334801443552231073920289899656255283118273564363821767340118885903939819729764486152457740658076279568645909941498624675590618292714148411820094522550866159936376970006355271571625510623833414686453327269814243712745988503811236364499003834639589919238812883025740779366839574775471819430751792137837408485495103901371932427031030095367305752944902005215124967958760786754227066285170827721969671378183980407550196066436601300003049776678645755033648458943074564403655555150464221276755475474273095125945311987476624297150403105717477071054984019319624414836513259903700238193705135688887749318251790036185680376331684460840144074113341118319594451339918606334881540462864711710447331678232929708215974355279397577083782699818124205301559883974420804479851110573356052625343115585598706177936294802839556626651878620715248303579511153233508889054237094432025968061439546844582100145024747041582924088671918578100181419022974705698508321327716798502791690942385534149569309328114508561348906299522114936673686021139564275367119883781337574912000029289883965748382323778881546149464498763829140892633146513997601852195397701789707408056216258760923598748781686299941964095098779581236098516039164752726442763112519213600120325545187379212018073515679598494476107303029056013239870818686278998622689701444387704659871800007231965838682755546144849638509730425751673213004418515711083259698059959418337356961223408299739611763002432040889752516872619097782126640499572451405026968540053081967627280069903830712530910351276403461136699561031455148325315667067229999261884942831567999733471558659564893919175589936216514276490669695640872267734750786640752670922672544550842728362315784046881450319526896425423099424730147625551273140983028224416519626508201449428737672063182124765086749365803568796771372938627608010638412345883133788476982983020074400099020104169186956838233304462333608011195314613694204861025598282815244792082484189464128994585047200977166002063757830498925653487678316936261529836001479959362824990526022782003827988594067466191968336474825978303201582910421590594314351818086507387406514419520690006267926657437330499144685554096697869648748028439783305028859435273644085741382020202112971628129334785978267149061479636141308746028140447484585314648644609185559925697537260042246960222826832499711294427965747808782798917241750018839068161958800777547186041550215269920373964812525138402257545291290650463759620944948864707693041635782832723551631375367795990480656787933353944521165390764238739680236470194996571519179421244479511984739308474588272564743702768293623003562822602389292302153569725813434273461963885797535239920186929861931135471663087732692253802965494053265202383741298418392194980513320964855382899041146178645751585675551883615633804384177450120319994039483767550889272269228153322185809795679688871847448833992497914746507877867199614706582042724685330461245234537177494384325024598921957910594185439190965284161340065966823734100365520544023724016477737562040023584330320419451663949669556280661104988249578312271586014951536967005108900852091062902472510388087670975632426528808837172402648347862636441789155260119582334836459838610213639682803620739610979344292713046930136938479345859932252299188632685137354941281796639396113606749393967539995863698966621911509825373561258424122306361295686027170087439424748164579988752849017799723780168425096888175530150011675650397653352976435217397770913532236791312254544162399047569587981109457895188282651602636466028233576135825344876904824875603038890640059942961432200956588912516478159375140015938607423082811239506104573042171866599993374351027923599842852564364309538591588742633719319913048442194775305371460705031393496438126895831433515244398833274973952599188727233841780951452751806585337003120992542244297499915316359677476320679734736224627245310208199210787527711373961153552185512357305215131902035716070642731329307282013364285425316869656853245325547310677360901555947807540277184984665133071136212037817543917863020070597132724823221209804921391240859761791201031576773267933666435670884413394606656147570246248594236736583793101683404128871984000990267846686011760726403076816406705926491642093464230823967565488093529226607686489731510075739340536640574695525405298607585432941937031700715176232075522814473966117876703771752680425649138116294755323065633443756639215636607232087525889641925365896497429335958184669981714625585736761428102088404301496228419900194298538826203440442328520878218389650290580735248020917804227158005377660466131801674272929655258690584330875573259169033127077007512841609161676005775483909769950605361754309499681499557061472581922790060024298899999849119097142950685126905749817054812559272313552705772465185738939324162867817765179151699950549676964478664689736126183457087992123681136712197246266977305701456352980470484814770603737719476624545013974423766849083523961238624253535015877822321622915769782563580346845779333323880956302792984045074190052367626698168081090779611999202138052272783338197787569885543010284796016854010259588678394755865243364374838118737221913774723083175585336289476701263186054013522684603463423298919770462162979375427149002417885751948544713562997824406686970201920545065746559358015434340630744597726896325098879235710673562406505355336941107436108428013916452097594629940917666070474371020997036741951013483577309425319507510486135770772792105726305790908333533323904891316352021253953930133563706160346403910823900505758391632624478784843780311303338212613416198659659911259761675836749246462019276633961352536813932847266124697760286677422003840473900986199879768118383555758274425554696392860810487167778983931174162871680378253415965770083797336617063362125604040573245712587507662064031343935743876467123307407425293387927017322566627326985003615760755608918796122233393823474537064525016167429524897674965559502138370356087518844860753733388417195207856438438251282762624956193594221075473571816045998106478044670993014214381258183060892197497631103365740592443340883847460959741149696970354216899659876316054030833645696089710075338573612124405205965820393248790239450816344247952597516696497610614055804998845464295068895373423565754571042548427250890379138121009979695221190629526084813511600858966036677454219943311930967504561045402922540015668640253781056436248543759259602096895507241829329029733481015625733457067905518245592364823934118098762768795882686216241455603333890745014271778546487268579933563881177231961213690712633787571118935284126093296518482397566839058213948073788169459844327952906744618665135485957592865741389140100374306125292012004719096646749234336218307505203657747834346621874211594693531605300218899876966829207202944674591664375222082034023267699749223451794939991346381701943444143695774172524204047326332066356509709662056279333569773428426640627612340443171334995741382812310477973664984489646631208579261033086549027955636427415051605945314260261562996621329987672734311321916684604470022935732708512170996474654967291870233625309331799336136948040351032642403880694613807109421473583594688177436021402714540262077238090827019770806760317184509040200854809383538972470514357047435021806070950585351236854620919326557595064410760016479342902053254165268617208078590190322354999720193038062222274810758165514830614091270528076825452581139494943053568514060359827154609587858483316096365263514218469458954425554103423142877842185696917541541007994260787942496664564217825616387262862121920979723353696857962599032355372943918261701228474146044983287420248649136578785714374090765956481061167713077921570002769153861021101642747592669536286235822485196718456694054298465619791838589989571304710769328573516922569261912307470013062292845067139361366477152942558320497840080180459811416122412732782330035267577800896618539625640475758115014191620631701307199090498555826639681716124044577127844232367212906745717848037411970443322051079714875377813308707045896571940205577455763139102304458821077431385900397110652688026079151748459086272202426587707161519085302195757794104473873542780729028103051519098333851607173617669858135515159371033341549305998435507151331709844438683267230302670226112092252552797677098825159614890074060444727487324420517806230117943176444259058874853027336970243738115747950725039739329882636177108052395450493879807409929936812171476027609665235559078787946532876796600948151313617200410895472842150003557129256706949741018979932993786921374653976180549908668984556473136754832006750173433307465222889068575331785771902891810332436845183192893649747673757972771878062226133061049234811730239637013851150294338644537103871923629255869463992249749139146954205113224753396866673484811261021750792655552608829555766832981880887128131337077665765810746127879622467834516813933212683446011080739685406593971061569737664232303216111350306311544414515295351373746865953137598271472710490277862978784123778533121839660191151666795402835788974302007393913188620734849781795972640117236866789019914897474975254297349397935371175099255035364563692948925236085393194236033096812216098517660539778656246982717652678419907728062238549463034687220408261179734598583657535390811671251310060602810278029888635061904347651773320016205664509219603369467200781983291839334329024636722914199381730109147117316800097938866115623954464311547293928280783714468715026999402143977600771348247233397750542901787589227815363553576276678945804203138367372556206029508592315811688597821960565587780407033260445909996520582042711363181096532321519677332126571102659733805926116298343998434596742822497792172136335190482856772789411213406110363383972430713198988149794740725265756448778427537165869127253661691418070974287301117111384739861049775195867302718733034476321428748861706144246720268542773026518725292250587743440746064638744154932489835062242033757137575126613575188526714919616278451422588226746754192564118189334119862687655141335040423804179887992987839157512752348496749779900352657227687203635656130469797439508973543929026946321748006126412704448795000893702299521570589875861017101854428965913691685515937071355349805502973216361701122077848860937916277840673601472122634758430221524367155904069702369253882352866284488257870282473652809098357819300620755207156406579795992579919179583754841844688242345615103752089792372859491335952845307622611945801933774112072184351916554260303527305575016028276222276457391913907570908109837559988136741583389513505215207761269967945288897298717424669074773390677641375979737822646782471854258440500335853187085739729375734559933836560565507098601812714833216021561588561927919233442717510630990648771623153720414459793128331319147846502428062676399251021720473354145767296290944660058202309190515229394350080179590808884254437932106338548011256281268878697879430967047047316920623533020492714112203171200973469220192249215957159576367110625750263955086368137402317539072282578241331106595143589199436018888457219822030141400467839004429148650163424009982865247502997014745554760976418449698515306525405960644381010718271404915851805989801638458138476958047398349013495544623686853129085646204203302487853879432617675345399504908523696689072165701727518782507139950156988895707936958167309305025928552162682310021055754079651213357785492757399336340719246380962830368701451278930014076380098624619989982542055680183662925674883418368308570867982504257037844047157511573512364193343735525454383353666041950807221887109464225120235319333658568473799718637252007252397998428480604359867762485754728528059418168197320692122278769362431661297349570265007109801954598327064098941779025911570611879359019093953425211165040128329927984181355261077284471551528782119080214580553509532413240362243341177943553828886010115160217663068970994129731190951509171600588450467407154319873902034011465692767858106623717611531368221206860193121958706469215428095629617524588170426446685343334103665886729668460166392987853026267188278476858535924620343003448862554232738855391611086948149662247853369174158186279542833074775891214902843845490602310875779249615600164170909769172659108445888042913076423061702585337715559512898370256895086229376243533473321787547432243653620086375931160401710866680032259591181071113547432847055745770580608023383012900905926133845964096584237747338657757038571306617702172498229556519128521442588495293446404749936335764393801671516017902566226973812428950539783771949513368046455253807226278212619892002083627730642746197854400129479559860629276273883134403650962603110711357779061525455228875245373439810975962983664341679644686649518677894869340369243710504860858150200172742031263728772371973824601804351822005059303241289626390835968970606485990691410138555732637543086465602195659349822638296909235572007840436074786883794598654922857934588612686627210628053796304141073173350124819213288614631585406280342058683308125724500560382922949528656606450769406781460367597929745406361685491931181686524861788240207003562030930241301783253790671301883117178633421430051380895596102888549247769074457766368319456510791776462620831288936892327521474290558764586782679661672147420711631864791728433762274553628954315353806622822237860895148520282504596884446184101896166181079457390956854786430321046758837613377343671415215637343694578541825557630444753537358322918556669050058339386455895941113570535000241813127610303618070198410498875634487528377178262735332601710156610866357332092632801561115894763599675360502353528590259959091556179882642957463741436683682677231850072707395392704635251715464046501842923923628721907171557451736201531296334978921364895131663980971942041929022930474433284548229568946197235248534044434197156083184959729073975794844986959146976687565055171554841864954637302156103968313866913842444702803023594994716934548612763073908876115522405880390739284112491872934202500079870487021554637174187344936439557455146280697702208374842440304420263647807479993864033099615452613400134456709355965249712622715386163990495448206920205295453465211480160163529252164364385780941250488484860080401551255574357445850880945583184148370014504567532739935366484161442948920728121082437016708260176103405319692070831852979711786950192755581746823779293153092650107349955680775666947125663173941408834818671283384739759151161286257808139748445642490859373257396300986071269579950621299519081066611495512049210090827936662810002610936642050682075911145593862681625079327716308974871664963951916351524762161796279056072624188140665271308375021249916603328572364881164459280048265236949991129966017517023325699028414680567554143220362350842526213398547225992287610004174233831875719767007748620945734986880756258777264561059658527985900210790109945227867785524155147662793201844798717264797066141218301126021634591734979520466726112811374471096557081896220253440839836845524250031014470832806310174709991260898914473841548812202118696860589715474380989844112004415317150687279255852862585584175892335055334657175027141254630126664890613745763451480909655084716251936802540113170864691338066352627701338568453134671802113098836384934649831806522493803271219171434281788857558209810349747191776430385249061330899249619717497932396602083068065433005176218570196070622183556312728047869229255002183111821398246454920885898175479946391051213393569471346215205526327603514468250686803120207058480748865955265475694113781350159674272121507947597784619631836682094683351920668319433613429599384764998858227060887255544097263284418834455625056364350304200435251201363673769342104567014303031699635830919951741085042121250744335459525983252161829734421806949625673170332173314059810578100060108146628543627407487375478605652776184788558478607229086256540513337307425884803471220571451949177983258350040858425417023405762607821986123887408972859320245812489287421087317534365269523903323985261122537062915123355871585466615404643227720631426503143056584462655458208905608388895996534163531515402192918690029480529618129689739544193308283202453951079349691514869881410852704035020104635752293176502721098041576562680522174939866440869908423265649178208582166389259913404015666988454139878045546413069722490050069597075498357581282908451633570776877583664326944460025827049648895706712958662570170343949696947996956176138284269626263506798270296328156970561192695192492598379746188874707945988689252160827768848160939209314133203020762332438287558992441238015974678278702299260922163623747151594424766977895621920125283755061957914788881685694562100306785245758730679168455315339749335267451015625945188967597527196058147073749307092084328016434524767906961446252195197781612207770025870202031037318515835076189485055608971341507849450200619172622624667003034659273407377654819602017892389984573841442970325437109883934782375933170498704386162973890307783175752240158202963119229626022871363370080664644722496543761684309033901956731686909370249058679198966868579160334240354341272102740324390764169151799087936498509835762877205076338393905140500195681492416388493362536352649999619368973590179253429160176251508642222790492281304616448600387112881057481294843878007624349677002523278748915458234285541285417877720578581302667729538815467417497391534704643639368354740672653850049590727094775960548315960991480875993663124414738115822693127189864002289768434260056141871843197899969134962404988403535149130539961063103724047070069008895338663215700579768353094608503918447437007935421102113913684221542763498590378438405362715505884725455605772831119741089769937663213147938553314428581587887568811178918302096235866412567464858657933508600654757348158315547359910644906922429638041019703787063207122300762299411801659592933524425027245089078401159921599214657974347444545200830768967839325910418679455945259301928817090165061505126035074406572065705113286850377955146858017115125866854489009932307544876388559462179136752724645535381962825984116071517091622807921213365471358869831098130793668189562952846008286388892460168776936425959882156499103729342397490467529077486952160028613629996549374923367598096852230323256459150228774588189691681363196094927263402351450035183675621409545701437010262321590239539261077884169579581554655774799434376222218202831056673873064031182283857090312668891367023012032390372234143001983334174734747413399429644542438740165881166240470038165006908508340620887040567406199889257444540932049763140738715108483471036646321610804000643975099680560183779918510463778859955489825004698097064261306148374057635967250193770113245264240761015406742224661026342246573979788554474460721133015072637817508269005006251208150670620960595803008105154716646813385490918317606140936895895143026585637002416565132468153078941338968194777338517925415860413628950484473882314266808428423395850080223974101682504774985547073070535214993994130618733095756632257593791014430267679369087963188034012330713151827923440272791078859551715406246051061215636927801821450004157101713378897639863123863574387003895074482060809687607091203920396700411019344295275100645360312441807644136377795904442856740239817166741082305204193506595392727582404533240743586724988130947510148079520278971998816969983250959253333471874219139835078845559601935422263522128828614557865154710405429661140572874218389653614801890039182629932793872642265388943419138491893125263219647929780835511009841363233204508548053833247233748827204179908153416368042986185125310515606820588469472576161326138517363458285224453095095232616414846309247326826541017603498712817786907288433236387085360642175621308094008703491301642810613195969467136245472289971715771293086806024836366378903392585743778852643494286215826566230000809602379896964046753909213218756750460568750437934657282559261175708183997971467484774239616460767173236403607500757598779843545587909883792639780413260228437288012690758845999484373725872413939734500424727163849049062821246313411581699412684389335262591771108714697610916055808805393635369311151691838734748958855195518896819360491666182840235165386053266113707372386560426034049147133975217876222601117346826516489846262046179870678306147298738211275005156037598947705071506068841465307608005114185143737884452724144285061725646890267082861915262294807585661947350998426056735347127487693255819992693976485561386162973194263696076479920656741678017985035773614997412238138860324602669519646086211944169136258563559993413934393863008525094741418573796085384518760895994609665067874997048035374145145997478223012810736542149540956312060881590721897130438226661855140033017746694595068729600348093702503143200153274054538554467876064366306750387296635487148818042701123718247357112984271975076754890035651874819720575151547975790034233419222154998001037560088778768055343452304269786828718399279860662544119014022230418588499231389329448211621557648942189080699460161063888158324096409282602786111348516767016602500715891461110580988839344033774775623252207692616017724400385623912238203762766557474930318509807567974809896077385476007310806653746161061445614022792263435928556187025835214131806739961528278691504113817602712531846155276311597831551438420956928046553611008872726103849578540287497684737431990010467752818427326575530526478226483735670758784102900847754202614269016904421684883561863697610961917403795913048669228007669102887963088001826029557478070554728741471635947344611234408902329566818626347808868480560419224821130322012949056135941430558249429616356540049356274799654920079513802659023854804098981736769701419501013454079962673723694299443868607587408197743536924617632041064399727276889546814562815605850238633075933515590315206405901416594962630356455523988832304441231569473251890961045116880177142826349940175192811751247190389090287050779210434018456936483463721613808001042439047749181590907281194041745570211719261472730869955629591052209777431759110267502698838579760663302414712769155396034208453306946886065151268495965607749187902823295804345643706106610900450668357208580334741010969882244884271256989278369611489085135471979146643890163109310339721825154561819407892319760973545598114247484334871911603719729504512063396831213629838863427121260400244080713497447260698435481512613992392974939512198936652936544573942725599030839760249846331771019634081463784446164948203033371560626424078776724273881679152467945430401430681437191766663847446212836862749362727052737132339388356110620741225505470400225628209607641327349838733167920919498005364663523591298076085846061803899033606120626505063293440782954887674221850898888403791407434827704932577123865780010867652784525741567512525867208073730827054695878056797978380754636608834363050389649006693540390480921992142196042897129235880702715861521482154999267491952608447668039508440885971570497311681877629120073165226522367033020160815914872193373759710573113329187301826712596756418487325782138580752996994002471164621415772459306154599908638504057728596732418604657489721482038780873591591883174776532015527960600427679475187172063072229317032035058973699132649090625240284902714861558860734385856110135494049083355673778270919010974115161369051218402690399458621126595010129962309635847613227225057180828394423689240585632560512321404406623222381290058400190246181371911384065274671243161457353490420198505180393588822916357118654738671649421894967627769722240425794684175735444439512326467736550372608142019691292820273605901301920756818174404879776542741790961023608862817241038963899331654363405816711462633137014336538206895157479597019333199085227600836746360240880120537319297843325875392843879301566146035184322090955718700078840153164056328738188471791803758316575935634589936894988022727086589674122835725617721111371273105054627107994394271889970927031932876344321619437788046786137351140187161979082717319718687684915878541135416097056110872940718703644944081713308959725343716095564779867693170426077643849084460221814559525592622967429105749177258127287702674035786634393131716793134053400250247094318981549905338138016327474996951000684868350521348176268992575080907274028192176164755989518399539080533011310833720448345066921333890334925977275708481461207182896999734588327208489893735427442144033321646798754196381937854747849697192150907382096446290983765278523365596397351971043218026980781295117247656889944079800116381834880782495026795087342059501160147232152551773449944077280378992076458029180815517548008189144790491127619331315460014561875495803496499583695217066382363353846633024280242586224140587646456263076323943346184480286989652836340826398013298091745693653418366039469181062243050970558371844437643869909553027096057120722077263971734612778878504354925840581014314608159060694394467769016473011418513786636970143068603080026153100091946224175811495109438293886608547563070287432923069216499019843617225321013062050368458784599680108338915431645558263233104037651239153140896905483903004556583337738114921490970967740974803543696821209610803883594721048797082865909091758864406975651334476810260874941220864358588206155180220006237379311975601071775003831554911531075737435016910669257111955722892373940846048231744144898106586611047940645636043869621462279525973564637358135995081396719152158182871428098229390109328872206935890743238567175648472294962640640955077046832536504875696726786611493691812014257187996175931228892955109141774656611146567390681049639097053784085836112665153489236140912037093859579382071275630764882171461799009711224973564301043834822434748562813874272265401492596936258013153459404730686183099813846071280511746174674562728730453304008640170930029927421622604419957815819715340832147262628686939673676613892138108114571993274120145276135502895308590195957204754679977456389591733012671277969423126851936401374245358666912137212498232211921093292815258385465803473968233307397068435899248120632611356112086296529800889918350349055615755647981335299543072189380053693006907652906426345137703975385115892195493467424123346120165799156277993546661158239051613132174552590124603984067921727592646125942518450547872365755324244998095529249490675287746346997001531154208856339591835682494831088107344240743262867312579985847592915112249199102590212604452891236918485630364332615064945611896862739472682995650379796359260430246073375467201747136542436160217896311106726771991259193894102047662569015794260451660031395954239330009604892371504908676791298958496959734782103204483012876831128322151069211331779938243647314969779145578191239052110203021483058110675859209754316818996845680491912769350592285250842812830810274157820959438160663046842047128602952261750012473958174263905359464371461335238787875261154439073831975582340694254626653844145409348871744822420700277038665328660837939687804766438840883356620636102066079629332814966629009918731141665587744731083820128581866408109126658761941686935142765417491668601263596952956614664713110156016581224546887852105380226691885426548225918507319401122515868695682878897506708572459891440902185425670565427980449390625272114413737256118353986793378949511090592631974871272701747810903550347361302062799279250073843114973393196959596696265284853818284629253148567144060219874152188908522923371252912423337738036752436069217871747770208143116248072510129691306625635657228912584526968709923809561794460081177049015655607964944432126498422369319007291577347403678904426161386750650803870709200094851756901392874990411970589432420919509422544734747744393322635161704196341892386482948951040886490050222957756332593670386875674591122279290062902195487911036001466895104268117221898431848002735457761438503352149091271151162465737492086891497829325477111432790947372241462548101389306851053015086465835486792672871077966259836423685272300247264041290686706117668416518029771551227109984539349410676591984775818919546417565589285456734294256154288611959513909331901678155690984079177937354908875798923125684511312202075567825926892273737838356741876286894141118473725066324566559150293177301437225310030582413656270220833618213841291416733468526116508249145691963981644648443356630469533128880515825563714231121197967881516947608598712821444630608605450384085949900767253993517455148682282067916485981179190176842711699776834731657241519831922826561128424008034452272045568543530584042280583198861981809749192603526023948414950987231946256604086834998142462561766250563372183768919412814835095167477053898851443955602694163971467865908573014913292820809292953881832340369420802177734333602199918867715940746699098289672050670833080633609415675858318521644039809669870979549795453538805537527750369857396926558579275460841140761674428015740535080719228778883180423558725977458331738803952415781353857775158073475645103339490087433790159902791814860887303681774569900833843314048288282180855200416305853059249505142422723991792093010318872408380003500957239353311828043613465470147908281351371358488451184889335524216335049451892125109409923205497945358460824001283640489384207631453557041674737827168610685935166328133819915379591155584103508773842874565833009128736922944279762288009043590351320239620695714572112098177360342123035603886747164552205927379844618983099990607399901399979571323811206323162628110379507341346122631464581485979441104787264029496395462825096418433973067732791947867735442674185442299098394841218097377805454319818396359164950586395358071356596188505650796949742459741195107608615540003935489590778138666002765546624840589610960714592373306477469115255051902626837976198942589043992980057785951031554046020211672711631373860053152214937192141975883872535752281227906805970878935470533380188967665492707989053309234530576960498838839743365506951982196263878017743302526119781863754910642888395513061905914548822859848258798575064630161499594597610296397025208534815069465040091588249303306049438400397148638977679216307134118105871823868108677170627363022801048214676246110737220431186381749273644808901007744654013294903243751042297269239894994015513814221768070063727158324558291763356918763189785569654831963088857474084906364670300451268634608945528218252936343208839291755862376298859933105730198478589661226711041945887300462429612447199716816052606676370547792418161717838474477831692036452872322012390556229047121002027249822860030604486717150193434476749728011047794163623017162996649595711990073973750193887911450317975277451317479701296149161771070188023458882138751400150149825873053648504299566938638193182033767411198017258209728812554232429606670796505696021701215715638157125148250115425101125556697009739642324381671561572866801721057845752271215450682646543465463440685126064162300951422517044057970506576439460502729988618720801406824324999047983156056301061149078414911298425980446089568626706594004861170815703399813446861034925765613212572581842849594312713951085524293571486881246735724065971299184750044238355749810896395727901605983653444030309047356492292278258464443568805637364575855523838800921247001763343717249719449335674016859198077139833994752676013123917199707177534356372026312082983887363077447048991355020055240057897589419023600689998346132637885153382354224205225405227758438199258839477739102931577620728398339956005249848352790642392076109575364000945505672352608086996139442810156214509850583298974323152072590358387548719394456598634708347068505015588469858140244112443357705970751590972621033925394827641217987410463018275589141563025604136684575113593361193326533560412202215174065116375299400681129767666266336561363403769604502606970184446292858673304623099530167955338891143215827955257748201762618401071505844765353752857640809588637629428999374008115302331694000208453176597140521287452677942672287343494211552695903484757227216220815525742774358267541646007479334502093074813106160723028206406227643361632056813221083528050536922878760147576325139661382472182496829206824910851981007667421150776392284668442286755447522253213266201422447304128154841006676150897442163490906146007442265629629424431970735928953824401104776507958816678258234282008923508344746236931968441863889670351630986467197369276757621137389105811226637233050687158974236752485153370821662667647241418730260431289927319737944385824239099624381682215252549647043404808860650124418308568150193063185087829211468071016999796828631770920539901713121028509140486888052594024460900021332447161147922941276393372588689640229765182279198936483669526254095132511864925419167410052245542646836305764560029385040200532460889421910232644040190960073721673548708102157269919258164564240360500365813059433548659294378664274950358237929759033861467228079263257159598533037922420572981734077559547877214201251077222917274195395717497678527197423659103516547960801450251982809918081553039362794383831526514728103693353570826495597905828237570347371798933277273633752741153264003378315564923018622081402340194181397861668368521264723469723071346139364629743484650536281646468479417654441936543981395444699869088779171296499069579109924861928120511320814535758212321484498440132812534080398883573515375889282677988581373297790183919076079725931508265053882512335043748577589381201123254823343861497151564826698816101633780159295782564214626580786781890980078863870619075868443521621182116639753613427089310707046868846943184834226957175884274608594907884701860892989167744105778153643255185553303233922574981230141379170640082501761016710477407215962857511971377977130136266416261028657364302895985514905101220275278705595079301189483035958170782517874411518435527699576821397377055108678852261352123590432632773606231677811822991477374133954198528839666715419458818416844228060833308419524131496483089562360237493430503269287569490470672552838234462662614264804050324557116580157971646502330913013529943907258722445342233749658899006577817895329448803150630846873182622608638581336189679612689167115575650855847940466292068427331671211100274803147012375985451847810231219329322206721398902658950427715873735074111681676947184559965004954825923335015331802786200273143452147732182075196164645517020356416121559805907521813606655437255214577044974080082252779035673761431182765712810050558976483944744883961816627544059149131149469700885198266401255228617783948728742478066086832309804113299587087603759573979932135754386658663936409214386055451739181115123599568511697215735263436615349246143692472239265087416473207972996266149310718706009718911521673584860990885137177057339472301905711444195454273076670525435873434831235792026889064738604420037924581342310286147148600990161986533627684890696609405609756413200925921269670681607845969918783586666687908181661856920097390776694169021778520026024399851339377333136935909519779971066481035896074909090646553566226857521665417572575583786524458373778037526082684218146422683979410710035646643657957977113782350809562988575193987190640932695686775060306078908390568498557138968118104254028452884570207193441863261168863519804565470124686912823681930436146262374762099708812551190497935196477678149300723155446526384104849477607434022043233008634224171484330332613304510660454458412619228919968022128477725458885978862646242796658843566185827420292903519220752678511236414657226674018782769403581744771393482375226795041354801724702463666651477205133545927756855175569718528267589276273908968231989576791081991336027694525436404902165144087587155897892808295418721198471184837539194968199355695763717737211116586535805954964047036836298919366753038975961354266381021548089304527979076353626088822151212659861276441942254678360969463764061093668666319442069168837657168074882448986842331735580738451271972436647140282536639230251098705097835415822348465993050419334888538555155557164099096187083544673602413722456184966231777028854268354181914428199102410373101251098142669773775094275299960906470189063941048769156523553448450294526368151712584788558663344031633726566534070731168424461868532921834629651302478217326890619955380739226241931951100411647508935051643621486693024667381408029360031373647419071077048960697460337722089697138559922936253951061396746518287788868175468490784852848351777031720814376539700671160199080800344409560247238367387047728608317357298788876324623621215159768028299441055880571417267651204139181763265413652883256797938972465424744788193205375919865052704542757190377252474368346280821125521584864646523539664317425000132792341771620221502284824914363189077494512469837617381322520236439069766855201318245768928802757106709304446275438982071187420007873857283496228162775736457146367485714241168744862721289294390690096830865245847620615467204385545715102437443817556449496743024258327439323996893008302257383917921242788599467828304224112830737932737366165129023033107567881481491376163456333425057389751396200908762453609382016346268134427387143599791195874121818673254691625613262309828423178662849039579749585953749673704551018426857256691539848844883779399710721035059203586356846441971410110975580293514532080650425932686044927665442276828293185855051967559009707861480744689094338688352898854026742268364327678387017713610559141229308541931008633573311027323933819803556676441458825241154527937121210310034023897384910610921450536945708814116722276067960403033400033425188028376638924798672377734098376202381355173420502760588276966597052846334305664100919581016237472939889431795109000091149658481061759048747778773897402980244570714767507607210189406004852374473038672799242623375568474072855503381088114114290880067492922119672918089885430234292357684731972434799559245572046542920586430446637798983409521833237678213613691812424369163514341465240761880267888681133490904948725908291241857968568770919561911244756256165741584190727917993782629654016975328442321597469289210142496445145482879513780711559108453001633621777606649200465672696502450388570518977300991869298983127879576345479395727968281360915537417016904561132946328892252566114965928201649218055049789486986555693226531724735981898259494127432403984248706668699488657449522859312561174585412663339503038659562364224506277950844378344762308872029646458149889293839531804749996156507519111293350402082738355244018905406143948023022750025868985812682245129466666693708691802000534983946410883738885572728119867150021340906140811096428205715029106171093114557905415462221241723274456975149189108376594637211659783027923542840066538599404947720038475484540701473024911838457760110255226636342173656025444193784351766959290687310932612435263219860615233002366022327647373431084399126765744784094393808142539914757603580484814261755918351219531095951893564206128785735794275810127773772032014431679143277952270779827321770776238378521141744293004879658845620549601720768495416616194843740724803059486907922176453623570041844427716347450924850556754333175770481072562985293099663725958475237322648799904514595817302423449939570818794128368012797138964930354415605843000174178258970370635921541202100817031597991305400082096800650676783502496401845552060448567481748557080609901681847836499911890397632259893506393755600833088144275548455010418899877658945292140273694998556289007458471590533887803115200923701469994475568130522333130659937057691101687376732809534793689114157287697919713505404606401854713544757863330674222183519640074265329663486338567821585947716167928869746461822206780812124139144617880639562712024056714862567112784911541156393825837133479383020264715573702582201584517536141365467487270018610335425569096169053732400837475761026028604606018490273799360181383691408915348089811847037746841987370864185967846245803682647365004122824127625850790261420530732506115563148949266278424565849545755133493031045967122225406308381009416110885551989084731658480692588236905839509630239972674595358428792947706690707120203008055762386479461688641818620155910922855466947420617262282733032270454850233109226799977127554759521968481678905596322186676394341777528697176116171026950840275342791618667433170318634710445442887558078963914627887537367525451272724408792747684421342949503625104259101049443675511962867401213420326082968755014894339661926849118634099193627721237673672295679242486156953868866013037305171800363369352665040900658040086955544820791994672317543866515891877847118634556163325103332441621997971032312536782751620666861982186384421214424086346796426371358142368952168435619421788053033409334584798178241480226909534562995427428524706068936566537356588744297364867021046831504929316179812782659800085280035843235769555890693443104296641543531905539958095047413895548048933023543896387502710070830536305796364129970060064464792192602989615785656363618478865631584302033106838141653043316472154635976266840933584574134452415616992877395082977766626837813330247961502914901918674130245574514180702756513890548817652692730863700575817740477883487426086331075537385944936218237841584049948118337608910902773517802356027847049800614005180132595395445012537104624668661439939648489269211442122675673310670189347433451678942894314640118688726069307179046173042271164146933972579908134273741892957885287885126619054245853192949268706329853799427214830062608075679134447074386930090306788245940282797132855812467796205316993593701542634179358362707918902428517443173002562416902351199065640756339799978571424030928445756644377439904039111847263839874529997129980118846972918690813539314013983200839304710204825897466618148201968071540196188567692149102866720135732090209537715271588183190050031061596147580101343006440075201046216985976603148000726447758090159208967293003138718996074592026811292941447121173509098164153224297411534158322094475051774440291584741245193658299887745996743347631403225255017521412043898306444074905258884140463058725272569690022282930528434694776839011425876179132260787779229326260100279440570604341872243264973918330896731970736451061986349934072590238414398099693245414739019298269523045266107261880543750590743247729922747351569590244578902833216198915805472388738452199833377341264755738588420208519861574199073820168584739224692804628559768740612223964165971600565090194395786778899058689814175969767106013304236190762447972318002353682264027759022810606939112269152544501628834949194449280032889916312316769726506264839592904047697037417107292216603637308814363628630459456693997001793030561748140399265124131806233489251679223368133254552732041050551600071191580698660957319042303611666414069898383175823993468711026352667823439577765299881873553705991658572603414960151250779308889165423044866279281507082768173320522061966014197044599012821726540134574116709441032519756437434947930384128400274590787108483173257498529530068172044271757747852963313628635363912814286243193870971201809808704688713864270414520413031993455342507952627127721997622036760384282046546190289092178527427085294374360218665742737123551466223213778918946166302117475162104202793284878098745371322221860473882177518053966773610267443051786159788467723578805336731483870540604475066540425962382360930008385881712496426299852979125738080207322231866469487718080482178506798729934735652858641053764370692293085234813331721938982474383550983976666514629643190989788420954679879263295503147436025930870998175320121127869238580479089083049702852264328769315531427480329467769299452979900082887657333364835240504179248918271035923235863924225060995987535992524207070961728336526619508118415022305327498879714449003621117440003499745537300388599384685790198828468355698554302683203348390069279150982937112369285515095779403916239918857948998259630207109096093849243888749398090312435295042919078736636158333353312003705794768748796228055212835322335148538774461610705437832142086806618682098719195433860710027864883403041062846168260286766325953537922730804784375021430053998182651197870055236708115246545632604233471342533949676444842795343006892259577596936945251267570035795787052003618474611505583856234238137539558730600171340001293459389916959385978641968851411018850210640689464152858203274414149755490844918041408436250957809793149197599332464176075960796340911519526988884281820360646062927155715326483485731340556770925529212570987195259070522092859035613162774223770579404032789911756301419791880079204288068187766229230091963244477641496023356306747667020407042579873655572150189232952476739167022030934691705298855515659110617784741914910778756810845407824347541789154826854107515989563102911477816515781131895468338813830599527482489363064527351388370923817224630429751021228246108259484858967462012344385605983615167448083322936191413919838181778457262272816971017320224305836438056008104597965311559033669855728345635891252015608470064379246513663321876454922219841772248948586354017859496248307638010493196637698499041010568381829766985592796829021905225297352749659403442873606622735895308740805558906945983567819711592076768321519329509755548740500113593814047477916919112968978305270922732614705556734488024277067567111781679110065641893187434901102036696891750462970710194190934724776519662829596515590405839202686058174439033559568746195144596455534029530292105545643000846009169462628221973257233723471098545704314467698437224538458763288387951254600808123962821359290745159609542670832852799235068535875419147533929336352168769547147861327049874681307988488053467922436082052050979940585722689353014648109127418762570784443978351951172192149041357065449477349006482875072980472284467938618887220978020377564778744818509879504686082948767704227571615439726314045887630490373167530806252777877080581118077375087396156943195445858918775368634979444292169137442892571255776377982079573217354676985010289706414289276258040848288442888852779502159487764988426145244089991981306590391032259620949455030433419631990717619558349558813332657387325111271167734827873482789151360024370543090702921389629903959700233349680140781511933235453071064252902014071282633863706854462588573016405982108617442439898536752585623583574171717860308004993343961607836146463850868848081006809359459936535767072319236631958134655637259277071268117378081670437997789540768974910486259412186130524600155722282563781971323211870800754973720621411414183203319090573504156198307453286539373179149654506003510238155490551019837081432555418355764788815679167030228314657274746944357444467911740113010274799763574100634139075529547026733790358023518374700970152985433013801972084502582793980552235149586946377447705353740720151569134854270941286893759563428292061428500336422156454336541947207027337578832769016449237666935779170056572343849388952083661677123696233108338633516944809849337094447833310122163561818875625217109720700414081633246766813221597776651774980782387320582525592009139029860866075829652039550039342453257688281309537772809702651344781282959342317356145134253180356673362198443377885361708255855282361185025901398686423258445466621577704442492222507955115034571033706820229629708011019049010257357573720650047590339455745976945039728406675207831597376597222601736904373266059048084473746442039696684319054136729504910935210691423555872483721200827183413357165604410450091726626769668611444852123670724086046423501002911715911731643127270454411714210511053466658948382828186973520906380326046467983306694350824977977394248483941034010386934192110051402985155146307108428628468292911589785833563850527539378635286379156587440356385959580333777014950129697163645070328919496761960341829048997799993770715444398274575387625958235710856650503574294660190854523223749846736147898469415272443835077536803962009012299916378682959097803306067501308899033960061023021883933911698609705181324431685013639139507476150618709343792310140860458329423618279193017006931944111935292749958110987030829696877213343075846172845163621579213162720109566053707151165359963928082127697106364923091818540203547401371801018038687189194766099596112325265628995942585115468589262623625137914562121287449113678479745453038648642127862002479503952856286093813331674990049631389697478330480909155234096411707764452921285805003687210935971956869260532510525018487661606879174995063014889966008075215342211210106628847213828565436663548804346961617930659161481603587366571437157147304276151282120830501806422147197334288652710681717786470727697487821233164757021003640394232661574767454048963767865553301077638942103381618167398902001275565736999452823660689525311164766070455340071368958322978788575185370868591451017743081226909468815014728372897235624421491302725538871167751281828272321684137886599205536477332986322968322789541399332492967999100978953958434267329170391249553393619509762850333985661347223447586109251511741047994532605335208199195450134489604744896978920022073842466526012338489714503572432514937717988636036635106242377603876854577373803273349649614704072019428839695000383867632873434563455064327834439162033557533705031889278841020168003246826150208811562712727596581410302995941743711349751509764284650807786777657905444237679920836504732435762427233614581319418305984862656081857631161320601255602929811571075466223397920800016064491628950219614745108837687356059901724718676612722259014266590950225043535729779886395018050164199639069302531237661205708187843597561850618802450990792828674578530464392710274962601598324960178980545990265846734232651635954558906335604446293724229827271592250935637732557698744443168875391575078652162603747403878877599863112251075306600078251805410714503002084576312540949295967461579577529164039147156768132009937591204715510230009357212416203103443259121286472565773211836774368032124151573805009372663879407276595235524265067086323586132159808519753224134375191284701670819747862061574156498780047192755356651859181034897057440015243501449681229783954553994098586113669022569658076975680435194049101327415566624100865104235296657960595145438147072129344331550473201118398908466403640828122906891825270100765309062521954008194513988809344467334431474971134388989554067952597564840722363375098213137152474378476264577334941210929456128876036893290064168539609490843128143259649042558827450495941220152848368028940866689652558470951978413683307175970474440659129632758753491417888874609538493587944266889892616123444081413671540050970030061487311700380398516385973747586906564608717142098450346068946888764560373896443679816025220113410291680879071202703831102065812579335982958925455153389626764697710606987530432467825377838127296318212844051307231534066877676629831756102625166460515104439370372224941332308255127402477175344737224859028691352152708404198342377746532145565555568319357562387621530768510249598508874529715411559089582256573041496445789452616664338874825220984333675536798249410654853922801010762775045073996066196885895227258092500961292855326180786790213471022450781592814449688174487665418337462134770811104359766772831435925591355637981123912214512579999796649265702202522832718034721541144097510558016439809405872049867067567531043519079466382318822372967736122571367826393540359369482854869928673147219724833822506085843344402690802000421199891064011331217861650929241852821889687715928371756193800170763024575642609066030626700479372305134225527946561721135788020310200024219118996482222546796639609284277883045157550711965256082867677679550881773792162203072520389653614882438080790998834783785869794329758351424088387448487118949735315163609003586066883644373435074371061236233770160124434899693176563491196668525476571186973077664620728784112361217166046864459466369395528222691734815141062669327831332433166517797737026219102575923261936150186795538074353427369902342886628801978919473483429321864031576784933853562032339579586325539539948491090762143543777948565742495257105807583933644938262429287718056909454745917852758752892750528828238888663130236841708103269838664730161570994741429851863794185321834911308587958984649818181339330539226700234179864466631363986589831644284372671333998060081043312752871978412479235781319897376994120020135792323454351684227324299401558432279765226165387945721740466613500469728901384535909188198766468605575931280474497284883637197860055052238627683843116058449338586286003164825595733514085150305458801404145059595430299418126325375443238255081570935776893422821276289914065950197111318232016826144557843811320524937002973528624520417440105561623002893885828033281840678473020985005268476764428541168381471992489495011499496377794083495958212818973522837918105050494439323011491892634649429301923849795431166591177799109111343185181422718077215142513644437633708920977991067830776281640107964791818504754203230775524634729913149305073768531191628124265002197250499519087664042149408405918613462772006852868944123267658818482629512270332462550137857735798844129757133292084174245910729800791437225114625434351647410623060688751613376466583255895262415980537244279274915003451219129388943323757131650231876741911251175932721310795108965543183523636711816745473822094711268742676182482819284073109212145237377542648089078890964049929532568908406879940115538690263160506396965668595353131597400669989525904138625503416521327673392702891720533961096620586458140580881731610903785722348689202537299037865121080148440694994698388960725469163219011043722310691752913453713161325380265956964010336896857810464182593425631307180083725385984354963935785504550516116310416056106743473844266749489488939252673787714566494172097030566458956165892162306962664102632988651003456428761715250252160748262004118141054770636938425846853219799722924583425094895995582387144330116863662708195805188602237885923045479909321034539419727632883367849097283226326503896380981663544912201397954360048319925041704495015102971804696350507608596001919488222734676222396003255052190512329345865900546393395916817961950761736385216483883188199050105601067767859769017317995520228100027744077650295515211610445220784862056202570623368187719357087732840843986612877693970327183541616832152554642735016876339806072249776557672539115771512826455476155271466484069579845185248597851828518935232546571422945020510999268717517698308751888764255698669727433648199655856687749475084581831029095390007655495135973881262240534487359669768539195265605828484459989264461523518130989716859431796881777639484045026549762320231876505192081984301086205838467187605102131103949144316949907850641772646454796721890973210562644702845293181644017562924337222098810413809566212974238216801603846188028141305727816499354090329024569135052958694332549986486250993237630583354287762934767006418213477421279360221923757267105899697983398571319536763425467262601156456695495287892151718392640009912415116905638630673059811814144283380148177831435485869857191187089773224006117792682417175308577502321950824019847925925420471011195035574931807624015173038369775056936975166410606455923505024081892863203733490353262586327956070085177681982175630427812226931770953922310918288679363876571671619835416274763566937403758208230593605775168791943972502768192348342763241119786033573288882835020829838717966050805736850181780250045349983901890734059872082510963801242145920297315921324858398191341579747841142550058304074568904556941035263122274886115247604190879995997977199179739572401942993534210793014399544852012784970923865212769667046384836838142098167191693636448260865141213685961954469158111230113489757003797476307131325787222665784338989080400181961462528728499852323372345682775416911940856515563567980833154207718145815898085778187834072465524566166346335972090043687830945744700851388820769301812195577444579299130652480642020732517665695731046634158484113801456759240910040022044489126324091320333693642163779502457970784984830562999890064571458520411630522239154778258763723781165344111932972760469428807985367640869690798364794877881419542726182374935670651927771084563458983334542550744757997185914556448253757367009260006812479969499441614987894456089557372113463867656544957453056438061987591511995894734413846162676978985020973412329383545490673445711487533879234234407352858528121105403274279615825614764271270544960297479491100578910422982019166922275464004288424108652938315325733257452883171422846075558355314047233686418906754622857320233176964649317879871390311692479487291883968119329760070972192773579053787408474521995084724302159278358307139028327499881190836430689255845917286187138709121385505314201164534413299343979910916631303136863885388832962154963437916258337425279399371479095884092610321358707422711228445340343159925580215824769159598470286067361786178931631473605508212630509006408020047779570895927856370733616605180039041501198038001309556811071008103404657605380969602269767656195046705633179902044510504136800200309366704559196085201788926664854173915439904204514278949989190140257675005990600845729573918461807824512672641820051192330721181177585374409492592193600323590314328299113696816011910806512420794144451669097940205299869145048725895863018838389301616908689472973392049801051409482596809246722177904868636394203035286127460702805732789368976724272919935206153789247939836646021687252974681063710107476238904456797378875184650793286202283836358301151808556756568893709750234261857990817076971721260212509337855422630284178521213488015878646218348382733173153886648377651493316592640105330849669798780864511185814457617915302986263967556408866851270420457847504902410028892937238166964517323230153393500624936283578970275040581284266989407247918297283321480492697931726037931624532861399265398489448321782398226688839290271940890612907019490925610208794369825091072805259534756431648999345945877324926678821301529807517464989672716448486000397039136302935019000446580308171061678494455045368017292859239490130390469050399978075679326373228915592996466251816349386014971153876502607748659415564604411339038596977416847122398288798652414113444617442607745848445684389246282636934649663130530070500924028895990569701508446077467238921765986253207643396551532566930793233117309350197995981857760956336835888025550984827082992625439873179411840219956903930262579324114473946311240501243661227438624752237514220082150234031034496838999606581804449928334938412237093280756603785200006708025835659243651886710092438971565287222701933149449536162227940531157374310149260023851870533071983139762826150711591193673464446430665023646240818497077102680352143461346886329187258205315056816844335978025525015276246809232655909314688869540184347785586289315534871386315645988821290700596183920534997456853328997191116176303279402449125248309810982472621135393765605354490353281249613499285875343090137958693210730914233929954266654387443413576037347574019852010108583669183582080356818813359060795054259565685886258188057161905403904614058418793492596493727705682970131716009004714014049045263830534778560450001029718366413400087292215014164834469352824232461750773071661630567094085539199206796474598152278093902094341583049779395611708402210975275101209174261356835252509272881349223319783004685215600872927849765142745370192400546569210995893114367322668391707541431714287278375469132938883740282942614927198343572053188544054249528915535191527391221262495652996930929939919367579644700709935363292804411712570395017784268778879088467394750705014371592728021752417318587714901896430437746221925626712310619343404145869596317492016021675003065736171329909794238611366004748988728446615268622751610629366353215275067935078895163040177574962422793308081584813142809060312791573647566955998651657340136977842545699613403263144524390335631254883274589623182318116479430766345311174277885178714132168700129326109524632730949233896087848634400974382527530068455846046636193681091288251636583252354727504568500094746821729478810549449505327414352958240115691380514204342316423619510038818567648101869584849239851243468407469214063255948194698158851869103286038927979738785080444086417540794137971181943437976979745152252091056549490418028534486897131827199616194530092689088887193079301125171067307731061411449964922715954893084073130829518528157850134374816806163766051189837175867919780869878671081755982235934106324383829396151342651398279166132349014299864741650078678389427866479298017754012393847615302811357436826033955364731312759103552145944218586089143700717158699605705319657885478886558926926039242299772759042670188521420488021710334924918887100053573012531379560356315196078978036701147136941816714171215635126593145734556391554697796238514762524078036867844280775812409445311282536652269086008717052080439034223711531758714196519099594347116289364963716769600432172214542674775994025814068195798811875981622532696070036523931833449848233135042045807482774819806013778506089134771068222814100698801937846701222557681877016339915741441789195039199260492620904476744079899548216376650179495252652505838947773906186743962897174348941510469302611299681049310473105858269018461129565223313702546784821787856748261552308689351330655731283408202489862159173446582207156489956471514188992364252471798572422561702966242174880214711833655752882410389998386344399044923858144748570276869031821882787240002541630952997962991528338222360063183388157004178053230539194796051663538274601319864135651898562272889448991596000440551916495249159603434782840592433432301278990674029416491429328346082881839573917268205098679198032164294778577331104892174782162019645573320699417650916583861717335076153826418800523966042909149219785940336256869278351300772173113177134940603090305248842534867885220112354311299975590948497911799961912220307259925796911447820356127431881916243522330932024986010342213564713052310731705413312759077165103100786251702594230961465756402416870053421941952847389354810643730727723123802990282907823346302152452712195643623966990481762016841283142976134248789609147120070982108975791867350708109684378558262759909866427616046486647964651474240571440028814875060032651863895360715777229498413216755693618467418077039555263380549087044189186852217519710846082683395661699318580356735174114344265592729719289072078302124078476764504407359018921509334081609852503930555786185515997305417850819474725694635792736468169780315682059340382570957780649111744066718580831057629263329682315059949844525540842760287910651988392667100089996821531401259509910047910382160718291301763247596017878951443792379211334187530225083077541538865824223562356853353099071366876256240986497537996119970938756830656426322450759282799871356367826271888209007600448378146042240246645984426892452174594340035060107776551458788410211644351030701340692890705254936371539249707902399105339291496418177789606337832003213158287831780645829719323659532536357489042351141036310068957343350200524373357136301447433169699116427827288390700237913301178730373773343437317692224713211690141843804184198636182065430915244227392547236799137585173405032231386058223844944948929572753200966190944218395344787857857869217650674192562568300870454635046291366390444384354003090264885647068606446578985934540834309124363368884043611221233958927705037157238494369710504837764314323104201113449300673205363899882267743285391354808532917850539699724352792690391582706897344634342086985008194527598216631365860339410547669961846599770462054278497933705441052271163508258073690522615515589087421338780714627302563003901900846403106314617054484628590687383336647278047796287497456819815460975083864239831792171829543888712545756184762255911914200787252578367668584459143843497767479614395312390513159299069019702111104680169623622395523180599165826006064872566593055270936030200706571843261119909018286931793494118069251774609393600325847373771834112725093203155224086407551063584305235198821291213857301620897506394187277650294498830661117079327974160165094787773607527396598042983304821311959326007070525528241169309024843539158399208488602403718215202194098630574613952475323364586168122569527756199236498903756359639016692176030529150308092739772204779702818608071021164790189834136115173951881219161331411970783668106344768629418213885784426210928371402715997167450746750665712782414671328660600122421117139923570515832378208171461047879297515611260705855660293884907597157624192070740544486499170522076105124378333245005534544931806272254773646126426859195322510123958753800467075424647433935004011106198045992634724643442853401408713881419014085982444904679414114886729434684677881042247056544610124417683216189212564015330856007212291166991402815986404135587408684197828235605160005754533063058410009631195277651570746991895711505473399743565081646172990736223030032453630456906869994129890067868724330925986618249293051366614754241058686656093739780679939443637075141754516107844395105010340275025159581186996686868709448852790835786811908539921643850624433984643318906284877598979721750567282206706004377749706425695938240453533669721006979013901308790220644052273165923144500304086893773842730894249204728126740880517050868935015984240613001607885776866230054026794554640965527675941975485250973949043684561085555096865237066422114738257149842270839903434224585957423352176928606197845065409081647110941691153651569667722610063500096805900432746151305486483330777764839717696374932751157337564027196231418564029929844111652001843586920702064824397700549908931265803612211066698381787380743494646991105821585081352753099957689333735045222870603578958141030302947991820337973927520718297461110121249517313776306965884663153500563666529922888243307373462217431974940303398875838456856974155912147952471078833464174447160059101060402648766044865157083494038726409819554762740805393491369006684551304781155995580732033347311769152666435451635726573123687399752167601719342522732128812898346608594674962908071609181723810863488665562157325464254718128945376176882291454370225546428213184399461131519281819153853972321764426556985518021461632972737466397533573587959092969525522439557115709507581334931758063946948213853981697522749531737755342191691663066569182419763797569394806025380406429537471607523304940476737654630089014782803664091520444050491462722961024694832541315376218176519870832193364387767095075641083120381169430844350722251165960187820876298107459559970213620413630384425648006863380927973670786964646649964483251601322939340651619088640582418920568123645766818756411681693299122678653225941310828570566148232719249058199944348253714091342570551253789130950012398098656153954317768708425770543000379338790663255483832684899032352253202003186158694301443919620800957157767270395763683776150888880982474354236114899185006322821651921727096434152564169200799923689061967303425701678944793931051570569556161511646851067826346033981068712573842504212518761287844646028784303350448064058929765276916267956274422811494391103371379167034767927851785413581606479433160295168615301212205413045429397905672743709954238257940023154367970092783298077311211261557107968891983894926844592224773635618392034000405041805119237505303110520596689815425409516421268287988378151990505630278257543943397582660446975622459552623400576655110770294848702415732156500519520168951834971940290237211562906986306574253807020558596443417470608905426646447724351383922764798560512409401490257676369335844338742327719250325361320814723004414639607983530273996075160362892394330409706698877506797203887146892974147960835991490180533499128489941422835172790326122707470525615510447121287469836504003160784473081842544617799810619261130940152552592078454384303032043035802174950687383413417512477095642707558591556648431227981685080454769263885151290590327892546162761260271368395312096565842564678341300781338539292612373039902701056545958328693957088422147046571285334755252969227968299763593023468559141693894224338106679583743370774213542084186912364808912037318055718935187246383022246276246526450606288477443782113280831736092838994321950962691545802460739478630115115732948555768199820689605749740207156451194809938725220420403724884213695517628676893206735404712575096927027224091675158088727659264011210295041986857395150804140809748971942324414132415815202015855658571025193278549024690494898200171010827724947654512186525181498436975392689821275005282522457930722931425405600056340572386211195219272799099016277685027308570867176508469502782975024816030348137366120898767326631597479104421933069023174056491364252367386118476723794527081981803144218014949015097865292329994730468003497681717597374716504943856051953341620356085674559794726278403587501540192468679200158762205160790795854356419079419455478465399238772540133354457310329657187949866567349454761897951490724261696482465741961976771756579667591491497841913198375244300370991250747579973665122455840775261593376649179245114067821559133920634545216451724653624477460827186769055403776242274440280661489243519462357914393696366702370526851522265603369088931291818196930440751813338616359136779966776523947445396162846469245780522708612125783424266691478302231043482212772490235973656096351118043946506558190337603102900891172846615338049999666325549072159932884093563810998532755858073701725170800396043575185583297612003685469270883731543392281793087940147245105267540454301036972244758617342940342637939113534073264747911910337685530206525712712300277855267157081341740291331530465006435302958881436606050493121330108545918078415448777092319563467360062758939108428990407125002105395272417354803943603006022232197344422222276151640702329008546099782672860788315830450897649267172718104538825326547671294005991418697078934491556725733647645636934811264223045140566653686875933833895103145246574764264079140393123103773222788112480654591384130880627649505647147222755699193671793065397089714323383707486794600344627170576192399254985464247622935633738908402661682361787857326938204631649156006234733435400704180330129379780925770342391845451322326554763841168908580857550902970827337958871479339302548755534149467233307469429757682729570377056034959069310761831307354269136537907044554760445703155733274268561431777834420856986228464193915298901949600256210520160430469668809890936802389506657096089452639079577135301341290184585946409728350771588563129317876025569346237841885921727552542527533593787907646403402594910491159706845304831463572690042833774703284524866634917278260431878320722571747521444890808454721496345609274432625313093351291117744439580451449433050431051015104794788588382882220035002962540228325747439802946851885276676779935421929058815333013565449825291706483443591507557606407960299893014224118401970026949628555360774544112986429562245350748220237208895380484264458196969897695155996147881733968105012454304559066498406183553186501601185578774280372756725058890363022592484634240903751478171507121985091696770968040827429135324209043792357410559794281437224520708916073845155494242610608300973703803560282382539354104311683796453346094123675619325942349610364645262850092167537062079080106161037829338841627577089760006092036605371406683075127273460068248578670204042131890623031897994954704942737483495534761961636566399678761374064947260581176082289285584345194604428064447304316986323767197108884169281512942709038200052809411308476757671891172513438487703519533556462263138018714442843134360170319817434352564127036775494710569908487354806176625742660142154919686946376854087465758269614674137861880248975545938039351627606448292870488211073478887957299097883492230244271233966495623000172417614466327154311789763579223670722434581971942633111630239934249360600194442042672003113117418142416502541683814315818732206459578813248809764459450095469121990521972941863942226572408080811195917844509128143559992869773556708450159339837845362102541007334702726373216530205427604485710565941716537296326432052635297821162911285719974569276632646291258354799967213198660276738763060467525404399669256240119394349792656461858364529783180205919240232003337881589355806354524872689290561958595130022242737885890304314644781907746800445500953736314833734280462064449160810381222734854686940650286911517411314449190255186815188476376540479048341854523676253947056952510198581045675016126327757593378525804692052466570910855122869931280229978924994589468037338409946017342173550742295783233934602672226284370766114009856183183457496721821259282519240408010610114540011249817393501195739520828563653155249671110879343709866497642321355533305007511241741611305419280504770377763109611625263276813863315114485065908310159642874095856541253937078403987316043108474807131805901695258409563030731904429708806513381917933944520220561963340751277286589369246256781444910898566324953120901567084115896521320404575608248037779701042141525388169063298167560306787097118727065399648981623702250943952773907291256666335113281623141778337531579791957683738814749068289421043086779569878681354090041038439781082325898439414085927090795302678384276463849555961606328657984646811432803788444140975645487806189871604226859907850974368041232296227027563846911426318348366889612305571207465390495297996631119422768293775844876553669459760440698468363599249163619062817902784200672551673245044588564744286272351520307304202313189943465456518270310851093805048346138535432351550171900239389388386259933313394966109307317693579129631886909501797339329821754952482334910488114409865558664094083104189261463667690937663598402554611699711172937795973829761453392805950397064367121305128953301605958333721646128743879381610983174815926280791831851456048363405046856519703986483284885211296845842412983864500481765100503436084010565373924114151762660846409143775468127000814921794792422745370993539397214100266663343094176976918102851725602813013523005505121441547335733022235183486598569059118967738560788500125799477815852863230601979545067069149517243861895393460450204229391060942539600992127113423690943284293026796203330233135111074117145943227653270264267971430378919637148779293306770235589228370356581101453515496569313151291722181031103322236562899744848436622865814667897136582897672157716589934568932076961252347857151134408947241691756568978496258557990696827014281942021660623873752254108041061213023899200548736865181076913313375754230412937153160121590184797334523090686156217574657747214492156184695262257412702708244321472825172674291230450593079708880005748716059573891469440950359102028438965436205566178615629764905266062702993569148076671504587898212719747062519580649865315508149503949510929055409963949772624158695527987759710750136918986801512789843796297837173106540808130405299226049163474273734029049096613844105372444217944244413283596019544656357819845758879559271354523940531042733908686825990241368169964816210901742762277299694500304935495212926442539466185638581699681461803629376739612601353976922110287655595014034327309537022819839703633829258885069910430767728516880662635007466574522180456869091533941872421337631265029252293726828870686423487139250282779457216138253616086912874698158634734099159637048364181956200170275501576342294815094997888904002809214027728590951707211854187894566122755573483549465840179017929688241769081681268197297302710475639527622763993099757296994703600497606649118654001572193119986864457373768935782912481435741307885317189434127532513178002967683288183493270555005977497168962984052136886341611572514337028726946653745529186260867646938306028630204028047639635356075023100200065757978521810635704280236374729358759037238333045042024532628419666802973854876340106381365693588858704252274005623434948849280145907991188160205216037472552816667367514086059995460211134242267698791964080762236387503845950531098735940462829989739156971351663349943713079990107672860653915546368661886889406152340921644966777432609087906392177656122318947781842169504982170714246610459843399487456949128035035176877982614131338443992621693953243188342980460918663896725747759619228738929607065700670827196364968000859094125775253884089554076550867734426932524432125464923694398813555269362673582472009581176278680191758723343532218980340542993454917707550015902822589874776680251830162048767253798849391310937062290165350587763045655819735623916383734439636123103968727511654776744095140058087532087504368705118718823583842320993016881528785895615932507689393603113381993866288899143717230410502606199195891222193299877238902499690656750801870303230058778400293017636815792065143432675130954589739025892553216997598910430530467208568097560587900416710361854872110900898131757612314779528186123930095866161789940542557815511765300528858107463897330833093962952883448373355136264476605221681040820879893645679210900712794894629553558099272437076572968307934331181954534873650703478631131457446719749807056987644371779888912441300072349533244778119484283990484679543467984866251180206314638752586605793290036676941174329362901433561357051605748896005601436475781232510694309438935284490722253372042349578341013837864476942058362127154730149151262537239510044751259031350155916962504652661243994453425526692476980373683037453311554456128373600350714784911751953137278378732189163312551869603993427622222562304916037541963451153794853398051656097975117352618182804699987498094322711925978839368314306871402691939746523312955109000564866822209753354285114003225189676490709168690466975131129622733005399502762664250052672392256893108860789449121014996738459775463819324803925494953972288699917593236584742017259204759583707617814834630671416135608117342261075383045800750362513636077569357903668797614035591415333918682187127668953695252342306453015799942085276425436409523051352014290128886684365956772129900051940638950258136734463149904825917178005485135115087801176118411492270101117267887696630200069733312447633394474243617064577143953633272359886634764626023722473540243503687199514018498432301686832151388075450008596148098391174308103257606336852727754427503828026888090280231432330572787711527217718537205256924178149878025272598957104629970350435084878694560273275691674893467459958345621593093682520709261979605485611650042035380658727358575042314677402238762633656088590215081836533307591154109416577871821527226649166109622170645334435638867513628985025976955112612799366545550362110747704640062393650330507449112879457277562812661926159037029572347022610941101060256169463957929723603548037657301394931568919656215177103374785515581497896751846989174846589594462861959919079393267195356424747687154712398666550170557458506910369166317225387364482923840276839922285454476517204240281480952025071676357296424966638881420152480775040815357058008533598260487564804716609281450479884738002978977106019261312137093484721602443919577536425087921037649410200725475553388344536156608443455375402127521838007222735897307480254509503897296975230288938507792801215177410871503052759097642586839595116618354041300880870352045359336171740833821035830150544044343007843805197480966863614321933449060511538882057244738656603791830782161051084742770775263039415841885873442373315079742052964275406831167742343410993054905893595036479910280070918621112179885382189800652207795295151496712701496547129809698728601328670083573903559195054232054742954473471172894989323990137352326829816127139986982900597054378267210550763382892236700116082987137388648582025981164627733622775928516023843561812124165737176395208467561053152380972608629711798004017579788028689458380459323287287446542739298884366239288863132032746617974630059186522876856312496495415324823407979469524464259343546947954844191993914326263096811429962732627522739952355893525826403601033686510319035136936131091453383814447788709937140405486193414831133039682681103739104891141203380023277788919338201384313003086843671971703438292396909149324883430445426090607433686895843676285014042602364305402956939096129358298722631921736640700376165989873522122541551436518811995710500936334011472563477652420369275976897817299921776834190633220470087280591165004958572410665007436382623435203898550355343715941484018552868219437606909593112090729028397305074877394369265640817257443052572323342847619059664856964898337787738330276860732354319753228199763465141842759194515394022972337961896777244655577948196757881768501280707172207925394664866777230022308478687151226184666081766818829804724719494710631415906280682261295396783136086384779651838785938002110118597703754140120454063015848111068107348058101353836120042799289205481729896345255775243698222402978665676907415033913517168752518676661537805223838771859065804642063592532866707091809692512143351358293778397296722840032776697694354893312953568342077416662226150164846350028001680598067171560365224260398913468592043869236937684777848553207458714941952757499128945787214893771955167073280240410548532245330905960839123209192948391051988479491892755504130028751799041553649137401600484510044552077859680900283303906006912867984620254829009535624100163419359829298871200919961141753866816589916172913438064054799742021597137076834972718893603313585444588171908579920274968459192055585720271515721845163986529626007166750277338509316589700436683771066989411524612000585970035534494709999749193508010192345315071881621390417015519640968827207283627731119025558315440784105796599905152482206002977574895637557274198956690068482336663969625890498507651034147130441471039384123098027807672639690059624752649018643397184452889636620384943168886644120405481498043876251629300495281428381568788633005269775758466362989625076824860448175086459918444184645441689275856890663530501168951738408335290095302956684140803010230871935186066251220953032381947290750756544675971581302979962073423489365985653348665823733883253458819987973212295107782971698633596761195961013228046564245998772930461851549616616433091740905777447555217085840612690519201632213555933778407385958519041669502337983531380479262724938613209001950030345545784464480863319609919024564852879593881399437519523173362841338875290975769873897730373247185413562243564279238250216026830309056996110904236142771209349768265340978945670125701926791452725352404412760098730072349855038737804476665459271502296576130639812485209026228245577916501269999104715341186375360407486288590802770876944052817281709977908216816195538595675641632756165377017035575489815965506401342075970633676410852720522960521638017784611056831685264038568719349106897628375362742877942853143674136990189307929248683675026024181249188400759115522187860474120523069169216715123927946184587599288515351744206896663529579506469426236608577760179116531939645358028996090114065124785482808832575698735954242124073681758670663752705109295463148955622861351987856141892343043299700489810864376425726321783725239513565618269496573428486918422909093861668319800766872400050666019346804181936633451811655993979802579253298155431606941794566985002480286388233760183191617650000100187234148687880722008012783177501427598966835773568995430512083666843007159236233428470258372086422600621483782051136458647932695681859466825657607465051533303648163857150477702162834701226214641882054696786612936846472948424706312483378914071255708711033528359126575030492979585217766126427308451497759080878911586587889945262676825297553975501192125172358261613190198839851866278261430595329419668479693285426405670807410199096976582190089612916776618882197776786565352857891888617629162818719860650917129040063058335270315643524600011892391755420703023440940329837468516877461396435820935265940844618026345140510508502995731838083961137497731101669330123754781810727402399743212772372959074274744446134805953205176550460530403906348882872127212696145254141972494251896897382146689116054227266704641673650994517513385774409624086842126315119177981319771663133971841053999669095183136527054253204306160915660578643879324146936050865247537616832591941329746283883565881610656799207920190721630120211628243504758180630690504743881891518350448209811560482229678987345665294117538041895677609395970706417888926659785304969899567680614398780945638042391762338353761841602894309310849497689005751908064758534237435503018916308424051700619320627283370175188480498641420250878641612249187672062134115976761384040188745969918963361127970236337011542453177774578145704984702588242515501561971078832136712927517827906824000924063713373335695492034145271232881693014244495541584458694771399368031609268455464421473059240741698669345536789369906730427620553715312611316853083548687525530299133589045637701802689665084728512378448053560402701227386854908520271222866312406912560350653606263417147981240985189344752539577231288586753788776213050874396166387980477032767170830338628650660866665350612461944127664186889075702430500654468095199432373416401531914353989311177184081163142066583506066191435664157506217078751861655412010642436625744982908265409395812215179718240933407727900916348715667569501899473656900585225256383453699029046248268870834514356901019001176889363762832151420138207058543939400195357832473909427121041342600893944752445779534042257692031305850333210605784456978535405117881626907506641011510796178409307335731025068094048486638724512897170832422036377342332150745400990616188925870786222451811090479380424179525610060801512376509675859708591678942102404973075691660237136256958382679596730184440962142930542301413087045189329049522530534149526416968971864941963734787200562508104490739552549335006301293672189714379437302893226790381619046678203292808681017126738922645925287049509289366877588598047674011386249191324221055964714861621616198836050129368037588542615199746513691375536179061378133539014131703104578879127588771828533101203427533590229236302499330928992303470972451832254502753241311869827384958146824062784732472676994452389569880695286682781834985422198413452973698781458246378106079116811466162455797190307482121649135320171751340446511456216230922131153065257681618419647847554785942052625770544325003202774823513812803602844119321485117374835651254763862922729993680488132852628385485063513275820574555639217129242423111653608722460039499464731487021635692807153795247619926498014423512373865648999485491607080404663627800357240979945109597327266064905189460535497564923358628008239055430156724061285007608950150236090433191085650050270256076495557212352927520929994212524831828043336813399525472448716438450571424940269802729286913730761158930801143056656879397586254466822489100093136009263788400031981165641570457473370881487028384125332916960113759944271793869165700411870985476265345928933595748307239830843835617617781434570635849876769196756353417663781357866575255850270095987770729677956699209967381240328726242768147686210296233472411742841786037194616959580668280455915491762899959423294870261422231625665238808150059297161499442778811315673197221148033256541741122986154433234093665929154525544726769484475948003234898642528932164982193103595220427853640767160589310815769027416478430419651566740360206285895983082239733701879486118458439609580620799235132454205438680616228716202793998187310390546478125414131928786506167371283504057347175915176443132917900556174200186569001689631737248994455352084428558763311313826193943907327605411219417915543607018761866042140910419631971149114251124277388353342597649939618998075677221952625713649838329727435528191975889667204409707975848471859179645221253257800366898942875897008907728516968714755324869435033507438979416656724923405025767024560690947958243813264793545705306015662781514244985424141630360347883916467958053369425073509480167243858354979348630350151215042036095634564179895615107307593282458523198744219462965420583166697503680256229205581158864311018983383121741842884422371691013048867953162257398593731824117015270041217841891515726198217777533467389007107331621348793390971792009080378457374744052107546995802696038519931510813289752286533973944998309272238864643434241058423334117917370736503980808345909890385638937738447969088399442004790540160254805586497684041797039805973507286066628813574664446266656322301602610333505100636562110988404321622024975594475620693706848386458303169678452519334864862248468116628496918735948301351359753798197183428112273153737901874344774376750182577134242926294224930742287708940919817062499670457301792388204299102478979555182250629732743251215267275140267606878189359709883109897508529633679666847865702518478442813802020794498232651996082932654868120124979222557724625189861778350036748783197650041015078468440004990119834124011987906445242129435420802669781394240783345078884235069533411835203554479837892241299846198991551114383056267458587552630043017734210477518413571816839357402958013694760611160395109606190807446313243687325890949241595059302869534770394197614479371290713464876655377457795309765487944044177110433894353978087107490300240387924772021203151068623905846976029003600980675044908860214147068223249909482812216640877443080307726958904642081134488606808299575175764076422419425900647429625610060003522595812316443197356734115969497998676972412482533268122229060011909507635020252898114124583754159729213421205129193244597742757285407551548701670839871281397093524169131773973347414500005905519012906725078594556934188032865844489511668950549517785572823991579769896778520781515692011792344161633525545342500662167299439234347664070384329394388320969516856338807532390772114406840793594970287864456258601230721484698674796510792278691857946123634603347890909370904531967090248011854070471019723151514844603493847061744518486365437398997000970559019688183495739419560538888938718244705908835973985677472589521544306333215724234014296595308822952813118312299152338047639233510656598498213875974463772246475948715631877764851799322063059322850074264219247133189141317548089211487951516726502935978509616021589741291018870752663786284462059772999612816159817762822942926227866528782599707035223159968709659079981253782933752313966719886556103239644015784023046790115232909839093441140505369973895631074590205025842813061648406166957089182469678421617967660230821969815023357363189455543914046060861495036924690496729258503067495843942758194827883678025658340073868992456938229643351198704859381418658185992122798701965433380267962985474285461658146094138430698221096098906443484618894636074088764706433592334968323637126654158825186870737274228869584338461475740789092657460216858939151618804649347568247337767695434041599410435432737380821548115556278704970196864980284723625419647612905961040283845833056337603432099584423819264037150997162139817398657621480824962541000805677715375327657528251578326729779417662165500298482491117628160355680945538308484474729294636574617862941773247796367247206272937796344305057087001421409689326775871850243824568501866316898516325392648196175868374715006856837038449837444814452381163153626591349573952960217815287592849477223765533006843102465588779457919362137779080143936053081512371857741793524284079130971130289962849932405721554807326992236671881329070055442559778765789211018799209296728824157970584972155358169331668306843192167071592828215772614224433192408805879337588019906468877012097129543515411095237859291223536084876892917655389772928556203326088655418054997470809909574600311329132629265041560435080794087592011610223063619328206447711913723715771057030398336254526410995513608573394127091940700773500775011285168383343936459884467444102658389296839018601522894168283742588578654243945645305781046951270884967511238087312033488269571773407284957915878030198933982763261017041229478645889487550066949546139918388071576770204721908630714540908999717125056398131778464054309754896973655128918505640807093071359570568192115296370156795248551882429480653159031634637806095546243808037174485143277297667094870582221341046277432142181595441070201379385928996341585746842680875458925293006747760081256270227657009920998410729626929547445975279751217411189900501240247979881888240003375221462688692717681969551900446118636283252740183406627773719406889371165575945713836794887782492288369726987282195954462796761973847810200530947243943388319583563645164144408763568166811167940908785757271163865774037751620123578940651210005333145877156293251374675767439687350011479732980219754407795792908137445417621710295898408480033288793963674272109670446528444729695464245089665490926533405797437342989969563282906527817785139941585776144164253031949769620724141837464648370341630816173277629269506926323294447720436776713260283225264906484473321054397597187063575883004461154195773923968503099230744958585505803496152138362546779672277608284915685102600778909805252972768523843746519582502112714905758768285392871765532084259868575382001105590326453375681447859872144118416387860570923401086198718103776417319284263728787828531487379192070111745280948025006539003696747849914967895566168115623556146239379572377106435347038528423348050228851361314551095163254666786012203477830738702131060943374463536414038320205782103094137231221014207625701249667816818725451941984325970078957788078692513887781425109515494187524847450173054697021288091461135917819893761505667615804007741317819596336983991010254608706141170845338072203939601471726298785226921691791918379091000396431797292317638464762253209315247825154594823264811599625563495360312902403760255503758448040344777439886396644183023486903431791584218876499324360679318113133209862210283326675512580882315462599643907222341797867308023808217053560008224293562617278018012703647155673589507522123014845069813356480479163153768893248007476617134751377049526398256691718651546598852414917465102087693799234041241911155334328646772029270268714452166332870332213603750269437785336190379215319920236892841001755062097170844675298031852995509798146832385275237272712977078995792013604402082007304554253860174902433534941104474872136754483467804774708241256078292097978339865232431832853532838055515832092846484469634895914155743029215054199849506632837089732516741925431589164449996247458371183898681322298304277874617515108010145724356870370341166367064996707454005466846699696274567993060136677360437003509047421481700347073576670523989624716739177081498409978638983832790231603895432247115872363655988232077581243833651525936443301085828989054436604878010676708520786219936813379530422973967946453482475130521712769343223538883568113611672943032191121920560801687970210637209864357951491849865504790305204882763919550574656558403579268124178098039981651091300039513927329331362172365341802071045044740497635267277612350735453423597818887383708217904921786792100866795591046587455684074797547137945015997172347858863459265837256806790694994868960917768776576577348039793835377130777908503210814129956638416694424680931122969449345530400523757437387093577449713778033048964294868154349701908081879433662921515451929765863398064929298392580121333262667983230234012178971290219020518629109862594025340101034236077500821876221342163138408966851908616223656804552483558485882803569178186253298370761007171054531185332650216836803659849636373481305266328647369332388752319572804533743084696397461440247279471297490328982890781318494683707736817588318612350064027367118043174875141339449550297879306930629291080992931361056560246403919614716674783320293046194076733525101065696974863036425937141253259561560420876014248221359300096470580727344314193833464206918706961542555077164714945577185602329792706968547425690566628987319508799368707619451048582354919163405546362485156093498038172282944802289653088494234122720915454500129621756938329562066875427543954173577205397646102046141109339853617551207245588465051827629697658048014955519855413267665172332310448560149076589300526617989317229974484250504574795192991727388176696414733915562949885793648504048506226242535365510784655033763068649246082979403767663557171673793808793432150274091663076427247304471587831592069863183007097115888885766770834532218856643284354051310708444984852368919779489182509220562721143947763359087734597744186154310367660382262703308633992188071822979278642929955197038904920707848884474182468936095932676390192750354470046033579765971348808592260225311881884970915811293733829650635251645496324114631025884312629221963227003786703189647365026052885876550773522471869366174129089331173953294207368861985248462109889156734119698097001944833731827193271260913255510130513864761406132022536103426454600995043149011879583077626798026284386334358929368196962710800996193275983570568734663224331441916320331709804605179751756129564809137335115732473879022756123164399431984659355005587024391895685703500338589691270548474962410948562491571714588845382214976702228055793881678133066322728066284752152039114691491626091834206368609034667647265674603625257015435225698450476818159310074423244703135382584528202267922848769979847511012947815560924274589825034819891891014361949530959828540016439363324248295431027764368326138419167963850060963256769964304248728419320690620674518200513841246686456094655507426540962592514117008518646515221030353697860526019223057662437579140117751454612515056108042748406352593730330633993673121583995280349552337594408449301016011274698059072282835264889178140995187061446471013792013657112057852783938673104146315210219402242508724696666605320064703523508967080599054713076371886817556276514408210012052539325105874416097035157784852246966893760402049493940030244096413396683514600791421907288255491106810929309158109573393650639773003142012088162752079421252067913857392338084100240243913271315911277487364166516690992552288692191215836414984482835751737753091217102267988273559703899441251041850964648666935931370226195164784527713360652576664908879931365239814303701880944105028363372279165099551017429465202302564665647354522052594866687960033957892280660779803550281128994863512133044962311918200146272823727166123865411118467501397634821172241420516051726472421679162406043420617776660136781530523553044613445833570652791975509785206494605519844542465243986962130476128144598258183191054378593568140475703301152301188558719071339813812512849394375742547920435772774011658758439143108174059684381059795113657627263567853154446720027599418541323397197300681043286821113248994014676972392990294311376806588729623427486119453381059872425806967828995326316231414854262768896590200621791525792425387451548614810269750093999856096847926134186045565267405174005281568770425621167089224094897340537741676159958806610417730444035302739175776843290785390328887609096409229320179086980292164794434151802271363566813305407472911843385570792967449580853970510517558337729529644015306838866018533467974749021374902546108120382503770276955216690160152768475622846463658097984337361307502873016578171964681676867084982203365645278901320400005046335644754049326315645744000047986033484564148759071893969150774632326645847652395286867267852112012701560083336160373730542754563569338880100849426785216748263656558067097052262602831747533208253952571742958933658736863671683330564305388036046532863342270677402241262431407686647264658263884151516406271034557736464388382042957892881833597001630227315336000697810756144913405134894049266712278877669362428607510244235166685967256677657731567719290950483468713143325159790425299616210164277876440151701888329191639518221778781905710350873472558042360520409314664596970640021133199051733138393640997916328655615380967316868167529882390650312219651211906420130612386440153554917051323139198531124847580988506048120382247370960449934764021424922889078887802043253456290383317390503349450530995239119939294190195290213682199109427670947708395911801117344489400234992553702012038954547429788322115212177857649313033154567049284719228267612542677018339258818248282524953207214502457688686833340503592258324803757857346730532214338737989940754771992184425245243734902459213762030492499782569250151670895541797971312580273355045838371298006282182708325583231017790373970561621038209525306050393622380992916114386840554567138809533393060367614516352298667607794058780581307206796806416319339783884084520281483315065337812361623987205995147442647802366865426410071005915655114018133896093995751289391367170412773851307546696342238238051127752298062502918141201023747860231746120423530270879872207106820658243240620246998081598095140893215996365328704491988430036808973146167754441906697154657189319932120437306363470328187630411709442818891855933649216995427992116895741287857220509972514521502829331824617686473870745713820112580013524862473952172186590410884131241961022590239836190125240999214126871509893581797195725032968598192400045675682938460361810166663213717855781117413029537884797530135721584970159131853797176166496625050391530464005612315701347623597510418467892297856594191153297871538424218375481016704997692065522353526739411705688474259246678622180298690586481674599651917650354317600502739379883972689154243257501904492317711944513593133635727391526278996356324098550652866853875406333447613664873450785475660912859474992613139913329136734175903954513639643589450050644655650024861649420838708098257333356685171489041444804658851902938057586159696484590678315568062438303754296988893396906997866295864817179016466062737284829879264110508430607831481541794506366027783476426606404451925546043491756093604154288022346351323692931495320773965142245639819974312981096192600979458221639886424967031921239686620694234948029907171842974901963415133549153967164200336418780846252715766216294748201311517294739952439207667882928346965388230713347612916353896358442394977858245736582485013636460530359616184088193142173748341682503765166910538906157184571702951367428909947727338591509640555783948925139888058207651383867914191281447637290745210699511444077354104073193567487823599063625058398954009381150007255254439386856370264721072761159843940845831111483207200460316387135132804499939317095246782084304117467788243973815885085683770911957079247558673667606651632152642253103202775374985274816199991416366302100345805459105232536594339852426464007071654375017461637974921221595175391248696289340014921485305559345832579280170982218508814053199281074026560020248690828162020079461777631627533430833622405014669223850514886030567360090084599149928329238691374063511811962239755987900314350121233018999182921401904973211040695610783692272910959639242368229629502616155044836383385352664064986220107665522144280281244397426747073911000562411910099245787969559387756797728854418077383221556949909386037613016037117300280999884031639979347422854155658105867076716697495244415197535947263708711338900831703489492540630527252444052410806171308016837849203161859856950440844381776639295013074264733199002049207432009211844763229262993494762658947896673142277417181005640568070742366552199513560621090475062751089714834711213132424740481558151352132454014992114713983306721072246792391151131825182006083389638298717548701445117419836719551411543153108739905263877960784013493404277707654399904869881813993979607560107328976953783378212513356269876503643631077716901546253720479156379687573624545641694107666448361868065161483183334854188828495949909950186993975956975113495723735758830666080417146212775545795674706030779146017054182662175276897401012881503334441837696258898019150077483497655981298348873264403516532613461419229319149791777993426747212940960289751451178065770780924454346412194921381912492393341006731239579021665261567387984686030192789989774628887991164007825997871062284774917501792045047474157404957607187790988888856773725905889695926689977714850845946772155681984344698121514418521633086544321153884773077014182998804574914978422026872504285196738280199555799656566764967276550598459446728086284304148211104147307633576097390157632382281531741863807325112371986167102941030876764955077248944583235956130643904523277662265069688006059729910493974970903420537096306906378260770100266642703788192105754255019156291627308187070593321980003823568526794974446961966487198342249550827982537253036654231503917864510558005383108252328823154353198170479597793885445480811834918923389454458607819959884642954465204471232258392377880819341315072220229005454550494974152839703767789072715488364885556267022945294121154306241742294746286597695209548233245592581845443136443885213303561900903905291878923467766129234356846494879171261308160715647081414079522274028078198874260894951252424671530825968770647032402044680270009916724945720102143384441901581312748120320367086340574893341330060598535309421314358390442116085314821878564388797655935863279884262454058224734257718569761253040210240474953810330363230738668388277773662421879978774650731839352582632454257091408860899189836830311088855849514630300860254341111233765186866315367800179697373471778564925058594942412578785709509509541425775451479705209332666305432214426737967708131594568926997256688502571773263799847456633632481957389384875310305551614277353803056907706070106717229662104718689024850150006267874651540247051422851610303433829174735840029321803329096067970120309221064631414769075252477278489342542559119828586491676182405927459694547887344421177964648714516665366106240397624069442922362669941978132646144389041012894363890886845582207587330926056460640904568225607765421643488745017445243414933009946667643576159797915338866894595123042045010040257388978098194289513641598281689373234237944068808690300356797711417796907860330520946388582673681265975117919293161019657848271895495429979996032556955505883499555730508322590039605259907211567174096275512194645235761130018564315169660240396910367877528777179408484958473375315966097613906461362440921020140750850337273665592311836074216772649684448709167191735126884384049648979903936093434819990184783280216843438680809147887751246655103473521458531658423544508985081902647875517273706876675943045660909612078374777446532865903820351752874047720606328919615244063432286875331259980830600666693735596919191967957438893107462029536237125666733519514891639450377243825215903475120521871653558849414896214692385836809698780840052232630117444347064623059315412921028642049476963507230267610959653454073343655235990781705478201016198438106690483983953916901874494772354520584165070487882879784254077723764303672458343696504394868058758770485153989997918002607398759467496894038482266725999996709679703224771499632231095938749811843571854877063896468664007210338555544265864466221078011668071341736985653305905070246510479698901766304781814611430894128222974223240254199477199493397593344673882849622482329814896904082011669475972050875536868239253379718781601772568876913054035705561762213276758245161545010270922582998187933541977300801938612335602083262499073655491829450118722742379105803289008307232099933637102632604869260993616941555975560022208120056180202303168300137371788088220272462413501037456904682932822537686241008034100207955422666220941447097644970315000675676105413789626691031628160942845268822847013190298267001135067468267312835689578679187968085864033931064315785168123453985442694072573025111502157198949115749444611868695323153128829325007617851958301143022134847773973727336599706886261325404094124060615918531673356388144658643548097391255195505946627337434122624746316738755852975868965257683591502764025625064722382069093667718415061860354752567221649698570225133714786481385368510812270176711841065530719484325807669217107363434435209336292153687846561415736476375186287039514843130949122021480522313716198499643676376747048762648374539720156068875060357204381875884151370461314206573494126900682604140260099829247175963899937351892090197643316385611487834757571014924392995756411194190177728876884007827036680568386546818591919063231454204171463935269466919179268908754747669612087558451019068584857801031197001668064220627942065040600257370357571216877679795417805995730035329106041484358950918270963439482311914990556088459751780775565861805297289808259045092099505070088521712840955234741861967763407341256824023333286069381861952177381926251146180415925300979216586160356008937297231043469558192827528857061466993339393763088220996521969972327289636396863309308813661113190932562160215109450425376972483732536533152329711289513775534422870347210975238784017172045977021311330486744749805762694810111974023198966897618089380193628088670740265908095252521746253592132299598565577884329086372087434664135753528598779167155137187339883051726538714215841565657815558724874058893630232482358523374692927682343490890262501360660039030648306372779422389552367922872009775679149446187280474555771676810257766278868710214250876390893053421267657294014560588445639070629743432378883888364997672642111294010448106349232720725439791279328644292553850493345613944603997666199025904227631645365650138034193582473324986454147280388446625282172356087731527621682751084512197351140645867894067818313568523484300010434088848294460150684784645141778570109298072635710308898409468802981335057168534183615982462124674081958561437417278176710818506772699456560834629363962140753049653478905311375601219085714475721283322200755787629564291449907566150714688585223418725695670129732199537103897481458012266526146197203850558337234669361285889796079449175446277834887946409928184146885560444098401550229923499267318462688204455028693346222312938103402855357783370218971651003866441438671444276709424172296389967801327252656421260874805098236023834482623994287145741769124233715378045124431758501712213359846849098178275635749319085039839087166627774871754689565964005173380093554028797997531258178074338299569014457147210178123581540360498435876909713226501784650500038514017442399814361071206085836969752986036720009370080675101920463336293072121220836800706260399512955573318670687032211308629027017665314821980333643224083608847721634744942246266280327980017898325480564698558736486828843108537639791068764941730402336955300576712653767265870129829046747299291708594029130143044231808934667812428322730080239846545249776633567553646736620738328311215886963401445805154399711759051520734598031256057448820750495257389792524307549859491276031530011249032275670896048939874950941516529282210539702539631511130121352516118967759982170103380518942407863935261384700948510827352624827168473030094338068241758771122918846640915447333228244113808945801867895361601450214121372490229307732707534458737065380247440304418882774348759408609312370552477622980803695066587946528370704308017030832472581375182784128842465456633653997368690762210654232060154865286124221783328965993508849942060586235467412567509506913307060471808264744786651292044628768591971117817632574948495154553255637561315270762779566608960724361323260648451684543076536382262051008936271542326152510639475338799640858240507924148477001162503017153053316194098689662771560532039973674021198494333432213266272381526946866364997021828669272444840668208043992426953940139929101705353721613851290441618878923050662204643195033807933985631281018433669754018186191687658716726007539324827649663897709796934131938507075558802642886600208117660494573957558627999676977469941269198989999023488458376211287780682070709382974698340288056928958937260031780619315776589648025357529464174772199808249269357257342370864251548278269837310001950888659465172852994440450507083136972952952295108093301498354019158320031166929265516168155156218340128542290084979394820406970526390734174417793539680833498415870663100545589849959938224417669582150531973898512144761958481274501563645217053899901722007033903047406501338263856193213892794124799948624334240068442486875460677973823609295644266885458404217709785292192577423111196785396249037019055745003758186725478198274094834139771203930274756040809842832880370843172887577650058820308318544118808380859713321448722061297147074187040594327222765722084067292389705435521451167267937903143764827023006742607847183182336183875934253956105383056137136056594061287095384014158844296843971069221423088051546250891781729378525447970219219236205455490480345122883361751930295090497402343136374085709926006129567626921834891720958924280146290653571988913322162236060782581677518766692082030137779752061697888467250330233671163220988816293175149548627722760786745906683112400792743262709337170606046472344680262947345101386928683949245159623075745612710444086103449164551195477058799500351570297548852485682445360078428875122784112181196559392616631748290085062069610553095273169258986038406340106906470792785676694709754316439570238892104133393502987523512156493697119299646202681074556538989518705077135685248039482838891088781101162573677747232201185312326288849026680527156002068540704031797439580610666122647352040566478354713355372083835480570431761000791458313959531673575014304043980549104777252282618404653238907862066624546344631333935193730196438773091971486192350748911897912147566079686746830650115734024682308629135827995629975058997965659105141776083342343528755977301595492056821077599871465580761191846288674010858574757686122136238433251377823022407016172413398204320479582427009308056702063425734978131183776540974249266911010218560279039068369768051489076844511506010569442494322667894624547363470442815987455302397061626206023517678043068026922179907766666857735467294647013445416666980008442993416063740987407025571609236275081095830411239071213582646909692703458831569284666860606521357012489355390852787515008882955246969826021540878087763979209034908368839864697588285029049660795643341945145630159013293085467572595720496211292446941616757943140592552010832218297408138659206836825717757650085683968563163691675659007367551141026841584078985956233348590625214995998238149628467692420469959946907774923866042058995705983723367456325341993818993393859262507010499807007730777560991238322100726324202358571432821038784475443227737213164220980708402043755495518197996717653829631952461361541824134145997011735125766266934995935867599148696145212952507224529725581880048550232186458995680839205089998308862900450665310737979481488685752037177156578052418862440335348429650527728351457087514095869202696904166937253534150676244142589089240613102074826282392202228641428330138969340800699705346982197022205483434003391702382368184576389838253953790057181193577547577852792652583720526544531003625172778765051175498936655224420682951363069962079913885546380773832118469525260987511324125230011154600294137725193538055690341890945418419486679321580043448181638245481199860402336068175612162868773239364228534655154260995407452292109899117647003538309253952473353718963840986976537961552696123151130350201604241234909757634539434599338132712063890992369717873867101766801199579602726863760256050048389347872686868181225749068033809092061116339244720480708823901971049304249901186757473588804166731676811932284473862037385491471076017109333572275590492924888797289287528005833767656427802516805783166575272871257918703034954743519795901110077234061580124457005570009522817762889404230573108550502814206571466204438346971206395317497865928691097701609599527020296505970829637967837240764762635098636123723769567135085614598434039078903354179719108987276318811259547723864147886084514413343159057626629853839711209310924036224584026747138927680335198215114066866092266682146006311922974068408488094123196613137755023471461261449616959116836787279267250556653237142731646170294857709344411007602642163625800339183495225000381162597068615389871761605339375915979735057836400424337171929398121397961068593116589865961446204114221389601954578738885708256017886885626021237672334844921244507403197002954915771942176686681122845349633297930593426435883291534040128574023255045696470457816429662869819834745851345106978958613673006935550164143580570690305301932824000884530556836742878183498672127770246401970597222717072499444339439249338103464613421211014768281620928462770101395313141416765819003003242584897810176117234615536380261943936153797597339532399433164631712667275671803101212106889956360009656895467198536228453252416741144875120313247455530618102512489831899182473627122242625137829400896159212783659399533150818962487138085817018883908743913598482419501324269367202917524176890412797386790185869671941827694517484867558600670907325704441077857376288240325898916595570693612088483759644778244771760813509994022300856083061140775575652789457803734103273202552630953855160562312603443795871609688231693700741774578577689515145518252588078600844481088609174761475862179875817629781517868906226119260127567758683153904237708468509162050195713753500377736193957152345283108834227766826282143670659740478308708131760311874730821349940760917437767813954499933470591817027363805878495190977183214830857672396449789713786847345950335001907390837210953294544569971870194011655008447809297590003245695349040861066611340948640857144416927711353596530261191217387748928148868409564658646374164086411958790677142163119824030387337491439632028925420937931973856592889586798746730479435350042677959238660618886309515420091361906473616922580091941066707795759257917269187950819047111901938438964869023587066717659879962965454497126627280914961249282157419653967788723286147254550924032925229889097466436462994201544110035421718797036477547483182607836650252197563823859299768675175907846282811198103640552941338376461550374099041928450263574620585950264906222910143669355539093753557209589597258464743610344632628776716998853353627271928762445901493684007939183733919924242907701012804833775241700338665569673018769130538417261397954884648221839482143958191874437170826048223603341008078731126221713323029125313153326003475742642536615645916184450192990631531523266612093080737025807416311125616453115523968913908255229643342410230742726748779962065074610674536034154005577977251382476775754820216715892414343597306593716056660840253497899828365951557171828104531073425617361796417270778325822966642081130947419905742318662017089465009551472424001708145451053826295440611351445133418024453035666084541570054272942396653921682364215808592582825254259904788101126192466293429098292222095420436976793431522326128940797909323220810686001553080533291432498253195223495717206850741120999420674615822518825363235002985605916414084021609503993442328987166404993932482460730229091746033536435524865963298123963722568335843297945014962149107857136842664212685560241323681962679305342935019788059888549566940384024699195370789955136897568317294743241198992213949384082909799020718736202127712136505650128828686459762788082786156272656040862531297265864379409096198538655704902670523765852967114286396892660876414459328195838762628268590342896401100896449527351100430109525715536508818752091070725527498668574493146411557687988559115677238025960093434697680137850109568114444657288168887708084452181746505812754506676884968121929853594807528835074033961952036427292618850763010684861157772492225615638696521270838781333829308604857031169544347353399233963927503048891926419150691774391160988830347650537822954927652618223459445587320001281352290403439632450487980297485272113836575175214536177152060791186615040250409988936834936183477743303799085783262594517060164243488413077868399114407891259843434729839461616397398703243033909141994258777524543833726229640545211321685677210982339651411548229587524192372706319371219780002323670570137496668806804705664794185205125426925977646990231105011375766046245452387594160471291672369985090964897899508113723539859030103930877866434065962336013015902959356459009578591890396979433130861794000754006602546943609516870437875251919828683132956051213636012728059296952020164395423491121151003060930024237959414018295053695295480940235605039430847563528950858596439490704957080251004394808972506509389187034104044990737041468224091975081584798654233078977111585047954108101456028369357468834683378514336422297649343995423431776062372441719259820333613438539956306736188345342870631029541262842517244254349250099877935734254358097064845746075370623871679398061782089745531100432490170124888675482416543720856725978936534981889621962604479044884073972648347934133885751354594763901894682516878750968265581446351863011330267693242162817660069298053838589162839110008197963775789443921526230373578918625675073207114800760455764205315519279352238999134565116556072199335344860924080124768896131336223216748962120971462779536384032565367631360379494886191383465718392645483469373611313401818132090806676437337242846652933597030787705144057635817218985544102692623799843585070008475772293241012674630434314661837459048973062670142971745685161934294450964851116490668302670794363161994529287969387260494379328471720895067849029395946738976545902576254074406217018675620712643204868555894101055148784768659783027402055501743484687203622287794359210314695380991993822384602464845661872643035264895385096678632360337265495516747462211186599049599003187815574139963482969080218718462458512924879692508288124476466103010622560921496052943603432930710445426072441473808260191759568007465571770675307205119296097540009694448657579371748877071723747606105821160268530298897018510931469323427254891640719696791522314280240686833092116510588838843286133549990111708838612209159706828994762397268796795939316526817099174587130115910455176896063410853381045544955023301457131797314957326026685025122295695311673857248217009291878601900766642357019079779528234460695463492413995716576135312618362964696231066398995366375856531815760214657846892288035681617549627185993479098000623761101824354560938309910168995514811991089998018386166522406192569978483904932933827384311671739896879434842500832191136887782193856892729459343230576520605527187365338424606930721950232614886690470689699685000543419405054352338292333216780744605379256448601965643880558207593249347376379539152683939401553480262305646807916839039923596636288291620860242061835148449159772688591689170131263420465829117465374858623395097190308513114924621950404673650924373276394698543819664310432605376963443068083420092658808682617208361819805053134754350361555307408494659182090150965278273887336861620328126192011512626913281551614858326618560811007207085325696559555722587729440339261115092830161646217006885955704678170604148230335523625998373578853022470251487707171675213618314225765727602644279268322736383871349152817065730106020427658828689028357997179895711875231242762635696584955570427639317714125054009176664374972126267197125797040549623188751054428759088365119916608724208505956828299995702115116912634600181182246051558936850188131131308923331365499346033733109528960378941168722210710854297843394952501545736303332852992756869075162716456001237081686354721595988489537109891647892481181565578168339344625594237605410903243092025808915409826891045809820100849538005063987184755469651219767783916938844871224921030780150992870502456809363951232561925555665145353287360148846879545948163944365002047285057578789813973987889191653975270099527488052099917979400965140428928504654076206590642769600192544704054441998871213763060819941359248914388507409721899999858881956947956307915266635117493560977976544121542846533611713827485264831887128486243316787349212793959560002938740295019747501760000717773081078992215836531806652798163349730422457825237692057016320892798854182027116930183115988996154442451486962782410084253332148101187546777928284810082106815019606148126454150947385515397370057446910022264472690168898292238127797127592785437479812850389180924807365486375198978381198398059230335586228190289916228186635572247060878648088103430434232146073468994465639646394328211816264916150263388482304611071950554530207114183934429556234315395797238293987190096513103959996578509140456878830616009317533554880835726027307317911046841799139805654224021280635709452807238752194320874845432061727172863242373221852804239910622420856996054801667819481562940018727799137995914530815285491294019402712799237686231214253241368067603710596723819297612023650905469317595532394271200903401594784163353419204292595267350872602305675707539681014145651475317661725489584310630760026771617206134591242818803771980121337428362029765893614047538749787606697111739877574912092264794678232228847904355255510270291920090356738033412906727311360088904227912317982056568943492514518066270735145074930638082972642715624800796265402255921541583522249408475180606467366490400646016872940693068884559869022900886217964464175079767859345911246504919788173844006797763591701136545153062830770747176663966671288829680031324210314619441937719994354398270953543537970346766188648087894790905514158505193913309537530759552422651336595555341290996922775066584202182968927698588278696895717408581908633270408955052681385193928357963059102720329048505777983040272565108295842184331769832195627779202904283485332188598818984978720576467618070950865147845976968471299328194102126435282329300159969438713347469376654355478196522059300984154660440544786130749239122968947510014398727074460102801114605854347832068209185202512852191974237501204673779983117621369823845659964682823600809854330072470198885647193390273777957344869990913544806237761108859324549093541525026501556723069740052560238961987769803696199209302334175410646070261986901983604447570972820424450576362779755078462988315518985436661252543169166976338206081586635447765584822647774248011412922749950959225265067778876061516041261949967862877503015842721522084103801043075775207699603631584604786076644812743024470686245333879166489085559526893920882426578731583181224814222765284104106183550103384798879323464578967409675276077755156715458467072833312183195777932590737290269442450748403852236155709769366463054391317405609217662260865401609092415353506268182246001796192482676891982846265838559104161052127600175045998611488074782405396252274260022521693173860589698892661112867078542123396340799608593824356192432877104424656103730999698896217335821949831879535228981220895429309198807351894009264786224534198632376990498217139807180538526570780455930819566379639520106351558283533504464298608497388883716541450040413889333773089828204227943363905495729210461648443141081086675035651157816563892857698443616011734456789430017588525635552745984188062541381422644333944455391793441723799652023254345556709253700429606231616549213168982977526390223204347867311013088887451929627407301165035258325019874608511572411037392745010051022441769589731946586305655812969789028023032993969599493055211315840236746355773665395729287324281706201105578330623710168749201113699764729972595104629421336395365506652431577165343589009376169182328875448651105823268324308134332955665430983802747567119564301099215094899720821303810784744850177188347323290537883767493994206707741065122916744167072443719631983960263461335460035647328690968860999789969251656572282173832085559407238613689281958703731731205763808015123087797420862981138498975203782317359654543202775080880844659796998520883295120580959561996870955060077501689403680877949110823445415121392496663459088386079293652496385938247595325412792918594000273645642384771649147728884465849214825284519361914011252409532837551625595507736593773789705301208860326242447162481147439714441837275158470460176680608750377842037509138128702154683377134863408560099015652927502074057424573175306850739818975848473798330859148573482109764614395654618840285375961542428501692008905621770664776049392750859288699595974388785455533021240525994967187111832638113698352469215485650914226822405534688414520417837569536489822990394366134394288774509493378625449042325579207614413490301725706884831289099443095323090383746655008826919307444158540040725713366914632119955443108160940513425547185630888416163565762561425189729274580024889406096155591772131375359503303706461808547746661843734453838648546434339071993598742622348372540214895398591960645725106378729206142087655767026425088362111922016719451236064821057268399340773877328066077820132168040006419762476088173582740962664333917359041866465948714183161162907678822366653915298803325931626150569405451893340391039795559705879883916147280731511834313143576532802390750676637206695376811495854590278437016162783092145401156774904559750454488808595668118287579447944959835269750647289680580815652391779754146644755352073669334682815681105425641083056087045477909693938626406802078835925645421358871490064955517452882606112003887685446882385679096563699713258882544309701290624899594168837406790807153557534027824268130595396258427609550076984477731669862276685573216212297511490163251208919968390357124552751776255273999137443696277964847668624245435487685017400906474776723195430235312193073828397227676536671671407416283919042537130867134304247347182763106862084226289206853570662170301392658432394992960384315114079531805406692350735916101132025616906877342067170409288150274226572813858024887541993096814062301764523826014275753396466913242585720508737905429510569577003161894201831662828424446465736477217150739402848402469626494873350061262740990467826056140168657819374598265584245924906385585328057582152041855936920042266093813085821834733069992597034039640119523328700270161791351379310715078438264933369588469018836250246117935929631261216192846533388038871516321995022148625845962700969217715066856170410333546027270875993353915019776174064956115454706445356889337512688354632678496633868055821109264814031872225321078000506027563487849717785036195701382248514503495353672494657423450953865963449323521519118092653118415609523967865908245033054876685226216270040492911798285154110477399183669251826192073532723127833469929700057593827757524951738596045626839444709344802904163658527524071847510292724952889177201581271352798701521508325897046344511543716539344637030251469737681932855408354257247732344468640835683739160256082222686928014483826025322480905818488033822389587530258407151203977260444566218280954354910595567766704518006267536538243063763376838017582476275181178560667426463962155057426381279204519549372319884794308713770959224049213199028823038240477906727264057816596158597829001995741603443894676512986435492271231120857967604788532803870350285950719469281391835989483979107497766770657366116639026476394382589393245712692728538218674378368601085503831369988226279762384034831088365215251294139620344508260467667514495321950325018346534773689039598272142344573073054283254510030817411486873435631724090395644479441308572605386793888052947325731810267678204395651144663036589090866903947555166877522877455706293170071808209189129363209377935854450882185099395634785541013077810616805616152552761220957025327765569296443395658835137935795584517068378834408499148167560055913567963556890666358260797196406011410257762545567782464367447219821373563010596257530515525850755090512000590855959009854160452859596329900374654854906644146483107917817323399170381045916553776028112879212878781438326662805188183210497731530489021858807579919653641067207213222058959015743900119241905480848616876143251107685813947987910872084688223088665947463663294371218947529165069077372511749487506328807483005887505379121891851676452154687823455117855328730628050318583072830004048063709408136932090522545552601229875070709245641030685369010001878680612662191478829137283807174458960084923688551913671552040664923232226961315164355003007429632483128673474415239144787120514650480235498286907902658132367254312958744811191691108079635109302526206518710849837343143988544107431663304441460795617240801457740291800895416935904868710415718437956487144544477949957910021012152530039051352380015199988749152256607329362361412172362089781823401110096889794605238183950573590498568897640830218811339992755171306315771451444330779084713122271718253438204197248561559764942280852861445466678445229177233023920317911421559585023618871493688145268336227910691557130255248992445942401112525789899285245630353475457770523965694942750177866087202894758698255728241835736261300225467061525139283422593022452034180573049315015613615465422299662245618946477521016212397423531510819508415658672023628182718766211118233124414574666289763433699699233749621780810581632445547188138587298986209357363250145451914975717166909815305925760842778371617507394459777317953312782156651467108016524788507337944870118487131181354772063468553649958507846493438008094279438875255058779816141336976788405046921421707539350065954107631979394647208183273430775730694566573295719825117917150991370289809030023564452916769276441379786445783081186618597250677180231776361731634703907945508600018846430130570922477491799980248583932640717945085132766306489498462562168360699709890813849666729463954758994861854751654785021028361970410611082231295061963497337870194410017225620011364686827036274043649506465127775626022824451122550744779121382822650343125041512639939689282548033078176280717483381374840909050861190850702490403626144933403365217008060876888656505524898076383683403004879572809286490806140269395247511215778533203403257013924628207799948855106000003557297851350317598711511652574669858684018052212987708815509700696667752739221658976619304774186974177931464581181924763883734586176189741603491953204345313091507656432131285655068468970691230542420479262409005671820552866456480700789623824720755323358413515509462656192829562070526483136327144187595847319459229160824770504713377170226838915810186781367091137661687952655481255743883549281671692312505458227763445710889348789296981428515401031441125477657537832185036208110932923548914472847559008088679740883655209843040147622652927372738995767544916532948280123880247567883711706145802110400225260469037990243404788531262785394262478785396580004373531917306923627949605556471999394261077297186120126805338614075373029551343270021110255810776200260924081320339113693135611396497708972823843907242083900149665878879809331075045782369253810302760035252955538983619529715581326359051857404310935157437372901042109782150819769836222657287723992106993733505204517687323924017394369666234435730597418674223689596128781857708564035403750200447716189425701813939924592496757775474194406946814440058706974428046509418813087568701751979260868587090535424344277792913766352612550178393927317149650693457650505626012914964522094611723004525249612345455977260995520183865106704461626054046359909688211713638154826128231434987920864170068790437661278173126202082906344616130719733507708603525079212837789370354218056247002640198703586185589910566683079010088853125564910544867766321372994897766338865938216229469547415733603025733378318546247547738622458037193090637446939167511297928552171377365004981325399740730496898127508391624247777720788701209556369975584112439825572925775742027674834062926367848018966741866749544930694733290095352206368028445036527934070799696010818610161452971485098917872260498344282432375315386755721430688488221570319139814932767724661682625505908573327720969864597116010143970155357722029014917363704483553901457467201038282928153070822770697535304251338906697412827228876033533398926133445911438466924209799883289599905906802360403214788792873978294537131889551965900997450623314969115661340809486695218779184232822269633247893592996169060100705899603428765913586170819685551827853066382815576225555395062576129972646595838639529843593512881609321786171395736126786523072769902586329602097988753708175543779423270387098539005794789820720850789480375275764274783590914583411251985721296031865491734084806612992566466590300855219031413854107531677355569891292760536765046351980708114590215880727540295218416488556440489213238285103481001365030929168447289198450656916179655626973489179119829554430549324906829450907704953645922553994960292230990964324786211731693992428386814864711196258437723207355445222390556829250331512508406818143416200345379341089751719152980116884199610310950520163835551757250476647738380993632196476289519643612832671148674446737464252568156480401192338914851826722505757114014549903703046598147494762258452500383440381814610863864012084623482339127907191296958531292580895831279089318920106259894921866354856782282168449203119287955078170959082516125667348581111971214380460470737327106216988050106169443236696450412771528806785145947858173002555027984835214459564933970821819813674521995080705436688910081943453599647936142132841438736683453447798779046963718577464445289107240798277250845139291992098285097015086905944013464547478088590059841848526997516485827034022178776389380080413464297850970127217095903304456366971538043740862676360383627432302107785338973694477861663002499619610619329893582148966798610357845546048258203092658639110235640564983801097625103661609849289868336843159112014568569126588353194443266038504826517906126694829603646528403810977233740642125758540647914276787746649276669782697893848235916762253427796232817569720514386785540008534951521016543481813327190424941221335869125958727714522343188458792781206220969916949060847223819625416156935418603029630990387050891542668996490546639533531255264020250493594133739686695657838752336471925487798488169640496584287895369300182268694864851186232291340417087982635110086570460728706789146518515005966300634699940596019342447651716870682380119710893857573220802985364714941107370057390240686148807378374685708554982870349615745357952280243405053832383840041602899208971875487492546932793547165994532740044827956750928898393803740172542014420286614694278928660886730136896692540412404741148936019152797843106471557552779463333348779829290969356542581561643254916009897403333392415617671720934514056449549931910665625502408827907937501453267182828466496976912030838271913011076399369769371294952369531810921888696547155599682971133171314672716908317564642299259100904952247506990209205947770797818184158454472442997660239904118905761342238524470186871359805567142029515524104652120046612717981852192868915225725423136702798436063965424548844296290855495683120028611903568213355610957013861747324943627608069757068072032354588837638346897218538123774148809469813899438281823427830039787130057121832773476674841485094905069938935985428434382971010560503867005211166461858538221179260878831029575447816699135749850012027880702502240608533710106109056191826953775502908773893548269087173366650206330324320775913551984336060124565205691527995355048950563467182614713126670203004741996905282422097681219354616190490073446536555950038554434814129787856908307093977557787686756224492417206639918905286413319540900211311588834953503703091770972389186398191782929671913437410717441940340984390799640556376951834040367420611926583497199771670472620653405481260347056350742955895772733293796973836639261147771657356037658914100657729276706817435169215088503658997939926763219438629642888258044490401413159278060861517345830538774156866227541201935438795420410591270840759389360362705353397410624371684901329354423436018491697561060201615656720908541811987368870589106393572883827023417312579012646929663669128156437835441431102158445231356619938005117166298410599286919376414218388035370125061353739427879051407252153343336063756357707825132407940063318467776548947676224397042960491262318465403221919288429544397663817744047357363416401575663615360586865179596588189098461233378969366221509116130857783219354071222890277702061632698884072358660293086920780089147865095338211475081148055239790698143793810273716371400995446220093907245288002188358518646771655175539408025024219443996824841175937363144255613969324025855111809009578694883982747555815247603594569553454769560317105002104825315610898013540798364297765460449885157182934602510615855184638083026208989429575651898496560791729269729569465734326606209813620642363533741150830796986107900400115022514004039491076343183264624402204510948935183906799474011377607148540695150827960817142794373599243247570094875316010130229828949917644646823933842119413633402663417777251337452129617879251866458085089407005700091630932403599249785442922816894674795305817998636402527869120288809834141469247874803367650946921974661281095409578871377344688662994910808454177124920904506301180982470077738581774020953024685733622854549631127016866464494001862203191073535725609353729533878833845785928585650761084750779902299795499624637924095089181276332155811608972290872518467689649909018901681099844574762654298396666233381339635555091230112992742334171831557425461470124739542724956377032725172059996534822177798611816638070695925249489528135878895865248032660016578375946167110255807065648532178094762783095364540371473498331563616824466779674721204244801540832095212198863925953346863684911044264474827967575061166959108004160761050591949935642623508617134852184414398711194280515947899949693943863987679141754164625037603742113186466485324369846227509712897748067168306763713727379347549180282565019838771808269159804042378764338239954036895001707983098036364853802133729923461756284964459513021721344197811686889491414537484804287991348609220170576920610222619747404532519375957525518062715324078762457151889746866392615302966107801863162045427193901619026084200989414558952679157946883278085854734439866096972148434614011962063335926716900160521328803637680597576497343750299181031123057883512579717970938562776882810933166089789201905948271495645955346742909742433922655744234099147116552716817090561988136704115104139195409917713970599121458845501203248094640178771648158999402548846610254902214473347957722194200558299918643004140782963535493328319580380090982714716155217634341667291578511986674127990338517378356544030971268540073516137801165483566124831119923443131962745628203903767762868751283547503243861818927263743784940345452317670662711517903278987408533942925954761943847932684111616715416028684205057446457405373752024472249003883992421725566829324515660687868014693736284417742101749018868929501933001346587375654944181587056796523699433650912076625797694394917980754972409177661339498254466969996381129877379027373460506300121171781190519616882940452596335089411749550181574148037078342871765929595844688850373287749560871677987044519517572831306374109466280232921178684159942985719338065466912462580549496073072745871939443307055596905370944510551679207214376611799466562934750076608785205850825203542230683968803760299560428369564560140169779397574332717202209187122645852870652266437440464067192252293522831606181556641763618363396249831392208003377541956568300067404217638062064000308486790458462936943609825559324149476941761180721999185343702429864242213483901020746520463119195577343342362716501976501624283893153781155439444005541461746132892968795260095190024890063993443660625777129760491025246907068308854330172818990391611364327708364048213426938372450967495166854003909553350395043420742313486082880215909980793794423437540768043202576299918342286921332024462707289858165820280138638767436846357242339878953320427475746017862012567434390398899132050908288476639249500660284466568860855985561785625516576081949490522003943631512361115736633017155301594982452149484889068538666940240059881796036055696301757432252448012353335704312262070544868456932114616378970140918237785773869639334617780352640379009410198142903573068215657339350373762773939712165384213420807752537890971026712988148517279389862746814324214701718161999245505249924817987042881080591097088488918659589387003607387559973982199604233489754755697631786237096369765106192454476594526210672689040523466522576867019654338526210748824209565894202750796415964058727018325769751099103300763842253507474597238418488186023384760441106785739981951158281906715351940176285667576054631532739279366485165114584210274415819152244909933725860655012081379273263402775936835563042644288301699847449472595635016518093688900805060025906521683485065605530457022119278499742341433965143234065247744376280234084140916462094898521051326960496482874526456190319571698720408094056005720118660947415382316124596954749366761864593864870671138402308901875662437748468573968074695906975166585748469267103815933991062313205297512910029691789558142549869093683755133826238828269966985414203378540466054357423710492902061442377236498513869123856430061769909273936662205450862842044536732092311281145395730510533116432144334166957899515073526293282364620132662608137472777004854883374719594288709260813410274329036337946166301169843024642525104584965218702814173639512549614633300762141555856623591254062709565440746443621805291280200909985528790645588707355959748525840890128854224711728083124975444180172751433800644988698343155365802999437323428847368010896536904827550539564231126770804926440292425427760005038719960517191770861410109564385565920642078316691873465187115869668577135562071128334521732172002132544272916910474931514741123341906105522090959798765676975389068337435098001248028813532323368656627575019923934209480436556728374395301436343143315049582281888749536793263092983352537021665218239971420227001074633269126699853368530199639225568654140031938723137372913837130539944988517033356265162455968016875285286788773363699767956978733132806558387509320210497749655330608229359971316928232869086502277737186768210624836416432911750560975550559630106092095631264640393149167632096426590909739845471087422887580895454317803177960586576937479741012186995270159266126508318674241522287137926238229460368931461539218931405300145994910020354172212871840854052201549545611964831884690944282932934516370688346220364789383471019083747908628615309456213533513594835810324779743855158449784851868584491945714966058850166864439403458389455393175931283486674824757087470539609867386359134760244543320992330718437505661777272911861934285652800408869908155038654950178617805135579817917411902230180280843375641052204591089887101544865565662404506004144082772212474713712241873630064913092517246709207668687974844519103826045641084550978625916071958448485725345115764626585248247118665423307635924221115943829897404099621116360118193158986741097457593851077848380584913620161253083735719494910538927628428892048234754424217190017762558765319948081612243645248598433069841322879271333527876118616678062948370380290896725591122841628529219348565276750334314890099016045629278476120046925147930735035874331245932864827795455374842991990435958164633116975784466424142031763325201691248305323126440863646142749479122025206114491200135444064235902071492844340580891429554498637736220222362032603180025974813735648907133101169143790183702353280671078813569536932729814190561313095411952223185765038604092440346723003510206983213446822710958086667722382849268345454646515249629624716601614168436486377783979043893265502461575387707337681121333417992495077908451035397512959896772709718077266982055857001935147382015213478888180056617202494958131417859625714313366263843941970762231298730135161244149510143007775854281678770790395129430558083750416615324953253948568141657034234721341422269686365623907593088343536872636331455849262561622093279457410691182219876914385806077026016235583419697929901929662737697100165479343281695148449160543782238304321867960147262238979944691777179476762431051572153878149128176619685797772370395928316347280131181122281783081724846318382156051046590399683575243618407869779330468442011573021229355130364155852664516799853841473375275923446093430088320944105223418416225966848165415889860147768666514183504860987831247815868809683733692393222859762886498144627906033600030242921025375194747160931884283875450871719615208714599559292632068401553883979112920985139016355649783147611354899989928299538793024524201865849803593369470090131205965756760729733390542456461856467609101358789368607831868044131102567168961687775431166805338574620040249991593716215830919376658590337531798949416310647392278902845682322321145149996980312372302817934995596823783504296581533207288776711714268975873443912211062829372417426112349482433328918785657586605819463345172334750458299953252025145150477323875077145275293240815837907371631059529198765016336787429389523650416743318120000114182359412021342910693511351336279701134540291670870980086926026670834056266355628583327858147646082640558546350530586642640025897408201161299214429007426014541352508873601842307159993431644661909331903939962988607485686709042094747398505854214461673098217033480212108651889542451202617349179414952834184619950378611456915791672251058051408894255946031578258849691907920977549843513758344639942730575182955784548334102650975871325607046161012814795418303283154499362892401559463152871481910561454778070669463593717432163562313227550411369428949881099976982942165538425084772957436509735163540838653135591847347609931066591490535214850933254710486051006411075319176811466648853191452647096639935589925077835019417882029989170008872709803160200028743417772980195352402468469442741415719337150231294963299816880773148555234915772588252170328216437520332326048875524022035171816215453237503686491979751392814652688757252296571142189170491423755159999551048640094920440086571200244403553419300695528539863143549151909836927997644790192081919201738868040909085632233523556824882547381437827484204061339002910784477429067251268896954640628686810385428791167651494084750434638676786498820406328462394559712908233888317392269716557736208445536747662371553220868362463673503695550856870116412981451379730517862635081797350264564136564038796219048343227384320728900684551419230435840042582380816055225369408839951952932910219066939567817027736151703885027445893834548823190934051610915106167365002106731345027216531646640119216106059743944616569292834630421451318977115599887432427078165782635704830816996762571682436933956968462974339272847451364800870429176349450552180608787226187986831567257367357947868550259123924837642127316072556138037919897115663577702269003387182116081141679164765882509688951109335899720269617634947400129589330620083406584654258956980127849521541871244658350921588306079711157353283254292647915462835098236742855859187862609993535465978484978146493806148922257372181567122249326734523511913494310664631198621036478440898214365258288573217501168665539739231641007348790806724360924362351127111450648960551493682573581161475828471785366159448200658404356732759857564995595988437247637537790221302249596954016003960599138700112269774457300610756900363341086548372509954481859535550564466595197553909237955916531953190939315220393187350830963725431535690884877120904212839347452509819951895656108694196512628175930337107265898079498637935412882240967883581608983352483533659039364675452092864673220740583933139926664368560903290773789167651656093890131452409182743603501877826471497651981922520925722842733051320879371423114831179794273433898132934057364125739950983261869227270648655638787433546193590805143742652697660427819566188313751723753314278915447931584673750115263628800726190507373866552727959036209976662265979427216860976892061536814469074269213309839591147483599669870112046270524661270412662905719338396845520034161655475884692747198386692498466574452229780774105383151789216518875494653900921760734026295613928565985878358142582504162532935639484705318129376161048792917615477267237702870356908858143537574183523675949841137589466547424349731404229380669134028869142396716575329999524409407344770237428698234606529863226970811295493530325880575940894291993301905745121153224490540754861628244140094055310659499648198238077385801663161292666364358276229257679208834051813282318871331452737389699895971476762257003121881669840333650492881039689053578752584667294073033094673207257391268351559887371541751886530045146827534742569936615509421946440775486900220379145227553517481010749380494831341628144081719164010363598785768165364169672176195092378997400871055271314486442799308689186525430502406508186837250774669498686659567974272544750680933127710449998255370381765055555526120856916261294837399573607504999886442620757677450103395465617688824059504778445934475676971149616984457865003300125937281598402655548324712962976870450420118161810789931190536917499647485435030271636610902557498441945752333006250140736568334215811912673235012400838415820935315942105420543870942316718938880853434213111163469930823637283825365399409695926839370774367938182309629132210639376434676435840702380447118726382428908890952249134351546945015400492646602932823844630978789976711943330115051668316520343837860428481949616133325298438514465845908809202944506396992511276061774489352602669864408555930574984656095297435397916218309606033874496747086271977944529522011783540064680537737573259293403950862923347405436059499229160373748621179066546493943827986991954694051529544438018058511239829245934041528234860445889039439222207082724711082094651065799117457703684206082795142520323157813847911148980864478557263611826696987946293046645148351748629545419366490060726166799654164006256096449769048033991094845835407901459409944457195958695246298326518305952681618311534511249268037176709218429040800347557418253022091775213890227392549879532433235605429619509180970627895348364020961636425918026279257061028046825391036236441869620123159989279857058704668109711887850201028070947612368784493092791073444688863313553979338455613755398330660200351835457838686692815529451773792844941803993406966685216233000044726557121726917612026783017797943124499060634710695319393226588450966865889217948853511313650996660520234685520309848286946768730679472483568232148432797029884674338339184869129219155205063200544890637514540808074798486396352400392386743990487467711727841914736326831306184005719099757025804318738562329530199274321964084993428925062954821739026476344728281412675232561699637264639666376390361572394118027976651220524472008937048222878290771784472362357773872405472361947469443909451121327179564587213399312553065475076385369646961978732956955571810227168023686466344638075988107698812470089655106065572294105614671664194655853945159733840630112827563677611888316987273187378998814425563731734463252373364939793187193639702315274716989066471600484388692279040299726326126969394684808389284384781988980250956507550678978677516882662229200496128569271603501743325449056250066008840029897545727525921911786251935200944986817618692123411555086272507193167071829750621123301557757738784785632798764578944236282898613885359157737444054825901964788809597919102509690851396799113100453467262617528169986953469468764534176135459037236202318159917914297150974732148070967519878944646353967130837263073398940917414349623991581433696777013506808504255679267295769655481745456602219758208279713184293680363135743109781565639032203393436346186249754373475586520531469256304989178903376992237327062356759973092037979819248462329676131206598716709512134376990622742668081253932423713803939446982389317144486048171679644873076571032198012714429046606003686526693371993931967333636075622567739932454579385875440303934446521501637748396275102537376198881028801800833450701824535038972093575406364296147262210079387023567908610897362304265591074665953252530286538437440821193272545160907309130668464725311140665331523837262366439447555590384439595114006272248166894376535634348479856106030666113807133126407876335425614478893380229873278373649329221748762106947913385815778048166505249133533260126040968898459947539839139440083367597739239378839330249976973796275289594282071053519833755414387518069583867326690408314417679161381683424526545273801193315970008185548054554840022284543966028382595698425407800753135319615175082530009655889855576171131035588137249358936972000295675228355671274478232403864287765891403279757168622906568073221059359292238615992017726855912602739974577134226300796761585264729760033766002531272843527960264091821450151410143731744926264967194184482799896567823126368449881239718681006826724369928974481526765604255355262955208557087964492406953300426238613831723071759836630006862851292213756941520063245205175450836052616988767116340930140735149846929713916552748610488207877886466410981384206496601295734196046154938978632124183555899773200634601799422702725362777243726663905645473865929316572200075842193783114903010251995718307846344785705708202898674038172387056978544492216518041646393149815615401921347250249515388154197507529281950478094362628386702308253320319617968236332999058001704809528859910879133486363448131964090922734998837867411895338347604284068404767977913206874410179731324024099980547433024771217596299987696447225112848539235461851940948455882014596304282177493413952078966522730761355976475168713253855328444018303815598595148850949799198997144406611428742636948938209244179625333233209816253054048786905159013745452697031523655824521327166812806932133653701892800921233312931169215859522662407434499085236753330219192707836591950960333256184550157139930970595286572597434953627013544411189274591525523303627476866063124904441034033531557489542830775675820343813127275415191860830737441182242197349471474457820119264934477090258107021772535186234852146305846540043751077046241520109329435531495922584217150262878542141376585308528938456337162263481787257205575642807512410186334940934967314312462950569086425499111754488638751129945258207399005044674816466753128129505434666035050033673231929263925975076539349094415575986282634683692402424084864651651030119259100586478346983232651733764102822255081180324191104992404949872707708773027200842207541833625762285205312628817368146697911893705016803434103325612745658924138228323607227777558203242095373875644357862814569141555249507828200347798200707012578280664551735662032058269580330915318743295510818909369532439217681955634893846850378546507189088380272749207493913385249857444436486757559616544013202904004210226529214814104445522687405115461201432164217221795805754989803719178559881414004394200240039831780199504803295660766862701303846758482856687560002890075441695474509332896115070617168696517239990662249842790244687126718728465536198029170162540220237668674631795630748495118615332490795160179643212005544213500917067912761785127753644020902109549260077964588943312699725114270103988480065186023446409089969796953532009242307126912878392321359505851448001966686439262667642107483861469991858587773378744786334629018747487463372600011959603088933097877899902338821815010280485631865985573047898101456403752419313243248009585818116264074185738473039625202051610543331061376804909174633814157027154179200582676832308412596364773280640573736272615882253689955831546715872835476003475754769490060863998096894452022534353020700864960844815914590824099875220698213696410681707775704609898154950016496622536653162420340727072104275165162912793874516263465925298390780587580560942392105008887323618338048961660675619507734163692033270865372416249248043484701220475805783470638126304930833333314967946951849032431301424921055036612535384314925947648790118018211003156819050374798113671902672465060943544282832577843717337347434286889011418579804709172251012044598367140142955252586589459645650883248026178811352318127084298523949974783170101459083527613997918679344873011718081519318591939311678433059292489422926657652542395982405172410944636410365948826470955379051292221708248080846625227219048513927921688266451045962150503913682024889904404970474875067957369867003291981188695955586940599623668886594708731722943267006335596456163378518373170625063529769651982813873895824209570831482834457797843356967221106817672494353072333179277769869864503143602899054748049579614834344702357418546817186335256580462971030333219447998316334046445299840648960838660244107942044820432285993204936847575898950565527178490533623014950141295690566918048944295298426031655898869587516666446510520188991023794569364181747690611593097794304404861361324183701325513264068813216676354322090470457119366974667058780324255060455559577733781268126242029662085639897390507331428257865653731332547819277097061597484968040573033385608369684352732662222442033355089906729231185018568004135351161679958200319557676331113205834910804720529252644635286409003112694914763129105485621582392524792059239248416558324876275811087579150626439064162568758143295085064168996182453186541261430181461538571847163887091769922343311253277763808826501800194464247549595470118060212844680877989508461861928679429105424323026801932681076856185433940346595666623576301803442942501237282331512504126447238024494663312270431437099611565385529715223699013568240287645028060824013397169650053841239910110819863606246581685822997479454223836588367471289694746355250123427492622047619777807850961735955929168452665224230212299768257402950481395809275322340486944300956230367028910940107414631931242111878071946573734180138291133025041785829834239679556332204451550483064183944912755525228607634750922931290491781877516638021044294946725047585449932982737151555468130767009385106437408253868022430226264596291854090688900511220615998487194338780976191040782719904962875914808758671915640760651136796385609941738880952564394032287882810078050935515070130084571743250596148632476286172251492290824982562803702679328140888272457013872755206527672970096459902309742894637773467745212318818124400737194300939878359833542637380799934078108365860490715242269359176648058361034095059741081210612742370629991710118830153212483211147732370506474613592037653987387388228728441139688106418635358488378875882330484780621731418489401111698705149315026816643027567062442544612476457875239243834422836914023079670203647963396499473339889749720933093355096226571287000502053531366837875505508822723514557409139966069080268325058114874587272498713787251867725105883252416385309315488632735752532497101332595536543955760767360785691067505852118245610285622006899094838721692679499622076711222550696118475166647708470918897991717455238462731985347059753397797467572597025984387271988506077624023040673257825205204546152295038308269826243303354751329132882840258825567487288804247055929599477191066007695360252419642636393277007925684104152353370312478294373820964326994422758794800817942225990756027014783200554773363566831071637473063706167073683106763824029364489879509385389420560507708206791663546597123792905333266165459404773024342436290932948951340680717630622389404458051528425592571064472924577143219545246741980853200929697636953718609147623861730452890042229292014245173156288634825191809329374312344371584685404595510558495466100501558200888639179832704835222816429584657474713381724930903174249639731467225026519567910540138205566597331738637363636119503160707307665088246346153331906866785183196026256504223115687501681008750373995208075834100181344413971508892761592947533004265195056818948817945332062334885231082168364795544112015645968627579635001805672281542076508619344953393679172989578434699333881232842490792012198530921202093996723607856547820296569856290521913133765391328715110497847780188583639858011537123321913885754505886596429773814007060040221557117374450535136248837936231003019220189913473040591887799538237733485516581522562410583190795155062927905541689620035218073295527308917759643600675700877872843567683521535108895987009960097736977477595106848642700410579579339377427455147152812404414438744303088366698776628085192174458491656265415502687142697615404089627861684643375859570592403075983523095943658775015983746866969227482530186218938374801105995531206995688607531202725009466231364347703888574021399862096656088323752296301610772595298541424192711599220758342598047070497564103825326944755982178867230585725540461681211538185005351912637276450186043407568518639869448004402286247855494838669855495147888595052304509938258646062158293374788912278039596972123390044747938240227022653238095889768133775572659565802411829183563179271495185226726035954368776987687208404947192062136755731027055187267559022450480925850620340289068985034226814774988803110878942029737911410204312394466720279498373776419377281075851108242304482502832597069584211113813868698606567611372037371671501136569650292548279885605852591560225606596028062531994232824509355657873915138342283261851405958839270714805431513946563379306992032463695347475468977396846985045250052882731197557673909083408394479527842442287741632949125937142967028520041288188819063467113740046512468518588069476767885708500549083847377307092646791337676378141631509574992303369328975555086548465353587489762298094982458326342405638940103794346380137613318033197416229585091241123843481401855199807646376304311604186004699196177974145281786682131305982984957555395003998032670368252857759490622586439195502824519374049370025609401596101152953445244706778705799713298699530384631209129782348665916134084768787416300711058789992274013748094291701350954242670119201860151788706091681672673894969627569491928166405340627924727225073092773415142939766748809624658892110642251909660478949628967560056972395856123787818112665982924726910613886878237201968257158380909117581548821253654340011713903803240369026371722836430309545453012968823828678816736384123857645984735141499720243247316831688796359893409861088604689953874940410056629547286495540939447809107743126644327951614181345399553413132464001866571847253200178301513081542699336753588681427669318348858586294397304841320315612962066885491764315650298077616989019455161503270973334477816130103343007933464083865759695760401735055942998160875116092958452660234758433609524241705520686103611731754218397910668542358295492447708026933916369322683144149365142802105080571061959268088188393752170653471280345275357524446212298931311013852927614954234688092387891236257338908710200168722866381241954051706431088414272198379730168097821944441057903451085043982602990080258925246317738472659345062043254064158394693363761474046346947829017975187541417459415155246092964242435243877451135711437315713639849997687139450518526506005254589837518535179621761962079238420086203941721341817090427489272819628709814004367052824288000168689193974235712772964814768346062934662873242702026363335964504338285326496188387209643057235469039204298871099797149425842890060337018170231399879768670262987085745656291241492989599793919666025818648913909263863214344151776381697380296842167892578938336704833159209254901088771949484508619258270857864666409998575798745538670327936586066606543239679430942686534596443742045145678075327796427375025776624232966965634093392880617008133532543881189853054916279491212209747313372388910386045079200145508009258621298337975438238981236077487666319005834551173409036412965177238056276351302042103765174594748845780720037616328645437090112692337925122412682411789644246340822994660048918572255927367247731285657414616899137571962277362211936873499367877568648595492049363664982217264192842504414686054981206782020997920201521913553836475069352636151507677892324018096809820843024557931646251675219281978808924045388342601974776674845502662420361003063466997605036207224334333828470501389247932965745395177506563052633923053358798334721596159720164975959678095179373644303162395175674437376631360648714870466298808143734083177956878378639806433997528404812430175922480907216295491583105295025304938041287900491937631181538881374637819703790589264089099510238778208155893908758979784112711452484328861003507529772868346657922524294602386316494096642784332865600619650897278157432478557231588627362398905725405906846222067018497045701747068947370145449566809163451327076531681108084344924387747678023806066079440681592986811442973794101955660096994743933645654415515960136766554635709345381761280484031643489387679488367962786158558164238327032195771032424249846090590550112671317195702292193914046713111424316041022929257457324222638333799417678362172019001547225702708706097688893287010849536906962189166856496584312994230250280862347964066165861240180160034874433038812827316929497384792985128031551647844257014817683490094205616862843404477456762524557744414675650258446857756696322188679002424931682294725588801183816804645615606147031197118430912842343198901493335713845527781387797048735578054326829798596494355389081828576862340130247348894726594824985365907117828032154042318094670626391789252037751095172539156641520896317570216204708356320483434778196992518945808529205969102505746584752185181168877519111171905078569352810025722453666179082765980658485742376491984135883240386509354745785648772415671528200487163284592726501753015786215093770150448113289690263765921059034968393274753284366321303594403185606761677931042106288242714855827124338984047594618277299087950485484634475986247779989592684087336128004393470338639220376151881525452789030556140744759552294948343942073920044467361603466007841608213919656919506771524841272358100865738045247225182416891484835146187919722333916644981348233729263679134948372211868628284111648168766003843855501108519871344075780108013089115449406075347134092974339591375483387519145789670341314569934307853496205888822115231526658074406874286140185643711104683395455146228141667983135793979798871244214108180248636219307928997645074920683296257144812384122020251261241551994501351469085149437059825102103043558259926866227053800218580059096156717640744853470503196431550054714036528821239780961970231656606276707281464037494295553228424216244284590794179895050339638239095666462830338558981795091397340131682574828980631036449317279427601868652867063222377703555832118693237697744602938149255912339766547071583353508691553601112173096944965981539618909994634785543870164288952434771078261309246376423373304890361349938961517161858169789603546404040840283284513096295276333842551396166805330863592869722798127744630319533830885271306156598080949844689445636328146292347707515777213729893474564884879094410095954512489436340427623482120900734509075568587344997664869270042066228194331669320985922578902498246327526301243852126299621266144101918409055498802679146003619537689381461060822514290646642201257367880558130762670793163486052824725453510963345087566912920908455141613051689347817004664329889988214935654243605631928976972052639172079176987694362616327166339989954343052011328512210081872425234982014316349701967834998124871062301171570407706601392138886198764248869527530630824043013970675565854560260333677890187510874988760345149690091492797290288540497012659989771812895790189584342709323423268008592178137776614032566754285633569971336611651179791099360370411501190536896444657720888206104794945776601121120418062458633236644308606935683395988185679905384579260794551359734427479354786676355919648774228557975123849565823871119121167939662383166597585158370175065164952854985781422110402022414138417593481308373434502536203794468183203710363089473656667427141137401133598334538722208355946772816155182546597914525985779603457236285426946097344771281947425588852921716069933154561543240383528099479920367396613894465791264042949851265647897096386316168330966324816027661716721014998445229268951292723713086890095949075688105100102696767261524276453317684561723339357123382337858777722301821818224514575740550147385574744727371183815895389067013287915279293792752166557210988031641064176803499912374463054238206461992107822390366500715903280345436453700858307697716116939563285639137058353719648705427076438276568283270288703583370521885491856802076571864667795865544858798623168497261365649514247913773906260235293900833930636219312665969573929680956077728567578924976222762394982938043817898967509703325423350227005574163399618720215858276032030073080741728222809087293272025413168662996691359100176412882996985054734195451389485404889397371922004590086813766539398765749654206689105266255506660272002067279653967956713570105931647625653269221593241273562912598865614774996212311282111004200933439771355089476827485161190956122843164092503650878971700425719373707613793298306928439689895568673542843861985463711636271264934818140073339382802241023232616864349920800590311617716047622015327376183303934038702032827746929404607467983842069204040925377860200867652945991992697594512966520421942096861707428311195434672957844572519665636371470498441400507178602674329361098577529521445561167054474266151809276400688619050781436967174379852302440054350423456682306791871706940535354019805887272708424475508206784862331606199182110846544146192256511436898160380059389261398953687941281464459621665879249233741381938995688278579112334622567754792560507692851442875014007389525754204745034587282906695786585644442092945712912657237783056309555903348815054267295036953224842264094299062892345988297321564795767625392778716764081596488341330705882699479979273658884578032740207484594508516613473761238586409206862495126950944653879989637048284596834849903411734387334476474178393988271089391250675883186703919381459340550855060323413919947236410595646694693605119384781502418109560083378359751880101299758077498497585784821080345484528123483093186571107653403677121429995542141042944457324407075970511503194048151998412108474460894898253054299731888564772749759485827402031084981376643678082878405523411080008862620521898024734565075763185530578765529635315850088703330624395199481750650315484215938349356162244530598512066770835461170795557135746160113683352466029978013421523657124451654930431141985752525823689859994981657634034709645080860674940142857339047053723651605569170954931462915659882972847687852012428698680556233903607868408534929011198729373019085407769658947915429831492619841873484391398585571509266297416873813409089459178759537550527134833627159763687011024222487313462236552083303082943936660512196596163653072101072394152452286471924616363188438356390869988786652719657756985753678877926454897339397394869775545754079633940941314607730295892378476946937237519897890371824611172788229739524699426252929072364163555110028150191508963767482849798366809700543684292961604883518057692282951442536537712401798674790037038021555816450628937539546462287097635683628712047510724394501344976967527721649420666759351407756931056221463422616304002476576482197135723480266646706641811426716128198763084324045108891448881740748620525182747112021108682024244399059828005006546225719520949879818537221160708379075805205208484175066001533474419849219054562521654214811220146096413442547380306034969870073067588450479165230100472501232550285355098642476199211452358190376549448863641916610311621519573184472013187826576298217588667147223579946750736538253926921230870904161205790268718465660273630778288246229745582080705657715210967711323845306185048602749729626366557375343875880884481768627680221586429869628279912322629120171426528186074975255832579149090294896263961660258701963095999121050563000783411917112050047887271549882187055035719148885006984479561285778479387274071250972906321135858151423055439609567116601667252632153786094807512832744064516985049201529613065388800904427538079805798350515422047036301798110881809233385091701098280460880054899415685963292149282135727708347652585593544874464881937973311717200660783967528285286922681613497906920161224128304300786357770490521932921930797641268966561999868994072549250947499107694870994688853954468157227316362628562554471068760543339376340306282628020210987109803990397687260088545329289226839280553500529996770603426786500847231530972081851408111968428431083674636123705012103388520582432487543024974163083638533925517477841358964786218133301350555899350570965018035199678827579916208112284739413678503964717233635101114388132063261788825470269458691475082671037236306734484923366487742938598452476688517258936612199040410090715413829665742555290616112245131707776745631055464911767903451697349926784837173964598015871270838876080761334230839045322717365571731347738897389503821117196448436583870994913427676443750504432880629241598044666494308445874411941657035476655606801492334499906310245150984981039374694602821194358791312949785578447656220623028237780843106272259423947376458786250787208854229258197003480475649422691741897232066000054813401910594586881968304898162102370296573356902768075431367708609264653536380854572905490304063800906213083473471858878961787454337605047188312336577385417620428096338162529759393437574675181581264505610760642099510547253573799824101862316261940482634572185855772792420877552608907375242521182549605313926868843353891853329955310818244441345379634712281474777624040083977055592167626921561480484635784363974799031814851725828442459161286765449709831648324182425593584530659883904592876840088433225058368148308191577134022843388363588830646254145562934485213112388162836779916226062886632541644846177814619815637626088457912771514213974312243678320386500841274874302626592499950207761358825394697596534688321713877789614176967018133565804318182993270649778355098331327688796507186352409313213317089414076056747104620700674869086466356118726707867262013582152417535393107543118301093427149596836446105049977629306291835342652950249118641671197595830955373952088971867194905871907855540246630005713143217947667767493842198148338305389842329169590101896390230063090114242089430197271736460343130530723613992076730452931831084303038767441479242097933510613650631432133748051287432277271663700093722127684078544631173983488724663494231467063790972690955248605191874844292816452906288969054779697248622612245532896191034842850334794110057265018110453453087128725709044602442205776883998196386727165899040052497878949770828787531506637795060854934853617628768118615771920953802658975698983526579548182187942437222563002647171652173066209784585831881030609197575821203188673440741758915317570436310798925665806470007496650237152647878589234614866504658085520374921257467706693019652839516530689669606539764523599020564644724729076953344646773265970142555135928270097084007474149320308055015778461247247418431172573006158631033288491462702197861804159548673434937362961810822083681719634570364191341615459913142717864112461706951272020765946041030088765565562933777095189662011242733417798802020977572131375156638237948540609304254388595025302720377324294538753202117503749358802702181735594877964886395336237535852267960282424066983900929154688421136948263291688958777243430167155680652748241560508994790045390134642835319477152442046513111057837891801323731062090733711686202489166373673180363953170020561591010690525547647534598633012783379891386143804216494597750781917772307948636705394929939055345960143292908910474681763662675251351648085130400776865755582826246693973176340502151676606530576339153400957714646643848866049534626771687768538242478844112988860310883972953385373483014587004796391537037534539183877673986420017549224073482135950742429614492260608971279308623132827931380567230482744830055992560342868618948676740346252594859693397996065695391150494440544353308374642755322045668270408477329552224882904462721009421692376595563408272378466408466747038220591041864200717054755401745038192958449115043724466883505539521534922830379958984649394598714721128472492978890233227379414001952493415951078246618967118684010440011976099851000792144739044710205414227297572777406090773467201429249613436770717381175422322448166369379008726943744691565358514064900187133222500608445814651223180002981392935393083135323439823675786469625766513456802225473031878506432901271833867627355010546337572910479195911263828395790900040136765424109302428971916527207399818515505331436919954537874789947752369237624330318496118998283671047489535141755348121773655011448667217305303541783279848095589416252234837341567894515356096353476930457787392712821756529208002759540791036515188446226697654075429670215831968393886368897128571188499568963825543719273009503085924835122052428877557592445694915184317320281728715272837505487485687195883950389852796817779098482000511347288399335810364882916422180476360732809111330002639472618951230498805604385768861687473395576357555884934861917012260586365332170028048934603992707941535641598114466247320219446568977131953883456455299742530614877987258598802914420170672688927493205907893679079722953355297725042123314993569505872206757633526491644130427513979899466349202795881572019828184217041778151977107168731664381352595199082165403617280501442759370306944843371792339473179825524640951987518850475432195963616756239441582823265252895739813757368128883181349134592161770646269950308444747107120240734525002203877525684534686951404129142861736581596904195176240108284519542358150080415072380101295754167102329061773730069548111430202203164844062468556534255910914765612620271518673244819842488770375016344967302824020387644648846327265631843362847751691242587832048429509752011779674013015250238248264267807282258274974828276936271995181814217074039574641878205164792302132258415189256199252585684201626292602064641326562248099367269399527371670532801151945638286363272136366440767143177670254588091883601011858064083207175877707687805558952546624973376041632236311827803131841226244459850079096441062869896974494438352973200256651174764538586385693741862044194380089616774736625165104126578389394430714929761606547651707406091596912272253025080333732589444024072216541147288652987079870323217773251718113257803817072082422750690118883401421199157874678636936168426638821352757942736464275795971098087682013148711773932414753633483809145562832760250685312441990898824152372722921179825116261582613803177163779929904402768535084818866813102777989777171270429912152132593706028897455325442288686764643619543043486345186490890119257011311649914605233835044544482629379281623142980041836296678635683150984005949111926217204183461979521953410828448364993825650931629292955426808292211852273823219776066010507207390913281879109700165599620385167882719060032996659846477839725938225186646832374010311467763842836001097039493340830370124338979351046454284069370442282755088307005944551676893850703206253520280234031951650438948967340850213097426755199911850829401510197948302289522360391709811165423835703300584596364795152482235806968793691506361262111999961045542586249328928366092533850316404164993525489672360874090382495241885131556811997608007017961090058813032944041662834978250756747611808105589004734653101163113047347199618193808444785595157010249730481515915455375645140578803708168976414875692270070212056002788412100509795956837524543925102320523594245187347433651022858712119204339676226973606618600762678853352130699921537524787967247047470099209603474658722691531416688848538565193528224057384454034894849701781789549848472275805781508077677745166490055719916429736580894669188275536465380442716786814235849499512223178132711743116040881330689512524402036538219442185068184230475277829546240681933658813308495412871678310472134954811638984841998937924429289489468795765322936440700337614259485809904245352404434191420233494262031116799173821312872932527608563731519602194681897275569666080091833246273542131310873928018927717744796659529938445689774627876225166884055507071831797659047017611689346744833622520049050445389393501632241771237301383951419785753113820813697448968364921675764525758843187939540326024571513409766425580522963450756453809951687436582126714732470466413386498480004983023968983308479524071438701343440633690018764331084989372747164778836274365892162905412711033385354670170259095100719733888005745850111841134387837002038892350838288390604739338060880084048416882663350288396457478042830296933861081315376288242035990791458492586026411554910936418693541840468281819410746057724098698073270795970633654862863568345815369489906642538322562379434607508479628842444390205078695811943354194616926506311082483698928443105089402808416871962781647356721277251411382353532026528739285707235527502296512896029920464616314730350612860538424971130195050809529690207217062167580556361848394759357774040776656345330022028411101580560867163696431447379152597834286549179094987618887630118762271325863214333338876481063769656963688839827202546706025008339908526114638478016943763254962380435937577574236021261052066464737138931809477439562590177209004851847363337927693028148684140859140451718433291728663438223429419513386175012747438663558242059685931146713021322423244718016424422920809493783190178879706439234295546003750913385159259322448893007171341550423023435791923548196027833130366354438048384286078514833033999243469824948481842896135128572923011532358329435007749903554676257960570379065752963107497342568986259528785937354287512857019426087488392468538713268493005881610349997593109017365137103211337673332842651925752913320260020968015517887321919319266238759936753667195804744715822098258582763261590825870245386570851753157099761554888219372425943956876827250115735045076216648778423245224177256138758682020978325333855509450345780884091220408992831740446434912209083664618528487838256640577306095091212012706769756380807458800394531089577869297150994025458264632633401301536649234668107297086982154877294663523859566864524448045896986097187250899040715937312671414647472167690832568348072993887740926335374753619246077885250168428519221329150832868702441284039832670385045482438222211862489093613331179518095180557095934393042359102295910426173162909678165485101325553658887329034093705383418467180477226460096151813589609811922236030593860567604734584992489370873877182922496527676073779444939300340096981977457117006552006306439277967179231402712491385750662658073958026179326374636977685711185038249858921660405062412234080575706126454968108779086349484970787036115936908153179096233314126778686115281065820473941399898207902343560285681602971857555026464497957208661419275853246335801757644167633209920070097118624353540810867733822958038100272264146678049351756896679441825303124171454004733364833609566842094248885465489776468228014746589867820168890591738810026159836852048127789350866746944012104418289677116064810677979627253456299261434629109433212771209405766929620108305816519259708740373912920942275082047035336038690577847713501842856225174790617636334554593994198050425244224299964992555050770512580879706966888784069949759840520670886613565574696652200551709291923375754595441280798626813087225585573256014370908559322908837610616743238345650534272711836261488336203166015185367599506623167433149398750008685816491540885936020687058382989558537078698044428907121323724758342712221587415247725017558575137661704858453402192057791083561546373102324635585202522821738634240165116121459938534657773764403823815747606389372781855793138226394310212404994148092792257904832377541789926737031325804330145438849232431251003334505668475430317925857986140719618682739209185062181013212956026931417464271621514816420154585523343744881752480773203076930054663991222101483674686665975435306183646863463098891850122154938620258019104757041855590629339581989765597837102682712395330780068586466344595089520043063131264213015264583141394438392480875584719851634103135289206543617165773293771984128412825122798868146802298702842948541837945983517419972333691931447283165195101442549833473671681840015017226964009309683930925355721955460452442738791560265323594684150881435891754166251267381813173720528457063539184140631527902222733263823855377962051864895235762919724882113001447080926937117930542996164262290645547752040590309705807373812326454896497134016099746708385812607806456802896173983367825852223708220289236237185733242169143509561387736569427146734436741443353745844989801135785092311621692539288882704855950936470282872967370490411409736419880859986467489080402421481911829332317146869135086721741939447943386529036584499076320498508662224193909221018177680501803040400735905489674673015931311996430906106152514703472089856991781174330151507771347271456531351482652222025137507014878875525429103308460291699953580364879690739753039681780037730928795718618035493061075275166368933219650758179187583604630440980895023743617370222620949601831818051298331407876274289020845636921601726823267203049088669645650884311843202381549185751434909597746994670126533082724317797605031570472290290763795033946687413252791372831420512748917361341554604740300743220712239395967096902863659543272740256631402966144535525729254652956662149025017952763452635716525825258355755498648145805211886099919196318550061868048700218356280435364425233458841312864909639789335994863638114444869395885132585292796272469360742152977745223704025132473021563456666973921522602660609083476101252906801509180983115049834803183490290492042767568301633511456575220793971957223568170495870033828389757752485290464544304558361862315937776075840985919037181842116666897772058647732555591451656890272037204391091070423633188652894419230188590557626508771644322237838703915589617125326012950997672839299549662453426363373399704862120001655877383439268825918102740403590131776133791901362144506565444667226299046984600252944781256616165281994279662249540948582763097717440386276290974331396505859122429538899194797791708446254483506795250249838960091171508194919274972791491262182870796610877967688188762755769925747351023366385499762499654698083044989184446277399539028670046940212215208554560067192524025666253379054850068935941949460794848210225782616287924553640051518943510523622223812004932617414049790088870162476064187218957981538391139132572705134640573717001609849778674571756283975761396795134002715145547058315010378885850675242056525726518890397015074383797091348223181762528223210119608773175261433889247294789124015213133929096375070568687583779867741370589517834907123828383935277799118221644942253330475381594521603762426096489997026475863407430269861391263348780433149626931913690440822348202119521266955278457223360326799195813699457129389989351915856648955303357141419729804925781488361936821238910454605662344189712961090290658392152331342174257881733744570038033973882213648677950361421902324548592017342853489253835562736295854784182545075680985294837966038420604687469916946021505713162355638677404217522916648672917617269090778070663628081855672378121056961772978794072326029911161866339983622431506646022924285051744096070966755359076607351931352747240022174435423470419249642053028215467218965975015476999152361316029025985816237381341878387054449706444189468015212192850102355099017186786599799017102259300206177717794569406351183253667696557341537204578148628002548199759951537391776304553400054154954404640730010552202542691365800239463843712342693264433943271517613036370270027045648911210768626828656107113864810050666357043570658606495978034854702533636269132362746039844823681057025314953810651649302615557562361115769273505788656251153258247277077321573614418232321219745112430780021740567447484656940709955322490132029282053164823861503614907518028811956046684540556565396045992993279400380182804412509082150128872283180581766208010084924125666974021299879657206814108369039420192734503382193270224779081508266630627052099107623760835201581327037778657245823672265780941088664485951198220002497039421668441693232710842827247181484183587713508931858537673130162946778893652865126259607341759118817217054038051933091940526745379214263540415191374158600575750663683900682698150279477551113191174987208142610662620876219995505470800354178888711342084921189533446737908821607873677016213869493122618910893138814611785087841300665872726354922443034991133047346227412761954797853279188856670496725439819359946126026132834965791744848494372236256975702335464698313084291187009327050054500367485534513154922021067124419954009247753665223234564009468520718301499987275008333562560944209427367401703874085405422889961019061973400452537880377990535804680882075341078978841630914769923149640893823412471489098803505647607246206206423462339930257921206652859829702952921878492497816888280420912695159482839447814361566275083564548125870277820239176274871255956811159563078675555866311133211760537757085226511986582779147204462252554252118498723144357883027541266838315998301568427508570292742325930867648380400145533369583756102233836411998839011021660598486309442710729272817259567555778329454422442344208806074081789351205670846561415411632350069310945648776692199127751101495129430393080059089866682457558808759463329652117958455052943355793024059174430081858606577947658536319606045883458846685018537001528490744750922888099611641780580462207839534219772519907911469928361338232173455557969916527672604643747414173327376433136401913177644311815439406348872369808870797966059600104422343768885641227737102301724914805420614947480231236178723688174704279793362174252920401676645328204427596213716396216884314661435367240961632476911035498465563526814239136777451363115689171383276702422511295430547009531064743779585737702953206341753397658093778052692257982742924437313361833458888079294319060593809045903222398060117099787434969650989367726032402063722624615280764542073661694675080861862490832832188241919422359289425131157225253440184878127677166018296710415005959761886093396418874137970054782806159695461627895534937215922445415073426680576755226077986164241810958446316898771406039427717754972760381009846515051654566431398522112346375938497591694022564794964051702603401401039768148560312702619461541575643584328830080872425729223548752610786141997171204721484494539351062297037935041092382854050306332014889217035759638321848195202996352177324290629766369870507582382956361408639894283435783513128122989884306823702165262205777813460724358596433976548916055552604391614786616279697684840246838599845986379382528766015621762486089977448978548814426064693250913187876348517079138121800866381548288831304614131354811025007966707907799000027244581245343615533390465336144326891257472364523446785261575981680183201854743442494592366503830688626709502488124431590560762958535597745432002412934769104623902427687174746713880153178875958694352717766058451219961166964432454758655133120038259083732824243538339897959726732428147050866401064077082923372904201345821496697766764697502263379253538405493987297527426152997947549717360612900733044136877360919743855507344993250467036338515549569907515952302079967735920298243497336560037516787474639699223339939623992687051014128205307242929954213806494100120279429779480400367141057971893300415520092943747784269121231065571722306136437710552820713992798688237263043280406626793659842611219104418363706957594591200849076168083963282893718706721920595824378058517469275148963773650119009706358459266233289184328561512934551577102474566800595163333295880445936456135008875175266132032908749888583071611765204727729709590153795233754162617434134803994522857492333112187321363951937616734259570327946968133631486071562200599979316973923800277792564894385989679465004236678401444360510530687813390920286208202647487672070446102912097946150667520259652497555598523080698683239248929286608959447322352646163094264074891096602946138061752467415983338787961647991616228202903009637188647961797888477386313414344822465282239183157034565369794770111835467716208270247441145625742393435004890479679880389572106121908421201422817259167930288008725186436589067758561927990518127980887815385727759484489396005316863746018654779096186930658518827739384623016265493672831037452638062311893991187052411955630567209054170573148761938430943342771918157489245711043844196138262130808226925686564682937359762725254539153586203178588044957045449596150477321646171357053538592890368591816754656156844531653653046706276116640864139483854599959927728586358969000992869305968204434723981378114084181105213614385624170502718633177534801466116278546531131732715576012442088242867855176031279229289854173485922130241074638506802674107924365491486219709028399089353020188542730006075568067134684558407649294261973523829207909560254500155474186459670880906848318282768094819492077034398726504345924388243857301242505715113997033731339891295189052296806233859430001104074225703061428802593302004435151935993218592411817068923178512147419359142879738484681012040555918477863527227796832122937838956389864722224817924076373184164637707088394982384530020230190872405068951628246361336875134203661242064560275284275877034816609592143493422654317446277603989437740772746968130695383427944386590452145573461248404695765172220029212037105629452728218509806741927731713852944961273247636114110004499095025908046622648135002897925918562131747140069119026483042436661680105554431706961430316752040156202626314763079817384716737544523130168445899812946531073225194754944733120169022069522643990904011721196979541736040624232214896862387044532148980588454339356260431356699210079394152235742214060345153123638043178275276955196072618604111629970026985458876309706166329449559341990090521416280667282834004358067403164071304251979788455779432212245349462858428247304924461009394429054371338302607036034136860914112390733610745728552573523641147737599563918219893891949807764230709619815544735807906660394081758884230719679931736361947167667916240937921097418164602905005978407759934236509769577117745091958321856195906832255629819624926419712115307236195583719461657650469700323628861586442865658671868907164012473433970998776317028454200487943725702313898979234085939029024736364139769423556102891475857534098276356553250371035295921541845873266847174903205764612536448688146560386235503953813987221976392065304732015681081547709729156222788709968682595948919932912889667193234817283847467926373643655988334104952472200720465758586040835134386980243242186623214018222953847621217893184614387762301751642358271109691574953301037130489466844582305877722411444118495652287661899645131082036547874064838071191973001657308765753503754381091524377252408983291537225646186828400066312441507901598271109736620985271620355232257766265924311264122172649401052938055176430783219831499484747043246174519926043201553844279562802784648014546106512855381023590111420601345016754370028961946578558668743761777301757125222727477058747860166938961588743248915422343949221673911111303489101164998511459640260286825743954358819155543992338301073748216686163266198892999671622673483698100393549460294086133207927196237641083530752663081717854222136608261415135703960978780029558998227472554847285156555652931135086916137127054214695634107209696667238089584636864148192968263727858316868787365403402896240566447468651244431675333622065493546490592648723168119976365284979151271511750506930609874159412244763336865811080180564896919997300403907131085960049458269386319747063247137622357373229669293837337821784236647911488655085198231214230325823347209393010310043140061141920984726704488047816245143059007829777633568913146058785546600976677425555028647465836844426588152075346922463665053168336280009955809824578038395426922762127378366126290055334969719590236844748183882931176083716382072621686714340882920012052455502004911392668720051660943833008388440298623264808645119447831131495999236615591855639417730878713028714211202785124254137600349346294940967327758792440460560654165132901443676905306731330663768760428561347726160297249805139024912537645283802246618401281398736665803157904292339229558700202256154757722722286478305860234286835146703505284292671082991962933079393818601428389864716247234300670212310906833372154341917762202114139021783245922879365094436128796936529061054009000220673576877189260511501446411114773952114485672260338291141968740954931443844193589371428629413385846975117860922007468751917967936847656378667668644478080611675154932024250024522684978192339194032931640194080055460732709813494841031838677228876289319717680917451496847016274512092994054274754826115248030281147310166044669654299807441034254152953510646290665435807410411481297660878869380285249249864083362236733322003147183343169944999594885696956106186729260096134266952719057066143581931586978994462584404511614957309645165966914808463098553888810892858887075003689446033639236037112701949230351698827057102494628153266044388717430137249461811044462039676447084746994568678799235916004532968477678100150289220774307348531391229208078832295294062910012775482182956786403019785645292410154336998063355633123427448102395484130266781750287329741539037578806437877523333853910804210170058680443858022754091859493247608603963812144635108319529061111716515376433997809299914618647503088103014397084993530750819823310839390118502314699387697905740494143157547944012520331761407655479984551843418052629646592268090228441748084095792828281185480068648851609555512100453125357619862454740516068869372211444265169284266849262387572444039012844850236528717283078248312141334712875172652571129398100305469662904702227961025566448498612816346020519493618912198295542632611024296835468971447814246273730381115252058448136159367996635978956384757163834590814590832128895131186076520789119757390167104122292897924640538614231743136517673952842084863619638656989327292706022121821633953048068214785345821265099336801360254276856560554867068108304197707246478129985928924338421901327335457294099448512375790294205211638026796096063154543646224107666897382650736715176592456383061306370135337357076573766005509017649128339942355537041963697969608417866466465878149191371598117701866725928316928163593438047012572374031275321075107406768334194442405407843962805687354045817457567493005911667115249856950488997461676333963229955189553236265605050122280652724730043266152578789461661131585691876087684965377083489814748651852040889812987566410722316954395902185266931532759694993336220194472569835825914090170229287376082030412380517496400364112209758727966437745156971898716980464102630258662147986492957641024619168458653933400708344438110975447823425343760895611878784595417035013982402885249487916344953811440800287597754216413949961866732738902377822886643552069385132418483613644708438325509945301792786539864295078394052195380237411372503876844866451719003054933190268483234367565296255368411103546159094548976011317790795125165574844990866495864936601449637362292927740942219142833083919480073633524034165472914221609176001279868669663734799842581003776938519910739089116767560920027637219320478920536386957369993828248303984795470869084018423028670313192552005632445966089003530444621425869482038737109792393503907632238064431002742388436005858090426523036987646522565255156916464590360818532722455453017872925962279034681855258350270878363024823598849554706170445133480286752570274270673396130508909673836797069707172918652362429153650441676771252505214184514378343031697277140971942777776534820603007456020016866448745644609535969675699230899545596614188217803570235510890644992310828451968023717365497197424866207939669698231667962979707421219770676763574954099147021128753115178259702196332805816523482456823119997103413196326290486112749743516466009996439641967061692776420866527050621425059205204110855680793497383262965342563132009963575907679079563071431315095870659706137525485717902275330522821664931778814861452825362061151099941047761093169129803105062074219714745587336073774723471168541830507343320695664794973351360347064012958526121134124789356143804945566222318358918614220945464041828988368486209408540901528128479996654668413929255824791536057035366657033736157649735788282674024713913910286106348049572837745492453127843539970777999775320698978193472821646304262594298757491603813504727235835356542222075495183043304038534268774598893315934764096911974945391252900716845654275362786922679374559509520676086940428687032402355673702848123922393614639236224032825179145083749417285175744187657751840249800957090328599374440873985807994775497949792355371474350100191467228929131614686919791996627542370267344269706611530603617579808719322254847008013176277589281486286851045082655801375387507033197589360188620224073015849716805200895187101619672371109949488749825007425408892154618608694493654229424935319225803108085280555679840898639752361045114240049535347468886552681164946355769348230792626921129945131241024627269295313028864710408149693894584877061383237746433436421010136023042916494238827014223450867763104543474879498306542963492897608372642861967020128774092247682999194493571481520944453737503231736008698526352780037306967840183859926431180549686920638945816286342565821262100341131697150173040730541664364492875064465260503581415763157455824709973901224623332050717112883386301575347437323034507371361535001558823977617033314582511342843068524973568410027667247008012175797330614402130805300581929370307024333307055797204862044175794387309451970167038984108842754384786089549024496989511902644888549810812513155739305972941744631104110945201261620372004511894647919159506412042343571377343714496538244088134245482287326853352665245450285298770124744119989532991834076776373789543456788308908234918784756265234292849835119147998153650676747095501445264725012461485253003298676142493182449976580053925530776263422526213508542599340928634411307258296190275189277915898954873559218530887333728034092632068721650651490460100955780745815841036368791391071074834615624306196730200641393224655583831363208917741139343105163196580855156218340473678418463235983574448251105071856358713456725413615017350845693912371684202551052299164538114985493641596264408542583936784227634051795671430855571571020983341042247990909733458406253651446286132378203634928381074350226566163894973081042477549101717184044159260108275009917907614681896529707465238142038916524334606422323999012344204512335026613338785997163731340435599151600865773735178881120828764708910250327593447189163139409714615436485625309721575366252771935748772544454020914508602881417801983377328499098606621565729472462732552357463626904439559653475207652960284444574185628066900593847192418916100639391791287456283078995482171539978224712399491439309185201842431940942777450125962116095983588955061641448939871117920371292041643784005585798867166721721678212818294318900250834926674504318731513122901001369105652009190524718933012974370102909726874232311552897602010309882917362782174931372751575921895653912658388989943806315410884069794501697629884039050254713955190869522948040149959467928838866448145286906194371740586086754425070466162888701716462443247472716049954822259941131612643303813548462534729109164456090985879063294799728790642126942022356410155381309231286930854242141670869926629951090566126660046227471180817927010886494088813192756436932327370550931430288775608174002453346515981802809662957002049682843072665426768672643871468461779158586058021573935148660289404491003495589699717645422161834278682143684769074120524342299474573005230286965420469196786917859551929103974365159337634874779410811684696839562415996145563888398429748107150192669449024130392345593606793549560875909656606485550856530705995362787099870434930136796462090177512380357722755138963587454347772951074068974856518900793796365310148587410981066977177650838660389937360240571689817750334843469314102434635685301706423966252759889528412643536565995037341869020322875452547098361679609647216983971583287998276227046870082225044888761421922333599099175552423198714729653202364241481661413542054702999785032431380571004037457511003310971091981073666062439633882722413763742928614023172088960880119829550170163277636345902803115261285943535900853443988626522397973788206462175691190760893136956131844728750317218422450709879390328871742549960461384158664315233838730126906473285387957953274279310708669864028374339639500879722150137406847372875137293960777088627385863633824432820231580140729691368006305042179485316319851236264458886862447186568475661804934473823879966569635960298520831135334440483743575780834905547724211684806289376312283080295401967264178505539755286298683845912127059023947961809003547312267872169210223826882360612752812113183526104892696393636644553647414649562936740353019584243245888739337291690639526787974421474769796994083981694180104479848156549810114507005300884389576654456191772978145310698279513927621104892717449674931732789213392829740381301613646460237760887923088751956115065662135146718388898961910478987996828138767966671711037553082097945713902497997536333161823223851744925638066581587786800088924189605296372149166264038932612542480982771265976432557186813557996326077589075751143575519877647717023666367469739520403394752558272085112521432289056149336622323622593342967746644077802835234319238643393706774912929544327561229619849068069670091129927364726962546398943139144253861886469245388887206968547640649141852583019206988231012647142180029286145925921519150800344740443720591296000095242595837244090386342527228173580393483688776162517673537657847143639662117498030555445090032605877327000401637882602510455869971262161938368071692019160208576756420138083571263607093981988007243610631943227713895633465587723055255881258945802679040696262825999606009316458464518842688901576954444997818320532015463863469342620308074209474842504855346412545609936337263059310277512255483327176085339703475490424242090627978373774226347421963220682018711622972079620904452304666614224000022568050074836426599632729321601941797658339265781149881382441420660668213034604051210342981915213509389017397665350686945584435164376476968003763550756641792851161671670783387811339167149131469418532446305099673792787543028292727418420838710824865974707658000478006519220199265752793496783871679629801571810264190722802354016733191461502001735814134137043169672070440436664782474251625746140248550306734815004935315521893000827707090578068237275457867870435887963320251129986199022942924239915818888031241020021139475666468971744853105071336389921479414199715284345523055525320571600384063773305166625352913840559143187506223944603492129544944652832281706204377130254564029898287042193752838691328613788351417566765975771052464679754704671620733113804297824010306707162222893494009215450005477005779691247048700683982492950819104646242227906919715970763377200344151210850283340806539958408925808550246849350262001125049779624050597029759249602566341017321058530470726660325366966212316839432000574364109351131032499829008742870419776965030266185745092041075597148229707767582940955426547815791002414537747596223855543664447221778683813219926005352727318602432738293525551263899038734046303907093834392820874328283784877989219860893006845318414302654092927873472383181821232460982855609631293516072306595890002732621191692784910275157724487404737138905246626781826155546098737171931071027358357647743037760742964745418949293404772200126167181962883267751514725871401309790753628948022012097684454599073192654858483697740300949159393973107319549752378469181286351689130884304326142070102616289133621251692187702954120531404024056641819465917202562441446875751680303869259951468206725775868499030246609958902976081969657024502332225499593238637429130007918336902781485687304763114743761487428216679624400025246399214840286271251409991688264252818265803396113755726466828807819322978657786340319885255514076017192124000459680197950441323577488526574053613619706505739295638792943853414634392552245044915785876586379198014371980463432319018913225593032541322620517010558627483202750045910261155935606578799277089371217408718906695185181742977714866850468731370277603092072722719356198122764537308197296534474529877790192673172307345511381020852645287855325043228846067920532363346506398653753774182355695121809936190151384981751619187803499299100554091315401304095241504540177972950965507484827288421616385243953987422331853247012928403492292976942334944725271228383668457244967330818499724941679129768400356934203593036453057848247697892478008833404702285252814574519741787697309623999216099056564004803534436096713264431159477903326720260284363726083124209119638457742390140674184426885554508081042421800665315264228506345932175287988345921176370195507260218350529335404780876967689048504885595421763400624957373702602150210524924684247087329917742126650300013028018645985862681771856636335271860845419935569290777710590517531384785144884629600670754012880035947618597065334461473620957551631605015385322157815424505743106733745303352895098302372514794158821652936300261054524382310106699087401324263861517262909012522295625772062798730779313446926399100386842368025404743833257383369348395184203611456604823762243147968402825706991343171831165700899106216574813670755903888111952067233561108096166751759800433963765301161638198989864443433198918976346240409641076864459946879072758985720190198310557639986187235062584837328442886967874709577515480745366467926877786343435035397186070580234165984851054650723292831784267858934246577137965094479835097028225868120368862309536564818987923182474829955761969680813031632857096211052035879435568793752806507855729392185611240512089057560814760538316311662775583364109669143489223153920249175306100399733786310377773033170125052342559997838543890537125533635709810576160878188175447721110059015130948262730750285388309733939468502080679668485485816398399580983821384786652014007679993833395855455935144292935120527166040670792249828799547858652810842900908293262846775234711721768830029667301793271244877515963361520783322584583470225478538515652645386787232030913255689235764082195218472065283135130858974045026194595829652927522071319315349127766134758087664722914575923697586507775036234862813252373517029953271559856235924230161430045140241625354335480127305537384085855641290677827629451348163898287756028882402397547655604434277771442022198196565405972226783253936877354614002210081239568772734409857123061140099625265574706547267610126003420501203620493631752397664499463801679616838657865367347265871383356493544312757956640919566548876727175589224315506234910650812973319149912038048924806234486874856530909801203747479904582744111050730366396381642206899960434685446265895476390776620253505514887580443330862226546691227723044598479647952176961717479182927653423864710359927566038570073262590016180842116242492338643218574736815679407112464196299033053837954720141315295768261193611466862626584094630792302315649535711627457100065773993462201378013354108296391182350298170869394731745228120121456658594800826697878194827094162506870358847478858813932997936537044255460664691143638160353357937447350273084101550577399867144810604320934761629547830432672988344536409429444810604221757621009317786509809707730737667510105569630436271378369900972287070976515177996830272963095635279055622992765112443961822705936187495324920997322306823487316044311906459133195716405821223875496306003445806191008245691642074307567561726883888414276257912780258834305693060043007256985120079821100200204799184418851684347333370574750132772760347299428266490651340529893060280504001832323842207131257273577288884472415902942364673672402627626052719390139573816512552618532060220731991056780837489560402242211165534125421594771207988254161163646804088316131228108574970717004420569137866978107745998715472841025341018692318860664455527637767258473563858632728398086966237055059441299712894585958972410820774891436457753941140963525070847182313353897362085774489905389927705957050371303774076793542237464367995432392562014973090745817675491539119322593484808185057399562999261792257740183714043168944307919661777714978154231783893072529328246721534038750535958049919451613837033380165927086959056893154551139040679562079599323479348969504132280486533914695903184031174843827468725094442028877686787629804442649254984855943426437392279579879560505220732279079384213329489500836509373324777313624818709843082870128635722069398191466592671254198240527419105944693595640435104194502742199255032070249400094513228536669055498267597025068737006742200749580870419645817150236978700811348343725530088314803686776490994753509711876219897524308858290455394156171009438182801519811462497526921114860976367244836116523226719644994253689929096827995777972722747432241663123355477384790993972701621625888619707667079946253108039543533504791000357567134804759916140815900388985632153711679005184177741907573930528209002242076164870770079746642668748733044671328603354446114876454292589108444865073555320320041244627758596082186744422759344707995886025740323297129156747721615515756972535692604733672275737510466562600147071144083943088273719004350653465475896115856033511813341976246028309817011942620275951144108722178412269315271624065851557228314307258493735179563654738389476097344251143203466891392060845553496933095607366102859113184534905878499093921273153286942296480284516528762610128661994257149531059991298238162940798680984853732875303933954306948350991605984469904633443983600965580691514246664341378867358553463327619087640148372335683780477002733888169035820040343350332014620434959321949150687908199253657936972636602237534126614556923572486826729330911545072958002853799965431396431352078338186606187641547230393286089478300244743348557191851169814952183516798751109031326731124755550160316486884502330538705317366720121249109446567934918195241749033142603587991384026460774587555508695012566492756923302820088706005044198438625568004328931696778511676128298475092597746744856813130680412606311938182494620398276319702164104220638104248281437875328587259755860193141706078555340438008830071230541004233781799537381390038034533053993191293126338316920510540600058064542257435680611595673437562324097982078782500860695470884999986523493696823338896165785900836264604876831538606018763207296249902143163851961796884121122649505340301091888215266950283282183344656929500294278319680247229087319141616132223324669421348446670303863935291698449807903604630044322557446024275843585466535554807582865987314923557640182699629926071381207874983790979318830692349224848191396679274187076316010958298238264505266341574405807484940591750431253678487165450017213660996698129679117620880298972805017549863801084191071082194795059148365437055029540765892673490544065874003899957432940552950660197468939785638948574908793362393880692230450251473697662910799721367578025797601737438428255618183065128408368497122741440248315610573509780875230361150425712325564512630936706357379255096541493714858910483894908493606770130145796637733815628172573285731224982036750536107643860397244063020829811525567878003589481796601472097135019277319115538933929364896063231311763335589519905902861927473237100571746600769674466169485689650104980405001368297236776151959297496761105217649525004412850659109368277790605861328119375580098017443827583432155405984530660500061094079112592671903996251560514130788264832495682984937860508249139745612661161747994980706737697512318310345288548641129086562768567168561317075073055562713450261555796594982434819344818743820814706325554650424679681659950191390133097169712929266110247181497245723401994190115215692715781587825443445927320355882904515295644577044238745582424590328277494907325042295580821454040430890523937289689586841023395819333463367983132009948956904482030141820233887433295976124288121652049633900513857708648284099319666586842320352117774109817259552341542774991927495969431634875200140223018118434434974802076030352779114140630687151264485612140324852355865295440394987790710126724199271884855601296530866952914983823008169957179667182882908939905870195385248038735252914938339194434434254719842694020975210616892986212612820235038096329407535344374312948736594561287461202515021371771996529943144455809858671803228418869990134047765473767434622980648177777747594316279393148595308716985657758815050678256107737650057773854985253310704825316947230976561878473398240990988065091456419417990300670141605941283775637551113688364100951842954652150931979465747466946645675003609529004582703888791454416932191121960577681120172951909999864386182613604422796892527037305558281003942853572589407859097715052586283904100595844513352928580112623329742718663327919856498435879483479846554525024794123450785086718572596957052392167824318156768108940568709516701277378471961964352325072696232072914803702477732604603269009978231845945884663791699411403215216493020329061120035167616665023139373609391297847426160073351579113967115951002703364564391534761478217281431121206634669674086672905471454458290590531856358546786161999213528672784892039057042217175333064156681518684627871079026888436602543545193514097100193462590488559094918113418047609602895397079059329351442745808575645840645009029391827132967090931156084153206787128969483078957009120811597280309047833076321659347024311600676029561592028146402515811420787494995645035405680424926532698708954758066316756876548276849655200636955612955375220169664338185696811822063307737106159996897185934254906279681044491477554718181030537131457947340865461576539606134070476640749766576169341310864378165546328262748239986962096156287022335220327398017237669891524246202952859513019653655090591565448480974140403626854790966841067039864068334814275897956864813163401700181120617453157106159047849034717524062003094441294366715568536837805502437841530954231371911080294348241048453152587832250549278990036048652387693370626589765056799684411046660860715733119331024529940578768258821783634011423134723455434243268380937884576333969011243064190740561163357319345769429960500679608012835777384490291184315093552581893406176091255336716272383903600447741190691107101782353824236547419617737344629725830970290052517772220435876853568651153222882978370686019784654933647596347939370565762717576703826753207663003229084342297895534931124293178488369257699777016549498435899500855199628032923563612626697329045135262726549108900803913932032335530838615659912214805388592810464576828827662568113319208729744035615574842934033401852113945364559166245948817183247434050695824227947352936110094930659923271821715968577192548069435417162764637571722169895718393682869575084369669661971391223967195396533027267635150121341751988324447189863344666551084583935148347942567551471841002770154848044119938103054486891987616709531752559646952354179213772012318591706202825284175814733525252677353852587890784838425149955201529752846336946744205169749954055925288604202246821254766301401131851732263670579297700208841020149706302311618353249326374724417382786384258617926753903774847616116443933472762697876699622201201402961914979047162774742895485575952309819892727025581321236962294597822039913235926850594174293071459525112243234093393308355443148596624181114011838810021660903785139287845292594025356862782562446611900803392530442921816633676583986045866997098355207203024689013984294819261361429253938187282360009019343321328100398871291735103221253093364555037148098631761417653522379135042367742686433577361076651978705114080030577522038848885428902813342402514370473505594197346770877347021146887923711925354156073383137163468768888189156605897200034372040072037734611052617130577529361659527643105594684135352103766934848580095498890939988129332052098950394407554181468498856275533190463934080134167532514573046302247320992461091180145249474406605213254833566654650627360959834614938052439675710914712982915927844890681003968160748663469945178074887479436514232504803748956754360833150002081534437471964943312155964525807163898870988131867522662322871709336880332620207196836836539614214708799211484391558702248237705807542458295670320026569516316942648919916136130126242685296209598614439645632361370594130376158706923510301804119397410236959990466479120549730266306062374652493469122343573632068682604137547526702185889388609202533864311547125490080422662763931620168517002912990411445140425980222118010504263230359110984798375370198952846215903101821796882083703897680527911422687694265078429720753467370915262793844346293200469086712695691222152365826689029503452762901554334357662463734653262286705208124433784755124804278154510564151681602611147357972421525831250986613491968749576559045398325282034958178052294045728673247899939163485397906866476541162924933486983733271242507013105929387134432981893497408273996070160213252370762019776874399579271992673585885941703248613904130773316948947594213020079293836270711871757779913407363242921081154916782318758790061813295638210626618782251126707698789777970874261712591252757706144670905512206267684447294612618835801039951682201089395731065750971111605270337747194324685679487893442226568442403455902826211750877707644311519210240814840755103271028402193929486503454265608688964454573862477803322998420270514293538957700901542834418608152774558204341263029254238440151123894428294444473267753298736644732276872147611164597904260742557140776218086926549409876713184565956639406968722041052698610964276421750745239206463422193156172123814111405596299109273582095905819182375566078760558443508487219489486352411140493397243545106550260915965340123559564223096787276804545272612062851223494244104642794924124423544445260023253235436344467314058866190187346076696372094391684001989786271412875102266631269514659101091353572191148343505169393917590258371541690745945085261621773977460315038165831554196525868673470414273503098042182385979908215681441866975791557758015148824032797505614426098011913556016187130221244776257720801436257294529412345989834605728066414199353115216268632978759566421286355576469224709838502059238076718526795620957250502683520261473919399385657789315958049232588256245440751336401954593332377290205598776741995109109809482767655072115173380316682401955526257426787860221289630626635761020097198785971496083540836103046033250484900487260344742441891115621912488982569486673635648438701047705235885743665690399748867390235891397480220421884232254714131181439439115945955827291986670567772779481996743265074711177192745351106461461109210577831498268989785048787223311309640702295047491243471330546532215043184430105843572415471706940197441555819091467495242192443123292807086450710617590475036984061218529857519973114683262913884089629551226623765018787911269717837240369445345144297123901512335246198738620823488146532089558983514926491194525201390985735943523170120141905351546513385558293609215712772495974777286187267342378749389514493882544401387564195970692587793889259564439863417283884372283380848041321512184039757462192977380835965534330160249062835346053117982039006730713103716059554949688126708119750022763621063130850776226401163731655689792909880797049155656793842288418764314162990515294689713823891209447347724182933526336955938230304690965183535657885117100029334533284120830858941425885904257370259728673336706216324765908712542414970401363923031104461485776685813080212285576174783145537408708220644106163351148767829972034712471260061143084062478267134137323096020583207737754289083540286256196219772152925844756352951857179466529464222843826263014466246644301171776387319228798610609928687999319845495485292715912970542431326687206179641878145923368986390360806187702590384087728017372426922046743209899867258777990220825569187417637519248394445861581571886183149849183904312083859315849247219005856389882165335806053215550419242033020707818217056617439969238006241375733301144200181160760486862641781577414624852500770375294290980090813201896738216205207752284544438941817020603757334422443799649352572900024777607987549151435420207661480857365974869374237290320115389488931816274123973050402710216850767248410496880583671892766506055143778538181257760856808632495265290255803250963233898808040024480351505280732858872705190812324966001790864841524118093470745031199199717623097817710013775128746040584702816214974860399784999529519097870301314694765871370896227411718427073802999773940829472038536186296726050587213163198605266036128716965383122927862746369586909810291632180346133483414303974004269070992782816668412404749915786730853664598983431571229974427059582679565448229315828476036352135321147734202774036868336288708832665841814607297778171512291116361094049825264436967901962588984336292330720293320852957649870364242107335259000881110267539523783871546195223496422204880301721510388244798383703668190760643376390669511353863066813310409018588569871316417577757298199412006081324589610071256506750161026606751487871683515462355234572629699286937910790772448823708751823199519786913313328173708118733510084616920608164974280722997236513720700432669592814418752028029719233084415121359744020976512829930573487512510443720757752495969336168129379662335071321868992430657310611391008219687272615303328288284716369856850451447705317875157711832250495079682427175094324528501078251882858558181833756351441490224178895246037175789539756094955220366675259248466411224182680837581152065897478411687649718423346747509453777107482203453024197909049427134750186922424873059496465061533934872134653013944193949089395264376042509703421308216850427047633680334161639741272520381808588563786735097346941687026397613935006685893481881909832479081119263587193885556943482771013566476256788728881316161924368116920120816746785065795632828080098140968898502078310379088847210091070496477963109484945338578956015340678175893671632163714617657501376203342116581047368012554643597771803186784696505954473311532192271902299928130330245235717499197311527581315456038169803196040542777183812274188630464753884048445832418378907426669564072424962143665892272940048423910761448809072269539989692958839418493669470802835764962131026355797926928277979645555874227704475420267431631040645700404189407533172861305039966202458121216291820541556167550416216429705713688588857453267373850831179835871789489885882443060362527515656646911493143389689311142910936564384665554049641934172827859333627460176915520124728008240768272823671957658602574474516423955040360974607280807471109851095398244375348485367036172495828024740239416942749964113736797459083981308398719144955767678577296851168891062301273172386541778837086008450393719233628180664875682575981779985269183065372557504609929377645894520518124237380017264619526787217320051690836042748346148027439473162650165147812026861171306645616519238556772078501803373783850592540677499085439986358576907758036743612258567087242877425150687986745529967719541081169389753178311357028054056658595543570247877626853519471168426833230430035000821457133613970087191465199813509194843871214014472619148596315159033379376178547131760072991358653166716411621300394929136911166586851380890334968885881300827192758291071830754933278943427709880718929493788109349528190256294604762628109275967027986454145950429750294535352683032548461424790674061049911830480153037907167861930234145490127634095976408182192454922731210504370693971292393913899014452731043198581081995125490843658350167683967886773938775799645683172041712043004318299372005338630153962353478687608632477911323389741764474832217811035698938739269154490530408763919737774170170520656683682545923351515471811113739300836633561421883775676292518333546426759448393168401130455632974766561280893913810760414593314813623816404994969442074718547309443591908015701777054730788797082622811626653527981257888765200293380197909911258827915894730152198393752372476527449187405296976639245494257639070260343713025897295414920224100419649855175314198379973668798192797191932418854119676327517857584774357702192660248671396194583229406123199229836216545332494964151371354997751807559166001367182937781527485740125462497420689521647459421701427567898739772909829738165817529474286853240466001616677434895947618947605024271862607541701430994850499343789681374455988122239961745929743298124923794372784916728927802708996561953062278406103785780434589444563778690052328187585134966680183487274752808632708944455728527723555117761441071074329749671463961865978921912804068859980889160856534957026850703773115304941964459278704157481560023226249193721803869644018321187933681434875000998156461173128034604733094688856610670577858037140509016403113538069511038122037179689171527835314782197098336407413248420160440626881033088742783750221513036013085783545432883293213045358079803918832641706013628894487041521443823615718386041297553456862859259551019989201345393510302211320595529388701281925796182932575513824222776358748046069140922101379059153803037746748238709701164092361673450157403439399875732015172145030153689348018529482994770228887278803278302182281369071926249801700701264511139648695930635826366224983883572401029268343611612108453856950871120409897930703352150474544817325048878461418699208012421409557602925096146330526043590561922849643024803290855166570833972820677526189904868244599888467951865613371891386467863720692358178517732476809654121638548108391849441602004620364392346128450320857121212746273069893615383344426849736813937055025580556207657026168756782030284685630412281094653548755867898136379847500792904379296347825950960896698209190843348134529410558091055554225050280418679582571049298948655508233365308272765954693551157853717788700630800280746916555489992071245908055245686825374608144654586432115825327781206202779600924283343959041124149607053431251372297812572836637017205072762507427776126274172566383501135828670091198520246343132298533890260935935094615348987256184870488201666792583705629183879132965699571450810337170480517948098025496375332275083390185174742806320064411988595536893847604922049695684693318391790142348107759152114907005560819657533203931359223228754878932815413613674918578556769597173792222510120820019771421216677097466770048523938178321861631224020351583414884236041062143236839283565254990646064322310158528458679813639532406062834219852984334583472265485141802743714361203411887080790310729880318775776187329886241522034484248099965005686552896080232275470355788430964541126822258027101614435901726431130670974330171165569877103653991044331072347072513195135108574334041448187896758987871388209972908418942336859198073979995161340349984549012572498529730034091029987223715115843631215432457902353505116348758845088079188518601302287492359823666275810439315139835222983174798651327305384716749343586383305373873122227608722912804979980333277729067642899095471031454686669705878796178111339109172337319151027239876775898871606316720068479201975795000290059405076097330007733888626151385569315127720609652171378796068501104341569422236847200330977396602498776189601068722054310602500106216360243550552986088814915073116537484348284710516486102075264536043561916395146113325390387101572775202560384298004956794529503085601384689115884638101032363546430617229305292184579814086235722746837150553118217611140606630756972857627324715628886144962455373039535192022231700068089412234894741236524717002534754221222532404314121482461933774074586569719367698948647028402933248213256281676800988826824233977779300942344523972490828166586218898493755920081054346403798616180434268451281890079708408104311157636032126640113416009036085738592516208916411633425442210127190236227728341646477845686605640967641675872162846078248937711482132213373645537964358226831580084736302290601934178687406424767406361179077764092571529321099125448868725133298679646028438947230220266541762200436081521504218646874336327474055932342788537879049785018525309187249106176794628838590588657962616936089790352936223113438903150782006855245802028782199712015595369499175949806500858920010001572863777889892091062645527839423791484524738043139333229001295868386188043422332314775038620318541723853398180790280106230910037907135598695738484039085899733327083400565936097290405981049564893603280609821301416476483013883045463495209286625469909746158029801761574794748084322872493070246729858091875180739085521357726024791219565074410098365247181164692188796304015477958494055724694507291760725688475126080148909811124588939078928639848023740366601255438676780561800117090255568915424413355189183560523423599099301398036758558188749789039443886753202914902806885020054335580433358994609390034587493977795462689256441670609007036157575058074313655888725587826154602040237184098261396983172796234733288438199652619234010497573560749984289560020410096158579049636048733319347668498689152473213392600915934885827225323738151645064316989411396314099045354402381107114691996722994460656202082865024700904675063054799915544197361844208327330623358888110529929642657356218396866541265837013851704897207803825927943016847478556853665318399143997601719259532545067314882233526916675066324614134791769121245397151810756796951760328282652857043189234387909641698048980097257250879373373551740343973244390359467254708150134754944920493572578988361377603961833160952230302318686060544287287618817060535455695365779834646037489262037842451224819196205950877728815029756114089616565959104600485851896216183241017098627926784539812972304671168381885861272576577688926715908001698939680044042434261069139106105355033934609105591254472803638737089233638239201225534831122804046986895371831350230434991008102936475879598245000569807937280168490814227353765107292985585727363454107440525224340956048402100538548508149778779652448382248868468482769872986388578592612511011211053545415394564474408453748764153468014369281611037099811452373009784405811299129079454939597472395652791597793728870605741832331899398414669197339881076298624775495140657912399049643089753287652279394413057982419202375027847723671072897468123713651201185842367925212578706842438950706774676570886182557840877354992641683477356710573544251984979415647938830320728897618667070418779681951103765752582149502189943991455782224386956128732901125603878783500207983002993395787241250184910251839454667146933495884028253344910876397222326936473800538322182163344037618661406410493530462796504443953383917157342428085576509187671374417072912354420255567390787025420819935362142543100121770017121502612049065338399373200894879280486501683411284935282748451078406755935540961899621052470171289993984843056828921013184513100525222784087871933029516949967041927545259325982409255120751535264061502863310087693034277300382145597564820683530805414261757056309174676683878201517991365794414564149275255703006997178408945382678207710166306776941941629404387789295206449770831709601508991855471309818377908559413524566622771859081215603385755213708188038992140411596156066235911821588649912253910790944679427097526530583181573464529175849781590236821339164753153580768591650437228490734456660128612459385729841308482014306407035330081964579913348295066101268494920329597829524918329645196356158529859944987371775585413699679071400482946995490045771120310558553802240758084759359358951169620974967586427405594504234088167114650295441375988443527443864389827745097091016697305045056652446779371567163980732855860261540129385635285267555803999608546663167021977285808415091327683700259815236708728376009230766289700129522500897835232109766634543778982911994804635889729677262932447945331124349172096722092325078640943294848498237664444933759521538691548649474278198582667196238797313532015011869765123370550944687801549500602884510824414716769330025531671355524301578657267248018919434125802305677031003013721524698302447630458424606021264663520757214429483611743733515722653006562698012704501919954844265492059635603475733428236927112311025276712014423054484577584340968663573187636887294077886052806809201868772781329837423189466825894681186988871943292152055714299093020886688254280642078463201794954039943785283867594406717688093835929976284371140383742840593862339197403430815506975110610644072438240815377137413758857765094451554776620295112066105985319903327330868704237967743539597972072651286908493446390461993714502703741525964120943932918102174825041677943977565352678314656672143831087656027040693668138386088987576127784378136544313754226402594378803928451713231864986745124792971690648919736420904580607561960557158824657283222672230467651771327041115416352971041461870763102223083865831169656475858847583024358006430947366254975284473957465924662520513493996747347753092706751709345076835135404720043003450615175448862694928923433501027511990960121607054311166997692891026890408105369932889282971006228739315038982155562621832070320313450776417512453129317993509018719091524629774301658161731294935425123147719575738107701089290296742911040491759526014781231563617526518814616353756214464532015420696001108513035074947098059287477630280968276311091223714287977843974726270085245485781981785779642188196145274348023589308960113433422901832270819458552578354256544117624811487856040845165807308618641302266649315017049260303219662462118690893647609092512638456543953809627366044949368727378121803995973883438442189795787879433983934637479020407317512480831082721333750303852019918076280426134089611087527710210757387173955737657412262307245396337937133429613047664164014809620843754466735855030533536124322981087685595304602849131573877692188483148428992167919381222356867495710947685511468689693901748875423584840554830782297678275441716249846936655434253290402321455751813785016167008749178756593998193860555574395224337496494561057686645441721174556312587966684134941418792506947317683035746372295168667636784180235849194664564771313126899206983737728836942174669410293748995097878076460135800607710632563829870380289823978543563301429431827460330361887445540450015846255775991342913486202935222231137976879802294396279579380575590527275802142494122690766812085352247337686231933036659611989882384677599908468799857880808897759686399957672854494415207208134991258873666259294479518633723374280457774166466486712407610598109355175225847462065631567253542150650903786332587878725812225616740688162380875714867238835062054860991127567294824874755714338857785838104421004069175170838532656303017262906900982451457066216073353607261507194034696052411830276319702840090000102946184547353021282786621350840315498711756643459898575825694150116947848360699418364624256584097287577808929068031237001730830024310028795322423840088370938818386555037538373706293296148834557786778518549357995381561547390757593432427153635073881433133296700528453293304774138341493595793773724243199777651033753362808629733753854168338926873351399588711176669447857250533663677804618027841302374202642386266209117888289699367369568631484837977751064018844874374568098911156314087648865566750977707121046524475155505688961709975678140047287489811312622730970907045970360758696233769575510113482251252107865872694896852592801617851384409499479223047850165839818929235287715735389119124716078630105878987688060148068816470966458351637628613781931531177067660185795440182773342196783733283027189360429016329647591503498881883740377620037096851210509625320357577512264809910078050520912313341817878008110572326511025622986786922234403741592178289831707574086334892970642655715642394940342421235331177958491794593256679565592577581654290403434673359757396693807811263239291858038797357328517638668291333761605875642903412653536490915528252701021476784174788246142036869095633897866445164035794651877028264889630081556644096480368443834466463839891259912641022526833631341103310627297897136052868024210163731849767146655337355262053500994271556517202652599550059655283073555582200578221647404423709100785524378101657842150076404592657212044166793000798123127233683264174680402721362460836317913202000101801256976247150829625064055649379256879838178174742053620110129632127246652150414849511433870166413507209816858490199819994729142115207290791845106379673183927068510358871835964475653073109633510120146563417748200837538879404705295280125163390965240458206246634339062192891233353501150583409957437432516247106211459931432148512082106672143175201900600117562291292615851535757220540761890128101041110589212545797623727591847992885614059891776554206319999526770423483543184284702347382077148925330934168706675705708724465093473326428766559453385417981263753188252774116379970188688599255089087877513357082664291757175187425940607805647617137926929277486604911684246609009081847910081744576180095573577073907838203611078622860051887645813803600072621712041002907694966489171025182551456273419287073988089737079685803226446486112100117460505833526466213145935250444947527461701495426420503599619576409232944272110078655994109704015963016056384260883786988962017112283069412092275247069665869062808087020197373642952627550020732230432511070422040232276362390497921146510926019062355321462625306711260879737097301646234676756083197610144708764048278875655382390119323361324611290168732663094794102336303023581162396870166786340081542981437671294175251708067068023911711546152177052559783133425855834858672390385513403256425863096101977266913056605147625914147494924397136926685543182557336255500355732665171412774157379733754903478974082849661252124463400268938526071853540137987499678794797445282505252355405115603152453487121176982189100650739567282702803456957062356968905520776002806026817616206381980260859002067724358343296485219457351916785478364949842849902310788177446232571533839628373791939224471900032524606727497266574022731493896260592295711307860930677404741690081603738489748369517561873202083314984375894995745354687340295110893955260159825943586406338386994124396672153382205571362551675086872243221519697046197770855432809115608429860965367124650485554819836833118313144275352265734673278342226812231719511806120848453937096219613121430493471530844871028143676345565934420534202468286035762479973927256789395188758979492979645728957081480702361374491289924690620610956852615975649767767534094852749814653916591059510042903827832136544411495031834516189667877008526959494542323528194613470571036334115917603009256588477017928998215331268143498988006052756903397557486730868035505681877804256345176785231252425189245136641672182210315167039922612727064183441037747936850029148988448422455026427314808949317752861228964078786317393322462431695028030897936995884890640343672838424408659265561004452342705471265222476394810014316673290016923589395498697213040967240331972254443187751102463894350316244874274177547195175636334495104845218024504844583417649432903432962496569689617194852171462421765147627477366841584147122693884678250717290043970506654712691896427781376540056398338441654518770753391261963114929918366889199981149665758999598130582475506025459612554530341206350057769846372810387200574628438937831959847866314543478080225924675298022745144109694553951325814528769195009993893250396180711476611185693640764100441848631970667993256061943067358805610256186594314158689885203727310235384704808630278629385465601415216672451036700191423006909636200981198983057358677167464586804457890343359731159397959124748250923321787919499285259926253401724892308250041660614342437960463642098414610121614636815487540027093629288890595458513799638403804790522194859791229820835068181587178929712066057000694281059075477896493911065915407964109915422085814660827388980993035933424698572194444889462296347438917561679517230353459282169869573466674837555200690495458656700804430404851881849955037577124581165479702238431859207166364350611466798952158686839129982901348131051804392713376111171101225881582129660699171841859783939809823444252310755969770395606741181535001328100152667311017567341476594048015558908836979072439361138577793217942716472700489540963681648004438771263221030541000683018198256497700061253013597325505749751597808985536504124556792480569587260906275918341156407327899335807806621712263685404796238008411482414459459484240403695326396393912303339781830205172170233855043145950087805394197216929741287168442654709749591148328460414264447329039370165205036624718991595106701848515737895865825950724387565165562601522955452337402401678983521822622475399785815429181280308426600292555443468673350465350476008994365041439778480775347410882610018695798548870027755513700761047926448143106759025969015320736509830045661415215455363734257137926851216563326811225600814048906458139706393285089736034061814745644752647128272907271943224101863510225366376456749599213819315783391188082083339648568322733951325754744003889498449979326367240130547703737248357305942192301201776306114932552557994434437981695565847746846815104921506356510558914232388432005636630295550925549863099090391620269610661501610958836850019113300257714745100360410026317615469065037779443946822286340657354412594050291237638734212167584880227002556417984714278210552599076540936152525370363227852239072073232863433049205358071079306247473856286439387112366014770526437181836856503903444000783749814152393987070930374831477859218222010792498420041100410846003988180222575685639699258555508001421179406415243852290100297358642170241198492620901876530410043114662531772247784658220978630173571273402701949332112336513117374331942340214546183412162856406390798341972753060693937951158682044493885051253825755355405412402006419540787512537147392282592686806347473463615190319110118944429813992563087321526356855566578126302485739639882489347530245769783710933999064507177030661467967236700662604375321875293650732586378751541262092297545391898671401984232365489874724900260958720948252440498727686726727040849131044266856900275743336951155726309911071841158589690160400405223018269503496932153017244757417593432173822465310117104532791263716352316130589254799882400051738736705831088933037465083868569737407519907391884440397169282491426618384579401652408219772277741396867990707949159529737966756710096976105915130188975346143375766891377541636671324905080562707858500822677050064142178652558607270775500006271187734421235970299838530128704487137742778904171693058966612551132506806641322505486920370521416929077706680087629031209195462878366051941798695034574361527383430200732268320234027522627985939255503141358998440530913403538340113507574399644372304425677565956321369496076457758237401632671689067273735603190420956446118278191924966903419551339714989667069173835391382184945967908851219005308485617540581512499456693662862041316924259379721507538621221721692597353009480539601573803780159538377210870061123159703770315178266105621025851714017777827638690757302417531884329114808724011909495338265976758870572439127375183949689334134575026126465104399305189501262309063395185518794582319781030437513267380619655204028690005631284744798889584103143844106922759523432889751127984826020374234141154868383174550640742461683157083545447622625692687099253806158628360806280514532303787256940587883055140987331938994487933497010507366112479714511044182709750447441566684743678792449411648769087434737130880583452689795722144213205170877444916990767151481838710515274047390986522626095416648862976069521538296917991716051263077701779504226815080133480205325531147170089685012185404128607146807123515102605490154246393394281305365548672203818294702291840191564930322503922990137228714852493060376675370507833803324734341690181808492003090070961576369756944447734832949966515441185446973440946325889614941598260158151458694391956630032718034767079395385182488436380775194611463051596942866516150054141225676660874582498983765614199223922621980963354350311051106234101402115564640138121704436518807154451893858544796178406001536253015827549256783967338933158998801237978469758902618592507339633757077550246923974293516880397607742129720989940163313483592369157353567257929499236694293186185806584585487757442066176017596612194815889484345772729058795197229599825486744921295835755696679922665477000757608477412923145226889352724991274784968891995292933211383222509506074867491630331494696105213747632661588919580109284956476188308097396160980257773832837260933414615994097563745002869600813969477231040467765662505172033807879775074890126072420908791754795170932480935398127452485002450573944510087347734784519816766303266877215563122538847679781503690062216289790631066239095277015539190763472037580188602894896509974813138167622282059586219986602461842774875751356199063963064626082699342422218872227228945884013681949092068955209846151427007341595649639852260150062338406258566510688167607259609216848077658800949733477095296194443194797262245051259692299906606944478151830039212979261396273271456355512709207005824967152923210728352617256830054643426201503533912685846512212019967127215937039137005744780648284507262613096618058839500475450813544335849738787602695936501142777734129141736640467310285235542706859214168705032325798425477356559192271251489887581326852562817625756926590490766767369624809466842646289310590447670762767683666171678914353417894296874968529730501588128537537550222663430722747077712776301935483217234853500182001809807471984050188025126997344378700609527522145874629325640074761196705799212795892107798729040644417020625577241426899202296686904328909545985090029512283331563232985421728918458386680202792994427495488905092351762382680114144502143084561025624715290992601155133190857091582349501650992509017227834134876099792605899904039749601315056195435669917454877269802705134358064989202501752545795050567411936768945505329237920168997244678099467419680285226011113516523341349003490008421797260560302440094503755789248553912936404762652140010863767595982847664180826040425062079271248638529150680388560375051127366657871511837388926130710425268704475864122169869911290422959724359713505613184259834944407053728061616678383844817555916411958240408920965048613987186210053646890220109460679034487084371135033042913209626817701791457465077732134894335866337522864646279055325628959561047424548404273249706180210087980029254725507014336376710406359834644234329613517552245606001005420593066002130424702471700394158516843804463158824795407249653190963664776807385402485456441876021527363812955238480218932250811125871133802843208233295741361659192341190342694709304898749357753846298186175300719810400880352508764273396877935430527291757949878308916913488938264231067703037758993327528191769126829517601404075789851951130353486156974093825875830852603623192513613037503309836474810476852909479641634916570283611858087125631937942298923450694690912952130825973352223004144269894283334656235981254143336801773318109221610705486998272825966274210759477908427499994171077950603340193524302238284367829968866725145239894357418462776042627775335657058954690501007905738671772533591607962062206258102996070536529926441974644947235710975781597448060958393653430635596517212798982712537073179945785949549724100920226428617200130066206056315617867449345817482461135482189560851353957323319812852835523721360525486033213422319314214744697150219833130503547805658042840769687294386766188310503610597695308996124182615367785446324978389739768628133709689965188010024601876456151878936262852410862462722158420200796903675819480364212083090915557114138877663166151166734253097970066693995444712519513164010619686561589500284477594922081921337365638212967647481477173498218387419732704613950193939500494069998923216425387587522795991333473502253371465919581503729932921172138118014158009078448698095869037002969931237506681850445093676294780298182198317503373225417835471974777102886967838390440622836284718412196368785704498200173257320563164651817423589274902897482600901420655749166339963333214169550605461573257758460278028899254436120997461639824843082535330800893702731495991698032084787606666809019707173468004976382891080893460146174508953160762698472500047535843981252065037277274437333656885118997502575836305151294084466687779416636984344972980070247751384183996545549363902839174227996735742224927995903139295705386981842159226177291374628051851120381518536882284832368387896917616657722855091246522787346965458059825443016910383510285521104467423647728789129614694866191355107099731584271521081041313653685033930126535319799152489315544752365074048565324871159964393074589867519603974825044334729422922921460695370142000459112511594148646145208072574625962588272822961780137434503729945717834268009214065374033710109019997003819939090982075579756949765043847532190974542473115615605348828842056593178450493163307907702228138451471238539849939253718308997469249511070179483487082467580971930683352485133802005006606751489518663651713336784634294709284300991284585582409583009005785729162880861278031424092708049020458772813612294296711199441182338152853222562413121380595099068266716560965840804486979426176200364319675459401056164648038364015221540539228929187592272606486956563606765811981863516877120619427903158168948831711652816312325711696918792235509638171738735794538143205095485900566188212013485798397189237214407790494313599758327024713894849544724658178454811866713451695830014340554257457441007925595152116550679252667553346011311953552733375689110917406067997807362871529058396133077664264347867826064288489685031659936125556309974522715276979188470930400688800040510407051859788858870498644991599680536072607892507493950874435535774125062272612554815696857410869291333642411010805653488693334582396789421516829841875168557712192839283477022455148706529812691415026126164099629456055383558496534807906590003683458153809100342356922213423763649677428308613586582208237456822392140374710755523621669240604010159728733927132843800993068210292335555003091251746705048346980156769999204865105433943830392799714984562405311720994413611939190907873232952940663329600844076773712290177629416435906799631726691467820128994091530706052073813756837946530968341687904743714571723411866047267823210281249628379164910194935905815950679467835330667142571794013844534236660205576912665357686309837093853480809557459122942937464105693108918790953221694811788689879940095818409975476383506237254031554944749113585047711952054403427812885910211764206363506005898278130257026475373971081846792928823158028103499350007361844098446689786819382555859444689716330721412072980441963977219736706185951307409476691175911641486375738582946538463024871570827933282840037153223849274084802438368339545499617750515020330506471671403602343256927542151790404710914962590835150343803344275004280254956474339794292516218388831735112744247063860330461564044331801455713038504321190725530448446481881586353898673852105900389591841214387597540419920819325295138275881539363929882575077632314846325738233588974135697183301063977922149324216851581125816642583407912947233173134218724141211607514561034405072495783361355257588233475863508592881034670053712368040295999900374845913787194502344893536396320710143242899407618003848008700646511350321732328904119861021772288630357718048381716016874802039528029968589955334763285918274281431648499745454311986500098568364718723921928896947347206050554182882848498616203584071989358595040115401627701966521417446181604684231468554404094924276103270393769508654677620586021434387325892879148126802547494637727247227829249195215326233562121689048344967840092989665360847003885765739103322440683214343519760719292331763527640046996101728176355084890287349672499907242046359838998542602481662789979248765075545449448619901154584952094570927611673353301757579103927617953700179733869772423927957320528921485507727524328174393303576929784032359223842262362582638829853283833196587702410975228864201624264754018286294768487326513121006524977478822613582500915310074938398568470386109598975954608998071756987575738084137657457771003037247442739609242249266392971650472694339215327554508719558085617318748653058980934878665620151670433664002141913728544209344158165077377672162851532228829230244049335537461990055051385042508328249054567020160498024371564044718023722675707180049722957444283838098746782872842172219984160388657487338056689170062622496147972122698181042762902571294329126536587322493114176441579601734856069147648926356992694509205291441158717359720023211145435909505703944991248617190576196490202308047979240490288741031108723342993856165243103968707919003820726001479326714050053627149451172234000113178645434855069022632985172476698854625488442991648843438131583578185422353431990474831127930186815668677710704000960460097246113457668617814014141209328045442842661679530121264578072036330485176717310591376040328030624247445170586990717835376326459928483284312201622445072789075741184562921194847178232499844140917461536882778484970249956718669620287271251320758008443707784692537053795140550082716371100270586943218910918310393511921446283282433307655905213870688567131868638298317352194025523713326631280658420414638349091706506837545709348100154940047096702158644485598484849568165158172252839963634690731039337673258697730029496833325096744266743739065815311775750278273874561135048689190226202232020009246100263368214569029815852622300094973738611468023305928654993216661074548030536914824776923333884284775469500997994403539519186496995739437238231717626032866248055987903664429011355464413181501691883953480713792604130775057526156453781934845740243753423355431326197578066951173843680862127062176718968062646247034376798516272223813061221907588578103074931632778153911138122415028959307764734097697167311825845918505874400675477305922793767131865732764969715226528499261857446690687310334676299692885860162963208205869798478325440164375787301687347543592525852084868224227626803718231823890623521842923947792377653677007897956182358551167609995655049844727587033996720263278608279064024463654390450054903614281182374557452799018628828309286240716586674285996376105124411694228552689080628735574722684263169389009930387572201056831568023753442466662954895898589583942579777506186094102926557366756806459045075814021666415720921889406146247409233377828004476742584766913846479740870825753425112075178426459392400688461504728308290902641601057974923643924971500282663386829977387425466189297329818328850446082374509203823966910577349491265031710086426348033724705595828969572735788487502156785636756663315579387150429700218920556612722782530827359118787296884209683594435246701483277372739161858359676811506183490137938879203856140567973274993637817526001241359551179541886243436683381406831697650205642271009880685436317966853382362076635108292113431943375151834287555205206297976447470250031435431960790670173664858290539127806123900662441578868897572044163743862478641022881781126129721147599171051610645590554490190485438961569775611178542617413399420085920932499430505599262869901843593205723003225680633631340597639326662433137156348626948704986922373831635782527271991265395718253624359067582796453450019822028807768693381043873538063769759567356863311444736652584225230342709444682170274658568269487502418248889915598402733080022753106518199019713460569121830237624252093291717113197932254267886799970307779082207225768354438529095093465122078529634143031664862815236135341082606364829482462938438094980385620216469129710003937187535128112948288190963263438097060378211798249289353136260557336202411469243760302031031081616623703128895359157167697690198076333282757577716587110711302359440993461535002927155647043692847920435368115267896462395772935322425116896787635229130563121209688065306434095262531467577616796176756041557233904013076846929598275246912712362315438156658028543906970537007680541633059151562636317782139307062957006128296428250521586277449581941902706799866535403658503509052372311154102220973641042818444393091965093643900219457085332600613297453602666838804018818535729911019637005662691470989489904207564726850310689567260436464467346504680440939845126881391450470335345696918088728943254484642956151196736192842204666882731703004894457806442974112731821246591792967394747808328502611124465880442951470000549506004600615407990968138611451785043107822313862932512472785256447792466157198697841653615133002393643217732887643542583099417918119418806204267437452280220451720115337026547214235714784599501035884429123401930816068064306427699407774297852642295193076015270269364681084436187462644692148974887746933190474460773001761153266813824301037727580106000080775409688772576867904546554906928999684958093844715236421408290648534042711048963179514281991030175418883126765930377360213050051389228219259446346205293240980320738921585840676426505101643054501862754823271392203000831831457284918611776692166424404939886985861427812625766527258863857102600808892530306228814668683872838669111410121085073693933439698370580957110640820198870191189531527846826447686807925161525284917915150183449519513010569444332465577373211794185835006661310216054401529718722899769534373143980908457358816489038642325868674429012267885330617792186287870636183264914597917412767448024342842926632412236182331822329957723532693959472968277205639687791320899031605231881014307974146705785846625460094298195124339352703982149261777541932276591764057660880022121926935608250170370525758992945088516519689242645306647647713827398069756402580788432354926984829299772111243704606755267766797498577920067788451019598498061237467636697552638580202668736895501418592950286942939129893654352874635977396126272193519746202634722979977922577481343367345321963575683120594179420757295459405292133974217431284006510019366813567475783009921157699069513974509916407097594456656252586240035375761560297717323636052478685907904789363947254470444762259442499118392375030725411034247925942091176563372302844668355683215557642416702009451806715836420395748789654964080356659519963660134635023047672717460906421772847109725908638349048681674190168011792212583078339147301910782467297872281096563325752267902014930195578870999834678852037903754585638904281706794301737794791367525361619661829396928087687879646752767347448861543232626633043540314613905088392800296409443095183453111476462319914556530514642523729797408480564119015792659628604204829961593710000307236437107901669696759883068905336985109074511204223312493842856829909157550800397334543410268781979635042225364650275084230892803604099201460151930183032350040753227279602387543196874248580629012311593467532775055539562303286124269247749295537864400514534533273580657457035170154092105165910033172082339294158871499296706044952567735752620327317294640676035312634243087159147542026817559174472026816018400985661034751277887622506888965930405933229782554123043533538901937164700024896530365532184175589457135821503414018086965740348282444985768451217337916680473779634806534753414206462432868278979747297304487176131847235645069074465019476372118131039440490771517376014485635933285236688098424241771561279388286336496484320424299545738901773620269983762946645325281094312375826178735040017219488259056358476392262587863783101468414772299085741814739104906685854247624601149910540951028017374128792038308848059441035233712369509847999476517783688060454529490525100412815250612806926588819213173722522248974096650957564770304290832747545156225480178122091194905705574880600586871960920666893615279631684386116810143536192629492143084313571128127901280973585505956730030111539656114839793045763880712382697110766213069281229334858382527197125517177547082318475224717820120743912170163170906752355760006887826515643805657570024549137591834752417409112982557060550996640565956409919460587799599021232999651239425847913149309156365479952537573103230278565081626988811435856226882500901212531026145439531636063823374813035074447927359256449675368607714773725583035197059114342735137445266287178133694289916840751435451680480609850360759737823921046348810768545165939969300986510991891034822957739011051205885669203195368165306815078658599580895515959816941602102323935623200567110055487197736286297281325748059256391970470009394090969463542310876725952479777099805898339560439368606974609929591956981690959785126024409599273651341099009255708733210182359570448594284600248413925427028112361332387781042479126765591455535331681186584162503702063635161440473689606616418034676456226211660266994254925139233813096909964095024753928331873520156902811266106003761954108513481404956072659308471054227597529638920865548535706559429060350160786256628543701063144834344921922750538286622282006573711501446222027264050769974911179922869733344082803689029907445812853499041698331991438677723029084552016826051299919285137933265157621688239482216044682108984554697396424489540984375734019765456623190279351019322494618985207487240391882867196980460962710542036202775404417882933040209891146459617032903653757222474643242316167195864046681453133473827778023735194667662410351481653915644909650523993905229532288393734582404627488714253144725605410879340065571088555146728373420141038459455978710429140655940261339688582525654562293274086162152740501930239894036472698793778440011577135849993440721019237310276938574804714841285341611155963178069808595347305188446660213721021450242388720920479008921706481387370857471371203592916746256694350004484409468104537539230829038212362251711429811802220546077053445224055263293238896657720806940925544731334557911464349247161956906998250653704106118507997283083131084802825472133389323008457476154837150145239914728336588630705338263938471001922139856620967226256711522129274853384821347199134958992325062260794188511389752858913626798825691098261453458473047906430610218882522530815737993926109196647399802669898737673898571138230457539858096544087550957243335765873886521386731035791349029041037744501519599878697705176156507801538721206549626546200829147694779150074120606333951970822223796094108875263149932295294302927017753948433959768518586014410364839870941816847867161186368402280056421086864045945640224986284938007961453626190966993200718352870977209258629700069240563259349509837225336118205679104345403727833385198568791880076672423509364405974940991859231794849747592452941503513369747414894503672176291473124113900686757442693517075911105517301549950323587021123542936818037327831663073886562069438828664669316919289223258701822025121691072900371005593013272829230408913982535891908475833512678759208348772811676875531550539174837597026609633680335653876623495978432550535377342423916144078805620043098526528019489667845787406172631482021013624266037816728913788521861417476227255701891748425206644166928657585300396423040675278916676970265730568237227118989730549267590626594413102928208630209181912288919465391021084787405120002089733256733023047115382024813247821876808316120747151763434530352344668397057083536423046491105712637943348346087737304850283696949460214202818350914545684447562165229442598478373332650297218819841701509913875291654612126755342478295747041614919395018777877806232648568965989959514094456982837874700133126793654793924495774232466202043289455654365422829443267587439460854768677668578092161528088267710260682974726494885509676431076588339619119692137522784674510189406927738327015897133067058727580065087853024189808471310879663264626058800012889157019433295978818814910469235303769058869296605244175799116429383355272743418902600622967002932726588749554105755459581933788150442015597529241417056087725029602733721690390359982223164822635813968619307379673501553939010256371296229466087830037968906845837163870701451944967288538208145943724053425405958496643593838763778684106466065474951112828803812486352335256152960937377442589723105285769734325706464081251424917955549472417372806300064529397727783979500707885014997017204253573476442249678083195330623159025702940834563543655237954191158765491481029710738302187441063884677223039005901698419111317164684165310576518255724728281928311011569754213269981457919156010528538845766946273558681844713386675276596399700449292277699807260812693865495083234900332445192148618855189717370216389427285573498940952609072919817209194826081376299986502248124923601872395905460706369508132009204878068114571260990800755148030520724241743796236301779308590303210648097903774433714424455534592447008069753800470406573626513759979035473616103676789049938037341168646786716851845813511033072203599714737995951760682534864839094092237197445564289111072983075429931434431583470165404393903309651735041178374988379176468116218793048158447599923533894035021893439761345261259582560542832360330576152147405404269251795770977268795226715135260885331664870061694894065956440526473320017699421480050309349712866096265390369257477445695167958681281710442681016266858620271205802495308209099563370335457278956188917529559857285236399547240006887200901463544879637581697019871697290273159376178867944179722863276671527221662414013164681125192687918633898053490379778538059447508877536290344064606570013158841141891990959865895899110488246090375181990546746047403391716048008766708634497642506162802269290025617695204518141483869207881992040135687058170295377617517472149980363725962246167526819722478010801483304144671935964668862412862955831662805028656104617128254428602598063430779440668593259180304380655414351112183909459316119280592387200784753705801258655829821562891066352082959251613909423208482500086318852108111997419848081364705664721832560314332206424495015924523506338137124873426589894549964831005406068669205621031350719967842747350599673352411287043593272644581505113496024647771135029521843440074798349414490775190671982680281716113028114015776055172517786553110453879377805522502907952303975520078815502700993484799858785973673133359161478641914255947913210065823166315480107190301837489735425959316595023125918261071606813635836388416671700771944640506595600812775434977657798446677993918769653470604498352528667813376155003115207114045638559826000429870068955008503798179984258304999672846444636209019980680632125838552180127061618473775659689681319155355325229970099012743760954047710611158122007067968437423184548212701518271968848676718015355595552571500807728808884484596428206201150358314880588064161581069592056915996052334420560895041327142464168318010976595514516579456142709469113831174681226606103694549119603196729409215997293402206002277069738968972738575181771106438223664934088291986207909632649078152908704833260231215005939447029438667621414296973915462325995694320913209462173760182794711085150041137862027994077015127176032481423413002893290131762336922959406866286015315882150992719134481428586970950778728084115865832443948411547328951462069867379842694582136102274921993930126515025549111695005773776588033637823144633496506112299104618155967207649894188609753189944854525711198928168081833932152602105681770356437486650685039164825603796335971284403238781341800953996322163169664131879665663592015309457129408434387988524256256937406114479624764413504279629671864522352800364780302605908099777074136213984580617740147816261879977688011628328221049103729870465476943165111324116505573891773398722233724994720922781983706980288183166028465204056755727231091874619832862893119536723013599239296570685723628033124247329754917368146402167571115376478343115844781248881834997965794203780496704029696665216530268658401044373887656665524133753732031448682971064025549661783263041842511644169890925361486632874396578087437126294333795911701571452061757973388784160232779105472148625702948030535711761624844668647640667699154624261135094778313823993849533930004549948163329015986467240912397429401349971259570534693389423973251704429947830014746059861928952196014996746946610489198917702227455377972940205359594547142469439579409913997458866112003662757556176529047182275333571118775708083950773646223019978473949825384819753328028840941816664862564137639834972056013366440815540423379881290816720503941779334664649835395744745662284163882341037484637862833370621433665436043341290659549667493402576360427173997901674360620879516095090816209080363576901690402353732479766360114456802402954470450178960538837920915979606665625006616635030961136182156922392962486454917801289206742353707396983464227837088716485040557090941712652691938742704440341437590303561155381055226314671988459445211982620162499336884461778872667769990122471242177673741560730431677974882912048776361776592742500707976170427513101256967144310530049915126016208873297824270895683711265038602296784776985634902234179973858529186086418410851279829264116411918452689226658163932627678805953123006368186388195308349402292023971179571218651012635918915765594580966126699947602267378632260970848584032635172139600969938398575202342390631942497555326512234269881430706199360813098773818051163118988543389717767722735668549099320071940653222048327609579550374792220897637585239986339515871381493347684213900556940565703263262266366774065337190122421050241235217723877151878468995078612435691414278820904266102554770210885407558363550223573206592338406129524386827800941916923094552911860635973803309405382554142245360172605301298766244311102882636251648522775175788786482982301106167417047017823724570562493376974804776202537299960593867054191042908881795449421587550439857183869589959130397717960797283292857999795536422410892237361437316234958274167576193605758044276482980166815334908811346436863534421569716761154506195978589512867865050496246689152491330518424998871719611188608468863419780845898439525116399436542522517715476635061715702050744258492853145946881459543755272680785723977952492164052520650546018879532985587142339495604172291534874733330271028757505747548706514229850813483105037443155484088127933905794459778477316972311976914955745069017808998734282554746153636611521054968516431201350663198385498319360547532379209472575402157354051211515942710202788007683889429616789510643152677238029171077914917057523714792341615500675459204062990552553399956420816368668851536615623941909723266984228803978522606287497117689983683307969614906694210098612380543827459179614543052191569278586640349517155098817280704616809792297862250085188960391612748970955801094020174961375608277697441236166339621517067292788217984274812154155449519557009504734488684339630908241204059660098942814378077435586282615582517543268856302857000876817215153263487402153197103472560915379588848604129498144818752417390651220504964400721250350416669606908991630186710999779463582898006654138163390883702107465311714193772792602563864525416498216170570325631448868479002908124935250039818382341334039296989250115164122589139041841064150434037563379735681029492610040842842869706799401636482817564323907589276604821204421932078973977969503414274320259264925391181040670481684808637994024426933776557888742707387104731021409542296215043399275549231601376694417531122334420941498860153959569196588563142796768722943068671966433953738354279323616018674796544814244410152965888270753355017782851971324641022580928559784559122198527280048645208954388644243972937656431958673370476841594427111255200516922873106260633430141471955809146475822551406199594248089858758020052526951740696779029405543519448762171302121454284367968092922513466561559689421859421877651905965240935942672442503449756632309342483509127521915768870289443931721658043552980712878143360916617357603399715389369882624241746884759633930885531105352413920018183018513714023921321707231733252727230546182202417584190123085724407727438256992049884913887870371658569796204624350560167300611843918415287136318402129727136940432516822674738731212399890053148325948585985527754337768171274240006576559753269486920303313128436586448310250020643281524031568410008277089121286756091466047144240838852076320634968712412007571430348931705246670755132967412677928107971397591023071640614462216908232244076840269948805880367888832671749877391909013017224364656057093804954143148536910655066448060323278954378336667081788096231255701094900892734344457365735356796425939681074463533326900308193367084129888897555942605711043048107808668603737764188798040566378155712280677444853418591442293472148605821581906014810912649154603617174605264905055149728656739620411700823735457492101222083314054790196780724945744929496932321835691711380076593352807924574146513287627544540159960667277410570800095288158891575005456778044140974279321226399288543026625317487742845523962390761217957149883432749822598264083030950596968794634403383693227718166634354598649652732694877221495364307304292628486760000685452437862533059612389111646254126447158863453612271067834452234048221009655701170386351867820741108244312453111648031097293937316637633012828266848006198442078169531903453728187114221739560177529950099316502544020719396640367778019767861700974779756564787072604188546383812571909254700067874667924862855416062321165056665633650035751457661306173869188449655567780901560404758591588939192701447840718244209646461920004914657074916240544293863422758856351143810660995491165319531875527907468049239837439983288751495665622824544403253286099191346761549338759262115853544880012407778007325137479205184087252207652714898832482877683983162562090609850061298265285017323223163231822553620995338740130313051110278059490980663796398062624107167415418005401542352362282408388854118254359576527225128649135648442119418158230179679971038679456033052641249680263591905830921876102239384700601739975383898942674672361255768468378467027831551722846281668378870194638546514577841600723649308352531783992690976527577343397183345070600475468817146873104952575630715493007540785982209377463676911527602121812797593470155708736119660109096201625993559691140635538606061415662499443481671233346749602358972581427474094278495337118429976782843984100963659745612531339414417566904748302544154313849196330421490769382483940685677869699596604303835187008192633701905494816285189471575455083839518639975179602939081267412485716009993722710437967266015889527239914222501624568170442682349792480664841719066215435421499787206309550948440188597703904322194504861139222714818754900847093183409639296861111132366219206351957296051849789563942437209102972945346250921029159892168055904259546426590462761956612095033500663695060977998495826383733849498438238150831459226517127567906090438848363594104114061423315000863605452157071860711325109683345747548793296432424065975117898528682884491292777704859206545151035974409677765760666528122876586911271396766603856239908533005326330191382425106875083990194347721272279615392293959283111151622069838720644842620813095249711663555131350066307902098745169729014855592824811126865282790101693584775311852009538833841289595179851861145558627172499110272631604424874739023390720574527772041671290967023197506042036257031079731800621417270906622323367400570128616950124756304423409099375644489399269346827607738266296364116960186314278168297000490785178451424184062573665606485696945382049504498984989956799646010715481073280234186987524318342106498253376286046466718915037420922690710471788008608950649309194445917876981805552580175619626733728818099712465008804850889217988402153276646897293858241906140127481592863774015940441127683597502700827008619075621178677210626350769951790586214592302081885999185289790589258261545234472403497431533399487186766002773520696746577494109406271962851592911457189275340012373193738129144695969989042502050262734918915172909873871095697018477945530589062540480899230683139888417389401474919710844225297625779325992532134401839943817809617360454173176718224136638968633190002423770746197205838356990049816640482087974468444167795525501770849372109094293782895508848989238051771344230253532497457122832005467425879490675026356954222551342047835077190651813216914602235863214792977486335757067518160950626607033707777722826963925263683552410466087018844664270794443046661105547716004795934102326851805653444475864549781871871520394026953419388648173776696925974710938904732952497216816892880983990340642364223333822560077539428740389283543341425977085191296950654127047107497470138083570297080997156520168985732289853383408007649358386910436984339995364360474503758406299583816345805989433460648944055263545602682430876923734998744786364902728845327598147136526608592238426880062455084104241752912055980494793737343985560406111711623315232044647639523143023569238138974141874530664348394321803731399659077732203617960318608202978156206120477887472995570143251438051687586269619842559841293873410134995806655699998174063252077916390489130807867216638742906468556323212955880175838267559436028737400634733305708055941079787053981838896960812131440072747902720705480908074169948562830549842802376728970870407600260549857190399477429081929908931592578050237760458354842836779855481788978958843796950467757243076340184298677324672289318808383605947784662066951544135828131660003730507983448412998935338884726764909834002164277057408757856392150075493574818227536775816835151036831322270701551259283780899613250078767065640710510027470954126564317272762921669286249194339659026590018235971531852546009472782459108244376571861239200718262188806926266034976878515880456781594760794580949602210379704545517829328297310408731087431220164548934182889441843130271956638758484788771562451305444498004871072210327429875407776935019316188977096011239653176629552453729333427529493467277335481346756659687303289903379933386621819788316953685481078234433561032482646514228742092846880391992063014377952119663330599146866579912200863628618015645720442180329038973259145828225406625192769446804164504312526109368127301114057722695117173335320730297937419547092291074692593632786910899308264664549069797959452378983003682496901714448812995211296964984758009114000110505016407088578385041488916597512240540162642007801308707863507779539343255195506029221925584289641171580789748609055273710366816953887734722395021469572392985217786889437125808809637319723424842056560383560769343696801184804640089639922964575431104117635772096681317267927358078304736782738629080194379760584372583852805357810344251999587281321242184217798551153810919685629407908906020076512391981735346354268798081005656955616478791864670418484461043915399029233764894273785319099456129018030832537127845346598310562778906983918018847076882012636074146358487186019523355571332416648751282595797580941989363829073240106483980458599426393978068031182452304262505997387986308052875215394490464884158806673706957597080452167510132089466479668809228257332892829763692650898391348333302754391637053844043745548834424983583326996949100250938952019444843221812322281741607349614433138658930795209353981701076301738459298310395560073230673910331462386140965027256116369993717057717795332245143973537440006173515742487442617045552021850527117252554721624241182570028838648635561622320108653384136039798665139986800420460591335881048675490621224441477388293881943631990444243591271993503951698316640972469547375892363340132626100777046451511432130478806699005314104151497614852327567035598786995545347488403703824000006432237327679132003324976387969211163314689124877056722098844088373836592926155721069697263527973462196218288164309294961874408775690187190099345200597593094471665260625161736748610054165117717002566858516140168317136953941148885740543941151842254603991629442104644096402722049193991511943072011594372191538504345010252369707646887780609958629625954660121919100246462471458455651106568017804591572132771602127512308047963712413380220339563191236374114610239281526524712253660763798633735003985436552388736180608596432523954299575434839573547833267924880714144790908908955094885737918764082228691201202179192584634903326847989403334298451478452635436688758878722926397074065069776040870502264116183547082976748209464070663528035273316143527744928740884459508752347712746953828510547979729438128684127191508791814406622549174389164439617239364838748734705167349270159600960497093585265819442245071359928526075077704488020208231174583736859011769753162564773837093350034082187509037146346646465353006026638562394476552983820440283767252860337034810581371714443484449097104469584778306686530421086004730384520319669605305326639098941361289866967686389900657655729419412659306464504922596401962171644420735137876077857339762638386767950130309799176755390477591462631178313863552468875424940043293396290988798540541503100218726926692448598680661731724512477333031822751624583391994281052115296014305835678344921339133804189939336854201370016252881434045549651912813513557967512334618309053522102898924218847566199629305405740979078182416026774859296625692182301696129648471257185759856597221450715643548691237757086030655707858912581770000518576742755526707871262778863478104818497803002403182399123161606193337222296746497570836160824812895475651521249312279114756842676789062553285825584993848507557600471003538278651312060285270567616556335064336334300725805668373475910097399730795912649701558913186516181154626812821603521834216771816568820756474095166305899075407077573442928355016802411305462281392479089849979481784544124724899603075847227311502839553820101526502856243767176099685604732010685867846686456801005433427511211559129318375375980431167476456055121523254226281346104317142142643609007586397725000998624382865285499308084088818319575676066436179489994567311866657561882184688027817365134890478328051025433273208700367798862387416291986999823459855612711659436912579006211017835120741089263834324665582147644694743247356559837404020470894943194292559839570952562882865760084859306139497358996235650530642428655587987565249578076992848068497753538032608338134797971392319571136018359068495317315311289200464338976332886481599273197416982301746369365611146514641342635775061245995275367928865321633474574206899513422009081660486793586499666931215812012807977577139603691362566883156012425457643215535877924114074158578765518953053640292598697079121944691835925883600268146400950490820738559488218892034861786616408888530314335762856118625592950492651157708613889800649693526826277417891783446558829264832070771091640002833053773685131341447649481295050338740448388792528540303928712459909544242362277249092010700240622205976999980422579377944073103188114040285508891548502028654261440351992302219587043748851203161989535732331542406757774574701273155599349468917579757890852599482926476432600934583222660048903363297605342461139095705636749214369063451359848988138943403958284367331669535894018414452358260538117728750752092998797160178660949431935351389273154124236510376052780482970177238199496429405655845887307662122314081622520230996223723278805967751772249824051936037953809441685210666365430717955478683173400007466201324205711392277472634610885061419846239862242632585187116815867116647726297686459593326466069182431472280107130703958247887231110886865785345777186871893245357279263267516898152156123998336578045188744592525415986720207615453407041136109222045806425428531503377836507998945495682303971930700837237723880102106019371785442807626932776530674310710044373419284955809220334230009442186260831504181499495519349188334815231679326252055918792995719867786816872384493425018911975499205986602789632730828440772032201812011920197470389225677136290350130865995430253350758784460571983218338619844116562225358247401600897431681040029902690004107200958663734110704009275176974407028614017509378796391669113065324127089848964446390411060794850423226033498519391338235119910398287171877610101850825164588892212451487459808470979495363620032306529428513322723968128825612041170962139800672304348123525332961994471241261226858690543355635297072262695046342957078478350405857083262385168434343763947422726549296130401575207115383489566606128875199373760557066286409215857767867106020657709251942754440823854712682617811834320536301946548105509247978322973002898045836727786425267567174376161586324405624918629624120974295506115146169945016127539924892491537656126782109520020026056722224624646567133829302391919425940436736190906853575518907290100087221385071036146546071710564159720428329209090954313071676006852138443718508561677232701902417725057113909101410186019209500149504908220604159364671804435615158344855456155355752763476935532291120092046733592828211000024253605848552428671467370699661610548761318227744161343077135149454638240076149956962685020812454125030116208834382696472911111872392792244343175354947226818534569573253808759493243799791411347585445206798824112675050247011392373788466004295079359812400575166323388201745620923715164257375120060188174323661884140229826319549332635426302899332165705606546402614891906529816900724683326622946557492760610674394264771269106369725952498253121737079641033376585131758383961131659749646888564386465297140456465918203722855049731005954391149670529152280880379556344281526133742010613533241888078656246393839215827845489751411477459620344189308894499717341135517808433875653828125010337186895708341861139128264898820951933211166404234383687584953543083586971401598166644161669938432838857469183677356106329599514015044659803617534419064724214190959470299997418656479594389823672125070842695620030655913013252819444613567127771902307126405060835449515777514641686327767580961007042104028791861802816329340296540892451914665875177013662204338745640327916861523879303162962177207255952994114241015357197328334252943436522183196410058565331214963821604462639037920553439048296245358848655160710327942112574129841679534003589095253684269781058260923571783972448683778466346287400144615912185634094615492793100478385256810841978994828772851818850871161899107445956283034702245060054704334897955413887743846400519952797183806435626516174264577326938956497898348976731955189349714920406150708796768079381555652088263104671515009876503099513155806928187790824076457029467147736007958834157616655573313807262061104462246919542427255330764362761161042603150866371003752172458501854570737767520879453966807395094839452118134125236057178823633581410942606406700754517467572784535455592317629683100489608969746697220651652613624102963378069110480191122093881837092120790848089780992528604215574430993085466589918412884824201426501192196918230713759655030189510800093873894245623685300889254192553429367069394086585535426097775091174929571603208988915997467297313893588478267875255183604383958814636599460805030023071916095821796576355366400769075794068316346311238697463115732162608470732683735870466363892395949585176787994587574470673988426279291846310433971352410272988167196338671218912592708593813410625763578386327958774389541670499510922749672294209746807570557534307273680429984212747000961344739366331709464305840764817283030467287903172307626465392949103629389812450449213978767557670835979247614489245096784539614196970622238742702521243941828827341555464016424902715578933711756533313589431384532848690094955233048230307423137332308948171716464397201949906911891304528188981228029009826812316726949467218631356255334708837179694194976800991728283385167297393996395801837243255080875202286045650788228061208624059111432904271751160746644421707549938623080120144327880605640060007674950782957935762079286462645521683046206925394590765219213574121029443948248773845107000146851223428356799013373137199357335186139650846887697348610693197571357394612914140395981301139932900872996588358279269207475380256220818536257224871644684582633004266763611509881178922750556653123686776202626838252674616252669129582862403703472537006387369886013252020108140700360451460688445123358413416743171665591387436692620746497518005552844953584893659714808256330422260545189217356340608650560491232511468872672886397888706966030718305060654819435987696716142351415535019687920007000990945487271084873920174612437786189320350981247360185830722567711136969103846104711573960080197408309682780172307850784649891340848007734667690378109896117553322069425941348175865685152076098327394561853439905248764047255469043052908080154550739503790848895169672989007260445714432294247198104841908444430029194132838305896996182992701645952831631058835330502605864886535910088948109400666676519831983117912383841694778834507861987786329587062227910753762498256527350466796904697082787213818698372296478753115336771157383559207542038478715087732961792999894408189338508421409942141511472921272101822513324736751119711138644681462684660945131924214075620455813322895623999211839362627269583172740027022909182015103143641006943958074226591749891886312685926346551594361847350087630017811306915097566747322233218884353494545385644574244668216724609504793771522842666429568950625250525786963494210590454208391987260035231512498815560886661302659549166525906823147375491907461855271556921262877614239446789516964836376573523649236915675439715641239039063470907765081165041417427457162001834087746131375969668828916092283877759414429879052176741879140072259455722298355547671200431792233366414513419561974486278488069826835382465623840897731769304293866315489357203012485932738627726604764487858841549981662441900943745376738937166334088773087200766054083327180029975376451313013165511467425642459987225859860682426435066475420000062177033600207030657846713625522905610942088644054694025226334556132255138828748424933007343124848001955886640363790326405063239356814868611512256027856758208747379744674658808397064355735150722256895159132767258087660421463377897357835240520605901993372910751490424354344558520681426442578428498404434680217787540834049891488110925526330444349706721438131280452766750204296976014027227000561164986523288226807208011983758893984304507276276783898289390818507764457584401705318111744116821056414432624334645626692828396228008640252151860924909292695028461933795437795491052174799138402110549997019214028388225338974783151969849781476903440988865336564749468598421716945332327671373647541739691306471966440088500605907425122275255218462649423610490910662330221115677150349816960496991656850525171525660749447185965537094039143430758727178438803107717127792174511965952890198037402733021502994599368763561965567960924787184722931935333192180106597579359095085391444123682483252631085180925557991165328396450401874452267861049114884614765831881001811747872127834208223641277847771393050273216501491783302729064671509033164233626844865734681682429103831884358768156803789939846414836373683554521270212384829754204289037857480970527716469253965598855427325541767528129587702424297781914066478545369101225281530062284451255788874963257912885667777957700809081697026312970674457703624116897419349062131644597217139185952575617523430662108950102600059224201169351708849502073625395890809074691724151556211165050282489717981469084465843657425910332739334380104693702940679930503223210698389601594674903111838686218315728581532363002738516566485346310432538752180352279606458840814832013903392453856369390642791646962532672464647134166145320442958376761507142679244361226468313373663165684393792911866470702059376132022133421835069715711818941701519599262733919627399528183430489298661328220593584701315559511214484991471331504249188787002065406773330317076528723129140052781533474328079211552228388957606775332662743834887431727633773538982497936249934637964327187629543446683915471111169378021775452827151261191691525656095270301142764655885540735676032956334594004646774930359248290284421675998487447959170868462702057782051306666471207352845285777732521878609100300394891122278467520492988142942768401601221998037992356233358856071744400429761158881154783072107573555283414703053347225983793343266118455911928694451994399770158099439006413588599783973270473106054432971395272699353383495619641931536069018550223366739100453554779904410892393748433362433746757527578482487067714928841130248829657200957940785038638165777463020183608228655444189666082089860298771415493999986133646983848091032571237222887438964573052832869200670824655875177883127552125845709352309236265875699592270147933385906915777796532107770689214292296114863998672295865073902730399357587303385214239966371876208563543305966625025062716605706149165466632918555716511753996916448055850253091479720958009799816662567525013251354155523522669769061816054368761990081874207294528454825123279989360350460046960010007931493189060691418664855553658464347338006775587349651258818463355367064459562639498558333293955835174781166597445661105245231065754440995814825549335395251300987489859002950340861267328514523841795823597703190894554200626566714207943390508060924378683216875478297441980785092151389160671187659811005163175962168450739698924971262363104979884930457231082122768912002788523933220761895623227395083087662325051063646907883090175694224215638265280034603171561594150290203839650365146760901109913870511715853951593375449898052994545885447528485197369839343436734638069379043322700557677374151224711872004621749627208785487928795028235933119400913983130380255435066093470579413893185518068750361457016294401866041293707703341668124755532057973331517161375576601231578925648061981840984338535227953868160978732331491857563724449026301609077166664176030801998335424318227095259162163056870331958893809500215947062753298767935854575391701485080751158628721741485180572664606005547391521220182148092596795878541149855830389425467870137372795797979233081983438906260438278107036045179603333991203540092454034838254954114207310637464237831332990895531351846420764840801263324099738843500607429554333907795461382563625564879682707174124309635168695346263376918227984466043616458934098928083375433221279120263259467061258683083628311441667954599482537302579759580564758348751119197398168642955569166240709889081039502994271517018045171340863299847807539965104690519930011507275423555260148473575930659996562398816544825802387847813076285287430799522444870417431795430649821283979886397729723470452993619040731189215046262215284755104048052237437231811423605520536130115125922039610643907352596376980641488771050854485972113915482244651541868184446324679390757512564284019491729574957610487496600263269477660605816535181722912698274369440701875182852852044218335727246586626687055913441045944923644443945823672563060583989814769726238184552452700971201523614032868033215543362524246364003057715319549764123760616508100185821923461784464757963504066686853063439206324019280098435408881879159398904520820500132752967602308732100591782768351706671826567944542935360250728642837513181403836733982665628764183440312822064709687340080336316335940438946483326128661592711328004850593928454531415919254553826513202108656560750711836174407618076557455219569081127369904373409326957682195992779898581743582507223157368035586590880832586635308506238043306639701070764360528307075995525968465173026098110980737702228359123981595108236649284171777688167150034362220345204137548943459261313310798372848740441912801594189185557524446301911427297384721945973218065812758446347805283765208168025569382869705528249911151396317423920915548013322380082062157914092838750202644835548960436903704959772930222882876937662200704314279631101917353257250211956083000787742945342671626359799223897119376834836173633795668344081748424370947841484538098831196991042352549423889865322546557328108651996743016647851041165139594672249933220525274317658442602706213217814876473705868992127539048428498711668507686899740536692453995652748123595013776233518574929568969444081156168070479800115748244215660960174600148936925315336930006197291845955021999860535652001107542851079262780422784453977279351770988344605999527141244540000765728293033692777928091682600422117173679270034002821037713906834536625395223979107150744606213274743749698169627140521450746649635670023094465602189080904857510464747766127669131689287061996204975854116177514707816052833586193394291688537558612168878794446843043560464060497001747779568816383432605281439677514937334758148624848039138816451221972028642389405711868216331816494919244259629008785664125319459851063251161453428666678393369228900669271087886494650919109227636991940612535014565364468633272614758624074522303292923934910608987308524760834779186650886506405248835653025434747979127688278951200487042371003865640246590894502843660768756871357776752644066563250732372131291448794921046306842579909482777024424583263090590493698675586095718314947592503202324718160220052974942682333695214653401030930868113030019103072389878482036786844291639725225052888937889653146402723542764660037699437861324492739173472686731384439869536648623777088304230537720783933543014360500485718686550056192313459880751566262847045292566596945464569452967507498081397163019306971476589577012725615222299955641059990147438479466249909146566773927325398178976582607977579439488744232821324795353979094803462459063996158368764898549370669631894129106509792380194034887832092521167311750577567264750252299578813926051204292241946861304918594110683303862925421007255147395884441818825337708636265094878261033120428606199631427406280665534371697450111976652032475513573272865243142157328064723412473073479374411641491782668661596908044066409889193799240131788363084606074750355454238883547227455881879000466730700201933711952819466451854194519813380349149722203978160489121875387430054715460246727939844319829853027518028439927378070730511641680797288571084695006001932096247514188779676924647629087251982201590147165837804311291399199119200243087780073760783941387683533254963208279676635098165038115150367531066647107761230505145075786567476517240172911855086714167261314426090489150059099125771928340541783903728956594257543596581771665694298164069111319444694813676292261389903570638591030528594421307244471110579125795046340082242565724571104278335564418462564275434894624521831688904458138759125180558482350777493524052526555880276077537593785484546283863707074411834099564280756815155936497651157733770991286725167811249984995418967434894133861256990933190028214099005863300711362285473334121217653135359601402905285008599042026617810012337525619223257563195885057986234637871635823698570719719068926268237174800622650058696686984037330637572937031031510393492419101423041473980065971012092843781984849579748423554593484988134873711170357979960988660958440537242786080084196658748147623076136478041163184654800150120724468408594448642086356526369002947595125728960291708664915221333121746179955496176688999962370806640824945611478494902593334279484418759722654028287858292892030003707326439975640945103477159641067480303737075202529559986730188510071600891114723545232315122710058818461309647687807249869089643393581420974302589795618764660467081591993571585813131597518012355852414318098272149437301311478304388496253262855071266010114994858323629267972971434927780235933388503585105113569141211912694705914759016678280371094152188269882988810457768450890439869707702814941972076852716393366256307952845350714613813988267145224147084965956062687653086652274937300751276582638262288926712797535006695737068382947383914545198838641558361851018696524653201204514259276029135694934754779924547275574991968352657443999655194063536492450604046597006143870234710519989369847585484619479250156028111766430249537479847508129753243423090991168150842288991790584413398499565239953027239343352354413327508382496669324425224065608671332800898674075392044960502291984041016045718553529336339224174389072069882170409151731031486272782506683992760150698540625784371489862249596457263783069729084950583515798771379826225051945917100587815766445714752796752906120319151146280189540272673564110000281341521063738576995618409315368393069638084738506731940966406731541711224407047161877262833748033609431065433198364540416815672366851757439839000787481473439860212147150641131510350589861008977926481672960197999319239273709721831319361896784869345044322219895710705003191217666379243824161973876072898561584353281756062140947923839339746873486211565292778650874924299200168191844147227778514658179187297308868959894496226649112924162313599484388147156125286395862956535120070516209331878288069072855051250175456762323410480062835718785737463972325736102285170529779407274487297569472080781600135910353485220866478844274311937066106321564374670743492705299644451421600794990056988218429370606481511714238548990824399156541514426294655804776539176872786296672474660743506556785351756591785876162846623201946001134265630215507462605258367489568613745783946629857621077418398499353023595476718171537983616268396162861671987941108013139053325315726286954493503549440310675586926452984776856503816039800528046483924791311429248935596808641285313083998088410034897642649204690242335236742975760882039640178106440332111113018751786634578021302790700495324369399370274605242720767861741541068044731653260958153591261613540309433293159431301336599248920869993385696915597434321353539218564296278419509973257310032429236602165019733753228771920151342800468380666949372718589207729218959471713921196025877565150336777726938820349759541341613085612098202860366773715371925746904231194215275850087470223673183992942182473527420603439726082438038549888743500600419038169105157176246488769025088735452633563228584454112227396772574566774197682763137592443091242057293596564945291399658960596631243384548130533061610438366717637088531372662423253089210323346292715691527699499942416436161118002631810903765618601423893792298599640427455900476452032660150496030429327137896890845734313376682204938516638330661672305377798739457585105285648013935634487511749468400493828840727819397148643001083675336349371280011737681290481587382736515735150490705910475334469526694889444551953330490955448663553686001470781672056818372775643388231129034950368485158771887324026478237935716420872087104503491713660995617337406773279840740860251217089837715833833745071963663430825642354350818413082569561442710102549815220215998397187153103449426275104699420855638651274531081572718606994487595678146663599100386751682208379693692438827930328738837486627071451681367744431911813723403895297172774888688946932086886087880475953945158196807857978271100638535019780417385322482220130756859037160323301659502373389622485687546372366172275511834674173584757218639628893907730266807395804844208059668425175641860546497170350189497390763382749357018201249108234949484792975658176196572119401080528475119585076332295961801680485059937852159105065689017732751964568906218050748560563920034461141856448626144410185098806620402398307654368807833686739722544111541303574815976933655530106919414649010629788482882707149697138445188455365467552002903822769339942451018570270988179396999447936983207783824535141484781553970466469563088122300094301455170012196673391619123320822145269799673664605389831840650479557541879324439660102275429411898182694902331892671486081489049153898597283177411458245285112431557306013368517197671457212042892553575850037415061432920412954555601988145593565942603334056677547094366296674257594424099322566459724306313525370036056514486875764408019944779652453370682448508954373514976631187939473966236928144055412934606622794841662995486073713274855656404233521333312535715547651601974951078080196428060117974145889856882403333098332622399387498329965764428139060357668425572500689228541737881524379972862188883429753262354265723281228029171139103442836677000363271769992019548798429510950878033350440875113955422497748301123607539317132574787587041964212248792370259797860538246119027921200886280789080005650045203616894609442030722747121891272394011628819013166051380939990756662731554963612005604169532006261352808269519841756540515802289043794648102362325275475327570685795967006777810161089039552382057605481904250546817634045217181596500883279021380853093682802783513477067635688478991111689782163886546326828159731415625821663245128488688563430015071362956371773803837200504555043310756189040901130288273660984918439218067975663283793867867911727551576930895708825272453295125332721206838084128015678395843468079700744757443956162689815860963500324607287334763849183272139842283945156681804002314665196936501972172477185208820287368259824435355415184568449746785848723164663963124962773064723895071748214182108853698101844241838768905544432025911200266915585329787988968190088333389524213075977405641363136743037664906957447870122255303819190816411361211481104413953086582010505228304111982816494144872077444360260678859660011332176838188466338406580040104039532125951800492712250304312595784122934729221799172974865017692751683437043416808114010547773873064330367420395553483175082286561765398758078336329905551536894068565748499618657791358982904845203850204994594252611469091806200573217557174439098443786827029336685030557684593414779010346144735951106521679332548852613762563483160086942849679499227424477935958191334739092865777471557962781149297990480838693327407735994195912608991210946761944896147897247570649007263607609892430692461033735571222540914181576641192132664349791892547840137861316188253906719331438942916704900272972922639313154057163108967511175771494717238908678865675780732996616727098555074529043141631863479242634074570106889964187316564633885649028957309417799824507321822851946446102307316405251041433133996560920352504613580073726873541307849648581142544376744221510692177607205239299243019583267930419388189111631007453092233618890053230263408788682317796710126802657825222177414872837261855644430001911618660160396568823570964332808073268476974889518493916458288606768922805651579104369782112574865685605468185630813668010061886137966441883539718648124614411528262638872910809850129900474806455158016422682664473718820319577687594773694584104383425878657250933952709878815359005547185116538967707829663833276700984349798883104575913767997342620429637780568253742770993615791692755582906087877529593540829059195809294338850620600750850656795805847026290533661675791058013476072357184450627408898044028202106984215169384341280961773465469168880982271192067181948760531401254386864149869091929050138679545503200732278827045057048881242806610908204207886843496790275850602365930208723788433223635915442636820999159039349674504941322892382556122801943280158060853773545358784940744915031149660272810140499651230829123433277628897850943593271528826002178610493188747074394955576469760068977431036163533994008691435164937393825275943378752458301497983614888780510760805731278017787921813704598073846602916197323935704890236327779948376016997972252225569960814080524716739086819501983999628332145752481313040733090144702198524348980615385518967469579766350636320025603492364501705297758234806720191971969338793306371341468911360624061222961605198474657684369620113364669103558924773356130353212086981554458980777747282798676814385002963161292744267362463900840185926172843515067408306805121416190258069712476165574636270580023277609622219372107293064475490510042031950634224700535680060642827609033882357592222352722983783649439862205348133595521489831226576299251226370803739199569905865822094652743321455567846085877993501296365747023063480232252663927198723908888050478865794551324848181800820802626904933179562179403448755881662549402083350821275364964312372609879854797406466124837432363729046601696763363008350452640511683203450150532640310690496020795153952333650413357784451947883667382183260024909716619976499918963742735087896761767840483695027831950010783925152382293653269720715976998614671745737965527678454868494008727078047886257055242924840121328625337185351882796455902910736296787223165952308550043345829959506545742655981718003899177916916025791939003405518745926295857517836447726405393098957489868122402757958177974757026050885474229634149159211230544252867803359020157438623728483448720282471724817026049001891606516594977531204880108700321186174604087517788112183765384077118891677457771524370545524261760708068668179237962700112561300359655183025291546028465505434106655088902695114622365940609066358568528254843007803733905191227240073264452429276236902518732274302661464121701651464666220474468140451768133627008413590086203304717134195591750871281714716279221900588854746943305067199077501969736929311522275048170974644319891488320994677263664838549634482917567698250038294814381642467658394947544805197333546361290597053059025604602255512884208408336334446020538434163022601643013817755402688485031646542824174112242089564024927403734019735995455914949082160555486686566505142888889628355957534106143988395511753774787479630543592209669953220767594116440176563024079483800733913527434803319926568690574066709135937861560887522676740402389917913007689668019749324569776772349114905898448464813261066800137810252259565599347656972151044464022943053277606799205292857584035235071733561223087604188317093921072607563807528920661993469243650364131468884254267096787153458950338466667820280615395954553230627187311402536586474623246314786629933918850839902813860801934398985053389395615327426108544956439562652707554016166209127784568747810422604099704730098321356767994802099799634681840774743710473577329499943104429108412562896996559009267325292310817285992207600062234452616622562694941430218763071244620817825970668130879441664884348892058531286527643492807998036443299912482912349240365443456846990418488844267134514669939459059356503069753984135567147571159780530173607772850352081811139473089849222386337281575344615407085541021606989797471597172731166054521721015472020529139487754010239853498271185887469490241003374647607881772039775900573260647893601230764095699811116137455448974024293441925697867818589162924736257072387066513384610357587562398904605231153775179732380512268133570882423977865998142050697410934504633618538815286571388564689712840294239078341386575077327277819959889740065960673626779636255733755436192691594161613297004018940858683865781345568232356641252027792626587206109025679378681432181682780744100316447463774739553438900233727500668812455457445117017157610308910900322048146643376384524324467719470317963849257927563601733473813182545592055050392828952210872339103603668465786007516278959768538551647887969632684600979063024656460927915732237138238694254950452241369250701190456463557708591540014032475457644670431311108610865151501526437961448807692871018285104469376126931089116629857972906364087970767268433901536411099496091849794880573248451349688132226165534850727525869634125354109003586592361796661412285125096321029774895865684569122956718048274465921465491154560490634956348653903782922162046790757472834038194276114035455728008141725918776589899254324788097281765504402913597672281830113621834726981609139858480592247333583666909586796616440073157438488797389464839173474411515936134484221371096467342410166788642410040040141140554829661902255306859997956813606841538265123678642047858532570169285125095697685034907436647000552030497279818168828567832855333327836412941022768718620063039300064498057537459653607114843388761660681694979062360411076971674018336142425704069293355570213297435527085735267885725480471710104113316831169334053622197471151680687856865976381189723620414425719829395698092664013380711889205326870797496557699280015953079809692301962264708304488556324736424446570049299675307461146176803276120263361376409503089266856670793421157036298844855944964541352601533177695119504338654329289430538097356031269621067841421279188750707714805954073908875278721771765986239617931034244373407737154765472565750549404772629913868456097022472944949833710757115620560926113535534746840059787338959191357816617841946484163842857592165827717605408804162728606516535537219019348572305908539201603935911569579898727301466040418295828089253949613419892253289580889768498261559139168968105527721347200576189424504438793074205959963088643876270017941877467355435711975220176238773212242259388901219536789502713992538550349751901664251579141505294482643241629749665515093945437294799849451515756637558671201639748493445333110120057378747267524763935558846730809052889300322473125537928072001840984885018580378305718575928772092925849733009683370145250913441644702440679335894687816541847996920363120161482382666995160921842531338171371208458068540389265664227327638313003688873331657015444539073115869826443533912745380045636008968820870121336287001389253947577526850244826924603520067599560650052331031799480804138411461350767974006996944233931217826587904610044642412725938378902400315171325738018539370222053192051222250977661207107028838496417776338064407718791126186333874269323331280920497230355959002001339111484372680423773895127155301472895633785444156314614629145799194400543810090522277425779263709003045133810514720764335587198248314276009856159174510122965046200654565744577808050406927655637845636114856839778767463730831406254379910020083293163628597647230680738825047799555452144685526852429485007363392444474305735724340617625811677526005176552796629613031900054770630422691361415861250998576620955647351397328025073515005231505938019086505563539656387040952587144226731348385700136585222065851614370957728272706673539512988063034154849980659726803403777730083514739687727692159008870712437641407190802702040360698203847283104223648850280623721189986169391669158870588091974772095061318791840608434746914138893855316958262789532358888678532641371430264681876231488058525736232559514122735409870221100359215611981643717749776429780056605071182703851691951568781490649588069120325851232855615939353023989610507379660559472437874288799220159395110592664342563541793957152399887677219642712162903327124431557211090068435009956086757342266629962321592822019158075167081179522025891509949715520475835736064669670145058132368249198456054201152597008574030888979753039572904364435404009463029909927863623152477737921091573888190766516114204274216550033519783728618174684579755549326684597843833314412510782188435759668756759313597223984030143797542371098860030771843489126118635449298319026716655044220117000947211076456679373924253824841537760294297684613445967930835741974245289794826951605586015531523779411478507337870854086577184888084574104938458386203748907936305140230115184498148448595811219789399147695638486963021412757698600500900249928728796158363234675569990872448215859525510409797574216272462796761552215155875804887457881796710662587121600894081616521415565221478650326312071184366773260028112464260259882187626831657397999327722653973397288384675332858562237778452112384457572263879908543255021932297810624575798698196915883087555709356818092977152614525319051000090766005828354470424636115729312514790718179558640651953929440656943556735509902500992573575119872559345403188696510975258215657163402066130028512060414899494626338279434849231554642458519308356603501666378155062794524895432792786949228021174253827594382751418781950721967846473047207701146023161849442368632903007817662558727378213568334639681660806891664340298546350632354159443656183063462328133359471185110933780370500292710128379621345072073476044776329681205431381590839256393205990707730432183091803933845666096067374390707982627535443822261822977591615683218695593872835511026498294377565787908929788729488328460922081726301183997772249619796496437353465373555217072442706485446235897824285107034024683150465624840810800635662892236340134646746293753772188517342839735980033974926398481651785518097672904786662535539932309917445673126013434542248683151315862223468707451177619572743759923197241773363874657511299581802652504495921446979395661779656087041832238061625439440140088671725828647327312799556408333783554124702606658800455486190183700428119797240986698916997868306730046527984270580254182699645995869756816218933862708579900107511545224235442059024815966925140437024384701087517290788370010514463650640289802186620530038414622573254194508133749791501552510604238296942331578641984079288605925083876279116731240333853300721922480645021722980930583884948797512862758770844608009445294348729569307178785613727054118396199482329724713033192910157556144735807835196732244272899975576494243390401280578109901834180690854941843165081289861249771508811144123998822743186047741520961645121212752630262306929695063466684116257445245334318452743297909852830881942761736050735087845633289483553752272196208140896610545022435334196949889515081151558270192779892033719891764796809686851246072404735899043656805077901169121258056594911652927955077536425475687011617771818357681212888598155994383844754775532505264010663199430663184395473144070470832380864105628899429497994248039008540928704081256128367939096187225636077896980777251066150455535143347800468080755636424249441154730316654407812717990553986906495897470380336580247149773632611876794717135110401217415227883798146457246056202928632818114927858196940615561377392817881299206735830903889759977007924467261272991061835419420544904280764037444058683273664711576666856736871770524513928565279061767999184621553320035610768864498396385060217133143513748397255425712047948285746912505707455396084256366207066353117983354220496178089967226985658259616177054944116729037018784688658591476440903829221805496072487766482259031720347927771473600839092470121035263423014476941054047173369171120011170284031291496820022914057647185050625917400707007516026934069542698516349653424413002352613745406343677181778056728183479742602177655553516367246098925419695016132611339120785190474402577532117340473619467080414038600776948805653719508086285711022050129940864239279986649338262255181499256040410385450313425485631041947076026350881488953664774544063393004851655936209762180955517005587895345906768360385881098904929905356737359408302431329793931633626591889265036561666002450177613709327481950621609262649945891075823464641524331530049615659415497019891930605170684975199547450200619680143413829798112644386702671876551035454251487269583208567839701955994255748863050666041654063415745416600966874826289469001860718102086848959324922509046356885927561472362924460728336956384061413085434993660141230459631982773100240795033148846427654777875861489719895273066088830553227650909920854599043164237339487570512553530676434174462651447457270912553725557654790694380088725470727692627469954322467182152021759185204579579604720219912159049504843792158497888493422570572119288210023029438861272845380332273848054599194988262584665375401708635790576465258480818280701310276866248886776768926149295147120925924970218563355043896352446935498325329523026034845356889955335026438878943843637701721252144746042883540658390818327845804908336135071603638541787552655647413214752951940984250678635988127907178881011981742769594756165314157727102502601727399417372803031271041388627545206493401804586998303318755156758291047466996449004142900022500532452458797723884929557216625827572588294139095247795098807994906507047362979527706381474024810035560666005519865618256894559150714247438757991549873818840897647312864039972305624753431237011242568717376320800509177953816301054067717305159786531268750534388871810168623724910234306215436954375916148096947405052384708359583441817901168517624186000956602403267269550393672833682343578921222663047795026416826946705291380815645411729954529622006551511576786222140702711581651746883015534932110394695998123858047373969786856746945113891741422198766920190823132475446246231369569799554351668692608560138747973669748291437007097326658030370941648610999325273436717832094219198610143432688689209015454558617437690496426844975426343447008834914377067357600860951219411480518746914289049059808439739804762619071766949279307866668261871364087031637230270923748185469288453219763455655124340583916416113047379597309648432607823132646736931546288231234441768849386094897448441764206232267037639198882326221244404955683378503403592051348800128133706224976113128937982794507250247792098349739489857257141101656407082069831857682275990632695099568049018331448584259231617721860881760630664089718208481525585765138550978182435167282278499107204002867579079044663351271820297952515061772533406689498895642470326923015399820900390166275224338184424808589395293652582536356585841754855367448186502892451882064478532807912967550486557292908308348548393758333467101908912067114536955173140929461823466478725289529974204021276352359232933057701794238652259632406940274806041288030309245248103494158273593244388727310939741634889604695819245395151341043433998381874650972336926352257914724542444013263129643963912096078001634485119912542081973740744604589974214573104231364456486501937801063526603744056568823861389375443973516812968315679116188842222511414773226123313961860608037311034869266093394043841630032614344928050821131575737727739821551522286509997662432587213933934459020916622729054934938271782051266690211494719231138093382231122409958837224633250122232337896895269025366263941267010317327864987170257149617761051554925798575920455324689446874270250463979056532655319406099946978733381063171948